diff --git a/include/psprecomp/runtime.hpp b/include/psprecomp/runtime.hpp index fe3b92f..b204181 100644 --- a/include/psprecomp/runtime.hpp +++ b/include/psprecomp/runtime.hpp @@ -4,6 +4,8 @@ #include "psprecomp/guest_memory.hpp" #include "psprecomp/nid_registry.hpp" +#include +#include #include #include #include @@ -333,6 +335,86 @@ public: ctx, shared_aot_mem); } + // PSPRECOMP_V814_AOT_CONTINUATION_ENGINE + // Flatten compile-time-known generated calls into explicit guest continuations. + // The normal path no longer nests giant generated C++ frames: the caller + // publishes architectural registers, stores its exact return entry, and the + // generated target is reached by a clang tail jump. A guest `jr $ra` pops the + // continuation and tail-jumps back. Any outer Runtime/HLE boundary discards + // the optimization stack and resumes through the canonical PC dispatcher. + struct AotTailContinuation { + RecompiledEntryFunction function{}; + std::uint16_t entry_id{}; + std::uint16_t reserved{}; + std::uint32_t return_pc{}; + std::uint64_t switch_generation{}; + }; + static constexpr std::size_t kAotTailContinuationCapacity = 256u; + + [[nodiscard]] PSPRECOMP_RUNTIME_FORCEINLINE bool prepare_aot_linked_call( + AllegrexContext &ctx, RecompiledEntryFunction return_function, + std::uint16_t return_entry_id, std::uint32_t return_pc, + std::uint32_t target_pc) { +#if !defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + (void)return_function; (void)return_entry_id; (void)return_pc; + ctx.pc = target_pc; + return false; +#else + // Observed/instrumented runs deliberately fall back to Runtime so their + // dispatch boundaries remain visible. Capacity exhaustion is also a + // correctness-preserving outer-dispatch fallback, never a recursive call. + if (g_runtime_chain_observers_active || return_function == nullptr || + aot_tail_continuation_depth_ >= kAotTailContinuationCapacity || stopped_ || + chain_context_invalidated_) { + ctx.pc = target_pc; + return false; + } + ctx.pc = target_pc; + // Charge exactly one logical chained dispatch. Keep the hot no-boundary + // case entirely inline: an out-of-line account_dispatch_work() here would + // simply replace one wrapper with another at every linked call site. + const std::uint64_t interval = g_runtime_starvation_interval_fast; + if (interval != 0u) { + ++dispatches_since_import_; + if (dispatches_since_import_ >= interval && !run_starvation_boundary(ctx)) + return false; + } + if (stopped_ || chain_context_invalidated_) return false; + AotTailContinuation &slot = aot_tail_continuations_[aot_tail_continuation_depth_++]; + slot.function = return_function; + slot.entry_id = return_entry_id; + slot.return_pc = return_pc; + slot.switch_generation = g_runtime_thread_switch_generation_fast; + return true; +#endif + } + + [[nodiscard]] PSPRECOMP_RUNTIME_FORCEINLINE bool take_aot_tail_continuation( + std::uint32_t return_pc, AotTailContinuation &out) noexcept { +#if !defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + (void)return_pc; (void)out; + return false; +#else + if (aot_tail_continuation_depth_ == 0u) return false; + const AotTailContinuation &slot = aot_tail_continuations_[aot_tail_continuation_depth_ - 1u]; + // A PSP ownership transition invalidates every native continuation. The + // guest PC/$ra state remains authoritative, so dropping the optimization + // stack simply falls back to normal outer dispatch. + if (slot.switch_generation != g_runtime_thread_switch_generation_fast) { + aot_tail_continuation_depth_ = 0u; + return false; + } + if (slot.return_pc != return_pc || slot.function == nullptr) return false; + out = slot; + --aot_tail_continuation_depth_; + return true; +#endif + } + + PSPRECOMP_RUNTIME_FORCEINLINE void clear_aot_tail_continuations() noexcept { + aot_tail_continuation_depth_ = 0u; + } + // Profile-selected compact generated leaves. Unlike V8.7 body inlining, // the translated leaf exists once out-of-line and callers only bypass the // giant generated-unit entry switch. Eligibility is intentionally external @@ -593,6 +675,8 @@ private: std::uint32_t generated_unit_span_{}; bool generated_unit_layout_valid_{true}; std::uint32_t direct_base_{}; + std::array aot_tail_continuations_{}; + std::uint32_t aot_tail_continuation_depth_{}; std::uint32_t chain_depth_{}; std::uint32_t chain_depth_limit_{}; // Set only when a scheduler safe-point actually changes PSP execution diff --git a/profiles/vcs/BUILD_VCS_NINJA_CLANG.bat b/profiles/vcs/BUILD_VCS_NINJA_CLANG.bat index 0a66351..2b01566 100644 --- a/profiles/vcs/BUILD_VCS_NINJA_CLANG.bat +++ b/profiles/vcs/BUILD_VCS_NINJA_CLANG.bat @@ -1,8 +1,10 @@ @echo off setlocal EnableExtensions EnableDelayedExpansion +set "PSPRECOMP_V8151_FORCE_SYNC=" + rem ================================================================ -rem VCS V8.12.5 - Ninja + clang-cl performance/code-density launcher +rem VCS V8.15.5 - hard-forced async GE + parallel vertex production path rem Put this file in PSPRecomp\profiles\vcs. rem ================================================================ @@ -21,9 +23,23 @@ if not exist "%PROFILE%\tools\apply_v8123_ge_probe_globals_fix.py" goto MISSING_ if not exist "%PROFILE%\tools\dx12_ge_probe_runtime_globals.cpp" goto MISSING_OVERLAY if not exist "%PROFILE%\tools\apply_v8124_boot_regression_fix.py" goto MISSING_OVERLAY if not exist "%PROFILE%\tools\apply_v8125_registration_origin_fix.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\apply_v813_cpu_hotpath.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tests\check_v813_cpu_hotpath.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\apply_v814_nonrecursive_aot.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tests\check_v814_nonrecursive_aot.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\apply_v815_async_ge_overlap.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tests\check_v815_async_ge_overlap.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\apply_v8151_force_activation.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tests\check_v8151_force_activation.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\force_v8151_rebuild.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\verify_v8151_binary.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\apply_v8155_hard_force_async.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tests\check_v8155_hard_force_async.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\force_v8155_rebuild.py" goto MISSING_OVERLAY +if not exist "%PROFILE%\tools\verify_v8155_binary.py" goto MISSING_OVERLAY echo ================================================================ -echo VCS V8.12.5 - CPU / GENERATED CODE-DENSITY BUILD +echo VCS V8.15.5 - HARD-FORCE ASYNC GE BUILD echo Ninja + clang-cl + lld-link echo Repository: %REPO% echo ================================================================ @@ -87,7 +103,7 @@ if errorlevel 1 goto FAIL echo. if exist "%PROFILE%\generated\v812_code_density_manifest.json" goto HAVE_V812_SOURCE -echo [0/10] Preparing V8.11 baseline for first V8.12 application... +echo [0/16] Preparing V8.11 baseline for first V8.12 application... %PY% "%PROFILE%\tools\apply_v811_perf.py" "%REPO%" if errorlevel 1 goto FAIL %PY% "%PROFILE%\tools\apply_v811_perf.py" "%REPO%" --check @@ -97,7 +113,7 @@ if errorlevel 1 goto FAIL goto AFTER_V811_BASELINE :HAVE_V812_SOURCE -echo [0/10] Existing V8.12 source detected. +echo [0/16] Existing V8.12 source detected. echo Repairing the old compact-registration origin bug BEFORE strict V8.12 validation... %PY% "%PROFILE%\tools\apply_v8125_registration_origin_fix.py" "%REPO%" if errorlevel 1 goto FAIL @@ -106,7 +122,7 @@ if errorlevel 1 goto FAIL :AFTER_V811_BASELINE echo. -echo [1/10] Applying/validating V8.12 generated code-density pass... +echo [1/16] Applying/validating V8.12 generated code-density pass... %PY% "%PROFILE%\tools\apply_v812_code_density.py" "%REPO%" if errorlevel 1 goto FAIL %PY% "%PROFILE%\tools\apply_v812_code_density.py" "%REPO%" --check @@ -115,28 +131,28 @@ if errorlevel 1 goto FAIL if errorlevel 1 goto FAIL echo. -echo [2/10] Applying V8.12.1 DX12 probe link fix... +echo [2/16] Applying V8.12.1 DX12 probe link fix... %PY% "%PROFILE%\tools\apply_v8121_probe_link_fix.py" "%REPO%" if errorlevel 1 goto FAIL %PY% "%PROFILE%\tools\apply_v8121_probe_link_fix.py" "%REPO%" --check if errorlevel 1 goto FAIL echo. -echo [3/10] Applying V8.12.3 isolated GE-probe runtime globals fix... +echo [3/16] Applying V8.12.3 isolated GE-probe runtime globals fix... %PY% "%PROFILE%\tools\apply_v8123_ge_probe_globals_fix.py" "%REPO%" if errorlevel 1 goto FAIL %PY% "%PROFILE%\tools\apply_v8123_ge_probe_globals_fix.py" "%REPO%" --check if errorlevel 1 goto FAIL echo. -echo [4/10] Applying V8.12.4 boot/runtime regression fix... +echo [4/16] Applying V8.12.4 boot/runtime regression fix... %PY% "%PROFILE%\tools\apply_v8124_boot_regression_fix.py" "%REPO%" if errorlevel 1 goto FAIL %PY% "%PROFILE%\tools\apply_v8124_boot_regression_fix.py" "%REPO%" --check if errorlevel 1 goto FAIL echo. -echo [5/10] Applying/validating V8.12.5 registration-origin + VDOT fix... +echo [5/16] Applying/validating V8.12.5 registration-origin + VDOT fix... %PY% "%PROFILE%\tools\apply_v8125_registration_origin_fix.py" "%REPO%" if errorlevel 1 goto FAIL %PY% "%PROFILE%\tools\apply_v8125_registration_origin_fix.py" "%REPO%" --check @@ -146,7 +162,57 @@ if errorlevel 1 goto FAIL %PY% "%PROFILE%\tests\check_v812_code_density.py" if errorlevel 1 goto FAIL -echo [6/10] Configuring clang-cl / lld-link / Ninja... +echo. +echo [6/16] Applying/validating V8.13.1 structural prerequisite... +%PY% "%PROFILE%\tools\apply_v813_cpu_hotpath.py" "%REPO%" +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tools\apply_v813_cpu_hotpath.py" "%REPO%" --check +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tests\check_v813_cpu_hotpath.py" +if errorlevel 1 goto FAIL + +echo. +echo [7/16] Applying/validating V8.14 non-recursive AOT link engine... +%PY% "%PROFILE%\tools\apply_v814_nonrecursive_aot.py" "%REPO%" +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tools\apply_v814_nonrecursive_aot.py" "%REPO%" --check +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tests\check_v814_nonrecursive_aot.py" +if errorlevel 1 goto FAIL + +echo. +echo [8/16] Applying/validating V8.15 async GE overlap (V8.15.4 monotonic checker)... +%PY% "%PROFILE%\tools\apply_v815_async_ge_overlap.py" "%REPO%" +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tools\apply_v815_async_ge_overlap.py" "%REPO%" --check +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tests\check_v815_async_ge_overlap.py" +if errorlevel 1 goto FAIL + +echo. +echo [9/16] Applying V8.15.1 force-activation + runtime proof... +%PY% "%PROFILE%\tools\apply_v8151_force_activation.py" "%REPO%" +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tools\apply_v8151_force_activation.py" "%REPO%" --check +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tests\check_v8151_force_activation.py" +if errorlevel 1 goto FAIL + +echo. +echo [10/16] Applying V8.15.5 hard-force async + parallel vertex... +%PY% "%PROFILE%\tools\apply_v8155_hard_force_async.py" "%REPO%" +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tools\apply_v8155_hard_force_async.py" "%REPO%" --check +if errorlevel 1 goto FAIL +%PY% "%PROFILE%\tests\check_v8155_hard_force_async.py" +if errorlevel 1 goto FAIL + +echo. +echo [11/16] Invalidating stale host objects and old VCSNative.exe... +%PY% "%PROFILE%\tools\force_v8155_rebuild.py" "%BUILD%" +if errorlevel 1 goto FAIL + +echo [12/16] Configuring clang-cl / lld-link / Ninja... "%CMAKE%" -S "%REPO%" -B "%BUILD%" -G Ninja ^ "-DCMAKE_MAKE_PROGRAM=%NINJA%" ^ "-DCMAKE_CXX_COMPILER=%CLANG_CL%" ^ @@ -175,22 +241,31 @@ echo [6/10] Configuring clang-cl / lld-link / Ninja... if errorlevel 1 goto FAIL echo. -echo [7/10] Building VCSNative... +echo [13/16] Building VCSNative... "%CMAKE%" --build "%BUILD%" --parallel %JOBS% --target VCSNative if errorlevel 1 goto FAIL +set "BIN=%BUILD%\bin\Release" +%PY% "%PROFILE%\tools\verify_v8155_binary.py" "%BIN%\VCSNative.exe" +if errorlevel 1 goto FAIL echo. -echo [8/10] Building/running regression tests... +echo [14/16] Building/running regression tests... "%CMAKE%" --build "%BUILD%" --parallel %JOBS% --target psprecomp_tests vcs_profile_tests vcs_config_tests audio_resampler_tests vfpu_tier2_tests vcs_bootstrap_paths_tests vcs_dx12_probe vcs_dx12_ge_probe if errorlevel 1 goto FAIL "%CTEST%" --test-dir "%BUILD%" --output-on-failure if errorlevel 1 goto TEST_FAIL -set "BIN=%BUILD%\bin\Release" +rem V8.15: exercise the async scheduler explicitly; ordinary unit tests stay sync +rem because only VCSNative main installs the production default. +set "PSPRECOMP_GE_ASYNC=1" +"%BUILD%\bin\Release\vcs_profile_tests.exe" +if errorlevel 1 goto TEST_FAIL +set "PSPRECOMP_GE_ASYNC=" + if not exist "%BIN%\VCSNative.exe" goto FAIL echo. -echo [9/10] Running DX12 probes... +echo [15/16] Running DX12 probes... "%BIN%\vcs_dx12_probe.exe" if errorlevel 1 goto FAIL set "PSPRECOMP_DX12_GE_STRICT=1" @@ -202,15 +277,28 @@ set "PSPRECOMP_DX12_BATCH_MERGE=1" "%BIN%\vcs_dx12_ge_probe.exe" if errorlevel 1 goto FAIL set "PSPRECOMP_DX12_GE_STRICT=" +set "PSPRECOMP_GE_PARALLEL_VERTEX_DECODE=" +set "PSPRECOMP_GE_DIRECT_NONINDEXED_DRAW=" +set "PSPRECOMP_DX12_PACKED_0115=" +set "PSPRECOMP_DX12_NATIVE_INDEXED_DRAW=" +set "PSPRECOMP_DX12_BATCH_MERGE=" if exist "%PROFILE%\config\VCSNative.ini" copy /Y "%PROFILE%\config\VCSNative.ini" "%BIN%\VCSNative.ini" >nul echo. -echo [10/10] Done. +echo [16/16] Done. for %%F in ("%BIN%\VCSNative.exe") do echo VCSNative.exe size: %%~zF bytes if exist "%PROFILE%\generated\v812_code_density_manifest.json" ( %PY% -c "import json,pathlib; p=pathlib.Path(r'%PROFILE%\generated\v812_code_density_manifest.json'); d=json.loads(p.read_text()); print('Generated CPP: {:.2f} MiB cumulative saved: {:.2f} MiB'.format(d['generated_cpp_bytes_after']/1048576, d['source_bytes_saved_from_baseline']/1048576))" ) +if exist "%PROFILE%\generated\v813_cpu_hotpath_manifest.json" ( + %PY% -c "import json,pathlib; p=pathlib.Path(r'%PROFILE%\generated\v813_cpu_hotpath_manifest.json'); d=json.loads(p.read_text()); print('V8.13: JR fast sites={} hot dense units={} hot dense entries={} generated CPP={:.2f} MiB'.format(d['jr_sites'], d['hot_dense_units'], d['hot_dense_entries'], d['generated_cpp_bytes']/1048576))" +) +if exist "%PROFILE%\generated\v814_nonrecursive_aot_manifest.json" ( + %PY% -c "import json,pathlib; p=pathlib.Path(r'%PROFILE%\generated\v814_nonrecursive_aot_manifest.json'); d=json.loads(p.read_text()); print('V8.14: nonrecursive linked calls={} return-hook units={} scheduler={}/{}us'.format(d['linked_calls'], d['return_hook_units'], d['scheduler_dispatch_interval_default'], d['scheduler_tick_us_default']))" +) +echo V8.15.5: async GE=HARD-ON parallel vertex decode=HARD-ON present safe-point=current task only +echo V8.15.5: binary marker verification PASSED; inherited sync variables cannot disable production. echo ================================================================ echo BUILD OK echo EXE: %BIN%\VCSNative.exe @@ -221,7 +309,7 @@ exit /b 0 echo ERROR: put BUILD_VCS_NINJA_CLANG.bat in PSPRecomp\profiles\vcs. exit /b 20 :MISSING_OVERLAY -echo ERROR: V8.11/V8.12/V8.12.1/V8.12.3/V8.12.4/V8.12.5 overlay files are missing under profiles\vcs. +echo ERROR: V8.11 through V8.15 overlay files are missing under profiles\vcs. exit /b 21 :NO_VS echo ERROR: Visual Studio 2022 C++ environment not found in the standard Program Files path. @@ -243,5 +331,5 @@ exit /b 7 echo ERROR: regression tests failed. exit /b 8 :FAIL -echo ERROR: V8.12.5 build failed. See the first error above. +echo ERROR: V8.15.3 build failed. See the first error above. exit /b 1 diff --git a/profiles/vcs/config/VCSNative.ini b/profiles/vcs/config/VCSNative.ini index e8cf517..646bde1 100644 --- a/profiles/vcs/config/VCSNative.ini +++ b/profiles/vcs/config/VCSNative.ini @@ -1,8 +1,8 @@ ; VCSNative default DirectX 12 performance configuration. -; Uses asynchronous GE execution, the cross-unit AOT hot-register cache, native -; indexed/strip submission, packed 0x0115 GPU decode, hardware culling and batch -; merging. Visual/input/audio follow-ups remain tracked separately under the local -; progress directory. +; Uses the cross-unit AOT hot-register cache, native indexed/strip submission, +; packed 0x0115 GPU decode, hardware culling and batch merging. GE async +; overlap remains an explicit opt-in until a complete post-intro route is +; validated; the normal launcher is the stable synchronous path. [Display] Enabled=true ; Output resolution mode: PSP | Desktop | Custom @@ -48,7 +48,10 @@ GeometryDebugColors=false DumpGpuFrameVblank=0 [Timing] -FrameRate=120 +; The recompilation is not tied to the PSP's 60 Hz display. 240 lets the +; limiter expose the available headroom; heavy scenes still run at whatever +; the guest/GE workload can sustain. +FrameRate=240 RealtimeSpeedDiagnostics=false RealtimeSpeedIntervalVblanks=240 diff --git a/profiles/vcs/generated/generated_unit_0000.cpp b/profiles/vcs/generated/generated_unit_0000.cpp index a31abb4..e6872ca 100644 --- a/profiles/vcs/generated/generated_unit_0000.cpp +++ b/profiles/vcs/generated/generated_unit_0000.cpp @@ -721,6 +721,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08804000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -800,8 +824,8 @@ L_08804060: goto L_08804078; L_08804078: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804080: @@ -832,8 +856,8 @@ L_088040AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088040B8: @@ -877,8 +901,8 @@ L_088040FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804108: @@ -922,8 +946,8 @@ L_0880414C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804158: @@ -933,8 +957,21 @@ L_08804158: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08804170u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 26u, 0x08804170u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804170u) goto L_08804170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804170: aot_gpr_31 = (0x08804178u); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -965,8 +1002,8 @@ L_08804190: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088041C0: @@ -976,8 +1013,21 @@ L_088041C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088041D8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 32u, 0x088041D8u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088041D8u) goto L_088041D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088041D8: aot_gpr_31 = (0x088041E0u); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -991,8 +1041,8 @@ L_088041E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088041FC: @@ -1008,8 +1058,21 @@ L_088041FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0880422Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 35u, 0x0880422Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880422Cu) goto L_0880422C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880422C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_12 = std::sqrt(aot_fpr_12); @@ -1032,8 +1095,8 @@ L_0880424C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804268: @@ -1053,8 +1116,21 @@ L_08804268: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x088042A8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 38u, 0x088042A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088042A8u) goto L_088042A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088042A8: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_31 = (0x088042B4u); @@ -1087,8 +1163,8 @@ L_088042D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804300: @@ -1107,8 +1183,21 @@ L_08804300: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_31 = (0x08804340u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 42u, 0x08804340u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804340u) goto L_08804340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804340: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -1156,8 +1245,8 @@ L_088043A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088043C8: @@ -1171,8 +1260,21 @@ L_088043C8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088043F8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 47u, 0x088043F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088043F8u) goto L_088043F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088043F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_4 = (16457u << 16u); @@ -1210,8 +1312,8 @@ L_0880444C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804468: @@ -1225,8 +1327,21 @@ L_08804468: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08804498u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 50u, 0x08804498u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804498u) goto L_08804498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804498: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_4 = (16457u << 16u); @@ -1264,8 +1379,8 @@ L_088044EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804508: @@ -1281,8 +1396,21 @@ L_08804508: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08804538u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 53u, 0x08804538u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804538u) goto L_08804538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804538: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -1308,8 +1436,8 @@ L_08804564: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804580: @@ -1325,8 +1453,21 @@ L_08804580: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088045B0u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 56u, 0x088045B0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088045B0u) goto L_088045B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088045B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_5 = (16025u << 16u); @@ -1355,8 +1496,8 @@ L_088045E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804604: @@ -1373,8 +1514,21 @@ L_08804604: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08804640u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 59u, 0x08804640u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804640u) goto L_08804640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804640: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -1431,8 +1585,8 @@ L_088046D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088046F8: @@ -1449,8 +1603,21 @@ L_088046F8: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08804734u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 62u, 0x08804734u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804734u) goto L_08804734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804734: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); { std::uint32_t aot_run_words[5]{}; @@ -1564,8 +1731,8 @@ L_088047C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088047E8: @@ -1582,8 +1749,21 @@ L_088047E8: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08804824u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 65u, 0x08804824u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804824u) goto L_08804824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804824: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -1618,8 +1798,8 @@ L_08804868: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804888: @@ -1636,8 +1816,21 @@ L_08804888: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x088048C4u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 68u, 0x088048C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088048C4u) goto L_088048C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088048C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -1695,8 +1888,8 @@ L_08804928: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804948: @@ -1714,16 +1907,42 @@ L_08804948: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08804980u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 71u, 0x08804980u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804980u) goto L_08804980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804980: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08804994u); aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 72u, 0x08804994u, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804994u) goto L_08804994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804994: aot_gpr_5 = (std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), aot_gpr_5); @@ -1745,8 +1964,8 @@ L_088049AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088049CC: @@ -1764,8 +1983,21 @@ L_088049CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08804A04u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 75u, 0x08804A04u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804A04u) goto L_08804A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804A04: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); @@ -1790,8 +2022,8 @@ L_08804A28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804A48: @@ -1809,8 +2041,21 @@ L_08804A48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08804A80u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 78u, 0x08804A80u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804A80u) goto L_08804A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804A80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -1836,8 +2081,8 @@ L_08804AA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804AC8: @@ -1853,8 +2098,21 @@ L_08804AC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08804AF8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 81u, 0x08804AF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804AF8u) goto L_08804AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804AF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -1996,8 +2254,8 @@ L_08804BD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804BEC: @@ -2006,8 +2264,21 @@ L_08804BEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08804C00u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 98u, 0x08804C00u, 0x08AAFFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 890u, 0x08AAFFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804C00u) goto L_08804C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804C00: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(18488)); @@ -2017,8 +2288,8 @@ L_08804C00: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804C20: @@ -2029,8 +2300,21 @@ L_08804C20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08804C3Cu); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 100u, 0x08804C3Cu, 0x08AAFFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 890u, 0x08AAFFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804C3Cu) goto L_08804C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804C3C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(18488)); @@ -2057,13 +2341,39 @@ L_08804C6C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08804C78u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 103u, 0x08804C78u, 0x08ACFE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1117u, 0x08ACFE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804C78u) goto L_08804C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804C78: aot_gpr_31 = (0x08804C80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 104u, 0x08804C80u, 0x08ACFF50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1139u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1139u, 0x08ACFF50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804C80u) goto L_08804C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804C80: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(90)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(90)))))); @@ -2092,8 +2402,8 @@ L_08804C80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804CE0: @@ -2116,8 +2426,21 @@ L_08804CFC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08804D14u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 107u, 0x08804D14u, 0x08AB001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 2u, 0x08AB001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804D14u) goto L_08804D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804D14: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2129,8 +2452,21 @@ L_08804D14: L_08804D20: aot_gpr_31 = (0x08804D28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 109u, 0x08804D28u, 0x08AB0094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 9u, 0x08AB0094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804D28u) goto L_08804D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804D28: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2140,8 +2476,8 @@ L_08804D28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804D3C: @@ -2164,15 +2500,28 @@ L_08804D60: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08804D74u); ctx.gpr[7] = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 113u, 0x08804D74u, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804D74u) goto L_08804D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804D74: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804D84: @@ -2190,8 +2539,8 @@ L_08804DA0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804DB4: @@ -2235,8 +2584,8 @@ L_08804DEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804E00: @@ -2320,8 +2669,8 @@ L_08804E90: goto L_08804E94; L_08804E94: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08804E9C: @@ -2455,8 +2804,21 @@ L_08804FD8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08804FE8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 147u, 0x08804FE8u, 0x0880D230u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 300u, 0x0880D230u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08804FE8u) goto L_08804FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08804FE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -2486,8 +2848,8 @@ L_08804FFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08805034: @@ -2513,8 +2875,21 @@ L_08805058: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), aot_gpr_4); aot_gpr_31 = (0x08805068u); aot_gpr_4 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 152u, 0x08805068u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805068u) goto L_08805068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805068: aot_gpr_4 = (49949u << 16u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[2]); @@ -2597,8 +2972,21 @@ L_08805170: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), aot_gpr_4); aot_gpr_31 = (0x08805180u); aot_gpr_4 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 155u, 0x08805180u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805180u) goto L_08805180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805180: aot_gpr_4 = (50426u << 16u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[2]); @@ -2672,8 +3060,8 @@ L_08805278: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08805288: @@ -2711,8 +3099,8 @@ L_08805288: aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(1), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08805310: @@ -2737,8 +3125,8 @@ L_08805334: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08805340: @@ -2796,8 +3184,8 @@ L_088053C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088053D0: @@ -2829,8 +3217,21 @@ L_088053F8: } L_0880540C: aot_gpr_31 = (0x08805414u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 171u, 0x08805414u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805414u) goto L_08805414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805414: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -2844,8 +3245,21 @@ L_08805424: goto L_08805630; L_08805430: aot_gpr_31 = (0x08805438u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 174u, 0x08805438u, 0x08A79D84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 369u, 0x08A79D84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805438u) goto L_08805438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805438: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2863,8 +3277,21 @@ L_0880544C: goto L_08805450; L_08805450: aot_gpr_31 = (0x08805458u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 178u, 0x08805458u, 0x089547C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 126u, 0x089547C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805458u) goto L_08805458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805458: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2882,12 +3309,38 @@ L_0880546C: goto L_08805470; L_08805470: aot_gpr_31 = (0x08805478u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 182u, 0x08805478u, 0x08954C1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 187u, 0x08954C1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805478u) goto L_08805478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805478: aot_gpr_31 = (0x08805480u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 183u, 0x08805480u, 0x08A79DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 371u, 0x08A79DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805480u) goto L_08805480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805480: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2906,8 +3359,21 @@ L_08805494: L_08805498: aot_gpr_31 = (0x088054A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 187u, 0x088054A0u, 0x08958D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 127u, 0x08958D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088054A0u) goto L_088054A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088054A0: aot_gpr_31 = (0x088054A8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2929,12 +3395,38 @@ L_088054A8: aot_gpr_4 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x088054E8u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29552), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 189u, 0x088054E8u, 0x08A79DF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 374u, 0x08A79DF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088054E8u) goto L_088054E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088054E8: aot_gpr_31 = (0x088054F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 190u, 0x088054F0u, 0x08982D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 559u, 0x08982D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088054F0u) goto L_088054F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088054F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2953,20 +3445,72 @@ L_08805504: L_08805508: aot_gpr_31 = (0x08805510u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 194u, 0x08805510u, 0x08958D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 127u, 0x08958D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805510u) goto L_08805510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805510: aot_gpr_31 = (0x08805518u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 195u, 0x08805518u, 0x08A7A094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 416u, 0x08A7A094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805518u) goto L_08805518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805518: aot_gpr_31 = (0x08805520u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 196u, 0x08805520u, 0x08A7A15Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 428u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 428u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 428u, 0x08A7A15Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805520u) goto L_08805520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805520: aot_gpr_31 = (0x08805528u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 197u, 0x08805528u, 0x08A7A2C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 445u, 0x08A7A2C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805528u) goto L_08805528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805528: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29552))); aot_gpr_5 = (51440u << 16u); @@ -3039,8 +3583,8 @@ L_0880561C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08805630: @@ -3486,8 +4030,8 @@ L_08805630: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(29552), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08805D18: @@ -3506,8 +4050,21 @@ L_08805D18: aot_gpr_4 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x08805D5Cu); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(29552), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 201u, 0x08805D5Cu, 0x08AF8DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 175u, 0x08AF8DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805D5Cu) goto L_08805D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805D5C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(29552))); @@ -3528,8 +4085,21 @@ L_08805D5C: aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x08805DA8u); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(29552), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 202u, 0x08805DA8u, 0x08941AF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 247u, 0x08941AF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805DA8u) goto L_08805DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805DA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(29552))); aot_gpr_5 = (8960u << 16u); @@ -3629,8 +4199,21 @@ L_08805E6C: } L_08805E78: aot_gpr_31 = (0x08805E80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 213u, 0x08805E80u, 0x088A2BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 630u, 0x088A2BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805E80u) goto L_08805E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805E80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -3674,8 +4257,8 @@ L_08805E94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08805F04: @@ -3689,8 +4272,21 @@ L_08805F04: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x08805F38u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 216u, 0x08805F38u, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805F38u) goto L_08805F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805F38: aot_gpr_16 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_16; @@ -3702,8 +4298,21 @@ L_08805F38: L_08805F44: aot_gpr_31 = (0x08805F4Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 218u, 0x08805F4Cu, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805F4Cu) goto L_08805F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805F4C: ctx.gpr[17] = (0u | 1u); if (ctx.gpr[2] != ctx.gpr[17]) { @@ -3758,8 +4367,21 @@ L_08805F78: aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x08805FF8u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29552), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 222u, 0x08805FF8u, 0x08AFA0DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 341u, 0x08AFA0DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08805FF8u) goto L_08805FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08805FF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29552))); aot_gpr_5 = (8960u << 16u); @@ -3802,8 +4424,21 @@ L_0880604C: } L_08806054: aot_gpr_31 = (0x0880605Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 226u, 0x0880605Cu, 0x08A77BF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 753u, 0x08A77BF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880605Cu) goto L_0880605C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880605C: aot_gpr_4 = (16256u << 16u); goto L_08806060; @@ -3829,8 +4464,21 @@ L_08806060: aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x088060B4u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29552), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 228u, 0x088060B4u, 0x08AF9C00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 319u, 0x08AF9C00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088060B4u) goto L_088060B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088060B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29552))); aot_gpr_5 = (56576u << 16u); @@ -3951,8 +4599,21 @@ L_0880617C: } L_08806198: aot_gpr_31 = (0x088061A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 242u, 0x088061A0u, 0x08B01C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 474u, 0x08B01C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088061A0u) goto L_088061A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088061A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -3989,8 +4650,8 @@ L_088061D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806200: @@ -4005,8 +4666,21 @@ L_08806200: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x0880622Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 246u, 0x0880622Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880622Cu) goto L_0880622C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880622C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); @@ -4037,8 +4711,21 @@ L_08806250: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(48), 0u); aot_gpr_31 = (0x0880627Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 250u, 0x0880627Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880627Cu) goto L_0880627C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880627C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -4066,8 +4753,8 @@ L_088062A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088062B8: @@ -4111,8 +4798,8 @@ L_088062FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806308: @@ -4200,8 +4887,8 @@ L_0880638C: } L_08806394: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880639C: @@ -4244,8 +4931,8 @@ L_088063E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088063EC: @@ -4298,8 +4985,8 @@ L_08806444: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806450: @@ -4330,8 +5017,21 @@ L_08806498: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088064A4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 284u, 0x088064A4u, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088064A4u) goto L_088064A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088064A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); @@ -4342,8 +5042,8 @@ L_088064AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088064C0: @@ -4389,8 +5089,21 @@ L_08806508: L_08806520: aot_gpr_31 = (0x08806528u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 290u, 0x08806528u, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806528u) goto L_08806528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806528: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); goto L_0880652C; @@ -4421,8 +5134,8 @@ L_08806550: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806564: @@ -4464,8 +5177,8 @@ L_08806584: } L_088065C8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088065D0: @@ -4486,13 +5199,39 @@ L_088065D0: L_088065F8: aot_gpr_31 = (0x08806600u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 300u, 0x08806600u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806600u) goto L_08806600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806600: aot_gpr_31 = (0x08806608u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 301u, 0x08806608u, 0x0886B504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 693u, 0x0886B504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806608u) goto L_08806608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806608: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (0u | 8u); @@ -4505,8 +5244,8 @@ L_08806608: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806634: @@ -4518,8 +5257,8 @@ L_08806634: ctx.gpr[2] = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(ctx.gpr[2]) >> 3u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806654: @@ -4575,8 +5314,8 @@ L_088066AC: goto L_088066B8; L_088066B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088066C0: @@ -4624,8 +5363,8 @@ L_08806724: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880673C: @@ -4678,8 +5417,8 @@ L_08806798: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088067C4: @@ -4714,8 +5453,8 @@ L_088067F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880682C: @@ -4744,8 +5483,8 @@ L_0880684C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806888: @@ -4765,8 +5504,8 @@ L_088068A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088068B4: @@ -4794,8 +5533,8 @@ L_088068C8: goto L_088068D8; L_088068D8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088068E0: @@ -4838,8 +5577,8 @@ L_08806920: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880692C: @@ -4868,8 +5607,21 @@ L_0880694C: L_0880695C: aot_gpr_31 = (0x08806964u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 341u, 0x08806964u, 0x088C2EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 349u, 0x088C2EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806964u) goto L_08806964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806964: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4886,8 +5638,8 @@ L_08806970: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806984: @@ -4904,8 +5656,8 @@ L_08806994: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088069B4: @@ -4951,8 +5703,21 @@ L_088069F4: L_088069FC: aot_gpr_31 = (0x08806A04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 352u, 0x08806A04u, 0x088B96E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 305u, 0x088B96E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806A04u) goto L_08806A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806A04: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4963,8 +5728,8 @@ L_08806A04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806A1C: @@ -5010,8 +5775,21 @@ L_08806A64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08806A70u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 359u, 0x08806A70u, 0x088C3A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 504u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 504u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 504u, 0x088C3A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806A70u) goto L_08806A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806A70: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5022,8 +5800,8 @@ L_08806A70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806A88: @@ -5051,8 +5829,21 @@ L_08806AA4: L_08806AB4: aot_gpr_31 = (0x08806ABCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 364u, 0x08806ABCu, 0x088C2EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 349u, 0x088C2EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806ABCu) goto L_08806ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806ABC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5076,8 +5867,8 @@ L_08806AD4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806AE0: @@ -5124,8 +5915,8 @@ L_08806B20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806B2C: @@ -5174,8 +5965,21 @@ L_08806B78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08806B88u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 381u, 0x08806B88u, 0x088C2F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 357u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 357u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 357u, 0x088C2F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806B88u) goto L_08806B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806B88: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5201,8 +6005,21 @@ L_08806B98: L_08806BB0: aot_gpr_31 = (0x08806BB8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 385u, 0x08806BB8u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806BB8u) goto L_08806BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806BB8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -5221,8 +6038,8 @@ L_08806BC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806BD8: @@ -5271,8 +6088,21 @@ L_08806C20: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08806C30u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 393u, 0x08806C30u, 0x088C2F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 357u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 357u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 357u, 0x088C2F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806C30u) goto L_08806C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806C30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5301,8 +6131,8 @@ L_08806C48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806C5C: @@ -5375,8 +6205,8 @@ L_08806CBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806CC8: @@ -5412,8 +6242,8 @@ L_08806CFC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806D08: @@ -5449,8 +6279,8 @@ L_08806D44: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(16208))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806D5C: @@ -5509,8 +6339,8 @@ L_08806D94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806DA8: @@ -5520,8 +6350,8 @@ L_08806DA8: aot_gpr_5 = (aot_gpr_5 + static_cast(8)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806DC0: @@ -5533,8 +6363,8 @@ L_08806DC0: aot_gpr_5 = (aot_gpr_5 + static_cast(8)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806DE0: @@ -5560,8 +6390,21 @@ L_08806DE0: L_08806E18: aot_gpr_31 = (0x08806E20u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 428u, 0x08806E20u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806E20u) goto L_08806E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806E20: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_4 = (0u | 4u); @@ -5570,8 +6413,21 @@ L_08806E20: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08806E3Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 429u, 0x08806E3Cu, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806E3Cu) goto L_08806E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806E3C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -5587,8 +6443,8 @@ L_08806E3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806E68: @@ -5635,8 +6491,8 @@ L_08806EAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806EC0: @@ -5661,15 +6517,41 @@ L_08806EC0: L_08806EF4: aot_gpr_31 = (0x08806EFCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 438u, 0x08806EFCu, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806EFCu) goto L_08806EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806EFC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08806F0Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 439u, 0x08806F0Cu, 0x088B9A78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 360u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 360u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 360u, 0x088B9A78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806F0Cu) goto L_08806F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806F0C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5680,8 +6562,8 @@ L_08806F0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806F24: @@ -5707,8 +6589,21 @@ L_08806F24: L_08806F6C: aot_gpr_31 = (0x08806F74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 442u, 0x08806F74u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806F74u) goto L_08806F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806F74: aot_gpr_4 = (0u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); @@ -5718,8 +6613,21 @@ L_08806F74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08806F94u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 443u, 0x08806F94u, 0x088B9A78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 360u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 360u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 360u, 0x088B9A78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806F94u) goto L_08806F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806F94: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -5729,8 +6637,8 @@ L_08806F94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08806FA8: @@ -5757,14 +6665,40 @@ L_08806FA8: L_08806FE4: aot_gpr_31 = (0x08806FECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 446u, 0x08806FECu, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806FECu) goto L_08806FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806FEC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08806FF8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 447u, 0x08806FF8u, 0x08AB0454u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 53u, 0x08AB0454u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08806FF8u) goto L_08806FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08806FF8: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), ctx.gpr[19]); @@ -5823,8 +6757,8 @@ L_08807064: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807098: @@ -5837,8 +6771,8 @@ L_08807098: aot_gpr_5 = (aot_gpr_5 + static_cast(8)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088070BC: @@ -5850,8 +6784,8 @@ L_088070BC: aot_gpr_5 = (aot_gpr_5 + static_cast(8)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088070DC: @@ -5871,8 +6805,21 @@ L_088070FC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08807114u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 455u, 0x08807114u, 0x088C3464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 417u, 0x088C3464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807114u) goto L_08807114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807114: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -5887,8 +6834,8 @@ L_08807114: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807148: @@ -5906,8 +6853,21 @@ L_08807168: aot_gpr_5 = (aot_gpr_4 + static_cast(-8)); aot_gpr_31 = (0x08807178u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 458u, 0x08807178u, 0x08A9402Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 6u, 0x08A9402Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807178u) goto L_08807178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807178: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -5922,8 +6882,8 @@ L_08807178: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088071AC: @@ -5942,8 +6902,21 @@ L_088071D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_31 = (0x088071E0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 461u, 0x088071E0u, 0x08A93F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 629u, 0x08A93F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088071E0u) goto L_088071E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088071E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -5964,8 +6937,8 @@ L_088071E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807220: @@ -5987,8 +6960,21 @@ L_08807220: L_0880724C: aot_gpr_31 = (0x08807254u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 464u, 0x08807254u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807254u) goto L_08807254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807254: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (0u | 5u); @@ -5997,8 +6983,21 @@ L_08807254: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08807270u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 465u, 0x08807270u, 0x08A93C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 588u, 0x08A93C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807270u) goto L_08807270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807270: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -6012,8 +7011,8 @@ L_08807270: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807294: @@ -6112,8 +7111,8 @@ L_08807330: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807344: @@ -6167,8 +7166,8 @@ L_08807390: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088073CC: @@ -6185,8 +7184,21 @@ L_088073E0: ctx.gpr[7] = (ctx.gpr[7] + static_cast(-8)); aot_gpr_31 = (0x088073F8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 485u, 0x088073F8u, 0x088C3520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 427u, 0x088C3520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088073F8u) goto L_088073F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088073F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(-16)); @@ -6195,8 +7207,8 @@ L_088073F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807414: @@ -6217,8 +7229,21 @@ L_08807438: aot_gpr_6 = (aot_gpr_6 + static_cast(-16)); aot_gpr_31 = (0x08807450u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 488u, 0x08807450u, 0x08A940D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 17u, 0x08A940D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807450u) goto L_08807450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807450: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); @@ -6238,8 +7263,8 @@ L_08807450: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880748C: @@ -6262,8 +7287,21 @@ L_088074B8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088074D0u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 491u, 0x088074D0u, 0x08A94190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 28u, 0x08A94190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088074D0u) goto L_088074D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088074D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] + static_cast(4)); @@ -6284,8 +7322,8 @@ L_088074D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807510: @@ -6383,8 +7421,8 @@ L_088075A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088075C4: @@ -6437,8 +7475,8 @@ L_0880762C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807644: @@ -6449,14 +7487,27 @@ L_08807644: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08807660u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 509u, 0x08807660u, 0x088724C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 560u, 0x088724C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807660u) goto L_08807660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807660: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880766C: @@ -6465,14 +7516,27 @@ L_0880766C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08807680u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 511u, 0x08807680u, 0x088724C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 560u, 0x088724C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807680u) goto L_08807680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807680: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880768C: @@ -6516,8 +7580,21 @@ L_088076CC: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08807704u); aot_gpr_5 = (aot_gpr_5 + static_cast(30316)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 516u, 0x08807704u, 0x08872958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 619u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 619u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 619u, 0x08872958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807704u) goto L_08807704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807704: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -6528,8 +7605,8 @@ L_08807704: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880771C: @@ -6558,13 +7635,39 @@ L_08807744: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08807760u); ctx.gpr[7] = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 520u, 0x08807760u, 0x08A953B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 244u, 0x08A953B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807760u) goto L_08807760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807760: aot_gpr_31 = (0x08807768u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 521u, 0x08807768u, 0x08A95348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 237u, 0x08A95348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807768u) goto L_08807768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807768: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-32576)))))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6572,15 +7675,28 @@ L_08807768: aot_gpr_6 = (aot_gpr_6 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08807780u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 522u, 0x08807780u, 0x08872AFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 637u, 0x08872AFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807780u) goto L_08807780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807780: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807790: @@ -6623,8 +7739,21 @@ L_088077D4: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x088077ECu); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 527u, 0x088077ECu, 0x08A0C434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 62u, 0x08A0C434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088077ECu) goto L_088077EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088077EC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -6640,8 +7769,8 @@ L_088077F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807804: @@ -6649,8 +7778,8 @@ L_08807804: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 10u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807814: @@ -6658,8 +7787,8 @@ L_08807814: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 10u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807824: @@ -6705,29 +7834,55 @@ L_08807874: } L_0880787C: aot_gpr_31 = (0x08807884u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 537u, 0x08807884u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807884u) goto L_08807884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807884: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807890: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088078A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 539u, 0x088078A0u, 0x089E76E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 734u, 0x089E76E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088078A0u) goto L_088078A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088078A0: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088078B0: @@ -6743,8 +7898,21 @@ L_088078C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088078D8u); aot_gpr_6 = (aot_gpr_6 + static_cast(-8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 542u, 0x088078D8u, 0x08A93488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 499u, 0x08A93488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088078D8u) goto L_088078D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088078D8: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -6771,8 +7939,8 @@ L_088078F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807904: @@ -6795,8 +7963,21 @@ L_08807904: L_08807930: aot_gpr_31 = (0x08807938u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 548u, 0x08807938u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807938u) goto L_08807938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807938: aot_gpr_4 = (static_cast(aot_gpr_16) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6817,8 +7998,21 @@ L_08807944: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08807970u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 550u, 0x08807970u, 0x088C3C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 537u, 0x088C3C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807970u) goto L_08807970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807970: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (aot_gpr_16 << 3u); @@ -6846,8 +8040,21 @@ L_08807990: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088079ACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 553u, 0x088079ACu, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088079ACu) goto L_088079AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088079AC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -6863,8 +8070,8 @@ L_088079BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088079D0: @@ -6887,14 +8094,40 @@ L_088079D0: L_088079FC: aot_gpr_31 = (0x08807A04u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 557u, 0x08807A04u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807A04u) goto L_08807A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807A04: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08807A10u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 558u, 0x08807A10u, 0x089D1E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 325u, 0x089D1E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807A10u) goto L_08807A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807A10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (0u | 7u); @@ -6912,8 +8145,8 @@ L_08807A10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807A44: @@ -7031,8 +8264,8 @@ L_08807B04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807B18: @@ -7069,8 +8302,8 @@ L_08807B68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807B78: @@ -7106,8 +8339,8 @@ L_08807BC4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807BD4: @@ -7115,8 +8348,8 @@ L_08807BD4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807BE4: @@ -7129,14 +8362,27 @@ L_08807BE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08807C08u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(31700)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 581u, 0x08807C08u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807C08u) goto L_08807C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807C08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807C14: @@ -7217,8 +8463,8 @@ L_08807C88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807C9C: @@ -7232,8 +8478,8 @@ L_08807CAC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807CB8: @@ -7248,8 +8494,8 @@ L_08807CCC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807CD8: @@ -7281,8 +8527,8 @@ L_08807D08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807D14: @@ -7296,8 +8542,21 @@ L_08807D14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08807D3Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 602u, 0x08807D3Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807D3Cu) goto L_08807D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807D3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08807D48u); @@ -7308,8 +8567,21 @@ L_08807D48: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08807D54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 604u, 0x08807D54u, 0x0890B900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 899u, 0x0890B900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807D54u) goto L_08807D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807D54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -7360,8 +8632,21 @@ L_08807DAC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08807DB8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 611u, 0x08807DB8u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807DB8u) goto L_08807DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807DB8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7372,8 +8657,8 @@ L_08807DB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807DD0: @@ -7390,8 +8675,21 @@ L_08807DD0: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08807E0Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 613u, 0x08807E0Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807E0Cu) goto L_08807E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807E0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08807E18u); @@ -7411,8 +8709,21 @@ L_08807E18: L_08807E2C: aot_gpr_31 = (0x08807E34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 616u, 0x08807E34u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807E34u) goto L_08807E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807E34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7477,8 +8788,21 @@ L_08807E98: L_08807E9C: aot_gpr_31 = (0x08807EA4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 624u, 0x08807EA4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807EA4u) goto L_08807EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807EA4: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08807EA8; @@ -7528,14 +8852,40 @@ L_08807EE0: L_08807EE4: aot_gpr_31 = (0x08807EECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 632u, 0x08807EECu, 0x0890B900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 899u, 0x0890B900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807EECu) goto L_08807EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807EEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08807EF8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 633u, 0x08807EF8u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807EF8u) goto L_08807EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807EF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[26])); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -7549,8 +8899,21 @@ L_08807EF8: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08807F28u); ctx.gpr[9] = (ctx.gpr[9] + static_cast(16959)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 634u, 0x08807F28u, 0x0891CA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 152u, 0x0891CA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807F28u) goto L_08807F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807F28: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -7572,8 +8935,8 @@ L_08807F30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807F54: @@ -7585,8 +8948,21 @@ L_08807F54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08807F74u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 637u, 0x08807F74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807F74u) goto L_08807F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807F74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08807F80u); @@ -7601,16 +8977,29 @@ L_08807F80: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08807F9Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 639u, 0x08807F9Cu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807F9Cu) goto L_08807F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807F9C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08807FB0: @@ -7622,8 +9011,21 @@ L_08807FB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08807FD0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 641u, 0x08807FD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807FD0u) goto L_08807FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807FD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08807FDCu); @@ -7638,8 +9040,21 @@ L_08807FDC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x08807FF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0000->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0000_entry, 643u, 0x08807FF8u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08807FF8u) goto L_08807FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08807FF8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(640), 0u); ctx.gpr[2] = (0u | 0u); diff --git a/profiles/vcs/generated/generated_unit_0001.cpp b/profiles/vcs/generated/generated_unit_0001.cpp index 00f4927..641b3b5 100644 --- a/profiles/vcs/generated/generated_unit_0001.cpp +++ b/profiles/vcs/generated/generated_unit_0001.cpp @@ -1031,6 +1031,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08808000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1049,8 +1073,8 @@ L_08808000: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808010: @@ -1064,8 +1088,21 @@ L_08808010: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808038u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 3u, 0x08808038u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808038u) goto L_08808038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808038: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808044u); @@ -1160,8 +1197,8 @@ L_088080CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088080E4: @@ -1173,8 +1210,21 @@ L_088080E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08808104u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 15u, 0x08808104u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808104u) goto L_08808104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808104: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808110u); @@ -1189,16 +1239,29 @@ L_08808110: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0880812Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 17u, 0x0880812Cu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880812Cu) goto L_0880812C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880812C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808140: @@ -1210,8 +1273,21 @@ L_08808140: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08808160u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 19u, 0x08808160u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808160u) goto L_08808160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808160: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x0880816Cu); @@ -1226,16 +1302,29 @@ L_0880816C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08808188u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 21u, 0x08808188u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808188u) goto L_08808188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808188: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880819C: @@ -1251,8 +1340,21 @@ L_0880819C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x088081CCu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 23u, 0x088081CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088081CCu) goto L_088081CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088081CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088081D8u); @@ -1290,8 +1392,21 @@ L_08808214: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08808220u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 27u, 0x08808220u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808220u) goto L_08808220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808220: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08808224; @@ -1306,8 +1421,21 @@ L_08808224: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08808250u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 29u, 0x08808250u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808250u) goto L_08808250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808250: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -1320,8 +1448,8 @@ L_08808250: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808270: @@ -1337,8 +1465,21 @@ L_08808270: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x088082A8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 31u, 0x088082A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088082A8u) goto L_088082A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088082A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088082B4u); @@ -1390,8 +1531,21 @@ L_08808300: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08808328u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 37u, 0x08808328u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808328u) goto L_08808328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808328: aot_fpr_13 = aot_fpr_20 - ctx.fpr[26]; ctx.fpr[14] = aot_fpr_22 - ctx.fpr[24]; @@ -1424,8 +1578,21 @@ L_08808348: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0880837Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 40u, 0x0880837Cu, 0x08ACE418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 736u, 0x08ACE418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880837Cu) goto L_0880837C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880837C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -1440,8 +1607,8 @@ L_0880837C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088083A4: @@ -1453,8 +1620,21 @@ L_088083A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088083C4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 42u, 0x088083C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088083C4u) goto L_088083C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088083C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088083D0u); @@ -1469,16 +1649,29 @@ L_088083D0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088083ECu); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 44u, 0x088083ECu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088083ECu) goto L_088083EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088083EC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808400: @@ -1492,8 +1685,21 @@ L_08808400: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808428u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 46u, 0x08808428u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808428u) goto L_08808428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808428: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808434u); @@ -1516,8 +1722,21 @@ L_08808444: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08808464u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 49u, 0x08808464u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808464u) goto L_08808464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808464: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1528,8 +1747,8 @@ L_08808464: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880847C: @@ -1543,8 +1762,21 @@ L_0880847C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088084A4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 51u, 0x088084A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088084A4u) goto L_088084A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088084A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088084B0u); @@ -1567,8 +1799,21 @@ L_088084C0: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x088084E0u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 54u, 0x088084E0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088084E0u) goto L_088084E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088084E0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1579,8 +1824,8 @@ L_088084E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088084F8: @@ -1594,8 +1839,21 @@ L_088084F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808520u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 56u, 0x08808520u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808520u) goto L_08808520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808520: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x0880852Cu); @@ -1618,8 +1876,21 @@ L_0880853C: aot_gpr_5 = (0u | 11u); aot_gpr_31 = (0x0880855Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 59u, 0x0880855Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880855Cu) goto L_0880855C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880855C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1630,8 +1901,8 @@ L_0880855C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808574: @@ -1645,8 +1916,21 @@ L_08808574: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880859Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 61u, 0x0880859Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880859Cu) goto L_0880859C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880859C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088085A8u); @@ -1669,8 +1953,21 @@ L_088085B8: aot_gpr_5 = (0u | 12u); aot_gpr_31 = (0x088085D8u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 64u, 0x088085D8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088085D8u) goto L_088085D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088085D8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1681,8 +1978,8 @@ L_088085D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088085F0: @@ -1696,8 +1993,21 @@ L_088085F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808618u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 66u, 0x08808618u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808618u) goto L_08808618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808618: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808624u); @@ -1720,8 +2030,21 @@ L_08808634: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08808654u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 69u, 0x08808654u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808654u) goto L_08808654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808654: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1732,8 +2055,8 @@ L_08808654: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880866C: @@ -1747,8 +2070,21 @@ L_0880866C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808694u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 71u, 0x08808694u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808694u) goto L_08808694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808694: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088086A0u); @@ -1771,8 +2107,21 @@ L_088086B0: aot_gpr_5 = (0u | 17u); aot_gpr_31 = (0x088086D0u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 74u, 0x088086D0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088086D0u) goto L_088086D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088086D0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1783,8 +2132,8 @@ L_088086D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088086E8: @@ -1798,8 +2147,21 @@ L_088086E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808710u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 76u, 0x08808710u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808710u) goto L_08808710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808710: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x0880871Cu); @@ -1822,8 +2184,21 @@ L_0880872C: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x0880874Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 79u, 0x0880874Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880874Cu) goto L_0880874C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880874C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1834,8 +2209,8 @@ L_0880874C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808764: @@ -1849,8 +2224,21 @@ L_08808764: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880878Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 81u, 0x0880878Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880878Cu) goto L_0880878C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880878C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808798u); @@ -1873,8 +2261,21 @@ L_088087A8: aot_gpr_5 = (0u | 21u); aot_gpr_31 = (0x088087C8u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 84u, 0x088087C8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088087C8u) goto L_088087C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088087C8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1885,8 +2286,8 @@ L_088087C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088087E0: @@ -1900,8 +2301,21 @@ L_088087E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808808u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 86u, 0x08808808u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808808u) goto L_08808808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808808: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808814u); @@ -1924,8 +2338,21 @@ L_08808824: aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x08808844u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 89u, 0x08808844u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808844u) goto L_08808844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808844: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1936,8 +2363,8 @@ L_08808844: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880885C: @@ -1953,8 +2380,21 @@ L_0880885C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x08808894u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 91u, 0x08808894u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808894u) goto L_08808894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808894: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088088A0u); @@ -2006,8 +2446,21 @@ L_088088EC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08808914u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 97u, 0x08808914u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808914u) goto L_08808914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808914: aot_fpr_13 = aot_fpr_20 - ctx.fpr[26]; ctx.fpr[14] = aot_fpr_22 - ctx.fpr[24]; @@ -2040,8 +2493,21 @@ L_08808934: aot_gpr_5 = (0u | 24u); aot_gpr_31 = (0x08808968u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 100u, 0x08808968u, 0x08ACE418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 736u, 0x08ACE418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808968u) goto L_08808968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808968: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -2056,8 +2522,8 @@ L_08808968: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808990: @@ -2073,8 +2539,21 @@ L_08808990: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x088089C0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 102u, 0x088089C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088089C0u) goto L_088089C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088089C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088089CCu); @@ -2088,8 +2567,21 @@ L_088089CC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088089E4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 104u, 0x088089E4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088089E4u) goto L_088089E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088089E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-257)); @@ -2101,8 +2593,21 @@ L_088089E4: aot_gpr_5 = (0u | 24u); aot_gpr_31 = (0x08808A10u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 105u, 0x08808A10u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808A10u) goto L_08808A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808A10: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -2115,8 +2620,8 @@ L_08808A10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808A30: @@ -2130,8 +2635,21 @@ L_08808A30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808A58u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 107u, 0x08808A58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808A58u) goto L_08808A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808A58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808A64u); @@ -2154,14 +2672,40 @@ L_08808A74: aot_gpr_5 = (0u | 15u); aot_gpr_31 = (0x08808A94u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 110u, 0x08808A94u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808A94u) goto L_08808A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808A94: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08808AA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 111u, 0x08808AA0u, 0x08AC5410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 391u, 0x08AC5410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808AA0u) goto L_08808AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808AA0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2172,8 +2716,8 @@ L_08808AA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808AB8: @@ -2185,8 +2729,21 @@ L_08808AB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08808AD8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 113u, 0x08808AD8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808AD8u) goto L_08808AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808AD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808AE4u); @@ -2201,16 +2758,29 @@ L_08808AE4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08808B00u); aot_gpr_5 = (0u | 35u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 115u, 0x08808B00u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808B00u) goto L_08808B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808B00: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808B14: @@ -2222,8 +2792,21 @@ L_08808B14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08808B34u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 117u, 0x08808B34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808B34u) goto L_08808B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808B34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808B40u); @@ -2239,16 +2822,29 @@ L_08808B40: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08808B60u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 119u, 0x08808B60u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808B60u) goto L_08808B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808B60: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808B74: @@ -2262,8 +2858,21 @@ L_08808B74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808B9Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 121u, 0x08808B9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808B9Cu) goto L_08808B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808B9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808BA8u); @@ -2286,8 +2895,21 @@ L_08808BB8: aot_gpr_5 = (0u | 41u); aot_gpr_31 = (0x08808BD8u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 124u, 0x08808BD8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808BD8u) goto L_08808BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808BD8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2298,8 +2920,8 @@ L_08808BD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808BF0: @@ -2313,8 +2935,21 @@ L_08808BF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808C18u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 126u, 0x08808C18u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808C18u) goto L_08808C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808C18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808C24u); @@ -2337,8 +2972,21 @@ L_08808C34: aot_gpr_5 = (0u | 13u); aot_gpr_31 = (0x08808C54u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 129u, 0x08808C54u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808C54u) goto L_08808C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808C54: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2349,8 +2997,8 @@ L_08808C54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808C6C: @@ -2364,8 +3012,21 @@ L_08808C6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808C94u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 131u, 0x08808C94u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808C94u) goto L_08808C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808C94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808CA0u); @@ -2388,8 +3049,21 @@ L_08808CB0: aot_gpr_5 = (0u | 46u); aot_gpr_31 = (0x08808CD0u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 134u, 0x08808CD0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808CD0u) goto L_08808CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808CD0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2400,8 +3074,8 @@ L_08808CD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808CE8: @@ -2417,8 +3091,21 @@ L_08808CE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08808D18u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 136u, 0x08808D18u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808D18u) goto L_08808D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808D18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808D24u); @@ -2432,8 +3119,21 @@ L_08808D24: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08808D3Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 138u, 0x08808D3Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808D3Cu) goto L_08808D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808D3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-257)); @@ -2445,8 +3145,21 @@ L_08808D3C: aot_gpr_5 = (0u | 49u); aot_gpr_31 = (0x08808D68u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 139u, 0x08808D68u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808D68u) goto L_08808D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808D68: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -2459,8 +3172,8 @@ L_08808D68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808D88: @@ -2474,8 +3187,21 @@ L_08808D88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808DB0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 141u, 0x08808DB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808DB0u) goto L_08808DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808DB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808DBCu); @@ -2496,8 +3222,21 @@ L_08808DBC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08808DF0u); aot_gpr_5 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 143u, 0x08808DF0u, 0x08AC7A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 983u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 983u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 983u, 0x08AC7A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808DF0u) goto L_08808DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808DF0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2508,8 +3247,8 @@ L_08808DF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808E08: @@ -2525,8 +3264,21 @@ L_08808E08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08808E38u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 145u, 0x08808E38u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808E38u) goto L_08808E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808E38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808E44u); @@ -2540,8 +3292,21 @@ L_08808E44: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08808E5Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 147u, 0x08808E5Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808E5Cu) goto L_08808E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808E5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-257)); @@ -2553,8 +3318,21 @@ L_08808E5C: aot_gpr_5 = (0u | 25u); aot_gpr_31 = (0x08808E88u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 148u, 0x08808E88u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808E88u) goto L_08808E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808E88: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -2567,8 +3345,8 @@ L_08808E88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808EA8: @@ -2580,8 +3358,21 @@ L_08808EA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08808EC8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 150u, 0x08808EC8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808EC8u) goto L_08808EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808EC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808ED4u); @@ -2596,16 +3387,29 @@ L_08808ED4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08808EF0u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 152u, 0x08808EF0u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808EF0u) goto L_08808EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808EF0: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808F04: @@ -2619,8 +3423,21 @@ L_08808F04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08808F2Cu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 154u, 0x08808F2Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08808F2Cu) goto L_08808F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08808F2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08808F38u); @@ -2718,8 +3535,8 @@ L_08808FCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08808FE4: @@ -2731,8 +3548,21 @@ L_08808FE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08809004u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 166u, 0x08809004u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809004u) goto L_08809004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809004: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08809010u); @@ -2752,21 +3582,47 @@ L_08809010: L_08809024: aot_gpr_31 = (0x0880902Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 169u, 0x0880902Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880902Cu) goto L_0880902C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880902C: aot_gpr_31 = (0x08809034u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 170u, 0x08809034u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809034u) goto L_08809034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809034: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809048: @@ -2788,8 +3644,21 @@ L_08809048: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_31); aot_gpr_31 = (0x08809094u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 172u, 0x08809094u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809094u) goto L_08809094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809094: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088090A0u); @@ -2827,16 +3696,42 @@ L_088090D4: aot_gpr_4 = (17352u << 16u); aot_gpr_31 = (0x088090E0u); aot_fpr_20 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 177u, 0x088090E0u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088090E0u) goto L_088090E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088090E0: ctx.gpr[18] = (ctx.gpr[20] + static_cast(48)); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088090F4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 178u, 0x088090F4u, 0x08A03B88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 974u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 974u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 974u, 0x08A03B88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088090F4u) goto L_088090F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088090F4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2851,8 +3746,21 @@ L_08809100: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08809114u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 180u, 0x08809114u, 0x08A036C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 914u, 0x08A036C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809114u) goto L_08809114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809114: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2898,14 +3806,40 @@ L_08809114: } L_08809144: aot_gpr_31 = (0x0880914Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 182u, 0x0880914Cu, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880914Cu) goto L_0880914C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880914C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08809158u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 183u, 0x08809158u, 0x08A03590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 886u, 0x08A03590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809158u) goto L_08809158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809158: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2919,8 +3853,21 @@ L_08809160: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08809174u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 185u, 0x08809174u, 0x08A03794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 918u, 0x08A03794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809174u) goto L_08809174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809174: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2930,16 +3877,42 @@ L_08809174: } L_0880917C: aot_gpr_31 = (0x08809184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 187u, 0x08809184u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809184u) goto L_08809184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809184: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08809198u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 188u, 0x08809198u, 0x08A02D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 720u, 0x08A02D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809198u) goto L_08809198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809198: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2975,15 +3948,15 @@ L_088091B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088091EC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(5920), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088091F4: @@ -3074,8 +4047,8 @@ L_0880927C: goto L_08809280; L_08809280: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809288: @@ -3144,8 +4117,21 @@ L_08809300: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880931Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 212u, 0x0880931Cu, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880931Cu) goto L_0880931C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880931C: ctx.gpr[18] = (ctx.gpr[20] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -3183,8 +4169,21 @@ L_0880934C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08809374u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 216u, 0x08809374u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809374u) goto L_08809374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809374: ctx.gpr[18] = (ctx.gpr[18] + static_cast(8)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -3208,8 +4207,8 @@ L_08809384: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088093AC: @@ -3328,8 +4327,21 @@ L_08809474: } L_08809490: aot_gpr_31 = (0x08809498u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 233u, 0x08809498u, 0x089904B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 75u, 0x089904B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809498u) goto L_08809498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809498: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 9000 ? 1u : 0u); @@ -3419,8 +4431,21 @@ L_08809534: aot_gpr_4 = (aot_gpr_4 + static_cast(20)); aot_gpr_31 = (0x0880954Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 244u, 0x0880954Cu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880954Cu) goto L_0880954C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880954C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 9000 ? 1u : 0u); @@ -3443,8 +4468,21 @@ L_08809568: aot_gpr_4 = (ctx.gpr[17] + static_cast(68)); aot_gpr_31 = (0x08809574u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 247u, 0x08809574u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809574u) goto L_08809574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809574: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(68))); @@ -3467,8 +4505,8 @@ L_08809588: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088095A8: @@ -3523,8 +4561,8 @@ L_088095E8: L_088095F8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(8)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809600: @@ -3537,8 +4575,21 @@ L_08809600: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x0880962Cu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 258u, 0x0880962Cu, 0x08AD3220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 542u, 0x08AD3220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880962Cu) goto L_0880962C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880962C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3640,13 +4691,39 @@ L_088096BC: L_088096C4: aot_gpr_31 = (0x088096CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 272u, 0x088096CCu, 0x08AD34D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 577u, 0x08AD34D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088096CCu) goto L_088096CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088096CC: aot_gpr_31 = (0x088096D4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 273u, 0x088096D4u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088096D4u) goto L_088096D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088096D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-32528))); goto L_088096D8; @@ -3742,13 +4819,39 @@ L_08809764: L_0880976C: aot_gpr_31 = (0x08809774u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 287u, 0x08809774u, 0x08AD34D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 577u, 0x08AD34D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809774u) goto L_08809774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809774: aot_gpr_31 = (0x0880977Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 288u, 0x0880977Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880977Cu) goto L_0880977C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880977C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3822,8 +4925,21 @@ L_088097F8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08809804u); aot_gpr_5 = (0u | 33u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 298u, 0x08809804u, 0x08AD33C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 562u, 0x08AD33C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809804u) goto L_08809804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809804: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-32528))); goto L_08809808; @@ -3852,21 +4968,73 @@ L_08809824: } L_0880982C: aot_gpr_31 = (0x08809834u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 303u, 0x08809834u, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809834u) goto L_08809834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809834: aot_gpr_31 = (0x0880983Cu); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 304u, 0x0880983Cu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880983Cu) goto L_0880983C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880983C: aot_gpr_31 = (0x08809844u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 305u, 0x08809844u, 0x0896D084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 286u, 0x0896D084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809844u) goto L_08809844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809844: aot_gpr_31 = (0x0880984Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 306u, 0x0880984Cu, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880984Cu) goto L_0880984C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880984C: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -3880,8 +5048,8 @@ L_0880984C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809870: @@ -3902,8 +5070,8 @@ L_08809870: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880988C: @@ -3991,8 +5159,21 @@ L_0880991C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08809928u); aot_gpr_5 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 319u, 0x08809928u, 0x08AD33C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 562u, 0x08AD33C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809928u) goto L_08809928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809928: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-32528))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -4015,8 +5196,8 @@ L_08809940: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809958: @@ -4025,8 +5206,21 @@ L_08809958: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0880996Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 322u, 0x0880996Cu, 0x08A8E094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 404u, 0x08A8E094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880996Cu) goto L_0880996C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880996C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7652))); ctx.gpr[2] = (ctx.gpr[2] ^ aot_gpr_4); @@ -4034,8 +5228,8 @@ L_0880996C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809984: @@ -4048,8 +5242,8 @@ L_08809994: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088099A0: @@ -4062,8 +5256,8 @@ L_088099A0: } L_088099A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088099B0: @@ -4136,8 +5330,21 @@ L_08809A20: L_08809A28: aot_gpr_31 = (0x08809A30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 336u, 0x08809A30u, 0x08AD375Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 618u, 0x08AD375Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809A30u) goto L_08809A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809A30: aot_gpr_4 = (ctx.gpr[2] & 130u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4149,13 +5356,39 @@ L_08809A30: L_08809A3C: aot_gpr_31 = (0x08809A44u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 338u, 0x08809A44u, 0x08AD34D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 577u, 0x08AD34D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809A44u) goto L_08809A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809A44: aot_gpr_31 = (0x08809A4Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 339u, 0x08809A4Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809A4Cu) goto L_08809A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809A4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-32528))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -4177,16 +5410,16 @@ L_08809A64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809A78: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-32528), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-32524), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809A84: @@ -4195,8 +5428,21 @@ L_08809A84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08809A98u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28816)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 343u, 0x08809A98u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809A98u) goto L_08809A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809A98: aot_gpr_31 = (0x08809AA0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-32504)); @@ -4206,8 +5452,8 @@ L_08809AA0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809AAC: @@ -4215,8 +5461,8 @@ L_08809AAC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809ABC: @@ -4225,8 +5471,21 @@ L_08809ABC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08809AD0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 347u, 0x08809AD0u, 0x08B59EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 542u, 0x08B59EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809AD0u) goto L_08809AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809AD0: aot_gpr_31 = (0x08809AD8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4290,8 +5549,8 @@ L_08809B34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809B44: @@ -4306,8 +5565,21 @@ L_08809B44: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(264), aot_run_words); } aot_gpr_31 = (0x08809B7Cu); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 357u, 0x08809B7Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809B7Cu) goto L_08809B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809B7C: aot_gpr_31 = (0x08809B84u); aot_gpr_4 = (aot_gpr_29 | 0u); @@ -4318,8 +5590,21 @@ L_08809B84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08809B98u); aot_gpr_5 = (0u | 115u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 359u, 0x08809B98u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809B98u) goto L_08809B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809B98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4334,8 +5619,21 @@ L_08809BA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08809BB0u); aot_gpr_5 = (0u | 114u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 362u, 0x08809BB0u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809BB0u) goto L_08809BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809BB0: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4347,8 +5645,21 @@ L_08809BB0: L_08809BB8: aot_gpr_31 = (0x08809BC0u); aot_gpr_5 = (0u | 43u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 364u, 0x08809BC0u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809BC0u) goto L_08809BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809BC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4363,8 +5674,21 @@ L_08809BCC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08809BD8u); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 367u, 0x08809BD8u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809BD8u) goto L_08809BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809BD8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4455,8 +5779,21 @@ L_08809C48: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08809C68u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-25940)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 380u, 0x08809C68u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809C68u) goto L_08809C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809C68: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_16 = (0u | 0u); @@ -4529,8 +5866,21 @@ L_08809CD4: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08809CF0u); ctx.gpr[8] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 389u, 0x08809CF0u, 0x08B3B264u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 898u, 0x08B3B264u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809CF0u) goto L_08809CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809CF0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -4545,8 +5895,21 @@ L_08809CF0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08809D24u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 390u, 0x08809D24u, 0x08B3B264u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 898u, 0x08B3B264u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809D24u) goto L_08809D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809D24: ctx.gpr[2] = (aot_gpr_16 | 0u); goto L_08809D28; @@ -4563,8 +5926,8 @@ L_08809D28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809D4C: @@ -4611,8 +5974,8 @@ L_08809D88: goto L_08809D8C; L_08809D8C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809D94: @@ -4621,8 +5984,8 @@ L_08809D94: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809DBC: @@ -4638,8 +6001,8 @@ L_08809DBC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809DEC: @@ -4667,8 +6030,8 @@ L_08809E0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809E18: @@ -4687,16 +6050,29 @@ L_08809E34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809E44: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08809E54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 409u, 0x08809E54u, 0x08B62FE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 651u, 0x08B62FE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809E54u) goto L_08809E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809E54: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4716,8 +6092,21 @@ L_08809E64: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08809E70u); aot_gpr_5 = (0u | 768u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 412u, 0x08809E70u, 0x08B63158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 674u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 674u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 674u, 0x08B63158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809E70u) goto L_08809E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809E70: ctx.gpr[2] = (0u | 1u); goto L_08809E74; @@ -4725,8 +6114,8 @@ L_08809E74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809E80: @@ -4750,8 +6139,8 @@ L_08809E94: goto L_08809E98; L_08809E98: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809EA0: @@ -4772,15 +6161,41 @@ L_08809EBC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08809ED0u); aot_gpr_5 = (aot_gpr_5 + static_cast(16240)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 420u, 0x08809ED0u, 0x08986B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 695u, 0x08986B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809ED0u) goto L_08809ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809ED0: aot_gpr_5 = (2231u << 16u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08809EE0u); aot_gpr_5 = (aot_gpr_5 + static_cast(16268)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 421u, 0x08809EE0u, 0x08986B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 695u, 0x08986B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809EE0u) goto L_08809EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809EE0: aot_gpr_31 = (0x08809EE8u); aot_gpr_4 = (0u | 512u); @@ -4820,8 +6235,21 @@ L_08809F18: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(7), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08809F2Cu); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(8), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 428u, 0x08809F2Cu, 0x089867DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 631u, 0x089867DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809F2Cu) goto L_08809F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809F2C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4842,8 +6270,21 @@ L_08809F3C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08809F4Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(16292)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 431u, 0x08809F4Cu, 0x08986B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 695u, 0x08986B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08809F4Cu) goto L_08809F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08809F4C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -4911,14 +6352,14 @@ L_08809FBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809FD0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08809FD8: @@ -4975,8 +6416,21 @@ L_0880A050: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0880A060u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 448u, 0x0880A060u, 0x088CA2F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 425u, 0x088CA2F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A060u) goto L_0880A060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A060: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -4988,8 +6442,21 @@ L_0880A060: L_0880A068: aot_gpr_31 = (0x0880A070u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 450u, 0x0880A070u, 0x088CA494u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 452u, 0x088CA494u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A070u) goto L_0880A070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A070: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5115,8 +6582,21 @@ L_0880A154: aot_gpr_4 = (ctx.gpr[28] + static_cast(7712)); aot_gpr_31 = (0x0880A164u); aot_gpr_5 = (aot_gpr_5 + static_cast(16316)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 466u, 0x0880A164u, 0x08986B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 695u, 0x08986B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A164u) goto L_0880A164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A164: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5197,8 +6677,8 @@ L_0880A1F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A214: @@ -5214,8 +6694,8 @@ L_0880A214: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(240), ctx.gpr[8]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(352), ctx.gpr[7]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A244: @@ -5240,8 +6720,21 @@ L_0880A25C: L_0880A264: aot_gpr_31 = (0x0880A26Cu); aot_gpr_5 = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 478u, 0x0880A26Cu, 0x08986968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 661u, 0x08986968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A26Cu) goto L_0880A26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A26C: ctx.gpr[2] = (ctx.gpr[2] << 24u); ctx.gpr[2] = (static_cast(static_cast(ctx.gpr[2]) >> 24u)); @@ -5250,14 +6743,14 @@ L_0880A274: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A280: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A288: @@ -5266,14 +6759,27 @@ L_0880A288: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0880A29Cu); aot_gpr_5 = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 482u, 0x0880A29Cu, 0x089867F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 633u, 0x089867F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A29Cu) goto L_0880A29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A29C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A2A8: @@ -5323,8 +6829,21 @@ L_0880A2E4: L_0880A2F4: aot_gpr_31 = (0x0880A2FCu); aot_gpr_5 = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 489u, 0x0880A2FCu, 0x08986890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 648u, 0x08986890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A2FCu) goto L_0880A2FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A2FC: ctx.gpr[2] = (ctx.gpr[2] << 24u); { const bool branch_taken = 0u == 0u; @@ -5364,8 +6883,8 @@ L_0880A324: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A330: @@ -5374,14 +6893,27 @@ L_0880A330: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0880A344u); aot_gpr_5 = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 496u, 0x0880A344u, 0x08987958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 872u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 872u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 872u, 0x08987958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A344u) goto L_0880A344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A344: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A350: @@ -5400,8 +6932,21 @@ L_0880A368: aot_gpr_6 = (0u | 300u); aot_gpr_31 = (0x0880A374u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-32476), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 499u, 0x0880A374u, 0x08986890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 648u, 0x08986890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A374u) goto L_0880A374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A374: ctx.gpr[2] = (ctx.gpr[2] << 24u); { const bool branch_taken = 0u == 0u; @@ -5418,8 +6963,8 @@ L_0880A384: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A390: @@ -5436,8 +6981,21 @@ L_0880A390: } L_0880A3A8: aot_gpr_31 = (0x0880A3B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 504u, 0x0880A3B0u, 0x08987958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 872u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 872u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 872u, 0x08987958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A3B0u) goto L_0880A3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A3B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5452,8 +7010,8 @@ L_0880A3BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A3C8: @@ -5501,8 +7059,8 @@ L_0880A3F4: goto L_0880A3F8; L_0880A3F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A400: @@ -5513,8 +7071,8 @@ L_0880A400: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A41C: @@ -5525,8 +7083,8 @@ L_0880A41C: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A438: @@ -5702,8 +7260,8 @@ L_0880A570: goto L_0880A57C; L_0880A57C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A584: @@ -5721,14 +7279,14 @@ L_0880A594: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(576), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A5AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A5B4: @@ -5750,8 +7308,8 @@ L_0880A5C8: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(464), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A5E0: @@ -5760,8 +7318,21 @@ L_0880A5E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880A5F4u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 543u, 0x0880A5F4u, 0x08AABBE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 416u, 0x08AABBE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A5F4u) goto L_0880A5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A5F4: aot_gpr_31 = (0x0880A5FCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0216_entry, 216u, 63u, 0x08B64618u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A5FCu) goto L_0880A5FC; @@ -5772,16 +7343,29 @@ L_0880A5FC: aot_gpr_4 = (ctx.gpr[2] & aot_gpr_4); aot_gpr_31 = (0x0880A610u); aot_gpr_16 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 545u, 0x0880A610u, 0x08AABC04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 418u, 0x08AABC04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A610u) goto L_0880A610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A610: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A624: @@ -5817,8 +7401,8 @@ L_0880A674: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A680: @@ -5854,43 +7438,43 @@ L_0880A6D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A6DC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(4), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A6E4: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(5), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A6EC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(6), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A6F4: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A6FC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(8), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A704: @@ -5913,8 +7497,21 @@ L_0880A728: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0880A738u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 561u, 0x0880A738u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A738u) goto L_0880A738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A738: aot_gpr_31 = (0x0880A740u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-32448)); @@ -5923,8 +7520,21 @@ L_0880A738: L_0880A740: aot_gpr_31 = (0x0880A748u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 563u, 0x0880A748u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A748u) goto L_0880A748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A748: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5968,8 +7578,8 @@ L_0880A774: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880A788: @@ -6104,8 +7714,21 @@ L_0880A920: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[18]); aot_gpr_31 = (0x0880A930u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 578u, 0x0880A930u, 0x0898694Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 660u, 0x0898694Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880A930u) goto L_0880A930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880A930: ctx.gpr[7] = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == ctx.gpr[21]; @@ -6461,8 +8084,21 @@ L_0880AB78: aot_gpr_4 = (ctx.gpr[10] | 0u); aot_gpr_31 = (0x0880AB84u); aot_gpr_5 = (ctx.gpr[11] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 623u, 0x0880AB84u, 0x08986AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 691u, 0x08986AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880AB84u) goto L_0880AB84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880AB84: ctx.gpr[10] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16328))); @@ -6688,8 +8324,21 @@ L_0880AD60: L_0880AD8C: aot_gpr_31 = (0x0880AD94u); aot_gpr_16 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 649u, 0x0880AD94u, 0x0888A208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 600u, 0x0888A208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880AD94u) goto L_0880AD94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880AD94: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6710,8 +8359,21 @@ L_0880ADA8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880ADB8u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 652u, 0x0880ADB8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880ADB8u) goto L_0880ADB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880ADB8: aot_gpr_31 = (0x0880ADC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -6720,8 +8382,21 @@ L_0880ADB8: L_0880ADC0: aot_gpr_31 = (0x0880ADC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 654u, 0x0880ADC8u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880ADC8u) goto L_0880ADC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880ADC8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6842,8 +8517,8 @@ L_0880AEC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880AEF4: @@ -6873,8 +8548,8 @@ L_0880AF0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880AF48: @@ -6890,14 +8565,40 @@ L_0880AF70: aot_gpr_5 = (ctx.gpr[28] + static_cast(-32276)); aot_gpr_31 = (0x0880AF80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 672u, 0x0880AF80u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880AF80u) goto L_0880AF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880AF80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880AF8Cu); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 673u, 0x0880AF8Cu, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880AF8Cu) goto L_0880AF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880AF8C: ctx.gpr[20] = (0u | 1u); aot_gpr_4 = (static_cast(ctx.gpr[21]) < 1 ? 1u : 0u); @@ -6928,14 +8629,40 @@ L_0880AFB8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880AFC8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 678u, 0x0880AFC8u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880AFC8u) goto L_0880AFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880AFC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880AFD4u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 679u, 0x0880AFD4u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880AFD4u) goto L_0880AFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880AFD4: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6966,8 +8693,21 @@ L_0880AFF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B008u); aot_gpr_5 = (aot_gpr_5 + static_cast(16896)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 683u, 0x0880B008u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B008u) goto L_0880B008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B008: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7029,8 +8769,8 @@ L_0880B060: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B084: @@ -7043,8 +8783,21 @@ L_0880B084: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x0880B0B0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 693u, 0x0880B0B0u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B0B0u) goto L_0880B0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B0B0: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (0u | 10u); @@ -7060,8 +8813,21 @@ L_0880B0C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B0D0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 695u, 0x0880B0D0u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B0D0u) goto L_0880B0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B0D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B0DCu); @@ -7100,8 +8866,21 @@ L_0880B104: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880B114u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 701u, 0x0880B114u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B114u) goto L_0880B114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B114: aot_gpr_5 = (static_cast(ctx.gpr[18]) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; @@ -7126,8 +8905,21 @@ L_0880B12C: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x0880B144u); aot_gpr_6 = (aot_gpr_6 + static_cast(16940)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 704u, 0x0880B144u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B144u) goto L_0880B144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B144: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); goto L_0880B148; @@ -7136,8 +8928,21 @@ L_0880B148: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0880B158u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 706u, 0x0880B158u, 0x08B58090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 16u, 0x08B58090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B158u) goto L_0880B158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B158: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[19] == ctx.gpr[18]; @@ -7216,8 +9021,21 @@ L_0880B1D8: L_0880B1E0: aot_gpr_31 = (0x0880B1E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 716u, 0x0880B1E8u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B1E8u) goto L_0880B1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B1E8: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_0880B1EC; @@ -7232,8 +9050,8 @@ L_0880B1EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B208: @@ -7246,22 +9064,61 @@ L_0880B208: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880B22Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 719u, 0x0880B22Cu, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B22Cu) goto L_0880B22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B22C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880B240u); ctx.gpr[17] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 720u, 0x0880B240u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B240u) goto L_0880B240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B240: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B24Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 721u, 0x0880B24Cu, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B24Cu) goto L_0880B24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B24C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7293,8 +9150,21 @@ L_0880B270: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B27Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 726u, 0x0880B27Cu, 0x0889D184u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 221u, 0x0889D184u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B27Cu) goto L_0880B27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B27C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B288u); @@ -7305,13 +9175,39 @@ L_0880B288: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B294u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 728u, 0x0880B294u, 0x08807904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B294u) goto L_0880B294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B294: aot_gpr_31 = (0x0880B29Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 729u, 0x0880B29Cu, 0x08807890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 538u, 0x08807890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B29Cu) goto L_0880B29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B29C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7321,8 +9217,8 @@ L_0880B29C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B2B0: @@ -7334,14 +9230,40 @@ L_0880B2B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880B2D0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 731u, 0x0880B2D0u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B2D0u) goto L_0880B2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B2D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B2DCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 732u, 0x0880B2DCu, 0x08807294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 466u, 0x08807294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B2DCu) goto L_0880B2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B2DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7352,8 +9274,21 @@ L_0880B2DC: L_0880B2E4: aot_gpr_31 = (0x0880B2ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 734u, 0x0880B2ECu, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B2ECu) goto L_0880B2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B2EC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -7367,8 +9302,21 @@ L_0880B2F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B304u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 736u, 0x0880B304u, 0x0889D6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 305u, 0x0889D6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B304u) goto L_0880B304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B304: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_0880B308; @@ -7381,8 +9329,8 @@ L_0880B308: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B31C: @@ -7403,8 +9351,21 @@ L_0880B340: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880B35Cu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 740u, 0x0880B35Cu, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B35Cu) goto L_0880B35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B35C: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -7425,15 +9386,41 @@ L_0880B36C: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x0880B37Cu); aot_gpr_6 = (aot_gpr_6 + static_cast(16960)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 743u, 0x0880B37Cu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B37Cu) goto L_0880B37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B37C: aot_gpr_6 = (ctx.gpr[28] + static_cast(-32084)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B38Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 744u, 0x0880B38Cu, 0x0889D6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 305u, 0x0889D6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B38Cu) goto L_0880B38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B38C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7446,8 +9433,21 @@ L_0880B394: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B3A4u); aot_gpr_5 = (aot_gpr_5 + static_cast(16984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 746u, 0x0880B3A4u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B3A4u) goto L_0880B3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B3A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B3B0u); @@ -7458,8 +9458,21 @@ L_0880B3B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B3BCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 748u, 0x0880B3BCu, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B3BCu) goto L_0880B3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B3BC: ctx.gpr[2] = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -7472,8 +9485,8 @@ L_0880B3BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B3DC: @@ -7513,8 +9526,21 @@ L_0880B418: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0880B42Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 754u, 0x0880B42Cu, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B42Cu) goto L_0880B42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B42C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[17] = (std::bit_cast(aot_fpr_12)); @@ -7530,15 +9556,41 @@ L_0880B43C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880B44Cu); aot_gpr_6 = (aot_gpr_6 + static_cast(17020)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 756u, 0x0880B44Cu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B44Cu) goto L_0880B44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B44C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0880B45Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 757u, 0x0880B45Cu, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B45Cu) goto L_0880B45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B45C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7551,15 +9603,41 @@ L_0880B464: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B474u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 759u, 0x0880B474u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B474u) goto L_0880B474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B474: aot_gpr_5 = (ctx.gpr[28] + static_cast(-32056)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B484u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 760u, 0x0880B484u, 0x089E6F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 622u, 0x089E6F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B484u) goto L_0880B484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B484: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B490u); @@ -7579,8 +9657,21 @@ L_0880B498: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0880B4ACu); aot_gpr_5 = (aot_gpr_5 + static_cast(17048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 763u, 0x0880B4ACu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B4ACu) goto L_0880B4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B4AC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -7590,8 +9681,8 @@ L_0880B4AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B4C0: @@ -7601,21 +9692,60 @@ L_0880B4C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880B4D8u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 765u, 0x0880B4D8u, 0x08807344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 478u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 478u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 478u, 0x08807344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B4D8u) goto L_0880B4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B4D8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-32052)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B4E8u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 766u, 0x0880B4E8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B4E8u) goto L_0880B4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B4E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B4F4u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 767u, 0x0880B4F4u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B4F4u) goto L_0880B4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B4F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B500u); @@ -7628,8 +9758,8 @@ L_0880B500: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B514: @@ -7662,8 +9792,8 @@ L_0880B544: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B558: @@ -7674,8 +9804,21 @@ L_0880B558: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880B574u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 775u, 0x0880B574u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B574u) goto L_0880B574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B574: aot_gpr_31 = (0x0880B57Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7696,8 +9839,21 @@ L_0880B58C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B59Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(17100)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 779u, 0x0880B59Cu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B59Cu) goto L_0880B59C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B59C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7749,8 +9905,21 @@ L_0880B5EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B5F8u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 787u, 0x0880B5F8u, 0x088067C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 320u, 0x088067C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B5F8u) goto L_0880B5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B5F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7762,8 +9931,21 @@ L_0880B600: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B60Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 789u, 0x0880B60Cu, 0x088075C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 503u, 0x088075C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B60Cu) goto L_0880B60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B60C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7776,16 +9958,29 @@ L_0880B614: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B624u); aot_gpr_5 = (aot_gpr_5 + static_cast(17148)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 791u, 0x0880B624u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B624u) goto L_0880B624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B624: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B638: @@ -7797,21 +9992,60 @@ L_0880B638: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880B658u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 793u, 0x0880B658u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B658u) goto L_0880B658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B658: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B664u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 794u, 0x0880B664u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B664u) goto L_0880B664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B664: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880B674u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 795u, 0x0880B674u, 0x088069B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 346u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 346u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 346u, 0x088069B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B674u) goto L_0880B674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B674: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B680u); @@ -7828,8 +10062,8 @@ L_0880B680: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B698: @@ -7842,20 +10076,59 @@ L_0880B698: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880B6BCu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 798u, 0x0880B6BCu, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B6BCu) goto L_0880B6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B6BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B6C8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 799u, 0x0880B6C8u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B6C8u) goto L_0880B6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B6C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B6D4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 800u, 0x0880B6D4u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B6D4u) goto L_0880B6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B6D4: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7866,8 +10139,8 @@ L_0880B6D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B6EC: @@ -7880,26 +10153,78 @@ L_0880B6EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880B710u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 802u, 0x0880B710u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B710u) goto L_0880B710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B710: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B71Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 803u, 0x0880B71Cu, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B71Cu) goto L_0880B71C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B71C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B728u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 804u, 0x0880B728u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B728u) goto L_0880B728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B728: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B734u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 805u, 0x0880B734u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B734u) goto L_0880B734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B734: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7910,8 +10235,8 @@ L_0880B734: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B74C: @@ -7920,8 +10245,21 @@ L_0880B74C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880B760u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 807u, 0x0880B760u, 0x08807814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 531u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 531u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 531u, 0x08807814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B760u) goto L_0880B760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B760: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7932,8 +10270,21 @@ L_0880B760: L_0880B770: aot_gpr_31 = (0x0880B778u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 809u, 0x0880B778u, 0x08807804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 530u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 530u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 530u, 0x08807804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B778u) goto L_0880B778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B778: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7947,8 +10298,8 @@ L_0880B788: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B79C: @@ -7959,23 +10310,49 @@ L_0880B79C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880B7B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 812u, 0x0880B7B8u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B7B8u) goto L_0880B7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B7B8: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B7C8u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 813u, 0x0880B7C8u, 0x08807824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 532u, 0x08807824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B7C8u) goto L_0880B7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B7C8: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B7DC: @@ -7987,8 +10364,21 @@ L_0880B7DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880B7FCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 815u, 0x0880B7FCu, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B7FCu) goto L_0880B7FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B7FC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B808u); @@ -7999,14 +10389,40 @@ L_0880B808: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B814u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 817u, 0x0880B814u, 0x088068B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 327u, 0x088068B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B814u) goto L_0880B814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B814: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B820u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 818u, 0x0880B820u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B820u) goto L_0880B820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B820: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8017,8 +10433,8 @@ L_0880B820: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B838: @@ -8032,8 +10448,21 @@ L_0880B838: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0880B860u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 820u, 0x0880B860u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B860u) goto L_0880B860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B860: ctx.gpr[17] = (0u | 2u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8045,8 +10474,21 @@ L_0880B870: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B87Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 822u, 0x0880B87Cu, 0x088078B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 540u, 0x088078B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B87Cu) goto L_0880B87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B87C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8065,8 +10507,21 @@ L_0880B884: L_0880B88C: aot_gpr_31 = (0x0880B894u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 825u, 0x0880B894u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B894u) goto L_0880B894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B894: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_0880B898; @@ -8080,8 +10535,8 @@ L_0880B898: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B8B0: @@ -8094,21 +10549,60 @@ L_0880B8B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880B8CCu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 829u, 0x0880B8CCu, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B8CCu) goto L_0880B8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B8CC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-32320)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B8DCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 830u, 0x0880B8DCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B8DCu) goto L_0880B8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B8DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B8E8u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 831u, 0x0880B8E8u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B8E8u) goto L_0880B8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B8E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B8F4u); @@ -8118,16 +10612,29 @@ L_0880B8E8: L_0880B8F4: aot_gpr_31 = (0x0880B8FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 833u, 0x0880B8FCu, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B8FCu) goto L_0880B8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B8FC: ctx.gpr[2] = (0u | 3u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880B910: @@ -8148,8 +10655,21 @@ L_0880B934: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880B948u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 836u, 0x0880B948u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B948u) goto L_0880B948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B948: aot_fpr_20 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_22) || std::isnan(aot_fpr_20)) && aot_fpr_22 == aot_fpr_20)) ? 0x00800000u : 0u); @@ -8189,8 +10709,21 @@ L_0880B98C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880B9A0u); aot_gpr_6 = (std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 841u, 0x0880B9A0u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B9A0u) goto L_0880B9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B9A0: aot_gpr_16 = (0u | 2u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8216,14 +10749,40 @@ L_0880B9C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B9D0u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 845u, 0x0880B9D0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B9D0u) goto L_0880B9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B9D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B9DCu); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 846u, 0x0880B9DCu, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880B9DCu) goto L_0880B9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880B9DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880B9E8u); @@ -8258,8 +10817,8 @@ L_0880BA00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BA1C: @@ -8284,14 +10843,40 @@ L_0880BA30: L_0880BA38: aot_gpr_31 = (0x0880BA40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 854u, 0x0880BA40u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BA40u) goto L_0880BA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BA40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BA4Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 855u, 0x0880BA4Cu, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BA4Cu) goto L_0880BA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BA4C: ctx.gpr[2] = (0u | 2u); goto L_0880BA50; @@ -8300,8 +10885,8 @@ L_0880BA50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BA60: @@ -8313,8 +10898,21 @@ L_0880BA60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0880BA80u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 858u, 0x0880BA80u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BA80u) goto L_0880BA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BA80: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8322,16 +10920,42 @@ L_0880BA80: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0880BA98u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 859u, 0x0880BA98u, 0x0889D588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 284u, 0x0889D588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BA98u) goto L_0880BA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BA98: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0880BAACu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 860u, 0x0880BAACu, 0x0889E390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 513u, 0x0889E390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BAACu) goto L_0880BAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BAAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BAB8u); @@ -8346,8 +10970,8 @@ L_0880BAB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BACC: @@ -8359,14 +10983,40 @@ L_0880BACC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880BAECu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 863u, 0x0880BAECu, 0x0889D588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 284u, 0x0889D588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BAECu) goto L_0880BAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BAEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BAF8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 864u, 0x0880BAF8u, 0x0889E124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 470u, 0x0889E124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BAF8u) goto L_0880BAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BAF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BB04u); @@ -8377,8 +11027,8 @@ L_0880BB04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BB14: @@ -8391,8 +11041,21 @@ L_0880BB14: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0880BB3Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 867u, 0x0880BB3Cu, 0x0889D588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 284u, 0x0889D588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BB3Cu) goto L_0880BB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BB3C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0880BB48u); @@ -8404,8 +11067,21 @@ L_0880BB48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BB58u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 869u, 0x0880BB58u, 0x0889E124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 470u, 0x0889E124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BB58u) goto L_0880BB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BB58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8416,15 +11092,41 @@ L_0880BB58: L_0880BB60: aot_gpr_31 = (0x0880BB68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 871u, 0x0880BB68u, 0x08807890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 538u, 0x08807890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BB68u) goto L_0880BB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BB68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0880BB78u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 872u, 0x0880BB78u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BB78u) goto L_0880BB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BB78: aot_gpr_31 = (0x0880BB80u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8441,8 +11143,8 @@ L_0880BB80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BB9C: @@ -8454,8 +11156,21 @@ L_0880BB9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880BBBCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 875u, 0x0880BBBCu, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BBBCu) goto L_0880BBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BBBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BBC8u); @@ -8477,15 +11192,41 @@ L_0880BBD0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0880BBECu); aot_gpr_6 = (aot_gpr_6 + static_cast(17204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 878u, 0x0880BBECu, 0x0889D588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 284u, 0x0889D588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BBECu) goto L_0880BBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BBEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0880BBFCu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 879u, 0x0880BBFCu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BBFCu) goto L_0880BBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BBFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8511,8 +11252,8 @@ L_0880BC14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BC28: @@ -8524,14 +11265,40 @@ L_0880BC28: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0880BC4Cu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 884u, 0x0880BC4Cu, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BC4Cu) goto L_0880BC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BC4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BC58u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 885u, 0x0880BC58u, 0x0889DB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 388u, 0x0889DB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BC58u) goto L_0880BC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BC58: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_6 = (2231u << 16u); @@ -8539,8 +11306,21 @@ L_0880BC58: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0880BC70u); aot_gpr_6 = (aot_gpr_6 + static_cast(17224)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 886u, 0x0880BC70u, 0x0889D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 265u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 265u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 265u, 0x0889D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BC70u) goto L_0880BC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BC70: aot_gpr_4 = (static_cast(ctx.gpr[18]) < 1 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8555,8 +11335,21 @@ L_0880BC7C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880BC8Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 888u, 0x0880BC8Cu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BC8Cu) goto L_0880BC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BC8C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -8577,8 +11370,8 @@ L_0880BC9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BCB8: @@ -8588,8 +11381,21 @@ L_0880BCB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880BCD0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 891u, 0x0880BCD0u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BCD0u) goto L_0880BCD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BCD0: aot_gpr_31 = (0x0880BCD8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8601,8 +11407,21 @@ L_0880BCD8: aot_gpr_6 = (0u + static_cast(-1)); aot_gpr_31 = (0x0880BCECu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 893u, 0x0880BCECu, 0x0880768Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 512u, 0x0880768Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BCECu) goto L_0880BCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BCEC: aot_gpr_5 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0880BCF8u); @@ -8613,8 +11432,21 @@ L_0880BCF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BD04u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 895u, 0x0880BD04u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BD04u) goto L_0880BD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BD04: aot_gpr_31 = (0x0880BD0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8625,8 +11457,8 @@ L_0880BD0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BD1C: @@ -8636,8 +11468,21 @@ L_0880BD1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880BD34u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 898u, 0x0880BD34u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BD34u) goto L_0880BD34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BD34: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BD40u); @@ -8648,16 +11493,42 @@ L_0880BD40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BD4Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 900u, 0x0880BD4Cu, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BD4Cu) goto L_0880BD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BD4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (0u + static_cast(-1)); aot_gpr_31 = (0x0880BD60u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 901u, 0x0880BD60u, 0x0880768Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 512u, 0x0880768Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BD60u) goto L_0880BD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BD60: aot_gpr_5 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0880BD6Cu); @@ -8668,8 +11539,21 @@ L_0880BD6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BD78u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 903u, 0x0880BD78u, 0x088067C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 320u, 0x088067C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BD78u) goto L_0880BD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BD78: aot_gpr_31 = (0x0880BD80u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8680,8 +11564,8 @@ L_0880BD80: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BD90: @@ -8694,15 +11578,41 @@ L_0880BD90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(140), aot_gpr_31); aot_gpr_31 = (0x0880BDB4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 906u, 0x0880BDB4u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BDB4u) goto L_0880BDB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BDB4: aot_gpr_6 = (ctx.gpr[28] + static_cast(-32040)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BDC4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 907u, 0x0880BDC4u, 0x0889D76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 317u, 0x0889D76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BDC4u) goto L_0880BDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BDC4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8731,8 +11641,8 @@ L_0880BDE8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(17520))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BE00: @@ -8747,14 +11657,40 @@ L_0880BE08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BE14u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 913u, 0x0880BE14u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BE14u) goto L_0880BE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BE14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BE20u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 914u, 0x0880BE20u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BE20u) goto L_0880BE20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BE20: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -8803,8 +11739,21 @@ L_0880BE58: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0880BE64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 921u, 0x0880BE64u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BE64u) goto L_0880BE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BE64: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -8818,8 +11767,21 @@ L_0880BE6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BE7Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 923u, 0x0880BE7Cu, 0x08806D08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 412u, 0x08806D08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BE7Cu) goto L_0880BE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BE7C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -8831,8 +11793,21 @@ L_0880BE8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BE98u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 925u, 0x0880BE98u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BE98u) goto L_0880BE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BE98: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -8846,8 +11821,21 @@ L_0880BEA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BEB0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 927u, 0x0880BEB0u, 0x08806D08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 412u, 0x08806D08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BEB0u) goto L_0880BEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BEB0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -8867,8 +11855,21 @@ L_0880BEC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BED8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 930u, 0x0880BED8u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BED8u) goto L_0880BED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BED8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -8888,8 +11889,21 @@ L_0880BEF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BF00u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 933u, 0x0880BF00u, 0x08806CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 407u, 0x08806CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BF00u) goto L_0880BF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BF00: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -8909,8 +11923,21 @@ L_0880BF18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BF28u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 936u, 0x0880BF28u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BF28u) goto L_0880BF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BF28: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_0880BF2C; @@ -8924,8 +11951,8 @@ L_0880BF2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880BF44: @@ -8944,8 +11971,21 @@ L_0880BF68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BF74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 940u, 0x0880BF74u, 0x088079D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 555u, 0x088079D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BF74u) goto L_0880BF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BF74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BF80u); @@ -8975,8 +12015,21 @@ L_0880BF94: L_0880BF9C: aot_gpr_31 = (0x0880BFA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 945u, 0x0880BFA4u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BFA4u) goto L_0880BFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BFA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BFB0u); @@ -8993,8 +12046,21 @@ L_0880BFBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BFC8u); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 948u, 0x0880BFC8u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BFC8u) goto L_0880BFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BFC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9015,8 +12081,21 @@ L_0880BFD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BFE8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 951u, 0x0880BFE8u, 0x08807294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 466u, 0x08807294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BFE8u) goto L_0880BFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BFE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9028,8 +12107,21 @@ L_0880BFF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880BFFCu); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0001->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0001_entry, 953u, 0x0880BFFCu, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880BFFCu) goto L_0880BFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880BFFC: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.pc = 0x0880C000u; AOT_REGCACHE_SYNC_OUT(); return; diff --git a/profiles/vcs/generated/generated_unit_0002.cpp b/profiles/vcs/generated/generated_unit_0002.cpp index 3e6c0e0..35be5d4 100644 --- a/profiles/vcs/generated/generated_unit_0002.cpp +++ b/profiles/vcs/generated/generated_unit_0002.cpp @@ -872,6 +872,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0880C000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -910,20 +934,59 @@ L_0880C020: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880C030u); ctx.gpr[6] = (ctx.gpr[6] + static_cast(17248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 5u, 0x0880C030u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C030u) goto L_0880C030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C030: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C03Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 6u, 0x0880C03Cu, 0x08807294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 466u, 0x08807294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C03Cu) goto L_0880C03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C03C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C048u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 7u, 0x0880C048u, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C048u) goto L_0880C048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C048: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_0880C04C; @@ -937,8 +1000,8 @@ L_0880C04C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C064: @@ -949,20 +1012,59 @@ L_0880C064: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880C080u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31952)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 10u, 0x0880C080u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C080u) goto L_0880C080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C080: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880C08Cu); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 11u, 0x0880C08Cu, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C08Cu) goto L_0880C08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C08C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880C098u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 12u, 0x0880C098u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C098u) goto L_0880C098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C098: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -997,8 +1099,8 @@ L_0880C0BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C0D0: @@ -1046,8 +1148,21 @@ L_0880C114: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C120u); aot_gpr_5 = (0u | 59u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 23u, 0x0880C120u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C120u) goto L_0880C120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C120: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -1069,8 +1184,21 @@ L_0880C138: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880C148u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 27u, 0x0880C148u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C148u) goto L_0880C148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C148: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_0880C14C; @@ -1084,8 +1212,8 @@ L_0880C14C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C164: @@ -1096,8 +1224,21 @@ L_0880C164: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0880C18Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 30u, 0x0880C18Cu, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C18Cu) goto L_0880C18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C18C: aot_gpr_17 = (2231u << 16u); ctx.gpr[20] = (ctx.gpr[2] | 0u); @@ -1108,8 +1249,21 @@ L_0880C19C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0880C1A8u); aot_gpr_5 = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 32u, 0x0880C1A8u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C1A8u) goto L_0880C1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C1A8: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1123,15 +1277,41 @@ L_0880C1B4: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x0880C1C4u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 34u, 0x0880C1C4u, 0x0889D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 265u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 265u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 265u, 0x0889D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C1C4u) goto L_0880C1C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C1C4: ctx.gpr[6] = (ctx.gpr[18] - ctx.gpr[20]); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C1D4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 35u, 0x0880C1D4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C1D4u) goto L_0880C1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C1D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C1E0u); @@ -1151,14 +1331,40 @@ L_0880C1EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C1F8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 38u, 0x0880C1F8u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C1F8u) goto L_0880C1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C1F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C204u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 39u, 0x0880C204u, 0x08807904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C204u) goto L_0880C204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C204: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1171,8 +1377,8 @@ L_0880C204: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C224: @@ -1189,8 +1395,21 @@ L_0880C224: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x0880C258u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 41u, 0x0880C258u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C258u) goto L_0880C258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C258: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C264u); @@ -1201,14 +1420,40 @@ L_0880C264: aot_gpr_5 = (ctx.gpr[28] + static_cast(-31932)); aot_gpr_31 = (0x0880C270u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 43u, 0x0880C270u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C270u) goto L_0880C270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C270: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C27Cu); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 44u, 0x0880C27Cu, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C27Cu) goto L_0880C27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C27C: ctx.gpr[18] = (0u | 2u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1239,8 +1484,21 @@ L_0880C2B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C2BCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 49u, 0x0880C2BCu, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C2BCu) goto L_0880C2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C2BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C2C8u); @@ -1274,8 +1532,21 @@ L_0880C2E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C2F0u); aot_gpr_5 = (aot_gpr_5 + static_cast(17312)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 54u, 0x0880C2F0u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C2F0u) goto L_0880C2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C2F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1317,14 +1588,40 @@ L_0880C32C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C338u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 61u, 0x0880C338u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C338u) goto L_0880C338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C338: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C344u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 62u, 0x0880C344u, 0x0889E124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 470u, 0x0889E124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C344u) goto L_0880C344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C344: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == ctx.gpr[18]; @@ -1352,20 +1649,59 @@ L_0880C360: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C370u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 66u, 0x0880C370u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C370u) goto L_0880C370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C370: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C37Cu); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 67u, 0x0880C37Cu, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C37Cu) goto L_0880C37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C37C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C388u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 68u, 0x0880C388u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C388u) goto L_0880C388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C388: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C394u); @@ -1376,14 +1712,40 @@ L_0880C394: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C3A0u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 70u, 0x0880C3A0u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C3A0u) goto L_0880C3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C3A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C3ACu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 71u, 0x0880C3ACu, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C3ACu) goto L_0880C3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C3AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C3B8u); @@ -1395,26 +1757,78 @@ L_0880C3B8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0880C3C8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 73u, 0x0880C3C8u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C3C8u) goto L_0880C3C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C3C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C3D4u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 74u, 0x0880C3D4u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C3D4u) goto L_0880C3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C3D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C3E0u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 75u, 0x0880C3E0u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C3E0u) goto L_0880C3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C3E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C3ECu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 76u, 0x0880C3ECu, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C3ECu) goto L_0880C3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C3EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C3F8u); @@ -1447,23 +1861,62 @@ L_0880C414: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880C428u); aot_gpr_17 = (ctx.gpr[6] + static_cast(17384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 81u, 0x0880C428u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C428u) goto L_0880C428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C428: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C438u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 82u, 0x0880C438u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C438u) goto L_0880C438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C438: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0880C44Cu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 83u, 0x0880C44Cu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C44Cu) goto L_0880C44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C44C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1484,8 +1937,21 @@ L_0880C45C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880C470u); aot_gpr_17 = (ctx.gpr[6] + static_cast(17340)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 86u, 0x0880C470u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C470u) goto L_0880C470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C470: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0880C47Cu); @@ -1497,8 +1963,21 @@ L_0880C47C: ctx.gpr[6] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0880C490u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 88u, 0x0880C490u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C490u) goto L_0880C490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C490: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1516,8 +1995,21 @@ L_0880C4A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C4B0u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 91u, 0x0880C4B0u, 0x088067C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 320u, 0x088067C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C4B0u) goto L_0880C4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C4B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C4BCu); @@ -1534,8 +2026,21 @@ L_0880C4C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C4D4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 94u, 0x0880C4D4u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C4D4u) goto L_0880C4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C4D4: ctx.gpr[2] = (ctx.gpr[19] | 0u); goto L_0880C4D8; @@ -1551,8 +2056,8 @@ L_0880C4D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C4F8: @@ -1567,8 +2072,21 @@ L_0880C4F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0880C524u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 97u, 0x0880C524u, 0x088064C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 286u, 0x088064C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C524u) goto L_0880C524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C524: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1581,21 +2099,60 @@ L_0880C52C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880C53Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(17416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 99u, 0x0880C53Cu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C53Cu) goto L_0880C53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C53C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C54Cu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 100u, 0x0880C54Cu, 0x08806564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 295u, 0x08806564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C54Cu) goto L_0880C54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C54C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C558u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 101u, 0x0880C558u, 0x08872734u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 592u, 0x08872734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C558u) goto L_0880C558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C558: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1613,8 +2170,21 @@ L_0880C568: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880C578u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 104u, 0x0880C578u, 0x088064C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 286u, 0x088064C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C578u) goto L_0880C578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C578: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1627,15 +2197,41 @@ L_0880C580: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880C590u); aot_gpr_5 = (aot_gpr_5 + static_cast(17448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 106u, 0x0880C590u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C590u) goto L_0880C590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C590: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880C5A0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 107u, 0x0880C5A0u, 0x08806564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 295u, 0x08806564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C5A0u) goto L_0880C5A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C5A0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -1649,8 +2245,21 @@ L_0880C5A8: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880C5B8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 109u, 0x0880C5B8u, 0x08806564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 295u, 0x08806564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C5B8u) goto L_0880C5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C5B8: ctx.gpr[2] = (0u + static_cast(-1)); goto L_0880C5BC; @@ -1664,8 +2273,8 @@ L_0880C5BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C5D4: @@ -1676,8 +2285,21 @@ L_0880C5D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880C5F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 112u, 0x0880C5F0u, 0x08806CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 407u, 0x08806CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C5F0u) goto L_0880C5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C5F0: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 != 0u; @@ -1692,8 +2314,21 @@ L_0880C5FC: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880C60Cu); ctx.gpr[6] = (ctx.gpr[6] + static_cast(17476)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 114u, 0x0880C60Cu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C60Cu) goto L_0880C60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C60C: aot_gpr_31 = (0x0880C614u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1723,8 +2358,21 @@ L_0880C63C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C648u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 119u, 0x0880C648u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C648u) goto L_0880C648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C648: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 2u); @@ -1744,8 +2392,21 @@ L_0880C65C: aot_gpr_5 = (0u - aot_gpr_17); aot_gpr_31 = (0x0880C66Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 122u, 0x0880C66Cu, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C66Cu) goto L_0880C66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C66C: ctx.gpr[2] = (aot_gpr_17 | 0u); goto L_0880C670; @@ -1758,8 +2419,8 @@ L_0880C670: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C684: @@ -1770,8 +2431,21 @@ L_0880C684: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0880C6A0u); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 125u, 0x0880C6A0u, 0x08806CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 407u, 0x08806CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C6A0u) goto L_0880C6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C6A0: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0880C6ACu); @@ -1796,8 +2470,21 @@ L_0880C6C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C6D4u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 129u, 0x0880C6D4u, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C6D4u) goto L_0880C6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C6D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1809,25 +2496,77 @@ L_0880C6DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C6E8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 131u, 0x0880C6E8u, 0x0889D184u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 221u, 0x0889D184u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C6E8u) goto L_0880C6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C6E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C6F4u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 132u, 0x0880C6F4u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C6F4u) goto L_0880C6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C6F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C700u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 133u, 0x0880C700u, 0x08807904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C700u) goto L_0880C700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C700: aot_gpr_31 = (0x0880C708u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 134u, 0x0880C708u, 0x08807890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 538u, 0x08807890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C708u) goto L_0880C708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C708: ctx.gpr[2] = (aot_gpr_17 | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1838,8 +2577,8 @@ L_0880C708: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C720: @@ -1848,8 +2587,21 @@ L_0880C720: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0880C73Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 136u, 0x0880C73Cu, 0x088065D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 298u, 0x088065D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C73Cu) goto L_0880C73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C73C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_17 = (0u | 1u); @@ -1871,8 +2623,21 @@ L_0880C75C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C768u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 139u, 0x0880C768u, 0x088068E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 331u, 0x088068E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C768u) goto L_0880C768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C768: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1888,8 +2653,21 @@ L_0880C774: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880C784u); ctx.gpr[6] = (ctx.gpr[6] + static_cast(17496)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 142u, 0x0880C784u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C784u) goto L_0880C784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C784: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C790u); @@ -1901,8 +2679,21 @@ L_0880C790: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0880C7A0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 144u, 0x0880C7A0u, 0x08806564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 295u, 0x08806564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C7A0u) goto L_0880C7A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C7A0: ctx.gpr[2] = (aot_gpr_17 | 0u); { std::uint32_t aot_run_words[4]{}; @@ -1914,8 +2705,8 @@ L_0880C7A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C7BC: @@ -1932,16 +2723,29 @@ L_0880C7D0: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x0880C7E8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-14716)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 147u, 0x0880C7E8u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C7E8u) goto L_0880C7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C7E8: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C7FC: @@ -1956,15 +2760,28 @@ L_0880C810: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C81Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 150u, 0x0880C81Cu, 0x08872848u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 607u, 0x08872848u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C81Cu) goto L_0880C81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C81C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C82C: @@ -1977,8 +2794,21 @@ L_0880C82C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(108), aot_gpr_31); aot_gpr_31 = (0x0880C850u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 152u, 0x0880C850u, 0x08806CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 407u, 0x08806CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C850u) goto L_0880C850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C850: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 != 0u; @@ -1993,8 +2823,21 @@ L_0880C85C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0880C86Cu); ctx.gpr[6] = (ctx.gpr[6] + static_cast(17476)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 154u, 0x0880C86Cu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C86Cu) goto L_0880C86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C86C: { const bool branch_taken = aot_gpr_16 != aot_gpr_17; if (branch_taken) { @@ -2007,8 +2850,21 @@ L_0880C874: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C884u); ctx.gpr[6] = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 156u, 0x0880C884u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C884u) goto L_0880C884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C884: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2021,8 +2877,21 @@ L_0880C88C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0880C89Cu); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 158u, 0x0880C89Cu, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C89Cu) goto L_0880C89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C89C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2047,8 +2916,21 @@ L_0880C8B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C8C4u); ctx.gpr[6] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 162u, 0x0880C8C4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C8C4u) goto L_0880C8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C8C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2061,8 +2943,21 @@ L_0880C8CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C8DCu); ctx.gpr[6] = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 164u, 0x0880C8DCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C8DCu) goto L_0880C8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C8DC: ctx.gpr[2] = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -2074,8 +2969,8 @@ L_0880C8DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C8F8: @@ -2086,8 +2981,21 @@ L_0880C8F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0880C914u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 166u, 0x0880C914u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C914u) goto L_0880C914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C914: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C920u); @@ -2101,40 +3009,118 @@ L_0880C920: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0880C938u); ctx.gpr[6] = (ctx.gpr[6] + static_cast(16640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 168u, 0x0880C938u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C938u) goto L_0880C938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C938: aot_gpr_5 = (ctx.gpr[28] + static_cast(-31876)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C948u); ctx.gpr[6] = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 169u, 0x0880C948u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C948u) goto L_0880C948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C948: aot_gpr_5 = (ctx.gpr[28] + static_cast(-31864)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C958u); ctx.gpr[6] = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 170u, 0x0880C958u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C958u) goto L_0880C958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C958: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C964u); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 171u, 0x0880C964u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C964u) goto L_0880C964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C964: aot_gpr_5 = (ctx.gpr[28] + static_cast(-31852)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C974u); ctx.gpr[6] = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 172u, 0x0880C974u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C974u) goto L_0880C974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C974: aot_gpr_31 = (0x0880C97Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 173u, 0x0880C97Cu, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C97Cu) goto L_0880C97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C97C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C988u); @@ -2145,55 +3131,146 @@ L_0880C988: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C994u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 175u, 0x0880C994u, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C994u) goto L_0880C994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C994: aot_gpr_5 = (ctx.gpr[28] + static_cast(-31840)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C9A4u); ctx.gpr[6] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 176u, 0x0880C9A4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C9A4u) goto L_0880C9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C9A4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-31832)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C9B4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 177u, 0x0880C9B4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C9B4u) goto L_0880C9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C9B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C9C0u); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 178u, 0x0880C9C0u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C9C0u) goto L_0880C9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C9C0: aot_gpr_5 = (2177u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x0880C9D4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-16572)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 179u, 0x0880C9D4u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C9D4u) goto L_0880C9D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C9D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C9E0u); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 180u, 0x0880C9E0u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C9E0u) goto L_0880C9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C9E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880C9ECu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 181u, 0x0880C9ECu, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880C9ECu) goto L_0880C9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880C9EC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880C9FC: @@ -2210,25 +3287,77 @@ L_0880CA10: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0880CA28u); ctx.gpr[6] = (ctx.gpr[6] + static_cast(16848)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 184u, 0x0880CA28u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880CA28u) goto L_0880CA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880CA28: aot_gpr_31 = (0x0880CA30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 185u, 0x0880CA30u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880CA30u) goto L_0880CA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880CA30: aot_gpr_5 = (ctx.gpr[28] + static_cast(-31932)); aot_gpr_31 = (0x0880CA3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 186u, 0x0880CA3Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880CA3Cu) goto L_0880CA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880CA3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880CA48u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 187u, 0x0880CA48u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880CA48u) goto L_0880CA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880CA48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880CA54u); @@ -2241,8 +3370,8 @@ L_0880CA54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880CA68: @@ -2313,8 +3442,8 @@ L_0880CAE0: goto L_0880CAE4; L_0880CAE4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880CAEC: @@ -2349,8 +3478,8 @@ L_0880CAEC: aot_mem.aot_direct_store32_block(ctx.gpr[6] + static_cast(16), aot_run_words); } jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast(28), std::bit_cast(aot_fpr_15)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880CB6C: @@ -2439,8 +3568,8 @@ L_0880CBD4: goto L_0880CBE8; L_0880CBE8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880CBF0: @@ -2484,8 +3613,8 @@ L_0880CC34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880CC40: @@ -2906,8 +4035,8 @@ L_0880CF5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880CF70: @@ -3028,8 +4157,8 @@ L_0880D070: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880D0D4: @@ -3054,8 +4183,21 @@ L_0880D100: L_0880D108: aot_gpr_31 = (0x0880D110u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 293u, 0x0880D110u, 0x089BAA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 554u, 0x089BAA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D110u) goto L_0880D110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D110: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(6848), static_cast(ctx.gpr[2])); aot_fpr_12 = std::bit_cast(0u); @@ -3147,14 +4289,14 @@ L_0880D1EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880D228: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880D230: @@ -3433,16 +4575,42 @@ L_0880D4E4: ctx.gpr[6] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880D4F8u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 327u, 0x0880D4F8u, 0x08AF4D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 93u, 0x08AF4D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D4F8u) goto L_0880D4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D4F8: aot_gpr_5 = (2238u << 16u); aot_gpr_4 = (0u | 5u); ctx.gpr[6] = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0880D50Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 328u, 0x0880D50Cu, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D50Cu) goto L_0880D50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D50C: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(308), aot_run_words); @@ -3462,8 +4630,8 @@ L_0880D50C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880D548: @@ -3491,8 +4659,21 @@ L_0880D57C: L_0880D584: aot_gpr_31 = (0x0880D58Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 332u, 0x0880D58Cu, 0x089BAA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 554u, 0x089BAA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D58Cu) goto L_0880D58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D58C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(6848), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(2052))); @@ -3517,8 +4698,21 @@ L_0880D5A8: L_0880D5B0: aot_gpr_31 = (0x0880D5B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 336u, 0x0880D5B8u, 0x089BABACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 580u, 0x089BABACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D5B8u) goto L_0880D5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D5B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3572,8 +4766,21 @@ L_0880D604: goto L_0880D60C; L_0880D60C: aot_gpr_31 = (0x0880D614u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 344u, 0x0880D614u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D614u) goto L_0880D614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D614: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3583,8 +4790,21 @@ L_0880D614: } L_0880D61C: aot_gpr_31 = (0x0880D624u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 346u, 0x0880D624u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D624u) goto L_0880D624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D624: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3706,8 +4926,21 @@ L_0880D6E0: } L_0880D738: aot_gpr_31 = (0x0880D740u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 356u, 0x0880D740u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D740u) goto L_0880D740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D740: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); @@ -3743,8 +4976,21 @@ L_0880D794: L_0880D79C: aot_gpr_31 = (0x0880D7A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 360u, 0x0880D7A4u, 0x089C6D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 633u, 0x089C6D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D7A4u) goto L_0880D7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D7A4: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[19]; if (branch_taken) { @@ -3777,8 +5023,21 @@ L_0880D7C4: L_0880D7D0: aot_gpr_31 = (0x0880D7D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 366u, 0x0880D7D8u, 0x08816C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 532u, 0x08816C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D7D8u) goto L_0880D7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D7D8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); @@ -3791,8 +5050,8 @@ L_0880D7D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880D7F8: @@ -3842,8 +5101,21 @@ L_0880D88C: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0880D89Cu); ctx.gpr[6] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 370u, 0x0880D89Cu, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880D89Cu) goto L_0880D89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880D89C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(6851))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3909,8 +5181,8 @@ L_0880D8FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880D928: @@ -4042,8 +5314,8 @@ L_0880DA50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DA6C: @@ -4116,8 +5388,8 @@ L_0880DAFC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DB14: @@ -4154,8 +5426,8 @@ L_0880DB44: } L_0880DB54: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DB5C: @@ -4173,8 +5445,21 @@ L_0880DB84: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0880DB94u); ctx.gpr[6] = (0u | 800u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 406u, 0x0880DB94u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880DB94u) goto L_0880DB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880DB94: aot_gpr_17 = (aot_gpr_17 + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(800)); @@ -4196,8 +5481,8 @@ L_0880DBA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DBC0: @@ -4213,8 +5498,21 @@ L_0880DBE0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0880DBF0u); ctx.gpr[6] = (0u | 800u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 410u, 0x0880DBF0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880DBF0u) goto L_0880DBF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880DBF0: aot_gpr_17 = (aot_gpr_17 + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(800)); @@ -4236,8 +5534,8 @@ L_0880DC04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DC1C: @@ -4298,8 +5596,8 @@ L_0880DCA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DCB8: @@ -4354,8 +5652,8 @@ L_0880DD3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DD60: @@ -4432,8 +5730,8 @@ L_0880DE0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DE38: @@ -4542,8 +5840,8 @@ L_0880DF24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880DF30: @@ -4647,8 +5945,8 @@ L_0880E030: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E03C: @@ -4766,8 +6064,8 @@ L_0880E14C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E158: @@ -4831,8 +6129,8 @@ L_0880E1C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E1D8: @@ -4875,8 +6173,8 @@ L_0880E22C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E240: @@ -4920,8 +6218,8 @@ L_0880E288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E29C: @@ -4965,8 +6263,8 @@ L_0880E2E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E2F8: @@ -5030,8 +6328,8 @@ L_0880E360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E374: @@ -5086,8 +6384,8 @@ L_0880E3C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E3DC: @@ -5138,8 +6436,8 @@ L_0880E43C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E450: @@ -5186,8 +6484,8 @@ L_0880E498: goto L_0880E49C; L_0880E49C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E4A4: @@ -5200,8 +6498,21 @@ L_0880E4A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0880E4C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 502u, 0x0880E4C8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880E4C8u) goto L_0880E4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880E4C8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -5260,8 +6571,21 @@ L_0880E50C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_5); aot_gpr_31 = (0x0880E528u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 510u, 0x0880E528u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880E528u) goto L_0880E528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880E528: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -5335,8 +6659,8 @@ L_0880E5A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E5BC: @@ -5352,8 +6676,21 @@ L_0880E5BC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } aot_gpr_31 = (0x0880E5F4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 521u, 0x0880E5F4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880E5F4u) goto L_0880E5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880E5F4: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -5498,8 +6835,8 @@ L_0880E720: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880E748: @@ -5625,8 +6962,21 @@ L_0880E894: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(0)))))); aot_gpr_31 = (0x0880E8ACu); ctx.gpr[23] = (ctx.gpr[20] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 544u, 0x0880E8ACu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880E8ACu) goto L_0880E8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880E8AC: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(4))); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -5671,8 +7021,21 @@ L_0880E8E0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0880E8F0u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 550u, 0x0880E8F0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880E8F0u) goto L_0880E8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880E8F0: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(52))); @@ -5737,8 +7100,21 @@ L_0880E954: ctx.gpr[11] = (0u | 1024u); aot_gpr_31 = (0x0880E994u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 557u, 0x0880E994u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880E994u) goto L_0880E994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880E994: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); goto L_0880E998; @@ -5778,8 +7154,8 @@ L_0880E9C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EA04: @@ -5837,14 +7213,14 @@ L_0880EA70: L_0880EA74: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EA7C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EA84: @@ -5879,8 +7255,21 @@ L_0880EAC8: } L_0880EAD8: aot_gpr_31 = (0x0880EAE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 571u, 0x0880EAE0u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880EAE0u) goto L_0880EAE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880EAE0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5960,15 +7349,15 @@ L_0880EB38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EB5C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(6844), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EB64: @@ -6045,8 +7434,21 @@ L_0880EC2C: goto L_0880EC30; L_0880EC30: aot_gpr_31 = (0x0880EC38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 583u, 0x0880EC38u, 0x089BAA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 558u, 0x089BAA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880EC38u) goto L_0880EC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880EC38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6065,8 +7467,21 @@ L_0880EC4C: goto L_0880EC50; L_0880EC50: aot_gpr_31 = (0x0880EC58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 587u, 0x0880EC58u, 0x089BAAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 565u, 0x089BAAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880EC58u) goto L_0880EC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880EC58: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); @@ -6086,8 +7501,21 @@ L_0880EC70: goto L_0880EC74; L_0880EC74: aot_gpr_31 = (0x0880EC7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 591u, 0x0880EC7Cu, 0x089BAAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 565u, 0x089BAAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880EC7Cu) goto L_0880EC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880EC7C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -6110,8 +7538,21 @@ L_0880ECA4: goto L_0880ECA8; L_0880ECA8: aot_gpr_31 = (0x0880ECB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 595u, 0x0880ECB0u, 0x089BAAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 561u, 0x089BAAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880ECB0u) goto L_0880ECB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880ECB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6130,8 +7571,21 @@ L_0880ECC4: goto L_0880ECC8; L_0880ECC8: aot_gpr_31 = (0x0880ECD0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 599u, 0x0880ECD0u, 0x089BAAFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 569u, 0x089BAAFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880ECD0u) goto L_0880ECD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880ECD0: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); @@ -6151,8 +7605,21 @@ L_0880ECE8: goto L_0880ECEC; L_0880ECEC: aot_gpr_31 = (0x0880ECF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 603u, 0x0880ECF4u, 0x089BAAFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 569u, 0x089BAAFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880ECF4u) goto L_0880ECF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880ECF4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -6171,8 +7638,8 @@ L_0880ED08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880ED24: @@ -6211,8 +7678,8 @@ L_0880ED24: aot_fpr_12 = aot_fpr_12 + aot_fpr_13; jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EDB0: @@ -6277,8 +7744,8 @@ L_0880EE24: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EE6C: @@ -6346,8 +7813,8 @@ L_0880EF20: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EF34: @@ -6401,15 +7868,15 @@ L_0880EF34: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880EFFC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(6900), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F004: @@ -6447,8 +7914,8 @@ L_0880F040: goto L_0880F054; L_0880F054: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F05C: @@ -6506,8 +7973,8 @@ L_0880F0D4: } L_0880F0DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F0E4: @@ -6602,8 +8069,8 @@ L_0880F138: } L_0880F1B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F1BC: @@ -6623,8 +8090,21 @@ L_0880F1D8: aot_gpr_16 = (aot_gpr_16 + static_cast(32304)); aot_gpr_31 = (0x0880F1E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 636u, 0x0880F1E8u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880F1E8u) goto L_0880F1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880F1E8: aot_gpr_4 = (0u | 3u); if (ctx.gpr[2] != aot_gpr_4) { @@ -6788,8 +8268,21 @@ L_0880F2F8: } L_0880F308: aot_gpr_31 = (0x0880F310u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 645u, 0x0880F310u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880F310u) goto L_0880F310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880F310: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6827,8 +8320,21 @@ L_0880F338: } L_0880F348: aot_gpr_31 = (0x0880F350u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 650u, 0x0880F350u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880F350u) goto L_0880F350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880F350: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6872,8 +8378,8 @@ L_0880F3A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F3B4: @@ -6892,8 +8398,8 @@ L_0880F3C4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(17632))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F3DC: @@ -7098,8 +8604,8 @@ L_0880F4E0: goto L_0880F4E4; L_0880F4E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F4EC: @@ -7247,8 +8753,8 @@ L_0880F5FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F60C: @@ -7375,8 +8881,21 @@ L_0880F790: ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x0880F7BCu); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 709u, 0x0880F7BCu, 0x08AF46FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 80u, 0x08AF46FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880F7BCu) goto L_0880F7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880F7BC: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(52), aot_run_words); @@ -7391,8 +8910,8 @@ L_0880F7BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880F7E4: @@ -7675,8 +9194,21 @@ L_0880FA40: ctx.gpr[6] = (ctx.gpr[20] << 3u); aot_gpr_31 = (0x0880FA4Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 741u, 0x0880FA4Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880FA4Cu) goto L_0880FA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880FA4C: ctx.gpr[2] = (ctx.gpr[20] | 0u); goto L_0880FA50; @@ -7698,8 +9230,8 @@ L_0880FA50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880FA88: @@ -7876,15 +9408,41 @@ L_0880FCB4: aot_gpr_4 = (0u | 8u); aot_gpr_31 = (0x0880FCC0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 758u, 0x0880FCC0u, 0x08AF4E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 97u, 0x08AF4E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880FCC0u) goto L_0880FCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880FCC0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_gpr_4 = (0u | 5u); aot_gpr_31 = (0x0880FCD0u); ctx.gpr[6] = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 759u, 0x0880FCD0u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880FCD0u) goto L_0880FCD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880FCD0: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); ctx.gpr[22] = (ctx.gpr[22] + static_cast(8)); @@ -7916,8 +9474,8 @@ L_0880FCE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880FD24: @@ -7999,8 +9557,21 @@ L_0880FDEC: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0880FE28u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 766u, 0x0880FE28u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880FE28u) goto L_0880FE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880FE28: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -8025,8 +9596,21 @@ L_0880FE48: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0880FE78u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0002->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0002_entry, 768u, 0x0880FE78u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0880FE78u) goto L_0880FE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0880FE78: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(36), aot_run_words); @@ -8044,8 +9628,8 @@ L_0880FE78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0880FEAC: diff --git a/profiles/vcs/generated/generated_unit_0003.cpp b/profiles/vcs/generated/generated_unit_0003.cpp index 761c1f8..d96ec79 100644 --- a/profiles/vcs/generated/generated_unit_0003.cpp +++ b/profiles/vcs/generated/generated_unit_0003.cpp @@ -1105,6 +1105,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08810000u; + if (local_delta_v813 >= 16364u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1296,8 +1320,21 @@ L_08810150: aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast(6852), aot_run_words); } aot_gpr_31 = (0x08810178u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(6896), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 30u, 0x08810178u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810178u) goto L_08810178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810178: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -1326,8 +1363,8 @@ L_0881019C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088101B8: @@ -1336,18 +1373,57 @@ L_088101B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088101CCu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 35u, 0x088101CCu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088101CCu) goto L_088101CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088101CC: aot_gpr_31 = (0x088101D4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-31784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 36u, 0x088101D4u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088101D4u) goto L_088101D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088101D4: aot_gpr_31 = (0x088101DCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 37u, 0x088101DCu, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088101DCu) goto L_088101DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088101DC: aot_gpr_4 = (aot_gpr_16 + static_cast(6624)); aot_gpr_31 = (0x088101E8u); @@ -1676,15 +1752,28 @@ L_08810460: AOT_REGCACHE_SYNC_OUT(); return; L_0881046C: aot_gpr_31 = (0x08810474u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 92u, 0x08810474u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810474u) goto L_08810474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810474: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08810484: @@ -1807,8 +1896,21 @@ L_088105CC: L_088105D8: aot_gpr_31 = (0x088105E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 106u, 0x088105E0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088105E0u) goto L_088105E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088105E0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1926,8 +2028,21 @@ L_08810668: aot_gpr_5 = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); aot_gpr_31 = (0x0881067Cu); ctx.gpr[6] = (ctx.gpr[6] & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 118u, 0x0881067Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881067Cu) goto L_0881067C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881067C: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1943,8 +2058,21 @@ L_08810688: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x088106A0u); ctx.gpr[30] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 120u, 0x088106A0u, 0x08823710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 639u, 0x08823710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088106A0u) goto L_088106A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088106A0: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -1965,8 +2093,21 @@ L_088106B0: L_088106B8: aot_gpr_31 = (0x088106C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 123u, 0x088106C0u, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088106C0u) goto L_088106C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088106C0: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1999,8 +2140,21 @@ L_088106DC: ctx.gpr[6] = (aot_gpr_29 + static_cast(116)); aot_gpr_31 = (0x088106ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 126u, 0x088106ECu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088106ECu) goto L_088106EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088106EC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(116))); @@ -2117,8 +2271,21 @@ L_08810778: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08810798u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 133u, 0x08810798u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810798u) goto L_08810798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810798: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(ctx.fpr[24])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); @@ -2140,8 +2307,21 @@ L_08810798: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088107ECu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 134u, 0x088107ECu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088107ECu) goto L_088107EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088107EC: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2330,8 +2510,21 @@ L_08810968: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(140))); aot_gpr_31 = (0x08810980u); ctx.gpr[6] = (ctx.gpr[6] >> 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 145u, 0x08810980u, 0x0880F3B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 654u, 0x0880F3B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810980u) goto L_08810980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810980: aot_gpr_4 = (aot_gpr_2 >> 24u); aot_gpr_5 = (aot_gpr_2 >> 16u); @@ -2356,8 +2549,21 @@ L_08810980: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x088109DCu); aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 146u, 0x088109DCu, 0x08AA9084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 81u, 0x08AA9084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088109DCu) goto L_088109DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088109DC: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[23]) < 75 ? 1u : 0u); @@ -2408,8 +2614,8 @@ L_08810A10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08810A58: @@ -2445,8 +2651,21 @@ L_08810AB4: L_08810ABC: aot_gpr_31 = (0x08810AC4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 155u, 0x08810AC4u, 0x089BABACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 580u, 0x089BABACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810AC4u) goto L_08810AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810AC4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2500,12 +2719,38 @@ L_08810B18: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08810B38u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 163u, 0x08810B38u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810B38u) goto L_08810B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810B38: aot_gpr_31 = (0x08810B40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 164u, 0x08810B40u, 0x08960590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 68u, 0x08960590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810B40u) goto L_08810B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810B40: aot_gpr_5 = (16309u << 16u); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2572,8 +2817,21 @@ L_08810BB8: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); aot_gpr_31 = (0x08810BCCu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 171u, 0x08810BCCu, 0x08ADC7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 156u, 0x08ADC7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810BCCu) goto L_08810BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810BCC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(72), static_cast(aot_gpr_4)); @@ -2595,8 +2853,21 @@ L_08810BF0: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); aot_gpr_31 = (0x08810C04u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 173u, 0x08810C04u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810C04u) goto L_08810C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810C04: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(72), static_cast(aot_gpr_4)); @@ -2650,8 +2921,21 @@ L_08810C74: ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(73))); aot_gpr_31 = (0x08810C9Cu); ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(74))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 178u, 0x08810C9Cu, 0x0880F60Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 705u, 0x0880F60Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810C9Cu) goto L_08810C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810C9C: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(6840))); @@ -2673,8 +2957,21 @@ L_08810CA4: ctx.gpr[8] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(73))); aot_gpr_31 = (0x08810CD4u); ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(74))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 180u, 0x08810CD4u, 0x0880F60Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 705u, 0x0880F60Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810CD4u) goto L_08810CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810CD4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(6840))); goto L_08810CD8; @@ -2704,21 +3001,60 @@ L_08810CD8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08810D3Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 182u, 0x08810D3Cu, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810D3Cu) goto L_08810D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810D3C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08810D48u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 183u, 0x08810D48u, 0x0880F05Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 620u, 0x0880F05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810D48u) goto L_08810D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810D48: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08810D58u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 184u, 0x08810D58u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810D58u) goto L_08810D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810D58: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -2729,8 +3065,21 @@ L_08810D58: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08810D7Cu); ctx.gpr[9] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 185u, 0x08810D7Cu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810D7Cu) goto L_08810D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810D7C: ctx.gpr[17] = (0u | 0u); aot_gpr_16 = (ctx.gpr[19] | 0u); @@ -2855,8 +3204,21 @@ L_08810E2C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08810E38u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 202u, 0x08810E38u, 0x088148C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 142u, 0x088148C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810E38u) goto L_08810E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810E38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2900,8 +3262,21 @@ L_08810E70: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08810E7Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 208u, 0x08810E7Cu, 0x08815114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 247u, 0x08815114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810E7Cu) goto L_08810E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810E7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3067,8 +3442,21 @@ L_08810F74: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08810F80u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 230u, 0x08810F80u, 0x088148C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 142u, 0x088148C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810F80u) goto L_08810F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810F80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3104,8 +3492,21 @@ L_08810FAC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08810FB8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 235u, 0x08810FB8u, 0x08815114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 247u, 0x08815114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08810FB8u) goto L_08810FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08810FB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3294,8 +3695,21 @@ L_088110DC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088110E8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 258u, 0x088110E8u, 0x088148C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 142u, 0x088148C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088110E8u) goto L_088110E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088110E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3307,8 +3721,21 @@ L_088110F0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088110FCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 260u, 0x088110FCu, 0x088148C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 142u, 0x088148C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088110FCu) goto L_088110FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088110FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3461,8 +3888,21 @@ L_088111D8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088111E8u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 279u, 0x088111E8u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088111E8u) goto L_088111E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088111E8: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3484,8 +3924,21 @@ L_08811200: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08811210u); ctx.gpr[6] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 282u, 0x08811210u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811210u) goto L_08811210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811210: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(256))); @@ -3510,8 +3963,21 @@ L_0881123C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08811248u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 286u, 0x08811248u, 0x08947B90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 779u, 0x08947B90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811248u) goto L_08811248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811248: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3543,8 +4009,21 @@ L_08811278: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08811288u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 291u, 0x08811288u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811288u) goto L_08811288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811288: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3567,8 +4046,21 @@ L_08811294: L_088112AC: aot_gpr_31 = (0x088112B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 294u, 0x088112B4u, 0x089D3458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 597u, 0x089D3458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088112B4u) goto L_088112B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088112B4: aot_gpr_31 = (0x088112BCu); aot_gpr_16 = (aot_gpr_2 | 0u); @@ -3577,8 +4069,21 @@ L_088112B4: L_088112BC: aot_gpr_31 = (0x088112C4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 296u, 0x088112C4u, 0x0890EF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 696u, 0x0890EF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088112C4u) goto L_088112C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088112C4: { const bool branch_taken = aot_gpr_16 != aot_gpr_2; if (branch_taken) { @@ -3624,8 +4129,21 @@ L_088112FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08811308u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 303u, 0x08811308u, 0x08815114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 247u, 0x08815114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811308u) goto L_08811308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811308: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3646,8 +4164,21 @@ L_08811310: L_08811320: aot_gpr_31 = (0x08811328u); aot_gpr_4 = (aot_gpr_29 + static_cast(40)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 306u, 0x08811328u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811328u) goto L_08811328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811328: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(6840))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5956))); @@ -3688,8 +4219,21 @@ L_08811360: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(112), aot_run_words); } aot_gpr_31 = (0x08811384u); aot_gpr_5 = (aot_gpr_29 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 308u, 0x08811384u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811384u) goto L_08811384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811384: aot_gpr_16 = (aot_gpr_29 + static_cast(24)); aot_gpr_4 = (16256u << 16u); @@ -3722,8 +4266,21 @@ L_088113A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(132), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088113D4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 311u, 0x088113D4u, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088113D4u) goto L_088113D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088113D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3733,8 +4290,21 @@ L_088113D4: } L_088113DC: aot_gpr_31 = (0x088113E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 313u, 0x088113E4u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088113E4u) goto L_088113E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088113E4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -3745,8 +4315,21 @@ L_088113E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(140), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08811408u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 314u, 0x08811408u, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811408u) goto L_08811408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811408: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3805,8 +4388,21 @@ L_0881144C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0881147Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 319u, 0x0881147Cu, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881147Cu) goto L_0881147C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881147C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3830,8 +4426,21 @@ L_08811484: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08811498u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 321u, 0x08811498u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811498u) goto L_08811498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811498: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3891,21 +4500,60 @@ L_08811498: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088114E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 322u, 0x088114E8u, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088114E8u) goto L_088114E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088114E8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088114F4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 323u, 0x088114F4u, 0x0880F05Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 620u, 0x0880F05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088114F4u) goto L_088114F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088114F4: aot_gpr_5 = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08811504u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 324u, 0x08811504u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811504u) goto L_08811504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811504: aot_gpr_31 = (0x0881150Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881150Cu) goto L_0881150C; @@ -3952,8 +4600,21 @@ L_08811544: } L_08811554: aot_gpr_31 = (0x0881155Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 331u, 0x0881155Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881155Cu) goto L_0881155C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881155C: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3968,8 +4629,21 @@ L_08811564: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08811578u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 333u, 0x08811578u, 0x0881651Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 460u, 0x0881651Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811578u) goto L_08811578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811578: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(308), aot_run_words); @@ -3989,8 +4663,8 @@ L_08811578: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088115B4: @@ -4094,8 +4768,21 @@ L_088116D4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088116E4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 342u, 0x088116E4u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088116E4u) goto L_088116E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088116E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4372,8 +5059,21 @@ L_088118CC: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088118DCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 373u, 0x088118DCu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088118DCu) goto L_088118DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088118DC: aot_gpr_4 = (ctx.gpr[17] + static_cast(5)); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4396,8 +5096,21 @@ L_08811914: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08811924u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 375u, 0x08811924u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811924u) goto L_08811924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811924: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4439,8 +5152,21 @@ L_0881197C: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088119A4u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 378u, 0x088119A4u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088119A4u) goto L_088119A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088119A4: aot_gpr_4 = (ctx.gpr[18] + static_cast(12)); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -4460,8 +5186,21 @@ L_088119A4: aot_fpr_15 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088119ECu); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 379u, 0x088119ECu, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088119ECu) goto L_088119EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088119EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4504,8 +5243,21 @@ L_08811A48: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08811A70u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 382u, 0x08811A70u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811A70u) goto L_08811A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811A70: aot_gpr_4 = (ctx.gpr[18] + static_cast(12)); aot_fpr_13 = std::bit_cast(aot_gpr_4); @@ -4525,8 +5277,21 @@ L_08811A70: aot_fpr_15 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08811AB8u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 383u, 0x08811AB8u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811AB8u) goto L_08811AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811AB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4560,8 +5325,8 @@ L_08811ADC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(17664))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08811AF8: @@ -4575,8 +5340,21 @@ L_08811B04: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811B10u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 389u, 0x08811B10u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811B10u) goto L_08811B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811B10: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4600,8 +5378,21 @@ L_08811B28: L_08811B30: aot_gpr_31 = (0x08811B38u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 394u, 0x08811B38u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811B38u) goto L_08811B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811B38: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4621,8 +5412,21 @@ L_08811B4C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811B58u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 397u, 0x08811B58u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811B58u) goto L_08811B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811B58: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4646,8 +5450,21 @@ L_08811B70: L_08811B78: aot_gpr_31 = (0x08811B80u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 402u, 0x08811B80u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811B80u) goto L_08811B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811B80: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4667,8 +5484,21 @@ L_08811B94: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811BA0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 405u, 0x08811BA0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811BA0u) goto L_08811BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811BA0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4692,8 +5522,21 @@ L_08811BB8: L_08811BC0: aot_gpr_31 = (0x08811BC8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31096)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 410u, 0x08811BC8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811BC8u) goto L_08811BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811BC8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4713,8 +5556,21 @@ L_08811BDC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811BE8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 413u, 0x08811BE8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811BE8u) goto L_08811BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811BE8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4738,8 +5594,21 @@ L_08811C00: L_08811C08: aot_gpr_31 = (0x08811C10u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31088)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 418u, 0x08811C10u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811C10u) goto L_08811C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811C10: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4759,8 +5628,21 @@ L_08811C24: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811C30u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 421u, 0x08811C30u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811C30u) goto L_08811C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811C30: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4784,8 +5666,21 @@ L_08811C48: L_08811C50: aot_gpr_31 = (0x08811C58u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31080)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 426u, 0x08811C58u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811C58u) goto L_08811C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811C58: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4805,8 +5700,21 @@ L_08811C6C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811C78u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 429u, 0x08811C78u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811C78u) goto L_08811C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811C78: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4830,8 +5738,21 @@ L_08811C90: L_08811C98: aot_gpr_31 = (0x08811CA0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31072)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 434u, 0x08811CA0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811CA0u) goto L_08811CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811CA0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4851,8 +5772,21 @@ L_08811CB4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811CC0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 437u, 0x08811CC0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811CC0u) goto L_08811CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811CC0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4876,8 +5810,21 @@ L_08811CD8: L_08811CE0: aot_gpr_31 = (0x08811CE8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31064)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 442u, 0x08811CE8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811CE8u) goto L_08811CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811CE8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4897,8 +5844,21 @@ L_08811CFC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811D08u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 445u, 0x08811D08u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811D08u) goto L_08811D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811D08: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4922,8 +5882,21 @@ L_08811D20: L_08811D28: aot_gpr_31 = (0x08811D30u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31056)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 450u, 0x08811D30u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811D30u) goto L_08811D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811D30: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4943,8 +5916,21 @@ L_08811D44: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811D50u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 453u, 0x08811D50u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811D50u) goto L_08811D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811D50: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4968,8 +5954,21 @@ L_08811D68: L_08811D70: aot_gpr_31 = (0x08811D78u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 458u, 0x08811D78u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811D78u) goto L_08811D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811D78: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4989,8 +5988,21 @@ L_08811D8C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811D98u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 461u, 0x08811D98u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811D98u) goto L_08811D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811D98: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5014,8 +6026,21 @@ L_08811DB0: L_08811DB8: aot_gpr_31 = (0x08811DC0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31040)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 466u, 0x08811DC0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811DC0u) goto L_08811DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811DC0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5035,8 +6060,21 @@ L_08811DD4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811DE0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 469u, 0x08811DE0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811DE0u) goto L_08811DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811DE0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5060,8 +6098,21 @@ L_08811DF8: L_08811E00: aot_gpr_31 = (0x08811E08u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31032)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 474u, 0x08811E08u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811E08u) goto L_08811E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811E08: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5081,8 +6132,21 @@ L_08811E1C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811E28u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 477u, 0x08811E28u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811E28u) goto L_08811E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811E28: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5106,8 +6170,21 @@ L_08811E40: L_08811E48: aot_gpr_31 = (0x08811E50u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 482u, 0x08811E50u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811E50u) goto L_08811E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811E50: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5127,8 +6204,21 @@ L_08811E64: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811E70u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 485u, 0x08811E70u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811E70u) goto L_08811E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811E70: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5152,8 +6242,21 @@ L_08811E88: L_08811E90: aot_gpr_31 = (0x08811E98u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 490u, 0x08811E98u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811E98u) goto L_08811E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811E98: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5173,8 +6276,21 @@ L_08811EAC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811EB8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 493u, 0x08811EB8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811EB8u) goto L_08811EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811EB8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5198,8 +6314,21 @@ L_08811ED0: L_08811ED8: aot_gpr_31 = (0x08811EE0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 498u, 0x08811EE0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811EE0u) goto L_08811EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811EE0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5219,8 +6348,21 @@ L_08811EF4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811F00u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 501u, 0x08811F00u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811F00u) goto L_08811F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811F00: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5244,8 +6386,21 @@ L_08811F18: L_08811F20: aot_gpr_31 = (0x08811F28u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 506u, 0x08811F28u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811F28u) goto L_08811F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811F28: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5265,8 +6420,21 @@ L_08811F3C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811F48u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 509u, 0x08811F48u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811F48u) goto L_08811F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811F48: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5290,8 +6458,21 @@ L_08811F60: L_08811F68: aot_gpr_31 = (0x08811F70u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 514u, 0x08811F70u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811F70u) goto L_08811F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811F70: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5311,8 +6492,21 @@ L_08811F84: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811F90u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 517u, 0x08811F90u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811F90u) goto L_08811F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811F90: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5336,8 +6530,21 @@ L_08811FA8: L_08811FB0: aot_gpr_31 = (0x08811FB8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 522u, 0x08811FB8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811FB8u) goto L_08811FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811FB8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5357,8 +6564,21 @@ L_08811FCC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08811FD8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 525u, 0x08811FD8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08811FD8u) goto L_08811FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08811FD8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5382,8 +6602,21 @@ L_08811FF0: L_08811FF8: aot_gpr_31 = (0x08812000u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 530u, 0x08812000u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812000u) goto L_08812000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812000: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5403,8 +6636,21 @@ L_08812014: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812020u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 533u, 0x08812020u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812020u) goto L_08812020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812020: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5428,8 +6674,21 @@ L_08812038: L_08812040: aot_gpr_31 = (0x08812048u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 538u, 0x08812048u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812048u) goto L_08812048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812048: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5449,8 +6708,21 @@ L_0881205C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812068u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 541u, 0x08812068u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812068u) goto L_08812068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812068: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5474,8 +6746,21 @@ L_08812080: L_08812088: aot_gpr_31 = (0x08812090u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31024)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 546u, 0x08812090u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812090u) goto L_08812090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812090: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5495,8 +6780,21 @@ L_088120A4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088120B0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 549u, 0x088120B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088120B0u) goto L_088120B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088120B0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5520,8 +6818,21 @@ L_088120C8: L_088120D0: aot_gpr_31 = (0x088120D8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 554u, 0x088120D8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088120D8u) goto L_088120D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088120D8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5541,8 +6852,21 @@ L_088120EC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088120F8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 557u, 0x088120F8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088120F8u) goto L_088120F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088120F8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5566,8 +6890,21 @@ L_08812110: L_08812118: aot_gpr_31 = (0x08812120u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 562u, 0x08812120u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812120u) goto L_08812120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812120: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5587,8 +6924,21 @@ L_08812134: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812140u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 565u, 0x08812140u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812140u) goto L_08812140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812140: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5612,8 +6962,21 @@ L_08812158: L_08812160: aot_gpr_31 = (0x08812168u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31024)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 570u, 0x08812168u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812168u) goto L_08812168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812168: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5633,8 +6996,21 @@ L_0881217C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812188u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 573u, 0x08812188u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812188u) goto L_08812188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812188: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5658,8 +7034,21 @@ L_088121A0: L_088121A8: aot_gpr_31 = (0x088121B0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31024)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 578u, 0x088121B0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088121B0u) goto L_088121B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088121B0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5679,8 +7068,21 @@ L_088121C4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088121D0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 581u, 0x088121D0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088121D0u) goto L_088121D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088121D0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5704,8 +7106,21 @@ L_088121E8: L_088121F0: aot_gpr_31 = (0x088121F8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31024)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 586u, 0x088121F8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088121F8u) goto L_088121F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088121F8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5725,8 +7140,21 @@ L_0881220C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812218u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 589u, 0x08812218u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812218u) goto L_08812218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812218: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5750,8 +7178,21 @@ L_08812230: L_08812238: aot_gpr_31 = (0x08812240u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-31000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 594u, 0x08812240u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812240u) goto L_08812240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812240: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5771,8 +7212,21 @@ L_08812254: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812260u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 597u, 0x08812260u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812260u) goto L_08812260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812260: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5796,8 +7250,21 @@ L_08812278: L_08812280: aot_gpr_31 = (0x08812288u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 602u, 0x08812288u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812288u) goto L_08812288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812288: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5817,8 +7284,21 @@ L_0881229C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088122A8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 605u, 0x088122A8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088122A8u) goto L_088122A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088122A8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5842,8 +7322,21 @@ L_088122C0: L_088122C8: aot_gpr_31 = (0x088122D0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 610u, 0x088122D0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088122D0u) goto L_088122D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088122D0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5863,8 +7356,21 @@ L_088122E4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088122F0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 613u, 0x088122F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088122F0u) goto L_088122F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088122F0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5888,8 +7394,21 @@ L_08812308: L_08812310: aot_gpr_31 = (0x08812318u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 618u, 0x08812318u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812318u) goto L_08812318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812318: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5909,8 +7428,21 @@ L_0881232C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812338u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 621u, 0x08812338u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812338u) goto L_08812338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812338: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5934,8 +7466,21 @@ L_08812350: L_08812358: aot_gpr_31 = (0x08812360u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 626u, 0x08812360u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812360u) goto L_08812360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812360: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5955,8 +7500,21 @@ L_08812374: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812380u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 629u, 0x08812380u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812380u) goto L_08812380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812380: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5980,8 +7538,21 @@ L_08812398: L_088123A0: aot_gpr_31 = (0x088123A8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30960)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 634u, 0x088123A8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088123A8u) goto L_088123A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088123A8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6001,8 +7572,21 @@ L_088123BC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088123C8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 637u, 0x088123C8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088123C8u) goto L_088123C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088123C8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6026,8 +7610,21 @@ L_088123E0: L_088123E8: aot_gpr_31 = (0x088123F0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30952)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 642u, 0x088123F0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088123F0u) goto L_088123F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088123F0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6047,8 +7644,21 @@ L_08812404: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812410u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 645u, 0x08812410u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812410u) goto L_08812410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812410: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6072,8 +7682,21 @@ L_08812428: L_08812430: aot_gpr_31 = (0x08812438u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 650u, 0x08812438u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812438u) goto L_08812438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812438: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6093,8 +7716,21 @@ L_0881244C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812458u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 653u, 0x08812458u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812458u) goto L_08812458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812458: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6118,8 +7754,21 @@ L_08812470: L_08812478: aot_gpr_31 = (0x08812480u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 658u, 0x08812480u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812480u) goto L_08812480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812480: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6139,8 +7788,21 @@ L_08812494: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088124A0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 661u, 0x088124A0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088124A0u) goto L_088124A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088124A0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6164,8 +7826,21 @@ L_088124B8: L_088124C0: aot_gpr_31 = (0x088124C8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 666u, 0x088124C8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088124C8u) goto L_088124C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088124C8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6185,8 +7860,21 @@ L_088124DC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088124E8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 669u, 0x088124E8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088124E8u) goto L_088124E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088124E8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6210,8 +7898,21 @@ L_08812500: L_08812508: aot_gpr_31 = (0x08812510u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30920)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 674u, 0x08812510u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812510u) goto L_08812510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812510: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6231,8 +7932,21 @@ L_08812524: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812530u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 677u, 0x08812530u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812530u) goto L_08812530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812530: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6256,8 +7970,21 @@ L_08812548: L_08812550: aot_gpr_31 = (0x08812558u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30912)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 682u, 0x08812558u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812558u) goto L_08812558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812558: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6277,8 +8004,21 @@ L_0881256C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812578u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 685u, 0x08812578u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812578u) goto L_08812578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812578: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6302,8 +8042,21 @@ L_08812590: L_08812598: aot_gpr_31 = (0x088125A0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 690u, 0x088125A0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088125A0u) goto L_088125A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088125A0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6323,8 +8076,21 @@ L_088125B4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088125C0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 693u, 0x088125C0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088125C0u) goto L_088125C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088125C0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6348,8 +8114,21 @@ L_088125D8: L_088125E0: aot_gpr_31 = (0x088125E8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30896)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 698u, 0x088125E8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088125E8u) goto L_088125E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088125E8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6369,8 +8148,21 @@ L_088125FC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812608u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 701u, 0x08812608u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812608u) goto L_08812608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812608: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6394,8 +8186,21 @@ L_08812620: L_08812628: aot_gpr_31 = (0x08812630u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 706u, 0x08812630u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812630u) goto L_08812630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812630: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6415,8 +8220,21 @@ L_08812644: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08812650u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 709u, 0x08812650u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812650u) goto L_08812650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812650: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6440,8 +8258,21 @@ L_08812668: L_08812670: aot_gpr_31 = (0x08812678u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30880)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 714u, 0x08812678u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812678u) goto L_08812678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812678: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6461,8 +8292,21 @@ L_0881268C: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08812698u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 717u, 0x08812698u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812698u) goto L_08812698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812698: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -6486,8 +8330,21 @@ L_088126B0: L_088126B8: aot_gpr_31 = (0x088126C0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30872)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 722u, 0x088126C0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088126C0u) goto L_088126C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088126C0: aot_gpr_5 = (18510u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); @@ -6517,8 +8374,21 @@ L_088126E8: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x088126F4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 726u, 0x088126F4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088126F4u) goto L_088126F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088126F4: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6542,8 +8412,21 @@ L_0881270C: L_08812714: aot_gpr_31 = (0x0881271Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 731u, 0x0881271Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881271Cu) goto L_0881271C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881271C: aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6585,8 +8468,21 @@ L_08812758: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08812764u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 737u, 0x08812764u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812764u) goto L_08812764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812764: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6610,8 +8506,21 @@ L_0881277C: L_08812784: aot_gpr_31 = (0x0881278Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 742u, 0x0881278Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881278Cu) goto L_0881278C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881278C: aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6651,8 +8560,21 @@ L_088127C4: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x088127D0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 747u, 0x088127D0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088127D0u) goto L_088127D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088127D0: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6676,8 +8598,21 @@ L_088127E8: L_088127F0: aot_gpr_31 = (0x088127F8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30848)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 752u, 0x088127F8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088127F8u) goto L_088127F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088127F8: aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6699,8 +8634,21 @@ L_08812814: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08812820u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 755u, 0x08812820u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812820u) goto L_08812820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812820: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6724,8 +8672,21 @@ L_08812838: L_08812840: aot_gpr_31 = (0x08812848u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 760u, 0x08812848u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812848u) goto L_08812848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812848: aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6766,8 +8727,8 @@ L_0881286C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088128A8: @@ -6785,8 +8746,21 @@ L_088128A8: L_088128F8: aot_gpr_31 = (0x08812900u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 767u, 0x08812900u, 0x0880E748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 536u, 0x0880E748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812900u) goto L_08812900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812900: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(464), aot_gpr_4); @@ -6914,8 +8888,21 @@ L_08812A30: } L_08812A38: aot_gpr_31 = (0x08812A40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 777u, 0x08812A40u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812A40u) goto L_08812A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812A40: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6969,8 +8956,21 @@ L_08812A6C: ctx.gpr[10] = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08812AD0u); ctx.gpr[10] = (ctx.gpr[10] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 782u, 0x08812AD0u, 0x088ABA2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 572u, 0x088ABA2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812AD0u) goto L_08812AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812AD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7106,8 +9106,21 @@ L_08812BC4: ctx.gpr[11] = (0u | 1024u); aot_gpr_31 = (0x08812C08u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 793u, 0x08812C08u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812C08u) goto L_08812C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812C08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7133,8 +9146,21 @@ L_08812C20: L_08812C2C: aot_gpr_31 = (0x08812C34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 797u, 0x08812C34u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812C34u) goto L_08812C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812C34: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7331,8 +9357,21 @@ L_08812D50: L_08812D60: aot_gpr_31 = (0x08812D68u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 820u, 0x08812D68u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812D68u) goto L_08812D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812D68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(704))); aot_gpr_16 = (aot_gpr_2 | 0u); @@ -7370,8 +9409,21 @@ L_08812D98: L_08812DA8: aot_gpr_31 = (0x08812DB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 825u, 0x08812DB0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812DB0u) goto L_08812DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812DB0: aot_gpr_4 = (0u + static_cast(-2)); goto L_08812DB4; @@ -7382,8 +9434,21 @@ L_08812DB4: aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08812DCCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 827u, 0x08812DCCu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812DCCu) goto L_08812DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812DCC: aot_gpr_4 = (aot_gpr_29 + static_cast(128)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7423,8 +9488,21 @@ L_08812DFC: L_08812E08: aot_gpr_31 = (0x08812E10u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 830u, 0x08812E10u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812E10u) goto L_08812E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812E10: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7487,8 +9565,21 @@ L_08812E80: ctx.gpr[11] = (0u | 1024u); aot_gpr_31 = (0x08812EC4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 835u, 0x08812EC4u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812EC4u) goto L_08812EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812EC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7536,8 +9627,21 @@ L_08812EEC: ctx.gpr[7] = (aot_gpr_29 + static_cast(212)); aot_gpr_31 = (0x08812F18u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 839u, 0x08812F18u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812F18u) goto L_08812F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812F18: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7589,8 +9693,21 @@ L_08812F6C: ctx.gpr[6] = (ctx.gpr[6] >> 1u); aot_gpr_31 = (0x08812F84u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 847u, 0x08812F84u, 0x0880F3B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 654u, 0x0880F3B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812F84u) goto L_08812F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812F84: aot_gpr_4 = (aot_gpr_2 >> 24u); aot_gpr_5 = (aot_gpr_2 >> 16u); @@ -7612,8 +9729,21 @@ L_08812F84: aot_fpr_15 = std::bit_cast(ctx.gpr[9]); aot_gpr_31 = (0x08812FD4u); ctx.fpr[16] = std::bit_cast(std::bit_cast(aot_fpr_15)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 848u, 0x08812FD4u, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08812FD4u) goto L_08812FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08812FD4: aot_gpr_4 = (0u | 10u); aot_gpr_31 = (0x08812FE0u); @@ -7784,8 +9914,21 @@ L_08813100: ctx.gpr[11] = (0u | 1024u); aot_gpr_31 = (0x0881313Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 864u, 0x0881313Cu, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881313Cu) goto L_0881313C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881313C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7799,8 +9942,21 @@ L_08813144: aot_gpr_5 = (static_cast(static_cast(ctx.gpr[6]) >> 16u)); aot_gpr_31 = (0x08813158u); ctx.gpr[6] = (ctx.gpr[6] & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 866u, 0x08813158u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813158u) goto L_08813158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813158: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -7842,8 +9998,21 @@ L_08813194: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088131A4u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 871u, 0x088131A4u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088131A4u) goto L_088131A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088131A4: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7865,8 +10034,21 @@ L_088131BC: ctx.gpr[6] = (aot_gpr_29 + static_cast(432)); aot_gpr_31 = (0x088131CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 874u, 0x088131CCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088131CCu) goto L_088131CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088131CC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(432))); @@ -7891,8 +10073,21 @@ L_088131F8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08813204u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 878u, 0x08813204u, 0x08947B90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 779u, 0x08947B90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813204u) goto L_08813204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813204: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7908,8 +10103,21 @@ L_08813210: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08813220u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 881u, 0x08813220u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813220u) goto L_08813220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813220: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7932,8 +10140,21 @@ L_0881322C: L_08813244: aot_gpr_31 = (0x0881324Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 884u, 0x0881324Cu, 0x089D3458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 597u, 0x089D3458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881324Cu) goto L_0881324C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881324C: aot_gpr_31 = (0x08813254u); aot_gpr_16 = (aot_gpr_2 | 0u); @@ -7942,8 +10163,21 @@ L_0881324C: L_08813254: aot_gpr_31 = (0x0881325Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 886u, 0x0881325Cu, 0x0890EF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 696u, 0x0890EF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881325Cu) goto L_0881325C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881325C: { const bool branch_taken = aot_gpr_16 != aot_gpr_2; if (branch_taken) { @@ -7959,8 +10193,21 @@ L_08813268: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08813278u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 889u, 0x08813278u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813278u) goto L_08813278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813278: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(6896))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -7986,8 +10233,21 @@ L_088132A0: ctx.gpr[6] = (aot_gpr_29 + static_cast(433)); aot_gpr_31 = (0x088132B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 892u, 0x088132B0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088132B0u) goto L_088132B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088132B0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(433))); @@ -8037,8 +10297,21 @@ L_08813318: ctx.gpr[6] = (aot_gpr_29 + static_cast(434)); aot_gpr_31 = (0x08813328u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 897u, 0x08813328u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813328u) goto L_08813328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813328: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(434))); @@ -8064,8 +10337,21 @@ L_0881334C: ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(176))); aot_gpr_31 = (0x08813358u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 901u, 0x08813358u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813358u) goto L_08813358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813358: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_0881335C; @@ -8137,8 +10423,21 @@ L_088133D4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(0)))))); aot_gpr_31 = (0x088133E8u); ctx.gpr[19] = (ctx.gpr[18] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 910u, 0x088133E8u, 0x08823710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 639u, 0x08823710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088133E8u) goto L_088133E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088133E8: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8159,8 +10458,21 @@ L_088133F8: L_08813404: aot_gpr_31 = (0x0881340Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 913u, 0x0881340Cu, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881340Cu) goto L_0881340C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881340C: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8189,8 +10501,21 @@ L_0881341C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08813434u); ctx.gpr[17] = (ctx.gpr[18] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 915u, 0x08813434u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813434u) goto L_08813434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813434: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8220,8 +10545,21 @@ L_08813458: ctx.gpr[6] = (aot_gpr_29 + static_cast(440)); aot_gpr_31 = (0x08813468u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 919u, 0x08813468u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813468u) goto L_08813468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813468: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(440))); @@ -8276,14 +10614,40 @@ L_08813494: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088134DCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 923u, 0x088134DCu, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088134DCu) goto L_088134DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088134DC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088134E8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 924u, 0x088134E8u, 0x0880F05Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 620u, 0x0880F05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088134E8u) goto L_088134E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088134E8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(656)))))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -8336,8 +10700,21 @@ L_08813540: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08813550u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 930u, 0x08813550u, 0x08ADC7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 156u, 0x08ADC7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813550u) goto L_08813550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813550: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(1))); @@ -8375,8 +10752,21 @@ L_088135B8: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088135C8u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 932u, 0x088135C8u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088135C8u) goto L_088135C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088135C8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(1))); @@ -8476,8 +10866,21 @@ L_08813690: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x088136BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(280), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 942u, 0x088136BCu, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088136BCu) goto L_088136BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088136BC: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (17224u << 16u); @@ -8522,8 +10925,21 @@ L_08813710: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(340), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08813740u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 945u, 0x08813740u, 0x08ADC204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 32u, 0x08ADC204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813740u) goto L_08813740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813740: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0881374Cu); @@ -8542,8 +10958,21 @@ L_0881375C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(380))); aot_gpr_31 = (0x0881376Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 948u, 0x0881376Cu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881376Cu) goto L_0881376C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881376C: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -8564,8 +10993,21 @@ L_08813794: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088137ACu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 950u, 0x088137ACu, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088137ACu) goto L_088137AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088137AC: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -8582,8 +11024,21 @@ L_088137C4: L_088137CC: aot_gpr_31 = (0x088137D4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(340))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 953u, 0x088137D4u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088137D4u) goto L_088137D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088137D4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(320))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(324))); @@ -8621,8 +11076,21 @@ L_0881383C: ctx.gpr[8] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08813858u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 955u, 0x08813858u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813858u) goto L_08813858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813858: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(380))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(536))); @@ -8678,8 +11146,21 @@ L_088138B0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088138C0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 962u, 0x088138C0u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088138C0u) goto L_088138C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088138C0: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8700,8 +11181,21 @@ L_088138D8: ctx.gpr[6] = (aot_gpr_29 + static_cast(460)); aot_gpr_31 = (0x088138E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 965u, 0x088138E8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088138E8u) goto L_088138E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088138E8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(460))); @@ -8729,8 +11223,21 @@ L_08813914: ctx.gpr[6] = (aot_gpr_29 + static_cast(461)); aot_gpr_31 = (0x08813924u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 969u, 0x08813924u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813924u) goto L_08813924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813924: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(461))); @@ -8758,8 +11265,21 @@ L_08813950: ctx.gpr[6] = (aot_gpr_29 + static_cast(462)); aot_gpr_31 = (0x08813960u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 973u, 0x08813960u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813960u) goto L_08813960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813960: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(462))); @@ -8787,8 +11307,21 @@ L_0881398C: ctx.gpr[6] = (aot_gpr_29 + static_cast(463)); aot_gpr_31 = (0x0881399Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 977u, 0x0881399Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881399Cu) goto L_0881399C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881399C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(463))); @@ -8809,8 +11342,21 @@ L_088139BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088139CCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 980u, 0x088139CCu, 0x089D3388u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 587u, 0x089D3388u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088139CCu) goto L_088139CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088139CC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8870,8 +11416,21 @@ L_08813A2C: ctx.gpr[11] = (0u | 1024u); aot_gpr_31 = (0x08813A6Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 986u, 0x08813A6Cu, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813A6Cu) goto L_08813A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813A6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8947,8 +11506,8 @@ L_08813A98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(624)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08813B5C: @@ -9081,8 +11640,21 @@ L_08813CE4: L_08813CE8: aot_gpr_31 = (0x08813CF0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1002u, 0x08813CF0u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813CF0u) goto L_08813CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813CF0: aot_gpr_16 = (aot_gpr_2 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -9094,20 +11666,59 @@ L_08813CF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08813D18u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1003u, 0x08813D18u, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813D18u) goto L_08813D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813D18: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08813D28u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1004u, 0x08813D28u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813D28u) goto L_08813D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813D28: aot_gpr_31 = (0x08813D30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1005u, 0x08813D30u, 0x089EC594u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 67u, 0x089EC594u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813D30u) goto L_08813D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813D30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); @@ -9140,8 +11751,21 @@ L_08813D60: aot_gpr_5 = (0u | 31u); aot_gpr_31 = (0x08813D94u); ctx.gpr[9] = (ctx.gpr[10] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1007u, 0x08813D94u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813D94u) goto L_08813D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813D94: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -9182,8 +11806,21 @@ L_08813DD0: aot_gpr_5 = (0u | 30u); aot_gpr_31 = (0x08813E04u); ctx.gpr[9] = (ctx.gpr[10] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1010u, 0x08813E04u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813E04u) goto L_08813E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813E04: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -9216,8 +11853,21 @@ L_08813E34: aot_gpr_5 = (0u | 29u); aot_gpr_31 = (0x08813E68u); ctx.gpr[9] = (ctx.gpr[10] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1012u, 0x08813E68u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813E68u) goto L_08813E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813E68: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -9254,8 +11904,21 @@ L_08813EC4: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08813ED4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1016u, 0x08813ED4u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813ED4u) goto L_08813ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813ED4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -9283,8 +11946,21 @@ L_08813F14: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08813F24u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1019u, 0x08813F24u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813F24u) goto L_08813F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813F24: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -9295,8 +11971,21 @@ L_08813F24: ctx.fpr[30] = ctx.fpr[28] + ctx.fpr[24]; aot_gpr_31 = (0x08813F48u); ctx.fpr[24] = aot_fpr_13 - ctx.fpr[20]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1020u, 0x08813F48u, 0x089EC510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 58u, 0x089EC510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813F48u) goto L_08813F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813F48: aot_fpr_14 = ctx.fpr[22] - ctx.fpr[0]; aot_gpr_4 = (16776u << 16u); @@ -9325,8 +12014,21 @@ L_08813F8C: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08813F9Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1023u, 0x08813F9Cu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813F9Cu) goto L_08813F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813F9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); { std::uint32_t aot_run_words[3]{}; @@ -9356,8 +12058,21 @@ L_08813FCC: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08813FDCu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0003->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0003_entry, 1026u, 0x08813FDCu, 0x0880FD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 761u, 0x0880FD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08813FDCu) goto L_08813FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08813FDC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); { const bool branch_taken = aot_gpr_5 == 0u; diff --git a/profiles/vcs/generated/generated_unit_0004.cpp b/profiles/vcs/generated/generated_unit_0004.cpp index 7b72aee..0d89702 100644 --- a/profiles/vcs/generated/generated_unit_0004.cpp +++ b/profiles/vcs/generated/generated_unit_0004.cpp @@ -879,6 +879,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08814000u; + if (local_delta_v813 >= 16232u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -946,13 +970,39 @@ L_08814068: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_gpr_31 = (0x08814084u); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(236))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 7u, 0x08814084u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814084u) goto L_08814084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814084: aot_gpr_31 = (0x0881408Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 8u, 0x0881408Cu, 0x08810A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 151u, 0x08810A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881408Cu) goto L_0881408C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881408C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(204))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -999,8 +1049,21 @@ L_08814100: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08814110u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 12u, 0x08814110u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814110u) goto L_08814110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814110: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -1018,8 +1081,21 @@ L_08814134: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08814144u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 14u, 0x08814144u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814144u) goto L_08814144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814144: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -1037,8 +1113,21 @@ L_08814168: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08814178u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 16u, 0x08814178u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814178u) goto L_08814178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814178: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -1056,8 +1145,21 @@ L_0881419C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088141ACu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 18u, 0x088141ACu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088141ACu) goto L_088141AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088141AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -1074,8 +1176,21 @@ L_088141CC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088141DCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 20u, 0x088141DCu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088141DCu) goto L_088141DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088141DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -1092,8 +1207,21 @@ L_088141FC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0881420Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 22u, 0x0881420Cu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881420Cu) goto L_0881420C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881420C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -1110,8 +1238,21 @@ L_0881422C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0881423Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 24u, 0x0881423Cu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881423Cu) goto L_0881423C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881423C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -1128,8 +1269,21 @@ L_0881425C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0881426Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 26u, 0x0881426Cu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881426Cu) goto L_0881426C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881426C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(220))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(216))); @@ -1256,8 +1410,21 @@ L_088143E4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088143F4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 34u, 0x088143F4u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088143F4u) goto L_088143F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088143F4: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] < ctx.fpr[26])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -1286,8 +1453,21 @@ L_08814418: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0881443Cu); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 37u, 0x0881443Cu, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881443Cu) goto L_0881443C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881443C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1305,8 +1485,21 @@ L_08814444: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08814468u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 39u, 0x08814468u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814468u) goto L_08814468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814468: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(244))); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -1321,8 +1514,21 @@ L_08814478: L_08814480: aot_gpr_31 = (0x08814488u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 42u, 0x08814488u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814488u) goto L_08814488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814488: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(2))); @@ -1372,8 +1578,21 @@ L_088144E8: L_088144EC: aot_gpr_31 = (0x088144F4u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(204))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 50u, 0x088144F4u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088144F4u) goto L_088144F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088144F4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); @@ -1395,8 +1614,21 @@ L_08814510: L_08814514: aot_gpr_31 = (0x0881451Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(204))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 54u, 0x0881451Cu, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881451Cu) goto L_0881451C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881451C: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); @@ -1417,8 +1649,21 @@ L_08814534: L_08814538: aot_gpr_31 = (0x08814540u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(204))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 58u, 0x08814540u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814540u) goto L_08814540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814540: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(16))); aot_gpr_5 = (0u | 5u); @@ -1521,8 +1766,21 @@ L_088145E4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088145F0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 73u, 0x088145F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088145F0u) goto L_088145F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088145F0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -1546,8 +1804,21 @@ L_08814608: L_08814610: aot_gpr_31 = (0x08814618u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30780)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 78u, 0x08814618u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814618u) goto L_08814618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814618: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); @@ -1567,8 +1838,21 @@ L_08814634: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08814640u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 81u, 0x08814640u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814640u) goto L_08814640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814640: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -1592,8 +1876,21 @@ L_08814658: L_08814660: aot_gpr_31 = (0x08814668u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 86u, 0x08814668u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814668u) goto L_08814668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814668: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -1613,8 +1910,21 @@ L_08814684: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08814690u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 89u, 0x08814690u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814690u) goto L_08814690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814690: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -1638,8 +1948,21 @@ L_088146A8: L_088146B0: aot_gpr_31 = (0x088146B8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30772)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 94u, 0x088146B8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088146B8u) goto L_088146B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088146B8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); @@ -1667,8 +1990,21 @@ L_088146D8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088146E4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 98u, 0x088146E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088146E4u) goto L_088146E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088146E4: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -1692,8 +2028,21 @@ L_088146FC: L_08814704: aot_gpr_31 = (0x0881470Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 103u, 0x0881470Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881470Cu) goto L_0881470C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881470C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -1720,8 +2069,21 @@ L_0881472C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08814738u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 107u, 0x08814738u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814738u) goto L_08814738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814738: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -1745,8 +2107,21 @@ L_08814750: L_08814758: aot_gpr_31 = (0x08814760u); aot_gpr_5 = (aot_gpr_29 + static_cast(156)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 112u, 0x08814760u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814760u) goto L_08814760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814760: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -1768,8 +2143,21 @@ L_0881477C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08814788u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 116u, 0x08814788u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814788u) goto L_08814788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814788: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -1793,8 +2181,21 @@ L_088147A0: L_088147A8: aot_gpr_31 = (0x088147B0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30764)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 121u, 0x088147B0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088147B0u) goto L_088147B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088147B0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); @@ -1822,8 +2223,21 @@ L_088147D0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088147DCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 125u, 0x088147DCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088147DCu) goto L_088147DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088147DC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1847,8 +2261,21 @@ L_088147F4: L_088147FC: aot_gpr_31 = (0x08814804u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 130u, 0x08814804u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814804u) goto L_08814804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814804: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -1874,8 +2301,21 @@ L_08814824: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08814830u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 134u, 0x08814830u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814830u) goto L_08814830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814830: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1899,8 +2339,21 @@ L_08814848: L_08814850: aot_gpr_31 = (0x08814858u); aot_gpr_5 = (aot_gpr_29 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 139u, 0x08814858u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814858u) goto L_08814858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814858: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -1914,8 +2367,21 @@ L_08814868: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_gpr_31 = (0x0881487Cu); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(236))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 141u, 0x0881487Cu, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881487Cu) goto L_0881487C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881487C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(272), aot_run_words); @@ -1938,8 +2404,8 @@ L_0881487C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088148C4: @@ -1967,8 +2433,21 @@ L_088148C4: } L_0881491C: aot_gpr_31 = (0x08814924u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 144u, 0x08814924u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814924u) goto L_08814924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814924: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1983,8 +2462,21 @@ L_0881492C: aot_gpr_6 = (aot_gpr_6 >> 1u); aot_gpr_31 = (0x08814944u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 146u, 0x08814944u, 0x0880F3B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 654u, 0x0880F3B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814944u) goto L_08814944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814944: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(656)))))); aot_gpr_4 = (aot_gpr_4 & 224u); @@ -2092,8 +2584,21 @@ L_088149F8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08814A10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 155u, 0x08814A10u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814A10u) goto L_08814A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814A10: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2129,8 +2634,21 @@ L_08814A10: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(48), aot_run_words); } aot_gpr_31 = (0x08814A44u); aot_gpr_5 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 156u, 0x08814A44u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814A44u) goto L_08814A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814A44: aot_gpr_4 = (16256u << 16u); ctx.fpr[20] = std::bit_cast(aot_gpr_4); @@ -2387,8 +2905,21 @@ L_08814B68: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08814B90u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 170u, 0x08814B90u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814B90u) goto L_08814B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814B90: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -2400,14 +2931,40 @@ L_08814B90: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08814BB8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 171u, 0x08814BB8u, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814BB8u) goto L_08814BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814BB8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08814BC4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 172u, 0x08814BC4u, 0x0880F05Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 620u, 0x0880F05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814BC4u) goto L_08814BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814BC4: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2419,8 +2976,21 @@ L_08814BC4: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_gpr_31 = (0x08814BECu); aot_fpr_15 = ctx.fpr[16] - ctx.fpr[17]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 173u, 0x08814BECu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814BECu) goto L_08814BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814BEC: aot_gpr_4 = (49962u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2463,8 +3033,21 @@ L_08814C34: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08814C40u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 178u, 0x08814C40u, 0x0880F0E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 626u, 0x0880F0E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814C40u) goto L_08814C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814C40: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_08814C44; @@ -2473,8 +3056,21 @@ L_08814C44: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08814C54u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 180u, 0x08814C54u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814C54u) goto L_08814C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814C54: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(656)))))); aot_gpr_4 = (aot_gpr_4 & 8u); @@ -2660,8 +3256,21 @@ L_08814DAC: aot_gpr_6 = (aot_gpr_6 & 255u); aot_gpr_31 = (0x08814DC8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 198u, 0x08814DC8u, 0x0880F3B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 654u, 0x0880F3B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814DC8u) goto L_08814DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814DC8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1))); @@ -2769,8 +3378,21 @@ L_08814EAC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08814EDCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 208u, 0x08814EDCu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814EDCu) goto L_08814EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814EDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2843,8 +3465,21 @@ L_08814F50: aot_gpr_5 = (aot_gpr_29 + static_cast(244)); aot_gpr_31 = (0x08814F68u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(248), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 218u, 0x08814F68u, 0x089EC180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 14u, 0x089EC180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814F68u) goto L_08814F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814F68: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; @@ -2870,13 +3505,39 @@ L_08814F88: L_08814F8C: aot_gpr_31 = (0x08814F94u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 223u, 0x08814F94u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814F94u) goto L_08814F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814F94: aot_gpr_31 = (0x08814F9Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 224u, 0x08814F9Cu, 0x089EC594u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 67u, 0x089EC594u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814F9Cu) goto L_08814F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814F9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(320), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(320))); @@ -2905,8 +3566,21 @@ L_08814FDC: L_08814FE0: aot_gpr_31 = (0x08814FE8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 228u, 0x08814FE8u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08814FE8u) goto L_08814FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08814FE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(16))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; @@ -2939,8 +3613,21 @@ L_08815010: L_08815014: aot_gpr_31 = (0x0881501Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 234u, 0x0881501Cu, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881501Cu) goto L_0881501C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881501C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(25))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2959,8 +3646,21 @@ L_08815028: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0881504Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 236u, 0x0881504Cu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881504Cu) goto L_0881504C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881504C: { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; if (branch_taken) { @@ -2985,8 +3685,21 @@ L_08815068: L_0881506C: aot_gpr_31 = (0x08815074u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 241u, 0x08815074u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815074u) goto L_08815074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815074: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(16))); aot_gpr_5 = (0u | 3u); @@ -3010,8 +3723,21 @@ L_0881509C: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088150ACu); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 244u, 0x088150ACu, 0x0880FD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 761u, 0x0880FD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088150ACu) goto L_088150AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088150AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3029,8 +3755,21 @@ L_088150B4: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x088150D8u); ctx.gpr[9] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 246u, 0x088150D8u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088150D8u) goto L_088150D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088150D8: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(328), aot_run_words); @@ -3050,8 +3789,8 @@ L_088150D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08815114: @@ -3164,8 +3903,21 @@ L_088151F0: L_088151FC: aot_gpr_31 = (0x08815204u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 259u, 0x08815204u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815204u) goto L_08815204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815204: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3260,8 +4012,21 @@ L_08815284: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088152ACu); aot_gpr_6 = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 272u, 0x088152ACu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088152ACu) goto L_088152AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088152AC: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -3276,8 +4041,21 @@ L_088152B8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x088152CCu); ctx.gpr[22] = (ctx.gpr[21] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 274u, 0x088152CCu, 0x08823710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 639u, 0x08823710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088152CCu) goto L_088152CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088152CC: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -3297,8 +4075,21 @@ L_088152DC: L_088152E4: aot_gpr_31 = (0x088152ECu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 277u, 0x088152ECu, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088152ECu) goto L_088152EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088152EC: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3332,8 +4123,21 @@ L_0881530C: aot_gpr_6 = (aot_gpr_29 + static_cast(260)); aot_gpr_31 = (0x0881531Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 280u, 0x0881531Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881531Cu) goto L_0881531C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881531C: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(260))); @@ -3404,8 +4208,21 @@ L_08815348: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(64), aot_run_words); } aot_gpr_31 = (0x08815384u); aot_gpr_5 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 285u, 0x08815384u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815384u) goto L_08815384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815384: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3486,8 +4303,21 @@ L_088153F8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08815410u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 294u, 0x08815410u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815410u) goto L_08815410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815410: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3640,8 +4470,21 @@ L_088154C0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088154DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 299u, 0x088154DCu, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088154DCu) goto L_088154DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088154DC: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3669,8 +4512,21 @@ L_088154DC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088154F8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 300u, 0x088154F8u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088154F8u) goto L_088154F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088154F8: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -3717,8 +4573,21 @@ L_08815540: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08815568u); aot_gpr_6 = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 304u, 0x08815568u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815568u) goto L_08815568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815568: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -3733,8 +4602,21 @@ L_08815574: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08815588u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 306u, 0x08815588u, 0x08ADC7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 156u, 0x08ADC7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815588u) goto L_08815588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815588: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(1))); @@ -3772,8 +4654,21 @@ L_088155C0: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088155E4u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 310u, 0x088155E4u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088155E4u) goto L_088155E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088155E4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(1))); @@ -3801,8 +4696,21 @@ L_08815610: aot_gpr_6 = (aot_gpr_6 >> 1u); aot_gpr_31 = (0x08815634u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 312u, 0x08815634u, 0x0880F3B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 654u, 0x0880F3B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815634u) goto L_08815634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815634: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08815638; @@ -3942,29 +4850,81 @@ L_08815748: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881579Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 322u, 0x0881579Cu, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881579Cu) goto L_0881579C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881579C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088157A8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 323u, 0x088157A8u, 0x0880F05Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 620u, 0x0880F05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088157A8u) goto L_088157A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088157A8: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088157B8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 324u, 0x088157B8u, 0x0880F0E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 626u, 0x0880F0E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088157B8u) goto L_088157B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088157B8: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(40)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088157CCu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 325u, 0x088157CCu, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088157CCu) goto L_088157CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088157CC: aot_gpr_4 = (ctx.gpr[17] << 4u); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -4026,8 +4986,21 @@ L_08815828: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(232))); aot_gpr_31 = (0x08815844u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 330u, 0x08815844u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815844u) goto L_08815844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815844: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4178,8 +5151,21 @@ L_08815968: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08815994u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 343u, 0x08815994u, 0x0880F3B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 654u, 0x0880F3B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815994u) goto L_08815994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815994: aot_gpr_4 = (ctx.gpr[20] << 3u); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); @@ -4302,8 +5288,21 @@ L_08815AA0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08815AE0u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 353u, 0x08815AE0u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815AE0u) goto L_08815AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815AE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4325,8 +5324,21 @@ L_08815AE8: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08815B1Cu); ctx.gpr[9] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 355u, 0x08815B1Cu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815B1Cu) goto L_08815B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815B1C: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(344), aot_run_words); @@ -4342,8 +5354,8 @@ L_08815B1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08815B48: @@ -4425,8 +5437,21 @@ L_08815C14: L_08815C1C: aot_gpr_31 = (0x08815C24u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 364u, 0x08815C24u, 0x089BABACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 580u, 0x089BABACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815C24u) goto L_08815C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815C24: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4652,8 +5677,21 @@ L_08815DBC: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08815DE4u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 390u, 0x08815DE4u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815DE4u) goto L_08815DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815DE4: ctx.fpr[30] = std::bit_cast(ctx.gpr[17]); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -4784,8 +5822,21 @@ L_08815EF4: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08815F1Cu); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 404u, 0x08815F1Cu, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08815F1Cu) goto L_08815F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08815F1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4924,8 +5975,21 @@ L_08816038: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08816060u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 419u, 0x08816060u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816060u) goto L_08816060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816060: ctx.fpr[30] = std::bit_cast(ctx.gpr[17]); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -5056,8 +6120,21 @@ L_08816170: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08816198u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 433u, 0x08816198u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816198u) goto L_08816198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816198: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5160,8 +6237,21 @@ L_08816268: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08816278u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 446u, 0x08816278u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816278u) goto L_08816278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816278: aot_fpr_12 = std::bit_cast(ctx.gpr[17]); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); @@ -5243,8 +6333,21 @@ L_08816310: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08816320u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 457u, 0x08816320u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816320u) goto L_08816320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816320: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5272,8 +6375,8 @@ L_08816328: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08816368: @@ -5714,8 +6817,8 @@ L_08816368: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881651C: @@ -5737,8 +6840,21 @@ L_0881651C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(44), aot_run_words); } aot_gpr_31 = (0x08816578u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 461u, 0x08816578u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816578u) goto L_08816578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816578: aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_13)) ? 0x00800000u : 0u); @@ -5796,8 +6912,8 @@ L_088165E8: ctx.gpr[17] = (static_cast(static_cast(ctx.gpr[17]) >> 2u)); jump_target = ctx.gpr[1]; aot_fpr_12 = std::bit_cast(aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08816604: @@ -5943,8 +7059,21 @@ L_08816750: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08816760u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 479u, 0x08816760u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816760u) goto L_08816760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816760: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(84))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -5970,8 +7099,21 @@ L_08816798: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088167A8u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 482u, 0x088167A8u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088167A8u) goto L_088167A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088167A8: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(612))); aot_gpr_5 = (ctx.gpr[17] + static_cast(21)); @@ -5997,8 +7139,8 @@ L_088167A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088167FC: @@ -6021,8 +7163,21 @@ L_088167FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(372), aot_gpr_31); aot_gpr_31 = (0x0881685Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 484u, 0x0881685Cu, 0x0880CAECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 198u, 0x0880CAECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881685Cu) goto L_0881685C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881685C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7720))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6097,8 +7252,21 @@ L_088168C8: L_088168D4: aot_gpr_31 = (0x088168DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 493u, 0x088168DCu, 0x0889E968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 601u, 0x0889E968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088168DCu) goto L_088168DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088168DC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6109,8 +7277,21 @@ L_088168DC: L_088168E4: aot_gpr_31 = (0x088168ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 495u, 0x088168ECu, 0x0889E968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 601u, 0x0889E968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088168ECu) goto L_088168EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088168EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6131,8 +7312,21 @@ L_088168F8: L_08816908: aot_gpr_31 = (0x08816910u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 498u, 0x08816910u, 0x0889E968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 601u, 0x0889E968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816910u) goto L_08816910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816910: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); @@ -6152,8 +7346,21 @@ L_08816920: } L_0881692C: aot_gpr_31 = (0x08816934u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 501u, 0x08816934u, 0x08B21310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 229u, 0x08B21310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816934u) goto L_08816934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816934: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); if (aot_gpr_4 != 0u) { @@ -6172,8 +7379,21 @@ L_0881694C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08816958u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 505u, 0x08816958u, 0x08955020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 231u, 0x08955020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816958u) goto L_08816958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816958: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), 0u); @@ -6188,8 +7408,21 @@ L_08816960: aot_gpr_6 = (0u | 8496u); aot_gpr_31 = (0x08816984u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 507u, 0x08816984u, 0x0893681Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 694u, 0x0893681Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816984u) goto L_08816984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816984: aot_gpr_4 = (116u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25976)); @@ -6199,8 +7432,21 @@ L_08816984: aot_gpr_4 = (aot_gpr_29 + static_cast(288)); aot_gpr_31 = (0x088169A4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 508u, 0x088169A4u, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088169A4u) goto L_088169A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088169A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(296), aot_gpr_2); goto L_088169A8; @@ -6214,8 +7460,21 @@ L_088169A8: L_088169B0: aot_gpr_31 = (0x088169B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 511u, 0x088169B8u, 0x0889E968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 601u, 0x0889E968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088169B8u) goto L_088169B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088169B8: ctx.gpr[20] = (aot_gpr_2 | 0u); goto L_088169BC; @@ -6247,8 +7506,21 @@ L_088169E4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088169F8u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 516u, 0x088169F8u, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088169F8u) goto L_088169F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088169F8: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(8)); @@ -6295,8 +7567,21 @@ L_08816A78: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08816A8Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 519u, 0x08816A8Cu, 0x0880EE6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 610u, 0x0880EE6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816A8Cu) goto L_08816A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816A8C: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(308))); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -6304,15 +7589,41 @@ L_08816A8C: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08816AA4u); ctx.gpr[8] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 520u, 0x08816AA4u, 0x0880EF34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 614u, 0x0880EF34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816AA4u) goto L_08816AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816AA4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08816AB4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 521u, 0x08816AB4u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816AB4u) goto L_08816AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816AB4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(128))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(132))); @@ -6380,8 +7691,21 @@ L_08816B60: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08816B74u); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 526u, 0x08816B74u, 0x08AF4D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 93u, 0x08AF4D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816B74u) goto L_08816B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816B74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6413,16 +7737,42 @@ L_08816BAC: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08816BC0u); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 530u, 0x08816BC0u, 0x08AF4D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 93u, 0x08AF4D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816BC0u) goto L_08816BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816BC0: aot_gpr_5 = (2238u << 16u); aot_gpr_4 = (0u | 5u); aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08816BD4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 531u, 0x08816BD4u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816BD4u) goto L_08816BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816BD4: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(316), aot_run_words); @@ -6444,8 +7794,8 @@ L_08816BD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08816C18: @@ -6482,8 +7832,21 @@ L_08816C8C: goto L_08816C90; L_08816C90: aot_gpr_31 = (0x08816C98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 536u, 0x08816C98u, 0x089BAA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 558u, 0x089BAA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816C98u) goto L_08816C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816C98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6502,8 +7865,21 @@ L_08816CAC: goto L_08816CB0; L_08816CB0: aot_gpr_31 = (0x08816CB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 540u, 0x08816CB8u, 0x089BAAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 561u, 0x089BAAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816CB8u) goto L_08816CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816CB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6522,8 +7898,21 @@ L_08816CCC: goto L_08816CD0; L_08816CD0: aot_gpr_31 = (0x08816CD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 544u, 0x08816CD8u, 0x089BAA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 558u, 0x089BAA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816CD8u) goto L_08816CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816CD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6542,8 +7931,21 @@ L_08816CEC: goto L_08816CF0; L_08816CF0: aot_gpr_31 = (0x08816CF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 548u, 0x08816CF8u, 0x089BAAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 565u, 0x089BAAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816CF8u) goto L_08816CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816CF8: aot_fpr_12 = ctx.fpr[20] + ctx.fpr[0]; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); @@ -6563,8 +7965,21 @@ L_08816D10: goto L_08816D14; L_08816D14: aot_gpr_31 = (0x08816D1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 552u, 0x08816D1Cu, 0x089BAAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 561u, 0x089BAAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816D1Cu) goto L_08816D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816D1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6583,8 +7998,21 @@ L_08816D30: goto L_08816D34; L_08816D34: aot_gpr_31 = (0x08816D3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 556u, 0x08816D3Cu, 0x089BAAFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 569u, 0x089BAAFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816D3Cu) goto L_08816D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816D3C: aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); @@ -6598,8 +8026,21 @@ L_08816D3C: L_08816D58: aot_gpr_31 = (0x08816D60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 558u, 0x08816D60u, 0x0880FA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 743u, 0x0880FA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816D60u) goto L_08816D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816D60: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -6638,8 +8079,21 @@ L_08816DD4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08816DECu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 560u, 0x08816DECu, 0x0880EE6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 610u, 0x0880EE6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08816DECu) goto L_08816DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08816DEC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); aot_fpr_12 = aot_fpr_12 / ctx.fpr[30]; @@ -6855,8 +8309,21 @@ L_08816FDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(ctx.fpr[16])); aot_gpr_31 = (0x08817034u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 582u, 0x08817034u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08817034u) goto L_08817034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08817034: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[20])); aot_gpr_5 = (aot_gpr_29 + static_cast(120)); @@ -6864,8 +8331,21 @@ L_08817034: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881704Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 583u, 0x0881704Cu, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881704Cu) goto L_0881704C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881704C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); @@ -6888,8 +8368,21 @@ L_0881704C: ctx.gpr[7] = (std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088170A0u); aot_gpr_6 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 584u, 0x088170A0u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088170A0u) goto L_088170A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088170A0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -6930,16 +8423,42 @@ L_088170F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(280))); aot_gpr_31 = (0x08817108u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 590u, 0x08817108u, 0x08804E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 132u, 0x08804E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08817108u) goto L_08817108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08817108: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0881711Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 591u, 0x0881711Cu, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881711Cu) goto L_0881711C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881711C: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08817128u); @@ -6979,8 +8498,8 @@ L_08817134: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08817190: @@ -7858,8 +9377,8 @@ L_088176B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088176C8: @@ -8049,8 +9568,8 @@ L_08817888: L_08817898: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088178A0: @@ -8091,8 +9610,21 @@ L_08817918: L_0881791C: aot_gpr_31 = (0x08817924u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 778u, 0x08817924u, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08817924u) goto L_08817924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08817924: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(301))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8172,16 +9704,42 @@ L_088179D0: aot_gpr_5 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x08817A04u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 784u, 0x08817A04u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08817A04u) goto L_08817A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08817A04: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(4), aot_gpr_2); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08817A18u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 785u, 0x08817A18u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08817A18u) goto L_08817A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08817A18: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); @@ -8189,8 +9747,21 @@ L_08817A18: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_gpr_31 = (0x08817A30u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0004->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0004_entry, 786u, 0x08817A30u, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08817A30u) goto L_08817A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08817A30: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (2816u << 16u); @@ -8227,8 +9798,8 @@ L_08817A68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08817A98: @@ -8237,8 +9808,8 @@ L_08817A98: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08817AAC: @@ -8587,8 +10158,8 @@ L_08817E1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08817F64: diff --git a/profiles/vcs/generated/generated_unit_0005.cpp b/profiles/vcs/generated/generated_unit_0005.cpp index 2eee63e..04b2c68 100644 --- a/profiles/vcs/generated/generated_unit_0005.cpp +++ b/profiles/vcs/generated/generated_unit_0005.cpp @@ -776,6 +776,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08818000u; + if (local_delta_v813 >= 16220u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -894,8 +918,8 @@ L_08818040: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818130: @@ -1074,8 +1098,8 @@ L_0881822C: goto L_08818330; L_08818330: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818338: @@ -1593,8 +1617,8 @@ L_08818800: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818820: @@ -1607,8 +1631,8 @@ L_08818820: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(25), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818848: @@ -1624,8 +1648,21 @@ L_08818848: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08818878u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-30688)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 65u, 0x08818878u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08818878u) goto L_08818878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08818878: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 0u); @@ -1665,8 +1702,8 @@ L_088188AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088188D8: @@ -1694,8 +1731,8 @@ L_08818904: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818918: @@ -1769,8 +1806,8 @@ L_0881899C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088189B4: @@ -1817,8 +1854,8 @@ L_08818A04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818A24: @@ -1883,8 +1920,8 @@ L_08818A94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818AA8: @@ -1921,8 +1958,8 @@ L_08818AE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818B00: @@ -2004,8 +2041,8 @@ L_08818B78: goto L_08818B7C; L_08818B7C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818B84: @@ -2053,8 +2090,8 @@ L_08818BC8: goto L_08818BCC; L_08818BCC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818BD4: @@ -2157,8 +2194,21 @@ L_08818C8C: L_08818C94: aot_gpr_31 = (0x08818C9Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 124u, 0x08818C9Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08818C9Cu) goto L_08818C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08818C9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2171,8 +2221,21 @@ L_08818CA4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08818CB4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 126u, 0x08818CB4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08818CB4u) goto L_08818CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08818CB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2184,8 +2247,21 @@ L_08818CBC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08818CC8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 128u, 0x08818CC8u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08818CC8u) goto L_08818CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08818CC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2197,8 +2273,21 @@ L_08818CD0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08818CDCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 130u, 0x08818CDCu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08818CDCu) goto L_08818CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08818CDC: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); if (ctx.gpr[18] != 0u) { @@ -2224,8 +2313,8 @@ L_08818CE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818D20: @@ -2324,8 +2413,21 @@ L_08818DD8: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08818DECu); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 143u, 0x08818DECu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08818DECu) goto L_08818DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08818DEC: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); if (ctx.gpr[19] != 0u) { @@ -2351,8 +2453,8 @@ L_08818DF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818E30: @@ -2469,8 +2571,21 @@ L_08818EF4: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08818F18u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 156u, 0x08818F18u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08818F18u) goto L_08818F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08818F18: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); if (ctx.gpr[22] != 0u) { @@ -2496,8 +2611,8 @@ L_08818F24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08818F5C: @@ -2616,8 +2731,21 @@ L_08819024: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0881904Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 169u, 0x0881904Cu, 0x08ACE418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 736u, 0x08ACE418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881904Cu) goto L_0881904C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881904C: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); if (ctx.gpr[22] != 0u) { @@ -2644,8 +2772,8 @@ L_08819058: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819094: @@ -2749,8 +2877,21 @@ L_0881915C: aot_gpr_6 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08819174u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 182u, 0x08819174u, 0x08AC7A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 983u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 983u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 983u, 0x08AC7A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819174u) goto L_08819174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819174: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); if (ctx.gpr[20] != 0u) { @@ -2777,8 +2918,8 @@ L_08819180: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088191BC: @@ -2818,14 +2959,40 @@ L_088191F4: L_08819210: aot_gpr_31 = (0x08819218u); ctx.gpr[18] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 188u, 0x08819218u, 0x0890B900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 899u, 0x0890B900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819218u) goto L_08819218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819218: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08819224u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 189u, 0x08819224u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819224u) goto L_08819224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819224: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(0))); if (aot_gpr_17 != 0u) { @@ -2843,8 +3010,8 @@ L_08819230: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819248: @@ -2885,8 +3052,21 @@ L_08819298: aot_gpr_6 = (aot_gpr_6 & ctx.gpr[16]); aot_gpr_31 = (0x088192A8u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(460), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 195u, 0x088192A8u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088192A8u) goto L_088192A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088192A8: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(0))); if (aot_gpr_17 != 0u) { @@ -2909,8 +3089,8 @@ L_088192B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088192E0: @@ -3009,14 +3189,40 @@ L_08819398: aot_gpr_5 = (0u | 15u); aot_gpr_31 = (0x088193ACu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 208u, 0x088193ACu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088193ACu) goto L_088193AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088193AC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088193B8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 209u, 0x088193B8u, 0x08AC5410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 391u, 0x08AC5410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088193B8u) goto L_088193B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088193B8: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); if (ctx.gpr[19] != 0u) { @@ -3042,8 +3248,8 @@ L_088193C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088193FC: @@ -3099,8 +3305,21 @@ L_08819478: L_08819484: aot_gpr_31 = (0x0881948Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 216u, 0x0881948Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881948Cu) goto L_0881948C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881948C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3131,14 +3350,40 @@ L_088194A8: L_088194B0: aot_gpr_31 = (0x088194B8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 221u, 0x088194B8u, 0x0890B900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 899u, 0x0890B900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088194B8u) goto L_088194B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088194B8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088194C4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 222u, 0x088194C4u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088194C4u) goto L_088194C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088194C4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -3148,8 +3393,21 @@ L_088194C4: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x088194E4u); ctx.gpr[9] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 223u, 0x088194E4u, 0x0891CA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 152u, 0x0891CA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088194E4u) goto L_088194E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088194E4: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); if (ctx.gpr[22] != 0u) { @@ -3172,8 +3430,8 @@ L_088194F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881951C: @@ -3232,13 +3490,39 @@ L_08819580: L_08819588: aot_gpr_31 = (0x08819590u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 232u, 0x08819590u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819590u) goto L_08819590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819590: aot_gpr_31 = (0x08819598u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 233u, 0x08819598u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819598u) goto L_08819598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819598: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); if (ctx.gpr[18] != 0u) { @@ -3256,8 +3540,8 @@ L_088195A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088195BC: @@ -3273,8 +3557,8 @@ L_088195BC: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(285), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(280), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088195EC: @@ -3345,8 +3629,8 @@ L_0881967C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819688: @@ -3405,8 +3689,8 @@ L_088196E8: goto L_088196EC; L_088196EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088196F4: @@ -3484,8 +3768,21 @@ L_08819758: L_08819768: aot_gpr_31 = (0x08819770u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 262u, 0x08819770u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819770u) goto L_08819770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819770: { const bool branch_taken = ctx.gpr[2] == aot_gpr_17; if (branch_taken) { @@ -3498,8 +3795,21 @@ L_08819778: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08819788u); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 264u, 0x08819788u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819788u) goto L_08819788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819788: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3519,8 +3829,21 @@ L_08819790: L_088197A0: aot_gpr_31 = (0x088197A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 267u, 0x088197A8u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088197A8u) goto L_088197A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088197A8: { const bool branch_taken = ctx.gpr[2] == aot_gpr_17; if (branch_taken) { @@ -3533,8 +3856,21 @@ L_088197B0: aot_gpr_5 = (0u | 12u); aot_gpr_31 = (0x088197C0u); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 269u, 0x088197C0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088197C0u) goto L_088197C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088197C0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3545,8 +3881,8 @@ L_088197C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088197D8: @@ -3574,8 +3910,8 @@ L_088197EC: goto L_08819804; L_08819804: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881980C: @@ -3586,8 +3922,8 @@ L_0881980C: aot_gpr_5 = (aot_gpr_6 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(376), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819828: @@ -4305,8 +4641,21 @@ L_08819D70: L_08819D78: aot_gpr_31 = (0x08819D80u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 349u, 0x08819D80u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819D80u) goto L_08819D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819D80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(2228))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[23]; @@ -4318,8 +4667,21 @@ L_08819D80: L_08819D8C: aot_gpr_31 = (0x08819D94u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 351u, 0x08819D94u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08819D94u) goto L_08819D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08819D94: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); if (ctx.gpr[16] != 0u) { @@ -4344,8 +4706,8 @@ L_08819DA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819DD4: @@ -4378,8 +4740,8 @@ L_08819E04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819E24: @@ -4461,8 +4823,8 @@ L_08819ED4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819EE8: @@ -4486,8 +4848,8 @@ L_08819F10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819F20: @@ -4554,8 +4916,8 @@ L_08819FA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08819FC4: @@ -4589,8 +4951,8 @@ L_08819FFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A018: @@ -4625,8 +4987,8 @@ L_0881A044: goto L_0881A048; L_0881A048: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A050: @@ -4637,15 +4999,15 @@ L_0881A050: aot_gpr_5 = (aot_gpr_6 + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A06C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A074: @@ -4671,8 +5033,8 @@ L_0881A098: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A0B4: @@ -4704,8 +5066,8 @@ L_0881A0D4: goto L_0881A0F4; L_0881A0F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A0FC: @@ -4720,8 +5082,8 @@ L_0881A0FC: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 4u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(12), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A128: @@ -5129,8 +5491,8 @@ L_0881A4A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A4D4: @@ -5146,8 +5508,21 @@ L_0881A4D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x0881A508u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 437u, 0x0881A508u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A508u) goto L_0881A508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A508: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(12))); @@ -5176,8 +5551,21 @@ L_0881A544: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0881A550u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 440u, 0x0881A550u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A550u) goto L_0881A550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A550: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0881A554; @@ -5245,8 +5633,21 @@ L_0881A5B8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0881A5F4u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 447u, 0x0881A5F4u, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A5F4u) goto L_0881A5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A5F4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -5260,8 +5661,8 @@ L_0881A5F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A618: @@ -5277,8 +5678,21 @@ L_0881A618: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0881A658u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 449u, 0x0881A658u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A658u) goto L_0881A658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A658: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { std::uint32_t aot_run_words[5]{}; @@ -5306,8 +5720,21 @@ L_0881A67C: ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0881A6A0u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 451u, 0x0881A6A0u, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A6A0u) goto L_0881A6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A6A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5318,8 +5745,21 @@ L_0881A6A0: L_0881A6A8: aot_gpr_31 = (0x0881A6B0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 453u, 0x0881A6B0u, 0x08941D50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 282u, 0x08941D50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A6B0u) goto L_0881A6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A6B0: aot_gpr_17 = (ctx.gpr[16] | 0u); { const bool branch_taken = aot_gpr_17 != 0u; @@ -5346,8 +5786,21 @@ L_0881A6C8: ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0881A6ECu); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 456u, 0x0881A6ECu, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A6ECu) goto L_0881A6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A6EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5358,8 +5811,21 @@ L_0881A6EC: L_0881A6F4: aot_gpr_31 = (0x0881A6FCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 458u, 0x0881A6FCu, 0x08941D50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 282u, 0x08941D50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A6FCu) goto L_0881A6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A6FC: aot_gpr_17 = (ctx.gpr[16] | 0u); { const bool branch_taken = aot_gpr_17 != 0u; @@ -5384,8 +5850,8 @@ L_0881A708: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A738: @@ -5399,8 +5865,21 @@ L_0881A738: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x0881A760u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 461u, 0x0881A760u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A760u) goto L_0881A760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A760: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_17 + static_cast(4), aot_run_words); @@ -5427,8 +5906,21 @@ L_0881A760: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0881A7BCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 462u, 0x0881A7BCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A7BCu) goto L_0881A7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A7BC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5439,8 +5931,8 @@ L_0881A7BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A7D4: @@ -5453,8 +5945,21 @@ L_0881A7D4: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x0881A7FCu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 464u, 0x0881A7FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A7FCu) goto L_0881A7FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A7FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -5536,8 +6041,21 @@ L_0881A7FC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0881A884u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 465u, 0x0881A884u, 0x088FF544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 755u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 755u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 755u, 0x088FF544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A884u) goto L_0881A884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A884: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5548,8 +6066,8 @@ L_0881A884: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A89C: @@ -5561,8 +6079,21 @@ L_0881A89C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0881A8BCu); ctx.gpr[7] = (ctx.gpr[16] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 467u, 0x0881A8BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A8BCu) goto L_0881A8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A8BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5573,8 +6104,21 @@ L_0881A8BC: } L_0881A8C8: aot_gpr_31 = (0x0881A8D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 469u, 0x0881A8D0u, 0x08A3D9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 303u, 0x08A3D9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A8D0u) goto L_0881A8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A8D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5584,16 +6128,29 @@ L_0881A8D0: } L_0881A8D8: aot_gpr_31 = (0x0881A8E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 471u, 0x0881A8E0u, 0x08A3DA48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 308u, 0x08A3DA48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A8E0u) goto L_0881A8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A8E0: ctx.gpr[2] = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A8F4: @@ -5606,8 +6163,21 @@ L_0881A8F4: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x0881A91Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 473u, 0x0881A91Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A91Cu) goto L_0881A91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A91C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); aot_gpr_5 = (aot_gpr_5 & 255u); @@ -5661,8 +6231,21 @@ L_0881A91C: aot_gpr_4 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x0881A984u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 474u, 0x0881A984u, 0x08A3DBD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 325u, 0x08A3DBD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A984u) goto L_0881A984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A984: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5673,8 +6256,8 @@ L_0881A984: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A99C: @@ -5686,8 +6269,21 @@ L_0881A99C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0881A9BCu); ctx.gpr[7] = (ctx.gpr[16] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 476u, 0x0881A9BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881A9BCu) goto L_0881A9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881A9BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5718,8 +6314,8 @@ L_0881A9E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881A9FC: @@ -5775,8 +6371,8 @@ L_0881A9FC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881AA24: @@ -5810,8 +6406,8 @@ L_0881AA54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881AA60: @@ -5831,8 +6427,21 @@ L_0881AA60: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); aot_gpr_31 = (0x0881AAA4u); aot_gpr_5 = (aot_gpr_17 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 486u, 0x0881AAA4u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881AAA4u) goto L_0881AAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881AAA4: aot_gpr_4 = (aot_gpr_17 + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6179,8 +6788,8 @@ L_0881AD74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881AE3C: @@ -6207,8 +6816,8 @@ L_0881AE3C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881AE6C: @@ -6217,8 +6826,21 @@ L_0881AE6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0881AE80u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 505u, 0x0881AE80u, 0x08AAC48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 74u, 0x08AAC48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881AE80u) goto L_0881AE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881AE80: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28564)); @@ -6231,8 +6853,8 @@ L_0881AE80: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881AEC4: @@ -6243,8 +6865,21 @@ L_0881AEC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0881AEE0u); aot_gpr_17 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 507u, 0x0881AEE0u, 0x08AAC5E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 101u, 0x08AAC5E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881AEE0u) goto L_0881AEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881AEE0: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28564)); @@ -6276,16 +6911,16 @@ L_0881AEE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881AF4C: ctx.gpr[2] = (2178u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-20660)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881AF58: @@ -6297,8 +6932,8 @@ L_0881AF68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881AF74: @@ -6319,8 +6954,21 @@ L_0881AF9C: L_0881AFA4: aot_gpr_31 = (0x0881AFACu); ctx.gpr[19] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 514u, 0x0881AFACu, 0x08AACA60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 139u, 0x08AACA60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881AFACu) goto L_0881AFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881AFAC: if (ctx.gpr[2] == ctx.gpr[16]) { ctx.gpr[19] = (0u | 1u); @@ -6330,8 +6978,21 @@ L_0881AFAC: L_0881AFB4: aot_gpr_31 = (0x0881AFBCu); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 516u, 0x0881AFBCu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881AFBCu) goto L_0881AFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881AFBC: if (ctx.gpr[2] == ctx.gpr[16]) { ctx.gpr[18] = (0u | 1u); @@ -6341,8 +7002,21 @@ L_0881AFBC: L_0881AFC4: aot_gpr_31 = (0x0881AFCCu); aot_gpr_17 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 518u, 0x0881AFCCu, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881AFCCu) goto L_0881AFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881AFCC: if (ctx.gpr[2] == ctx.gpr[16]) { aot_gpr_17 = (0u | 1u); @@ -6351,8 +7025,21 @@ L_0881AFCC: goto L_0881AFD4; L_0881AFD4: aot_gpr_31 = (0x0881AFDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 520u, 0x0881AFDCu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881AFDCu) goto L_0881AFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881AFDC: aot_gpr_4 = (ctx.gpr[2] ^ ctx.gpr[16]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -6421,8 +7108,8 @@ L_0881B024: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B048: @@ -6444,14 +7131,40 @@ L_0881B064: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x0881B078u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 534u, 0x0881B078u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B078u) goto L_0881B078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B078: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881B084u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 535u, 0x0881B084u, 0x08AACB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B084u) goto L_0881B084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B084: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6474,15 +7187,15 @@ L_0881B098: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B0AC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 9u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B0B4: @@ -6495,8 +7208,21 @@ L_0881B0B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0881B0D8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 540u, 0x0881B0D8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B0D8u) goto L_0881B0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B0D8: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6518,8 +7244,8 @@ L_0881B0F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B100: @@ -6548,8 +7274,8 @@ L_0881B12C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B138: @@ -6564,8 +7290,21 @@ L_0881B138: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0881B164u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 548u, 0x0881B164u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B164u) goto L_0881B164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B164: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -6593,8 +7332,21 @@ L_0881B17C: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x0881B1ACu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-20932)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 551u, 0x0881B1ACu, 0x08B6095Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 115u, 0x08B6095Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B1ACu) goto L_0881B1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B1AC: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28564)); @@ -6626,8 +7378,8 @@ L_0881B1FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B210: @@ -6636,14 +7388,27 @@ L_0881B210: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0881B224u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 554u, 0x0881B224u, 0x08A7FA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 660u, 0x08A7FA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B224u) goto L_0881B224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B224: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B230: @@ -6652,8 +7417,21 @@ L_0881B230: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0881B24Cu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 556u, 0x0881B24Cu, 0x08AACB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 158u, 0x08AACB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B24Cu) goto L_0881B24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B24C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(18888)); @@ -6661,8 +7439,21 @@ L_0881B24C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0881B264u); aot_gpr_4 = (0u | 400u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 557u, 0x0881B264u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B264u) goto L_0881B264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B264: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -6675,8 +7466,21 @@ L_0881B264: L_0881B270: aot_gpr_31 = (0x0881B278u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 559u, 0x0881B278u, 0x0881C6F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 28u, 0x0881C6F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B278u) goto L_0881B278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B278: ctx.gpr[18] = (aot_gpr_17 | 0u); goto L_0881B27C; @@ -6692,8 +7496,8 @@ L_0881B27C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B29C: @@ -6705,8 +7509,21 @@ L_0881B29C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0881B2C0u); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 562u, 0x0881B2C0u, 0x08AACB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 158u, 0x08AACB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B2C0u) goto L_0881B2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B2C0: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(18888)); @@ -6716,15 +7533,41 @@ L_0881B2C0: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881B2E0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 563u, 0x0881B2E0u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B2E0u) goto L_0881B2E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B2E0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(104), ctx.gpr[16]); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0881B2F0u); aot_gpr_4 = (0u | 400u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 564u, 0x0881B2F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B2F0u) goto L_0881B2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B2F0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6737,8 +7580,21 @@ L_0881B2F0: L_0881B2FC: aot_gpr_31 = (0x0881B304u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 566u, 0x0881B304u, 0x0881C6F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 28u, 0x0881C6F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B304u) goto L_0881B304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B304: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_0881B308; @@ -6755,8 +7611,21 @@ L_0881B314: aot_gpr_5 = (0u | 784u); aot_gpr_31 = (0x0881B330u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 569u, 0x0881B330u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B330u) goto L_0881B330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B330: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6779,13 +7648,39 @@ L_0881B34C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881B35Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 573u, 0x0881B35Cu, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B35Cu) goto L_0881B35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B35C: aot_gpr_31 = (0x0881B364u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 574u, 0x0881B364u, 0x0888F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 562u, 0x0888F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B364u) goto L_0881B364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B364: ctx.gpr[2] = (aot_gpr_17 | 0u); { std::uint32_t aot_run_words[5]{}; @@ -6798,22 +7693,35 @@ L_0881B364: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B384: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0881B394u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 576u, 0x0881B394u, 0x08AACBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 166u, 0x08AACBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B394u) goto L_0881B394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B394: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B3A0: @@ -6822,14 +7730,27 @@ L_0881B3A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0881B3B4u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 578u, 0x0881B3B4u, 0x08AACC08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 169u, 0x08AACC08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B3B4u) goto L_0881B3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B3B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B3C0: @@ -6867,8 +7788,21 @@ L_0881B414: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0881B424u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 582u, 0x0881B424u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B424u) goto L_0881B424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B424: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -6879,8 +7813,21 @@ L_0881B430: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x0881B440u); aot_gpr_4 = (0u | 2064u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 584u, 0x0881B440u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B440u) goto L_0881B440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B440: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -6896,8 +7843,21 @@ L_0881B44C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); aot_gpr_31 = (0x0881B460u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 586u, 0x0881B460u, 0x089D96B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 257u, 0x089D96B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B460u) goto L_0881B460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B460: ctx.gpr[21] = (ctx.gpr[22] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -6906,8 +7866,21 @@ L_0881B468: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881B474u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 588u, 0x0881B474u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B474u) goto L_0881B474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B474: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(104), ctx.gpr[21]); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); @@ -6916,8 +7889,21 @@ L_0881B474: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881B490u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 589u, 0x0881B490u, 0x08AACC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 171u, 0x08AACC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B490u) goto L_0881B490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B490: aot_gpr_4 = (0u | 0u); aot_gpr_17 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(10)))))); @@ -6926,8 +7912,21 @@ L_0881B490: aot_gpr_5 = (0u | 784u); aot_gpr_31 = (0x0881B4ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 590u, 0x0881B4ACu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B4ACu) goto L_0881B4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B4AC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6950,8 +7949,21 @@ L_0881B4C8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881B4D8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 594u, 0x0881B4D8u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B4D8u) goto L_0881B4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B4D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6965,8 +7977,21 @@ L_0881B4E0: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881B4F4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 596u, 0x0881B4F4u, 0x08AACC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 171u, 0x08AACC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B4F4u) goto L_0881B4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B4F4: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -6981,8 +8006,8 @@ L_0881B4F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B51C: @@ -7032,8 +8057,21 @@ L_0881B56C: aot_gpr_5 = (0u | 784u); aot_gpr_31 = (0x0881B588u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 602u, 0x0881B588u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B588u) goto L_0881B588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B588: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -7056,8 +8094,21 @@ L_0881B5A4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881B5B4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 606u, 0x0881B5B4u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B5B4u) goto L_0881B5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B5B4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -7068,8 +8119,8 @@ L_0881B5B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B5CC: @@ -7105,8 +8156,21 @@ L_0881B620: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(56)))))); aot_gpr_31 = (0x0881B638u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 609u, 0x0881B638u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B638u) goto L_0881B638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B638: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -7138,8 +8202,21 @@ L_0881B66C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(58)))))); aot_gpr_31 = (0x0881B684u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 613u, 0x0881B684u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B684u) goto L_0881B684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B684: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -7147,8 +8224,21 @@ L_0881B684: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(60)))))); aot_gpr_31 = (0x0881B69Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 614u, 0x0881B69Cu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B69Cu) goto L_0881B69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B69C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); @@ -7176,8 +8266,8 @@ L_0881B6D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B6F0: @@ -7186,13 +8276,39 @@ L_0881B6F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0881B704u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 617u, 0x0881B704u, 0x08AACCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 178u, 0x08AACCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B704u) goto L_0881B704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B704: aot_gpr_31 = (0x0881B70Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 618u, 0x0881B70Cu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B70Cu) goto L_0881B70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B70C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7207,8 +8323,21 @@ L_0881B718: L_0881B71C: aot_gpr_31 = (0x0881B724u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(184))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 621u, 0x0881B724u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B724u) goto L_0881B724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B724: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7223,8 +8352,21 @@ L_0881B730: L_0881B734: aot_gpr_31 = (0x0881B73Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 624u, 0x0881B73Cu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B73Cu) goto L_0881B73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B73C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7239,8 +8381,21 @@ L_0881B748: L_0881B74C: aot_gpr_31 = (0x0881B754u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 627u, 0x0881B754u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B754u) goto L_0881B754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B754: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7257,8 +8412,8 @@ L_0881B764: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B774: @@ -7307,8 +8462,8 @@ L_0881B7E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881B804: @@ -7324,8 +8479,21 @@ L_0881B804: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0881B834u); ctx.gpr[8] = (ctx.gpr[18] + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 635u, 0x0881B834u, 0x08AACD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 182u, 0x08AACD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881B834u) goto L_0881B834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881B834: aot_gpr_5 = (46470u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -7689,8 +8857,8 @@ L_0881BB00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881BB1C: @@ -7761,8 +8929,21 @@ L_0881BC08: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881BC1Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0005->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0005_entry, 689u, 0x0881BC1Cu, 0x08AACEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 206u, 0x08AACEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881BC1Cu) goto L_0881BC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881BC1C: aot_gpr_4 = (ctx.gpr[18] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; diff --git a/profiles/vcs/generated/generated_unit_0006.cpp b/profiles/vcs/generated/generated_unit_0006.cpp index 33b228c..982c3ca 100644 --- a/profiles/vcs/generated/generated_unit_0006.cpp +++ b/profiles/vcs/generated/generated_unit_0006.cpp @@ -816,6 +816,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0881C000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1021,8 +1045,8 @@ L_0881C27C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881C294: @@ -1071,8 +1095,21 @@ L_0881C324: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0881C338u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 11u, 0x0881C338u, 0x08AAD1E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 217u, 0x08AAD1E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881C338u) goto L_0881C338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881C338: aot_gpr_4 = (ctx.gpr[16] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1371,8 +1408,8 @@ L_0881C6D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881C6F0: @@ -1381,8 +1418,21 @@ L_0881C6F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0881C708u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 29u, 0x0881C708u, 0x08AAD80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 264u, 0x08AAD80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881C708u) goto L_0881C708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881C708: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(18672)); @@ -1396,8 +1446,8 @@ L_0881C708: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881C738: @@ -1419,8 +1469,21 @@ L_0881C754: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881C76Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 32u, 0x0881C76Cu, 0x08AAD844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 266u, 0x08AAD844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881C76Cu) goto L_0881C76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881C76C: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1443,22 +1506,35 @@ L_0881C780: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881C794: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0881C7A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 36u, 0x0881C7A4u, 0x08AAD998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 280u, 0x08AAD998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881C7A4u) goto L_0881C7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881C7A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881C7B0: @@ -1467,8 +1543,21 @@ L_0881C7B0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(472), aot_run_words); } ctx.gpr[23] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0881C800u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 38u, 0x0881C800u, 0x08AAD8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 271u, 0x08AAD8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881C800u) goto L_0881C800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881C800: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(352))); aot_gpr_5 = (aot_gpr_4 + static_cast(10)); @@ -1489,8 +1578,21 @@ L_0881C800: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(374)))))); aot_gpr_31 = (0x0881C84Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 39u, 0x0881C84Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881C84Cu) goto L_0881C84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881C84C: ctx.gpr[20] = (ctx.gpr[2] | 0u); ctx.gpr[30] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(352))); @@ -1657,8 +1759,21 @@ L_0881C9E0: L_0881C9F0: aot_gpr_31 = (0x0881C9F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 54u, 0x0881C9F8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881C9F8u) goto L_0881C9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881C9F8: aot_gpr_4 = (aot_gpr_17 + static_cast(16)); goto L_0881C9FC; @@ -1670,13 +1785,39 @@ L_0881C9FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x0881CA18u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 56u, 0x0881CA18u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CA18u) goto L_0881CA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CA18: aot_gpr_31 = (0x0881CA20u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 57u, 0x0881CA20u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CA20u) goto L_0881CA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CA20: aot_gpr_4 = (ctx.gpr[22] + static_cast(272)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1730,8 +1871,21 @@ L_0881CA70: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x0881CA7Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 62u, 0x0881CA7Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CA7Cu) goto L_0881CA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CA7C: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1768,14 +1922,40 @@ L_0881CA9C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0881CAD0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 64u, 0x0881CAD0u, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CAD0u) goto L_0881CAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CAD0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_31 = (0x0881CADCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 65u, 0x0881CADCu, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CADCu) goto L_0881CADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CADC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(636))); aot_gpr_4 = (aot_gpr_4 & 64u); @@ -1817,8 +1997,21 @@ L_0881CB0C: L_0881CB1C: aot_gpr_31 = (0x0881CB24u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 70u, 0x0881CB24u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CB24u) goto L_0881CB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CB24: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); goto L_0881CB28; @@ -1830,19 +2023,58 @@ L_0881CB28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x0881CB44u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 72u, 0x0881CB44u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CB44u) goto L_0881CB44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CB44: aot_gpr_31 = (0x0881CB4Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 73u, 0x0881CB4Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CB4Cu) goto L_0881CB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CB4C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_31 = (0x0881CB58u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 74u, 0x0881CB58u, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CB58u) goto L_0881CB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CB58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(256))); if (aot_gpr_4 == 0u) { @@ -1925,8 +2157,21 @@ L_0881CBF0: L_0881CC00: aot_gpr_31 = (0x0881CC08u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 83u, 0x0881CC08u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CC08u) goto L_0881CC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CC08: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); goto L_0881CC0C; @@ -1938,13 +2183,39 @@ L_0881CC0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x0881CC28u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 85u, 0x0881CC28u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CC28u) goto L_0881CC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CC28: aot_gpr_31 = (0x0881CC30u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 86u, 0x0881CC30u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CC30u) goto L_0881CC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CC30: aot_gpr_4 = (ctx.gpr[22] + static_cast(240)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1999,8 +2270,21 @@ L_0881CC84: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x0881CC90u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 91u, 0x0881CC90u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CC90u) goto L_0881CC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CC90: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2036,14 +2320,40 @@ L_0881CCB0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0881CCE0u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 93u, 0x0881CCE0u, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CCE0u) goto L_0881CCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CCE0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_31 = (0x0881CCECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 94u, 0x0881CCECu, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CCECu) goto L_0881CCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CCEC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -2055,8 +2365,21 @@ L_0881CCEC: L_0881CCFC: aot_gpr_31 = (0x0881CD04u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 96u, 0x0881CD04u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CD04u) goto L_0881CD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CD04: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[24])) && aot_fpr_12 == ctx.fpr[24])) ? 0x00800000u : 0u); @@ -2084,8 +2407,21 @@ L_0881CD30: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881CD44u); aot_gpr_6 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 99u, 0x0881CD44u, 0x08AA1B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 429u, 0x08AA1B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CD44u) goto L_0881CD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CD44: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2120,8 +2456,21 @@ L_0881CD4C: L_0881CD78: aot_gpr_31 = (0x0881CD80u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 102u, 0x0881CD80u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CD80u) goto L_0881CD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CD80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(252))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2152,8 +2501,21 @@ L_0881CD98: L_0881CDA8: aot_gpr_31 = (0x0881CDB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 106u, 0x0881CDB0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CDB0u) goto L_0881CDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CDB0: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); goto L_0881CDB4; @@ -2165,13 +2527,39 @@ L_0881CDB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x0881CDD0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 108u, 0x0881CDD0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CDD0u) goto L_0881CDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CDD0: aot_gpr_31 = (0x0881CDD8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 109u, 0x0881CDD8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CDD8u) goto L_0881CDD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CDD8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -2188,14 +2576,40 @@ L_0881CDD8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0881CE14u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 110u, 0x0881CE14u, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CE14u) goto L_0881CE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CE14: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_31 = (0x0881CE20u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 111u, 0x0881CE20u, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CE20u) goto L_0881CE20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CE20: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -2207,8 +2621,21 @@ L_0881CE20: L_0881CE30: aot_gpr_31 = (0x0881CE38u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 113u, 0x0881CE38u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CE38u) goto L_0881CE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CE38: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[28])) && aot_fpr_12 == ctx.fpr[28])) ? 0x00800000u : 0u); @@ -2236,8 +2663,21 @@ L_0881CE64: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881CE78u); aot_gpr_6 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 116u, 0x0881CE78u, 0x08AA1B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 429u, 0x08AA1B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CE78u) goto L_0881CE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CE78: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2272,8 +2712,21 @@ L_0881CE80: L_0881CEAC: aot_gpr_31 = (0x0881CEB4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 119u, 0x0881CEB4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CEB4u) goto L_0881CEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CEB4: ctx.fpr[30] = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(460), ctx.gpr[22]); @@ -2314,8 +2767,21 @@ L_0881CEF4: L_0881CF04: aot_gpr_31 = (0x0881CF0Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 124u, 0x0881CF0Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CF0Cu) goto L_0881CF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CF0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(460), ctx.gpr[22]); goto L_0881CF10; @@ -2328,13 +2794,39 @@ L_0881CF10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x0881CF30u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 126u, 0x0881CF30u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CF30u) goto L_0881CF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CF30: aot_gpr_31 = (0x0881CF38u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 127u, 0x0881CF38u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CF38u) goto L_0881CF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CF38: aot_gpr_4 = (ctx.gpr[22] + static_cast(256)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2388,8 +2880,21 @@ L_0881CF88: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x0881CF94u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 132u, 0x0881CF94u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CF94u) goto L_0881CF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CF94: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2423,14 +2928,40 @@ L_0881CFB4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0881CFDCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 134u, 0x0881CFDCu, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CFDCu) goto L_0881CFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CFDC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_31 = (0x0881CFE8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 135u, 0x0881CFE8u, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881CFE8u) goto L_0881CFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881CFE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(244))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2459,8 +2990,21 @@ L_0881D000: L_0881D010: aot_gpr_31 = (0x0881D018u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 139u, 0x0881D018u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D018u) goto L_0881D018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D018: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(452), ctx.gpr[20]); goto L_0881D01C; @@ -2473,13 +3017,39 @@ L_0881D01C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x0881D03Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 141u, 0x0881D03Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D03Cu) goto L_0881D03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D03C: aot_gpr_31 = (0x0881D044u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 142u, 0x0881D044u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D044u) goto L_0881D044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D044: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(768))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30720))); @@ -2492,14 +3062,40 @@ L_0881D044: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0881D070u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 143u, 0x0881D070u, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D070u) goto L_0881D070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D070: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_31 = (0x0881D07Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 144u, 0x0881D07Cu, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D07Cu) goto L_0881D07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D07C: ctx.gpr[18] = (0u | 12u); ctx.gpr[20] = (0u | 13u); @@ -2531,16 +3127,42 @@ L_0881D0B8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0881D0D4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 147u, 0x0881D0D4u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D0D4u) goto L_0881D0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D0D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(176))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(448))); aot_gpr_31 = (0x0881D0E8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 148u, 0x0881D0E8u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D0E8u) goto L_0881D0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D0E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2554,8 +3176,21 @@ L_0881D0F4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(456))); aot_gpr_31 = (0x0881D104u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 150u, 0x0881D104u, 0x08A823FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 201u, 0x08A823FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D104u) goto L_0881D104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D104: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(176))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2572,16 +3207,42 @@ L_0881D110: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0881D12Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 152u, 0x0881D12Cu, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D12Cu) goto L_0881D12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D12C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(176))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(448))); aot_gpr_31 = (0x0881D140u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 153u, 0x0881D140u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D140u) goto L_0881D140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D140: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2604,8 +3265,21 @@ L_0881D160: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0881D170u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 156u, 0x0881D170u, 0x08A823FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 201u, 0x08A823FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D170u) goto L_0881D170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D170: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[21]; if (branch_taken) { @@ -2656,8 +3330,8 @@ L_0881D1C0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(17912))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881D1D8: @@ -2727,8 +3401,21 @@ L_0881D258: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881D274u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 169u, 0x0881D274u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D274u) goto L_0881D274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D274: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(264))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(780))); @@ -2737,8 +3424,21 @@ L_0881D274: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881D290u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 170u, 0x0881D290u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D290u) goto L_0881D290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D290: { const bool branch_taken = static_cast(aot_gpr_17) < 0; if (branch_taken) { @@ -2754,8 +3454,21 @@ L_0881D298: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881D2B4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 172u, 0x0881D2B4u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D2B4u) goto L_0881D2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D2B4: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] <= ctx.fpr[30])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -2772,8 +3485,21 @@ L_0881D2C4: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881D2E0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 174u, 0x0881D2E0u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D2E0u) goto L_0881D2E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D2E0: aot_gpr_5 = (0u + static_cast(-977)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(464))); @@ -2793,8 +3519,21 @@ L_0881D2F0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0881D314u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 176u, 0x0881D314u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D314u) goto L_0881D314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D314: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2827,16 +3566,42 @@ L_0881D328: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0881D368u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 179u, 0x0881D368u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D368u) goto L_0881D368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D368: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(188))); aot_gpr_5 = (0u | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0881D37Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 180u, 0x0881D37Cu, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D37Cu) goto L_0881D37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D37C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(204)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -2859,8 +3624,21 @@ L_0881D38C: L_0881D3A0: aot_gpr_31 = (0x0881D3A8u); aot_gpr_4 = (aot_gpr_29 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 183u, 0x0881D3A8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D3A8u) goto L_0881D3A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D3A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(184))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -2884,8 +3662,21 @@ L_0881D3D8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0881D3F4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 185u, 0x0881D3F4u, 0x08B09D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 371u, 0x08B09D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D3F4u) goto L_0881D3F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D3F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2919,8 +3710,21 @@ L_0881D420: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0881D438u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 189u, 0x0881D438u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D438u) goto L_0881D438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D438: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(268))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); @@ -2947,8 +3751,21 @@ L_0881D454: L_0881D464: aot_gpr_31 = (0x0881D46Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 192u, 0x0881D46Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D46Cu) goto L_0881D46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D46C: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); goto L_0881D470; @@ -2961,8 +3778,21 @@ L_0881D470: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x0881D490u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 194u, 0x0881D490u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D490u) goto L_0881D490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D490: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30664))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14) ^ 0x80000000u); @@ -3191,8 +4021,21 @@ L_0881D6B4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(8), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0881D6D0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 209u, 0x0881D6D0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D6D0u) goto L_0881D6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D6D0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(204)))))); aot_gpr_4 = (aot_gpr_4 & 8u); @@ -3439,8 +4282,21 @@ L_0881D760: ctx.gpr[9] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0881D820u); ctx.gpr[10] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 214u, 0x0881D820u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D820u) goto L_0881D820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D820: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(304))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -3610,8 +4466,21 @@ L_0881D820: ctx.gpr[9] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0881D8B8u); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 215u, 0x0881D8B8u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D8B8u) goto L_0881D8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D8B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); goto L_0881D8BC; @@ -3634,8 +4503,21 @@ L_0881D8C8: L_0881D8D4: aot_gpr_31 = (0x0881D8DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 219u, 0x0881D8DCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D8DCu) goto L_0881D8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D8DC: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(472), aot_run_words); @@ -3658,8 +4540,8 @@ L_0881D8DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881D924: @@ -3686,8 +4568,21 @@ L_0881D924: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(150)))))); aot_gpr_31 = (0x0881D9B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 221u, 0x0881D9B4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881D9B4u) goto L_0881D9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881D9B4: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_17 + static_cast(32)); @@ -3765,8 +4660,21 @@ L_0881DA5C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0881DA80u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 228u, 0x0881DA80u, 0x0881A9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 480u, 0x0881A9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881DA80u) goto L_0881DA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881DA80: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3787,8 +4695,21 @@ L_0881DA80: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0881DAA0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 229u, 0x0881DAA0u, 0x0881A9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 480u, 0x0881A9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881DAA0u) goto L_0881DAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881DAA0: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3835,8 +4756,21 @@ L_0881DACC: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x0881DAE4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 233u, 0x0881DAE4u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881DAE4u) goto L_0881DAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881DAE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4046,8 +4980,8 @@ L_0881DC40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DC84: @@ -4060,8 +4994,21 @@ L_0881DC84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0881DCA8u); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(8), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 245u, 0x0881DCA8u, 0x08B3E0A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 501u, 0x08B3E0A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881DCA8u) goto L_0881DCA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881DCA8: aot_gpr_31 = (0x0881DCB0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4073,15 +5020,15 @@ L_0881DCB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DCC4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DCCC: @@ -4158,8 +5105,8 @@ L_0881DD4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DD70: @@ -4168,8 +5115,8 @@ L_0881DD70: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(8), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DD84: @@ -4233,8 +5180,8 @@ L_0881DDDC: goto L_0881DDE0; L_0881DDE0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DDE8: @@ -4301,8 +5248,8 @@ L_0881DE4C: goto L_0881DE50; L_0881DE50: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DE58: @@ -4366,8 +5313,8 @@ L_0881DEB0: goto L_0881DEB4; L_0881DEB4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DEBC: @@ -4431,8 +5378,8 @@ L_0881DF14: goto L_0881DF18; L_0881DF18: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DF20: @@ -4498,8 +5445,8 @@ L_0881DF78: goto L_0881DF84; L_0881DF84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881DF8C: @@ -4577,8 +5524,8 @@ L_0881E028: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E044: @@ -4625,8 +5572,8 @@ L_0881E088: goto L_0881E08C; L_0881E08C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E094: @@ -4641,8 +5588,21 @@ L_0881E094: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0881E0C0u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 316u, 0x0881E0C0u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881E0C0u) goto L_0881E0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881E0C0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30588))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30592))); @@ -4653,8 +5613,8 @@ L_0881E0C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E0E4: @@ -4754,8 +5714,8 @@ L_0881E154: goto L_0881E158; L_0881E158: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E160: @@ -4828,8 +5788,8 @@ L_0881E1B4: goto L_0881E1B8; L_0881E1B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E1C0: @@ -4867,8 +5827,8 @@ L_0881E1E8: goto L_0881E214; L_0881E214: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E21C: @@ -4900,8 +5860,8 @@ L_0881E238: goto L_0881E254; L_0881E254: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E25C: @@ -4920,8 +5880,8 @@ L_0881E284: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E290: @@ -4936,8 +5896,21 @@ L_0881E290: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0881E2BCu); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 351u, 0x0881E2BCu, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881E2BCu) goto L_0881E2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881E2BC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(48))); aot_gpr_5 = (0u | 0u); @@ -5001,8 +5974,8 @@ L_0881E324: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E334: @@ -5112,8 +6085,8 @@ L_0881E3D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E3E8: @@ -5170,8 +6143,8 @@ L_0881E424: goto L_0881E428; L_0881E428: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E430: @@ -5331,8 +6304,21 @@ L_0881E560: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_5); aot_gpr_31 = (0x0881E574u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 398u, 0x0881E574u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881E574u) goto L_0881E574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881E574: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -5376,8 +6362,21 @@ L_0881E5AC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881E5C0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 404u, 0x0881E5C0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881E5C0u) goto L_0881E5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881E5C0: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[16]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -5536,8 +6535,8 @@ L_0881E6B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E6E4: @@ -5602,8 +6601,8 @@ L_0881E7CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E7E0: @@ -5638,8 +6637,8 @@ L_0881E810: L_0881E830: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E838: @@ -5721,8 +6720,8 @@ L_0881E8E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881E8FC: @@ -5734,8 +6733,21 @@ L_0881E8FC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x0881E924u); aot_gpr_17 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 439u, 0x0881E924u, 0x08822BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 500u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 500u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 500u, 0x08822BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881E924u) goto L_0881E924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881E924: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881E930u); @@ -5826,8 +6838,21 @@ L_0881E9E0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881E9ECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 449u, 0x0881E9ECu, 0x088F1FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 434u, 0x088F1FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881E9ECu) goto L_0881E9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881E9EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5946,8 +6971,21 @@ L_0881EADC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881EAE8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 464u, 0x0881EAE8u, 0x08820DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 194u, 0x08820DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881EAE8u) goto L_0881EAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881EAE8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5960,8 +6998,8 @@ L_0881EAE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881EB08: @@ -5983,14 +7021,27 @@ L_0881EB28: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x0881EB38u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 467u, 0x0881EB38u, 0x0882126Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 240u, 0x0882126Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881EB38u) goto L_0881EB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881EB38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881EB44: @@ -6176,8 +7227,8 @@ L_0881ECB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881ECDC: @@ -6230,8 +7281,21 @@ L_0881ED50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881ED60u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 492u, 0x0881ED60u, 0x088201D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 26u, 0x088201D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881ED60u) goto L_0881ED60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881ED60: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -6320,8 +7384,8 @@ L_0881EDF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881EE20: @@ -6401,8 +7465,8 @@ L_0881EEB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881EEC0: @@ -6428,8 +7492,21 @@ L_0881EEDC: L_0881EEE4: aot_gpr_31 = (0x0881EEECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 513u, 0x0881EEECu, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881EEECu) goto L_0881EEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881EEEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6453,8 +7530,8 @@ L_0881EF08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881EF14: @@ -6569,8 +7646,8 @@ L_0881EFEC: L_0881EFF4: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881EFFC: @@ -6661,8 +7738,21 @@ L_0881F088: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0881F098u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 536u, 0x0881F098u, 0x088215C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 269u, 0x088215C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881F098u) goto L_0881F098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881F098: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(12))); { const bool branch_taken = aot_gpr_5 != 0u; @@ -6730,8 +7820,8 @@ L_0881F0E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F0FC: @@ -6741,8 +7831,21 @@ L_0881F0FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0881F114u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 546u, 0x0881F114u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881F114u) goto L_0881F114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881F114: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); @@ -6832,8 +7935,8 @@ L_0881F1A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F1B0: @@ -6904,8 +8007,8 @@ L_0881F260: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F274: @@ -6932,8 +8035,8 @@ L_0881F294: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F2BC: @@ -7019,8 +8122,8 @@ L_0881F368: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F37C: @@ -7104,8 +8207,21 @@ L_0881F44C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881F458u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 582u, 0x0881F458u, 0x088F1FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 434u, 0x088F1FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881F458u) goto L_0881F458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881F458: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7117,8 +8233,8 @@ L_0881F458: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F474: @@ -7223,8 +8339,8 @@ L_0881F568: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F588: @@ -7420,8 +8536,8 @@ L_0881F6B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F6CC: @@ -7463,8 +8579,21 @@ L_0881F72C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0881F73Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 617u, 0x0881F73Cu, 0x088215C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 269u, 0x088215C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881F73Cu) goto L_0881F73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881F73C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(36))); aot_gpr_5 = (ctx.gpr[18] & 255u); @@ -7504,8 +8633,8 @@ L_0881F784: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F7A0: @@ -7572,8 +8701,21 @@ L_0881F808: } L_0881F820: aot_gpr_31 = (0x0881F828u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 627u, 0x0881F828u, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881F828u) goto L_0881F828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881F828: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); @@ -7616,8 +8758,8 @@ L_0881F868: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F874: @@ -7705,8 +8847,21 @@ L_0881F918: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x0881F92Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 643u, 0x0881F92Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881F92Cu) goto L_0881F92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881F92C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7750,8 +8905,21 @@ L_0881F964: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0881F978u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 649u, 0x0881F978u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881F978u) goto L_0881F978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881F978: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[20]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -7810,8 +8978,8 @@ L_0881F9D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881F9F0: @@ -7868,8 +9036,8 @@ L_0881FA48: goto L_0881FA4C; L_0881FA4C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881FA54: @@ -7880,8 +9048,8 @@ L_0881FA54: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881FA70: @@ -7980,8 +9148,8 @@ L_0881FB2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881FB44: @@ -8170,8 +9338,21 @@ L_0881FCAC: aot_fpr_13 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x0881FCCCu); aot_gpr_6 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 695u, 0x0881FCCCu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881FCCCu) goto L_0881FCCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881FCCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8259,8 +9440,21 @@ L_0881FD74: aot_fpr_13 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x0881FD94u); aot_gpr_6 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 704u, 0x0881FD94u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881FD94u) goto L_0881FD94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881FD94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8312,8 +9506,21 @@ L_0881FDD0: ctx.gpr[7] = (16256u << 16u); aot_gpr_31 = (0x0881FE04u); aot_fpr_13 = std::bit_cast(ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 710u, 0x0881FE04u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881FE04u) goto L_0881FE04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881FE04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8366,8 +9573,21 @@ L_0881FE60: ctx.gpr[7] = (16256u << 16u); aot_gpr_31 = (0x0881FE94u); aot_fpr_13 = std::bit_cast(ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 714u, 0x0881FE94u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881FE94u) goto L_0881FE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881FE94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 32768u); @@ -8406,8 +9626,8 @@ L_0881FEBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881FEE4: @@ -8415,8 +9635,21 @@ L_0881FEE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0881FEF4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 720u, 0x0881FEF4u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881FEF4u) goto L_0881FEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881FEF4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8467,15 +9700,15 @@ L_0881FF40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881FF4C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0881FF54: @@ -8564,8 +9797,21 @@ L_0881FFE4: L_0881FFEC: aot_gpr_31 = (0x0881FFF4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0006->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0006_entry, 737u, 0x0881FFF4u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0881FFF4u) goto L_0881FFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0881FFF4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0007.cpp b/profiles/vcs/generated/generated_unit_0007.cpp index c385514..b8652be 100644 --- a/profiles/vcs/generated/generated_unit_0007.cpp +++ b/profiles/vcs/generated/generated_unit_0007.cpp @@ -830,6 +830,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08820000u; + if (local_delta_v813 >= 16348u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -858,8 +882,8 @@ L_08820008: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882001C: @@ -881,8 +905,21 @@ L_0882001C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_31); aot_gpr_31 = (0x08820064u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 5u, 0x08820064u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820064u) goto L_08820064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820064: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -951,8 +988,21 @@ L_08820084: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088200B4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 9u, 0x088200B4u, 0x08A6734Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 658u, 0x08A6734Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088200B4u) goto L_088200B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088200B4: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088200B8; @@ -961,8 +1011,21 @@ L_088200B8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088200C8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 11u, 0x088200C8u, 0x0881E430u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 380u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 380u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 380u, 0x0881E430u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088200C8u) goto L_088200C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088200C8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(52), aot_run_words); @@ -975,8 +1038,8 @@ L_088200C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088200E8: @@ -1103,8 +1166,8 @@ L_088201AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088201D0: @@ -1291,8 +1354,21 @@ L_088202D8: aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x088202F8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 45u, 0x088202F8u, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088202F8u) goto L_088202F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088202F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1337,8 +1413,21 @@ L_08820328: aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08820348u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 51u, 0x08820348u, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820348u) goto L_08820348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820348: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1370,8 +1459,8 @@ L_08820368: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08820384: @@ -1453,8 +1542,21 @@ L_08820418: L_08820428: aot_gpr_31 = (0x08820430u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 65u, 0x08820430u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820430u) goto L_08820430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820430: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -1531,8 +1633,21 @@ L_088204C8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088204D8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 73u, 0x088204D8u, 0x0881F474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 583u, 0x0881F474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088204D8u) goto L_088204D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088204D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); { const bool branch_taken = 0u == 0u; @@ -1547,8 +1662,21 @@ L_088204E4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088204F4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 75u, 0x088204F4u, 0x0881F474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 583u, 0x0881F474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088204F4u) goto L_088204F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088204F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_gpr_4 & 2048u); @@ -1665,8 +1793,8 @@ L_088205CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088205F8: @@ -1924,13 +2052,39 @@ L_08820790: L_088207A0: aot_gpr_31 = (0x088207A8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 104u, 0x088207A8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088207A8u) goto L_088207A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088207A8: aot_gpr_31 = (0x088207B0u); aot_fpr_12 = aot_fpr_20 - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 105u, 0x088207B0u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088207B0u) goto L_088207B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088207B0: aot_gpr_4 = (15681u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1977,8 +2131,21 @@ L_08820800: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x0882080Cu); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 111u, 0x0882080Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882080Cu) goto L_0882080C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882080C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(aot_fpr_20)); @@ -2007,8 +2174,8 @@ L_0882082C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08820850: @@ -2028,8 +2195,21 @@ L_08820850: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0882089Cu); ctx.gpr[19] = (ctx.gpr[7] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 116u, 0x0882089Cu, 0x0881FA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 664u, 0x0881FA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882089Cu) goto L_0882089C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882089C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(8))); @@ -2039,8 +2219,21 @@ L_0882089C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088208BCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 117u, 0x088208BCu, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088208BCu) goto L_088208BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088208BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -2113,8 +2306,21 @@ L_08820940: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882094Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 126u, 0x0882094Cu, 0x0881FEE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 719u, 0x0881FEE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882094Cu) goto L_0882094C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882094C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); aot_gpr_5 = (65528u << 16u); @@ -2128,8 +2334,21 @@ L_0882094C: L_0882096C: aot_gpr_31 = (0x08820974u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 128u, 0x08820974u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820974u) goto L_08820974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820974: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2170,8 +2389,21 @@ L_088209BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088209C8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 133u, 0x088209C8u, 0x0881FEE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 719u, 0x0881FEE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088209C8u) goto L_088209C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088209C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[23]); @@ -2197,8 +2429,21 @@ L_088209E4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08820A04u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 137u, 0x08820A04u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820A04u) goto L_08820A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820A04: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); @@ -2260,8 +2505,21 @@ L_08820A98: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_gpr_31 = (0x08820AB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 143u, 0x08820AB8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820AB8u) goto L_08820AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820AB8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2271,8 +2529,21 @@ L_08820AB8: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08820AD8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 144u, 0x08820AD8u, 0x0881F1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 558u, 0x0881F1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820AD8u) goto L_08820AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820AD8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(44), std::bit_cast(ctx.fpr[0])); ctx.gpr[18] = (0u | 1u); @@ -2290,8 +2561,21 @@ L_08820AE8: L_08820AF0: aot_gpr_31 = (0x08820AF8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 147u, 0x08820AF8u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820AF8u) goto L_08820AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820AF8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2352,8 +2636,8 @@ L_08820B48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08820B80: @@ -2427,8 +2711,21 @@ L_08820C00: L_08820C08: aot_gpr_31 = (0x08820C10u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 162u, 0x08820C10u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820C10u) goto L_08820C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820C10: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2492,8 +2789,21 @@ L_08820C60: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_31 = (0x08820C6Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 171u, 0x08820C6Cu, 0x0890ED0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 659u, 0x0890ED0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820C6Cu) goto L_08820C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820C6C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2549,8 +2859,21 @@ L_08820CB0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08820CC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 178u, 0x08820CC8u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820CC8u) goto L_08820CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820CC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2560,22 +2883,61 @@ L_08820CC8: } L_08820CD0: aot_gpr_31 = (0x08820CD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 180u, 0x08820CD8u, 0x089910A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 230u, 0x089910A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820CD8u) goto L_08820CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820CD8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 53u); aot_gpr_31 = (0x08820CE8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 181u, 0x08820CE8u, 0x08A360ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 510u, 0x08A360ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820CE8u) goto L_08820CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820CE8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08820CF8u); aot_gpr_5 = (0u | 53u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 182u, 0x08820CF8u, 0x088E4910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 113u, 0x088E4910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820CF8u) goto L_08820CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820CF8: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -2584,8 +2946,21 @@ L_08820CF8: aot_fpr_13 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x08820D14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 183u, 0x08820D14u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820D14u) goto L_08820D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820D14: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -2602,8 +2977,21 @@ L_08820D14: L_08820D30: aot_gpr_31 = (0x08820D38u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 185u, 0x08820D38u, 0x0881FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 727u, 0x0881FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820D38u) goto L_08820D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820D38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2648,8 +3036,21 @@ L_08820D64: L_08820D7C: aot_gpr_31 = (0x08820D84u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 191u, 0x08820D84u, 0x0890B608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 854u, 0x0890B608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820D84u) goto L_08820D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820D84: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -2673,8 +3074,8 @@ L_08820D90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08820DB0: @@ -2741,8 +3142,8 @@ L_08820E14: goto L_08820E20; L_08820E20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08820E28: @@ -2776,8 +3177,21 @@ L_08820E70: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08820E90u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 205u, 0x08820E90u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820E90u) goto L_08820E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820E90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2822,8 +3236,21 @@ L_08820ED8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08820EE4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[14])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 211u, 0x08820EE4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820EE4u) goto L_08820EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820EE4: aot_fpr_22 = ctx.fpr[0] + aot_fpr_20; goto L_08820EE8; @@ -2831,8 +3258,21 @@ L_08820EE8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08820EF4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 213u, 0x08820EF4u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820EF4u) goto L_08820EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820EF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2940,8 +3380,21 @@ L_08820F5C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08820F78u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 216u, 0x08820F78u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08820F78u) goto L_08820F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08820F78: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3063,8 +3516,21 @@ L_08820FEC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_31 = (0x08821030u); ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 221u, 0x08821030u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821030u) goto L_08821030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821030: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 512u); @@ -3230,8 +3696,8 @@ L_08821184: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088211AC: @@ -3246,8 +3712,21 @@ L_088211AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088211D8u); ctx.gpr[7] = (0u | 170u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 238u, 0x088211D8u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088211D8u) goto L_088211D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088211D8: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -3269,8 +3748,21 @@ L_088211D8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_4); aot_gpr_31 = (0x08821228u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 239u, 0x08821228u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821228u) goto L_08821228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821228: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (16256u << 16u); @@ -3292,8 +3784,8 @@ L_08821228: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882126C: @@ -3512,8 +4004,21 @@ L_088213C0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0882141Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 249u, 0x0882141Cu, 0x0889EE44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 656u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 656u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 656u, 0x0889EE44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882141Cu) goto L_0882141C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882141C: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3679,8 +4184,21 @@ L_088214F8: } aot_gpr_31 = (0x0882150Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 258u, 0x0882150Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882150Cu) goto L_0882150C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882150C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3709,8 +4227,21 @@ L_0882153C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08821548u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 262u, 0x08821548u, 0x0881E160u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 330u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 330u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 330u, 0x0881E160u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821548u) goto L_08821548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821548: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3722,8 +4253,21 @@ L_08821550: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882155Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 264u, 0x0882155Cu, 0x0881F0FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 545u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 545u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 545u, 0x0881F0FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882155Cu) goto L_0882155C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882155C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -3745,8 +4289,21 @@ L_08821578: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08821588u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 267u, 0x08821588u, 0x0881F1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 558u, 0x0881F1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821588u) goto L_08821588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821588: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(44), std::bit_cast(aot_fpr_12)); @@ -3769,8 +4326,8 @@ L_08821590: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088215C8: @@ -3795,8 +4352,21 @@ L_088215F8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08821608u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 271u, 0x08821608u, 0x0881F474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 583u, 0x0881F474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821608u) goto L_08821608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821608: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & 512u); @@ -3874,15 +4444,28 @@ L_0882169C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088216ACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 279u, 0x088216ACu, 0x0881F474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 583u, 0x0881F474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088216ACu) goto L_088216AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088216AC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088216BC: @@ -4181,8 +4764,21 @@ L_088217EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0882186Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 283u, 0x0882186Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882186Cu) goto L_0882186C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882186C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4202,8 +4798,21 @@ L_08821874: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088218A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 285u, 0x088218A0u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088218A0u) goto L_088218A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088218A0: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); @@ -4346,8 +4955,8 @@ L_0882191C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(464)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08821968: @@ -4378,8 +4987,21 @@ L_0882199C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088219CCu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 290u, 0x088219CCu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088219CCu) goto L_088219CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088219CC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -4387,8 +5009,21 @@ L_088219CC: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x088219E4u); ctx.gpr[8] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 291u, 0x088219E4u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088219E4u) goto L_088219E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088219E4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); @@ -4438,8 +5073,8 @@ L_08821A24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08821A40: @@ -4468,8 +5103,21 @@ L_08821A6C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08821A9Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 300u, 0x08821A9Cu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821A9Cu) goto L_08821A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821A9C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -4477,8 +5125,21 @@ L_08821A9C: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08821AB4u); ctx.gpr[8] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 301u, 0x08821AB4u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821AB4u) goto L_08821AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821AB4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); @@ -4527,8 +5188,8 @@ L_08821AF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08821B0C: @@ -4608,8 +5269,8 @@ L_08821BB0: goto L_08821BD0; L_08821BD0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08821BD8: @@ -4618,14 +5279,14 @@ L_08821BD8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08821BEC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08821BF4: @@ -4679,8 +5340,21 @@ L_08821C74: ctx.gpr[17] = (ctx.gpr[19] + static_cast(16)); aot_gpr_31 = (0x08821C8Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 322u, 0x08821C8Cu, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821C8Cu) goto L_08821C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821C8C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (17056u << 16u); @@ -4978,8 +5652,21 @@ L_08821F1C: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08821F58u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 352u, 0x08821F58u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821F58u) goto L_08821F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821F58: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30524))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30528))); @@ -5060,8 +5747,21 @@ L_08821FE8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08821FF8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 362u, 0x08821FF8u, 0x088E2C98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 313u, 0x088E2C98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08821FF8u) goto L_08821FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08821FF8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5199,8 +5899,21 @@ L_088220A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x0882210Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 375u, 0x0882210Cu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882210Cu) goto L_0882210C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882210C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5378,8 +6091,21 @@ L_08822248: L_08822250: aot_gpr_31 = (0x08822258u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 394u, 0x08822258u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822258u) goto L_08822258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822258: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5501,8 +6227,21 @@ L_08822318: L_08822338: aot_gpr_31 = (0x08822340u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 414u, 0x08822340u, 0x08911750u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 391u, 0x08911750u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822340u) goto L_08822340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822340: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5669,8 +6408,8 @@ L_0882244C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08822484: @@ -5793,8 +6532,21 @@ L_08822584: aot_gpr_6 = (aot_gpr_29 + static_cast(224)); aot_gpr_31 = (0x08822594u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 450u, 0x08822594u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822594u) goto L_08822594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822594: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(224))); @@ -5820,8 +6572,21 @@ L_088225BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(80))); aot_gpr_31 = (0x088225C8u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 455u, 0x088225C8u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088225C8u) goto L_088225C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088225C8: aot_gpr_4 = (16640u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -5851,8 +6616,21 @@ L_088225EC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08822600u); ctx.gpr[7] = (0u | 42u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 460u, 0x08822600u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822600u) goto L_08822600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822600: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -5881,8 +6659,21 @@ L_08822620: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08822634u); ctx.gpr[7] = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 465u, 0x08822634u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822634u) goto L_08822634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822634: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_08822638; @@ -5897,8 +6688,21 @@ L_08822640: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0882264Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 468u, 0x0882264Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882264Cu) goto L_0882264C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882264C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-9)); @@ -5937,8 +6741,21 @@ L_08822698: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088226B0u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 472u, 0x088226B0u, 0x0881E290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 350u, 0x0881E290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088226B0u) goto L_088226B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088226B0: aot_gpr_4 = (0u | 25u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); @@ -6132,8 +6949,21 @@ L_0882280C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08822880u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 481u, 0x08822880u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822880u) goto L_08822880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822880: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(26))); @@ -6192,8 +7022,21 @@ L_088228EC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08822934u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 485u, 0x08822934u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822934u) goto L_08822934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822934: aot_gpr_4 = (0u | 1u); goto L_08822938; @@ -6219,8 +7062,21 @@ L_08822938: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(124), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0882298Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 487u, 0x0882298Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882298Cu) goto L_0882298C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882298C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6307,8 +7163,21 @@ L_08822A2C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08822A54u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 491u, 0x08822A54u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822A54u) goto L_08822A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822A54: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(26))); aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -6370,8 +7239,21 @@ L_08822AC8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08822AF0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 494u, 0x08822AF0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822AF0u) goto L_08822AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822AF0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(26))); aot_gpr_16 = (aot_gpr_16 + static_cast(2)); @@ -6436,8 +7318,21 @@ L_08822B70: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08822B84u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 499u, 0x08822B84u, 0x0882ABA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 261u, 0x0882ABA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822B84u) goto L_08822B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822B84: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(304), aot_run_words); @@ -6457,8 +7352,8 @@ L_08822B84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08822BC0: @@ -6494,8 +7389,21 @@ L_08822BFC: L_08822C0C: aot_gpr_31 = (0x08822C14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 503u, 0x08822C14u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822C14u) goto L_08822C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822C14: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (0u | 1u); @@ -6572,8 +7480,21 @@ L_08822C84: L_08822C90: aot_gpr_31 = (0x08822C98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 512u, 0x08822C98u, 0x08911220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 321u, 0x08911220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822C98u) goto L_08822C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822C98: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6587,8 +7508,21 @@ L_08822CA0: L_08822CA4: aot_gpr_31 = (0x08822CACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 515u, 0x08822CACu, 0x0890F43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 751u, 0x0890F43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822CACu) goto L_08822CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822CAC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6644,8 +7578,21 @@ L_08822D0C: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08822D20u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 521u, 0x08822D20u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822D20u) goto L_08822D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822D20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6700,8 +7647,21 @@ L_08822D6C: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08822D80u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 528u, 0x08822D80u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822D80u) goto L_08822D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822D80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6775,8 +7735,21 @@ L_08822DE0: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08822DF4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 537u, 0x08822DF4u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822DF4u) goto L_08822DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822DF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6843,8 +7816,21 @@ L_08822E3C: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08822E50u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 546u, 0x08822E50u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822E50u) goto L_08822E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822E50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6902,8 +7888,21 @@ L_08822EA0: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08822EB4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 553u, 0x08822EB4u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822EB4u) goto L_08822EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822EB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -6931,8 +7930,21 @@ L_08822EE0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08822EF0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 556u, 0x08822EF0u, 0x0881F474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 583u, 0x0881F474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822EF0u) goto L_08822EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822EF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(36))); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -6953,8 +7965,21 @@ L_08822F14: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08822F28u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 558u, 0x08822F28u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822F28u) goto L_08822F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822F28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -7005,8 +8030,21 @@ L_08822F88: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08822F9Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 563u, 0x08822F9Cu, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08822F9Cu) goto L_08822F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08822F9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7095,8 +8133,21 @@ L_0882304C: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08823060u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 572u, 0x08823060u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823060u) goto L_08823060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823060: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7124,8 +8175,21 @@ L_0882308C: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088230A0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 575u, 0x088230A0u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088230A0u) goto L_088230A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088230A0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7137,8 +8201,8 @@ L_088230A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088230BC: @@ -7158,14 +8222,40 @@ L_088230BC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(88), aot_run_words); } aot_gpr_31 = (0x08823100u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 577u, 0x08823100u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823100u) goto L_08823100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823100: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0882310Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 578u, 0x0882310Cu, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882310Cu) goto L_0882310C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882310C: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); @@ -7176,8 +8266,21 @@ L_0882310C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08823130u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 579u, 0x08823130u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823130u) goto L_08823130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823130: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7293,8 +8396,21 @@ L_088231D8: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08823210u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 592u, 0x08823210u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823210u) goto L_08823210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823210: aot_gpr_4 = (17279u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -7439,8 +8555,21 @@ L_088232B8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088232E8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 604u, 0x088232E8u, 0x08A6734Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 658u, 0x08A6734Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088232E8u) goto L_088232E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088232E8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == aot_gpr_16; @@ -7453,8 +8582,21 @@ L_088232F4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(15)))))); aot_gpr_31 = (0x08823300u); aot_gpr_5 = (aot_gpr_5 & 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 606u, 0x08823300u, 0x0881E0E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 317u, 0x0881E0E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823300u) goto L_08823300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823300: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7520,8 +8662,21 @@ L_08823378: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_gpr_31 = (0x08823384u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 613u, 0x08823384u, 0x088E4830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 103u, 0x088E4830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823384u) goto L_08823384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823384: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7583,8 +8738,21 @@ L_088233D4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088233E0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 621u, 0x088233E0u, 0x0881E334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 359u, 0x0881E334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088233E0u) goto L_088233E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088233E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7595,8 +8763,21 @@ L_088233E0: L_088233E8: aot_gpr_31 = (0x088233F0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 623u, 0x088233F0u, 0x08911750u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 391u, 0x08911750u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088233F0u) goto L_088233F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088233F0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7632,8 +8813,21 @@ L_0882342C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0882343Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 627u, 0x0882343Cu, 0x0881E044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 309u, 0x0881E044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882343Cu) goto L_0882343C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882343C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7704,8 +8898,8 @@ L_08823490: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088234BC: @@ -7831,8 +9025,8 @@ L_0882368C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823698: @@ -7844,8 +9038,8 @@ L_08823698: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(102), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088236B8: @@ -7915,16 +9109,16 @@ L_088236B8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(102), static_cast(ctx.gpr[10])); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823710: ctx.gpr[2] = (2178u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(14096)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882371C: @@ -7936,8 +9130,8 @@ L_0882372C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823738: @@ -7957,8 +9151,21 @@ L_08823754: goto L_0882375C; L_0882375C: aot_gpr_31 = (0x08823764u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 645u, 0x08823764u, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823764u) goto L_08823764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823764: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -7982,8 +9189,8 @@ L_0882377C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823794: @@ -8005,14 +9212,40 @@ L_088237B0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x088237C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 650u, 0x088237C4u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088237C4u) goto L_088237C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088237C4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088237D0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 651u, 0x088237D0u, 0x08A9A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088237D0u) goto L_088237D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088237D0: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8035,15 +9268,15 @@ L_088237E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088237F8: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823800: @@ -8056,8 +9289,21 @@ L_08823800: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08823824u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 656u, 0x08823824u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823824u) goto L_08823824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823824: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8079,8 +9325,8 @@ L_0882383C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882384C: @@ -8109,8 +9355,8 @@ L_08823878: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823884: @@ -8123,8 +9369,21 @@ L_08823884: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088238A8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 664u, 0x088238A8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088238A8u) goto L_088238A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088238A8: aot_gpr_5 = (ctx.gpr[2] | 0u); ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -8218,8 +9477,8 @@ L_0882393C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823948: @@ -8234,8 +9493,21 @@ L_08823948: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08823974u); aot_gpr_5 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 668u, 0x08823974u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823974u) goto L_08823974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823974: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8256,8 +9528,21 @@ L_0882397C: L_0882398C: aot_gpr_31 = (0x08823994u); aot_gpr_5 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 671u, 0x08823994u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823994u) goto L_08823994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823994: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] + static_cast(64)); @@ -8269,8 +9554,21 @@ L_08823994: L_0882399C: aot_gpr_31 = (0x088239A4u); aot_gpr_5 = (aot_gpr_16 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 673u, 0x088239A4u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088239A4u) goto L_088239A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088239A4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] + static_cast(80)); @@ -8282,8 +9580,21 @@ L_088239A4: L_088239AC: aot_gpr_31 = (0x088239B4u); aot_gpr_5 = (aot_gpr_16 + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 675u, 0x088239B4u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088239B4u) goto L_088239B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088239B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8305,8 +9616,8 @@ L_088239C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088239DC: @@ -8315,8 +9626,21 @@ L_088239DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088239F0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 679u, 0x088239F0u, 0x08A9A720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 300u, 0x08A9A720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088239F0u) goto L_088239F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088239F0: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(19152)); @@ -8333,8 +9657,8 @@ L_088239F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823A2C: @@ -8379,13 +9703,39 @@ L_08823A78: L_08823A7C: aot_gpr_31 = (0x08823A84u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 686u, 0x08823A84u, 0x0880DC1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 412u, 0x0880DC1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823A84u) goto L_08823A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823A84: aot_gpr_31 = (0x08823A8Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 687u, 0x08823A8Cu, 0x08824878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 80u, 0x08824878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823A8Cu) goto L_08823A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823A8C: aot_gpr_4 = (ctx.gpr[17] + static_cast(128)); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8413,8 +9763,21 @@ L_08823AA8: } L_08823AB4: aot_gpr_31 = (0x08823ABCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 691u, 0x08823ABCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823ABCu) goto L_08823ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823ABC: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -8429,14 +9792,40 @@ L_08823AC4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08823AD8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 693u, 0x08823AD8u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823AD8u) goto L_08823AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823AD8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08823AE4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 694u, 0x08823AE4u, 0x08A9A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823AE4u) goto L_08823AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823AE4: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08823AE8; @@ -8461,8 +9850,8 @@ L_08823AF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823B0C: @@ -8474,8 +9863,21 @@ L_08823B0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08823B2Cu); aot_gpr_6 = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 699u, 0x08823B2Cu, 0x08A9B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 454u, 0x08A9B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823B2Cu) goto L_08823B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823B2C: ctx.gpr[17] = (2237u << 16u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); @@ -8512,8 +9914,21 @@ L_08823B70: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08823B84u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 704u, 0x08823B84u, 0x0880DF30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 438u, 0x0880DF30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823B84u) goto L_08823B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823B84: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(112), ctx.gpr[2]); aot_gpr_31 = (0x08823B90u); @@ -8546,8 +9961,21 @@ L_08823BAC: L_08823BB4: aot_gpr_31 = (0x08823BBCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 710u, 0x08823BBCu, 0x0880E1D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 462u, 0x0880E1D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823BBCu) goto L_08823BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823BBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); goto L_08823BC0; @@ -8568,8 +9996,21 @@ L_08823BD0: L_08823BD8: aot_gpr_31 = (0x08823BE0u); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 715u, 0x08823BE0u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823BE0u) goto L_08823BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823BE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -8588,8 +10029,21 @@ L_08823BF4: L_08823BFC: aot_gpr_31 = (0x08823C04u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 719u, 0x08823C04u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823C04u) goto L_08823C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823C04: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8599,8 +10053,8 @@ L_08823C04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823C18: @@ -8618,16 +10072,42 @@ L_08823C18: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(104), aot_run_words); } aot_gpr_31 = (0x08823C60u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 721u, 0x08823C60u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823C60u) goto L_08823C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823C60: ctx.gpr[23] = (2238u << 16u); ctx.gpr[23] = (ctx.gpr[23] + static_cast(-6640)); ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08823C74u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 722u, 0x08823C74u, 0x0898CE74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 319u, 0x0898CE74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823C74u) goto L_08823C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823C74: ctx.gpr[20] = (aot_gpr_29 + static_cast(32)); ctx.gpr[21] = (aot_gpr_29 + static_cast(48)); @@ -8644,8 +10124,21 @@ L_08823C84: L_08823C88: aot_gpr_31 = (0x08823C90u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 725u, 0x08823C90u, 0x0898D1ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 399u, 0x0898D1ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823C90u) goto L_08823C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823C90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8659,8 +10152,21 @@ L_08823C98: L_08823C9C: aot_gpr_31 = (0x08823CA4u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 728u, 0x08823CA4u, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823CA4u) goto L_08823CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823CA4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8674,8 +10180,21 @@ L_08823CAC: L_08823CB0: aot_gpr_31 = (0x08823CB8u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 731u, 0x08823CB8u, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823CB8u) goto L_08823CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823CB8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8773,8 +10292,21 @@ L_08823CC4: L_08823D88: aot_gpr_31 = (0x08823D90u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 735u, 0x08823D90u, 0x08947634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 694u, 0x08947634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823D90u) goto L_08823D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823D90: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(84), static_cast(aot_gpr_4)); @@ -8785,8 +10317,21 @@ L_08823D90: aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); aot_gpr_31 = (0x08823DB4u); aot_gpr_5 = (0u | 112u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 736u, 0x08823DB4u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823DB4u) goto L_08823DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823DB4: ctx.gpr[23] = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); @@ -8817,8 +10362,21 @@ L_08823DF4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08823E00u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 740u, 0x08823E00u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823E00u) goto L_08823E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823E00: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(92), aot_run_words); @@ -8834,8 +10392,8 @@ L_08823E00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823E2C: @@ -8871,16 +10429,42 @@ L_08823E80: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08823E94u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 743u, 0x08823E94u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823E94u) goto L_08823E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823E94: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08823EA8u); ctx.gpr[7] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 744u, 0x08823EA8u, 0x08824D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 155u, 0x08824D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823EA8u) goto L_08823EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823EA8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8895,8 +10479,21 @@ L_08823EB0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08823EC4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 746u, 0x08823EC4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823EC4u) goto L_08823EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823EC4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(52)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -8904,16 +10501,42 @@ L_08823EC4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(24)))))); aot_gpr_31 = (0x08823EDCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 747u, 0x08823EDCu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823EDCu) goto L_08823EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823EDC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08823EF0u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0007->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0007_entry, 748u, 0x08823EF0u, 0x08824A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 109u, 0x08824A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08823EF0u) goto L_08823EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08823EF0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), aot_run_words); @@ -8924,8 +10547,8 @@ L_08823EF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08823F08: diff --git a/profiles/vcs/generated/generated_unit_0008.cpp b/profiles/vcs/generated/generated_unit_0008.cpp index 5646edf..47723d7 100644 --- a/profiles/vcs/generated/generated_unit_0008.cpp +++ b/profiles/vcs/generated/generated_unit_0008.cpp @@ -688,6 +688,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08824000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -782,8 +806,21 @@ L_088240E0: aot_gpr_5 = (ctx.gpr[19] + static_cast(64)); aot_gpr_31 = (0x088240ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 8u, 0x088240ECu, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088240ECu) goto L_088240EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088240EC: aot_gpr_4 = (ctx.gpr[17] & 16u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -796,8 +833,21 @@ L_088240F8: aot_gpr_5 = (ctx.gpr[19] + static_cast(48)); aot_gpr_31 = (0x08824104u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 10u, 0x08824104u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824104u) goto L_08824104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824104: aot_gpr_4 = (ctx.gpr[17] & 64u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -810,8 +860,21 @@ L_08824110: aot_gpr_5 = (ctx.gpr[19] + static_cast(80)); aot_gpr_31 = (0x0882411Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 12u, 0x0882411Cu, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882411Cu) goto L_0882411C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882411C: aot_gpr_4 = (ctx.gpr[17] & 128u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -895,8 +958,8 @@ L_088241E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824204: @@ -910,8 +973,21 @@ L_08824204: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x0882422Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 20u, 0x0882422Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882422Cu) goto L_0882422C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882422C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -932,8 +1008,21 @@ L_08824244: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08824254u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 23u, 0x08824254u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824254u) goto L_08824254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824254: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -960,8 +1049,21 @@ L_08824278: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08824288u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 27u, 0x08824288u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824288u) goto L_08824288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824288: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -980,8 +1082,8 @@ L_0882429C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088242B0: @@ -1001,8 +1103,21 @@ L_088242C8: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x088242D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 32u, 0x088242D8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088242D8u) goto L_088242D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088242D8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -1016,8 +1131,8 @@ L_088242E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824300: @@ -1037,8 +1152,21 @@ L_08824318: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08824328u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 36u, 0x08824328u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824328u) goto L_08824328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824328: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -1053,8 +1181,8 @@ L_08824334: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824354: @@ -1141,8 +1269,21 @@ L_088243D4: aot_gpr_5 = (aot_gpr_16 + static_cast(128)); aot_gpr_31 = (0x088243E4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 44u, 0x088243E4u, 0x08AA821Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 26u, 0x08AA821Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088243E4u) goto L_088243E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088243E4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7792))); @@ -1311,8 +1452,8 @@ L_08824540: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824560: @@ -1347,8 +1488,8 @@ L_0882459C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088245A8: @@ -1359,8 +1500,21 @@ L_088245A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), aot_gpr_5); aot_gpr_31 = (0x088245CCu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(192)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 62u, 0x088245CCu, 0x08A9AC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088245CCu) goto L_088245CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088245CC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(192)))))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(112), static_cast(aot_gpr_4)); @@ -1368,8 +1522,21 @@ L_088245CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088245E4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 63u, 0x088245E4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088245E4u) goto L_088245E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088245E4: ctx.gpr[17] = (ctx.gpr[2] + static_cast(48)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(192)))))); @@ -1378,8 +1545,21 @@ L_088245E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08824600u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 64u, 0x08824600u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824600u) goto L_08824600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824600: aot_gpr_4 = (ctx.gpr[2] + static_cast(80)); { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); @@ -1414,8 +1594,21 @@ L_08824600: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08824638u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 65u, 0x08824638u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824638u) goto L_08824638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824638: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(48))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(144), std::bit_cast(aot_fpr_12)); @@ -1425,8 +1618,21 @@ L_08824638: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08824658u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 66u, 0x08824658u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824658u) goto L_08824658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824658: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(80))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(160), std::bit_cast(aot_fpr_12)); @@ -1438,8 +1644,21 @@ L_08824658: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08824680u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 67u, 0x08824680u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824680u) goto L_08824680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824680: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(52))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(148), std::bit_cast(aot_fpr_12)); @@ -1449,8 +1668,21 @@ L_08824680: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088246A0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 68u, 0x088246A0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088246A0u) goto L_088246A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088246A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(84))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(164), std::bit_cast(aot_fpr_12)); @@ -1462,8 +1694,21 @@ L_088246A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088246C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 69u, 0x088246C8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088246C8u) goto L_088246C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088246C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(56))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(152), std::bit_cast(aot_fpr_12)); @@ -1473,8 +1718,21 @@ L_088246C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088246E8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 70u, 0x088246E8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088246E8u) goto L_088246E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088246E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(88))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(168), std::bit_cast(aot_fpr_12)); @@ -1484,8 +1742,21 @@ L_088246E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08824708u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 71u, 0x08824708u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824708u) goto L_08824708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824708: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(64))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(176), std::bit_cast(aot_fpr_12)); @@ -1495,8 +1766,21 @@ L_08824708: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08824728u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 72u, 0x08824728u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824728u) goto L_08824728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824728: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(68))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(180), std::bit_cast(aot_fpr_12)); @@ -1506,8 +1790,21 @@ L_08824728: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08824748u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 73u, 0x08824748u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824748u) goto L_08824748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824748: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(184), std::bit_cast(aot_fpr_12)); @@ -1516,14 +1813,40 @@ L_08824748: aot_gpr_5 = (aot_gpr_16 + static_cast(128)); aot_gpr_31 = (0x08824764u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 74u, 0x08824764u, 0x0885FE50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 933u, 0x0885FE50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824764u) goto L_08824764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824764: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08824770u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 75u, 0x08824770u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824770u) goto L_08824770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824770: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1544,8 +1867,21 @@ L_08824780: L_0882478C: aot_gpr_31 = (0x08824794u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 78u, 0x08824794u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824794u) goto L_08824794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824794: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(192)))))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(162), static_cast(aot_gpr_4)); @@ -1553,8 +1889,21 @@ L_08824794: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088247ACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 79u, 0x088247ACu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088247ACu) goto L_088247AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088247AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_4 = (16457u << 16u); @@ -1614,20 +1963,20 @@ L_088247AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824878: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824880: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824888: @@ -1695,15 +2044,41 @@ L_0882491C: L_08824924: aot_gpr_31 = (0x0882492Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 92u, 0x0882492Cu, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882492Cu) goto L_0882492C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882492C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x0882493Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 93u, 0x0882493Cu, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882493Cu) goto L_0882493C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882493C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -1717,8 +2092,21 @@ L_08824948: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08824958u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 95u, 0x08824958u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824958u) goto L_08824958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824958: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1750,8 +2138,21 @@ L_08824980: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08824990u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 99u, 0x08824990u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824990u) goto L_08824990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824990: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(96))); @@ -1765,8 +2166,21 @@ L_088249A0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088249B0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 101u, 0x088249B0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088249B0u) goto L_088249B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088249B0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -1816,8 +2230,8 @@ L_088249E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824A0C: @@ -1826,8 +2240,8 @@ L_08824A0C: ctx.gpr[2] = (static_cast(static_cast(aot_gpr_4) >> 24u)); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] & 65535u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824A20: @@ -2249,8 +2663,21 @@ L_08824CA8: L_08824CB0: aot_gpr_31 = (0x08824CB8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 146u, 0x08824CB8u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08824CB8u) goto L_08824CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08824CB8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2312,8 +2739,8 @@ L_08824D08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08824D28: @@ -2551,8 +2978,21 @@ L_08825048: aot_gpr_5 = (ctx.gpr[17] + static_cast(64)); aot_gpr_31 = (0x08825054u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 165u, 0x08825054u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825054u) goto L_08825054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825054: aot_gpr_4 = (aot_gpr_16 & 16u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2565,8 +3005,21 @@ L_08825060: aot_gpr_5 = (ctx.gpr[17] + static_cast(48)); aot_gpr_31 = (0x0882506Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 167u, 0x0882506Cu, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882506Cu) goto L_0882506C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882506C: aot_gpr_4 = (aot_gpr_16 & 64u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2579,8 +3032,21 @@ L_08825078: aot_gpr_5 = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x08825084u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 169u, 0x08825084u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825084u) goto L_08825084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825084: aot_gpr_4 = (aot_gpr_16 & 128u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2702,8 +3168,8 @@ L_088251EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825204: @@ -2759,8 +3225,8 @@ L_08825270: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825280: @@ -2774,14 +3240,40 @@ L_08825280: aot_gpr_5 = (aot_gpr_16 & 255u); aot_gpr_31 = (0x088252ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 183u, 0x088252ACu, 0x08ADD7ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 407u, 0x08ADD7ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088252ACu) goto L_088252AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088252AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088252B8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 184u, 0x088252B8u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088252B8u) goto L_088252B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088252B8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2808,8 +3300,21 @@ L_088252D0: } L_088252DC: aot_gpr_31 = (0x088252E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 188u, 0x088252E4u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088252E4u) goto L_088252E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088252E4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2819,8 +3324,8 @@ L_088252E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088252F8: @@ -2842,8 +3347,8 @@ L_088252F8: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825340: @@ -2957,8 +3462,8 @@ L_08825340: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088253C0: @@ -2967,8 +3472,8 @@ L_088253C0: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088253D4: @@ -2977,8 +3482,8 @@ L_088253D4: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088253E8: @@ -2987,8 +3492,8 @@ L_088253E8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088253FC: @@ -2997,8 +3502,8 @@ L_088253FC: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825410: @@ -3007,8 +3512,8 @@ L_08825410: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825424: @@ -3028,8 +3533,21 @@ L_08825424: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x08825468u); aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 197u, 0x08825468u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825468u) goto L_08825468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825468: aot_gpr_4 = (ctx.gpr[17] + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3376,8 +3894,8 @@ L_08825738: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825800: @@ -3386,8 +3904,21 @@ L_08825800: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08825814u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 215u, 0x08825814u, 0x08A7F694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 624u, 0x08A7F694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825814u) goto L_08825814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825814: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27980)); @@ -3400,8 +3931,8 @@ L_08825814: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825844: @@ -3425,8 +3956,21 @@ L_08825844: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088258ACu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 217u, 0x088258ACu, 0x08A7F85Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 650u, 0x08A7F85Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088258ACu) goto L_088258AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088258AC: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27980)); @@ -3545,8 +4089,21 @@ L_088259E0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088259F0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 226u, 0x088259F0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088259F0u) goto L_088259F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088259F0: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(21), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(21)))))); @@ -3572,8 +4129,21 @@ L_08825A20: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08825A30u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 229u, 0x08825A30u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825A30u) goto L_08825A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825A30: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(27), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(27)))))); @@ -3599,8 +4169,21 @@ L_08825A60: aot_gpr_6 = (aot_gpr_16 - ctx.gpr[21]); aot_gpr_31 = (0x08825A70u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 232u, 0x08825A70u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825A70u) goto L_08825A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825A70: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(33), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(33)))))); @@ -3626,8 +4209,21 @@ L_08825AA0: aot_gpr_6 = (aot_gpr_16 - ctx.gpr[22]); aot_gpr_31 = (0x08825AB0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 235u, 0x08825AB0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825AB0u) goto L_08825AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825AB0: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(39), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(39)))))); @@ -3660,8 +4256,21 @@ L_08825B00: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08825B0Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 238u, 0x08825B0Cu, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825B0Cu) goto L_08825B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825B0C: aot_gpr_16 = (aot_gpr_16 + static_cast(32)); ctx.gpr[20] = (ctx.gpr[20] + static_cast(-1)); @@ -3729,16 +4338,16 @@ L_08825B84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825BB8: ctx.gpr[2] = (2178u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(23480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825BC4: @@ -3750,8 +4359,8 @@ L_08825BD4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825BE0: @@ -3772,8 +4381,21 @@ L_08825C04: L_08825C0C: aot_gpr_31 = (0x08825C14u); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 249u, 0x08825C14u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825C14u) goto L_08825C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825C14: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[18] = (0u | 1u); @@ -3783,8 +4405,21 @@ L_08825C14: L_08825C1C: aot_gpr_31 = (0x08825C24u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 251u, 0x08825C24u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825C24u) goto L_08825C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825C24: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -3793,8 +4428,21 @@ L_08825C24: goto L_08825C2C; L_08825C2C: aot_gpr_31 = (0x08825C34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 253u, 0x08825C34u, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825C34u) goto L_08825C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825C34: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -3848,8 +4496,8 @@ L_08825C6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825C8C: @@ -3871,14 +4519,40 @@ L_08825CA8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08825CBCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 264u, 0x08825CBCu, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825CBCu) goto L_08825CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825CBC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08825CC8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 265u, 0x08825CC8u, 0x08A7FB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 682u, 0x08A7FB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825CC8u) goto L_08825CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825CC8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3901,15 +4575,15 @@ L_08825CDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825CF0: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 10u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825CF8: @@ -3922,8 +4596,21 @@ L_08825CF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08825D1Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 270u, 0x08825D1Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825D1Cu) goto L_08825D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825D1C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3945,8 +4632,8 @@ L_08825D34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825D44: @@ -3975,8 +4662,8 @@ L_08825D70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825D7C: @@ -3991,8 +4678,21 @@ L_08825D7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08825DA8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 278u, 0x08825DA8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825DA8u) goto L_08825DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825DA8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4028,8 +4728,8 @@ L_08825DE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825DFC: @@ -4038,14 +4738,27 @@ L_08825DFC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08825E10u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 283u, 0x08825E10u, 0x08A7FA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 660u, 0x08A7FA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825E10u) goto L_08825E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825E10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825E1C: @@ -4056,8 +4769,21 @@ L_08825E1C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08825E3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 285u, 0x08825E3Cu, 0x08A7FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 680u, 0x08A7FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825E3Cu) goto L_08825E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825E3C: aot_gpr_4 = (2234u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -4081,8 +4807,21 @@ L_08825E68: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08825E74u); aot_gpr_4 = (0u | 384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 288u, 0x08825E74u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825E74u) goto L_08825E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825E74: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4111,8 +4850,8 @@ L_08825E8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825EAC: @@ -4125,8 +4864,21 @@ L_08825EAC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x08825ED4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 293u, 0x08825ED4u, 0x08A7FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 680u, 0x08A7FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825ED4u) goto L_08825ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825ED4: aot_gpr_4 = (2234u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -4152,15 +4904,41 @@ L_08825F00: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08825F14u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 296u, 0x08825F14u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825F14u) goto L_08825F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825F14: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(104), aot_gpr_16); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08825F24u); aot_gpr_4 = (0u | 384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 297u, 0x08825F24u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825F24u) goto L_08825F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825F24: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4190,8 +4968,21 @@ L_08825F48: aot_gpr_5 = (0u | 560u); aot_gpr_31 = (0x08825F64u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 302u, 0x08825F64u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825F64u) goto L_08825F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825F64: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4214,13 +5005,39 @@ L_08825F80: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08825F90u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 306u, 0x08825F90u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825F90u) goto L_08825F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825F90: aot_gpr_31 = (0x08825F98u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 307u, 0x08825F98u, 0x0888F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 562u, 0x0888F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825F98u) goto L_08825F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825F98: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -4233,22 +5050,35 @@ L_08825F98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825FB8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08825FC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 309u, 0x08825FC8u, 0x08A7FC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 692u, 0x08A7FC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08825FC8u) goto L_08825FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08825FC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08825FD4: @@ -4261,8 +5091,21 @@ L_08825FD4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); aot_gpr_31 = (0x08826004u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 311u, 0x08826004u, 0x08A7FD50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 697u, 0x08A7FD50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826004u) goto L_08826004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826004: ctx.gpr[20] = (0u | 0u); ctx.gpr[19] = (aot_gpr_29 + static_cast(16)); @@ -4282,8 +5125,21 @@ L_08826020: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08826030u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 314u, 0x08826030u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826030u) goto L_08826030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826030: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -4317,8 +5173,8 @@ L_08826064: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08826084: @@ -4356,8 +5212,21 @@ L_088260D8: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x088260E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 320u, 0x088260E8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088260E8u) goto L_088260E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088260E8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -4368,8 +5237,21 @@ L_088260F4: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x08826104u); aot_gpr_4 = (0u | 1632u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 322u, 0x08826104u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826104u) goto L_08826104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826104: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -4385,8 +5267,21 @@ L_08826110: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); aot_gpr_31 = (0x08826124u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 324u, 0x08826124u, 0x08969648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 304u, 0x08969648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826124u) goto L_08826124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826124: ctx.gpr[21] = (ctx.gpr[22] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -4395,8 +5290,21 @@ L_0882612C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08826138u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 326u, 0x08826138u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826138u) goto L_08826138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826138: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), ctx.gpr[21]); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); @@ -4405,8 +5313,21 @@ L_08826138: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08826154u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 327u, 0x08826154u, 0x08A82438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 204u, 0x08A82438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826154u) goto L_08826154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826154: aot_gpr_4 = (0u | 0u); ctx.gpr[17] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(10)))))); @@ -4415,8 +5336,21 @@ L_08826154: aot_gpr_5 = (0u | 560u); aot_gpr_31 = (0x08826170u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 328u, 0x08826170u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826170u) goto L_08826170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826170: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4439,8 +5373,21 @@ L_0882618C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882619Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 332u, 0x0882619Cu, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882619Cu) goto L_0882619C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882619C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4454,8 +5401,21 @@ L_088261A4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088261B8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 334u, 0x088261B8u, 0x08A82438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 204u, 0x08A82438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088261B8u) goto L_088261B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088261B8: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -4470,8 +5430,8 @@ L_088261B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088261E0: @@ -4521,8 +5481,21 @@ L_08826230: aot_gpr_5 = (0u | 560u); aot_gpr_31 = (0x0882624Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 340u, 0x0882624Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882624Cu) goto L_0882624C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882624C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4545,8 +5518,21 @@ L_08826268: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08826278u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 344u, 0x08826278u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826278u) goto L_08826278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826278: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -4557,8 +5543,8 @@ L_08826278: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08826290: @@ -4594,8 +5580,21 @@ L_088262E4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(52)))))); aot_gpr_31 = (0x088262FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 347u, 0x088262FCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088262FCu) goto L_088262FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088262FC: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -4627,8 +5626,21 @@ L_08826330: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(54)))))); aot_gpr_31 = (0x08826348u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 351u, 0x08826348u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826348u) goto L_08826348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826348: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -4636,8 +5648,21 @@ L_08826348: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(56)))))); aot_gpr_31 = (0x08826360u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 352u, 0x08826360u, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826360u) goto L_08826360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826360: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); @@ -4665,8 +5690,8 @@ L_08826398: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088263B4: @@ -4692,14 +5717,27 @@ L_088263DC: aot_gpr_5 = (aot_gpr_4 + static_cast(176)); aot_gpr_31 = (0x088263ECu); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 357u, 0x088263ECu, 0x0885F668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 888u, 0x0885F668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088263ECu) goto L_088263EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088263EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088263F8: @@ -4748,8 +5786,8 @@ L_08826464: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08826488: @@ -4762,8 +5800,21 @@ L_08826488: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088264B0u); ctx.gpr[8] = (ctx.gpr[18] + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 363u, 0x088264B0u, 0x08A82798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 224u, 0x08A82798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088264B0u) goto L_088264B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088264B0: aot_gpr_5 = (46470u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -4915,8 +5966,8 @@ L_088265D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088265E8: @@ -4987,8 +6038,21 @@ L_088266D4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088266E8u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 386u, 0x088266E8u, 0x08A82BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 288u, 0x08A82BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088266E8u) goto L_088266E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088266E8: aot_gpr_4 = (ctx.gpr[18] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5173,8 +6237,8 @@ L_0882694C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08826964: @@ -5223,8 +6287,21 @@ L_088269F4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08826A08u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 395u, 0x08826A08u, 0x08A83758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 337u, 0x08A83758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826A08u) goto L_08826A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826A08: aot_gpr_4 = (aot_gpr_16 & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5343,8 +6420,8 @@ L_08826B64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08826B7C: @@ -5353,8 +6430,21 @@ L_08826B7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08826B94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 403u, 0x08826B94u, 0x08A82198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 170u, 0x08A82198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826B94u) goto L_08826B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826B94: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(19320)); @@ -5366,8 +6456,8 @@ L_08826B94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08826BBC: @@ -5389,8 +6479,21 @@ L_08826BD8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08826BF0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 406u, 0x08826BF0u, 0x08A8223Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 175u, 0x08A8223Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826BF0u) goto L_08826BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826BF0: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5413,22 +6516,35 @@ L_08826C04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08826C18: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08826C28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 410u, 0x08826C28u, 0x08A823A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 196u, 0x08A823A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826C28u) goto L_08826C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826C28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08826C34: @@ -5437,8 +6553,21 @@ L_08826C34: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(256), aot_run_words); } ctx.gpr[20] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08826C70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 412u, 0x08826C70u, 0x08A82398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 195u, 0x08A82398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826C70u) goto L_08826C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826C70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(352))); aot_gpr_5 = (aot_gpr_4 + static_cast(10)); @@ -5459,8 +6588,21 @@ L_08826C70: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(230)))))); aot_gpr_31 = (0x08826CBCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 413u, 0x08826CBCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826CBCu) goto L_08826CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826CBC: aot_gpr_16 = (ctx.gpr[2] | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(352))); @@ -5766,8 +6908,21 @@ L_08826F5C: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08826F80u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 432u, 0x08826F80u, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826F80u) goto L_08826F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826F80: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(264), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(232))); @@ -5808,8 +6963,21 @@ L_08826FB8: L_08826FC8: aot_gpr_31 = (0x08826FD0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 437u, 0x08826FD0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826FD0u) goto L_08826FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826FD0: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08826FD4; @@ -5820,8 +6988,21 @@ L_08826FD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x08826FECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 439u, 0x08826FECu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08826FECu) goto L_08826FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08826FEC: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5841,8 +7022,21 @@ L_08826FEC: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08827008u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 440u, 0x08827008u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827008u) goto L_08827008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827008: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -5852,13 +7046,39 @@ L_08827008: } aot_gpr_31 = (0x0882701Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 441u, 0x0882701Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882701Cu) goto L_0882701C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882701C: aot_gpr_31 = (0x08827024u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 442u, 0x08827024u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827024u) goto L_08827024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827024: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5891,8 +7111,21 @@ L_08827044: L_08827054: aot_gpr_31 = (0x0882705Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 446u, 0x0882705Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882705Cu) goto L_0882705C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882705C: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08827060; @@ -5903,8 +7136,21 @@ L_08827060: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x08827078u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 448u, 0x08827078u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827078u) goto L_08827078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827078: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5924,8 +7170,21 @@ L_08827078: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08827094u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 449u, 0x08827094u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827094u) goto L_08827094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827094: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -5935,13 +7194,39 @@ L_08827094: } aot_gpr_31 = (0x088270A8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 450u, 0x088270A8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088270A8u) goto L_088270A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088270A8: aot_gpr_31 = (0x088270B0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 451u, 0x088270B0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088270B0u) goto L_088270B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088270B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); if (aot_gpr_4 == 0u) { @@ -5973,8 +7258,21 @@ L_088270D0: L_088270E0: aot_gpr_31 = (0x088270E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 455u, 0x088270E8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088270E8u) goto L_088270E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088270E8: aot_gpr_4 = (ctx.gpr[21] + static_cast(16)); goto L_088270EC; @@ -5985,8 +7283,21 @@ L_088270EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x08827104u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 457u, 0x08827104u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827104u) goto L_08827104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827104: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6006,8 +7317,21 @@ L_08827104: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08827120u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 458u, 0x08827120u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827120u) goto L_08827120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827120: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -6017,13 +7341,39 @@ L_08827120: } aot_gpr_31 = (0x08827134u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 459u, 0x08827134u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827134u) goto L_08827134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827134: aot_gpr_31 = (0x0882713Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 460u, 0x0882713Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882713Cu) goto L_0882713C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882713C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); goto L_08827140; @@ -6046,8 +7396,21 @@ L_0882714C: L_08827158: aot_gpr_31 = (0x08827160u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 464u, 0x08827160u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827160u) goto L_08827160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827160: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(256), aot_run_words); @@ -6065,8 +7428,8 @@ L_08827160: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827194: @@ -6082,15 +7445,15 @@ L_088271A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088271BC: ctx.gpr[2] = (ctx.fcr31); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088271C8: @@ -6098,8 +7461,8 @@ L_088271C8: ctx.fcr31 = 0u & 0x0181FFFFu; ctx.fcr31 = aot_gpr_4 & 0x0181FFFFu; jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088271E0: @@ -6122,8 +7485,8 @@ L_08827208: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827214: @@ -6136,8 +7499,8 @@ L_08827224: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827230: @@ -6150,8 +7513,21 @@ L_08827230: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x08827254u); ctx.gpr[18] = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 476u, 0x08827254u, 0x08A01434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 355u, 0x08A01434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827254u) goto L_08827254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827254: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(4)))))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -6214,8 +7590,8 @@ L_088272E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088272FC: @@ -6228,8 +7604,21 @@ L_088272FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x08827320u); ctx.gpr[18] = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 482u, 0x08827320u, 0x08A01434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 355u, 0x08A01434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827320u) goto L_08827320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827320: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(4)))))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -6273,8 +7662,8 @@ L_08827320: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088273C4: @@ -6292,8 +7681,21 @@ L_088273C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08827400u); ctx.gpr[19] = (aot_gpr_5 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 484u, 0x08827400u, 0x08A01434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 355u, 0x08A01434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827400u) goto L_08827400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827400: ctx.gpr[19] = (ctx.gpr[19] << 16u); ctx.gpr[19] = (static_cast(static_cast(ctx.gpr[19]) >> 16u)); @@ -6362,8 +7764,21 @@ L_088274B4: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088274C8u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 488u, 0x088274C8u, 0x08AEEBACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 559u, 0x08AEEBACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088274C8u) goto L_088274C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088274C8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6396,8 +7811,8 @@ L_088274EC: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18032))); jump_target = ctx.gpr[1]; ctx.gpr[18] = (static_cast(static_cast(ctx.gpr[18]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827504: @@ -6447,8 +7862,8 @@ L_0882754C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827574: @@ -6461,8 +7876,21 @@ L_08827574: ctx.gpr[19] = (aot_gpr_5 & 65535u); ctx.gpr[20] = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x088275ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 498u, 0x088275ACu, 0x08A01434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 355u, 0x08A01434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088275ACu) goto L_088275AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088275AC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(4)))))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -6478,8 +7906,21 @@ L_088275AC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088275E4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 499u, 0x088275E4u, 0x08AEEC48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 564u, 0x08AEEC48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088275E4u) goto L_088275E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088275E4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6499,8 +7940,21 @@ L_088275E4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08827600u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 500u, 0x08827600u, 0x08AEEC48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 564u, 0x08AEEC48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827600u) goto L_08827600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827600: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6526,8 +7980,8 @@ L_08827600: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827628: @@ -6583,8 +8037,8 @@ L_08827628: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827650: @@ -6595,8 +8049,8 @@ L_08827650: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882766C: @@ -6664,8 +8118,8 @@ L_088276C4: } L_08827728: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827730: @@ -6688,8 +8142,21 @@ L_0882774C: L_08827758: aot_gpr_31 = (0x08827760u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 511u, 0x08827760u, 0x088282FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 44u, 0x088282FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827760u) goto L_08827760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827760: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 45 ? 1u : 0u); @@ -6709,8 +8176,8 @@ L_08827770: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827784: @@ -6755,8 +8222,8 @@ L_088277BC: goto L_088277C0; L_088277C0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088277C8: @@ -6840,8 +8307,21 @@ L_08827884: L_08827890: aot_gpr_31 = (0x08827898u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 530u, 0x08827898u, 0x08828714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 61u, 0x08828714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827898u) goto L_08827898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827898: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 45 ? 1u : 0u); @@ -6869,8 +8349,21 @@ L_088278BC: L_088278C0: aot_gpr_31 = (0x088278C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 534u, 0x088278C8u, 0x088297A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 151u, 0x088297A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088278C8u) goto L_088278C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088278C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7836))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -6931,8 +8424,8 @@ L_08827930: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827944: @@ -6955,8 +8448,8 @@ L_08827954: goto L_08827970; L_08827970: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827978: @@ -7116,8 +8609,8 @@ L_08827978: ctx.gpr[2] = (ctx.gpr[2] & 255u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827A6C: @@ -7156,8 +8649,21 @@ L_08827AA8: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08827AC0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 553u, 0x08827AC0u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827AC0u) goto L_08827AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827AC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7171,12 +8677,38 @@ L_08827AC8: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x08827ADCu); aot_gpr_5 = (aot_gpr_5 + static_cast(12016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 555u, 0x08827ADCu, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827ADCu) goto L_08827ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827ADC: aot_gpr_31 = (0x08827AE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 556u, 0x08827AE4u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827AE4u) goto L_08827AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827AE4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7812), 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7816), 0u); @@ -7185,8 +8717,8 @@ L_08827AEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827AF8: @@ -7228,8 +8760,21 @@ L_08827B38: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08827B58u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 563u, 0x08827B58u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827B58u) goto L_08827B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827B58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7245,12 +8790,38 @@ L_08827B60: aot_gpr_6 = (aot_gpr_6 + static_cast(-512)); aot_gpr_31 = (0x08827B7Cu); aot_gpr_4 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 565u, 0x08827B7Cu, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827B7Cu) goto L_08827B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827B7C: aot_gpr_31 = (0x08827B84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 566u, 0x08827B84u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827B84u) goto L_08827B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827B84: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7824), aot_gpr_16); aot_gpr_4 = (0u | 512u); @@ -7261,8 +8832,8 @@ L_08827B90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827BA0: @@ -7305,8 +8876,21 @@ L_08827BE4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08827C04u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 573u, 0x08827C04u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827C04u) goto L_08827C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827C04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7322,12 +8906,38 @@ L_08827C0C: aot_gpr_6 = (aot_gpr_6 + static_cast(-768)); aot_gpr_31 = (0x08827C28u); aot_gpr_4 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 575u, 0x08827C28u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827C28u) goto L_08827C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827C28: aot_gpr_31 = (0x08827C30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 576u, 0x08827C30u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827C30u) goto L_08827C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827C30: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7832), aot_gpr_16); aot_gpr_4 = (0u | 768u); @@ -7338,8 +8948,8 @@ L_08827C3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827C4C: @@ -7383,8 +8993,21 @@ L_08827CA4: aot_gpr_4 = (0u | 79u); aot_gpr_31 = (0x08827CB4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 582u, 0x08827CB4u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827CB4u) goto L_08827CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827CB4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(482)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -7397,8 +9020,8 @@ L_08827CC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827CD8: @@ -7506,8 +9129,21 @@ L_08827D9C: aot_gpr_4 = (0u | 79u); aot_gpr_31 = (0x08827DACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 596u, 0x08827DACu, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827DACu) goto L_08827DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827DAC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(482)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -7535,8 +9171,21 @@ L_08827DAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08827DECu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 597u, 0x08827DECu, 0x08829F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 186u, 0x08829F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827DECu) goto L_08827DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827DEC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -7546,8 +9195,8 @@ L_08827DEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827E00: @@ -7679,8 +9328,21 @@ L_08827E70: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08827EC0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0008->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0008_entry, 601u, 0x08827EC0u, 0x08829F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 186u, 0x08829F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08827EC0u) goto L_08827EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08827EC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7709,8 +9371,8 @@ L_08827EF4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08827F00: diff --git a/profiles/vcs/generated/generated_unit_0009.cpp b/profiles/vcs/generated/generated_unit_0009.cpp index b740bd9..bd21381 100644 --- a/profiles/vcs/generated/generated_unit_0009.cpp +++ b/profiles/vcs/generated/generated_unit_0009.cpp @@ -563,6 +563,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08828000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -650,8 +674,21 @@ L_08828088: } L_08828090: aot_gpr_31 = (0x08828098u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 10u, 0x08828098u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08828098u) goto L_08828098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08828098: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -790,8 +827,8 @@ L_0882818C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088281C8: @@ -927,8 +964,8 @@ L_088282B4: } L_088282BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088282C4: @@ -943,14 +980,27 @@ L_088282C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088282F0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(26568)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 43u, 0x088282F0u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088282F0u) goto L_088282F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088282F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088282FC: @@ -1205,8 +1255,21 @@ L_08828554: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08828584u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 50u, 0x08828584u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08828584u) goto L_08828584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08828584: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(127))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1322,8 +1385,21 @@ L_0882868C: aot_fpr_12 = ctx.fpr[22] + aot_fpr_12; aot_gpr_31 = (0x088286C0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 59u, 0x088286C0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088286C0u) goto L_088286C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088286C0: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 4 ? 1u : 0u); @@ -1354,8 +1430,8 @@ L_088286D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08828714: @@ -1447,8 +1523,21 @@ L_08828714: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088287D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 62u, 0x088287D0u, 0x08827978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 547u, 0x08827978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088287D0u) goto L_088287D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088287D0: ctx.gpr[23] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -1507,8 +1596,21 @@ L_08828854: } L_08828864: aot_gpr_31 = (0x0882886Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 67u, 0x0882886Cu, 0x08827A6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 548u, 0x08827A6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882886Cu) goto L_0882886C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882886C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(127))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1625,8 +1727,21 @@ L_0882888C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08828A0Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 71u, 0x08828A0Cu, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08828A0Cu) goto L_08828A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08828A0C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1661,8 +1776,21 @@ L_08828A0C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08828A68u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 72u, 0x08828A68u, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08828A68u) goto L_08828A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08828A68: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1697,8 +1825,21 @@ L_08828A68: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08828AC4u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 73u, 0x08828AC4u, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08828AC4u) goto L_08828AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08828AC4: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1800,8 +1941,21 @@ L_08828BBC: } L_08828BCC: aot_gpr_31 = (0x08828BD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 77u, 0x08828BD4u, 0x08827AF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 558u, 0x08827AF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08828BD4u) goto L_08828BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08828BD4: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -2017,8 +2171,8 @@ L_08828ED0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08828F08: @@ -2188,8 +2342,21 @@ L_088290AC: } aot_gpr_31 = (0x088290C8u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 95u, 0x088290C8u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088290C8u) goto L_088290C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088290C8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(64))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2296,8 +2463,21 @@ L_08829174: } L_0882918C: aot_gpr_31 = (0x08829194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 109u, 0x08829194u, 0x08827784u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 513u, 0x08827784u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08829194u) goto L_08829194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08829194: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3027,8 +3207,8 @@ L_0882975C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088297A4: @@ -3137,8 +3317,21 @@ L_08829850: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08829888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 154u, 0x08829888u, 0x08827978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 547u, 0x08827978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08829888u) goto L_08829888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08829888: aot_gpr_4 = (16880u << 16u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); @@ -3195,8 +3388,21 @@ L_088298E0: ctx.gpr[7] = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x088298F8u); ctx.gpr[8] = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 161u, 0x088298F8u, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088298F8u) goto L_088298F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088298F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(76))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -3205,8 +3411,21 @@ L_088298F8: ctx.gpr[7] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08829914u); ctx.gpr[8] = (aot_gpr_29 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 162u, 0x08829914u, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08829914u) goto L_08829914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08829914: ctx.gpr[19] = (2238u << 16u); ctx.gpr[19] = (ctx.gpr[19] + static_cast(-272)); @@ -3232,8 +3451,21 @@ L_0882995C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0882996Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 164u, 0x0882996Cu, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882996Cu) goto L_0882996C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882996C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3313,8 +3545,21 @@ L_088299F4: goto L_08829A04; L_08829A04: aot_gpr_31 = (0x08829A0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 171u, 0x08829A0Cu, 0x08827AF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 558u, 0x08827AF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08829A0Cu) goto L_08829A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08829A0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7824))); goto L_08829A10; @@ -3479,8 +3724,21 @@ L_08829C30: } L_08829C40: aot_gpr_31 = (0x08829C48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 178u, 0x08829C48u, 0x08827BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 568u, 0x08827BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08829C48u) goto L_08829C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08829C48: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -3519,8 +3777,21 @@ L_08829C90: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08829CC0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 181u, 0x08829CC0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08829CC0u) goto L_08829CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08829CC0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -3705,8 +3976,8 @@ L_08829F1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08829F60: @@ -4266,8 +4537,21 @@ L_0882A44C: aot_gpr_4 = (0u | 77u); aot_gpr_31 = (0x0882A45Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 223u, 0x0882A45Cu, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A45Cu) goto L_0882A45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A45C: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4361,8 +4645,21 @@ L_0882A4D4: aot_gpr_4 = (0u | 78u); aot_gpr_31 = (0x0882A4E4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 226u, 0x0882A4E4u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A4E4u) goto L_0882A4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A4E4: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4478,8 +4775,8 @@ L_0882A588: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(464)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882A5BC: @@ -4599,8 +4896,21 @@ L_0882A694: ctx.gpr[7] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0882A6BCu); ctx.gpr[8] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 242u, 0x0882A6BCu, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A6BCu) goto L_0882A6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A6BC: aot_gpr_4 = (aot_gpr_29 + static_cast(384)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4887,8 +5197,21 @@ L_0882A6BC: ctx.gpr[17] = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x0882A7E8u); ctx.gpr[8] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 243u, 0x0882A7E8u, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A7E8u) goto L_0882A7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A7E8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); ctx.gpr[30] = (aot_gpr_29 + static_cast(192)); @@ -4899,15 +5222,41 @@ L_0882A7E8: ctx.gpr[21] = (aot_gpr_29 + static_cast(224)); aot_gpr_31 = (0x0882A80Cu); ctx.gpr[8] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 244u, 0x0882A80Cu, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A80Cu) goto L_0882A80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A80C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882A81Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 245u, 0x0882A81Cu, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A81Cu) goto L_0882A81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A81C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4926,8 +5275,21 @@ L_0882A81C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882A834u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 246u, 0x0882A834u, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A834u) goto L_0882A834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A834: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4946,8 +5308,21 @@ L_0882A834: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882A84Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 247u, 0x0882A84Cu, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A84Cu) goto L_0882A84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A84C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4966,8 +5341,21 @@ L_0882A84C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882A864u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 248u, 0x0882A864u, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A864u) goto L_0882A864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A864: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4986,8 +5374,21 @@ L_0882A864: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882A87Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 249u, 0x0882A87Cu, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A87Cu) goto L_0882A87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A87C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5006,8 +5407,21 @@ L_0882A87C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882A894u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 250u, 0x0882A894u, 0x08827628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 501u, 0x08827628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882A894u) goto L_0882A894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882A894: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5527,8 +5941,21 @@ L_0882AB60: aot_gpr_4 = (0u | 77u); aot_gpr_31 = (0x0882AB70u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 260u, 0x0882AB70u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882AB70u) goto L_0882AB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882AB70: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(596), aot_run_words); @@ -5545,8 +5972,8 @@ L_0882AB70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(640)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882ABA0: @@ -5886,8 +6313,21 @@ L_0882AE04: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0882AE18u); aot_gpr_6 = (aot_gpr_6 + aot_gpr_16); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 286u, 0x0882AE18u, 0x088B2FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 379u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 379u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 379u, 0x088B2FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882AE18u) goto L_0882AE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882AE18: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6411,8 +6851,21 @@ L_0882B210: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0882B288u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 323u, 0x0882B288u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B288u) goto L_0882B288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B288: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6512,8 +6965,21 @@ L_0882B344: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0882B354u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 326u, 0x0882B354u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B354u) goto L_0882B354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B354: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(482)))))); aot_gpr_4 = (0u + static_cast(-17)); @@ -6556,8 +7022,8 @@ L_0882B388: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(448)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B3CC: @@ -6570,8 +7036,21 @@ L_0882B3CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0882B3F0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(30288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 330u, 0x0882B3F0u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B3F0u) goto L_0882B3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B3F0: aot_gpr_31 = (0x0882B3F8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-30412)); @@ -6581,8 +7060,8 @@ L_0882B3F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B404: @@ -6634,8 +7113,8 @@ L_0882B44C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B45C: @@ -6697,8 +7176,8 @@ L_0882B4B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B4BC: @@ -6712,8 +7191,8 @@ L_0882B4BC: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B4E8: @@ -6722,8 +7201,21 @@ L_0882B4E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0882B4FCu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 350u, 0x0882B4FCu, 0x08A696F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 258u, 0x08A696F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B4FCu) goto L_0882B4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B4FC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(482)))))); aot_gpr_6 = (0u + static_cast(-129)); @@ -6824,8 +7316,8 @@ L_0882B4FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B688: @@ -6838,8 +7330,21 @@ L_0882B688: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0882B6ACu); ctx.gpr[18] = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 352u, 0x0882B6ACu, 0x08A696F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 258u, 0x08A696F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B6ACu) goto L_0882B6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B6AC: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(19768)); @@ -6887,8 +7392,21 @@ L_0882B6F0: L_0882B708: aot_gpr_31 = (0x0882B710u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 357u, 0x0882B710u, 0x0882C98Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 140u, 0x0882C98Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B710u) goto L_0882B710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B710: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(483)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -6904,8 +7422,8 @@ L_0882B710: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B73C: @@ -6917,8 +7435,21 @@ L_0882B73C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0882B75Cu); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 359u, 0x0882B75Cu, 0x08A696F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 258u, 0x08A696F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B75Cu) goto L_0882B75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B75C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(19768)); @@ -6951,8 +7482,21 @@ L_0882B7A4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0882B7B0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 362u, 0x0882B7B0u, 0x08ACFE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1117u, 0x08ACFE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B7B0u) goto L_0882B7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B7B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6964,24 +7508,76 @@ L_0882B7B8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882B7C4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 364u, 0x0882B7C4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B7C4u) goto L_0882B7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B7C4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0882B7D0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 365u, 0x0882B7D0u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B7D0u) goto L_0882B7D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B7D0: aot_gpr_31 = (0x0882B7D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 366u, 0x0882B7D8u, 0x08ACFF50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1139u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1139u, 0x08ACFF50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B7D8u) goto L_0882B7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B7D8: aot_gpr_31 = (0x0882B7E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 367u, 0x0882B7E0u, 0x0882C98Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 140u, 0x0882C98Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B7E0u) goto L_0882B7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B7E0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(483)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -7015,8 +7611,8 @@ L_0882B7E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B854: @@ -7047,8 +7643,21 @@ L_0882B878: } L_0882B890: aot_gpr_31 = (0x0882B898u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 371u, 0x0882B898u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B898u) goto L_0882B898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B898: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -7074,8 +7683,21 @@ L_0882B8BC: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x0882B8CCu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 376u, 0x0882B8CCu, 0x0880DD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 422u, 0x0880DD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B8CCu) goto L_0882B8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B8CC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(470)))))); aot_gpr_4 = (0u + static_cast(-1)); @@ -7103,8 +7725,21 @@ L_0882B8EC: goto L_0882B8FC; L_0882B8FC: aot_gpr_31 = (0x0882B904u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 380u, 0x0882B904u, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B904u) goto L_0882B904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B904: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(476))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -7154,16 +7789,42 @@ L_0882B944: goto L_0882B950; L_0882B950: aot_gpr_31 = (0x0882B958u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 387u, 0x0882B958u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B958u) goto L_0882B958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B958: aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_0882B95C; L_0882B95C: aot_gpr_31 = (0x0882B964u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 389u, 0x0882B964u, 0x08A66220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 501u, 0x08A66220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882B964u) goto L_0882B964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882B964: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7187,8 +7848,8 @@ L_0882B978: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B994: @@ -7202,8 +7863,8 @@ L_0882B9A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B9B0: @@ -7217,8 +7878,8 @@ L_0882B9C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B9CC: @@ -7233,8 +7894,8 @@ L_0882B9E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882B9EC: @@ -7330,8 +7991,8 @@ L_0882BA4C: goto L_0882BA50; L_0882BA50: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882BA58: @@ -7408,20 +8069,46 @@ L_0882BADC: aot_gpr_5 = (aot_gpr_16 + static_cast(432)); aot_gpr_31 = (0x0882BAE8u); aot_gpr_6 = (aot_gpr_16 + static_cast(436)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 420u, 0x0882BAE8u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BAE8u) goto L_0882BAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BAE8: aot_gpr_31 = (0x0882BAF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 421u, 0x0882BAF0u, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BAF0u) goto L_0882BAF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BAF0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882BB00: @@ -7473,8 +8160,21 @@ L_0882BB4C: aot_gpr_4 = (ctx.gpr[17] + static_cast(352)); aot_gpr_31 = (0x0882BB58u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 428u, 0x0882BB58u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BB58u) goto L_0882BB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BB58: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7520,8 +8220,21 @@ L_0882BB94: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0882BBACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 432u, 0x0882BBACu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BBACu) goto L_0882BBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BBAC: aot_gpr_31 = (0x0882BBB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7539,16 +8252,16 @@ L_0882BBB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882BBD0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(448), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(444), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882BBDC: @@ -7568,8 +8281,21 @@ L_0882BC18: aot_gpr_5 = (aot_gpr_16 + static_cast(352)); aot_gpr_31 = (0x0882BC28u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 438u, 0x0882BC28u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BC28u) goto L_0882BC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BC28: aot_gpr_4 = (aot_gpr_16 + static_cast(400)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7646,8 +8372,21 @@ L_0882BCB0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(479)))))); aot_gpr_31 = (0x0882BCC0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 442u, 0x0882BCC0u, 0x08905074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 222u, 0x08905074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BCC0u) goto L_0882BCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BCC0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = 0u == 0u; @@ -7668,8 +8407,21 @@ L_0882BCCC: L_0882BCDC: aot_gpr_31 = (0x0882BCE4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(432))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 445u, 0x0882BCE4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BCE4u) goto L_0882BCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BCE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); goto L_0882BCE8; @@ -7680,14 +8432,40 @@ L_0882BCE8: ctx.gpr[19] = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x0882BD00u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 447u, 0x0882BD00u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BD00u) goto L_0882BD00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BD00: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0882BD0Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 448u, 0x0882BD0Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BD0Cu) goto L_0882BD0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BD0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7708,8 +8486,21 @@ L_0882BD1C: L_0882BD28: aot_gpr_31 = (0x0882BD30u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(432))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 451u, 0x0882BD30u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BD30u) goto L_0882BD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BD30: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7846,8 +8637,21 @@ L_0882BDC8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(448))); aot_gpr_31 = (0x0882BDD4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 456u, 0x0882BDD4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BDD4u) goto L_0882BDD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BDD4: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7952,14 +8756,40 @@ L_0882BE14: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0882BE3Cu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 458u, 0x0882BE3Cu, 0x0885FEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 935u, 0x0885FEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BE3Cu) goto L_0882BE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BE3C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0882BE48u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 459u, 0x0882BE48u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BE48u) goto L_0882BE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BE48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7980,8 +8810,21 @@ L_0882BE58: L_0882BE64: aot_gpr_31 = (0x0882BE6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 462u, 0x0882BE6Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BE6Cu) goto L_0882BE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BE6C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(352))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(356))); @@ -7992,19 +8835,58 @@ L_0882BE6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882BE90u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 463u, 0x0882BE90u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BE90u) goto L_0882BE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BE90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882BE9Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 464u, 0x0882BE9Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BE9Cu) goto L_0882BE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BE9C: aot_gpr_31 = (0x0882BEA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 465u, 0x0882BEA4u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BEA4u) goto L_0882BEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BEA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(448))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -8048,8 +8930,21 @@ L_0882BF04: aot_gpr_5 = (aot_gpr_5 + static_cast(320)); aot_gpr_31 = (0x0882BF14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 469u, 0x0882BF14u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BF14u) goto L_0882BF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BF14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(448))); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); @@ -8086,8 +8981,21 @@ L_0882BF38: L_0882BF44: aot_gpr_31 = (0x0882BF4Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 473u, 0x0882BF4Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BF4Cu) goto L_0882BF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BF4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(264))); goto L_0882BF50; @@ -8108,8 +9016,21 @@ L_0882BF5C: L_0882BF68: aot_gpr_31 = (0x0882BF70u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 477u, 0x0882BF70u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BF70u) goto L_0882BF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BF70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); goto L_0882BF74; @@ -8132,8 +9053,21 @@ L_0882BF80: L_0882BF8C: aot_gpr_31 = (0x0882BF94u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 481u, 0x0882BF94u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BF94u) goto L_0882BF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BF94: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(616), aot_run_words); @@ -8151,8 +9085,8 @@ L_0882BF94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(672)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882BFC8: @@ -8164,8 +9098,21 @@ L_0882BFC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_31); aot_gpr_31 = (0x0882BFE8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0009->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0009_entry, 483u, 0x0882BFE8u, 0x0882C728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 108u, 0x0882C728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882BFE8u) goto L_0882BFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882BFE8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0010.cpp b/profiles/vcs/generated/generated_unit_0010.cpp index 8421534..6dc4ec1 100644 --- a/profiles/vcs/generated/generated_unit_0010.cpp +++ b/profiles/vcs/generated/generated_unit_0010.cpp @@ -1081,6 +1081,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0882C000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1354,8 +1378,8 @@ L_0882C184: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C198: @@ -1390,8 +1414,8 @@ L_0882C1C4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18072))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C1DC: @@ -1418,8 +1442,21 @@ L_0882C1E4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C1FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 33u, 0x0882C1FCu, 0x08997988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 975u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 975u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 975u, 0x08997988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C1FCu) goto L_0882C1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C1FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1444,8 +1481,21 @@ L_0882C204: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C21Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 35u, 0x0882C21Cu, 0x0899773Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 961u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 961u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 961u, 0x0899773Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C21Cu) goto L_0882C21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C21C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1470,8 +1520,21 @@ L_0882C224: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C23Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 37u, 0x0882C23Cu, 0x08997BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 989u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 989u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 989u, 0x08997BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C23Cu) goto L_0882C23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C23C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1496,8 +1559,21 @@ L_0882C244: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C25Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 39u, 0x0882C25Cu, 0x08997C24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 992u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 992u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 992u, 0x08997C24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C25Cu) goto L_0882C25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C25C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1522,8 +1598,21 @@ L_0882C264: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C27Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 41u, 0x0882C27Cu, 0x08997EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 1009u, 0x08997EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C27Cu) goto L_0882C27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C27C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1548,8 +1637,21 @@ L_0882C284: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C29Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 43u, 0x0882C29Cu, 0x08998118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 11u, 0x08998118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C29Cu) goto L_0882C29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C29C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1574,8 +1676,21 @@ L_0882C2A4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C2BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 45u, 0x0882C2BCu, 0x089983B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 23u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 23u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 23u, 0x089983B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C2BCu) goto L_0882C2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C2BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1607,8 +1722,21 @@ L_0882C2CC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C2E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 48u, 0x0882C2E4u, 0x08998650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 35u, 0x08998650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C2E4u) goto L_0882C2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C2E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1632,8 +1760,21 @@ L_0882C2EC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882C300u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 50u, 0x0882C300u, 0x089988BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 47u, 0x089988BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C300u) goto L_0882C300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C300: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1652,8 +1793,8 @@ L_0882C310: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C31C: @@ -1665,8 +1806,21 @@ L_0882C31C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0882C33Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 54u, 0x0882C33Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C33Cu) goto L_0882C33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C33C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(0), aot_run_words); @@ -1678,18 +1832,57 @@ L_0882C33C: aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast(48), aot_run_words); } aot_gpr_31 = (0x0882C35Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 55u, 0x0882C35Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C35Cu) goto L_0882C35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C35C: aot_gpr_31 = (0x0882C364u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 56u, 0x0882C364u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C364u) goto L_0882C364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C364: aot_gpr_31 = (0x0882C36Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 57u, 0x0882C36Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C36Cu) goto L_0882C36C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C36C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -1699,8 +1892,8 @@ L_0882C36C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C380: @@ -1726,14 +1919,27 @@ L_0882C3A4: goto L_0882C3B4; L_0882C3B4: aot_gpr_31 = (0x0882C3BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 61u, 0x0882C3BCu, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C3BCu) goto L_0882C3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C3BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C3C8: @@ -1817,8 +2023,21 @@ L_0882C460: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0882C46Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 73u, 0x0882C46Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C46Cu) goto L_0882C46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C46C: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -1862,8 +2081,8 @@ L_0882C4A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C4C8: @@ -1974,8 +2193,21 @@ L_0882C5B8: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0882C5C4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 89u, 0x0882C5C4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C5C4u) goto L_0882C5C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C5C4: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -2021,8 +2253,8 @@ L_0882C5F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C628: @@ -2106,8 +2338,21 @@ L_0882C6C0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0882C6CCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 104u, 0x0882C6CCu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C6CCu) goto L_0882C6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C6CC: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -2151,8 +2396,8 @@ L_0882C700: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C728: @@ -2295,13 +2540,39 @@ L_0882C838: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882C844u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 121u, 0x0882C844u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C844u) goto L_0882C844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C844: aot_gpr_31 = (0x0882C84Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 122u, 0x0882C84Cu, 0x0889358Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 537u, 0x0889358Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C84Cu) goto L_0882C84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C84C: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -2375,8 +2646,8 @@ L_0882C8A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C8BC: @@ -2394,8 +2665,21 @@ L_0882C8BC: } L_0882C8DC: aot_gpr_31 = (0x0882C8E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 132u, 0x0882C8E4u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C8E4u) goto L_0882C8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C8E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (65528u << 16u); @@ -2435,8 +2719,21 @@ L_0882C924: L_0882C92C: aot_gpr_31 = (0x0882C934u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 137u, 0x0882C934u, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C934u) goto L_0882C934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C934: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); goto L_0882C938; @@ -2454,8 +2751,21 @@ L_0882C938: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0882C96Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 139u, 0x0882C96Cu, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C96Cu) goto L_0882C96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C96C: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast(112), aot_run_words); } @@ -2467,8 +2777,8 @@ L_0882C96C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882C98C: @@ -2489,8 +2799,21 @@ L_0882C98C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x0882C9D0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 141u, 0x0882C9D0u, 0x089E224Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 435u, 0x089E224Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882C9D0u) goto L_0882C9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882C9D0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(482)))))); aot_gpr_5 = (0u + static_cast(-2)); @@ -2562,8 +2885,21 @@ L_0882C9D0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0882CAE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 142u, 0x0882CAE8u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CAE8u) goto L_0882CAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CAE8: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); @@ -2799,8 +3135,8 @@ L_0882CC48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882CC80: @@ -2844,13 +3180,39 @@ L_0882CCE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882CCF0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 176u, 0x0882CCF0u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CCF0u) goto L_0882CCF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CCF0: aot_gpr_31 = (0x0882CCF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 177u, 0x0882CCF8u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CCF8u) goto L_0882CCF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CCF8: aot_gpr_4 = (2238u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(344))); @@ -2859,8 +3221,21 @@ L_0882CCF8: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0882CD14u); aot_gpr_4 = (aot_gpr_4 + static_cast(14064)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 178u, 0x0882CD14u, 0x08A8F64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 644u, 0x08A8F64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CD14u) goto L_0882CD14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CD14: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2887,8 +3262,21 @@ L_0882CD1C: } aot_gpr_31 = (0x0882CD58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 180u, 0x0882CD58u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CD58u) goto L_0882CD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CD58: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -2904,8 +3292,21 @@ L_0882CD58: } aot_gpr_31 = (0x0882CD78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 181u, 0x0882CD78u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CD78u) goto L_0882CD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CD78: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16248u << 16u); @@ -2940,8 +3341,21 @@ L_0882CD78: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0882CDD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 182u, 0x0882CDD0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CDD0u) goto L_0882CDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CDD0: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); @@ -3057,8 +3471,21 @@ L_0882CE74: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0882CEB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 193u, 0x0882CEB4u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CEB4u) goto L_0882CEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CEB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_5 = (0u + static_cast(-3)); @@ -3129,8 +3556,21 @@ L_0882CED8: } aot_gpr_31 = (0x0882CF3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 196u, 0x0882CF3Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CF3Cu) goto L_0882CF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CF3C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3153,8 +3593,21 @@ L_0882CF3C: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x0882CF70u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 197u, 0x0882CF70u, 0x0882B4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 348u, 0x0882B4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CF70u) goto L_0882CF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CF70: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -3175,8 +3628,21 @@ L_0882CF70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882CF90u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 198u, 0x0882CF90u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882CF90u) goto L_0882CF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882CF90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); @@ -3256,12 +3722,38 @@ L_0882CFC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0882D060u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 202u, 0x0882D060u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D060u) goto L_0882D060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D060: aot_gpr_31 = (0x0882D068u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 203u, 0x0882D068u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D068u) goto L_0882D068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D068: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3273,8 +3765,21 @@ L_0882D070: ctx.gpr[19] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x0882D07Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 205u, 0x0882D07Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D07Cu) goto L_0882D07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D07C: ctx.gpr[18] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); @@ -3282,16 +3787,42 @@ L_0882D07C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0882D094u); aot_fpr_20 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 206u, 0x0882D094u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D094u) goto L_0882D094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D094: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0882D0A8u); ctx.fpr[24] = aot_fpr_14 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 207u, 0x0882D0A8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D0A8u) goto L_0882D0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D0A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); { const float fs = aot_fpr_20; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } @@ -3330,8 +3861,21 @@ L_0882D0E8: } L_0882D104: aot_gpr_31 = (0x0882D10Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 211u, 0x0882D10Cu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D10Cu) goto L_0882D10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D10C: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3430,15 +3974,41 @@ L_0882D164: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882D1C8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 214u, 0x0882D1C8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D1C8u) goto L_0882D1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D1C8: aot_gpr_4 = (0u | 85u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0882D1D8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 215u, 0x0882D1D8u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D1D8u) goto L_0882D1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D1D8: aot_gpr_31 = (0x0882D1E0u); ctx.gpr[20] = (aot_gpr_16 + static_cast(112)); @@ -3524,14 +4094,40 @@ L_0882D26C: ctx.gpr[7] = (0u | 50u); aot_gpr_31 = (0x0882D2A0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 223u, 0x0882D2A0u, 0x088AC684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 57u, 0x088AC684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D2A0u) goto L_0882D2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D2A0: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(475))); aot_gpr_31 = (0x0882D2ACu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 224u, 0x0882D2ACu, 0x08990B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 159u, 0x08990B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D2ACu) goto L_0882D2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D2AC: aot_fpr_12 = std::sqrt(ctx.fpr[26]); aot_gpr_4 = (16230u << 16u); @@ -3639,15 +4235,41 @@ L_0882D394: aot_fpr_12 = ctx.fpr[26] + aot_fpr_12; aot_gpr_31 = (0x0882D3C0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 232u, 0x0882D3C0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D3C0u) goto L_0882D3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D3C0: aot_gpr_4 = (0u | 85u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0882D3D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 233u, 0x0882D3D0u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D3D0u) goto L_0882D3D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D3D0: aot_gpr_31 = (0x0882D3D8u); ctx.gpr[17] = (aot_gpr_16 + static_cast(112)); @@ -3727,14 +4349,40 @@ L_0882D468: ctx.gpr[7] = (0u | 50u); aot_gpr_31 = (0x0882D49Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 239u, 0x0882D49Cu, 0x088AC684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 57u, 0x088AC684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D49Cu) goto L_0882D49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D49C: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(475))); aot_gpr_31 = (0x0882D4A8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 240u, 0x0882D4A8u, 0x08990B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 159u, 0x08990B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D4A8u) goto L_0882D4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D4A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (128u << 16u); @@ -3770,8 +4418,8 @@ L_0882D4D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882D508: @@ -3827,8 +4475,21 @@ L_0882D57C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x0882D594u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 248u, 0x0882D594u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D594u) goto L_0882D594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D594: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -4115,8 +4776,8 @@ L_0882D75C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882D794: @@ -4161,8 +4822,21 @@ L_0882D794: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(36), aot_run_words); } aot_gpr_31 = (0x0882D854u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 287u, 0x0882D854u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882D854u) goto L_0882D854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882D854: ctx.gpr[20] = (2236u << 16u); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -4313,8 +4987,8 @@ L_0882D944: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882D968: @@ -4432,8 +5106,21 @@ L_0882DA10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x0882DA1Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 324u, 0x0882DA1Cu, 0x08AE1CE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 528u, 0x08AE1CE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DA1Cu) goto L_0882DA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DA1C: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_0882DA20; @@ -4460,8 +5147,8 @@ L_0882DA30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882DA4C: @@ -4484,8 +5171,21 @@ L_0882DA64: L_0882DA6C: aot_gpr_31 = (0x0882DA74u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 331u, 0x0882DA74u, 0x0898C078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 15u, 0x0898C078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DA74u) goto L_0882DA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DA74: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4515,8 +5215,21 @@ L_0882DA8C: L_0882DA94: aot_gpr_31 = (0x0882DA9Cu); aot_gpr_4 = (ctx.gpr[2] + static_cast(2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 336u, 0x0882DA9Cu, 0x0898B2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 816u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 816u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 816u, 0x0898B2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DA9Cu) goto L_0882DA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DA9C: aot_gpr_31 = (0x0882DAA4u); aot_gpr_4 = (0u | 0u); @@ -4525,8 +5238,21 @@ L_0882DA9C: L_0882DAA4: aot_gpr_31 = (0x0882DAACu); aot_gpr_4 = (ctx.gpr[2] + static_cast(52)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 338u, 0x0882DAACu, 0x0898B2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 816u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 816u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 816u, 0x0898B2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DAACu) goto L_0882DAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DAAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882DAB8u); @@ -4541,8 +5267,8 @@ L_0882DAC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882DAD0: @@ -4583,8 +5309,21 @@ L_0882DB04: L_0882DB0C: aot_gpr_31 = (0x0882DB14u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 346u, 0x0882DB14u, 0x08AE1CE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 528u, 0x08AE1CE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DB14u) goto L_0882DB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DB14: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); goto L_0882DB18; @@ -4612,8 +5351,21 @@ L_0882DB44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0882DB54u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 350u, 0x0882DB54u, 0x08AE1CE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 528u, 0x08AE1CE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DB54u) goto L_0882DB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DB54: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -4657,8 +5409,21 @@ L_0882DBBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0882DBCCu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 353u, 0x0882DBCCu, 0x08AE1CE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 528u, 0x08AE1CE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DBCCu) goto L_0882DBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DBCC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -4692,8 +5457,8 @@ L_0882DC08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882DC20: @@ -4724,21 +5489,73 @@ L_0882DC4C: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x0882DC6Cu); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-8706), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 359u, 0x0882DC6Cu, 0x08A0787Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 841u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 841u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 841u, 0x08A0787Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DC6Cu) goto L_0882DC6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DC6C: aot_gpr_31 = (0x0882DC74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 360u, 0x0882DC74u, 0x08AD31E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 538u, 0x08AD31E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DC74u) goto L_0882DC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DC74: aot_gpr_31 = (0x0882DC7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 361u, 0x0882DC7Cu, 0x08A1155Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 172u, 0x08A1155Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DC7Cu) goto L_0882DC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DC7C: aot_gpr_31 = (0x0882DC84u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 362u, 0x0882DC84u, 0x08A0638Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 561u, 0x08A0638Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DC84u) goto L_0882DC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DC84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u | 9u); @@ -4775,22 +5592,61 @@ L_0882DCB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x0882DCC8u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 368u, 0x0882DCC8u, 0x089C6F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 680u, 0x089C6F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DCC8u) goto L_0882DCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DCC8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882DCD8u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 369u, 0x0882DCD8u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DCD8u) goto L_0882DCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DCD8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x0882DCE8u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 370u, 0x0882DCE8u, 0x0880A6ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 556u, 0x0880A6ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DCE8u) goto L_0882DCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DCE8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -4812,8 +5668,21 @@ L_0882DD14: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x0882DD20u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 372u, 0x0882DD20u, 0x08AE2020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 572u, 0x08AE2020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DD20u) goto L_0882DD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DD20: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -4852,8 +5721,21 @@ L_0882DD64: L_0882DD6C: aot_gpr_31 = (0x0882DD74u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 377u, 0x0882DD74u, 0x089BB280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 686u, 0x089BB280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DD74u) goto L_0882DD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DD74: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4864,8 +5746,8 @@ L_0882DD74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882DD8C: @@ -4884,8 +5766,21 @@ L_0882DDAC: ctx.gpr[17] = (ctx.gpr[28] + static_cast(-30252)); aot_gpr_31 = (0x0882DDB8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 380u, 0x0882DDB8u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DDB8u) goto L_0882DDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DDB8: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4911,14 +5806,40 @@ L_0882DDCC: L_0882DDD4: aot_gpr_31 = (0x0882DDDCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 384u, 0x0882DDDCu, 0x08AAEBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 571u, 0x08AAEBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DDDCu) goto L_0882DDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DDDC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0882DDE8u); aot_gpr_4 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 385u, 0x0882DDE8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DDE8u) goto L_0882DDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DDE8: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4931,8 +5852,21 @@ L_0882DDE8: L_0882DDF4: aot_gpr_31 = (0x0882DDFCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 387u, 0x0882DDFCu, 0x08AE1B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 506u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 506u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 506u, 0x08AE1B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DDFCu) goto L_0882DDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DDFC: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_0882DE00; @@ -4947,8 +5881,21 @@ L_0882DE00: L_0882DE0C: aot_gpr_31 = (0x0882DE14u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 390u, 0x0882DE14u, 0x08AE1CE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 528u, 0x08AE1CE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DE14u) goto L_0882DE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DE14: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[17]); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30232)); @@ -5041,8 +5988,8 @@ L_0882DEDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882DEF4: @@ -5062,14 +6009,40 @@ L_0882DEF4: } L_0882DF1C: aot_gpr_31 = (0x0882DF24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 409u, 0x0882DF24u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DF24u) goto L_0882DF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DF24: ctx.gpr[17] = (ctx.gpr[28] + static_cast(-30252)); aot_gpr_31 = (0x0882DF30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 410u, 0x0882DF30u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DF30u) goto L_0882DF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DF30: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -5097,8 +6070,21 @@ L_0882DF48: L_0882DF50: aot_gpr_31 = (0x0882DF58u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 414u, 0x0882DF58u, 0x08AAEBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 571u, 0x08AAEBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DF58u) goto L_0882DF58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DF58: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0882DF5C; @@ -5117,8 +6103,21 @@ L_0882DF68: L_0882DF70: aot_gpr_31 = (0x0882DF78u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 418u, 0x0882DF78u, 0x08954DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 201u, 0x08954DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DF78u) goto L_0882DF78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DF78: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); @@ -5126,24 +6125,76 @@ L_0882DF78: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0882DF90u); aot_gpr_6 = (16u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 419u, 0x0882DF90u, 0x0893681Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 694u, 0x0893681Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DF90u) goto L_0882DF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DF90: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882DF9Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 420u, 0x0882DF9Cu, 0x08AAF460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 721u, 0x08AAF460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DF9Cu) goto L_0882DF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DF9C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(33), static_cast(ctx.gpr[19])); aot_gpr_31 = (0x0882DFA8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 421u, 0x0882DFA8u, 0x08AAF008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 644u, 0x08AAF008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DFA8u) goto L_0882DFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DFA8: aot_gpr_31 = (0x0882DFB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 422u, 0x0882DFB0u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DFB0u) goto L_0882DFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DFB0: ctx.gpr[2] = (ctx.gpr[19] | 0u); goto L_0882DFB4; @@ -5158,8 +6209,8 @@ L_0882DFB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882DFD0: @@ -5177,8 +6228,21 @@ L_0882DFD0: L_0882DFEC: aot_gpr_31 = (0x0882DFF4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-30252)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 426u, 0x0882DFF4u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882DFF4u) goto L_0882DFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882DFF4: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -5204,8 +6268,21 @@ L_0882E00C: } L_0882E014: aot_gpr_31 = (0x0882E01Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 430u, 0x0882E01Cu, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E01Cu) goto L_0882E01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E01C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5271,21 +6348,60 @@ L_0882E080: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0882E090u); aot_gpr_5 = (aot_gpr_5 + static_cast(4936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 439u, 0x0882E090u, 0x08A65998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 352u, 0x08A65998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E090u) goto L_0882E090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E090: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(33), static_cast(0u)); aot_gpr_31 = (0x0882E09Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 440u, 0x0882E09Cu, 0x08AAF24Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 680u, 0x08AAF24Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E09Cu) goto L_0882E09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E09C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0882E0ACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 441u, 0x0882E0ACu, 0x08AAEE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 610u, 0x08AAEE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E0ACu) goto L_0882E0AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E0AC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5295,8 +6411,8 @@ L_0882E0AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E0C0: @@ -5307,8 +6423,21 @@ L_0882E0C0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0882E0E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 443u, 0x0882E0E0u, 0x08AE2540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 634u, 0x08AE2540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E0E0u) goto L_0882E0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E0E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -5330,8 +6459,21 @@ L_0882E10C: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x0882E118u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 445u, 0x0882E118u, 0x08AE2540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 634u, 0x08AE2540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E118u) goto L_0882E118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E118: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -5370,8 +6512,21 @@ L_0882E170: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x0882E17Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 448u, 0x0882E17Cu, 0x08AE2540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 634u, 0x08AE2540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E17Cu) goto L_0882E17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E17C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -5399,8 +6554,8 @@ L_0882E1A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E1C0: @@ -5473,8 +6628,21 @@ L_0882E228: L_0882E230: aot_gpr_31 = (0x0882E238u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 461u, 0x0882E238u, 0x0898C078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 15u, 0x0898C078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E238u) goto L_0882E238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E238: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4214))); @@ -5545,12 +6713,38 @@ L_0882E29C: goto L_0882DFD0; L_0882E2A8: aot_gpr_31 = (0x0882E2B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 474u, 0x0882E2B0u, 0x08AB5428u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 297u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 297u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 297u, 0x08AB5428u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E2B0u) goto L_0882E2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E2B0: aot_gpr_31 = (0x0882E2B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 475u, 0x0882E2B8u, 0x08AB6E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 807u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 807u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 807u, 0x08AB6E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E2B8u) goto L_0882E2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E2B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5630,8 +6824,21 @@ L_0882E320: L_0882E328: aot_gpr_31 = (0x0882E330u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 488u, 0x0882E330u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E330u) goto L_0882E330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E330: aot_gpr_31 = (0x0882E338u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5710,13 +6917,39 @@ L_0882E3A0: L_0882E3A4: aot_gpr_31 = (0x0882E3ACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 503u, 0x0882E3ACu, 0x088739ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 839u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 839u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 839u, 0x088739ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E3ACu) goto L_0882E3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E3AC: aot_gpr_31 = (0x0882E3B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 504u, 0x0882E3B4u, 0x08AE1E48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 552u, 0x08AE1E48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E3B4u) goto L_0882E3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E3B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -5777,8 +7010,21 @@ L_0882E420: } L_0882E434: aot_gpr_31 = (0x0882E43Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 510u, 0x0882E43Cu, 0x08AE1E48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 552u, 0x08AE1E48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E43Cu) goto L_0882E43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E43C: aot_gpr_31 = (0x0882E444u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5807,8 +7053,8 @@ L_0882E460: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E470: @@ -5823,8 +7069,21 @@ L_0882E470: L_0882E484: aot_gpr_31 = (0x0882E48Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 517u, 0x0882E48Cu, 0x08AE2228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 592u, 0x08AE2228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E48Cu) goto L_0882E48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E48C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5884,14 +7143,27 @@ L_0882E4FC: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x0882E50Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 523u, 0x0882E50Cu, 0x08AE2228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 592u, 0x08AE2228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E50Cu) goto L_0882E50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E50C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E518: @@ -5963,8 +7235,21 @@ L_0882E568: L_0882E570: aot_gpr_31 = (0x0882E578u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 534u, 0x0882E578u, 0x08AE20C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 576u, 0x08AE20C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E578u) goto L_0882E578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E578: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -6009,8 +7294,21 @@ L_0882E5C4: aot_gpr_4 = (aot_gpr_6 + aot_gpr_4); aot_gpr_31 = (0x0882E5D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 539u, 0x0882E5D4u, 0x08AE20C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 576u, 0x08AE20C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E5D4u) goto L_0882E5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E5D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); goto L_0882E5D8; @@ -6059,8 +7357,21 @@ L_0882E620: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x0882E630u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 545u, 0x0882E630u, 0x08AE20C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 576u, 0x08AE20C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E630u) goto L_0882E630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E630: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6077,8 +7388,21 @@ L_0882E638: aot_gpr_4 = (aot_gpr_4 + static_cast(29552)); aot_gpr_31 = (0x0882E658u); ctx.gpr[8] = (65280u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 547u, 0x0882E658u, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E658u) goto L_0882E658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E658: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6091,8 +7415,8 @@ L_0882E660: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E670: @@ -6121,8 +7445,21 @@ L_0882E6B4: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x0882E6C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 551u, 0x0882E6C0u, 0x08AE1F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 568u, 0x08AE1F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E6C0u) goto L_0882E6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E6C0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -6150,8 +7487,8 @@ L_0882E6EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E704: @@ -6166,8 +7503,21 @@ L_0882E704: L_0882E71C: aot_gpr_31 = (0x0882E724u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 555u, 0x0882E724u, 0x0898D9A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 584u, 0x0898D9A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E724u) goto L_0882E724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E724: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6183,8 +7533,21 @@ L_0882E72C: L_0882E734: aot_gpr_31 = (0x0882E73Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 558u, 0x0882E73Cu, 0x0898BD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 998u, 0x0898BD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E73Cu) goto L_0882E73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E73C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6212,8 +7575,21 @@ L_0882E758: L_0882E760: aot_gpr_31 = (0x0882E768u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 563u, 0x0882E768u, 0x0898D950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 577u, 0x0898D950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E768u) goto L_0882E768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E768: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6229,8 +7605,21 @@ L_0882E770: L_0882E778: aot_gpr_31 = (0x0882E780u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 566u, 0x0882E780u, 0x0898BCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 988u, 0x0898BCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E780u) goto L_0882E780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E780: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6256,8 +7645,21 @@ L_0882E798: L_0882E7A0: aot_gpr_31 = (0x0882E7A8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 570u, 0x0882E7A8u, 0x0898DA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 591u, 0x0898DA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E7A8u) goto L_0882E7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E7A8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6273,8 +7675,21 @@ L_0882E7B0: L_0882E7B8: aot_gpr_31 = (0x0882E7C0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 573u, 0x0882E7C0u, 0x0898BD7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1008u, 0x0898BD7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E7C0u) goto L_0882E7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E7C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6299,8 +7714,21 @@ L_0882E7D4: L_0882E7DC: aot_gpr_31 = (0x0882E7E4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 577u, 0x0882E7E4u, 0x0898DA58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 598u, 0x0898DA58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E7E4u) goto L_0882E7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E7E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6316,8 +7744,21 @@ L_0882E7EC: L_0882E7F4: aot_gpr_31 = (0x0882E7FCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 580u, 0x0882E7FCu, 0x0898BDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1018u, 0x0898BDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E7FCu) goto L_0882E7FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E7FC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6343,8 +7784,21 @@ L_0882E814: L_0882E81C: aot_gpr_31 = (0x0882E824u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 584u, 0x0882E824u, 0x0898C078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 15u, 0x0898C078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E824u) goto L_0882E824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E824: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6370,8 +7824,21 @@ L_0882E83C: L_0882E844: aot_gpr_31 = (0x0882E84Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 588u, 0x0882E84Cu, 0x0898C054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 11u, 0x0898C054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E84Cu) goto L_0882E84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E84C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6399,8 +7866,8 @@ L_0882E870: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E880: @@ -6449,8 +7916,21 @@ L_0882E8E0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882E8F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 596u, 0x0882E8F4u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882E8F4u) goto L_0882E8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882E8F4: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -6496,8 +7976,8 @@ L_0882E930: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E950: @@ -6525,87 +8005,87 @@ L_0882E964: goto L_0882E978; L_0882E978: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E980: aot_gpr_5 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(30), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E98C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(30), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E994: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(31), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E99C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(40), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E9A4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(41))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E9AC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(41), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E9B4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(32))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E9BC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E9C4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(30))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E9CC: ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(30))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E9D8: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882E9E0: @@ -6631,15 +8111,15 @@ L_0882EA04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882EA18: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(52), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882EA20: @@ -6660,8 +8140,8 @@ L_0882EA44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882EA54: @@ -6730,8 +8210,21 @@ L_0882EAB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x0882EAC4u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30064)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 633u, 0x0882EAC4u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EAC4u) goto L_0882EAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EAC4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_16 = (ctx.gpr[28] + static_cast(-30052)); @@ -6748,8 +8241,21 @@ L_0882EAD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x0882EAE0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 636u, 0x0882EAE0u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EAE0u) goto L_0882EAE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EAE0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6832,15 +8338,15 @@ L_0882EB60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882EB78: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(64), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882EB80: @@ -6870,8 +8376,21 @@ L_0882EBD8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0882EBE4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 652u, 0x0882EBE4u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EBE4u) goto L_0882EBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EBE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6907,8 +8426,21 @@ L_0882EC0C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(0)))))); aot_gpr_31 = (0x0882EC20u); ctx.gpr[22] = (ctx.gpr[19] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 657u, 0x0882EC20u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EC20u) goto L_0882EC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EC20: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -6954,8 +8486,21 @@ L_0882EC50: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x0882EC64u); ctx.gpr[21] = (ctx.gpr[19] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 663u, 0x0882EC64u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EC64u) goto L_0882EC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EC64: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -6987,8 +8532,21 @@ L_0882EC84: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882EC9Cu); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 667u, 0x0882EC9Cu, 0x08AC5DF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 520u, 0x08AC5DF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EC9Cu) goto L_0882EC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EC9C: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -7003,8 +8561,8 @@ L_0882EC9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882ECC4: @@ -7034,8 +8592,21 @@ L_0882ED1C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0882ED28u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 670u, 0x0882ED28u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882ED28u) goto L_0882ED28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882ED28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7071,8 +8642,21 @@ L_0882ED50: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(0)))))); aot_gpr_31 = (0x0882ED64u); ctx.gpr[22] = (ctx.gpr[19] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 675u, 0x0882ED64u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882ED64u) goto L_0882ED64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882ED64: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -7118,8 +8702,21 @@ L_0882ED94: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x0882EDA8u); ctx.gpr[21] = (ctx.gpr[19] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 681u, 0x0882EDA8u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EDA8u) goto L_0882EDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EDA8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -7151,8 +8748,21 @@ L_0882EDC8: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882EDE0u); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 685u, 0x0882EDE0u, 0x08AC5DF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 520u, 0x08AC5DF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EDE0u) goto L_0882EDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EDE0: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -7167,15 +8777,15 @@ L_0882EDE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882EE08: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(29), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882EE10: @@ -7189,8 +8799,21 @@ L_0882EE10: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(40), aot_run_words); } aot_gpr_31 = (0x0882EE44u); aot_gpr_4 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 688u, 0x0882EE44u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EE44u) goto L_0882EE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EE44: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7204,8 +8827,21 @@ L_0882EE50: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0882EE5Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 690u, 0x0882EE5Cu, 0x08AE1B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 506u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 506u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 506u, 0x08AE1B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EE5Cu) goto L_0882EE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EE5C: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_0882EE60; @@ -7286,8 +8922,21 @@ L_0882EEDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x0882EEF0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 700u, 0x0882EEF0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EEF0u) goto L_0882EEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EEF0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7331,8 +8980,21 @@ L_0882EF28: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0882EF3Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 706u, 0x0882EF3Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EF3Cu) goto L_0882EF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EF3C: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[21]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -7393,8 +9055,8 @@ L_0882EF94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882EFBC: @@ -7408,8 +9070,21 @@ L_0882EFBC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(40), aot_run_words); } aot_gpr_31 = (0x0882EFF0u); aot_gpr_4 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 715u, 0x0882EFF0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882EFF0u) goto L_0882EFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882EFF0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7423,8 +9098,21 @@ L_0882EFFC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0882F008u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 717u, 0x0882F008u, 0x08AE1B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 506u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 506u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 506u, 0x08AE1B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F008u) goto L_0882F008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F008: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_0882F00C; @@ -7505,8 +9193,21 @@ L_0882F088: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x0882F09Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 727u, 0x0882F09Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F09Cu) goto L_0882F09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F09C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7550,8 +9251,21 @@ L_0882F0D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0882F0E8u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 733u, 0x0882F0E8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F0E8u) goto L_0882F0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F0E8: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[21]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -7612,8 +9326,8 @@ L_0882F140: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882F168: @@ -7706,8 +9420,8 @@ L_0882F200: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882F210: @@ -7725,8 +9439,21 @@ L_0882F210: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0882F24Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 757u, 0x0882F24Cu, 0x08888058u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 7u, 0x08888058u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F24Cu) goto L_0882F24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F24C: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); @@ -7739,8 +9466,21 @@ L_0882F24C: } L_0882F260: aot_gpr_31 = (0x0882F268u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 759u, 0x0882F268u, 0x08ADB9DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 881u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 881u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 881u, 0x08ADB9DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F268u) goto L_0882F268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F268: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(31))); { const bool branch_taken = aot_gpr_5 != 0u; @@ -7802,12 +9542,38 @@ L_0882F2AC: goto L_0882EA18; L_0882F2C0: aot_gpr_31 = (0x0882F2C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 769u, 0x0882F2C8u, 0x08AD3204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 540u, 0x08AD3204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F2C8u) goto L_0882F2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F2C8: aot_gpr_31 = (0x0882F2D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 770u, 0x0882F2D0u, 0x08A11550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 171u, 0x08A11550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F2D0u) goto L_0882F2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F2D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); ctx.gpr[20] = (2237u << 16u); @@ -7853,8 +9619,21 @@ L_0882F30C: goto L_0882E9D8; L_0882F314: aot_gpr_31 = (0x0882F31Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 778u, 0x0882F31Cu, 0x08A06D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 704u, 0x08A06D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F31Cu) goto L_0882F31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F31C: ctx.gpr[20] = (2236u << 16u); ctx.gpr[21] = (ctx.gpr[20] + static_cast(29552)); @@ -7865,16 +9644,55 @@ L_0882F31C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x0882F340u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 779u, 0x0882F340u, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F340u) goto L_0882F340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F340: aot_gpr_31 = (0x0882F348u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 780u, 0x0882F348u, 0x08A06FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 723u, 0x08A06FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F348u) goto L_0882F348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F348: aot_gpr_31 = (0x0882F350u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 781u, 0x0882F350u, 0x08A06D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 704u, 0x08A06D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F350u) goto L_0882F350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F350: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 1u); @@ -7883,16 +9701,55 @@ L_0882F350: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x0882F36Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 782u, 0x0882F36Cu, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F36Cu) goto L_0882F36C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F36C: aot_gpr_31 = (0x0882F374u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 783u, 0x0882F374u, 0x08A06FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 723u, 0x08A06FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F374u) goto L_0882F374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F374: aot_gpr_31 = (0x0882F37Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 784u, 0x0882F37Cu, 0x08A06CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 691u, 0x08A06CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F37Cu) goto L_0882F37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F37C: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 3u); @@ -7900,12 +9757,38 @@ L_0882F37C: ctx.gpr[7] = (0u | 272u); aot_gpr_31 = (0x0882F394u); ctx.gpr[8] = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 785u, 0x0882F394u, 0x08A069DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 664u, 0x08A069DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F394u) goto L_0882F394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F394: aot_gpr_31 = (0x0882F39Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 786u, 0x0882F39Cu, 0x08A06D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 704u, 0x08A06D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F39Cu) goto L_0882F39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F39C: aot_gpr_4 = (17264u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7993,8 +9876,21 @@ L_0882F39C: aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x0882F4F4u); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(29552), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 787u, 0x0882F4F4u, 0x08A06FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 723u, 0x08A06FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F4F4u) goto L_0882F4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F4F4: aot_gpr_31 = (0x0882F4FCu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8033,8 +9929,21 @@ L_0882F530: L_0882F538: aot_gpr_31 = (0x0882F540u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 794u, 0x0882F540u, 0x08888008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 2u, 0x08888008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F540u) goto L_0882F540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F540: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -8053,8 +9962,21 @@ L_0882F554: L_0882F558: aot_gpr_31 = (0x0882F560u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 798u, 0x0882F560u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F560u) goto L_0882F560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F560: aot_gpr_4 = (0u | 9u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -8081,8 +10003,21 @@ L_0882F580: goto L_0882F584; L_0882F584: aot_gpr_31 = (0x0882F58Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 803u, 0x0882F58Cu, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F58Cu) goto L_0882F58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F58C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -8109,35 +10044,100 @@ L_0882F5AC: L_0882F5B0: aot_gpr_31 = (0x0882F5B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 808u, 0x0882F5B8u, 0x089C6F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 680u, 0x089C6F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F5B8u) goto L_0882F5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F5B8: ctx.gpr[17] = (ctx.gpr[28] + static_cast(7768)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 170u); aot_gpr_31 = (0x0882F5CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 809u, 0x0882F5CCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F5CCu) goto L_0882F5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F5CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882F5D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 810u, 0x0882F5D8u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F5D8u) goto L_0882F5D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F5D8: aot_gpr_31 = (0x0882F5E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 811u, 0x0882F5E0u, 0x08A05EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 495u, 0x08A05EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F5E0u) goto L_0882F5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F5E0: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7702))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(80), aot_gpr_5); aot_gpr_31 = (0x0882F5F4u); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 812u, 0x0882F5F4u, 0x0880A6ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 556u, 0x0880A6ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F5F4u) goto L_0882F5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F5F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8174,8 +10174,21 @@ L_0882F634: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_31 = (0x0882F640u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30064)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 818u, 0x0882F640u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F640u) goto L_0882F640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F640: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8187,8 +10200,21 @@ L_0882F648: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_31 = (0x0882F654u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-30052)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 820u, 0x0882F654u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F654u) goto L_0882F654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F654: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8213,8 +10239,21 @@ L_0882F67C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882F688u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 824u, 0x0882F688u, 0x08AE2634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 641u, 0x08AE2634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F688u) goto L_0882F688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F688: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8238,8 +10277,21 @@ L_0882F69C: L_0882F6A4: aot_gpr_31 = (0x0882F6ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 828u, 0x0882F6ACu, 0x08AE25E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 638u, 0x08AE25E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F6ACu) goto L_0882F6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F6AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882F6B8u); @@ -8265,8 +10317,8 @@ L_0882F6C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882F6E8: @@ -8288,8 +10340,21 @@ L_0882F710: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882F720u); aot_gpr_5 = (aot_gpr_5 + static_cast(18184)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 834u, 0x0882F720u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F720u) goto L_0882F720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F720: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8340,8 +10405,21 @@ L_0882F77C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882F788u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 841u, 0x0882F788u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F788u) goto L_0882F788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F788: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8376,8 +10454,21 @@ L_0882F7AC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x0882F7C0u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 846u, 0x0882F7C0u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F7C0u) goto L_0882F7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F7C0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8423,8 +10514,21 @@ L_0882F7F0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x0882F804u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 852u, 0x0882F804u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F804u) goto L_0882F804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F804: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8453,8 +10557,21 @@ L_0882F824: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882F830u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 856u, 0x0882F830u, 0x08AC6068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 554u, 0x08AC6068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F830u) goto L_0882F830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F830: ctx.gpr[17] = (ctx.gpr[28] + static_cast(-30012)); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); @@ -8516,8 +10633,21 @@ L_0882F89C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882F8ACu); aot_gpr_5 = (aot_gpr_5 + static_cast(18204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 866u, 0x0882F8ACu, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F8ACu) goto L_0882F8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F8AC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8552,8 +10682,21 @@ L_0882F8F4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882F900u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 871u, 0x0882F900u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F900u) goto L_0882F900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F900: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8588,8 +10731,21 @@ L_0882F924: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x0882F938u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 876u, 0x0882F938u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F938u) goto L_0882F938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F938: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8635,8 +10791,21 @@ L_0882F968: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x0882F97Cu); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 882u, 0x0882F97Cu, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F97Cu) goto L_0882F97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F97C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8665,8 +10834,21 @@ L_0882F99C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882F9A8u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 886u, 0x0882F9A8u, 0x08AC6068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 554u, 0x08AC6068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882F9A8u) goto L_0882F9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882F9A8: ctx.gpr[17] = (ctx.gpr[28] + static_cast(-30012)); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); @@ -8728,8 +10910,21 @@ L_0882FA14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882FA24u); aot_gpr_5 = (aot_gpr_5 + static_cast(18224)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 896u, 0x0882FA24u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FA24u) goto L_0882FA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FA24: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -8763,8 +10958,21 @@ L_0882FA6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882FA78u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 901u, 0x0882FA78u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FA78u) goto L_0882FA78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FA78: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8799,8 +11007,21 @@ L_0882FA9C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x0882FAB0u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 906u, 0x0882FAB0u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FAB0u) goto L_0882FAB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FAB0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8846,8 +11067,21 @@ L_0882FAE0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x0882FAF4u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 912u, 0x0882FAF4u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FAF4u) goto L_0882FAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FAF4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8876,8 +11110,21 @@ L_0882FB14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882FB20u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 916u, 0x0882FB20u, 0x08AC6068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 554u, 0x08AC6068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FB20u) goto L_0882FB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FB20: ctx.gpr[17] = (ctx.gpr[28] + static_cast(-30012)); aot_gpr_4 = (aot_gpr_29 + static_cast(112)); @@ -9005,8 +11252,21 @@ L_0882FC14: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882FC30u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 935u, 0x0882FC30u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FC30u) goto L_0882FC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FC30: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -9017,13 +11277,39 @@ L_0882FC38: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(28), static_cast(ctx.gpr[18])); aot_gpr_31 = (0x0882FC44u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 937u, 0x0882FC44u, 0x08AE25E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 638u, 0x08AE25E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FC44u) goto L_0882FC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FC44: aot_gpr_31 = (0x0882FC4Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 938u, 0x0882FC4Cu, 0x08AE2438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 623u, 0x08AE2438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FC4Cu) goto L_0882FC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FC4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9061,8 +11347,8 @@ L_0882FC84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0882FCA0: @@ -9096,8 +11382,21 @@ L_0882FD04: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882FD10u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 946u, 0x0882FD10u, 0x08AE23A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 612u, 0x08AE23A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FD10u) goto L_0882FD10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FD10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9132,8 +11431,21 @@ L_0882FD58: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0882FD64u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 951u, 0x0882FD64u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FD64u) goto L_0882FD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FD64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9169,8 +11481,21 @@ L_0882FD8C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x0882FDA0u); ctx.gpr[20] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 956u, 0x0882FDA0u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FDA0u) goto L_0882FDA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FDA0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -9224,8 +11549,21 @@ L_0882FDE4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x0882FE00u); ctx.gpr[18] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 962u, 0x0882FE00u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FE00u) goto L_0882FE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FE00: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -9258,8 +11596,21 @@ L_0882FE24: L_0882FE28: aot_gpr_31 = (0x0882FE30u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 967u, 0x0882FE30u, 0x08AC6068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 554u, 0x08AC6068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FE30u) goto L_0882FE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FE30: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -9274,8 +11625,21 @@ L_0882FE38: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x0882FE50u); ctx.gpr[20] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 969u, 0x0882FE50u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FE50u) goto L_0882FE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FE50: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -9305,8 +11669,21 @@ L_0882FE70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0882FE7Cu); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 973u, 0x0882FE7Cu, 0x08AC6068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 554u, 0x08AC6068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FE7Cu) goto L_0882FE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FE7C: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); @@ -9421,8 +11798,21 @@ L_0882FF54: aot_gpr_5 = (ctx.gpr[28] + static_cast(-30360)); aot_gpr_31 = (0x0882FF60u); aot_gpr_6 = (ctx.gpr[28] + static_cast(-30352)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0010->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0010_entry, 993u, 0x0882FF60u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0882FF60u) goto L_0882FF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0882FF60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); { const bool branch_taken = aot_gpr_4 == 0u; diff --git a/profiles/vcs/generated/generated_unit_0011.cpp b/profiles/vcs/generated/generated_unit_0011.cpp index e43f56e..4976a0b 100644 --- a/profiles/vcs/generated/generated_unit_0011.cpp +++ b/profiles/vcs/generated/generated_unit_0011.cpp @@ -32,6 +32,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0011[64] = { 455u, 472u, 496u, 504u, 522u, 538u, 552u, 573u, 579u, 596u, 613u, 627u, 640u, 649u, 660u, 672u, 687u, 701u, 713u, 725u, 735u, 745u, 750u, 761u, 776u, 794u, 803u, 812u, 822u, 829u, 837u, 854u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0011[4095] = { + 1u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 3u, 0u, 4u, 5u, 0u, 6u, 0u, 7u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 0u, 0u, 0u, 0u, 0u, 10u, 0u, + 0u, 0u, 0u, 11u, 0u, 0u, 12u, 0u, 13u, 14u, 0u, 15u, 0u, 16u, 0u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 20u, 0u, + 21u, 22u, 0u, 23u, 0u, 24u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 27u, + 0u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 30u, 0u, 31u, + 0u, 0u, 0u, 0u, 32u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 37u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 0u, 0u, 43u, 0u, + 0u, 0u, 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, + 48u, 0u, 49u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 0u, 52u, 0u, 0u, 53u, 54u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 56u, 57u, 0u, 58u, + 0u, 0u, 0u, 0u, 0u, 59u, 0u, 60u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 0u, 0u, 64u, 0u, 0u, 0u, + 0u, 0u, 65u, 0u, 66u, 0u, 67u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 72u, 0u, 0u, 73u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 74u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 76u, 0u, 0u, 77u, 0u, 0u, 0u, 0u, 78u, 0u, 79u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 0u, 0u, 84u, 0u, 0u, 0u, 85u, 0u, + 0u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 89u, 0u, 90u, 91u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, 93u, 0u, 0u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 0u, 95u, 0u, 0u, 96u, 0u, 97u, 98u, 0u, 99u, 0u, + 100u, 0u, 0u, 0u, 0u, 101u, 0u, 102u, 0u, 103u, 0u, 104u, 0u, 105u, 0u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 107u, 0u, 108u, 0u, 109u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 110u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 112u, 0u, 113u, 0u, 0u, 114u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 116u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, + 118u, 0u, 119u, 0u, 120u, 0u, 121u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 0u, 123u, 0u, 0u, 0u, 0u, 0u, 0u, 124u, + 0u, 125u, 0u, 126u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 131u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 135u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 136u, 0u, 137u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 138u, 0u, 139u, 0u, 140u, 0u, 141u, 0u, 142u, 0u, 143u, 0u, + 0u, 0u, 144u, 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 0u, 147u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 148u, 0u, 149u, 0u, 150u, 0u, 0u, 0u, 0u, 151u, 0u, 152u, 0u, 153u, 0u, 0u, 0u, 0u, 0u, 154u, 0u, 0u, 155u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 156u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 158u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 159u, 0u, 160u, 0u, 0u, 0u, 161u, 0u, 162u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 164u, 0u, 165u, 0u, 0u, 0u, 166u, 0u, 0u, 0u, 167u, 0u, 168u, + 0u, 169u, 0u, 170u, 0u, 171u, 0u, 172u, 0u, 173u, 0u, 174u, 0u, 175u, 0u, 176u, 0u, 177u, 0u, 178u, 0u, 179u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 181u, 0u, 0u, 182u, 0u, 183u, 0u, 184u, 0u, 0u, 0u, 185u, 0u, 0u, 0u, 186u, 0u, 187u, 0u, 188u, 0u, 0u, 0u, 189u, 0u, 190u, + 0u, 191u, 0u, 192u, 0u, 193u, 0u, 194u, 0u, 195u, 0u, 196u, 0u, 0u, 197u, 0u, 0u, 198u, 0u, 0u, 0u, 0u, 199u, 200u, 0u, 201u, 0u, 202u, 0u, 0u, 0u, 0u, + 203u, 0u, 0u, 0u, 204u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 208u, 0u, 209u, 0u, 210u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 211u, 0u, 212u, 0u, 213u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 219u, + 220u, 221u, 0u, 222u, 0u, 223u, 0u, 224u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 225u, 0u, 0u, 226u, 0u, 0u, 227u, 0u, 228u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 229u, 0u, 0u, 230u, 0u, 0u, 231u, 0u, 0u, 232u, 0u, 233u, 0u, 234u, 0u, 0u, 235u, 0u, 236u, 0u, 237u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 239u, 0u, 0u, 240u, 0u, 0u, 0u, 0u, 241u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 243u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 245u, 0u, 0u, 246u, 0u, 0u, 0u, 247u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 249u, 0u, 0u, 0u, 250u, 0u, 0u, 0u, 251u, 0u, 252u, 0u, 253u, 0u, + 254u, 0u, 0u, 0u, 255u, 0u, 0u, 256u, 0u, 0u, 0u, 257u, 0u, 0u, 258u, 0u, 0u, 0u, 0u, 259u, 0u, 260u, 0u, 0u, 261u, 0u, 262u, 0u, 263u, 0u, 264u, 0u, + 0u, 0u, 265u, 0u, 0u, 0u, 266u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 268u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 0u, 0u, 0u, 0u, 273u, 0u, 0u, 274u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 277u, 0u, 0u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 0u, 279u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, 0u, 0u, 281u, 0u, 0u, 0u, 282u, 283u, 0u, + 0u, 0u, 0u, 284u, 0u, 0u, 0u, 0u, 285u, 0u, 0u, 0u, 0u, 286u, 0u, 0u, 287u, 0u, 0u, 288u, 0u, 0u, 0u, 289u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 291u, 0u, 292u, 0u, 293u, 0u, 0u, 0u, 294u, 0u, 0u, 295u, 296u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 297u, 0u, 0u, 0u, 0u, 0u, 0u, 298u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 300u, 0u, 301u, 0u, 0u, 0u, 0u, 302u, 0u, 303u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 0u, 0u, 306u, 0u, 0u, + 0u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 309u, 0u, 0u, 0u, 0u, 0u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 311u, + 0u, 0u, 0u, 0u, 312u, 0u, 0u, 313u, 0u, 0u, 0u, 314u, 0u, 315u, 0u, 316u, 0u, 0u, 317u, 0u, 318u, 0u, 0u, 0u, 319u, 320u, 0u, 0u, 0u, 321u, 0u, 0u, + 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 323u, 0u, 0u, 0u, 0u, 324u, 0u, 0u, 325u, 0u, 326u, 0u, 327u, 0u, + 0u, 328u, 0u, 0u, 0u, 0u, 0u, 0u, 329u, 330u, 0u, 0u, 0u, 331u, 0u, 332u, 0u, 0u, 333u, 0u, 334u, 0u, 0u, 0u, 335u, 0u, 336u, 0u, 0u, 337u, 0u, 0u, + 338u, 339u, 0u, 0u, 0u, 340u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 342u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 344u, 0u, 345u, 0u, 346u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, 348u, 0u, 349u, 0u, 350u, 0u, 351u, 0u, 352u, 0u, 353u, + 0u, 0u, 0u, 0u, 354u, 0u, 355u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, 358u, 359u, 0u, 360u, 0u, 0u, 361u, 0u, 0u, 0u, 362u, 0u, 363u, + 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 365u, 0u, 0u, 366u, 0u, 0u, 0u, 367u, 0u, 0u, 368u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 371u, + 0u, 372u, 0u, 373u, 0u, 374u, 0u, 0u, 0u, 375u, 0u, 376u, 0u, 377u, 0u, 0u, 0u, 378u, 0u, 379u, 0u, 0u, 0u, 380u, 0u, 0u, 0u, 381u, 0u, 382u, 0u, 0u, + 383u, 0u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 386u, 0u, 0u, 387u, 0u, 0u, + 388u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 0u, 0u, 390u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 392u, 0u, 393u, 394u, 0u, 0u, 0u, 0u, 0u, 395u, 0u, + 0u, 0u, 396u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 397u, 0u, 398u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 399u, 0u, 0u, 400u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 401u, 0u, 0u, 0u, 0u, 402u, 0u, 0u, 0u, 0u, 403u, 0u, 404u, 405u, 0u, 406u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 408u, 0u, 409u, 410u, 0u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 412u, 0u, 413u, 0u, 0u, 0u, 0u, 414u, 415u, 0u, 0u, 416u, 0u, 417u, 0u, 0u, 418u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, + 0u, 0u, 421u, 0u, 422u, 0u, 0u, 0u, 423u, 0u, 0u, 0u, 424u, 0u, 0u, 425u, 0u, 0u, 0u, 426u, 0u, 427u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, + 430u, 0u, 0u, 0u, 0u, 0u, 431u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 434u, 0u, 435u, 0u, 0u, 0u, 436u, 0u, 0u, 437u, 0u, + 438u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 440u, 0u, 441u, 0u, 0u, 0u, 0u, 0u, + 0u, 442u, 0u, 443u, 0u, 444u, 0u, 0u, 445u, 0u, 0u, 446u, 0u, 0u, 447u, 0u, 448u, 0u, 0u, 449u, 0u, 450u, 0u, 451u, 0u, 452u, 0u, 453u, 454u, 0u, 0u, 0u, + 455u, 0u, 456u, 0u, 457u, 0u, 0u, 0u, 0u, 458u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 459u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, + 462u, 0u, 463u, 464u, 0u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 466u, 0u, 467u, 0u, 468u, 469u, 0u, 0u, 470u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, + 472u, 0u, 473u, 474u, 0u, 0u, 475u, 0u, 0u, 0u, 476u, 0u, 477u, 0u, 0u, 478u, 0u, 0u, 479u, 480u, 0u, 481u, 0u, 0u, 482u, 0u, 0u, 483u, 0u, 484u, 485u, 0u, + 486u, 487u, 0u, 0u, 488u, 489u, 0u, 0u, 0u, 490u, 0u, 491u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, 494u, 495u, + 0u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 0u, 498u, 0u, 0u, 499u, 0u, 0u, 500u, 0u, + 501u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 503u, 0u, + 504u, 0u, 505u, 0u, 0u, 0u, 506u, 0u, 507u, 508u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 0u, 0u, 0u, 0u, 0u, 510u, 0u, 0u, 511u, 0u, 0u, 0u, 512u, 0u, 513u, + 514u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 516u, 0u, 0u, 517u, 0u, 0u, 0u, 518u, 0u, 519u, 520u, 0u, 0u, 0u, 0u, 0u, 521u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, 0u, 523u, 0u, 0u, 0u, 524u, 0u, 525u, 526u, 0u, 0u, 0u, 0u, 0u, 527u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 528u, 0u, + 0u, 529u, 0u, 0u, 530u, 0u, 0u, 531u, 0u, 0u, 0u, 532u, 0u, 533u, 534u, 0u, 0u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 0u, 537u, + 0u, 0u, 0u, 538u, 0u, 539u, 540u, 0u, 0u, 0u, 0u, 0u, 541u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 542u, 0u, 0u, 543u, 0u, 544u, 0u, 0u, 0u, 545u, 0u, 0u, + 546u, 0u, 547u, 548u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, 0u, 0u, 551u, + 0u, 0u, 552u, 0u, 553u, 0u, 554u, 0u, 555u, 0u, 0u, 556u, 0u, 557u, 0u, 558u, 0u, 559u, 0u, 560u, 0u, 561u, 0u, 562u, 0u, 563u, 564u, 0u, 0u, 565u, 0u, 566u, + 0u, 0u, 0u, 567u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 568u, 0u, 0u, 0u, 0u, 569u, 0u, 0u, 0u, 0u, 0u, 0u, 570u, 0u, 571u, 0u, 0u, 572u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 573u, 0u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, + 0u, 0u, 0u, 579u, 0u, 0u, 0u, 580u, 0u, 0u, 0u, 581u, 0u, 0u, 0u, 582u, 583u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 584u, 0u, 0u, 0u, 585u, 0u, 0u, + 0u, 0u, 586u, 0u, 0u, 587u, 0u, 0u, 0u, 588u, 0u, 0u, 589u, 0u, 590u, 591u, 592u, 0u, 0u, 0u, 0u, 593u, 0u, 0u, 0u, 0u, 594u, 0u, 595u, 0u, 0u, 0u, + 596u, 0u, 0u, 597u, 0u, 598u, 0u, 0u, 0u, 599u, 0u, 0u, 0u, 600u, 0u, 0u, 0u, 601u, 0u, 0u, 0u, 602u, 0u, 0u, 0u, 603u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 604u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 606u, 0u, 607u, 0u, 608u, 0u, 609u, 0u, 610u, 0u, 611u, 0u, 0u, 612u, 0u, + 613u, 0u, 0u, 0u, 614u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 616u, 617u, 618u, 0u, 619u, 0u, 620u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 623u, 0u, 0u, 0u, 624u, 625u, 0u, 626u, 0u, + 0u, 627u, 0u, 0u, 628u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 631u, + 0u, 0u, 0u, 0u, 632u, 0u, 633u, 0u, 0u, 634u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 635u, 0u, 0u, 0u, 636u, 0u, 0u, 0u, 0u, 637u, 0u, 638u, 0u, 639u, 0u, + 640u, 0u, 0u, 0u, 0u, 0u, 641u, 642u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 643u, 0u, 0u, 0u, 0u, 644u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 646u, 0u, 0u, 0u, 647u, 0u, 0u, 0u, 0u, 0u, 0u, 648u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 649u, 0u, 0u, 0u, 0u, 650u, 651u, 0u, 0u, 0u, 0u, 652u, 0u, 653u, 0u, 0u, 0u, 654u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 655u, 0u, 0u, 0u, 656u, 0u, 0u, 0u, 0u, 657u, 0u, 0u, 658u, 659u, 0u, 0u, 0u, + 0u, 660u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 661u, 0u, 0u, 662u, 0u, 663u, 0u, 0u, 0u, 0u, 0u, 0u, 664u, 0u, 0u, 0u, 665u, 0u, 666u, 667u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 668u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 669u, 0u, 0u, 0u, 0u, 670u, 0u, 671u, + 0u, 0u, 0u, 672u, 0u, 0u, 673u, 0u, 674u, 0u, 675u, 0u, 0u, 0u, 0u, 0u, 676u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 677u, 0u, 0u, 678u, 0u, 679u, 0u, + 0u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 682u, 0u, 0u, 683u, 0u, 684u, 0u, 685u, 0u, 0u, 0u, 686u, 0u, + 687u, 688u, 0u, 0u, 0u, 0u, 0u, 0u, 689u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 690u, 0u, 0u, 0u, 0u, 691u, + 0u, 692u, 0u, 0u, 0u, 693u, 0u, 0u, 694u, 0u, 695u, 0u, 0u, 0u, 0u, 696u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 697u, 0u, 0u, 698u, 0u, 699u, 0u, 700u, + 0u, 0u, 0u, 701u, 0u, 702u, 703u, 0u, 0u, 0u, 0u, 0u, 0u, 704u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 705u, + 0u, 0u, 0u, 0u, 706u, 0u, 707u, 0u, 0u, 0u, 708u, 0u, 0u, 709u, 0u, 710u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 712u, + 0u, 0u, 0u, 713u, 0u, 0u, 0u, 0u, 0u, 714u, 0u, 715u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 716u, 0u, 0u, 0u, 717u, 0u, 0u, 0u, 0u, 0u, 0u, 718u, + 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 720u, 0u, 0u, 0u, 721u, 0u, 0u, 0u, 0u, 0u, 0u, 722u, 0u, 723u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 724u, + 725u, 0u, 0u, 0u, 0u, 0u, 726u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 728u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 730u, 0u, 0u, 0u, 0u, 731u, 0u, 732u, 0u, 733u, 0u, 0u, 0u, 0u, 734u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 736u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 737u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 738u, 0u, 739u, 740u, 0u, 0u, 0u, 0u, 0u, 741u, 0u, 742u, 0u, 0u, 0u, 0u, 743u, 0u, 0u, 0u, 0u, 0u, 0u, 744u, + 0u, 0u, 0u, 0u, 0u, 745u, 0u, 746u, 0u, 0u, 0u, 0u, 0u, 747u, 0u, 748u, 0u, 0u, 0u, 0u, 0u, 749u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 750u, 0u, 0u, 0u, 0u, 0u, 751u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 752u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 753u, 0u, 0u, 754u, 0u, 0u, 0u, 0u, 0u, 0u, 755u, 0u, 0u, 0u, 756u, 0u, 757u, 0u, 758u, 0u, 0u, 0u, 759u, 0u, 0u, 0u, 0u, 0u, 760u, 0u, 0u, + 0u, 761u, 0u, 0u, 0u, 0u, 762u, 0u, 0u, 763u, 0u, 0u, 764u, 0u, 0u, 0u, 0u, 765u, 0u, 766u, 0u, 0u, 0u, 767u, 0u, 768u, 0u, 769u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 772u, 0u, 773u, 0u, 0u, 0u, 774u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 775u, 0u, + 0u, 0u, 0u, 0u, 776u, 777u, 0u, 0u, 778u, 779u, 0u, 0u, 0u, 0u, 0u, 0u, 780u, 0u, 0u, 0u, 0u, 781u, 782u, 0u, 0u, 783u, 0u, 784u, 0u, 0u, 785u, 0u, + 0u, 786u, 0u, 0u, 787u, 0u, 0u, 0u, 0u, 0u, 0u, 788u, 0u, 789u, 0u, 790u, 0u, 0u, 0u, 791u, 0u, 0u, 792u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 793u, 0u, + 0u, 0u, 0u, 794u, 0u, 0u, 0u, 0u, 0u, 0u, 795u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 796u, 0u, 797u, 0u, 798u, 0u, 799u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 800u, 0u, 0u, 0u, 0u, 0u, 0u, 801u, 0u, 802u, + 0u, 0u, 0u, 0u, 803u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 804u, 0u, 0u, 0u, 805u, 0u, 0u, 0u, 0u, 0u, 806u, 807u, 0u, + 0u, 0u, 808u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 809u, 0u, 0u, 0u, 810u, 0u, 0u, 0u, 0u, 0u, 0u, 811u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 812u, 0u, 0u, 0u, 813u, 814u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 815u, 816u, 0u, 0u, 0u, 817u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 818u, 0u, 0u, 819u, 0u, 0u, 0u, 0u, 820u, 0u, 0u, 0u, 0u, 821u, 0u, 0u, + 0u, 0u, 822u, 0u, 0u, 0u, 0u, 823u, 0u, 0u, 0u, 0u, 0u, 824u, 0u, 0u, 0u, 0u, 825u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 826u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 827u, 0u, 0u, 0u, 0u, 0u, 828u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 829u, 0u, 830u, 0u, 831u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 832u, 0u, 0u, 833u, 0u, 0u, 0u, 0u, 834u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 835u, 0u, 0u, 836u, 0u, 0u, 0u, + 0u, 837u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 838u, 0u, 0u, 839u, 0u, 0u, 0u, 840u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 841u, 0u, 0u, 842u, 0u, 0u, 0u, 843u, + 0u, 0u, 0u, 844u, 0u, 845u, 0u, 846u, 0u, 847u, 0u, 0u, 0u, 848u, 0u, 0u, 849u, 0u, 0u, 0u, 850u, 0u, 0u, 851u, 0u, 0u, 0u, 0u, 852u, 0u, 0u, 853u, + 0u, 0u, 0u, 854u, 0u, 0u, 0u, 855u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 856u, 0u, 857u, 0u, 858u, 0u, 0u, 0u, 859u, 0u, 860u, 0u, 861u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 862u, 0u, 0u, 0u, 863u, 0u, 0u, 0u, 864u, 0u, 0u, 0u, 0u, 865u, 0u, 0u, 0u, 0u, 0u, 866u, 0u, 867u, +}; + void recomp_unit_0011_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,31,6,16 fprs=12,13,20,0 gpr_occ=4221 fpr_occ=641 gpr_total=5543 fpr_total=876 @@ -58,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08830000u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0011[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0011[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0011[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08830000; @@ -945,6 +1069,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08830000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -964,8 +1112,21 @@ L_08830000: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08830014u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 2u, 0x08830014u, 0x0882ECC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 668u, 0x0882ECC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08830014u) goto L_08830014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08830014: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); if (ctx.gpr[18] == 0u) { @@ -1024,8 +1185,21 @@ L_08830078: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0883008Cu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 11u, 0x0883008Cu, 0x0882EB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 650u, 0x0882EB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883008Cu) goto L_0883008C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883008C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); if (aot_gpr_4 == 0u) { @@ -1072,8 +1246,21 @@ L_088300D8: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088300ECu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 19u, 0x088300ECu, 0x0882ECC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 668u, 0x0882ECC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088300ECu) goto L_088300EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088300EC: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); if (ctx.gpr[18] == 0u) { @@ -1103,8 +1290,21 @@ L_0883010C: L_08830114: aot_gpr_31 = (0x0883011Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 25u, 0x0883011Cu, 0x0882E98Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 606u, 0x0882E98Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883011Cu) goto L_0883011C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883011C: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(124), aot_run_words); @@ -1121,8 +1321,8 @@ L_0883011C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883014C: @@ -1138,16 +1338,29 @@ L_0883014C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0883017Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-22436)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 27u, 0x0883017Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883017Cu) goto L_0883017C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883017C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830190: @@ -1161,8 +1374,21 @@ L_08830190: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088301B8u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(332)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 29u, 0x088301B8u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088301B8u) goto L_088301B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088301B8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(148), 0u); @@ -1179,15 +1405,15 @@ L_088301B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088301F4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088301FC: @@ -1201,8 +1427,8 @@ L_08830210: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883021C: @@ -1212,15 +1438,15 @@ L_0883021C: { const float fs = ctx.fpr[14]; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_0 = std::bit_cast(0x7FC00000u); else aot_fpr_0 = fs * ft; } aot_fpr_0 = aot_fpr_12 - aot_fpr_0; jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830238: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830240: @@ -1243,8 +1469,8 @@ L_08830258: } L_08830260: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830268: @@ -1290,8 +1516,8 @@ L_08830268: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830288: @@ -1347,8 +1573,8 @@ L_08830288: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088302B0: @@ -1374,8 +1600,8 @@ L_088302B0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088302CC: @@ -1394,8 +1620,8 @@ L_088302CC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088302E0: @@ -1423,8 +1649,8 @@ L_088302E0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088302F8: @@ -1452,8 +1678,8 @@ L_088302F8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830310: @@ -1474,8 +1700,8 @@ L_08830310: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883032C: @@ -1496,8 +1722,8 @@ L_0883032C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830348: @@ -1519,8 +1745,8 @@ L_08830348: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830368: @@ -1543,8 +1769,8 @@ L_08830380: } L_08830388: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830390: @@ -1555,8 +1781,21 @@ L_08830390: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088303ACu); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 51u, 0x088303ACu, 0x089452F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 188u, 0x089452F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088303ACu) goto L_088303AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088303AC: aot_gpr_4 = (ctx.gpr[2] & 3u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -1587,8 +1826,8 @@ L_088303C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088303E0: @@ -1606,8 +1845,8 @@ L_088303F0: L_088303F4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088303FC: @@ -1630,8 +1869,8 @@ L_08830414: } L_0883041C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830424: @@ -1656,8 +1895,8 @@ L_08830440: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830460: @@ -1676,8 +1915,8 @@ L_08830460: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830470: @@ -1702,8 +1941,8 @@ L_08830488: } L_08830490: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830498: @@ -1717,8 +1956,8 @@ L_08830498: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088304BC: @@ -1732,8 +1971,8 @@ L_088304BC: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088304E0: @@ -1748,8 +1987,8 @@ L_088304E0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830508: @@ -1765,22 +2004,22 @@ L_08830508: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<64u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830534: jump_target = aot_gpr_31; { const float fs = aot_fpr_12; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_0 = std::bit_cast(0x7FC00000u); else aot_fpr_0 = fs * ft; } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883053C: aot_fpr_0 = std::sqrt(aot_fpr_12); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830548: @@ -1794,8 +2033,8 @@ L_08830548: aot_fpr_12 = std::bit_cast(aot_gpr_4); { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830574: @@ -1809,23 +2048,23 @@ L_08830574: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088305A0: aot_fpr_0 = std::bit_cast(ctx.fpu_float_to_word_ct<2u>(aot_fpr_12)); aot_fpr_0 = static_cast(static_cast(std::bit_cast(aot_fpr_0))); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088305B0: aot_fpr_0 = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088305BC: @@ -1838,8 +2077,8 @@ L_088305BC: goto L_088305D0; L_088305D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088305D8: @@ -1847,8 +2086,8 @@ L_088305D8: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088305EC: @@ -1860,8 +2099,8 @@ L_088305EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883060C: @@ -1886,8 +2125,8 @@ L_0883060C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830634: @@ -1905,8 +2144,8 @@ L_08830634: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830650: @@ -1923,8 +2162,8 @@ L_08830650: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830668: @@ -1943,8 +2182,8 @@ L_08830668: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830678: @@ -1966,8 +2205,8 @@ L_08830678: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830694: @@ -1978,8 +2217,8 @@ L_08830694: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088306B0: @@ -2010,8 +2249,21 @@ L_088306DC: L_088306E8: aot_gpr_31 = (0x088306F0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 90u, 0x088306F0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088306F0u) goto L_088306F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088306F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); goto L_088306F4; @@ -2024,8 +2276,21 @@ L_088306F4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08830714u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 92u, 0x08830714u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08830714u) goto L_08830714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08830714: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2036,8 +2301,8 @@ L_08830714: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883072C: @@ -2072,8 +2337,21 @@ L_08830758: goto L_08830764; L_08830764: aot_gpr_31 = (0x0883076Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 97u, 0x0883076Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883076Cu) goto L_0883076C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883076C: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08830770; @@ -2098,36 +2376,36 @@ L_08830780: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830794: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883079C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088307A4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088307AC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088307B4: @@ -2137,28 +2415,41 @@ L_088307B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088307CCu); ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 106u, 0x088307CCu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088307CCu) goto L_088307CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088307CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088307D8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088307E0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088307E8: @@ -2188,8 +2479,21 @@ L_0883081C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0883082Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[14])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 112u, 0x0883082Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883082Cu) goto L_0883082C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883082C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2201,8 +2505,8 @@ L_08830834: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830840: @@ -2223,8 +2527,8 @@ L_08830850: goto L_08830860; L_08830860: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830868: @@ -2234,29 +2538,29 @@ L_08830868: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830880: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830888: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830890: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830898: @@ -2298,15 +2602,15 @@ L_088308E0: goto L_088308FC; L_088308FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830904: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883090C: @@ -2315,8 +2619,8 @@ L_0883090C: ctx.gpr[2] = (aot_gpr_4 ^ 6u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830920: @@ -2325,8 +2629,8 @@ L_08830920: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830934: @@ -2334,8 +2638,8 @@ L_08830934: ctx.gpr[2] = (aot_gpr_4 & 496u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830944: @@ -2348,8 +2652,8 @@ L_08830944: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830968: @@ -2362,8 +2666,8 @@ L_08830968: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883098C: @@ -2371,8 +2675,8 @@ L_0883098C: ctx.gpr[2] = (aot_gpr_4 & 16384u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883099C: @@ -2386,8 +2690,8 @@ L_0883099C: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088309C4: @@ -2395,8 +2699,8 @@ L_088309C4: ctx.gpr[2] = (aot_gpr_4 & 32768u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088309D4: @@ -2410,8 +2714,8 @@ L_088309D4: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088309FC: @@ -2424,15 +2728,15 @@ L_088309FC: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(76), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A20: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A28: @@ -2446,43 +2750,43 @@ L_08830A28: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A50: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A58: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A60: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(28), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A68: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(30), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A70: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(30))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A78: @@ -2496,8 +2800,8 @@ L_08830A88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830A98: @@ -2540,22 +2844,22 @@ L_08830AD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830B10: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830B18: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(310), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830B20: @@ -2564,22 +2868,22 @@ L_08830B20: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(268), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(336), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830B34: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(268))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830B3C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(336))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830B44: @@ -2589,14 +2893,27 @@ L_08830B44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08830B5Cu); ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 154u, 0x08830B5Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08830B5Cu) goto L_08830B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08830B5C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830B68: @@ -2612,14 +2929,27 @@ L_08830B68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08830B8Cu); ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 156u, 0x08830B8Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08830B8Cu) goto L_08830B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08830B8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830B98: @@ -2727,8 +3057,8 @@ L_08830B98: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830C0C: @@ -2842,15 +3172,15 @@ L_08830C0C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830C8C: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(264))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830C94: @@ -2858,15 +3188,15 @@ L_08830C94: ctx.gpr[2] = (aot_gpr_4 & 4u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830CA4: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(92)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830CAC: @@ -2874,8 +3204,8 @@ L_08830CAC: ctx.gpr[2] = (aot_gpr_4 ^ 82u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830CBC: @@ -2883,15 +3213,15 @@ L_08830CBC: ctx.gpr[2] = (aot_gpr_4 ^ 70u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830CCC: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(196))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830CD4: @@ -2899,8 +3229,8 @@ L_08830CD4: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830CE4: @@ -2908,92 +3238,92 @@ L_08830CE4: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830CF4: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(96))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830CFC: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D04: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(104))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D0C: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(112))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D14: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(116))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D1C: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(120))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D24: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D2C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(148))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D34: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(149))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D3C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D44: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(136))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D4C: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(149)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D54: @@ -3005,8 +3335,8 @@ L_08830D54: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(154), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D74: @@ -3019,8 +3349,8 @@ L_08830D74: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(154), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830D98: @@ -3040,8 +3370,8 @@ L_08830DA4: } L_08830DAC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830DB4: @@ -3049,8 +3379,8 @@ L_08830DB4: ctx.gpr[2] = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830DC4: @@ -3058,22 +3388,22 @@ L_08830DC4: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830DD4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830DDC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830DE4: @@ -3081,57 +3411,57 @@ L_08830DE4: ctx.gpr[2] = (aot_gpr_4 & 32u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830DF4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(600), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830DFC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(604), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E04: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(604))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E0C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(608), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E14: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(900))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E1C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E24: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E2C: @@ -3167,14 +3497,14 @@ L_08830E58: L_08830E5C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_6 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E64: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E6C: @@ -3196,8 +3526,8 @@ L_08830E80: goto L_08830E90; L_08830E90: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830E98: @@ -3216,8 +3546,8 @@ L_08830EB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830EC8: @@ -3234,8 +3564,8 @@ L_08830ED4: goto L_08830EDC; L_08830EDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830EE4: @@ -3262,8 +3592,21 @@ L_08830F04: L_08830F0C: aot_gpr_31 = (0x08830F14u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 213u, 0x08830F14u, 0x089796B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 193u, 0x089796B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08830F14u) goto L_08830F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08830F14: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -3287,8 +3630,8 @@ L_08830F34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08830F40: @@ -3339,8 +3682,21 @@ L_08830F84: } L_08830F8C: aot_gpr_31 = (0x08830F94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 223u, 0x08830F94u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08830F94u) goto L_08830F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08830F94: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; if (branch_taken) { @@ -3436,8 +3792,21 @@ L_08831034: L_0883103C: aot_gpr_31 = (0x08831044u); aot_gpr_5 = (0u | 145u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 234u, 0x08831044u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831044u) goto L_08831044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831044: aot_gpr_4 = (0u | 45u); { const bool branch_taken = 0u == 0u; @@ -3457,15 +3826,28 @@ L_08831050: L_08831058: aot_gpr_31 = (0x08831060u); aot_gpr_5 = (0u | 145u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 237u, 0x08831060u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831060u) goto L_08831060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831060: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831070: @@ -3619,8 +4001,21 @@ L_088311E8: } L_088311F0: aot_gpr_31 = (0x088311F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 253u, 0x088311F8u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088311F8u) goto L_088311F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088311F8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -3736,8 +4131,8 @@ L_0883129C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088312CC: @@ -3928,20 +4323,59 @@ L_088314A0: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088314B4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 286u, 0x088314B4u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088314B4u) goto L_088314B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088314B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_gpr_31 = (0x088314C0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 287u, 0x088314C0u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088314C0u) goto L_088314C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088314C0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088314CCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 288u, 0x088314CCu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088314CCu) goto L_088314CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088314CC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -3970,8 +4404,21 @@ L_088314EC: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08831528u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 291u, 0x08831528u, 0x088B11E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 166u, 0x088B11E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831528u) goto L_08831528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831528: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4028,8 +4475,8 @@ L_08831558: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831598: @@ -4052,8 +4499,21 @@ L_088315B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088315CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 299u, 0x088315CCu, 0x08AFF300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 736u, 0x08AFF300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088315CCu) goto L_088315CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088315CC: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4065,8 +4525,21 @@ L_088315CC: L_088315D8: aot_gpr_31 = (0x088315E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 301u, 0x088315E0u, 0x08AFF2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 734u, 0x08AFF2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088315E0u) goto L_088315E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088315E0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4076,15 +4549,15 @@ L_088315E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088315F4: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1704))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088315FC: @@ -4095,8 +4568,21 @@ L_088315FC: ctx.gpr[17] = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08831620u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 304u, 0x08831620u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831620u) goto L_08831620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831620: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(0), aot_run_words); @@ -4127,8 +4613,21 @@ L_08831620: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08831660u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 305u, 0x08831660u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831660u) goto L_08831660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831660: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4138,16 +4637,42 @@ L_08831660: } aot_gpr_31 = (0x08831674u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 306u, 0x08831674u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831674u) goto L_08831674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831674: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08831688u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 307u, 0x08831688u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831688u) goto L_08831688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831688: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } @@ -4172,8 +4697,21 @@ L_08831688: L_088316AC: aot_gpr_31 = (0x088316B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 309u, 0x088316B4u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088316B4u) goto L_088316B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088316B4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -4184,8 +4722,8 @@ L_088316B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088316CC: @@ -4201,8 +4739,21 @@ L_088316CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x088316FCu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 311u, 0x088316FCu, 0x08B0D8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 374u, 0x08B0D8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088316FCu) goto L_088316FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088316FC: ctx.gpr[18] = (aot_gpr_16 << 2u); ctx.gpr[18] = (ctx.gpr[17] + ctx.gpr[18]); @@ -4227,8 +4778,21 @@ L_0883171C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883172Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 314u, 0x0883172Cu, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883172Cu) goto L_0883172C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883172C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4263,8 +4827,21 @@ L_08831750: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08831760u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 319u, 0x08831760u, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831760u) goto L_08831760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831760: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1264))); goto L_08831764; @@ -4273,8 +4850,21 @@ L_08831764: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08831774u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 321u, 0x08831774u, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831774u) goto L_08831774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831774: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4286,8 +4876,8 @@ L_08831774: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831790: @@ -4305,8 +4895,21 @@ L_08831790: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088317C8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 323u, 0x088317C8u, 0x08B0D8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 374u, 0x08B0D8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088317C8u) goto L_088317C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088317C8: ctx.gpr[19] = (ctx.gpr[17] << 2u); ctx.gpr[19] = (ctx.gpr[18] + ctx.gpr[19]); @@ -4356,8 +4959,21 @@ L_08831804: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08831820u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 329u, 0x08831820u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831820u) goto L_08831820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831820: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1264))); goto L_08831824; @@ -4366,8 +4982,21 @@ L_08831824: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08831834u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 331u, 0x08831834u, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831834u) goto L_08831834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831834: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4395,8 +5024,21 @@ L_08831850: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08831860u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 335u, 0x08831860u, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831860u) goto L_08831860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831860: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1264))); @@ -4417,8 +5059,21 @@ L_08831874: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08831880u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 338u, 0x08831880u, 0x0882A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 230u, 0x0882A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831880u) goto L_08831880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831880: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1264))); goto L_08831884; @@ -4427,8 +5082,21 @@ L_08831884: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08831894u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 340u, 0x08831894u, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831894u) goto L_08831894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831894: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4441,8 +5109,8 @@ L_08831894: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088318B4: @@ -4461,8 +5129,21 @@ L_088318B4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x08831900u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 342u, 0x08831900u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831900u) goto L_08831900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831900: ctx.gpr[22] = (ctx.gpr[17] << 2u); ctx.gpr[22] = (aot_gpr_16 + ctx.gpr[22]); @@ -4512,13 +5193,39 @@ L_08831940: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08831954u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 348u, 0x08831954u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831954u) goto L_08831954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831954: aot_gpr_31 = (0x0883195Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 349u, 0x0883195Cu, 0x08B01198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 321u, 0x08B01198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883195Cu) goto L_0883195C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883195C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (static_cast(ctx.gpr[21]) < 2 ? 1u : 0u); @@ -4554,8 +5261,21 @@ L_0883197C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08831990u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 354u, 0x08831990u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831990u) goto L_08831990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831990: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[30]; aot_gpr_4 = (0u | 2u); @@ -4588,8 +5308,21 @@ L_088319BC: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088319CCu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 358u, 0x088319CCu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088319CCu) goto L_088319CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088319CC: ctx.gpr[21] = (0u | 3u); goto L_088319D0; @@ -4613,8 +5346,21 @@ L_088319E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088319F4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 362u, 0x088319F4u, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088319F4u) goto L_088319F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088319F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4637,8 +5383,21 @@ L_08831A08: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08831A20u); aot_gpr_5 = (aot_gpr_5 + static_cast(9368)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 365u, 0x08831A20u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831A20u) goto L_08831A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831A20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4669,23 +5428,62 @@ L_08831A48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08831A58u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 369u, 0x08831A58u, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831A58u) goto L_08831A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831A58: aot_gpr_5 = (2218u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1264))); aot_gpr_6 = (0u | 2048u); aot_gpr_31 = (0x08831A6Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(9208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 370u, 0x08831A6Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831A6Cu) goto L_08831A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831A6C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08831A7Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 371u, 0x08831A7Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831A7Cu) goto L_08831A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831A7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4712,8 +5510,21 @@ L_08831A94: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08831AA4u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 375u, 0x08831AA4u, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831AA4u) goto L_08831AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831AA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4733,8 +5544,21 @@ L_08831AB4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08831AC4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 378u, 0x08831AC4u, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831AC4u) goto L_08831AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831AC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4747,15 +5571,41 @@ L_08831ACC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08831ADCu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 380u, 0x08831ADCu, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831ADCu) goto L_08831ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831ADC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1264))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08831AECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 381u, 0x08831AECu, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831AECu) goto L_08831AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831AEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4777,8 +5627,21 @@ L_08831B00: aot_gpr_6 = (0u | 2048u); aot_gpr_31 = (0x08831B14u); aot_gpr_5 = (aot_gpr_5 + static_cast(9208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 384u, 0x08831B14u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831B14u) goto L_08831B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831B14: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -4795,8 +5658,8 @@ L_08831B14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831B44: @@ -4809,8 +5672,21 @@ L_08831B44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08831B68u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 386u, 0x08831B68u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831B68u) goto L_08831B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831B68: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -4823,8 +5699,21 @@ L_08831B74: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(976))); aot_gpr_31 = (0x08831B80u); aot_gpr_4 = (aot_gpr_16 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 388u, 0x08831B80u, 0x08A00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 7u, 0x08A00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831B80u) goto L_08831B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831B80: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -4842,23 +5731,62 @@ L_08831BA0: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08831BB0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 390u, 0x08831BB0u, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831BB0u) goto L_08831BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831BB0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1336))); ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08831BC4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 391u, 0x08831BC4u, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831BC4u) goto L_08831BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831BC4: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08831BD4u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 392u, 0x08831BD4u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831BD4u) goto L_08831BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831BD4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -4880,8 +5808,8 @@ L_08831BE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831BF8: @@ -4906,8 +5834,8 @@ L_08831C08: } L_08831C28: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831C30: @@ -4928,8 +5856,21 @@ L_08831C54: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1264))); aot_gpr_31 = (0x08831C60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 400u, 0x08831C60u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831C60u) goto L_08831C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831C60: aot_gpr_4 = (ctx.gpr[17] + static_cast(80)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -4961,8 +5902,8 @@ L_08831C84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831C98: @@ -4988,8 +5929,8 @@ L_08831CB4: goto L_08831CB8; L_08831CB8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831CC0: @@ -5037,8 +5978,21 @@ L_08831D28: L_08831D38: aot_gpr_31 = (0x08831D40u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 409u, 0x08831D40u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831D40u) goto L_08831D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831D40: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08831D44; @@ -5050,8 +6004,21 @@ L_08831D44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08831D60u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 411u, 0x08831D60u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831D60u) goto L_08831D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831D60: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5073,8 +6040,21 @@ L_08831D60: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08831D88u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 412u, 0x08831D88u, 0x08A000C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 15u, 0x08A000C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831D88u) goto L_08831D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831D88: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5088,8 +6068,21 @@ L_08831D90: aot_gpr_6 = (0u | 2048u); aot_gpr_31 = (0x08831DA4u); aot_gpr_5 = (aot_gpr_5 + static_cast(9248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 414u, 0x08831DA4u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831DA4u) goto L_08831DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831DA4: ctx.gpr[20] = (0u | 1u); goto L_08831DA8; @@ -5097,8 +6090,21 @@ L_08831DA8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08831DB4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 416u, 0x08831DB4u, 0x089FFF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 725u, 0x089FFF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831DB4u) goto L_08831DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831DB4: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -5110,8 +6116,21 @@ L_08831DBC: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08831DC8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 418u, 0x08831DC8u, 0x08A00010u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 3u, 0x08A00010u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831DC8u) goto L_08831DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831DC8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[24]) || std::isnan(aot_fpr_0)) && ctx.fpr[24] == aot_fpr_0)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -5126,8 +6145,21 @@ L_08831DD8: aot_gpr_6 = (0u | 2048u); aot_gpr_31 = (0x08831DECu); aot_gpr_5 = (aot_gpr_5 + static_cast(9208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 420u, 0x08831DECu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831DECu) goto L_08831DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831DEC: aot_gpr_6 = (aot_gpr_16 + static_cast(6)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -5136,8 +6168,21 @@ L_08831DEC: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08831E08u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 421u, 0x08831E08u, 0x08A05FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 505u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 505u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 505u, 0x08A05FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831E08u) goto L_08831E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831E08: if (ctx.gpr[20] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(41))); @@ -5156,8 +6201,21 @@ L_08831E20: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08831E30u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 424u, 0x08831E30u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831E30u) goto L_08831E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831E30: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -5172,8 +6230,21 @@ L_08831E3C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08831E4Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 426u, 0x08831E4Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831E4Cu) goto L_08831E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831E4C: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[20]; if (branch_taken) { @@ -5214,8 +6285,21 @@ L_08831E80: aot_gpr_6 = (aot_gpr_16 & 65535u); aot_gpr_31 = (0x08831E98u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 431u, 0x08831E98u, 0x08A05FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 505u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 505u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 505u, 0x08A05FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831E98u) goto L_08831E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831E98: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(41))); goto L_08831E9C; @@ -5232,8 +6316,21 @@ L_08831E9C: } aot_gpr_31 = (0x08831EC0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 433u, 0x08831EC0u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831EC0u) goto L_08831EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831EC0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -5243,13 +6340,39 @@ L_08831EC0: } aot_gpr_31 = (0x08831ED4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 434u, 0x08831ED4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831ED4u) goto L_08831ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831ED4: aot_gpr_31 = (0x08831EDCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 435u, 0x08831EDCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831EDCu) goto L_08831EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831EDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -5270,8 +6393,21 @@ L_08831EEC: L_08831EF8: aot_gpr_31 = (0x08831F00u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 438u, 0x08831F00u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831F00u) goto L_08831F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831F00: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(108), aot_run_words); @@ -5288,8 +6424,8 @@ L_08831F00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08831F30: @@ -5305,8 +6441,21 @@ L_08831F30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08831F60u); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 440u, 0x08831F60u, 0x08A000C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 15u, 0x08A000C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08831F60u) goto L_08831F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08831F60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5450,8 +6599,8 @@ L_08832010: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832024: @@ -5467,8 +6616,21 @@ L_08832024: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08832054u); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 459u, 0x08832054u, 0x08A00104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 20u, 0x08A00104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832054u) goto L_08832054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832054: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5515,8 +6677,8 @@ L_0883208C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088320A0: @@ -5528,8 +6690,21 @@ L_088320A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088320C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 466u, 0x088320C0u, 0x08A000C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 15u, 0x08A000C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088320C0u) goto L_088320C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088320C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5552,8 +6727,8 @@ L_088320D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088320E0: @@ -5561,8 +6736,21 @@ L_088320E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088320F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 471u, 0x088320F0u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088320F0u) goto L_088320F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088320F0: aot_gpr_4 = (ctx.gpr[2] & 255u); aot_gpr_5 = (0u | 3u); @@ -5587,8 +6775,8 @@ L_0883210C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832118: @@ -5665,8 +6853,8 @@ L_08832174: goto L_08832178; L_08832178: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832180: @@ -5695,8 +6883,8 @@ L_08832194: } L_088321A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088321AC: @@ -5708,8 +6896,21 @@ L_088321AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088321CCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 492u, 0x088321CCu, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088321CCu) goto L_088321CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088321CC: aot_gpr_4 = (aot_gpr_16 << 2u); aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); @@ -5719,8 +6920,21 @@ L_088321CC: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088321ECu); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 493u, 0x088321ECu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088321ECu) goto L_088321EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088321EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5741,8 +6955,8 @@ L_088321FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832210: @@ -5882,8 +7096,21 @@ L_08832308: L_08832318: aot_gpr_31 = (0x08832320u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 507u, 0x08832320u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832320u) goto L_08832320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832320: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_08832324; @@ -5894,8 +7121,21 @@ L_08832324: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0883233Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 509u, 0x0883233Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883233Cu) goto L_0883233C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883233C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); @@ -5904,8 +7144,21 @@ L_0883233C: aot_gpr_6 = (0u | 23u); aot_gpr_31 = (0x08832358u); ctx.gpr[7] = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 510u, 0x08832358u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832358u) goto L_08832358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832358: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5926,8 +7179,21 @@ L_08832364: L_08832374: aot_gpr_31 = (0x0883237Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 513u, 0x0883237Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883237Cu) goto L_0883237C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883237C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_08832380; @@ -5938,8 +7204,21 @@ L_08832380: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08832398u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 515u, 0x08832398u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832398u) goto L_08832398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832398: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); @@ -5949,8 +7228,21 @@ L_08832398: aot_gpr_6 = (0u | 23u); aot_gpr_31 = (0x088323B8u); ctx.gpr[7] = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 516u, 0x088323B8u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088323B8u) goto L_088323B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088323B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5971,8 +7263,21 @@ L_088323C4: L_088323D4: aot_gpr_31 = (0x088323DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 519u, 0x088323DCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088323DCu) goto L_088323DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088323DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_088323E0; @@ -5983,8 +7288,21 @@ L_088323E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088323F8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 521u, 0x088323F8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088323F8u) goto L_088323F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088323F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); @@ -5994,8 +7312,21 @@ L_088323F8: aot_gpr_6 = (0u | 23u); aot_gpr_31 = (0x08832418u); ctx.gpr[7] = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 522u, 0x08832418u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832418u) goto L_08832418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832418: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6016,8 +7347,21 @@ L_08832424: L_08832434: aot_gpr_31 = (0x0883243Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 525u, 0x0883243Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883243Cu) goto L_0883243C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883243C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_08832440; @@ -6028,8 +7372,21 @@ L_08832440: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08832458u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 527u, 0x08832458u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832458u) goto L_08832458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832458: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); @@ -6039,8 +7396,21 @@ L_08832458: aot_gpr_6 = (0u | 23u); aot_gpr_31 = (0x08832478u); ctx.gpr[7] = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 528u, 0x08832478u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832478u) goto L_08832478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832478: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1288))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6077,8 +7447,21 @@ L_0883249C: L_088324AC: aot_gpr_31 = (0x088324B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 533u, 0x088324B4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088324B4u) goto L_088324B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088324B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_088324B8; @@ -6089,8 +7472,21 @@ L_088324B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088324D0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 535u, 0x088324D0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088324D0u) goto L_088324D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088324D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); @@ -6100,8 +7496,21 @@ L_088324D0: aot_gpr_6 = (0u | 23u); aot_gpr_31 = (0x088324F0u); ctx.gpr[7] = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 536u, 0x088324F0u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088324F0u) goto L_088324F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088324F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6122,8 +7531,21 @@ L_088324FC: L_0883250C: aot_gpr_31 = (0x08832514u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 539u, 0x08832514u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832514u) goto L_08832514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832514: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_08832518; @@ -6134,8 +7556,21 @@ L_08832518: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08832530u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 541u, 0x08832530u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832530u) goto L_08832530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832530: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); @@ -6145,8 +7580,21 @@ L_08832530: aot_gpr_6 = (0u | 23u); aot_gpr_31 = (0x08832550u); ctx.gpr[7] = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 542u, 0x08832550u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832550u) goto L_08832550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832550: aot_gpr_4 = (0u | 6u); { const bool branch_taken = 0u == 0u; @@ -6180,8 +7628,21 @@ L_08832574: L_08832580: aot_gpr_31 = (0x08832588u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 547u, 0x08832588u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832588u) goto L_08832588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832588: ctx.gpr[2] = (0u | 1u); goto L_0883258C; @@ -6199,8 +7660,8 @@ L_0883258C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088325B4: @@ -6330,8 +7791,21 @@ L_08832668: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08832674u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 565u, 0x08832674u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832674u) goto L_08832674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832674: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6344,8 +7818,21 @@ L_0883267C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883268Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 567u, 0x0883268Cu, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883268Cu) goto L_0883268C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883268C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7880))); aot_fpr_12 = std::bit_cast(0u); @@ -6357,8 +7844,21 @@ L_0883268C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); aot_gpr_31 = (0x088326B4u); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 568u, 0x088326B4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088326B4u) goto L_088326B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088326B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u | 32u); @@ -6377,8 +7877,21 @@ L_088326C8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088326E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 570u, 0x088326E4u, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088326E4u) goto L_088326E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088326E4: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -6422,8 +7935,21 @@ L_088326F8: } aot_gpr_31 = (0x08832734u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 573u, 0x08832734u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832734u) goto L_08832734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832734: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29780))); aot_gpr_31 = (0x08832740u); @@ -6467,8 +7993,21 @@ L_08832740: } aot_gpr_31 = (0x0883278Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 575u, 0x0883278Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883278Cu) goto L_0883278C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883278C: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -6482,8 +8021,8 @@ L_0883278C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088327B0: @@ -6496,8 +8035,21 @@ L_088327B0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(88), aot_run_words); } aot_gpr_31 = (0x088327E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 577u, 0x088327E0u, 0x08B0D814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 366u, 0x08B0D814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088327E0u) goto L_088327E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088327E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); @@ -6514,29 +8066,81 @@ L_088327FC: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x0883280Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 579u, 0x0883280Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883280Cu) goto L_0883280C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883280C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x0883281Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 580u, 0x0883281Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883281Cu) goto L_0883281C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883281C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0883282Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 581u, 0x0883282Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883282Cu) goto L_0883282C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883282C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x0883283Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 582u, 0x0883283Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883283Cu) goto L_0883283C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883283C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(615)))))); goto L_08832840; @@ -6550,8 +8154,21 @@ L_08832840: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08832864u); aot_gpr_5 = (aot_gpr_5 + static_cast(9288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 584u, 0x08832864u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832864u) goto L_08832864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832864: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(852))); aot_gpr_5 = (0u | 9u); @@ -6596,8 +8213,21 @@ L_088328A4: L_088328B0: aot_gpr_31 = (0x088328B8u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 590u, 0x088328B8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088328B8u) goto L_088328B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088328B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_088328BC; @@ -6610,8 +8240,21 @@ L_088328C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088328D4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 593u, 0x088328D4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088328D4u) goto L_088328D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088328D4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[20] + static_cast(0), aot_run_words); @@ -6621,13 +8264,39 @@ L_088328D4: } aot_gpr_31 = (0x088328E8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 594u, 0x088328E8u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088328E8u) goto L_088328E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088328E8: aot_gpr_31 = (0x088328F0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 595u, 0x088328F0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088328F0u) goto L_088328F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088328F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6647,8 +8316,21 @@ L_08832900: } L_0883290C: aot_gpr_31 = (0x08832914u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 598u, 0x08832914u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832914u) goto L_08832914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832914: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 29 ? 1u : 0u); @@ -6664,29 +8346,81 @@ L_08832924: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08832934u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 600u, 0x08832934u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832934u) goto L_08832934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832934: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08832944u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 601u, 0x08832944u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832944u) goto L_08832944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832944: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08832954u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 602u, 0x08832954u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832954u) goto L_08832954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832954: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08832964u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 603u, 0x08832964u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832964u) goto L_08832964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832964: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6700,8 +8434,8 @@ L_08832964: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832988: @@ -6714,8 +8448,8 @@ L_08832988: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1653), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088329AC: @@ -6732,8 +8466,21 @@ L_088329AC: } L_088329C4: aot_gpr_31 = (0x088329CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 607u, 0x088329CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088329CCu) goto L_088329CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088329CC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6757,8 +8504,21 @@ L_088329DC: } L_088329E4: aot_gpr_31 = (0x088329ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 611u, 0x088329ECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088329ECu) goto L_088329EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088329EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6769,8 +8529,21 @@ L_088329EC: } L_088329F8: aot_gpr_31 = (0x08832A00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 613u, 0x08832A00u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832A00u) goto L_08832A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832A00: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(558))); @@ -6815,8 +8588,21 @@ L_08832A3C: } L_08832A44: aot_gpr_31 = (0x08832A4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 620u, 0x08832A4Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832A4Cu) goto L_08832A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832A4C: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6892,15 +8678,28 @@ L_08832A9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08832ACCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 622u, 0x08832ACCu, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832ACCu) goto L_08832ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832ACC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832ADC: @@ -6940,8 +8739,8 @@ L_08832B04: L_08832B10: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1664), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832B18: @@ -7039,8 +8838,21 @@ L_08832BD4: } L_08832BE8: aot_gpr_31 = (0x08832BF0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 638u, 0x08832BF0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832BF0u) goto L_08832BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832BF0: if (aot_gpr_16 != ctx.gpr[2]) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(240))); @@ -7059,8 +8871,21 @@ L_08832C00: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08832C18u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 641u, 0x08832C18u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832C18u) goto L_08832C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832C18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(240))); goto L_08832C1C; @@ -7101,8 +8926,8 @@ L_08832C50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832C74: @@ -7139,8 +8964,21 @@ L_08832CD0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08832CE0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 647u, 0x08832CE0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832CE0u) goto L_08832CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832CE0: aot_gpr_4 = (16585u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -7186,15 +9024,15 @@ L_08832D34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832D48: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1860), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832D50: @@ -7202,8 +9040,8 @@ L_08832D50: aot_fpr_12 = std::bit_cast(aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1860), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832D60: @@ -7240,8 +9078,21 @@ L_08832DBC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08832DCCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 656u, 0x08832DCCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832DCCu) goto L_08832DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832DCC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -7269,8 +9120,8 @@ L_08832DF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832E04: @@ -7282,8 +9133,21 @@ L_08832E04: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(112), aot_run_words); } aot_gpr_31 = (0x08832E28u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 661u, 0x08832E28u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832E28u) goto L_08832E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832E28: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -7326,8 +9190,21 @@ L_08832E58: L_08832E68: aot_gpr_31 = (0x08832E70u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 666u, 0x08832E70u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832E70u) goto L_08832E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832E70: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); goto L_08832E74; @@ -7341,8 +9218,21 @@ L_08832E74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08832E98u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 668u, 0x08832E98u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832E98u) goto L_08832E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832E98: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7375,8 +9265,21 @@ L_08832E98: } aot_gpr_31 = (0x08832EE0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 669u, 0x08832EE0u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832EE0u) goto L_08832EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832EE0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7386,13 +9289,39 @@ L_08832EE0: } aot_gpr_31 = (0x08832EF4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 670u, 0x08832EF4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832EF4u) goto L_08832EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832EF4: aot_gpr_31 = (0x08832EFCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 671u, 0x08832EFCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832EFCu) goto L_08832EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832EFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7413,8 +9342,21 @@ L_08832F0C: L_08832F18: aot_gpr_31 = (0x08832F20u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 674u, 0x08832F20u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832F20u) goto L_08832F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832F20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7432,8 +9374,8 @@ L_08832F28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832F40: @@ -7446,8 +9388,21 @@ L_08832F40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08832F64u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 677u, 0x08832F64u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832F64u) goto L_08832F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832F64: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -7469,8 +9424,21 @@ L_08832F78: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08832F88u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 680u, 0x08832F88u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08832F88u) goto L_08832F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08832F88: aot_gpr_4 = (49152u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7483,8 +9451,8 @@ L_08832F88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08832FA8: @@ -7538,8 +9506,21 @@ L_08832FE8: L_08832FF8: aot_gpr_31 = (0x08833000u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 687u, 0x08833000u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833000u) goto L_08833000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833000: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_08833004; @@ -7551,8 +9532,21 @@ L_08833004: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08833020u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 689u, 0x08833020u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833020u) goto L_08833020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833020: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7585,8 +9579,21 @@ L_08833020: } aot_gpr_31 = (0x08833068u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 690u, 0x08833068u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833068u) goto L_08833068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833068: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7596,13 +9603,39 @@ L_08833068: } aot_gpr_31 = (0x0883307Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 691u, 0x0883307Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883307Cu) goto L_0883307C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883307C: aot_gpr_31 = (0x08833084u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 692u, 0x08833084u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833084u) goto L_08833084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833084: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7623,8 +9656,21 @@ L_08833094: L_088330A0: aot_gpr_31 = (0x088330A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 695u, 0x088330A8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088330A8u) goto L_088330A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088330A8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(108), aot_run_words); @@ -7634,8 +9680,8 @@ L_088330A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088330BC: @@ -7689,8 +9735,21 @@ L_088330FC: L_0883310C: aot_gpr_31 = (0x08833114u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 702u, 0x08833114u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833114u) goto L_08833114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833114: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_08833118; @@ -7702,8 +9761,21 @@ L_08833118: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08833134u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 704u, 0x08833134u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833134u) goto L_08833134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833134: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7736,8 +9808,21 @@ L_08833134: } aot_gpr_31 = (0x0883317Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 705u, 0x0883317Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883317Cu) goto L_0883317C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883317C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7747,13 +9832,39 @@ L_0883317C: } aot_gpr_31 = (0x08833190u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 706u, 0x08833190u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833190u) goto L_08833190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833190: aot_gpr_31 = (0x08833198u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 707u, 0x08833198u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833198u) goto L_08833198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833198: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7774,8 +9885,21 @@ L_088331A8: L_088331B4: aot_gpr_31 = (0x088331BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 710u, 0x088331BCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088331BCu) goto L_088331BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088331BC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(108), aot_run_words); @@ -7785,8 +9909,8 @@ L_088331BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088331D0: @@ -7972,8 +10096,8 @@ L_08833344: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833358: @@ -8126,8 +10250,21 @@ L_088334AC: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x088334C4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 741u, 0x088334C4u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088334C4u) goto L_088334C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088334C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8334,8 +10471,8 @@ L_08833618: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883365C: @@ -8349,8 +10486,21 @@ L_0883365C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08833684u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 753u, 0x08833684u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833684u) goto L_08833684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833684: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -8376,8 +10526,21 @@ L_088336AC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088336BCu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 756u, 0x088336BCu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088336BCu) goto L_088336BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088336BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8397,8 +10560,21 @@ L_088336CC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088336DCu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 759u, 0x088336DCu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088336DCu) goto L_088336DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088336DC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8409,8 +10585,8 @@ L_088336DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088336F4: @@ -8434,14 +10610,27 @@ L_08833718: aot_gpr_5 = (aot_gpr_4 + static_cast(1264)); aot_gpr_31 = (0x08833724u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 763u, 0x08833724u, 0x0885F668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 888u, 0x0885F668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833724u) goto L_08833724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833724: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833730: @@ -8450,8 +10639,21 @@ L_08833730: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08833744u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 765u, 0x08833744u, 0x08AFF4B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 769u, 0x08AFF4B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833744u) goto L_08833744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833744: aot_gpr_31 = (0x0883374Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8461,21 +10663,21 @@ L_0883374C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883375C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833764: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2196))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883376C: @@ -8556,8 +10758,21 @@ L_08833814: aot_gpr_5 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x08833820u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 778u, 0x08833820u, 0x0880A6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 558u, 0x0880A6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833820u) goto L_08833820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833820: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); goto L_08833824; @@ -8569,8 +10784,21 @@ L_08833824: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08833840u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 780u, 0x08833840u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833840u) goto L_08833840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833840: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(565))); ctx.gpr[17] = (0u | 0u); @@ -8664,8 +10892,21 @@ L_088338D8: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x088338F8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 793u, 0x088338F8u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088338F8u) goto L_088338F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088338F8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(565))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -8687,8 +10928,8 @@ L_0883390C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833928: @@ -8710,8 +10951,21 @@ L_08833928: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(208), aot_gpr_31); aot_gpr_31 = (0x08833988u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 796u, 0x08833988u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833988u) goto L_08833988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833988: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8728,8 +10982,21 @@ L_08833990: } L_08833998: aot_gpr_31 = (0x088339A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 799u, 0x088339A0u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088339A0u) goto L_088339A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088339A0: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8798,8 +11065,21 @@ L_08833A10: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08833A4Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 804u, 0x08833A4Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833A4Cu) goto L_08833A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833A4C: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -8892,8 +11172,21 @@ L_08833AE0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08833B2Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 812u, 0x08833B2Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833B2Cu) goto L_08833B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833B2C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -9036,8 +11329,21 @@ L_08833C74: aot_fpr_12 = ctx.fpr[26] + aot_fpr_12; aot_gpr_31 = (0x08833CA8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 827u, 0x08833CA8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833CA8u) goto L_08833CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833CA8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); @@ -9070,22 +11376,22 @@ L_08833CC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833D04: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2228)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833D0C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1360))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833D14: @@ -9239,8 +11545,21 @@ L_08833E8C: } L_08833E94: aot_gpr_31 = (0x08833E9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 846u, 0x08833E9Cu, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833E9Cu) goto L_08833E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833E9C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -9281,14 +11600,40 @@ L_08833EDC: ctx.gpr[30] = (aot_gpr_5 + ctx.gpr[23]); aot_gpr_31 = (0x08833EF0u); aot_gpr_5 = (ctx.gpr[30] + static_cast(28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 852u, 0x08833EF0u, 0x0884BD64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 648u, 0x0884BD64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833EF0u) goto L_08833EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833EF0: aot_gpr_5 = (ctx.gpr[30] + static_cast(32)); aot_gpr_31 = (0x08833EFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0011->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0011_entry, 853u, 0x08833EFCu, 0x0884BD64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 648u, 0x0884BD64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08833EFCu) goto L_08833EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08833EFC: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[21]) ? 1u : 0u); @@ -9325,22 +11670,22 @@ L_08833F1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833F4C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2276))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833F54: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2320))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833F5C: @@ -9348,22 +11693,22 @@ L_08833F5C: ctx.gpr[2] = (aot_gpr_4 & 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833F6C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7648))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833F74: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7649))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833F7C: @@ -9413,8 +11758,8 @@ L_08833FD8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18256))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08833FF0: diff --git a/profiles/vcs/generated/generated_unit_0012.cpp b/profiles/vcs/generated/generated_unit_0012.cpp index 9735766..d86105a 100644 --- a/profiles/vcs/generated/generated_unit_0012.cpp +++ b/profiles/vcs/generated/generated_unit_0012.cpp @@ -679,6 +679,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08834000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -761,8 +785,21 @@ L_088340A8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088340E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 5u, 0x088340E4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088340E4u) goto L_088340E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088340E4: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -849,8 +886,21 @@ L_088341A4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088341E0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 11u, 0x088341E0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088341E0u) goto L_088341E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088341E0: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -936,8 +986,21 @@ L_0883429C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088342D8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 17u, 0x088342D8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088342D8u) goto L_088342D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088342D8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -1077,8 +1140,21 @@ L_08834400: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0883443Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 27u, 0x0883443Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883443Cu) goto L_0883443C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883443C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 1 ? 1u : 0u); @@ -1192,8 +1268,21 @@ L_08834538: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0883456Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 34u, 0x0883456Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883456Cu) goto L_0883456C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883456C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -1217,8 +1306,8 @@ L_08834578: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08834598: @@ -1345,8 +1434,21 @@ L_08834670: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08834688u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 51u, 0x08834688u, 0x089DCE98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 156u, 0x089DCE98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834688u) goto L_08834688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834688: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -1372,8 +1474,21 @@ L_08834688: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x088346E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 52u, 0x088346E8u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088346E8u) goto L_088346E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088346E8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1440,8 +1555,21 @@ L_08834710: aot_mem.aot_direct_store32_block(ctx.gpr[16] + static_cast(48), aot_run_words); } aot_gpr_31 = (0x08834750u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 56u, 0x08834750u, 0x08809984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 323u, 0x08809984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834750u) goto L_08834750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834750: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1477,8 +1605,21 @@ L_08834758: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x088347BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 58u, 0x088347BCu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088347BCu) goto L_088347BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088347BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1536,8 +1677,21 @@ L_08834820: L_08834828: aot_gpr_31 = (0x08834830u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 62u, 0x08834830u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834830u) goto L_08834830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834830: aot_fpr_12 = ctx.fpr[0] / aot_fpr_20; aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); @@ -1585,8 +1739,21 @@ L_08834830: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088348A0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 63u, 0x088348A0u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088348A0u) goto L_088348A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088348A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(240), std::bit_cast(aot_fpr_12)); @@ -1603,8 +1770,21 @@ L_088348A0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088348DCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 64u, 0x088348DCu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088348DCu) goto L_088348DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088348DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(296))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1625,8 +1805,21 @@ L_088348EC: L_088348F8: aot_gpr_31 = (0x08834900u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 67u, 0x08834900u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834900u) goto L_08834900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834900: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(533)))))); aot_gpr_5 = (aot_gpr_4 < static_cast(23) ? 1u : 0u); @@ -1642,8 +1835,8 @@ L_08834910: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18384))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08834928: @@ -1656,8 +1849,21 @@ L_08834928: L_08834930: aot_gpr_31 = (0x08834938u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 71u, 0x08834938u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834938u) goto L_08834938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834938: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1669,15 +1875,41 @@ L_08834940: ctx.gpr[17] = (aot_gpr_29 + static_cast(304)); aot_gpr_31 = (0x0883494Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 73u, 0x0883494Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883494Cu) goto L_0883494C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883494C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883495Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 74u, 0x0883495Cu, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883495Cu) goto L_0883495C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883495C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1711,8 +1943,21 @@ L_0883496C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08834988u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 77u, 0x08834988u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834988u) goto L_08834988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834988: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1746,8 +1991,21 @@ L_08834998: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088349B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 80u, 0x088349B4u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088349B4u) goto L_088349B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088349B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1790,8 +2048,21 @@ L_088349D0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088349F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 84u, 0x088349F0u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088349F0u) goto L_088349F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088349F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1818,8 +2089,21 @@ L_088349F8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08834A14u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 86u, 0x08834A14u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834A14u) goto L_08834A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834A14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1875,8 +2159,8 @@ L_08834A6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08834A84: @@ -1890,8 +2174,21 @@ L_08834A84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), aot_gpr_4); aot_gpr_31 = (0x08834AE0u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 93u, 0x08834AE0u, 0x08B03834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 959u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 959u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 959u, 0x08B03834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834AE0u) goto L_08834AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834AE0: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20000)); @@ -1899,8 +2196,21 @@ L_08834AE0: ctx.gpr[19] = (aot_gpr_18 + static_cast(944)); aot_gpr_31 = (0x08834AF8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 94u, 0x08834AF8u, 0x08B0D814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 366u, 0x08B0D814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834AF8u) goto L_08834AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834AF8: aot_gpr_4 = (16166u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); @@ -1915,8 +2225,21 @@ L_08834AF8: aot_gpr_5 = (0u | 6u); aot_gpr_31 = (0x08834B2Cu); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 95u, 0x08834B2Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834B2Cu) goto L_08834B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834B2C: ctx.gpr[23] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -1984,13 +2307,39 @@ L_08834BB0: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x08834BE0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 101u, 0x08834BE0u, 0x08833730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 764u, 0x08833730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834BE0u) goto L_08834BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834BE0: aot_gpr_31 = (0x08834BE8u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 102u, 0x08834BE8u, 0x08B021F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 565u, 0x08B021F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834BE8u) goto L_08834BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834BE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(56))); aot_mem.aot_direct_store32(aot_gpr_18 + static_cast(352), aot_gpr_4); @@ -2011,8 +2360,21 @@ L_08834C14: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08834C20u); aot_gpr_4 = (0u | 388u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 104u, 0x08834C20u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834C20u) goto L_08834C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834C20: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -2033,8 +2395,21 @@ L_08834C38: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08834C54u); aot_gpr_4 = (0u | 1888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 107u, 0x08834C54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834C54u) goto L_08834C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834C54: ctx.gpr[16] = (ctx.gpr[2] | 0u); if (ctx.gpr[16] == 0u) { @@ -2045,8 +2420,21 @@ L_08834C54: L_08834C60: aot_gpr_31 = (0x08834C68u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 109u, 0x08834C68u, 0x08A0B7C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 577u, 0x08A0B7C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834C68u) goto L_08834C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834C68: ctx.gpr[17] = (ctx.gpr[16] | 0u); aot_mem.aot_direct_store32(aot_gpr_18 + static_cast(368), ctx.gpr[17]); @@ -2055,8 +2443,21 @@ L_08834C70: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08834C7Cu); aot_gpr_4 = (0u | 1888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 111u, 0x08834C7Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834C7Cu) goto L_08834C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834C7C: ctx.gpr[16] = (ctx.gpr[2] | 0u); if (ctx.gpr[16] == 0u) { @@ -2067,8 +2468,21 @@ L_08834C7C: L_08834C88: aot_gpr_31 = (0x08834C90u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 113u, 0x08834C90u, 0x08A0B7C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 577u, 0x08A0B7C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834C90u) goto L_08834C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834C90: ctx.gpr[17] = (ctx.gpr[16] | 0u); aot_mem.aot_direct_store32(aot_gpr_18 + static_cast(372), ctx.gpr[17]); @@ -2080,8 +2494,21 @@ L_08834C98: aot_mem.aot_direct_store8(aot_gpr_18 + static_cast(1652), static_cast(0u)); aot_gpr_31 = (0x08834CB4u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 115u, 0x08834CB4u, 0x08AFFDDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 933u, 0x08AFFDDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834CB4u) goto L_08834CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834CB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); @@ -2415,29 +2842,81 @@ L_08834FEC: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08834FFCu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 143u, 0x08834FFCu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08834FFCu) goto L_08834FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08834FFC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x0883500Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 144u, 0x0883500Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883500Cu) goto L_0883500C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883500C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0883501Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 145u, 0x0883501Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883501Cu) goto L_0883501C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883501C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x0883502Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 146u, 0x0883502Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883502Cu) goto L_0883502C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883502C: ctx.gpr[17] = (0u | 0u); ctx.gpr[16] = (aot_gpr_18 | 0u); @@ -2705,8 +3184,21 @@ L_088352A0: L_088352DC: aot_gpr_31 = (0x088352E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(1284))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 165u, 0x088352E4u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088352E4u) goto L_088352E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088352E4: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), 0u); @@ -2734,8 +3226,21 @@ L_08835304: L_08835314: aot_gpr_31 = (0x0883531Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 168u, 0x0883531Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883531Cu) goto L_0883531C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883531C: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_08835320; @@ -2746,8 +3251,21 @@ L_08835320: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x08835338u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 170u, 0x08835338u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835338u) goto L_08835338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835338: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(1284))); { const bool branch_taken = 0u == 0u; @@ -2770,8 +3288,21 @@ L_08835344: L_08835354: aot_gpr_31 = (0x0883535Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 173u, 0x0883535Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883535Cu) goto L_0883535C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883535C: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_08835360; @@ -2782,8 +3313,21 @@ L_08835360: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), aot_gpr_4); aot_gpr_31 = (0x08835378u); aot_gpr_4 = (aot_gpr_29 + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 175u, 0x08835378u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835378u) goto L_08835378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835378: aot_gpr_4 = (aot_gpr_29 + static_cast(144)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2811,13 +3355,39 @@ L_08835378: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088353B4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 176u, 0x088353B4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088353B4u) goto L_088353B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088353B4: aot_gpr_31 = (0x088353BCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 177u, 0x088353BCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088353BCu) goto L_088353BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088353BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2836,8 +3406,21 @@ L_088353CC: L_088353D8: aot_gpr_31 = (0x088353E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 180u, 0x088353E0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088353E0u) goto L_088353E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088353E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); goto L_088353E4; @@ -2860,8 +3443,21 @@ L_088353F0: L_088353FC: aot_gpr_31 = (0x08835404u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 184u, 0x08835404u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835404u) goto L_08835404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835404: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2881,14 +3477,40 @@ L_0883540C: L_0883541C: aot_gpr_31 = (0x08835424u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(1292))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 187u, 0x08835424u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835424u) goto L_08835424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835424: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); aot_gpr_31 = (0x08835430u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(1280))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 188u, 0x08835430u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835430u) goto L_08835430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835430: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); { const bool branch_taken = 0u == 0u; @@ -2924,8 +3546,21 @@ L_0883545C: L_08835474: aot_gpr_31 = (0x0883547Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(1284))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 192u, 0x0883547Cu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883547Cu) goto L_0883547C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883547C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2940,8 +3575,21 @@ L_08835488: L_0883548C: aot_gpr_31 = (0x08835494u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(1272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 195u, 0x08835494u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835494u) goto L_08835494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835494: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2956,8 +3604,21 @@ L_088354A0: L_088354A4: aot_gpr_31 = (0x088354ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(1292))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 198u, 0x088354ACu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088354ACu) goto L_088354AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088354AC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2972,8 +3633,21 @@ L_088354B8: L_088354BC: aot_gpr_31 = (0x088354C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(1280))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 201u, 0x088354C4u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088354C4u) goto L_088354C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088354C4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3041,8 +3715,8 @@ L_08835514: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08835560: @@ -3223,8 +3897,21 @@ L_0883573C: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08835758u); aot_gpr_6 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 223u, 0x08835758u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835758u) goto L_08835758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835758: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3249,8 +3936,21 @@ L_08835770: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0883578Cu); aot_gpr_6 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 226u, 0x0883578Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883578Cu) goto L_0883578C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883578C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(96))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; @@ -3326,8 +4026,21 @@ L_08835824: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08835838u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 235u, 0x08835838u, 0x089904DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 76u, 0x089904DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835838u) goto L_08835838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835838: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 | 128u); @@ -3370,8 +4083,21 @@ L_08835870: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088358B4u); aot_gpr_6 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 238u, 0x088358B4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088358B4u) goto L_088358B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088358B4: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[20]) < 4 ? 1u : 0u); @@ -3400,8 +4126,21 @@ L_088358C4: aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0883590Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 240u, 0x0883590Cu, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883590Cu) goto L_0883590C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883590C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[26]; @@ -3497,16 +4236,42 @@ L_088359D4: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088359F0u); aot_gpr_6 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 245u, 0x088359F0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088359F0u) goto L_088359F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088359F0: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08835A04u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 246u, 0x08835A04u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835A04u) goto L_08835A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835A04: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_12 = aot_fpr_12 + aot_fpr_20; @@ -3639,8 +4404,21 @@ L_08835AEC: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08835B10u); aot_gpr_6 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 259u, 0x08835B10u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835B10u) goto L_08835B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835B10: { const bool branch_taken = 0u == 0u; aot_gpr_18 = (0u | 1u); @@ -3703,8 +4481,21 @@ L_08835B7C: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08835B98u); aot_gpr_6 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 266u, 0x08835B98u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835B98u) goto L_08835B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835B98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(ctx.fpr[22])); goto L_08835B9C; @@ -3716,8 +4507,21 @@ L_08835B9C: L_08835BA4: aot_gpr_31 = (0x08835BACu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 269u, 0x08835BACu, 0x0898CF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 333u, 0x0898CF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835BACu) goto L_08835BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835BAC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3804,8 +4608,21 @@ L_08835C20: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08835C68u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 278u, 0x08835C68u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835C68u) goto L_08835C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835C68: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -3903,8 +4720,21 @@ L_08835D38: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08835D54u); aot_gpr_6 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 283u, 0x08835D54u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835D54u) goto L_08835D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835D54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3959,8 +4789,21 @@ L_08835D9C: aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08835DE4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 288u, 0x08835DE4u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835DE4u) goto L_08835DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835DE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[26]; @@ -4056,8 +4899,21 @@ L_08835EAC: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08835EC8u); aot_gpr_6 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 293u, 0x08835EC8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835EC8u) goto L_08835EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835EC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4074,8 +4930,21 @@ L_08835ED8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08835EE4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 296u, 0x08835EE4u, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835EE4u) goto L_08835EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835EE4: aot_fpr_20 = std::bit_cast(ctx.gpr[2]); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_20))); @@ -4086,8 +4955,21 @@ L_08835EE4: L_08835EF4: aot_gpr_31 = (0x08835EFCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 298u, 0x08835EFCu, 0x0898C3A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 90u, 0x0898C3A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08835EFCu) goto L_08835EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08835EFC: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -4254,8 +5136,21 @@ L_08836088: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088360F4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 311u, 0x088360F4u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088360F4u) goto L_088360F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088360F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[24]; @@ -4454,8 +5349,21 @@ L_08836294: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08836300u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 324u, 0x08836300u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836300u) goto L_08836300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836300: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[24]; @@ -4652,8 +5560,21 @@ L_088364C0: aot_gpr_6 = (0u | 22u); aot_gpr_31 = (0x088364DCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 340u, 0x088364DCu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088364DCu) goto L_088364DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088364DC: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -4697,8 +5618,21 @@ L_0883652C: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08836548u); aot_gpr_6 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 345u, 0x08836548u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836548u) goto L_08836548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836548: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4724,8 +5658,21 @@ L_08836568: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08836584u); aot_gpr_6 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 348u, 0x08836584u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836584u) goto L_08836584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836584: { const bool branch_taken = aot_gpr_18 == 0u; if (branch_taken) { @@ -4786,8 +5733,8 @@ L_088365E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08836628: @@ -4831,8 +5778,21 @@ L_08836690: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x088366ACu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 356u, 0x088366ACu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088366ACu) goto L_088366AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088366AC: aot_mem.aot_direct_store32(aot_gpr_18 + static_cast(60), ctx.gpr[2]); ctx.gpr[19] = (0u | 1u); @@ -4847,8 +5807,21 @@ L_088366BC: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088366D0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 359u, 0x088366D0u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088366D0u) goto L_088366D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088366D0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_4 = (ctx.gpr[21] << 2u); @@ -5202,8 +6175,8 @@ L_088369FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08836A24: @@ -5220,8 +6193,21 @@ L_08836A24: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08836A90u); ctx.gpr[7] = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 386u, 0x08836A90u, 0x08A8F64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 644u, 0x08A8F64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836A90u) goto L_08836A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836A90: ctx.fpr[28] = std::bit_cast(0u); aot_gpr_4 = (16256u << 16u); @@ -5281,8 +6267,21 @@ L_08836B04: L_08836B0C: aot_gpr_31 = (0x08836B14u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 392u, 0x08836B14u, 0x0884B918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 629u, 0x0884B918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836B14u) goto L_08836B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836B14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 | ctx.gpr[20]); @@ -5368,8 +6367,21 @@ L_08836BA4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08836BECu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 398u, 0x08836BECu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836BECu) goto L_08836BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836BEC: aot_gpr_4 = (std::bit_cast(ctx.fpr[30])); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); @@ -5483,8 +6495,21 @@ L_08836C84: } aot_gpr_31 = (0x08836CD8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 403u, 0x08836CD8u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836CD8u) goto L_08836CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836CD8: { const std::uint32_t vfpu_address = aot_gpr_18 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5531,8 +6556,21 @@ L_08836CD8: } aot_gpr_31 = (0x08836D1Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 404u, 0x08836D1Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836D1Cu) goto L_08836D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836D1C: aot_gpr_4 = (16230u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); @@ -5645,8 +6683,21 @@ L_08836DB4: } aot_gpr_31 = (0x08836E08u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 411u, 0x08836E08u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836E08u) goto L_08836E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836E08: { const std::uint32_t vfpu_address = aot_gpr_18 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5693,8 +6744,21 @@ L_08836E08: } aot_gpr_31 = (0x08836E4Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 412u, 0x08836E4Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836E4Cu) goto L_08836E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836E4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(208))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -5718,8 +6782,21 @@ L_08836E70: } aot_gpr_31 = (0x08836E90u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 414u, 0x08836E90u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836E90u) goto L_08836E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836E90: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -5735,8 +6812,21 @@ L_08836E90: } aot_gpr_31 = (0x08836EB0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 415u, 0x08836EB0u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08836EB0u) goto L_08836EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08836EB0: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5961,8 +7051,21 @@ L_08837078: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08837098u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 434u, 0x08837098u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837098u) goto L_08837098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837098: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6094,8 +7197,21 @@ L_08837198: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(200), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088371B0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 446u, 0x088371B0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088371B0u) goto L_088371B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088371B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(852))); aot_gpr_5 = (0u | 9u); @@ -6120,8 +7236,21 @@ L_088371CC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088371E4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 449u, 0x088371E4u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088371E4u) goto L_088371E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088371E4: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(976))); ctx.gpr[19] = (0u | 0u); @@ -6169,8 +7298,21 @@ L_08837238: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08837250u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 455u, 0x08837250u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837250u) goto L_08837250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837250: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(565))); @@ -6191,8 +7333,21 @@ L_08837264: L_0883726C: aot_gpr_31 = (0x08837274u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 458u, 0x08837274u, 0x0883376Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 769u, 0x0883376Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837274u) goto L_08837274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837274: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6253,8 +7408,21 @@ L_088372CC: L_088372DC: aot_gpr_31 = (0x088372E4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 466u, 0x088372E4u, 0x0883376Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 769u, 0x0883376Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088372E4u) goto L_088372E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088372E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6411,8 +7579,21 @@ L_08837448: ctx.gpr[8] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08837488u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 476u, 0x08837488u, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837488u) goto L_08837488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837488: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (aot_gpr_4 + static_cast(300)); @@ -6490,8 +7671,21 @@ L_088374B0: ctx.gpr[8] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883750Cu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 478u, 0x0883750Cu, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883750Cu) goto L_0883750C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883750C: { const std::uint32_t vfpu_address = aot_gpr_18 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6524,8 +7718,21 @@ L_0883750C: ctx.gpr[8] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883753Cu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 479u, 0x0883753Cu, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883753Cu) goto L_0883753C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883753C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(328))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -6553,8 +7760,21 @@ L_08837550: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(312), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08837568u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 481u, 0x08837568u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837568u) goto L_08837568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837568: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -6562,8 +7782,21 @@ L_08837568: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08837580u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 482u, 0x08837580u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837580u) goto L_08837580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837580: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(80), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(81), static_cast(0u)); @@ -6612,8 +7845,21 @@ L_088375B0: aot_gpr_4 = (aot_gpr_29 + static_cast(336)); aot_gpr_31 = (0x088375DCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 485u, 0x088375DCu, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088375DCu) goto L_088375DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088375DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6694,8 +7940,21 @@ L_08837658: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088376A8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 492u, 0x088376A8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088376A8u) goto L_088376A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088376A8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -6749,8 +8008,21 @@ L_088376D8: aot_gpr_4 = (aot_gpr_29 + static_cast(400)); aot_gpr_31 = (0x08837704u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 496u, 0x08837704u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837704u) goto L_08837704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837704: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6787,8 +8059,21 @@ L_08837728: ctx.gpr[7] = (0u | 2500u); aot_gpr_31 = (0x08837768u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 500u, 0x08837768u, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837768u) goto L_08837768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837768: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6996,8 +8281,21 @@ L_08837890: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08837910u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 511u, 0x08837910u, 0x08830C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 158u, 0x08830C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837910u) goto L_08837910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837910: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7234,8 +8532,21 @@ L_08837A4C: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08837A90u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 520u, 0x08837A90u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837A90u) goto L_08837A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837A90: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7290,8 +8601,21 @@ L_08837A90: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08837AECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 521u, 0x08837AECu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837AECu) goto L_08837AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837AEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 & 15u); @@ -7311,8 +8635,21 @@ L_08837AFC: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08837B1Cu); aot_gpr_6 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 523u, 0x08837B1Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837B1Cu) goto L_08837B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837B1C: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); ctx.gpr[22] = (ctx.gpr[22] + static_cast(4)); @@ -7346,8 +8683,8 @@ L_08837B30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1056)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08837B78: @@ -7402,8 +8739,21 @@ L_08837C08: L_08837C10: aot_gpr_31 = (0x08837C18u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 532u, 0x08837C18u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837C18u) goto L_08837C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837C18: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7415,8 +8765,21 @@ L_08837C18: L_08837C24: aot_gpr_31 = (0x08837C2Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 534u, 0x08837C2Cu, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837C2Cu) goto L_08837C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837C2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7427,8 +8790,21 @@ L_08837C2C: } L_08837C38: aot_gpr_31 = (0x08837C40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 536u, 0x08837C40u, 0x08912A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 672u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 672u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 672u, 0x08912A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837C40u) goto L_08837C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837C40: ctx.gpr[16] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[30] + static_cast(565))); @@ -7461,8 +8837,21 @@ L_08837C68: L_08837C74: aot_gpr_31 = (0x08837C7Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 541u, 0x08837C7Cu, 0x08912A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 672u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 672u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 672u, 0x08912A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837C7Cu) goto L_08837C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837C7C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[30] + static_cast(565))); @@ -7476,8 +8865,21 @@ L_08837C7C: L_08837C90: aot_gpr_31 = (0x08837C98u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 543u, 0x08837C98u, 0x08B020D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 546u, 0x08B020D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837C98u) goto L_08837C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837C98: ctx.gpr[19] = (ctx.gpr[2] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(864))); @@ -7493,8 +8895,21 @@ L_08837CA8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08837CBCu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 545u, 0x08837CBCu, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837CBCu) goto L_08837CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837CBC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -7502,8 +8917,21 @@ L_08837CBC: ctx.gpr[7] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08837CD4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 546u, 0x08837CD4u, 0x0893FA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 828u, 0x0893FA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837CD4u) goto L_08837CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837CD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(368))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7514,8 +8942,21 @@ L_08837CD4: } L_08837CE0: aot_gpr_31 = (0x08837CE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 548u, 0x08837CE8u, 0x08A0BA78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 595u, 0x08A0BA78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837CE8u) goto L_08837CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837CE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(372))); if (aot_gpr_4 == 0u) { @@ -7525,8 +8966,21 @@ L_08837CE8: goto L_08837CF4; L_08837CF4: aot_gpr_31 = (0x08837CFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 550u, 0x08837CFCu, 0x08A0BA78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 595u, 0x08A0BA78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837CFCu) goto L_08837CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837CFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1792))); goto L_08837D00; @@ -7748,15 +9202,41 @@ L_08837EC4: aot_gpr_4 = (aot_gpr_29 + static_cast(336)); aot_gpr_31 = (0x08837ED0u); aot_gpr_5 = (ctx.gpr[30] + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 574u, 0x08837ED0u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837ED0u) goto L_08837ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837ED0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08837EE0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 575u, 0x08837EE0u, 0x089DD3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 193u, 0x089DD3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837EE0u) goto L_08837EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837EE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7786,21 +9266,60 @@ L_08837F04: aot_gpr_4 = (aot_gpr_29 + static_cast(352)); aot_gpr_31 = (0x08837F10u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 580u, 0x08837F10u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837F10u) goto L_08837F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837F10: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08837F20u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 581u, 0x08837F20u, 0x089DD3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 193u, 0x089DD3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837F20u) goto L_08837F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837F20: ctx.gpr[16] = (0u | 0u); aot_gpr_18 = (0u | 0u); aot_gpr_31 = (0x08837F30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 582u, 0x08837F30u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837F30u) goto L_08837F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837F30: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1815), static_cast(ctx.gpr[16])); @@ -7811,8 +9330,21 @@ L_08837F30: } L_08837F38: aot_gpr_31 = (0x08837F40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 584u, 0x08837F40u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837F40u) goto L_08837F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837F40: { const bool branch_taken = ctx.gpr[30] == ctx.gpr[2]; if (branch_taken) { @@ -7827,8 +9359,21 @@ L_08837F48: L_08837F50: aot_gpr_31 = (0x08837F58u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 587u, 0x08837F58u, 0x08833F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 857u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 857u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 857u, 0x08833F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837F58u) goto L_08837F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837F58: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 3 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7840,8 +9385,21 @@ L_08837F58: L_08837F64: aot_gpr_31 = (0x08837F6Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 589u, 0x08837F6Cu, 0x08830D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 178u, 0x08830D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837F6Cu) goto L_08837F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837F6C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -7853,8 +9411,21 @@ L_08837F6C: L_08837F78: aot_gpr_31 = (0x08837F80u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 591u, 0x08837F80u, 0x08830D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 178u, 0x08830D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837F80u) goto L_08837F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837F80: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[21]; if (branch_taken) { @@ -7865,8 +9436,21 @@ L_08837F80: L_08837F88: aot_gpr_31 = (0x08837F90u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 593u, 0x08837F90u, 0x08830D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 178u, 0x08830D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837F90u) goto L_08837F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837F90: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -7878,8 +9462,21 @@ L_08837F90: L_08837F9C: aot_gpr_31 = (0x08837FA4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 595u, 0x08837FA4u, 0x08830D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 178u, 0x08830D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837FA4u) goto L_08837FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837FA4: aot_gpr_4 = (0u | 5u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -7890,13 +9487,39 @@ L_08837FA4: } L_08837FB0: aot_gpr_31 = (0x08837FB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 597u, 0x08837FB8u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837FB8u) goto L_08837FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837FB8: aot_gpr_31 = (0x08837FC0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 598u, 0x08837FC0u, 0x08830634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 82u, 0x08830634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837FC0u) goto L_08837FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837FC0: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -7911,13 +9534,39 @@ L_08837FC0: L_08837FDC: aot_gpr_18 = (0u | 1u); aot_gpr_31 = (0x08837FE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 600u, 0x08837FE8u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837FE8u) goto L_08837FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837FE8: aot_gpr_31 = (0x08837FF0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0012->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0012_entry, 601u, 0x08837FF0u, 0x08830634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 82u, 0x08830634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08837FF0u) goto L_08837FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08837FF0: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); diff --git a/profiles/vcs/generated/generated_unit_0013.cpp b/profiles/vcs/generated/generated_unit_0013.cpp index 8633acc..d39314e 100644 --- a/profiles/vcs/generated/generated_unit_0013.cpp +++ b/profiles/vcs/generated/generated_unit_0013.cpp @@ -1261,6 +1261,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08838000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1288,8 +1312,21 @@ L_0883800C: L_08838014: aot_gpr_31 = (0x0883801Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 4u, 0x0883801Cu, 0x08830634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 82u, 0x08830634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883801Cu) goto L_0883801C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883801C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_20)) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { @@ -1317,20 +1354,59 @@ L_08838044: ctx.gpr[23] = (aot_gpr_29 + static_cast(384)); aot_gpr_31 = (0x08838054u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 8u, 0x08838054u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838054u) goto L_08838054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838054: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08838064u); ctx.gpr[6] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 9u, 0x08838064u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838064u) goto L_08838064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838064: aot_gpr_31 = (0x0883806Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 10u, 0x0883806Cu, 0x08830634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 82u, 0x08830634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883806Cu) goto L_0883806C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883806C: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1394,13 +1470,39 @@ L_088380C0: L_088380D0: aot_gpr_31 = (0x088380D8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 20u, 0x088380D8u, 0x088479DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 626u, 0x088479DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088380D8u) goto L_088380D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088380D8: aot_gpr_31 = (0x088380E0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 21u, 0x088380E0u, 0x08B015F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 385u, 0x08B015F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088380E0u) goto L_088380E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088380E0: aot_gpr_31 = (0x088380E8u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -1545,13 +1647,39 @@ L_088381A8: L_088381B4: aot_gpr_31 = (0x088381BCu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 44u, 0x088381BCu, 0x088329ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 605u, 0x088329ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088381BCu) goto L_088381BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088381BC: aot_gpr_31 = (0x088381C4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 45u, 0x088381C4u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088381C4u) goto L_088381C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088381C4: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[16] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(1653)))))); @@ -1610,8 +1738,21 @@ L_08838214: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883822Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 52u, 0x0883822Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883822Cu) goto L_0883822C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883822C: ctx.gpr[16] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(1653)))))); goto L_08838230; @@ -1620,8 +1761,21 @@ L_08838230: aot_mem.aot_direct_store8(aot_gpr_30 + static_cast(1653), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08838240u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 54u, 0x08838240u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838240u) goto L_08838240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838240: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1632,8 +1786,21 @@ L_08838240: L_08838248: aot_gpr_31 = (0x08838250u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 56u, 0x08838250u, 0x08B011C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 327u, 0x08B011C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838250u) goto L_08838250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838250: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1644,8 +1811,21 @@ L_08838250: L_08838258: aot_gpr_31 = (0x08838260u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 58u, 0x08838260u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838260u) goto L_08838260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838260: aot_gpr_31 = (0x08838268u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1661,8 +1841,21 @@ L_08838268: L_08838270: aot_gpr_31 = (0x08838278u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 61u, 0x08838278u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838278u) goto L_08838278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838278: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(676))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1674,13 +1867,39 @@ L_08838278: L_08838284: aot_gpr_31 = (0x0883828Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 63u, 0x0883828Cu, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883828Cu) goto L_0883828C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883828C: aot_gpr_31 = (0x08838294u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 64u, 0x08838294u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838294u) goto L_08838294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838294: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1691,13 +1910,39 @@ L_08838294: L_0883829C: aot_gpr_31 = (0x088382A4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 66u, 0x088382A4u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088382A4u) goto L_088382A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088382A4: aot_gpr_31 = (0x088382ACu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 67u, 0x088382ACu, 0x08833F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 856u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 856u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 856u, 0x08833F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088382ACu) goto L_088382AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088382AC: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -1709,15 +1954,41 @@ L_088382AC: L_088382B8: aot_gpr_31 = (0x088382C0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 69u, 0x088382C0u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088382C0u) goto L_088382C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088382C0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x088382D0u); ctx.gpr[6] = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 70u, 0x088382D0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088382D0u) goto L_088382D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088382D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1733,8 +2004,21 @@ L_088382D8: L_088382E4: aot_gpr_31 = (0x088382ECu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 73u, 0x088382ECu, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088382ECu) goto L_088382EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088382EC: if (static_cast(aot_gpr_2) <= 0) { aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1814), static_cast(ctx.gpr[18])); @@ -1744,8 +2028,21 @@ L_088382EC: L_088382F4: aot_gpr_31 = (0x088382FCu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 75u, 0x088382FCu, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088382FCu) goto L_088382FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088382FC: if (aot_gpr_2 == 0u) { aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1814), static_cast(ctx.gpr[18])); @@ -1755,8 +2052,21 @@ L_088382FC: L_08838304: aot_gpr_31 = (0x0883830Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 77u, 0x0883830Cu, 0x08B011C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 327u, 0x08B011C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883830Cu) goto L_0883830C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883830C: if (aot_gpr_2 == 0u) { aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1814), static_cast(ctx.gpr[18])); @@ -1829,8 +2139,21 @@ L_0883836C: L_08838378: aot_gpr_31 = (0x08838380u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 88u, 0x08838380u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838380u) goto L_08838380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838380: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1849,8 +2172,21 @@ L_0883838C: L_08838394: aot_gpr_31 = (0x0883839Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 92u, 0x0883839Cu, 0x08833F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 856u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 856u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 856u, 0x08833F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883839Cu) goto L_0883839C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883839C: { const bool branch_taken = aot_gpr_2 == ctx.gpr[17]; if (branch_taken) { @@ -1869,8 +2205,21 @@ L_088383B0: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x088383C0u); ctx.gpr[6] = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 95u, 0x088383C0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088383C0u) goto L_088383C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088383C0: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(565))); @@ -1887,25 +2236,77 @@ L_088383D4: L_088383D8: aot_gpr_31 = (0x088383E0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 98u, 0x088383E0u, 0x08A919A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 191u, 0x08A919A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088383E0u) goto L_088383E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088383E0: aot_gpr_31 = (0x088383E8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 99u, 0x088383E8u, 0x08AFFA50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 868u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 868u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 868u, 0x08AFFA50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088383E8u) goto L_088383E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088383E8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088383F4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 100u, 0x088383F4u, 0x08830D54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 179u, 0x08830D54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088383F4u) goto L_088383F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088383F4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08838400u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 101u, 0x08838400u, 0x08830D74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 180u, 0x08830D74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838400u) goto L_08838400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838400: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(1778))); aot_gpr_4 = (ctx.gpr[18] | aot_gpr_4); @@ -1936,8 +2337,21 @@ L_0883843C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x08838448u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 104u, 0x08838448u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838448u) goto L_08838448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838448: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1961,20 +2375,59 @@ L_08838458: L_08838464: aot_gpr_31 = (0x0883846Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 108u, 0x0883846Cu, 0x08830D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 176u, 0x08830D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883846Cu) goto L_0883846C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883846C: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_31 = (0x08838478u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 109u, 0x08838478u, 0x08830880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 118u, 0x08830880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838478u) goto L_08838478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838478: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_31 = (0x08838484u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 110u, 0x08838484u, 0x08830D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 176u, 0x08830D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838484u) goto L_08838484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838484: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; @@ -1996,20 +2449,59 @@ L_088384B0: ctx.gpr[16] = (aot_gpr_30 + static_cast(192)); aot_gpr_31 = (0x088384BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 112u, 0x088384BCu, 0x08830D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 176u, 0x08830D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088384BCu) goto L_088384BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088384BC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088384C8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 113u, 0x088384C8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088384C8u) goto L_088384C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088384C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x088384D4u); aot_gpr_5 = (128u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 114u, 0x088384D4u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088384D4u) goto L_088384D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088384D4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(617)))))); { const bool branch_taken = aot_gpr_2 == 0u; @@ -2053,8 +2545,21 @@ L_08838504: L_08838514: aot_gpr_31 = (0x0883851Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 120u, 0x0883851Cu, 0x08830D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 178u, 0x08830D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883851Cu) goto L_0883851C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883851C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -2146,8 +2651,21 @@ L_088385B8: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088385C4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 133u, 0x088385C4u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088385C4u) goto L_088385C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088385C4: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_4 = (16672u << 16u); @@ -2159,31 +2677,83 @@ L_088385C4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088385ECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 134u, 0x088385ECu, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088385ECu) goto L_088385EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088385EC: ctx.gpr[18] = (aot_gpr_29 + static_cast(400)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08838600u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 135u, 0x08838600u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838600u) goto L_08838600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838600: ctx.gpr[22] = (aot_gpr_29 + static_cast(432)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08838614u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 136u, 0x08838614u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838614u) goto L_08838614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838614: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08838624u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 137u, 0x08838624u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838624u) goto L_08838624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838624: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(496), 0u); ctx.gpr[6] = (aot_gpr_29 + static_cast(464)); @@ -2198,8 +2768,21 @@ L_08838624: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08838660u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 138u, 0x08838660u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838660u) goto L_08838660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838660: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1820))); { const bool branch_taken = aot_gpr_2 == 0u; @@ -2221,8 +2804,21 @@ L_08838678: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08838684u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 141u, 0x08838684u, 0x08B0DEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 464u, 0x08B0DEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838684u) goto L_08838684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838684: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2234,8 +2830,21 @@ L_0883868C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08838698u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 143u, 0x08838698u, 0x08B0DEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 464u, 0x08B0DEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838698u) goto L_08838698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838698: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088386A4u); @@ -2257,8 +2866,8 @@ L_088386B4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18480))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088386CC: @@ -2269,8 +2878,21 @@ L_088386CC: L_088386D4: aot_gpr_31 = (0x088386DCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 148u, 0x088386DCu, 0x0898CFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 351u, 0x0898CFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088386DCu) goto L_088386DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088386DC: ctx.gpr[16] = (2238u << 16u); ctx.gpr[16] = (ctx.gpr[16] + static_cast(-6992)); @@ -2312,8 +2934,21 @@ L_08838714: L_08838728: aot_gpr_31 = (0x08838730u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 153u, 0x08838730u, 0x0897FD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 962u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 962u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 962u, 0x0897FD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838730u) goto L_08838730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838730: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1820))); ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1808))); @@ -2348,18 +2983,57 @@ L_08838760: aot_gpr_4 = (aot_gpr_29 + static_cast(512)); aot_gpr_31 = (0x0883876Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 159u, 0x0883876Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883876Cu) goto L_0883876C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883876C: aot_gpr_31 = (0x08838774u); aot_gpr_4 = (aot_gpr_29 + static_cast(528)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 160u, 0x08838774u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838774u) goto L_08838774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838774: aot_gpr_31 = (0x0883877Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 161u, 0x0883877Cu, 0x08831070u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 238u, 0x08831070u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883877Cu) goto L_0883877C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883877C: if (aot_gpr_2 != 0u) { aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1808), ctx.gpr[22]); @@ -2382,8 +3056,21 @@ L_08838798: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1820), ctx.gpr[23]); aot_gpr_31 = (0x088387A4u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 165u, 0x088387A4u, 0x0897FD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 962u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 962u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 962u, 0x0897FD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088387A4u) goto L_088387A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088387A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(92))); ctx.gpr[23] = (aot_gpr_4 + static_cast(328)); @@ -2444,8 +3131,21 @@ L_0883880C: L_08838814: aot_gpr_31 = (0x0883881Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 174u, 0x0883881Cu, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883881Cu) goto L_0883881C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883881C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2456,13 +3156,39 @@ L_0883881C: L_08838824: aot_gpr_31 = (0x0883882Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 176u, 0x0883882Cu, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883882Cu) goto L_0883882C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883882C: aot_gpr_31 = (0x08838834u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 177u, 0x08838834u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838834u) goto L_08838834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838834: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 63u); @@ -2475,13 +3201,39 @@ L_08838834: L_08838844: aot_gpr_31 = (0x0883884Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 179u, 0x0883884Cu, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883884Cu) goto L_0883884C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883884C: aot_gpr_31 = (0x08838854u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 180u, 0x08838854u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838854u) goto L_08838854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838854: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 60u); @@ -2494,13 +3246,39 @@ L_08838854: L_08838864: aot_gpr_31 = (0x0883886Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 182u, 0x0883886Cu, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883886Cu) goto L_0883886C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883886C: aot_gpr_31 = (0x08838874u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 183u, 0x08838874u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838874u) goto L_08838874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838874: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 65u); @@ -2513,13 +3291,39 @@ L_08838874: L_08838884: aot_gpr_31 = (0x0883888Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 185u, 0x0883888Cu, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883888Cu) goto L_0883888C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883888C: aot_gpr_31 = (0x08838894u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 186u, 0x08838894u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838894u) goto L_08838894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838894: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 67u); @@ -2541,13 +3345,39 @@ L_088388A4: L_088388B0: aot_gpr_31 = (0x088388B8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 189u, 0x088388B8u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088388B8u) goto L_088388B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088388B8: aot_gpr_31 = (0x088388C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 190u, 0x088388C0u, 0x08833D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 830u, 0x08833D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088388C0u) goto L_088388C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088388C0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2570,8 +3400,21 @@ L_088388C8: L_088388E4: aot_gpr_31 = (0x088388ECu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 193u, 0x088388ECu, 0x08A930F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 450u, 0x08A930F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088388ECu) goto L_088388EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088388EC: aot_gpr_31 = (0x088388F4u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -2596,8 +3439,21 @@ L_088388FC: L_0883890C: aot_gpr_31 = (0x08838914u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 197u, 0x08838914u, 0x08A51E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 264u, 0x08A51E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838914u) goto L_08838914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838914: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); @@ -2618,8 +3474,21 @@ L_08838940: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883894Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 199u, 0x0883894Cu, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883894Cu) goto L_0883894C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883894C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2631,8 +3500,21 @@ L_08838954: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x08838960u); aot_gpr_5 = (1024u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 201u, 0x08838960u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838960u) goto L_08838960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838960: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2656,8 +3538,21 @@ L_08838968: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(548), aot_gpr_5); aot_gpr_31 = (0x088389A4u); aot_gpr_5 = (aot_gpr_29 + static_cast(548)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 203u, 0x088389A4u, 0x08830470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 64u, 0x08830470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088389A4u) goto L_088389A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088389A4: aot_fpr_20 = std::bit_cast(aot_gpr_2); { const bool branch_taken = static_cast(aot_gpr_2) >= 0; @@ -2678,8 +3573,21 @@ L_088389BC: aot_fpr_20 = aot_fpr_20 / aot_fpr_12; aot_gpr_31 = (0x088389D0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 206u, 0x088389D0u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088389D0u) goto L_088389D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088389D0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= ctx.fpr[26])) ? 0x00800000u : 0u); @@ -2692,8 +3600,21 @@ L_088389D0: L_088389E4: aot_gpr_31 = (0x088389ECu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 208u, 0x088389ECu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088389ECu) goto L_088389EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088389EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[26])) ? 0x00800000u : 0u); @@ -2716,8 +3637,21 @@ L_08838A08: goto L_08838A0C; L_08838A0C: aot_gpr_31 = (0x08838A14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 212u, 0x08838A14u, 0x08830D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 176u, 0x08830D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838A14u) goto L_08838A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838A14: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29860))); @@ -2729,8 +3663,21 @@ L_08838A14: L_08838A28: aot_gpr_31 = (0x08838A30u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 214u, 0x08838A30u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838A30u) goto L_08838A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838A30: aot_fpr_13 = std::bit_cast(aot_gpr_2); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); @@ -2740,8 +3687,21 @@ L_08838A30: { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x08838A50u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 215u, 0x08838A50u, 0x08830888u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 119u, 0x08830888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838A50u) goto L_08838A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838A50: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); { const float fs = aot_fpr_20; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } @@ -2759,8 +3719,21 @@ L_08838A60: L_08838A68: aot_gpr_31 = (0x08838A70u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 218u, 0x08838A70u, 0x08830D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 176u, 0x08830D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838A70u) goto L_08838A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838A70: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_30 + static_cast(200), std::bit_cast(aot_fpr_12)); @@ -2803,8 +3776,21 @@ L_08838AAC: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29808))); aot_gpr_31 = (0x08838AB8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 225u, 0x08838AB8u, 0x08830E24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 195u, 0x08830E24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838AB8u) goto L_08838AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838AB8: aot_gpr_5 = (0u | 9u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(236))); @@ -2831,8 +3817,21 @@ L_08838AD0: aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_14 / aot_fpr_13; aot_gpr_31 = (0x08838AF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 228u, 0x08838AF4u, 0x088305BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 77u, 0x088305BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838AF4u) goto L_08838AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838AF4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(212))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -2844,8 +3843,21 @@ L_08838AF4: L_08838B08: aot_gpr_31 = (0x08838B10u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 230u, 0x08838B10u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838B10u) goto L_08838B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838B10: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2857,19 +3869,58 @@ L_08838B18: ctx.gpr[16] = (aot_gpr_30 + static_cast(112)); aot_gpr_31 = (0x08838B24u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 232u, 0x08838B24u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838B24u) goto L_08838B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838B24: aot_gpr_31 = (0x08838B2Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 233u, 0x08838B2Cu, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838B2Cu) goto L_08838B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838B2C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08838B38u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 234u, 0x08838B38u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838B38u) goto L_08838B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838B38: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29804))); @@ -2887,8 +3938,21 @@ L_08838B50: L_08838B58: aot_gpr_31 = (0x08838B60u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 237u, 0x08838B60u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838B60u) goto L_08838B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838B60: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2919,8 +3983,21 @@ L_08838B90: L_08838B98: aot_gpr_31 = (0x08838BA0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 242u, 0x08838BA0u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838BA0u) goto L_08838BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838BA0: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2934,8 +4011,21 @@ L_08838BA0: L_08838BB8: aot_gpr_31 = (0x08838BC0u); ctx.gpr[16] = (aot_gpr_29 + static_cast(560)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 244u, 0x08838BC0u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838BC0u) goto L_08838BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838BC0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08838BCCu); @@ -2945,8 +4035,21 @@ L_08838BC0: L_08838BCC: aot_gpr_31 = (0x08838BD4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 246u, 0x08838BD4u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838BD4u) goto L_08838BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838BD4: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2957,27 +4060,79 @@ L_08838BD4: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } aot_gpr_31 = (0x08838BF8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 247u, 0x08838BF8u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838BF8u) goto L_08838BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838BF8: aot_gpr_31 = (0x08838C00u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 248u, 0x08838C00u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838C00u) goto L_08838C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838C00: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08838C10u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 249u, 0x08838C10u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838C10u) goto L_08838C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838C10: ctx.gpr[17] = (aot_gpr_29 + static_cast(576)); ctx.gpr[23] = (aot_gpr_30 + static_cast(192)); aot_gpr_31 = (0x08838C20u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 250u, 0x08838C20u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838C20u) goto L_08838C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838C20: aot_gpr_31 = (0x08838C28u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2988,15 +4143,41 @@ L_08838C28: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08838C38u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 252u, 0x08838C38u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838C38u) goto L_08838C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838C38: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08838C48u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 253u, 0x08838C48u, 0x08830B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 155u, 0x08830B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838C48u) goto L_08838C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838C48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3012,8 +4193,21 @@ L_08838C50: L_08838C58: aot_gpr_31 = (0x08838C60u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 256u, 0x08838C60u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838C60u) goto L_08838C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838C60: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3025,8 +4219,21 @@ L_08838C68: ctx.gpr[16] = (aot_gpr_30 + static_cast(112)); aot_gpr_31 = (0x08838C74u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 258u, 0x08838C74u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838C74u) goto L_08838C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838C74: aot_gpr_31 = (0x08838C7Cu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3036,8 +4243,21 @@ L_08838C7C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08838C88u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 260u, 0x08838C88u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838C88u) goto L_08838C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838C88: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29804))); @@ -3055,8 +4275,21 @@ L_08838CA0: L_08838CA8: aot_gpr_31 = (0x08838CB0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 263u, 0x08838CB0u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838CB0u) goto L_08838CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838CB0: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3087,8 +4320,21 @@ L_08838CE0: L_08838CE8: aot_gpr_31 = (0x08838CF0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 268u, 0x08838CF0u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838CF0u) goto L_08838CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838CF0: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3102,8 +4348,21 @@ L_08838CF0: L_08838D08: aot_gpr_31 = (0x08838D10u); ctx.gpr[16] = (aot_gpr_29 + static_cast(592)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 270u, 0x08838D10u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D10u) goto L_08838D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D10: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08838D1Cu); @@ -3113,8 +4372,21 @@ L_08838D10: L_08838D1C: aot_gpr_31 = (0x08838D24u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 272u, 0x08838D24u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D24u) goto L_08838D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D24: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3125,46 +4397,137 @@ L_08838D24: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } aot_gpr_31 = (0x08838D48u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 273u, 0x08838D48u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D48u) goto L_08838D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D48: aot_gpr_31 = (0x08838D50u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 274u, 0x08838D50u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D50u) goto L_08838D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08838D60u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 275u, 0x08838D60u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D60u) goto L_08838D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D60: ctx.gpr[17] = (aot_gpr_29 + static_cast(608)); ctx.gpr[23] = (aot_gpr_30 + static_cast(192)); aot_gpr_31 = (0x08838D70u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 276u, 0x08838D70u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D70u) goto L_08838D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D70: aot_gpr_31 = (0x08838D78u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 277u, 0x08838D78u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D78u) goto L_08838D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D78: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08838D88u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 278u, 0x08838D88u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D88u) goto L_08838D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D88: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08838D98u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 279u, 0x08838D98u, 0x08830B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 155u, 0x08830B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838D98u) goto L_08838D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838D98: aot_gpr_31 = (0x08838DA0u); aot_gpr_4 = (0u | 0u); @@ -3173,8 +4536,21 @@ L_08838D98: L_08838DA0: aot_gpr_31 = (0x08838DA8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 281u, 0x08838DA8u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838DA8u) goto L_08838DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838DA8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3186,19 +4562,58 @@ L_08838DB0: ctx.gpr[16] = (aot_gpr_30 + static_cast(112)); aot_gpr_31 = (0x08838DBCu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 283u, 0x08838DBCu, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838DBCu) goto L_08838DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838DBC: aot_gpr_31 = (0x08838DC4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 284u, 0x08838DC4u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838DC4u) goto L_08838DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838DC4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08838DD0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 285u, 0x08838DD0u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838DD0u) goto L_08838DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838DD0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29804))); @@ -3216,8 +4631,21 @@ L_08838DE8: L_08838DF0: aot_gpr_31 = (0x08838DF8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 288u, 0x08838DF8u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838DF8u) goto L_08838DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838DF8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3248,8 +4676,21 @@ L_08838E28: L_08838E30: aot_gpr_31 = (0x08838E38u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 293u, 0x08838E38u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838E38u) goto L_08838E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838E38: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3263,8 +4704,21 @@ L_08838E38: L_08838E50: aot_gpr_31 = (0x08838E58u); ctx.gpr[16] = (aot_gpr_29 + static_cast(624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 295u, 0x08838E58u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838E58u) goto L_08838E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838E58: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08838E64u); @@ -3274,8 +4728,21 @@ L_08838E58: L_08838E64: aot_gpr_31 = (0x08838E6Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 297u, 0x08838E6Cu, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838E6Cu) goto L_08838E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838E6C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3286,27 +4753,79 @@ L_08838E6C: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x08838E90u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 298u, 0x08838E90u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838E90u) goto L_08838E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838E90: aot_gpr_31 = (0x08838E98u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 299u, 0x08838E98u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838E98u) goto L_08838E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838E98: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08838EA8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 300u, 0x08838EA8u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838EA8u) goto L_08838EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838EA8: ctx.gpr[17] = (aot_gpr_29 + static_cast(640)); ctx.gpr[23] = (aot_gpr_30 + static_cast(192)); aot_gpr_31 = (0x08838EB8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 301u, 0x08838EB8u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838EB8u) goto L_08838EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838EB8: aot_gpr_31 = (0x08838EC0u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3317,15 +4836,41 @@ L_08838EC0: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08838ED0u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 303u, 0x08838ED0u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838ED0u) goto L_08838ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838ED0: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08838EE0u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 304u, 0x08838EE0u, 0x08830B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 155u, 0x08830B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838EE0u) goto L_08838EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838EE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3348,8 +4893,21 @@ L_08838EF0: L_08838EF8: aot_gpr_31 = (0x08838F00u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 308u, 0x08838F00u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838F00u) goto L_08838F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838F00: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3361,19 +4919,58 @@ L_08838F08: ctx.gpr[16] = (aot_gpr_30 + static_cast(112)); aot_gpr_31 = (0x08838F14u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 310u, 0x08838F14u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838F14u) goto L_08838F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838F14: aot_gpr_31 = (0x08838F1Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 311u, 0x08838F1Cu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838F1Cu) goto L_08838F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838F1C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08838F28u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 312u, 0x08838F28u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838F28u) goto L_08838F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838F28: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29804))); @@ -3391,8 +4988,21 @@ L_08838F40: L_08838F48: aot_gpr_31 = (0x08838F50u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 315u, 0x08838F50u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838F50u) goto L_08838F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838F50: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3423,8 +5033,21 @@ L_08838F80: L_08838F88: aot_gpr_31 = (0x08838F90u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 320u, 0x08838F90u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838F90u) goto L_08838F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838F90: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3438,8 +5061,21 @@ L_08838F90: L_08838FA8: aot_gpr_31 = (0x08838FB0u); ctx.gpr[16] = (aot_gpr_29 + static_cast(656)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 322u, 0x08838FB0u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838FB0u) goto L_08838FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838FB0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08838FBCu); @@ -3449,8 +5085,21 @@ L_08838FB0: L_08838FBC: aot_gpr_31 = (0x08838FC4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 324u, 0x08838FC4u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838FC4u) goto L_08838FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838FC4: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3461,27 +5110,79 @@ L_08838FC4: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x08838FE8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 325u, 0x08838FE8u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838FE8u) goto L_08838FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838FE8: aot_gpr_31 = (0x08838FF0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 326u, 0x08838FF0u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08838FF0u) goto L_08838FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08838FF0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08839000u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 327u, 0x08839000u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839000u) goto L_08839000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839000: ctx.gpr[17] = (aot_gpr_29 + static_cast(672)); ctx.gpr[23] = (aot_gpr_30 + static_cast(192)); aot_gpr_31 = (0x08839010u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 328u, 0x08839010u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839010u) goto L_08839010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839010: aot_gpr_31 = (0x08839018u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3492,15 +5193,41 @@ L_08839018: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08839028u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 330u, 0x08839028u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839028u) goto L_08839028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839028: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08839038u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 331u, 0x08839038u, 0x08830B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 155u, 0x08830B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839038u) goto L_08839038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839038: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(1520))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29904))); @@ -3513,13 +5240,39 @@ L_08839038: L_08839050: aot_gpr_31 = (0x08839058u); aot_gpr_4 = (aot_gpr_30 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 333u, 0x08839058u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839058u) goto L_08839058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839058: aot_gpr_31 = (0x08839060u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 334u, 0x08839060u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839060u) goto L_08839060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839060: { const bool branch_taken = aot_gpr_2 == ctx.gpr[21]; if (branch_taken) { @@ -3541,13 +5294,39 @@ L_0883906C: L_08839080: aot_gpr_31 = (0x08839088u); aot_gpr_4 = (aot_gpr_30 + static_cast(1424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 338u, 0x08839088u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839088u) goto L_08839088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839088: aot_gpr_31 = (0x08839090u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 339u, 0x08839090u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839090u) goto L_08839090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839090: { const bool branch_taken = aot_gpr_2 == ctx.gpr[21]; if (branch_taken) { @@ -3569,13 +5348,39 @@ L_0883909C: L_088390B0: aot_gpr_31 = (0x088390B8u); aot_gpr_4 = (aot_gpr_30 + static_cast(1456)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 343u, 0x088390B8u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088390B8u) goto L_088390B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088390B8: aot_gpr_31 = (0x088390C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 344u, 0x088390C0u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088390C0u) goto L_088390C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088390C0: { const bool branch_taken = aot_gpr_2 == ctx.gpr[21]; if (branch_taken) { @@ -3598,13 +5403,39 @@ L_088390CC: L_088390E0: aot_gpr_31 = (0x088390E8u); aot_gpr_4 = (aot_gpr_30 + static_cast(1488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 348u, 0x088390E8u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088390E8u) goto L_088390E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088390E8: aot_gpr_31 = (0x088390F0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 349u, 0x088390F0u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088390F0u) goto L_088390F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088390F0: { const bool branch_taken = aot_gpr_2 != ctx.gpr[21]; if (branch_taken) { @@ -3656,39 +5487,117 @@ L_08839140: ctx.gpr[22] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883914Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 357u, 0x0883914Cu, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883914Cu) goto L_0883914C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883914C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08839158u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 358u, 0x08839158u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839158u) goto L_08839158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839158: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08839164u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 359u, 0x08839164u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839164u) goto L_08839164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839164: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08839174u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 360u, 0x08839174u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839174u) goto L_08839174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839174: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08839184u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 361u, 0x08839184u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839184u) goto L_08839184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839184: aot_gpr_31 = (0x0883918Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 362u, 0x0883918Cu, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883918Cu) goto L_0883918C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883918C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29816))); @@ -3708,8 +5617,21 @@ L_088391B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1808), ctx.gpr[22]); aot_gpr_31 = (0x088391C0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 364u, 0x088391C0u, 0x0883053Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 72u, 0x0883053Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088391C0u) goto L_088391C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088391C0: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[23] = (aot_gpr_29 + static_cast(720)); @@ -3718,21 +5640,60 @@ L_088391C0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088391DCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 365u, 0x088391DCu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088391DCu) goto L_088391DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088391DC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088391ECu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 366u, 0x088391ECu, 0x08830348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 46u, 0x08830348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088391ECu) goto L_088391EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088391EC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088391F8u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 367u, 0x088391F8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088391F8u) goto L_088391F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088391F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(752), std::bit_cast(ctx.fpr[22])); aot_gpr_4 = (aot_gpr_29 + static_cast(752)); @@ -3745,8 +5706,21 @@ L_088391F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(756), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08839224u); aot_gpr_5 = (aot_gpr_29 + static_cast(756)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 368u, 0x08839224u, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839224u) goto L_08839224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839224: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29820))); { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } @@ -3768,8 +5742,21 @@ L_08839238: L_0883924C: aot_gpr_31 = (0x08839254u); aot_gpr_5 = (32u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 371u, 0x08839254u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839254u) goto L_08839254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839254: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3791,8 +5778,21 @@ L_0883926C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x08839278u); aot_gpr_5 = (16u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 374u, 0x08839278u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839278u) goto L_08839278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839278: { const bool branch_taken = aot_gpr_2 == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7888))); @@ -3822,8 +5822,21 @@ L_08839298: goto L_088392AC; L_088392AC: aot_gpr_31 = (0x088392B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 379u, 0x088392B4u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088392B4u) goto L_088392B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088392B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(208))); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -3832,14 +5845,40 @@ L_088392B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088392D0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 380u, 0x088392D0u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088392D0u) goto L_088392D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088392D0: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088392DCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 381u, 0x088392DCu, 0x08830B44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 153u, 0x08830B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088392DCu) goto L_088392DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088392DC: aot_gpr_4 = (0u | 1u); { const bool branch_taken = 0u == 0u; @@ -3852,8 +5891,21 @@ L_088392DC: L_088392E8: aot_gpr_31 = (0x088392F0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 383u, 0x088392F0u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088392F0u) goto L_088392F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088392F0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3864,8 +5916,21 @@ L_088392F0: L_088392F8: aot_gpr_31 = (0x08839300u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 385u, 0x08839300u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839300u) goto L_08839300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839300: aot_gpr_31 = (0x08839308u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3881,13 +5946,39 @@ L_08839308: L_08839310: aot_gpr_31 = (0x08839318u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 388u, 0x08839318u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839318u) goto L_08839318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839318: aot_gpr_31 = (0x08839320u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 389u, 0x08839320u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839320u) goto L_08839320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839320: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 65u); @@ -3900,13 +5991,39 @@ L_08839320: L_08839330: aot_gpr_31 = (0x08839338u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 391u, 0x08839338u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839338u) goto L_08839338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839338: aot_gpr_31 = (0x08839340u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 392u, 0x08839340u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839340u) goto L_08839340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839340: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 60u); @@ -3919,13 +6036,39 @@ L_08839340: L_08839350: aot_gpr_31 = (0x08839358u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 394u, 0x08839358u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839358u) goto L_08839358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839358: aot_gpr_31 = (0x08839360u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 395u, 0x08839360u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839360u) goto L_08839360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839360: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 63u); @@ -3937,13 +6080,39 @@ L_08839360: L_08839370: aot_gpr_31 = (0x08839378u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 397u, 0x08839378u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839378u) goto L_08839378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839378: aot_gpr_31 = (0x08839380u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 398u, 0x08839380u, 0x08833764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 768u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 768u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 768u, 0x08833764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839380u) goto L_08839380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839380: aot_gpr_4 = (0u | 16u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3976,21 +6145,60 @@ L_088393AC: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088393B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 403u, 0x088393B8u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088393B8u) goto L_088393B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088393B8: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088393C8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 404u, 0x088393C8u, 0x08830E0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 192u, 0x08830E0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088393C8u) goto L_088393C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088393C8: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088393D4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 405u, 0x088393D4u, 0x08830DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 190u, 0x08830DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088393D4u) goto L_088393D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088393D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(92))); { const bool branch_taken = 0u == 0u; @@ -4013,19 +6221,58 @@ L_088393E0: L_088393F0: aot_gpr_31 = (0x088393F8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 408u, 0x088393F8u, 0x08B0EBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 658u, 0x08B0EBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088393F8u) goto L_088393F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088393F8: aot_gpr_31 = (0x08839400u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 409u, 0x08839400u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839400u) goto L_08839400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839400: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883940Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 410u, 0x0883940Cu, 0x08B41F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 466u, 0x08B41F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883940Cu) goto L_0883940C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883940C: aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store8(aot_gpr_30 + static_cast(1884), static_cast(aot_gpr_4)); @@ -4035,8 +6282,21 @@ L_0883940C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883942Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 411u, 0x0883942Cu, 0x08830D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 177u, 0x08830D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883942Cu) goto L_0883942C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883942C: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4044,8 +6304,21 @@ L_0883942C: aot_gpr_5 = (aot_gpr_30 + static_cast(644)); aot_gpr_31 = (0x08839444u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 412u, 0x08839444u, 0x088DBBACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 658u, 0x088DBBACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839444u) goto L_08839444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839444: aot_gpr_31 = (0x0883944Cu); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -4065,8 +6338,21 @@ L_08839458: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08839474u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 415u, 0x08839474u, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839474u) goto L_08839474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839474: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(1604))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -4082,13 +6368,39 @@ L_08839474: aot_mem.aot_direct_store32(aot_gpr_30 + static_cast(1616), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088394ACu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 416u, 0x088394ACu, 0x08830EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 210u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 210u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 210u, 0x08830EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088394ACu) goto L_088394AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088394AC: aot_gpr_31 = (0x088394B4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 417u, 0x088394B4u, 0x08830EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 207u, 0x08830EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088394B4u) goto L_088394B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088394B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(616)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -4107,18 +6419,57 @@ L_088394B4: L_088394DC: aot_gpr_31 = (0x088394E4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 419u, 0x088394E4u, 0x08B0EBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 658u, 0x08B0EBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088394E4u) goto L_088394E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088394E4: aot_gpr_31 = (0x088394ECu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 420u, 0x088394ECu, 0x08B461ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 442u, 0x08B461ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088394ECu) goto L_088394EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088394EC: aot_gpr_31 = (0x088394F4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 421u, 0x088394F4u, 0x08830EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 210u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 210u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 210u, 0x08830EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088394F4u) goto L_088394F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088394F4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -4133,21 +6484,60 @@ L_08839504: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839510u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 423u, 0x08839510u, 0x08830DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 190u, 0x08830DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839510u) goto L_08839510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839510: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08839520u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 424u, 0x08839520u, 0x08830E0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 192u, 0x08830E0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839520u) goto L_08839520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839520: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883952Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 425u, 0x0883952Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883952Cu) goto L_0883952C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883952C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(1520))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29904))); @@ -4160,13 +6550,39 @@ L_0883952C: L_08839544: aot_gpr_31 = (0x0883954Cu); aot_gpr_4 = (aot_gpr_30 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 427u, 0x0883954Cu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883954Cu) goto L_0883954C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883954C: aot_gpr_31 = (0x08839554u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 428u, 0x08839554u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839554u) goto L_08839554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839554: { const bool branch_taken = aot_gpr_2 == ctx.gpr[21]; if (branch_taken) { @@ -4188,13 +6604,39 @@ L_08839560: L_08839574: aot_gpr_31 = (0x0883957Cu); aot_gpr_4 = (aot_gpr_30 + static_cast(1424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 432u, 0x0883957Cu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883957Cu) goto L_0883957C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883957C: aot_gpr_31 = (0x08839584u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 433u, 0x08839584u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839584u) goto L_08839584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839584: { const bool branch_taken = aot_gpr_2 == ctx.gpr[21]; if (branch_taken) { @@ -4216,13 +6658,39 @@ L_08839590: L_088395A4: aot_gpr_31 = (0x088395ACu); aot_gpr_4 = (aot_gpr_30 + static_cast(1456)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 437u, 0x088395ACu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088395ACu) goto L_088395AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088395AC: aot_gpr_31 = (0x088395B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 438u, 0x088395B4u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088395B4u) goto L_088395B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088395B4: { const bool branch_taken = aot_gpr_2 == ctx.gpr[21]; if (branch_taken) { @@ -4245,13 +6713,39 @@ L_088395C0: L_088395D4: aot_gpr_31 = (0x088395DCu); aot_gpr_4 = (aot_gpr_30 + static_cast(1488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 442u, 0x088395DCu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088395DCu) goto L_088395DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088395DC: aot_gpr_31 = (0x088395E4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 443u, 0x088395E4u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088395E4u) goto L_088395E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088395E4: { const bool branch_taken = aot_gpr_2 != ctx.gpr[21]; if (branch_taken) { @@ -4313,8 +6807,21 @@ L_08839628: L_08839648: aot_gpr_31 = (0x08839650u); ctx.gpr[16] = (aot_gpr_29 + static_cast(768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 452u, 0x08839650u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839650u) goto L_08839650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839650: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4335,14 +6842,40 @@ L_08839680: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08839690u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 454u, 0x08839690u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839690u) goto L_08839690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839690: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883969Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 455u, 0x0883969Cu, 0x08830B44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 153u, 0x08830B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883969Cu) goto L_0883969C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883969C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4353,8 +6886,21 @@ L_0883969C: L_088396A4: aot_gpr_31 = (0x088396ACu); ctx.gpr[16] = (aot_gpr_29 + static_cast(784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 457u, 0x088396ACu, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088396ACu) goto L_088396AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088396AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(208))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29820))); @@ -4370,14 +6916,40 @@ L_088396C8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088396D8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 459u, 0x088396D8u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088396D8u) goto L_088396D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088396D8: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088396E4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 460u, 0x088396E4u, 0x08830B44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 153u, 0x08830B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088396E4u) goto L_088396E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088396E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(92))); { const bool branch_taken = 0u == 0u; @@ -4395,8 +6967,21 @@ L_088396F0: L_088396F8: aot_gpr_31 = (0x08839700u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 463u, 0x08839700u, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839700u) goto L_08839700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839700: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -4415,8 +7000,21 @@ L_0883971C: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08839730u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 465u, 0x08839730u, 0x08830E0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 192u, 0x08830E0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839730u) goto L_08839730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839730: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4428,31 +7026,96 @@ L_08839738: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839744u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 467u, 0x08839744u, 0x08830E0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 192u, 0x08830E0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839744u) goto L_08839744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839744: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839750u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 468u, 0x08839750u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839750u) goto L_08839750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839750: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883975Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 469u, 0x0883975Cu, 0x08830DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 189u, 0x08830DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883975Cu) goto L_0883975C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883975C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839768u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 470u, 0x08839768u, 0x08830DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 190u, 0x08830DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839768u) goto L_08839768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839768: aot_gpr_31 = (0x08839770u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 471u, 0x08839770u, 0x08830E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 196u, 0x08830E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839770u) goto L_08839770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839770: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(615)))))); @@ -4476,21 +7139,60 @@ L_08839788: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839794u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 475u, 0x08839794u, 0x08830DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 190u, 0x08830DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839794u) goto L_08839794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839794: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088397A0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 476u, 0x088397A0u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088397A0u) goto L_088397A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088397A0: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088397B0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 477u, 0x088397B0u, 0x08830E0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 192u, 0x08830E0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088397B0u) goto L_088397B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088397B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(92))); { const bool branch_taken = 0u == 0u; @@ -4508,8 +7210,21 @@ L_088397BC: L_088397C4: aot_gpr_31 = (0x088397CCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 480u, 0x088397CCu, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088397CCu) goto L_088397CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088397CC: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -4525,8 +7240,21 @@ L_088397CC: L_088397E8: aot_gpr_31 = (0x088397F0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 482u, 0x088397F0u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088397F0u) goto L_088397F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088397F0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4537,8 +7265,21 @@ L_088397F0: L_088397F8: aot_gpr_31 = (0x08839800u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 484u, 0x08839800u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839800u) goto L_08839800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839800: aot_gpr_31 = (0x08839808u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4554,13 +7295,39 @@ L_08839808: L_08839810: aot_gpr_31 = (0x08839818u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 487u, 0x08839818u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839818u) goto L_08839818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839818: aot_gpr_31 = (0x08839820u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 488u, 0x08839820u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839820u) goto L_08839820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839820: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 65u); @@ -4573,13 +7340,39 @@ L_08839820: L_08839830: aot_gpr_31 = (0x08839838u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 490u, 0x08839838u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839838u) goto L_08839838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839838: aot_gpr_31 = (0x08839840u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 491u, 0x08839840u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839840u) goto L_08839840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839840: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 60u); @@ -4592,13 +7385,39 @@ L_08839840: L_08839850: aot_gpr_31 = (0x08839858u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 493u, 0x08839858u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839858u) goto L_08839858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839858: aot_gpr_31 = (0x08839860u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 494u, 0x08839860u, 0x08833D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 829u, 0x08833D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839860u) goto L_08839860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839860: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 63u); @@ -4610,13 +7429,39 @@ L_08839860: L_08839870: aot_gpr_31 = (0x08839878u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 496u, 0x08839878u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839878u) goto L_08839878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839878: aot_gpr_31 = (0x08839880u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 497u, 0x08839880u, 0x08833764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 768u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 768u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 768u, 0x08833764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839880u) goto L_08839880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839880: aot_gpr_4 = (0u | 16u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4649,21 +7494,60 @@ L_088398AC: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088398B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 502u, 0x088398B8u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088398B8u) goto L_088398B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088398B8: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088398C8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 503u, 0x088398C8u, 0x08830E0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 192u, 0x08830E0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088398C8u) goto L_088398C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088398C8: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088398D4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 504u, 0x088398D4u, 0x08830DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 190u, 0x08830DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088398D4u) goto L_088398D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088398D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4675,31 +7559,96 @@ L_088398DC: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088398E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 506u, 0x088398E8u, 0x08830E0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 192u, 0x08830E0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088398E8u) goto L_088398E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088398E8: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x088398F4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 507u, 0x088398F4u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088398F4u) goto L_088398F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088398F4: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839900u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 508u, 0x08839900u, 0x08830DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 189u, 0x08830DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839900u) goto L_08839900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839900: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883990Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 509u, 0x0883990Cu, 0x08830DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 190u, 0x08830DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883990Cu) goto L_0883990C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883990C: aot_gpr_31 = (0x08839914u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 510u, 0x08839914u, 0x08830E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 196u, 0x08830E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839914u) goto L_08839914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839914: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(92))); { const bool branch_taken = aot_gpr_2 != 0u; @@ -4725,31 +7674,96 @@ L_0883992C: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08839940u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 514u, 0x08839940u, 0x08830E0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 192u, 0x08830E0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839940u) goto L_08839940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839940: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883994Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 515u, 0x0883994Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883994Cu) goto L_0883994C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883994C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839958u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 516u, 0x08839958u, 0x08830DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 189u, 0x08830DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839958u) goto L_08839958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839958: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839964u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 517u, 0x08839964u, 0x08830DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 190u, 0x08830DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839964u) goto L_08839964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839964: aot_gpr_31 = (0x0883996Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 518u, 0x0883996Cu, 0x08830E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 196u, 0x08830E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883996Cu) goto L_0883996C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883996C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(1656))); { const bool branch_taken = aot_gpr_2 != 0u; @@ -4764,8 +7778,21 @@ L_08839978: goto L_0883997C; L_0883997C: aot_gpr_31 = (0x08839984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 521u, 0x08839984u, 0x08A42004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 367u, 0x08A42004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839984u) goto L_08839984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839984: aot_mem.aot_direct_store32(aot_gpr_30 + static_cast(1656), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(92))); @@ -4804,8 +7831,21 @@ L_088399C4: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088399D0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 526u, 0x088399D0u, 0x0883098Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 131u, 0x0883098Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088399D0u) goto L_088399D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088399D0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4857,8 +7897,21 @@ L_08839A0C: L_08839A10: aot_gpr_31 = (0x08839A18u); aot_gpr_5 = (128u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 535u, 0x08839A18u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839A18u) goto L_08839A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839A18: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4988,8 +8041,21 @@ L_08839B20: aot_gpr_5 = (aot_gpr_30 + static_cast(160)); aot_gpr_31 = (0x08839B34u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 551u, 0x08839B34u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839B34u) goto L_08839B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839B34: aot_gpr_4 = (16384u << 16u); ctx.fpr[28] = std::bit_cast(aot_gpr_4); @@ -4998,39 +8064,117 @@ L_08839B34: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08839B50u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 552u, 0x08839B50u, 0x08830348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 46u, 0x08830348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839B50u) goto L_08839B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839B50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08839B5Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 553u, 0x08839B5Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839B5Cu) goto L_08839B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839B5C: aot_gpr_5 = (aot_gpr_30 + static_cast(176)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08839B6Cu); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 554u, 0x08839B6Cu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839B6Cu) goto L_08839B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839B6C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08839B7Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 555u, 0x08839B7Cu, 0x08830348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 46u, 0x08830348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839B7Cu) goto L_08839B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839B7C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08839B88u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 556u, 0x08839B88u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839B88u) goto L_08839B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839B88: aot_gpr_31 = (0x08839B90u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 557u, 0x08839B90u, 0x08830920u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 127u, 0x08830920u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839B90u) goto L_08839B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839B90: ctx.gpr[23] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1812))); { const bool branch_taken = aot_gpr_2 != 0u; @@ -5052,18 +8196,57 @@ L_08839B9C: L_08839BAC: aot_gpr_31 = (0x08839BB4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 560u, 0x08839BB4u, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839BB4u) goto L_08839BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839BB4: aot_gpr_31 = (0x08839BBCu); ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 561u, 0x08839BBCu, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839BBCu) goto L_08839BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839BBC: aot_gpr_31 = (0x08839BC4u); { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 562u, 0x08839BC4u, 0x08830534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 71u, 0x08830534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839BC4u) goto L_08839BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839BC4: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] <= ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -5075,18 +8258,57 @@ L_08839BC4: L_08839BD4: aot_gpr_31 = (0x08839BDCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 564u, 0x08839BDCu, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839BDCu) goto L_08839BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839BDC: aot_gpr_31 = (0x08839BE4u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 565u, 0x08839BE4u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839BE4u) goto L_08839BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839BE4: aot_gpr_31 = (0x08839BECu); { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 566u, 0x08839BECu, 0x08830534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 71u, 0x08830534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839BECu) goto L_08839BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839BEC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -5098,8 +8320,21 @@ L_08839BEC: L_08839BFC: aot_gpr_31 = (0x08839C04u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 568u, 0x08839C04u, 0x08830C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 159u, 0x08830C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839C04u) goto L_08839C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839C04: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -5111,8 +8346,21 @@ L_08839C04: L_08839C14: aot_gpr_31 = (0x08839C1Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 570u, 0x08839C1Cu, 0x08830B34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 151u, 0x08830B34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839C1Cu) goto L_08839C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839C1C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[26])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -5124,8 +8372,21 @@ L_08839C1C: L_08839C2C: aot_gpr_31 = (0x08839C34u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 572u, 0x08839C34u, 0x08830B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 152u, 0x08830B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839C34u) goto L_08839C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839C34: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5136,13 +8397,39 @@ L_08839C34: L_08839C3C: aot_gpr_31 = (0x08839C44u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 574u, 0x08839C44u, 0x08830B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 152u, 0x08830B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839C44u) goto L_08839C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839C44: aot_gpr_31 = (0x08839C4Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 575u, 0x08839C4Cu, 0x0883090Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 126u, 0x0883090Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839C4Cu) goto L_08839C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839C4C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5191,8 +8478,21 @@ L_08839C94: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_31 = (0x08839CA0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 582u, 0x08839CA0u, 0x08B42144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 487u, 0x08B42144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839CA0u) goto L_08839CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839CA0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5227,8 +8527,21 @@ L_08839CC8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08839CE0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 587u, 0x08839CE0u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839CE0u) goto L_08839CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839CE0: aot_gpr_4 = (aot_gpr_29 + static_cast(832)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -5241,8 +8554,21 @@ L_08839CF4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08839D00u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 589u, 0x08839D00u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839D00u) goto L_08839D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839D00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5265,8 +8591,21 @@ L_08839D14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x08839D20u); aot_gpr_5 = (512u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 593u, 0x08839D20u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839D20u) goto L_08839D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839D20: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5312,8 +8651,21 @@ L_08839D58: } L_08839D70: aot_gpr_31 = (0x08839D78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 600u, 0x08839D78u, 0x088309C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 133u, 0x088309C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839D78u) goto L_08839D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839D78: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5342,8 +8694,21 @@ L_08839D98: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x08839DA4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 604u, 0x08839DA4u, 0x088309D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 134u, 0x088309D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839DA4u) goto L_08839DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839DA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5410,8 +8775,21 @@ L_08839E28: L_08839E34: aot_gpr_31 = (0x08839E3Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 611u, 0x08839E3Cu, 0x088485ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 42u, 0x088485ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839E3Cu) goto L_08839E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839E3C: aot_gpr_31 = (0x08839E44u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -5427,8 +8805,21 @@ L_08839E44: L_08839E4C: aot_gpr_31 = (0x08839E54u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 614u, 0x08839E54u, 0x08847C68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 663u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 663u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 663u, 0x08847C68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839E54u) goto L_08839E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839E54: ctx.gpr[17] = (0u | 1u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5452,8 +8843,21 @@ L_08839E6C: L_08839E74: aot_gpr_31 = (0x08839E7Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 618u, 0x08839E7Cu, 0x08832B18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 629u, 0x08832B18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839E7Cu) goto L_08839E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839E7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5478,8 +8882,21 @@ L_08839E8C: L_08839E98: aot_gpr_31 = (0x08839EA0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 622u, 0x08839EA0u, 0x08835560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 208u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 208u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 208u, 0x08835560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839EA0u) goto L_08839EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839EA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5517,8 +8934,21 @@ L_08839ECC: L_08839ED4: aot_gpr_31 = (0x08839EDCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 628u, 0x08839EDCu, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839EDCu) goto L_08839EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839EDC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -5545,8 +8975,21 @@ L_08839F04: L_08839F0C: aot_gpr_31 = (0x08839F14u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 632u, 0x08839F14u, 0x0898CF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 333u, 0x0898CF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839F14u) goto L_08839F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839F14: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5568,8 +9011,21 @@ L_08839F1C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08839F50u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 634u, 0x08839F50u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839F50u) goto L_08839F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839F50: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(96))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -5579,8 +9035,21 @@ L_08839F50: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08839F70u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1840), std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 635u, 0x08839F70u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839F70u) goto L_08839F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839F70: ctx.gpr[17] = (aot_gpr_30 + static_cast(1392)); aot_gpr_31 = (0x08839F7Cu); @@ -5598,24 +9067,63 @@ L_08839F8C: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08839F98u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 638u, 0x08839F98u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839F98u) goto L_08839F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839F98: ctx.gpr[22] = (aot_gpr_29 + static_cast(880)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08839FACu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 639u, 0x08839FACu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839FACu) goto L_08839FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839FAC: ctx.gpr[19] = (aot_gpr_29 + static_cast(848)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08839FC0u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 640u, 0x08839FC0u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839FC0u) goto L_08839FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839FC0: ctx.gpr[23] = (aot_gpr_29 + static_cast(896)); aot_gpr_4 = (16294u << 16u); @@ -5630,8 +9138,21 @@ L_08839FD8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08839FE8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 642u, 0x08839FE8u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08839FE8u) goto L_08839FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08839FE8: aot_gpr_4 = (16416u << 16u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); @@ -5645,8 +9166,21 @@ L_08839FE8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883A018u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 643u, 0x0883A018u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A018u) goto L_0883A018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A018: aot_gpr_31 = (0x0883A020u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5662,22 +9196,61 @@ L_0883A02C: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883A038u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 646u, 0x0883A038u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A038u) goto L_0883A038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A038: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883A048u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 647u, 0x0883A048u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A048u) goto L_0883A048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A048: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883A058u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 648u, 0x0883A058u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A058u) goto L_0883A058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A058: aot_gpr_4 = (16281u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -5691,8 +9264,21 @@ L_0883A06C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0883A07Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 650u, 0x0883A07Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A07Cu) goto L_0883A07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A07C: aot_gpr_4 = (16384u << 16u); ctx.fpr[28] = std::bit_cast(aot_gpr_4); @@ -5706,8 +9292,21 @@ L_0883A07C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883A0ACu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 651u, 0x0883A0ACu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A0ACu) goto L_0883A0AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A0AC: ctx.gpr[21] = (aot_gpr_30 + static_cast(1456)); aot_gpr_31 = (0x0883A0B8u); @@ -5724,22 +9323,61 @@ L_0883A0C4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883A0D0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 654u, 0x0883A0D0u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A0D0u) goto L_0883A0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A0D0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883A0E0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 655u, 0x0883A0E0u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A0E0u) goto L_0883A0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A0E0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883A0F0u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 656u, 0x0883A0F0u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A0F0u) goto L_0883A0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A0F0: aot_gpr_31 = (0x0883A0F8u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -5750,8 +9388,21 @@ L_0883A0F8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883A108u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 658u, 0x0883A108u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A108u) goto L_0883A108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A108: aot_gpr_4 = (0u | 33u); aot_gpr_5 = (ctx.gpr[23] | 0u); @@ -5763,8 +9414,21 @@ L_0883A108: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883A130u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 659u, 0x0883A130u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A130u) goto L_0883A130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A130: aot_gpr_31 = (0x0883A138u); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -5780,22 +9444,61 @@ L_0883A144: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883A150u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 662u, 0x0883A150u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A150u) goto L_0883A150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A150: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883A160u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 663u, 0x0883A160u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A160u) goto L_0883A160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A160: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883A170u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 664u, 0x0883A170u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A170u) goto L_0883A170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A170: aot_gpr_31 = (0x0883A178u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -5806,8 +9509,21 @@ L_0883A178: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0883A188u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 666u, 0x0883A188u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A188u) goto L_0883A188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A188: aot_gpr_4 = (0u | 55u); aot_gpr_5 = (ctx.gpr[23] | 0u); @@ -5819,8 +9535,21 @@ L_0883A188: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883A1B0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 667u, 0x0883A1B0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A1B0u) goto L_0883A1B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A1B0: aot_gpr_31 = (0x0883A1B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5836,22 +9565,61 @@ L_0883A1C4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883A1D0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 670u, 0x0883A1D0u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A1D0u) goto L_0883A1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A1D0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883A1E0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 671u, 0x0883A1E0u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A1E0u) goto L_0883A1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A1E0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883A1F0u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 672u, 0x0883A1F0u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A1F0u) goto L_0883A1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A1F0: aot_gpr_31 = (0x0883A1F8u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -5862,8 +9630,21 @@ L_0883A1F8: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0883A208u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 674u, 0x0883A208u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A208u) goto L_0883A208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A208: ctx.gpr[18] = (aot_gpr_29 + static_cast(912)); aot_gpr_31 = (0x0883A214u); @@ -5875,8 +9656,21 @@ L_0883A214: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883A224u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 676u, 0x0883A224u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A224u) goto L_0883A224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A224: aot_gpr_4 = (0u | 33u); aot_gpr_5 = (ctx.gpr[23] | 0u); @@ -5888,8 +9682,21 @@ L_0883A224: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883A24Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 677u, 0x0883A24Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A24Cu) goto L_0883A24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A24C: aot_gpr_31 = (0x0883A254u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5905,22 +9712,61 @@ L_0883A260: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883A26Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 680u, 0x0883A26Cu, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A26Cu) goto L_0883A26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A26C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883A27Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 681u, 0x0883A27Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A27Cu) goto L_0883A27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A27C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883A28Cu); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 682u, 0x0883A28Cu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A28Cu) goto L_0883A28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A28C: aot_gpr_31 = (0x0883A294u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -5931,8 +9777,21 @@ L_0883A294: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0883A2A4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 684u, 0x0883A2A4u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A2A4u) goto L_0883A2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A2A4: aot_gpr_31 = (0x0883A2ACu); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -5943,8 +9802,21 @@ L_0883A2AC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0883A2BCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 686u, 0x0883A2BCu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A2BCu) goto L_0883A2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A2BC: aot_gpr_4 = (0u | 55u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5956,8 +9828,21 @@ L_0883A2BC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883A2E4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 687u, 0x0883A2E4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A2E4u) goto L_0883A2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A2E4: aot_gpr_31 = (0x0883A2ECu); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -5973,22 +9858,61 @@ L_0883A2F8: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883A304u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 690u, 0x0883A304u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A304u) goto L_0883A304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A304: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883A314u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 691u, 0x0883A314u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A314u) goto L_0883A314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A314: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883A324u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 692u, 0x0883A324u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A324u) goto L_0883A324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A324: aot_gpr_31 = (0x0883A32Cu); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -5999,8 +9923,21 @@ L_0883A32C: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0883A33Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 694u, 0x0883A33Cu, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A33Cu) goto L_0883A33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A33C: aot_gpr_31 = (0x0883A344u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -6011,8 +9948,21 @@ L_0883A344: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883A354u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 696u, 0x0883A354u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A354u) goto L_0883A354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A354: aot_gpr_4 = (0u | 33u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -6024,8 +9974,21 @@ L_0883A354: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883A37Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 697u, 0x0883A37Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A37Cu) goto L_0883A37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A37C: aot_gpr_31 = (0x0883A384u); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -6041,22 +10004,61 @@ L_0883A390: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883A39Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 700u, 0x0883A39Cu, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A39Cu) goto L_0883A39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A39C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883A3ACu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 701u, 0x0883A3ACu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A3ACu) goto L_0883A3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A3AC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883A3BCu); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 702u, 0x0883A3BCu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A3BCu) goto L_0883A3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A3BC: aot_gpr_31 = (0x0883A3C4u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -6067,8 +10069,21 @@ L_0883A3C4: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0883A3D4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 704u, 0x0883A3D4u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A3D4u) goto L_0883A3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A3D4: aot_gpr_31 = (0x0883A3DCu); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -6079,8 +10094,21 @@ L_0883A3DC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0883A3ECu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 706u, 0x0883A3ECu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A3ECu) goto L_0883A3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A3EC: aot_gpr_4 = (0u | 55u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -6092,8 +10120,21 @@ L_0883A3EC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883A414u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 707u, 0x0883A414u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A414u) goto L_0883A414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A414: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(208))); aot_gpr_4 = (16000u << 16u); @@ -6112,14 +10153,40 @@ L_0883A43C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883A44Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 709u, 0x0883A44Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A44Cu) goto L_0883A44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A44C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A458u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 710u, 0x0883A458u, 0x08830B44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 153u, 0x08830B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A458u) goto L_0883A458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A458: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(212))); aot_gpr_4 = (15395u << 16u); @@ -6128,15 +10195,41 @@ L_0883A458: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x0883A474u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 711u, 0x0883A474u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A474u) goto L_0883A474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A474: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883A484u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 712u, 0x0883A484u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A484u) goto L_0883A484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A484: aot_gpr_31 = (0x0883A48Cu); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -6147,15 +10240,41 @@ L_0883A48C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x0883A49Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 714u, 0x0883A49Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A49Cu) goto L_0883A49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A49C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883A4ACu); ctx.gpr[6] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 715u, 0x0883A4ACu, 0x08830B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 155u, 0x08830B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A4ACu) goto L_0883A4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A4AC: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1820))); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1824))); @@ -6198,8 +10317,21 @@ L_0883A4E8: L_0883A4F4: aot_gpr_31 = (0x0883A4FCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 721u, 0x0883A4FCu, 0x08830D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 178u, 0x08830D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A4FCu) goto L_0883A4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A4FC: aot_gpr_4 = (0u | 20u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -6211,8 +10343,21 @@ L_0883A4FC: L_0883A508: aot_gpr_31 = (0x0883A510u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 723u, 0x0883A510u, 0x08830D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 178u, 0x08830D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A510u) goto L_0883A510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A510: aot_gpr_4 = (0u | 22u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6227,8 +10372,21 @@ L_0883A51C: L_0883A520: aot_gpr_31 = (0x0883A528u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 726u, 0x0883A528u, 0x08830920u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 127u, 0x08830920u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A528u) goto L_0883A528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A528: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6239,8 +10397,21 @@ L_0883A528: L_0883A530: aot_gpr_31 = (0x0883A538u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 728u, 0x0883A538u, 0x08830C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 160u, 0x08830C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A538u) goto L_0883A538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A538: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(304)))))); @@ -6289,31 +10460,96 @@ L_0883A578: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A584u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 736u, 0x0883A584u, 0x08830944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 129u, 0x08830944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A584u) goto L_0883A584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A584: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A590u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 737u, 0x0883A590u, 0x0883099Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 132u, 0x0883099Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A590u) goto L_0883A590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A590: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A59Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 738u, 0x0883A59Cu, 0x088309D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 134u, 0x088309D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A59Cu) goto L_0883A59C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A59C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A5A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 739u, 0x0883A5A8u, 0x088309FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 135u, 0x088309FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A5A8u) goto L_0883A5A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A5A8: aot_gpr_31 = (0x0883A5B0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 740u, 0x0883A5B0u, 0x08830B18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 149u, 0x08830B18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A5B0u) goto L_0883A5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A5B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(72))); aot_gpr_5 = (65520u << 16u); @@ -6329,8 +10565,21 @@ L_0883A5B0: aot_mem.aot_direct_store8(aot_gpr_30 + static_cast(617), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0883A5E8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 741u, 0x0883A5E8u, 0x08830B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 150u, 0x08830B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A5E8u) goto L_0883A5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A5E8: ctx.gpr[16] = (aot_gpr_30 + static_cast(144)); ctx.gpr[17] = (aot_gpr_29 + static_cast(928)); @@ -6345,8 +10594,21 @@ L_0883A604: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883A610u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 743u, 0x0883A610u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A610u) goto L_0883A610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A610: ctx.gpr[16] = (aot_gpr_30 + static_cast(128)); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6360,8 +10622,21 @@ L_0883A628: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883A634u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 745u, 0x0883A634u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A634u) goto L_0883A634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A634: aot_mem.aot_direct_store32(aot_gpr_30 + static_cast(1712), std::bit_cast(ctx.fpr[28])); { const bool branch_taken = 0u == 0u; @@ -6385,38 +10660,116 @@ L_0883A650: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883A660u); aot_gpr_5 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 748u, 0x0883A660u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A660u) goto L_0883A660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A660: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A66Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 749u, 0x0883A66Cu, 0x08830968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 130u, 0x08830968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A66Cu) goto L_0883A66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A66C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A678u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 750u, 0x0883A678u, 0x08830944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 129u, 0x08830944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A678u) goto L_0883A678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A678: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A684u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 751u, 0x0883A684u, 0x0883099Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 132u, 0x0883099Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A684u) goto L_0883A684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A684: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A690u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 752u, 0x0883A690u, 0x088309D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 134u, 0x088309D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A690u) goto L_0883A690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A690: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A69Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 753u, 0x0883A69Cu, 0x088309FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 135u, 0x088309FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A69Cu) goto L_0883A69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A69C: aot_mem.aot_direct_store32(aot_gpr_30 + static_cast(264), std::bit_cast(ctx.fpr[26])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(236))); @@ -6453,8 +10806,21 @@ L_0883A6EC: L_0883A6F0: aot_gpr_31 = (0x0883A6F8u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 757u, 0x0883A6F8u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A6F8u) goto L_0883A6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A6F8: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (static_cast(ctx.gpr[16]) < 5 ? 1u : 0u); @@ -6476,8 +10842,21 @@ L_0883A70C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A718u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 760u, 0x0883A718u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A718u) goto L_0883A718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A718: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); @@ -6510,36 +10889,114 @@ L_0883A748: L_0883A750: aot_gpr_31 = (0x0883A758u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 764u, 0x0883A758u, 0x08860314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A758u) goto L_0883A758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A758: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A764u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 765u, 0x0883A764u, 0x0883099Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 132u, 0x0883099Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A764u) goto L_0883A764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A764: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883A770u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 766u, 0x0883A770u, 0x08830968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 130u, 0x08830968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A770u) goto L_0883A770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A770: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883A77Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 767u, 0x0883A77Cu, 0x0883072Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 93u, 0x0883072Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A77Cu) goto L_0883A77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A77C: aot_gpr_31 = (0x0883A784u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 768u, 0x0883A784u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A784u) goto L_0883A784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A784: aot_gpr_31 = (0x0883A78Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 769u, 0x0883A78Cu, 0x08836A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 385u, 0x08836A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A78Cu) goto L_0883A78C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A78C: aot_gpr_31 = (0x0883A794u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -6609,13 +11066,39 @@ L_0883A82C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883A838u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 777u, 0x0883A838u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A838u) goto L_0883A838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A838: aot_gpr_31 = (0x0883A840u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 778u, 0x0883A840u, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A840u) goto L_0883A840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A840: ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (16928u << 16u); @@ -6647,8 +11130,21 @@ L_0883A8A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1800))); aot_gpr_31 = (0x0883A8B0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 780u, 0x0883A8B0u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A8B0u) goto L_0883A8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A8B0: aot_gpr_4 = (0u | 2u); if (aot_gpr_2 != aot_gpr_4) { @@ -6668,8 +11164,21 @@ L_0883A8BC: L_0883A8C8: aot_gpr_31 = (0x0883A8D0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 783u, 0x0883A8D0u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A8D0u) goto L_0883A8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A8D0: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6682,8 +11191,21 @@ L_0883A8DC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1796))); aot_gpr_31 = (0x0883A8E8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 785u, 0x0883A8E8u, 0x08830A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 145u, 0x08830A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A8E8u) goto L_0883A8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A8E8: aot_gpr_4 = (static_cast(aot_gpr_2) < 100 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6723,13 +11245,39 @@ L_0883A934: L_0883A93C: aot_gpr_31 = (0x0883A944u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 789u, 0x0883A944u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A944u) goto L_0883A944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A944: aot_gpr_31 = (0x0883A94Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 790u, 0x0883A94Cu, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A94Cu) goto L_0883A94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A94C: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6756,8 +11304,21 @@ L_0883A96C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883A97Cu); aot_gpr_5 = (32u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 794u, 0x0883A97Cu, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A97Cu) goto L_0883A97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A97C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6781,8 +11342,21 @@ L_0883A99C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883A9A8u); aot_gpr_5 = (16u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 797u, 0x0883A9A8u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A9A8u) goto L_0883A9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A9A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29816))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7888))); @@ -6808,8 +11382,21 @@ L_0883A9C0: aot_gpr_4 = (aot_gpr_29 + static_cast(1264)); aot_gpr_31 = (0x0883A9E8u); aot_gpr_5 = (aot_gpr_29 + static_cast(1268)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 800u, 0x0883A9E8u, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883A9E8u) goto L_0883A9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883A9E8: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1688))); @@ -6833,26 +11420,78 @@ L_0883AA1C: L_0883AA20: aot_gpr_31 = (0x0883AA28u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 803u, 0x0883AA28u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AA28u) goto L_0883AA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AA28: aot_gpr_31 = (0x0883AA30u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 804u, 0x0883AA30u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AA30u) goto L_0883AA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AA30: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0883AA40u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 805u, 0x0883AA40u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AA40u) goto L_0883AA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AA40: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883AA4Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 806u, 0x0883AA4Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AA4Cu) goto L_0883AA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AA4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1520))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29904))); @@ -6886,14 +11525,40 @@ L_0883AA88: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0883AA98u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 811u, 0x0883AA98u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AA98u) goto L_0883AA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AA98: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883AAA4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 812u, 0x0883AAA4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AAA4u) goto L_0883AAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AAA4: { const bool branch_taken = 0u == 0u; ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1844))); @@ -6914,8 +11579,21 @@ L_0883AAC0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883AACCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 815u, 0x0883AACCu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AACCu) goto L_0883AACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AACC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[16] = (ctx.gpr[16] + static_cast(4)); @@ -6956,8 +11634,21 @@ L_0883AB18: L_0883AB30: aot_gpr_31 = (0x0883AB38u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 819u, 0x0883AB38u, 0x08830D24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 173u, 0x08830D24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AB38u) goto L_0883AB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AB38: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (0u | 1u); @@ -6981,15 +11672,41 @@ L_0883AB50: L_0883AB54: aot_gpr_31 = (0x0883AB5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 823u, 0x0883AB5Cu, 0x08830D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 171u, 0x08830D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AB5Cu) goto L_0883AB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AB5C: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1520))); aot_gpr_31 = (0x0883AB6Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 824u, 0x0883AB6Cu, 0x08830A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 139u, 0x08830A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AB6Cu) goto L_0883AB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AB6C: aot_gpr_4 = (aot_gpr_30 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -7000,14 +11717,40 @@ L_0883AB6C: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883AB90u); ctx.gpr[8] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 825u, 0x0883AB90u, 0x08A68118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 9u, 0x08A68118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AB90u) goto L_0883AB90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AB90: aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(1600), static_cast(0u)); aot_gpr_31 = (0x0883AB9Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 826u, 0x0883AB9Cu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AB9Cu) goto L_0883AB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AB9C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -7032,8 +11775,8 @@ L_0883ABB4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18536))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883ABCC: @@ -7090,14 +11833,40 @@ L_0883AC34: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883AC50u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 835u, 0x0883AC50u, 0x08830C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 158u, 0x08830C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AC50u) goto L_0883AC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AC50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883AC5Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 836u, 0x0883AC5Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AC5Cu) goto L_0883AC5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AC5C: ctx.gpr[18] = (ctx.gpr[19] << 2u); ctx.gpr[18] = (aot_gpr_30 + ctx.gpr[18]); @@ -7113,14 +11882,40 @@ L_0883AC70: ctx.gpr[6] = (ctx.gpr[6] + static_cast(1776)); aot_gpr_31 = (0x0883AC80u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 838u, 0x0883AC80u, 0x08830C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 158u, 0x08830C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AC80u) goto L_0883AC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AC80: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883AC8Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 839u, 0x0883AC8Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AC8Cu) goto L_0883AC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AC8C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(1756), 0u); goto L_0883AC90; @@ -7140,8 +11935,21 @@ L_0883ACA8: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1392)); aot_gpr_31 = (0x0883ACB8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 842u, 0x0883ACB8u, 0x08830A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 139u, 0x08830A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ACB8u) goto L_0883ACB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ACB8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -7155,8 +11963,21 @@ L_0883ACCC: ctx.gpr[17] = (ctx.gpr[20] + static_cast(944)); aot_gpr_31 = (0x0883ACD8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 844u, 0x0883ACD8u, 0x08830A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 139u, 0x08830A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ACD8u) goto L_0883ACD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ACD8: aot_gpr_4 = (aot_gpr_29 + static_cast(1376)); aot_gpr_31 = (0x0883ACE4u); @@ -7167,14 +11988,40 @@ L_0883ACE4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883ACF0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 846u, 0x0883ACF0u, 0x088302CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 41u, 0x088302CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ACF0u) goto L_0883ACF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ACF0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883ACFCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 847u, 0x0883ACFCu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ACFCu) goto L_0883ACFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ACFC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] & 65535u); @@ -7205,8 +12052,21 @@ L_0883AD20: L_0883AD3C: aot_gpr_31 = (0x0883AD44u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 851u, 0x0883AD44u, 0x08830D1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 172u, 0x08830D1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AD44u) goto L_0883AD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AD44: aot_gpr_4 = (aot_gpr_29 + ctx.gpr[16]); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1136))); @@ -7218,8 +12078,21 @@ L_0883AD44: aot_gpr_4 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883AD6Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 852u, 0x0883AD6Cu, 0x08A6828Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 21u, 0x08A6828Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AD6Cu) goto L_0883AD6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AD6C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 65535u); @@ -7244,14 +12117,40 @@ L_0883AD9C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0883ADACu); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 855u, 0x0883ADACu, 0x08830C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 158u, 0x08830C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ADACu) goto L_0883ADAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ADAC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883ADB8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 856u, 0x0883ADB8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ADB8u) goto L_0883ADB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ADB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1756))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7264,14 +12163,40 @@ L_0883ADC4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883ADD0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 858u, 0x0883ADD0u, 0x08830C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 158u, 0x08830C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ADD0u) goto L_0883ADD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ADD0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883ADDCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 859u, 0x0883ADDCu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ADDCu) goto L_0883ADDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ADDC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1756), 0u); goto L_0883ADE0; @@ -7303,8 +12228,21 @@ L_0883AE10: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883AE1Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 864u, 0x0883AE1Cu, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AE1Cu) goto L_0883AE1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AE1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1152), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store8(aot_gpr_30 + static_cast(1884), static_cast(0u)); @@ -7344,8 +12282,21 @@ L_0883AE74: } L_0883AE80: aot_gpr_31 = (0x0883AE88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 868u, 0x0883AE88u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AE88u) goto L_0883AE88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AE88: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1552))); aot_fpr_12 = aot_fpr_12 - ctx.fpr[0]; @@ -7354,8 +12305,21 @@ L_0883AE88: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883AEA4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 869u, 0x0883AEA4u, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AEA4u) goto L_0883AEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AEA4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1552), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -7374,8 +12338,21 @@ L_0883AEBC: aot_mem.aot_direct_store8(aot_gpr_30 + static_cast(1884), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0883AED0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 872u, 0x0883AED0u, 0x08830CA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 161u, 0x08830CA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AED0u) goto L_0883AED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AED0: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; @@ -7482,16 +12459,42 @@ L_0883AF50: ctx.gpr[11] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883AF90u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 885u, 0x0883AF90u, 0x088DBC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 665u, 0x088DBC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AF90u) goto L_0883AF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AF90: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(216))); ctx.fpr[26] = ctx.fpr[0] / ctx.fpr[26]; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883AFA4u); aot_gpr_5 = (512u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 886u, 0x0883AFA4u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AFA4u) goto L_0883AFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AFA4: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1804))); ctx.gpr[21] = (0u | 4u); @@ -7511,8 +12514,21 @@ L_0883AFC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883AFD4u); aot_gpr_5 = (1024u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 888u, 0x0883AFD4u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AFD4u) goto L_0883AFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AFD4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7526,8 +12542,21 @@ L_0883AFDC: L_0883AFE0: aot_gpr_31 = (0x0883AFE8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 891u, 0x0883AFE8u, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883AFE8u) goto L_0883AFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883AFE8: ctx.fpr[22] = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -7540,8 +12569,21 @@ L_0883AFE8: L_0883AFFC: aot_gpr_31 = (0x0883B004u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 893u, 0x0883B004u, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B004u) goto L_0883B004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B004: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(640))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -7557,28 +12599,80 @@ L_0883B014: goto L_0883B018; L_0883B018: aot_gpr_31 = (0x0883B020u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 896u, 0x0883B020u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B020u) goto L_0883B020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B020: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0883B02Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 897u, 0x0883B02Cu, 0x08830CF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 167u, 0x08830CF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B02Cu) goto L_0883B02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B02C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(608))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const float fs = aot_fpr_12; const float ft = ctx.fpr[30]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } aot_gpr_31 = (0x0883B040u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 898u, 0x0883B040u, 0x08830E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 202u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 202u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 202u, 0x08830E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B040u) goto L_0883B040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B040: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883B04Cu); aot_gpr_5 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 899u, 0x0883B04Cu, 0x08830DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 185u, 0x08830DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B04Cu) goto L_0883B04C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B04C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7589,8 +12683,21 @@ L_0883B04C: L_0883B054: aot_gpr_31 = (0x0883B05Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 901u, 0x0883B05Cu, 0x08830DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 188u, 0x08830DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B05Cu) goto L_0883B05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B05C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7642,8 +12749,21 @@ L_0883B0A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883B0B0u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 910u, 0x0883B0B0u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B0B0u) goto L_0883B0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B0B0: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[16] = (ctx.gpr[16] & 255u); @@ -7667,8 +12787,21 @@ L_0883B0C0: L_0883B0C8: aot_gpr_31 = (0x0883B0D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 914u, 0x0883B0D0u, 0x08830CFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 168u, 0x08830CFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B0D0u) goto L_0883B0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B0D0: { const bool branch_taken = ctx.gpr[16] != 0u; if (branch_taken) { @@ -7679,8 +12812,21 @@ L_0883B0D0: L_0883B0D8: aot_gpr_31 = (0x0883B0E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 916u, 0x0883B0E0u, 0x08830CFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 168u, 0x08830CFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B0E0u) goto L_0883B0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B0E0: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -7699,8 +12845,21 @@ L_0883B0E8: L_0883B0F0: aot_gpr_31 = (0x0883B0F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 919u, 0x0883B0F8u, 0x08830D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 170u, 0x08830D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B0F8u) goto L_0883B0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B0F8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); goto L_0883B0FC; @@ -7716,8 +12875,21 @@ L_0883B108: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1844), ctx.gpr[23]); aot_gpr_31 = (0x0883B114u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 922u, 0x0883B114u, 0x08830E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 193u, 0x08830E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B114u) goto L_0883B114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B114: aot_gpr_31 = (0x0883B11Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1848), aot_gpr_2); @@ -7739,8 +12911,21 @@ L_0883B128: L_0883B130: aot_gpr_31 = (0x0883B138u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 926u, 0x0883B138u, 0x08833F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 858u, 0x08833F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B138u) goto L_0883B138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B138: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7774,8 +12959,21 @@ L_0883B158: } L_0883B160: aot_gpr_31 = (0x0883B168u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 932u, 0x0883B168u, 0x08830CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 164u, 0x08830CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B168u) goto L_0883B168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B168: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(1708))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -7791,8 +12989,21 @@ L_0883B168: } L_0883B184: aot_gpr_31 = (0x0883B18Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 934u, 0x0883B18Cu, 0x08830CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 164u, 0x08830CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B18Cu) goto L_0883B18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B18C: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } { const float fs = ctx.fpr[24]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } @@ -7812,14 +13023,40 @@ L_0883B19C: L_0883B1AC: aot_gpr_31 = (0x0883B1B4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 937u, 0x0883B1B4u, 0x08830E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 202u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 202u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 202u, 0x08830E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B1B4u) goto L_0883B1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B1B4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883B1C0u); aot_gpr_5 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 938u, 0x0883B1C0u, 0x08830DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 185u, 0x08830DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B1C0u) goto L_0883B1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B1C0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7834,8 +13071,21 @@ L_0883B1C8: goto L_0883B1D4; L_0883B1D4: aot_gpr_31 = (0x0883B1DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 941u, 0x0883B1DCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B1DCu) goto L_0883B1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B1DC: if (aot_gpr_2 == 0u) { aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1814))); @@ -7844,8 +13094,21 @@ L_0883B1DC: goto L_0883B1E4; L_0883B1E4: aot_gpr_31 = (0x0883B1ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 943u, 0x0883B1ECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B1ECu) goto L_0883B1EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B1EC: if (aot_gpr_2 != aot_gpr_30) { aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1814))); @@ -7860,8 +13123,21 @@ L_0883B1F4: L_0883B1FC: aot_gpr_31 = (0x0883B204u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 946u, 0x0883B204u, 0x0898CFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 351u, 0x0898CFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B204u) goto L_0883B204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B204: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7895,8 +13171,21 @@ L_0883B23C: ctx.gpr[6] = (0u | 3000u); aot_gpr_31 = (0x0883B254u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 950u, 0x0883B254u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B254u) goto L_0883B254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B254: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(96))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -7904,8 +13193,21 @@ L_0883B254: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x0883B26Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 951u, 0x0883B26Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B26Cu) goto L_0883B26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B26C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7931,8 +13233,21 @@ L_0883B280: ctx.gpr[6] = (0u | 3000u); aot_gpr_31 = (0x0883B2A4u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 954u, 0x0883B2A4u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B2A4u) goto L_0883B2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B2A4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(96))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -7940,8 +13255,21 @@ L_0883B2A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x0883B2BCu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 955u, 0x0883B2BCu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B2BCu) goto L_0883B2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B2BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8042,38 +13370,116 @@ L_0883B38C: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883B398u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 967u, 0x0883B398u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B398u) goto L_0883B398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B398: aot_gpr_31 = (0x0883B3A0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 968u, 0x0883B3A0u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B3A0u) goto L_0883B3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B3A0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883B3ACu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 969u, 0x0883B3ACu, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B3ACu) goto L_0883B3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B3AC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[16] = (aot_gpr_29 + static_cast(1440)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883B3C0u); aot_gpr_5 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 970u, 0x0883B3C0u, 0x08830A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 140u, 0x08830A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B3C0u) goto L_0883B3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B3C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883B3CCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 971u, 0x0883B3CCu, 0x08830A68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 141u, 0x08830A68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B3CCu) goto L_0883B3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B3CC: aot_gpr_31 = (0x0883B3D4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 972u, 0x0883B3D4u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B3D4u) goto L_0883B3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B3D4: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8086,19 +13492,58 @@ L_0883B3D4: aot_fpr_13 = aot_fpr_13 / aot_fpr_14; aot_gpr_31 = (0x0883B400u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 973u, 0x0883B400u, 0x088305BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 77u, 0x088305BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B400u) goto L_0883B400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B400: aot_gpr_31 = (0x0883B408u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 974u, 0x0883B408u, 0x088304E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 69u, 0x088304E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B408u) goto L_0883B408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B408: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0883B414u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 975u, 0x0883B414u, 0x08830D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 169u, 0x08830D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B414u) goto L_0883B414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B414: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -8150,8 +13595,21 @@ L_0883B474: L_0883B48C: aot_gpr_31 = (0x0883B494u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 980u, 0x0883B494u, 0x08830DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 188u, 0x08830DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B494u) goto L_0883B494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B494: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8166,8 +13624,21 @@ L_0883B4A0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x0883B4ACu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 983u, 0x0883B4ACu, 0x088305BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 77u, 0x088305BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B4ACu) goto L_0883B4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B4AC: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(600))); { const bool branch_taken = 0u == 0u; @@ -8188,8 +13659,21 @@ L_0883B4C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883B4D0u); aot_gpr_5 = (8192u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 987u, 0x0883B4D0u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B4D0u) goto L_0883B4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B4D0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] != 0u; @@ -8202,8 +13686,21 @@ L_0883B4D0: L_0883B4DC: aot_gpr_31 = (0x0883B4E4u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 989u, 0x0883B4E4u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B4E4u) goto L_0883B4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B4E4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8235,16 +13732,42 @@ L_0883B500: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0883B528u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 993u, 0x0883B528u, 0x0884A620u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 452u, 0x0884A620u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B528u) goto L_0883B528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B528: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); goto L_0883B52C; L_0883B52C: aot_gpr_31 = (0x0883B534u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 995u, 0x0883B534u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B534u) goto L_0883B534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B534: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8277,8 +13800,21 @@ L_0883B554: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0883B57Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 999u, 0x0883B57Cu, 0x0884A620u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 452u, 0x0884A620u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B57Cu) goto L_0883B57C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B57C: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -8290,8 +13826,21 @@ L_0883B584: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); aot_gpr_31 = (0x0883B590u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1001u, 0x0883B590u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B590u) goto L_0883B590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B590: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8323,13 +13872,39 @@ L_0883B5AC: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0883B5D4u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1005u, 0x0883B5D4u, 0x0884A620u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 452u, 0x0884A620u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B5D4u) goto L_0883B5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B5D4: aot_gpr_31 = (0x0883B5DCu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_30 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1006u, 0x0883B5DCu, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B5DCu) goto L_0883B5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B5DC: ctx.gpr[8] = (0u | 0u); ctx.gpr[9] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_30 + static_cast(86)))))); @@ -8415,8 +13990,21 @@ L_0883B67C: L_0883B684: aot_gpr_31 = (0x0883B68Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1017u, 0x0883B68Cu, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B68Cu) goto L_0883B68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B68C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8636,8 +14224,21 @@ L_0883B7D0: L_0883B7DC: aot_gpr_31 = (0x0883B7E4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1045u, 0x0883B7E4u, 0x08830E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 196u, 0x08830E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B7E4u) goto L_0883B7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B7E4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8649,8 +14250,21 @@ L_0883B7EC: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x0883B7F8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-6640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1047u, 0x0883B7F8u, 0x0898CE74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 319u, 0x0898CE74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B7F8u) goto L_0883B7F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B7F8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8677,8 +14291,21 @@ L_0883B808: L_0883B810: aot_gpr_31 = (0x0883B818u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1051u, 0x0883B818u, 0x08830E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 196u, 0x08830E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B818u) goto L_0883B818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B818: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8689,8 +14316,21 @@ L_0883B818: L_0883B820: aot_gpr_31 = (0x0883B828u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1053u, 0x0883B828u, 0x08830EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 207u, 0x08830EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B828u) goto L_0883B828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B828: aot_gpr_31 = (0x0883B830u); aot_gpr_4 = (aot_gpr_30 | 0u); @@ -8721,14 +14361,40 @@ L_0883B854: L_0883B858: aot_gpr_31 = (0x0883B860u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1058u, 0x0883B860u, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B860u) goto L_0883B860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B860: ctx.gpr[16] = (aot_gpr_2 & 255u); aot_gpr_31 = (0x0883B86Cu); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1059u, 0x0883B86Cu, 0x08830E24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 195u, 0x08830E24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B86Cu) goto L_0883B86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B86C: { const bool branch_taken = aot_gpr_2 != ctx.gpr[21]; if (branch_taken) { @@ -8740,8 +14406,21 @@ L_0883B874: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1792))); aot_gpr_31 = (0x0883B880u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1061u, 0x0883B880u, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B880u) goto L_0883B880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B880: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8763,8 +14442,21 @@ L_0883B8A4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883B8B0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1064u, 0x0883B8B0u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B8B0u) goto L_0883B8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B8B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8790,8 +14482,21 @@ L_0883B8C0: L_0883B8D0: aot_gpr_31 = (0x0883B8D8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1068u, 0x0883B8D8u, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B8D8u) goto L_0883B8D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B8D8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8813,8 +14518,21 @@ L_0883B8FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883B908u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1071u, 0x0883B908u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B908u) goto L_0883B908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B908: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8830,26 +14548,78 @@ L_0883B910: L_0883B918: aot_gpr_31 = (0x0883B920u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1074u, 0x0883B920u, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B920u) goto L_0883B920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B920: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883B92Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1075u, 0x0883B92Cu, 0x08830DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 184u, 0x08830DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B92Cu) goto L_0883B92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B92C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883B938u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1076u, 0x0883B938u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B938u) goto L_0883B938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B938: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883B944u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1077u, 0x0883B944u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B944u) goto L_0883B944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B944: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -8893,8 +14663,21 @@ L_0883B978: AOT_REGCACHE_SYNC_OUT(); return; L_0883B984: aot_gpr_31 = (0x0883B98Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1084u, 0x0883B98Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B98Cu) goto L_0883B98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B98C: { const bool branch_taken = aot_gpr_30 != aot_gpr_2; if (branch_taken) { @@ -8905,8 +14688,21 @@ L_0883B98C: L_0883B994: aot_gpr_31 = (0x0883B99Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1086u, 0x0883B99Cu, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883B99Cu) goto L_0883B99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883B99C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9078,14 +14874,40 @@ L_0883BAD4: aot_gpr_5 = (aot_gpr_30 | 0u); aot_gpr_31 = (0x0883BAE4u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1109u, 0x0883BAE4u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BAE4u) goto L_0883BAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BAE4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883BAF0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1110u, 0x0883BAF0u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BAF0u) goto L_0883BAF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BAF0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (15897u << 16u); @@ -9122,8 +14944,21 @@ L_0883BB30: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0883BB48u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1114u, 0x0883BB48u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BB48u) goto L_0883BB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BB48: aot_gpr_4 = (16230u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); @@ -9136,8 +14971,21 @@ L_0883BB48: { const float fs = ctx.fpr[26]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x0883BB74u); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1115u, 0x0883BB74u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BB74u) goto L_0883BB74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BB74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1608), std::bit_cast(ctx.fpr[0])); ctx.gpr[6] = (aot_gpr_29 + static_cast(1600)); @@ -9153,15 +15001,41 @@ L_0883BB74: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883BBACu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1116u, 0x0883BBACu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BBACu) goto L_0883BBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BBAC: ctx.gpr[20] = (aot_gpr_29 + static_cast(1616)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883BBBCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1117u, 0x0883BBBCu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BBBCu) goto L_0883BBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BBBC: aot_gpr_4 = (48928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9172,8 +15046,21 @@ L_0883BBBC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883BBE0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1118u, 0x0883BBE0u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BBE0u) goto L_0883BBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BBE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1616))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -9181,8 +15068,21 @@ L_0883BBE0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883BBF8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1119u, 0x0883BBF8u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BBF8u) goto L_0883BBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BBF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1620))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -9192,8 +15092,21 @@ L_0883BBF8: { const float fs = ctx.fpr[26]; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x0883BC18u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1120u, 0x0883BC18u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BC18u) goto L_0883BC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BC18: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1624))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -9217,8 +15130,21 @@ L_0883BC3C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883BC64u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1122u, 0x0883BC64u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BC64u) goto L_0883BC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BC64: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -9239,13 +15165,39 @@ L_0883BC78: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883BCA4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1124u, 0x0883BCA4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BCA4u) goto L_0883BCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BCA4: aot_gpr_31 = (0x0883BCACu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(1752))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1125u, 0x0883BCACu, 0x08830898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 121u, 0x08830898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BCACu) goto L_0883BCAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BCAC: aot_fpr_12 = std::bit_cast(aot_gpr_2); { const bool branch_taken = static_cast(aot_gpr_2) >= 0; @@ -9321,8 +15273,21 @@ L_0883BD34: L_0883BD48: aot_gpr_31 = (0x0883BD50u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1135u, 0x0883BD50u, 0x08AFFEFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 947u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 947u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 947u, 0x08AFFEFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BD50u) goto L_0883BD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BD50: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_30 + static_cast(618)))))); aot_gpr_4 = (aot_gpr_4 & 32u); @@ -9345,8 +15310,21 @@ L_0883BD78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1804), ctx.gpr[18]); aot_gpr_31 = (0x0883BD84u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1138u, 0x0883BD84u, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BD84u) goto L_0883BD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BD84: if (aot_gpr_2 == 0u) { ctx.fpr[26] = std::bit_cast(0u); @@ -9370,8 +15348,21 @@ L_0883BDA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1804), ctx.gpr[18]); aot_gpr_31 = (0x0883BDB0u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1142u, 0x0883BDB0u, 0x08B1096Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 149u, 0x08B1096Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BDB0u) goto L_0883BDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BDB0: ctx.fpr[26] = std::bit_cast(0u); goto L_0883BDB4; @@ -9384,8 +15375,21 @@ L_0883BDB4: L_0883BDC0: aot_gpr_31 = (0x0883BDC8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1145u, 0x0883BDC8u, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BDC8u) goto L_0883BDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BDC8: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -9435,8 +15439,21 @@ L_0883BE3C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0883BE48u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1150u, 0x0883BE48u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BE48u) goto L_0883BE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BE48: { const bool branch_taken = aot_gpr_2 != ctx.gpr[20]; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(96))); @@ -9453,8 +15470,21 @@ L_0883BE50: ctx.gpr[6] = (0u | 14u); aot_gpr_31 = (0x0883BE6Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1152u, 0x0883BE6Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BE6Cu) goto L_0883BE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BE6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9470,8 +15500,21 @@ L_0883BE74: ctx.gpr[6] = (0u | 13u); aot_gpr_31 = (0x0883BE90u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1154u, 0x0883BE90u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BE90u) goto L_0883BE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BE90: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -9486,8 +15529,21 @@ L_0883BEA0: L_0883BEA4: aot_gpr_31 = (0x0883BEACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1157u, 0x0883BEACu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BEACu) goto L_0883BEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BEAC: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -9502,8 +15558,21 @@ L_0883BEAC: L_0883BEC4: aot_gpr_31 = (0x0883BECCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1159u, 0x0883BECCu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BECCu) goto L_0883BECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BECC: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -9515,8 +15584,21 @@ L_0883BECC: L_0883BED8: aot_gpr_31 = (0x0883BEE0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1161u, 0x0883BEE0u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BEE0u) goto L_0883BEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BEE0: { const bool branch_taken = aot_gpr_2 != ctx.gpr[19]; if (branch_taken) { @@ -9546,8 +15628,21 @@ L_0883BEF8: L_0883BF0C: aot_gpr_31 = (0x0883BF14u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1165u, 0x0883BF14u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BF14u) goto L_0883BF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BF14: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9579,8 +15674,21 @@ L_0883BF3C: L_0883BF44: aot_gpr_31 = (0x0883BF4Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1169u, 0x0883BF4Cu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BF4Cu) goto L_0883BF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BF4C: { const bool branch_taken = aot_gpr_2 != ctx.gpr[21]; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1552))); @@ -9617,8 +15725,21 @@ L_0883BF78: L_0883BF8C: aot_gpr_31 = (0x0883BF94u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1174u, 0x0883BF94u, 0x08830E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 191u, 0x08830E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BF94u) goto L_0883BF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BF94: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9632,8 +15753,21 @@ L_0883BF94: L_0883BFAC: aot_gpr_31 = (0x0883BFB4u); aot_gpr_4 = (aot_gpr_30 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1176u, 0x0883BFB4u, 0x08830E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 191u, 0x08830E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BFB4u) goto L_0883BFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BFB4: aot_gpr_4 = (48896u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9661,8 +15795,21 @@ L_0883BFD4: L_0883BFDC: aot_gpr_31 = (0x0883BFE4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_30 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0013->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0013_entry, 1180u, 0x0883BFE4u, 0x08830CACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 162u, 0x08830CACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883BFE4u) goto L_0883BFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883BFE4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0014.cpp b/profiles/vcs/generated/generated_unit_0014.cpp index f32727a..4b910fd 100644 --- a/profiles/vcs/generated/generated_unit_0014.cpp +++ b/profiles/vcs/generated/generated_unit_0014.cpp @@ -965,6 +965,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0883C004u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1025,8 +1049,21 @@ L_0883C030: L_0883C050: aot_gpr_31 = (0x0883C058u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 7u, 0x0883C058u, 0x08830CA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 161u, 0x08830CA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C058u) goto L_0883C058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C058: aot_gpr_4 = (0u | 52u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1069,14 +1106,40 @@ L_0883C0A0: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883C0B8u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1768))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 12u, 0x0883C0B8u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C0B8u) goto L_0883C0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C0B8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883C0C4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 13u, 0x0883C0C4u, 0x08830574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 74u, 0x08830574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C0C4u) goto L_0883C0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C0C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(628))); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -1097,14 +1160,40 @@ L_0883C0E4: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883C0F8u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1764))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 15u, 0x0883C0F8u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C0F8u) goto L_0883C0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C0F8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883C104u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 16u, 0x0883C104u, 0x08830574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 74u, 0x08830574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C104u) goto L_0883C104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C104: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(628))); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -1162,8 +1251,21 @@ L_0883C160: L_0883C168: aot_gpr_31 = (0x0883C170u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 24u, 0x0883C170u, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C170u) goto L_0883C170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C170: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (15395u << 16u); @@ -1179,8 +1281,21 @@ L_0883C170: } L_0883C190: aot_gpr_31 = (0x0883C198u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 26u, 0x0883C198u, 0x0883053Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 72u, 0x0883053Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C198u) goto L_0883C198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C198: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(208))); @@ -1210,15 +1325,41 @@ L_0883C1BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1636), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0883C1F4u); aot_gpr_5 = (aot_gpr_29 + static_cast(1636)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 28u, 0x0883C1F4u, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C1F4u) goto L_0883C1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C1F4: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.gpr[16] = (aot_gpr_4 & 255u); aot_gpr_31 = (0x0883C208u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 29u, 0x0883C208u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C208u) goto L_0883C208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C208: aot_gpr_4 = (18076u << 16u); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -1240,8 +1381,21 @@ L_0883C238: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883C24Cu); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 31u, 0x0883C24Cu, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C24Cu) goto L_0883C24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C24C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (0u + static_cast(-17)); @@ -1265,15 +1419,41 @@ L_0883C254: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1644), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0883C28Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(1644)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 33u, 0x0883C28Cu, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C28Cu) goto L_0883C28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C28C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); ctx.gpr[16] = (aot_gpr_4 & 255u); aot_gpr_31 = (0x0883C2A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 34u, 0x0883C2A0u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C2A0u) goto L_0883C2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C2A0: aot_gpr_4 = (17820u << 16u); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -1295,8 +1475,21 @@ L_0883C2D0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883C2E4u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 36u, 0x0883C2E4u, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C2E4u) goto L_0883C2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C2E4: aot_gpr_4 = (0u + static_cast(-17)); goto L_0883C2E8; @@ -1345,8 +1538,21 @@ L_0883C330: L_0883C33C: aot_gpr_31 = (0x0883C344u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 43u, 0x0883C344u, 0x08B4652Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 484u, 0x08B4652Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C344u) goto L_0883C344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C344: aot_gpr_31 = (0x0883C34Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -1357,8 +1563,21 @@ L_0883C34C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883C35Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 45u, 0x0883C35Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C35Cu) goto L_0883C35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C35C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(48))); aot_gpr_4 = (17601u << 16u); @@ -1387,8 +1606,21 @@ L_0883C390: L_0883C398: aot_gpr_31 = (0x0883C3A0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 49u, 0x0883C3A0u, 0x088307E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 109u, 0x088307E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C3A0u) goto L_0883C3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C3A0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -1402,8 +1634,21 @@ L_0883C3B4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0883C3C0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 51u, 0x0883C3C0u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C3C0u) goto L_0883C3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C3C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1438,8 +1683,21 @@ L_0883C3F8: L_0883C400: aot_gpr_31 = (0x0883C408u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 56u, 0x0883C408u, 0x088307E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 109u, 0x088307E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C408u) goto L_0883C408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C408: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -1453,8 +1711,21 @@ L_0883C41C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0883C428u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 58u, 0x0883C428u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C428u) goto L_0883C428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C428: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(52))); aot_gpr_4 = (17645u << 16u); @@ -1487,8 +1758,21 @@ L_0883C468: L_0883C470: aot_gpr_31 = (0x0883C478u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 62u, 0x0883C478u, 0x088307E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 109u, 0x088307E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C478u) goto L_0883C478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C478: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -1514,8 +1798,21 @@ L_0883C4A0: aot_fpr_12 = aot_fpr_13 - aot_fpr_12; aot_gpr_31 = (0x0883C4B8u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 65u, 0x0883C4B8u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C4B8u) goto L_0883C4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C4B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1550,8 +1847,21 @@ L_0883C4EC: aot_fpr_12 = aot_fpr_13 - aot_fpr_12; aot_gpr_31 = (0x0883C504u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 69u, 0x0883C504u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C504u) goto L_0883C504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C504: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1590,8 +1900,21 @@ L_0883C548: L_0883C550: aot_gpr_31 = (0x0883C558u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 74u, 0x0883C558u, 0x088307E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 109u, 0x088307E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C558u) goto L_0883C558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C558: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -1608,8 +1931,21 @@ L_0883C56C: aot_fpr_12 = aot_fpr_13 - aot_fpr_12; aot_gpr_31 = (0x0883C584u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 76u, 0x0883C584u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C584u) goto L_0883C584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C584: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(0u); @@ -1637,14 +1973,40 @@ L_0883C5A8: aot_fpr_12 = aot_fpr_13 - aot_fpr_12; aot_gpr_31 = (0x0883C5C0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 79u, 0x0883C5C0u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C5C0u) goto L_0883C5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C5C0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0883C5CCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 80u, 0x0883C5CCu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C5CCu) goto L_0883C5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C5CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -1660,8 +2022,21 @@ L_0883C5DC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883C5F0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 82u, 0x0883C5F0u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C5F0u) goto L_0883C5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C5F0: ctx.gpr[16] = (ctx.gpr[30] + static_cast(112)); aot_gpr_17 = (aot_gpr_29 + static_cast(1648)); @@ -1676,8 +2051,21 @@ L_0883C60C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883C618u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 84u, 0x0883C618u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C618u) goto L_0883C618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C618: ctx.gpr[16] = (ctx.gpr[30] + static_cast(128)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1691,8 +2079,21 @@ L_0883C630: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883C63Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 86u, 0x0883C63Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C63Cu) goto L_0883C63C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C63C: ctx.gpr[16] = (ctx.gpr[30] + static_cast(144)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1706,8 +2107,21 @@ L_0883C654: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883C660u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 88u, 0x0883C660u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C660u) goto L_0883C660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C660: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1726,8 +2140,21 @@ L_0883C668: L_0883C674: aot_gpr_31 = (0x0883C67Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 91u, 0x0883C67Cu, 0x08830E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 191u, 0x08830E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C67Cu) goto L_0883C67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C67C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[0]) || std::isnan(aot_fpr_20)) && ctx.fpr[0] == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -1760,8 +2187,21 @@ L_0883C6A4: L_0883C6B0: aot_gpr_31 = (0x0883C6B8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 96u, 0x0883C6B8u, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C6B8u) goto L_0883C6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C6B8: aot_gpr_4 = (15267u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -1776,8 +2216,21 @@ L_0883C6B8: L_0883C6D4: aot_gpr_31 = (0x0883C6DCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 98u, 0x0883C6DCu, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C6DCu) goto L_0883C6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C6DC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -1794,8 +2247,21 @@ L_0883C6EC: L_0883C6F4: aot_gpr_31 = (0x0883C6FCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 101u, 0x0883C6FCu, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C6FCu) goto L_0883C6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C6FC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -1807,8 +2273,21 @@ L_0883C6FC: L_0883C70C: aot_gpr_31 = (0x0883C714u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 103u, 0x0883C714u, 0x08830B34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 151u, 0x08830B34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C714u) goto L_0883C714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C714: aot_fpr_20 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -1821,8 +2300,21 @@ L_0883C714: L_0883C728: aot_gpr_31 = (0x0883C730u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 105u, 0x0883C730u, 0x08830B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 152u, 0x08830B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C730u) goto L_0883C730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C730: aot_gpr_31 = (0x0883C738u); ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -1878,8 +2370,21 @@ L_0883C794: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883C7A8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 112u, 0x0883C7A8u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C7A8u) goto L_0883C7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C7A8: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(120), std::bit_cast(aot_fpr_20)); goto L_0883C7AC; @@ -1888,8 +2393,21 @@ L_0883C7AC: aot_gpr_17 = (512u << 16u); aot_gpr_31 = (0x0883C7BCu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 114u, 0x0883C7BCu, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C7BCu) goto L_0883C7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C7BC: { const bool branch_taken = aot_gpr_2 == 0u; aot_fpr_20 = std::bit_cast(0u); @@ -1919,8 +2437,21 @@ L_0883C7D4: } L_0883C7E8: aot_gpr_31 = (0x0883C7F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 118u, 0x0883C7F0u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C7F0u) goto L_0883C7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C7F0: aot_gpr_4 = (49152u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); @@ -1929,13 +2460,39 @@ L_0883C7F0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883C80Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 119u, 0x0883C80Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C80Cu) goto L_0883C80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C80C: aot_gpr_31 = (0x0883C814u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 120u, 0x0883C814u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C814u) goto L_0883C814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C814: aot_gpr_4 = (47875u << 16u); aot_gpr_4 = (aot_gpr_4 | 4719u); @@ -1945,8 +2502,21 @@ L_0883C814: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(120), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0883C834u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 121u, 0x0883C834u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C834u) goto L_0883C834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C834: aot_gpr_4 = (47441u << 16u); aot_gpr_4 = (aot_gpr_4 | 46871u); @@ -1974,8 +2544,21 @@ L_0883C880: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0883C890u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 123u, 0x0883C890u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C890u) goto L_0883C890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C890: ctx.gpr[19] = (aot_gpr_29 + static_cast(1696)); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -2000,8 +2583,21 @@ L_0883C8A8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0883C8E0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 125u, 0x0883C8E0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C8E0u) goto L_0883C8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C8E0: aot_gpr_31 = (0x0883C8E8u); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -2011,8 +2607,21 @@ L_0883C8E8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883C8F4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 127u, 0x0883C8F4u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C8F4u) goto L_0883C8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C8F4: aot_gpr_4 = (16672u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2027,8 +2636,21 @@ L_0883C8F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0883C928u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 128u, 0x0883C928u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C928u) goto L_0883C928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C928: if (aot_gpr_2 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); @@ -2077,8 +2699,21 @@ L_0883C96C: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x0883C990u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 135u, 0x0883C990u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C990u) goto L_0883C990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C990: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 | ctx.gpr[16]); @@ -2089,8 +2724,21 @@ L_0883C99C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(352))); aot_gpr_31 = (0x0883C9ACu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 137u, 0x0883C9ACu, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C9ACu) goto L_0883C9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C9AC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2101,8 +2749,21 @@ L_0883C9AC: L_0883C9B4: aot_gpr_31 = (0x0883C9BCu); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(1608))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 139u, 0x0883C9BCu, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C9BCu) goto L_0883C9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C9BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(1640))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -2113,14 +2774,40 @@ L_0883C9BC: ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883C9E0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 140u, 0x0883C9E0u, 0x0883021Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 33u, 0x0883021Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C9E0u) goto L_0883C9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C9E0: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(1608), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0883C9ECu); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(1616))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 141u, 0x0883C9ECu, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883C9ECu) goto L_0883C9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883C9EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(1640))); aot_gpr_4 = (49171u << 16u); @@ -2132,8 +2819,21 @@ L_0883C9EC: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(1616), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0883CA14u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 142u, 0x0883CA14u, 0x0883021Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 33u, 0x0883021Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CA14u) goto L_0883CA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CA14: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(1616), std::bit_cast(ctx.fpr[0])); ctx.gpr[23] = (0u | 1u); @@ -2141,20 +2841,59 @@ L_0883CA14: L_0883CA1C: aot_gpr_31 = (0x0883CA24u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 144u, 0x0883CA24u, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CA24u) goto L_0883CA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CA24: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883CA30u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 145u, 0x0883CA30u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CA30u) goto L_0883CA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CA30: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0883CA3Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 146u, 0x0883CA3Cu, 0x088304BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 68u, 0x088304BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CA3Cu) goto L_0883CA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CA3C: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); @@ -2169,8 +2908,21 @@ L_0883CA50: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0883CA64u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 148u, 0x0883CA64u, 0x08830268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 38u, 0x08830268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CA64u) goto L_0883CA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CA64: aot_gpr_31 = (0x0883CA6Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -2181,14 +2933,40 @@ L_0883CA6C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883CA7Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 150u, 0x0883CA7Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CA7Cu) goto L_0883CA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CA7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(352))); aot_gpr_31 = (0x0883CA88u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 151u, 0x0883CA88u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CA88u) goto L_0883CA88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CA88: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2199,8 +2977,21 @@ L_0883CA88: L_0883CA90: aot_gpr_31 = (0x0883CA98u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 153u, 0x0883CA98u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CA98u) goto L_0883CA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CA98: aot_gpr_31 = (0x0883CAA0u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2210,26 +3001,78 @@ L_0883CAA0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883CAACu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 155u, 0x0883CAACu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CAACu) goto L_0883CAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CAAC: aot_gpr_17 = (aot_gpr_29 + static_cast(1728)); aot_gpr_31 = (0x0883CAB8u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 156u, 0x0883CAB8u, 0x088307D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 107u, 0x088307D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CAB8u) goto L_0883CAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CAB8: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883CAC4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 157u, 0x0883CAC4u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CAC4u) goto L_0883CAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CAC4: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0883CAD0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 158u, 0x0883CAD0u, 0x088304BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 68u, 0x088304BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CAD0u) goto L_0883CAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CAD0: aot_gpr_4 = (aot_gpr_29 + static_cast(1744)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -2243,14 +3086,40 @@ L_0883CAE4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883CAF4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 160u, 0x0883CAF4u, 0x08830268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 38u, 0x08830268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CAF4u) goto L_0883CAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CAF4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883CB00u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 161u, 0x0883CB00u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CB00u) goto L_0883CB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CB00: aot_gpr_17 = (0u | 0u); ctx.gpr[20] = (aot_gpr_29 + static_cast(1760)); @@ -2318,28 +3187,80 @@ L_0883CB7C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0883CB8Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 170u, 0x0883CB8Cu, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CB8Cu) goto L_0883CB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CB8C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883CB98u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 171u, 0x0883CB98u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CB98u) goto L_0883CB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CB98: ctx.gpr[16] = (ctx.gpr[16] + static_cast(160)); aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883CBACu); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 172u, 0x0883CBACu, 0x08830C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 158u, 0x08830C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CBACu) goto L_0883CBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CBAC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883CBB8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 173u, 0x0883CBB8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CBB8u) goto L_0883CBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CBB8: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1892))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2361,16 +3282,42 @@ L_0883CBD0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883CBDCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 176u, 0x0883CBDCu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CBDCu) goto L_0883CBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CBDC: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_5 = (aot_gpr_29 + static_cast(288)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883CBF0u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 177u, 0x0883CBF0u, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CBF0u) goto L_0883CBF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CBF0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(1636), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1604))); @@ -2385,16 +3332,42 @@ L_0883CC00: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883CC0Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 179u, 0x0883CC0Cu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CC0Cu) goto L_0883CC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CC0C: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_5 = (aot_gpr_29 + static_cast(304)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883CC20u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 180u, 0x0883CC20u, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CC20u) goto L_0883CC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CC20: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(1636), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1604))); @@ -2427,15 +3400,41 @@ L_0883CC54: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x0883CC64u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 185u, 0x0883CC64u, 0x088455CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 246u, 0x088455CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CC64u) goto L_0883CC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CC64: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x0883CC74u); ctx.gpr[6] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 186u, 0x0883CC74u, 0x088455CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 246u, 0x088455CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CC74u) goto L_0883CC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CC74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2455,8 +3454,21 @@ L_0883CC88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(352))); aot_gpr_31 = (0x0883CC94u); aot_gpr_5 = (512u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 189u, 0x0883CC94u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CC94u) goto L_0883CC94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CC94: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2469,43 +3481,121 @@ L_0883CC9C: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x0883CCACu); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 191u, 0x0883CCACu, 0x088455CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 246u, 0x088455CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CCACu) goto L_0883CCAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CCAC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x0883CCBCu); ctx.gpr[6] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 192u, 0x0883CCBCu, 0x088455CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 246u, 0x088455CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CCBCu) goto L_0883CCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CCBC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 11u); aot_gpr_31 = (0x0883CCCCu); ctx.gpr[6] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 193u, 0x0883CCCCu, 0x088455CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 246u, 0x088455CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CCCCu) goto L_0883CCCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CCCC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x0883CCDCu); ctx.gpr[6] = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 194u, 0x0883CCDCu, 0x088455CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 246u, 0x088455CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CCDCu) goto L_0883CCDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CCDC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x0883CCECu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 195u, 0x0883CCECu, 0x088455CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 246u, 0x088455CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CCECu) goto L_0883CCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CCEC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 19u); aot_gpr_31 = (0x0883CCFCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 196u, 0x0883CCFCu, 0x088455CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 246u, 0x088455CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CCFCu) goto L_0883CCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CCFC: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1856), aot_run_words); @@ -2528,8 +3618,8 @@ L_0883CCFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1920)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883CD44: @@ -2539,8 +3629,21 @@ L_0883CD44: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_17 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x0883CD80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 198u, 0x0883CD80u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CD80u) goto L_0883CD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CD80: { const bool branch_taken = aot_gpr_2 != ctx.gpr[16]; if (branch_taken) { @@ -2596,8 +3699,21 @@ L_0883CDB8: L_0883CDDC: aot_gpr_31 = (0x0883CDE4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 202u, 0x0883CDE4u, 0x0898D168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 392u, 0x0898D168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CDE4u) goto L_0883CDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CDE4: aot_gpr_4 = (16256u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); @@ -2676,8 +3792,21 @@ L_0883CE58: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883CE64u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 213u, 0x0883CE64u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CE64u) goto L_0883CE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CE64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2693,15 +3822,41 @@ L_0883CE6C: L_0883CE74: aot_gpr_31 = (0x0883CE7Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 216u, 0x0883CE7Cu, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CE7Cu) goto L_0883CE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CE7C: aot_gpr_5 = (0u < aot_gpr_2 ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x0883CE8Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 217u, 0x0883CE8Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CE8Cu) goto L_0883CE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CE8C: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(848))); aot_gpr_31 = (0x0883CE98u); @@ -2711,8 +3866,21 @@ L_0883CE8C: L_0883CE98: aot_gpr_31 = (0x0883CEA0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 219u, 0x0883CEA0u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CEA0u) goto L_0883CEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CEA0: aot_gpr_4 = (0u - aot_gpr_2); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2757,8 +3925,21 @@ L_0883CF14: L_0883CF20: aot_gpr_31 = (0x0883CF28u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 223u, 0x0883CF28u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CF28u) goto L_0883CF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CF28: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883CF34u); @@ -2768,8 +3949,21 @@ L_0883CF28: L_0883CF34: aot_gpr_31 = (0x0883CF3Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 225u, 0x0883CF3Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CF3Cu) goto L_0883CF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CF3C: aot_gpr_4 = (ctx.gpr[19] - aot_gpr_2); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2824,8 +4018,21 @@ L_0883CFAC: L_0883CFB4: aot_gpr_31 = (0x0883CFBCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 232u, 0x0883CFBCu, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CFBCu) goto L_0883CFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CFBC: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2846,8 +4053,21 @@ L_0883CFDC: L_0883CFE4: aot_gpr_31 = (0x0883CFECu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 235u, 0x0883CFECu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883CFECu) goto L_0883CFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883CFEC: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2866,8 +4086,21 @@ L_0883D004: L_0883D00C: aot_gpr_31 = (0x0883D014u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 238u, 0x0883D014u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D014u) goto L_0883D014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D014: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2880,8 +4113,21 @@ L_0883D014: L_0883D02C: aot_gpr_31 = (0x0883D034u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 240u, 0x0883D034u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D034u) goto L_0883D034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D034: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3210,8 +4456,21 @@ L_0883D270: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883D280u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 281u, 0x0883D280u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D280u) goto L_0883D280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D280: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(604), std::bit_cast(ctx.fpr[28])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); @@ -3231,8 +4490,21 @@ L_0883D298: L_0883D2A0: aot_gpr_31 = (0x0883D2A8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 284u, 0x0883D2A8u, 0x0894CE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 221u, 0x0894CE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D2A8u) goto L_0883D2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D2A8: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3275,8 +4547,21 @@ L_0883D2CC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0883D2F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 286u, 0x0883D2F0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D2F0u) goto L_0883D2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D2F0: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -3293,8 +4578,8 @@ L_0883D2F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0883D320: @@ -3313,13 +4598,39 @@ L_0883D320: L_0883D370: aot_gpr_31 = (0x0883D378u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 289u, 0x0883D378u, 0x08A86D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 414u, 0x08A86D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D378u) goto L_0883D378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D378: aot_gpr_31 = (0x0883D380u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 290u, 0x0883D380u, 0x08AFEF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 662u, 0x08AFEF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D380u) goto L_0883D380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D380: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(86)))))); ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -3351,8 +4662,21 @@ L_0883D3A4: L_0883D3BC: aot_gpr_31 = (0x0883D3C4u); aot_gpr_4 = (aot_gpr_29 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 294u, 0x0883D3C4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D3C4u) goto L_0883D3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D3C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(184))); aot_gpr_4 = (16384u << 16u); @@ -3378,8 +4702,21 @@ L_0883D3FC: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883D418u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 296u, 0x0883D418u, 0x08B09D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 371u, 0x08B09D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D418u) goto L_0883D418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D418: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(86)))))); aot_gpr_5 = (0u + static_cast(-943)); @@ -3393,8 +4730,21 @@ L_0883D428: aot_gpr_4 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x0883D434u); aot_gpr_5 = (aot_gpr_17 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 298u, 0x0883D434u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D434u) goto L_0883D434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D434: ctx.gpr[16] = (aot_gpr_2 | 0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(224)); @@ -3414,8 +4764,21 @@ L_0883D460: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883D470u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 300u, 0x0883D470u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D470u) goto L_0883D470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D470: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3423,8 +4786,21 @@ L_0883D470: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883D488u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 301u, 0x0883D488u, 0x089CF3B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 583u, 0x089CF3B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D488u) goto L_0883D488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D488: aot_gpr_31 = (0x0883D490u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3440,8 +4816,21 @@ L_0883D49C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883D4A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 304u, 0x0883D4A8u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D4A8u) goto L_0883D4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D4A8: aot_gpr_4 = (15286u << 16u); aot_gpr_4 = (aot_gpr_4 | 2922u); @@ -3450,14 +4839,40 @@ L_0883D4A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(256), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0883D4C4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 305u, 0x0883D4C4u, 0x08830E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 202u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 202u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 202u, 0x08830E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D4C4u) goto L_0883D4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D4C4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883D4D0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 306u, 0x0883D4D0u, 0x08830DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 185u, 0x08830DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D4D0u) goto L_0883D4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D4D0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3533,8 +4948,21 @@ L_0883D55C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883D56Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 315u, 0x0883D56Cu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D56Cu) goto L_0883D56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D56C: aot_gpr_4 = (aot_gpr_29 + static_cast(320)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -3556,8 +4984,21 @@ L_0883D580: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883D5B0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 317u, 0x0883D5B0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D5B0u) goto L_0883D5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D5B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3611,8 +5052,21 @@ L_0883D60C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883D61Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 324u, 0x0883D61Cu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D61Cu) goto L_0883D61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D61C: aot_gpr_4 = (aot_gpr_29 + static_cast(272)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -3634,8 +5088,21 @@ L_0883D630: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883D660u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 326u, 0x0883D660u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D660u) goto L_0883D660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D660: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3674,8 +5141,21 @@ L_0883D6AC: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883D6BCu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 331u, 0x0883D6BCu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D6BCu) goto L_0883D6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D6BC: aot_gpr_4 = (aot_gpr_29 + static_cast(272)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -3697,8 +5177,21 @@ L_0883D6D0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883D700u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 333u, 0x0883D700u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D700u) goto L_0883D700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D700: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 4 ? 1u : 0u); @@ -3734,32 +5227,97 @@ L_0883D72C: ctx.gpr[16] = (aot_gpr_29 + static_cast(352)); aot_gpr_31 = (0x0883D740u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 338u, 0x0883D740u, 0x08830694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 86u, 0x08830694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D740u) goto L_0883D740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D740: aot_gpr_31 = (0x0883D748u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1280))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 339u, 0x0883D748u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D748u) goto L_0883D748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D748: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883D758u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 340u, 0x0883D758u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D758u) goto L_0883D758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D758: ctx.gpr[18] = (aot_gpr_29 + static_cast(432)); aot_gpr_31 = (0x0883D764u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 341u, 0x0883D764u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D764u) goto L_0883D764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D764: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883D770u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 342u, 0x0883D770u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D770u) goto L_0883D770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D770: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1632))); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -3770,50 +5328,154 @@ L_0883D770: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883D794u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 343u, 0x0883D794u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D794u) goto L_0883D794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D794: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883D7A0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 344u, 0x0883D7A0u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D7A0u) goto L_0883D7A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D7A0: ctx.gpr[21] = (aot_gpr_17 + static_cast(1488)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883D7B0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 345u, 0x0883D7B0u, 0x08830A28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 137u, 0x08830A28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D7B0u) goto L_0883D7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D7B0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883D7BCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 346u, 0x0883D7BCu, 0x08830A68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 141u, 0x08830A68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D7BCu) goto L_0883D7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D7BC: aot_gpr_31 = (0x0883D7C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1292))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 347u, 0x0883D7C4u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D7C4u) goto L_0883D7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D7C4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883D7D4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 348u, 0x0883D7D4u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D7D4u) goto L_0883D7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D7D4: aot_gpr_31 = (0x0883D7DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 349u, 0x0883D7DCu, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D7DCu) goto L_0883D7DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D7DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883D7E8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 350u, 0x0883D7E8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D7E8u) goto L_0883D7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D7E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1624))); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -3822,50 +5484,154 @@ L_0883D7E8: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883D804u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 351u, 0x0883D804u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D804u) goto L_0883D804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D804: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883D810u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 352u, 0x0883D810u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D810u) goto L_0883D810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D810: ctx.gpr[21] = (aot_gpr_17 + static_cast(1424)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883D820u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 353u, 0x0883D820u, 0x08830A28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 137u, 0x08830A28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D820u) goto L_0883D820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D820: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883D82Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 354u, 0x0883D82Cu, 0x08830A68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 141u, 0x08830A68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D82Cu) goto L_0883D82C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D82C: aot_gpr_31 = (0x0883D834u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 355u, 0x0883D834u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D834u) goto L_0883D834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D834: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883D844u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 356u, 0x0883D844u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D844u) goto L_0883D844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D844: aot_gpr_31 = (0x0883D84Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 357u, 0x0883D84Cu, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D84Cu) goto L_0883D84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D84C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883D858u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 358u, 0x0883D858u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D858u) goto L_0883D858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D858: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1628))); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -3874,50 +5640,154 @@ L_0883D858: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883D874u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 359u, 0x0883D874u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D874u) goto L_0883D874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D874: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883D880u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 360u, 0x0883D880u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D880u) goto L_0883D880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D880: ctx.gpr[21] = (aot_gpr_17 + static_cast(1456)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883D890u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 361u, 0x0883D890u, 0x08830A28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 137u, 0x08830A28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D890u) goto L_0883D890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D890: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883D89Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 362u, 0x0883D89Cu, 0x08830A68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 141u, 0x08830A68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D89Cu) goto L_0883D89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D89C: aot_gpr_31 = (0x0883D8A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1284))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 363u, 0x0883D8A4u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D8A4u) goto L_0883D8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D8A4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883D8B4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 364u, 0x0883D8B4u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D8B4u) goto L_0883D8B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D8B4: aot_gpr_31 = (0x0883D8BCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 365u, 0x0883D8BCu, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D8BCu) goto L_0883D8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D8BC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883D8C8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 366u, 0x0883D8C8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D8C8u) goto L_0883D8C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D8C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1620))); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -3926,39 +5796,117 @@ L_0883D8C8: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883D8E4u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 367u, 0x0883D8E4u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D8E4u) goto L_0883D8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D8E4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883D8F0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 368u, 0x0883D8F0u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D8F0u) goto L_0883D8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D8F0: ctx.gpr[18] = (aot_gpr_17 + static_cast(1392)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883D900u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 369u, 0x0883D900u, 0x08830A28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 137u, 0x08830A28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D900u) goto L_0883D900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D900: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883D90Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 370u, 0x0883D90Cu, 0x08830A68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 141u, 0x08830A68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D90Cu) goto L_0883D90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D90C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883D918u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 371u, 0x0883D918u, 0x0883072Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 93u, 0x0883072Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D918u) goto L_0883D918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D918: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0883D924u); aot_gpr_4 = (aot_gpr_29 + static_cast(256)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 372u, 0x0883D924u, 0x08830240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 35u, 0x08830240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D924u) goto L_0883D924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D924: aot_gpr_4 = (17076u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4067,8 +6015,21 @@ L_0883D9E0: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x0883D9ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 387u, 0x0883D9ECu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883D9ECu) goto L_0883D9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883D9EC: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4132,8 +6093,21 @@ L_0883DA38: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883DA50u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 395u, 0x0883DA50u, 0x08833F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 861u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 861u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 861u, 0x08833F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DA50u) goto L_0883DA50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DA50: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4175,8 +6149,21 @@ L_0883DAA8: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0883DAB8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 400u, 0x0883DAB8u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DAB8u) goto L_0883DAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DAB8: ctx.gpr[23] = (aot_gpr_29 + static_cast(576)); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -4197,8 +6184,21 @@ L_0883DAD0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883DAF8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 402u, 0x0883DAF8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DAF8u) goto L_0883DAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DAF8: aot_gpr_31 = (0x0883DB00u); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -4224,8 +6224,21 @@ L_0883DB24: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883DB34u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 406u, 0x0883DB34u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DB34u) goto L_0883DB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DB34: aot_gpr_4 = (15692u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -4247,8 +6260,21 @@ L_0883DB50: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883DB78u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 408u, 0x0883DB78u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DB78u) goto L_0883DB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DB78: ctx.gpr[20] = (aot_gpr_29 + static_cast(464)); aot_gpr_4 = (ctx.gpr[19] << 5u); @@ -4279,8 +6305,21 @@ L_0883DBB8: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883DBC8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 412u, 0x0883DBC8u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DBC8u) goto L_0883DBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DBC8: aot_gpr_4 = (aot_gpr_29 + static_cast(512)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -4300,8 +6339,21 @@ L_0883DBDC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883DC04u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 414u, 0x0883DC04u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DC04u) goto L_0883DC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DC04: aot_gpr_4 = (ctx.gpr[19] << 2u); aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); @@ -4350,8 +6402,21 @@ L_0883DC58: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883DC80u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 420u, 0x0883DC80u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DC80u) goto L_0883DC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DC80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4385,8 +6450,21 @@ L_0883DC9C: L_0883DCA4: aot_gpr_31 = (0x0883DCACu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 425u, 0x0883DCACu, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DCACu) goto L_0883DCAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DCAC: aot_gpr_4 = (16544u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4405,8 +6483,21 @@ L_0883DCC4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883DCE0u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 427u, 0x0883DCE0u, 0x08833F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 861u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 861u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 861u, 0x08833F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DCE0u) goto L_0883DCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DCE0: ctx.gpr[21] = (aot_gpr_29 + static_cast(608)); aot_gpr_31 = (0x0883DCECu); @@ -4435,8 +6526,21 @@ L_0883DD18: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883DD28u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 431u, 0x0883DD28u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DD28u) goto L_0883DD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DD28: aot_gpr_4 = (aot_gpr_29 + static_cast(656)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -4456,8 +6560,21 @@ L_0883DD3C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883DD64u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 433u, 0x0883DD64u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DD64u) goto L_0883DD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DD64: aot_gpr_4 = (ctx.gpr[19] << 2u); aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); @@ -4507,8 +6624,21 @@ L_0883DDBC: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883DDE4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 439u, 0x0883DDE4u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DDE4u) goto L_0883DDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DDE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4519,8 +6649,21 @@ L_0883DDE4: L_0883DDEC: aot_gpr_31 = (0x0883DDF4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 441u, 0x0883DDF4u, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DDF4u) goto L_0883DDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DDF4: aot_gpr_4 = (16544u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4539,8 +6682,21 @@ L_0883DE0C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883DE28u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 443u, 0x0883DE28u, 0x08833F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 861u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 861u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 861u, 0x08833F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DE28u) goto L_0883DE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DE28: ctx.gpr[21] = (aot_gpr_29 + static_cast(688)); aot_gpr_31 = (0x0883DE34u); @@ -4569,8 +6725,21 @@ L_0883DE60: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883DE70u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 447u, 0x0883DE70u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DE70u) goto L_0883DE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DE70: aot_gpr_4 = (aot_gpr_29 + static_cast(736)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -4590,8 +6759,21 @@ L_0883DE84: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883DEACu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 449u, 0x0883DEACu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DEACu) goto L_0883DEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DEAC: aot_gpr_4 = (ctx.gpr[19] << 2u); aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); @@ -4641,8 +6823,21 @@ L_0883DF04: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883DF2Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 455u, 0x0883DF2Cu, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DF2Cu) goto L_0883DF2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DF2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4653,8 +6848,21 @@ L_0883DF2C: L_0883DF34: aot_gpr_31 = (0x0883DF3Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(256)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 457u, 0x0883DF3Cu, 0x08830240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 35u, 0x08830240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DF3Cu) goto L_0883DF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DF3C: aot_gpr_4 = (16544u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4672,8 +6880,21 @@ L_0883DF54: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883DF6Cu); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 459u, 0x0883DF6Cu, 0x08833F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 861u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 861u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 861u, 0x08833F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883DF6Cu) goto L_0883DF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883DF6C: aot_gpr_4 = (aot_gpr_17 + ctx.gpr[19]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(1596))); @@ -4741,14 +6962,40 @@ L_0883DFE0: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883E008u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 467u, 0x0883E008u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E008u) goto L_0883E008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E008: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x0883E014u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 468u, 0x0883E014u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E014u) goto L_0883E014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E014: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4777,8 +7024,21 @@ L_0883E03C: L_0883E044: aot_gpr_31 = (0x0883E04Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 472u, 0x0883E04Cu, 0x08830650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 83u, 0x08830650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E04Cu) goto L_0883E04C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E04C: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -4796,8 +7056,21 @@ L_0883E068: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x0883E078u); aot_gpr_4 = (aot_gpr_4 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 474u, 0x0883E078u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E078u) goto L_0883E078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E078: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4811,8 +7084,21 @@ L_0883E084: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x0883E090u); aot_gpr_4 = (aot_gpr_4 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 476u, 0x0883E090u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E090u) goto L_0883E090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E090: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4826,8 +7112,21 @@ L_0883E09C: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x0883E0A8u); aot_gpr_4 = (aot_gpr_4 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 478u, 0x0883E0A8u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E0A8u) goto L_0883E0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E0A8: aot_gpr_4 = (0u | 18u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4841,8 +7140,21 @@ L_0883E0B4: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x0883E0C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 480u, 0x0883E0C0u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E0C0u) goto L_0883E0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E0C0: aot_gpr_4 = (0u | 33u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4856,8 +7168,21 @@ L_0883E0CC: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x0883E0D8u); aot_gpr_4 = (aot_gpr_4 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 482u, 0x0883E0D8u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E0D8u) goto L_0883E0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E0D8: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4873,8 +7198,21 @@ L_0883E0E4: ctx.gpr[21] = (aot_gpr_4 + static_cast(1392)); aot_gpr_31 = (0x0883E0FCu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 484u, 0x0883E0FCu, 0x08830A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 139u, 0x08830A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E0FCu) goto L_0883E0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E0FC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883E108u); @@ -4891,8 +7229,21 @@ L_0883E114: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0883E120u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 487u, 0x0883E120u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E120u) goto L_0883E120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E120: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0883E12Cu); @@ -4904,8 +7255,21 @@ L_0883E12C: ctx.gpr[23] = (aot_gpr_29 + static_cast(800)); aot_gpr_31 = (0x0883E13Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 489u, 0x0883E13Cu, 0x08830A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 139u, 0x08830A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E13Cu) goto L_0883E13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E13C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0883E148u); @@ -4917,15 +7281,41 @@ L_0883E148: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883E158u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 491u, 0x0883E158u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E158u) goto L_0883E158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E158: aot_gpr_4 = (aot_gpr_29 + static_cast(816)); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0883E168u); ctx.gpr[6] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 492u, 0x0883E168u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E168u) goto L_0883E168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E168: aot_gpr_31 = (0x0883E170u); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -4959,42 +7349,120 @@ L_0883E18C: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883E1A4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 497u, 0x0883E1A4u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E1A4u) goto L_0883E1A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E1A4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883E1B4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 498u, 0x0883E1B4u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E1B4u) goto L_0883E1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E1B4: aot_gpr_4 = (aot_gpr_29 + static_cast(816)); aot_gpr_31 = (0x0883E1C0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 499u, 0x0883E1C0u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E1C0u) goto L_0883E1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E1C0: aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883E1D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 500u, 0x0883E1D4u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E1D4u) goto L_0883E1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E1D4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883E1E4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 501u, 0x0883E1E4u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E1E4u) goto L_0883E1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E1E4: aot_gpr_4 = (aot_gpr_29 + static_cast(832)); aot_gpr_31 = (0x0883E1F0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 502u, 0x0883E1F0u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E1F0u) goto L_0883E1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E1F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5009,15 +7477,41 @@ L_0883E1F8: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883E210u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 504u, 0x0883E210u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E210u) goto L_0883E210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E210: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883E220u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 505u, 0x0883E220u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E220u) goto L_0883E220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E220: aot_gpr_4 = (aot_gpr_29 + static_cast(816)); aot_gpr_31 = (0x0883E22Cu); @@ -5030,15 +7524,41 @@ L_0883E22C: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883E240u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 507u, 0x0883E240u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E240u) goto L_0883E240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E240: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883E250u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 508u, 0x0883E250u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E250u) goto L_0883E250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E250: aot_gpr_4 = (aot_gpr_29 + static_cast(832)); aot_gpr_31 = (0x0883E25Cu); @@ -5066,8 +7586,21 @@ L_0883E278: aot_gpr_5 = (aot_gpr_29 + static_cast(816)); aot_gpr_31 = (0x0883E294u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 512u, 0x0883E294u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E294u) goto L_0883E294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E294: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (0u | 1u); @@ -5079,8 +7612,21 @@ L_0883E294: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883E2BCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 513u, 0x0883E2BCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E2BCu) goto L_0883E2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E2BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5988))); aot_gpr_4 = (15651u << 16u); @@ -5114,8 +7660,21 @@ L_0883E2F8: aot_gpr_5 = (aot_gpr_29 + static_cast(816)); aot_gpr_31 = (0x0883E314u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 517u, 0x0883E314u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E314u) goto L_0883E314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E314: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (0u | 1u); @@ -5127,8 +7686,21 @@ L_0883E314: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883E33Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 518u, 0x0883E33Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E33Cu) goto L_0883E33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E33C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5988))); aot_gpr_4 = (15907u << 16u); @@ -5166,8 +7738,21 @@ L_0883E380: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883E3A4u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 522u, 0x0883E3A4u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E3A4u) goto L_0883E3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E3A4: ctx.fpr[22] = std::bit_cast(0u); aot_gpr_4 = (0u | 1u); @@ -5180,8 +7765,21 @@ L_0883E3A4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883E3D0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 523u, 0x0883E3D0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E3D0u) goto L_0883E3D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E3D0: aot_gpr_31 = (0x0883E3D8u); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -5199,8 +7797,21 @@ L_0883E3E4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883E3F8u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 526u, 0x0883E3F8u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E3F8u) goto L_0883E3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E3F8: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -5212,8 +7823,21 @@ L_0883E3F8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883E420u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 527u, 0x0883E420u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E420u) goto L_0883E420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E420: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 4 ? 1u : 0u); @@ -5227,8 +7851,21 @@ L_0883E430: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x0883E43Cu); aot_gpr_5 = (128u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 529u, 0x0883E43Cu, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E43Cu) goto L_0883E43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E43C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5244,8 +7881,21 @@ L_0883E444: aot_gpr_5 = (0u | 160u); aot_gpr_31 = (0x0883E460u); ctx.gpr[6] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 531u, 0x0883E460u, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E460u) goto L_0883E460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E460: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3904), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(3904))); @@ -5260,8 +7910,21 @@ L_0883E460: aot_gpr_5 = (0u | 196u); aot_gpr_31 = (0x0883E494u); ctx.gpr[6] = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 532u, 0x0883E494u, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E494u) goto L_0883E494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E494: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3908), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(3908))); @@ -5273,8 +7936,21 @@ L_0883E494: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883E4BCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 533u, 0x0883E4BCu, 0x08B0B7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 656u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 656u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 656u, 0x08B0B7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E4BCu) goto L_0883E4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E4BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1276))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5295,14 +7971,40 @@ L_0883E4D4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883E4E8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 536u, 0x0883E4E8u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E4E8u) goto L_0883E4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E4E8: aot_gpr_4 = (aot_gpr_29 + static_cast(976)); aot_gpr_31 = (0x0883E4F4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 537u, 0x0883E4F4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E4F4u) goto L_0883E4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E4F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1540))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29904))); @@ -5316,8 +8018,21 @@ L_0883E4F4: L_0883E50C: aot_gpr_31 = (0x0883E514u); aot_gpr_4 = (aot_gpr_17 + static_cast(1424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 539u, 0x0883E514u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E514u) goto L_0883E514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E514: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5401,15 +8116,41 @@ L_0883E594: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883E5A4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 550u, 0x0883E5A4u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E5A4u) goto L_0883E5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E5A4: ctx.gpr[6] = (aot_gpr_29 + static_cast(976)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883E5B4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 551u, 0x0883E5B4u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E5B4u) goto L_0883E5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E5B4: aot_gpr_4 = (aot_gpr_29 + static_cast(1056)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5429,8 +8170,21 @@ L_0883E5C8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883E5F0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 553u, 0x0883E5F0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E5F0u) goto L_0883E5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E5F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1556))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -5458,8 +8212,21 @@ L_0883E620: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883E630u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 557u, 0x0883E630u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E630u) goto L_0883E630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E630: aot_gpr_31 = (0x0883E638u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5479,8 +8246,21 @@ L_0883E644: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883E660u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 560u, 0x0883E660u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E660u) goto L_0883E660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E660: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5517,15 +8297,41 @@ L_0883E6A4: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883E6B4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 565u, 0x0883E6B4u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E6B4u) goto L_0883E6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E6B4: ctx.gpr[6] = (aot_gpr_29 + static_cast(976)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883E6C4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 566u, 0x0883E6C4u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E6C4u) goto L_0883E6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E6C4: aot_gpr_4 = (aot_gpr_29 + static_cast(992)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5545,8 +8351,21 @@ L_0883E6D8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883E700u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 568u, 0x0883E700u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E700u) goto L_0883E700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E700: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1556))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -5574,8 +8393,21 @@ L_0883E730: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883E740u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 572u, 0x0883E740u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E740u) goto L_0883E740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E740: aot_gpr_31 = (0x0883E748u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5595,8 +8427,21 @@ L_0883E754: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883E770u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 575u, 0x0883E770u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E770u) goto L_0883E770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E770: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5633,15 +8478,41 @@ L_0883E7B4: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883E7C4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 580u, 0x0883E7C4u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E7C4u) goto L_0883E7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E7C4: ctx.gpr[6] = (aot_gpr_29 + static_cast(976)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883E7D4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 581u, 0x0883E7D4u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E7D4u) goto L_0883E7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E7D4: aot_gpr_4 = (aot_gpr_29 + static_cast(992)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5661,8 +8532,21 @@ L_0883E7E8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883E810u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 583u, 0x0883E810u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E810u) goto L_0883E810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E810: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1556))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -5690,8 +8574,21 @@ L_0883E840: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883E850u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 587u, 0x0883E850u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E850u) goto L_0883E850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E850: aot_gpr_31 = (0x0883E858u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5711,8 +8608,21 @@ L_0883E864: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883E880u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 590u, 0x0883E880u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E880u) goto L_0883E880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E880: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1548))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29904))); @@ -5726,8 +8636,21 @@ L_0883E880: L_0883E898: aot_gpr_31 = (0x0883E8A0u); aot_gpr_4 = (aot_gpr_17 + static_cast(1488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 592u, 0x0883E8A0u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E8A0u) goto L_0883E8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E8A0: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5811,15 +8734,41 @@ L_0883E920: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883E930u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 603u, 0x0883E930u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E930u) goto L_0883E930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E930: ctx.gpr[6] = (aot_gpr_29 + static_cast(976)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883E940u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 604u, 0x0883E940u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E940u) goto L_0883E940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E940: aot_gpr_4 = (aot_gpr_29 + static_cast(1232)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5839,8 +8788,21 @@ L_0883E954: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883E97Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 606u, 0x0883E97Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E97Cu) goto L_0883E97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E97C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1564))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -5868,8 +8830,21 @@ L_0883E9AC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883E9BCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 610u, 0x0883E9BCu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E9BCu) goto L_0883E9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E9BC: aot_gpr_31 = (0x0883E9C4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5889,8 +8864,21 @@ L_0883E9D0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883E9ECu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 613u, 0x0883E9ECu, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883E9ECu) goto L_0883E9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883E9EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5927,15 +8915,41 @@ L_0883EA30: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883EA40u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 618u, 0x0883EA40u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EA40u) goto L_0883EA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EA40: ctx.gpr[6] = (aot_gpr_29 + static_cast(976)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883EA50u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 619u, 0x0883EA50u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EA50u) goto L_0883EA50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EA50: aot_gpr_4 = (aot_gpr_29 + static_cast(1168)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5955,8 +8969,21 @@ L_0883EA64: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883EA8Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 621u, 0x0883EA8Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EA8Cu) goto L_0883EA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EA8C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1564))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -5984,8 +9011,21 @@ L_0883EABC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883EACCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 625u, 0x0883EACCu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EACCu) goto L_0883EACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EACC: aot_gpr_31 = (0x0883EAD4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6005,8 +9045,21 @@ L_0883EAE0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883EAFCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 628u, 0x0883EAFCu, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EAFCu) goto L_0883EAFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EAFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6043,15 +9096,41 @@ L_0883EB40: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883EB50u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 633u, 0x0883EB50u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EB50u) goto L_0883EB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EB50: ctx.gpr[6] = (aot_gpr_29 + static_cast(976)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883EB60u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 634u, 0x0883EB60u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EB60u) goto L_0883EB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EB60: aot_gpr_4 = (aot_gpr_29 + static_cast(1168)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -6071,8 +9150,21 @@ L_0883EB74: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883EB9Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 636u, 0x0883EB9Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EB9Cu) goto L_0883EB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EB9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1564))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -6100,8 +9192,21 @@ L_0883EBCC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883EBDCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 640u, 0x0883EBDCu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EBDCu) goto L_0883EBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EBDC: aot_gpr_31 = (0x0883EBE4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6121,12 +9226,38 @@ L_0883EBF0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883EC0Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 643u, 0x0883EC0Cu, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EC0Cu) goto L_0883EC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EC0C: aot_gpr_31 = (0x0883EC14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 644u, 0x0883EC14u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EC14u) goto L_0883EC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EC14: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6136,8 +9267,21 @@ L_0883EC14: } L_0883EC1C: aot_gpr_31 = (0x0883EC24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 646u, 0x0883EC24u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EC24u) goto L_0883EC24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EC24: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6156,8 +9300,21 @@ L_0883EC2C: L_0883EC38: aot_gpr_31 = (0x0883EC40u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 649u, 0x0883EC40u, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EC40u) goto L_0883EC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EC40: aot_gpr_4 = (16800u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6188,8 +9345,21 @@ L_0883EC78: L_0883EC80: aot_gpr_31 = (0x0883EC88u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 653u, 0x0883EC88u, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EC88u) goto L_0883EC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EC88: aot_gpr_31 = (0x0883EC90u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6198,8 +9368,21 @@ L_0883EC88: L_0883EC90: aot_gpr_31 = (0x0883EC98u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 655u, 0x0883EC98u, 0x08830868u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 117u, 0x08830868u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EC98u) goto L_0883EC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EC98: ctx.gpr[16] = (aot_gpr_2 | 0u); ctx.gpr[18] = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(50))); @@ -6223,32 +9406,84 @@ L_0883ECB0: ctx.gpr[7] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0883ECDCu); ctx.gpr[8] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 657u, 0x0883ECDCu, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ECDCu) goto L_0883ECDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ECDC: ctx.gpr[23] = (aot_gpr_29 + static_cast(1424)); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883ECF0u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 658u, 0x0883ECF0u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ECF0u) goto L_0883ECF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ECF0: ctx.gpr[20] = (aot_gpr_29 + static_cast(1440)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883ED04u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 659u, 0x0883ED04u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ED04u) goto L_0883ED04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ED04: ctx.gpr[21] = (aot_gpr_29 + static_cast(1456)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883ED18u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 660u, 0x0883ED18u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ED18u) goto L_0883ED18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ED18: ctx.gpr[22] = (aot_gpr_29 + static_cast(1344)); ctx.gpr[30] = (aot_gpr_29 + static_cast(1360)); @@ -6256,15 +9491,41 @@ L_0883ED18: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0883ED30u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 661u, 0x0883ED30u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ED30u) goto L_0883ED30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ED30: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0883ED40u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 662u, 0x0883ED40u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ED40u) goto L_0883ED40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ED40: aot_gpr_4 = (16042u << 16u); aot_gpr_4 = (aot_gpr_4 | 42572u); @@ -6272,8 +9533,21 @@ L_0883ED40: aot_gpr_4 = (aot_gpr_29 + static_cast(1472)); aot_gpr_31 = (0x0883ED58u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 663u, 0x0883ED58u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883ED58u) goto L_0883ED58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883ED58: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6298,15 +9572,41 @@ L_0883ED90: aot_gpr_5 = (aot_gpr_29 + static_cast(1472)); aot_gpr_31 = (0x0883EDA0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 665u, 0x0883EDA0u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EDA0u) goto L_0883EDA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EDA0: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883EDB0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 666u, 0x0883EDB0u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EDB0u) goto L_0883EDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EDB0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1504))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -6314,8 +9614,21 @@ L_0883EDB0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883EDC8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 667u, 0x0883EDC8u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EDC8u) goto L_0883EDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EDC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1508))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -6331,8 +9644,21 @@ L_0883EDC8: L_0883EDEC: aot_gpr_31 = (0x0883EDF4u); ctx.gpr[23] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 669u, 0x0883EDF4u, 0x08830A78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 143u, 0x08830A78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EDF4u) goto L_0883EDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EDF4: ctx.gpr[10] = (aot_gpr_2 & 1u); aot_gpr_4 = (0u | 38u); @@ -6344,8 +9670,21 @@ L_0883EDF4: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x0883EE1Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 670u, 0x0883EE1Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EE1Cu) goto L_0883EE1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EE1C: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[21]) < static_cast(ctx.gpr[20]) ? 1u : 0u); @@ -6367,8 +9706,21 @@ L_0883EE2C: L_0883EE3C: aot_gpr_31 = (0x0883EE44u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 673u, 0x0883EE44u, 0x0884477Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 130u, 0x0884477Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EE44u) goto L_0883EE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EE44: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -6382,8 +9734,21 @@ L_0883EE54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x0883EE60u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 675u, 0x0883EE60u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EE60u) goto L_0883EE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EE60: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6410,21 +9775,60 @@ L_0883EE84: L_0883EE8C: aot_gpr_31 = (0x0883EE94u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 679u, 0x0883EE94u, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EE94u) goto L_0883EE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EE94: ctx.gpr[16] = (aot_gpr_29 + static_cast(1536)); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0883EEA4u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 680u, 0x0883EEA4u, 0x08830DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 184u, 0x08830DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EEA4u) goto L_0883EEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EEA4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883EEB0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 681u, 0x0883EEB0u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EEB0u) goto L_0883EEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EEB0: aot_gpr_4 = (aot_gpr_29 + static_cast(1520)); aot_fpr_12 = std::bit_cast(0u); @@ -6437,8 +9841,21 @@ L_0883EEC4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883EED0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 683u, 0x0883EED0u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EED0u) goto L_0883EED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EED0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6463,14 +9880,40 @@ L_0883EED8: L_0883EF00: aot_gpr_31 = (0x0883EF08u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 686u, 0x0883EF08u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EF08u) goto L_0883EF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EF08: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0883EF14u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 687u, 0x0883EF14u, 0x088304BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 68u, 0x088304BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EF14u) goto L_0883EF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EF14: aot_gpr_4 = (aot_gpr_29 + static_cast(1632)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); @@ -6484,8 +9927,21 @@ L_0883EF28: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883EF38u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 689u, 0x0883EF38u, 0x08830268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 38u, 0x08830268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EF38u) goto L_0883EF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EF38: aot_gpr_4 = (48501u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -6494,8 +9950,21 @@ L_0883EF38: aot_gpr_4 = (aot_gpr_4 | 49807u); aot_gpr_31 = (0x0883EF54u); aot_fpr_13 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 690u, 0x0883EF54u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EF54u) goto L_0883EF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EF54: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1648))); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -6531,20 +10000,59 @@ L_0883EF94: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883EFA8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 695u, 0x0883EFA8u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EFA8u) goto L_0883EFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EFA8: aot_gpr_4 = (aot_gpr_29 + static_cast(1600)); aot_gpr_31 = (0x0883EFB4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 696u, 0x0883EFB4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EFB4u) goto L_0883EFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EFB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x0883EFC0u); aot_gpr_5 = (0u | 8192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 697u, 0x0883EFC0u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EFC0u) goto L_0883EFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EFC0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6557,8 +10065,21 @@ L_0883EFC8: aot_gpr_5 = (aot_gpr_29 + static_cast(1536)); aot_gpr_31 = (0x0883EFD8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 699u, 0x0883EFD8u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EFD8u) goto L_0883EFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EFD8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1680))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -6568,34 +10089,99 @@ L_0883EFD8: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883EFF8u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 700u, 0x0883EFF8u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883EFF8u) goto L_0883EFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883EFF8: aot_gpr_4 = (aot_gpr_29 + static_cast(1616)); aot_gpr_31 = (0x0883F004u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 701u, 0x0883F004u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F004u) goto L_0883F004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F004: aot_gpr_4 = (aot_gpr_29 + static_cast(1584)); aot_gpr_31 = (0x0883F010u); aot_gpr_5 = (aot_gpr_29 + static_cast(1568)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 702u, 0x0883F010u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F010u) goto L_0883F010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F010: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (16448u << 16u); aot_gpr_31 = (0x0883F024u); aot_fpr_13 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 703u, 0x0883F024u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F024u) goto L_0883F024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F024: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0883F030u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 704u, 0x0883F030u, 0x08830E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 191u, 0x08830E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F030u) goto L_0883F030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F030: aot_gpr_4 = (16268u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6621,14 +10207,40 @@ L_0883F058: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883F080u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 706u, 0x0883F080u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F080u) goto L_0883F080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F080: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x0883F08Cu); aot_gpr_5 = (0u | 8192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 707u, 0x0883F08Cu, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F08Cu) goto L_0883F08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F08C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6647,13 +10259,39 @@ L_0883F094: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883F0BCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 709u, 0x0883F0BCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F0BCu) goto L_0883F0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F0BC: aot_gpr_31 = (0x0883F0C4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 710u, 0x0883F0C4u, 0x08830E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 191u, 0x08830E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F0C4u) goto L_0883F0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F0C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29664))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -6674,8 +10312,21 @@ L_0883F0D8: } L_0883F0E8: aot_gpr_31 = (0x0883F0F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 713u, 0x0883F0F0u, 0x08830A78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 143u, 0x08830A78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F0F0u) goto L_0883F0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F0F0: aot_gpr_4 = (aot_gpr_2 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6695,8 +10346,21 @@ L_0883F0FC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883F124u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 715u, 0x0883F124u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F124u) goto L_0883F124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F124: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6708,8 +10372,21 @@ L_0883F12C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x0883F138u); aot_gpr_5 = (0u | 8192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 717u, 0x0883F138u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F138u) goto L_0883F138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F138: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6728,8 +10405,21 @@ L_0883F140: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0883F168u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 719u, 0x0883F168u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F168u) goto L_0883F168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F168: aot_gpr_4 = (0u | 99u); aot_gpr_4 = (static_cast(aot_gpr_4) < 4 ? 1u : 0u); @@ -6923,8 +10613,21 @@ L_0883F274: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0883F280u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 743u, 0x0883F280u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F280u) goto L_0883F280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F280: aot_gpr_4 = (49000u << 16u); aot_gpr_4 = (aot_gpr_4 | 62915u); @@ -6939,8 +10642,21 @@ L_0883F29C: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0883F2A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 745u, 0x0883F2A8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F2A8u) goto L_0883F2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F2A8: ctx.gpr[22] = (0u | 255u); ctx.gpr[30] = (0u | 0u); @@ -6974,8 +10690,21 @@ L_0883F2FC: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0883F308u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 748u, 0x0883F308u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F308u) goto L_0883F308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F308: aot_gpr_4 = (48880u << 16u); aot_gpr_4 = (aot_gpr_4 | 41943u); @@ -6990,8 +10719,21 @@ L_0883F324: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0883F330u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 750u, 0x0883F330u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F330u) goto L_0883F330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F330: ctx.gpr[20] = (0u | 255u); ctx.gpr[30] = (0u | 0u); @@ -7026,8 +10768,21 @@ L_0883F388: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0883F394u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 753u, 0x0883F394u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F394u) goto L_0883F394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F394: aot_gpr_4 = (48947u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -7042,8 +10797,21 @@ L_0883F3B0: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0883F3BCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 755u, 0x0883F3BCu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F3BCu) goto L_0883F3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F3BC: ctx.gpr[20] = (0u | 255u); ctx.gpr[30] = (0u | 0u); @@ -7078,8 +10846,21 @@ L_0883F414: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0883F420u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 758u, 0x0883F420u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F420u) goto L_0883F420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F420: aot_gpr_4 = (49011u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -7094,8 +10875,21 @@ L_0883F43C: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0883F448u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 760u, 0x0883F448u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F448u) goto L_0883F448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F448: ctx.gpr[22] = (0u | 255u); ctx.gpr[30] = (0u | 0u); @@ -7111,8 +10905,21 @@ L_0883F448: } L_0883F468: aot_gpr_31 = (0x0883F470u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 762u, 0x0883F470u, 0x08830890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 120u, 0x08830890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F470u) goto L_0883F470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F470: aot_gpr_4 = (aot_gpr_2 & 1023u); aot_gpr_5 = (aot_gpr_4 < static_cast(512) ? 1u : 0u); @@ -7331,12 +11138,38 @@ L_0883F690: aot_gpr_4 = (aot_gpr_29 + static_cast(1744)); aot_gpr_31 = (0x0883F69Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 783u, 0x0883F69Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F69Cu) goto L_0883F69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F69C: aot_gpr_31 = (0x0883F6A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 784u, 0x0883F6A4u, 0x08830890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 120u, 0x08830890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F6A4u) goto L_0883F6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F6A4: aot_gpr_4 = (aot_gpr_2 & 1023u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7361,36 +11194,101 @@ L_0883F6C0: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x0883F6E0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 787u, 0x0883F6E0u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F6E0u) goto L_0883F6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F6E0: aot_gpr_31 = (0x0883F6E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 788u, 0x0883F6E8u, 0x088304BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 68u, 0x088304BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F6E8u) goto L_0883F6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F6E8: aot_gpr_4 = (16384u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883F6F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 789u, 0x0883F6F8u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F6F8u) goto L_0883F6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F6F8: ctx.gpr[20] = (aot_gpr_29 + static_cast(1712)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883F70Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 790u, 0x0883F70Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F70Cu) goto L_0883F70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F70C: ctx.gpr[21] = (aot_gpr_29 + static_cast(1696)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(1744)); aot_gpr_31 = (0x0883F720u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 791u, 0x0883F720u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F720u) goto L_0883F720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F720: aot_gpr_4 = (aot_gpr_29 + static_cast(1728)); aot_fpr_12 = std::bit_cast(0u); @@ -7419,8 +11317,21 @@ L_0883F734: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0883F780u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 793u, 0x0883F780u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F780u) goto L_0883F780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F780: ctx.gpr[16] = (aot_gpr_29 + static_cast(16)); ctx.gpr[18] = (aot_gpr_29 + static_cast(1776)); @@ -7428,28 +11339,80 @@ L_0883F780: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883F798u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 794u, 0x0883F798u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F798u) goto L_0883F798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F798: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883F7A4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 795u, 0x0883F7A4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F7A4u) goto L_0883F7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F7A4: ctx.gpr[16] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883F7B8u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 796u, 0x0883F7B8u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F7B8u) goto L_0883F7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F7B8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883F7C4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 797u, 0x0883F7C4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F7C4u) goto L_0883F7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F7C4: ctx.gpr[16] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 4 ? 1u : 0u); @@ -7466,8 +11429,21 @@ L_0883F7D8: goto L_0883F7DC; L_0883F7DC: aot_gpr_31 = (0x0883F7E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 800u, 0x0883F7E4u, 0x08830890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 120u, 0x08830890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F7E4u) goto L_0883F7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F7E4: aot_gpr_4 = (ctx.gpr[16] << 6u); aot_gpr_4 = (aot_gpr_2 + aot_gpr_4); @@ -7481,8 +11457,21 @@ L_0883F7E4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883F814u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 801u, 0x0883F814u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F814u) goto L_0883F814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F814: aot_gpr_5 = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (16448u << 16u); @@ -7491,16 +11480,42 @@ L_0883F814: ctx.gpr[16] = (aot_gpr_29 + static_cast(1840)); aot_gpr_31 = (0x0883F830u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 802u, 0x0883F830u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F830u) goto L_0883F830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F830: ctx.gpr[20] = (aot_gpr_29 + static_cast(1808)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883F844u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 803u, 0x0883F844u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F844u) goto L_0883F844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F844: aot_gpr_4 = (16042u << 16u); aot_gpr_4 = (aot_gpr_4 | 43691u); @@ -7509,14 +11524,40 @@ L_0883F844: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883F860u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 804u, 0x0883F860u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F860u) goto L_0883F860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F860: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x0883F86Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 805u, 0x0883F86Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F86Cu) goto L_0883F86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F86C: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(3915))); @@ -7571,8 +11612,21 @@ L_0883F898: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0883F8F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 810u, 0x0883F8F0u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F8F0u) goto L_0883F8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F8F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7613,8 +11667,21 @@ L_0883F91C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0883F96Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 813u, 0x0883F96Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F96Cu) goto L_0883F96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F96C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7630,8 +11697,21 @@ L_0883F974: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x0883F990u); aot_fpr_13 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 815u, 0x0883F990u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F990u) goto L_0883F990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F990: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (ctx.gpr[16] & 255u); @@ -7672,22 +11752,61 @@ L_0883F9CC: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883F9E8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 820u, 0x0883F9E8u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F9E8u) goto L_0883F9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F9E8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883F9F8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 821u, 0x0883F9F8u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883F9F8u) goto L_0883F9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883F9F8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883FA08u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 822u, 0x0883FA08u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FA08u) goto L_0883FA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FA08: ctx.gpr[19] = (aot_gpr_29 + static_cast(1888)); aot_gpr_4 = (48793u << 16u); @@ -7702,15 +11821,41 @@ L_0883FA20: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883FA30u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 824u, 0x0883FA30u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FA30u) goto L_0883FA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FA30: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883FA40u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 825u, 0x0883FA40u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FA40u) goto L_0883FA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FA40: aot_gpr_4 = (aot_gpr_17 + static_cast(17)); aot_gpr_5 = (16204u << 16u); @@ -7734,14 +11879,40 @@ L_0883FA40: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883FA9Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 826u, 0x0883FA9Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FA9Cu) goto L_0883FA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FA9C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883FAA8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 827u, 0x0883FAA8u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FAA8u) goto L_0883FAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FAA8: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -7765,8 +11936,21 @@ L_0883FAC0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0883FAF4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 829u, 0x0883FAF4u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FAF4u) goto L_0883FAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FAF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7798,22 +11982,61 @@ L_0883FB1C: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883FB38u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 833u, 0x0883FB38u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FB38u) goto L_0883FB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FB38: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883FB48u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 834u, 0x0883FB48u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FB48u) goto L_0883FB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FB48: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883FB58u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 835u, 0x0883FB58u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FB58u) goto L_0883FB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FB58: ctx.gpr[19] = (aot_gpr_29 + static_cast(1952)); ctx.fpr[22] = std::bit_cast(0u); @@ -7826,15 +12049,41 @@ L_0883FB68: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883FB78u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 837u, 0x0883FB78u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FB78u) goto L_0883FB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FB78: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883FB88u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 838u, 0x0883FB88u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FB88u) goto L_0883FB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FB88: aot_gpr_4 = (aot_gpr_17 + static_cast(17)); aot_gpr_5 = (16204u << 16u); @@ -7857,14 +12106,40 @@ L_0883FB88: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0883FBE0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 839u, 0x0883FBE0u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FBE0u) goto L_0883FBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FBE0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883FBECu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 840u, 0x0883FBECu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FBECu) goto L_0883FBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FBEC: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -7888,8 +12163,21 @@ L_0883FC04: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0883FC38u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 842u, 0x0883FC38u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FC38u) goto L_0883FC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FC38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7921,22 +12209,61 @@ L_0883FC60: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0883FC7Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 846u, 0x0883FC7Cu, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FC7Cu) goto L_0883FC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FC7C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883FC8Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 847u, 0x0883FC8Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FC8Cu) goto L_0883FC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FC8C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883FC9Cu); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 848u, 0x0883FC9Cu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FC9Cu) goto L_0883FC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FC9C: ctx.gpr[19] = (aot_gpr_29 + static_cast(2016)); aot_gpr_4 = (48793u << 16u); @@ -7951,15 +12278,41 @@ L_0883FCB4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883FCC4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 850u, 0x0883FCC4u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FCC4u) goto L_0883FCC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FCC4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0883FCD4u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 851u, 0x0883FCD4u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FCD4u) goto L_0883FCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FCD4: aot_gpr_4 = (aot_gpr_17 + static_cast(17)); aot_gpr_5 = (16204u << 16u); @@ -7983,14 +12336,40 @@ L_0883FCD4: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0883FD30u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 852u, 0x0883FD30u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FD30u) goto L_0883FD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FD30: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883FD3Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 853u, 0x0883FD3Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FD3Cu) goto L_0883FD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FD3C: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -8014,8 +12393,21 @@ L_0883FD54: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0883FD88u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 855u, 0x0883FD88u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FD88u) goto L_0883FD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FD88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8052,18 +12444,57 @@ L_0883FDD0: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883FDE0u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 859u, 0x0883FDE0u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FDE0u) goto L_0883FDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FDE0: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x0883FDECu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 860u, 0x0883FDECu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FDECu) goto L_0883FDEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FDEC: aot_gpr_31 = (0x0883FDF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 861u, 0x0883FDF4u, 0x08830890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 120u, 0x08830890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FDF4u) goto L_0883FDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FDF4: aot_gpr_4 = (aot_gpr_2 & 256u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8096,14 +12527,40 @@ L_0883FE28: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883FE38u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 866u, 0x0883FE38u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FE38u) goto L_0883FE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FE38: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883FE44u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 867u, 0x0883FE44u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FE44u) goto L_0883FE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FE44: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -8147,8 +12604,21 @@ L_0883FE6C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0883FEC0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 871u, 0x0883FEC0u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FEC0u) goto L_0883FEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FEC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8177,8 +12647,21 @@ L_0883FEC8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0883FF1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 873u, 0x0883FF1Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FF1Cu) goto L_0883FF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FF1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8193,8 +12676,21 @@ L_0883FF24: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x0883FF3Cu); aot_fpr_13 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 875u, 0x0883FF3Cu, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FF3Cu) goto L_0883FF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FF3C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8230,18 +12726,57 @@ L_0883FF80: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0883FF90u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 879u, 0x0883FF90u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FF90u) goto L_0883FF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FF90: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x0883FF9Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 880u, 0x0883FF9Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FF9Cu) goto L_0883FF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FF9C: aot_gpr_31 = (0x0883FFA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 881u, 0x0883FFA4u, 0x08830890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 120u, 0x08830890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FFA4u) goto L_0883FFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FFA4: aot_gpr_4 = (aot_gpr_2 & 256u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8274,14 +12809,40 @@ L_0883FFD8: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0883FFE8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 886u, 0x0883FFE8u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FFE8u) goto L_0883FFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FFE8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0883FFF4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0014->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0014_entry, 887u, 0x0883FFF4u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0883FFF4u) goto L_0883FFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0883FFF4: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); diff --git a/profiles/vcs/generated/generated_unit_0015.cpp b/profiles/vcs/generated/generated_unit_0015.cpp index c22d3f2..532f00f 100644 --- a/profiles/vcs/generated/generated_unit_0015.cpp +++ b/profiles/vcs/generated/generated_unit_0015.cpp @@ -1002,8 +1002,21 @@ L_08840008: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0884005Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 3u, 0x0884005Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884005Cu) goto L_0884005C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884005C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1018,8 +1031,21 @@ L_08840064: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x0884007Cu); aot_fpr_13 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 5u, 0x0884007Cu, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884007Cu) goto L_0884007C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884007C: aot_gpr_31 = (0x08840084u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1088,8 +1114,21 @@ L_088400D4: L_088400E0: aot_gpr_31 = (0x088400E8u); ctx.gpr[16] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 16u, 0x088400E8u, 0x08833F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 859u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 859u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 859u, 0x08833F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088400E8u) goto L_088400E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088400E8: aot_gpr_4 = (static_cast(aot_gpr_2) < 21 ? 1u : 0u); if (aot_gpr_4 == 0u) { @@ -1099,8 +1138,21 @@ L_088400E8: goto L_088400F4; L_088400F4: aot_gpr_31 = (0x088400FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 18u, 0x088400FCu, 0x08833F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 859u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 859u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 859u, 0x08833F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088400FCu) goto L_088400FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088400FC: aot_gpr_4 = (static_cast(aot_gpr_2) < 20 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1116,8 +1168,21 @@ L_08840108: aot_gpr_4 = (aot_gpr_4 >> 22u); aot_gpr_31 = (0x08840120u); ctx.gpr[18] = (aot_gpr_4 & 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 20u, 0x08840120u, 0x08833F74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 860u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 860u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 860u, 0x08833F74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840120u) goto L_08840120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840120: aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(aot_gpr_2) ? 1u : 0u); if (aot_gpr_4 != 0u) { @@ -1127,8 +1192,21 @@ L_08840120: goto L_0884012C; L_0884012C: aot_gpr_31 = (0x08840134u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 22u, 0x08840134u, 0x08833F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 859u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 859u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 859u, 0x08833F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840134u) goto L_08840134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840134: aot_gpr_4 = (static_cast(aot_gpr_2) < 6 ? 1u : 0u); if (aot_gpr_4 != 0u) { @@ -1138,8 +1216,21 @@ L_08840134: goto L_08840140; L_08840140: aot_gpr_31 = (0x08840148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 24u, 0x08840148u, 0x08833F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 859u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 859u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 859u, 0x08833F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840148u) goto L_08840148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840148: aot_gpr_4 = (static_cast(aot_gpr_2) < 7 ? 1u : 0u); if (aot_gpr_4 == 0u) { @@ -1149,8 +1240,21 @@ L_08840148: goto L_08840154; L_08840154: aot_gpr_31 = (0x0884015Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 26u, 0x0884015Cu, 0x08833F74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 860u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 860u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 860u, 0x08833F74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884015Cu) goto L_0884015C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884015C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(76))); aot_gpr_5 = (16320u << 16u); @@ -1311,8 +1415,21 @@ L_088402A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2112), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088402B4u); aot_gpr_4 = (aot_gpr_29 + static_cast(2112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 46u, 0x088402B4u, 0x08830240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 35u, 0x08830240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088402B4u) goto L_088402B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088402B4: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088402C0u); @@ -1331,8 +1448,21 @@ L_088402CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2116), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088402E0u); aot_gpr_4 = (aot_gpr_29 + static_cast(2116)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 49u, 0x088402E0u, 0x08830240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 35u, 0x08830240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088402E0u) goto L_088402E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088402E0: aot_fpr_12 = ctx.fpr[22] + ctx.fpr[0]; aot_gpr_4 = (17096u << 16u); @@ -1355,8 +1485,21 @@ L_0884030C: ctx.gpr[18] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0884031Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 52u, 0x0884031Cu, 0x08830E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 196u, 0x08830E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884031Cu) goto L_0884031C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884031C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1366,8 +1509,21 @@ L_0884031C: } L_08840324: aot_gpr_31 = (0x0884032Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 54u, 0x0884032Cu, 0x08830890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 120u, 0x08830890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884032Cu) goto L_0884032C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884032C: aot_gpr_4 = (aot_gpr_2 & 256u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1390,8 +1546,21 @@ L_08840340: L_08840344: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08840350u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 58u, 0x08840350u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840350u) goto L_08840350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840350: { const bool branch_taken = aot_gpr_2 != aot_gpr_17; if (branch_taken) { @@ -1485,19 +1654,58 @@ L_088403F0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08840400u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 70u, 0x08840400u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840400u) goto L_08840400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840400: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884040Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 71u, 0x0884040Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884040Cu) goto L_0884040C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884040C: aot_gpr_31 = (0x08840414u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 72u, 0x08840414u, 0x08830634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 82u, 0x08830634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840414u) goto L_08840414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840414: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(0u); @@ -1514,8 +1722,21 @@ L_0884042C: aot_fpr_12 = aot_fpr_12 / aot_fpr_20; aot_gpr_31 = (0x08840440u); aot_gpr_4 = (aot_gpr_29 + static_cast(2192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 74u, 0x08840440u, 0x08830678u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 85u, 0x08830678u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840440u) goto L_08840440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840440: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1536,8 +1757,21 @@ L_08840460: aot_gpr_4 = (aot_gpr_29 + static_cast(2192)); aot_gpr_31 = (0x0884046Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 77u, 0x0884046Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884046Cu) goto L_0884046C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884046C: aot_gpr_31 = (0x08840474u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1547,8 +1781,21 @@ L_08840474: aot_gpr_4 = (aot_gpr_29 + static_cast(2192)); aot_gpr_31 = (0x08840480u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 79u, 0x08840480u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840480u) goto L_08840480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840480: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -1586,13 +1833,39 @@ L_088404C0: L_088404C8: aot_gpr_31 = (0x088404D0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 84u, 0x088404D0u, 0x08830508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 70u, 0x08830508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088404D0u) goto L_088404D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088404D0: aot_gpr_31 = (0x088404D8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 85u, 0x088404D8u, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088404D8u) goto L_088404D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088404D8: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[18] = (aot_gpr_29 + static_cast(2208)); @@ -1603,20 +1876,59 @@ L_088404D8: L_088404E8: aot_gpr_31 = (0x088404F0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 87u, 0x088404F0u, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088404F0u) goto L_088404F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088404F0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088404FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 88u, 0x088404FCu, 0x08830DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 184u, 0x08830DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088404FCu) goto L_088404FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088404FC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08840508u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 89u, 0x08840508u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840508u) goto L_08840508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840508: ctx.gpr[19] = (aot_gpr_29 + static_cast(2160)); ctx.gpr[20] = (aot_gpr_29 + static_cast(2128)); @@ -1624,26 +1936,78 @@ L_08840508: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08840520u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 90u, 0x08840520u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840520u) goto L_08840520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840520: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884052Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 91u, 0x0884052Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884052Cu) goto L_0884052C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884052C: ctx.gpr[18] = (aot_gpr_29 + static_cast(2144)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884053Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 92u, 0x0884053Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884053Cu) goto L_0884053C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884053C: aot_gpr_31 = (0x08840544u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 93u, 0x08840544u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840544u) goto L_08840544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840544: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2208))); aot_gpr_4 = (16384u << 16u); @@ -1652,14 +2016,40 @@ L_08840544: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08840560u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 94u, 0x08840560u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840560u) goto L_08840560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840560: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884056Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 95u, 0x0884056Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884056Cu) goto L_0884056C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884056C: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08840578u); @@ -1671,8 +2061,21 @@ L_08840578: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08840588u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 97u, 0x08840588u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840588u) goto L_08840588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840588: aot_gpr_31 = (0x08840590u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1682,8 +2085,21 @@ L_08840590: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0884059Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 99u, 0x0884059Cu, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884059Cu) goto L_0884059C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884059C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -1714,8 +2130,21 @@ L_088405B0: } L_088405E4: aot_gpr_31 = (0x088405ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 102u, 0x088405ECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088405ECu) goto L_088405EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088405EC: { const bool branch_taken = aot_gpr_17 == aot_gpr_2; if (branch_taken) { @@ -1760,8 +2189,21 @@ L_08840654: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08840660u); aot_gpr_5 = (64u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 106u, 0x08840660u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840660u) goto L_08840660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840660: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1808,8 +2250,21 @@ L_0884067C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088406E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 110u, 0x088406E4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088406E4u) goto L_088406E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088406E4: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x088406F0u); @@ -1849,8 +2304,21 @@ L_088406F8: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840760u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 113u, 0x08840760u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840760u) goto L_08840760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840760: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1897,8 +2365,21 @@ L_0884077C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088407E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 117u, 0x088407E4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088407E4u) goto L_088407E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088407E4: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x088407F0u); @@ -1938,8 +2419,21 @@ L_088407F8: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840860u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 120u, 0x08840860u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840860u) goto L_08840860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840860: { const bool branch_taken = ctx.gpr[16] != 0u; if (branch_taken) { @@ -1951,8 +2445,21 @@ L_08840868: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08840874u); aot_gpr_5 = (64u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 122u, 0x08840874u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840874u) goto L_08840874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840874: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2007,8 +2514,21 @@ L_08840890: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840918u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 126u, 0x08840918u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840918u) goto L_08840918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840918: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08840924u); @@ -2056,8 +2576,21 @@ L_0884092C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088409B4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 129u, 0x088409B4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088409B4u) goto L_088409B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088409B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2112,8 +2645,21 @@ L_088409D0: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840A58u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 133u, 0x08840A58u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840A58u) goto L_08840A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840A58: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08840A64u); @@ -2161,8 +2707,21 @@ L_08840A6C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840AF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 136u, 0x08840AF4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840AF4u) goto L_08840AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840AF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2202,8 +2761,21 @@ L_08840B10: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840B5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 140u, 0x08840B5Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840B5Cu) goto L_08840B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840B5C: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08840B68u); @@ -2236,8 +2808,21 @@ L_08840B70: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840BBCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 143u, 0x08840BBCu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840BBCu) goto L_08840BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840BBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2269,8 +2854,21 @@ L_08840BD8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08840C00u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 147u, 0x08840C00u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840C00u) goto L_08840C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840C00: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08840C0Cu); @@ -2295,8 +2893,21 @@ L_08840C14: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08840C3Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 150u, 0x08840C3Cu, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840C3Cu) goto L_08840C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840C3C: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08840C48u); @@ -2323,32 +2934,97 @@ L_08840C60: aot_gpr_4 = (aot_gpr_29 + static_cast(2256)); aot_gpr_31 = (0x08840C6Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(2144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 154u, 0x08840C6Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840C6Cu) goto L_08840C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840C6C: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840C78u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 155u, 0x08840C78u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840C78u) goto L_08840C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840C78: aot_gpr_4 = (aot_gpr_29 + static_cast(2272)); aot_gpr_31 = (0x08840C84u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 156u, 0x08840C84u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840C84u) goto L_08840C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840C84: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840C90u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 157u, 0x08840C90u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840C90u) goto L_08840C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840C90: aot_gpr_4 = (aot_gpr_29 + static_cast(2288)); aot_gpr_31 = (0x08840C9Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 158u, 0x08840C9Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840C9Cu) goto L_08840C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840C9C: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840CA8u); @@ -2359,14 +3035,40 @@ L_08840CA8: aot_gpr_4 = (aot_gpr_29 + static_cast(2304)); aot_gpr_31 = (0x08840CB4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 160u, 0x08840CB4u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840CB4u) goto L_08840CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840CB4: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840CC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 161u, 0x08840CC0u, 0x08830D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 174u, 0x08830D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840CC0u) goto L_08840CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840CC0: ctx.gpr[8] = (aot_gpr_2 + static_cast(4)); ctx.gpr[8] = (ctx.gpr[8] & 255u); @@ -2378,8 +3080,21 @@ L_08840CC0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08840CE8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 162u, 0x08840CE8u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840CE8u) goto L_08840CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840CE8: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08840CF4u); @@ -2406,32 +3121,97 @@ L_08840D0C: aot_gpr_4 = (aot_gpr_29 + static_cast(2320)); aot_gpr_31 = (0x08840D18u); aot_gpr_5 = (aot_gpr_29 + static_cast(2160)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 166u, 0x08840D18u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840D18u) goto L_08840D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840D18: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840D24u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 167u, 0x08840D24u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840D24u) goto L_08840D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840D24: aot_gpr_4 = (aot_gpr_29 + static_cast(2336)); aot_gpr_31 = (0x08840D30u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 168u, 0x08840D30u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840D30u) goto L_08840D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840D30: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840D3Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 169u, 0x08840D3Cu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840D3Cu) goto L_08840D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840D3C: aot_gpr_4 = (aot_gpr_29 + static_cast(2352)); aot_gpr_31 = (0x08840D48u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 170u, 0x08840D48u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840D48u) goto L_08840D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840D48: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840D54u); @@ -2442,14 +3222,40 @@ L_08840D54: aot_gpr_4 = (aot_gpr_29 + static_cast(2368)); aot_gpr_31 = (0x08840D60u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 172u, 0x08840D60u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840D60u) goto L_08840D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840D60: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840D6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 173u, 0x08840D6Cu, 0x08830D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 174u, 0x08830D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840D6Cu) goto L_08840D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840D6C: ctx.gpr[8] = (aot_gpr_2 + static_cast(4)); ctx.gpr[8] = (ctx.gpr[8] & 255u); @@ -2461,8 +3267,21 @@ L_08840D6C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08840D94u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 174u, 0x08840D94u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840D94u) goto L_08840D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840D94: ctx.gpr[18] = (aot_gpr_29 + static_cast(2224)); aot_gpr_31 = (0x08840DA0u); @@ -2472,20 +3291,59 @@ L_08840D94: L_08840DA0: aot_gpr_31 = (0x08840DA8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 176u, 0x08840DA8u, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840DA8u) goto L_08840DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840DA8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08840DB4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 177u, 0x08840DB4u, 0x08830DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 184u, 0x08830DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840DB4u) goto L_08840DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840DB4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08840DC0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 178u, 0x08840DC0u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840DC0u) goto L_08840DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840DC0: ctx.gpr[19] = (aot_gpr_29 + static_cast(2160)); ctx.gpr[20] = (aot_gpr_29 + static_cast(2128)); @@ -2493,26 +3351,78 @@ L_08840DC0: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08840DD8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 179u, 0x08840DD8u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840DD8u) goto L_08840DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840DD8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08840DE4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 180u, 0x08840DE4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840DE4u) goto L_08840DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840DE4: ctx.gpr[18] = (aot_gpr_29 + static_cast(2144)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08840DF4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 181u, 0x08840DF4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840DF4u) goto L_08840DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840DF4: aot_gpr_31 = (0x08840DFCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 182u, 0x08840DFCu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840DFCu) goto L_08840DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840DFC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2224))); aot_gpr_4 = (16384u << 16u); @@ -2521,14 +3431,40 @@ L_08840DFC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08840E18u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 183u, 0x08840E18u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840E18u) goto L_08840E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840E18: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08840E24u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 184u, 0x08840E24u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840E24u) goto L_08840E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840E24: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08840E30u); @@ -2540,8 +3476,21 @@ L_08840E30: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08840E40u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 186u, 0x08840E40u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840E40u) goto L_08840E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840E40: aot_gpr_31 = (0x08840E48u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2551,8 +3500,21 @@ L_08840E48: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08840E54u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 188u, 0x08840E54u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840E54u) goto L_08840E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840E54: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -2633,8 +3595,21 @@ L_08840EE0: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840F54u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 193u, 0x08840F54u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840F54u) goto L_08840F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840F54: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08840F60u); @@ -2677,8 +3652,21 @@ L_08840F68: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08840FDCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 196u, 0x08840FDCu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08840FDCu) goto L_08840FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08840FDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2755,8 +3743,21 @@ L_08841038: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088410ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 203u, 0x088410ACu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088410ACu) goto L_088410AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088410AC: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x088410B8u); @@ -2799,8 +3800,21 @@ L_088410C0: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08841134u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 206u, 0x08841134u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841134u) goto L_08841134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841134: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2840,8 +3854,21 @@ L_08841150: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0884119Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 210u, 0x0884119Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884119Cu) goto L_0884119C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884119C: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x088411A8u); @@ -2874,8 +3901,21 @@ L_088411B0: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088411FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 213u, 0x088411FCu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088411FCu) goto L_088411FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088411FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2903,8 +3943,21 @@ L_08841218: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08841230u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 217u, 0x08841230u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841230u) goto L_08841230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841230: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x0884123Cu); @@ -2925,8 +3978,21 @@ L_08841244: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x0884125Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 220u, 0x0884125Cu, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884125Cu) goto L_0884125C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884125C: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08841268u); @@ -2944,32 +4010,97 @@ L_08841270: aot_gpr_4 = (aot_gpr_29 + static_cast(2384)); aot_gpr_31 = (0x0884127Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(2144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 223u, 0x0884127Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884127Cu) goto L_0884127C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884127C: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841288u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 224u, 0x08841288u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841288u) goto L_08841288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841288: aot_gpr_4 = (aot_gpr_29 + static_cast(2400)); aot_gpr_31 = (0x08841294u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 225u, 0x08841294u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841294u) goto L_08841294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841294: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088412A0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 226u, 0x088412A0u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088412A0u) goto L_088412A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088412A0: aot_gpr_4 = (aot_gpr_29 + static_cast(2416)); aot_gpr_31 = (0x088412ACu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 227u, 0x088412ACu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088412ACu) goto L_088412AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088412AC: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088412B8u); @@ -2980,14 +4111,40 @@ L_088412B8: aot_gpr_4 = (aot_gpr_29 + static_cast(2432)); aot_gpr_31 = (0x088412C4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 229u, 0x088412C4u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088412C4u) goto L_088412C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088412C4: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088412D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 230u, 0x088412D0u, 0x08830D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 175u, 0x08830D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088412D0u) goto L_088412D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088412D0: ctx.gpr[8] = (aot_gpr_2 + static_cast(8)); ctx.gpr[8] = (ctx.gpr[8] & 255u); @@ -2999,8 +4156,21 @@ L_088412D0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088412F8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 231u, 0x088412F8u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088412F8u) goto L_088412F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088412F8: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08841304u); @@ -3018,32 +4188,97 @@ L_0884130C: aot_gpr_4 = (aot_gpr_29 + static_cast(2448)); aot_gpr_31 = (0x08841318u); aot_gpr_5 = (aot_gpr_29 + static_cast(2160)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 234u, 0x08841318u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841318u) goto L_08841318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841318: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841324u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 235u, 0x08841324u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841324u) goto L_08841324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841324: aot_gpr_4 = (aot_gpr_29 + static_cast(2464)); aot_gpr_31 = (0x08841330u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 236u, 0x08841330u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841330u) goto L_08841330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841330: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0884133Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 237u, 0x0884133Cu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884133Cu) goto L_0884133C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884133C: aot_gpr_4 = (aot_gpr_29 + static_cast(2480)); aot_gpr_31 = (0x08841348u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 238u, 0x08841348u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841348u) goto L_08841348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841348: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841354u); @@ -3054,14 +4289,40 @@ L_08841354: aot_gpr_4 = (aot_gpr_29 + static_cast(2496)); aot_gpr_31 = (0x08841360u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 240u, 0x08841360u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841360u) goto L_08841360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841360: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0884136Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 241u, 0x0884136Cu, 0x08830D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 175u, 0x08830D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884136Cu) goto L_0884136C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884136C: ctx.gpr[8] = (aot_gpr_2 + static_cast(8)); ctx.gpr[8] = (ctx.gpr[8] & 255u); @@ -3073,8 +4334,21 @@ L_0884136C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08841394u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 242u, 0x08841394u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841394u) goto L_08841394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841394: { const bool branch_taken = ctx.gpr[16] != 0u; if (branch_taken) { @@ -3091,8 +4365,21 @@ L_088413A4: aot_gpr_4 = (aot_gpr_29 + static_cast(2176)); aot_gpr_31 = (0x088413B0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 245u, 0x088413B0u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088413B0u) goto L_088413B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088413B0: aot_gpr_31 = (0x088413B8u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3119,8 +4406,21 @@ L_088413C4: } L_088413E8: aot_gpr_31 = (0x088413F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 249u, 0x088413F0u, 0x08830548u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 73u, 0x08830548u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088413F0u) goto L_088413F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088413F0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088413F4; @@ -3195,8 +4495,21 @@ L_08841464: ctx.gpr[10] = (0u | 145u); aot_gpr_31 = (0x088414C8u); ctx.gpr[11] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 255u, 0x088414C8u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088414C8u) goto L_088414C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088414C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3243,8 +4556,21 @@ L_088414E4: ctx.gpr[10] = (0u | 145u); aot_gpr_31 = (0x08841548u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 259u, 0x08841548u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841548u) goto L_08841548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841548: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3291,8 +4617,21 @@ L_08841564: ctx.gpr[10] = (0u | 145u); aot_gpr_31 = (0x088415C8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 263u, 0x088415C8u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088415C8u) goto L_088415C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088415C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2176))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2212))); @@ -3368,8 +4707,21 @@ L_08841640: ctx.gpr[10] = (0u | 22u); aot_gpr_31 = (0x0884169Cu); ctx.gpr[11] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 269u, 0x0884169Cu, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884169Cu) goto L_0884169C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884169C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3415,8 +4767,21 @@ L_088416B8: ctx.gpr[10] = (0u | 22u); aot_gpr_31 = (0x08841718u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 273u, 0x08841718u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841718u) goto L_08841718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841718: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3461,8 +4826,21 @@ L_08841734: ctx.gpr[10] = (0u | 22u); aot_gpr_31 = (0x08841790u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 277u, 0x08841790u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841790u) goto L_08841790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841790: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3520,8 +4898,21 @@ L_088417BC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08841818u); ctx.gpr[11] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 283u, 0x08841818u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841818u) goto L_08841818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841818: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3567,8 +4958,21 @@ L_08841834: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08841894u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 287u, 0x08841894u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841894u) goto L_08841894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841894: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3613,12 +5017,38 @@ L_088418B0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0884190Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 291u, 0x0884190Cu, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884190Cu) goto L_0884190C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884190C: aot_gpr_31 = (0x08841914u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 292u, 0x08841914u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841914u) goto L_08841914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841914: { const bool branch_taken = aot_gpr_17 != aot_gpr_2; if (branch_taken) { @@ -3661,8 +5091,21 @@ L_08841940: } L_08841948: aot_gpr_31 = (0x08841950u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 299u, 0x08841950u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841950u) goto L_08841950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841950: aot_gpr_31 = (0x08841958u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3671,8 +5114,21 @@ L_08841950: L_08841958: aot_gpr_31 = (0x08841960u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 301u, 0x08841960u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841960u) goto L_08841960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841960: aot_gpr_31 = (0x08841968u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3682,8 +5138,21 @@ L_08841968: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08841974u); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 303u, 0x08841974u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841974u) goto L_08841974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841974: aot_gpr_31 = (0x0884197Cu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3692,8 +5161,21 @@ L_08841974: L_0884197C: aot_gpr_31 = (0x08841984u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 305u, 0x08841984u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841984u) goto L_08841984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841984: aot_gpr_31 = (0x0884198Cu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3722,8 +5204,21 @@ L_088419BC: aot_gpr_4 = (aot_gpr_29 + static_cast(2560)); aot_gpr_31 = (0x088419C8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 309u, 0x088419C8u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088419C8u) goto L_088419C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088419C8: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088419D4u); @@ -3734,8 +5229,21 @@ L_088419D4: aot_gpr_4 = (aot_gpr_29 + static_cast(2576)); aot_gpr_31 = (0x088419E0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 311u, 0x088419E0u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088419E0u) goto L_088419E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088419E0: aot_gpr_4 = (16800u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3749,8 +5257,21 @@ L_088419E0: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08841A10u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 312u, 0x08841A10u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841A10u) goto L_08841A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841A10: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3767,8 +5288,21 @@ L_08841A20: aot_gpr_4 = (aot_gpr_29 + static_cast(2592)); aot_gpr_31 = (0x08841A2Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 315u, 0x08841A2Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841A2Cu) goto L_08841A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841A2C: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841A38u); @@ -3779,8 +5313,21 @@ L_08841A38: aot_gpr_4 = (aot_gpr_29 + static_cast(2608)); aot_gpr_31 = (0x08841A44u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 317u, 0x08841A44u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841A44u) goto L_08841A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841A44: aot_gpr_4 = (16800u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3794,8 +5341,21 @@ L_08841A44: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08841A74u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 318u, 0x08841A74u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841A74u) goto L_08841A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841A74: ctx.gpr[16] = (aot_gpr_29 + static_cast(2512)); aot_gpr_31 = (0x08841A80u); @@ -3815,21 +5375,60 @@ L_08841A90: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08841AA4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 321u, 0x08841AA4u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841AA4u) goto L_08841AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841AA4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08841AB4u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 322u, 0x08841AB4u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841AB4u) goto L_08841AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841AB4: aot_gpr_4 = (aot_gpr_29 + static_cast(2544)); aot_gpr_31 = (0x08841AC0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 323u, 0x08841AC0u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841AC0u) goto L_08841AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841AC0: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08841ACCu); @@ -3870,8 +5469,21 @@ L_08841AFC: aot_gpr_4 = (aot_gpr_29 + static_cast(2624)); aot_gpr_31 = (0x08841B08u); aot_gpr_5 = (aot_gpr_29 + static_cast(2544)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 329u, 0x08841B08u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841B08u) goto L_08841B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841B08: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(2640)); @@ -3895,8 +5507,21 @@ L_08841B24: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08841B54u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 331u, 0x08841B54u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841B54u) goto L_08841B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841B54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3908,8 +5533,21 @@ L_08841B5C: aot_gpr_4 = (aot_gpr_29 + static_cast(2656)); aot_gpr_31 = (0x08841B68u); aot_gpr_5 = (aot_gpr_29 + static_cast(2544)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 333u, 0x08841B68u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841B68u) goto L_08841B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841B68: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(2672)); @@ -3934,8 +5572,21 @@ L_08841B84: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08841BB8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 335u, 0x08841BB8u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841BB8u) goto L_08841BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841BB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3993,20 +5644,59 @@ L_08841BFC: L_08841C08: aot_gpr_31 = (0x08841C10u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 344u, 0x08841C10u, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C10u) goto L_08841C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C10: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841C1Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 345u, 0x08841C1Cu, 0x08830DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 184u, 0x08830DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C1Cu) goto L_08841C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C1C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08841C28u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 346u, 0x08841C28u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C28u) goto L_08841C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C28: ctx.gpr[18] = (aot_gpr_29 + static_cast(2720)); ctx.gpr[19] = (aot_gpr_29 + static_cast(2688)); @@ -4014,26 +5704,78 @@ L_08841C28: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08841C40u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 347u, 0x08841C40u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C40u) goto L_08841C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C40: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08841C4Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 348u, 0x08841C4Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C4Cu) goto L_08841C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C4C: ctx.gpr[16] = (aot_gpr_29 + static_cast(2704)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08841C5Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 349u, 0x08841C5Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C5Cu) goto L_08841C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C5C: aot_gpr_31 = (0x08841C64u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 350u, 0x08841C64u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C64u) goto L_08841C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C64: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2736))); aot_gpr_4 = (16384u << 16u); @@ -4042,14 +5784,40 @@ L_08841C64: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08841C80u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 351u, 0x08841C80u, 0x0883032Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 45u, 0x0883032Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C80u) goto L_08841C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C80: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08841C8Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 352u, 0x08841C8Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841C8Cu) goto L_08841C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841C8C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(608))); aot_fpr_14 = std::bit_cast(0u); @@ -4089,19 +5857,58 @@ L_08841CDC: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08841CECu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 357u, 0x08841CECu, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841CECu) goto L_08841CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841CEC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08841CF8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 358u, 0x08841CF8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841CF8u) goto L_08841CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841CF8: aot_gpr_31 = (0x08841D00u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 359u, 0x08841D00u, 0x0883060Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 81u, 0x0883060Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841D00u) goto L_08841D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841D00: aot_gpr_31 = (0x08841D08u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -4111,8 +5918,21 @@ L_08841D08: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08841D14u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 361u, 0x08841D14u, 0x088302B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 40u, 0x088302B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841D14u) goto L_08841D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841D14: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -4171,8 +5991,21 @@ L_08841D54: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08841DBCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 366u, 0x08841DBCu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841DBCu) goto L_08841DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841DBC: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08841DC8u); @@ -4212,8 +6045,21 @@ L_08841DD0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08841E38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 369u, 0x08841E38u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841E38u) goto L_08841E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841E38: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08841E44u); @@ -4231,32 +6077,97 @@ L_08841E4C: aot_gpr_4 = (aot_gpr_29 + static_cast(2784)); aot_gpr_31 = (0x08841E58u); aot_gpr_5 = (aot_gpr_29 + static_cast(2704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 372u, 0x08841E58u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841E58u) goto L_08841E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841E58: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841E64u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 373u, 0x08841E64u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841E64u) goto L_08841E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841E64: aot_gpr_4 = (aot_gpr_29 + static_cast(2800)); aot_gpr_31 = (0x08841E70u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 374u, 0x08841E70u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841E70u) goto L_08841E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841E70: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841E7Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 375u, 0x08841E7Cu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841E7Cu) goto L_08841E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841E7C: aot_gpr_4 = (aot_gpr_29 + static_cast(2816)); aot_gpr_31 = (0x08841E88u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 376u, 0x08841E88u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841E88u) goto L_08841E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841E88: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841E94u); @@ -4267,14 +6178,40 @@ L_08841E94: aot_gpr_4 = (aot_gpr_29 + static_cast(2832)); aot_gpr_31 = (0x08841EA0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 378u, 0x08841EA0u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841EA0u) goto L_08841EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841EA0: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841EACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 379u, 0x08841EACu, 0x08830D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 175u, 0x08830D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841EACu) goto L_08841EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841EAC: ctx.gpr[8] = (aot_gpr_2 + static_cast(4)); ctx.gpr[8] = (ctx.gpr[8] & 255u); @@ -4286,8 +6223,21 @@ L_08841EAC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08841ED4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 380u, 0x08841ED4u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841ED4u) goto L_08841ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841ED4: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08841EE0u); @@ -4305,32 +6255,97 @@ L_08841EE8: aot_gpr_4 = (aot_gpr_29 + static_cast(2848)); aot_gpr_31 = (0x08841EF4u); aot_gpr_5 = (aot_gpr_29 + static_cast(2720)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 383u, 0x08841EF4u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841EF4u) goto L_08841EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841EF4: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841F00u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 384u, 0x08841F00u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841F00u) goto L_08841F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841F00: aot_gpr_4 = (aot_gpr_29 + static_cast(2864)); aot_gpr_31 = (0x08841F0Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 385u, 0x08841F0Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841F0Cu) goto L_08841F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841F0C: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841F18u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 386u, 0x08841F18u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841F18u) goto L_08841F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841F18: aot_gpr_4 = (aot_gpr_29 + static_cast(2880)); aot_gpr_31 = (0x08841F24u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 387u, 0x08841F24u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841F24u) goto L_08841F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841F24: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841F30u); @@ -4341,14 +6356,40 @@ L_08841F30: aot_gpr_4 = (aot_gpr_29 + static_cast(2896)); aot_gpr_31 = (0x08841F3Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 389u, 0x08841F3Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841F3Cu) goto L_08841F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841F3C: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08841F48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 390u, 0x08841F48u, 0x08830D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 175u, 0x08830D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841F48u) goto L_08841F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841F48: ctx.gpr[8] = (aot_gpr_2 + static_cast(4)); ctx.gpr[8] = (ctx.gpr[8] & 255u); @@ -4360,8 +6401,21 @@ L_08841F48: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08841F70u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 391u, 0x08841F70u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841F70u) goto L_08841F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841F70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4408,8 +6462,21 @@ L_08841F8C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08841FF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 395u, 0x08841FF4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08841FF4u) goto L_08841FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08841FF4: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08842000u); @@ -4449,8 +6516,21 @@ L_08842008: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08842070u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 398u, 0x08842070u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842070u) goto L_08842070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842070: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x0884207Cu); @@ -4468,32 +6548,97 @@ L_08842084: aot_gpr_4 = (aot_gpr_29 + static_cast(2912)); aot_gpr_31 = (0x08842090u); aot_gpr_5 = (aot_gpr_29 + static_cast(2704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 401u, 0x08842090u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842090u) goto L_08842090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842090: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0884209Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 402u, 0x0884209Cu, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884209Cu) goto L_0884209C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884209C: aot_gpr_4 = (aot_gpr_29 + static_cast(2928)); aot_gpr_31 = (0x088420A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 403u, 0x088420A8u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088420A8u) goto L_088420A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088420A8: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088420B4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 404u, 0x088420B4u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088420B4u) goto L_088420B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088420B4: aot_gpr_4 = (aot_gpr_29 + static_cast(2944)); aot_gpr_31 = (0x088420C0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 405u, 0x088420C0u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088420C0u) goto L_088420C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088420C0: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088420CCu); @@ -4504,14 +6649,40 @@ L_088420CC: aot_gpr_4 = (aot_gpr_29 + static_cast(2960)); aot_gpr_31 = (0x088420D8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 407u, 0x088420D8u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088420D8u) goto L_088420D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088420D8: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088420E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 408u, 0x088420E4u, 0x08830D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 175u, 0x08830D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088420E4u) goto L_088420E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088420E4: ctx.gpr[8] = (aot_gpr_2 + static_cast(8)); ctx.gpr[8] = (ctx.gpr[8] & 255u); @@ -4523,8 +6694,21 @@ L_088420E4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0884210Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 409u, 0x0884210Cu, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884210Cu) goto L_0884210C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884210C: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08842118u); @@ -4542,32 +6726,97 @@ L_08842120: aot_gpr_4 = (aot_gpr_29 + static_cast(2976)); aot_gpr_31 = (0x0884212Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(2720)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 412u, 0x0884212Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884212Cu) goto L_0884212C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884212C: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08842138u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 413u, 0x08842138u, 0x088307A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 103u, 0x088307A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842138u) goto L_08842138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842138: aot_gpr_4 = (aot_gpr_29 + static_cast(2992)); aot_gpr_31 = (0x08842144u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 414u, 0x08842144u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842144u) goto L_08842144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842144: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08842150u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 415u, 0x08842150u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842150u) goto L_08842150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842150: aot_gpr_4 = (aot_gpr_29 + static_cast(3008)); aot_gpr_31 = (0x0884215Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 416u, 0x0884215Cu, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884215Cu) goto L_0884215C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884215C: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08842168u); @@ -4578,14 +6827,40 @@ L_08842168: aot_gpr_4 = (aot_gpr_29 + static_cast(3024)); aot_gpr_31 = (0x08842174u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 418u, 0x08842174u, 0x08830460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 63u, 0x08830460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842174u) goto L_08842174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842174: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08842180u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 419u, 0x08842180u, 0x08830D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 175u, 0x08830D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842180u) goto L_08842180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842180: ctx.gpr[8] = (aot_gpr_2 + static_cast(8)); ctx.gpr[8] = (ctx.gpr[8] & 255u); @@ -4597,8 +6872,21 @@ L_08842180: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088421A8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 420u, 0x088421A8u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088421A8u) goto L_088421A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088421A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4630,8 +6918,21 @@ L_088421C4: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088421ECu); aot_fpr_13 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 424u, 0x088421ECu, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088421ECu) goto L_088421EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088421EC: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x088421F8u); @@ -4656,8 +6957,21 @@ L_08842200: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08842228u); aot_fpr_13 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 427u, 0x08842228u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842228u) goto L_08842228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842228: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4689,8 +7003,21 @@ L_08842244: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x0884226Cu); aot_fpr_13 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 431u, 0x0884226Cu, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884226Cu) goto L_0884226C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884226C: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08842278u); @@ -4715,14 +7042,40 @@ L_08842280: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088422A8u); aot_fpr_13 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 434u, 0x088422A8u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088422A8u) goto L_088422A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088422A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x088422B4u); aot_gpr_5 = (512u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 435u, 0x088422B4u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088422B4u) goto L_088422B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088422B4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4734,8 +7087,21 @@ L_088422BC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088422C8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 437u, 0x088422C8u, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088422C8u) goto L_088422C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088422C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4760,8 +7126,21 @@ L_088422E4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088422F0u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 441u, 0x088422F0u, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088422F0u) goto L_088422F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088422F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4773,14 +7152,40 @@ L_088422F8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08842304u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 443u, 0x08842304u, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842304u) goto L_08842304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842304: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08842310u); aot_gpr_5 = (512u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 444u, 0x08842310u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842310u) goto L_08842310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842310: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4843,8 +7248,21 @@ L_0884238C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088423A0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 452u, 0x088423A0u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088423A0u) goto L_088423A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088423A0: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088423ACu); @@ -4870,8 +7288,21 @@ L_088423C4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x088423DCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 456u, 0x088423DCu, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088423DCu) goto L_088423DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088423DC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4900,8 +7331,21 @@ L_08842404: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08842414u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3040), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 461u, 0x08842414u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842414u) goto L_08842414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842414: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4913,8 +7357,21 @@ L_08842414: aot_gpr_5 = (aot_gpr_29 + static_cast(3044)); aot_gpr_31 = (0x0884243Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(3040)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 462u, 0x0884243Cu, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884243Cu) goto L_0884243C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884243C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -4931,8 +7388,21 @@ L_0884243C: aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x0884247Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 463u, 0x0884247Cu, 0x088305A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 75u, 0x088305A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884247Cu) goto L_0884247C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884247C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[16] = (std::bit_cast(aot_fpr_12)); @@ -4995,18 +7465,57 @@ L_088424E4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08842500u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 472u, 0x08842500u, 0x08B09D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 371u, 0x08B09D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842500u) goto L_08842500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842500: aot_gpr_31 = (0x08842508u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 473u, 0x08842508u, 0x08830694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 86u, 0x08830694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842508u) goto L_08842508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842508: aot_gpr_31 = (0x08842510u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 474u, 0x08842510u, 0x08830840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 114u, 0x08830840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842510u) goto L_08842510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842510: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0884251Cu); @@ -5033,55 +7542,172 @@ L_08842534: ctx.gpr[18] = (aot_gpr_29 + static_cast(3056)); aot_gpr_31 = (0x08842540u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 478u, 0x08842540u, 0x08830694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 86u, 0x08830694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842540u) goto L_08842540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842540: aot_gpr_31 = (0x08842548u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 479u, 0x08842548u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842548u) goto L_08842548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842548: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08842558u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 480u, 0x08842558u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842558u) goto L_08842558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842558: ctx.gpr[19] = (aot_gpr_29 + static_cast(3136)); aot_gpr_31 = (0x08842564u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 481u, 0x08842564u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842564u) goto L_08842564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842564: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08842570u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 482u, 0x08842570u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842570u) goto L_08842570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842570: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1852))); aot_gpr_31 = (0x0884257Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 483u, 0x0884257Cu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884257Cu) goto L_0884257C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884257C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08842588u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 484u, 0x08842588u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842588u) goto L_08842588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842588: aot_gpr_31 = (0x08842590u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 485u, 0x08842590u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842590u) goto L_08842590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842590: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884259Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 486u, 0x0884259Cu, 0x0883072Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 93u, 0x0883072Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884259Cu) goto L_0884259C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884259C: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(160), static_cast(aot_gpr_4)); @@ -5092,34 +7718,99 @@ L_0884259C: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x088425C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1280))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 487u, 0x088425C0u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088425C0u) goto L_088425C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088425C0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088425D0u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 488u, 0x088425D0u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088425D0u) goto L_088425D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088425D0: aot_gpr_31 = (0x088425D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 489u, 0x088425D8u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088425D8u) goto L_088425D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088425D8: aot_gpr_4 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x088425E4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 490u, 0x088425E4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088425E4u) goto L_088425E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088425E4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1632))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x088425F8u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 491u, 0x088425F8u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088425F8u) goto L_088425F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088425F8: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5133,8 +7824,21 @@ L_08842604: ctx.fpr[22] = std::bit_cast(0u); aot_gpr_31 = (0x08842614u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 493u, 0x08842614u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842614u) goto L_08842614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842614: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -5144,8 +7848,21 @@ L_08842614: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08842634u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 494u, 0x08842634u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842634u) goto L_08842634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842634: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5157,8 +7874,21 @@ L_0884263C: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842648u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1616))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 496u, 0x08842648u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842648u) goto L_08842648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842648: aot_gpr_31 = (0x08842650u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5192,8 +7922,21 @@ L_08842664: L_0884267C: aot_gpr_31 = (0x08842684u); aot_gpr_4 = (aot_gpr_17 + static_cast(1488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 501u, 0x08842684u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842684u) goto L_08842684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842684: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5208,8 +7951,21 @@ L_08842690: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x088426A4u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 503u, 0x088426A4u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088426A4u) goto L_088426A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088426A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 + static_cast(3)); @@ -5246,8 +8002,21 @@ L_088426E8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088426F8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 508u, 0x088426F8u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088426F8u) goto L_088426F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088426F8: ctx.gpr[21] = (aot_gpr_29 + static_cast(3200)); aot_gpr_4 = (15820u << 16u); @@ -5255,22 +8024,61 @@ L_088426F8: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08842710u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 509u, 0x08842710u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842710u) goto L_08842710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842710: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08842720u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 510u, 0x08842720u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842720u) goto L_08842720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842720: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08842730u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 511u, 0x08842730u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842730u) goto L_08842730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842730: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -5285,8 +8093,21 @@ L_08842730: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08842764u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 512u, 0x08842764u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842764u) goto L_08842764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842764: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5322,8 +8143,21 @@ L_088427A4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088427B4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 517u, 0x088427B4u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088427B4u) goto L_088427B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088427B4: ctx.gpr[22] = (aot_gpr_29 + static_cast(3280)); aot_gpr_4 = (15897u << 16u); @@ -5331,22 +8165,61 @@ L_088427B4: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088427CCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 518u, 0x088427CCu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088427CCu) goto L_088427CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088427CC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x088427DCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 519u, 0x088427DCu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088427DCu) goto L_088427DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088427DC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088427ECu); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 520u, 0x088427ECu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088427ECu) goto L_088427EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088427EC: aot_gpr_4 = (aot_gpr_29 + static_cast(3296)); aot_fpr_20 = std::bit_cast(0u); @@ -5363,15 +8236,41 @@ L_0884280C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0884281Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 522u, 0x0884281Cu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884281Cu) goto L_0884281C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884281C: aot_gpr_4 = (16672u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0884282Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 523u, 0x0884282Cu, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884282Cu) goto L_0884282C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884282C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[20] = (std::bit_cast(aot_fpr_12)); @@ -5379,8 +8278,21 @@ L_0884282C: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08842844u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 524u, 0x08842844u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842844u) goto L_08842844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842844: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[10] = (std::bit_cast(aot_fpr_13)); @@ -5394,8 +8306,21 @@ L_08842844: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08842874u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 525u, 0x08842874u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842874u) goto L_08842874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842874: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5410,8 +8335,21 @@ L_0884287C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842894u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 527u, 0x08842894u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842894u) goto L_08842894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842894: aot_gpr_4 = (16128u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); @@ -5447,32 +8385,97 @@ L_088428C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3324), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088428F4u); aot_gpr_5 = (aot_gpr_29 + static_cast(3324)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 531u, 0x088428F4u, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088428F4u) goto L_088428F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088428F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3316), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(3316)); aot_gpr_31 = (0x08842904u); aot_gpr_4 = (aot_gpr_29 + static_cast(3312)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 532u, 0x08842904u, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842904u) goto L_08842904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842904: aot_gpr_31 = (0x0884290Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 533u, 0x0884290Cu, 0x088304E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 69u, 0x088304E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884290Cu) goto L_0884290C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884290C: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842918u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 534u, 0x08842918u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842918u) goto L_08842918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842918: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08842924u); aot_gpr_5 = (0u | 16384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 535u, 0x08842924u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842924u) goto L_08842924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842924: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5484,8 +8487,21 @@ L_0884292C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842938u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 537u, 0x08842938u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842938u) goto L_08842938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842938: aot_gpr_4 = (16275u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -5494,23 +8510,62 @@ L_08842938: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842954u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 538u, 0x08842954u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842954u) goto L_08842954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842954: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842964u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 539u, 0x08842964u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842964u) goto L_08842964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842964: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08842978u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 540u, 0x08842978u, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842978u) goto L_08842978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842978: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5522,50 +8577,154 @@ L_08842980: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0884298Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 542u, 0x0884298Cu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884298Cu) goto L_0884298C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884298C: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842998u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 543u, 0x08842998u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842998u) goto L_08842998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842998: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); ctx.gpr[19] = (aot_gpr_29 + static_cast(144)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088429ACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 544u, 0x088429ACu, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088429ACu) goto L_088429AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088429AC: aot_gpr_31 = (0x088429B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 545u, 0x088429B4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088429B4u) goto L_088429B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088429B4: aot_gpr_31 = (0x088429BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1292))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 546u, 0x088429BCu, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088429BCu) goto L_088429BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088429BC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088429CCu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 547u, 0x088429CCu, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088429CCu) goto L_088429CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088429CC: aot_gpr_31 = (0x088429D4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 548u, 0x088429D4u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088429D4u) goto L_088429D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088429D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088429E0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 549u, 0x088429E0u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088429E0u) goto L_088429E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088429E0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1624))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); @@ -5573,8 +8732,21 @@ L_088429E0: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x088429F8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 550u, 0x088429F8u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088429F8u) goto L_088429F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088429F8: { const bool branch_taken = aot_gpr_2 != ctx.gpr[18]; if (branch_taken) { @@ -5588,8 +8760,21 @@ L_08842A00: ctx.fpr[22] = std::bit_cast(0u); aot_gpr_31 = (0x08842A14u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 552u, 0x08842A14u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842A14u) goto L_08842A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842A14: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -5603,8 +8788,21 @@ L_08842A14: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08842A44u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 553u, 0x08842A44u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842A44u) goto L_08842A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842A44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5621,8 +8819,21 @@ L_08842A4C: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x08842A6Cu); aot_fpr_14 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 555u, 0x08842A6Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842A6Cu) goto L_08842A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842A6C: aot_gpr_31 = (0x08842A74u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5656,8 +8867,21 @@ L_08842A88: L_08842AA0: aot_gpr_31 = (0x08842AA8u); aot_gpr_4 = (aot_gpr_17 + static_cast(1424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 560u, 0x08842AA8u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842AA8u) goto L_08842AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842AA8: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5672,8 +8896,21 @@ L_08842AB4: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x08842AC8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 562u, 0x08842AC8u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842AC8u) goto L_08842AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842AC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -5710,8 +8947,21 @@ L_08842B0C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08842B1Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 567u, 0x08842B1Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842B1Cu) goto L_08842B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842B1C: ctx.gpr[21] = (aot_gpr_29 + static_cast(3376)); aot_gpr_4 = (15820u << 16u); @@ -5719,22 +8969,61 @@ L_08842B1C: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08842B34u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 568u, 0x08842B34u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842B34u) goto L_08842B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842B34: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08842B44u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 569u, 0x08842B44u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842B44u) goto L_08842B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842B44: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08842B54u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 570u, 0x08842B54u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842B54u) goto L_08842B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842B54: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -5749,8 +9038,21 @@ L_08842B54: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08842B88u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 571u, 0x08842B88u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842B88u) goto L_08842B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842B88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5786,8 +9088,21 @@ L_08842BC8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08842BD8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 576u, 0x08842BD8u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842BD8u) goto L_08842BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842BD8: ctx.gpr[22] = (aot_gpr_29 + static_cast(3456)); aot_gpr_4 = (15897u << 16u); @@ -5795,22 +9110,61 @@ L_08842BD8: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08842BF0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 577u, 0x08842BF0u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842BF0u) goto L_08842BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842BF0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08842C00u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 578u, 0x08842C00u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842C00u) goto L_08842C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842C00: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08842C10u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 579u, 0x08842C10u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842C10u) goto L_08842C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842C10: aot_gpr_4 = (aot_gpr_29 + static_cast(3472)); aot_fpr_20 = std::bit_cast(0u); @@ -5827,15 +9181,41 @@ L_08842C30: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08842C40u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 581u, 0x08842C40u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842C40u) goto L_08842C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842C40: aot_gpr_4 = (16672u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08842C50u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 582u, 0x08842C50u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842C50u) goto L_08842C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842C50: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[20] = (std::bit_cast(aot_fpr_12)); @@ -5843,8 +9223,21 @@ L_08842C50: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08842C68u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 583u, 0x08842C68u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842C68u) goto L_08842C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842C68: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[10] = (std::bit_cast(aot_fpr_13)); @@ -5858,8 +9251,21 @@ L_08842C68: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08842C98u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 584u, 0x08842C98u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842C98u) goto L_08842C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842C98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5874,8 +9280,21 @@ L_08842CA0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842CB8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 586u, 0x08842CB8u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842CB8u) goto L_08842CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842CB8: aot_gpr_4 = (16128u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); @@ -5910,32 +9329,97 @@ L_08842CEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3500), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08842D14u); aot_gpr_5 = (aot_gpr_29 + static_cast(3500)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 590u, 0x08842D14u, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D14u) goto L_08842D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3492), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(3492)); aot_gpr_31 = (0x08842D24u); aot_gpr_4 = (aot_gpr_29 + static_cast(3488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 591u, 0x08842D24u, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D24u) goto L_08842D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D24: aot_gpr_31 = (0x08842D2Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 592u, 0x08842D2Cu, 0x088304E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 69u, 0x088304E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D2Cu) goto L_08842D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D2C: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842D38u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 593u, 0x08842D38u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D38u) goto L_08842D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08842D44u); aot_gpr_5 = (0u | 16384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 594u, 0x08842D44u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D44u) goto L_08842D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D44: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5947,8 +9431,21 @@ L_08842D4C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842D58u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 596u, 0x08842D58u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D58u) goto L_08842D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D58: aot_gpr_4 = (16275u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -5957,23 +9454,62 @@ L_08842D58: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842D74u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 597u, 0x08842D74u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D74u) goto L_08842D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D74: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842D84u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 598u, 0x08842D84u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D84u) goto L_08842D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D84: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08842D98u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 599u, 0x08842D98u, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842D98u) goto L_08842D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842D98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5985,26 +9521,78 @@ L_08842DA0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842DACu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 601u, 0x08842DACu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842DACu) goto L_08842DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842DAC: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842DB8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 602u, 0x08842DB8u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842DB8u) goto L_08842DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842DB8: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08842DC8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 603u, 0x08842DC8u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842DC8u) goto L_08842DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842DC8: aot_gpr_31 = (0x08842DD0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 604u, 0x08842DD0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842DD0u) goto L_08842DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842DD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1276))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6017,34 +9605,99 @@ L_08842DDC: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842DE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1276))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 606u, 0x08842DE8u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842DE8u) goto L_08842DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842DE8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08842DF8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 607u, 0x08842DF8u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842DF8u) goto L_08842DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842DF8: aot_gpr_31 = (0x08842E00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 608u, 0x08842E00u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842E00u) goto L_08842E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842E00: aot_gpr_4 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08842E0Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 609u, 0x08842E0Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842E0Cu) goto L_08842E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842E0C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1632))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08842E20u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 610u, 0x08842E20u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842E20u) goto L_08842E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842E20: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6058,8 +9711,21 @@ L_08842E2C: ctx.fpr[22] = std::bit_cast(0u); aot_gpr_31 = (0x08842E3Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 612u, 0x08842E3Cu, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842E3Cu) goto L_08842E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842E3C: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -6069,8 +9735,21 @@ L_08842E3C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08842E5Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 613u, 0x08842E5Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842E5Cu) goto L_08842E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842E5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6082,8 +9761,21 @@ L_08842E64: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842E70u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1616))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 615u, 0x08842E70u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842E70u) goto L_08842E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842E70: aot_gpr_31 = (0x08842E78u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6117,8 +9809,21 @@ L_08842E8C: L_08842EA4: aot_gpr_31 = (0x08842EACu); aot_gpr_4 = (aot_gpr_17 + static_cast(1488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 620u, 0x08842EACu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842EACu) goto L_08842EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842EAC: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6133,8 +9838,21 @@ L_08842EB8: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x08842ECCu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 622u, 0x08842ECCu, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842ECCu) goto L_08842ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842ECC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6149,8 +9867,21 @@ L_08842ED4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842EECu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 624u, 0x08842EECu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842EECu) goto L_08842EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842EEC: aot_gpr_4 = (16128u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); @@ -6186,32 +9917,97 @@ L_08842F20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3516), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08842F4Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(3516)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 628u, 0x08842F4Cu, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842F4Cu) goto L_08842F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842F4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3508), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(3508)); aot_gpr_31 = (0x08842F5Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(3504)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 629u, 0x08842F5Cu, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842F5Cu) goto L_08842F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842F5C: aot_gpr_31 = (0x08842F64u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 630u, 0x08842F64u, 0x088304E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 69u, 0x088304E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842F64u) goto L_08842F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842F64: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842F70u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 631u, 0x08842F70u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842F70u) goto L_08842F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842F70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08842F7Cu); aot_gpr_5 = (0u | 16384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 632u, 0x08842F7Cu, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842F7Cu) goto L_08842F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842F7C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6223,8 +10019,21 @@ L_08842F84: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842F90u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 634u, 0x08842F90u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842F90u) goto L_08842F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842F90: aot_gpr_4 = (16275u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -6233,23 +10042,62 @@ L_08842F90: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842FACu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 635u, 0x08842FACu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842FACu) goto L_08842FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842FAC: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842FBCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 636u, 0x08842FBCu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842FBCu) goto L_08842FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842FBC: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08842FD0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 637u, 0x08842FD0u, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842FD0u) goto L_08842FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842FD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6261,26 +10109,78 @@ L_08842FD8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08842FE4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 639u, 0x08842FE4u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842FE4u) goto L_08842FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842FE4: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08842FF0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 640u, 0x08842FF0u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08842FF0u) goto L_08842FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08842FF0: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843000u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 641u, 0x08843000u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843000u) goto L_08843000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843000: aot_gpr_31 = (0x08843008u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 642u, 0x08843008u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843008u) goto L_08843008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843008: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1288))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6293,26 +10193,78 @@ L_08843014: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843020u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 644u, 0x08843020u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843020u) goto L_08843020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843020: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08843030u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 645u, 0x08843030u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843030u) goto L_08843030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843030: aot_gpr_31 = (0x08843038u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 646u, 0x08843038u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843038u) goto L_08843038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843038: aot_gpr_4 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843044u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 647u, 0x08843044u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843044u) goto L_08843044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843044: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1624))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); @@ -6320,8 +10272,21 @@ L_08843044: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x0884305Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 648u, 0x0884305Cu, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884305Cu) goto L_0884305C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884305C: { const bool branch_taken = aot_gpr_2 != ctx.gpr[18]; if (branch_taken) { @@ -6335,8 +10300,21 @@ L_08843064: ctx.fpr[22] = std::bit_cast(0u); aot_gpr_31 = (0x08843078u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 650u, 0x08843078u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843078u) goto L_08843078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843078: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -6350,8 +10328,21 @@ L_08843078: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088430A8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 651u, 0x088430A8u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088430A8u) goto L_088430A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088430A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6368,8 +10359,21 @@ L_088430B0: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x088430D0u); aot_fpr_14 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 653u, 0x088430D0u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088430D0u) goto L_088430D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088430D0: aot_gpr_31 = (0x088430D8u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6403,8 +10407,21 @@ L_088430EC: L_08843104: aot_gpr_31 = (0x0884310Cu); aot_gpr_4 = (aot_gpr_17 + static_cast(1424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 658u, 0x0884310Cu, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884310Cu) goto L_0884310C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884310C: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6419,8 +10436,21 @@ L_08843118: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x0884312Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 660u, 0x0884312Cu, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884312Cu) goto L_0884312C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884312C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6435,8 +10465,21 @@ L_08843134: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0884314Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 662u, 0x0884314Cu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884314Cu) goto L_0884314C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884314C: aot_gpr_4 = (16128u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); @@ -6471,32 +10514,97 @@ L_08843180: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3532), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088431A8u); aot_gpr_5 = (aot_gpr_29 + static_cast(3532)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 666u, 0x088431A8u, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088431A8u) goto L_088431A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088431A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3524), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(3524)); aot_gpr_31 = (0x088431B8u); aot_gpr_4 = (aot_gpr_29 + static_cast(3520)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 667u, 0x088431B8u, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088431B8u) goto L_088431B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088431B8: aot_gpr_31 = (0x088431C0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 668u, 0x088431C0u, 0x088304E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 69u, 0x088304E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088431C0u) goto L_088431C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088431C0: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x088431CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 669u, 0x088431CCu, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088431CCu) goto L_088431CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088431CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x088431D8u); aot_gpr_5 = (0u | 16384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 670u, 0x088431D8u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088431D8u) goto L_088431D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088431D8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6508,8 +10616,21 @@ L_088431E0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088431ECu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 672u, 0x088431ECu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088431ECu) goto L_088431EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088431EC: aot_gpr_4 = (16275u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -6518,23 +10639,62 @@ L_088431EC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843208u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 673u, 0x08843208u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843208u) goto L_08843208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843208: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843218u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 674u, 0x08843218u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843218u) goto L_08843218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843218: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0884322Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 675u, 0x0884322Cu, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884322Cu) goto L_0884322C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884322C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6546,32 +10706,97 @@ L_08843234: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843240u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 677u, 0x08843240u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843240u) goto L_08843240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843240: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x0884324Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 678u, 0x0884324Cu, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884324Cu) goto L_0884324C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884324C: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x0884325Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 679u, 0x0884325Cu, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884325Cu) goto L_0884325C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884325C: aot_gpr_31 = (0x08843264u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 680u, 0x08843264u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843264u) goto L_08843264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843264: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08843270u); aot_gpr_5 = (1024u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 681u, 0x08843270u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843270u) goto L_08843270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843270: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6583,34 +10808,99 @@ L_08843278: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843284u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 683u, 0x08843284u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843284u) goto L_08843284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843284: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08843294u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 684u, 0x08843294u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843294u) goto L_08843294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843294: aot_gpr_31 = (0x0884329Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 685u, 0x0884329Cu, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884329Cu) goto L_0884329C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884329C: aot_gpr_4 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x088432A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 686u, 0x088432A8u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088432A8u) goto L_088432A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088432A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1628))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x088432BCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 687u, 0x088432BCu, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088432BCu) goto L_088432BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088432BC: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6625,8 +10915,21 @@ L_088432C8: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(600))); aot_gpr_31 = (0x088432DCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 689u, 0x088432DCu, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088432DCu) goto L_088432DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088432DC: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -6637,8 +10940,21 @@ L_088432DC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08843300u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 690u, 0x08843300u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843300u) goto L_08843300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843300: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6652,32 +10968,97 @@ L_08843308: aot_fpr_13 = std::bit_cast(0u); aot_gpr_31 = (0x0884331Cu); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 692u, 0x0884331Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884331Cu) goto L_0884331C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884331C: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0884332Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 693u, 0x0884332Cu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884332Cu) goto L_0884332C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884332C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08843338u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 694u, 0x08843338u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843338u) goto L_08843338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843338: aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843344u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 695u, 0x08843344u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843344u) goto L_08843344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843344: aot_gpr_31 = (0x0884334Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 696u, 0x0884334Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884334Cu) goto L_0884334C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884334C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1344))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6690,49 +11071,153 @@ L_08843358: ctx.gpr[16] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843364u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1344))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 698u, 0x08843364u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843364u) goto L_08843364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843364: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08843374u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 699u, 0x08843374u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843374u) goto L_08843374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843374: ctx.gpr[18] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843380u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 700u, 0x08843380u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843380u) goto L_08843380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843380: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884338Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 701u, 0x0884338Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884338Cu) goto L_0884338C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884338C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1876))); aot_gpr_31 = (0x08843398u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 702u, 0x08843398u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843398u) goto L_08843398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843398: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088433A4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 703u, 0x088433A4u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088433A4u) goto L_088433A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088433A4: aot_gpr_31 = (0x088433ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 704u, 0x088433ACu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088433ACu) goto L_088433AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088433AC: aot_gpr_31 = (0x088433B4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 705u, 0x088433B4u, 0x08830E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 191u, 0x08830E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088433B4u) goto L_088433B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088433B4: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[0]) || std::isnan(aot_fpr_12)) && ctx.fpr[0] == aot_fpr_12)) ? 0x00800000u : 0u); @@ -6787,8 +11272,21 @@ L_08843434: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08843440u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 711u, 0x08843440u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843440u) goto L_08843440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843440: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -6808,8 +11306,21 @@ L_0884344C: L_08843458: aot_gpr_31 = (0x08843460u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 714u, 0x08843460u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843460u) goto L_08843460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843460: aot_gpr_4 = (16068u << 16u); aot_gpr_4 = (aot_gpr_4 | 38922u); @@ -6818,27 +11329,79 @@ L_08843460: ctx.gpr[16] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x0884347Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 715u, 0x0884347Cu, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884347Cu) goto L_0884347C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884347C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0884348Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 716u, 0x0884348Cu, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884348Cu) goto L_0884348C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884348C: ctx.gpr[18] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843498u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 717u, 0x08843498u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843498u) goto L_08843498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843498: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088434A4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 718u, 0x088434A4u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088434A4u) goto L_088434A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088434A4: ctx.fpr[22] = std::bit_cast(0u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(600))); @@ -6847,27 +11410,79 @@ L_088434A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x088434C0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 719u, 0x088434C0u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088434C0u) goto L_088434C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088434C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088434D4u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 720u, 0x088434D4u, 0x088600C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 5u, 0x088600C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088434D4u) goto L_088434D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088434D4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088434E0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 721u, 0x088434E0u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088434E0u) goto L_088434E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088434E0: aot_gpr_31 = (0x088434E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 722u, 0x088434E8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088434E8u) goto L_088434E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088434E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6888,27 +11503,79 @@ L_08843500: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x0884350Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 725u, 0x0884350Cu, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884350Cu) goto L_0884350C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884350C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0884351Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 726u, 0x0884351Cu, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884351Cu) goto L_0884351C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884351C: ctx.gpr[19] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843528u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 727u, 0x08843528u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843528u) goto L_08843528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843528: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08843534u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 728u, 0x08843534u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843534u) goto L_08843534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843534: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1628))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); @@ -6918,54 +11585,171 @@ L_08843534: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08843554u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 729u, 0x08843554u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843554u) goto L_08843554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843554: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843560u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 730u, 0x08843560u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843560u) goto L_08843560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843560: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884356Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 731u, 0x0884356Cu, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884356Cu) goto L_0884356C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884356C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08843578u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 732u, 0x08843578u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843578u) goto L_08843578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843578: aot_gpr_31 = (0x08843580u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 733u, 0x08843580u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843580u) goto L_08843580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843580: aot_gpr_31 = (0x08843588u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1284))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 734u, 0x08843588u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843588u) goto L_08843588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843588: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08843598u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 735u, 0x08843598u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843598u) goto L_08843598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843598: aot_gpr_31 = (0x088435A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 736u, 0x088435A0u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088435A0u) goto L_088435A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088435A0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088435ACu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 737u, 0x088435ACu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088435ACu) goto L_088435AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088435AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1620))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); @@ -6977,31 +11761,96 @@ L_088435AC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088435D4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 738u, 0x088435D4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088435D4u) goto L_088435D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088435D4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088435E0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 739u, 0x088435E0u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088435E0u) goto L_088435E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088435E0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088435ECu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 740u, 0x088435ECu, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088435ECu) goto L_088435EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088435EC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088435F8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 741u, 0x088435F8u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088435F8u) goto L_088435F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088435F8: aot_gpr_31 = (0x08843600u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 742u, 0x08843600u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843600u) goto L_08843600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843600: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7013,8 +11862,21 @@ L_08843608: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08843614u); aot_gpr_5 = (512u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 744u, 0x08843614u, 0x08830CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 166u, 0x08830CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843614u) goto L_08843614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843614: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7034,44 +11896,135 @@ L_08843628: ctx.gpr[16] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843634u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 747u, 0x08843634u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843634u) goto L_08843634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843634: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08843644u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 748u, 0x08843644u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843644u) goto L_08843644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843644: ctx.gpr[18] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843650u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 749u, 0x08843650u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843650u) goto L_08843650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843650: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884365Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 750u, 0x0884365Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884365Cu) goto L_0884365C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884365C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1608))); aot_gpr_31 = (0x08843668u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 751u, 0x08843668u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843668u) goto L_08843668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843668: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843674u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 752u, 0x08843674u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843674u) goto L_08843674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843674: aot_gpr_31 = (0x0884367Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 753u, 0x0884367Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884367Cu) goto L_0884367C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884367C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1344))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7084,45 +12037,136 @@ L_08843688: ctx.gpr[16] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843694u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1344))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 755u, 0x08843694u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843694u) goto L_08843694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843694: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088436A4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 756u, 0x088436A4u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088436A4u) goto L_088436A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088436A4: ctx.gpr[18] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x088436B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 757u, 0x088436B0u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088436B0u) goto L_088436B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088436B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088436BCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 758u, 0x088436BCu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088436BCu) goto L_088436BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088436BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1608))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088436CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 759u, 0x088436CCu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088436CCu) goto L_088436CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088436CC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088436D8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 760u, 0x088436D8u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088436D8u) goto L_088436D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088436D8: aot_gpr_31 = (0x088436E0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 761u, 0x088436E0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088436E0u) goto L_088436E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088436E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7135,44 +12179,135 @@ L_088436EC: ctx.gpr[16] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x088436F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 763u, 0x088436F8u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088436F8u) goto L_088436F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088436F8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08843708u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 764u, 0x08843708u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843708u) goto L_08843708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843708: ctx.gpr[18] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843714u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 765u, 0x08843714u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843714u) goto L_08843714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843714: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08843720u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 766u, 0x08843720u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843720u) goto L_08843720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843720: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1616))); aot_gpr_31 = (0x0884372Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 767u, 0x0884372Cu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884372Cu) goto L_0884372C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884372C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843738u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 768u, 0x08843738u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843738u) goto L_08843738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843738: aot_gpr_31 = (0x08843740u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 769u, 0x08843740u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843740u) goto L_08843740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843740: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1316))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7185,45 +12320,136 @@ L_0884374C: ctx.gpr[16] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843758u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1316))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 771u, 0x08843758u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843758u) goto L_08843758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843758: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08843768u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 772u, 0x08843768u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843768u) goto L_08843768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843768: ctx.gpr[18] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08843774u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 773u, 0x08843774u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843774u) goto L_08843774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843774: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08843780u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 774u, 0x08843780u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843780u) goto L_08843780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843780: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1616))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08843790u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 775u, 0x08843790u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843790u) goto L_08843790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843790: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0884379Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 776u, 0x0884379Cu, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884379Cu) goto L_0884379C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884379C: aot_gpr_31 = (0x088437A4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 777u, 0x088437A4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088437A4u) goto L_088437A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088437A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7235,26 +12461,78 @@ L_088437AC: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x088437B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 779u, 0x088437B8u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088437B8u) goto L_088437B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088437B8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088437C8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 780u, 0x088437C8u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088437C8u) goto L_088437C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088437C8: aot_gpr_31 = (0x088437D0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 781u, 0x088437D0u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088437D0u) goto L_088437D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088437D0: aot_gpr_4 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x088437DCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 782u, 0x088437DCu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088437DCu) goto L_088437DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088437DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1628))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); @@ -7277,8 +12555,21 @@ L_0884380C: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08843818u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 785u, 0x08843818u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843818u) goto L_08843818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843818: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7292,8 +12583,21 @@ L_08843824: ctx.fpr[24] = std::bit_cast(0u); aot_gpr_31 = (0x08843834u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 787u, 0x08843834u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843834u) goto L_08843834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843834: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -7304,8 +12608,21 @@ L_08843834: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08843858u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 788u, 0x08843858u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843858u) goto L_08843858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843858: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7319,8 +12636,21 @@ L_08843860: aot_fpr_13 = std::bit_cast(0u); aot_gpr_31 = (0x08843874u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 790u, 0x08843874u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843874u) goto L_08843874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843874: aot_gpr_31 = (0x0884387Cu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -7354,8 +12684,21 @@ L_08843890: L_088438A8: aot_gpr_31 = (0x088438B0u); aot_gpr_4 = (aot_gpr_17 + static_cast(1456)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 795u, 0x088438B0u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088438B0u) goto L_088438B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088438B0: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7370,8 +12713,21 @@ L_088438BC: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x088438D0u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 797u, 0x088438D0u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088438D0u) goto L_088438D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088438D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 + static_cast(2)); @@ -7408,8 +12764,21 @@ L_08843914: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08843924u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 802u, 0x08843924u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843924u) goto L_08843924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843924: ctx.gpr[21] = (aot_gpr_29 + static_cast(3584)); aot_gpr_4 = (15820u << 16u); @@ -7417,22 +12786,61 @@ L_08843924: ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0884393Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 803u, 0x0884393Cu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884393Cu) goto L_0884393C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884393C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0884394Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 804u, 0x0884394Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884394Cu) goto L_0884394C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884394C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0884395Cu); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 805u, 0x0884395Cu, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884395Cu) goto L_0884395C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884395C: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -7447,8 +12855,21 @@ L_0884395C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08843990u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 806u, 0x08843990u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843990u) goto L_08843990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843990: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7484,8 +12905,21 @@ L_088439D0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x088439E0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 811u, 0x088439E0u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088439E0u) goto L_088439E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088439E0: ctx.gpr[22] = (aot_gpr_29 + static_cast(3664)); aot_gpr_4 = (15897u << 16u); @@ -7493,22 +12927,61 @@ L_088439E0: ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088439F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 812u, 0x088439F8u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088439F8u) goto L_088439F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088439F8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08843A08u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 813u, 0x08843A08u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843A08u) goto L_08843A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843A08: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08843A18u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 814u, 0x08843A18u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843A18u) goto L_08843A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843A18: aot_gpr_4 = (aot_gpr_29 + static_cast(3680)); ctx.fpr[22] = std::bit_cast(0u); @@ -7525,15 +12998,41 @@ L_08843A38: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08843A48u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 816u, 0x08843A48u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843A48u) goto L_08843A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843A48: aot_gpr_4 = (16672u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08843A58u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 817u, 0x08843A58u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843A58u) goto L_08843A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843A58: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[20] = (std::bit_cast(aot_fpr_12)); @@ -7541,8 +13040,21 @@ L_08843A58: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08843A70u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 818u, 0x08843A70u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843A70u) goto L_08843A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843A70: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[10] = (std::bit_cast(aot_fpr_13)); @@ -7556,8 +13068,21 @@ L_08843A70: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08843AA0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 819u, 0x08843AA0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843AA0u) goto L_08843AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843AA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7572,8 +13097,21 @@ L_08843AA8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843AC0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 821u, 0x08843AC0u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843AC0u) goto L_08843AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843AC0: aot_gpr_4 = (16128u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); @@ -7609,32 +13147,97 @@ L_08843AF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3708), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08843B20u); aot_gpr_5 = (aot_gpr_29 + static_cast(3708)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 825u, 0x08843B20u, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843B20u) goto L_08843B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843B20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3700), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(3700)); aot_gpr_31 = (0x08843B30u); aot_gpr_4 = (aot_gpr_29 + static_cast(3696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 826u, 0x08843B30u, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843B30u) goto L_08843B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843B30: aot_gpr_31 = (0x08843B38u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 827u, 0x08843B38u, 0x088304E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 69u, 0x088304E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843B38u) goto L_08843B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843B38: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843B44u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 828u, 0x08843B44u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843B44u) goto L_08843B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843B44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08843B50u); aot_gpr_5 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 829u, 0x08843B50u, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843B50u) goto L_08843B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843B50: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7646,8 +13249,21 @@ L_08843B58: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843B64u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 831u, 0x08843B64u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843B64u) goto L_08843B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843B64: aot_gpr_4 = (16179u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -7656,23 +13272,62 @@ L_08843B64: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843B80u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 832u, 0x08843B80u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843B80u) goto L_08843B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843B80: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843B90u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 833u, 0x08843B90u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843B90u) goto L_08843B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843B90: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08843BA4u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 834u, 0x08843BA4u, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843BA4u) goto L_08843BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843BA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7684,50 +13339,154 @@ L_08843BAC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843BB8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 836u, 0x08843BB8u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843BB8u) goto L_08843BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843BB8: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843BC4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 837u, 0x08843BC4u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843BC4u) goto L_08843BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843BC4: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); ctx.gpr[19] = (aot_gpr_29 + static_cast(144)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08843BD8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 838u, 0x08843BD8u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843BD8u) goto L_08843BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843BD8: aot_gpr_31 = (0x08843BE0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 839u, 0x08843BE0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843BE0u) goto L_08843BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843BE0: aot_gpr_31 = (0x08843BE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1284))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 840u, 0x08843BE8u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843BE8u) goto L_08843BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843BE8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08843BF8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 841u, 0x08843BF8u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843BF8u) goto L_08843BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843BF8: aot_gpr_31 = (0x08843C00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 842u, 0x08843C00u, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843C00u) goto L_08843C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843C00: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08843C0Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 843u, 0x08843C0Cu, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843C0Cu) goto L_08843C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843C0C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1620))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); @@ -7750,8 +13509,21 @@ L_08843C3C: aot_gpr_4 = (aot_gpr_17 + static_cast(944)); aot_gpr_31 = (0x08843C48u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 846u, 0x08843C48u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843C48u) goto L_08843C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843C48: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7770,8 +13542,21 @@ L_08843C54: aot_fpr_20 = aot_fpr_20 + aot_fpr_13; aot_gpr_31 = (0x08843C78u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 848u, 0x08843C78u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843C78u) goto L_08843C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843C78: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -7782,8 +13567,21 @@ L_08843C78: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08843C9Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 849u, 0x08843C9Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843C9Cu) goto L_08843C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843C9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7801,8 +13599,21 @@ L_08843CA4: aot_fpr_14 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08843CC8u); aot_fpr_14 = aot_fpr_20 + aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 851u, 0x08843CC8u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843CC8u) goto L_08843CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843CC8: aot_gpr_31 = (0x08843CD0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -7836,8 +13647,21 @@ L_08843CE4: L_08843CFC: aot_gpr_31 = (0x08843D04u); aot_gpr_4 = (aot_gpr_17 + static_cast(1392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 856u, 0x08843D04u, 0x08830A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 142u, 0x08830A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843D04u) goto L_08843D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843D04: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7852,8 +13676,21 @@ L_08843D10: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x08843D24u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 858u, 0x08843D24u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843D24u) goto L_08843D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843D24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7889,8 +13726,21 @@ L_08843D64: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08843D74u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 863u, 0x08843D74u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843D74u) goto L_08843D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843D74: ctx.gpr[21] = (aot_gpr_29 + static_cast(3760)); aot_gpr_4 = (15820u << 16u); @@ -7898,22 +13748,61 @@ L_08843D74: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08843D8Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 864u, 0x08843D8Cu, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843D8Cu) goto L_08843D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843D8C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08843D9Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 865u, 0x08843D9Cu, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843D9Cu) goto L_08843D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843D9C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08843DACu); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 866u, 0x08843DACu, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843DACu) goto L_08843DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843DAC: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -7928,8 +13817,21 @@ L_08843DAC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08843DE0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 867u, 0x08843DE0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843DE0u) goto L_08843DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843DE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7965,8 +13867,21 @@ L_08843E20: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08843E30u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 872u, 0x08843E30u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843E30u) goto L_08843E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843E30: ctx.gpr[22] = (aot_gpr_29 + static_cast(3840)); aot_gpr_4 = (15897u << 16u); @@ -7974,22 +13889,61 @@ L_08843E30: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08843E48u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 873u, 0x08843E48u, 0x08830794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 101u, 0x08830794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843E48u) goto L_08843E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843E48: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08843E58u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 874u, 0x08843E58u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843E58u) goto L_08843E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843E58: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08843E68u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 875u, 0x08843E68u, 0x088302F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 43u, 0x088302F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843E68u) goto L_08843E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843E68: aot_gpr_4 = (aot_gpr_29 + static_cast(3856)); aot_fpr_20 = std::bit_cast(0u); @@ -8006,15 +13960,41 @@ L_08843E88: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08843E98u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 877u, 0x08843E98u, 0x088302E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 42u, 0x088302E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843E98u) goto L_08843E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843E98: aot_gpr_4 = (16672u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08843EA8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 878u, 0x08843EA8u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843EA8u) goto L_08843EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843EA8: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[20] = (std::bit_cast(aot_fpr_12)); @@ -8022,8 +14002,21 @@ L_08843EA8: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08843EC0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 879u, 0x08843EC0u, 0x08830424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 61u, 0x08830424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843EC0u) goto L_08843EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843EC0: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[10] = (std::bit_cast(aot_fpr_13)); @@ -8037,8 +14030,21 @@ L_08843EC0: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08843EF0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 880u, 0x08843EF0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843EF0u) goto L_08843EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843EF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8053,8 +14059,21 @@ L_08843EF8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843F10u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 882u, 0x08843F10u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843F10u) goto L_08843F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843F10: aot_gpr_4 = (16128u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_4); @@ -8089,32 +14108,97 @@ L_08843F44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3884), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08843F6Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(3884)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 886u, 0x08843F6Cu, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843F6Cu) goto L_08843F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843F6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3876), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(3876)); aot_gpr_31 = (0x08843F7Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(3872)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 887u, 0x08843F7Cu, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843F7Cu) goto L_08843F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843F7C: aot_gpr_31 = (0x08843F84u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 888u, 0x08843F84u, 0x088304E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 69u, 0x088304E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843F84u) goto L_08843F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843F84: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08843F90u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 889u, 0x08843F90u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843F90u) goto L_08843F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843F90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(352))); aot_gpr_31 = (0x08843F9Cu); aot_gpr_5 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 890u, 0x08843F9Cu, 0x08830CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 165u, 0x08830CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843F9Cu) goto L_08843F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843F9C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8126,8 +14210,21 @@ L_08843FA4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843FB0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 892u, 0x08843FB0u, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843FB0u) goto L_08843FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843FB0: aot_gpr_4 = (16179u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -8136,23 +14233,62 @@ L_08843FB0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843FCCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 893u, 0x08843FCCu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843FCCu) goto L_08843FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843FCC: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08843FDCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 894u, 0x08843FDCu, 0x08830D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 181u, 0x08830D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843FDCu) goto L_08843FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843FDC: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08843FF0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0015->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0015_entry, 895u, 0x08843FF0u, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08843FF0u) goto L_08843FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08843FF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0016.cpp b/profiles/vcs/generated/generated_unit_0016.cpp index d4ddc5a..9fdbb6c 100644 --- a/profiles/vcs/generated/generated_unit_0016.cpp +++ b/profiles/vcs/generated/generated_unit_0016.cpp @@ -760,6 +760,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08844004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -777,20 +801,59 @@ L_08844004: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08844010u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 2u, 0x08844010u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844010u) goto L_08844010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844010: aot_gpr_16 = (aot_gpr_29 + static_cast(64)); aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08844020u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 3u, 0x08844020u, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844020u) goto L_08844020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844020: aot_gpr_31 = (0x08844028u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 4u, 0x08844028u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844028u) goto L_08844028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844028: aot_gpr_31 = (0x08844030u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -877,13 +940,39 @@ L_088440A4: L_088440BC: aot_gpr_31 = (0x088440C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 16u, 0x088440C4u, 0x08830E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 191u, 0x08830E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088440C4u) goto L_088440C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088440C4: aot_gpr_31 = (0x088440CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 17u, 0x088440CCu, 0x088305B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 76u, 0x088305B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088440CCu) goto L_088440CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088440CC: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -909,8 +998,21 @@ L_088440E8: L_088440F4: aot_gpr_31 = (0x088440FCu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 21u, 0x088440FCu, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088440FCu) goto L_088440FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088440FC: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -943,8 +1045,21 @@ L_08844138: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3888), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08844150u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 24u, 0x08844150u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844150u) goto L_08844150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844150: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -955,8 +1070,21 @@ L_08844150: aot_gpr_5 = (aot_gpr_29 + static_cast(3892)); aot_gpr_31 = (0x08844174u); aot_gpr_4 = (aot_gpr_29 + static_cast(3888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 25u, 0x08844174u, 0x08830368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 47u, 0x08830368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844174u) goto L_08844174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844174: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1876), std::bit_cast(ctx.fpr[0])); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -969,8 +1097,21 @@ L_08844174: L_08844184: aot_gpr_31 = (0x0884418Cu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 27u, 0x0884418Cu, 0x08830890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 120u, 0x08830890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884418Cu) goto L_0884418C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884418C: aot_gpr_4 = (0u | 10000u); { const std::uint32_t dividend = ctx.gpr[2]; const std::uint32_t divisor = aot_gpr_4; if (divisor == 0u) { ctx.lo = 0xFFFFFFFFu; ctx.hi = dividend; } else { ctx.lo = dividend / divisor; ctx.hi = dividend % divisor; } } @@ -993,8 +1134,21 @@ L_088441B0: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_31 = (0x088441C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 30u, 0x088441C4u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088441C4u) goto L_088441C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088441C4: aot_gpr_4 = (15877u << 16u); aot_gpr_4 = (aot_gpr_4 | 7864u); @@ -1023,8 +1177,21 @@ L_088441E4: L_088441F0: aot_gpr_31 = (0x088441F8u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 34u, 0x088441F8u, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088441F8u) goto L_088441F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088441F8: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -1053,8 +1220,21 @@ L_0884422C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(3896), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0884423Cu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 37u, 0x0884423Cu, 0x08830904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 125u, 0x08830904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884423Cu) goto L_0884423C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884423C: aot_gpr_4 = (15692u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -1065,8 +1245,21 @@ L_0884423C: aot_gpr_5 = (aot_gpr_29 + static_cast(3900)); aot_gpr_31 = (0x08844260u); aot_gpr_4 = (aot_gpr_29 + static_cast(3896)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 38u, 0x08844260u, 0x088303FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 58u, 0x088303FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844260u) goto L_08844260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844260: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1876), std::bit_cast(ctx.fpr[0])); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1075,26 +1268,78 @@ L_08844268: aot_gpr_16 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08844274u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1332))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 40u, 0x08844274u, 0x08830238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 34u, 0x08830238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844274u) goto L_08844274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844274: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08844284u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 41u, 0x08844284u, 0x088306B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 87u, 0x088306B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844284u) goto L_08844284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844284: aot_gpr_31 = (0x0884428Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 42u, 0x0884428Cu, 0x088307ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 104u, 0x088307ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884428Cu) goto L_0884428C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884428C: aot_gpr_4 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08844298u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 43u, 0x08844298u, 0x08830668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 84u, 0x08830668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844298u) goto L_08844298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844298: aot_gpr_31 = (0x088442A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1112,8 +1357,21 @@ L_088442AC: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x088442B8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 46u, 0x088442B8u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088442B8u) goto L_088442B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088442B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1125,28 +1383,80 @@ L_088442C0: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x088442CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 48u, 0x088442CCu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088442CCu) goto L_088442CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088442CC: aot_gpr_16 = (aot_gpr_29 + static_cast(64)); aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x088442DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 49u, 0x088442DCu, 0x088307B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 105u, 0x088307B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088442DCu) goto L_088442DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088442DC: aot_gpr_31 = (0x088442E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 50u, 0x088442E4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088442E4u) goto L_088442E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088442E4: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); goto L_088442E8; L_088442E8: aot_gpr_31 = (0x088442F0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 52u, 0x088442F0u, 0x0883072Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 93u, 0x0883072Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088442F0u) goto L_088442F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088442F0: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(3916), aot_run_words); @@ -1168,8 +1478,8 @@ L_088442F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(3984)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08844334: @@ -1201,8 +1511,21 @@ L_08844388: aot_gpr_5 = (aot_gpr_16 + static_cast(548)); aot_gpr_31 = (0x088443A4u); aot_gpr_6 = (aot_gpr_16 + static_cast(552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 56u, 0x088443A4u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088443A4u) goto L_088443A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088443A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); @@ -1256,8 +1579,21 @@ L_0884442C: ctx.gpr[7] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08844440u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 61u, 0x08844440u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844440u) goto L_08844440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844440: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29644))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29648))); @@ -1270,8 +1606,21 @@ L_08844454: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08844460u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 63u, 0x08844460u, 0x08B626A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 496u, 0x08B626A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844460u) goto L_08844460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844460: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 256 ? 1u : 0u); @@ -1326,8 +1675,21 @@ L_088444C8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088444DCu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 70u, 0x088444DCu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088444DCu) goto L_088444DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088444DC: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -1341,8 +1703,21 @@ L_088444E8: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088444F8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 72u, 0x088444F8u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088444F8u) goto L_088444F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088444F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); @@ -1357,8 +1732,21 @@ L_08844508: aot_gpr_5 = (aot_gpr_5 + static_cast(992)); aot_gpr_31 = (0x08844518u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 74u, 0x08844518u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844518u) goto L_08844518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844518: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1372,8 +1760,21 @@ L_08844524: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08844530u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 76u, 0x08844530u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844530u) goto L_08844530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844530: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1344))); @@ -1388,8 +1789,21 @@ L_08844540: aot_gpr_5 = (aot_gpr_5 + static_cast(992)); aot_gpr_31 = (0x08844550u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 78u, 0x08844550u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844550u) goto L_08844550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844550: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1403,8 +1817,21 @@ L_0884455C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08844568u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 80u, 0x08844568u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844568u) goto L_08844568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844568: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1316))); @@ -1419,8 +1846,21 @@ L_08844578: aot_gpr_5 = (aot_gpr_5 + static_cast(992)); aot_gpr_31 = (0x08844588u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 82u, 0x08844588u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844588u) goto L_08844588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844588: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1434,8 +1874,21 @@ L_08844594: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088445A4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 84u, 0x088445A4u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088445A4u) goto L_088445A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088445A4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(1776))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1447,8 +1900,21 @@ L_088445A4: L_088445B0: aot_gpr_31 = (0x088445B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1280))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 86u, 0x088445B8u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088445B8u) goto L_088445B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088445B8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); @@ -1483,15 +1949,41 @@ L_088445DC: } L_088445E4: aot_gpr_31 = (0x088445ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 91u, 0x088445ECu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088445ECu) goto L_088445EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088445EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1292))); goto L_088445F0; L_088445F0: aot_gpr_31 = (0x088445F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 93u, 0x088445F8u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088445F8u) goto L_088445F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088445F8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); @@ -1526,15 +2018,41 @@ L_0884461C: } L_08844624: aot_gpr_31 = (0x0884462Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 98u, 0x0884462Cu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884462Cu) goto L_0884462C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884462C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1272))); goto L_08844630; L_08844630: aot_gpr_31 = (0x08844638u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 100u, 0x08844638u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844638u) goto L_08844638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844638: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); @@ -1569,15 +2087,41 @@ L_0884465C: } L_08844664: aot_gpr_31 = (0x0884466Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 105u, 0x0884466Cu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884466Cu) goto L_0884466C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884466C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1284))); goto L_08844670; L_08844670: aot_gpr_31 = (0x08844678u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 107u, 0x08844678u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844678u) goto L_08844678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844678: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); @@ -1612,8 +2156,21 @@ L_0884469C: } L_088446A4: aot_gpr_31 = (0x088446ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 112u, 0x088446ACu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088446ACu) goto L_088446AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088446AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1276))); goto L_088446B0; @@ -1626,8 +2183,21 @@ L_088446B0: } L_088446B8: aot_gpr_31 = (0x088446C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 115u, 0x088446C0u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088446C0u) goto L_088446C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088446C0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); @@ -1661,8 +2231,21 @@ L_088446E4: } L_088446EC: aot_gpr_31 = (0x088446F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 120u, 0x088446F4u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088446F4u) goto L_088446F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088446F4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1288))); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1674,8 +2257,21 @@ L_088446F4: L_08844700: aot_gpr_31 = (0x08844708u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 122u, 0x08844708u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844708u) goto L_08844708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844708: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); @@ -1712,8 +2308,21 @@ L_0884472C: L_08844734: aot_gpr_31 = (0x0884473Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 127u, 0x0884473Cu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884473Cu) goto L_0884473C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884473C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1724,8 +2333,21 @@ L_0884473C: L_08844744: aot_gpr_31 = (0x0884474Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 129u, 0x0884474Cu, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884474Cu) goto L_0884474C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884474C: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -1742,8 +2364,8 @@ L_0884474C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884477C: @@ -1752,8 +2374,21 @@ L_0884477C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(560), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088447B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 131u, 0x088447B8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088447B8u) goto L_088447B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088447B8: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; aot_gpr_4 = (2236u << 16u); @@ -1765,8 +2400,21 @@ L_088447B8: L_088447C0: aot_gpr_31 = (0x088447C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 133u, 0x088447C8u, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088447C8u) goto L_088447C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088447C8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1776,8 +2424,21 @@ L_088447C8: } L_088447D0: aot_gpr_31 = (0x088447D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 135u, 0x088447D8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088447D8u) goto L_088447D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088447D8: if (aot_gpr_16 != ctx.gpr[2]) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); @@ -1894,8 +2555,21 @@ L_08844890: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); aot_gpr_31 = (0x088448A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 145u, 0x088448A8u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088448A8u) goto L_088448A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088448A8: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(aot_gpr_5) < 2 ? 1u : 0u); @@ -2132,8 +2806,21 @@ L_08844AA0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08844AB0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 161u, 0x08844AB0u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844AB0u) goto L_08844AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844AB0: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2326,8 +3013,21 @@ L_08844C1C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08844C44u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 172u, 0x08844C44u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844C44u) goto L_08844C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844C44: aot_gpr_4 = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (aot_gpr_4 << 16u); @@ -2399,8 +3099,21 @@ L_08844C80: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08844CDCu); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 175u, 0x08844CDCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844CDCu) goto L_08844CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844CDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2557,8 +3270,21 @@ L_08844DFC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08844E24u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 184u, 0x08844E24u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844E24u) goto L_08844E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844E24: aot_gpr_4 = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (aot_gpr_4 << 16u); @@ -2630,8 +3356,21 @@ L_08844E60: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08844EBCu); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 187u, 0x08844EBCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844EBCu) goto L_08844EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844EBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2704,8 +3443,21 @@ L_08844EFC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08844F4Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 191u, 0x08844F4Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844F4Cu) goto L_08844F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844F4C: aot_gpr_4 = (0u | 56u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -2717,8 +3469,21 @@ L_08844F4C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08844F74u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 192u, 0x08844F74u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844F74u) goto L_08844F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844F74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2767,8 +3532,21 @@ L_08844F98: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08844FE0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 195u, 0x08844FE0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08844FE0u) goto L_08844FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08844FE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2797,8 +3575,21 @@ L_08844FE0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08845020u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 196u, 0x08845020u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845020u) goto L_08845020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845020: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2840,8 +3631,21 @@ L_08845020: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08845068u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 197u, 0x08845068u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845068u) goto L_08845068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845068: aot_gpr_4 = (0u | 55u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -2853,8 +3657,21 @@ L_08845068: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08845090u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 198u, 0x08845090u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845090u) goto L_08845090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845090: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2931,8 +3748,21 @@ L_088450F8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0884513Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 203u, 0x0884513Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884513Cu) goto L_0884513C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884513C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2961,8 +3791,21 @@ L_0884513C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0884517Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 204u, 0x0884517Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884517Cu) goto L_0884517C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884517C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2992,8 +3835,21 @@ L_0884517C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088451C0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 205u, 0x088451C0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088451C0u) goto L_088451C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088451C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -3022,8 +3878,21 @@ L_088451C0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08845200u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 206u, 0x08845200u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845200u) goto L_08845200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845200: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3148,8 +4017,21 @@ L_088452A4: ctx.fpr[22] = std::bit_cast(0u); aot_gpr_31 = (0x088452B4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 222u, 0x088452B4u, 0x08830634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 82u, 0x08830634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088452B4u) goto L_088452B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088452B4: aot_gpr_4 = (16332u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -3209,8 +4091,21 @@ L_08845318: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08845334u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 229u, 0x08845334u, 0x08830310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 44u, 0x08830310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845334u) goto L_08845334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845334: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3309,8 +4204,21 @@ L_088453E4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0884540Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 234u, 0x0884540Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884540Cu) goto L_0884540C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884540C: aot_gpr_4 = (ctx.gpr[22] + static_cast(1)); ctx.gpr[22] = (aot_gpr_4 << 16u); @@ -3381,8 +4289,21 @@ L_08845444: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088454A0u); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 237u, 0x088454A0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088454A0u) goto L_088454A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088454A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3394,8 +4315,21 @@ L_088454A8: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x088454B4u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 239u, 0x088454B4u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088454B4u) goto L_088454B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088454B4: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -3418,8 +4352,21 @@ L_088454C0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088454F4u); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 241u, 0x088454F4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088454F4u) goto L_088454F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088454F4: aot_gpr_4 = (0u | 33u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -3431,8 +4378,21 @@ L_088454F4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0884551Cu); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 242u, 0x0884551Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884551Cu) goto L_0884551C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884551C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3497,8 +4457,21 @@ L_08845544: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08845598u); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 245u, 0x08845598u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845598u) goto L_08845598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845598: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(560), aot_run_words); @@ -3516,8 +4489,8 @@ L_08845598: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(608)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088455CC: @@ -3531,8 +4504,21 @@ L_088455CC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08845608u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 247u, 0x08845608u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845608u) goto L_08845608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845608: aot_gpr_4 = (ctx.gpr[2] & 255u); aot_gpr_5 = (0u | 2u); @@ -3578,8 +4564,21 @@ L_08845644: L_08845654: aot_gpr_31 = (0x0884565Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 252u, 0x0884565Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884565Cu) goto L_0884565C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884565C: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); goto L_08845660; @@ -3591,8 +4590,21 @@ L_08845660: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0884567Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 254u, 0x0884567Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884567Cu) goto L_0884567C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884567C: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3616,8 +4628,21 @@ L_0884567C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088456ACu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 255u, 0x088456ACu, 0x08A0019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 29u, 0x08A0019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088456ACu) goto L_088456AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088456AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(41))); @@ -3632,8 +4657,21 @@ L_088456AC: } aot_gpr_31 = (0x088456D4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 256u, 0x088456D4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088456D4u) goto L_088456D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088456D4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -3643,13 +4681,39 @@ L_088456D4: } aot_gpr_31 = (0x088456E8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 257u, 0x088456E8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088456E8u) goto L_088456E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088456E8: aot_gpr_31 = (0x088456F0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 258u, 0x088456F0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088456F0u) goto L_088456F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088456F0: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -3713,15 +4777,41 @@ L_08845750: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08845764u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 263u, 0x08845764u, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845764u) goto L_08845764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845764: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08845774u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 264u, 0x08845774u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845774u) goto L_08845774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845774: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -3850,8 +4940,21 @@ L_088457A8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08845820u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 268u, 0x08845820u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845820u) goto L_08845820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845820: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3961,8 +5064,21 @@ L_08845828: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088458A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 270u, 0x088458A0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088458A0u) goto L_088458A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088458A0: aot_gpr_4 = (16672u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3997,8 +5113,21 @@ L_088458A0: } aot_gpr_31 = (0x088458E0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 271u, 0x088458E0u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088458E0u) goto L_088458E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088458E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4019,8 +5148,21 @@ L_088458F0: L_088458FC: aot_gpr_31 = (0x08845904u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 274u, 0x08845904u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845904u) goto L_08845904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845904: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(464), aot_run_words); @@ -4034,8 +5176,8 @@ L_08845904: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(496)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08845928: @@ -4063,8 +5205,21 @@ L_08845970: aot_gpr_5 = (2179u << 16u); aot_gpr_31 = (0x08845994u); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 277u, 0x08845994u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845994u) goto L_08845994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845994: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4077,8 +5232,21 @@ L_088459A0: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x088459ACu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 279u, 0x088459ACu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088459ACu) goto L_088459AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088459AC: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 != 0u; @@ -4114,8 +5282,21 @@ L_088459C8: L_088459D0: aot_gpr_31 = (0x088459D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 284u, 0x088459D8u, 0x0882B4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 349u, 0x0882B4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088459D8u) goto L_088459D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088459D8: ctx.gpr[21] = (aot_gpr_16 | 0u); aot_gpr_16 = (ctx.gpr[21] | 0u); @@ -4395,26 +5576,78 @@ L_08845BC0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_31 = (0x08845BCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 308u, 0x08845BCCu, 0x0882C380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 58u, 0x0882C380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845BCCu) goto L_08845BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845BCC: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1264))); aot_gpr_31 = (0x08845BD8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 309u, 0x08845BD8u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845BD8u) goto L_08845BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845BD8: ctx.gpr[20] = (ctx.gpr[20] + static_cast(80)); aot_gpr_31 = (0x08845BE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 310u, 0x08845BE4u, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845BE4u) goto L_08845BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845BE4: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08845BF4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 311u, 0x08845BF4u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845BF4u) goto L_08845BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845BF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[2]); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); @@ -4473,26 +5706,78 @@ L_08845BF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08845C28u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 312u, 0x08845C28u, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845C28u) goto L_08845C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845C28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08845C34u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 313u, 0x08845C34u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845C34u) goto L_08845C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845C34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08845C40u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 314u, 0x08845C40u, 0x0887F368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 698u, 0x0887F368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845C40u) goto L_08845C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845C40: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08845C4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 315u, 0x08845C4Cu, 0x08ACFE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1117u, 0x08ACFE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845C4Cu) goto L_08845C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845C4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 4096u); @@ -4785,8 +6070,21 @@ L_08845EE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08845F14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 339u, 0x08845F14u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845F14u) goto L_08845F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845F14: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4935,8 +6233,21 @@ L_08845FB4: } aot_gpr_31 = (0x08845FF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 345u, 0x08845FF8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08845FF8u) goto L_08845FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08845FF8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -4946,8 +6257,21 @@ L_08845FF8: } aot_gpr_31 = (0x0884600Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 346u, 0x0884600Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884600Cu) goto L_0884600C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884600C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[23] != aot_gpr_4; @@ -4981,8 +6305,21 @@ L_08846040: L_08846054: aot_gpr_31 = (0x0884605Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 350u, 0x0884605Cu, 0x08AD0598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 51u, 0x08AD0598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884605Cu) goto L_0884605C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884605C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5137,8 +6474,21 @@ L_088460AC: } aot_gpr_31 = (0x08846130u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 353u, 0x08846130u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08846130u) goto L_08846130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08846130: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(444), ctx.gpr[17]); ctx.gpr[10] = (32u << 16u); @@ -5324,13 +6674,39 @@ L_08846250: aot_gpr_5 = (ctx.gpr[9] | 0u); aot_gpr_31 = (0x08846314u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 371u, 0x08846314u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08846314u) goto L_08846314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08846314: aot_gpr_31 = (0x0884631Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 372u, 0x0884631Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884631Cu) goto L_0884631C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884631C: ctx.gpr[2] = (ctx.gpr[21] | 0u); goto L_08846320; @@ -5351,8 +6727,8 @@ L_08846320: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08846354: @@ -5635,8 +7011,8 @@ L_08846518: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18664))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08846530: @@ -5690,8 +7066,8 @@ L_08846564: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18792))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884657C: @@ -5799,8 +7175,21 @@ L_08846654: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x0884667Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 422u, 0x0884667Cu, 0x08A00074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 10u, 0x08A00074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884667Cu) goto L_0884667C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884667C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -5966,8 +7355,21 @@ L_088467D8: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x088467FCu); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 438u, 0x088467FCu, 0x08A00074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 10u, 0x08A00074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088467FCu) goto L_088467FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088467FC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -6159,8 +7561,21 @@ L_0884698C: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x088469BCu); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 456u, 0x088469BCu, 0x08A00074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 10u, 0x08A00074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088469BCu) goto L_088469BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088469BC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -6257,8 +7672,21 @@ L_08846A78: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08846AA8u); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 465u, 0x08846AA8u, 0x08A00074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 10u, 0x08A00074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08846AA8u) goto L_08846AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08846AA8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -6317,8 +7745,21 @@ L_08846B04: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08846B34u); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 471u, 0x08846B34u, 0x08A00074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 10u, 0x08A00074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08846B34u) goto L_08846B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08846B34: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -6409,8 +7850,21 @@ L_08846BE4: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08846C08u); aot_gpr_4 = (aot_gpr_4 + static_cast(976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 480u, 0x08846C08u, 0x08A00074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 10u, 0x08A00074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08846C08u) goto L_08846C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08846C08: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -6722,8 +8176,8 @@ L_08846EB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08846ED0: @@ -6807,8 +8261,21 @@ L_08846F80: } L_08846F88: aot_gpr_31 = (0x08846F90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 519u, 0x08846F90u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08846F90u) goto L_08846F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08846F90: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; if (branch_taken) { @@ -6871,8 +8338,21 @@ L_08847004: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08847034u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 523u, 0x08847034u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847034u) goto L_08847034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847034: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -6886,8 +8366,21 @@ L_08847034: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(660), aot_gpr_4); aot_gpr_31 = (0x08847064u); aot_gpr_4 = (ctx.gpr[17] + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 524u, 0x08847064u, 0x08B0DB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 420u, 0x08B0DB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847064u) goto L_08847064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847064: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[22]; @@ -6911,32 +8404,84 @@ L_08847080: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08847094u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 527u, 0x08847094u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847094u) goto L_08847094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847094: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 13u); aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x088470A8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 528u, 0x088470A8u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088470A8u) goto L_088470A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088470A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 18u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088470BCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 529u, 0x088470BCu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088470BCu) goto L_088470BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088470BC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 19u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x088470D0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 530u, 0x088470D0u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088470D0u) goto L_088470D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088470D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); @@ -6955,32 +8500,84 @@ L_088470EC: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08847100u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 532u, 0x08847100u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847100u) goto L_08847100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847100: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 8u); aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08847114u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 533u, 0x08847114u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847114u) goto L_08847114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847114: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 11u); aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08847128u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 534u, 0x08847128u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847128u) goto L_08847128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847128: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 9u); aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x0884713Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 535u, 0x0884713Cu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884713Cu) goto L_0884713C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884713C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(424)); @@ -7045,8 +8642,21 @@ L_088471AC: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); aot_gpr_31 = (0x088471E8u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 540u, 0x088471E8u, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088471E8u) goto L_088471E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088471E8: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7065,8 +8675,21 @@ L_088471E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08847200u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 541u, 0x08847200u, 0x08AFFAC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 877u, 0x08AFFAC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847200u) goto L_08847200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847200: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(613)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -7123,8 +8746,21 @@ L_08847298: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088472A4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 546u, 0x088472A4u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088472A4u) goto L_088472A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088472A4: aot_gpr_4 = (2238u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); @@ -7136,13 +8772,39 @@ L_088472A4: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088472CCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 547u, 0x088472CCu, 0x089D1074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 167u, 0x089D1074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088472CCu) goto L_088472CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088472CC: aot_gpr_31 = (0x088472D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 548u, 0x088472D4u, 0x08A362BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 544u, 0x08A362BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088472D4u) goto L_088472D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088472D4: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(64), aot_run_words); } @@ -7377,8 +9039,21 @@ L_088473EC: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08847410u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 559u, 0x08847410u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847410u) goto L_08847410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847410: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7396,8 +9071,21 @@ L_08847418: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x0884743Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 561u, 0x0884743Cu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884743Cu) goto L_0884743C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884743C: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -7414,8 +9102,8 @@ L_0884743C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884746C: @@ -7660,8 +9348,21 @@ L_08847600: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884760Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 584u, 0x0884760Cu, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884760Cu) goto L_0884760C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884760C: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7681,8 +9382,21 @@ L_0884760C: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08847628u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 585u, 0x08847628u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847628u) goto L_08847628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847628: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7935,8 +9649,21 @@ L_088476C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0884775Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 593u, 0x0884775Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884775Cu) goto L_0884775C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884775C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7970,8 +9697,21 @@ L_08847764: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0884779Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 595u, 0x0884779Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884779Cu) goto L_0884779C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884779C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7996,8 +9736,21 @@ L_088477A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x088477E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 597u, 0x088477E4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088477E4u) goto L_088477E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088477E4: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); if (ctx.gpr[2] != 0u) { @@ -8100,8 +9853,21 @@ L_0884787C: aot_gpr_4 = (aot_gpr_29 + static_cast(196)); aot_gpr_31 = (0x08847894u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 609u, 0x08847894u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847894u) goto L_08847894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847894: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8124,8 +9890,21 @@ L_0884789C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x088478D4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 611u, 0x088478D4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088478D4u) goto L_088478D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088478D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8181,8 +9960,21 @@ L_08847908: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08847940u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 617u, 0x08847940u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847940u) goto L_08847940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847940: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8217,8 +10009,21 @@ L_0884795C: aot_gpr_4 = (aot_gpr_29 + static_cast(196)); aot_gpr_31 = (0x08847974u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 621u, 0x08847974u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847974u) goto L_08847974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847974: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[22]) || std::isnan(aot_fpr_20)) && ctx.fpr[22] == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -8265,8 +10070,8 @@ L_088479A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088479DC: @@ -8601,8 +10406,8 @@ L_08847C58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08847C68: @@ -8656,8 +10461,21 @@ L_08847C68: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08847D20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 664u, 0x08847D20u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847D20u) goto L_08847D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847D20: { const bool branch_taken = ctx.gpr[20] != ctx.gpr[2]; if (branch_taken) { @@ -8697,8 +10515,21 @@ L_08847D78: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08847D84u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 668u, 0x08847D84u, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847D84u) goto L_08847D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847D84: aot_fpr_14 = std::bit_cast(ctx.gpr[2]); aot_fpr_14 = static_cast(static_cast(std::bit_cast(aot_fpr_14))); @@ -8753,8 +10584,21 @@ L_08847DF0: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08847E14u); aot_gpr_6 = (0u | 28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 674u, 0x08847E14u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847E14u) goto L_08847E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847E14: aot_gpr_31 = (0x08847E1Cu); aot_gpr_4 = (0u | 0u); @@ -8763,8 +10607,21 @@ L_08847E14: L_08847E1C: aot_gpr_31 = (0x08847E24u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 676u, 0x08847E24u, 0x0898D004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 359u, 0x0898D004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847E24u) goto L_08847E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847E24: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8803,15 +10660,41 @@ L_08847E60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1852))); aot_gpr_31 = (0x08847E90u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 679u, 0x08847E90u, 0x08830498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 67u, 0x08830498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847E90u) goto L_08847E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847E90: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1852))); aot_gpr_31 = (0x08847EA0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 680u, 0x08847EA0u, 0x088304BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 68u, 0x088304BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847EA0u) goto L_08847EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847EA0: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[0]), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(144), aot_run_words); } @@ -9043,8 +10926,21 @@ L_08847F5C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08847FF8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0016->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0016_entry, 682u, 0x08847FF8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08847FF8u) goto L_08847FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08847FF8: aot_gpr_4 = (17008u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); diff --git a/profiles/vcs/generated/generated_unit_0017.cpp b/profiles/vcs/generated/generated_unit_0017.cpp index 285e244..87240b7 100644 --- a/profiles/vcs/generated/generated_unit_0017.cpp +++ b/profiles/vcs/generated/generated_unit_0017.cpp @@ -749,6 +749,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08848000u; + if (local_delta_v813 >= 16364u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -804,8 +828,21 @@ L_08848000: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08848030u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 2u, 0x08848030u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848030u) goto L_08848030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848030: aot_gpr_31 = (0x08848038u); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -817,8 +854,21 @@ L_08848038: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884804Cu); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 4u, 0x0884804Cu, 0x08A50AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 109u, 0x08A50AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884804Cu) goto L_0884804C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884804C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(240), 0u); aot_gpr_6 = (aot_gpr_29 + static_cast(208)); @@ -834,8 +884,21 @@ L_0884804C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0884808Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 5u, 0x0884808Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884808Cu) goto L_0884808C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884808C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_gpr_5 = (15820u << 16u); @@ -915,8 +978,21 @@ L_088480A4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08848108u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 7u, 0x08848108u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848108u) goto L_08848108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848108: aot_gpr_31 = (0x08848110u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848110u) goto L_08848110; @@ -931,8 +1007,21 @@ L_08848110: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08848134u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 9u, 0x08848134u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848134u) goto L_08848134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848134: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(832), ctx.gpr[20]); @@ -955,8 +1044,21 @@ L_08848144: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08848168u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 12u, 0x08848168u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848168u) goto L_08848168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848168: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(832), ctx.gpr[20]); goto L_0884816C; @@ -1102,8 +1204,21 @@ L_088481DC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08848254u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 16u, 0x08848254u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848254u) goto L_08848254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848254: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[21]) ? 1u : 0u); @@ -1245,8 +1360,21 @@ L_08848320: ctx.gpr[11] = (0u | 3u); aot_gpr_31 = (0x08848358u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 21u, 0x08848358u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848358u) goto L_08848358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848358: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 15 ? 1u : 0u); @@ -1332,8 +1460,21 @@ L_088483F0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0884842Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 25u, 0x0884842Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884842Cu) goto L_0884842C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884842C: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -1375,8 +1516,21 @@ L_08848460: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08848494u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 27u, 0x08848494u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848494u) goto L_08848494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848494: aot_gpr_4 = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1413,8 +1567,21 @@ L_088484B4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088484E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 29u, 0x088484E8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088484E8u) goto L_088484E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088484E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1344))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1450,8 +1617,21 @@ L_08848514: L_08848524: aot_gpr_31 = (0x0884852Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(512))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 33u, 0x0884852Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884852Cu) goto L_0884852C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884852C: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); goto L_08848530; @@ -1462,8 +1642,21 @@ L_08848530: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(520), aot_gpr_4); aot_gpr_31 = (0x08848548u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 35u, 0x08848548u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848548u) goto L_08848548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848548: aot_gpr_4 = (aot_gpr_29 + static_cast(496)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1483,8 +1676,21 @@ L_08848548: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1852))); aot_gpr_31 = (0x08848564u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 36u, 0x08848564u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848564u) goto L_08848564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848564: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(528), aot_run_words); @@ -1494,13 +1700,39 @@ L_08848564: } aot_gpr_31 = (0x08848578u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 37u, 0x08848578u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848578u) goto L_08848578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848578: aot_gpr_31 = (0x08848580u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 38u, 0x08848580u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848580u) goto L_08848580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848580: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(520))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1521,8 +1753,21 @@ L_08848590: L_0884859C: aot_gpr_31 = (0x088485A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(512))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 41u, 0x088485A4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088485A4u) goto L_088485A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088485A4: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(844), aot_run_words); @@ -1545,8 +1790,8 @@ L_088485A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(912)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088485EC: @@ -1560,8 +1805,21 @@ L_088485EC: aot_gpr_4 = (aot_gpr_4 | 16384u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0884864Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 43u, 0x0884864Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884864Cu) goto L_0884864C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884864C: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; if (branch_taken) { @@ -1621,8 +1879,21 @@ L_088486B4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088486C0u); aot_gpr_5 = (0u | 22u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 48u, 0x088486C0u, 0x0885F634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 886u, 0x0885F634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088486C0u) goto L_088486C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088486C0: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -1678,8 +1949,21 @@ L_0884873C: L_0884874C: aot_gpr_31 = (0x08848754u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 52u, 0x08848754u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848754u) goto L_08848754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848754: aot_gpr_4 = (ctx.gpr[30] + static_cast(16)); goto L_08848758; @@ -1690,8 +1974,21 @@ L_08848758: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x08848770u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 54u, 0x08848770u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848770u) goto L_08848770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848770: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1709,8 +2006,21 @@ L_08848770: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08848784u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 55u, 0x08848784u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848784u) goto L_08848784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848784: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1744,15 +2054,41 @@ L_0884879C: L_088487A8: aot_gpr_31 = (0x088487B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 58u, 0x088487B0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088487B0u) goto L_088487B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088487B0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088487C0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 59u, 0x088487C0u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088487C0u) goto L_088487C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088487C0: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2014,8 +2350,21 @@ L_08848934: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08848960u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 82u, 0x08848960u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848960u) goto L_08848960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848960: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(236), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(232), std::bit_cast(ctx.fpr[26])); @@ -2030,15 +2379,41 @@ L_08848960: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08848994u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 83u, 0x08848994u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848994u) goto L_08848994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848994: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088489A4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 84u, 0x088489A4u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088489A4u) goto L_088489A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088489A4: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2084,8 +2459,21 @@ L_088489DC: L_088489E0: aot_gpr_31 = (0x088489E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 89u, 0x088489E8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088489E8u) goto L_088489E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088489E8: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088489EC; @@ -2118,8 +2506,21 @@ L_08848A14: } L_08848A1C: aot_gpr_31 = (0x08848A24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 94u, 0x08848A24u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848A24u) goto L_08848A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848A24: ctx.fpr[28] = ctx.fpr[28] - ctx.fpr[0]; goto L_08848A28; @@ -2127,8 +2528,21 @@ L_08848A28: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08848A34u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 96u, 0x08848A34u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848A34u) goto L_08848A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848A34: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2148,8 +2562,21 @@ L_08848A34: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08848A50u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 97u, 0x08848A50u, 0x0882BB00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 422u, 0x0882BB00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848A50u) goto L_08848A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848A50: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(444), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1864), ctx.gpr[17]); @@ -2174,8 +2601,21 @@ L_08848A78: L_08848A84: aot_gpr_31 = (0x08848A8Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(320))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 100u, 0x08848A8Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848A8Cu) goto L_08848A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848A8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); goto L_08848A90; @@ -2198,8 +2638,21 @@ L_08848A9C: L_08848AA8: aot_gpr_31 = (0x08848AB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 104u, 0x08848AB0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848AB0u) goto L_08848AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848AB0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1864))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -2342,8 +2795,21 @@ L_08848BA0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08848BB4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 122u, 0x08848BB4u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848BB4u) goto L_08848BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848BB4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1868))); @@ -2352,8 +2818,21 @@ L_08848BB4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08848BD0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 123u, 0x08848BD0u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848BD0u) goto L_08848BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848BD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(408))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2374,8 +2853,21 @@ L_08848BE0: L_08848BEC: aot_gpr_31 = (0x08848BF4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(400))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 126u, 0x08848BF4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848BF4u) goto L_08848BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848BF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(52))); @@ -2494,8 +2986,21 @@ L_08848CEC: L_08848CF4: aot_gpr_31 = (0x08848CFCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 139u, 0x08848CFCu, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848CFCu) goto L_08848CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848CFC: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2530,8 +3035,21 @@ L_08848D3C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08848D48u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 143u, 0x08848D48u, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848D48u) goto L_08848D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848D48: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2559,8 +3077,21 @@ L_08848D74: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08848D80u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 147u, 0x08848D80u, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848D80u) goto L_08848D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848D80: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2586,8 +3117,21 @@ L_08848DAC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08848DBCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 150u, 0x08848DBCu, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848DBCu) goto L_08848DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848DBC: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2655,8 +3199,8 @@ L_08848E34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08848E78: @@ -2751,8 +3295,21 @@ L_08848E78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08848FB4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 156u, 0x08848FB4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08848FB4u) goto L_08848FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08848FB4: ctx.gpr[17] = (aot_gpr_29 + static_cast(64)); ctx.fpr[22] = ctx.fpr[22] + aot_fpr_20; @@ -2811,8 +3368,21 @@ L_08848FE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08849034u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 160u, 0x08849034u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849034u) goto L_08849034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849034: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2860,8 +3430,21 @@ L_0884907C: } L_08849098: aot_gpr_31 = (0x088490A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 166u, 0x088490A0u, 0x08B6033Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088490A0u) goto L_088490A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088490A0: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2872,8 +3455,21 @@ L_088490A0: } L_088490A8: aot_gpr_31 = (0x088490B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 168u, 0x088490B0u, 0x089644F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088490B0u) goto L_088490B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088490B0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088490B4; @@ -3048,8 +3644,8 @@ L_088491BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08849214: @@ -3095,8 +3691,21 @@ L_08849284: } L_08849294: aot_gpr_31 = (0x0884929Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 176u, 0x0884929Cu, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884929Cu) goto L_0884929C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884929C: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3244,8 +3853,21 @@ L_088493A4: } L_088493C0: aot_gpr_31 = (0x088493C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 188u, 0x088493C8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088493C8u) goto L_088493C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088493C8: { const bool branch_taken = aot_gpr_16 == ctx.gpr[2]; if (branch_taken) { @@ -3372,8 +3994,21 @@ L_0884949C: } L_088494AC: aot_gpr_31 = (0x088494B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 204u, 0x088494B4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088494B4u) goto L_088494B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088494B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3384,8 +4019,21 @@ L_088494B4: L_088494BC: aot_gpr_31 = (0x088494C4u); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 206u, 0x088494C4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088494C4u) goto L_088494C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088494C4: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; if (branch_taken) { @@ -3419,8 +4067,21 @@ L_088494E0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[26] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08849500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 209u, 0x08849500u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849500u) goto L_08849500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849500: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3445,8 +4106,21 @@ L_08849500: } L_08849528: aot_gpr_31 = (0x08849530u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 211u, 0x08849530u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849530u) goto L_08849530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849530: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3480,8 +4154,21 @@ L_0884956C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08849578u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 214u, 0x08849578u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849578u) goto L_08849578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849578: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); @@ -3540,8 +4227,21 @@ L_08849608: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0884961Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 219u, 0x0884961Cu, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884961Cu) goto L_0884961C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884961C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); @@ -3576,8 +4276,21 @@ L_08849648: L_08849650: aot_gpr_31 = (0x08849658u); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 224u, 0x08849658u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849658u) goto L_08849658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849658: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; if (branch_taken) { @@ -3666,8 +4379,21 @@ L_088496E8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x088496FCu); ctx.gpr[20] = (ctx.gpr[18] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 234u, 0x088496FCu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088496FCu) goto L_088496FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088496FC: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -3888,8 +4614,8 @@ L_0884987C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18848))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08849894: @@ -3910,8 +4636,21 @@ L_088498B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088498C4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 257u, 0x088498C4u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088498C4u) goto L_088498C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088498C4: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -3919,8 +4658,21 @@ L_088498C4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x088498DCu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 258u, 0x088498DCu, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088498DCu) goto L_088498DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088498DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3934,8 +4686,21 @@ L_088498E4: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x088498F8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 260u, 0x088498F8u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088498F8u) goto L_088498F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088498F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1336))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3948,8 +4713,21 @@ L_088498F8: L_08849904: aot_gpr_31 = (0x0884990Cu); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 262u, 0x0884990Cu, 0x08B0D8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 374u, 0x08B0D8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884990Cu) goto L_0884990C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884990C: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -3983,8 +4761,21 @@ L_08849940: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849950u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 266u, 0x08849950u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849950u) goto L_08849950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849950: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (0u + static_cast(-950)); @@ -4001,8 +4792,21 @@ L_08849960: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849978u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 268u, 0x08849978u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849978u) goto L_08849978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849978: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4016,8 +4820,21 @@ L_08849980: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08849994u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 270u, 0x08849994u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849994u) goto L_08849994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849994: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4043,8 +4860,21 @@ L_088499BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088499CCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 273u, 0x088499CCu, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088499CCu) goto L_088499CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088499CC: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4052,8 +4882,21 @@ L_088499CC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x088499E4u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 274u, 0x088499E4u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088499E4u) goto L_088499E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088499E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4067,8 +4910,21 @@ L_088499EC: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08849A00u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 276u, 0x08849A00u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849A00u) goto L_08849A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849A00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4081,8 +4937,21 @@ L_08849A00: L_08849A0C: aot_gpr_31 = (0x08849A14u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 278u, 0x08849A14u, 0x08B0D8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 374u, 0x08B0D8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849A14u) goto L_08849A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849A14: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4116,8 +4985,21 @@ L_08849A48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849A58u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 282u, 0x08849A58u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849A58u) goto L_08849A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849A58: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4125,8 +5007,21 @@ L_08849A58: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849A70u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 283u, 0x08849A70u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849A70u) goto L_08849A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849A70: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4140,8 +5035,21 @@ L_08849A78: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08849A8Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 285u, 0x08849A8Cu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849A8Cu) goto L_08849A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849A8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4167,8 +5075,21 @@ L_08849AB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849AC4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 288u, 0x08849AC4u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849AC4u) goto L_08849AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849AC4: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4176,8 +5097,21 @@ L_08849AC4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849ADCu); aot_gpr_5 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 289u, 0x08849ADCu, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849ADCu) goto L_08849ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849ADC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4191,8 +5125,21 @@ L_08849AE4: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08849AF8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 291u, 0x08849AF8u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849AF8u) goto L_08849AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849AF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4218,8 +5165,21 @@ L_08849B20: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849B30u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 294u, 0x08849B30u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849B30u) goto L_08849B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849B30: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4227,8 +5187,21 @@ L_08849B30: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849B48u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 295u, 0x08849B48u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849B48u) goto L_08849B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849B48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4242,8 +5215,21 @@ L_08849B50: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08849B64u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 297u, 0x08849B64u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849B64u) goto L_08849B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849B64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4269,8 +5255,21 @@ L_08849B8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849B9Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 300u, 0x08849B9Cu, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849B9Cu) goto L_08849B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849B9C: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4278,8 +5277,21 @@ L_08849B9C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849BB4u); aot_gpr_5 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 301u, 0x08849BB4u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849BB4u) goto L_08849BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849BB4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4293,8 +5305,21 @@ L_08849BBC: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08849BD0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 303u, 0x08849BD0u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849BD0u) goto L_08849BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849BD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4320,8 +5345,21 @@ L_08849BF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849C08u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 306u, 0x08849C08u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849C08u) goto L_08849C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849C08: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4329,8 +5367,21 @@ L_08849C08: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849C20u); aot_gpr_5 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 307u, 0x08849C20u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849C20u) goto L_08849C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849C20: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4344,8 +5395,21 @@ L_08849C28: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08849C3Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 309u, 0x08849C3Cu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849C3Cu) goto L_08849C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849C3C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4371,8 +5435,21 @@ L_08849C64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849C74u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 312u, 0x08849C74u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849C74u) goto L_08849C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849C74: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4380,8 +5457,21 @@ L_08849C74: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849C8Cu); aot_gpr_5 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 313u, 0x08849C8Cu, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849C8Cu) goto L_08849C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849C8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4395,8 +5485,21 @@ L_08849C94: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08849CA8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 315u, 0x08849CA8u, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849CA8u) goto L_08849CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849CA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4422,8 +5525,21 @@ L_08849CD0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849CE0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 318u, 0x08849CE0u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849CE0u) goto L_08849CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849CE0: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4431,8 +5547,21 @@ L_08849CE0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849CF8u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 319u, 0x08849CF8u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849CF8u) goto L_08849CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849CF8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4446,8 +5575,21 @@ L_08849D00: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08849D14u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 321u, 0x08849D14u, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849D14u) goto L_08849D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849D14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4473,8 +5615,21 @@ L_08849D3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849D4Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 324u, 0x08849D4Cu, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849D4Cu) goto L_08849D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849D4C: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4482,8 +5637,21 @@ L_08849D4C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849D64u); aot_gpr_5 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 325u, 0x08849D64u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849D64u) goto L_08849D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849D64: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4497,8 +5665,21 @@ L_08849D6C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08849D80u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 327u, 0x08849D80u, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849D80u) goto L_08849D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849D80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4524,8 +5705,21 @@ L_08849DA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08849DB8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 330u, 0x08849DB8u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849DB8u) goto L_08849DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849DB8: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4533,8 +5727,21 @@ L_08849DB8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849DD0u); aot_gpr_5 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 331u, 0x08849DD0u, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849DD0u) goto L_08849DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849DD0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4548,8 +5755,21 @@ L_08849DD8: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08849DECu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 333u, 0x08849DECu, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849DECu) goto L_08849DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849DEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4564,8 +5784,21 @@ L_08849DF4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(200))); aot_gpr_31 = (0x08849E0Cu); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 335u, 0x08849E0Cu, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849E0Cu) goto L_08849E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849E0C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4578,8 +5811,21 @@ L_08849E14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08849E24u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 337u, 0x08849E24u, 0x08B0D8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 374u, 0x08B0D8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849E24u) goto L_08849E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849E24: ctx.gpr[18] = (ctx.gpr[2] & 255u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4587,14 +5833,40 @@ L_08849E24: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08849E3Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 338u, 0x08849E3Cu, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849E3Cu) goto L_08849E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849E3C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08849E48u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 339u, 0x08849E48u, 0x08B0D8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 374u, 0x08B0D8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849E48u) goto L_08849E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849E48: { const bool branch_taken = ctx.gpr[18] == ctx.gpr[2]; if (branch_taken) { @@ -4716,8 +5988,21 @@ L_08849F24: } L_08849F40: aot_gpr_31 = (0x08849F48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 353u, 0x08849F48u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849F48u) goto L_08849F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849F48: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; if (branch_taken) { @@ -4759,8 +6044,21 @@ L_08849F80: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x08849F8Cu); aot_gpr_5 = (0u | 143u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 359u, 0x08849F8Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849F8Cu) goto L_08849F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849F8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4772,8 +6070,21 @@ L_08849F94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x08849FA0u); aot_gpr_5 = (0u | 143u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 361u, 0x08849FA0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849FA0u) goto L_08849FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849FA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(636))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -4781,8 +6092,21 @@ L_08849FA0: ctx.gpr[17] = (aot_gpr_4 << 16u); ctx.gpr[17] = (static_cast(static_cast(ctx.gpr[17]) >> 16u)); aot_gpr_31 = (0x08849FBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 362u, 0x08849FBCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08849FBCu) goto L_08849FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08849FBC: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; if (branch_taken) { @@ -4845,8 +6169,21 @@ L_0884A01C: L_0884A028: aot_gpr_31 = (0x0884A030u); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 369u, 0x0884A030u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A030u) goto L_0884A030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A030: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; if (branch_taken) { @@ -4953,8 +6290,21 @@ L_0884A0F0: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0884A110u); aot_gpr_6 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 381u, 0x0884A110u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A110u) goto L_0884A110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A110: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4985,8 +6335,21 @@ L_0884A128: L_0884A144: aot_gpr_31 = (0x0884A14Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 385u, 0x0884A14Cu, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A14Cu) goto L_0884A14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A14C: aot_gpr_4 = (ctx.gpr[2] < static_cast(225) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4999,8 +6362,21 @@ L_0884A158: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); aot_gpr_31 = (0x0884A164u); aot_gpr_5 = (0u | 225u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 387u, 0x0884A164u, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A164u) goto L_0884A164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A164: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1752), std::bit_cast(aot_fpr_12)); @@ -5057,8 +6433,21 @@ L_0884A1C8: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); aot_gpr_31 = (0x0884A1D4u); aot_gpr_5 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 394u, 0x0884A1D4u, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A1D4u) goto L_0884A1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A1D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5081,8 +6470,21 @@ L_0884A1F8: aot_gpr_4 = (aot_gpr_16 + static_cast(944)); aot_gpr_31 = (0x0884A204u); aot_gpr_5 = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 397u, 0x0884A204u, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A204u) goto L_0884A204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A204: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5168,8 +6570,21 @@ L_0884A2A4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0884A2B8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 406u, 0x0884A2B8u, 0x08830B98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 157u, 0x08830B98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A2B8u) goto L_0884A2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A2B8: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5209,8 +6624,21 @@ L_0884A2F0: L_0884A2FC: aot_gpr_31 = (0x0884A304u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 410u, 0x0884A304u, 0x0890F00Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 706u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 706u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 706u, 0x0890F00Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A304u) goto L_0884A304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A304: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5219,8 +6647,21 @@ L_0884A304: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x0884A320u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 411u, 0x0884A320u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A320u) goto L_0884A320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A320: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(328)); @@ -5268,8 +6709,8 @@ L_0884A360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884A390: @@ -5292,8 +6733,21 @@ L_0884A3C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884A3D0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 417u, 0x0884A3D0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A3D0u) goto L_0884A3D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A3D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -5315,14 +6769,40 @@ L_0884A3E8: aot_fpr_12 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x0884A400u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 421u, 0x0884A400u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A400u) goto L_0884A400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A400: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0884A40Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 422u, 0x0884A40Cu, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A40Cu) goto L_0884A40C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A40C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884A418u); @@ -5375,8 +6855,21 @@ L_0884A470: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0884A47Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 429u, 0x0884A47Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A47Cu) goto L_0884A47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A47C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0884A480; @@ -5386,14 +6879,40 @@ L_0884A480: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0884A494u); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 431u, 0x0884A494u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A494u) goto L_0884A494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A494: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884A4A0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 432u, 0x0884A4A0u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A4A0u) goto L_0884A4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A4A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5436,16 +6955,42 @@ L_0884A4E4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0884A4F0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 438u, 0x0884A4F0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A4F0u) goto L_0884A4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A4F0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0884A4F4; L_0884A4F4: aot_gpr_31 = (0x0884A4FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 440u, 0x0884A4FCu, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A4FCu) goto L_0884A4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A4FC: aot_gpr_4 = (ctx.gpr[17] < static_cast(49) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5461,8 +7006,8 @@ L_0884A508: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(18920))); jump_target = ctx.gpr[1]; ctx.gpr[17] = (static_cast(static_cast(ctx.gpr[17]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884A520: @@ -5470,8 +7015,21 @@ L_0884A520: aot_gpr_5 = (ctx.gpr[18] + static_cast(320)); aot_gpr_31 = (0x0884A530u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 443u, 0x0884A530u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A530u) goto L_0884A530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A530: aot_gpr_4 = (16640u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5543,8 +7101,21 @@ L_0884A530: } aot_gpr_31 = (0x0884A598u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 444u, 0x0884A598u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A598u) goto L_0884A598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A598: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5557,8 +7128,21 @@ L_0884A5A0: aot_gpr_5 = (ctx.gpr[18] + static_cast(320)); aot_gpr_31 = (0x0884A5B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 446u, 0x0884A5B0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A5B0u) goto L_0884A5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A5B0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2116), ctx.gpr[18]); goto L_0884A5B4; @@ -5575,8 +7159,21 @@ L_0884A5BC: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884A5D0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 449u, 0x0884A5D0u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A5D0u) goto L_0884A5D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A5D0: aot_gpr_4 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -5592,8 +7189,21 @@ L_0884A5F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884A600u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 451u, 0x0884A600u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A600u) goto L_0884A600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A600: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[5]{}; @@ -5606,8 +7216,8 @@ L_0884A600: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884A620: @@ -5844,8 +7454,21 @@ L_0884A810: } aot_gpr_31 = (0x0884A864u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 469u, 0x0884A864u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884A864u) goto L_0884A864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884A864: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6193,8 +7816,21 @@ L_0884AA9C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0884AB14u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 502u, 0x0884AB14u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884AB14u) goto L_0884AB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884AB14: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6449,8 +8085,21 @@ L_0884AC34: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(28), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0884AC44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 505u, 0x0884AC44u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884AC44u) goto L_0884AC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884AC44: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(620))); { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } @@ -6481,8 +8130,21 @@ L_0884AC64: L_0884AC6C: aot_gpr_31 = (0x0884AC74u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 509u, 0x0884AC74u, 0x08A91ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 244u, 0x08A91ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884AC74u) goto L_0884AC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884AC74: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(352))); @@ -6520,8 +8182,21 @@ L_0884ACB8: L_0884ACDC: aot_gpr_31 = (0x0884ACE4u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 512u, 0x0884ACE4u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884ACE4u) goto L_0884ACE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884ACE4: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6555,8 +8230,21 @@ L_0884ACFC: L_0884AD1C: aot_gpr_31 = (0x0884AD24u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 516u, 0x0884AD24u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884AD24u) goto L_0884AD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884AD24: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6575,8 +8263,21 @@ L_0884AD38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(588))); aot_gpr_31 = (0x0884AD4Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(604))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 519u, 0x0884AD4Cu, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884AD4Cu) goto L_0884AD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884AD4C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -6604,8 +8305,21 @@ L_0884AD58: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[23]); aot_gpr_31 = (0x0884AD9Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 521u, 0x0884AD9Cu, 0x08B0A7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 499u, 0x08B0A7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884AD9Cu) goto L_0884AD9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884AD9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6628,14 +8342,40 @@ L_0884ADA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[23]); aot_gpr_31 = (0x0884ADDCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 523u, 0x0884ADDCu, 0x08B0A7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 499u, 0x08B0A7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884ADDCu) goto L_0884ADDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884ADDC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884ADE8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 524u, 0x0884ADE8u, 0x08B02384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 597u, 0x08B02384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884ADE8u) goto L_0884ADE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884ADE8: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -6796,8 +8536,21 @@ L_0884AEAC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0884AF24u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 535u, 0x0884AF24u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884AF24u) goto L_0884AF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884AF24: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7052,8 +8805,21 @@ L_0884B044: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(28), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0884B054u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 538u, 0x0884B054u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B054u) goto L_0884B054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B054: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(620))); { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } @@ -7084,8 +8850,21 @@ L_0884B074: L_0884B07C: aot_gpr_31 = (0x0884B084u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 542u, 0x0884B084u, 0x08A91ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 244u, 0x08A91ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B084u) goto L_0884B084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B084: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(352))); @@ -7127,8 +8906,21 @@ L_0884B0EC: aot_gpr_4 = (aot_gpr_4 + static_cast(1392)); aot_gpr_31 = (0x0884B100u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 545u, 0x0884B100u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B100u) goto L_0884B100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B100: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7165,8 +8957,21 @@ L_0884B138: aot_gpr_4 = (aot_gpr_4 + static_cast(1392)); aot_gpr_31 = (0x0884B148u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 549u, 0x0884B148u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B148u) goto L_0884B148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B148: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7185,8 +8990,21 @@ L_0884B15C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(588))); aot_gpr_31 = (0x0884B170u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(624))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 552u, 0x0884B170u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B170u) goto L_0884B170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B170: aot_gpr_4 = (aot_gpr_29 + static_cast(96)); aot_gpr_5 = (0u | 1u); @@ -7216,8 +9034,21 @@ L_0884B180: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x0884B1C8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 554u, 0x0884B1C8u, 0x08B0A7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 499u, 0x08B0A7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B1C8u) goto L_0884B1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B1C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7241,14 +9072,40 @@ L_0884B1D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x0884B20Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 556u, 0x0884B20Cu, 0x08B0A7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 499u, 0x08B0A7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B20Cu) goto L_0884B20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B20C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884B218u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 557u, 0x0884B218u, 0x08B02384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 597u, 0x08B02384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B218u) goto L_0884B218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B218: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -7621,8 +9478,8 @@ L_0884B534: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884B57C: @@ -7949,8 +9806,21 @@ L_0884B848: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0884B854u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 621u, 0x0884B854u, 0x08A66AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B854u) goto L_0884B854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B854: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -7967,8 +9837,21 @@ L_0884B870: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884B87Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 623u, 0x0884B87Cu, 0x08A66AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B87Cu) goto L_0884B87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B87C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -8034,8 +9917,8 @@ L_0884B8E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884B918: @@ -8102,8 +9985,21 @@ L_0884B974: } aot_gpr_31 = (0x0884B9C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 631u, 0x0884B9C4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884B9C4u) goto L_0884B9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884B9C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8188,8 +10084,21 @@ L_0884B9E0: } aot_gpr_31 = (0x0884BA5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 634u, 0x0884BA5Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884BA5Cu) goto L_0884BA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884BA5C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); aot_gpr_4 = (17723u << 16u); @@ -8219,8 +10128,21 @@ L_0884BA80: L_0884BAAC: aot_gpr_31 = (0x0884BAB4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 637u, 0x0884BAB4u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884BAB4u) goto L_0884BAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884BAB4: aot_fpr_14 = std::bit_cast(ctx.gpr[2]); aot_fpr_14 = static_cast(static_cast(std::bit_cast(aot_fpr_14))); @@ -8287,8 +10209,21 @@ L_0884BAB4: } aot_gpr_31 = (0x0884BB28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 638u, 0x0884BB28u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884BB28u) goto L_0884BB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884BB28: aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8318,8 +10253,21 @@ L_0884BB5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(716))); aot_gpr_31 = (0x0884BB68u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 640u, 0x0884BB68u, 0x08A77A90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 734u, 0x08A77A90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884BB68u) goto L_0884BB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884BB68: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -8440,8 +10388,21 @@ L_0884BB68: aot_gpr_5 = (0u | 160u); aot_gpr_31 = (0x0884BC14u); aot_gpr_6 = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 641u, 0x0884BC14u, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884BC14u) goto L_0884BC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884BC14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(384), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(384))); @@ -8497,8 +10458,21 @@ L_0884BC68: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0884BCA8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 644u, 0x0884BCA8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884BCA8u) goto L_0884BCA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884BCA8: aot_gpr_4 = (16192u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8550,8 +10524,21 @@ L_0884BCF0: ctx.gpr[11] = (0u | 3u); aot_gpr_31 = (0x0884BD2Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0017->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0017_entry, 647u, 0x0884BD2Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884BD2Cu) goto L_0884BD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884BD2C: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(388), aot_run_words); @@ -8570,8 +10557,8 @@ L_0884BD2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(448)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884BD64: diff --git a/profiles/vcs/generated/generated_unit_0018.cpp b/profiles/vcs/generated/generated_unit_0018.cpp index 3fd78a5..67097f1 100644 --- a/profiles/vcs/generated/generated_unit_0018.cpp +++ b/profiles/vcs/generated/generated_unit_0018.cpp @@ -888,6 +888,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0884C000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -975,8 +999,21 @@ L_0884C09C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884C0B0u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 4u, 0x0884C0B0u, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C0B0u) goto L_0884C0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C0B0: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1052,8 +1089,21 @@ L_0884C144: aot_gpr_6 = (0u | 166u); aot_gpr_31 = (0x0884C16Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 9u, 0x0884C16Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C16Cu) goto L_0884C16C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C16C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(208))); aot_gpr_4 = (17402u << 16u); @@ -1086,8 +1136,21 @@ L_0884C1B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884C1CCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 12u, 0x0884C1CCu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C1CCu) goto L_0884C1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C1CC: aot_fpr_14 = std::bit_cast(0u); aot_gpr_4 = (16256u << 16u); @@ -1121,12 +1184,38 @@ L_0884C1F8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x0884C240u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 14u, 0x0884C240u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C240u) goto L_0884C240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C240: aot_gpr_31 = (0x0884C248u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 15u, 0x0884C248u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C248u) goto L_0884C248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C248: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; if (branch_taken) { @@ -1144,8 +1233,21 @@ L_0884C258: aot_gpr_5 = (0u | 300u); aot_gpr_31 = (0x0884C268u); aot_gpr_6 = (0u | 70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 18u, 0x0884C268u, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C268u) goto L_0884C268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C268: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < 4 ? 1u : 0u); @@ -1294,8 +1396,21 @@ L_0884C388: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0884C39Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 30u, 0x0884C39Cu, 0x08830288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 39u, 0x08830288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C39Cu) goto L_0884C39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C39C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1371,8 +1486,21 @@ L_0884C430: aot_gpr_6 = (0u | 166u); aot_gpr_31 = (0x0884C458u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 35u, 0x0884C458u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C458u) goto L_0884C458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C458: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (17096u << 16u); @@ -1393,8 +1521,21 @@ L_0884C474: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0884C494u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 37u, 0x0884C494u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C494u) goto L_0884C494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C494: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); @@ -1411,12 +1552,38 @@ L_0884C494: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0884C4D0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 38u, 0x0884C4D0u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C4D0u) goto L_0884C4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C4D0: aot_gpr_31 = (0x0884C4D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 39u, 0x0884C4D8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C4D8u) goto L_0884C4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C4D8: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { @@ -1434,8 +1601,21 @@ L_0884C4E8: aot_gpr_5 = (0u | 300u); aot_gpr_31 = (0x0884C4F8u); aot_gpr_6 = (0u | 70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 42u, 0x0884C4F8u, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C4F8u) goto L_0884C4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C4F8: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < 2 ? 1u : 0u); @@ -1467,8 +1647,8 @@ L_0884C510: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C53C: @@ -1488,8 +1668,8 @@ L_0884C53C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29836), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29832), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C57C: @@ -1538,8 +1718,21 @@ L_0884C5C4: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884C5DCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 51u, 0x0884C5DCu, 0x089B716Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 534u, 0x089B716Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C5DCu) goto L_0884C5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C5DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1621,14 +1814,40 @@ L_0884C628: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0884C660u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 61u, 0x0884C660u, 0x089B722Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 544u, 0x089B722Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C660u) goto L_0884C660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C660: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x0884C66Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 62u, 0x0884C66Cu, 0x08A06228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 544u, 0x08A06228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C66Cu) goto L_0884C66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C66C: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1641,8 +1860,8 @@ L_0884C66C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C68C: @@ -1658,8 +1877,8 @@ L_0884C6A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C6B4: @@ -1700,8 +1919,8 @@ L_0884C6EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C700: @@ -1715,8 +1934,8 @@ L_0884C710: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C71C: @@ -1731,8 +1950,8 @@ L_0884C730: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C73C: @@ -1745,8 +1964,8 @@ L_0884C73C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C764: @@ -1769,8 +1988,21 @@ L_0884C764: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0884C7B0u); aot_gpr_4 = (aot_gpr_16 + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 76u, 0x0884C7B0u, 0x088E1EC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 97u, 0x088E1EC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C7B0u) goto L_0884C7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C7B0: { const std::uint32_t aot_run_words[6]{0u, 0u, 0u, 0u, 0u, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast(60), aot_run_words); } @@ -1787,8 +2019,8 @@ L_0884C7B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C7FC: @@ -1832,8 +2064,8 @@ L_0884C840: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C84C: @@ -1856,8 +2088,21 @@ L_0884C868: aot_gpr_4 = (ctx.gpr[17] + static_cast(36)); aot_gpr_31 = (0x0884C880u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 85u, 0x0884C880u, 0x088E1EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 98u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 98u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 98u, 0x088E1EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C880u) goto L_0884C880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C880: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -1906,8 +2151,8 @@ L_0884C8BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C8D0: @@ -1921,22 +2166,35 @@ L_0884C8D0: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(156), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C8F8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0884C908u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 94u, 0x0884C908u, 0x08B3D594u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 305u, 0x08B3D594u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C908u) goto L_0884C908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C908: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C914: @@ -1945,22 +2203,35 @@ L_0884C914: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(7740))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C928: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0884C938u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 97u, 0x0884C938u, 0x08B3C350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 49u, 0x08B3C350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C938u) goto L_0884C938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C938: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C944: @@ -1974,8 +2245,21 @@ L_0884C944: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0884C96Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(7940)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 99u, 0x0884C96Cu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C96Cu) goto L_0884C96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C96C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); @@ -1988,8 +2272,8 @@ L_0884C96C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C998: @@ -2011,14 +2295,27 @@ L_0884C9AC: } L_0884C9B4: aot_gpr_31 = (0x0884C9BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 103u, 0x0884C9BCu, 0x08B3DAC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 399u, 0x08B3DAC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C9BCu) goto L_0884C9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C9BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884C9C8: @@ -2037,25 +2334,77 @@ L_0884C9E4: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x0884C9F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 106u, 0x0884C9F0u, 0x08ABF2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 685u, 0x08ABF2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C9F0u) goto L_0884C9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C9F0: aot_gpr_31 = (0x0884C9F8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 107u, 0x0884C9F8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884C9F8u) goto L_0884C9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884C9F8: aot_gpr_6 = (17786u << 16u); aot_gpr_4 = (aot_gpr_29 | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0884CA0Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 108u, 0x0884CA0Cu, 0x0889B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 595u, 0x0889B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA0Cu) goto L_0884CA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CA0C: aot_gpr_31 = (0x0884CA14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 109u, 0x0884CA14u, 0x088099B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 327u, 0x088099B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA14u) goto L_0884CA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CA14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2085,8 +2434,21 @@ L_0884CA30: L_0884CA38: aot_gpr_31 = (0x0884CA40u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 114u, 0x0884CA40u, 0x0880EA7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 566u, 0x0880EA7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA40u) goto L_0884CA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CA40: aot_gpr_31 = (0x0884CA48u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA48u) goto L_0884CA48; @@ -2098,8 +2460,21 @@ L_0884CA48: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0884CA60u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 116u, 0x0884CA60u, 0x088E4294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 15u, 0x088E4294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CA60u) goto L_0884CA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CA60: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(144), 0u); aot_gpr_5 = (0u | 0u); @@ -2143,8 +2518,21 @@ L_0884CAB4: L_0884CAC4: aot_gpr_31 = (0x0884CACCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 121u, 0x0884CACCu, 0x0890849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CACCu) goto L_0884CACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CACC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(156), static_cast(aot_gpr_4)); @@ -2158,8 +2546,8 @@ L_0884CAD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884CAE8: @@ -2199,15 +2587,41 @@ L_0884CB48: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x0884CB54u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 128u, 0x0884CB54u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CB54u) goto L_0884CB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CB54: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0884CB64u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 129u, 0x0884CB64u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CB64u) goto L_0884CB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CB64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(160))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[20]); @@ -2235,8 +2649,21 @@ L_0884CB90: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0884CBA0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 133u, 0x0884CBA0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CBA0u) goto L_0884CBA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CBA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); @@ -2251,8 +2678,21 @@ L_0884CBA0: L_0884CBB4: aot_gpr_31 = (0x0884CBBCu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 135u, 0x0884CBBCu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CBBCu) goto L_0884CBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CBBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[19] = (0u | 0u); @@ -2272,8 +2712,21 @@ L_0884CBD0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8796))); aot_gpr_31 = (0x0884CBECu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 137u, 0x0884CBECu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CBECu) goto L_0884CBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CBEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -2300,8 +2753,8 @@ L_0884CC00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884CC2C: @@ -2358,8 +2811,8 @@ L_0884CC74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884CC80: @@ -2450,8 +2903,21 @@ L_0884CD38: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0884CD44u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 157u, 0x0884CD44u, 0x088905B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 91u, 0x088905B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CD44u) goto L_0884CD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CD44: aot_gpr_4 = (ctx.gpr[19] << 2u); aot_gpr_4 = (aot_gpr_29 + aot_gpr_4); @@ -2534,8 +3000,21 @@ L_0884CDD0: L_0884CDE0: aot_gpr_31 = (0x0884CDE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 167u, 0x0884CDE8u, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CDE8u) goto L_0884CDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CDE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2656,8 +3135,21 @@ L_0884CEB8: L_0884CEC0: aot_gpr_31 = (0x0884CEC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 185u, 0x0884CEC8u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CEC8u) goto L_0884CEC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CEC8: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(52), aot_run_words); @@ -2677,8 +3169,8 @@ L_0884CEC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884CF04: @@ -2744,8 +3236,21 @@ L_0884CF80: ctx.gpr[21] = (ctx.gpr[21] + ctx.gpr[22]); aot_gpr_31 = (0x0884CF90u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 193u, 0x0884CF90u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CF90u) goto L_0884CF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CF90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2759,8 +3264,21 @@ L_0884CF98: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0884CFACu); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 195u, 0x0884CFACu, 0x089880D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 12u, 0x089880D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884CFACu) goto L_0884CFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884CFAC: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[23] = (ctx.gpr[23] + static_cast(24)); @@ -2796,8 +3314,8 @@ L_0884CFD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884CFFC: @@ -2881,8 +3399,21 @@ L_0884D0C4: L_0884D0C8: aot_gpr_31 = (0x0884D0D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 208u, 0x0884D0D0u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D0D0u) goto L_0884D0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D0D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2944,8 +3475,21 @@ L_0884D138: L_0884D144: aot_gpr_31 = (0x0884D14Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 216u, 0x0884D14Cu, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D14Cu) goto L_0884D14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D14C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2959,8 +3503,21 @@ L_0884D154: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884D168u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 218u, 0x0884D168u, 0x089885FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D168u) goto L_0884D168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D168: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3048,8 +3605,21 @@ L_0884D1A4: L_0884D1B4: aot_gpr_31 = (0x0884D1BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 222u, 0x0884D1BCu, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D1BCu) goto L_0884D1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D1BC: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -3189,8 +3759,8 @@ L_0884D2BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884D2EC: @@ -3233,8 +3803,8 @@ L_0884D330: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884D33C: @@ -3323,8 +3893,21 @@ L_0884D3F8: L_0884D408: aot_gpr_31 = (0x0884D410u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 250u, 0x0884D410u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D410u) goto L_0884D410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D410: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3378,8 +3961,21 @@ L_0884D468: L_0884D474: aot_gpr_31 = (0x0884D47Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 257u, 0x0884D47Cu, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D47Cu) goto L_0884D47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D47C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3393,13 +3989,39 @@ L_0884D484: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0884D498u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 259u, 0x0884D498u, 0x089885FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D498u) goto L_0884D498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D498: aot_gpr_31 = (0x0884D4A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 260u, 0x0884D4A0u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D4A0u) goto L_0884D4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D4A0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -3512,8 +4134,21 @@ L_0884D534: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0884D544u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 268u, 0x0884D544u, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D544u) goto L_0884D544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D544: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -3560,8 +4195,8 @@ L_0884D5AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884D5D4: @@ -3570,8 +4205,21 @@ L_0884D5D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_31 = (0x0884D5ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 272u, 0x0884D5ECu, 0x0886D34Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 177u, 0x0886D34Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D5ECu) goto L_0884D5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D5EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3610,8 +4258,8 @@ L_0884D614: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884D624: @@ -3707,8 +4355,21 @@ L_0884D6D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0884D6E0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 288u, 0x0884D6E0u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D6E0u) goto L_0884D6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D6E0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -3749,8 +4410,8 @@ L_0884D724: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884D734: @@ -3889,8 +4550,8 @@ L_0884D844: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884D854: @@ -3952,8 +4613,21 @@ L_0884D910: L_0884D914: aot_gpr_31 = (0x0884D91Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 315u, 0x0884D91Cu, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D91Cu) goto L_0884D91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D91C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3998,8 +4672,21 @@ L_0884D964: L_0884D974: aot_gpr_31 = (0x0884D97Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 321u, 0x0884D97Cu, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D97Cu) goto L_0884D97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D97C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4010,8 +4697,21 @@ L_0884D97C: L_0884D984: aot_gpr_31 = (0x0884D98Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 323u, 0x0884D98Cu, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D98Cu) goto L_0884D98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D98C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -4041,8 +4741,21 @@ L_0884D9C4: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884D9D4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 326u, 0x0884D9D4u, 0x089883DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 46u, 0x089883DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884D9D4u) goto L_0884D9D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884D9D4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -4081,8 +4794,21 @@ L_0884DA24: L_0884DA28: aot_gpr_31 = (0x0884DA30u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 331u, 0x0884DA30u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DA30u) goto L_0884DA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DA30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4096,8 +4822,21 @@ L_0884DA38: aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0884DA4Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 333u, 0x0884DA4Cu, 0x089885FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DA4Cu) goto L_0884DA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DA4C: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); @@ -4186,8 +4925,21 @@ L_0884DA8C: L_0884DA9C: aot_gpr_31 = (0x0884DAA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 337u, 0x0884DAA4u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DAA4u) goto L_0884DAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DAA4: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -4255,8 +5007,21 @@ L_0884DB38: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884DB48u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 344u, 0x0884DB48u, 0x08988298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 34u, 0x08988298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DB48u) goto L_0884DB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DB48: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -4475,8 +5240,8 @@ L_0884DD5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884DD94: @@ -4517,8 +5282,21 @@ L_0884DE38: L_0884DE3C: aot_gpr_31 = (0x0884DE44u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 363u, 0x0884DE44u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DE44u) goto L_0884DE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DE44: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4563,8 +5341,21 @@ L_0884DE8C: L_0884DE9C: aot_gpr_31 = (0x0884DEA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 369u, 0x0884DEA4u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DEA4u) goto L_0884DEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DEA4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4575,8 +5366,21 @@ L_0884DEA4: L_0884DEAC: aot_gpr_31 = (0x0884DEB4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 371u, 0x0884DEB4u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DEB4u) goto L_0884DEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DEB4: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -4606,8 +5410,21 @@ L_0884DEEC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884DEFCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 374u, 0x0884DEFCu, 0x089883DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 46u, 0x089883DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DEFCu) goto L_0884DEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DEFC: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884DF08u); @@ -4630,8 +5447,21 @@ L_0884DF18: L_0884DF20: aot_gpr_31 = (0x0884DF28u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 378u, 0x0884DF28u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DF28u) goto L_0884DF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DF28: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4645,8 +5475,21 @@ L_0884DF30: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884DF44u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 380u, 0x0884DF44u, 0x089885FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DF44u) goto L_0884DF44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DF44: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); @@ -4674,8 +5517,21 @@ L_0884DF44: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0884DF60u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 381u, 0x0884DF60u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DF60u) goto L_0884DF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DF60: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -4726,8 +5582,21 @@ L_0884DFC0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884DFD0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 387u, 0x0884DFD0u, 0x08988298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 34u, 0x08988298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884DFD0u) goto L_0884DFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884DFD0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0884DFDCu); @@ -4863,8 +5732,21 @@ L_0884E0A8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E0B4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 397u, 0x0884E0B4u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E0B4u) goto L_0884E0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E0B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -4905,8 +5787,8 @@ L_0884E10C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884E140: @@ -4950,8 +5832,21 @@ L_0884E1DC: L_0884E1EC: aot_gpr_31 = (0x0884E1F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 402u, 0x0884E1F4u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E1F4u) goto L_0884E1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E1F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5005,8 +5900,21 @@ L_0884E24C: L_0884E258: aot_gpr_31 = (0x0884E260u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 409u, 0x0884E260u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E260u) goto L_0884E260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E260: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5017,8 +5925,21 @@ L_0884E260: L_0884E268: aot_gpr_31 = (0x0884E270u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 411u, 0x0884E270u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E270u) goto L_0884E270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E270: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -5048,8 +5969,21 @@ L_0884E2A8: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E2B8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 414u, 0x0884E2B8u, 0x089883DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 46u, 0x089883DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E2B8u) goto L_0884E2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E2B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -5100,8 +6034,21 @@ L_0884E314: L_0884E324: aot_gpr_31 = (0x0884E32Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 420u, 0x0884E32Cu, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E32Cu) goto L_0884E32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E32C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5115,8 +6062,21 @@ L_0884E334: aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0884E348u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 422u, 0x0884E348u, 0x089885FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E348u) goto L_0884E348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E348: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); @@ -5144,8 +6104,21 @@ L_0884E348: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0884E364u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 423u, 0x0884E364u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E364u) goto L_0884E364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E364: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -5213,8 +6186,21 @@ L_0884E3F8: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E408u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 430u, 0x0884E408u, 0x08988298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 34u, 0x08988298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E408u) goto L_0884E408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E408: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -5308,8 +6294,21 @@ L_0884E4A8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884E4B8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 437u, 0x0884E4B8u, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E4B8u) goto L_0884E4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E4B8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -5390,8 +6389,8 @@ L_0884E57C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884E5B4: @@ -5431,8 +6430,21 @@ L_0884E654: L_0884E658: aot_gpr_31 = (0x0884E660u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 445u, 0x0884E660u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E660u) goto L_0884E660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E660: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5477,8 +6489,21 @@ L_0884E6A8: L_0884E6B8: aot_gpr_31 = (0x0884E6C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 451u, 0x0884E6C0u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E6C0u) goto L_0884E6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E6C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5489,8 +6514,21 @@ L_0884E6C0: L_0884E6C8: aot_gpr_31 = (0x0884E6D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 453u, 0x0884E6D0u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E6D0u) goto L_0884E6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E6D0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -5520,8 +6558,21 @@ L_0884E708: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884E718u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 456u, 0x0884E718u, 0x089883DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 46u, 0x089883DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E718u) goto L_0884E718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E718: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0884E724u); @@ -5544,8 +6595,21 @@ L_0884E734: L_0884E73C: aot_gpr_31 = (0x0884E744u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 460u, 0x0884E744u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E744u) goto L_0884E744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E744: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5559,8 +6623,21 @@ L_0884E74C: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884E760u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 462u, 0x0884E760u, 0x089885FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 61u, 0x089885FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E760u) goto L_0884E760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E760: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); @@ -5588,8 +6665,21 @@ L_0884E760: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0884E77Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 463u, 0x0884E77Cu, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E77Cu) goto L_0884E77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E77C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -5640,8 +6730,21 @@ L_0884E7DC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884E7ECu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 469u, 0x0884E7ECu, 0x08988298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 34u, 0x08988298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E7ECu) goto L_0884E7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E7EC: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0884E7F8u); @@ -5719,8 +6822,21 @@ L_0884E85C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0884E86Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 475u, 0x0884E86Cu, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E86Cu) goto L_0884E86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E86C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -5787,8 +6903,21 @@ L_0884E8B8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884E8C4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 479u, 0x0884E8C4u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E8C4u) goto L_0884E8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E8C4: aot_gpr_4 = (ctx.gpr[30] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); @@ -5829,22 +6958,22 @@ L_0884E91C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884E950: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884E958: ctx.gpr[2] = (2181u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-5800)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884E964: @@ -5856,8 +6985,8 @@ L_0884E974: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884E980: @@ -5878,8 +7007,21 @@ L_0884E9A0: L_0884E9A8: aot_gpr_31 = (0x0884E9B0u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 488u, 0x0884E9B0u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E9B0u) goto L_0884E9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E9B0: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -5888,8 +7030,21 @@ L_0884E9B0: goto L_0884E9B8; L_0884E9B8: aot_gpr_31 = (0x0884E9C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 490u, 0x0884E9C0u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884E9C0u) goto L_0884E9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884E9C0: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -5928,8 +7083,8 @@ L_0884E9E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EA04: @@ -5938,8 +7093,21 @@ L_0884EA04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0884EA18u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 497u, 0x0884EA18u, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EA18u) goto L_0884EA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EA18: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20456)); @@ -5968,8 +7136,8 @@ L_0884EA18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EAA0: @@ -6111,8 +7279,21 @@ L_0884EB90: L_0884EB94: aot_gpr_31 = (0x0884EB9Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 516u, 0x0884EB9Cu, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EB9Cu) goto L_0884EB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EB9C: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6137,8 +7318,8 @@ L_0884EBB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EBCC: @@ -6172,8 +7353,8 @@ L_0884EC04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EC14: @@ -6184,8 +7365,8 @@ L_0884EC14: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(244), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EC30: @@ -6198,8 +7379,21 @@ L_0884EC30: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0884EC6Cu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 526u, 0x0884EC6Cu, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EC6Cu) goto L_0884EC6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EC6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -6222,8 +7416,21 @@ L_0884EC6C: AOT_REGCACHE_SYNC_OUT(); return; L_0884ECB0: aot_gpr_31 = (0x0884ECB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 528u, 0x0884ECB8u, 0x08B0C4CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 63u, 0x08B0C4CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884ECB8u) goto L_0884ECB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884ECB8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(aot_gpr_4)); @@ -6301,8 +7508,21 @@ L_0884ED44: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884ED60u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 537u, 0x0884ED60u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884ED60u) goto L_0884ED60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884ED60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -6333,8 +7553,8 @@ L_0884ED84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EDB0: @@ -6354,26 +7574,26 @@ L_0884EDD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EDDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EDE4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EDEC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EDF4: @@ -6437,8 +7657,21 @@ L_0884EE44: } L_0884EE4C: aot_gpr_31 = (0x0884EE54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 552u, 0x0884EE54u, 0x08993964u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 842u, 0x08993964u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EE54u) goto L_0884EE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EE54: ctx.gpr[2] = (2238u << 16u); { const bool branch_taken = 0u == 0u; @@ -6450,8 +7683,21 @@ L_0884EE54: } L_0884EE60: aot_gpr_31 = (0x0884EE68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 554u, 0x0884EE68u, 0x08993964u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 842u, 0x08993964u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EE68u) goto L_0884EE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EE68: ctx.gpr[2] = (2238u << 16u); { const bool branch_taken = 0u == 0u; @@ -6522,19 +7768,58 @@ L_0884EEBC: ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_gpr_31 = (0x0884EF00u); ctx.gpr[11] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 561u, 0x0884EF00u, 0x08ABAD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EF00u) goto L_0884EF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EF00: aot_gpr_31 = (0x0884EF08u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 562u, 0x0884EF08u, 0x08AB9A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 327u, 0x08AB9A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EF08u) goto L_0884EF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EF08: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_31 = (0x0884EF14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 563u, 0x0884EF14u, 0x08AB96BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 274u, 0x08AB96BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EF14u) goto L_0884EF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EF14: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -6552,8 +7837,8 @@ L_0884EF1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EF30: @@ -6616,8 +7901,21 @@ L_0884EF74: aot_gpr_4 = (32768u << 16u); aot_gpr_31 = (0x0884EF80u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 573u, 0x0884EF80u, 0x08993964u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 842u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 842u, 0x08993964u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884EF80u) goto L_0884EF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884EF80: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[2] & 65535u); @@ -6664,8 +7962,8 @@ L_0884EFBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884EFC8: @@ -6851,8 +8149,8 @@ L_0884F1DC: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), ctx.gpr[9]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[7] + static_cast(0), ctx.gpr[8]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884F1E8: @@ -6881,8 +8179,21 @@ L_0884F220: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0884F238u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 594u, 0x0884F238u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F238u) goto L_0884F238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F238: ctx.fpr[0] = std::bit_cast(ctx.gpr[2]); ctx.fpr[0] = static_cast(static_cast(std::bit_cast(ctx.fpr[0]))); @@ -6890,8 +8201,8 @@ L_0884F238: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884F250: @@ -6943,8 +8254,8 @@ L_0884F2AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884F2CC: @@ -6953,8 +8264,21 @@ L_0884F2CC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0884F300u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 600u, 0x0884F300u, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F300u) goto L_0884F300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F300: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(4), static_cast(0u)); @@ -7060,8 +8384,21 @@ L_0884F3BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_5); aot_gpr_31 = (0x0884F3D0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 613u, 0x0884F3D0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F3D0u) goto L_0884F3D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F3D0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7105,8 +8442,21 @@ L_0884F408: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884F41Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 619u, 0x0884F41Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F41Cu) goto L_0884F41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F41C: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[23]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); @@ -7179,8 +8529,8 @@ L_0884F478: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884F4B8: @@ -7205,8 +8555,21 @@ L_0884F4B8: L_0884F500: aot_gpr_31 = (0x0884F508u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 629u, 0x0884F508u, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F508u) goto L_0884F508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F508: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -7228,8 +8591,21 @@ L_0884F528: L_0884F534: aot_gpr_31 = (0x0884F53Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 632u, 0x0884F53Cu, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F53Cu) goto L_0884F53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F53C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17142u << 16u); @@ -7256,8 +8632,21 @@ L_0884F56C: L_0884F574: aot_gpr_31 = (0x0884F57Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 635u, 0x0884F57Cu, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F57Cu) goto L_0884F57C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F57C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (49312u << 16u); @@ -7279,8 +8668,21 @@ L_0884F59C: L_0884F5A8: aot_gpr_31 = (0x0884F5B0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 638u, 0x0884F5B0u, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F5B0u) goto L_0884F5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F5B0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17142u << 16u); @@ -7307,8 +8709,21 @@ L_0884F5E0: L_0884F5E8: aot_gpr_31 = (0x0884F5F0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 641u, 0x0884F5F0u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F5F0u) goto L_0884F5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F5F0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -7328,8 +8743,21 @@ L_0884F608: L_0884F614: aot_gpr_31 = (0x0884F61Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 644u, 0x0884F61Cu, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F61Cu) goto L_0884F61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F61C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17142u << 16u); @@ -7356,8 +8784,21 @@ L_0884F64C: L_0884F654: aot_gpr_31 = (0x0884F65Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 647u, 0x0884F65Cu, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F65Cu) goto L_0884F65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F65C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -7377,8 +8818,21 @@ L_0884F674: L_0884F680: aot_gpr_31 = (0x0884F688u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 650u, 0x0884F688u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F688u) goto L_0884F688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F688: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17142u << 16u); @@ -7568,8 +9022,8 @@ L_0884F7B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884F7DC: @@ -7578,8 +9032,21 @@ L_0884F7DC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(60), aot_run_words); } aot_gpr_31 = (0x0884F80Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 674u, 0x0884F80Cu, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F80Cu) goto L_0884F80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F80C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -7614,8 +9081,21 @@ L_0884F860: ctx.gpr[17] = (aot_gpr_6 - aot_gpr_5); aot_gpr_31 = (0x0884F86Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 677u, 0x0884F86Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F86Cu) goto L_0884F86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F86C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[17]); @@ -7719,8 +9199,21 @@ L_0884F91C: aot_gpr_4 = (ctx.gpr[20] << 2u); aot_gpr_31 = (0x0884F928u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 689u, 0x0884F928u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F928u) goto L_0884F928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F928: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -7759,8 +9252,21 @@ L_0884F954: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0884F964u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 695u, 0x0884F964u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F964u) goto L_0884F964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F964: aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[22]); goto L_0884F968; @@ -7804,8 +9310,21 @@ L_0884F998: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0884F9A8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 701u, 0x0884F9A8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884F9A8u) goto L_0884F9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884F9A8: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[19]); @@ -7862,8 +9381,21 @@ L_0884FA00: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0884FA14u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 709u, 0x0884FA14u, 0x08B0C6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 93u, 0x08B0C6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FA14u) goto L_0884FA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FA14: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) <= 0; @@ -7945,8 +9477,21 @@ L_0884FAA4: aot_gpr_4 = (ctx.gpr[21] << 2u); aot_gpr_31 = (0x0884FAB0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 719u, 0x0884FAB0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FAB0u) goto L_0884FAB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FAB0: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] != 0u; @@ -7985,8 +9530,21 @@ L_0884FADC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0884FAECu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 725u, 0x0884FAECu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FAECu) goto L_0884FAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FAEC: aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[23]); goto L_0884FAF0; @@ -8030,8 +9588,21 @@ L_0884FB20: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0884FB30u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 731u, 0x0884FB30u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FB30u) goto L_0884FB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FB30: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[20]); @@ -8085,8 +9656,8 @@ L_0884FB74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884FBA0: @@ -8155,8 +9726,21 @@ L_0884FC08: L_0884FC48: aot_gpr_31 = (0x0884FC50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 743u, 0x0884FC50u, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FC50u) goto L_0884FC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FC50: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); aot_gpr_4 = (0u | 0u); @@ -8196,8 +9780,21 @@ L_0884FC98: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[18]); aot_gpr_31 = (0x0884FCA4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 748u, 0x0884FCA4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FCA4u) goto L_0884FCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FCA4: aot_gpr_31 = (0x0884FCACu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-29592)); @@ -8206,8 +9803,21 @@ L_0884FCA4: L_0884FCAC: aot_gpr_31 = (0x0884FCB4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 750u, 0x0884FCB4u, 0x0882E9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 613u, 0x0882E9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FCB4u) goto L_0884FCB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FCB4: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[18]; if (branch_taken) { @@ -8417,8 +10027,8 @@ L_0884FE3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0884FE64: @@ -8430,8 +10040,21 @@ L_0884FE64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), aot_gpr_31); aot_gpr_31 = (0x0884FE84u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 775u, 0x0884FE84u, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FE84u) goto L_0884FE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FE84: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8444,14 +10067,40 @@ L_0884FE8C: aot_gpr_5 = (0u | 161u); aot_gpr_31 = (0x0884FE9Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 777u, 0x0884FE9Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FE9Cu) goto L_0884FE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FE9C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0884FEA8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 778u, 0x0884FEA8u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FEA8u) goto L_0884FEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FEA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8492,14 +10141,40 @@ L_0884FED4: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x0884FEE4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 784u, 0x0884FEE4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FEE4u) goto L_0884FEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FEE4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x0884FEF0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 785u, 0x0884FEF0u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FEF0u) goto L_0884FEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FEF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8530,8 +10205,21 @@ L_0884FF0C: L_0884FF1C: aot_gpr_31 = (0x0884FF24u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 790u, 0x0884FF24u, 0x08AF78E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 833u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 833u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 833u, 0x08AF78E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF24u) goto L_0884FF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FF24: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8551,14 +10239,40 @@ L_0884FF38: aot_gpr_5 = (0u | 162u); aot_gpr_31 = (0x0884FF48u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 793u, 0x0884FF48u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF48u) goto L_0884FF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FF48: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0884FF54u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 794u, 0x0884FF54u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF54u) goto L_0884FF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FF54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8584,14 +10298,40 @@ L_0884FF70: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x0884FF80u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 798u, 0x0884FF80u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF80u) goto L_0884FF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FF80: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_31 = (0x0884FF8Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 799u, 0x0884FF8Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FF8Cu) goto L_0884FF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FF8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8631,14 +10371,40 @@ L_0884FFC0: aot_gpr_5 = (0u | 163u); aot_gpr_31 = (0x0884FFD0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 806u, 0x0884FFD0u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FFD0u) goto L_0884FFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FFD0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0884FFDCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0018->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0018_entry, 807u, 0x0884FFDCu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0884FFDCu) goto L_0884FFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0884FFDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; diff --git a/profiles/vcs/generated/generated_unit_0019.cpp b/profiles/vcs/generated/generated_unit_0019.cpp index 4c048b4..222f09a 100644 --- a/profiles/vcs/generated/generated_unit_0019.cpp +++ b/profiles/vcs/generated/generated_unit_0019.cpp @@ -1092,6 +1092,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08850000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1108,14 +1132,40 @@ LOCAL_SCHED_BOUNDARY: L_08850000: aot_gpr_31 = (0x08850008u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 2u, 0x08850008u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850008u) goto L_08850008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850008: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(52))); aot_gpr_31 = (0x08850014u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 3u, 0x08850014u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850014u) goto L_08850014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850014: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(52))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1155,14 +1205,40 @@ L_08850048: aot_gpr_5 = (0u | 164u); aot_gpr_31 = (0x08850058u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 10u, 0x08850058u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850058u) goto L_08850058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850058: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); aot_gpr_31 = (0x08850064u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 11u, 0x08850064u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850064u) goto L_08850064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1188,14 +1264,40 @@ L_08850080: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08850090u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 15u, 0x08850090u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850090u) goto L_08850090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850090: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(64))); aot_gpr_31 = (0x0885009Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 16u, 0x0885009Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885009Cu) goto L_0885009C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885009C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(64))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1229,14 +1331,40 @@ L_088500C4: aot_gpr_5 = (0u | 165u); aot_gpr_31 = (0x088500D4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 22u, 0x088500D4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088500D4u) goto L_088500D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088500D4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); aot_gpr_31 = (0x088500E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 23u, 0x088500E0u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088500E0u) goto L_088500E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088500E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1262,14 +1390,40 @@ L_088500FC: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x0885010Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 27u, 0x0885010Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885010Cu) goto L_0885010C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885010C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(76))); aot_gpr_31 = (0x08850118u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 28u, 0x08850118u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850118u) goto L_08850118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850118: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(76))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1301,20 +1455,59 @@ L_0885013C: L_08850140: aot_gpr_31 = (0x08850148u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 34u, 0x08850148u, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850148u) goto L_08850148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850148: aot_gpr_31 = (0x08850150u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 35u, 0x08850150u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850150u) goto L_08850150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850150: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08850164u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(236), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0019->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0019_entry, 36u, 0x08850164u, 0x0884F2CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 599u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 599u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 599u, 0x0884F2CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08850164u) goto L_08850164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08850164: ctx.gpr[2] = (0u | 1u); goto L_08850168; @@ -1328,8 +1521,8 @@ L_08850168: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850180: @@ -1451,8 +1644,8 @@ L_08850250: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885025C: @@ -1549,8 +1742,8 @@ L_08850304: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850310: @@ -1574,8 +1767,8 @@ L_08850334: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(19128))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885034C: @@ -1762,8 +1955,8 @@ L_088504A4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088504B0: @@ -1787,8 +1980,8 @@ L_088504D4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(19296))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088504EC: @@ -1975,8 +2168,8 @@ L_08850644: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850650: @@ -2098,8 +2291,8 @@ L_08850720: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885072C: @@ -2123,8 +2316,8 @@ L_08850750: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(19464))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850768: @@ -2311,8 +2504,8 @@ L_088508C0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088508CC: @@ -2336,8 +2529,8 @@ L_088508F0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(19632))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850908: @@ -2524,8 +2717,8 @@ L_08850A60: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850A6C: @@ -2549,8 +2742,8 @@ L_08850A90: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(19800))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850AA8: @@ -2737,8 +2930,8 @@ L_08850C00: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850C0C: @@ -2762,8 +2955,8 @@ L_08850C30: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(19968))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850C48: @@ -2950,8 +3143,8 @@ L_08850DA0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850DAC: @@ -2975,8 +3168,8 @@ L_08850DD0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(20136))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850DE8: @@ -3163,8 +3356,8 @@ L_08850F40: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850F4C: @@ -3188,8 +3381,8 @@ L_08850F70: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(20304))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08850F88: @@ -3376,8 +3569,8 @@ L_088510E0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088510EC: @@ -3401,8 +3594,8 @@ L_08851110: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(20472))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851128: @@ -3589,8 +3782,8 @@ L_08851280: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885128C: @@ -3614,8 +3807,8 @@ L_088512B0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(20640))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088512C8: @@ -3802,8 +3995,8 @@ L_08851420: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885142C: @@ -3827,8 +4020,8 @@ L_08851450: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(20808))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851468: @@ -4015,8 +4208,8 @@ L_088515C0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088515CC: @@ -4040,8 +4233,8 @@ L_088515F0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(20992))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851608: @@ -4177,8 +4370,8 @@ L_08851700: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885170C: @@ -4202,8 +4395,8 @@ L_08851730: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(21192))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851748: @@ -4390,8 +4583,8 @@ L_088518A0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088518AC: @@ -4415,8 +4608,8 @@ L_088518D0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(21360))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088518E8: @@ -4603,8 +4796,8 @@ L_08851A40: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851A4C: @@ -4628,8 +4821,8 @@ L_08851A70: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(21528))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851A88: @@ -4816,8 +5009,8 @@ L_08851BE0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851BEC: @@ -4841,8 +5034,8 @@ L_08851C10: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(21696))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851C28: @@ -5029,8 +5222,8 @@ L_08851D80: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851D8C: @@ -5054,8 +5247,8 @@ L_08851DB0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(21864))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851DC8: @@ -5242,8 +5435,8 @@ L_08851F20: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851F2C: @@ -5267,8 +5460,8 @@ L_08851F50: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(22032))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08851F68: @@ -5455,8 +5648,8 @@ L_088520C0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088520CC: @@ -5480,8 +5673,8 @@ L_088520F0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(22200))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852108: @@ -5668,8 +5861,8 @@ L_08852260: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885226C: @@ -5693,8 +5886,8 @@ L_08852290: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(22368))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088522A8: @@ -5881,8 +6074,8 @@ L_08852400: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885240C: @@ -5906,8 +6099,8 @@ L_08852430: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(22536))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852448: @@ -6094,8 +6287,8 @@ L_088525A0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088525AC: @@ -6119,8 +6312,8 @@ L_088525D0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(22704))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088525E8: @@ -6307,8 +6500,8 @@ L_08852740: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885274C: @@ -6332,8 +6525,8 @@ L_08852770: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(22872))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852788: @@ -6520,8 +6713,8 @@ L_088528E0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088528EC: @@ -6643,8 +6836,8 @@ L_088529BC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088529C8: @@ -6668,8 +6861,8 @@ L_088529EC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(23040))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852A04: @@ -6856,8 +7049,8 @@ L_08852B5C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852B68: @@ -6881,8 +7074,8 @@ L_08852B8C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(23208))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852BA4: @@ -7069,8 +7262,8 @@ L_08852CFC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852D08: @@ -7192,8 +7385,8 @@ L_08852DD8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852DE4: @@ -7217,8 +7410,8 @@ L_08852E08: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(23376))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852E20: @@ -7354,8 +7547,8 @@ L_08852F18: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852F24: @@ -7379,8 +7572,8 @@ L_08852F48: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(23576))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08852F60: @@ -7516,8 +7709,8 @@ L_08853058: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853064: @@ -7541,8 +7734,8 @@ L_08853088: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(23776))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088530A0: @@ -7678,8 +7871,8 @@ L_08853198: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088531A4: @@ -7703,8 +7896,8 @@ L_088531C8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(23976))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088531E0: @@ -7840,8 +8033,8 @@ L_088532D8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088532E4: @@ -7865,8 +8058,8 @@ L_08853308: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(24176))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853320: @@ -8002,8 +8195,8 @@ L_08853418: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853424: @@ -8027,8 +8220,8 @@ L_08853448: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(24376))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853460: @@ -8215,8 +8408,8 @@ L_088535B8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088535C4: @@ -8240,8 +8433,8 @@ L_088535E8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(24544))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853600: @@ -8428,8 +8621,8 @@ L_08853758: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853764: @@ -8551,8 +8744,8 @@ L_08853834: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853840: @@ -8674,8 +8867,8 @@ L_08853910: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885391C: @@ -8797,8 +8990,8 @@ L_088539EC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088539F8: @@ -8822,8 +9015,8 @@ L_08853A1C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(24712))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853A34: @@ -9010,8 +9203,8 @@ L_08853B8C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853B98: @@ -9035,8 +9228,8 @@ L_08853BBC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(24880))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853BD4: @@ -9206,8 +9399,8 @@ L_08853D0C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853D18: @@ -9329,8 +9522,8 @@ L_08853DE8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853DF4: @@ -9452,8 +9645,8 @@ L_08853EC4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853ED0: @@ -9575,8 +9768,8 @@ L_08853FA0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08853FAC: diff --git a/profiles/vcs/generated/generated_unit_0020.cpp b/profiles/vcs/generated/generated_unit_0020.cpp index 538d1aa..c971b1c 100644 --- a/profiles/vcs/generated/generated_unit_0020.cpp +++ b/profiles/vcs/generated/generated_unit_0020.cpp @@ -1082,6 +1082,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08854000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1131,8 +1155,8 @@ L_08854038: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854044: @@ -1156,8 +1180,8 @@ L_08854068: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(25048))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854080: @@ -1327,8 +1351,8 @@ L_088541B8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088541C4: @@ -1450,8 +1474,8 @@ L_08854294: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088542A0: @@ -1475,8 +1499,8 @@ L_088542C4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(25216))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088542DC: @@ -1663,8 +1687,8 @@ L_08854434: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854440: @@ -1688,8 +1712,8 @@ L_08854464: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(25384))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885447C: @@ -1876,8 +1900,8 @@ L_088545D4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088545E0: @@ -1999,8 +2023,8 @@ L_088546B0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088546BC: @@ -2122,8 +2146,8 @@ L_0885478C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854798: @@ -2155,8 +2179,8 @@ L_088547C4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_7); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(25560))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088547DC: @@ -2240,8 +2264,8 @@ L_08854870: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885487C: @@ -2265,8 +2289,8 @@ L_088548A0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(25720))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088548B8: @@ -2453,8 +2477,8 @@ L_08854A10: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854A1C: @@ -2478,8 +2502,8 @@ L_08854A40: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(25888))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854A58: @@ -2649,8 +2673,8 @@ L_08854B90: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854B9C: @@ -2674,8 +2698,8 @@ L_08854BC0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(26048))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854BD8: @@ -2862,8 +2886,8 @@ L_08854D30: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854D3C: @@ -2887,8 +2911,8 @@ L_08854D60: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(26216))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854D78: @@ -3075,8 +3099,8 @@ L_08854ED0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854EDC: @@ -3100,8 +3124,8 @@ L_08854F00: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(26384))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08854F18: @@ -3288,8 +3312,8 @@ L_08855070: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885507C: @@ -3313,8 +3337,8 @@ L_088550A0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(26552))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088550B8: @@ -3501,8 +3525,8 @@ L_08855210: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885521C: @@ -3526,8 +3550,8 @@ L_08855240: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(26720))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855258: @@ -3714,8 +3738,8 @@ L_088553B0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088553BC: @@ -3739,8 +3763,8 @@ L_088553E0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(26888))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088553F8: @@ -3927,8 +3951,8 @@ L_08855550: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885555C: @@ -3952,8 +3976,8 @@ L_08855580: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(27056))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855598: @@ -4140,8 +4164,8 @@ L_088556F0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088556FC: @@ -4165,8 +4189,8 @@ L_08855720: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(27224))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855738: @@ -4353,8 +4377,8 @@ L_08855890: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885589C: @@ -4378,8 +4402,8 @@ L_088558C0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(27392))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088558D8: @@ -4566,8 +4590,8 @@ L_08855A30: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855A3C: @@ -4591,8 +4615,8 @@ L_08855A60: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(27560))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855A78: @@ -4779,8 +4803,8 @@ L_08855BD0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855BDC: @@ -4804,8 +4828,8 @@ L_08855C00: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(27728))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855C18: @@ -4975,8 +4999,8 @@ L_08855D50: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855D5C: @@ -5098,8 +5122,8 @@ L_08855E2C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855E38: @@ -5221,8 +5245,8 @@ L_08855F08: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855F14: @@ -5344,8 +5368,8 @@ L_08855FE4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08855FF0: @@ -5369,8 +5393,8 @@ L_08856014: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(27888))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885602C: @@ -5557,8 +5581,8 @@ L_08856184: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856190: @@ -5582,8 +5606,8 @@ L_088561B4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(28056))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088561CC: @@ -5770,8 +5794,8 @@ L_08856324: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856330: @@ -5795,8 +5819,8 @@ L_08856354: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(28224))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885636C: @@ -5983,8 +6007,8 @@ L_088564C4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088564D0: @@ -6008,8 +6032,8 @@ L_088564F4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(28392))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885650C: @@ -6179,8 +6203,8 @@ L_08856644: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856650: @@ -6204,8 +6228,8 @@ L_08856674: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(28560))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885668C: @@ -6392,8 +6416,8 @@ L_088567E4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088567F0: @@ -6417,8 +6441,8 @@ L_08856814: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(28728))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885682C: @@ -6605,8 +6629,8 @@ L_08856984: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856990: @@ -6630,8 +6654,8 @@ L_088569B4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(28896))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088569CC: @@ -6818,8 +6842,8 @@ L_08856B24: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856B30: @@ -6843,8 +6867,8 @@ L_08856B54: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(29064))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856B6C: @@ -7031,8 +7055,8 @@ L_08856CC4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856CD0: @@ -7056,8 +7080,8 @@ L_08856CF4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(29232))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856D0C: @@ -7244,8 +7268,8 @@ L_08856E64: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856E70: @@ -7367,8 +7391,8 @@ L_08856F40: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08856F4C: @@ -7490,8 +7514,8 @@ L_0885701C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857028: @@ -7613,8 +7637,8 @@ L_088570F8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857104: @@ -7736,8 +7760,8 @@ L_088571D4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088571E0: @@ -7761,8 +7785,8 @@ L_08857204: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(29400))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885721C: @@ -7949,8 +7973,8 @@ L_08857374: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857380: @@ -7974,8 +7998,8 @@ L_088573A4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(29568))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088573BC: @@ -8162,8 +8186,8 @@ L_08857514: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857520: @@ -8285,8 +8309,8 @@ L_088575F0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088575FC: @@ -8310,8 +8334,8 @@ L_08857620: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(29736))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857638: @@ -8498,8 +8522,8 @@ L_08857790: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885779C: @@ -8523,8 +8547,8 @@ L_088577C0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(29904))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088577D8: @@ -8711,8 +8735,8 @@ L_08857930: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885793C: @@ -8834,8 +8858,8 @@ L_08857A0C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857A18: @@ -8859,8 +8883,8 @@ L_08857A3C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30072))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857A54: @@ -9047,8 +9071,8 @@ L_08857BAC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857BB8: @@ -9072,8 +9096,8 @@ L_08857BDC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30240))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857BF4: @@ -9243,8 +9267,8 @@ L_08857D2C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857D38: @@ -9366,8 +9390,8 @@ L_08857E08: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857E14: @@ -9391,8 +9415,8 @@ L_08857E38: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30392))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857E50: @@ -9579,8 +9603,8 @@ L_08857FA8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857FB4: @@ -9604,8 +9628,8 @@ L_08857FD8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30560))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08857FF0: diff --git a/profiles/vcs/generated/generated_unit_0021.cpp b/profiles/vcs/generated/generated_unit_0021.cpp index 4350498..d1e94c3 100644 --- a/profiles/vcs/generated/generated_unit_0021.cpp +++ b/profiles/vcs/generated/generated_unit_0021.cpp @@ -1102,6 +1102,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08858000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1295,8 +1319,8 @@ L_08858148: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858154: @@ -1402,8 +1426,8 @@ L_0885820C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858218: @@ -1483,8 +1507,8 @@ L_088582A4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088582B0: @@ -1606,8 +1630,8 @@ L_08858380: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885838C: @@ -1729,8 +1753,8 @@ L_0885845C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858468: @@ -1852,8 +1876,8 @@ L_08858538: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858544: @@ -1975,8 +1999,8 @@ L_08858614: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858620: @@ -2098,8 +2122,8 @@ L_088586F0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088586FC: @@ -2221,8 +2245,8 @@ L_088587CC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088587D8: @@ -2246,8 +2270,8 @@ L_088587FC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30728))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858814: @@ -2434,8 +2458,8 @@ L_0885896C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858978: @@ -2459,8 +2483,8 @@ L_0885899C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30896))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088589B4: @@ -2647,8 +2671,8 @@ L_08858B0C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858B18: @@ -2693,8 +2717,8 @@ L_08858B68: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858B74: @@ -2739,8 +2763,8 @@ L_08858BC4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858BD0: @@ -2785,8 +2809,8 @@ L_08858C20: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858C2C: @@ -2831,8 +2855,8 @@ L_08858C7C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858C88: @@ -2954,8 +2978,8 @@ L_08858D58: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858D64: @@ -3077,8 +3101,8 @@ L_08858E34: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858E40: @@ -3200,8 +3224,8 @@ L_08858F10: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858F1C: @@ -3323,8 +3347,8 @@ L_08858FEC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08858FF8: @@ -3446,8 +3470,8 @@ L_088590C8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088590D4: @@ -3569,8 +3593,8 @@ L_088591A4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088591B0: @@ -3692,8 +3716,8 @@ L_08859280: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885928C: @@ -3815,8 +3839,8 @@ L_0885935C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859368: @@ -3938,8 +3962,8 @@ L_08859438: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859444: @@ -4061,8 +4085,8 @@ L_08859514: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859520: @@ -4159,8 +4183,8 @@ L_088595C8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088595D4: @@ -4257,8 +4281,8 @@ L_0885967C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859688: @@ -4380,8 +4404,8 @@ L_08859758: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859764: @@ -4503,8 +4527,8 @@ L_08859834: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859840: @@ -4626,8 +4650,8 @@ L_08859910: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885991C: @@ -4749,8 +4773,8 @@ L_088599EC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088599F8: @@ -4872,8 +4896,8 @@ L_08859AC8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859AD4: @@ -4897,8 +4921,8 @@ L_08859AF8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31080))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859B10: @@ -5102,8 +5126,8 @@ L_08859C88: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859C94: @@ -5127,8 +5151,8 @@ L_08859CB8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31240))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859CD0: @@ -5332,8 +5356,8 @@ L_08859E48: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859E54: @@ -5357,8 +5381,8 @@ L_08859E78: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31400))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859E90: @@ -5545,8 +5569,8 @@ L_08859FE8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08859FF4: @@ -5570,8 +5594,8 @@ L_0885A018: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31560))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A030: @@ -5724,8 +5748,8 @@ L_0885A148: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A154: @@ -5749,8 +5773,8 @@ L_0885A178: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31696))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A190: @@ -5954,8 +5978,8 @@ L_0885A308: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A314: @@ -5979,8 +6003,8 @@ L_0885A338: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31856))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A350: @@ -6184,8 +6208,8 @@ L_0885A4C8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A4D4: @@ -6209,8 +6233,8 @@ L_0885A4F8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(32016))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A510: @@ -6397,8 +6421,8 @@ L_0885A668: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A674: @@ -6422,8 +6446,8 @@ L_0885A698: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(32176))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A6B0: @@ -6576,8 +6600,8 @@ L_0885A7C8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A7D4: @@ -6601,8 +6625,8 @@ L_0885A7F8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(32312))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A810: @@ -6806,8 +6830,8 @@ L_0885A988: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A994: @@ -6831,8 +6855,8 @@ L_0885A9B8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(32472))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885A9D0: @@ -7036,8 +7060,8 @@ L_0885AB48: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885AB54: @@ -7061,8 +7085,8 @@ L_0885AB78: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(32632))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885AB90: @@ -7249,8 +7273,8 @@ L_0885ACE8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885ACF4: @@ -7274,8 +7298,8 @@ L_0885AD18: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-32744))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885AD30: @@ -7428,8 +7452,8 @@ L_0885AE48: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885AE54: @@ -7551,8 +7575,8 @@ L_0885AF24: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885AF30: @@ -7576,8 +7600,8 @@ L_0885AF54: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-32608))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885AF6C: @@ -7764,8 +7788,8 @@ L_0885B0C4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B0D0: @@ -7789,8 +7813,8 @@ L_0885B0F4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-32440))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B10C: @@ -7977,8 +8001,8 @@ L_0885B264: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B270: @@ -8002,8 +8026,8 @@ L_0885B294: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-32272))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B2AC: @@ -8190,8 +8214,8 @@ L_0885B404: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B410: @@ -8215,8 +8239,8 @@ L_0885B434: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-32104))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B44C: @@ -8403,8 +8427,8 @@ L_0885B5A4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B5B0: @@ -8428,8 +8452,8 @@ L_0885B5D4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31936))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B5EC: @@ -8616,8 +8640,8 @@ L_0885B744: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B750: @@ -8641,8 +8665,8 @@ L_0885B774: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31768))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B78C: @@ -8829,8 +8853,8 @@ L_0885B8E4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B8F0: @@ -8854,8 +8878,8 @@ L_0885B914: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31600))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885B92C: @@ -9042,8 +9066,8 @@ L_0885BA84: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885BA90: @@ -9067,8 +9091,8 @@ L_0885BAB4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31432))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885BACC: @@ -9255,8 +9279,8 @@ L_0885BC24: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885BC30: @@ -9280,8 +9304,8 @@ L_0885BC54: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31264))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885BC6C: @@ -9468,8 +9492,8 @@ L_0885BDC4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885BDD0: @@ -9493,8 +9517,8 @@ L_0885BDF4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31096))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885BE0C: @@ -9681,8 +9705,8 @@ L_0885BF64: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885BF70: @@ -9706,8 +9730,8 @@ L_0885BF94: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30920))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885BFAC: diff --git a/profiles/vcs/generated/generated_unit_0022.cpp b/profiles/vcs/generated/generated_unit_0022.cpp index 83cbbd3..1d93c88 100644 --- a/profiles/vcs/generated/generated_unit_0022.cpp +++ b/profiles/vcs/generated/generated_unit_0022.cpp @@ -32,6 +32,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0022[64] = { 494u, 510u, 525u, 541u, 558u, 575u, 592u, 610u, 628u, 647u, 665u, 684u, 702u, 720u, 738u, 756u, 775u, 793u, 812u, 830u, 849u, 862u, 881u, 896u, 910u, 916u, 921u, 924u, 925u, 926u, 928u, 936u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0022[4090] = { + 1u, 0u, 2u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 9u, 0u, 0u, 0u, + 0u, 0u, 10u, 0u, 11u, 0u, 0u, 0u, 0u, 0u, 12u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 14u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 17u, 0u, 0u, 0u, + 0u, 18u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 22u, 23u, 0u, 24u, 0u, 0u, 0u, + 0u, 0u, 25u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 27u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 30u, 0u, 0u, 0u, 0u, 0u, 31u, 0u, 32u, 0u, 0u, 0u, + 0u, 0u, 33u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, 39u, 0u, 40u, 0u, 0u, 0u, + 0u, 0u, 41u, 0u, 42u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, + 0u, 47u, 48u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 51u, 0u, 0u, 0u, 0u, 0u, 52u, 0u, 53u, 0u, 0u, 0u, 0u, 0u, 54u, 0u, 55u, 0u, 0u, 0u, + 0u, 0u, 56u, 0u, 57u, 0u, 0u, 0u, 0u, 0u, 58u, 0u, 59u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 63u, 0u, 0u, 0u, + 0u, 0u, 64u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 67u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, + 0u, 0u, 0u, 71u, 0u, 0u, 0u, 0u, 0u, 72u, 73u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 78u, 0u, 0u, 0u, + 0u, 0u, 79u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 84u, 0u, 0u, 0u, 0u, 0u, 85u, 0u, 86u, 0u, 0u, 0u, + 0u, 0u, 87u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 92u, 0u, 0u, 0u, 0u, 93u, 0u, 0u, 94u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 0u, 0u, 0u, 0u, 97u, 98u, 0u, 99u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 101u, 0u, 0u, 0u, + 0u, 0u, 102u, 0u, 103u, 0u, 0u, 0u, 0u, 0u, 104u, 0u, 105u, 0u, 0u, 0u, 0u, 0u, 106u, 0u, 107u, 0u, 0u, 0u, 0u, 0u, 108u, 0u, 109u, 0u, 0u, 0u, + 0u, 0u, 110u, 0u, 111u, 0u, 0u, 0u, 0u, 0u, 112u, 0u, 113u, 0u, 0u, 0u, 0u, 0u, 114u, 0u, 115u, 0u, 0u, 0u, 0u, 0u, 116u, 0u, 117u, 0u, 0u, 0u, + 0u, 118u, 0u, 0u, 119u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 0u, 0u, 122u, 123u, 0u, 124u, 0u, 0u, 0u, + 0u, 0u, 125u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 127u, 0u, 128u, 0u, 0u, 0u, 0u, 0u, 129u, 0u, 130u, 0u, 0u, 0u, 0u, 0u, 131u, 0u, 132u, 0u, 0u, 0u, + 0u, 0u, 133u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 136u, 0u, 0u, 0u, 0u, 0u, 137u, 0u, 138u, 0u, 0u, 0u, 0u, 0u, 139u, 0u, 140u, 0u, 0u, 0u, + 0u, 0u, 141u, 0u, 142u, 0u, 0u, 0u, 0u, 143u, 0u, 0u, 144u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 0u, + 0u, 147u, 148u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 150u, 0u, 151u, 0u, 0u, 0u, 0u, 0u, 152u, 0u, 153u, 0u, 0u, 0u, 0u, 0u, 154u, 0u, 155u, 0u, 0u, 0u, + 0u, 0u, 156u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 159u, 0u, 0u, 0u, 0u, 0u, 160u, 0u, 161u, 0u, 0u, 0u, 0u, 0u, 162u, 0u, 163u, 0u, 0u, 0u, + 0u, 0u, 164u, 0u, 165u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 167u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 169u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 170u, 0u, 0u, + 0u, 0u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 172u, 173u, 0u, 174u, 0u, 0u, 0u, 0u, 0u, 175u, 0u, 176u, 0u, 0u, 0u, 0u, 0u, 177u, 0u, 178u, 0u, 0u, 0u, + 0u, 0u, 179u, 0u, 180u, 0u, 0u, 0u, 0u, 0u, 181u, 0u, 182u, 0u, 0u, 0u, 0u, 0u, 183u, 0u, 184u, 0u, 0u, 0u, 0u, 0u, 185u, 0u, 186u, 0u, 0u, 0u, + 0u, 0u, 187u, 0u, 188u, 0u, 0u, 0u, 0u, 0u, 189u, 0u, 190u, 0u, 0u, 0u, 0u, 191u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, + 0u, 0u, 0u, 194u, 0u, 0u, 0u, 0u, 0u, 195u, 196u, 0u, 197u, 0u, 0u, 0u, 0u, 0u, 198u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 201u, 0u, 0u, 0u, + 0u, 0u, 202u, 0u, 203u, 0u, 0u, 0u, 0u, 0u, 204u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 207u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 209u, 0u, 0u, 0u, + 0u, 0u, 210u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 215u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 217u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 0u, 0u, 220u, 221u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 224u, 0u, 0u, 0u, + 0u, 0u, 225u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 228u, 0u, 0u, 0u, 0u, 0u, 229u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 232u, 0u, 0u, 0u, + 0u, 0u, 233u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 236u, 0u, 0u, 0u, 0u, 0u, 237u, 0u, 238u, 0u, 0u, 0u, 0u, 0u, 239u, 0u, 240u, 0u, 0u, 0u, + 0u, 241u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 245u, 246u, 0u, 247u, 0u, 0u, 0u, + 0u, 0u, 248u, 0u, 249u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 253u, 0u, 0u, 0u, 0u, 0u, 254u, 0u, 255u, 0u, 0u, 0u, + 0u, 0u, 256u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 259u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 261u, 0u, 0u, 0u, 0u, 0u, 262u, 0u, 263u, 0u, 0u, 0u, + 0u, 0u, 264u, 0u, 265u, 0u, 0u, 0u, 0u, 266u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 268u, 0u, 0u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 0u, + 0u, 270u, 271u, 0u, 272u, 0u, 0u, 0u, 0u, 0u, 273u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 278u, 0u, 0u, 0u, + 0u, 0u, 279u, 0u, 280u, 0u, 0u, 0u, 0u, 0u, 281u, 0u, 282u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 284u, 0u, 0u, 0u, 0u, 0u, 285u, 0u, 286u, 0u, 0u, 0u, + 0u, 0u, 287u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 290u, 0u, 0u, 0u, 0u, 291u, 0u, 0u, 292u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, + 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 295u, 296u, 0u, 297u, 0u, 0u, 0u, 0u, 0u, 298u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 301u, 0u, 0u, 0u, + 0u, 0u, 302u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 305u, 0u, 0u, 0u, 0u, 0u, 306u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 309u, 0u, 0u, 0u, + 0u, 0u, 310u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 315u, 0u, 0u, 0u, 0u, 316u, 0u, 0u, 317u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 318u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, 0u, 0u, 0u, 0u, 320u, 321u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 323u, 0u, 324u, 0u, 0u, 0u, + 0u, 0u, 325u, 0u, 326u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 328u, 0u, 0u, 0u, 0u, 0u, 329u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 332u, 0u, 0u, 0u, + 0u, 0u, 333u, 0u, 334u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 338u, 0u, 0u, 0u, 0u, 0u, 339u, 0u, 340u, 0u, 0u, 0u, + 0u, 341u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 345u, 346u, 0u, 347u, 0u, 0u, 0u, + 0u, 0u, 348u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, 353u, 0u, 0u, 0u, 0u, 0u, 354u, 0u, 355u, 0u, 0u, 0u, + 0u, 0u, 356u, 0u, 357u, 0u, 0u, 0u, 0u, 0u, 358u, 0u, 359u, 0u, 0u, 0u, 0u, 0u, 360u, 0u, 361u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 363u, 0u, 0u, 0u, + 0u, 0u, 364u, 0u, 365u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 367u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, + 0u, 370u, 371u, 0u, 372u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 376u, 0u, 0u, 0u, 0u, 0u, 377u, 0u, 378u, 0u, 0u, 0u, + 0u, 0u, 379u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, 381u, 0u, 382u, 0u, 0u, 0u, 0u, 0u, 383u, 0u, 384u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 386u, 0u, 0u, 0u, + 0u, 0u, 387u, 0u, 388u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 390u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 392u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 393u, 0u, 0u, + 0u, 0u, 0u, 394u, 0u, 0u, 0u, 0u, 0u, 395u, 396u, 0u, 397u, 0u, 0u, 0u, 0u, 0u, 398u, 0u, 399u, 0u, 0u, 0u, 0u, 0u, 400u, 0u, 401u, 0u, 0u, 0u, + 0u, 0u, 402u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 405u, 0u, 0u, 0u, 0u, 0u, 406u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 409u, 0u, 0u, 0u, + 0u, 0u, 410u, 0u, 411u, 0u, 0u, 0u, 0u, 0u, 412u, 0u, 413u, 0u, 0u, 0u, 0u, 0u, 414u, 0u, 415u, 0u, 0u, 0u, 0u, 416u, 0u, 0u, 417u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 420u, 421u, 0u, 422u, 0u, 0u, 0u, 0u, 0u, 423u, 0u, 424u, 0u, 0u, 0u, + 0u, 0u, 425u, 0u, 426u, 0u, 0u, 0u, 0u, 0u, 427u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 430u, 0u, 0u, 0u, 0u, 0u, 431u, 0u, 432u, 0u, 0u, 0u, + 0u, 0u, 433u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 436u, 0u, 0u, 0u, 0u, 0u, 437u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 440u, 0u, 0u, 0u, + 0u, 441u, 0u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 443u, 0u, 0u, 0u, 0u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 445u, 446u, 0u, 447u, 0u, 0u, 0u, + 0u, 0u, 448u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 453u, 0u, 0u, 0u, 0u, 0u, 454u, 0u, 455u, 0u, 0u, 0u, + 0u, 0u, 456u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, 458u, 0u, 459u, 0u, 0u, 0u, 0u, 0u, 460u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 463u, 0u, 0u, 0u, + 0u, 0u, 464u, 0u, 465u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 467u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, 0u, 469u, 0u, 0u, 0u, 0u, + 0u, 470u, 471u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 476u, 0u, 0u, 0u, 0u, 0u, 477u, 0u, 478u, 0u, 0u, 0u, + 0u, 0u, 479u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, 485u, 0u, 486u, 0u, 0u, 0u, + 0u, 0u, 487u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, 489u, 0u, 490u, 0u, 0u, 0u, 0u, 491u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, + 0u, 0u, 0u, 494u, 0u, 0u, 0u, 0u, 0u, 495u, 496u, 0u, 497u, 0u, 0u, 0u, 0u, 0u, 498u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 501u, 0u, 0u, 0u, + 0u, 0u, 502u, 0u, 503u, 0u, 0u, 0u, 0u, 0u, 504u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 509u, 0u, 0u, 0u, + 0u, 0u, 510u, 0u, 511u, 0u, 0u, 0u, 0u, 0u, 512u, 0u, 513u, 0u, 0u, 0u, 0u, 0u, 514u, 0u, 515u, 0u, 0u, 0u, 0u, 516u, 0u, 0u, 517u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, 519u, 0u, 0u, 0u, 0u, 0u, 520u, 521u, 0u, 522u, 0u, 0u, 0u, 0u, 0u, 523u, 0u, 524u, 0u, 0u, 0u, + 0u, 0u, 525u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 527u, 0u, 528u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 532u, 0u, 0u, 0u, + 0u, 0u, 533u, 0u, 534u, 0u, 0u, 0u, 0u, 0u, 535u, 0u, 536u, 0u, 0u, 0u, 0u, 0u, 537u, 0u, 538u, 0u, 0u, 0u, 0u, 0u, 539u, 0u, 540u, 0u, 0u, 0u, + 0u, 541u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 543u, 0u, 0u, 544u, 0u, 545u, 0u, 546u, 0u, 0u, 0u, 0u, 0u, 547u, 548u, 0u, 549u, 0u, 0u, 0u, + 0u, 0u, 550u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 553u, 0u, 0u, 0u, 0u, 0u, 554u, 0u, 555u, 0u, 0u, 0u, 556u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 558u, 0u, 0u, 559u, 0u, 560u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, 562u, 563u, 0u, 564u, 0u, 0u, 0u, 0u, 0u, 565u, 0u, 566u, 0u, 0u, 0u, 0u, + 0u, 567u, 0u, 568u, 0u, 0u, 0u, 0u, 0u, 569u, 0u, 570u, 0u, 0u, 0u, 571u, 0u, 0u, 572u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 573u, 0u, 0u, 574u, + 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 576u, 0u, 0u, 577u, 0u, 578u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, 0u, 0u, 0u, 580u, 0u, 581u, 0u, 0u, 0u, 0u, 582u, + 0u, 583u, 0u, 0u, 0u, 0u, 584u, 0u, 585u, 0u, 0u, 0u, 0u, 586u, 0u, 587u, 0u, 0u, 0u, 0u, 588u, 0u, 589u, 0u, 0u, 0u, 0u, 590u, 0u, 591u, 0u, 0u, + 0u, 0u, 592u, 0u, 593u, 0u, 0u, 0u, 0u, 594u, 0u, 595u, 0u, 0u, 0u, 0u, 596u, 0u, 597u, 0u, 0u, 0u, 0u, 598u, 0u, 599u, 0u, 0u, 0u, 0u, 600u, 0u, + 601u, 0u, 0u, 0u, 0u, 602u, 0u, 603u, 0u, 0u, 0u, 0u, 604u, 0u, 605u, 0u, 0u, 0u, 0u, 606u, 0u, 607u, 0u, 0u, 0u, 0u, 608u, 0u, 609u, 0u, 0u, 0u, + 0u, 610u, 0u, 611u, 0u, 0u, 0u, 0u, 612u, 0u, 613u, 0u, 0u, 0u, 0u, 614u, 0u, 615u, 0u, 0u, 0u, 0u, 616u, 0u, 617u, 0u, 0u, 0u, 0u, 618u, 0u, 619u, + 0u, 0u, 0u, 0u, 620u, 0u, 621u, 0u, 0u, 0u, 0u, 622u, 0u, 623u, 0u, 0u, 0u, 0u, 624u, 0u, 625u, 0u, 0u, 0u, 0u, 626u, 0u, 627u, 0u, 0u, 0u, 0u, + 628u, 0u, 629u, 0u, 0u, 0u, 0u, 630u, 0u, 631u, 0u, 0u, 0u, 0u, 632u, 0u, 633u, 0u, 0u, 0u, 0u, 634u, 0u, 635u, 0u, 0u, 0u, 0u, 636u, 0u, 637u, 0u, + 0u, 0u, 0u, 638u, 0u, 639u, 0u, 0u, 0u, 0u, 640u, 0u, 641u, 0u, 0u, 0u, 0u, 642u, 0u, 643u, 0u, 0u, 0u, 0u, 644u, 0u, 645u, 0u, 0u, 0u, 0u, 646u, + 0u, 647u, 0u, 0u, 0u, 0u, 648u, 0u, 649u, 0u, 0u, 0u, 0u, 650u, 0u, 651u, 0u, 0u, 0u, 0u, 652u, 0u, 653u, 0u, 0u, 0u, 0u, 654u, 0u, 655u, 0u, 0u, + 0u, 0u, 656u, 0u, 657u, 0u, 0u, 0u, 0u, 658u, 0u, 659u, 0u, 0u, 0u, 0u, 660u, 0u, 661u, 0u, 0u, 0u, 0u, 662u, 0u, 663u, 0u, 0u, 0u, 0u, 664u, 0u, + 665u, 0u, 0u, 0u, 0u, 666u, 0u, 667u, 0u, 0u, 0u, 0u, 668u, 0u, 669u, 0u, 0u, 0u, 0u, 670u, 0u, 671u, 0u, 0u, 0u, 0u, 672u, 0u, 673u, 0u, 0u, 0u, + 0u, 674u, 0u, 675u, 0u, 0u, 0u, 0u, 676u, 0u, 677u, 0u, 0u, 0u, 0u, 678u, 0u, 679u, 0u, 0u, 0u, 0u, 680u, 0u, 681u, 0u, 0u, 0u, 0u, 682u, 0u, 683u, + 0u, 0u, 0u, 0u, 684u, 0u, 685u, 0u, 0u, 0u, 0u, 686u, 0u, 687u, 0u, 0u, 0u, 0u, 688u, 0u, 689u, 0u, 0u, 0u, 0u, 690u, 0u, 691u, 0u, 0u, 0u, 0u, + 692u, 0u, 693u, 0u, 0u, 0u, 0u, 694u, 0u, 695u, 0u, 0u, 0u, 0u, 696u, 0u, 697u, 0u, 0u, 0u, 0u, 698u, 0u, 699u, 0u, 0u, 0u, 0u, 700u, 0u, 701u, 0u, + 0u, 0u, 0u, 702u, 0u, 703u, 0u, 0u, 0u, 0u, 704u, 0u, 705u, 0u, 0u, 0u, 0u, 706u, 0u, 707u, 0u, 0u, 0u, 0u, 708u, 0u, 709u, 0u, 0u, 0u, 0u, 710u, + 0u, 711u, 0u, 0u, 0u, 0u, 712u, 0u, 713u, 0u, 0u, 0u, 0u, 714u, 0u, 715u, 0u, 0u, 0u, 0u, 716u, 0u, 717u, 0u, 0u, 0u, 0u, 718u, 0u, 719u, 0u, 0u, + 0u, 0u, 720u, 0u, 721u, 0u, 0u, 0u, 0u, 722u, 0u, 723u, 0u, 0u, 0u, 0u, 724u, 0u, 725u, 0u, 0u, 0u, 0u, 726u, 0u, 727u, 0u, 0u, 0u, 0u, 728u, 0u, + 729u, 0u, 0u, 0u, 0u, 730u, 0u, 731u, 0u, 0u, 0u, 0u, 732u, 0u, 733u, 0u, 0u, 0u, 0u, 734u, 0u, 735u, 0u, 0u, 0u, 0u, 736u, 0u, 737u, 0u, 0u, 0u, + 0u, 738u, 0u, 739u, 0u, 0u, 0u, 0u, 740u, 0u, 741u, 0u, 0u, 0u, 0u, 742u, 0u, 743u, 0u, 0u, 0u, 0u, 744u, 0u, 745u, 0u, 0u, 0u, 0u, 746u, 0u, 747u, + 0u, 0u, 0u, 0u, 748u, 0u, 749u, 0u, 0u, 0u, 0u, 750u, 0u, 751u, 0u, 0u, 0u, 0u, 752u, 0u, 753u, 0u, 0u, 0u, 0u, 754u, 0u, 755u, 0u, 0u, 0u, 0u, + 756u, 0u, 757u, 0u, 0u, 0u, 0u, 758u, 0u, 759u, 0u, 0u, 0u, 0u, 760u, 0u, 761u, 0u, 0u, 0u, 0u, 762u, 0u, 763u, 0u, 0u, 0u, 0u, 764u, 0u, 765u, 0u, + 0u, 0u, 0u, 766u, 0u, 767u, 0u, 0u, 0u, 0u, 768u, 0u, 769u, 0u, 0u, 0u, 0u, 770u, 0u, 771u, 0u, 0u, 0u, 0u, 772u, 0u, 773u, 0u, 0u, 0u, 0u, 774u, + 0u, 775u, 0u, 0u, 0u, 0u, 776u, 0u, 777u, 0u, 0u, 0u, 0u, 778u, 0u, 779u, 0u, 0u, 0u, 0u, 780u, 0u, 781u, 0u, 0u, 0u, 0u, 782u, 0u, 783u, 0u, 0u, + 0u, 0u, 784u, 0u, 785u, 0u, 0u, 0u, 0u, 786u, 0u, 787u, 0u, 0u, 0u, 0u, 788u, 0u, 789u, 0u, 0u, 0u, 0u, 790u, 0u, 791u, 0u, 0u, 0u, 0u, 792u, 0u, + 793u, 0u, 0u, 0u, 0u, 794u, 0u, 795u, 0u, 0u, 0u, 0u, 796u, 0u, 797u, 0u, 0u, 0u, 0u, 798u, 0u, 799u, 0u, 0u, 0u, 0u, 800u, 0u, 801u, 0u, 0u, 0u, + 0u, 802u, 0u, 803u, 0u, 0u, 0u, 0u, 804u, 0u, 805u, 0u, 0u, 0u, 0u, 806u, 0u, 807u, 0u, 0u, 0u, 0u, 808u, 0u, 809u, 0u, 0u, 0u, 0u, 810u, 0u, 811u, + 0u, 0u, 0u, 0u, 812u, 0u, 813u, 0u, 0u, 0u, 0u, 814u, 0u, 815u, 0u, 0u, 0u, 0u, 816u, 0u, 817u, 0u, 0u, 0u, 0u, 818u, 0u, 819u, 0u, 0u, 0u, 0u, + 820u, 0u, 821u, 0u, 0u, 0u, 0u, 822u, 0u, 823u, 0u, 0u, 0u, 0u, 824u, 0u, 825u, 0u, 0u, 0u, 0u, 826u, 0u, 827u, 0u, 0u, 0u, 0u, 828u, 0u, 829u, 0u, + 0u, 0u, 0u, 830u, 0u, 831u, 0u, 0u, 0u, 0u, 832u, 0u, 0u, 833u, 0u, 0u, 0u, 834u, 0u, 0u, 0u, 835u, 0u, 0u, 0u, 0u, 0u, 0u, 836u, 0u, 0u, 837u, + 0u, 0u, 838u, 0u, 839u, 0u, 840u, 0u, 841u, 0u, 842u, 0u, 0u, 0u, 0u, 0u, 843u, 0u, 844u, 0u, 0u, 845u, 0u, 846u, 847u, 0u, 0u, 0u, 0u, 848u, 0u, 0u, + 0u, 0u, 0u, 0u, 849u, 0u, 850u, 0u, 0u, 0u, 0u, 0u, 851u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 852u, 853u, 0u, 0u, 0u, 0u, 854u, + 0u, 855u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 856u, 0u, 857u, 0u, 0u, 858u, 0u, 0u, 0u, 0u, 0u, 859u, 0u, 0u, 860u, 0u, 0u, 0u, 0u, 0u, 861u, 0u, 0u, + 862u, 0u, 0u, 863u, 0u, 864u, 865u, 0u, 0u, 0u, 0u, 0u, 866u, 0u, 0u, 867u, 0u, 0u, 0u, 0u, 868u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 869u, 0u, 870u, + 0u, 871u, 0u, 872u, 0u, 873u, 0u, 0u, 0u, 874u, 0u, 0u, 0u, 0u, 875u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 876u, 0u, 0u, 877u, 0u, 878u, 0u, 879u, 0u, 880u, + 881u, 0u, 882u, 0u, 0u, 883u, 884u, 0u, 0u, 0u, 0u, 885u, 0u, 886u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 887u, 0u, 0u, 0u, 888u, 0u, 0u, 0u, 0u, 0u, + 0u, 889u, 0u, 0u, 890u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 891u, 0u, 0u, 0u, 892u, 0u, 893u, 0u, 0u, 0u, 894u, 0u, 0u, 0u, 895u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 896u, 0u, 897u, 0u, 0u, 0u, 0u, 898u, 0u, 0u, 899u, 0u, 900u, 0u, 0u, 901u, 902u, 0u, 0u, 0u, 0u, 0u, 903u, 0u, 0u, 0u, 0u, 0u, 0u, + 904u, 0u, 0u, 905u, 0u, 0u, 906u, 0u, 0u, 0u, 0u, 907u, 0u, 0u, 0u, 0u, 0u, 908u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 909u, 0u, 0u, 0u, 0u, 0u, 0u, + 910u, 0u, 0u, 0u, 0u, 0u, 911u, 0u, 0u, 0u, 912u, 0u, 0u, 0u, 0u, 0u, 913u, 0u, 0u, 0u, 0u, 914u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 915u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 916u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 917u, 0u, 0u, 0u, 0u, 0u, 0u, 918u, 0u, 0u, 919u, 0u, 0u, 0u, 0u, 0u, 0u, 920u, 0u, 0u, + 921u, 0u, 0u, 0u, 0u, 0u, 0u, 922u, 0u, 0u, 923u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 924u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 925u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 926u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 927u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 928u, 0u, 0u, 0u, 929u, 0u, 0u, 0u, 930u, 0u, 931u, 932u, 0u, 933u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 934u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 935u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 936u, 0u, 0u, 937u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 938u, 0u, 939u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 940u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 941u, 0u, 0u, 0u, 0u, 0u, 0u, 942u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 943u, +}; + void recomp_unit_0022_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,6,31,7,8 fprs=13,12,14,0 gpr_occ=5641 fpr_occ=256 gpr_total=7437 fpr_total=488 @@ -58,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x0885C000u; - entry_id = 0u; - if (entry_delta < 16360u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0022[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0022[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16360u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0022[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_0885C000; @@ -1021,6 +1145,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0885C000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1178,8 +1326,8 @@ L_0885C104: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C110: @@ -1203,8 +1351,8 @@ L_0885C134: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30752))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C14C: @@ -1391,8 +1539,8 @@ L_0885C2A4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C2B0: @@ -1416,8 +1564,8 @@ L_0885C2D4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30584))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C2EC: @@ -1604,8 +1752,8 @@ L_0885C444: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C450: @@ -1629,8 +1777,8 @@ L_0885C474: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30416))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C48C: @@ -1817,8 +1965,8 @@ L_0885C5E4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C5F0: @@ -1842,8 +1990,8 @@ L_0885C614: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30248))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C62C: @@ -2030,8 +2178,8 @@ L_0885C784: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C790: @@ -2055,8 +2203,8 @@ L_0885C7B4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30080))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C7CC: @@ -2243,8 +2391,8 @@ L_0885C924: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C930: @@ -2268,8 +2416,8 @@ L_0885C954: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-29912))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885C96C: @@ -2456,8 +2604,8 @@ L_0885CAC4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885CAD0: @@ -2481,8 +2629,8 @@ L_0885CAF4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-29744))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885CB0C: @@ -2652,8 +2800,8 @@ L_0885CC44: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885CC50: @@ -2677,8 +2825,8 @@ L_0885CC74: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-29576))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885CC8C: @@ -2865,8 +3013,8 @@ L_0885CDE4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885CDF0: @@ -2890,8 +3038,8 @@ L_0885CE14: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-29408))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885CE2C: @@ -3078,8 +3226,8 @@ L_0885CF84: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885CF90: @@ -3103,8 +3251,8 @@ L_0885CFB4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-29240))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885CFCC: @@ -3291,8 +3439,8 @@ L_0885D124: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D130: @@ -3316,8 +3464,8 @@ L_0885D154: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-29072))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D16C: @@ -3504,8 +3652,8 @@ L_0885D2C4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D2D0: @@ -3529,8 +3677,8 @@ L_0885D2F4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-28904))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D30C: @@ -3717,8 +3865,8 @@ L_0885D464: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D470: @@ -3742,8 +3890,8 @@ L_0885D494: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-28736))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D4AC: @@ -3930,8 +4078,8 @@ L_0885D604: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D610: @@ -3955,8 +4103,8 @@ L_0885D634: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-28568))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D64C: @@ -4143,8 +4291,8 @@ L_0885D7A4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D7B0: @@ -4168,8 +4316,8 @@ L_0885D7D4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-28400))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D7EC: @@ -4356,8 +4504,8 @@ L_0885D944: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D950: @@ -4381,8 +4529,8 @@ L_0885D974: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-28224))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885D98C: @@ -4569,8 +4717,8 @@ L_0885DAE4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885DAF0: @@ -4594,8 +4742,8 @@ L_0885DB14: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-28056))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885DB2C: @@ -4782,8 +4930,8 @@ L_0885DC84: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885DC90: @@ -4807,8 +4955,8 @@ L_0885DCB4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-27888))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885DCCC: @@ -4995,8 +5143,8 @@ L_0885DE24: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885DE30: @@ -5020,8 +5168,8 @@ L_0885DE54: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-27720))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885DE6C: @@ -5208,8 +5356,8 @@ L_0885DFC4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885DFD0: @@ -5233,8 +5381,8 @@ L_0885DFF4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-27552))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885E00C: @@ -5421,8 +5569,8 @@ L_0885E164: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885E170: @@ -5446,8 +5594,8 @@ L_0885E194: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-27384))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885E1AC: @@ -5634,8 +5782,8 @@ L_0885E304: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885E310: @@ -5757,8 +5905,8 @@ L_0885E3E0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885E3EC: @@ -5880,8 +6028,8 @@ L_0885E4BC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885E4C8: @@ -5915,8 +6063,8 @@ L_0885E4FC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-27216))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885E514: @@ -5951,8 +6099,8 @@ L_0885E534: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26648))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885E54C: @@ -5961,8 +6109,21 @@ L_0885E54C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E560u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 580u, 0x0885E560u, 0x08850180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 38u, 0x08850180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E560u) goto L_0885E560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E560: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5976,8 +6137,21 @@ L_0885E568: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E57Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 582u, 0x0885E57Cu, 0x0885025Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 53u, 0x0885025Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E57Cu) goto L_0885E57C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E57C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5991,8 +6165,21 @@ L_0885E584: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E598u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 584u, 0x0885E598u, 0x08850310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 65u, 0x08850310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E598u) goto L_0885E598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E598: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6006,8 +6193,21 @@ L_0885E5A0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E5B4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 586u, 0x0885E5B4u, 0x088504B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 90u, 0x088504B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E5B4u) goto L_0885E5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E5B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6021,8 +6221,21 @@ L_0885E5BC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E5D0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 588u, 0x0885E5D0u, 0x08850650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 115u, 0x08850650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E5D0u) goto L_0885E5D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E5D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6036,8 +6249,21 @@ L_0885E5D8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E5ECu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 590u, 0x0885E5ECu, 0x0885072Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 130u, 0x0885072Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E5ECu) goto L_0885E5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E5EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6051,8 +6277,21 @@ L_0885E5F4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E608u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 592u, 0x0885E608u, 0x088508CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 155u, 0x088508CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E608u) goto L_0885E608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E608: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6066,8 +6305,21 @@ L_0885E610: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E624u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 594u, 0x0885E624u, 0x08850A6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 180u, 0x08850A6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E624u) goto L_0885E624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E624: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6081,8 +6333,21 @@ L_0885E62C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E640u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 596u, 0x0885E640u, 0x08850C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 205u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 205u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 205u, 0x08850C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E640u) goto L_0885E640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E640: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6096,8 +6361,21 @@ L_0885E648: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E65Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 598u, 0x0885E65Cu, 0x08850DACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 230u, 0x08850DACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E65Cu) goto L_0885E65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E65C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6111,8 +6389,21 @@ L_0885E664: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E678u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 600u, 0x0885E678u, 0x08850F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 255u, 0x08850F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E678u) goto L_0885E678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E678: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6126,8 +6417,21 @@ L_0885E680: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E694u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 602u, 0x0885E694u, 0x088510ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 280u, 0x088510ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E694u) goto L_0885E694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E694: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6141,8 +6445,21 @@ L_0885E69C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E6B0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 604u, 0x0885E6B0u, 0x0885128Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 305u, 0x0885128Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E6B0u) goto L_0885E6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E6B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6156,8 +6473,21 @@ L_0885E6B8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E6CCu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 606u, 0x0885E6CCu, 0x0885142Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 330u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 330u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 330u, 0x0885142Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E6CCu) goto L_0885E6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E6CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6171,8 +6501,21 @@ L_0885E6D4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E6E8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 608u, 0x0885E6E8u, 0x088515CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 355u, 0x088515CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E6E8u) goto L_0885E6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E6E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6186,8 +6529,21 @@ L_0885E6F0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E704u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 610u, 0x0885E704u, 0x0885170Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 374u, 0x0885170Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E704u) goto L_0885E704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E704: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6201,8 +6557,21 @@ L_0885E70C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E720u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 612u, 0x0885E720u, 0x088518ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 399u, 0x088518ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E720u) goto L_0885E720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E720: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6216,8 +6585,21 @@ L_0885E728: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E73Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 614u, 0x0885E73Cu, 0x08851A4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 424u, 0x08851A4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E73Cu) goto L_0885E73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E73C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6231,8 +6613,21 @@ L_0885E744: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E758u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 616u, 0x0885E758u, 0x08851BECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 449u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 449u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 449u, 0x08851BECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E758u) goto L_0885E758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E758: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6246,8 +6641,21 @@ L_0885E760: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E774u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 618u, 0x0885E774u, 0x08851D8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 474u, 0x08851D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E774u) goto L_0885E774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E774: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6261,8 +6669,21 @@ L_0885E77C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E790u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 620u, 0x0885E790u, 0x08851F2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 499u, 0x08851F2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E790u) goto L_0885E790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E790: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6276,8 +6697,21 @@ L_0885E798: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E7ACu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 622u, 0x0885E7ACu, 0x088520CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 524u, 0x088520CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E7ACu) goto L_0885E7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E7AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6291,8 +6725,21 @@ L_0885E7B4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E7C8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 624u, 0x0885E7C8u, 0x0885226Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 549u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 549u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 549u, 0x0885226Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E7C8u) goto L_0885E7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E7C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6306,8 +6753,21 @@ L_0885E7D0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E7E4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 626u, 0x0885E7E4u, 0x0885240Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 574u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 574u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 574u, 0x0885240Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E7E4u) goto L_0885E7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E7E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6321,8 +6781,21 @@ L_0885E7EC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E800u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 628u, 0x0885E800u, 0x088525ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 599u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 599u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 599u, 0x088525ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E800u) goto L_0885E800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E800: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6336,8 +6809,21 @@ L_0885E808: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E81Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 630u, 0x0885E81Cu, 0x0885274Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 624u, 0x0885274Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E81Cu) goto L_0885E81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E81C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6351,8 +6837,21 @@ L_0885E824: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E838u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 632u, 0x0885E838u, 0x088529C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 664u, 0x088529C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E838u) goto L_0885E838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E838: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6366,8 +6865,21 @@ L_0885E840: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E854u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 634u, 0x0885E854u, 0x08852B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 689u, 0x08852B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E854u) goto L_0885E854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E854: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6381,8 +6893,21 @@ L_0885E85C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E870u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 636u, 0x0885E870u, 0x08853424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 824u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 824u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 824u, 0x08853424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E870u) goto L_0885E870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E870: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6396,8 +6921,21 @@ L_0885E878: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E88Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 638u, 0x0885E88Cu, 0x088535C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 849u, 0x088535C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E88Cu) goto L_0885E88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E88C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6411,8 +6949,21 @@ L_0885E894: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E8A8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 640u, 0x0885E8A8u, 0x0885391Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 904u, 0x0885391Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E8A8u) goto L_0885E8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E8A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6426,8 +6977,21 @@ L_0885E8B0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E8C4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 642u, 0x0885E8C4u, 0x088539F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 919u, 0x088539F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E8C4u) goto L_0885E8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E8C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6441,8 +7005,21 @@ L_0885E8CC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E8E0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 644u, 0x0885E8E0u, 0x08853B98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 944u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 944u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 944u, 0x08853B98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E8E0u) goto L_0885E8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E8E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6456,8 +7033,21 @@ L_0885E8E8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E8FCu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 646u, 0x0885E8FCu, 0x08854044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 7u, 0x08854044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E8FCu) goto L_0885E8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E8FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6471,8 +7061,21 @@ L_0885E904: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E918u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 648u, 0x0885E918u, 0x088541C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 30u, 0x088541C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E918u) goto L_0885E918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E918: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6486,8 +7089,21 @@ L_0885E920: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E934u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 650u, 0x0885E934u, 0x088542A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 45u, 0x088542A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E934u) goto L_0885E934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E934: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6501,8 +7117,21 @@ L_0885E93C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E950u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 652u, 0x0885E950u, 0x08854440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 70u, 0x08854440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E950u) goto L_0885E950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E950: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6516,8 +7145,21 @@ L_0885E958: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E96Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 654u, 0x0885E96Cu, 0x0885487Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 139u, 0x0885487Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E96Cu) goto L_0885E96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E96C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6531,8 +7173,21 @@ L_0885E974: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E988u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 656u, 0x0885E988u, 0x08854A1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 164u, 0x08854A1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E988u) goto L_0885E988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E988: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6546,8 +7201,21 @@ L_0885E990: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E9A4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 658u, 0x0885E9A4u, 0x08854B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 187u, 0x08854B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E9A4u) goto L_0885E9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E9A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6561,8 +7229,21 @@ L_0885E9AC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E9C0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 660u, 0x0885E9C0u, 0x08854D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 212u, 0x08854D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E9C0u) goto L_0885E9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E9C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6576,8 +7257,21 @@ L_0885E9C8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E9DCu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 662u, 0x0885E9DCu, 0x08854EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 237u, 0x08854EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E9DCu) goto L_0885E9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E9DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6591,8 +7285,21 @@ L_0885E9E4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885E9F8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 664u, 0x0885E9F8u, 0x0885507Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 262u, 0x0885507Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885E9F8u) goto L_0885E9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885E9F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6606,8 +7313,21 @@ L_0885EA00: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EA14u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 666u, 0x0885EA14u, 0x0885521Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 287u, 0x0885521Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EA14u) goto L_0885EA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EA14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6621,8 +7341,21 @@ L_0885EA1C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EA30u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 668u, 0x0885EA30u, 0x088553BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 312u, 0x088553BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EA30u) goto L_0885EA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EA30: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6636,8 +7369,21 @@ L_0885EA38: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EA4Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 670u, 0x0885EA4Cu, 0x0885555Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 337u, 0x0885555Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EA4Cu) goto L_0885EA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EA4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6651,8 +7397,21 @@ L_0885EA54: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EA68u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 672u, 0x0885EA68u, 0x088556FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 362u, 0x088556FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EA68u) goto L_0885EA68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EA68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6666,8 +7425,21 @@ L_0885EA70: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EA84u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 674u, 0x0885EA84u, 0x0885589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 387u, 0x0885589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EA84u) goto L_0885EA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EA84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6681,8 +7453,21 @@ L_0885EA8C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EAA0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 676u, 0x0885EAA0u, 0x08855A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 412u, 0x08855A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EAA0u) goto L_0885EAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EAA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6696,8 +7481,21 @@ L_0885EAA8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EABCu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 678u, 0x0885EABCu, 0x08855BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 437u, 0x08855BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EABCu) goto L_0885EABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EABC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6711,8 +7509,21 @@ L_0885EAC4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EAD8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 680u, 0x0885EAD8u, 0x08855FF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 505u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 505u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 505u, 0x08855FF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EAD8u) goto L_0885EAD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EAD8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6726,8 +7537,21 @@ L_0885EAE0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EAF4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 682u, 0x0885EAF4u, 0x08856190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 530u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 530u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 530u, 0x08856190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EAF4u) goto L_0885EAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EAF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6741,8 +7565,21 @@ L_0885EAFC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EB10u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 684u, 0x0885EB10u, 0x08856330u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 555u, 0x08856330u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EB10u) goto L_0885EB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EB10: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6756,8 +7593,21 @@ L_0885EB18: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EB2Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 686u, 0x0885EB2Cu, 0x088564D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 580u, 0x088564D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EB2Cu) goto L_0885EB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EB2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6771,8 +7621,21 @@ L_0885EB34: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EB48u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 688u, 0x0885EB48u, 0x08856650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 603u, 0x08856650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EB48u) goto L_0885EB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EB48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6786,8 +7649,21 @@ L_0885EB50: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EB64u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 690u, 0x0885EB64u, 0x088567F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 628u, 0x088567F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EB64u) goto L_0885EB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EB64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6801,8 +7677,21 @@ L_0885EB6C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EB80u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 692u, 0x0885EB80u, 0x08856990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 653u, 0x08856990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EB80u) goto L_0885EB80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EB80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6816,8 +7705,21 @@ L_0885EB88: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EB9Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 694u, 0x0885EB9Cu, 0x08856B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 678u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 678u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 678u, 0x08856B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EB9Cu) goto L_0885EB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EB9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6831,8 +7733,21 @@ L_0885EBA4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EBB8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 696u, 0x0885EBB8u, 0x08856CD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 703u, 0x08856CD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EBB8u) goto L_0885EBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EBB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6846,8 +7761,21 @@ L_0885EBC0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EBD4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 698u, 0x0885EBD4u, 0x08856F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 743u, 0x08856F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EBD4u) goto L_0885EBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EBD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6861,8 +7789,21 @@ L_0885EBDC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EBF0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 700u, 0x0885EBF0u, 0x088571E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 788u, 0x088571E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EBF0u) goto L_0885EBF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EBF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6876,8 +7817,21 @@ L_0885EBF8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EC0Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 702u, 0x0885EC0Cu, 0x08857380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 813u, 0x08857380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EC0Cu) goto L_0885EC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EC0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6891,8 +7845,21 @@ L_0885EC14: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EC28u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 704u, 0x0885EC28u, 0x08857520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 838u, 0x08857520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EC28u) goto L_0885EC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EC28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6906,8 +7873,21 @@ L_0885EC30: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EC44u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 706u, 0x0885EC44u, 0x088575FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 853u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 853u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 853u, 0x088575FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EC44u) goto L_0885EC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EC44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6921,8 +7901,21 @@ L_0885EC4C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EC60u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 708u, 0x0885EC60u, 0x0885779Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 878u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 878u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 878u, 0x0885779Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EC60u) goto L_0885EC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EC60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6936,8 +7929,21 @@ L_0885EC68: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EC7Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 710u, 0x0885EC7Cu, 0x0885793Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 903u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 903u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 903u, 0x0885793Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EC7Cu) goto L_0885EC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EC7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6951,8 +7957,21 @@ L_0885EC84: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EC98u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 712u, 0x0885EC98u, 0x08857A18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 918u, 0x08857A18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EC98u) goto L_0885EC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EC98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6966,8 +7985,21 @@ L_0885ECA0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ECB4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 714u, 0x0885ECB4u, 0x08857BB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 943u, 0x08857BB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ECB4u) goto L_0885ECB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ECB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6981,8 +8013,21 @@ L_0885ECBC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ECD0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 716u, 0x0885ECD0u, 0x08857D38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 966u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 966u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 966u, 0x08857D38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ECD0u) goto L_0885ECD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ECD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6996,8 +8041,21 @@ L_0885ECD8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ECECu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 718u, 0x0885ECECu, 0x08857E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 981u, 0x08857E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ECECu) goto L_0885ECEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ECEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7011,8 +8069,21 @@ L_0885ECF4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ED08u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 720u, 0x0885ED08u, 0x08857FB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 1006u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 1006u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 1006u, 0x08857FB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ED08u) goto L_0885ED08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ED08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7026,8 +8097,21 @@ L_0885ED10: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ED24u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 722u, 0x0885ED24u, 0x0885838Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 62u, 0x0885838Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ED24u) goto L_0885ED24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ED24: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7041,8 +8125,21 @@ L_0885ED2C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ED40u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 724u, 0x0885ED40u, 0x08858468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 77u, 0x08858468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ED40u) goto L_0885ED40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ED40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7056,8 +8153,21 @@ L_0885ED48: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ED5Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 726u, 0x0885ED5Cu, 0x08858544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 92u, 0x08858544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ED5Cu) goto L_0885ED5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ED5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7071,8 +8181,21 @@ L_0885ED64: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ED78u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 728u, 0x0885ED78u, 0x08858620u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 107u, 0x08858620u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ED78u) goto L_0885ED78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ED78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7086,8 +8209,21 @@ L_0885ED80: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885ED94u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 730u, 0x0885ED94u, 0x088587D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 137u, 0x088587D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885ED94u) goto L_0885ED94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885ED94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7101,8 +8237,21 @@ L_0885ED9C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EDB0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 732u, 0x0885EDB0u, 0x08858978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 162u, 0x08858978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EDB0u) goto L_0885EDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EDB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7116,8 +8265,21 @@ L_0885EDB8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EDCCu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 734u, 0x0885EDCCu, 0x08858B18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 187u, 0x08858B18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EDCCu) goto L_0885EDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EDCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7131,8 +8293,21 @@ L_0885EDD4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EDE8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 736u, 0x0885EDE8u, 0x08858B74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 192u, 0x08858B74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EDE8u) goto L_0885EDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EDE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7146,8 +8321,21 @@ L_0885EDF0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EE04u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 738u, 0x0885EE04u, 0x08858BD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 197u, 0x08858BD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EE04u) goto L_0885EE04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EE04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7161,8 +8349,21 @@ L_0885EE0C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EE20u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 740u, 0x0885EE20u, 0x08858C2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 202u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 202u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 202u, 0x08858C2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EE20u) goto L_0885EE20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EE20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7176,8 +8377,21 @@ L_0885EE28: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EE3Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 742u, 0x0885EE3Cu, 0x088599F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 441u, 0x088599F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EE3Cu) goto L_0885EE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EE3C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7191,8 +8405,21 @@ L_0885EE44: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EE58u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 744u, 0x0885EE58u, 0x08859AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 456u, 0x08859AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EE58u) goto L_0885EE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EE58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7206,8 +8433,21 @@ L_0885EE60: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EE74u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 746u, 0x0885EE74u, 0x08859C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 483u, 0x08859C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EE74u) goto L_0885EE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EE74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7221,8 +8461,21 @@ L_0885EE7C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EE90u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 748u, 0x0885EE90u, 0x08859E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 510u, 0x08859E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EE90u) goto L_0885EE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EE90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7236,8 +8489,21 @@ L_0885EE98: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EEACu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 750u, 0x0885EEACu, 0x08859FF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 535u, 0x08859FF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EEACu) goto L_0885EEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EEAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7251,8 +8517,21 @@ L_0885EEB4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EEC8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 752u, 0x0885EEC8u, 0x0885A154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 556u, 0x0885A154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EEC8u) goto L_0885EEC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EEC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7266,8 +8545,21 @@ L_0885EED0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EEE4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 754u, 0x0885EEE4u, 0x0885A314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 583u, 0x0885A314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EEE4u) goto L_0885EEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EEE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7281,8 +8573,21 @@ L_0885EEEC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EF00u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 756u, 0x0885EF00u, 0x0885A4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 610u, 0x0885A4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EF00u) goto L_0885EF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EF00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7296,8 +8601,21 @@ L_0885EF08: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EF1Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 758u, 0x0885EF1Cu, 0x0885A674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 635u, 0x0885A674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EF1Cu) goto L_0885EF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EF1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7311,8 +8629,21 @@ L_0885EF24: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EF38u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 760u, 0x0885EF38u, 0x0885A7D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 656u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 656u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 656u, 0x0885A7D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EF38u) goto L_0885EF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EF38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7326,8 +8657,21 @@ L_0885EF40: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EF54u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 762u, 0x0885EF54u, 0x0885A994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 683u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 683u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 683u, 0x0885A994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EF54u) goto L_0885EF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EF54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7341,8 +8685,21 @@ L_0885EF5C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EF70u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 764u, 0x0885EF70u, 0x0885AB54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 710u, 0x0885AB54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EF70u) goto L_0885EF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EF70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7356,8 +8713,21 @@ L_0885EF78: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EF8Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 766u, 0x0885EF8Cu, 0x0885ACF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 735u, 0x0885ACF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EF8Cu) goto L_0885EF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EF8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7371,8 +8741,21 @@ L_0885EF94: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EFA8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 768u, 0x0885EFA8u, 0x0885AF30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 771u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 771u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 771u, 0x0885AF30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EFA8u) goto L_0885EFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EFA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7386,8 +8769,21 @@ L_0885EFB0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EFC4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 770u, 0x0885EFC4u, 0x0885B0D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 796u, 0x0885B0D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EFC4u) goto L_0885EFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EFC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7401,8 +8797,21 @@ L_0885EFCC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EFE0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 772u, 0x0885EFE0u, 0x0885B270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 821u, 0x0885B270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EFE0u) goto L_0885EFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EFE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7416,8 +8825,21 @@ L_0885EFE8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885EFFCu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 774u, 0x0885EFFCu, 0x0885B410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 846u, 0x0885B410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885EFFCu) goto L_0885EFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885EFFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7431,8 +8853,21 @@ L_0885F004: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885F018u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 776u, 0x0885F018u, 0x0885B5B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 871u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 871u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 871u, 0x0885B5B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F018u) goto L_0885F018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F018: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7446,8 +8881,21 @@ L_0885F020: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885F034u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 778u, 0x0885F034u, 0x0885B750u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 896u, 0x0885B750u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F034u) goto L_0885F034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F034: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7461,8 +8909,21 @@ L_0885F03C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885F050u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 780u, 0x0885F050u, 0x0885B8F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 921u, 0x0885B8F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F050u) goto L_0885F050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F050: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7476,8 +8937,21 @@ L_0885F058: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885F06Cu); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 782u, 0x0885F06Cu, 0x0885BA90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 946u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 946u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 946u, 0x0885BA90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F06Cu) goto L_0885F06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F06C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7491,8 +8965,21 @@ L_0885F074: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885F088u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 784u, 0x0885F088u, 0x0885BC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 971u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 971u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 971u, 0x0885BC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F088u) goto L_0885F088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F088: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7506,8 +8993,21 @@ L_0885F090: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885F0A4u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 786u, 0x0885F0A4u, 0x0885BDD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 996u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 996u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 996u, 0x0885BDD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F0A4u) goto L_0885F0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F0A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7521,8 +9021,21 @@ L_0885F0AC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0885F0C0u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 788u, 0x0885F0C0u, 0x0885BF70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 1021u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 1021u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 1021u, 0x0885BF70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F0C0u) goto L_0885F0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F0C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7835,23 +9348,36 @@ L_0885F328: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F334: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-16)); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0885F344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 834u, 0x0885F344u, 0x08969514u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 288u, 0x08969514u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F344u) goto L_0885F344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F344: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F354: @@ -7870,14 +9396,40 @@ L_0885F370: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0885F37Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 837u, 0x0885F37Cu, 0x089D8908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 113u, 0x089D8908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F37Cu) goto L_0885F37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F37C: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0885F388u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 838u, 0x0885F388u, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F388u) goto L_0885F388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F388: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7903,8 +9455,21 @@ L_0885F398: L_0885F3A0: aot_gpr_31 = (0x0885F3A8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 842u, 0x0885F3A8u, 0x0889EB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 629u, 0x0889EB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F3A8u) goto L_0885F3A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F3A8: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2182u << 16u); @@ -7912,19 +9477,58 @@ L_0885F3A8: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0885F3C0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-3276)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 843u, 0x0885F3C0u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F3C0u) goto L_0885F3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F3C0: aot_gpr_31 = (0x0885F3C8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 844u, 0x0885F3C8u, 0x0889E9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 609u, 0x0889E9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F3C8u) goto L_0885F3C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F3C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0885F3D4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 845u, 0x0885F3D4u, 0x08969500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 286u, 0x08969500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F3D4u) goto L_0885F3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F3D4: aot_gpr_4 = (0u | 12288u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), aot_gpr_4); @@ -7941,8 +9545,8 @@ L_0885F3E0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F3F4: @@ -8034,8 +9638,21 @@ L_0885F430: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0885F464u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 852u, 0x0885F464u, 0x0887F39Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 700u, 0x0887F39Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F464u) goto L_0885F464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F464: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_0885F468; @@ -8048,15 +9665,15 @@ L_0885F468: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F47C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F484: @@ -8074,14 +9691,40 @@ L_0885F484: } L_0885F4A4: aot_gpr_31 = (0x0885F4ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 857u, 0x0885F4ACu, 0x0887F5C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 726u, 0x0887F5C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F4ACu) goto L_0885F4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F4AC: aot_gpr_4 = (ctx.gpr[16] + static_cast(40)); aot_gpr_31 = (0x0885F4B8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 858u, 0x0885F4B8u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F4B8u) goto L_0885F4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F4B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(88)); @@ -8097,8 +9740,21 @@ L_0885F4D0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(40), 0u); aot_gpr_31 = (0x0885F4DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 860u, 0x0885F4DCu, 0x088DF860u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 476u, 0x088DF860u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F4DCu) goto L_0885F4DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F4DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(72)); @@ -8147,8 +9803,21 @@ L_0885F530: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0885F53Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 867u, 0x0885F53Cu, 0x0893EDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 696u, 0x0893EDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F53Cu) goto L_0885F53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F53C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -8158,8 +9827,8 @@ L_0885F53C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F550: @@ -8172,8 +9841,21 @@ L_0885F550: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0885F574u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 869u, 0x0885F574u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F574u) goto L_0885F574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F574: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8196,15 +9878,41 @@ L_0885F584: L_0885F58C: aot_gpr_31 = (0x0885F594u); aot_gpr_4 = (ctx.gpr[2] + static_cast(1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 873u, 0x0885F594u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F594u) goto L_0885F594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F594: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(44), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0885F5A4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 874u, 0x0885F5A4u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F5A4u) goto L_0885F5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F5A4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -8214,8 +9922,8 @@ L_0885F5A4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F5B8: @@ -8264,8 +9972,21 @@ L_0885F5FC: L_0885F600: aot_gpr_31 = (0x0885F608u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(44))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 882u, 0x0885F608u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F608u) goto L_0885F608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F608: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(44))); aot_gpr_31 = (0x0885F614u); @@ -8284,15 +10005,15 @@ L_0885F618: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F62C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F634: @@ -8305,15 +10026,28 @@ L_0885F634: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0885F658u); aot_gpr_5 = (aot_gpr_5 + static_cast(-2328)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 887u, 0x0885F658u, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F658u) goto L_0885F658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F658: ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(8))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F668: @@ -8324,14 +10058,27 @@ L_0885F668: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0885F684u); aot_gpr_5 = (aot_gpr_5 + static_cast(-2204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 889u, 0x0885F684u, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F684u) goto L_0885F684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F684: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F690: @@ -8343,34 +10090,86 @@ L_0885F690: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0885F6B0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 891u, 0x0885F6B0u, 0x08A536B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 642u, 0x08A536B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F6B0u) goto L_0885F6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F6B0: aot_gpr_4 = (ctx.gpr[16] + static_cast(12)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x0885F6C0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 892u, 0x0885F6C0u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F6C0u) goto L_0885F6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F6C0: aot_gpr_31 = (0x0885F6C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 893u, 0x0885F6C8u, 0x0887F59Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 724u, 0x0887F59Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F6C8u) goto L_0885F6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F6C8: aot_gpr_4 = (ctx.gpr[16] + static_cast(40)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x0885F6D8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 894u, 0x0885F6D8u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F6D8u) goto L_0885F6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F6D8: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F6E8: @@ -8383,8 +10182,21 @@ L_0885F6E8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0885F70Cu); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 896u, 0x0885F70Cu, 0x089452FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 189u, 0x089452FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F70Cu) goto L_0885F70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F70C: { const bool branch_taken = ctx.gpr[18] == ctx.gpr[2]; if (branch_taken) { @@ -8398,8 +10210,21 @@ L_0885F714: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0885F728u); aot_gpr_5 = (aot_gpr_5 + static_cast(-2328)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 898u, 0x0885F728u, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F728u) goto L_0885F728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F728: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8438,8 +10263,8 @@ L_0885F74C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F764: @@ -8450,8 +10275,21 @@ L_0885F764: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0885F780u); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 904u, 0x0885F780u, 0x089452FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 189u, 0x089452FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F780u) goto L_0885F780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F780: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -8471,8 +10309,21 @@ L_0885F798: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0885F7ACu); aot_gpr_5 = (aot_gpr_5 + static_cast(-2204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 907u, 0x0885F7ACu, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F7ACu) goto L_0885F7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F7AC: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8483,8 +10334,8 @@ L_0885F7AC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F7C4: @@ -8496,8 +10347,21 @@ L_0885F7C4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0885F7E4u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 909u, 0x0885F7E4u, 0x088DF69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 451u, 0x088DF69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F7E4u) goto L_0885F7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F7E4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20576)); @@ -8515,15 +10379,28 @@ L_0885F800: aot_gpr_7 = (0u | 40u); aot_gpr_31 = (0x0885F818u); aot_gpr_5 = (aot_gpr_5 + static_cast(-26576)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 911u, 0x0885F818u, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F818u) goto L_0885F818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F818: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F828: @@ -8533,16 +10410,29 @@ L_0885F828: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0885F840u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(64), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0022->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0022_entry, 913u, 0x0885F840u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0885F840u) goto L_0885F840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0885F840: ctx.gpr[2] = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F854: @@ -8577,8 +10467,8 @@ L_0885F854: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F8C8: @@ -8613,8 +10503,8 @@ L_0885F8C8: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_14), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_13)}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(32), aot_run_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F93C: @@ -8649,8 +10539,8 @@ L_0885F93C: aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F9B0: @@ -8666,8 +10556,8 @@ L_0885F9CC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885F9D8: @@ -8683,8 +10573,8 @@ L_0885F9F4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FA00: @@ -8700,8 +10590,8 @@ L_0885FA1C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FA28: @@ -8792,8 +10682,8 @@ L_0885FA28: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(48), aot_run_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FB5C: @@ -8856,8 +10746,8 @@ L_0885FB5C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(52), std::bit_cast(ctx.fpr[2])); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FC3C: @@ -8920,8 +10810,8 @@ L_0885FC3C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), std::bit_cast(ctx.fpr[1])); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FD1C: @@ -8984,8 +10874,8 @@ L_0885FD1C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), std::bit_cast(ctx.fpr[2])); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(52), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FDFC: @@ -9098,8 +10988,8 @@ L_0885FE44: goto L_0885FE48; L_0885FE48: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FE50: @@ -9161,8 +11051,8 @@ L_0885FE50: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FE8C: @@ -9224,8 +11114,8 @@ L_0885FE8C: const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FEC8: @@ -9335,8 +11225,8 @@ L_0885FEC8: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FF14: @@ -9401,14 +11291,14 @@ L_0885FF20: const std::uint32_t vfpu_address = aot_gpr_6 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FF40: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FF48: @@ -9466,8 +11356,8 @@ L_0885FF48: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FF78: @@ -9489,8 +11379,8 @@ L_0885FF78: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FF98: @@ -9508,8 +11398,8 @@ L_0885FF98: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(32); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FFB4: @@ -9535,8 +11425,8 @@ L_0885FFB4: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0885FFE4: diff --git a/profiles/vcs/generated/generated_unit_0023.cpp b/profiles/vcs/generated/generated_unit_0023.cpp index 298e210..3c5c05d 100644 --- a/profiles/vcs/generated/generated_unit_0023.cpp +++ b/profiles/vcs/generated/generated_unit_0023.cpp @@ -32,6 +32,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0023[64] = { 324u, 333u, 344u, 355u, 370u, 381u, 399u, 416u, 426u, 436u, 447u, 455u, 469u, 482u, 504u, 530u, 558u, 579u, 585u, 591u, 602u, 618u, 633u, 647u, 664u, 675u, 691u, 714u, 731u, 749u, 769u, 787u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0023[4095] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 8u, 0u, 0u, 0u, 9u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, + 12u, 0u, 0u, 0u, 13u, 0u, 14u, 15u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 17u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 21u, 0u, 22u, 0u, 23u, 0u, 0u, 24u, 0u, 0u, 25u, 0u, 26u, 0u, 27u, 0u, 28u, 0u, + 0u, 0u, 0u, 0u, 29u, 0u, 0u, 30u, 0u, 0u, 31u, 0u, 0u, 32u, 0u, 33u, 0u, 34u, 0u, 35u, 0u, 36u, 0u, 0u, 37u, 0u, 38u, 0u, 39u, 0u, 40u, 0u, + 0u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 42u, 0u, 0u, 43u, 0u, 0u, 44u, 0u, 45u, 0u, 46u, 0u, 47u, 0u, 0u, 48u, 0u, 49u, 0u, 50u, 0u, 51u, 0u, 52u, + 0u, 0u, 53u, 0u, 0u, 0u, 0u, 0u, 54u, 0u, 55u, 0u, 56u, 0u, 0u, 0u, 57u, 0u, 0u, 58u, 0u, 0u, 59u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 60u, 0u, 0u, 0u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 63u, 0u, 64u, 0u, 65u, 0u, 66u, 67u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 68u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 70u, 0u, 0u, 0u, 71u, 0u, 0u, 72u, 0u, 0u, 0u, 73u, 74u, 0u, 75u, 0u, + 0u, 0u, 0u, 76u, 0u, 77u, 0u, 78u, 0u, 0u, 0u, 79u, 0u, 0u, 80u, 0u, 81u, 0u, 82u, 0u, 0u, 83u, 0u, 84u, 0u, 0u, 0u, 85u, 0u, 0u, 86u, 0u, + 87u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 89u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, 0u, 93u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 94u, 0u, 95u, 0u, 96u, 0u, 0u, 97u, 0u, 98u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 100u, 101u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 102u, 0u, 0u, 0u, 103u, 0u, 104u, 0u, 105u, 0u, 0u, 0u, 106u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 107u, 0u, 0u, 108u, 0u, 0u, 109u, 0u, 110u, 0u, 0u, 0u, + 0u, 0u, 111u, 0u, 0u, 0u, 0u, 0u, 112u, 0u, 0u, 0u, 0u, 113u, 0u, 0u, 0u, 114u, 0u, 0u, 0u, 115u, 0u, 0u, 116u, 0u, 0u, 0u, 0u, 117u, 0u, 0u, + 0u, 118u, 0u, 119u, 0u, 0u, 0u, 120u, 0u, 0u, 121u, 0u, 0u, 0u, 0u, 122u, 0u, 0u, 123u, 0u, 0u, 124u, 0u, 125u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 127u, + 0u, 0u, 0u, 128u, 0u, 129u, 130u, 0u, 131u, 0u, 0u, 0u, 132u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 135u, 0u, 136u, 137u, 0u, 0u, 0u, 138u, + 0u, 139u, 0u, 140u, 0u, 0u, 141u, 0u, 0u, 0u, 142u, 0u, 143u, 144u, 0u, 145u, 146u, 0u, 147u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 150u, 0u, 0u, 0u, 0u, 0u, 151u, 0u, 152u, 0u, 0u, 0u, 0u, 0u, 153u, 0u, 154u, 0u, 0u, 0u, 155u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 156u, + 0u, 157u, 0u, 158u, 0u, 0u, 159u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 161u, 0u, 162u, 0u, 0u, 163u, 0u, 0u, 0u, 164u, 0u, 165u, 0u, + 166u, 0u, 0u, 167u, 0u, 168u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 0u, 0u, 0u, 170u, 0u, 171u, 0u, 172u, 0u, 0u, 0u, 0u, 0u, 0u, 173u, 174u, 0u, 175u, 0u, + 0u, 0u, 176u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, 178u, 0u, 179u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 181u, 0u, 182u, 0u, 0u, 183u, 0u, 184u, 0u, 185u, 0u, + 186u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 188u, 0u, 0u, 0u, 0u, 0u, 189u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 191u, 0u, 0u, 192u, 0u, 0u, 193u, 0u, 194u, + 0u, 0u, 195u, 0u, 0u, 196u, 0u, 0u, 197u, 0u, 198u, 0u, 0u, 199u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 204u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 0u, 206u, 0u, 207u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, 0u, 210u, 0u, + 211u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 215u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 216u, 0u, 217u, 0u, 218u, 0u, 219u, 0u, 220u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 224u, 0u, 225u, + 226u, 0u, 0u, 227u, 0u, 228u, 0u, 229u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 231u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, 233u, 0u, 0u, 0u, 0u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 239u, 0u, 0u, 0u, 0u, 0u, 0u, 240u, 0u, 0u, 241u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 242u, 243u, 244u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 247u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 249u, 0u, 0u, 250u, 0u, 251u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 253u, 0u, 0u, 254u, 0u, 255u, 0u, 0u, 0u, 256u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 0u, 259u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 0u, 261u, 0u, 262u, 0u, 0u, 0u, 263u, 0u, 0u, 0u, 264u, 0u, 265u, + 0u, 266u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 268u, 0u, 269u, 0u, 270u, 0u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 272u, 0u, 273u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 274u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 277u, 0u, 0u, 0u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 279u, 0u, 280u, 0u, + 0u, 281u, 0u, 0u, 282u, 0u, 0u, 0u, 0u, 283u, 0u, 284u, 285u, 0u, 286u, 0u, 0u, 0u, 287u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 288u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 291u, 292u, 0u, 0u, 293u, 0u, + 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 296u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 297u, 0u, 0u, 0u, 0u, 298u, 0u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 300u, 0u, 0u, 0u, 0u, 301u, 0u, 302u, 0u, 0u, 0u, 303u, 0u, 304u, 0u, 0u, 0u, 305u, + 0u, 306u, 0u, 307u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 309u, 310u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 312u, 0u, 313u, 0u, 0u, 314u, + 0u, 0u, 0u, 0u, 0u, 315u, 0u, 0u, 316u, 0u, 317u, 0u, 0u, 0u, 0u, 318u, 0u, 319u, 0u, 0u, 0u, 0u, 320u, 0u, 321u, 322u, 0u, 0u, 0u, 0u, 323u, 0u, + 0u, 0u, 324u, 0u, 325u, 0u, 326u, 0u, 0u, 0u, 0u, 327u, 328u, 0u, 329u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 333u, 0u, 0u, 334u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, 0u, 336u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 338u, 0u, 339u, 340u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 346u, 347u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 349u, + 0u, 350u, 0u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 0u, 0u, 0u, 354u, 0u, 0u, + 0u, 0u, 0u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, 0u, 358u, 0u, 359u, 360u, 0u, + 0u, 0u, 0u, 0u, 0u, 361u, 0u, 0u, 362u, 0u, 363u, 0u, 364u, 0u, 0u, 0u, 0u, 365u, 366u, 0u, 367u, 0u, 0u, 0u, 368u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 370u, 0u, 0u, 0u, 371u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 374u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 0u, 377u, 0u, 0u, 378u, 0u, 0u, 0u, 379u, 0u, 0u, 0u, 380u, 0u, 0u, + 0u, 0u, 0u, 0u, 381u, 0u, 0u, 0u, 0u, 382u, 0u, 383u, 0u, 384u, 0u, 385u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 387u, 0u, 0u, 388u, 389u, 390u, 0u, 391u, 0u, + 0u, 0u, 0u, 392u, 0u, 0u, 0u, 0u, 0u, 0u, 393u, 394u, 0u, 0u, 0u, 0u, 0u, 395u, 0u, 0u, 396u, 0u, 397u, 0u, 0u, 0u, 398u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 399u, 0u, 0u, 400u, 401u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 402u, 0u, 0u, 403u, 0u, 404u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 405u, 0u, 406u, 0u, 0u, 407u, 408u, 0u, 0u, 409u, 0u, 0u, 410u, 0u, 0u, 411u, 0u, 412u, 0u, 413u, 0u, 414u, 0u, 415u, 0u, + 0u, 0u, 0u, 0u, 416u, 417u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 421u, 0u, 0u, 422u, 0u, + 0u, 0u, 0u, 0u, 0u, 423u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 426u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 427u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, + 429u, 430u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, 433u, 0u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 435u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, + 0u, 0u, 439u, 0u, 0u, 0u, 0u, 440u, 0u, 441u, 442u, 0u, 443u, 0u, 0u, 0u, 0u, 444u, 0u, 445u, 0u, 0u, 0u, 0u, 446u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 0u, 449u, 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, 452u, 0u, 453u, 454u, 0u, + 0u, 0u, 0u, 0u, 455u, 456u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 458u, 459u, 0u, 0u, 0u, 0u, 460u, 461u, 0u, 462u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 463u, 464u, 0u, 0u, 0u, 0u, 465u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 468u, 0u, 0u, 0u, 0u, 0u, + 469u, 0u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 472u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 0u, 474u, 0u, 0u, 475u, 0u, + 0u, 0u, 0u, 0u, 476u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 477u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 480u, 0u, 0u, 0u, 481u, 0u, + 0u, 0u, 0u, 482u, 483u, 0u, 484u, 0u, 485u, 0u, 0u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 0u, 0u, 0u, 488u, 0u, 0u, 489u, 0u, 0u, + 0u, 0u, 0u, 490u, 0u, 491u, 0u, 492u, 0u, 493u, 0u, 494u, 0u, 495u, 0u, 496u, 0u, 497u, 0u, 498u, 0u, 499u, 0u, 500u, 0u, 501u, 0u, 0u, 502u, 0u, 503u, 0u, + 0u, 504u, 0u, 505u, 0u, 0u, 506u, 0u, 507u, 0u, 0u, 508u, 0u, 509u, 0u, 510u, 0u, 511u, 0u, 512u, 0u, 513u, 0u, 514u, 0u, 515u, 0u, 516u, 517u, 0u, 0u, 0u, + 518u, 0u, 0u, 519u, 0u, 0u, 520u, 0u, 521u, 0u, 522u, 0u, 0u, 523u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 525u, 0u, 526u, 0u, 527u, 0u, 0u, 528u, 0u, 0u, 529u, + 0u, 0u, 0u, 0u, 0u, 530u, 0u, 531u, 0u, 532u, 533u, 0u, 534u, 0u, 0u, 0u, 535u, 0u, 0u, 536u, 0u, 0u, 537u, 0u, 538u, 0u, 539u, 0u, 540u, 0u, 541u, 0u, + 542u, 0u, 543u, 0u, 0u, 544u, 0u, 545u, 0u, 546u, 0u, 547u, 0u, 548u, 0u, 549u, 0u, 550u, 0u, 551u, 0u, 552u, 0u, 553u, 0u, 554u, 0u, 555u, 0u, 556u, 0u, 557u, + 0u, 558u, 0u, 559u, 0u, 560u, 0u, 561u, 562u, 0u, 563u, 0u, 0u, 0u, 564u, 0u, 0u, 0u, 0u, 0u, 565u, 0u, 566u, 0u, 567u, 0u, 568u, 0u, 569u, 0u, 570u, 0u, + 571u, 0u, 572u, 0u, 573u, 574u, 0u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 577u, 0u, 0u, 578u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, 0u, 0u, 580u, 0u, 0u, 0u, + 0u, 0u, 0u, 581u, 582u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 584u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 588u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 590u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 591u, 0u, 592u, 0u, 593u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 0u, 0u, 0u, 0u, 0u, 596u, 0u, 597u, 598u, 0u, 0u, 599u, 0u, 0u, 600u, 0u, 601u, + 0u, 602u, 0u, 0u, 603u, 0u, 0u, 604u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 606u, 607u, 0u, 0u, 608u, 0u, 0u, 0u, 609u, 0u, 610u, 0u, 611u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 0u, 0u, 613u, 0u, 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 616u, 0u, 0u, 617u, 0u, + 0u, 618u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 620u, 621u, 0u, 622u, 0u, 0u, 0u, 623u, 0u, 0u, 0u, 0u, 624u, 0u, 0u, 625u, 0u, 0u, 626u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 627u, 0u, 0u, 0u, 628u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 0u, 631u, 0u, 632u, + 0u, 633u, 0u, 0u, 634u, 0u, 0u, 0u, 0u, 635u, 0u, 636u, 0u, 637u, 0u, 0u, 638u, 0u, 639u, 0u, 0u, 0u, 640u, 0u, 641u, 0u, 0u, 642u, 0u, 643u, 0u, 0u, + 0u, 0u, 644u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 646u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 647u, 0u, 0u, 0u, 648u, 0u, 0u, 0u, 649u, 0u, 650u, 0u, 651u, 0u, 0u, 652u, 0u, 0u, 0u, 0u, 653u, 0u, 654u, 0u, 655u, 0u, 0u, 656u, + 0u, 0u, 657u, 0u, 658u, 0u, 0u, 659u, 0u, 0u, 0u, 660u, 661u, 0u, 0u, 0u, 0u, 0u, 0u, 662u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 663u, 0u, 0u, + 0u, 664u, 0u, 0u, 665u, 0u, 0u, 0u, 666u, 0u, 0u, 0u, 667u, 0u, 0u, 668u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 669u, 0u, 0u, 0u, 0u, 0u, 670u, 0u, 671u, + 0u, 0u, 672u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 673u, 0u, 0u, 0u, 0u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 675u, 0u, 0u, 0u, 0u, 676u, 0u, 677u, 0u, 0u, 0u, 0u, 0u, + 0u, 678u, 0u, 0u, 679u, 0u, 680u, 0u, 681u, 0u, 682u, 0u, 0u, 683u, 0u, 684u, 0u, 685u, 0u, 0u, 686u, 0u, 0u, 687u, 0u, 688u, 0u, 0u, 0u, 689u, 0u, 690u, + 0u, 0u, 0u, 0u, 691u, 0u, 0u, 692u, 0u, 693u, 0u, 0u, 694u, 0u, 695u, 0u, 0u, 696u, 0u, 0u, 697u, 0u, 698u, 0u, 0u, 699u, 0u, 0u, 700u, 0u, 701u, 0u, + 0u, 0u, 702u, 0u, 703u, 0u, 0u, 0u, 0u, 704u, 0u, 705u, 0u, 706u, 0u, 707u, 0u, 708u, 0u, 0u, 709u, 0u, 0u, 710u, 0u, 711u, 0u, 0u, 0u, 712u, 0u, 713u, + 0u, 0u, 714u, 0u, 715u, 716u, 0u, 0u, 717u, 718u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 720u, 0u, 0u, 0u, 721u, 0u, 722u, 0u, 723u, 0u, 0u, 0u, 724u, 0u, 0u, 0u, 725u, 0u, 726u, 0u, 0u, 0u, 727u, 0u, 728u, 0u, 0u, 0u, 0u, 729u, 0u, 730u, + 0u, 731u, 0u, 0u, 732u, 0u, 733u, 0u, 0u, 734u, 0u, 0u, 735u, 0u, 736u, 0u, 0u, 737u, 0u, 0u, 738u, 0u, 739u, 0u, 0u, 0u, 740u, 0u, 741u, 0u, 0u, 0u, + 0u, 742u, 0u, 743u, 744u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 745u, 0u, 0u, 0u, 0u, 746u, 0u, 747u, 0u, 0u, 748u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 749u, 0u, 750u, 0u, 0u, 751u, 0u, 752u, 0u, 0u, 0u, 753u, 0u, 0u, 0u, 754u, 0u, 755u, 0u, 0u, 0u, 756u, 0u, 0u, 0u, 0u, 0u, 757u, 0u, 0u, 0u, 0u, + 758u, 0u, 759u, 760u, 0u, 0u, 0u, 761u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 762u, 0u, 763u, 764u, 0u, 765u, 0u, 0u, 0u, 0u, 766u, 0u, 767u, 0u, 768u, + 0u, 0u, 769u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 772u, 0u, 0u, 0u, 773u, 0u, 774u, 0u, 775u, 0u, 0u, 776u, 0u, 0u, 777u, + 0u, 778u, 0u, 0u, 0u, 779u, 0u, 0u, 0u, 780u, 0u, 781u, 0u, 782u, 0u, 783u, 0u, 784u, 0u, 0u, 0u, 0u, 0u, 0u, 785u, 0u, 0u, 0u, 786u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 787u, 0u, 0u, 0u, 788u, 0u, 0u, 789u, 0u, 0u, 0u, 790u, 0u, 0u, 791u, 0u, 792u, 0u, 793u, 0u, 0u, 794u, 0u, 0u, 795u, 0u, + 0u, 796u, 0u, 797u, 0u, 0u, 0u, 0u, 798u, 0u, 0u, 799u, 0u, 0u, 0u, 0u, 0u, 0u, 800u, 0u, 0u, 0u, 0u, 801u, 0u, 802u, 803u, 0u, 0u, 0u, 804u, +}; + void recomp_unit_0023_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,6,29,31,17 fprs=12,13,14,17 gpr_occ=3882 fpr_occ=393 gpr_total=5502 fpr_total=777 @@ -58,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08860000u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0023[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0023[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0023[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08860000; @@ -882,6 +1006,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08860000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -913,8 +1061,8 @@ L_08860000: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886001C: @@ -961,8 +1109,8 @@ L_0886001C: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(32); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886004C: @@ -1015,8 +1163,8 @@ L_0886004C: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(32); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08860094: @@ -1041,8 +1189,8 @@ L_08860094: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088600C4: @@ -1201,8 +1349,8 @@ L_088600C4: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_13), std::bit_cast(aot_fpr_17), std::bit_cast(aot_fpr_12)}; aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(48), aot_run_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08860314: @@ -1246,8 +1394,8 @@ L_08860314: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(32); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08860358: @@ -1331,8 +1479,8 @@ L_08860380: L_08860390: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088603A0: @@ -1446,16 +1594,16 @@ L_088603A0: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088603F4: aot_gpr_5 = (0u | 239u); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(1970), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08860400: @@ -1480,8 +1628,8 @@ L_08860418: goto L_0886041C; L_0886041C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08860424: @@ -1803,8 +1951,8 @@ L_08860608: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26552))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08860620: @@ -1927,8 +2075,8 @@ L_088606E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08860704: @@ -1940,8 +2088,21 @@ L_08860704: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08860734u); aot_gpr_6 = (0u | 309u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 69u, 0x08860734u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08860734u) goto L_08860734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08860734: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1955,8 +2116,21 @@ L_08860740: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08860750u); aot_gpr_6 = (0u | 313u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 71u, 0x08860750u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08860750u) goto L_08860750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08860750: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1970,8 +2144,21 @@ L_0886075C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0886076Cu); aot_gpr_6 = (0u | 311u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 73u, 0x0886076Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886076Cu) goto L_0886076C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886076C: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08860770; @@ -2114,8 +2301,21 @@ L_0886084C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08860868u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 91u, 0x08860868u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08860868u) goto L_08860868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08860868: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(1970))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1960), ctx.gpr[20]); @@ -2214,8 +2414,8 @@ L_08860928: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886094C: @@ -2232,15 +2432,28 @@ L_0886095C: AOT_REGCACHE_SYNC_OUT(); return; L_08860964: aot_gpr_31 = (0x0886096Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 105u, 0x0886096Cu, 0x08AEDEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 469u, 0x08AEDEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886096Cu) goto L_0886096C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886096C: ctx.gpr[2] = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886097C: @@ -2296,8 +2509,21 @@ L_088609F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x08860A08u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 111u, 0x08860A08u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08860A08u) goto L_08860A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08860A08: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -2584,8 +2810,8 @@ L_08860BD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08860C08: @@ -2609,8 +2835,21 @@ L_08860C2C: ctx.gpr[7] = (0u | 320u); aot_gpr_31 = (0x08860C44u); ctx.gpr[8] = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 151u, 0x08860C44u, 0x08A069DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 664u, 0x08A069DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08860C44u) goto L_08860C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08860C44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2625,19 +2864,58 @@ L_08860C4C: ctx.gpr[7] = (0u | 272u); aot_gpr_31 = (0x08860C64u); ctx.gpr[8] = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 153u, 0x08860C64u, 0x08A069DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 664u, 0x08A069DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08860C64u) goto L_08860C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08860C64: aot_gpr_31 = (0x08860C6Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 154u, 0x08860C6Cu, 0x08A06D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 704u, 0x08A06D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08860C6Cu) goto L_08860C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08860C6C: aot_gpr_17 = (2236u << 16u); ctx.gpr[18] = (aot_gpr_17 + static_cast(29552)); aot_gpr_31 = (0x08860C7Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 155u, 0x08860C7Cu, 0x088E02C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 4u, 0x088E02C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08860C7Cu) goto L_08860C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08860C7C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29552))); aot_gpr_5 = (7168u << 16u); @@ -3087,22 +3365,74 @@ L_08860C7C: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x0886137Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 156u, 0x0886137Cu, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886137Cu) goto L_0886137C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886137C: aot_gpr_31 = (0x08861384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 157u, 0x08861384u, 0x08A06FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 723u, 0x08A06FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08861384u) goto L_08861384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08861384: aot_gpr_31 = (0x0886138Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 158u, 0x0886138Cu, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886138Cu) goto L_0886138C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886138C: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08861398u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 159u, 0x08861398u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08861398u) goto L_08861398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08861398: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3250,15 +3580,15 @@ L_08861490: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088614AC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088614B4: @@ -3306,8 +3636,21 @@ L_088614E8: } L_088614F0: aot_gpr_31 = (0x088614F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 185u, 0x088614F8u, 0x08B21418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 251u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 251u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 251u, 0x08B21418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088614F8u) goto L_088614F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088614F8: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), ctx.gpr[2]); ctx.gpr[2] = (0u | 1u); @@ -3317,8 +3660,8 @@ L_08861500: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861510: @@ -3336,8 +3679,8 @@ L_08861520: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26512))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861538: @@ -3433,8 +3776,8 @@ L_088615A8: } L_088615B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088615BC: @@ -3485,8 +3828,8 @@ L_088615E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861668: @@ -3508,16 +3851,29 @@ L_08861688: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26472))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088616A0: aot_gpr_5 = (16256u << 16u); aot_gpr_31 = (0x088616ACu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 206u, 0x088616ACu, 0x08B217D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 283u, 0x08B217D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088616ACu) goto L_088616AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088616AC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -3699,29 +4055,29 @@ L_08861800: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886180C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861814: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886181C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861824: @@ -3750,8 +4106,8 @@ L_08861824: aot_gpr_4 = (aot_gpr_4 + static_cast(4)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(29552), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861888: @@ -3768,8 +4124,8 @@ L_0886189C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088618A8: @@ -3906,8 +4262,8 @@ L_08861968: L_088619A0: ctx.gpr[2] = (aot_gpr_4 | 0u); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088619AC: @@ -4107,8 +4463,8 @@ L_08861A44: L_08861A6C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861A7C: @@ -4296,8 +4652,8 @@ L_08861BE4: } L_08861BF4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861BFC: @@ -4333,8 +4689,8 @@ L_08861C24: } L_08861C2C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861C34: @@ -4350,8 +4706,8 @@ L_08861C48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861C5C: @@ -4374,8 +4730,8 @@ L_08861C64: } L_08861C88: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861C90: @@ -4414,8 +4770,8 @@ L_08861CD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861CF0: @@ -4462,8 +4818,8 @@ L_08861D2C: goto L_08861D30; L_08861D30: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861D38: @@ -4565,8 +4921,8 @@ L_08861DEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861DF8: @@ -4589,8 +4945,8 @@ L_08861E00: } L_08861E24: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861E2C: @@ -4715,8 +5071,8 @@ L_08861F20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861F44: @@ -4768,8 +5124,8 @@ L_08861F94: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861FA0: @@ -4802,8 +5158,8 @@ L_08861FC4: } L_08861FD8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08861FE0: @@ -4859,8 +5215,8 @@ L_0886202C: goto L_08862030; L_08862030: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862038: @@ -4910,8 +5266,8 @@ L_08862060: L_088620A4: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088620AC: @@ -5108,8 +5464,8 @@ L_088621E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886221C: @@ -5213,8 +5569,8 @@ L_088622D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088622F4: @@ -5273,8 +5629,8 @@ L_08862358: L_0886236C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862374: @@ -5331,8 +5687,8 @@ L_088623C4: goto L_088623C8; L_088623C8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088623D0: @@ -5344,8 +5700,8 @@ L_088623E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088623EC: @@ -5412,8 +5768,8 @@ L_08862478: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088624A4: @@ -5587,8 +5943,8 @@ L_088625D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088625E8: @@ -5695,8 +6051,8 @@ L_088626B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088626C0: @@ -5734,8 +6090,8 @@ L_088626E8: goto L_088626F0; L_088626F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088626F8: @@ -5755,8 +6111,8 @@ L_08862710: L_08862714: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886271C: @@ -5783,8 +6139,8 @@ L_08862748: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26368))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862764: @@ -5915,8 +6271,8 @@ L_08862884: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862890: @@ -5975,16 +6331,16 @@ L_088628FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862920: ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 - ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886292C: @@ -6004,8 +6360,21 @@ L_0886292C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x0886296Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 438u, 0x0886296Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886296Cu) goto L_0886296C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886296C: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); @@ -6050,8 +6419,21 @@ L_088629B0: aot_gpr_6 = (0u | 7u); aot_gpr_31 = (0x088629C4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 444u, 0x088629C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088629C4u) goto L_088629C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088629C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6065,8 +6447,21 @@ L_088629CC: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x088629E0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 446u, 0x088629E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088629E0u) goto L_088629E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088629E0: ctx.gpr[2] = (ctx.gpr[19] | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6080,8 +6475,8 @@ L_088629E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862A04: @@ -6097,8 +6492,21 @@ L_08862A04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x08862A34u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 448u, 0x08862A34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862A34u) goto L_08862A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862A34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08862A40u); @@ -6347,8 +6755,8 @@ L_08862C38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862C50: @@ -6393,8 +6801,21 @@ L_08862C90: aot_gpr_17 = (aot_gpr_17 + static_cast(-6992)); aot_gpr_31 = (0x08862CB8u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_17); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 477u, 0x08862CB8u, 0x08960DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 178u, 0x08960DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862CB8u) goto L_08862CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862CB8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6411,8 +6832,21 @@ L_08862CC0: aot_gpr_4 = (aot_gpr_6 + aot_gpr_4); aot_gpr_31 = (0x08862CE0u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_17); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 479u, 0x08862CE0u, 0x08960DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 182u, 0x08960DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862CE0u) goto L_08862CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862CE0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6449,8 +6883,21 @@ L_08862D10: L_08862D18: aot_gpr_31 = (0x08862D20u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(508), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 485u, 0x08862D20u, 0x08AB9394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 238u, 0x08AB9394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862D20u) goto L_08862D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862D20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7968))); @@ -6469,8 +6916,8 @@ L_08862D3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862D50: @@ -6497,14 +6944,27 @@ L_08862D74: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[16]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26328))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862D8C: aot_gpr_31 = (0x08862D94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 491u, 0x08862D94u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862D94u) goto L_08862D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862D94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6514,8 +6974,21 @@ L_08862D94: } L_08862D9C: aot_gpr_31 = (0x08862DA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 493u, 0x08862DA4u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862DA4u) goto L_08862DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862DA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6573,8 +7046,21 @@ L_08862DD4: } L_08862DDC: aot_gpr_31 = (0x08862DE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 501u, 0x08862DE4u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862DE4u) goto L_08862DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862DE4: ctx.gpr[2] = (ctx.gpr[2] << 16u); { const bool branch_taken = 0u == 0u; @@ -6586,8 +7072,21 @@ L_08862DE4: } L_08862DF0: aot_gpr_31 = (0x08862DF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 503u, 0x08862DF8u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862DF8u) goto L_08862DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862DF8: ctx.gpr[2] = (ctx.gpr[2] << 16u); { const bool branch_taken = 0u == 0u; @@ -6599,8 +7098,21 @@ L_08862DF8: } L_08862E04: aot_gpr_31 = (0x08862E0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 505u, 0x08862E0Cu, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862E0Cu) goto L_08862E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862E0C: ctx.gpr[2] = (ctx.gpr[2] << 16u); { const bool branch_taken = 0u == 0u; @@ -6612,8 +7124,21 @@ L_08862E0C: } L_08862E18: aot_gpr_31 = (0x08862E20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 507u, 0x08862E20u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08862E20u) goto L_08862E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08862E20: ctx.gpr[2] = (ctx.gpr[2] << 16u); { const bool branch_taken = 0u == 0u; @@ -6695,8 +7220,8 @@ L_08862E70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862E80: @@ -6744,8 +7269,8 @@ L_08862EB4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26248))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862ECC: @@ -6793,8 +7318,8 @@ L_08862EFC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26048))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862F14: @@ -6818,8 +7343,8 @@ L_08862F24: goto L_08862F28; L_08862F28: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08862F30: @@ -7029,8 +7554,8 @@ L_0886301C: goto L_08863020; L_08863020: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863028: @@ -7048,8 +7573,8 @@ L_08863038: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25848))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863050: @@ -7116,8 +7641,8 @@ L_08863090: goto L_08863094; L_08863094: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886309C: @@ -7225,8 +7750,8 @@ L_088631B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088631C0: @@ -7253,8 +7778,21 @@ L_088631C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), aot_gpr_31); aot_gpr_31 = (0x0886321Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 585u, 0x0886321Cu, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886321Cu) goto L_0886321C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886321C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7394,8 +7932,21 @@ L_088632CC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08863380u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 591u, 0x08863380u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863380u) goto L_08863380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863380: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7426,8 +7977,8 @@ L_08863394: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088633B4: @@ -7444,8 +7995,21 @@ L_088633B4: } L_088633D0: aot_gpr_31 = (0x088633D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 597u, 0x088633D8u, 0x08871414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 365u, 0x08871414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088633D8u) goto L_088633D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088633D8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29152), ctx.gpr[16]); goto L_088633DC; @@ -7492,8 +8056,8 @@ L_0886341C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886342C: @@ -7537,8 +8101,8 @@ L_08863460: } L_08863468: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863470: @@ -7578,8 +8142,8 @@ L_088634BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088634DC: @@ -7592,8 +8156,8 @@ L_088634EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088634F8: @@ -7628,8 +8192,8 @@ L_08863524: goto L_08863528; L_08863528: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863530: @@ -7686,8 +8250,8 @@ L_088635A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088635AC: @@ -7726,21 +8290,60 @@ L_08863604: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x08863610u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 634u, 0x08863610u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863610u) goto L_08863610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863610: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08863624u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 635u, 0x08863624u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863624u) goto L_08863624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863624: aot_gpr_31 = (0x0886362Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 636u, 0x0886362Cu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886362Cu) goto L_0886362C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886362C: aot_gpr_31 = (0x08863634u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); @@ -7764,13 +8367,39 @@ L_08863648: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08863658u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 640u, 0x08863658u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863658u) goto L_08863658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863658: aot_gpr_31 = (0x08863660u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 641u, 0x08863660u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863660u) goto L_08863660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863660: aot_gpr_4 = (aot_gpr_17 & 1u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7782,16 +8411,42 @@ L_08863660: L_0886366C: aot_gpr_31 = (0x08863674u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 643u, 0x08863674u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863674u) goto L_08863674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863674: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(40))); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08863688u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 644u, 0x08863688u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863688u) goto L_08863688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863688: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(80))); ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); @@ -7818,8 +8473,8 @@ L_0886369C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088636C8: @@ -7892,8 +8547,21 @@ L_0886374C: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); aot_gpr_31 = (0x08863760u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 653u, 0x08863760u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863760u) goto L_08863760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863760: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7918,8 +8586,21 @@ L_0886377C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08863788u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 657u, 0x08863788u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863788u) goto L_08863788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863788: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7957,8 +8638,8 @@ L_088637B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088637CC: @@ -8041,8 +8722,21 @@ L_0886385C: L_08863874: aot_gpr_31 = (0x0886387Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_17)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 671u, 0x0886387Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886387Cu) goto L_0886387C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886387C: aot_gpr_4 = (16384u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); @@ -8063,8 +8757,21 @@ L_08863888: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088638C0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 673u, 0x088638C0u, 0x08A9A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 291u, 0x08A9A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088638C0u) goto L_088638C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088638C0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -8075,8 +8782,8 @@ L_088638C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088638D8: @@ -8102,8 +8809,21 @@ L_088638D8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(300), aot_run_words); } aot_gpr_31 = (0x0886394Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 675u, 0x0886394Cu, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886394Cu) goto L_0886394C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886394C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); ctx.gpr[18] = (0u | 0u); @@ -8197,15 +8917,41 @@ L_088639D0: } L_088639DC: aot_gpr_31 = (0x088639E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 688u, 0x088639E4u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088639E4u) goto L_088639E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088639E4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088639F4u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 689u, 0x088639F4u, 0x08818918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 72u, 0x08818918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088639F4u) goto L_088639F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088639F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8290,15 +9036,41 @@ L_08863A64: } L_08863A70: aot_gpr_31 = (0x08863A78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 701u, 0x08863A78u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863A78u) goto L_08863A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863A78: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08863A88u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 702u, 0x08863A88u, 0x08818918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 72u, 0x08818918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863A88u) goto L_08863A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863A88: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8361,15 +9133,41 @@ L_08863AD0: } L_08863ADC: aot_gpr_31 = (0x08863AE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 711u, 0x08863AE4u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863AE4u) goto L_08863AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863AE4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08863AF4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 712u, 0x08863AF4u, 0x08818918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 72u, 0x08818918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863AF4u) goto L_08863AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863AF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8425,8 +9223,8 @@ L_08863B24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863B54: @@ -8480,15 +9278,41 @@ L_08863BB0: } L_08863BC0: aot_gpr_31 = (0x08863BC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 726u, 0x08863BC8u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863BC8u) goto L_08863BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863BC8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08863BD8u); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 727u, 0x08863BD8u, 0x08818918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 72u, 0x08818918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863BD8u) goto L_08863BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863BD8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8573,15 +9397,41 @@ L_08863C44: } L_08863C50: aot_gpr_31 = (0x08863C58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 739u, 0x08863C58u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863C58u) goto L_08863C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863C58: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08863C68u); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 740u, 0x08863C68u, 0x08818918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 72u, 0x08818918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863C68u) goto L_08863C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863C68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8623,8 +9473,8 @@ L_08863C90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863CB4: @@ -8633,8 +9483,21 @@ L_08863CB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08863CC8u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 746u, 0x08863CC8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863CC8u) goto L_08863CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863CC8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8758,8 +9621,8 @@ L_08863D8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863D9C: @@ -8789,8 +9652,8 @@ L_08863DCC: goto L_08863DD0; L_08863DD0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863DD8: @@ -8807,8 +9670,21 @@ L_08863DD8: L_08863DEC: aot_gpr_31 = (0x08863DF4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 767u, 0x08863DF4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863DF4u) goto L_08863DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863DF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8863,8 +9739,21 @@ L_08863E44: L_08863E54: aot_gpr_31 = (0x08863E5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 774u, 0x08863E5Cu, 0x08B01BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863E5Cu) goto L_08863E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863E5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8876,19 +9765,58 @@ L_08863E64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); aot_gpr_31 = (0x08863E70u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 776u, 0x08863E70u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863E70u) goto L_08863E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863E70: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08863E7Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 777u, 0x08863E7Cu, 0x08910CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 222u, 0x08910CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863E7Cu) goto L_08863E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863E7C: aot_gpr_31 = (0x08863E84u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 778u, 0x08863E84u, 0x0889358Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 537u, 0x0889358Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863E84u) goto L_08863E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863E84: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -8923,8 +9851,21 @@ L_08863EAC: L_08863EB4: aot_gpr_31 = (0x08863EBCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 783u, 0x08863EBCu, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863EBCu) goto L_08863EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863EBC: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -8949,8 +9890,8 @@ L_08863EE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08863EF0: @@ -8980,8 +9921,21 @@ L_08863F28: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08863F34u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 789u, 0x08863F34u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863F34u) goto L_08863F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863F34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1360))); aot_gpr_5 = (0u | 20u); @@ -8999,8 +9953,21 @@ L_08863F44: L_08863F50: aot_gpr_31 = (0x08863F58u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 792u, 0x08863F58u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863F58u) goto L_08863F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863F58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9034,8 +10001,21 @@ L_08863F78: } L_08863F84: aot_gpr_31 = (0x08863F8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 797u, 0x08863F8Cu, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863F8Cu) goto L_08863F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863F8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); aot_gpr_5 = (0u | 1u); @@ -9071,8 +10051,21 @@ L_08863FC8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08863FDCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0023->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0023_entry, 801u, 0x08863FDCu, 0x088E3DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 563u, 0x088E3DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08863FDCu) goto L_08863FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08863FDC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); diff --git a/profiles/vcs/generated/generated_unit_0024.cpp b/profiles/vcs/generated/generated_unit_0024.cpp index 96dc0ae..b40d6e8 100644 --- a/profiles/vcs/generated/generated_unit_0024.cpp +++ b/profiles/vcs/generated/generated_unit_0024.cpp @@ -32,6 +32,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0024[64] = { 481u, 498u, 512u, 530u, 542u, 558u, 571u, 592u, 602u, 620u, 630u, 652u, 663u, 684u, 697u, 711u, 722u, 734u, 748u, 763u, 785u, 802u, 823u, 831u, 851u, 866u, 880u, 892u, 906u, 920u, 928u, 942u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0024[4093] = { + 1u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 7u, 0u, 0u, 8u, 0u, 0u, 0u, + 0u, 9u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 12u, 0u, 13u, 0u, 14u, 0u, 15u, + 0u, 16u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 19u, 0u, 0u, 20u, 0u, 21u, 0u, 0u, 22u, 0u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, + 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 27u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 29u, 0u, 30u, 0u, 0u, 0u, + 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 35u, 0u, 0u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 38u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 0u, 0u, + 43u, 0u, 0u, 0u, 0u, 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, + 0u, 48u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 51u, 0u, 52u, 0u, 0u, 53u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 54u, 0u, 55u, 0u, 56u, 0u, 57u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 58u, 0u, 0u, 59u, 0u, + 0u, 0u, 60u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 62u, 0u, 63u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 64u, 0u, 65u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 67u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, + 0u, 0u, 70u, 0u, 71u, 0u, 0u, 72u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 73u, 0u, 0u, 74u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 76u, 0u, 77u, 0u, + 0u, 0u, 0u, 0u, 78u, 0u, 0u, 79u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 80u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 82u, 83u, 0u, 0u, 0u, 0u, 84u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 85u, 0u, 86u, 0u, 0u, 0u, 0u, 0u, + 0u, 87u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 89u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 90u, 0u, 0u, 91u, 0u, 0u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 93u, 0u, 0u, 0u, 0u, 94u, 0u, + 0u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 97u, 0u, 0u, 0u, + 0u, 0u, 98u, 0u, 99u, 0u, 0u, 100u, 0u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 102u, 0u, 0u, 0u, 0u, 103u, + 0u, 104u, 0u, 105u, 0u, 0u, 0u, 0u, 0u, 0u, 106u, 0u, 107u, 0u, 0u, 108u, 0u, 109u, 0u, 110u, 0u, 0u, 0u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 0u, 112u, + 0u, 113u, 0u, 114u, 0u, 115u, 0u, 116u, 0u, 0u, 0u, 0u, 0u, 0u, 117u, 0u, 118u, 0u, 0u, 119u, 0u, 120u, 0u, 121u, 0u, 0u, 0u, 0u, 0u, 0u, 122u, 0u, + 123u, 0u, 0u, 0u, 0u, 0u, 124u, 0u, 125u, 0u, 126u, 0u, 0u, 0u, 0u, 127u, 0u, 128u, 0u, 0u, 129u, 0u, 130u, 0u, 131u, 0u, 132u, 0u, 0u, 0u, 133u, 0u, + 134u, 0u, 135u, 0u, 136u, 0u, 137u, 0u, 0u, 0u, 0u, 138u, 0u, 139u, 0u, 0u, 140u, 0u, 141u, 0u, 142u, 0u, 0u, 143u, 0u, 144u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 147u, 0u, 0u, 148u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 150u, 0u, 0u, 0u, 151u, + 0u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 153u, 0u, 0u, 0u, 0u, 154u, 0u, 155u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 156u, 0u, 0u, 157u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 159u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 161u, 0u, 162u, 0u, 163u, 0u, 0u, 164u, 0u, 165u, 0u, 166u, 0u, 167u, 0u, 0u, 168u, 0u, 169u, 0u, 170u, 0u, 171u, 0u, 0u, 172u, + 0u, 0u, 173u, 174u, 0u, 0u, 175u, 0u, 0u, 0u, 0u, 176u, 0u, 177u, 0u, 0u, 178u, 0u, 179u, 0u, 0u, 180u, 0u, 181u, 182u, 0u, 183u, 0u, 0u, 184u, 0u, 185u, + 0u, 186u, 187u, 0u, 188u, 0u, 0u, 189u, 0u, 190u, 0u, 191u, 192u, 0u, 193u, 194u, 0u, 195u, 0u, 196u, 0u, 197u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, + 0u, 203u, 0u, 0u, 0u, 204u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 0u, 206u, 0u, 207u, 0u, 208u, 0u, 0u, 209u, 0u, 0u, 210u, 0u, 211u, 0u, 212u, 0u, + 0u, 213u, 0u, 214u, 0u, 215u, 0u, 216u, 0u, 0u, 217u, 0u, 218u, 0u, 0u, 219u, 0u, 220u, 0u, 0u, 221u, 0u, 0u, 0u, 222u, 0u, 0u, 223u, 0u, 224u, 0u, 0u, + 225u, 0u, 226u, 0u, 0u, 227u, 0u, 0u, 0u, 0u, 228u, 0u, 0u, 0u, 0u, 229u, 230u, 0u, 231u, 0u, 0u, 232u, 0u, 233u, 0u, 0u, 234u, 0u, 235u, 0u, 236u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 239u, 0u, 0u, 240u, 0u, 241u, + 0u, 242u, 0u, 243u, 0u, 244u, 0u, 245u, 0u, 0u, 246u, 0u, 0u, 247u, 0u, 0u, 248u, 0u, 0u, 249u, 250u, 0u, 251u, 0u, 0u, 252u, 0u, 253u, 0u, 0u, 0u, 0u, + 0u, 254u, 0u, 0u, 0u, 255u, 0u, 256u, 0u, 257u, 0u, 258u, 0u, 259u, 0u, 260u, 0u, 0u, 261u, 0u, 262u, 0u, 263u, 0u, 264u, 0u, 265u, 0u, 266u, 0u, 267u, 0u, + 268u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 270u, 0u, 271u, 0u, 272u, 0u, 273u, 0u, 0u, 274u, 0u, 275u, 0u, 0u, 276u, 0u, 0u, 277u, 0u, 0u, 278u, 0u, 0u, 279u, + 280u, 0u, 0u, 0u, 281u, 0u, 282u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, 284u, 0u, 285u, 0u, 286u, 0u, 287u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, + 0u, 290u, 0u, 291u, 0u, 292u, 0u, 293u, 0u, 294u, 0u, 295u, 0u, 0u, 0u, 296u, 0u, 0u, 0u, 297u, 0u, 298u, 0u, 299u, 0u, 300u, 0u, 301u, 0u, 0u, 0u, 302u, + 0u, 0u, 0u, 303u, 0u, 304u, 0u, 305u, 0u, 306u, 0u, 0u, 307u, 0u, 308u, 0u, 0u, 309u, 0u, 0u, 310u, 0u, 0u, 311u, 0u, 0u, 312u, 313u, 0u, 314u, 0u, 315u, + 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 318u, 0u, 319u, 0u, 320u, 0u, 321u, 0u, 322u, 0u, 0u, 0u, 323u, 0u, 0u, 0u, 324u, 0u, 325u, + 0u, 326u, 0u, 327u, 0u, 0u, 328u, 0u, 329u, 0u, 0u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 333u, 0u, 0u, 334u, 0u, 335u, 0u, 0u, 336u, 0u, 337u, 0u, 338u, 0u, 339u, 0u, 340u, 0u, 341u, 0u, 0u, 342u, + 0u, 0u, 343u, 0u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 346u, 0u, 347u, 0u, 0u, 348u, 0u, 349u, 0u, 350u, 0u, 0u, 351u, 0u, 0u, 352u, + 0u, 0u, 0u, 353u, 0u, 0u, 0u, 0u, 0u, 354u, 0u, 0u, 0u, 355u, 0u, 356u, 0u, 0u, 357u, 0u, 358u, 0u, 359u, 0u, 0u, 360u, 0u, 0u, 361u, 0u, 0u, 0u, + 362u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, 0u, 364u, 0u, 365u, 0u, 0u, 366u, 0u, 367u, 0u, 368u, 0u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 371u, 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 0u, 0u, 373u, 0u, 0u, 0u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 375u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 0u, 377u, 0u, 0u, 0u, 378u, 0u, 379u, 0u, 0u, 0u, 0u, 0u, 380u, 0u, 381u, 0u, + 0u, 0u, 0u, 0u, 0u, 382u, 0u, 383u, 0u, 0u, 0u, 0u, 0u, 0u, 384u, 0u, 385u, 0u, 0u, 0u, 0u, 386u, 0u, 387u, 0u, 0u, 0u, 0u, 0u, 0u, 388u, 0u, + 389u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 391u, 0u, 392u, 0u, 0u, 393u, 0u, 0u, 394u, 0u, 395u, 396u, 0u, 0u, 0u, 0u, 0u, 397u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 398u, 0u, 0u, 399u, 0u, 400u, 0u, 0u, 0u, 401u, 0u, 0u, 0u, 402u, + 0u, 0u, 403u, 0u, 404u, 0u, 0u, 0u, 405u, 0u, 406u, 0u, 407u, 0u, 0u, 408u, 0u, 0u, 0u, 0u, 0u, 409u, 0u, 0u, 410u, 0u, 411u, 0u, 0u, 0u, 0u, 0u, + 412u, 0u, 413u, 0u, 0u, 414u, 0u, 415u, 0u, 416u, 0u, 417u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 421u, 0u, + 422u, 0u, 0u, 0u, 0u, 423u, 0u, 0u, 424u, 0u, 0u, 425u, 0u, 0u, 0u, 426u, 0u, 0u, 0u, 0u, 0u, 427u, 0u, 0u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, + 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 0u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, 0u, 433u, 0u, 434u, 0u, 0u, 0u, + 0u, 435u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 0u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 439u, 440u, 0u, 441u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, + 443u, 0u, 0u, 444u, 0u, 445u, 0u, 446u, 447u, 0u, 448u, 0u, 449u, 0u, 450u, 451u, 0u, 452u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 454u, 0u, 0u, 0u, + 0u, 0u, 455u, 0u, 0u, 0u, 0u, 456u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 457u, 458u, 0u, 459u, 0u, 0u, 0u, 0u, 0u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, + 461u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 463u, 0u, 464u, 0u, 0u, 0u, 0u, 0u, 465u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 468u, 0u, 469u, 0u, + 470u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 472u, 0u, 0u, 473u, 0u, 0u, 474u, 475u, 0u, 476u, 0u, 0u, 0u, 0u, 477u, 0u, 478u, 0u, 0u, 0u, 479u, 0u, 0u, 480u, 0u, 0u, 0u, + 481u, 0u, 0u, 482u, 0u, 483u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, 485u, 0u, 0u, 486u, 0u, 487u, 0u, 488u, 0u, 0u, 489u, 0u, 0u, 0u, 0u, 0u, 490u, 0u, + 0u, 491u, 0u, 0u, 0u, 492u, 0u, 0u, 493u, 494u, 0u, 0u, 495u, 0u, 0u, 0u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 0u, 0u, 0u, + 0u, 498u, 0u, 0u, 0u, 0u, 0u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 502u, 0u, 503u, 0u, 0u, 0u, 0u, 0u, + 0u, 504u, 0u, 0u, 0u, 0u, 0u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 0u, 0u, 0u, 0u, 0u, 507u, 0u, 508u, 509u, 0u, 510u, 0u, 0u, 0u, 511u, + 0u, 0u, 0u, 0u, 0u, 512u, 0u, 0u, 513u, 0u, 514u, 0u, 515u, 516u, 0u, 517u, 0u, 518u, 0u, 519u, 520u, 0u, 521u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 522u, + 0u, 523u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 0u, 0u, 525u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 526u, 527u, 0u, 528u, 0u, 529u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 530u, 0u, 531u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 532u, 0u, 0u, 533u, 0u, 534u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 536u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 537u, 0u, 0u, 538u, 0u, 0u, 539u, 540u, 0u, 541u, 0u, + 0u, 0u, 0u, 542u, 0u, 543u, 0u, 0u, 0u, 544u, 0u, 0u, 545u, 0u, 0u, 0u, 546u, 0u, 0u, 547u, 0u, 548u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, + 0u, 551u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 553u, 554u, 0u, 0u, 555u, 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, + 0u, 0u, 0u, 0u, 0u, 558u, 0u, 0u, 0u, 0u, 0u, 0u, 559u, 0u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 0u, 0u, 561u, 0u, 562u, 0u, 563u, 0u, + 0u, 0u, 0u, 0u, 0u, 564u, 0u, 0u, 0u, 0u, 0u, 0u, 565u, 0u, 0u, 0u, 0u, 0u, 0u, 566u, 0u, 0u, 0u, 0u, 0u, 0u, 567u, 0u, 568u, 569u, 0u, 570u, + 0u, 0u, 0u, 571u, 0u, 0u, 572u, 0u, 573u, 0u, 574u, 0u, 575u, 0u, 0u, 576u, 0u, 577u, 0u, 578u, 579u, 0u, 580u, 0u, 581u, 0u, 582u, 583u, 0u, 584u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 0u, 0u, 588u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 589u, 590u, 0u, 591u, 0u, + 592u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 593u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 0u, 596u, 0u, 597u, 0u, 598u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 599u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 600u, 0u, 0u, 601u, + 0u, 0u, 602u, 603u, 0u, 604u, 0u, 0u, 0u, 0u, 605u, 0u, 606u, 0u, 0u, 0u, 607u, 0u, 0u, 608u, 0u, 0u, 0u, 609u, 0u, 0u, 610u, 0u, 611u, 0u, 0u, 612u, + 0u, 0u, 0u, 0u, 0u, 613u, 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 616u, 617u, 0u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, + 0u, 0u, 0u, 0u, 0u, 620u, 0u, 0u, 0u, 0u, 0u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 0u, 0u, 623u, 0u, 0u, 0u, 0u, 0u, + 0u, 624u, 0u, 625u, 0u, 626u, 0u, 0u, 0u, 0u, 0u, 0u, 627u, 0u, 0u, 0u, 0u, 0u, 0u, 628u, 0u, 0u, 0u, 0u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, + 0u, 630u, 0u, 631u, 632u, 0u, 633u, 0u, 0u, 0u, 634u, 0u, 0u, 635u, 0u, 636u, 0u, 637u, 0u, 638u, 0u, 0u, 639u, 0u, 640u, 0u, 641u, 642u, 0u, 643u, 0u, 644u, + 0u, 645u, 646u, 0u, 647u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 648u, 0u, 649u, 0u, 0u, 0u, 0u, 0u, 650u, 0u, 0u, 0u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 652u, 653u, 0u, 654u, 0u, 655u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 656u, 0u, 657u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 658u, 0u, + 0u, 659u, 0u, 660u, 0u, 661u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 662u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 663u, 0u, 0u, 664u, 0u, 0u, 665u, 0u, 666u, 0u, 0u, 0u, 0u, 667u, 0u, 0u, 0u, 668u, 0u, 0u, 0u, 0u, 669u, 0u, 0u, 670u, 0u, 671u, 0u, 672u, + 0u, 673u, 0u, 674u, 675u, 0u, 676u, 0u, 677u, 0u, 678u, 0u, 679u, 0u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 682u, 0u, 683u, 0u, 0u, 0u, 0u, + 0u, 684u, 0u, 0u, 0u, 0u, 685u, 0u, 0u, 0u, 0u, 0u, 686u, 0u, 0u, 0u, 0u, 0u, 687u, 0u, 0u, 0u, 0u, 0u, 688u, 0u, 0u, 0u, 0u, 0u, 689u, 0u, + 0u, 0u, 0u, 0u, 690u, 0u, 691u, 0u, 0u, 0u, 0u, 692u, 0u, 0u, 0u, 0u, 0u, 693u, 0u, 0u, 0u, 0u, 0u, 694u, 0u, 0u, 0u, 0u, 0u, 695u, 696u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 697u, 0u, 698u, 0u, 0u, 0u, 0u, 0u, 699u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 701u, 702u, 0u, 703u, + 0u, 0u, 0u, 0u, 0u, 0u, 704u, 0u, 0u, 0u, 0u, 0u, 0u, 705u, 0u, 706u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 707u, 0u, 0u, 708u, 0u, 709u, 0u, 710u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 713u, 0u, 714u, 0u, 0u, 0u, 0u, 715u, + 0u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 717u, 0u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 0u, 720u, 0u, 0u, 0u, 0u, 721u, 0u, + 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, 0u, 0u, 723u, 0u, 0u, 0u, 0u, 0u, 724u, 0u, 0u, 0u, 0u, 0u, 725u, 0u, 0u, 0u, 0u, 0u, 726u, 0u, 727u, 0u, + 0u, 0u, 0u, 728u, 0u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 0u, 0u, 0u, 730u, 0u, 0u, 0u, 0u, 0u, 731u, 732u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 733u, + 0u, 734u, 0u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 0u, 0u, 736u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 737u, 738u, 0u, 739u, 0u, 0u, 0u, 0u, 740u, 0u, 0u, 0u, + 0u, 741u, 0u, 742u, 0u, 0u, 0u, 0u, 0u, 743u, 0u, 0u, 744u, 0u, 745u, 0u, 746u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 747u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 748u, 0u, 0u, 749u, 0u, 750u, 0u, 0u, 751u, 0u, 0u, 752u, 0u, 753u, 0u, + 0u, 0u, 754u, 0u, 0u, 0u, 755u, 0u, 0u, 756u, 0u, 757u, 0u, 0u, 758u, 0u, 0u, 0u, 0u, 0u, 759u, 0u, 0u, 760u, 0u, 0u, 0u, 761u, 0u, 0u, 762u, 0u, + 0u, 763u, 0u, 764u, 0u, 765u, 0u, 766u, 0u, 767u, 0u, 0u, 768u, 0u, 769u, 0u, 770u, 0u, 0u, 771u, 0u, 772u, 0u, 773u, 0u, 774u, 0u, 0u, 0u, 0u, 0u, 775u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 776u, 0u, 777u, 0u, 778u, 0u, 0u, 779u, 0u, 0u, 0u, 780u, 0u, 781u, 0u, 0u, 0u, 782u, 0u, 783u, 0u, 784u, 0u, 0u, + 785u, 0u, 0u, 0u, 0u, 786u, 0u, 0u, 0u, 0u, 787u, 0u, 0u, 0u, 0u, 788u, 0u, 0u, 0u, 0u, 789u, 0u, 0u, 0u, 0u, 790u, 0u, 0u, 0u, 0u, 791u, 0u, + 792u, 0u, 793u, 0u, 0u, 0u, 0u, 794u, 0u, 0u, 0u, 0u, 795u, 0u, 0u, 0u, 0u, 796u, 0u, 0u, 0u, 0u, 797u, 0u, 798u, 799u, 0u, 800u, 0u, 0u, 801u, 0u, + 0u, 802u, 0u, 0u, 803u, 0u, 804u, 0u, 805u, 0u, 0u, 0u, 0u, 0u, 806u, 0u, 807u, 0u, 808u, 809u, 0u, 810u, 0u, 811u, 0u, 812u, 813u, 0u, 814u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 815u, 0u, 816u, 0u, 0u, 0u, 0u, 0u, 817u, 0u, 0u, 0u, 0u, 818u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 819u, 820u, 0u, 821u, 0u, 822u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 823u, 0u, 824u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 825u, 0u, 0u, 826u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 827u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 828u, 0u, 0u, 829u, 0u, 830u, 0u, 0u, + 831u, 0u, 0u, 832u, 0u, 833u, 0u, 0u, 0u, 0u, 834u, 0u, 0u, 0u, 835u, 0u, 0u, 0u, 0u, 836u, 0u, 0u, 837u, 0u, 838u, 0u, 839u, 0u, 840u, 0u, 0u, 841u, + 0u, 842u, 0u, 843u, 0u, 844u, 0u, 0u, 0u, 0u, 0u, 845u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 846u, 0u, 847u, 0u, 848u, 0u, 0u, 849u, 0u, 0u, 0u, 850u, + 0u, 851u, 0u, 0u, 0u, 852u, 0u, 853u, 0u, 854u, 0u, 0u, 0u, 0u, 0u, 855u, 0u, 0u, 0u, 0u, 856u, 0u, 0u, 0u, 0u, 857u, 0u, 0u, 0u, 0u, 858u, 0u, + 0u, 0u, 0u, 859u, 0u, 0u, 0u, 0u, 860u, 0u, 0u, 0u, 0u, 861u, 0u, 862u, 0u, 0u, 0u, 0u, 863u, 0u, 0u, 0u, 0u, 864u, 0u, 0u, 0u, 0u, 865u, 0u, + 0u, 0u, 0u, 866u, 867u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 868u, 0u, 869u, 0u, 0u, 0u, 0u, 0u, 870u, 0u, 0u, 0u, 0u, 871u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 872u, 873u, 0u, 874u, 0u, 875u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 876u, 0u, 877u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 878u, 0u, 0u, 879u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 880u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 881u, 0u, 0u, 882u, 0u, 883u, 0u, 0u, 0u, 0u, 884u, + 0u, 0u, 0u, 885u, 0u, 0u, 0u, 0u, 0u, 0u, 886u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 887u, 0u, 888u, 0u, 889u, 0u, 0u, 890u, 0u, 0u, 0u, 891u, 0u, + 892u, 0u, 0u, 0u, 893u, 0u, 894u, 0u, 0u, 0u, 0u, 0u, 895u, 0u, 0u, 0u, 0u, 896u, 0u, 0u, 0u, 0u, 897u, 0u, 0u, 0u, 0u, 898u, 0u, 0u, 0u, 0u, + 899u, 0u, 0u, 0u, 0u, 900u, 0u, 0u, 0u, 0u, 901u, 0u, 902u, 0u, 0u, 0u, 0u, 903u, 0u, 0u, 0u, 0u, 904u, 0u, 0u, 0u, 0u, 905u, 0u, 0u, 0u, 0u, + 906u, 907u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 908u, 0u, 909u, 0u, 0u, 0u, 0u, 0u, 910u, 0u, 0u, 0u, 0u, 911u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 912u, + 913u, 0u, 914u, 0u, 915u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 916u, 0u, 917u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 918u, 0u, 0u, 919u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 920u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 921u, 0u, 0u, 922u, + 0u, 923u, 0u, 0u, 0u, 0u, 924u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 925u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 926u, 0u, 0u, 0u, 0u, 0u, 927u, 0u, + 928u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 929u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 930u, 0u, 0u, 0u, 0u, 931u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 932u, 0u, 933u, 0u, 934u, 0u, 0u, 0u, 0u, 0u, 935u, 0u, 0u, 936u, 0u, 937u, 0u, 0u, 938u, 0u, 939u, 0u, 940u, 0u, 941u, 0u, 0u, + 942u, 0u, 943u, 0u, 944u, 0u, 945u, 0u, 946u, 0u, 0u, 947u, 0u, 0u, 0u, 0u, 948u, 0u, 0u, 0u, 0u, 949u, 0u, 0u, 0u, 0u, 950u, 0u, 0u, 0u, 0u, 951u, + 0u, 0u, 0u, 0u, 952u, 0u, 0u, 0u, 0u, 953u, 0u, 954u, 0u, 955u, 0u, 0u, 0u, 0u, 956u, 0u, 0u, 0u, 0u, 957u, 0u, 0u, 0u, 0u, 958u, +}; + void recomp_unit_0024_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,6,31,16 fprs=12,13,14,20 gpr_occ=2971 fpr_occ=628 gpr_total=4508 fpr_total=1108 @@ -58,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08864000u; - entry_id = 0u; - if (entry_delta < 16372u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0024[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0024[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16372u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0024[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08864000; @@ -1036,6 +1160,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08864000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1052,8 +1200,21 @@ LOCAL_SCHED_BOUNDARY: L_08864000: aot_gpr_31 = (0x08864008u); aot_gpr_5 = (0u | 38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 2u, 0x08864008u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864008u) goto L_08864008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864008: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (65535u << 16u); @@ -1071,8 +1232,21 @@ L_08864020: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08864030u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 4u, 0x08864030u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864030u) goto L_08864030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864030: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (1u << 16u); @@ -1117,8 +1291,21 @@ L_08864070: L_08864084: aot_gpr_31 = (0x0886408Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 10u, 0x0886408Cu, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886408Cu) goto L_0886408C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886408C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); @@ -1126,8 +1313,21 @@ L_0886408C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088640A4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 11u, 0x088640A4u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088640A4u) goto L_088640A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088640A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (65532u << 16u); @@ -1145,13 +1345,39 @@ L_088640A4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x088640E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 12u, 0x088640E4u, 0x08882930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 452u, 0x08882930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088640E4u) goto L_088640E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088640E4: aot_gpr_31 = (0x088640ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 13u, 0x088640ECu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088640ECu) goto L_088640EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088640EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1197,8 +1423,21 @@ L_08864130: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0886413Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 20u, 0x0886413Cu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886413Cu) goto L_0886413C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886413C: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -1210,8 +1449,21 @@ L_08864144: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08864150u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 22u, 0x08864150u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864150u) goto L_08864150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864150: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886415Cu); @@ -1230,8 +1482,8 @@ L_0886415C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886417C: @@ -1261,8 +1513,21 @@ L_088641A0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(613), static_cast(aot_gpr_4)); aot_gpr_31 = (0x088641B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 27u, 0x088641B8u, 0x08B41658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 369u, 0x08B41658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088641B8u) goto L_088641B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088641B8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(612), static_cast(aot_gpr_4)); @@ -1278,8 +1543,8 @@ L_088641D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088641E8: @@ -1319,8 +1584,8 @@ L_08864200: goto L_08864240; L_08864240: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864248: @@ -1426,8 +1691,8 @@ L_0886436C: } L_0886438C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864394: @@ -1459,8 +1724,21 @@ L_088643CC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), ctx.gpr[18]); aot_gpr_31 = (0x088643E8u); aot_gpr_5 = (aot_gpr_5 + aot_gpr_16); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 42u, 0x088643E8u, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088643E8u) goto L_088643E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088643E8: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7984))); @@ -1483,8 +1761,8 @@ L_08864400: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886441C: @@ -1590,8 +1868,8 @@ L_08864544: } L_0886457C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864584: @@ -1629,8 +1907,8 @@ L_088645C0: goto L_088645D4; L_088645D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088645DC: @@ -1674,8 +1952,8 @@ L_08864618: } L_08864620: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864628: @@ -1723,8 +2001,21 @@ L_08864688: ctx.gpr[11] = (0u | 2048u); aot_gpr_31 = (0x088646ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 61u, 0x088646ACu, 0x088ABA2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 572u, 0x088ABA2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088646ACu) goto L_088646AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088646AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1752,8 +2043,21 @@ L_088646BC: ctx.gpr[11] = (0u | 1024u); aot_gpr_31 = (0x088646F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 64u, 0x088646F0u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088646F0u) goto L_088646F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088646F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1774,8 +2078,21 @@ L_088646F8: ctx.gpr[11] = (0u | 2048u); aot_gpr_31 = (0x0886472Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 66u, 0x0886472Cu, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886472Cu) goto L_0886472C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886472C: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (ctx.gpr[19] < static_cast(16) ? 1u : 0u); @@ -1799,8 +2116,8 @@ L_0886473C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864760: @@ -1864,8 +2181,8 @@ L_088647C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088647D0: @@ -1901,8 +2218,8 @@ L_08864810: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886481C: @@ -1951,8 +2268,21 @@ L_0886489C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088648A8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 82u, 0x088648A8u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088648A8u) goto L_088648A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088648A8: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088648AC; @@ -2011,8 +2341,21 @@ L_08864904: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08864944u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 88u, 0x08864944u, 0x08899BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 327u, 0x08899BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864944u) goto L_08864944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864944: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2033,8 +2376,21 @@ L_08864950: ctx.gpr[9] = (0u | 16u); aot_gpr_31 = (0x08864980u); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 90u, 0x08864980u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864980u) goto L_08864980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864980: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2049,8 +2405,21 @@ L_0886498C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x088649A4u); aot_gpr_5 = (aot_gpr_29 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 92u, 0x088649A4u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088649A4u) goto L_088649A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088649A4: aot_gpr_4 = (ctx.gpr[2] << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -2068,8 +2437,21 @@ L_088649A4: ctx.gpr[9] = (0u | 16u); aot_gpr_31 = (0x088649E4u); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 93u, 0x088649E4u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088649E4u) goto L_088649E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088649E4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); aot_gpr_4 = (0u | 0u); @@ -2189,8 +2571,21 @@ L_08864A90: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08864A9Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 100u, 0x08864A9Cu, 0x08A3CC2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 164u, 0x08A3CC2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864A9Cu) goto L_08864A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864A9C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -2216,8 +2611,8 @@ L_08864AB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864AE8: @@ -2378,8 +2773,8 @@ L_08864BDC: goto L_08864BF8; L_08864BF8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864C00: @@ -2527,8 +2922,8 @@ L_08864CD0: goto L_08864CDC; L_08864CDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864CE4: @@ -2558,8 +2953,21 @@ L_08864D0C: L_08864D28: aot_gpr_31 = (0x08864D30u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 147u, 0x08864D30u, 0x08A3CC2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 164u, 0x08A3CC2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864D30u) goto L_08864D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864D30: { const std::uint32_t aot_run_words[3]{0u, aot_gpr_16, aot_gpr_16}; aot_mem.aot_direct_store32_block(ctx.gpr[17] + static_cast(0), aot_run_words); } @@ -2585,8 +2993,8 @@ L_08864D50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864D6C: @@ -2623,8 +3031,8 @@ L_08864DA0: } L_08864DB4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864DBC: @@ -2639,14 +3047,27 @@ L_08864DBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08864DE8u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(17104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 156u, 0x08864DE8u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864DE8u) goto L_08864DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864DE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08864DF4: @@ -2676,12 +3097,38 @@ L_08864DF4: L_08864E50: aot_gpr_31 = (0x08864E58u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(2308), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 159u, 0x08864E58u, 0x08B2331Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 645u, 0x08B2331Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864E58u) goto L_08864E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864E58: aot_gpr_31 = (0x08864E60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 160u, 0x08864E60u, 0x08AB4B00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 144u, 0x08AB4B00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864E60u) goto L_08864E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864E60: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2705,13 +3152,39 @@ L_08864E60: L_08864E98: aot_gpr_31 = (0x08864EA0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 162u, 0x08864EA0u, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864EA0u) goto L_08864EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864EA0: aot_gpr_31 = (0x08864EA8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 163u, 0x08864EA8u, 0x08A1D1F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 203u, 0x08A1D1F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864EA8u) goto L_08864EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864EA8: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -2732,8 +3205,21 @@ L_08864EBC: L_08864EC4: aot_gpr_31 = (0x08864ECCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 167u, 0x08864ECCu, 0x089BB010u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 643u, 0x089BB010u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864ECCu) goto L_08864ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864ECC: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -2754,8 +3240,21 @@ L_08864EE0: L_08864EE8: aot_gpr_31 = (0x08864EF0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 171u, 0x08864EF0u, 0x089BAFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 640u, 0x089BAFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864EF0u) goto L_08864EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864EF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-1044))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2768,8 +3267,21 @@ L_08864EFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); aot_gpr_31 = (0x08864F08u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 173u, 0x08864F08u, 0x088DE1D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 350u, 0x088DE1D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864F08u) goto L_08864F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864F08: ctx.gpr[21] = (0u | 0u); goto L_08864F0C; @@ -2777,8 +3289,21 @@ L_08864F0C: aot_gpr_5 = (ctx.gpr[21] & 255u); aot_gpr_31 = (0x08864F18u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 175u, 0x08864F18u, 0x08A06744u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 622u, 0x08A06744u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864F18u) goto L_08864F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864F18: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); ctx.gpr[21] = (ctx.gpr[21] & 65535u); @@ -2791,8 +3316,21 @@ L_08864F18: } L_08864F2C: aot_gpr_31 = (0x08864F34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 177u, 0x08864F34u, 0x08AFB4F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 475u, 0x08AFB4F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864F34u) goto L_08864F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864F34: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2803,8 +3341,21 @@ L_08864F34: } L_08864F40: aot_gpr_31 = (0x08864F48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 179u, 0x08864F48u, 0x08AD31E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 538u, 0x08AD31E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864F48u) goto L_08864F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864F48: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2822,8 +3373,21 @@ L_08864F5C: goto L_08864F60; L_08864F60: aot_gpr_31 = (0x08864F68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 183u, 0x08864F68u, 0x089BAA70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 555u, 0x089BAA70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864F68u) goto L_08864F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864F68: aot_gpr_5 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -2849,8 +3413,21 @@ L_08864F84: goto L_08864F88; L_08864F88: aot_gpr_31 = (0x08864F90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 188u, 0x08864F90u, 0x089BAA70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 555u, 0x089BAA70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864F90u) goto L_08864F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864F90: aot_gpr_5 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -2877,8 +3454,21 @@ L_08864FAC: L_08864FB0: aot_gpr_31 = (0x08864FB8u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 193u, 0x08864FB8u, 0x089BB19Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 669u, 0x089BB19Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864FB8u) goto L_08864FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864FB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); goto L_08864FBC; @@ -2904,8 +3494,21 @@ L_08864FD4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08864FE8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 198u, 0x08864FE8u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08864FE8u) goto L_08864FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08864FE8: aot_gpr_4 = (2240u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); @@ -2924,8 +3527,21 @@ L_08864FE8: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(2318), static_cast(aot_gpr_6)); aot_gpr_31 = (0x0886502Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 199u, 0x0886502Cu, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886502Cu) goto L_0886502C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886502C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(3261)))))); @@ -2941,8 +3557,21 @@ L_0886504C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08865058u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 201u, 0x08865058u, 0x0898BB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 953u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 953u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 953u, 0x0898BB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865058u) goto L_08865058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865058: aot_gpr_4 = (16262u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); @@ -2965,8 +3594,21 @@ L_08865084: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08865094u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 204u, 0x08865094u, 0x08A06824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 635u, 0x08A06824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865094u) goto L_08865094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865094: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(1786), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(1787), static_cast(0u)); @@ -2976,18 +3618,57 @@ L_08865094: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7992), static_cast(ctx.gpr[21])); aot_gpr_31 = (0x088650B4u); aot_gpr_4 = (aot_gpr_4 + static_cast(22192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 205u, 0x088650B4u, 0x08861DF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 293u, 0x08861DF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088650B4u) goto L_088650B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088650B4: aot_gpr_4 = (2239u << 16u); aot_gpr_31 = (0x088650C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(22240)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 206u, 0x088650C0u, 0x08862038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 329u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 329u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 329u, 0x08862038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088650C0u) goto L_088650C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088650C0: aot_gpr_31 = (0x088650C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 207u, 0x088650C8u, 0x088807A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 66u, 0x088807A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088650C8u) goto L_088650C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088650C8: ctx.gpr[19] = (aot_gpr_16 | 0u); ctx.gpr[18] = (0u | 0u); @@ -3090,8 +3771,21 @@ L_08865150: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08865160u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 222u, 0x08865160u, 0x08863EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 786u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 786u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 786u, 0x08863EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865160u) goto L_08865160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865160: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(4))); { const bool branch_taken = 0u == 0u; @@ -3150,8 +3844,21 @@ L_088651BC: goto L_088651C0; L_088651C0: aot_gpr_31 = (0x088651C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 231u, 0x088651C8u, 0x08AD368Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 606u, 0x08AD368Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088651C8u) goto L_088651C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088651C8: aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[2]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3163,8 +3870,21 @@ L_088651C8: L_088651D4: aot_gpr_31 = (0x088651DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 233u, 0x088651DCu, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088651DCu) goto L_088651DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088651DC: aot_gpr_4 = (ctx.gpr[2] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3176,8 +3896,21 @@ L_088651DC: L_088651E8: aot_gpr_31 = (0x088651F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 235u, 0x088651F0u, 0x08AD37C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 625u, 0x08AD37C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088651F0u) goto L_088651F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088651F0: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -3200,8 +3933,8 @@ L_088651F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08865220: @@ -3290,8 +4023,21 @@ L_088652B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x088652C0u); aot_gpr_5 = (ctx.gpr[18] + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 248u, 0x088652C0u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088652C0u) goto L_088652C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088652C0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3305,8 +4051,21 @@ L_088652CC: goto L_088652D0; L_088652D0: aot_gpr_31 = (0x088652D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 251u, 0x088652D8u, 0x088099A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 325u, 0x088099A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088652D8u) goto L_088652D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088652D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -3359,8 +4118,21 @@ L_0886531C: L_08865324: aot_gpr_31 = (0x0886532Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 258u, 0x0886532Cu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886532Cu) goto L_0886532C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886532C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3460,8 +4232,21 @@ L_088653A8: L_088653B0: aot_gpr_31 = (0x088653B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 273u, 0x088653B8u, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088653B8u) goto L_088653B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088653B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 2048u); @@ -3492,8 +4277,21 @@ L_088653E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x088653F0u); aot_gpr_5 = (ctx.gpr[18] + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 278u, 0x088653F0u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088653F0u) goto L_088653F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088653F0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3555,8 +4353,21 @@ L_08865440: } L_08865448: aot_gpr_31 = (0x08865450u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 287u, 0x08865450u, 0x088099A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 325u, 0x088099A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865450u) goto L_08865450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865450: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3601,8 +4412,21 @@ L_0886548C: L_08865494: aot_gpr_31 = (0x0886549Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 293u, 0x0886549Cu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886549Cu) goto L_0886549C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886549C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3650,8 +4474,21 @@ L_088654D4: } L_088654DC: aot_gpr_31 = (0x088654E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 300u, 0x088654E4u, 0x088099A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 325u, 0x088099A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088654E4u) goto L_088654E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088654E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3693,8 +4530,21 @@ L_08865514: L_0886551C: aot_gpr_31 = (0x08865524u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 306u, 0x08865524u, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865524u) goto L_08865524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865524: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 2048u); @@ -3725,8 +4575,21 @@ L_08865550: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x0886555Cu); aot_gpr_5 = (ctx.gpr[18] + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 311u, 0x0886555Cu, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886555Cu) goto L_0886555C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886555C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3740,8 +4603,21 @@ L_08865568: goto L_0886556C; L_0886556C: aot_gpr_31 = (0x08865574u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 314u, 0x08865574u, 0x088099A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 325u, 0x088099A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865574u) goto L_08865574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865574: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3794,8 +4670,21 @@ L_088655BC: L_088655C4: aot_gpr_31 = (0x088655CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 321u, 0x088655CCu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088655CCu) goto L_088655CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088655CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3837,8 +4726,21 @@ L_088655FC: L_08865604: aot_gpr_31 = (0x0886560Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 327u, 0x0886560Cu, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886560Cu) goto L_0886560C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886560C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 2048u); @@ -3876,8 +4778,8 @@ L_08865634: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886565C: @@ -4020,8 +4922,21 @@ L_08865748: } L_08865754: aot_gpr_31 = (0x0886575Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 349u, 0x0886575Cu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886575Cu) goto L_0886575C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886575C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4088,8 +5003,21 @@ L_088657BC: } L_088657C8: aot_gpr_31 = (0x088657D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 358u, 0x088657D0u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088657D0u) goto L_088657D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088657D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4156,8 +5084,21 @@ L_08865830: } L_0886583C: aot_gpr_31 = (0x08865844u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 367u, 0x08865844u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865844u) goto L_08865844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865844: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4197,8 +5138,8 @@ L_08865874: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886589C: @@ -4225,8 +5166,8 @@ L_088658C8: ctx.gpr[10] = (ctx.gpr[10] + ctx.gpr[12]); ctx.gpr[10] = (aot_mem.aot_direct_load32(ctx.gpr[10] + static_cast(0))); jump_target = ctx.gpr[10]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088658DC: @@ -4241,8 +5182,21 @@ L_088658DC: aot_gpr_6 = (0u + static_cast(0)); aot_gpr_31 = (0x08865908u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[8]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 375u, 0x08865908u, 0x08861A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 247u, 0x08861A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865908u) goto L_08865908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865908: ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_5 = (ctx.vfpu_scalar_bits_ct<29u>()); @@ -4439,8 +5393,8 @@ L_08865A4C: aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(0), aot_gpr_5); ctx.gpr[2] = (aot_gpr_6 | 0u); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08865A64: @@ -4478,8 +5432,21 @@ L_08865ADC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08865AECu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 401u, 0x08865AECu, 0x0886292Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 437u, 0x0886292Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865AECu) goto L_08865AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865AEC: ctx.gpr[30] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); @@ -4498,8 +5465,21 @@ L_08865AFC: L_08865B08: aot_gpr_31 = (0x08865B10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 404u, 0x08865B10u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865B10u) goto L_08865B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865B10: ctx.gpr[21] = (ctx.gpr[17] + static_cast(-128)); ctx.gpr[23] = (ctx.gpr[21] < static_cast(15) ? 1u : 0u); @@ -4584,8 +5564,8 @@ L_08865B68: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25776))); jump_target = ctx.gpr[1]; ctx.gpr[21] = (static_cast(static_cast(ctx.gpr[21]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08865B80: @@ -4599,8 +5579,21 @@ L_08865B88: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08865B94u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 414u, 0x08865B94u, 0x08863CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 745u, 0x08863CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865B94u) goto L_08865B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865B94: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4652,8 +5645,21 @@ L_08865BEC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08865BF8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 421u, 0x08865BF8u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865BF8u) goto L_08865BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865BF8: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -4846,8 +5852,8 @@ L_08865D68: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[21]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25712))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08865D80: @@ -4861,8 +5867,21 @@ L_08865D80: L_08865D8C: aot_gpr_31 = (0x08865D94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 445u, 0x08865D94u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865D94u) goto L_08865D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865D94: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4883,8 +5902,21 @@ L_08865DA0: L_08865DA8: aot_gpr_31 = (0x08865DB0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 449u, 0x08865DB0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865DB0u) goto L_08865DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865DB0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5008,8 +6040,21 @@ L_08865E94: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08865EA0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 463u, 0x08865EA0u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865EA0u) goto L_08865EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865EA0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[16] = std::bit_cast(std::bit_cast(aot_fpr_12)); @@ -5021,8 +6066,21 @@ L_08865EA8: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08865EC0u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 465u, 0x08865EC0u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865EC0u) goto L_08865EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865EC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5038,8 +6096,21 @@ L_08865EC8: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08865EE4u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 467u, 0x08865EE4u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08865EE4u) goto L_08865EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08865EE4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5084,8 +6155,8 @@ L_08865F00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08865F48: @@ -5169,8 +6240,21 @@ L_08866000: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0886600Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 482u, 0x0886600Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886600Cu) goto L_0886600C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886600C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5227,8 +6311,21 @@ L_08866038: L_08866044: aot_gpr_31 = (0x0886604Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 487u, 0x0886604Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886604Cu) goto L_0886604C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886604C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5470,8 +6567,8 @@ L_088661FC: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[17]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25648))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08866214: @@ -5485,8 +6582,21 @@ L_08866214: L_08866220: aot_gpr_31 = (0x08866228u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 514u, 0x08866228u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866228u) goto L_08866228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866228: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5507,8 +6617,21 @@ L_08866234: L_0886623C: aot_gpr_31 = (0x08866244u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 518u, 0x08866244u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866244u) goto L_08866244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866244: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5614,8 +6737,21 @@ L_088662E4: ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[22]; aot_gpr_31 = (0x0886630Cu); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 530u, 0x0886630Cu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886630Cu) goto L_0886630C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886630C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5635,8 +6771,21 @@ L_08866314: aot_gpr_5 = (49864u << 16u); aot_gpr_31 = (0x08866340u); ctx.fpr[16] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 532u, 0x08866340u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866340u) goto L_08866340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866340: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5675,8 +6824,8 @@ L_0886635C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886638C: @@ -5759,8 +6908,21 @@ L_08866440: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0886644Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 547u, 0x0886644Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886644Cu) goto L_0886644C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886644C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6054,8 +7216,21 @@ L_08866630: L_0886663C: aot_gpr_31 = (0x08866644u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 577u, 0x08866644u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866644u) goto L_08866644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866644: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6076,8 +7251,21 @@ L_08866650: L_08866658: aot_gpr_31 = (0x08866660u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 581u, 0x08866660u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866660u) goto L_08866660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866660: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6183,8 +7371,21 @@ L_08866700: ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[22]; aot_gpr_31 = (0x08866728u); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 593u, 0x08866728u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866728u) goto L_08866728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866728: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6204,8 +7405,21 @@ L_08866730: aot_gpr_5 = (49864u << 16u); aot_gpr_31 = (0x0886675Cu); ctx.fpr[16] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 595u, 0x0886675Cu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886675Cu) goto L_0886675C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886675C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6244,8 +7458,8 @@ L_08866778: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088667A8: @@ -6328,8 +7542,21 @@ L_0886685C: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08866868u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 610u, 0x08866868u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866868u) goto L_08866868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866868: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6623,8 +7850,21 @@ L_08866A4C: L_08866A58: aot_gpr_31 = (0x08866A60u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 640u, 0x08866A60u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866A60u) goto L_08866A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866A60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6645,8 +7885,21 @@ L_08866A6C: L_08866A74: aot_gpr_31 = (0x08866A7Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 644u, 0x08866A7Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866A7Cu) goto L_08866A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866A7C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6752,8 +8005,21 @@ L_08866B1C: ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[22]; aot_gpr_31 = (0x08866B44u); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 656u, 0x08866B44u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866B44u) goto L_08866B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866B44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6773,8 +8039,21 @@ L_08866B4C: aot_gpr_5 = (49864u << 16u); aot_gpr_31 = (0x08866B78u); ctx.fpr[16] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 658u, 0x08866B78u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866B78u) goto L_08866B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866B78: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6813,8 +8092,8 @@ L_08866B94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08866BC4: @@ -6861,8 +8140,21 @@ L_08866C28: ctx.gpr[22] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08866C3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 667u, 0x08866C3Cu, 0x0886292Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 437u, 0x0886292Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866C3Cu) goto L_08866C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866C3C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); @@ -6924,8 +8216,21 @@ L_08866C8C: L_08866C90: aot_gpr_31 = (0x08866C98u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 676u, 0x08866C98u, 0x08863D9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 761u, 0x08863D9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866C98u) goto L_08866C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866C98: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -7203,8 +8508,21 @@ L_08866E98: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16])); aot_gpr_31 = (0x08866EB4u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 705u, 0x08866EB4u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866EB4u) goto L_08866EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866EB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7221,8 +8539,21 @@ L_08866EBC: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16])); aot_gpr_31 = (0x08866EDCu); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 707u, 0x08866EDCu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866EDCu) goto L_08866EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866EDC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7259,8 +8590,8 @@ L_08866EF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08866F20: @@ -7297,8 +8628,21 @@ L_08866F68: ctx.gpr[20] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08866F7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 715u, 0x08866F7Cu, 0x0886292Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 437u, 0x0886292Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08866F7Cu) goto L_08866F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08866F7C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); @@ -7555,8 +8899,21 @@ L_08867170: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08867184u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 741u, 0x08867184u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867184u) goto L_08867184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867184: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7571,8 +8928,21 @@ L_0886718C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088671A4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 743u, 0x088671A4u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088671A4u) goto L_088671A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088671A4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7607,8 +8977,8 @@ L_088671C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088671E0: @@ -7670,8 +9040,21 @@ L_08867278: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08867288u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 754u, 0x08867288u, 0x0886292Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 437u, 0x0886292Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867288u) goto L_08867288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867288: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); @@ -7683,8 +9066,21 @@ L_08867298: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088672A4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 756u, 0x088672A4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088672A4u) goto L_088672A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088672A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7816,8 +9212,21 @@ L_08867340: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0886734Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 771u, 0x0886734Cu, 0x08863CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 745u, 0x08863CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886734Cu) goto L_0886734C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886734C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8090,15 +9499,28 @@ L_08867520: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25600))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08867538: aot_gpr_31 = (0x08867540u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 807u, 0x08867540u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867540u) goto L_08867540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867540: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8119,8 +9541,21 @@ L_0886754C: L_08867554: aot_gpr_31 = (0x0886755Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 811u, 0x0886755Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886755Cu) goto L_0886755C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886755C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8225,8 +9660,21 @@ L_088675FC: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08867624u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 823u, 0x08867624u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867624u) goto L_08867624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867624: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8243,8 +9691,21 @@ L_0886762C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0886764Cu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 825u, 0x0886764Cu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886764Cu) goto L_0886764C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886764C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8274,8 +9735,8 @@ L_08867658: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886769C: @@ -8337,8 +9798,21 @@ L_08867714: ctx.gpr[22] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08867728u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 834u, 0x08867728u, 0x0886292Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 437u, 0x0886292Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867728u) goto L_08867728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867728: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); @@ -8391,8 +9865,21 @@ L_08867770: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); aot_gpr_31 = (0x0886777Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 841u, 0x0886777Cu, 0x08863D9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 761u, 0x08863D9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886777Cu) goto L_0886777C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886777C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -8697,8 +10184,21 @@ L_0886799C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); aot_gpr_31 = (0x088679C4u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[19])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 876u, 0x088679C4u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088679C4u) goto L_088679C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088679C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8715,8 +10215,21 @@ L_088679CC: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); aot_gpr_31 = (0x088679ECu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[19])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 878u, 0x088679ECu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088679ECu) goto L_088679EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088679EC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8739,8 +10252,8 @@ L_088679F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08867A20: @@ -8777,8 +10290,21 @@ L_08867A68: ctx.gpr[20] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08867A7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 884u, 0x08867A7Cu, 0x0886292Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 437u, 0x0886292Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867A7Cu) goto L_08867A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867A7C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); @@ -9065,8 +10591,21 @@ L_08867C90: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); aot_gpr_31 = (0x08867CB8u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[19])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 916u, 0x08867CB8u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867CB8u) goto L_08867CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867CB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9083,8 +10622,21 @@ L_08867CC0: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); aot_gpr_31 = (0x08867CE0u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[19])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 918u, 0x08867CE0u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867CE0u) goto L_08867CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867CE0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9105,8 +10657,8 @@ L_08867CEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08867D0C: @@ -9145,8 +10697,21 @@ L_08867D84: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(20), static_cast(ctx.gpr[18])); aot_gpr_31 = (0x08867D98u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 924u, 0x08867D98u, 0x0886292Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 437u, 0x0886292Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867D98u) goto L_08867D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867D98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), ctx.gpr[2]); @@ -9187,8 +10752,21 @@ L_08867DE0: goto L_08867DF8; L_08867DF8: aot_gpr_31 = (0x08867E00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 928u, 0x08867E00u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867E00u) goto L_08867E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867E00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[2]); @@ -9226,8 +10804,21 @@ L_08867E60: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(29704))); aot_gpr_31 = (0x08867E74u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 931u, 0x08867E74u, 0x08818B00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 96u, 0x08818B00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867E74u) goto L_08867E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867E74: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -9244,8 +10835,21 @@ L_08867E74: L_08867E94: aot_gpr_31 = (0x08867E9Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 933u, 0x08867E9Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867E9Cu) goto L_08867E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867E9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9333,8 +10937,21 @@ L_08867EF4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08867F00u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0024->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0024_entry, 942u, 0x08867F00u, 0x08863CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 745u, 0x08863CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08867F00u) goto L_08867F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08867F00: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0025.cpp b/profiles/vcs/generated/generated_unit_0025.cpp index 456d20c..e63fe2c 100644 --- a/profiles/vcs/generated/generated_unit_0025.cpp +++ b/profiles/vcs/generated/generated_unit_0025.cpp @@ -896,6 +896,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08868004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -978,8 +1002,21 @@ L_08868048: L_08868054: aot_gpr_31 = (0x0886805Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 11u, 0x0886805Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886805Cu) goto L_0886805C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886805C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1000,8 +1037,21 @@ L_08868068: L_08868070: aot_gpr_31 = (0x08868078u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 15u, 0x08868078u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868078u) goto L_08868078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868078: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1131,8 +1181,21 @@ L_08868158: ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_31 = (0x08868170u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 30u, 0x08868170u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868170u) goto L_08868170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868170: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1148,8 +1211,21 @@ L_08868178: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08868194u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 32u, 0x08868194u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868194u) goto L_08868194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868194: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1194,8 +1270,8 @@ L_088681B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088681F8: @@ -1248,8 +1324,21 @@ L_08868274: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08868288u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 42u, 0x08868288u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868288u) goto L_08868288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868288: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1262,8 +1351,21 @@ L_08868290: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x088682A0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 44u, 0x088682A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088682A0u) goto L_088682A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088682A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x088682ACu); @@ -1274,8 +1376,21 @@ L_088682AC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088682B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 46u, 0x088682B8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088682B8u) goto L_088682B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088682B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1348,8 +1463,21 @@ L_0886830C: ctx.gpr[19] = (0u | 1u); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0886831Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 53u, 0x0886831Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886831Cu) goto L_0886831C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886831C: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(29704))); @@ -1380,8 +1508,21 @@ L_08868350: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08868360u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 57u, 0x08868360u, 0x08818B00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 96u, 0x08818B00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868360u) goto L_08868360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868360: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -1398,8 +1539,21 @@ L_08868360: L_08868380: aot_gpr_31 = (0x08868388u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 59u, 0x08868388u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868388u) goto L_08868388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868388: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1648,8 +1802,21 @@ L_08868534: L_0886853C: aot_gpr_31 = (0x08868544u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 85u, 0x08868544u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868544u) goto L_08868544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868544: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1670,8 +1837,21 @@ L_08868550: L_08868558: aot_gpr_31 = (0x08868560u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 89u, 0x08868560u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868560u) goto L_08868560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868560: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1797,8 +1977,21 @@ L_08868620: ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[22]; aot_gpr_31 = (0x08868648u); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 104u, 0x08868648u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868648u) goto L_08868648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868648: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1818,8 +2011,21 @@ L_08868650: aot_gpr_5 = (49864u << 16u); aot_gpr_31 = (0x0886867Cu); ctx.fpr[16] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 106u, 0x0886867Cu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886867Cu) goto L_0886867C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886867C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1861,8 +2067,8 @@ L_08868698: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088686D4: @@ -1914,8 +2120,21 @@ L_0886874C: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08868760u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 116u, 0x08868760u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868760u) goto L_08868760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868760: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1928,8 +2147,21 @@ L_08868768: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08868778u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 118u, 0x08868778u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868778u) goto L_08868778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868778: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08868784u); @@ -1978,8 +2210,21 @@ L_088687BC: ctx.gpr[19] = (0u | 1u); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x088687CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 123u, 0x088687CCu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088687CCu) goto L_088687CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088687CC: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(29704))); @@ -2010,8 +2255,21 @@ L_08868800: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08868810u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 127u, 0x08868810u, 0x08818B00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 96u, 0x08818B00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868810u) goto L_08868810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868810: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -2028,8 +2286,21 @@ L_08868810: L_08868830: aot_gpr_31 = (0x08868838u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 129u, 0x08868838u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868838u) goto L_08868838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868838: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2278,8 +2549,21 @@ L_088689E4: L_088689EC: aot_gpr_31 = (0x088689F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 155u, 0x088689F4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088689F4u) goto L_088689F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088689F4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2300,8 +2584,21 @@ L_08868A00: L_08868A08: aot_gpr_31 = (0x08868A10u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 159u, 0x08868A10u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868A10u) goto L_08868A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868A10: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2429,8 +2726,21 @@ L_08868AD8: ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[22]; aot_gpr_31 = (0x08868B00u); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 174u, 0x08868B00u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868B00u) goto L_08868B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868B00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2450,8 +2760,21 @@ L_08868B08: aot_gpr_5 = (49864u << 16u); aot_gpr_31 = (0x08868B34u); ctx.fpr[16] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 176u, 0x08868B34u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868B34u) goto L_08868B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868B34: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2493,8 +2816,8 @@ L_08868B50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08868B8C: @@ -2521,8 +2844,8 @@ L_08868BF0: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25560))); jump_target = ctx.gpr[1]; ctx.gpr[20] = (static_cast(static_cast(ctx.gpr[20]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08868C08: @@ -2550,8 +2873,21 @@ L_08868C20: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08868C34u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 186u, 0x08868C34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868C34u) goto L_08868C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868C34: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(20), static_cast(ctx.gpr[17])); @@ -2568,8 +2904,21 @@ L_08868C40: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08868C50u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 189u, 0x08868C50u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868C50u) goto L_08868C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868C50: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(20), static_cast(ctx.gpr[17])); goto L_08868C54; @@ -2650,8 +2999,21 @@ L_08868CE4: ctx.gpr[19] = (0u | 1u); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08868CF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 200u, 0x08868CF4u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868CF4u) goto L_08868CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868CF4: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(29704))); @@ -2684,8 +3046,21 @@ L_08868D2C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(29704))); aot_gpr_31 = (0x08868D40u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 204u, 0x08868D40u, 0x08818B00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 96u, 0x08818B00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868D40u) goto L_08868D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868D40: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -2702,8 +3077,21 @@ L_08868D40: L_08868D60: aot_gpr_31 = (0x08868D68u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 206u, 0x08868D68u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868D68u) goto L_08868D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868D68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2763,8 +3151,8 @@ L_08868D9C: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25528))); jump_target = ctx.gpr[1]; ctx.gpr[20] = (static_cast(static_cast(ctx.gpr[20]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08868DB4: @@ -2778,8 +3166,21 @@ L_08868DBC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08868DC8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 213u, 0x08868DC8u, 0x08863CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 745u, 0x08863CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868DC8u) goto L_08868DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868DC8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2952,8 +3353,8 @@ L_08868EEC: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25496))); jump_target = ctx.gpr[1]; ctx.gpr[20] = (static_cast(static_cast(ctx.gpr[20]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08868F04: @@ -2967,8 +3368,21 @@ L_08868F04: L_08868F10: aot_gpr_31 = (0x08868F18u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 237u, 0x08868F18u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868F18u) goto L_08868F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868F18: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2989,8 +3403,21 @@ L_08868F24: L_08868F2C: aot_gpr_31 = (0x08868F34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 241u, 0x08868F34u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08868F34u) goto L_08868F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08868F34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3120,8 +3547,21 @@ L_08869000: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0886902Cu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 256u, 0x0886902Cu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886902Cu) goto L_0886902C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886902C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3139,8 +3579,21 @@ L_08869034: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08869058u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 258u, 0x08869058u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869058u) goto L_08869058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869058: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3171,8 +3624,8 @@ L_08869064: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088690AC: @@ -3199,14 +3652,40 @@ L_088690AC: L_0886912C: aot_gpr_31 = (0x08869134u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 262u, 0x08869134u, 0x088623ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 369u, 0x088623ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869134u) goto L_08869134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869134: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08869140u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 263u, 0x08869140u, 0x088626F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 415u, 0x088626F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869140u) goto L_08869140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869140: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 128 ? 1u : 0u); @@ -3221,26 +3700,78 @@ L_08869150: aot_gpr_4 = (2239u << 16u); aot_gpr_31 = (0x0886915Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 265u, 0x0886915Cu, 0x08861C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 272u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 272u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 272u, 0x08861C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886915Cu) goto L_0886915C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886915C: aot_gpr_4 = (2239u << 16u); aot_gpr_31 = (0x08869168u); aot_gpr_4 = (aot_gpr_4 + static_cast(22192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 266u, 0x08869168u, 0x08861DF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 293u, 0x08861DF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869168u) goto L_08869168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869168: aot_gpr_4 = (2239u << 16u); aot_gpr_31 = (0x08869174u); aot_gpr_4 = (aot_gpr_4 + static_cast(22240)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 267u, 0x08869174u, 0x08862038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 329u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 329u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 329u, 0x08862038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869174u) goto L_08869174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869174: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08869180u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 268u, 0x08869180u, 0x08888F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 299u, 0x08888F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869180u) goto L_08869180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869180: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7996), ctx.gpr[21]); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7992), static_cast(ctx.gpr[20])); @@ -3299,8 +3830,21 @@ L_088691EC: } L_088691F8: aot_gpr_31 = (0x08869200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 275u, 0x08869200u, 0x08870454u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 54u, 0x08870454u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869200u) goto L_08869200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869200: aot_gpr_16 = (2237u << 16u); aot_gpr_16 = (aot_gpr_16 + static_cast(-28736)); @@ -3313,8 +3857,21 @@ L_08869200: } L_08869214: aot_gpr_31 = (0x0886921Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 277u, 0x0886921Cu, 0x08A309DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 111u, 0x08A309DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886921Cu) goto L_0886921C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886921C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(304))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3380,14 +3937,40 @@ L_0886927C: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08869288u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 287u, 0x08869288u, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869288u) goto L_08869288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869288: aot_gpr_4 = (0u | 12u); aot_gpr_31 = (0x08869294u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 288u, 0x08869294u, 0x08941948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 225u, 0x08941948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869294u) goto L_08869294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869294: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3437,8 +4020,21 @@ L_088692CC: L_088692D0: aot_gpr_31 = (0x088692D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 297u, 0x088692D8u, 0x089BB018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 644u, 0x089BB018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088692D8u) goto L_088692D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088692D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -3471,8 +4067,21 @@ L_08869300: L_08869304: aot_gpr_31 = (0x0886930Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 304u, 0x0886930Cu, 0x089BB268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 683u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 683u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 683u, 0x089BB268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886930Cu) goto L_0886930C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886930C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -3505,8 +4114,21 @@ L_08869334: L_08869338: aot_gpr_31 = (0x08869340u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 311u, 0x08869340u, 0x089BB020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 645u, 0x089BB020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869340u) goto L_08869340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869340: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[20] | 0u); @@ -3541,35 +4163,100 @@ L_08869348: } L_08869390: aot_gpr_31 = (0x08869398u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 314u, 0x08869398u, 0x088633B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 595u, 0x088633B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869398u) goto L_08869398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869398: aot_gpr_31 = (0x088693A0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-29084)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 315u, 0x088693A0u, 0x08871328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 351u, 0x08871328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088693A0u) goto L_088693A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088693A0: aot_gpr_4 = (ctx.gpr[28] + static_cast(-29076)); aot_gpr_31 = (0x088693ACu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-29064)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 316u, 0x088693ACu, 0x088713B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 359u, 0x088713B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088693ACu) goto L_088693AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088693AC: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(8004)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088693C0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 317u, 0x088693C0u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088693C0u) goto L_088693C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088693C0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8008), 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(8008)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088693D4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 318u, 0x088693D4u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088693D4u) goto L_088693D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088693D4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(300))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3581,8 +4268,21 @@ L_088693D4: L_088693E0: aot_gpr_31 = (0x088693E8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 320u, 0x088693E8u, 0x0887F14Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 659u, 0x0887F14Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088693E8u) goto L_088693E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088693E8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3606,8 +4306,21 @@ L_08869400: L_08869408: aot_gpr_31 = (0x08869410u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 324u, 0x08869410u, 0x08A55334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 301u, 0x08A55334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869410u) goto L_08869410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869410: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8004))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8008))); @@ -3647,24 +4360,76 @@ L_0886946C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8004))); aot_gpr_31 = (0x0886947Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 329u, 0x0886947Cu, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886947Cu) goto L_0886947C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886947C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-29152), aot_gpr_16); aot_gpr_31 = (0x08869488u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-29048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 330u, 0x08869488u, 0x08871328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 351u, 0x08871328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869488u) goto L_08869488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869488: aot_gpr_31 = (0x08869490u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 331u, 0x08869490u, 0x08864248u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 33u, 0x08864248u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869490u) goto L_08869490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869490: aot_gpr_31 = (0x08869498u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 332u, 0x08869498u, 0x08864394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 39u, 0x08864394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869498u) goto L_08869498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869498: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8024), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8000), static_cast(ctx.gpr[20])); @@ -3686,8 +4451,21 @@ L_088694B8: aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(8020), static_cast(0u)); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(8022), static_cast(0u)); aot_gpr_31 = (0x088694CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 335u, 0x088694CCu, 0x0886441Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 44u, 0x0886441Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088694CCu) goto L_088694CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088694CC: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8025), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8028), 0u); @@ -3941,8 +4719,21 @@ L_08869784: } L_08869790: aot_gpr_31 = (0x08869798u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 353u, 0x08869798u, 0x08AB513Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 222u, 0x08AB513Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869798u) goto L_08869798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869798: ctx.gpr[21] = (ctx.gpr[2] | 0u); goto L_0886979C; @@ -3972,8 +4763,8 @@ L_088697A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088697EC: @@ -4037,25 +4828,77 @@ L_088698A4: aot_gpr_4 = (aot_gpr_4 + static_cast(22192)); aot_gpr_31 = (0x088698B4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 362u, 0x088698B4u, 0x08861E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 296u, 0x08861E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088698B4u) goto L_088698B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088698B4: aot_gpr_4 = (2239u << 16u); aot_gpr_31 = (0x088698C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(22240)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 363u, 0x088698C0u, 0x088620ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 332u, 0x088620ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088698C0u) goto L_088698C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088698C0: aot_gpr_4 = (2239u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); aot_gpr_31 = (0x088698D0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 364u, 0x088698D0u, 0x08865220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 237u, 0x08865220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088698D0u) goto L_088698D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088698D0: aot_gpr_31 = (0x088698D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 365u, 0x088698D8u, 0x08864628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 57u, 0x08864628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088698D8u) goto L_088698D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088698D8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8025))); if (static_cast(aot_gpr_4) <= 0) { @@ -4236,8 +5079,21 @@ L_08869AE4: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(504), aot_gpr_4); aot_gpr_31 = (0x08869B08u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 377u, 0x08869B08u, 0x088624A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 375u, 0x088624A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869B08u) goto L_08869B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869B08: aot_gpr_6 = (ctx.gpr[17] | 0u); { const bool branch_taken = aot_gpr_6 == 0u; @@ -4321,8 +5177,21 @@ L_08869B84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); aot_gpr_31 = (0x08869BE8u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 384u, 0x08869BE8u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08869BE8u) goto L_08869BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08869BE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -4367,8 +5236,8 @@ L_08869C28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08869C6C: @@ -4769,8 +5638,8 @@ L_0886A00C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A030: @@ -4796,8 +5665,21 @@ L_0886A030: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0886A0A8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 425u, 0x0886A0A8u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A0A8u) goto L_0886A0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A0A8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -4838,8 +5720,21 @@ L_0886A0D8: } L_0886A0EC: aot_gpr_31 = (0x0886A0F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 430u, 0x0886A0F4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A0F4u) goto L_0886A0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A0F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5046,8 +5941,21 @@ L_0886A284: L_0886A298: aot_gpr_31 = (0x0886A2A0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 454u, 0x0886A2A0u, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A2A0u) goto L_0886A2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A2A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5065,14 +5973,40 @@ L_0886A2A8: } L_0886A2B4: aot_gpr_31 = (0x0886A2BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 457u, 0x0886A2BCu, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A2BCu) goto L_0886A2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A2BC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0886A2C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 458u, 0x0886A2C8u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A2C8u) goto L_0886A2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A2C8: ctx.gpr[23] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(565))); @@ -5105,15 +6039,41 @@ L_0886A2F0: L_0886A2FC: aot_gpr_31 = (0x0886A304u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 463u, 0x0886A304u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A304u) goto L_0886A304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A304: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0886A314u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 464u, 0x0886A314u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A314u) goto L_0886A314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A314: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(565))); @@ -5127,14 +6087,40 @@ L_0886A314: L_0886A328: aot_gpr_31 = (0x0886A330u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 466u, 0x0886A330u, 0x08B41658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 369u, 0x08B41658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A330u) goto L_0886A330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A330: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0886A33Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 467u, 0x0886A33Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A33Cu) goto L_0886A33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A33C: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -5176,8 +6162,21 @@ L_0886A370: L_0886A378: aot_gpr_31 = (0x0886A380u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 473u, 0x0886A380u, 0x0890C798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 128u, 0x0890C798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A380u) goto L_0886A380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A380: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5188,8 +6187,21 @@ L_0886A380: L_0886A388: aot_gpr_31 = (0x0886A390u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 475u, 0x0886A390u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A390u) goto L_0886A390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A390: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5226,8 +6238,8 @@ L_0886A3B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A3E0: @@ -5239,8 +6251,21 @@ L_0886A3E0: aot_gpr_4 = (2239u << 16u); aot_gpr_31 = (0x0886A404u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 480u, 0x0886A404u, 0x08861C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 270u, 0x08861C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A404u) goto L_0886A404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A404: aot_gpr_4 = (2240u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29728)); @@ -5249,8 +6274,21 @@ L_0886A404: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x0886A420u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 481u, 0x0886A420u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A420u) goto L_0886A420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A420: aot_gpr_31 = (0x0886A428u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-29044)); @@ -5266,8 +6304,8 @@ L_0886A434: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A440: @@ -5417,15 +6455,15 @@ L_0886A520: goto L_0886A538; L_0886A538: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A540: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A548: @@ -5493,8 +6531,21 @@ L_0886A5AC: L_0886A5B4: aot_gpr_31 = (0x0886A5BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 511u, 0x0886A5BCu, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A5BCu) goto L_0886A5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A5BC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -5516,8 +6567,8 @@ L_0886A5CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A5E0: @@ -5527,23 +6578,36 @@ L_0886A5E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886A5F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 515u, 0x0886A5F8u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A5F8u) goto L_0886A5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A5F8: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A60C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A614: @@ -5551,14 +6615,27 @@ L_0886A614: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0886A624u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 518u, 0x0886A624u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A624u) goto L_0886A624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A624: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A630: @@ -5568,15 +6645,28 @@ L_0886A630: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0886A648u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 520u, 0x0886A648u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A648u) goto L_0886A648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A648: ctx.gpr[3] = (static_cast(static_cast(ctx.gpr[2]) >> 31u)); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A658: @@ -5601,16 +6691,16 @@ L_0886A670: goto L_0886A678; L_0886A678: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A680: aot_gpr_4 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-28959), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A68C: @@ -5618,8 +6708,8 @@ L_0886A68C: ctx.gpr[2] = (aot_gpr_4 ^ 3u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A69C: @@ -5629,8 +6719,8 @@ L_0886A69C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A6B4: @@ -5642,8 +6732,8 @@ L_0886A6C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A6D0: @@ -5655,8 +6745,8 @@ L_0886A6E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A6EC: @@ -5768,8 +6858,8 @@ L_0886A790: } L_0886A7A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A7AC: @@ -5811,8 +6901,21 @@ L_0886A7FC: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(308))); aot_gpr_31 = (0x0886A810u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 552u, 0x0886A810u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A810u) goto L_0886A810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A810: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-28957), static_cast(aot_gpr_4)); @@ -5821,8 +6924,21 @@ L_0886A818: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_31 = (0x0886A824u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(308))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 554u, 0x0886A824u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A824u) goto L_0886A824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A824: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5849,8 +6965,21 @@ L_0886A858: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0886A86Cu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 557u, 0x0886A86Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A86Cu) goto L_0886A86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A86C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5865,8 +6994,21 @@ L_0886A878: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(308))); aot_gpr_31 = (0x0886A88Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 559u, 0x0886A88Cu, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A88Cu) goto L_0886A88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A88C: ctx.gpr[18] = (ctx.gpr[17] | 0u); goto L_0886A890; @@ -5910,8 +7052,21 @@ L_0886A898: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0886A8E0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 562u, 0x0886A8E0u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A8E0u) goto L_0886A8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A8E0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5921,13 +7076,39 @@ L_0886A8E0: } aot_gpr_31 = (0x0886A8F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 563u, 0x0886A8F4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A8F4u) goto L_0886A8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A8F4: aot_gpr_31 = (0x0886A8FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 564u, 0x0886A8FCu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A8FCu) goto L_0886A8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A8FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 5u); @@ -5949,8 +7130,21 @@ L_0886A920: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_31 = (0x0886A92Cu); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(308))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 567u, 0x0886A92Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A92Cu) goto L_0886A92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A92C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-28958), static_cast(aot_gpr_4)); @@ -5971,8 +7165,8 @@ L_0886A938: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886A964: @@ -6018,8 +7212,21 @@ L_0886A9C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_31 = (0x0886A9CCu); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(308))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 574u, 0x0886A9CCu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A9CCu) goto L_0886A9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A9CC: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-28957), static_cast(0u)); goto L_0886A9D0; @@ -6034,8 +7241,21 @@ L_0886A9DC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0886A9F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 577u, 0x0886A9F0u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886A9F0u) goto L_0886A9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886A9F0: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-17613), static_cast(aot_gpr_16)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -6087,8 +7307,8 @@ L_0886AA40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886AA64: @@ -6473,14 +7693,40 @@ L_0886AD98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886ADC4u); { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 620u, 0x0886ADC4u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ADC4u) goto L_0886ADC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ADC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-28976))); aot_gpr_31 = (0x0886ADD0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 621u, 0x0886ADD0u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ADD0u) goto L_0886ADD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ADD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); if (aot_gpr_4 != 0u) { @@ -6525,8 +7771,21 @@ L_0886AE10: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-28976))); aot_gpr_31 = (0x0886AE28u); aot_gpr_4 = (aot_gpr_4 + static_cast(1600)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 629u, 0x0886AE28u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886AE28u) goto L_0886AE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886AE28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); if (aot_gpr_4 != 0u) { @@ -6571,8 +7830,21 @@ L_0886AE68: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-28976))); aot_gpr_31 = (0x0886AE80u); aot_gpr_4 = (aot_gpr_4 + static_cast(1808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 637u, 0x0886AE80u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886AE80u) goto L_0886AE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886AE80: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-28958))); if (aot_gpr_4 == 0u) { @@ -6655,8 +7927,21 @@ L_0886AF0C: ctx.gpr[20] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0886AF6Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 641u, 0x0886AF6Cu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886AF6Cu) goto L_0886AF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886AF6C: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6792,8 +8077,21 @@ L_0886AFD0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0886AFF8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(320), ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 643u, 0x0886AFF8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886AFF8u) goto L_0886AFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886AFF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { std::uint32_t aot_run_words[3]{}; @@ -6825,8 +8123,21 @@ L_0886AFF8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0886B03Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 644u, 0x0886B03Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B03Cu) goto L_0886B03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B03C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(304), aot_run_words); @@ -6836,23 +8147,75 @@ L_0886B03C: } aot_gpr_31 = (0x0886B050u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 645u, 0x0886B050u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B050u) goto L_0886B050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B050: aot_gpr_31 = (0x0886B058u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 646u, 0x0886B058u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B058u) goto L_0886B058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B058: aot_gpr_31 = (0x0886B060u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 647u, 0x0886B060u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B060u) goto L_0886B060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B060: aot_gpr_31 = (0x0886B068u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 648u, 0x0886B068u, 0x08A69104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 161u, 0x08A69104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B068u) goto L_0886B068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B068: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(320))); goto L_0886B06C; @@ -6890,8 +8253,21 @@ L_0886B094: L_0886B0A0: aot_gpr_31 = (0x0886B0A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 654u, 0x0886B0A8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B0A8u) goto L_0886B0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B0A8: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(324), aot_run_words); @@ -6913,15 +8289,15 @@ L_0886B0A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B0EC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B0F4: @@ -6931,8 +8307,21 @@ L_0886B0F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0886B10Cu); ctx.gpr[7] = (0u | 88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 657u, 0x0886B10Cu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B10Cu) goto L_0886B10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B10C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6952,8 +8341,8 @@ L_0886B11C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B128: @@ -6962,14 +8351,27 @@ L_0886B128: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0886B13Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 661u, 0x0886B13Cu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B13Cu) goto L_0886B13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B13C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B148: @@ -6984,8 +8386,21 @@ L_0886B148: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886B174u); ctx.gpr[7] = (0u | 360u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 663u, 0x0886B174u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B174u) goto L_0886B174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B174: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(28), ctx.gpr[2]); aot_gpr_4 = (0u | 45u); @@ -6999,8 +8414,21 @@ L_0886B174: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0886B1A4u); ctx.gpr[7] = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 664u, 0x0886B1A4u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B1A4u) goto L_0886B1A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B1A4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(40), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(20), ctx.gpr[2]); @@ -7035,8 +8463,8 @@ L_0886B1A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B21C: @@ -7054,8 +8482,21 @@ L_0886B21C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886B254u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 666u, 0x0886B254u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B254u) goto L_0886B254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B254: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); @@ -7063,8 +8504,21 @@ L_0886B254: aot_gpr_6 = (aot_gpr_6 << 3u); aot_gpr_31 = (0x0886B26Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 667u, 0x0886B26Cu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B26Cu) goto L_0886B26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B26C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7074,8 +8528,8 @@ L_0886B26C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B280: @@ -7089,8 +8543,21 @@ L_0886B280: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0886B2B0u); ctx.gpr[7] = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 669u, 0x0886B2B0u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B2B0u) goto L_0886B2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B2B0: ctx.gpr[17] = (ctx.gpr[2] | 0u); if (ctx.gpr[17] != 0u) { @@ -7102,8 +8569,21 @@ L_0886B2BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886B2C8u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 671u, 0x0886B2C8u, 0x088719B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 446u, 0x088719B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B2C8u) goto L_0886B2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B2C8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), ctx.gpr[17]); goto L_0886B2CC; @@ -7145,8 +8625,21 @@ L_0886B334: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0886B35Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 674u, 0x0886B35Cu, 0x08A93C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 588u, 0x08A93C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B35Cu) goto L_0886B35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B35C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -7158,8 +8651,21 @@ L_0886B35C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0886B384u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 675u, 0x0886B384u, 0x08A93C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 588u, 0x08A93C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B384u) goto L_0886B384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B384: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -7169,33 +8675,98 @@ L_0886B384: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0886B3A4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 676u, 0x0886B3A4u, 0x08A93C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 588u, 0x08A93C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B3A4u) goto L_0886B3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B3A4: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886B3B4u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 677u, 0x0886B3B4u, 0x089D1B60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 295u, 0x089D1B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B3B4u) goto L_0886B3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B3B4: aot_gpr_31 = (0x0886B3BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 678u, 0x0886B3BCu, 0x08B24538u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 32u, 0x08B24538u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B3BCu) goto L_0886B3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B3BC: aot_gpr_31 = (0x0886B3C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 679u, 0x0886B3C4u, 0x089FB62Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 528u, 0x089FB62Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B3C4u) goto L_0886B3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B3C4: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 17u); aot_gpr_31 = (0x0886B3D8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-25464)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 680u, 0x0886B3D8u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B3D8u) goto L_0886B3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B3D8: aot_gpr_4 = (ctx.gpr[2] + static_cast(5)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -7215,8 +8786,8 @@ L_0886B3D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B414: @@ -7238,8 +8809,8 @@ L_0886B414: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(84), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(64), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B45C: @@ -7249,8 +8820,21 @@ L_0886B45C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886B474u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 683u, 0x0886B474u, 0x08AB05DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 68u, 0x08AB05DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B474u) goto L_0886B474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B474: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7263,13 +8847,39 @@ L_0886B480: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886B48Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 685u, 0x0886B48Cu, 0x08A16B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 503u, 0x08A16B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B48Cu) goto L_0886B48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B48C: aot_gpr_31 = (0x0886B494u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 686u, 0x0886B494u, 0x089D1B34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 293u, 0x089D1B34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B494u) goto L_0886B494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B494: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7277,8 +8887,21 @@ L_0886B494: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); aot_gpr_31 = (0x0886B4ACu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 687u, 0x0886B4ACu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B4ACu) goto L_0886B4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B4AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), ctx.gpr[2]); @@ -7304,8 +8927,21 @@ L_0886B4D4: aot_gpr_6 = (0u | 148u); aot_gpr_31 = (0x0886B4E8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 691u, 0x0886B4E8u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B4E8u) goto L_0886B4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B4E8: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0886B4F4u); @@ -7316,8 +8952,8 @@ L_0886B4F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B504: @@ -7333,8 +8969,21 @@ L_0886B518: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886B52Cu); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 695u, 0x0886B52Cu, 0x08A16D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 539u, 0x08A16D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B52Cu) goto L_0886B52C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B52C: aot_gpr_31 = (0x0886B534u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7362,8 +9011,8 @@ L_0886B548: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B584: @@ -7376,8 +9025,21 @@ L_0886B584: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886B5A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 699u, 0x0886B5A8u, 0x08AB05DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 68u, 0x08AB05DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B5A8u) goto L_0886B5A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B5A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0886B5B4u); @@ -7397,8 +9059,8 @@ L_0886B5C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B5D4: @@ -7432,8 +9094,21 @@ L_0886B610: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0886B628u); aot_gpr_5 = (aot_gpr_5 + static_cast(-19840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 706u, 0x0886B628u, 0x08871A18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 452u, 0x08871A18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B628u) goto L_0886B628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B628: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7454,22 +9129,35 @@ L_0886B63C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B650: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0886B660u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 711u, 0x0886B660u, 0x08A16A94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 498u, 0x08A16A94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B660u) goto L_0886B660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B660: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B66C: @@ -7482,13 +9170,39 @@ L_0886B66C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886B690u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 713u, 0x0886B690u, 0x08AB05DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 68u, 0x08AB05DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B690u) goto L_0886B690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B690: aot_gpr_31 = (0x0886B698u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 714u, 0x0886B698u, 0x08A15E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 338u, 0x08A15E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B698u) goto L_0886B698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B698: ctx.gpr[17] = (2183u << 16u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(84), 0u); @@ -7505,8 +9219,21 @@ L_0886B6A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886B6CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 716u, 0x0886B6CCu, 0x08871A18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 452u, 0x08871A18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B6CCu) goto L_0886B6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B6CC: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(40))); @@ -7526,8 +9253,8 @@ L_0886B6DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886B6F0: @@ -7547,8 +9274,21 @@ L_0886B6F0: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x0886B734u); aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 720u, 0x0886B734u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886B734u) goto L_0886B734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886B734: aot_gpr_4 = (ctx.gpr[17] + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7895,8 +9635,8 @@ L_0886BA04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BACC: @@ -7905,8 +9645,21 @@ L_0886BACC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886BAE0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 738u, 0x0886BAE0u, 0x08A7F694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 624u, 0x08A7F694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BAE0u) goto L_0886BAE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BAE0: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27724)); @@ -7916,8 +9669,8 @@ L_0886BAE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BB00: @@ -7926,8 +9679,21 @@ L_0886BB00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886BB14u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 740u, 0x0886BB14u, 0x08A7F85Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 650u, 0x08A7F85Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BB14u) goto L_0886BB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BB14: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27724)); @@ -7937,16 +9703,16 @@ L_0886BB14: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BB34: ctx.gpr[2] = (2183u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-17612)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BB40: @@ -7958,8 +9724,8 @@ L_0886BB50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BB5C: @@ -7980,8 +9746,21 @@ L_0886BB80: L_0886BB88: aot_gpr_31 = (0x0886BB90u); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 747u, 0x0886BB90u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BB90u) goto L_0886BB90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BB90: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[18] = (0u | 1u); @@ -7991,8 +9770,21 @@ L_0886BB90: L_0886BB98: aot_gpr_31 = (0x0886BBA0u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 749u, 0x0886BBA0u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BBA0u) goto L_0886BBA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BBA0: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -8001,8 +9793,21 @@ L_0886BBA0: goto L_0886BBA8; L_0886BBA8: aot_gpr_31 = (0x0886BBB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 751u, 0x0886BBB0u, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BBB0u) goto L_0886BBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BBB0: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -8056,8 +9861,8 @@ L_0886BBE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BC08: @@ -8079,14 +9884,40 @@ L_0886BC24: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x0886BC38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 762u, 0x0886BC38u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BC38u) goto L_0886BC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BC38: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0886BC44u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 763u, 0x0886BC44u, 0x08A7FB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 682u, 0x08A7FB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BC44u) goto L_0886BC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BC44: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8109,15 +9940,15 @@ L_0886BC58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BC6C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 8u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BC74: @@ -8130,8 +9961,21 @@ L_0886BC74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886BC98u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 768u, 0x0886BC98u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BC98u) goto L_0886BC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BC98: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8153,8 +9997,8 @@ L_0886BCB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BCC0: @@ -8183,8 +10027,8 @@ L_0886BCEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BCF8: @@ -8198,8 +10042,21 @@ L_0886BCF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0886BD20u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 776u, 0x0886BD20u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BD20u) goto L_0886BD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BD20: aot_gpr_16 = (ctx.gpr[2] | 0u); ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -8226,8 +10083,8 @@ L_0886BD4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BD5C: @@ -8236,14 +10093,27 @@ L_0886BD5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0886BD70u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 781u, 0x0886BD70u, 0x08A7FA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 660u, 0x08A7FA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BD70u) goto L_0886BD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BD70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BD7C: @@ -8252,8 +10122,21 @@ L_0886BD7C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0886BD98u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 783u, 0x0886BD98u, 0x08A7FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 680u, 0x08A7FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BD98u) goto L_0886BD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BD98: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20672)); @@ -8261,8 +10144,21 @@ L_0886BD98: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0886BDB0u); aot_gpr_4 = (0u | 400u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 784u, 0x0886BDB0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BDB0u) goto L_0886BDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BDB0: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8275,8 +10171,21 @@ L_0886BDB0: L_0886BDBC: aot_gpr_31 = (0x0886BDC4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 786u, 0x0886BDC4u, 0x0886C4A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 39u, 0x0886C4A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BDC4u) goto L_0886BDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BDC4: ctx.gpr[18] = (ctx.gpr[17] | 0u); goto L_0886BDC8; @@ -8292,8 +10201,8 @@ L_0886BDC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BDE8: @@ -8305,8 +10214,21 @@ L_0886BDE8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0886BE0Cu); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 789u, 0x0886BE0Cu, 0x08A7FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 680u, 0x08A7FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BE0Cu) goto L_0886BE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BE0C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20672)); @@ -8316,15 +10238,41 @@ L_0886BE0C: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886BE2Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 790u, 0x0886BE2Cu, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BE2Cu) goto L_0886BE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BE2C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(104), aot_gpr_16); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0886BE3Cu); aot_gpr_4 = (0u | 400u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 791u, 0x0886BE3Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BE3Cu) goto L_0886BE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BE3C: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8337,8 +10285,21 @@ L_0886BE3C: L_0886BE48: aot_gpr_31 = (0x0886BE50u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 793u, 0x0886BE50u, 0x0886C4A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 39u, 0x0886C4A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BE50u) goto L_0886BE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BE50: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_0886BE54; @@ -8346,8 +10307,21 @@ L_0886BE54: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(112), ctx.gpr[18]); aot_gpr_31 = (0x0886BE60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 795u, 0x0886BE60u, 0x08A7FC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 692u, 0x08A7FC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BE60u) goto L_0886BE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BE60: aot_gpr_4 = (0u | 0u); ctx.gpr[19] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(10)))))); @@ -8356,8 +10330,21 @@ L_0886BE60: aot_gpr_5 = (0u | 544u); aot_gpr_31 = (0x0886BE7Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 796u, 0x0886BE7Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BE7Cu) goto L_0886BE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BE7C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8380,13 +10367,39 @@ L_0886BE98: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0886BEA8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 800u, 0x0886BEA8u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BEA8u) goto L_0886BEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BEA8: aot_gpr_31 = (0x0886BEB0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 801u, 0x0886BEB0u, 0x0888F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 562u, 0x0888F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BEB0u) goto L_0886BEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BEB0: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -8399,8 +10412,8 @@ L_0886BEB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BED0: @@ -8409,14 +10422,27 @@ L_0886BED0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0886BEE4u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 803u, 0x0886BEE4u, 0x08A7FD50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 697u, 0x08A7FD50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BEE4u) goto L_0886BEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BEE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886BEF0: @@ -8454,8 +10480,21 @@ L_0886BF44: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0886BF54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 807u, 0x0886BF54u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BF54u) goto L_0886BF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BF54: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -8466,8 +10505,21 @@ L_0886BF60: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x0886BF70u); aot_gpr_4 = (0u | 1184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 809u, 0x0886BF70u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BF70u) goto L_0886BF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BF70: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -8483,8 +10535,21 @@ L_0886BF7C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); aot_gpr_31 = (0x0886BF90u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 811u, 0x0886BF90u, 0x088A2F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 689u, 0x088A2F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BF90u) goto L_0886BF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BF90: ctx.gpr[21] = (ctx.gpr[22] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8493,8 +10558,21 @@ L_0886BF98: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886BFA4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 813u, 0x0886BFA4u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BFA4u) goto L_0886BFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BFA4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), ctx.gpr[21]); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); @@ -8503,8 +10581,21 @@ L_0886BFA4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0886BFC0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 814u, 0x0886BFC0u, 0x08A82438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 204u, 0x08A82438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BFC0u) goto L_0886BFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BFC0: aot_gpr_4 = (0u | 0u); ctx.gpr[17] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(10)))))); @@ -8513,8 +10604,21 @@ L_0886BFC0: aot_gpr_5 = (0u | 544u); aot_gpr_31 = (0x0886BFDCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0025->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0025_entry, 815u, 0x0886BFDCu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886BFDCu) goto L_0886BFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886BFDC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; diff --git a/profiles/vcs/generated/generated_unit_0026.cpp b/profiles/vcs/generated/generated_unit_0026.cpp index e32cce5..b08aecc 100644 --- a/profiles/vcs/generated/generated_unit_0026.cpp +++ b/profiles/vcs/generated/generated_unit_0026.cpp @@ -764,6 +764,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0886C000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -780,8 +804,21 @@ LOCAL_SCHED_BOUNDARY: L_0886C000: aot_gpr_31 = (0x0886C008u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 2u, 0x0886C008u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C008u) goto L_0886C008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C008: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -795,8 +832,21 @@ L_0886C010: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0886C024u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 4u, 0x0886C024u, 0x08A82438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 204u, 0x08A82438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C024u) goto L_0886C024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C024: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -811,8 +861,8 @@ L_0886C024: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C04C: @@ -862,8 +912,21 @@ L_0886C09C: aot_gpr_5 = (0u | 544u); aot_gpr_31 = (0x0886C0B8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 10u, 0x0886C0B8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C0B8u) goto L_0886C0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C0B8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -877,8 +940,21 @@ L_0886C0C4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); aot_gpr_31 = (0x0886C0D0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 12u, 0x0886C0D0u, 0x0886BB00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 739u, 0x0886BB00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C0D0u) goto L_0886C0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C0D0: aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_0886C0D4; @@ -887,8 +963,21 @@ L_0886C0D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0886C0E4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 14u, 0x0886C0E4u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C0E4u) goto L_0886C0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C0E4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -899,8 +988,8 @@ L_0886C0E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C0FC: @@ -936,8 +1025,21 @@ L_0886C150: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(52)))))); aot_gpr_31 = (0x0886C168u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 17u, 0x0886C168u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C168u) goto L_0886C168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C168: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -969,8 +1071,21 @@ L_0886C19C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(54)))))); aot_gpr_31 = (0x0886C1B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 21u, 0x0886C1B4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C1B4u) goto L_0886C1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C1B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -978,8 +1093,21 @@ L_0886C1B4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(56)))))); aot_gpr_31 = (0x0886C1CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 22u, 0x0886C1CCu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C1CCu) goto L_0886C1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C1CC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); @@ -1007,14 +1135,14 @@ L_0886C204: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C220: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C228: @@ -1063,8 +1191,8 @@ L_0886C294: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C2B8: @@ -1074,8 +1202,21 @@ L_0886C2B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886C2D0u); ctx.gpr[8] = (aot_gpr_16 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 30u, 0x0886C2D0u, 0x08A82798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 224u, 0x08A82798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C2D0u) goto L_0886C2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C2D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1094,8 +1235,8 @@ L_0886C2E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C2F8: @@ -1169,14 +1310,27 @@ L_0886C3E0: aot_gpr_6 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x0886C3F8u); ctx.gpr[7] = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 35u, 0x0886C3F8u, 0x08A82BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 288u, 0x08A82BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C3F8u) goto L_0886C3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C3F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C404: @@ -1222,14 +1376,27 @@ L_0886C484: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0886C494u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 38u, 0x0886C494u, 0x08A83758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 337u, 0x08A83758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C494u) goto L_0886C494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C494: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C4A0: @@ -1238,8 +1405,21 @@ L_0886C4A0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0886C4C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 40u, 0x0886C4C0u, 0x08A82198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 170u, 0x08A82198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C4C0u) goto L_0886C4C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C4C0: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(20864)); @@ -1249,8 +1429,21 @@ L_0886C4C0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0886C4E0u); aot_gpr_4 = (0u | 1888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 41u, 0x0886C4E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C4E0u) goto L_0886C4E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C4E0: ctx.gpr[18] = (ctx.gpr[2] | 0u); if (ctx.gpr[18] == 0u) { @@ -1261,8 +1454,21 @@ L_0886C4E0: L_0886C4EC: aot_gpr_31 = (0x0886C4F4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 43u, 0x0886C4F4u, 0x08A0B7C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 577u, 0x08A0B7C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C4F4u) goto L_0886C4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C4F4: ctx.gpr[17] = (ctx.gpr[18] | 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(384), ctx.gpr[17]); @@ -1271,8 +1477,21 @@ L_0886C4FC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0886C508u); aot_gpr_4 = (0u | 1888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 45u, 0x0886C508u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C508u) goto L_0886C508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C508: ctx.gpr[18] = (ctx.gpr[2] | 0u); if (ctx.gpr[18] == 0u) { @@ -1283,8 +1502,21 @@ L_0886C508: L_0886C514: aot_gpr_31 = (0x0886C51Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 47u, 0x0886C51Cu, 0x08A0B7C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 577u, 0x08A0B7C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C51Cu) goto L_0886C51C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C51C: ctx.gpr[17] = (ctx.gpr[18] | 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(388), ctx.gpr[17]); @@ -1300,8 +1532,8 @@ L_0886C524: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C540: @@ -1333,8 +1565,21 @@ L_0886C578: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0886C584u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 53u, 0x0886C584u, 0x08A8223Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 175u, 0x08A8223Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C584u) goto L_0886C584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C584: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1357,8 +1602,8 @@ L_0886C598: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C5AC: @@ -1368,25 +1613,64 @@ L_0886C5AC: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0886C5C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(384))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 57u, 0x0886C5C4u, 0x08A0BDACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 609u, 0x08A0BDACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C5C4u) goto L_0886C5C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C5C4: aot_gpr_31 = (0x0886C5CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(388))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 58u, 0x0886C5CCu, 0x08A0BDACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 609u, 0x08A0BDACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C5CCu) goto L_0886C5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C5CC: aot_gpr_31 = (0x0886C5D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 59u, 0x0886C5D4u, 0x08A823A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 196u, 0x08A823A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C5D4u) goto L_0886C5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C5D4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886C5E4: @@ -1395,18 +1679,57 @@ L_0886C5E4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(600), aot_run_words); } ctx.gpr[19] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0886C634u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 61u, 0x0886C634u, 0x08A82398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 195u, 0x08A82398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C634u) goto L_0886C634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C634: aot_gpr_31 = (0x0886C63Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(384))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 62u, 0x0886C63Cu, 0x08A0BA78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 595u, 0x08A0BA78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C63Cu) goto L_0886C63C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C63C: aot_gpr_31 = (0x0886C644u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(388))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 63u, 0x0886C644u, 0x08A0BA78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 595u, 0x08A0BA78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C644u) goto L_0886C644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C644: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(352))); aot_gpr_5 = (aot_gpr_4 + static_cast(10)); @@ -1427,8 +1750,21 @@ L_0886C644: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(342)))))); aot_gpr_31 = (0x0886C690u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 64u, 0x0886C690u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C690u) goto L_0886C690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C690: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); @@ -1438,8 +1774,21 @@ L_0886C690: aot_gpr_5 = (0u | 160u); aot_gpr_31 = (0x0886C6B0u); aot_gpr_6 = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 65u, 0x0886C6B0u, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C6B0u) goto L_0886C6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C6B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(576), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(576))); @@ -1454,8 +1803,21 @@ L_0886C6B0: aot_gpr_5 = (0u | 196u); aot_gpr_31 = (0x0886C6E4u); aot_gpr_6 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 66u, 0x0886C6E4u, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C6E4u) goto L_0886C6E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C6E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(580), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(580))); @@ -1527,8 +1889,21 @@ L_0886C75C: L_0886C774: aot_gpr_31 = (0x0886C77Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 73u, 0x0886C77Cu, 0x08AD0598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 51u, 0x08AD0598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C77Cu) goto L_0886C77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C77C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1650,8 +2025,21 @@ L_0886C840: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0886C84Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 77u, 0x0886C84Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C84Cu) goto L_0886C84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C84C: aot_gpr_4 = (ctx.gpr[20] + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1935,8 +2323,21 @@ L_0886C9B8: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0886C9F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 84u, 0x0886C9F0u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886C9F0u) goto L_0886C9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886C9F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); @@ -1952,8 +2353,21 @@ L_0886C9F0: L_0886CA14: aot_gpr_31 = (0x0886CA1Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 86u, 0x0886CA1Cu, 0x0894624Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 400u, 0x0894624Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CA1Cu) goto L_0886CA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CA1C: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -2029,8 +2443,21 @@ L_0886CAA4: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0886CAF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 90u, 0x0886CAF4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CAF4u) goto L_0886CAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CAF4: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -2070,8 +2497,21 @@ L_0886CB24: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0886CB74u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 93u, 0x0886CB74u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CB74u) goto L_0886CB74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CB74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(388))); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); @@ -2117,8 +2557,21 @@ L_0886CB74: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0886CBA0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 94u, 0x0886CBA0u, 0x08A0B7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 579u, 0x08A0B7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CBA0u) goto L_0886CBA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CBA0: ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(592))); ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(596))); @@ -2137,8 +2590,21 @@ L_0886CBAC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0886CBD0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 96u, 0x0886CBD0u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CBD0u) goto L_0886CBD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CBD0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); @@ -2155,8 +2621,21 @@ L_0886CBD0: L_0886CBF4: aot_gpr_31 = (0x0886CBFCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 98u, 0x0886CBFCu, 0x0894624Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 400u, 0x0894624Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CBFCu) goto L_0886CBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CBFC: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -2231,8 +2710,21 @@ L_0886CC7C: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0886CCCCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 102u, 0x0886CCCCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CCCCu) goto L_0886CCCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CCCC: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -2272,8 +2764,21 @@ L_0886CCFC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0886CD4Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 105u, 0x0886CD4Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CD4Cu) goto L_0886CD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CD4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(384))); { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); @@ -2320,8 +2825,21 @@ L_0886CD4C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0886CD7Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 106u, 0x0886CD7Cu, 0x08A0B7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 579u, 0x08A0B7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CD7Cu) goto L_0886CD7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CD7C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(600), aot_run_words); @@ -2344,8 +2862,8 @@ L_0886CD7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(672)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886CDC4: @@ -2357,8 +2875,21 @@ L_0886CDC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886CDE4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 108u, 0x0886CDE4u, 0x08AB0F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 262u, 0x08AB0F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CDE4u) goto L_0886CDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CDE4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2369,8 +2900,21 @@ L_0886CDE4: } L_0886CDF0: aot_gpr_31 = (0x0886CDF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 110u, 0x0886CDF8u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CDF8u) goto L_0886CDF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CDF8: { const bool branch_taken = ctx.gpr[2] == aot_gpr_16; if (branch_taken) { @@ -2404,8 +2948,8 @@ L_0886CE14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886CE28: @@ -2417,13 +2961,39 @@ L_0886CE28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886CE48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 116u, 0x0886CE48u, 0x08A39B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 403u, 0x08A39B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CE48u) goto L_0886CE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CE48: aot_gpr_31 = (0x0886CE50u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 117u, 0x0886CE50u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CE50u) goto L_0886CE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CE50: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[17]; if (branch_taken) { @@ -2443,8 +3013,8 @@ L_0886CE5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886CE70: @@ -2456,8 +3026,21 @@ L_0886CE70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886CE90u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-28856), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 121u, 0x0886CE90u, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CE90u) goto L_0886CE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CE90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2501,8 +3084,8 @@ L_0886CECC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886CEE0: @@ -2518,8 +3101,8 @@ L_0886CEEC: goto L_0886CEF0; L_0886CEF0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886CEF8: @@ -2538,8 +3121,8 @@ L_0886CF18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886CF28: @@ -2551,8 +3134,21 @@ L_0886CF28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0886CF48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 133u, 0x0886CF48u, 0x089452FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 189u, 0x089452FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CF48u) goto L_0886CF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CF48: aot_gpr_4 = (ctx.gpr[2] << 2u); aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); @@ -2565,8 +3161,8 @@ L_0886CF48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886CF68: @@ -2581,8 +3177,21 @@ L_0886CF68: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_gpr_31 = (0x0886CF94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 135u, 0x0886CF94u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CF94u) goto L_0886CF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CF94: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[17] = (0u | 1u); @@ -2591,8 +3200,21 @@ L_0886CF94: L_0886CFA0: aot_gpr_31 = (0x0886CFA8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 137u, 0x0886CFA8u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886CFA8u) goto L_0886CFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886CFA8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0886CFB4u); @@ -2626,8 +3248,8 @@ L_0886CFDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886CFF8: @@ -2640,8 +3262,21 @@ L_0886CFF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0886D01Cu); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 141u, 0x0886D01Cu, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D01Cu) goto L_0886D01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D01C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2679,15 +3314,15 @@ L_0886D04C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D064: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D06C: @@ -2696,24 +3331,76 @@ L_0886D06C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(784), aot_gpr_31); aot_gpr_31 = (0x0886D080u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(768), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 148u, 0x0886D080u, 0x08934354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 43u, 0x08934354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D080u) goto L_0886D080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D080: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(768))); aot_gpr_31 = (0x0886D08Cu); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 149u, 0x0886D08Cu, 0x0889E8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 595u, 0x0889E8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D08Cu) goto L_0886D08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D08C: aot_gpr_31 = (0x0886D094u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 150u, 0x0886D094u, 0x08968F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 226u, 0x08968F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D094u) goto L_0886D094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D094: aot_gpr_31 = (0x0886D09Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 151u, 0x0886D09Cu, 0x08968F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 228u, 0x08968F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D09Cu) goto L_0886D09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D09C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(776), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2724,8 +3411,21 @@ L_0886D09C: L_0886D0AC: aot_gpr_31 = (0x0886D0B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(768))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 153u, 0x0886D0B4u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D0B4u) goto L_0886D0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D0B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(772), ctx.gpr[2]); aot_fpr_12 = std::bit_cast(0u); @@ -2741,8 +3441,21 @@ L_0886D0D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(768))); aot_gpr_31 = (0x0886D0E4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 155u, 0x0886D0E4u, 0x0889ECD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 638u, 0x0889ECD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D0E4u) goto L_0886D0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D0E4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(776))); @@ -2808,8 +3521,8 @@ L_0886D180: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(784))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(800)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D1A0: @@ -2824,16 +3537,29 @@ L_0886D1A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886D1CCu); aot_gpr_5 = (aot_gpr_5 + static_cast(-11872)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 161u, 0x0886D1CCu, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D1CCu) goto L_0886D1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D1CC: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D1E0: @@ -2854,8 +3580,8 @@ L_0886D1E0: aot_gpr_5 = (0u + static_cast(-1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D224: @@ -2873,16 +3599,29 @@ L_0886D224: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886D25Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-11740)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 164u, 0x0886D25Cu, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D25Cu) goto L_0886D25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D25C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D270: @@ -2893,8 +3632,21 @@ L_0886D270: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0886D28Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 166u, 0x0886D28Cu, 0x08934354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 43u, 0x08934354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D28Cu) goto L_0886D28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D28C: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (2183u << 16u); @@ -2903,8 +3655,21 @@ L_0886D28C: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0886D2A8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-11872)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 167u, 0x0886D2A8u, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D2A8u) goto L_0886D2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D2A8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0886D2B4u); @@ -2919,8 +3684,21 @@ L_0886D2B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0886D2D0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-11740)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 169u, 0x0886D2D0u, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D2D0u) goto L_0886D2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D2D0: aot_gpr_5 = (2183u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2942,8 +3720,8 @@ L_0886D2E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D308: @@ -2952,8 +3730,21 @@ L_0886D308: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886D31Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 172u, 0x0886D31Cu, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D31Cu) goto L_0886D31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D31C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2981,8 +3772,8 @@ L_0886D33C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D34C: @@ -3008,8 +3799,8 @@ L_0886D364: L_0886D368: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D370: @@ -3053,8 +3844,8 @@ L_0886D3A4: } L_0886D3B0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D3B8: @@ -3116,8 +3907,8 @@ L_0886D40C: } L_0886D418: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D420: @@ -3130,8 +3921,8 @@ L_0886D430: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D43C: @@ -3192,8 +3983,21 @@ L_0886D480: L_0886D498: aot_gpr_31 = (0x0886D4A0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 204u, 0x0886D4A0u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D4A0u) goto L_0886D4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D4A0: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -3210,8 +4014,8 @@ L_0886D4A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D4BC: @@ -3249,8 +4053,8 @@ L_0886D4E4: } L_0886D4EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D4F4: @@ -3293,8 +4097,8 @@ L_0886D530: goto L_0886D534; L_0886D534: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D53C: @@ -3336,8 +4140,8 @@ L_0886D574: goto L_0886D578; L_0886D578: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886D580: @@ -3395,8 +4199,21 @@ L_0886D604: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x0886D618u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 228u, 0x0886D618u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886D618u) goto L_0886D618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886D618: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] != 0u; @@ -3873,8 +4690,8 @@ L_0886DA74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886DAC0: @@ -3886,8 +4703,8 @@ L_0886DAD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886DADC: @@ -3969,8 +4786,8 @@ L_0886DB80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886DB9C: @@ -4230,8 +5047,8 @@ L_0886DE00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886DE30: @@ -4283,8 +5100,8 @@ L_0886DE90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886DEB4: @@ -4336,8 +5153,8 @@ L_0886DF14: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886DF38: @@ -4389,8 +5206,8 @@ L_0886DF94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886DFD0: @@ -4442,8 +5259,8 @@ L_0886E02C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E068: @@ -4490,8 +5307,8 @@ L_0886E0C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E0E0: @@ -4728,8 +5545,8 @@ L_0886E354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E380: @@ -4981,8 +5798,8 @@ L_0886E644: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E664: @@ -5178,8 +5995,8 @@ L_0886E83C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E864: @@ -5207,8 +6024,8 @@ L_0886E884: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E8BC: @@ -5228,8 +6045,8 @@ L_0886E8DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E8F4: @@ -5249,8 +6066,8 @@ L_0886E914: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E92C: @@ -5270,8 +6087,8 @@ L_0886E94C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E964: @@ -5298,8 +6115,8 @@ L_0886E98C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E9AC: @@ -5326,8 +6143,8 @@ L_0886E9D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886E9F4: @@ -5519,8 +6336,8 @@ L_0886EBC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886EBE4: @@ -5555,8 +6372,8 @@ L_0886EC0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886EC4C: @@ -5581,8 +6398,21 @@ L_0886EC74: L_0886EC7C: aot_gpr_31 = (0x0886EC84u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-28840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 419u, 0x0886EC84u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886EC84u) goto L_0886EC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886EC84: ctx.gpr[17] = (ctx.gpr[28] + static_cast(5824)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); @@ -5597,46 +6427,137 @@ L_0886EC84: L_0886ECA4: aot_gpr_31 = (0x0886ECACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 421u, 0x0886ECACu, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ECACu) goto L_0886ECAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ECAC: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0886ECB8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 422u, 0x0886ECB8u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ECB8u) goto L_0886ECB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ECB8: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0886ECC4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 423u, 0x0886ECC4u, 0x08AD3BD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 694u, 0x08AD3BD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ECC4u) goto L_0886ECC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ECC4: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0886ECD4u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 424u, 0x0886ECD4u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ECD4u) goto L_0886ECD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ECD4: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0886ECE8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 425u, 0x0886ECE8u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ECE8u) goto L_0886ECE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ECE8: aot_gpr_31 = (0x0886ECF0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 426u, 0x0886ECF0u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ECF0u) goto L_0886ECF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ECF0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0886ECFCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 427u, 0x0886ECFCu, 0x08AAF460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 721u, 0x08AAF460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886ECFCu) goto L_0886ECFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886ECFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -5664,16 +6585,16 @@ L_0886ED14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886ED34: aot_gpr_5 = (0u | 5u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886ED40: @@ -5707,8 +6628,21 @@ L_0886ED40: { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x0886EDD8u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(28), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 432u, 0x0886EDD8u, 0x08AAEBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 571u, 0x08AAEBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886EDD8u) goto L_0886EDD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886EDD8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(9))); @@ -5728,8 +6662,21 @@ L_0886EE0C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0886EE18u); aot_gpr_4 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 434u, 0x0886EE18u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886EE18u) goto L_0886EE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886EE18: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -5851,8 +6798,21 @@ L_0886EF30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), aot_gpr_5); aot_gpr_31 = (0x0886EF44u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 445u, 0x0886EF44u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886EF44u) goto L_0886EF44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886EF44: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -5897,8 +6857,21 @@ L_0886EF7C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0886EF94u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 451u, 0x0886EF94u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886EF94u) goto L_0886EF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886EF94: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[19]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -5988,8 +6961,8 @@ L_0886F038: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F06C: @@ -6042,19 +7015,58 @@ L_0886F0E0: aot_gpr_5 = (aot_gpr_16 + static_cast(28)); aot_gpr_31 = (0x0886F0ECu); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 466u, 0x0886F0ECu, 0x08B0C778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 99u, 0x08B0C778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F0ECu) goto L_0886F0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F0EC: aot_gpr_5 = (aot_gpr_16 + static_cast(24)); aot_gpr_31 = (0x0886F0F8u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 467u, 0x0886F0F8u, 0x08B0C7E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 104u, 0x08B0C7E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F0F8u) goto L_0886F0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F0F8: aot_gpr_31 = (0x0886F100u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 468u, 0x0886F100u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F100u) goto L_0886F100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F100: aot_gpr_4 = (ctx.gpr[28] + static_cast(-28832)); aot_gpr_5 = (0u | 0u); @@ -6079,8 +7091,21 @@ L_0886F120: L_0886F128: aot_gpr_31 = (0x0886F130u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 472u, 0x0886F130u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F130u) goto L_0886F130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F130: aot_gpr_31 = (0x0886F138u); aot_gpr_4 = (ctx.gpr[18] + static_cast(32)); @@ -6119,8 +7144,21 @@ L_0886F140: aot_gpr_6 = (std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0886F1ACu); ctx.gpr[7] = (std::bit_cast(aot_fpr_15)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 475u, 0x0886F1ACu, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F1ACu) goto L_0886F1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F1AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -6139,8 +7177,21 @@ L_0886F1CC: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0886F1E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 478u, 0x0886F1E0u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F1E0u) goto L_0886F1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F1E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(72)); @@ -6160,8 +7211,8 @@ L_0886F1F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F208: @@ -6293,8 +7344,8 @@ L_0886F318: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F324: @@ -6332,8 +7383,21 @@ L_0886F384: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0886F394u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 497u, 0x0886F394u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F394u) goto L_0886F394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F394: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -6343,8 +7407,8 @@ L_0886F394: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F3A8: @@ -6381,8 +7445,21 @@ L_0886F41C: ctx.gpr[19] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0886F428u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 500u, 0x0886F428u, 0x088733D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 731u, 0x088733D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F428u) goto L_0886F428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F428: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -6394,8 +7471,21 @@ L_0886F428: aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x0886F450u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 501u, 0x0886F450u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F450u) goto L_0886F450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F450: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); @@ -6411,8 +7501,21 @@ L_0886F464: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x0886F470u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 503u, 0x0886F470u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F470u) goto L_0886F470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F470: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6436,8 +7539,21 @@ L_0886F48C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x0886F498u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 508u, 0x0886F498u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F498u) goto L_0886F498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F498: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(36)))))); { const bool branch_taken = static_cast(aot_gpr_4) > 0; @@ -6505,8 +7621,21 @@ L_0886F4F0: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0886F50Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 516u, 0x0886F50Cu, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F50Cu) goto L_0886F50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F50C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6533,8 +7662,21 @@ L_0886F534: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0886F550u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 519u, 0x0886F550u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F550u) goto L_0886F550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F550: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6589,8 +7731,8 @@ L_0886F5B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(592)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F5DC: @@ -6642,8 +7784,21 @@ L_0886F638: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0886F644u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 531u, 0x0886F644u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F644u) goto L_0886F644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F644: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6668,8 +7823,21 @@ L_0886F65C: L_0886F668: aot_gpr_31 = (0x0886F670u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 536u, 0x0886F670u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F670u) goto L_0886F670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F670: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -6698,8 +7866,21 @@ L_0886F6A0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x0886F6ACu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 540u, 0x0886F6ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F6ACu) goto L_0886F6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F6AC: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6723,8 +7904,21 @@ L_0886F6C4: L_0886F6CC: aot_gpr_31 = (0x0886F6D4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 545u, 0x0886F6D4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F6D4u) goto L_0886F6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F6D4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -6755,8 +7949,8 @@ L_0886F708: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F728: @@ -6813,14 +8007,27 @@ L_0886F778: } aot_gpr_31 = (0x0886F79Cu); ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 554u, 0x0886F79Cu, 0x08ABAD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F79Cu) goto L_0886F79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F79C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F7A8: @@ -6831,18 +8038,57 @@ L_0886F7A8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x0886F7D0u); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 556u, 0x0886F7D0u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F7D0u) goto L_0886F7D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F7D0: aot_gpr_31 = (0x0886F7D8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-28840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 557u, 0x0886F7D8u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F7D8u) goto L_0886F7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F7D8: aot_gpr_31 = (0x0886F7E0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 558u, 0x0886F7E0u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F7E0u) goto L_0886F7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F7E0: ctx.gpr[19] = (aot_gpr_29 + static_cast(4)); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -6894,12 +8140,38 @@ L_0886F868: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0886F878u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 563u, 0x0886F878u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F878u) goto L_0886F878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F878: aot_gpr_31 = (0x0886F880u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 564u, 0x0886F880u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F880u) goto L_0886F880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F880: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0886F88Cu); @@ -6918,8 +8190,8 @@ L_0886F88C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F8AC: @@ -6937,13 +8209,39 @@ L_0886F8C4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), 0u); aot_gpr_31 = (0x0886F8D0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-28840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 568u, 0x0886F8D0u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F8D0u) goto L_0886F8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F8D0: aot_gpr_31 = (0x0886F8D8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 569u, 0x0886F8D8u, 0x08AAEEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 621u, 0x08AAEEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F8D8u) goto L_0886F8D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F8D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6967,8 +8265,8 @@ L_0886F8F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F900: @@ -7012,8 +8310,8 @@ L_0886F944: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F950: @@ -7026,30 +8324,82 @@ L_0886F950: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0886F974u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(8), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 580u, 0x0886F974u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F974u) goto L_0886F974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F974: aot_gpr_31 = (0x0886F97Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27520)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 581u, 0x0886F97Cu, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F97Cu) goto L_0886F97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F97C: aot_gpr_31 = (0x0886F984u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 582u, 0x0886F984u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F984u) goto L_0886F984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F984: aot_gpr_31 = (0x0886F98Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 583u, 0x0886F98Cu, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886F98Cu) goto L_0886F98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886F98C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F9A0: @@ -7092,8 +8442,8 @@ L_0886F9D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886F9EC: @@ -7112,16 +8462,42 @@ L_0886FA14: aot_gpr_4 = (17036u << 16u); aot_gpr_31 = (0x0886FA20u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 591u, 0x0886FA20u, 0x08975D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 437u, 0x08975D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FA20u) goto L_0886FA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FA20: ctx.fpr[20] = std::bit_cast(0u); ctx.gpr[18] = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(32), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0886FA34u); aot_gpr_4 = (0u | 2288u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 592u, 0x0886FA34u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FA34u) goto L_0886FA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FA34: ctx.gpr[17] = (2240u << 16u); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -7151,8 +8527,21 @@ L_0886FA54: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0886FA60u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 596u, 0x0886FA60u, 0x08913670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 838u, 0x08913670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FA60u) goto L_0886FA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FA60: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[18]); @@ -7179,8 +8568,21 @@ L_0886FA68: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0886FA90u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 598u, 0x0886FA90u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FA90u) goto L_0886FA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FA90: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7190,8 +8592,21 @@ L_0886FA90: } aot_gpr_31 = (0x0886FAA4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 599u, 0x0886FAA4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FAA4u) goto L_0886FAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FAA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20])}; @@ -7260,8 +8675,8 @@ L_0886FB14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886FB34: @@ -7316,8 +8731,8 @@ L_0886FBA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886FBB4: @@ -7339,8 +8754,21 @@ L_0886FBD4: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x0886FBE4u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(8), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 615u, 0x0886FBE4u, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FBE4u) goto L_0886FBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FBE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7076))); ctx.gpr[17] = (2233u << 16u); @@ -7352,8 +8780,21 @@ L_0886FBE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0886FC0Cu); aot_gpr_5 = (aot_gpr_16 + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 616u, 0x0886FC0Cu, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FC0Cu) goto L_0886FC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FC0C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -7402,8 +8843,21 @@ L_0886FC3C: } L_0886FC44: aot_gpr_31 = (0x0886FC4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 623u, 0x0886FC4Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FC4Cu) goto L_0886FC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FC4C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -7416,8 +8870,21 @@ L_0886FC54: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0886FC60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 625u, 0x0886FC60u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FC60u) goto L_0886FC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FC60: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -7435,8 +8902,21 @@ L_0886FC68: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_31 = (0x0886FC88u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 627u, 0x0886FC88u, 0x08AD32D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 552u, 0x08AD32D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FC88u) goto L_0886FC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FC88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); goto L_0886FC8C; @@ -7454,8 +8934,8 @@ L_0886FC98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886FCAC: @@ -7529,15 +9009,28 @@ L_0886FD24: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), 0u); aot_gpr_31 = (0x0886FD30u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(8), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 639u, 0x0886FD30u, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FD30u) goto L_0886FD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FD30: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0886FD40: @@ -7572,8 +9065,21 @@ L_0886FD80: } L_0886FD88: aot_gpr_31 = (0x0886FD90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 644u, 0x0886FD90u, 0x08AD38DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 643u, 0x08AD38DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FD90u) goto L_0886FD90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FD90: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7597,8 +9103,21 @@ L_0886FDA4: L_0886FDB0: aot_gpr_31 = (0x0886FDB8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 648u, 0x0886FDB8u, 0x08AD3538u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 583u, 0x08AD3538u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FDB8u) goto L_0886FDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FDB8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7609,8 +9128,21 @@ L_0886FDB8: L_0886FDC0: aot_gpr_31 = (0x0886FDC8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 650u, 0x0886FDC8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FDC8u) goto L_0886FDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FDC8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7621,8 +9153,21 @@ L_0886FDC8: L_0886FDD0: aot_gpr_31 = (0x0886FDD8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 652u, 0x0886FDD8u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FDD8u) goto L_0886FDD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FDD8: aot_gpr_4 = (ctx.gpr[2] & 67u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7678,8 +9223,21 @@ L_0886FE20: L_0886FE2C: aot_gpr_31 = (0x0886FE34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 660u, 0x0886FE34u, 0x08AD340Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 565u, 0x08AD340Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FE34u) goto L_0886FE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FE34: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (ctx.gpr[17] < static_cast(400) ? 1u : 0u); @@ -7692,8 +9250,21 @@ L_0886FE34: } L_0886FE44: aot_gpr_31 = (0x0886FE4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 662u, 0x0886FE4Cu, 0x08AD35ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 596u, 0x08AD35ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FE4Cu) goto L_0886FE4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FE4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -7712,8 +9283,21 @@ L_0886FE58: } L_0886FE64: aot_gpr_31 = (0x0886FE6Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 665u, 0x0886FE6Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FE6Cu) goto L_0886FE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FE6C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7748,8 +9332,21 @@ L_0886FE94: goto L_0886FEA8; L_0886FEA8: aot_gpr_31 = (0x0886FEB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 671u, 0x0886FEB0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FEB0u) goto L_0886FEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FEB0: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7680))); @@ -7821,8 +9418,21 @@ L_0886FF40: L_0886FF58: aot_gpr_31 = (0x0886FF60u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0026->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0026_entry, 679u, 0x0886FF60u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0886FF60u) goto L_0886FF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0886FF60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u + static_cast(-1)); diff --git a/profiles/vcs/generated/generated_unit_0027.cpp b/profiles/vcs/generated/generated_unit_0027.cpp index f0fe0b8..b7b7aea 100644 --- a/profiles/vcs/generated/generated_unit_0027.cpp +++ b/profiles/vcs/generated/generated_unit_0027.cpp @@ -1018,6 +1018,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08870000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1041,8 +1065,8 @@ L_08870000: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08870018: @@ -1068,8 +1092,21 @@ L_08870040: } L_08870050: aot_gpr_31 = (0x08870058u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 5u, 0x08870058u, 0x0889098Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 140u, 0x0889098Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870058u) goto L_08870058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870058: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(64))); @@ -1132,8 +1169,21 @@ L_08870058: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08870130u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 6u, 0x08870130u, 0x08890828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 121u, 0x08890828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870130u) goto L_08870130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870130: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -1180,8 +1230,21 @@ L_08870130: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088701C0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 7u, 0x088701C0u, 0x089D9020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 169u, 0x089D9020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088701C0u) goto L_088701C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088701C0: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_4 = (49844u << 16u); @@ -1189,42 +1252,120 @@ L_088701C0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088701D8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 8u, 0x088701D8u, 0x089D8A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 131u, 0x089D8A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088701D8u) goto L_088701D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088701D8: aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088701E8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 9u, 0x088701E8u, 0x089D9020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 169u, 0x089D9020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088701E8u) goto L_088701E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088701E8: aot_gpr_5 = (aot_gpr_29 + static_cast(108)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088701FCu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 10u, 0x088701FCu, 0x089D8A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 131u, 0x089D8A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088701FCu) goto L_088701FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088701FC: aot_gpr_5 = (aot_gpr_29 + static_cast(120)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0887020Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 11u, 0x0887020Cu, 0x089D9020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 169u, 0x089D9020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887020Cu) goto L_0887020C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887020C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0887021Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 12u, 0x0887021Cu, 0x08972FA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 642u, 0x08972FA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887021Cu) goto L_0887021C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887021C: aot_gpr_31 = (0x08870224u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 13u, 0x08870224u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870224u) goto L_08870224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870224: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); @@ -1281,8 +1422,21 @@ L_08870268: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(776))); aot_gpr_31 = (0x08870280u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 21u, 0x08870280u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870280u) goto L_08870280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870280: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887028Cu); @@ -1298,8 +1452,21 @@ L_08870294: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); aot_gpr_31 = (0x088702A0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 24u, 0x088702A0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088702A0u) goto L_088702A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088702A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7680))); goto L_088702A4; @@ -1331,8 +1498,21 @@ L_088702D8: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x088702FCu); aot_gpr_4 = (aot_gpr_4 + static_cast(29552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 27u, 0x088702FCu, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088702FCu) goto L_088702FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088702FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(92))); @@ -1395,8 +1575,8 @@ L_0887035C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887037C: @@ -1407,14 +1587,27 @@ L_0887037C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08870398u); aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 36u, 0x08870398u, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870398u) goto L_08870398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870398: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088703A4: @@ -1430,15 +1623,15 @@ L_088703BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088703C8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-27495))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088703D0: @@ -1450,8 +1643,8 @@ L_088703E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088703EC: @@ -1509,8 +1702,21 @@ L_08870438: goto L_0887043C; L_0887043C: aot_gpr_31 = (0x08870444u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 52u, 0x08870444u, 0x088851A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 258u, 0x088851A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870444u) goto L_08870444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870444: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-27496), static_cast(0u)); goto L_08870448; @@ -1518,8 +1724,8 @@ L_08870448: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08870454: @@ -1579,8 +1785,21 @@ L_088704BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088704C8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 64u, 0x088704C8u, 0x088851D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 260u, 0x088851D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088704C8u) goto L_088704C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088704C8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (ctx.gpr[28] + static_cast(5824)); @@ -1606,8 +1825,8 @@ L_088704E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088704F8: @@ -1663,8 +1882,21 @@ L_0887056C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x08870584u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 72u, 0x08870584u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870584u) goto L_08870584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870584: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -1951,8 +2183,8 @@ L_0887074C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08870784: @@ -1963,8 +2195,21 @@ L_08870784: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x088707A4u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 111u, 0x088707A4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088707A4u) goto L_088707A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088707A4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2171,28 +2416,106 @@ L_08870920: L_08870928: aot_gpr_31 = (0x08870930u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 139u, 0x08870930u, 0x0888510Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 249u, 0x0888510Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870930u) goto L_08870930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870930: aot_gpr_31 = (0x08870938u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 140u, 0x08870938u, 0x08AC2318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 542u, 0x08AC2318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870938u) goto L_08870938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870938: aot_gpr_31 = (0x08870940u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 141u, 0x08870940u, 0x08AF64B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 428u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 428u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 428u, 0x08AF64B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870940u) goto L_08870940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870940: aot_gpr_31 = (0x08870948u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 142u, 0x08870948u, 0x088FD89Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 335u, 0x088FD89Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870948u) goto L_08870948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870948: aot_gpr_31 = (0x08870950u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 143u, 0x08870950u, 0x089759ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 375u, 0x089759ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870950u) goto L_08870950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870950: aot_gpr_31 = (0x08870958u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 144u, 0x08870958u, 0x08885818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 376u, 0x08885818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870958u) goto L_08870958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870958: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); aot_gpr_16 = (2232u << 16u); @@ -2212,8 +2535,21 @@ L_08870970: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870980u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 147u, 0x08870980u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870980u) goto L_08870980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870980: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2232,8 +2568,21 @@ L_08870998: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27476)); aot_gpr_31 = (0x088709A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 151u, 0x088709A4u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088709A4u) goto L_088709A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088709A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2252,8 +2601,21 @@ L_088709BC: aot_gpr_5 = (0u + static_cast(-2)); aot_gpr_31 = (0x088709C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 155u, 0x088709C8u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088709C8u) goto L_088709C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088709C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2303,8 +2665,8 @@ L_08870A14: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-24512))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08870A2C: @@ -2342,8 +2704,21 @@ L_08870A68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870A74u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 169u, 0x08870A74u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870A74u) goto L_08870A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870A74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2405,8 +2780,21 @@ L_08870ADC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870AE8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 178u, 0x08870AE8u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870AE8u) goto L_08870AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870AE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2465,8 +2853,21 @@ L_08870B48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870B54u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 187u, 0x08870B54u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870B54u) goto L_08870B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870B54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2525,8 +2926,21 @@ L_08870BB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870BC0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 196u, 0x08870BC0u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870BC0u) goto L_08870BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870BC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2585,8 +2999,21 @@ L_08870C20: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870C2Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 205u, 0x08870C2Cu, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870C2Cu) goto L_08870C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870C2C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2645,8 +3072,21 @@ L_08870C8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870C98u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 214u, 0x08870C98u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870C98u) goto L_08870C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870C98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2705,8 +3145,21 @@ L_08870CF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870D04u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 223u, 0x08870D04u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870D04u) goto L_08870D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870D04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2765,8 +3218,21 @@ L_08870D64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870D70u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 232u, 0x08870D70u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870D70u) goto L_08870D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870D70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2825,8 +3291,21 @@ L_08870DD0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870DDCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 241u, 0x08870DDCu, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870DDCu) goto L_08870DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870DDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2885,8 +3364,21 @@ L_08870E3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870E48u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 250u, 0x08870E48u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870E48u) goto L_08870E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870E48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -2934,8 +3426,8 @@ L_08870E94: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-24472))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08870EAC: @@ -2973,8 +3465,21 @@ L_08870EE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870EF4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 263u, 0x08870EF4u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870EF4u) goto L_08870EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870EF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3033,8 +3538,21 @@ L_08870F54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870F60u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 272u, 0x08870F60u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870F60u) goto L_08870F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870F60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3093,8 +3611,21 @@ L_08870FC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08870FCCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 281u, 0x08870FCCu, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08870FCCu) goto L_08870FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08870FCC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3153,8 +3684,21 @@ L_0887102C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08871038u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 290u, 0x08871038u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871038u) goto L_08871038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871038: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3213,8 +3757,21 @@ L_08871098: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088710A4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 299u, 0x088710A4u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088710A4u) goto L_088710A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088710A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3273,8 +3830,21 @@ L_08871104: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08871110u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 308u, 0x08871110u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871110u) goto L_08871110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871110: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3333,8 +3903,21 @@ L_08871170: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0887117Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 317u, 0x0887117Cu, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887117Cu) goto L_0887117C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887117C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3393,8 +3976,21 @@ L_088711DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088711E8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 326u, 0x088711E8u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088711E8u) goto L_088711E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088711E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3453,8 +4049,21 @@ L_08871248: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08871254u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 335u, 0x08871254u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871254u) goto L_08871254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871254: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3513,8 +4122,21 @@ L_088712B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088712C0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 344u, 0x088712C0u, 0x088851F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 263u, 0x088851F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088712C0u) goto L_088712C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088712C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -3551,8 +4173,8 @@ L_088712F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871308: @@ -3561,14 +4183,27 @@ L_08871308: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0887131Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-24432)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 350u, 0x0887131Cu, 0x08A94D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 156u, 0x08A94D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887131Cu) goto L_0887131C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887131C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871328: @@ -3583,8 +4218,21 @@ L_08871328: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08871354u); aot_gpr_5 = (aot_gpr_5 + static_cast(-19320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 352u, 0x08871354u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871354u) goto L_08871354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871354: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3597,8 +4245,21 @@ L_08871360: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887136Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 354u, 0x0887136Cu, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887136Cu) goto L_0887136C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887136C: aot_gpr_31 = (0x08871374u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3619,13 +4280,39 @@ L_0887138C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27464)); aot_gpr_31 = (0x08871398u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 357u, 0x08871398u, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871398u) goto L_08871398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871398: aot_gpr_31 = (0x088713A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 358u, 0x088713A0u, 0x08A94D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 156u, 0x08A94D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088713A0u) goto L_088713A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088713A0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3635,22 +4322,35 @@ L_088713A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088713B4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088713C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 360u, 0x088713C4u, 0x08A94A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 107u, 0x08A94A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088713C4u) goto L_088713C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088713C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088713D0: @@ -3660,55 +4360,94 @@ L_088713D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088713E8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 362u, 0x088713E8u, 0x08A94B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 126u, 0x08A94B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088713E8u) goto L_088713E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088713E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088713F4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08871404u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 364u, 0x08871404u, 0x08A94CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 145u, 0x08A94CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871404u) goto L_08871404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871404: ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871414: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08871424u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 366u, 0x08871424u, 0x08A94B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 122u, 0x08A94B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871424u) goto L_08871424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871424: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871430: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871438: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871440: @@ -3739,13 +4478,39 @@ L_08871440: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(264), aot_gpr_31); aot_gpr_31 = (0x088714ACu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 370u, 0x088714ACu, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088714ACu) goto L_088714AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088714AC: aot_gpr_31 = (0x088714B4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 371u, 0x088714B4u, 0x08B59EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 542u, 0x08B59EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088714B4u) goto L_088714B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088714B4: aot_gpr_31 = (0x088714BCu); aot_gpr_4 = (aot_gpr_29 | 0u); @@ -3783,8 +4548,8 @@ L_088714E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088714F8: @@ -3920,8 +4685,8 @@ L_088715B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088715BC: @@ -4042,8 +4807,8 @@ L_088716AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088716C0: @@ -4095,8 +4860,8 @@ L_08871700: } L_08871708: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871710: @@ -4182,8 +4947,8 @@ L_08871790: goto L_0887179C; L_0887179C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088717A4: @@ -4270,8 +5035,8 @@ L_08871850: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871880: @@ -4317,8 +5082,8 @@ L_088718BC: } L_088718C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088718CC: @@ -4379,8 +5144,21 @@ L_0887192C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0887193Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 439u, 0x0887193Cu, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887193Cu) goto L_0887193C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887193C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); @@ -4402,8 +5180,21 @@ L_08871958: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08871968u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 442u, 0x08871968u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871968u) goto L_08871968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871968: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); @@ -4437,8 +5228,8 @@ L_08871994: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088719B4: @@ -4488,8 +5279,8 @@ L_08871A0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871A18: @@ -4531,8 +5322,8 @@ L_08871A60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871A78: @@ -4575,8 +5366,8 @@ L_08871AD8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871AE4: @@ -4662,8 +5453,8 @@ L_08871BC8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871BD4: @@ -4680,8 +5471,21 @@ L_08871BD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08871C08u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 469u, 0x08871C08u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871C08u) goto L_08871C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871C08: aot_gpr_4 = (ctx.gpr[17] << 3u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(28), ctx.gpr[2]); @@ -4703,8 +5507,8 @@ L_08871C2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871C44: @@ -4726,8 +5530,21 @@ L_08871C44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08871C8Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 472u, 0x08871C8Cu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871C8Cu) goto L_08871C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871C8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_5 = (0u | 24u); @@ -4756,8 +5573,8 @@ L_08871C8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871CEC: @@ -4791,8 +5608,8 @@ L_08871D20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871D2C: @@ -4835,14 +5652,27 @@ L_08871D60: L_08871D74: aot_gpr_31 = (0x08871D7Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-27432)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 484u, 0x08871D7Cu, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871D7Cu) goto L_08871D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871D7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871D88: @@ -4952,8 +5782,8 @@ L_08871E64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08871E80: @@ -5024,8 +5854,21 @@ L_08871F1C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08871F30u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 502u, 0x08871F30u, 0x08A93C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 588u, 0x08A93C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871F30u) goto L_08871F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871F30: aot_gpr_4 = (0u | 0u); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -5049,8 +5892,21 @@ L_08871F48: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08871F68u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 505u, 0x08871F68u, 0x08A94190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 28u, 0x08A94190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871F68u) goto L_08871F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871F68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_5 = (ctx.gpr[22] + static_cast(4)); @@ -5076,16 +5932,42 @@ L_08871F94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08871FB0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 507u, 0x08871FB0u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871FB0u) goto L_08871FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871FB0: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08871FC4u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 508u, 0x08871FC4u, 0x08A940D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 17u, 0x08A940D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08871FC4u) goto L_08871FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08871FC4: aot_fpr_12 = std::bit_cast(ctx.gpr[17]); aot_gpr_4 = (0u | 3u); @@ -5133,8 +6015,8 @@ L_0887201C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872048: @@ -5147,8 +6029,21 @@ L_08872048: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x08872070u); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 513u, 0x08872070u, 0x08B2463Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 41u, 0x08B2463Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872070u) goto L_08872070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872070: ctx.gpr[19] = (ctx.gpr[2] | 0u); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(28))); @@ -5166,8 +6061,21 @@ L_08872088: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08872098u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 515u, 0x08872098u, 0x089E7464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 705u, 0x089E7464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872098u) goto L_08872098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872098: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (aot_gpr_5 | 0u); @@ -5239,8 +6147,8 @@ L_08872104: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872148: @@ -5457,8 +6365,8 @@ L_0887232C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872348: @@ -5523,8 +6431,8 @@ L_088723C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088723DC: @@ -5629,8 +6537,8 @@ L_088724A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088724C4: @@ -5667,8 +6575,21 @@ L_0887250C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0887251Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-24356)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 563u, 0x0887251Cu, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887251Cu) goto L_0887251C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887251C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5705,8 +6626,21 @@ L_08872548: L_08872554: aot_gpr_31 = (0x0887255Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 569u, 0x0887255Cu, 0x088C4228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 30u, 0x088C4228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887255Cu) goto L_0887255C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887255C: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_08872560; @@ -5733,8 +6667,21 @@ L_08872570: L_08872594: aot_gpr_31 = (0x0887259Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 573u, 0x0887259Cu, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887259Cu) goto L_0887259C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887259C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5745,8 +6692,8 @@ L_0887259C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088725B4: @@ -5828,8 +6775,21 @@ L_08872650: L_0887265C: aot_gpr_31 = (0x08872664u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 584u, 0x08872664u, 0x088C4228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 30u, 0x088C4228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872664u) goto L_08872664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872664: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5853,8 +6813,8 @@ L_08872680: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872694: @@ -5880,8 +6840,21 @@ L_088726D4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088726E4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 589u, 0x088726E4u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088726E4u) goto L_088726E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088726E4: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); @@ -5914,8 +6887,8 @@ L_08872708: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872734: @@ -6016,8 +6989,21 @@ L_088727F0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_31 = (0x08872814u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 603u, 0x08872814u, 0x08AB05DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 68u, 0x08AB05DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872814u) goto L_08872814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872814: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6041,8 +7027,8 @@ L_08872834: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872848: @@ -6063,8 +7049,21 @@ L_0887285C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08872874u); aot_gpr_5 = (aot_gpr_5 + static_cast(-24264)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 609u, 0x08872874u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872874u) goto L_08872874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872874: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -6097,8 +7096,21 @@ L_088728A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x088728BCu); aot_gpr_5 = (aot_gpr_5 + static_cast(-24212)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 613u, 0x088728BCu, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088728BCu) goto L_088728BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088728BC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6163,8 +7175,8 @@ L_0887293C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872958: @@ -6202,8 +7214,21 @@ L_088729AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088729C4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 622u, 0x088729C4u, 0x08AB05DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 68u, 0x08AB05DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088729C4u) goto L_088729C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088729C4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -6238,8 +7263,8 @@ L_088729FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872A24: @@ -6262,8 +7287,21 @@ L_08872A24: L_08872A50: aot_gpr_31 = (0x08872A58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 628u, 0x08872A58u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872A58u) goto L_08872A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872A58: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -6279,8 +7317,21 @@ L_08872A68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08872A78u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 630u, 0x08872A78u, 0x089E67F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 513u, 0x089E67F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872A78u) goto L_08872A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872A78: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6294,8 +7345,21 @@ L_08872A80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08872A90u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 632u, 0x08872A90u, 0x0893BF28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 841u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 841u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 841u, 0x0893BF28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872A90u) goto L_08872A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872A90: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08872A94; @@ -6305,8 +7369,21 @@ L_08872A94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08872AA8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 634u, 0x08872AA8u, 0x08AB04C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 56u, 0x08AB04C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872AA8u) goto L_08872AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872AA8: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(12), ctx.gpr[17]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -6340,8 +7417,8 @@ L_08872ADC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872AFC: @@ -6368,8 +7445,21 @@ L_08872B38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x08872B50u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 639u, 0x08872B50u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08872B50u) goto L_08872B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08872B50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); @@ -6396,8 +7486,8 @@ L_08872B80: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872B8C: @@ -6411,8 +7501,8 @@ L_08872B8C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872BB8: @@ -6501,8 +7591,8 @@ L_08872C58: L_08872C70: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872C78: @@ -6894,8 +7984,8 @@ L_08872F4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08872F84: @@ -6957,8 +8047,21 @@ L_08873020: L_0887303C: aot_gpr_31 = (0x08873044u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 682u, 0x08873044u, 0x08906858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 561u, 0x08906858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873044u) goto L_08873044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873044: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7218,8 +8321,21 @@ L_08873208: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1784))); aot_gpr_31 = (0x0887321Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 711u, 0x0887321Cu, 0x08906858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 561u, 0x08906858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887321Cu) goto L_0887321C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887321C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7274,8 +8390,21 @@ L_0887322C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08873250u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 714u, 0x08873250u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873250u) goto L_08873250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873250: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7330,8 +8459,21 @@ L_0887329C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088732ACu); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 720u, 0x088732ACu, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088732ACu) goto L_088732AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088732AC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7354,8 +8496,21 @@ L_088732CC: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088732E8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 723u, 0x088732E8u, 0x089D1074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 167u, 0x089D1074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088732E8u) goto L_088732E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088732E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(52))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -7383,8 +8538,21 @@ L_0887330C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(24))); aot_gpr_31 = (0x08873324u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 726u, 0x08873324u, 0x088937CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 577u, 0x088937CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873324u) goto L_08873324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873324: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(92))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); @@ -7403,8 +8571,21 @@ L_0887333C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(24))); aot_gpr_31 = (0x08873354u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 728u, 0x08873354u, 0x08893C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 626u, 0x08893C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873354u) goto L_08873354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873354: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(16))); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -7412,8 +8593,21 @@ L_08873354: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(24))); aot_gpr_31 = (0x0887336Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 729u, 0x0887336Cu, 0x08893E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 647u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 647u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 647u, 0x08893E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887336Cu) goto L_0887336C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887336C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(92))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); @@ -7449,8 +8643,8 @@ L_0887338C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088733D0: @@ -7466,8 +8660,8 @@ L_088733D0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873400: @@ -7477,8 +8671,8 @@ L_08873400: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(ctx.fpr[15])); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873418: @@ -7494,8 +8688,21 @@ L_08873418: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08873448u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-24460)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 734u, 0x08873448u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873448u) goto L_08873448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873448: aot_gpr_4 = (aot_gpr_16 + static_cast(52)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(-48), 0u); @@ -7516,8 +8723,8 @@ L_08873464: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887347C: @@ -7545,8 +8752,8 @@ L_088734A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088734BC: @@ -7578,8 +8785,21 @@ L_088734EC: L_08873504: aot_gpr_31 = (0x0887350Cu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 742u, 0x0887350Cu, 0x08819EE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 364u, 0x08819EE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887350Cu) goto L_0887350C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887350C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), aot_gpr_4); @@ -7592,8 +8812,8 @@ L_0887350C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887352C: @@ -7606,8 +8826,21 @@ L_0887352C: L_0887353C: aot_gpr_31 = (0x08873544u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 745u, 0x08873544u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873544u) goto L_08873544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873544: aot_gpr_5 = (static_cast(ctx.gpr[2]) < -125 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -7646,8 +8879,8 @@ L_08873578: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873584: @@ -7660,8 +8893,21 @@ L_08873584: L_08873594: aot_gpr_31 = (0x0887359Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 753u, 0x0887359Cu, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887359Cu) goto L_0887359C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887359C: aot_gpr_5 = (static_cast(ctx.gpr[2]) < 126 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; @@ -7700,8 +8946,8 @@ L_088735D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088735DC: @@ -7714,8 +8960,8 @@ L_088735DC: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(5), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873600: @@ -7744,8 +8990,21 @@ L_08873638: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x08873644u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 763u, 0x08873644u, 0x089C7184u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 728u, 0x089C7184u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873644u) goto L_08873644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873644: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(204), aot_gpr_4); @@ -7756,8 +9015,21 @@ L_08873644: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08873668u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 764u, 0x08873668u, 0x08874584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 81u, 0x08874584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873668u) goto L_08873668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873668: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27352)); aot_gpr_6 = (ctx.gpr[28] + static_cast(-27344)); @@ -7767,8 +9039,21 @@ L_08873668: L_08873678: aot_gpr_31 = (0x08873680u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27160)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 766u, 0x08873680u, 0x0893509Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 269u, 0x0893509Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873680u) goto L_08873680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873680: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7782,8 +9067,21 @@ L_0887368C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08873698u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 768u, 0x08873698u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873698u) goto L_08873698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873698: aot_gpr_31 = (0x088736A0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -7792,8 +9090,21 @@ L_08873698: L_088736A0: aot_gpr_31 = (0x088736A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 770u, 0x088736A8u, 0x0882E9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 609u, 0x0882E9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088736A8u) goto L_088736A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088736A8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7820,8 +9131,21 @@ L_088736C4: L_088736CC: aot_gpr_31 = (0x088736D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 775u, 0x088736D4u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088736D4u) goto L_088736D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088736D4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7831,8 +9155,8 @@ L_088736D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088736E8: @@ -7841,8 +9165,21 @@ L_088736E8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08873700u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 777u, 0x08873700u, 0x08B3AAF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 734u, 0x08B3AAF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873700u) goto L_08873700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873700: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7986,8 +9323,21 @@ L_088737F0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088737FCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 799u, 0x088737FCu, 0x08AE0790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 126u, 0x08AE0790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088737FCu) goto L_088737FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088737FC: aot_gpr_31 = (0x08873804u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8025,8 +9375,21 @@ L_08873834: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08873848u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 805u, 0x08873848u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873848u) goto L_08873848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873848: aot_gpr_31 = (0x08873850u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8040,8 +9403,21 @@ L_08873854: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08873864u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 808u, 0x08873864u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873864u) goto L_08873864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873864: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8064,8 +9440,21 @@ L_08873878: L_08873880: aot_gpr_31 = (0x08873888u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 812u, 0x08873888u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873888u) goto L_08873888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873888: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8094,8 +9483,21 @@ L_088738AC: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088738C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 816u, 0x088738C0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088738C0u) goto L_088738C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088738C0: aot_gpr_31 = (0x088738C8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8107,8 +9509,21 @@ L_088738C8: L_088738CC: aot_gpr_31 = (0x088738D4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 819u, 0x088738D4u, 0x0882E9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 614u, 0x0882E9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088738D4u) goto L_088738D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088738D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8166,8 +9581,21 @@ L_0887392C: L_08873930: aot_gpr_31 = (0x08873938u); aot_gpr_4 = (aot_gpr_16 + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 827u, 0x08873938u, 0x0886FD40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 640u, 0x0886FD40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873938u) goto L_08873938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873938: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8177,8 +9605,8 @@ L_08873938: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887394C: @@ -8220,8 +9648,8 @@ L_08873994: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088739A0: @@ -8248,22 +9676,35 @@ L_088739C4: L_088739CC: aot_gpr_31 = (0x088739D4u); aot_gpr_4 = (aot_gpr_16 + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 837u, 0x088739D4u, 0x0886FCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 630u, 0x0886FCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088739D4u) goto L_088739D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088739D4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088739E4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088739EC: @@ -8294,8 +9735,21 @@ L_08873A24: aot_gpr_5 = (0u | 198u); aot_gpr_31 = (0x08873A34u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 843u, 0x08873A34u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873A34u) goto L_08873A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873A34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); ctx.gpr[18] = (2237u << 16u); @@ -8311,8 +9765,21 @@ L_08873A44: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08873A54u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 845u, 0x08873A54u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873A54u) goto L_08873A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873A54: aot_gpr_31 = (0x08873A5Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8321,8 +9788,21 @@ L_08873A54: L_08873A5C: aot_gpr_31 = (0x08873A64u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 847u, 0x08873A64u, 0x0882E670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 549u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 549u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 549u, 0x0882E670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873A64u) goto L_08873A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873A64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8338,8 +9818,21 @@ L_08873A70: L_08873A78: aot_gpr_31 = (0x08873A80u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 850u, 0x08873A80u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873A80u) goto L_08873A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873A80: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); @@ -8368,8 +9861,21 @@ L_08873A9C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08873AA8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 854u, 0x08873AA8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873AA8u) goto L_08873AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873AA8: aot_gpr_31 = (0x08873AB0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8378,8 +9884,21 @@ L_08873AA8: L_08873AB0: aot_gpr_31 = (0x08873AB8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 856u, 0x08873AB8u, 0x0882E9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 614u, 0x0882E9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873AB8u) goto L_08873AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873AB8: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); @@ -8401,8 +9920,21 @@ L_08873AC8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08873AD8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 859u, 0x08873AD8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873AD8u) goto L_08873AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873AD8: aot_gpr_31 = (0x08873AE0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8415,8 +9947,21 @@ L_08873AE4: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08873AF0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 862u, 0x08873AF0u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873AF0u) goto L_08873AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873AF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8437,8 +9982,21 @@ L_08873B00: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08873B10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 865u, 0x08873B10u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873B10u) goto L_08873B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873B10: aot_gpr_31 = (0x08873B18u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8447,8 +10005,21 @@ L_08873B10: L_08873B18: aot_gpr_31 = (0x08873B20u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 867u, 0x08873B20u, 0x0882E980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 605u, 0x0882E980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873B20u) goto L_08873B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873B20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8462,8 +10033,21 @@ L_08873B2C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08873B38u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 869u, 0x08873B38u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873B38u) goto L_08873B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873B38: aot_gpr_31 = (0x08873B40u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8472,8 +10056,21 @@ L_08873B38: L_08873B40: aot_gpr_31 = (0x08873B48u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 871u, 0x08873B48u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873B48u) goto L_08873B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873B48: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_gpr_29 + static_cast(12)); @@ -8486,8 +10083,21 @@ L_08873B5C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08873B68u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 873u, 0x08873B68u, 0x08AE2634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 641u, 0x08AE2634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873B68u) goto L_08873B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873B68: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8521,8 +10131,21 @@ L_08873B8C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08873B9Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 878u, 0x08873B9Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873B9Cu) goto L_08873B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873B9C: aot_gpr_31 = (0x08873BA4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8531,8 +10154,21 @@ L_08873B9C: L_08873BA4: aot_gpr_31 = (0x08873BACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 880u, 0x08873BACu, 0x0882E980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 605u, 0x0882E980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873BACu) goto L_08873BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873BAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8546,8 +10182,21 @@ L_08873BB8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08873BC4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 882u, 0x08873BC4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873BC4u) goto L_08873BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873BC4: aot_gpr_31 = (0x08873BCCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -8556,8 +10205,21 @@ L_08873BC4: L_08873BCC: aot_gpr_31 = (0x08873BD4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 884u, 0x08873BD4u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873BD4u) goto L_08873BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873BD4: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); @@ -8570,8 +10232,21 @@ L_08873BE8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08873BF4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 886u, 0x08873BF4u, 0x08AE2634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 641u, 0x08AE2634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873BF4u) goto L_08873BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873BF4: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8611,8 +10286,8 @@ L_08873C20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873C40: @@ -8640,14 +10315,40 @@ L_08873C40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08873CA0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 892u, 0x08873CA0u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873CA0u) goto L_08873CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873CA0: ctx.gpr[19] = (aot_gpr_16 + static_cast(24)); aot_gpr_31 = (0x08873CACu); aot_gpr_4 = (aot_gpr_16 + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 893u, 0x08873CACu, 0x0886F950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 579u, 0x0886F950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873CACu) goto L_08873CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873CAC: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(244), aot_gpr_4); @@ -8663,8 +10364,21 @@ L_08873CAC: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08873CE4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 894u, 0x08873CE4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873CE4u) goto L_08873CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873CE4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(400), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(404), 0u); @@ -8691,8 +10405,8 @@ L_08873D10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873D30: @@ -8787,8 +10501,8 @@ L_08873E1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873E2C: @@ -8895,15 +10609,28 @@ L_08873ED8: goto L_08873EDC; L_08873EDC: aot_gpr_31 = (0x08873EE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 922u, 0x08873EE4u, 0x08A53F2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 764u, 0x08A53F2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873EE4u) goto L_08873EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873EE4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873EF4: @@ -8918,8 +10645,21 @@ L_08873EF4: L_08873F0C: aot_gpr_31 = (0x08873F14u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 925u, 0x08873F14u, 0x0898C008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 2u, 0x0898C008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873F14u) goto L_08873F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873F14: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8942,8 +10682,21 @@ L_08873F28: L_08873F30: aot_gpr_31 = (0x08873F38u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 929u, 0x08873F38u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873F38u) goto L_08873F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873F38: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8961,14 +10714,14 @@ L_08873F4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873F5C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08873F64: @@ -8991,8 +10744,21 @@ L_08873F64: L_08873F90: aot_gpr_31 = (0x08873F98u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 935u, 0x08873F98u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873F98u) goto L_08873F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873F98: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(48))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -9008,8 +10774,21 @@ L_08873F98: L_08873FB0: aot_gpr_31 = (0x08873FB8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0027->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0027_entry, 937u, 0x08873FB8u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08873FB8u) goto L_08873FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08873FB8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(48))); aot_gpr_4 = (ctx.gpr[2] | 0u); diff --git a/profiles/vcs/generated/generated_unit_0028.cpp b/profiles/vcs/generated/generated_unit_0028.cpp index d8b7ecf..4050841 100644 --- a/profiles/vcs/generated/generated_unit_0028.cpp +++ b/profiles/vcs/generated/generated_unit_0028.cpp @@ -1378,6 +1378,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08874000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1412,8 +1436,21 @@ L_0887400C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-7076), aot_gpr_6); aot_gpr_31 = (0x08874030u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 4u, 0x08874030u, 0x0886FB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 607u, 0x0886FB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874030u) goto L_08874030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874030: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1441,8 +1478,21 @@ L_0887404C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7076))); aot_gpr_31 = (0x0887405Cu); aot_gpr_4 = (ctx.gpr[16] + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 8u, 0x0887405Cu, 0x0886FB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 607u, 0x0886FB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887405Cu) goto L_0887405C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887405C: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-27112), aot_gpr_4); @@ -1474,8 +1524,21 @@ L_08874088: L_08874090: aot_gpr_31 = (0x08874098u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 13u, 0x08874098u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874098u) goto L_08874098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874098: aot_gpr_4 = (static_cast(aot_gpr_2) < -125 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1513,8 +1576,21 @@ L_088740C0: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x088740D8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 18u, 0x088740D8u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088740D8u) goto L_088740D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088740D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7076))); aot_gpr_17 = (ctx.gpr[16] + static_cast(164)); @@ -1541,8 +1617,21 @@ L_088740F8: goto L_08874100; L_08874100: aot_gpr_31 = (0x08874108u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 22u, 0x08874108u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874108u) goto L_08874108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874108: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7076))); aot_gpr_5 = (aot_gpr_4 << 4u); @@ -1587,8 +1676,21 @@ L_0887414C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08874158u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 28u, 0x08874158u, 0x0886FB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 607u, 0x0886FB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874158u) goto L_08874158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874158: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1604,8 +1706,21 @@ L_08874160: L_08874168: aot_gpr_31 = (0x08874170u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 31u, 0x08874170u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874170u) goto L_08874170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874170: aot_gpr_4 = (static_cast(aot_gpr_2) < 126 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1630,8 +1745,21 @@ L_08874188: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x088741A4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 34u, 0x088741A4u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088741A4u) goto L_088741A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088741A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7076))); ctx.gpr[16] = (2233u << 16u); @@ -1651,8 +1779,21 @@ L_088741C4: goto L_088741C8; L_088741C8: aot_gpr_31 = (0x088741D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 37u, 0x088741D0u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088741D0u) goto L_088741D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088741D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7076))); aot_gpr_5 = (aot_gpr_4 << 4u); @@ -1690,8 +1831,21 @@ L_0887420C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08874218u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 42u, 0x08874218u, 0x0886FB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 607u, 0x0886FB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874218u) goto L_08874218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874218: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-27104))); { const bool branch_taken = static_cast(aot_gpr_5) <= 0; @@ -1726,8 +1880,8 @@ L_0887423C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08874254: @@ -1749,13 +1903,39 @@ L_0887427C: aot_gpr_4 = (aot_gpr_4 | 39322u); aot_gpr_31 = (0x0887428Cu); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 50u, 0x0887428Cu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887428Cu) goto L_0887428C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887428C: aot_gpr_31 = (0x08874294u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 51u, 0x08874294u, 0x08B0C510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 66u, 0x08B0C510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874294u) goto L_08874294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874294: { const bool branch_taken = ctx.gpr[16] != 0u; if (branch_taken) { @@ -1886,8 +2066,8 @@ L_088743D4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088743EC: @@ -1909,13 +2089,39 @@ L_08874414: aot_gpr_4 = (aot_gpr_4 | 39322u); aot_gpr_31 = (0x08874424u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 67u, 0x08874424u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874424u) goto L_08874424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874424: aot_gpr_31 = (0x0887442Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 68u, 0x0887442Cu, 0x08B0C510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 66u, 0x08B0C510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887442Cu) goto L_0887442C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887442C: { const bool branch_taken = ctx.gpr[16] != 0u; if (branch_taken) { @@ -2046,8 +2252,8 @@ L_0887456C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08874584: @@ -2071,8 +2277,21 @@ L_088745B0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088745BCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 83u, 0x088745BCu, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088745BCu) goto L_088745BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088745BC: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -2097,20 +2316,59 @@ L_088745D8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088745F4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 87u, 0x088745F4u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088745F4u) goto L_088745F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088745F4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08874600u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 88u, 0x08874600u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874600u) goto L_08874600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874600: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0887460Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 89u, 0x0887460Cu, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887460Cu) goto L_0887460C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887460C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(48))); aot_gpr_5 = (aot_gpr_4 & 1u); @@ -2179,20 +2437,59 @@ L_08874668: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08874680u); aot_gpr_5 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 98u, 0x08874680u, 0x08ADC78Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 148u, 0x08ADC78Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874680u) goto L_08874680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874680: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0887468Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 99u, 0x0887468Cu, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887468Cu) goto L_0887468C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887468C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08874698u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 100u, 0x08874698u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874698u) goto L_08874698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874698: aot_gpr_31 = (0x088746A0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2213,16 +2510,29 @@ L_088746B0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-24184))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088746C8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088746D4u); aot_gpr_5 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 104u, 0x088746D4u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088746D4u) goto L_088746D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088746D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2234,8 +2544,21 @@ L_088746DC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088746E8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 106u, 0x088746E8u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088746E8u) goto L_088746E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088746E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2260,8 +2583,21 @@ L_08874700: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(48), aot_gpr_5); aot_gpr_31 = (0x08874718u); aot_gpr_5 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 109u, 0x08874718u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874718u) goto L_08874718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874718: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2273,8 +2609,21 @@ L_08874720: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0887472Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 111u, 0x0887472Cu, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887472Cu) goto L_0887472C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887472C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2300,8 +2649,21 @@ L_08874744: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08874750u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 115u, 0x08874750u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874750u) goto L_08874750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874750: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2326,8 +2688,21 @@ L_08874768: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(48), aot_gpr_5); aot_gpr_31 = (0x08874780u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 118u, 0x08874780u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874780u) goto L_08874780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874780: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2339,8 +2714,21 @@ L_08874788: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08874794u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 120u, 0x08874794u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874794u) goto L_08874794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874794: ctx.gpr[18] = (0u | 12u); goto L_08874798; @@ -2375,8 +2763,21 @@ L_088747C0: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x088747CCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 127u, 0x088747CCu, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088747CCu) goto L_088747CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088747CC: aot_gpr_31 = (0x088747D4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2393,8 +2794,21 @@ L_088747DC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088747E8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 130u, 0x088747E8u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088747E8u) goto L_088747E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088747E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2412,8 +2826,8 @@ L_088747F0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08874808: @@ -2479,8 +2893,8 @@ L_08874864: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887487C: @@ -2509,8 +2923,8 @@ L_088748B0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-24144))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088748C8: @@ -2951,8 +3365,8 @@ L_08874B68: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08874B80: @@ -2961,8 +3375,21 @@ L_08874B80: aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08874BA8u); ctx.gpr[19] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 207u, 0x08874BA8u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874BA8u) goto L_08874BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874BA8: aot_gpr_17 = (2237u << 16u); aot_gpr_17 = (aot_gpr_17 + static_cast(-28736)); @@ -2992,8 +3419,8 @@ L_08874BD8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-24104))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08874BF0: @@ -3222,8 +3649,8 @@ L_08874D0C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08874D34: @@ -3248,8 +3675,21 @@ L_08874D60: aot_gpr_4 = (ctx.gpr[29] | 0u); aot_gpr_31 = (0x08874D70u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 247u, 0x08874D70u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874D70u) goto L_08874D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874D70: aot_gpr_5 = (ctx.gpr[29] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(128))); @@ -3376,8 +3816,21 @@ L_08874E20: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_31 = (0x08874E2Cu); aot_gpr_4 = (aot_gpr_4 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 263u, 0x08874E2Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874E2Cu) goto L_08874E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874E2C: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_6 = (aot_gpr_17 + static_cast(2)); @@ -3391,18 +3844,57 @@ L_08874E40: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08874E50u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 265u, 0x08874E50u, 0x089F5BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 328u, 0x089F5BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874E50u) goto L_08874E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874E50: aot_gpr_31 = (0x08874E58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 266u, 0x08874E58u, 0x08B0C748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 96u, 0x08B0C748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874E58u) goto L_08874E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874E58: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08874E64u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 267u, 0x08874E64u, 0x08AFD998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 301u, 0x08AFD998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874E64u) goto L_08874E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874E64: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08874E70u); @@ -3422,8 +3914,8 @@ L_08874E74: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(672)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08874E8C: @@ -3448,8 +3940,21 @@ L_08874EB8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08874EC8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 272u, 0x08874EC8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874EC8u) goto L_08874EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874EC8: aot_gpr_31 = (0x08874ED0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -3459,12 +3964,38 @@ L_08874ED0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08874EDCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 274u, 0x08874EDCu, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874EDCu) goto L_08874EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874EDC: aot_gpr_31 = (0x08874EE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 275u, 0x08874EE4u, 0x088633B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 595u, 0x088633B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874EE4u) goto L_08874EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874EE4: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(424), static_cast(aot_gpr_4)); @@ -3485,8 +4016,21 @@ L_08874F00: L_08874F04: aot_gpr_31 = (0x08874F0Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 279u, 0x08874F0Cu, 0x0880DCB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 418u, 0x0880DCB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874F0Cu) goto L_08874F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874F0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -3504,8 +4048,21 @@ L_08874F20: L_08874F24: aot_gpr_31 = (0x08874F2Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 283u, 0x08874F2Cu, 0x089C6DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 645u, 0x089C6DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874F2Cu) goto L_08874F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874F2C: aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_17 != 0u; @@ -3524,8 +4081,21 @@ L_08874F40: L_08874F44: aot_gpr_31 = (0x08874F4Cu); aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(6850), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 287u, 0x08874F4Cu, 0x08AB9680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 271u, 0x08AB9680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874F4Cu) goto L_08874F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874F4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -3537,8 +4107,21 @@ L_08874F58: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08874F64u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 289u, 0x08874F64u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874F64u) goto L_08874F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874F64: aot_gpr_17 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3562,8 +4145,21 @@ L_08874F7C: L_08874F84: aot_gpr_31 = (0x08874F8Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-27060)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 294u, 0x08874F8Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874F8Cu) goto L_08874F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874F8C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -3574,8 +4170,21 @@ L_08874F8C: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x08874FB0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 295u, 0x08874FB0u, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874FB0u) goto L_08874FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874FB0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_5 != 0u; @@ -3597,8 +4206,21 @@ L_08874FCC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27100)); aot_gpr_31 = (0x08874FD8u); aot_gpr_6 = (ctx.gpr[28] + static_cast(-27088)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 299u, 0x08874FD8u, 0x08A53BE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 723u, 0x08A53BE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08874FD8u) goto L_08874FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08874FD8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_5 != 0u) { @@ -3670,8 +4292,8 @@ L_0887503C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08875058: @@ -3715,8 +4337,8 @@ L_0887509C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088750A8: @@ -3740,8 +4362,21 @@ L_088750D0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x088750E0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 318u, 0x088750E0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088750E0u) goto L_088750E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088750E0: aot_gpr_31 = (0x088750E8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -3751,8 +4386,21 @@ L_088750E8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088750F4u); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 320u, 0x088750F4u, 0x0882E704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 553u, 0x0882E704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088750F4u) goto L_088750F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088750F4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_5 != 0u) { @@ -3824,8 +4472,21 @@ L_08875158: L_0887515C: aot_gpr_31 = (0x08875164u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 333u, 0x08875164u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875164u) goto L_08875164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875164: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3835,8 +4496,21 @@ L_08875164: } L_0887516C: aot_gpr_31 = (0x08875174u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 335u, 0x08875174u, 0x08B3AAF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 734u, 0x08B3AAF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875174u) goto L_08875174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875174: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3857,8 +4531,21 @@ L_08875188: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08875194u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 338u, 0x08875194u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875194u) goto L_08875194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875194: aot_gpr_31 = (0x0887519Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -3867,8 +4554,21 @@ L_08875194: L_0887519C: aot_gpr_31 = (0x088751A4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 340u, 0x088751A4u, 0x0882E9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 609u, 0x0882E9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088751A4u) goto L_088751A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088751A4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3926,8 +4626,21 @@ L_088751EC: aot_gpr_5 = (0u | 196u); aot_gpr_31 = (0x088751FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 349u, 0x088751FCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088751FCu) goto L_088751FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088751FC: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(416), static_cast(0u)); aot_gpr_31 = (0x08875208u); @@ -3942,8 +4655,21 @@ L_08875208: } L_08875210: aot_gpr_31 = (0x08875218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 352u, 0x08875218u, 0x088633B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 595u, 0x088633B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875218u) goto L_08875218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875218: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_5 != 0u; @@ -3965,8 +4691,21 @@ L_08875234: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27100)); aot_gpr_31 = (0x08875240u); aot_gpr_6 = (ctx.gpr[28] + static_cast(-27088)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 356u, 0x08875240u, 0x08A53BE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 723u, 0x08A53BE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875240u) goto L_08875240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875240: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_5 != 0u) { @@ -4049,8 +4788,21 @@ L_088752BC: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x088752CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 369u, 0x088752CCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088752CCu) goto L_088752CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088752CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); { const bool branch_taken = static_cast(aot_gpr_4) > 0; @@ -4090,8 +4842,21 @@ L_088752FC: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x0887530Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 374u, 0x0887530Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887530Cu) goto L_0887530C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887530C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -4154,8 +4919,21 @@ L_0887535C: aot_gpr_5 = (0u | 196u); aot_gpr_31 = (0x0887536Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 384u, 0x0887536Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887536Cu) goto L_0887536C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887536C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(416))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4176,8 +4954,21 @@ L_08875384: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08875390u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 387u, 0x08875390u, 0x088739ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 839u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 839u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 839u, 0x088739ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875390u) goto L_08875390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875390: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4210,8 +5001,21 @@ L_088753B4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x088753C4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 392u, 0x088753C4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088753C4u) goto L_088753C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088753C4: aot_gpr_31 = (0x088753CCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -4224,8 +5028,21 @@ L_088753D0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088753DCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 395u, 0x088753DCu, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088753DCu) goto L_088753DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088753DC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(416), static_cast(ctx.gpr[18])); @@ -4259,8 +5076,21 @@ L_08875404: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x08875414u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 400u, 0x08875414u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875414u) goto L_08875414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875414: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); { const bool branch_taken = static_cast(aot_gpr_4) > 0; @@ -4300,8 +5130,21 @@ L_08875444: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x08875454u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 405u, 0x08875454u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875454u) goto L_08875454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875454: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -4364,8 +5207,21 @@ L_088754A4: aot_gpr_5 = (0u | 196u); aot_gpr_31 = (0x088754B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 415u, 0x088754B4u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088754B4u) goto L_088754B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088754B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4385,8 +5241,21 @@ L_088754D0: aot_gpr_6 = (ctx.gpr[28] + static_cast(-27328)); aot_gpr_31 = (0x088754E0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 418u, 0x088754E0u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088754E0u) goto L_088754E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088754E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4419,8 +5288,21 @@ L_08875508: goto L_0887550C; L_0887550C: aot_gpr_31 = (0x08875514u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 424u, 0x08875514u, 0x08A54034u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 4u, 0x08A54034u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875514u) goto L_08875514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875514: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(204), 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4445,8 +5327,21 @@ L_08875538: L_0887553C: aot_gpr_31 = (0x08875544u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 429u, 0x08875544u, 0x08A53CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 730u, 0x08A53CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875544u) goto L_08875544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875544: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_6 != 0u) { @@ -4562,20 +5457,59 @@ L_088755F8: goto L_088755FC; L_088755FC: aot_gpr_31 = (0x08875604u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 447u, 0x08875604u, 0x08A551F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 283u, 0x08A551F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875604u) goto L_08875604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875604: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27320)); aot_gpr_6 = (ctx.gpr[28] + static_cast(-27312)); aot_gpr_31 = (0x08875614u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 448u, 0x08875614u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875614u) goto L_08875614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875614: aot_gpr_31 = (0x0887561Cu); aot_gpr_4 = (ctx.gpr[16] + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 449u, 0x0887561Cu, 0x0886F9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 589u, 0x0886F9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887561Cu) goto L_0887561C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887561C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -4614,8 +5548,21 @@ L_08875650: goto L_08875654; L_08875654: aot_gpr_31 = (0x0887565Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 457u, 0x0887565Cu, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887565Cu) goto L_0887565C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887565C: ctx.gpr[7] = (3u << 16u); ctx.gpr[8] = (3u << 16u); @@ -4642,8 +5589,21 @@ L_0887568C: aot_gpr_6 = (ctx.gpr[28] + static_cast(-27344)); aot_gpr_31 = (0x0887569Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 460u, 0x0887569Cu, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887569Cu) goto L_0887569C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887569C: aot_gpr_31 = (0x088756A4u); ctx.pc = 0x08B73514u; @@ -4673,8 +5633,21 @@ L_088756B8: L_088756E8: aot_gpr_31 = (0x088756F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 464u, 0x088756F0u, 0x08873EF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 923u, 0x08873EF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088756F0u) goto L_088756F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088756F0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(12), aot_run_words); @@ -4685,8 +5658,8 @@ L_088756F0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08875708: @@ -4763,8 +5736,21 @@ L_0887578C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0887579Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 476u, 0x0887579Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887579Cu) goto L_0887579C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887579C: aot_gpr_31 = (0x088757A4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -4773,8 +5759,21 @@ L_0887579C: L_088757A4: aot_gpr_31 = (0x088757ACu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 478u, 0x088757ACu, 0x0882E9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 614u, 0x0882E9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088757ACu) goto L_088757AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088757AC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4806,8 +5805,21 @@ L_088757D8: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x088757E4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 483u, 0x088757E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088757E4u) goto L_088757E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088757E4: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4831,8 +5843,21 @@ L_088757FC: L_08875804: aot_gpr_31 = (0x0887580Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 488u, 0x0887580Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887580Cu) goto L_0887580C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887580C: aot_gpr_6 = (0u | 60u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4866,8 +5891,21 @@ L_08875848: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08875854u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 493u, 0x08875854u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875854u) goto L_08875854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875854: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4891,8 +5929,21 @@ L_0887586C: L_08875874: aot_gpr_31 = (0x0887587Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 498u, 0x0887587Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887587Cu) goto L_0887587C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887587C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -4985,8 +6036,21 @@ L_08875940: L_08875964: aot_gpr_31 = (0x0887596Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 509u, 0x0887596Cu, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887596Cu) goto L_0887596C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887596C: aot_gpr_31 = (0x08875974u); aot_gpr_4 = (0u | 2u); @@ -4994,8 +6058,21 @@ L_0887596C: AOT_REGCACHE_SYNC_OUT(); return; L_08875974: aot_gpr_31 = (0x0887597Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 511u, 0x0887597Cu, 0x08B3AAF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 734u, 0x08B3AAF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887597Cu) goto L_0887597C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887597C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5016,8 +6093,21 @@ L_08875990: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887599Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 514u, 0x0887599Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887599Cu) goto L_0887599C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887599C: aot_gpr_17 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -5041,8 +6131,21 @@ L_088759B4: L_088759BC: aot_gpr_31 = (0x088759C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 519u, 0x088759C4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088759C4u) goto L_088759C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088759C4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -5074,8 +6177,21 @@ L_088759F0: goto L_088759F4; L_088759F4: aot_gpr_31 = (0x088759FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 525u, 0x088759FCu, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088759FCu) goto L_088759FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088759FC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5096,8 +6212,21 @@ L_08875A10: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08875A1Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 528u, 0x08875A1Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875A1Cu) goto L_08875A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875A1C: aot_gpr_17 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -5121,8 +6250,21 @@ L_08875A34: L_08875A3C: aot_gpr_31 = (0x08875A44u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 533u, 0x08875A44u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875A44u) goto L_08875A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875A44: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -5151,8 +6293,21 @@ L_08875A6C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_17); aot_gpr_31 = (0x08875A78u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 537u, 0x08875A78u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875A78u) goto L_08875A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875A78: aot_gpr_31 = (0x08875A80u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -5161,8 +6316,21 @@ L_08875A78: L_08875A80: aot_gpr_31 = (0x08875A88u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 539u, 0x08875A88u, 0x0882E9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 609u, 0x0882E9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875A88u) goto L_08875A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875A88: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(416))); @@ -5183,8 +6351,21 @@ L_08875A98: aot_gpr_4 = (aot_gpr_4 | 5243u); aot_gpr_31 = (0x08875AA8u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 542u, 0x08875AA8u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875AA8u) goto L_08875AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875AA8: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[19] != 0u; @@ -5198,8 +6379,21 @@ L_08875AB4: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08875AC0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 544u, 0x08875AC0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875AC0u) goto L_08875AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875AC0: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -5223,8 +6417,21 @@ L_08875AD8: L_08875AE0: aot_gpr_31 = (0x08875AE8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 549u, 0x08875AE8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875AE8u) goto L_08875AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875AE8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -5244,8 +6451,21 @@ L_08875B04: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_17); aot_gpr_31 = (0x08875B10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 552u, 0x08875B10u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875B10u) goto L_08875B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875B10: aot_gpr_31 = (0x08875B18u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -5254,8 +6474,21 @@ L_08875B10: L_08875B18: aot_gpr_31 = (0x08875B20u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 554u, 0x08875B20u, 0x0882E9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 614u, 0x0882E9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875B20u) goto L_08875B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875B20: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5275,8 +6508,21 @@ L_08875B34: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08875B40u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 557u, 0x08875B40u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875B40u) goto L_08875B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875B40: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5300,8 +6546,21 @@ L_08875B58: L_08875B60: aot_gpr_31 = (0x08875B68u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-27004)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 562u, 0x08875B68u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875B68u) goto L_08875B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875B68: aot_gpr_6 = (0u | 120u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5333,8 +6592,21 @@ L_08875BA0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08875BACu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 567u, 0x08875BACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875BACu) goto L_08875BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875BAC: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5358,8 +6630,21 @@ L_08875BC4: L_08875BCC: aot_gpr_31 = (0x08875BD4u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-26996)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 572u, 0x08875BD4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875BD4u) goto L_08875BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875BD4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -5392,8 +6677,21 @@ L_08875C10: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08875C1Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 577u, 0x08875C1Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875C1Cu) goto L_08875C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875C1C: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5417,8 +6715,21 @@ L_08875C34: L_08875C3C: aot_gpr_31 = (0x08875C44u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-26988)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 582u, 0x08875C44u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875C44u) goto L_08875C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875C44: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -5453,8 +6764,21 @@ L_08875C70: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08875C7Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 587u, 0x08875C7Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875C7Cu) goto L_08875C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875C7C: aot_gpr_17 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -5478,8 +6802,21 @@ L_08875C94: L_08875C9C: aot_gpr_31 = (0x08875CA4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 592u, 0x08875CA4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875CA4u) goto L_08875CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875CA4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -5558,8 +6895,21 @@ L_08875D60: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08875D6Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 601u, 0x08875D6Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875D6Cu) goto L_08875D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875D6C: aot_gpr_17 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -5583,8 +6933,21 @@ L_08875D84: L_08875D8C: aot_gpr_31 = (0x08875D94u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 606u, 0x08875D94u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875D94u) goto L_08875D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875D94: aot_gpr_6 = (0u | 170u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5617,8 +6980,21 @@ L_08875DC0: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08875DCCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 611u, 0x08875DCCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875DCCu) goto L_08875DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875DCC: aot_gpr_17 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -5642,8 +7018,21 @@ L_08875DE4: L_08875DEC: aot_gpr_31 = (0x08875DF4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 616u, 0x08875DF4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875DF4u) goto L_08875DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875DF4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -5663,8 +7052,8 @@ L_08875E04: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08875E24: @@ -5685,8 +7074,21 @@ L_08875E48: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08875E5Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 620u, 0x08875E5Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875E5Cu) goto L_08875E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875E5C: aot_gpr_31 = (0x08875E64u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -5697,8 +7099,21 @@ L_08875E64: aot_gpr_5 = (ctx.gpr[29] | 0u); aot_gpr_31 = (0x08875E74u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 622u, 0x08875E74u, 0x0882E704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 553u, 0x0882E704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875E74u) goto L_08875E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875E74: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08875E80u); @@ -5721,8 +7136,21 @@ L_08875E94: L_08875E98: aot_gpr_31 = (0x08875EA0u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 627u, 0x08875EA0u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875EA0u) goto L_08875EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875EA0: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(4), static_cast(aot_gpr_4)); @@ -5738,8 +7166,21 @@ L_08875EA0: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08875ED8u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(13788)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 628u, 0x08875ED8u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875ED8u) goto L_08875ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875ED8: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -5786,8 +7227,21 @@ L_08875F1C: L_08875F24: aot_gpr_31 = (0x08875F2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 634u, 0x08875F2Cu, 0x08A53CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 730u, 0x08A53CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875F2Cu) goto L_08875F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875F2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5803,8 +7257,21 @@ L_08875F38: L_08875F40: aot_gpr_31 = (0x08875F48u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 637u, 0x08875F48u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875F48u) goto L_08875F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875F48: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5820,8 +7287,21 @@ L_08875F50: L_08875F58: aot_gpr_31 = (0x08875F60u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 640u, 0x08875F60u, 0x0898C008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 2u, 0x0898C008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875F60u) goto L_08875F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875F60: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5845,15 +7325,41 @@ L_08875F70: aot_gpr_5 = (0u | 198u); aot_gpr_31 = (0x08875F8Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 643u, 0x08875F8Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875F8Cu) goto L_08875F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875F8C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27352)); aot_gpr_6 = (ctx.gpr[28] + static_cast(-27344)); aot_gpr_31 = (0x08875F9Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 644u, 0x08875F9Cu, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08875F9Cu) goto L_08875F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08875F9C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(204), 0u); @@ -6026,8 +7532,21 @@ L_088760B4: L_088760B8: aot_gpr_31 = (0x088760C0u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 672u, 0x088760C0u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088760C0u) goto L_088760C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088760C0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6050,8 +7569,21 @@ L_088760D4: L_088760DC: aot_gpr_31 = (0x088760E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 676u, 0x088760E4u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088760E4u) goto L_088760E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088760E4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6074,8 +7606,21 @@ L_088760F8: L_08876100: aot_gpr_31 = (0x08876108u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 680u, 0x08876108u, 0x08A546D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 93u, 0x08A546D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876108u) goto L_08876108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876108: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(244))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -6112,15 +7657,41 @@ L_08876138: aot_gpr_5 = (0u | 198u); aot_gpr_31 = (0x08876154u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 685u, 0x08876154u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876154u) goto L_08876154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876154: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27352)); aot_gpr_6 = (ctx.gpr[28] + static_cast(-27344)); aot_gpr_31 = (0x08876164u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 686u, 0x08876164u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876164u) goto L_08876164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876164: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(204), 0u); aot_gpr_31 = (0x08876170u); @@ -6130,8 +7701,21 @@ L_08876164: L_08876170: aot_gpr_31 = (0x08876178u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 688u, 0x08876178u, 0x0898C008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 2u, 0x0898C008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876178u) goto L_08876178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876178: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6246,8 +7830,21 @@ L_08876230: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08876244u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 705u, 0x08876244u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876244u) goto L_08876244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876244: aot_gpr_31 = (0x0887624Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -6261,8 +7858,21 @@ L_08876250: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08876260u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 708u, 0x08876260u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876260u) goto L_08876260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876260: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6275,8 +7885,21 @@ L_08876268: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08876278u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0029. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 710u, 0x08876278u, 0x0887BF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0029_entry(rt, ctx, 1338u, aot_mem); +#else + recomp_unit_0029_entry(rt, ctx, 1338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0029_entry, 29u, 1338u, 0x0887BF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876278u) goto L_08876278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876278: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6383,8 +8006,21 @@ L_08876368: L_08876370: aot_gpr_31 = (0x08876378u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 724u, 0x08876378u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876378u) goto L_08876378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876378: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6407,8 +8043,21 @@ L_0887638C: L_08876394: aot_gpr_31 = (0x0887639Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 728u, 0x0887639Cu, 0x08A546D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 93u, 0x08A546D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887639Cu) goto L_0887639C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887639C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(244))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -6445,15 +8094,41 @@ L_088763CC: aot_gpr_5 = (0u | 198u); aot_gpr_31 = (0x088763E8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 733u, 0x088763E8u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088763E8u) goto L_088763E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088763E8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-27352)); aot_gpr_6 = (ctx.gpr[28] + static_cast(-27344)); aot_gpr_31 = (0x088763F8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 734u, 0x088763F8u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088763F8u) goto L_088763F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088763F8: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(204), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); @@ -6470,8 +8145,21 @@ L_08876408: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0887641Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 736u, 0x0887641Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887641Cu) goto L_0887641C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887641C: aot_gpr_31 = (0x08876424u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-27188)); @@ -6485,8 +8173,21 @@ L_08876428: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08876438u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 739u, 0x08876438u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876438u) goto L_08876438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876438: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6516,8 +8217,8 @@ L_08876460: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-24064))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08876478: @@ -6628,8 +8329,21 @@ L_088764F8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08876504u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 758u, 0x08876504u, 0x08873F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 933u, 0x08873F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876504u) goto L_08876504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876504: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); ctx.gpr[18] = (aot_gpr_17 | 0u); @@ -6662,8 +8376,21 @@ L_08876530: } L_0887653C: aot_gpr_31 = (0x08876544u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 762u, 0x08876544u, 0x0887352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 743u, 0x0887352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876544u) goto L_08876544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876544: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6676,8 +8403,21 @@ L_0887654C: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x0887655Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 764u, 0x0887655Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887655Cu) goto L_0887655C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887655C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7072))); aot_gpr_4 = (aot_gpr_4 ^ 1u); @@ -6694,8 +8434,21 @@ L_08876568: } L_08876578: aot_gpr_31 = (0x08876580u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 767u, 0x08876580u, 0x08873584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 751u, 0x08873584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876580u) goto L_08876580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876580: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6708,8 +8461,21 @@ L_08876588: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x08876598u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 769u, 0x08876598u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876598u) goto L_08876598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876598: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7072))); aot_gpr_4 = (aot_gpr_4 ^ 1u); @@ -6840,8 +8606,21 @@ L_08876670: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x08876680u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 787u, 0x08876680u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876680u) goto L_08876680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876680: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); aot_gpr_5 = (0u + static_cast(-1)); @@ -6879,8 +8658,21 @@ L_088766B8: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x088766C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 792u, 0x088766C8u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088766C8u) goto L_088766C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088766C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -7060,8 +8852,21 @@ L_088767F4: } L_08876800: aot_gpr_31 = (0x08876808u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 821u, 0x08876808u, 0x0887352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 743u, 0x0887352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876808u) goto L_08876808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876808: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7090,8 +8895,21 @@ L_08876828: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x08876838u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 825u, 0x08876838u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876838u) goto L_08876838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876838: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7118,8 +8936,21 @@ L_08876858: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x08876868u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 829u, 0x08876868u, 0x08ADC72Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 136u, 0x08ADC72Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876868u) goto L_08876868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876868: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7138,8 +8969,21 @@ L_08876880: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x0887688Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 832u, 0x0887688Cu, 0x08ADC72Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 136u, 0x08ADC72Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887688Cu) goto L_0887688C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887688C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08876898u); @@ -7179,8 +9023,21 @@ L_088768C4: aot_gpr_5 = (0u | 11u); aot_gpr_31 = (0x088768D4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 838u, 0x088768D4u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088768D4u) goto L_088768D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088768D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7199,8 +9056,21 @@ L_088768EC: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x088768F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 841u, 0x088768F8u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088768F8u) goto L_088768F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088768F8: aot_gpr_31 = (0x08876900u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7254,8 +9124,8 @@ L_08876944: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-24024))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887695C: @@ -7343,8 +9213,21 @@ L_088769E0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088769ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 859u, 0x088769ECu, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088769ECu) goto L_088769EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088769EC: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -7357,8 +9240,21 @@ L_088769F4: aot_gpr_5 = (0u | 50u); aot_gpr_31 = (0x08876A04u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 861u, 0x08876A04u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876A04u) goto L_08876A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876A04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7371,14 +9267,40 @@ L_08876A0C: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08876A1Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 863u, 0x08876A1Cu, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876A1Cu) goto L_08876A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876A1C: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x08876A28u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 864u, 0x08876A28u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876A28u) goto L_08876A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876A28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7390,8 +9312,21 @@ L_08876A30: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08876A3Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 866u, 0x08876A3Cu, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876A3Cu) goto L_08876A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876A3C: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -7404,8 +9339,21 @@ L_08876A44: aot_gpr_5 = (0u | 60u); aot_gpr_31 = (0x08876A54u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 868u, 0x08876A54u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876A54u) goto L_08876A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876A54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7418,14 +9366,40 @@ L_08876A5C: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08876A6Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 870u, 0x08876A6Cu, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876A6Cu) goto L_08876A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876A6C: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x08876A78u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 871u, 0x08876A78u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876A78u) goto L_08876A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876A78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7450,8 +9424,21 @@ L_08876AA0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08876AACu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 874u, 0x08876AACu, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876AACu) goto L_08876AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876AAC: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -7464,8 +9451,21 @@ L_08876AB4: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x08876AC4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 876u, 0x08876AC4u, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876AC4u) goto L_08876AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876AC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7478,15 +9478,41 @@ L_08876ACC: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08876ADCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 878u, 0x08876ADCu, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876ADCu) goto L_08876ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876ADC: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08876AECu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 879u, 0x08876AECu, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876AECu) goto L_08876AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876AEC: aot_gpr_4 = (2237u << 16u); goto L_08876AF0; @@ -7494,14 +9520,40 @@ L_08876AF0: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08876AFCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 881u, 0x08876AFCu, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876AFCu) goto L_08876AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876AFC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08876B08u); aot_gpr_17 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 882u, 0x08876B08u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876B08u) goto L_08876B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876B08: { const bool branch_taken = aot_gpr_17 == aot_gpr_2; if (branch_taken) { @@ -7511,15 +9563,41 @@ L_08876B08: } L_08876B10: aot_gpr_31 = (0x08876B18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 884u, 0x08876B18u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876B18u) goto L_08876B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876B18: aot_gpr_4 = (2237u << 16u); aot_gpr_17 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08876B28u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 885u, 0x08876B28u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876B28u) goto L_08876B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876B28: aot_gpr_5 = (2233u << 16u); aot_gpr_4 = (aot_gpr_2 << 3u); @@ -7537,8 +9615,21 @@ L_08876B48: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08876B54u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 887u, 0x08876B54u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876B54u) goto L_08876B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876B54: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -7551,8 +9642,21 @@ L_08876B5C: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x08876B6Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 889u, 0x08876B6Cu, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876B6Cu) goto L_08876B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876B6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7565,15 +9669,41 @@ L_08876B74: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08876B84u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 891u, 0x08876B84u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876B84u) goto L_08876B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876B84: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08876B94u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 892u, 0x08876B94u, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876B94u) goto L_08876B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876B94: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (2237u << 16u); @@ -7606,8 +9736,21 @@ L_08876BC4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08876BD0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 896u, 0x08876BD0u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876BD0u) goto L_08876BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876BD0: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -7620,8 +9763,21 @@ L_08876BD8: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x08876BE8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 898u, 0x08876BE8u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876BE8u) goto L_08876BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876BE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7634,15 +9790,41 @@ L_08876BF0: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08876C00u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 900u, 0x08876C00u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876C00u) goto L_08876C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876C00: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08876C10u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 901u, 0x08876C10u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876C10u) goto L_08876C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876C10: aot_gpr_4 = (2237u << 16u); goto L_08876C14; @@ -7650,14 +9832,40 @@ L_08876C14: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08876C20u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 903u, 0x08876C20u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876C20u) goto L_08876C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876C20: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08876C2Cu); aot_gpr_17 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 904u, 0x08876C2Cu, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876C2Cu) goto L_08876C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876C2C: { const bool branch_taken = aot_gpr_17 == aot_gpr_2; if (branch_taken) { @@ -7667,15 +9875,41 @@ L_08876C2C: } L_08876C34: aot_gpr_31 = (0x08876C3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 906u, 0x08876C3Cu, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876C3Cu) goto L_08876C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876C3C: aot_gpr_4 = (2237u << 16u); aot_gpr_17 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08876C4Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 907u, 0x08876C4Cu, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876C4Cu) goto L_08876C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876C4C: aot_gpr_5 = (2233u << 16u); aot_gpr_4 = (aot_gpr_2 << 3u); @@ -7693,8 +9927,21 @@ L_08876C6C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08876C78u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 909u, 0x08876C78u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876C78u) goto L_08876C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876C78: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -7707,8 +9954,21 @@ L_08876C80: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x08876C90u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 911u, 0x08876C90u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876C90u) goto L_08876C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876C90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7721,15 +9981,41 @@ L_08876C98: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08876CA8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 913u, 0x08876CA8u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876CA8u) goto L_08876CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876CA8: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08876CB8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 914u, 0x08876CB8u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876CB8u) goto L_08876CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876CB8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (2237u << 16u); @@ -8019,8 +10305,21 @@ L_08876E8C: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08876E9Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 953u, 0x08876E9Cu, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876E9Cu) goto L_08876E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876E9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8039,8 +10338,21 @@ L_08876EB4: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x08876EC0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 956u, 0x08876EC0u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876EC0u) goto L_08876EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876EC0: aot_gpr_4 = (2237u << 16u); ctx.gpr[19] = (0u | 0u); @@ -8085,8 +10397,21 @@ L_08876EFC: } L_08876F04: aot_gpr_31 = (0x08876F0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 963u, 0x08876F0Cu, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876F0Cu) goto L_08876F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876F0C: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8106,16 +10431,42 @@ L_08876F28: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x08876F34u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 966u, 0x08876F34u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876F34u) goto L_08876F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876F34: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(52), static_cast(0u)); aot_gpr_31 = (0x08876F48u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 967u, 0x08876F48u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876F48u) goto L_08876F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876F48: aot_gpr_31 = (0x08876F50u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8149,8 +10500,21 @@ L_08876F78: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08876F84u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 973u, 0x08876F84u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876F84u) goto L_08876F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876F84: aot_gpr_31 = (0x08876F8Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8169,8 +10533,21 @@ L_08876F98: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08876FA8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 976u, 0x08876FA8u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08876FA8u) goto L_08876FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08876FA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8232,8 +10609,21 @@ L_08876FF8: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(425))); aot_gpr_31 = (0x08877008u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 985u, 0x08877008u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877008u) goto L_08877008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877008: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(425), static_cast(aot_gpr_4)); @@ -8249,8 +10639,21 @@ L_08877018: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877024u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 988u, 0x08877024u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877024u) goto L_08877024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877024: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8264,8 +10667,21 @@ L_08877030: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08877040u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 990u, 0x08877040u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877040u) goto L_08877040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877040: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8278,14 +10694,40 @@ L_08877048: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877058u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 992u, 0x08877058u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877058u) goto L_08877058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877058: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x08877064u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 993u, 0x08877064u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877064u) goto L_08877064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877064: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8303,8 +10745,21 @@ L_0887706C: L_08877080: aot_gpr_31 = (0x08877088u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 996u, 0x08877088u, 0x08AEECF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 565u, 0x08AEECF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877088u) goto L_08877088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877088: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8499,8 +10954,21 @@ L_088771DC: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x088771ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1021u, 0x088771ECu, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088771ECu) goto L_088771EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088771EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8519,8 +10987,21 @@ L_08877204: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x08877210u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1024u, 0x08877210u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877210u) goto L_08877210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877210: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8541,8 +11022,21 @@ L_08877228: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877234u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1027u, 0x08877234u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877234u) goto L_08877234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877234: aot_gpr_4 = (static_cast(aot_gpr_2) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8556,8 +11050,21 @@ L_08877240: aot_gpr_5 = (0u | 15u); aot_gpr_31 = (0x08877250u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1029u, 0x08877250u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877250u) goto L_08877250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877250: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8570,14 +11077,40 @@ L_08877258: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877268u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1031u, 0x08877268u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877268u) goto L_08877268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877268: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x08877274u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1032u, 0x08877274u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877274u) goto L_08877274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877274: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8598,8 +11131,21 @@ L_0887728C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877298u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1035u, 0x08877298u, 0x08ADC794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 149u, 0x08ADC794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877298u) goto L_08877298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877298: aot_gpr_4 = (static_cast(aot_gpr_2) < 1001 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8613,8 +11159,21 @@ L_088772A4: aot_gpr_5 = (0u | 20000u); aot_gpr_31 = (0x088772B4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1037u, 0x088772B4u, 0x08ADC78Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 148u, 0x08ADC78Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088772B4u) goto L_088772B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088772B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8627,14 +11186,40 @@ L_088772BC: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088772CCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1039u, 0x088772CCu, 0x08ADC794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 149u, 0x08ADC794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088772CCu) goto L_088772CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088772CC: aot_gpr_5 = (aot_gpr_2 + static_cast(-1000)); aot_gpr_31 = (0x088772D8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1040u, 0x088772D8u, 0x08ADC78Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 148u, 0x08ADC78Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088772D8u) goto L_088772D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088772D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8690,8 +11275,21 @@ L_0887731C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877328u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1048u, 0x08877328u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877328u) goto L_08877328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877328: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -8704,8 +11302,21 @@ L_08877330: aot_gpr_5 = (0u | 50u); aot_gpr_31 = (0x08877340u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1050u, 0x08877340u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877340u) goto L_08877340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877340: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8718,14 +11329,40 @@ L_08877348: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877358u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1052u, 0x08877358u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877358u) goto L_08877358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877358: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x08877364u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1053u, 0x08877364u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877364u) goto L_08877364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877364: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8737,8 +11374,21 @@ L_0887736C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877378u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1055u, 0x08877378u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877378u) goto L_08877378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877378: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -8751,8 +11401,21 @@ L_08877380: aot_gpr_5 = (0u | 60u); aot_gpr_31 = (0x08877390u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1057u, 0x08877390u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877390u) goto L_08877390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877390: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8765,14 +11428,40 @@ L_08877398: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088773A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1059u, 0x088773A8u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088773A8u) goto L_088773A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088773A8: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_31 = (0x088773B4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1060u, 0x088773B4u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088773B4u) goto L_088773B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088773B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8897,8 +11586,21 @@ L_08877498: } L_088774A8: aot_gpr_31 = (0x088774B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1074u, 0x088774B0u, 0x08873584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 751u, 0x08873584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088774B0u) goto L_088774B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088774B0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8927,8 +11629,21 @@ L_088774D0: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x088774E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1078u, 0x088774E0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088774E0u) goto L_088774E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088774E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8956,8 +11671,21 @@ L_08877504: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08877514u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1082u, 0x08877514u, 0x08ADC72Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 136u, 0x08ADC72Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877514u) goto L_08877514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877514: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8976,8 +11704,21 @@ L_0887752C: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08877538u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1085u, 0x08877538u, 0x08ADC72Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 136u, 0x08ADC72Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877538u) goto L_08877538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877538: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08877544u); @@ -9018,8 +11759,21 @@ L_08877574: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08877584u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1091u, 0x08877584u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877584u) goto L_08877584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877584: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9038,8 +11792,21 @@ L_0887759C: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x088775A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1094u, 0x088775A8u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088775A8u) goto L_088775A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088775A8: aot_gpr_31 = (0x088775B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -9093,8 +11860,8 @@ L_088775F4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23984))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887760C: @@ -9182,8 +11949,21 @@ L_08877690: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0887769Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1112u, 0x0887769Cu, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887769Cu) goto L_0887769C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887769C: aot_gpr_4 = (static_cast(aot_gpr_2) < 50 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9197,8 +11977,21 @@ L_088776A8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088776B8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1114u, 0x088776B8u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088776B8u) goto L_088776B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088776B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9211,14 +12004,40 @@ L_088776C0: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088776D0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1116u, 0x088776D0u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088776D0u) goto L_088776D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088776D0: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x088776DCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1117u, 0x088776DCu, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088776DCu) goto L_088776DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088776DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9230,8 +12049,21 @@ L_088776E4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088776F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1119u, 0x088776F0u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088776F0u) goto L_088776F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088776F0: aot_gpr_4 = (static_cast(aot_gpr_2) < 60 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9245,8 +12077,21 @@ L_088776FC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887770Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1121u, 0x0887770Cu, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887770Cu) goto L_0887770C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887770C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9259,14 +12104,40 @@ L_08877714: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877724u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1123u, 0x08877724u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877724u) goto L_08877724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877724: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08877730u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1124u, 0x08877730u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877730u) goto L_08877730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877730: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9291,8 +12162,21 @@ L_08877758: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877764u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1127u, 0x08877764u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877764u) goto L_08877764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877764: aot_gpr_4 = (static_cast(aot_gpr_2) < 9 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9306,8 +12190,21 @@ L_08877770: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08877780u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1129u, 0x08877780u, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877780u) goto L_08877780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877780: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9320,15 +12217,41 @@ L_08877788: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877798u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1131u, 0x08877798u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877798u) goto L_08877798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877798: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x088777A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1132u, 0x088777A8u, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088777A8u) goto L_088777A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088777A8: aot_gpr_4 = (2237u << 16u); goto L_088777AC; @@ -9336,14 +12259,40 @@ L_088777AC: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088777B8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1134u, 0x088777B8u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088777B8u) goto L_088777B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088777B8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088777C4u); aot_gpr_17 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1135u, 0x088777C4u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088777C4u) goto L_088777C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088777C4: { const bool branch_taken = aot_gpr_17 == aot_gpr_2; if (branch_taken) { @@ -9353,15 +12302,41 @@ L_088777C4: } L_088777CC: aot_gpr_31 = (0x088777D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1137u, 0x088777D4u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088777D4u) goto L_088777D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088777D4: aot_gpr_4 = (2237u << 16u); aot_gpr_17 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088777E4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1138u, 0x088777E4u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088777E4u) goto L_088777E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088777E4: aot_gpr_5 = (2233u << 16u); aot_gpr_4 = (aot_gpr_2 << 3u); @@ -9379,8 +12354,21 @@ L_08877804: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877810u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1140u, 0x08877810u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877810u) goto L_08877810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877810: aot_gpr_4 = (static_cast(aot_gpr_2) < 9 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9394,8 +12382,21 @@ L_0887781C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887782Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1142u, 0x0887782Cu, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887782Cu) goto L_0887782C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887782C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9408,15 +12409,41 @@ L_08877834: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877844u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1144u, 0x08877844u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877844u) goto L_08877844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877844: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08877854u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1145u, 0x08877854u, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877854u) goto L_08877854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877854: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (2237u << 16u); @@ -9449,8 +12476,21 @@ L_08877884: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877890u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1149u, 0x08877890u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877890u) goto L_08877890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877890: aot_gpr_4 = (static_cast(aot_gpr_2) < 9 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9464,8 +12504,21 @@ L_0887789C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088778ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1151u, 0x088778ACu, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088778ACu) goto L_088778AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088778AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9478,15 +12531,41 @@ L_088778B4: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088778C4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1153u, 0x088778C4u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088778C4u) goto L_088778C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088778C4: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x088778D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1154u, 0x088778D4u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088778D4u) goto L_088778D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088778D4: aot_gpr_4 = (2237u << 16u); goto L_088778D8; @@ -9494,14 +12573,40 @@ L_088778D8: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088778E4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1156u, 0x088778E4u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088778E4u) goto L_088778E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088778E4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x088778F0u); aot_gpr_17 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1157u, 0x088778F0u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088778F0u) goto L_088778F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088778F0: { const bool branch_taken = aot_gpr_17 == aot_gpr_2; if (branch_taken) { @@ -9511,15 +12616,41 @@ L_088778F0: } L_088778F8: aot_gpr_31 = (0x08877900u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1159u, 0x08877900u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877900u) goto L_08877900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877900: aot_gpr_4 = (2237u << 16u); aot_gpr_17 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08877910u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1160u, 0x08877910u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877910u) goto L_08877910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877910: aot_gpr_5 = (2233u << 16u); aot_gpr_4 = (aot_gpr_2 << 3u); @@ -9537,8 +12668,21 @@ L_08877930: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0887793Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1162u, 0x0887793Cu, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887793Cu) goto L_0887793C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887793C: aot_gpr_4 = (static_cast(aot_gpr_2) < 9 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9552,8 +12696,21 @@ L_08877948: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08877958u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1164u, 0x08877958u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877958u) goto L_08877958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877958: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9566,15 +12723,41 @@ L_08877960: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877970u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1166u, 0x08877970u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877970u) goto L_08877970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877970: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08877980u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1167u, 0x08877980u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877980u) goto L_08877980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877980: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (2237u << 16u); @@ -9866,8 +13049,21 @@ L_08877B5C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08877B6Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1206u, 0x08877B6Cu, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877B6Cu) goto L_08877B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877B6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9886,8 +13082,21 @@ L_08877B84: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08877B90u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1209u, 0x08877B90u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877B90u) goto L_08877B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877B90: aot_gpr_4 = (2237u << 16u); ctx.gpr[19] = (0u | 0u); @@ -9932,8 +13141,21 @@ L_08877BCC: } L_08877BD4: aot_gpr_31 = (0x08877BDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1216u, 0x08877BDCu, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877BDCu) goto L_08877BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877BDC: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9947,16 +13169,42 @@ L_08877BE8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08877BF8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1218u, 0x08877BF8u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877BF8u) goto L_08877BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877BF8: aot_gpr_4 = (2237u << 16u); ctx.gpr[19] = (aot_gpr_4 + static_cast(-28736)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08877C0Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1219u, 0x08877C0Cu, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877C0Cu) goto L_08877C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877C0C: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(52), static_cast(0u)); goto L_08877C10; @@ -9993,8 +13241,21 @@ L_08877C40: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08877C4Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1226u, 0x08877C4Cu, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877C4Cu) goto L_08877C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877C4C: aot_gpr_31 = (0x08877C54u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -10013,8 +13274,21 @@ L_08877C60: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08877C70u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1229u, 0x08877C70u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877C70u) goto L_08877C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877C70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10076,8 +13350,21 @@ L_08877CC0: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(425))); aot_gpr_31 = (0x08877CD0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1238u, 0x08877CD0u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877CD0u) goto L_08877CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877CD0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(425), static_cast(aot_gpr_4)); @@ -10093,8 +13380,21 @@ L_08877CE0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877CECu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1241u, 0x08877CECu, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877CECu) goto L_08877CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877CEC: aot_gpr_4 = (static_cast(aot_gpr_2) < 8 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -10108,8 +13408,21 @@ L_08877CF8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08877D08u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1243u, 0x08877D08u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877D08u) goto L_08877D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877D08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10122,14 +13435,40 @@ L_08877D10: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877D20u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1245u, 0x08877D20u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877D20u) goto L_08877D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877D20: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08877D2Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1246u, 0x08877D2Cu, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877D2Cu) goto L_08877D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877D2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10147,8 +13486,21 @@ L_08877D34: L_08877D48: aot_gpr_31 = (0x08877D50u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1249u, 0x08877D50u, 0x08AEECF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 565u, 0x08AEECF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877D50u) goto L_08877D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877D50: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -10255,8 +13607,21 @@ L_08877E0C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877E18u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1262u, 0x08877E18u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877E18u) goto L_08877E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877E18: aot_gpr_4 = (static_cast(aot_gpr_2) < 15 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -10270,8 +13635,21 @@ L_08877E24: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08877E34u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1264u, 0x08877E34u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877E34u) goto L_08877E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877E34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10284,14 +13662,40 @@ L_08877E3C: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877E4Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1266u, 0x08877E4Cu, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877E4Cu) goto L_08877E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877E4C: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08877E58u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1267u, 0x08877E58u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877E58u) goto L_08877E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877E58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10312,8 +13716,21 @@ L_08877E70: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877E7Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1270u, 0x08877E7Cu, 0x08ADC794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 149u, 0x08ADC794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877E7Cu) goto L_08877E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877E7C: aot_gpr_4 = (static_cast(aot_gpr_2) < 20000 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -10327,8 +13744,21 @@ L_08877E88: aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x08877E98u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1272u, 0x08877E98u, 0x08ADC78Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 148u, 0x08ADC78Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877E98u) goto L_08877E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877E98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10341,14 +13771,40 @@ L_08877EA0: aot_gpr_17 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08877EB0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1274u, 0x08877EB0u, 0x08ADC794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 149u, 0x08ADC794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877EB0u) goto L_08877EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877EB0: aot_gpr_5 = (aot_gpr_2 + static_cast(1000)); aot_gpr_31 = (0x08877EBCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1275u, 0x08877EBCu, 0x08ADC78Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 148u, 0x08ADC78Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877EBCu) goto L_08877EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877EBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10457,8 +13913,21 @@ L_08877F70: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08877F80u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1289u, 0x08877F80u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877F80u) goto L_08877F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877F80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10477,8 +13946,21 @@ L_08877F98: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08877FA4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1292u, 0x08877FA4u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877FA4u) goto L_08877FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877FA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10534,8 +14016,21 @@ L_08877FE8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08877FF4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0028->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0028_entry, 1300u, 0x08877FF4u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08877FF4u) goto L_08877FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08877FF4: aot_gpr_4 = (static_cast(aot_gpr_2) < 50 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; diff --git a/profiles/vcs/generated/generated_unit_0029.cpp b/profiles/vcs/generated/generated_unit_0029.cpp index e094597..465092e 100644 --- a/profiles/vcs/generated/generated_unit_0029.cpp +++ b/profiles/vcs/generated/generated_unit_0029.cpp @@ -1421,6 +1421,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08878000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1439,8 +1463,21 @@ L_08878000: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08878010u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 2u, 0x08878010u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878010u) goto L_08878010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878010: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1453,14 +1490,40 @@ L_08878018: ctx.gpr[17] = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08878028u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 4u, 0x08878028u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878028u) goto L_08878028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878028: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08878034u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 5u, 0x08878034u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878034u) goto L_08878034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878034: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1472,8 +1535,21 @@ L_0887803C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08878048u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 7u, 0x08878048u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878048u) goto L_08878048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878048: aot_gpr_4 = (static_cast(aot_gpr_2) < 60 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1487,8 +1563,21 @@ L_08878054: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08878064u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 9u, 0x08878064u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878064u) goto L_08878064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878064: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1501,14 +1590,40 @@ L_0887806C: ctx.gpr[17] = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x0887807Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 11u, 0x0887807Cu, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887807Cu) goto L_0887807C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887807C: aot_gpr_5 = (aot_gpr_2 + static_cast(1)); aot_gpr_31 = (0x08878088u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 12u, 0x08878088u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878088u) goto L_08878088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878088: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1682,8 +1797,21 @@ L_088781BC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088781C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 33u, 0x088781C8u, 0x08874584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 81u, 0x08874584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088781C8u) goto L_088781C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088781C8: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -1831,8 +1959,21 @@ L_088782BC: L_088782C4: aot_gpr_31 = (0x088782CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 56u, 0x088782CCu, 0x08A54FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 256u, 0x08A54FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088782CCu) goto L_088782CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088782CC: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1869,8 +2010,21 @@ L_08878300: L_08878308: aot_gpr_31 = (0x08878310u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 61u, 0x08878310u, 0x08A550C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 267u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 267u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 267u, 0x08A550C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878310u) goto L_08878310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878310: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1912,8 +2066,21 @@ L_08878350: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); aot_gpr_31 = (0x0887835Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 67u, 0x0887835Cu, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887835Cu) goto L_0887835C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887835C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_6 = (0u | 17u); @@ -1945,8 +2112,21 @@ L_08878390: aot_gpr_6 = (aot_gpr_28 + static_cast(-27296)); aot_gpr_31 = (0x088783A4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 70u, 0x088783A4u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088783A4u) goto L_088783A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088783A4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088783B0u); @@ -2007,8 +2187,21 @@ L_088783F4: L_088783FC: aot_gpr_31 = (0x08878404u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 79u, 0x08878404u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878404u) goto L_08878404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878404: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -2022,21 +2215,60 @@ L_08878410: ctx.gpr[17] = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08878420u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 81u, 0x08878420u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878420u) goto L_08878420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878420: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(425), static_cast(aot_gpr_2)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08878430u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 82u, 0x08878430u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878430u) goto L_08878430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878430: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0887843Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 83u, 0x0887843Cu, 0x08874808u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 132u, 0x08874808u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887843Cu) goto L_0887843C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887843C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2052,8 +2284,21 @@ L_08878448: L_08878450: aot_gpr_31 = (0x08878458u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 86u, 0x08878458u, 0x08A56900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 600u, 0x08A56900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878458u) goto L_08878458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878458: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2071,8 +2316,21 @@ L_0887846C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); aot_gpr_31 = (0x08878478u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 89u, 0x08878478u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878478u) goto L_08878478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878478: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2105,8 +2363,8 @@ L_088784A0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088784BC: @@ -2117,8 +2375,21 @@ L_088784BC: aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(1104), aot_run_words); } aot_gpr_31 = (0x088784F4u); aot_gpr_4 = (ctx.gpr[16] + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 94u, 0x088784F4u, 0x08870018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 2u, 0x08870018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088784F4u) goto L_088784F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088784F4: ctx.gpr[20] = (0u | 1u); aot_gpr_31 = (0x08878500u); @@ -2174,8 +2445,21 @@ L_08878564: ctx.gpr[18] = (0u | 370u); aot_gpr_31 = (0x08878578u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 101u, 0x08878578u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878578u) goto L_08878578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878578: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -2187,8 +2471,21 @@ L_08878584: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08878590u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 103u, 0x08878590u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878590u) goto L_08878590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878590: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2214,8 +2511,21 @@ L_088785B0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1088), ctx.gpr[18]); aot_gpr_31 = (0x088785C0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26956)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 108u, 0x088785C0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088785C0u) goto L_088785C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088785C0: aot_gpr_6 = (0u | 74u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2287,8 +2597,21 @@ L_0887866C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08878678u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 115u, 0x08878678u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878678u) goto L_08878678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878678: aot_gpr_31 = (0x08878680u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2312,8 +2635,21 @@ L_08878694: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088786A0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 119u, 0x088786A0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088786A0u) goto L_088786A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088786A0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2338,16 +2674,42 @@ L_088786C0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x088786CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 124u, 0x088786CCu, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088786CCu) goto L_088786CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088786CC: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x088786E0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 125u, 0x088786E0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088786E0u) goto L_088786E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088786E0: aot_gpr_6 = (ctx.gpr[19] + static_cast(77)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2373,8 +2735,21 @@ L_08878704: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08878710u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 129u, 0x08878710u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878710u) goto L_08878710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878710: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2399,16 +2774,42 @@ L_08878730: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887873Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 134u, 0x0887873Cu, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887873Cu) goto L_0887873C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887873C: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08878750u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 135u, 0x08878750u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878750u) goto L_08878750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878750: aot_gpr_6 = (ctx.gpr[19] + static_cast(77)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2440,8 +2841,21 @@ L_08878780: L_08878784: aot_gpr_31 = (0x0887878Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 142u, 0x0887878Cu, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887878Cu) goto L_0887878C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887878C: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(576), static_cast(aot_gpr_4)); @@ -2511,8 +2925,21 @@ L_0887880C: L_08878810: aot_gpr_31 = (0x08878818u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 152u, 0x08878818u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878818u) goto L_08878818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878818: aot_gpr_4 = (aot_gpr_2 + static_cast(10)); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -2549,8 +2976,21 @@ L_08878850: L_08878858: aot_gpr_31 = (0x08878860u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 157u, 0x08878860u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878860u) goto L_08878860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878860: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4))); @@ -2632,8 +3072,21 @@ L_088788F8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1056))); aot_gpr_31 = (0x08878904u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 167u, 0x08878904u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878904u) goto L_08878904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878904: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(584), static_cast(aot_gpr_4)); @@ -2703,8 +3156,21 @@ L_088789B0: aot_gpr_5 = (ctx.gpr[29] + static_cast(592)); aot_gpr_31 = (0x088789BCu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 175u, 0x088789BCu, 0x08A54B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 180u, 0x08A54B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088789BCu) goto L_088789BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088789BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(592))); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -2732,8 +3198,21 @@ L_088789E4: L_088789E8: aot_gpr_31 = (0x088789F0u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 180u, 0x088789F0u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088789F0u) goto L_088789F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088789F0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4))); @@ -2801,8 +3280,21 @@ L_08878A5C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08878A68u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 190u, 0x08878A68u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878A68u) goto L_08878A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878A68: aot_gpr_5 = (0u | 375u); aot_gpr_6 = (ctx.gpr[19] + static_cast(77)); @@ -2828,8 +3320,21 @@ L_08878A8C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08878A98u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 194u, 0x08878A98u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878A98u) goto L_08878A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878A98: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2853,8 +3358,21 @@ L_08878AB0: L_08878AB8: aot_gpr_31 = (0x08878AC0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1068))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 199u, 0x08878AC0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878AC0u) goto L_08878AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878AC0: aot_gpr_5 = (0u | 375u); aot_gpr_6 = (ctx.gpr[19] + static_cast(77)); @@ -2909,8 +3427,21 @@ L_08878B14: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08878B30u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 206u, 0x08878B30u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878B30u) goto L_08878B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878B30: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -2922,8 +3453,21 @@ L_08878B3C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08878B48u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 208u, 0x08878B48u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878B48u) goto L_08878B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878B48: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2947,8 +3491,21 @@ L_08878B60: L_08878B68: aot_gpr_31 = (0x08878B70u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 213u, 0x08878B70u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878B70u) goto L_08878B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878B70: aot_gpr_6 = (0u | 74u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2987,8 +3544,21 @@ L_08878BB8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08878BC4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 219u, 0x08878BC4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878BC4u) goto L_08878BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878BC4: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3012,8 +3582,21 @@ L_08878BDC: L_08878BE4: aot_gpr_31 = (0x08878BECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 224u, 0x08878BECu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878BECu) goto L_08878BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878BEC: aot_gpr_6 = (0u | 74u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3037,8 +3620,21 @@ L_08878C08: L_08878C18: aot_gpr_31 = (0x08878C20u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 228u, 0x08878C20u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878C20u) goto L_08878C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878C20: aot_gpr_31 = (0x08878C28u); aot_gpr_4 = (0u | 18u); @@ -3055,8 +3651,21 @@ L_08878C34: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08878C40u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 231u, 0x08878C40u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878C40u) goto L_08878C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878C40: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3080,8 +3689,21 @@ L_08878C58: L_08878C60: aot_gpr_31 = (0x08878C68u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 236u, 0x08878C68u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878C68u) goto L_08878C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878C68: aot_gpr_4 = (0u | 237u); aot_gpr_5 = (0u | 130u); @@ -3111,16 +3733,42 @@ L_08878CB0: ctx.gpr[8] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08878CCCu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 238u, 0x08878CCCu, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878CCCu) goto L_08878CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878CCC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(204))); aot_gpr_4 = (aot_gpr_4 ^ 1u); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08878CE0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 239u, 0x08878CE0u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878CE0u) goto L_08878CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878CE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -3132,8 +3780,21 @@ L_08878CEC: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08878CF8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 241u, 0x08878CF8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878CF8u) goto L_08878CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878CF8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3157,8 +3818,21 @@ L_08878D10: L_08878D18: aot_gpr_31 = (0x08878D20u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 246u, 0x08878D20u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878D20u) goto L_08878D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878D20: aot_gpr_6 = (0u | 87u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3196,8 +3870,21 @@ L_08878D64: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08878D70u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 252u, 0x08878D70u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878D70u) goto L_08878D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878D70: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3221,15 +3908,41 @@ L_08878D88: L_08878D90: aot_gpr_31 = (0x08878D98u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 257u, 0x08878D98u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878D98u) goto L_08878D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878D98: ctx.gpr[16] = (ctx.gpr[29] + static_cast(20)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08878DA8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 258u, 0x08878DA8u, 0x08887BB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 854u, 0x08887BB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878DA8u) goto L_08878DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878DA8: aot_gpr_6 = (0u | 87u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -3258,8 +3971,21 @@ L_08878DCC: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08878DE4u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 262u, 0x08878DE4u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878DE4u) goto L_08878DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878DE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); ctx.gpr[18] = (aot_gpr_28 + static_cast(-26888)); @@ -3275,8 +4001,21 @@ L_08878DF8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08878E04u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 264u, 0x08878E04u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878E04u) goto L_08878E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878E04: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3300,8 +4039,21 @@ L_08878E20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08878E2Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 269u, 0x08878E2Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878E2Cu) goto L_08878E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878E2C: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3336,8 +4088,21 @@ L_08878E68: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08878E74u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 274u, 0x08878E74u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878E74u) goto L_08878E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878E74: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3361,8 +4126,21 @@ L_08878E8C: L_08878E94: aot_gpr_31 = (0x08878E9Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-26880)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 279u, 0x08878E9Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878E9Cu) goto L_08878E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878E9C: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3388,8 +4166,21 @@ L_08878EC0: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08878ECCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 283u, 0x08878ECCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878ECCu) goto L_08878ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878ECC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3413,8 +4204,21 @@ L_08878EE4: L_08878EEC: aot_gpr_31 = (0x08878EF4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26872)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 288u, 0x08878EF4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878EF4u) goto L_08878EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878EF4: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3428,8 +4232,21 @@ L_08878F04: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08878F18u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 290u, 0x08878F18u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878F18u) goto L_08878F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878F18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -3441,8 +4258,21 @@ L_08878F24: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08878F30u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 292u, 0x08878F30u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878F30u) goto L_08878F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878F30: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3466,8 +4296,21 @@ L_08878F48: L_08878F50: aot_gpr_31 = (0x08878F58u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 297u, 0x08878F58u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878F58u) goto L_08878F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878F58: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3483,8 +4326,21 @@ L_08878F68: L_08878F70: aot_gpr_31 = (0x08878F78u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 300u, 0x08878F78u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878F78u) goto L_08878F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878F78: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; if (branch_taken) { @@ -3497,8 +4353,21 @@ L_08878F80: ctx.gpr[17] = (aot_gpr_28 + static_cast(-26856)); aot_gpr_31 = (0x08878F90u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 302u, 0x08878F90u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878F90u) goto L_08878F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878F90: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -3511,8 +4380,21 @@ L_08878FA0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08878FB0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 304u, 0x08878FB0u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878FB0u) goto L_08878FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878FB0: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -3540,8 +4422,21 @@ L_08878FD4: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08878FE0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 308u, 0x08878FE0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08878FE0u) goto L_08878FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08878FE0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3565,8 +4460,21 @@ L_08878FFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879008u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 313u, 0x08879008u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879008u) goto L_08879008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879008: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3580,8 +4488,21 @@ L_08879018: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887902Cu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 315u, 0x0887902Cu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887902Cu) goto L_0887902C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887902C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -3593,8 +4514,21 @@ L_08879038: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879044u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 317u, 0x08879044u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879044u) goto L_08879044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879044: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3618,8 +4552,21 @@ L_0887905C: L_08879064: aot_gpr_31 = (0x0887906Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 322u, 0x0887906Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887906Cu) goto L_0887906C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887906C: aot_gpr_6 = (0u | 126u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3635,8 +4582,21 @@ L_0887907C: L_08879084: aot_gpr_31 = (0x0887908Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 325u, 0x0887908Cu, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887908Cu) goto L_0887908C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887908C: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; if (branch_taken) { @@ -3651,14 +4611,40 @@ L_08879094: ctx.gpr[21] = (aot_gpr_28 + static_cast(-26836)); aot_gpr_31 = (0x088790ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 327u, 0x088790ACu, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088790ACu) goto L_088790AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088790AC: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088790B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 328u, 0x088790B8u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088790B8u) goto L_088790B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088790B8: if (aot_gpr_2 != ctx.gpr[16]) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); @@ -3678,8 +4664,21 @@ L_088790CC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088790D8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 331u, 0x088790D8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088790D8u) goto L_088790D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088790D8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3703,8 +4702,21 @@ L_088790F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879100u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 336u, 0x08879100u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879100u) goto L_08879100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879100: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -3725,8 +4737,21 @@ L_08879110: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887911Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 339u, 0x0887911Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887911Cu) goto L_0887911C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887911C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3750,16 +4775,42 @@ L_08879138: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879144u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 344u, 0x08879144u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879144u) goto L_08879144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879144: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_08879148; L_08879148: aot_gpr_31 = (0x08879150u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 346u, 0x08879150u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879150u) goto L_08879150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879150: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -3773,8 +4824,21 @@ L_08879164: aot_gpr_4 = (ctx.gpr[29] + static_cast(716)); aot_gpr_31 = (0x08879174u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 348u, 0x08879174u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879174u) goto L_08879174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879174: aot_gpr_6 = (0u | 126u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -3802,8 +4866,21 @@ L_08879198: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x088791A4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 352u, 0x088791A4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088791A4u) goto L_088791A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088791A4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3827,8 +4904,21 @@ L_088791C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x088791CCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 357u, 0x088791CCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088791CCu) goto L_088791CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088791CC: aot_gpr_6 = (0u | 126u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3855,8 +4945,21 @@ L_088791F8: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887920Cu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 360u, 0x0887920Cu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887920Cu) goto L_0887920C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887920C: aot_gpr_5 = (ctx.gpr[20] << 4u); aot_gpr_5 = (aot_gpr_5 - ctx.gpr[20]); @@ -3875,8 +4978,21 @@ L_0887922C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879238u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 362u, 0x08879238u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879238u) goto L_08879238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879238: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3900,8 +5016,21 @@ L_08879254: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879260u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26812)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 367u, 0x08879260u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879260u) goto L_08879260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879260: aot_gpr_6 = (ctx.gpr[18] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3925,8 +5054,21 @@ L_08879284: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879290u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 371u, 0x08879290u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879290u) goto L_08879290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879290: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3950,16 +5092,42 @@ L_088792A8: L_088792B0: aot_gpr_31 = (0x088792B8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 376u, 0x088792B8u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088792B8u) goto L_088792B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088792B8: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x088792CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 377u, 0x088792CCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088792CCu) goto L_088792CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088792CC: aot_gpr_6 = (ctx.gpr[18] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3974,8 +5142,21 @@ L_088792DC: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x088792F4u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 379u, 0x088792F4u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088792F4u) goto L_088792F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088792F4: aot_gpr_4 = (ctx.gpr[20] << 4u); aot_gpr_4 = (aot_gpr_4 - ctx.gpr[20]); @@ -3992,8 +5173,21 @@ L_0887930C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879318u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 381u, 0x08879318u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879318u) goto L_08879318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879318: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4017,8 +5211,21 @@ L_08879334: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879340u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26804)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 386u, 0x08879340u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879340u) goto L_08879340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879340: aot_gpr_6 = (ctx.gpr[18] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4042,8 +5249,21 @@ L_08879364: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879370u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 390u, 0x08879370u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879370u) goto L_08879370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879370: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4067,16 +5287,42 @@ L_08879388: L_08879390: aot_gpr_31 = (0x08879398u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 395u, 0x08879398u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879398u) goto L_08879398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879398: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x088793ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 396u, 0x088793ACu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088793ACu) goto L_088793AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088793AC: aot_gpr_6 = (ctx.gpr[18] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4112,8 +5358,21 @@ L_088793D8: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x088793F0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 401u, 0x088793F0u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088793F0u) goto L_088793F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088793F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); ctx.gpr[18] = (aot_gpr_28 + static_cast(-26888)); @@ -4130,8 +5389,21 @@ L_08879408: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08879414u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 403u, 0x08879414u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879414u) goto L_08879414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879414: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4155,8 +5427,21 @@ L_08879430: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887943Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 408u, 0x0887943Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887943Cu) goto L_0887943C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887943C: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4193,8 +5478,21 @@ L_08879474: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08879480u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 414u, 0x08879480u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879480u) goto L_08879480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879480: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4219,8 +5517,21 @@ L_08879498: L_088794A4: aot_gpr_31 = (0x088794ACu); aot_gpr_5 = (aot_gpr_28 + static_cast(-26796)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 419u, 0x088794ACu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088794ACu) goto L_088794AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088794AC: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4259,8 +5570,21 @@ L_088794E4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088794F0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 425u, 0x088794F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088794F0u) goto L_088794F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088794F0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4285,8 +5609,21 @@ L_08879508: L_08879514: aot_gpr_31 = (0x0887951Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-26788)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 430u, 0x0887951Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887951Cu) goto L_0887951C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887951C: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4327,8 +5664,21 @@ L_08879554: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08879560u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 436u, 0x08879560u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879560u) goto L_08879560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879560: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4353,8 +5703,21 @@ L_08879580: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887958Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 441u, 0x0887958Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887958Cu) goto L_0887958C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887958C: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4368,8 +5731,21 @@ L_0887959C: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x088795B0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 443u, 0x088795B0u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088795B0u) goto L_088795B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088795B0: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(52))); aot_gpr_5 = (aot_gpr_28 + static_cast(-26772)); @@ -4388,8 +5764,21 @@ L_088795CC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088795D8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 446u, 0x088795D8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088795D8u) goto L_088795D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088795D8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4414,8 +5803,21 @@ L_088795F0: L_088795FC: aot_gpr_31 = (0x08879604u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26764)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 451u, 0x08879604u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879604u) goto L_08879604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879604: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4439,8 +5841,21 @@ L_08879628: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08879634u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 455u, 0x08879634u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879634u) goto L_08879634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879634: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4465,8 +5880,21 @@ L_0887964C: L_08879658: aot_gpr_31 = (0x08879660u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 460u, 0x08879660u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879660u) goto L_08879660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879660: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4480,8 +5908,21 @@ L_08879670: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08879684u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 462u, 0x08879684u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879684u) goto L_08879684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879684: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08879690u); @@ -4527,14 +5968,40 @@ L_088796BC: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x088796D0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 469u, 0x088796D0u, 0x088743ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 64u, 0x088743ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088796D0u) goto L_088796D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088796D0: ctx.gpr[17] = (ctx.gpr[29] + static_cast(784)); aot_gpr_31 = (0x088796DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 470u, 0x088796DCu, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088796DCu) goto L_088796DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088796DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -4546,8 +6013,21 @@ L_088796EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088796F8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 472u, 0x088796F8u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088796F8u) goto L_088796F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088796F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -4559,8 +6039,21 @@ L_08879704: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879710u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 474u, 0x08879710u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879710u) goto L_08879710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879710: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4584,8 +6077,21 @@ L_08879728: L_08879730: aot_gpr_31 = (0x08879738u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26756)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 479u, 0x08879738u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879738u) goto L_08879738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879738: ctx.gpr[16] = (0u | 126u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4613,8 +6119,21 @@ L_08879764: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887977Cu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 483u, 0x0887977Cu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887977Cu) goto L_0887977C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887977C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1080))); ctx.gpr[16] = (0u | 0u); @@ -4664,8 +6183,21 @@ L_088797BC: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x088797D0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 491u, 0x088797D0u, 0x088743ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 64u, 0x088743ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088797D0u) goto L_088797D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088797D0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(54))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7656))); @@ -4694,8 +6226,21 @@ L_08879800: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887980Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 495u, 0x0887980Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887980Cu) goto L_0887980C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887980C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4719,15 +6264,41 @@ L_08879824: L_0887982C: aot_gpr_31 = (0x08879834u); aot_gpr_5 = (ctx.gpr[18] + static_cast(344)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 500u, 0x08879834u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879834u) goto L_08879834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879834: ctx.gpr[21] = (ctx.gpr[29] + static_cast(20)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08879844u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 501u, 0x08879844u, 0x08887BB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 854u, 0x08887BB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879844u) goto L_08879844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879844: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4741,8 +6312,21 @@ L_08879850: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887985Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 503u, 0x0887985Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887985Cu) goto L_0887985C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887985C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4766,8 +6350,21 @@ L_08879878: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879884u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26748)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 508u, 0x08879884u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879884u) goto L_08879884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879884: aot_gpr_6 = (ctx.gpr[19] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4830,8 +6427,21 @@ L_088798E0: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x088798ECu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 518u, 0x088798ECu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088798ECu) goto L_088798EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088798EC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4855,8 +6465,21 @@ L_08879904: L_0887990C: aot_gpr_31 = (0x08879914u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26740)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 523u, 0x08879914u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879914u) goto L_08879914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879914: aot_gpr_6 = (ctx.gpr[19] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4923,8 +6546,21 @@ L_08879970: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887997Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 533u, 0x0887997Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887997Cu) goto L_0887997C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887997C: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4948,8 +6584,21 @@ L_08879998: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x088799A4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 538u, 0x088799A4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088799A4u) goto L_088799A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088799A4: aot_gpr_6 = (ctx.gpr[19] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4998,8 +6647,21 @@ L_088799E8: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x088799FCu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 545u, 0x088799FCu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088799FCu) goto L_088799FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088799FC: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(52))); ctx.gpr[16] = (ctx.gpr[29] + static_cast(800)); @@ -5014,8 +6676,21 @@ L_08879A14: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08879A24u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 547u, 0x08879A24u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879A24u) goto L_08879A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879A24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5029,8 +6704,21 @@ L_08879A30: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08879A3Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 549u, 0x08879A3Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879A3Cu) goto L_08879A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879A3C: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5054,8 +6742,21 @@ L_08879A58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879A64u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 554u, 0x08879A64u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879A64u) goto L_08879A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879A64: ctx.gpr[16] = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5103,8 +6804,21 @@ L_08879AAC: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08879AC0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 561u, 0x08879AC0u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879AC0u) goto L_08879AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879AC0: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(52))); ctx.gpr[18] = (ctx.gpr[29] + static_cast(816)); @@ -5120,8 +6834,21 @@ L_08879ADC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08879AECu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 563u, 0x08879AECu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879AECu) goto L_08879AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879AEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5135,8 +6862,21 @@ L_08879AF8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08879B04u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 565u, 0x08879B04u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879B04u) goto L_08879B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879B04: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5160,8 +6900,21 @@ L_08879B20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879B2Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 570u, 0x08879B2Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879B2Cu) goto L_08879B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879B2C: ctx.gpr[18] = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5189,8 +6942,21 @@ L_08879B58: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08879B70u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 574u, 0x08879B70u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879B70u) goto L_08879B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879B70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -5202,8 +6968,21 @@ L_08879B7C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08879B88u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 576u, 0x08879B88u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879B88u) goto L_08879B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879B88: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5227,8 +7006,21 @@ L_08879BA0: L_08879BA8: aot_gpr_31 = (0x08879BB0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26724)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 581u, 0x08879BB0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879BB0u) goto L_08879BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879BB0: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5271,8 +7063,21 @@ L_08879BF4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08879C04u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 588u, 0x08879C04u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879C04u) goto L_08879C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879C04: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5300,8 +7105,21 @@ L_08879C28: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879C34u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 592u, 0x08879C34u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879C34u) goto L_08879C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879C34: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5325,8 +7143,21 @@ L_08879C50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879C5Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 597u, 0x08879C5Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879C5Cu) goto L_08879C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879C5C: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5362,22 +7193,61 @@ L_08879C88: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08879CA0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 602u, 0x08879CA0u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879CA0u) goto L_08879CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879CA0: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1080))); ctx.gpr[19] = (ctx.gpr[29] + static_cast(852)); ctx.gpr[22] = (aot_gpr_28 + static_cast(-26836)); aot_gpr_31 = (0x08879CB4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 603u, 0x08879CB4u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879CB4u) goto L_08879CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879CB4: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08879CC0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 604u, 0x08879CC0u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879CC0u) goto L_08879CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879CC0: { const bool branch_taken = aot_gpr_2 != ctx.gpr[17]; ctx.gpr[20] = (ctx.gpr[29] + static_cast(868)); @@ -5399,8 +7269,21 @@ L_08879CD4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08879CE0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 607u, 0x08879CE0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879CE0u) goto L_08879CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879CE0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5424,8 +7307,21 @@ L_08879CFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879D08u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 612u, 0x08879D08u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879D08u) goto L_08879D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879D08: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -5447,8 +7343,21 @@ L_08879D1C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08879D28u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 615u, 0x08879D28u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879D28u) goto L_08879D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879D28: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5472,16 +7381,42 @@ L_08879D44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879D50u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 620u, 0x08879D50u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879D50u) goto L_08879D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879D50: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_08879D54; L_08879D54: aot_gpr_31 = (0x08879D5Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 622u, 0x08879D5Cu, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879D5Cu) goto L_08879D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879D5C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -5494,8 +7429,21 @@ L_08879D70: aot_gpr_4 = (ctx.gpr[29] + static_cast(852)); aot_gpr_31 = (0x08879D7Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 624u, 0x08879D7Cu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879D7Cu) goto L_08879D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879D7C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -5507,8 +7455,21 @@ L_08879D88: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879D94u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 626u, 0x08879D94u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879D94u) goto L_08879D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879D94: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5532,8 +7493,21 @@ L_08879DAC: L_08879DB4: aot_gpr_31 = (0x08879DBCu); aot_gpr_5 = (aot_gpr_28 + static_cast(-26716)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 631u, 0x08879DBCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879DBCu) goto L_08879DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879DBC: ctx.gpr[16] = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5582,8 +7556,21 @@ L_08879E08: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08879E1Cu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 638u, 0x08879E1Cu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879E1Cu) goto L_08879E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879E1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7872))); ctx.gpr[17] = (ctx.gpr[29] + static_cast(900)); @@ -5599,8 +7586,21 @@ L_08879E2C: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x08879E3Cu); aot_gpr_4 = (aot_gpr_28 + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 640u, 0x08879E3Cu, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879E3Cu) goto L_08879E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879E3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7868))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; @@ -5613,8 +7613,21 @@ L_08879E48: ctx.gpr[16] = (aot_gpr_28 + static_cast(-26708)); aot_gpr_31 = (0x08879E54u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 642u, 0x08879E54u, 0x08ADC794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 149u, 0x08ADC794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879E54u) goto L_08879E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879E54: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -5633,8 +7646,21 @@ L_08879E6C: ctx.gpr[16] = (aot_gpr_28 + static_cast(-26704)); aot_gpr_31 = (0x08879E78u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 645u, 0x08879E78u, 0x08ADC794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 149u, 0x08ADC794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879E78u) goto L_08879E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879E78: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -5646,8 +7672,21 @@ L_08879E88: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08879E94u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 647u, 0x08879E94u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879E94u) goto L_08879E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879E94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -5659,8 +7698,21 @@ L_08879EA0: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08879EACu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 649u, 0x08879EACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879EACu) goto L_08879EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879EAC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5684,8 +7736,21 @@ L_08879EC4: L_08879ECC: aot_gpr_31 = (0x08879ED4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26700)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 654u, 0x08879ED4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879ED4u) goto L_08879ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879ED4: ctx.gpr[16] = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5746,8 +7811,21 @@ L_08879F30: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08879F44u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 663u, 0x08879F44u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879F44u) goto L_08879F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879F44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); ctx.gpr[16] = (aot_gpr_28 + static_cast(-26864)); @@ -5762,8 +7840,21 @@ L_08879F54: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08879F60u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 665u, 0x08879F60u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879F60u) goto L_08879F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879F60: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5787,8 +7878,21 @@ L_08879F7C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08879F88u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 670u, 0x08879F88u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879F88u) goto L_08879F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879F88: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5804,8 +7908,21 @@ L_08879F98: L_08879FA0: aot_gpr_31 = (0x08879FA8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 673u, 0x08879FA8u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879FA8u) goto L_08879FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879FA8: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1096))); @@ -5819,8 +7936,21 @@ L_08879FB0: ctx.gpr[18] = (aot_gpr_28 + static_cast(-26856)); aot_gpr_31 = (0x08879FC0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 675u, 0x08879FC0u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879FC0u) goto L_08879FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879FC0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5833,8 +7963,21 @@ L_08879FD0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08879FE0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 677u, 0x08879FE0u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08879FE0u) goto L_08879FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08879FE0: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -5862,8 +8005,21 @@ L_0887A004: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887A010u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 681u, 0x0887A010u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A010u) goto L_0887A010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A010: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5888,8 +8044,21 @@ L_0887A030: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887A03Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 686u, 0x0887A03Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A03Cu) goto L_0887A03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A03C: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5903,8 +8072,21 @@ L_0887A04C: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887A060u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 688u, 0x0887A060u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A060u) goto L_0887A060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A060: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -5916,8 +8098,21 @@ L_0887A06C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887A078u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 690u, 0x0887A078u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A078u) goto L_0887A078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A078: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5941,8 +8136,21 @@ L_0887A090: L_0887A098: aot_gpr_31 = (0x0887A0A0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 695u, 0x0887A0A0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A0A0u) goto L_0887A0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A0A0: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5958,8 +8166,21 @@ L_0887A0B0: L_0887A0B8: aot_gpr_31 = (0x0887A0C0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 698u, 0x0887A0C0u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A0C0u) goto L_0887A0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A0C0: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; if (branch_taken) { @@ -5973,14 +8194,40 @@ L_0887A0C8: ctx.gpr[21] = (aot_gpr_28 + static_cast(-26836)); aot_gpr_31 = (0x0887A0DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 700u, 0x0887A0DCu, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A0DCu) goto L_0887A0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A0DC: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0887A0E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 701u, 0x0887A0E8u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A0E8u) goto L_0887A0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A0E8: aot_gpr_4 = (0u | 1u); if (aot_gpr_2 != aot_gpr_4) { @@ -6001,8 +8248,21 @@ L_0887A100: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887A10Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 704u, 0x0887A10Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A10Cu) goto L_0887A10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A10C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6026,8 +8286,21 @@ L_0887A128: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887A134u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 709u, 0x0887A134u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A134u) goto L_0887A134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A134: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -6048,8 +8321,21 @@ L_0887A144: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887A150u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 712u, 0x0887A150u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A150u) goto L_0887A150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A150: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6073,16 +8359,42 @@ L_0887A16C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887A178u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 717u, 0x0887A178u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A178u) goto L_0887A178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A178: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_0887A17C; L_0887A17C: aot_gpr_31 = (0x0887A184u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 719u, 0x0887A184u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A184u) goto L_0887A184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A184: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -6096,8 +8408,21 @@ L_0887A198: aot_gpr_4 = (ctx.gpr[29] + static_cast(992)); aot_gpr_31 = (0x0887A1A8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 721u, 0x0887A1A8u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A1A8u) goto L_0887A1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A1A8: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6125,8 +8450,21 @@ L_0887A1CC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887A1D8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 725u, 0x0887A1D8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A1D8u) goto L_0887A1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A1D8: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6150,8 +8488,21 @@ L_0887A1F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887A200u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 730u, 0x0887A200u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A200u) goto L_0887A200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A200: aot_gpr_6 = (0u | 113u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6187,8 +8538,21 @@ L_0887A230: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887A244u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 735u, 0x0887A244u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A244u) goto L_0887A244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A244: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(52))); ctx.gpr[17] = (ctx.gpr[29] + static_cast(1008)); @@ -6203,8 +8567,21 @@ L_0887A25C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887A26Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 737u, 0x0887A26Cu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A26Cu) goto L_0887A26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A26C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6218,8 +8595,21 @@ L_0887A278: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887A284u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 739u, 0x0887A284u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A284u) goto L_0887A284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A284: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6243,8 +8633,21 @@ L_0887A2A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887A2ACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 744u, 0x0887A2ACu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A2ACu) goto L_0887A2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A2AC: ctx.gpr[17] = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6293,8 +8696,21 @@ L_0887A2F4: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887A30Cu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 751u, 0x0887A30Cu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A30Cu) goto L_0887A30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A30C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); ctx.gpr[18] = (2233u << 16u); @@ -6309,8 +8725,21 @@ L_0887A31C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887A328u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 753u, 0x0887A328u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A328u) goto L_0887A328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A328: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6334,8 +8763,21 @@ L_0887A344: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887A350u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26692)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 758u, 0x0887A350u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A350u) goto L_0887A350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A350: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6370,8 +8812,21 @@ L_0887A38C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887A398u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 763u, 0x0887A398u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A398u) goto L_0887A398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A398: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6395,16 +8850,42 @@ L_0887A3B0: L_0887A3B8: aot_gpr_31 = (0x0887A3C0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 768u, 0x0887A3C0u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A3C0u) goto L_0887A3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A3C0: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0887A3D4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 769u, 0x0887A3D4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A3D4u) goto L_0887A3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A3D4: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6430,8 +8911,21 @@ L_0887A3F8: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887A404u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 773u, 0x0887A404u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A404u) goto L_0887A404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A404: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6455,16 +8949,42 @@ L_0887A41C: L_0887A424: aot_gpr_31 = (0x0887A42Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 778u, 0x0887A42Cu, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A42Cu) goto L_0887A42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A42C: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0887A440u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 779u, 0x0887A440u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A440u) goto L_0887A440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A440: aot_gpr_6 = (0u | 100u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6493,8 +9013,21 @@ L_0887A46C: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887A484u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 783u, 0x0887A484u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A484u) goto L_0887A484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A484: aot_gpr_4 = (ctx.gpr[20] << 4u); aot_gpr_4 = (aot_gpr_4 - ctx.gpr[20]); @@ -6511,8 +9044,21 @@ L_0887A49C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887A4A8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 785u, 0x0887A4A8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A4A8u) goto L_0887A4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A4A8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6536,8 +9082,21 @@ L_0887A4C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887A4D0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26684)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 790u, 0x0887A4D0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A4D0u) goto L_0887A4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A4D0: aot_gpr_6 = (ctx.gpr[18] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6561,8 +9120,21 @@ L_0887A4F4: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887A500u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 794u, 0x0887A500u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A500u) goto L_0887A500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A500: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6595,8 +9167,21 @@ L_0887A520: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0887A54Cu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 799u, 0x0887A54Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A54Cu) goto L_0887A54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A54C: aot_gpr_6 = (ctx.gpr[18] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6625,8 +9210,21 @@ L_0887A578: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887A590u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 803u, 0x0887A590u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A590u) goto L_0887A590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A590: aot_gpr_5 = (ctx.gpr[20] << 4u); aot_gpr_5 = (aot_gpr_5 - ctx.gpr[20]); @@ -6645,8 +9243,21 @@ L_0887A5B0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887A5BCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 805u, 0x0887A5BCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A5BCu) goto L_0887A5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A5BC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6670,8 +9281,21 @@ L_0887A5D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0887A5E4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26676)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 810u, 0x0887A5E4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A5E4u) goto L_0887A5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A5E4: aot_gpr_6 = (ctx.gpr[19] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6703,8 +9327,21 @@ L_0887A614: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887A620u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 815u, 0x0887A620u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A620u) goto L_0887A620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A620: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6728,16 +9365,42 @@ L_0887A638: L_0887A640: aot_gpr_31 = (0x0887A648u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 820u, 0x0887A648u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A648u) goto L_0887A648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A648: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[16]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0887A65Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 821u, 0x0887A65Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A65Cu) goto L_0887A65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A65C: aot_gpr_6 = (ctx.gpr[19] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6763,8 +9426,21 @@ L_0887A680: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887A68Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 825u, 0x0887A68Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A68Cu) goto L_0887A68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A68C: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6788,16 +9464,42 @@ L_0887A6A4: L_0887A6AC: aot_gpr_31 = (0x0887A6B4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 830u, 0x0887A6B4u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A6B4u) goto L_0887A6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A6B4: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[16]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0887A6C8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 831u, 0x0887A6C8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A6C8u) goto L_0887A6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A6C8: aot_gpr_6 = (ctx.gpr[19] + static_cast(74)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6815,8 +9517,21 @@ L_0887A6DC: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887A6F4u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 834u, 0x0887A6F4u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A6F4u) goto L_0887A6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A6F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -6970,8 +9685,21 @@ L_0887A7F8: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887A80Cu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 858u, 0x0887A80Cu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A80Cu) goto L_0887A80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A80C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(204))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -7020,8 +9748,21 @@ L_0887A868: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887A874u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 864u, 0x0887A874u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A874u) goto L_0887A874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A874: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7046,8 +9787,21 @@ L_0887A88C: L_0887A898: aot_gpr_31 = (0x0887A8A0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26668)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 869u, 0x0887A8A0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A8A0u) goto L_0887A8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A8A0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 13u); @@ -7106,8 +9860,21 @@ L_0887A90C: L_0887A914: aot_gpr_31 = (0x0887A91Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 877u, 0x0887A91Cu, 0x08A54FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 256u, 0x08A54FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A91Cu) goto L_0887A91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A91C: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); if (aot_gpr_4 != 0u) { @@ -7141,8 +9908,21 @@ L_0887A94C: L_0887A954: aot_gpr_31 = (0x0887A95Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 882u, 0x0887A95Cu, 0x08A550C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 267u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 267u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 267u, 0x08A550C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A95Cu) goto L_0887A95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A95C: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7187,8 +9967,21 @@ L_0887A998: L_0887A9A0: aot_gpr_31 = (0x0887A9A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 889u, 0x0887A9A8u, 0x08A550C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 267u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 267u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 267u, 0x08A550C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A9A8u) goto L_0887A9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A9A8: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7208,8 +10001,21 @@ L_0887A9C0: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887A9CCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 892u, 0x0887A9CCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A9CCu) goto L_0887A9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A9CC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7233,8 +10039,21 @@ L_0887A9E4: L_0887A9EC: aot_gpr_31 = (0x0887A9F4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26660)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 897u, 0x0887A9F4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887A9F4u) goto L_0887A9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887A9F4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 13u); @@ -7260,8 +10079,21 @@ L_0887AA18: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887AA24u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 901u, 0x0887AA24u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AA24u) goto L_0887AA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AA24: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7285,8 +10117,21 @@ L_0887AA3C: L_0887AA44: aot_gpr_31 = (0x0887AA4Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-26652)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 906u, 0x0887AA4Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AA4Cu) goto L_0887AA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AA4C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 13u); @@ -7312,8 +10157,21 @@ L_0887AA70: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887AA7Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 910u, 0x0887AA7Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AA7Cu) goto L_0887AA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AA7C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7337,8 +10195,21 @@ L_0887AA94: L_0887AA9C: aot_gpr_31 = (0x0887AAA4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26644)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 915u, 0x0887AAA4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AAA4u) goto L_0887AAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AAA4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 13u); @@ -7356,8 +10227,21 @@ L_0887AAB4: L_0887AABC: aot_gpr_31 = (0x0887AAC4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 918u, 0x0887AAC4u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AAC4u) goto L_0887AAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AAC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(204))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -7410,8 +10294,21 @@ L_0887AB28: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887AB34u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 925u, 0x0887AB34u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AB34u) goto L_0887AB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AB34: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7435,8 +10332,21 @@ L_0887AB4C: L_0887AB54: aot_gpr_31 = (0x0887AB5Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-26636)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 930u, 0x0887AB5Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AB5Cu) goto L_0887AB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AB5C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -7454,8 +10364,21 @@ L_0887AB6C: L_0887AB74: aot_gpr_31 = (0x0887AB7Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 933u, 0x0887AB7Cu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AB7Cu) goto L_0887AB7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AB7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(204))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -7508,8 +10431,21 @@ L_0887ABE0: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887ABECu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 940u, 0x0887ABECu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ABECu) goto L_0887ABEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ABEC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7533,8 +10469,21 @@ L_0887AC04: L_0887AC0C: aot_gpr_31 = (0x0887AC14u); aot_gpr_5 = (aot_gpr_28 + static_cast(-26628)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 945u, 0x0887AC14u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AC14u) goto L_0887AC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AC14: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -7558,8 +10507,8 @@ L_0887AC24: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(1152)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887AC54: @@ -7589,8 +10538,21 @@ L_0887AC94: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0887ACA0u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 951u, 0x0887ACA0u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ACA0u) goto L_0887ACA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ACA0: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0887ACACu); @@ -7600,8 +10562,21 @@ L_0887ACA0: L_0887ACAC: aot_gpr_31 = (0x0887ACB4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 953u, 0x0887ACB4u, 0x0898C008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 2u, 0x0898C008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ACB4u) goto L_0887ACB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ACB4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7702,22 +10677,61 @@ L_0887AD44: L_0887AD48: aot_gpr_31 = (0x0887AD50u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 970u, 0x0887AD50u, 0x08A53F2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 764u, 0x08A53F2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AD50u) goto L_0887AD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AD50: aot_gpr_4 = (aot_gpr_28 + static_cast(7768)); aot_gpr_5 = (0u | 198u); aot_gpr_31 = (0x0887AD60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 971u, 0x0887AD60u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AD60u) goto L_0887AD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AD60: aot_gpr_5 = (aot_gpr_28 + static_cast(-27352)); aot_gpr_6 = (aot_gpr_28 + static_cast(-27344)); aot_gpr_31 = (0x0887AD70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 972u, 0x0887AD70u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AD70u) goto L_0887AD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AD70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7756,8 +10770,21 @@ L_0887ADA0: L_0887ADA8: aot_gpr_31 = (0x0887ADB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 978u, 0x0887ADB0u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ADB0u) goto L_0887ADB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ADB0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4))); @@ -7888,8 +10915,21 @@ L_0887AE88: goto L_0887AE8C; L_0887AE8C: aot_gpr_31 = (0x0887AE94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 996u, 0x0887AE94u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AE94u) goto L_0887AE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AE94: ctx.gpr[9] = (3u << 16u); ctx.gpr[10] = (3u << 16u); @@ -7918,8 +10958,21 @@ L_0887AECC: aot_gpr_6 = (aot_gpr_28 + static_cast(-27344)); aot_gpr_31 = (0x0887AEDCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 999u, 0x0887AEDCu, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887AEDCu) goto L_0887AEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887AEDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(244))); goto L_0887AEE0; @@ -8134,8 +11187,21 @@ L_0887B024: aot_gpr_6 = (aot_gpr_28 + static_cast(-27344)); aot_gpr_31 = (0x0887B038u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1030u, 0x0887B038u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B038u) goto L_0887B038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B038: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -8146,8 +11212,21 @@ L_0887B038: L_0887B040: aot_gpr_31 = (0x0887B048u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1032u, 0x0887B048u, 0x0887C998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 172u, 0x0887C998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B048u) goto L_0887B048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B048: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(12), aot_run_words); @@ -8162,8 +11241,8 @@ L_0887B048: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887B070: @@ -8187,8 +11266,21 @@ L_0887B098: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0887B0A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1035u, 0x0887B0A8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B0A8u) goto L_0887B0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B0A8: aot_gpr_31 = (0x0887B0B0u); aot_gpr_4 = (aot_gpr_28 + static_cast(-27188)); @@ -8198,8 +11290,21 @@ L_0887B0B0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887B0BCu); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1037u, 0x0887B0BCu, 0x0882E704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 553u, 0x0882E704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B0BCu) goto L_0887B0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B0BC: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); if (ctx.gpr[17] != 0u) { @@ -8337,8 +11442,21 @@ L_0887B190: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x0887B1A0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1058u, 0x0887B1A0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B1A0u) goto L_0887B1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B1A0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(216))); goto L_0887B1A4; @@ -8383,8 +11501,21 @@ L_0887B1D8: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x0887B1E8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1065u, 0x0887B1E8u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B1E8u) goto L_0887B1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B1E8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(216))); goto L_0887B1EC; @@ -8562,8 +11693,21 @@ L_0887B2F8: aot_gpr_5 = (0u | 196u); aot_gpr_31 = (0x0887B308u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1093u, 0x0887B308u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B308u) goto L_0887B308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B308: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(216))); @@ -8590,8 +11734,21 @@ L_0887B32C: goto L_0887B330; L_0887B330: aot_gpr_31 = (0x0887B338u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1098u, 0x0887B338u, 0x08A54034u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 4u, 0x08A54034u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B338u) goto L_0887B338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B338: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(204), 0u); @@ -8621,8 +11778,21 @@ L_0887B35C: L_0887B360: aot_gpr_31 = (0x0887B368u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1104u, 0x0887B368u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B368u) goto L_0887B368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B368: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8656,8 +11826,21 @@ L_0887B390: L_0887B394: aot_gpr_31 = (0x0887B39Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1110u, 0x0887B39Cu, 0x08A545ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 86u, 0x08A545ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B39Cu) goto L_0887B39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B39C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8695,8 +11878,21 @@ L_0887B3CC: L_0887B3D0: aot_gpr_31 = (0x0887B3D8u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1117u, 0x0887B3D8u, 0x08A53CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 730u, 0x08A53CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B3D8u) goto L_0887B3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B3D8: aot_gpr_31 = (0x0887B3E0u); aot_gpr_4 = (0u | 0u); @@ -8705,8 +11901,21 @@ L_0887B3D8: L_0887B3E0: aot_gpr_31 = (0x0887B3E8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1119u, 0x0887B3E8u, 0x0898C008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 2u, 0x0898C008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B3E8u) goto L_0887B3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B3E8: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); @@ -8785,8 +11994,21 @@ L_0887B450: L_0887B454: aot_gpr_31 = (0x0887B45Cu); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1133u, 0x0887B45Cu, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B45Cu) goto L_0887B45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B45C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8811,8 +12033,21 @@ L_0887B478: goto L_0887B47C; L_0887B47C: aot_gpr_31 = (0x0887B484u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1138u, 0x0887B484u, 0x08A546D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 93u, 0x08A546D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B484u) goto L_0887B484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B484: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(244))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -8847,15 +12082,41 @@ L_0887B4AC: aot_gpr_5 = (0u | 198u); aot_gpr_31 = (0x0887B4C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1143u, 0x0887B4C8u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B4C8u) goto L_0887B4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B4C8: aot_gpr_5 = (aot_gpr_28 + static_cast(-27352)); aot_gpr_6 = (aot_gpr_28 + static_cast(-27344)); aot_gpr_31 = (0x0887B4D8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1144u, 0x0887B4D8u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B4D8u) goto L_0887B4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B4D8: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(204), 0u); @@ -8978,20 +12239,59 @@ L_0887B590: goto L_0887B594; L_0887B594: aot_gpr_31 = (0x0887B59Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1163u, 0x0887B59Cu, 0x08A551F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 283u, 0x08A551F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B59Cu) goto L_0887B59C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B59C: aot_gpr_5 = (aot_gpr_28 + static_cast(-27320)); aot_gpr_6 = (aot_gpr_28 + static_cast(-27312)); aot_gpr_31 = (0x0887B5ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1164u, 0x0887B5ACu, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B5ACu) goto L_0887B5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B5AC: aot_gpr_31 = (0x0887B5B4u); aot_gpr_4 = (ctx.gpr[16] + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1165u, 0x0887B5B4u, 0x0886F9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 589u, 0x0886F9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B5B4u) goto L_0887B5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B5B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -9030,8 +12330,21 @@ L_0887B5E8: goto L_0887B5EC; L_0887B5EC: aot_gpr_31 = (0x0887B5F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1173u, 0x0887B5F4u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B5F4u) goto L_0887B5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B5F4: ctx.gpr[7] = (3u << 16u); ctx.gpr[8] = (3u << 16u); @@ -9058,8 +12371,21 @@ L_0887B624: aot_gpr_6 = (aot_gpr_28 + static_cast(-27344)); aot_gpr_31 = (0x0887B634u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1176u, 0x0887B634u, 0x08873D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 896u, 0x08873D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B634u) goto L_0887B634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B634: aot_gpr_31 = (0x0887B63Cu); ctx.pc = 0x08B73514u; @@ -9096,8 +12422,8 @@ L_0887B680: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887B698: @@ -9130,8 +12456,21 @@ L_0887B704: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7872), aot_gpr_6); aot_gpr_31 = (0x0887B710u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1182u, 0x0887B710u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B710u) goto L_0887B710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B710: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7868))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; @@ -9146,8 +12485,21 @@ L_0887B71C: L_0887B720: aot_gpr_31 = (0x0887B728u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1185u, 0x0887B728u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B728u) goto L_0887B728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B728: aot_gpr_31 = (0x0887B730u); aot_gpr_4 = (0u | 2u); @@ -9179,8 +12531,21 @@ L_0887B764: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887B770u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1189u, 0x0887B770u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B770u) goto L_0887B770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B770: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -9204,8 +12569,21 @@ L_0887B788: L_0887B790: aot_gpr_31 = (0x0887B798u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1194u, 0x0887B798u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B798u) goto L_0887B798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B798: aot_gpr_6 = (0u | 48u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -9216,8 +12594,21 @@ L_0887B798: L_0887B7A8: aot_gpr_31 = (0x0887B7B0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1196u, 0x0887B7B0u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B7B0u) goto L_0887B7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B7B0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -9231,8 +12622,21 @@ L_0887B7BC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887B7C8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1198u, 0x0887B7C8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B7C8u) goto L_0887B7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B7C8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -9257,8 +12661,21 @@ L_0887B7E4: aot_gpr_5 = (aot_gpr_28 + static_cast(-26604)); aot_gpr_31 = (0x0887B7F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1203u, 0x0887B7F4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B7F4u) goto L_0887B7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B7F4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -9277,8 +12694,21 @@ L_0887B810: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887B81Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1206u, 0x0887B81Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B81Cu) goto L_0887B81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B81C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -9303,8 +12733,21 @@ L_0887B83C: aot_gpr_5 = (aot_gpr_28 + static_cast(-26928)); aot_gpr_31 = (0x0887B848u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1211u, 0x0887B848u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B848u) goto L_0887B848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B848: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -9323,8 +12766,21 @@ L_0887B864: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887B870u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1214u, 0x0887B870u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B870u) goto L_0887B870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B870: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -9349,8 +12805,21 @@ L_0887B890: aot_gpr_5 = (aot_gpr_28 + static_cast(-26596)); aot_gpr_31 = (0x0887B89Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1219u, 0x0887B89Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B89Cu) goto L_0887B89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B89C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -9369,8 +12838,21 @@ L_0887B8B8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887B8C4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1222u, 0x0887B8C4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B8C4u) goto L_0887B8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B8C4: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -9395,8 +12877,21 @@ L_0887B8E4: aot_gpr_5 = (aot_gpr_28 + static_cast(-26588)); aot_gpr_31 = (0x0887B8F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1227u, 0x0887B8F0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B8F0u) goto L_0887B8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B8F0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -9499,8 +12994,21 @@ L_0887B9D4: L_0887B9D8: aot_gpr_31 = (0x0887B9E0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1239u, 0x0887B9E0u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887B9E0u) goto L_0887B9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887B9E0: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -9548,8 +13056,21 @@ L_0887BA24: L_0887BA2C: aot_gpr_31 = (0x0887BA34u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1246u, 0x0887BA34u, 0x08A54B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 180u, 0x08A54B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BA34u) goto L_0887BA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BA34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(80))); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -9585,8 +13106,21 @@ L_0887BA6C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887BA78u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1251u, 0x0887BA78u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BA78u) goto L_0887BA78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BA78: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -9611,13 +13145,39 @@ L_0887BA90: L_0887BA9C: aot_gpr_31 = (0x0887BAA4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1256u, 0x0887BAA4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BAA4u) goto L_0887BAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BAA4: aot_gpr_31 = (0x0887BAACu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1257u, 0x0887BAACu, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BAACu) goto L_0887BAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BAAC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(168))); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -9629,8 +13189,21 @@ L_0887BABC: aot_gpr_5 = (ctx.gpr[29] + static_cast(30)); aot_gpr_31 = (0x0887BAC8u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1259u, 0x0887BAC8u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BAC8u) goto L_0887BAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BAC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(164))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(204))); @@ -9638,8 +13211,21 @@ L_0887BAC8: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887BAE0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1260u, 0x0887BAE0u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BAE0u) goto L_0887BAE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BAE0: ctx.gpr[8] = (0u | 0u); aot_gpr_4 = (ctx.gpr[20] + static_cast(10)); @@ -9738,8 +13324,21 @@ L_0887BBA4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887BBB0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1273u, 0x0887BBB0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BBB0u) goto L_0887BBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BBB0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -9764,8 +13363,21 @@ L_0887BBC8: L_0887BBD4: aot_gpr_31 = (0x0887BBDCu); aot_gpr_5 = (ctx.gpr[29] + static_cast(88)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1278u, 0x0887BBDCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BBDCu) goto L_0887BBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BBDC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(208))); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -9792,8 +13404,21 @@ L_0887BC08: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0887BC14u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1282u, 0x0887BC14u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BC14u) goto L_0887BC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BC14: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -9817,8 +13442,21 @@ L_0887BC2C: L_0887BC34: aot_gpr_31 = (0x0887BC3Cu); aot_gpr_5 = (ctx.gpr[29] + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1287u, 0x0887BC3Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BC3Cu) goto L_0887BC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BC3C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(204))); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -9839,8 +13477,21 @@ L_0887BC60: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887BC70u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1290u, 0x0887BC70u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BC70u) goto L_0887BC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BC70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7872))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9855,8 +13506,21 @@ L_0887BC7C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0887BC8Cu); aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7872), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1292u, 0x0887BC8Cu, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BC8Cu) goto L_0887BC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BC8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7868))); aot_gpr_5 = (0u | 4u); @@ -9880,8 +13544,21 @@ L_0887BCA0: L_0887BCB4: aot_gpr_31 = (0x0887BCBCu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1296u, 0x0887BCBCu, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BCBCu) goto L_0887BCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BCBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(84))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(176))); @@ -9965,8 +13642,21 @@ L_0887BD4C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887BD58u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1308u, 0x0887BD58u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BD58u) goto L_0887BD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BD58: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -9990,8 +13680,21 @@ L_0887BD70: L_0887BD78: aot_gpr_31 = (0x0887BD80u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1313u, 0x0887BD80u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BD80u) goto L_0887BD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BD80: aot_gpr_6 = (ctx.gpr[23] + static_cast(16)); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -10008,8 +13711,21 @@ L_0887BD94: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887BDA8u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0028. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1316u, 0x0887BDA8u, 0x08874254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0028_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0028_entry, 28u, 47u, 0x08874254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BDA8u) goto L_0887BDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BDA8: aot_gpr_31 = (0x0887BDB0u); aot_gpr_4 = (0u | 2u); @@ -10028,8 +13744,21 @@ L_0887BDBC: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0887BDC8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1319u, 0x0887BDC8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BDC8u) goto L_0887BDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BDC8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -10053,8 +13782,21 @@ L_0887BDE0: L_0887BDE8: aot_gpr_31 = (0x0887BDF0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1324u, 0x0887BDF0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BDF0u) goto L_0887BDF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BDF0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -10111,8 +13853,21 @@ L_0887BE60: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0887BE88u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1329u, 0x0887BE88u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BE88u) goto L_0887BE88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BE88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-8144))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-26616))); @@ -10178,8 +13933,21 @@ L_0887BF0C: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0887BF34u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1335u, 0x0887BF34u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BF34u) goto L_0887BF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BF34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-8144))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-26616))); @@ -10215,8 +13983,8 @@ L_0887BF50: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887BF94: @@ -10245,8 +14013,21 @@ L_0887BFDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); aot_gpr_31 = (0x0887BFE8u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0029->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0029_entry, 1341u, 0x0887BFE8u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887BFE8u) goto L_0887BFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887BFE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; diff --git a/profiles/vcs/generated/generated_unit_0030.cpp b/profiles/vcs/generated/generated_unit_0030.cpp index 59c095b..f62c025 100644 --- a/profiles/vcs/generated/generated_unit_0030.cpp +++ b/profiles/vcs/generated/generated_unit_0030.cpp @@ -32,6 +32,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0030[64] = { 405u, 410u, 414u, 430u, 447u, 463u, 475u, 489u, 503u, 517u, 532u, 544u, 558u, 583u, 600u, 625u, 642u, 655u, 669u, 690u, 705u, 716u, 730u, 737u, 746u, 753u, 763u, 783u, 793u, 810u, 829u, 844u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0030[4082] = { + 1u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 3u, 0u, 4u, 5u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 7u, 0u, 8u, 0u, 9u, 0u, 0u, 10u, 0u, 11u, 0u, + 12u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 14u, 0u, 15u, 0u, 16u, 0u, 0u, 17u, 0u, 18u, + 19u, 0u, 20u, 0u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 22u, 0u, 0u, 0u, 23u, 0u, 24u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 26u, 0u, 27u, 0u, 0u, 0u, 28u, 0u, + 0u, 0u, 29u, 0u, 0u, 0u, 30u, 31u, 32u, 0u, 33u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 36u, 37u, 38u, 0u, 39u, 0u, 0u, + 40u, 0u, 41u, 42u, 0u, 43u, 0u, 44u, 0u, 0u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, + 0u, 48u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 50u, 51u, 52u, 0u, 53u, 0u, 54u, 0u, 0u, 0u, 55u, 0u, 56u, 0u, 0u, 57u, 0u, 58u, 59u, 0u, 0u, 60u, 0u, + 0u, 61u, 0u, 62u, 0u, 0u, 0u, 63u, 0u, 0u, 0u, 64u, 0u, 65u, 66u, 0u, 67u, 0u, 68u, 0u, 0u, 69u, 0u, 70u, 71u, 0u, 0u, 72u, 0u, 73u, 0u, 0u, + 74u, 0u, 75u, 76u, 0u, 0u, 77u, 0u, 0u, 0u, 0u, 0u, 78u, 0u, 0u, 79u, 0u, 80u, 0u, 81u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, + 84u, 85u, 86u, 0u, 87u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, 0u, 0u, 90u, 0u, 0u, 0u, 91u, 92u, 93u, 0u, 0u, 0u, + 94u, 0u, 0u, 95u, 96u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 98u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 0u, 101u, 0u, 0u, 102u, + 0u, 103u, 0u, 104u, 0u, 0u, 0u, 0u, 105u, 0u, 0u, 0u, 106u, 0u, 0u, 0u, 107u, 108u, 109u, 0u, 110u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 0u, 112u, 0u, 0u, + 0u, 0u, 0u, 113u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 114u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 116u, 117u, 118u, 0u, 0u, 0u, 119u, 0u, 0u, + 120u, 0u, 121u, 0u, 122u, 0u, 0u, 0u, 0u, 123u, 0u, 0u, 0u, 124u, 0u, 0u, 0u, 125u, 126u, 127u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, + 130u, 0u, 0u, 0u, 131u, 132u, 133u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 135u, 0u, 136u, 0u, 137u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 138u, 0u, 0u, 0u, 139u, 0u, 0u, 140u, 0u, 0u, 141u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, 0u, 143u, 0u, 0u, 144u, 0u, 0u, 145u, 0u, + 146u, 147u, 0u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 150u, 0u, 0u, 151u, 0u, 0u, 152u, + 0u, 0u, 0u, 153u, 0u, 154u, 0u, 155u, 0u, 0u, 156u, 0u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 158u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 160u, 161u, 162u, 0u, 163u, + 0u, 0u, 164u, 0u, 0u, 0u, 165u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, 167u, 0u, 168u, 169u, 0u, 170u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 173u, 0u, 174u, 0u, 0u, 0u, 0u, 175u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 177u, 0u, + 178u, 0u, 0u, 179u, 0u, 180u, 0u, 0u, 0u, 0u, 181u, 0u, 0u, 182u, 0u, 183u, 184u, 0u, 185u, 0u, 186u, 0u, 0u, 187u, 0u, 188u, 0u, 189u, 0u, 190u, 0u, 0u, + 191u, 0u, 192u, 193u, 0u, 194u, 0u, 195u, 0u, 196u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 198u, 0u, 199u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, + 0u, 0u, 202u, 0u, 203u, 0u, 0u, 0u, 0u, 204u, 0u, 205u, 0u, 0u, 0u, 0u, 206u, 0u, 207u, 0u, 0u, 0u, 0u, 208u, 0u, 209u, 0u, 0u, 0u, 0u, 210u, 0u, + 211u, 0u, 0u, 0u, 0u, 212u, 0u, 213u, 0u, 0u, 0u, 0u, 214u, 0u, 215u, 0u, 0u, 0u, 0u, 216u, 0u, 217u, 0u, 0u, 0u, 0u, 218u, 0u, 219u, 0u, 0u, 0u, + 0u, 220u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 223u, 0u, 224u, 0u, 225u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 227u, 0u, 0u, 228u, 0u, 0u, 229u, 0u, 0u, + 230u, 0u, 231u, 232u, 0u, 233u, 0u, 0u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 236u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 239u, 0u, 240u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 241u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 243u, 0u, 0u, 0u, 244u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 247u, 0u, 248u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 249u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 251u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 253u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 256u, + 0u, 257u, 0u, 258u, 0u, 0u, 0u, 0u, 0u, 259u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 0u, 261u, 0u, 262u, 0u, 0u, 0u, 0u, 263u, 0u, 0u, 0u, 0u, + 264u, 0u, 0u, 265u, 0u, 0u, 0u, 0u, 266u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 268u, 0u, + 0u, 0u, 269u, 0u, 0u, 0u, 0u, 270u, 271u, 0u, 0u, 272u, 0u, 0u, 0u, 273u, 0u, 274u, 0u, 275u, 0u, 0u, 276u, 0u, 277u, 0u, 0u, 278u, 0u, 0u, 0u, 0u, + 0u, 279u, 0u, 0u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, 0u, 0u, 281u, 0u, 0u, 282u, 0u, 0u, 283u, 0u, 0u, 0u, 0u, 0u, 0u, 284u, 0u, 0u, 0u, 285u, 0u, + 0u, 0u, 0u, 286u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 287u, 0u, 0u, 0u, 0u, 288u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, 0u, 291u, 0u, 0u, 0u, 292u, 0u, 0u, + 0u, 0u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 296u, 0u, 0u, 297u, 0u, 0u, 0u, 0u, 0u, 0u, 298u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 300u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 305u, + 0u, 306u, 0u, 307u, 0u, 308u, 0u, 0u, 309u, 0u, 0u, 0u, 0u, 310u, 0u, 0u, 311u, 0u, 0u, 0u, 312u, 0u, 313u, 0u, 314u, 0u, 315u, 0u, 0u, 0u, 0u, 0u, + 0u, 316u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 318u, 0u, 0u, 319u, 0u, 0u, 0u, 320u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 322u, 0u, 0u, 0u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 0u, 325u, 0u, 0u, 326u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 328u, 0u, 329u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 333u, 0u, 0u, 334u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 337u, 0u, 338u, 0u, 339u, 0u, 340u, 0u, 0u, 341u, 0u, + 0u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 344u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 0u, 0u, 346u, 0u, 0u, 0u, + 0u, 0u, 347u, 0u, 0u, 0u, 0u, 0u, 348u, 349u, 0u, 350u, 0u, 0u, 0u, 351u, 0u, 352u, 0u, 0u, 353u, 0u, 354u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 358u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 359u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 361u, 0u, 0u, 0u, 362u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 364u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, 368u, + 0u, 0u, 0u, 369u, 370u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 371u, 0u, 0u, 372u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 376u, 0u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 378u, 0u, 379u, 0u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, 381u, 0u, 382u, 0u, 383u, 0u, 384u, 385u, 0u, + 0u, 0u, 0u, 0u, 0u, 386u, 387u, 0u, 0u, 0u, 388u, 389u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 393u, 0u, 394u, 0u, 395u, 0u, 396u, 0u, 0u, 0u, 0u, 0u, 397u, 0u, 0u, 0u, 0u, 0u, 398u, 0u, 399u, 0u, 0u, 0u, 400u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 401u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 402u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 405u, 0u, 406u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 408u, 0u, 409u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 410u, 411u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 412u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 414u, 0u, 415u, 416u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 420u, + 0u, 0u, 421u, 0u, 422u, 423u, 0u, 424u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, 427u, 0u, 428u, 429u, + 0u, 430u, 0u, 0u, 0u, 0u, 431u, 0u, 432u, 433u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 0u, 437u, 0u, + 438u, 439u, 0u, 440u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 441u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 442u, 0u, 0u, 443u, 0u, 444u, 445u, 0u, 446u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 0u, 449u, 0u, 450u, 451u, 0u, 452u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, + 454u, 455u, 0u, 456u, 0u, 0u, 0u, 0u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 458u, 0u, 0u, 459u, 0u, 460u, 461u, 0u, 462u, 0u, 0u, 0u, 0u, + 463u, 0u, 464u, 465u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 469u, 0u, 470u, 471u, + 0u, 472u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 475u, 0u, 0u, 476u, 0u, 477u, 478u, 0u, 479u, 0u, 0u, 0u, 0u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 482u, 0u, 0u, 483u, 0u, 484u, 485u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 489u, 0u, 0u, 490u, 0u, 491u, 492u, 0u, 493u, 0u, 0u, 0u, 0u, 0u, 494u, 0u, 0u, 0u, 0u, 0u, 0u, 495u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 496u, 0u, 0u, 497u, 0u, 498u, 499u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, 504u, 0u, 505u, 506u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 510u, 0u, 0u, 511u, 0u, 512u, 513u, 0u, 514u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 0u, 0u, 0u, 0u, 516u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 517u, 0u, 0u, 518u, 0u, 519u, 520u, 0u, 521u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, + 0u, 0u, 0u, 0u, 0u, 523u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 525u, 0u, 526u, 527u, 0u, 528u, 0u, 0u, 529u, 0u, 530u, 531u, + 0u, 532u, 0u, 533u, 0u, 0u, 0u, 0u, 534u, 0u, 0u, 0u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 0u, 0u, 537u, + 0u, 538u, 0u, 539u, 0u, 540u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 541u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 542u, 0u, 543u, + 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 0u, 0u, 0u, 546u, 0u, 547u, 0u, 548u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 550u, + 0u, 551u, 0u, 552u, 0u, 0u, 0u, 553u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 554u, 0u, 0u, 555u, 0u, 556u, 0u, 0u, 557u, 0u, 0u, + 0u, 0u, 0u, 558u, 0u, 0u, 0u, 559u, 0u, 560u, 561u, 0u, 562u, 0u, 0u, 563u, 0u, 0u, 564u, 0u, 565u, 0u, 0u, 566u, 0u, 567u, 568u, 0u, 0u, 0u, 0u, 0u, + 0u, 569u, 0u, 0u, 0u, 570u, 0u, 571u, 572u, 0u, 573u, 0u, 0u, 0u, 574u, 0u, 0u, 575u, 0u, 576u, 577u, 0u, 0u, 578u, 0u, 579u, 0u, 0u, 580u, 0u, 581u, 582u, + 0u, 583u, 0u, 0u, 584u, 0u, 0u, 585u, 0u, 586u, 587u, 0u, 0u, 588u, 0u, 589u, 0u, 0u, 590u, 0u, 591u, 592u, 0u, 0u, 593u, 0u, 0u, 0u, 0u, 594u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 596u, 0u, 0u, 597u, 0u, 598u, 0u, 0u, 599u, 0u, 0u, 0u, + 0u, 0u, 600u, 0u, 0u, 0u, 601u, 0u, 602u, 603u, 0u, 604u, 0u, 0u, 605u, 0u, 0u, 606u, 0u, 607u, 0u, 0u, 608u, 0u, 609u, 610u, 0u, 0u, 0u, 0u, 0u, 0u, + 611u, 0u, 0u, 0u, 612u, 0u, 613u, 614u, 0u, 615u, 0u, 0u, 0u, 616u, 0u, 0u, 617u, 0u, 618u, 619u, 0u, 0u, 620u, 0u, 621u, 0u, 0u, 622u, 0u, 623u, 624u, 0u, + 625u, 0u, 0u, 626u, 0u, 0u, 627u, 0u, 628u, 629u, 0u, 0u, 630u, 0u, 631u, 0u, 0u, 632u, 0u, 633u, 634u, 0u, 0u, 635u, 0u, 0u, 0u, 0u, 636u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 637u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 639u, 0u, 0u, 0u, 0u, 640u, 0u, 0u, 641u, 0u, + 0u, 0u, 0u, 642u, 643u, 0u, 0u, 0u, 644u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 646u, 0u, 0u, 0u, 0u, 0u, + 0u, 647u, 0u, 0u, 0u, 0u, 0u, 648u, 0u, 0u, 649u, 0u, 650u, 0u, 0u, 0u, 0u, 651u, 0u, 0u, 0u, 652u, 0u, 0u, 653u, 0u, 0u, 0u, 0u, 654u, 0u, 0u, + 655u, 0u, 656u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 657u, 0u, 0u, 658u, 0u, 0u, 0u, 0u, 659u, 0u, 0u, 0u, 0u, 0u, 660u, 0u, 0u, 661u, 0u, 662u, 0u, 0u, + 663u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 664u, 0u, 0u, 0u, 0u, 665u, 0u, 0u, 0u, 0u, 666u, 0u, 0u, 0u, 0u, 0u, 667u, 0u, 0u, 0u, 0u, 668u, 0u, 0u, + 0u, 0u, 0u, 669u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 670u, 0u, 0u, 671u, 0u, 672u, 0u, 673u, 0u, 674u, 0u, 675u, 0u, 0u, 0u, 0u, 676u, 0u, + 0u, 677u, 0u, 0u, 678u, 0u, 0u, 679u, 0u, 680u, 0u, 681u, 0u, 0u, 682u, 0u, 0u, 683u, 0u, 0u, 684u, 0u, 685u, 0u, 686u, 0u, 687u, 0u, 688u, 0u, 0u, 689u, + 0u, 690u, 0u, 0u, 691u, 0u, 692u, 0u, 693u, 0u, 694u, 0u, 0u, 695u, 0u, 0u, 696u, 0u, 0u, 697u, 0u, 0u, 0u, 0u, 0u, 698u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 699u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 0u, 0u, 701u, 0u, 0u, 702u, 0u, 0u, 0u, 0u, 0u, 0u, 703u, 0u, 0u, 0u, 0u, 704u, 0u, 0u, 0u, 0u, + 0u, 705u, 0u, 0u, 706u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 707u, 0u, 0u, 0u, 0u, 0u, 708u, 0u, 0u, 709u, 0u, 0u, 710u, 0u, + 0u, 0u, 711u, 0u, 0u, 712u, 0u, 0u, 0u, 713u, 0u, 0u, 0u, 0u, 714u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 715u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 0u, 717u, 0u, 718u, 0u, 0u, 719u, 0u, 0u, 0u, 720u, 0u, 0u, 721u, 0u, 0u, 722u, 0u, 0u, 0u, 0u, 723u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 724u, 0u, 0u, 0u, 0u, 0u, 725u, 0u, 0u, 726u, 0u, 0u, 0u, 0u, 0u, 727u, 0u, 0u, 728u, 0u, 0u, 0u, 0u, 0u, 0u, 729u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 730u, 0u, 731u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 732u, 0u, 0u, 0u, 0u, 733u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 734u, 0u, 0u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 0u, 0u, 736u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 737u, 0u, 738u, 0u, 0u, 0u, 0u, 0u, 0u, 739u, 0u, 740u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 741u, 0u, 0u, 0u, 0u, 0u, 0u, 742u, 0u, 0u, 0u, 0u, 0u, 0u, 743u, 0u, 0u, 0u, 744u, 0u, 745u, 0u, 0u, 0u, 0u, + 746u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 747u, 748u, 0u, 0u, 0u, 0u, 0u, + 0u, 749u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 750u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 751u, 752u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 753u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 754u, 755u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 756u, 0u, 757u, 758u, 0u, 0u, 0u, 0u, 0u, 759u, 0u, 0u, 760u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 761u, 0u, 0u, 0u, 762u, + 0u, 0u, 763u, 0u, 0u, 764u, 0u, 0u, 765u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 766u, 0u, 767u, 768u, 0u, 0u, 0u, 0u, 769u, 0u, 0u, + 770u, 0u, 0u, 771u, 0u, 772u, 773u, 0u, 0u, 774u, 0u, 775u, 0u, 0u, 0u, 776u, 777u, 0u, 0u, 778u, 0u, 0u, 0u, 0u, 779u, 780u, 0u, 781u, 0u, 0u, 782u, 0u, + 0u, 0u, 783u, 0u, 784u, 0u, 0u, 785u, 0u, 786u, 0u, 0u, 0u, 0u, 787u, 0u, 0u, 0u, 788u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 789u, 790u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 791u, 0u, 792u, 0u, 0u, 0u, 0u, 0u, 0u, + 793u, 0u, 0u, 794u, 0u, 0u, 0u, 0u, 795u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 796u, 0u, 0u, 0u, 797u, 0u, 0u, 798u, 0u, 0u, 799u, 0u, 0u, 800u, 0u, + 801u, 0u, 802u, 0u, 0u, 0u, 803u, 0u, 804u, 0u, 0u, 0u, 0u, 805u, 0u, 806u, 0u, 0u, 0u, 0u, 0u, 807u, 0u, 808u, 0u, 0u, 0u, 0u, 809u, 0u, 0u, 0u, + 810u, 0u, 811u, 0u, 0u, 0u, 0u, 812u, 0u, 813u, 0u, 0u, 0u, 0u, 0u, 814u, 0u, 815u, 0u, 0u, 0u, 0u, 816u, 0u, 0u, 0u, 817u, 0u, 818u, 0u, 0u, 0u, + 819u, 0u, 820u, 0u, 821u, 0u, 822u, 823u, 0u, 824u, 0u, 825u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 826u, 0u, 0u, 827u, 0u, 0u, 0u, 0u, 828u, 0u, 0u, 0u, 0u, + 0u, 829u, 0u, 0u, 830u, 0u, 831u, 0u, 0u, 0u, 0u, 832u, 0u, 833u, 0u, 0u, 0u, 0u, 0u, 834u, 0u, 835u, 0u, 0u, 0u, 0u, 836u, 0u, 0u, 0u, 0u, 837u, + 0u, 0u, 0u, 838u, 0u, 0u, 839u, 0u, 0u, 840u, 0u, 841u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 842u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 843u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 844u, 0u, 0u, 0u, 845u, 0u, 0u, 0u, 0u, 0u, 846u, 0u, 0u, 847u, 0u, 0u, 0u, + 0u, 0u, 848u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 849u, +}; + void recomp_unit_0030_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,29,5,31,16,6 fprs=12,13,14,20 gpr_occ=4202 fpr_occ=291 gpr_total=5924 fpr_total=379 @@ -58,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x0887C004u; - entry_id = 0u; - if (entry_delta < 16328u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0030[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0030[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16328u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0030[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_0887C004; @@ -927,6 +1051,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0887C004u; + if (local_delta_v813 >= 16328u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -991,8 +1139,21 @@ L_0887C058: L_0887C060: aot_gpr_31 = (0x0887C068u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 9u, 0x0887C068u, 0x08A54FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 255u, 0x08A54FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C068u) goto L_0887C068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C068: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1009,8 +1170,21 @@ L_0887C074: L_0887C07C: aot_gpr_31 = (0x0887C084u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 12u, 0x0887C084u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C084u) goto L_0887C084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C084: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(aot_gpr_4)); @@ -1031,8 +1205,21 @@ L_0887C084: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0887C0D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 13u, 0x0887C0D0u, 0x08A3C788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 93u, 0x08A3C788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C0D0u) goto L_0887C0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C0D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1048,8 +1235,21 @@ L_0887C0DC: L_0887C0E4: aot_gpr_31 = (0x0887C0ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 16u, 0x0887C0ECu, 0x08A54FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 255u, 0x08A54FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C0ECu) goto L_0887C0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C0EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -1067,8 +1267,21 @@ L_0887C100: L_0887C104: aot_gpr_31 = (0x0887C10Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(336), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 20u, 0x0887C10Cu, 0x08A54FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 255u, 0x08A54FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C10Cu) goto L_0887C10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C10C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (static_cast(aot_gpr_4) < 0 ? 1u : 0u); @@ -1116,8 +1329,21 @@ L_0887C124: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x0887C1ACu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(13788)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 22u, 0x0887C1ACu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C1ACu) goto L_0887C1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C1AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); aot_gpr_16 = (0u | 136u); @@ -1136,16 +1362,42 @@ L_0887C1C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); aot_gpr_31 = (0x0887C1D0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(336), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 25u, 0x0887C1D0u, 0x08A54FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 255u, 0x08A54FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C1D0u) goto L_0887C1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C1D0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_6 = (0u | 136u); aot_gpr_31 = (0x0887C1E4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 26u, 0x0887C1E4u, 0x08A3C868u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 104u, 0x08A3C868u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C1E4u) goto L_0887C1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C1E4: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; if (branch_taken) { @@ -1256,8 +1508,21 @@ L_0887C28C: L_0887C290: aot_gpr_31 = (0x0887C298u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 43u, 0x0887C298u, 0x08A54DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 226u, 0x08A54DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C298u) goto L_0887C298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C298: aot_gpr_31 = (0x0887C2A0u); ctx.pc = 0x08B73514u; @@ -1419,8 +1684,21 @@ L_0887C3B8: L_0887C3BC: aot_gpr_31 = (0x0887C3C4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 67u, 0x0887C3C4u, 0x08A54D38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 216u, 0x08A54D38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C3C4u) goto L_0887C3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C3C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1475,8 +1753,21 @@ L_0887C410: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887C41Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 77u, 0x0887C41Cu, 0x08A54E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 234u, 0x08A54E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C41Cu) goto L_0887C41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C41C: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_gpr_4 = (0u | 0u); @@ -1501,8 +1792,21 @@ L_0887C440: L_0887C448: aot_gpr_31 = (0x0887C450u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 81u, 0x0887C450u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C450u) goto L_0887C450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C450: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4))); @@ -1679,8 +1983,21 @@ L_0887C580: L_0887C588: aot_gpr_31 = (0x0887C590u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 104u, 0x0887C590u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C590u) goto L_0887C590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C590: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4))); @@ -1815,8 +2132,21 @@ L_0887C684: L_0887C68C: aot_gpr_31 = (0x0887C694u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 122u, 0x0887C694u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C694u) goto L_0887C694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C694: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4))); @@ -1921,8 +2251,21 @@ L_0887C73C: L_0887C744: aot_gpr_31 = (0x0887C74Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 137u, 0x0887C74Cu, 0x08A54FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 255u, 0x08A54FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C74Cu) goto L_0887C74C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C74C: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(172), static_cast(aot_gpr_4)); @@ -1943,8 +2286,21 @@ L_0887C74C: aot_gpr_6 = (0u | 136u); aot_gpr_31 = (0x0887C798u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 138u, 0x0887C798u, 0x08A3C94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 118u, 0x08A3C94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C798u) goto L_0887C798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C798: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 7 ? 1u : 0u); @@ -2038,8 +2394,21 @@ L_0887C814: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x0887C848u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(13788)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 149u, 0x0887C848u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C848u) goto L_0887C848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C848: aot_gpr_16 = (0u | 136u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(244))); @@ -2192,8 +2561,21 @@ L_0887C954: L_0887C958: aot_gpr_31 = (0x0887C960u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 170u, 0x0887C960u, 0x08A54DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 226u, 0x08A54DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C960u) goto L_0887C960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C960: aot_gpr_31 = (0x0887C968u); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -2214,8 +2596,8 @@ L_0887C968: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887C998: @@ -2229,8 +2611,21 @@ L_0887C998: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0887C9C0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19660), static_cast(ctx.gpr[19])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 173u, 0x0887C9C0u, 0x08935484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 340u, 0x08935484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C9C0u) goto L_0887C9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C9C0: aot_gpr_31 = (0x0887C9C8u); ctx.pc = 0x08B73114u; @@ -2252,8 +2647,21 @@ L_0887C9DC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0887C9F0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 176u, 0x0887C9F0u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887C9F0u) goto L_0887C9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887C9F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -2286,8 +2694,21 @@ L_0887CA18: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(244), aot_gpr_4); aot_gpr_31 = (0x0887CA2Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 181u, 0x0887CA2Cu, 0x0886FCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 630u, 0x0886FCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CA2Cu) goto L_0887CA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CA2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2305,19 +2726,58 @@ L_0887CA40: goto L_0887CA44; L_0887CA44: aot_gpr_31 = (0x0887CA4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 185u, 0x0887CA4Cu, 0x08A54FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 255u, 0x08A54FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CA4Cu) goto L_0887CA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CA4C: aot_gpr_31 = (0x0887CA54u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 186u, 0x0887CA54u, 0x08A3C804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 99u, 0x08A3C804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CA54u) goto L_0887CA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CA54: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-7080), static_cast(ctx.gpr[19])); aot_gpr_31 = (0x0887CA60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 187u, 0x0887CA60u, 0x08ADC724u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 135u, 0x08ADC724u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CA60u) goto L_0887CA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CA60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2351,12 +2811,38 @@ L_0887CA8C: goto L_0887CA90; L_0887CA90: aot_gpr_31 = (0x0887CA98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 194u, 0x0887CA98u, 0x08A54358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 42u, 0x08A54358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CA98u) goto L_0887CA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CA98: aot_gpr_31 = (0x0887CAA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 195u, 0x0887CAA0u, 0x08AC3C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 1005u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 1005u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 1005u, 0x08AC3C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CAA0u) goto L_0887CAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CAA0: aot_gpr_31 = (0x0887CAA8u); ctx.pc = 0x08B73114u; @@ -2375,8 +2861,21 @@ L_0887CAB4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0887CAC8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 198u, 0x0887CAC8u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CAC8u) goto L_0887CAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CAC8: aot_gpr_31 = (0x0887CAD0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -2397,8 +2896,8 @@ L_0887CAE0: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[17]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23944))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CAF8: @@ -2407,8 +2906,21 @@ L_0887CAF8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CB0Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 202u, 0x0887CB0Cu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CB0Cu) goto L_0887CB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CB0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2422,8 +2934,21 @@ L_0887CB14: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CB28u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 204u, 0x0887CB28u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CB28u) goto L_0887CB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CB28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2437,8 +2962,21 @@ L_0887CB30: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CB44u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 206u, 0x0887CB44u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CB44u) goto L_0887CB44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CB44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2452,8 +2990,21 @@ L_0887CB4C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CB60u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 208u, 0x0887CB60u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CB60u) goto L_0887CB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CB60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2467,8 +3018,21 @@ L_0887CB68: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CB7Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 210u, 0x0887CB7Cu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CB7Cu) goto L_0887CB7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CB7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2482,8 +3046,21 @@ L_0887CB84: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CB98u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 212u, 0x0887CB98u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CB98u) goto L_0887CB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CB98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2497,8 +3074,21 @@ L_0887CBA0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CBB4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 214u, 0x0887CBB4u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CBB4u) goto L_0887CBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CBB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2512,8 +3102,21 @@ L_0887CBBC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CBD0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 216u, 0x0887CBD0u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CBD0u) goto L_0887CBD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CBD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2527,8 +3130,21 @@ L_0887CBD8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CBECu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 218u, 0x0887CBECu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CBECu) goto L_0887CBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CBEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2542,8 +3158,21 @@ L_0887CBF4: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CC08u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 220u, 0x0887CC08u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CC08u) goto L_0887CC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CC08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2557,8 +3186,21 @@ L_0887CC10: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0887CC24u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 222u, 0x0887CC24u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CC24u) goto L_0887CC24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CC24: aot_gpr_31 = (0x0887CC2Cu); aot_gpr_4 = (0u | 0u); @@ -2566,8 +3208,21 @@ L_0887CC24: AOT_REGCACHE_SYNC_OUT(); return; L_0887CC2C: aot_gpr_31 = (0x0887CC34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 224u, 0x0887CC34u, 0x08870784u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 110u, 0x08870784u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CC34u) goto L_0887CC34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CC34: aot_gpr_31 = (0x0887CC3Cu); aot_gpr_4 = (0u | 0u); @@ -2579,27 +3234,79 @@ L_0887CC3C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0887CC50u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 226u, 0x0887CC50u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CC50u) goto L_0887CC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CC50: ctx.gpr[17] = (ctx.gpr[28] + static_cast(7768)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887CC60u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 227u, 0x0887CC60u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CC60u) goto L_0887CC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CC60: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887CC6Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 228u, 0x0887CC6Cu, 0x08A06154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 532u, 0x08A06154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CC6Cu) goto L_0887CC6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CC6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887CC78u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 229u, 0x0887CC78u, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CC78u) goto L_0887CC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CC78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2617,16 +3324,42 @@ L_0887CC8C: goto L_0887CC90; L_0887CC90: aot_gpr_31 = (0x0887CC98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 233u, 0x0887CC98u, 0x08A53CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 730u, 0x08A53CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CC98u) goto L_0887CC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CC98: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0887CCACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 234u, 0x0887CCACu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CCACu) goto L_0887CCAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CCAC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(24), static_cast(0u)); { std::uint32_t aot_run_words[5]{}; @@ -2639,14 +3372,14 @@ L_0887CCAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CCCC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CCD4: @@ -2682,8 +3415,21 @@ L_0887CD24: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0887CD30u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 239u, 0x0887CD30u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CD30u) goto L_0887CD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CD30: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[22])); @@ -2713,15 +3459,15 @@ L_0887CD38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CD60: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-26368), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CD68: @@ -2815,8 +3561,21 @@ L_0887CDE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); aot_gpr_31 = (0x0887CE40u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 247u, 0x0887CE40u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CE40u) goto L_0887CE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CE40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2864,8 +3623,21 @@ L_0887CE48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); aot_gpr_31 = (0x0887CEB8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 249u, 0x0887CEB8u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887CEB8u) goto L_0887CEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887CEB8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -2876,8 +3648,8 @@ L_0887CEB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CED0: @@ -2933,8 +3705,8 @@ L_0887CED0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CEF8: @@ -2985,8 +3757,8 @@ L_0887CF24: L_0887CF48: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CF50: @@ -3031,8 +3803,8 @@ L_0887CF90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887CFA8: @@ -3128,8 +3900,8 @@ L_0887D010: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D024: @@ -3161,15 +3933,41 @@ L_0887D04C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x0887D07Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 268u, 0x0887D07Cu, 0x0894855Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 82u, 0x0894855Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D07Cu) goto L_0887D07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D07C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0887D08Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 269u, 0x0887D08Cu, 0x089F2404u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 394u, 0x089F2404u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D08Cu) goto L_0887D08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D08C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1920))); aot_gpr_5 = (0u | 0u); @@ -3212,8 +4010,21 @@ L_0887D0C0: L_0887D0C8: aot_gpr_31 = (0x0887D0D0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 275u, 0x0887D0D0u, 0x089F3530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 566u, 0x089F3530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D0D0u) goto L_0887D0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D0D0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887D0DCu); @@ -3241,8 +4052,8 @@ L_0887D0F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D108: @@ -3268,16 +4079,16 @@ L_0887D138: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D144: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D150: @@ -3308,8 +4119,21 @@ L_0887D17C: aot_gpr_6 = (aot_gpr_16 + static_cast(64)); aot_gpr_31 = (0x0887D190u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 286u, 0x0887D190u, 0x089F26B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 409u, 0x089F26B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D190u) goto L_0887D190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D190: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -3427,16 +4251,16 @@ L_0887D208: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D21C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D228: @@ -3473,8 +4297,21 @@ L_0887D250: aot_gpr_5 = (ctx.gpr[17] + static_cast(72)); aot_gpr_31 = (0x0887D268u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 291u, 0x0887D268u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D268u) goto L_0887D268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D268: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -3491,8 +4328,8 @@ L_0887D278: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D290: @@ -3608,8 +4445,8 @@ L_0887D328: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D334: @@ -3627,8 +4464,8 @@ L_0887D350: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D364: @@ -3772,8 +4609,8 @@ L_0887D428: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D43C: @@ -3785,8 +4622,21 @@ L_0887D43C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(404), aot_run_words); } aot_gpr_31 = (0x0887D478u); ctx.gpr[18] = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 304u, 0x0887D478u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D478u) goto L_0887D478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D478: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3797,8 +4647,21 @@ L_0887D478: L_0887D480: aot_gpr_31 = (0x0887D488u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 306u, 0x0887D488u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D488u) goto L_0887D488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D488: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3875,8 +4738,21 @@ L_0887D4EC: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x0887D508u); ctx.gpr[19] = (aot_gpr_4 | aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 316u, 0x0887D508u, 0x08A2FE10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 623u, 0x08A2FE10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D508u) goto L_0887D508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D508: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -3898,8 +4774,21 @@ L_0887D514: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x0887D540u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 318u, 0x0887D540u, 0x0894855Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 82u, 0x0894855Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D540u) goto L_0887D540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D540: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0887D54Cu); @@ -3927,8 +4816,21 @@ L_0887D560: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0887D584u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 322u, 0x0887D584u, 0x089F2404u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 394u, 0x089F2404u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D584u) goto L_0887D584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D584: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1920))); ctx.gpr[22] = (0u | 0u); @@ -3984,8 +4886,21 @@ L_0887D5E0: ctx.gpr[9] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0887D610u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 328u, 0x0887D610u, 0x08A2FC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 605u, 0x08A2FC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D610u) goto L_0887D610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D610: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4030,8 +4945,21 @@ L_0887D66C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x0887D678u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 334u, 0x0887D678u, 0x08911370u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 342u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 342u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 342u, 0x08911370u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D678u) goto L_0887D678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D678: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(112), static_cast(aot_gpr_4)); @@ -4210,8 +5138,21 @@ L_0887D78C: ctx.gpr[9] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0887D7C0u); ctx.gpr[11] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 343u, 0x0887D7C0u, 0x08A2FC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 605u, 0x08A2FC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D7C0u) goto L_0887D7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D7C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4269,8 +5210,21 @@ L_0887D830: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(336), 0u); aot_gpr_31 = (0x0887D840u); aot_gpr_5 = (aot_gpr_29 + static_cast(320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 351u, 0x0887D840u, 0x08911370u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 342u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 342u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 342u, 0x08911370u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887D840u) goto L_0887D840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887D840: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -4351,8 +5305,8 @@ L_0887D8A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(448)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887D8D4: @@ -4928,8 +5882,21 @@ L_0887DC60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0887DCB4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 378u, 0x0887DCB4u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887DCB4u) goto L_0887DCB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887DCB4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5026,8 +5993,8 @@ L_0887DD30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(512)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887DD78: @@ -5137,8 +6104,21 @@ L_0887DE6C: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0887DE7Cu); aot_gpr_6 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 400u, 0x0887DE7Cu, 0x089F264Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 407u, 0x089F264Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887DE7Cu) goto L_0887DE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887DE7C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(0u); @@ -5371,8 +6351,21 @@ L_0887DFB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0887E008u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 405u, 0x0887E008u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E008u) goto L_0887E008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E008: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5637,8 +6630,8 @@ L_0887E160: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(496)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E1A4: @@ -5657,8 +6650,21 @@ L_0887E1A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x0887E1E0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 413u, 0x0887E1E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E1E0u) goto L_0887E1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E1E0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -5684,8 +6690,21 @@ L_0887E214: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0887E220u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 417u, 0x0887E220u, 0x089EBFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 650u, 0x089EBFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E220u) goto L_0887E220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E220: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5707,8 +6726,8 @@ L_0887E234: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E258: @@ -5722,8 +6741,21 @@ L_0887E258: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0887E280u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 420u, 0x0887E280u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E280u) goto L_0887E280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E280: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -5741,8 +6773,21 @@ L_0887E294: L_0887E298: aot_gpr_31 = (0x0887E2A0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 424u, 0x0887E2A0u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E2A0u) goto L_0887E2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E2A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), aot_gpr_4); @@ -5755,8 +6800,8 @@ L_0887E2A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E2C0: @@ -5770,8 +6815,21 @@ L_0887E2C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0887E2E8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 426u, 0x0887E2E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E2E8u) goto L_0887E2E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E2E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5790,8 +6848,21 @@ L_0887E2FC: L_0887E300: aot_gpr_31 = (0x0887E308u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 430u, 0x0887E308u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E308u) goto L_0887E308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E308: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(4), aot_gpr_4); @@ -5811,8 +6882,21 @@ L_0887E324: goto L_0887E328; L_0887E328: aot_gpr_31 = (0x0887E330u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 434u, 0x0887E330u, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E330u) goto L_0887E330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E330: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5823,8 +6907,8 @@ L_0887E330: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E348: @@ -5838,8 +6922,21 @@ L_0887E348: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0887E370u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 436u, 0x0887E370u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E370u) goto L_0887E370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E370: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -5857,8 +6954,21 @@ L_0887E384: L_0887E388: aot_gpr_31 = (0x0887E390u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 440u, 0x0887E390u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E390u) goto L_0887E390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E390: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), aot_gpr_4); @@ -5871,8 +6981,8 @@ L_0887E390: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E3B0: @@ -5886,8 +6996,21 @@ L_0887E3B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0887E3D8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 442u, 0x0887E3D8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E3D8u) goto L_0887E3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E3D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -5905,8 +7028,21 @@ L_0887E3EC: L_0887E3F0: aot_gpr_31 = (0x0887E3F8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 446u, 0x0887E3F8u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E3F8u) goto L_0887E3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E3F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(12), aot_gpr_4); @@ -5919,8 +7055,8 @@ L_0887E3F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E418: @@ -5934,8 +7070,21 @@ L_0887E418: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0887E440u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 448u, 0x0887E440u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E440u) goto L_0887E440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E440: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5954,8 +7103,21 @@ L_0887E454: L_0887E458: aot_gpr_31 = (0x0887E460u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 452u, 0x0887E460u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E460u) goto L_0887E460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E460: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -5977,8 +7139,21 @@ L_0887E484: goto L_0887E488; L_0887E488: aot_gpr_31 = (0x0887E490u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 456u, 0x0887E490u, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E490u) goto L_0887E490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E490: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5989,8 +7164,8 @@ L_0887E490: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E4A8: @@ -6004,8 +7179,21 @@ L_0887E4A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0887E4D0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 458u, 0x0887E4D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E4D0u) goto L_0887E4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E4D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6024,8 +7212,21 @@ L_0887E4E4: L_0887E4E8: aot_gpr_31 = (0x0887E4F0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 462u, 0x0887E4F0u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E4F0u) goto L_0887E4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E4F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(16), aot_gpr_4); @@ -6045,8 +7246,21 @@ L_0887E50C: goto L_0887E510; L_0887E510: aot_gpr_31 = (0x0887E518u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 466u, 0x0887E518u, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E518u) goto L_0887E518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E518: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6057,8 +7271,8 @@ L_0887E518: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E530: @@ -6076,8 +7290,21 @@ L_0887E530: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0887E568u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 468u, 0x0887E568u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E568u) goto L_0887E568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E568: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6095,8 +7322,21 @@ L_0887E57C: L_0887E580: aot_gpr_31 = (0x0887E588u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 472u, 0x0887E588u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E588u) goto L_0887E588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E588: aot_gpr_4 = (ctx.gpr[2] + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6136,8 +7376,8 @@ L_0887E5BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E5DC: @@ -6153,8 +7393,21 @@ L_0887E5DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0887E60Cu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 475u, 0x0887E60Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E60Cu) goto L_0887E60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E60C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6172,8 +7425,21 @@ L_0887E620: L_0887E624: aot_gpr_31 = (0x0887E62Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 479u, 0x0887E62Cu, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E62Cu) goto L_0887E62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E62C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6194,8 +7460,8 @@ L_0887E644: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E660: @@ -6211,8 +7477,21 @@ L_0887E660: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0887E690u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 482u, 0x0887E690u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E690u) goto L_0887E690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E690: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6230,8 +7509,21 @@ L_0887E6A4: L_0887E6A8: aot_gpr_31 = (0x0887E6B0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 486u, 0x0887E6B0u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E6B0u) goto L_0887E6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E6B0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6252,8 +7544,8 @@ L_0887E6C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E6E4: @@ -6269,8 +7561,21 @@ L_0887E6E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0887E714u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 489u, 0x0887E714u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E714u) goto L_0887E714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E714: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6288,8 +7593,21 @@ L_0887E728: L_0887E72C: aot_gpr_31 = (0x0887E734u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 493u, 0x0887E734u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E734u) goto L_0887E734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E734: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6310,8 +7628,8 @@ L_0887E74C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E768: @@ -6327,8 +7645,21 @@ L_0887E768: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0887E798u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 496u, 0x0887E798u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E798u) goto L_0887E798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E798: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6346,8 +7677,21 @@ L_0887E7AC: L_0887E7B0: aot_gpr_31 = (0x0887E7B8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 500u, 0x0887E7B8u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E7B8u) goto L_0887E7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E7B8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(12))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6368,8 +7712,8 @@ L_0887E7D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E7EC: @@ -6385,8 +7729,21 @@ L_0887E7EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0887E81Cu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 503u, 0x0887E81Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E81Cu) goto L_0887E81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E81C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6404,8 +7761,21 @@ L_0887E830: L_0887E834: aot_gpr_31 = (0x0887E83Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 507u, 0x0887E83Cu, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E83Cu) goto L_0887E83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E83C: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(25))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6426,8 +7796,8 @@ L_0887E854: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E870: @@ -6443,8 +7813,21 @@ L_0887E870: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0887E8A0u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 510u, 0x0887E8A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E8A0u) goto L_0887E8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E8A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6462,8 +7845,21 @@ L_0887E8B4: L_0887E8B8: aot_gpr_31 = (0x0887E8C0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 514u, 0x0887E8C0u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E8C0u) goto L_0887E8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E8C0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(16))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6484,8 +7880,8 @@ L_0887E8D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E8F4: @@ -6501,8 +7897,21 @@ L_0887E8F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0887E924u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 517u, 0x0887E924u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E924u) goto L_0887E924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E924: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6520,8 +7929,21 @@ L_0887E938: L_0887E93C: aot_gpr_31 = (0x0887E944u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 521u, 0x0887E944u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E944u) goto L_0887E944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E944: aot_gpr_4 = (17204u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); @@ -6550,8 +7972,8 @@ L_0887E97C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887E998: @@ -6567,8 +7989,21 @@ L_0887E998: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0887E9C8u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 524u, 0x0887E9C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E9C8u) goto L_0887E9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E9C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); if (aot_gpr_4 != 0u) { @@ -6586,8 +8021,21 @@ L_0887E9DC: L_0887E9E0: aot_gpr_31 = (0x0887E9E8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 528u, 0x0887E9E8u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887E9E8u) goto L_0887E9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887E9E8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(52))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -6635,8 +8083,8 @@ L_0887EA24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887EA40: @@ -6651,8 +8099,21 @@ L_0887EA40: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x0887EA70u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 536u, 0x0887EA70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EA70u) goto L_0887EA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EA70: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_6 = (0u | 8u); @@ -6733,8 +8194,8 @@ L_0887EB04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887EB38: @@ -6754,15 +8215,28 @@ L_0887EB4C: L_0887EB54: aot_gpr_31 = (0x0887EB5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 548u, 0x0887EB5Cu, 0x0886EC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 416u, 0x0886EC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EB5Cu) goto L_0887EB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EB5C: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887EB6C: @@ -6782,15 +8256,28 @@ L_0887EB80: L_0887EB88: aot_gpr_31 = (0x0887EB90u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 552u, 0x0887EB90u, 0x0886ED34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 430u, 0x0886ED34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EB90u) goto L_0887EB90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EB90: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887EBA0: @@ -6808,8 +8295,21 @@ L_0887EBA0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), aot_gpr_31); aot_gpr_31 = (0x0887EBD8u); ctx.gpr[7] = (ctx.gpr[19] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 554u, 0x0887EBD8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EBD8u) goto L_0887EBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EBD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6827,8 +8327,21 @@ L_0887EBEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); aot_gpr_31 = (0x0887EBF8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 557u, 0x0887EBF8u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EBF8u) goto L_0887EBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EBF8: aot_gpr_4 = (ctx.gpr[2] + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6847,8 +8360,21 @@ L_0887EBF8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x0887EC10u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 558u, 0x0887EC10u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EC10u) goto L_0887EC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EC10: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -6867,8 +8393,21 @@ L_0887EC28: L_0887EC2C: aot_gpr_31 = (0x0887EC34u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 562u, 0x0887EC34u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EC34u) goto L_0887EC34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EC34: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -6922,8 +8461,21 @@ L_0887EC6C: ctx.gpr[7] = (0u | 5u); aot_gpr_31 = (0x0887EC88u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 569u, 0x0887EC88u, 0x0880E158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 456u, 0x0880E158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EC88u) goto L_0887EC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EC88: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); @@ -6942,8 +8494,21 @@ L_0887ECA0: L_0887ECA4: aot_gpr_31 = (0x0887ECACu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 573u, 0x0887ECACu, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ECACu) goto L_0887ECAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ECAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(16))); aot_gpr_5 = (0u | 5u); @@ -6971,8 +8536,21 @@ L_0887ECD4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887ECE0u); aot_gpr_6 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 578u, 0x0887ECE0u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ECE0u) goto L_0887ECE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ECE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6997,8 +8575,21 @@ L_0887ECFC: L_0887ED00: aot_gpr_31 = (0x0887ED08u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 583u, 0x0887ED08u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ED08u) goto L_0887ED08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ED08: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(25))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7025,8 +8616,21 @@ L_0887ED2C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887ED38u); aot_gpr_6 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 588u, 0x0887ED38u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ED38u) goto L_0887ED38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ED38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7052,8 +8656,21 @@ L_0887ED58: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887ED64u); aot_gpr_6 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 593u, 0x0887ED64u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887ED64u) goto L_0887ED64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887ED64: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7075,8 +8692,8 @@ L_0887ED78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887ED9C: @@ -7094,8 +8711,21 @@ L_0887ED9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), aot_gpr_31); aot_gpr_31 = (0x0887EDD4u); ctx.gpr[7] = (ctx.gpr[19] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 596u, 0x0887EDD4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EDD4u) goto L_0887EDD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EDD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7113,8 +8743,21 @@ L_0887EDE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); aot_gpr_31 = (0x0887EDF4u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 599u, 0x0887EDF4u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EDF4u) goto L_0887EDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EDF4: aot_gpr_4 = (ctx.gpr[2] + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7133,8 +8776,21 @@ L_0887EDF4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x0887EE0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 600u, 0x0887EE0Cu, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EE0Cu) goto L_0887EE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EE0C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -7153,8 +8809,21 @@ L_0887EE24: L_0887EE28: aot_gpr_31 = (0x0887EE30u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 604u, 0x0887EE30u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EE30u) goto L_0887EE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EE30: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -7208,8 +8877,21 @@ L_0887EE68: ctx.gpr[7] = (0u | 5u); aot_gpr_31 = (0x0887EE84u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 611u, 0x0887EE84u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EE84u) goto L_0887EE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EE84: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); @@ -7228,8 +8910,21 @@ L_0887EE9C: L_0887EEA0: aot_gpr_31 = (0x0887EEA8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 615u, 0x0887EEA8u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EEA8u) goto L_0887EEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EEA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(16))); aot_gpr_5 = (0u | 5u); @@ -7257,8 +8952,21 @@ L_0887EED0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887EEDCu); aot_gpr_6 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 620u, 0x0887EEDCu, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EEDCu) goto L_0887EEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EEDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7283,8 +8991,21 @@ L_0887EEF8: L_0887EEFC: aot_gpr_31 = (0x0887EF04u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 625u, 0x0887EF04u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EF04u) goto L_0887EF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EF04: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(25))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7311,8 +9032,21 @@ L_0887EF28: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887EF34u); aot_gpr_6 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 630u, 0x0887EF34u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EF34u) goto L_0887EF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EF34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7338,8 +9072,21 @@ L_0887EF54: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887EF60u); aot_gpr_6 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 635u, 0x0887EF60u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EF60u) goto L_0887EF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EF60: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7361,8 +9108,8 @@ L_0887EF74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887EF98: @@ -7374,8 +9121,21 @@ L_0887EF98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0887EFB8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 638u, 0x0887EFB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887EFB8u) goto L_0887EFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887EFB8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -7386,8 +9146,8 @@ L_0887EFB8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887EFDC: @@ -7425,8 +9185,8 @@ L_0887F014: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F024: @@ -7435,8 +9195,21 @@ L_0887F024: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0887F038u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 645u, 0x0887F038u, 0x08A696F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 258u, 0x08A696F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F038u) goto L_0887F038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F038: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (2234u << 16u); @@ -7451,8 +9224,8 @@ L_0887F038: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F06C: @@ -7475,8 +9248,21 @@ L_0887F088: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887F0A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 648u, 0x0887F0A0u, 0x08A66220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 501u, 0x08A66220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F0A0u) goto L_0887F0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F0A0: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7498,8 +9284,8 @@ L_0887F0B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F0C8: @@ -7513,8 +9299,8 @@ L_0887F0D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F0E4: @@ -7529,15 +9315,15 @@ L_0887F0F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F104: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F10C: @@ -7557,16 +9343,29 @@ L_0887F12C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_gpr_31 = (0x0887F138u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 658u, 0x0887F138u, 0x08B212B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 222u, 0x08B212B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F138u) goto L_0887F138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F138: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F14C: @@ -7624,8 +9423,21 @@ L_0887F1B8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x0887F1CCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 666u, 0x0887F1CCu, 0x08ABE3E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 485u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 485u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 485u, 0x08ABE3E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F1CCu) goto L_0887F1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F1CC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(300), static_cast(aot_gpr_4)); @@ -7633,8 +9445,8 @@ L_0887F1CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F1E4: @@ -7643,8 +9455,21 @@ L_0887F1E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0887F1F8u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 668u, 0x0887F1F8u, 0x08ABE3BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 484u, 0x08ABE3BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F1F8u) goto L_0887F1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F1F8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(300), static_cast(0u)); ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -7652,8 +9477,8 @@ L_0887F1F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F210: @@ -7668,8 +9493,21 @@ L_0887F210: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0887F23Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 670u, 0x0887F23Cu, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F23Cu) goto L_0887F23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F23C: aot_gpr_4 = (ctx.gpr[2] < aot_gpr_16 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7702,8 +9540,21 @@ L_0887F258: L_0887F260: aot_gpr_31 = (0x0887F268u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 675u, 0x0887F268u, 0x08ABF2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 685u, 0x08ABF2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F268u) goto L_0887F268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F268: aot_gpr_4 = (6u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(6784)); @@ -7718,14 +9569,40 @@ L_0887F27C: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x0887F288u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 677u, 0x0887F288u, 0x08939374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 318u, 0x08939374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F288u) goto L_0887F288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F288: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887F294u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 678u, 0x0887F294u, 0x08ABEA10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 571u, 0x08ABEA10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F294u) goto L_0887F294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F294: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7584))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7743,14 +9620,40 @@ L_0887F2A0: } L_0887F2A8: aot_gpr_31 = (0x0887F2B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 681u, 0x0887F2B0u, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F2B0u) goto L_0887F2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F2B0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887F2BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 682u, 0x0887F2BCu, 0x08ABEA10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 571u, 0x08ABEA10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F2BCu) goto L_0887F2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F2BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7584))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7763,13 +9666,39 @@ L_0887F2C8: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x0887F2D4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 684u, 0x0887F2D4u, 0x08939374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 318u, 0x08939374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F2D4u) goto L_0887F2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F2D4: aot_gpr_31 = (0x0887F2DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 685u, 0x0887F2DCu, 0x08ABEFDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 641u, 0x08ABEFDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F2DCu) goto L_0887F2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F2DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7791,8 +9720,21 @@ L_0887F2F4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0887F300u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 689u, 0x0887F300u, 0x08939374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 318u, 0x08939374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F300u) goto L_0887F300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F300: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7804,8 +9746,21 @@ L_0887F308: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0887F314u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 691u, 0x0887F314u, 0x08939374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 318u, 0x08939374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F314u) goto L_0887F314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F314: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7823,14 +9778,40 @@ L_0887F31C: L_0887F324: aot_gpr_31 = (0x0887F32Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 694u, 0x0887F32Cu, 0x08ABF048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 650u, 0x08ABF048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F32Cu) goto L_0887F32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F32C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887F338u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 695u, 0x0887F338u, 0x08ABEA10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 571u, 0x08ABEA10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F338u) goto L_0887F338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F338: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7584))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7843,8 +9824,21 @@ L_0887F344: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0887F350u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 697u, 0x0887F350u, 0x08939374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 318u, 0x08939374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F350u) goto L_0887F350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F350: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7855,8 +9849,8 @@ L_0887F350: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F368: @@ -7875,8 +9869,8 @@ L_0887F388: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F39C: @@ -7886,14 +9880,27 @@ L_0887F39C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0887F3B4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-3224)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 701u, 0x0887F3B4u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F3B4u) goto L_0887F3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F3B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F3C0: @@ -7911,8 +9918,8 @@ L_0887F3DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F3F0: @@ -7922,14 +9929,27 @@ L_0887F3F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0887F408u); aot_gpr_5 = (aot_gpr_5 + static_cast(-3136)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 705u, 0x0887F408u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F408u) goto L_0887F408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F408: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F414: @@ -8017,8 +10037,8 @@ L_0887F4BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F4DC: @@ -8104,8 +10124,8 @@ L_0887F57C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F59C: @@ -8115,14 +10135,27 @@ L_0887F59C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0887F5B4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-3052)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 725u, 0x0887F5B4u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F5B4u) goto L_0887F5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F5B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F5C0: @@ -8132,14 +10165,27 @@ L_0887F5C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0887F5D8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-2852)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 727u, 0x0887F5D8u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F5D8u) goto L_0887F5D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F5D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F5E4: @@ -8226,8 +10272,8 @@ L_0887F6A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F6B4: @@ -8334,14 +10380,14 @@ L_0887F7D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F7E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F7F0: @@ -8350,8 +10396,8 @@ L_0887F7F0: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887F804: @@ -8506,8 +10552,21 @@ L_0887F9AC: aot_gpr_5 = (aot_gpr_29 + static_cast(56)); aot_gpr_31 = (0x0887F9C4u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 759u, 0x0887F9C4u, 0x08ABEEBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 626u, 0x08ABEEBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887F9C4u) goto L_0887F9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887F9C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -8601,8 +10660,21 @@ L_0887FA78: aot_gpr_4 = (ctx.gpr[19] << 2u); aot_gpr_31 = (0x0887FA84u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(196), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 770u, 0x0887FA84u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887FA84u) goto L_0887FA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887FA84: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -8641,8 +10713,21 @@ L_0887FAB0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0887FAC0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 776u, 0x0887FAC0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887FAC0u) goto L_0887FAC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887FAC0: aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[21]); goto L_0887FAC4; @@ -8689,8 +10774,21 @@ L_0887FAFC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0887FB0Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 783u, 0x0887FB0Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887FB0Cu) goto L_0887FB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887FB0C: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] + ctx.gpr[21]); @@ -8724,8 +10822,21 @@ L_0887FB3C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_31 = (0x0887FB4Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 788u, 0x0887FB4Cu, 0x08ABEEBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 626u, 0x08ABEEBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887FB4Cu) goto L_0887FB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887FB4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), 0u); @@ -9156,8 +11267,21 @@ L_0887FE6C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0887FE80u); aot_gpr_5 = (aot_gpr_5 + static_cast(-3828)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0030->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0030_entry, 837u, 0x0887FE80u, 0x08A65998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 352u, 0x08A65998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0887FE80u) goto L_0887FE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0887FE80: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(12)); @@ -9202,8 +11326,8 @@ L_0887FEB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887FED4: @@ -9267,8 +11391,8 @@ L_0887FF74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887FF8C: @@ -9287,8 +11411,8 @@ L_0887FF8C: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_14)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0887FFC8: diff --git a/profiles/vcs/generated/generated_unit_0031.cpp b/profiles/vcs/generated/generated_unit_0031.cpp index 9aa26c2..5523382 100644 --- a/profiles/vcs/generated/generated_unit_0031.cpp +++ b/profiles/vcs/generated/generated_unit_0031.cpp @@ -849,6 +849,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08880000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -874,8 +898,21 @@ L_08880000: aot_gpr_16 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0888002Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 2u, 0x0888002Cu, 0x0887FF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 848u, 0x0887FF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888002Cu) goto L_0888002C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888002C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -885,14 +922,40 @@ L_0888002C: } aot_gpr_31 = (0x08880040u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 3u, 0x08880040u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880040u) goto L_08880040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880040: aot_gpr_4 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x0888004Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 4u, 0x0888004Cu, 0x0887FF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 848u, 0x0887FF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888004Cu) goto L_0888004C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888004C: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -911,8 +974,21 @@ L_0888004C: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x08880064u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 5u, 0x08880064u, 0x0887FF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 848u, 0x0887FF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880064u) goto L_08880064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880064: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -930,8 +1006,21 @@ L_08880064: aot_gpr_4 = (ctx.gpr[17] + static_cast(28)); aot_gpr_31 = (0x08880078u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 6u, 0x08880078u, 0x0887FF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 848u, 0x0887FF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880078u) goto L_08880078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880078: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -950,8 +1039,21 @@ L_08880078: aot_gpr_4 = (ctx.gpr[17] + static_cast(52)); aot_gpr_31 = (0x08880090u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 7u, 0x08880090u, 0x0887FF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 848u, 0x0887FF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880090u) goto L_08880090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880090: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -984,8 +1086,21 @@ L_08880090: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088800E0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 8u, 0x088800E0u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088800E0u) goto L_088800E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088800E0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1006,8 +1121,21 @@ L_088800F8: aot_gpr_6 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x08880108u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 11u, 0x08880108u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880108u) goto L_08880108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880108: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(176))); @@ -1034,8 +1162,21 @@ L_08880130: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08880148u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 15u, 0x08880148u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880148u) goto L_08880148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880148: ctx.gpr[18] = (ctx.gpr[2] | 0u); if (ctx.gpr[18] == 0u) { @@ -1201,8 +1342,21 @@ L_08880228: L_08880234: aot_gpr_31 = (0x0888023Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 24u, 0x0888023Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888023Cu) goto L_0888023C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888023C: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(232), aot_run_words); @@ -1220,8 +1374,8 @@ L_0888023C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08880270: @@ -1230,8 +1384,8 @@ L_08880270: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08880298: @@ -1245,8 +1399,8 @@ L_08880298: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088802BC: @@ -1260,8 +1414,8 @@ L_088802BC: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088802E0: @@ -1289,8 +1443,8 @@ L_088802F8: } L_08880320: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08880328: @@ -1301,8 +1455,8 @@ L_08880328: aot_gpr_4 = (aot_gpr_4 + static_cast(-25008)); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08880344: @@ -1731,8 +1885,21 @@ L_088805B4: L_088805C0: aot_gpr_31 = (0x088805C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 46u, 0x088805C8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088805C8u) goto L_088805C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088805C8: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[7]{}; @@ -1747,8 +1914,8 @@ L_088805C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088805F0: @@ -1775,8 +1942,8 @@ L_08880630: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08880644: @@ -1799,8 +1966,21 @@ L_08880658: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0888067Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 51u, 0x0888067Cu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888067Cu) goto L_0888067C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888067C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1826,8 +2006,21 @@ L_08880690: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088806B4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 54u, 0x088806B4u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088806B4u) goto L_088806B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088806B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1853,14 +2046,27 @@ L_088806C8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088806ECu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 57u, 0x088806ECu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088806ECu) goto L_088806EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088806EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088806F8: @@ -1941,8 +2147,8 @@ L_08880784: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088807A8: @@ -1994,8 +2200,8 @@ L_08880804: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888081C: @@ -2058,8 +2264,8 @@ L_0888088C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888089C: @@ -2136,8 +2342,8 @@ L_0888091C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08880938: @@ -2237,8 +2443,8 @@ L_088809EC: L_088809F0: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088809F8: @@ -2281,8 +2487,8 @@ L_08880A90: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23840))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08880AAC: @@ -2366,8 +2572,21 @@ L_08880B48: L_08880B4C: aot_gpr_31 = (0x08880B54u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 113u, 0x08880B54u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880B54u) goto L_08880B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880B54: aot_fpr_28 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08880B58; @@ -2422,8 +2641,21 @@ L_08880BAC: L_08880BB0: aot_gpr_31 = (0x08880BB8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 121u, 0x08880BB8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880BB8u) goto L_08880BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880BB8: aot_fpr_28 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08880BBC; @@ -2444,14 +2676,40 @@ L_08880BC8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08880BE0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 125u, 0x08880BE0u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880BE0u) goto L_08880BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880BE0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08880BECu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 126u, 0x08880BECu, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880BECu) goto L_08880BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880BEC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); @@ -2461,8 +2719,21 @@ L_08880BEC: } aot_gpr_31 = (0x08880C00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 127u, 0x08880C00u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880C00u) goto L_08880C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880C00: aot_gpr_31 = (0x08880C08u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); @@ -2589,8 +2860,21 @@ L_08880D00: L_08880D04: aot_gpr_31 = (0x08880D0Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 140u, 0x08880D0Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880D0Cu) goto L_08880D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880D0C: aot_fpr_28 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08880D10; @@ -2645,8 +2929,21 @@ L_08880D64: L_08880D68: aot_gpr_31 = (0x08880D70u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 148u, 0x08880D70u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880D70u) goto L_08880D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880D70: aot_fpr_28 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08880D74; @@ -2667,14 +2964,40 @@ L_08880D80: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08880D98u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 152u, 0x08880D98u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880D98u) goto L_08880D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880D98: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08880DA4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 153u, 0x08880DA4u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880DA4u) goto L_08880DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880DA4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); @@ -2684,8 +3007,21 @@ L_08880DA4: } aot_gpr_31 = (0x08880DB8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 154u, 0x08880DB8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880DB8u) goto L_08880DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880DB8: aot_gpr_31 = (0x08880DC0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); @@ -2811,8 +3147,21 @@ L_08880EB0: L_08880EB4: aot_gpr_31 = (0x08880EBCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 167u, 0x08880EBCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880EBCu) goto L_08880EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880EBC: aot_fpr_28 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08880EC0; @@ -2867,8 +3216,21 @@ L_08880F14: L_08880F18: aot_gpr_31 = (0x08880F20u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 175u, 0x08880F20u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880F20u) goto L_08880F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880F20: aot_fpr_28 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08880F24; @@ -2925,8 +3287,21 @@ L_08880F80: L_08880F84: aot_gpr_31 = (0x08880F8Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 183u, 0x08880F8Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880F8Cu) goto L_08880F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880F8C: aot_fpr_28 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08880F90; @@ -2947,14 +3322,40 @@ L_08880F9C: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08880FB4u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 187u, 0x08880FB4u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880FB4u) goto L_08880FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880FB4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08880FC0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 188u, 0x08880FC0u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880FC0u) goto L_08880FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880FC0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); @@ -2964,8 +3365,21 @@ L_08880FC0: } aot_gpr_31 = (0x08880FD4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 189u, 0x08880FD4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08880FD4u) goto L_08880FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08880FD4: aot_gpr_4 = (0u | 15u); { const bool branch_taken = ctx.gpr[21] != aot_gpr_4; @@ -3118,8 +3532,21 @@ L_0888110C: L_08881110: aot_gpr_31 = (0x08881118u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 204u, 0x08881118u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881118u) goto L_08881118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881118: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0888111C; @@ -3140,14 +3567,40 @@ L_08881128: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08881140u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 208u, 0x08881140u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881140u) goto L_08881140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881140: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0888114Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 209u, 0x0888114Cu, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888114Cu) goto L_0888114C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888114C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); @@ -3157,8 +3610,21 @@ L_0888114C: } aot_gpr_31 = (0x08881160u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 210u, 0x08881160u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881160u) goto L_08881160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881160: aot_gpr_31 = (0x08881168u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -3253,8 +3719,21 @@ L_08881220: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0888122Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 219u, 0x0888122Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888122Cu) goto L_0888122C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888122C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_12)); @@ -3508,8 +3987,21 @@ L_088813FC: L_08881410: aot_gpr_31 = (0x08881418u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 231u, 0x08881418u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881418u) goto L_08881418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881418: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3521,8 +4013,21 @@ L_08881420: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0888142Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 233u, 0x0888142Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888142Cu) goto L_0888142C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888142C: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3545,8 +4050,21 @@ L_0888142C: ctx.fpr[30] = std::bit_cast(0u); aot_gpr_31 = (0x08881454u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 234u, 0x08881454u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881454u) goto L_08881454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881454: aot_fpr_28 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -3589,8 +4107,21 @@ L_088814B0: } L_088814B8: aot_gpr_31 = (0x088814C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 238u, 0x088814C0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088814C0u) goto L_088814C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088814C0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088814C4; @@ -3604,16 +4135,42 @@ L_088814C4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x088814E8u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 240u, 0x088814E8u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088814E8u) goto L_088814E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088814E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_28)); aot_gpr_31 = (0x088814FCu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 241u, 0x088814FCu, 0x088600C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 5u, 0x088600C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088814FCu) goto L_088814FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088814FC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); @@ -3623,8 +4180,21 @@ L_088814FC: } aot_gpr_31 = (0x08881510u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 242u, 0x08881510u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881510u) goto L_08881510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881510: { const bool branch_taken = 0u == 0u; ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(432))); @@ -3637,8 +4207,21 @@ L_08881518: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08881524u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 244u, 0x08881524u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881524u) goto L_08881524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881524: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3652,14 +4235,40 @@ L_0888152C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08881540u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 246u, 0x08881540u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881540u) goto L_08881540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881540: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0888154Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 247u, 0x0888154Cu, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888154Cu) goto L_0888154C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888154C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); @@ -3669,8 +4278,21 @@ L_0888154C: } aot_gpr_31 = (0x08881560u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 248u, 0x08881560u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881560u) goto L_08881560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881560: aot_fpr_12 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(ctx.fpr[24]), std::bit_cast(aot_fpr_12)}; @@ -3899,8 +4521,21 @@ L_08881780: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08881798u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 254u, 0x08881798u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881798u) goto L_08881798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881798: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(100))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); @@ -3941,8 +4576,21 @@ L_088817E4: L_088817F0: aot_gpr_31 = (0x088817F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 259u, 0x088817F8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088817F8u) goto L_088817F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088817F8: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[13]{}; @@ -3963,8 +4611,8 @@ L_088817F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(496)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08881838: @@ -4041,8 +4689,8 @@ L_088818F4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23808))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888190C: @@ -4057,8 +4705,21 @@ L_08881914: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08881920u); aot_gpr_4 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 269u, 0x08881920u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881920u) goto L_08881920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881920: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4073,8 +4734,21 @@ L_0888192C: aot_gpr_5 = (0u | 343u); aot_gpr_31 = (0x0888193Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 271u, 0x0888193Cu, 0x08971AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 318u, 0x08971AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888193Cu) goto L_0888193C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888193C: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_4 = (ctx.gpr[18] << 2u); @@ -4094,8 +4768,21 @@ L_0888195C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08881968u); aot_gpr_4 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 274u, 0x08881968u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881968u) goto L_08881968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881968: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4110,8 +4797,21 @@ L_08881974: aot_gpr_5 = (0u | 342u); aot_gpr_31 = (0x08881984u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 276u, 0x08881984u, 0x08971AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 318u, 0x08971AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881984u) goto L_08881984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881984: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_4 = (ctx.gpr[18] << 2u); @@ -4135,8 +4835,21 @@ L_088819B4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088819C0u); aot_gpr_4 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 279u, 0x088819C0u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088819C0u) goto L_088819C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088819C0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4152,8 +4865,21 @@ L_088819CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088819E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 281u, 0x088819E0u, 0x08971AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 318u, 0x08971AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088819E0u) goto L_088819E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088819E0: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_4 = (ctx.gpr[18] << 2u); @@ -4205,8 +4931,21 @@ L_08881A80: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08881A8Cu); aot_gpr_4 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 284u, 0x08881A8Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881A8Cu) goto L_08881A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881A8C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4222,8 +4961,21 @@ L_08881A98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08881AACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 286u, 0x08881AACu, 0x08971AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 318u, 0x08971AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881AACu) goto L_08881AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881AAC: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_4 = (ctx.gpr[18] << 2u); @@ -4288,8 +5040,21 @@ L_08881B80: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08881B8Cu); aot_gpr_4 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 289u, 0x08881B8Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881B8Cu) goto L_08881B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881B8C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4304,8 +5069,21 @@ L_08881B98: aot_gpr_5 = (0u | 344u); aot_gpr_31 = (0x08881BA8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 291u, 0x08881BA8u, 0x08971AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 318u, 0x08971AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881BA8u) goto L_08881BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881BA8: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_4 = (ctx.gpr[18] << 2u); @@ -4325,8 +5103,21 @@ L_08881BC8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08881BD4u); aot_gpr_4 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 294u, 0x08881BD4u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881BD4u) goto L_08881BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881BD4: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4341,8 +5132,21 @@ L_08881BE0: aot_gpr_5 = (0u | 345u); aot_gpr_31 = (0x08881BF0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 296u, 0x08881BF0u, 0x08971AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 318u, 0x08971AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881BF0u) goto L_08881BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881BF0: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_4 = (ctx.gpr[18] << 2u); @@ -4431,14 +5235,40 @@ L_08881CA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08881CC4u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 305u, 0x08881CC4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881CC4u) goto L_08881CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881CC4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08881CD0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 306u, 0x08881CD0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881CD0u) goto L_08881CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881CD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(236))); @@ -4476,8 +5306,21 @@ L_08881CD0: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(482), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08881D60u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 307u, 0x08881D60u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881D60u) goto L_08881D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881D60: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); @@ -4551,8 +5394,8 @@ L_08881DC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08881DFC: @@ -4621,8 +5464,8 @@ L_08881E74: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23776))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08881E8C: @@ -4635,8 +5478,21 @@ L_08881E8C: ctx.gpr[9] = (0u | 1u); aot_gpr_31 = (0x08881EB0u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 321u, 0x08881EB0u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881EB0u) goto L_08881EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881EB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4654,8 +5510,21 @@ L_08881EB8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08881EDCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 323u, 0x08881EDCu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881EDCu) goto L_08881EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881EDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4700,8 +5569,21 @@ L_08881F10: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08881F34u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 328u, 0x08881F34u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881F34u) goto L_08881F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881F34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4725,8 +5607,21 @@ L_08881F44: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08881F64u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 331u, 0x08881F64u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881F64u) goto L_08881F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881F64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4744,8 +5639,21 @@ L_08881F6C: ctx.gpr[9] = (0u | 1u); aot_gpr_31 = (0x08881F90u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 333u, 0x08881F90u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881F90u) goto L_08881F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881F90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4757,8 +5665,21 @@ L_08881F98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08881FA4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 335u, 0x08881FA4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08881FA4u) goto L_08881FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08881FA4: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -4783,8 +5704,8 @@ L_08881FC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08881FD8: @@ -4854,8 +5775,21 @@ L_088820AC: L_088820C8: aot_gpr_31 = (0x088820D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 343u, 0x088820D0u, 0x08906858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 561u, 0x08906858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088820D0u) goto L_088820D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088820D0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5094,8 +6028,21 @@ L_08882274: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088822C4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 363u, 0x088822C4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088822C4u) goto L_088822C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088822C4: aot_gpr_4 = (48716u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -5113,8 +6060,21 @@ L_088822C4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08882308u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 364u, 0x08882308u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882308u) goto L_08882308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882308: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[22])}; @@ -5129,8 +6089,21 @@ L_08882308: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08882340u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 365u, 0x08882340u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882340u) goto L_08882340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882340: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 & 512u); @@ -5152,8 +6125,21 @@ L_08882350: aot_gpr_5 = (16576u << 16u); aot_gpr_31 = (0x0888236Cu); ctx.fpr[15] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 367u, 0x0888236Cu, 0x088939E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 600u, 0x088939E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888236Cu) goto L_0888236C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888236C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); ctx.gpr[19] = (0u | 18u); @@ -5179,8 +6165,21 @@ L_0888237C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088823BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 369u, 0x088823BCu, 0x088FEEE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 710u, 0x088FEEE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088823BCu) goto L_088823BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088823BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -5246,8 +6245,21 @@ L_08882428: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882438u); aot_gpr_5 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 377u, 0x08882438u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882438u) goto L_08882438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882438: aot_gpr_4 = (ctx.gpr[2] << 5u); aot_gpr_5 = (ctx.gpr[2] << 2u); @@ -5266,8 +6278,21 @@ L_08882438: L_0888245C: aot_gpr_31 = (0x08882464u); aot_gpr_5 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 379u, 0x08882464u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882464u) goto L_08882464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882464: aot_gpr_4 = (ctx.gpr[2] << 5u); aot_gpr_5 = (ctx.gpr[2] << 2u); @@ -5350,8 +6375,21 @@ L_088824DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08882504u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 387u, 0x08882504u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882504u) goto L_08882504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882504: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -5363,8 +6401,21 @@ L_08882504: L_0888250C: aot_gpr_31 = (0x08882514u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 389u, 0x08882514u, 0x089EE2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 323u, 0x089EE2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882514u) goto L_08882514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882514: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5375,8 +6426,21 @@ L_08882514: L_0888251C: aot_gpr_31 = (0x08882524u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 391u, 0x08882524u, 0x089FD9F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 395u, 0x089FD9F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882524u) goto L_08882524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882524: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5412,8 +6476,21 @@ L_0888253C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08882564u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 394u, 0x08882564u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882564u) goto L_08882564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882564: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5520,8 +6597,21 @@ L_088825E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0888260Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 400u, 0x0888260Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888260Cu) goto L_0888260C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888260C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5780,8 +6870,21 @@ L_088827B8: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x088827D0u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 431u, 0x088827D0u, 0x08AD1028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 213u, 0x08AD1028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088827D0u) goto L_088827D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088827D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5882,8 +6985,21 @@ L_08882864: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0888287Cu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 444u, 0x0888287Cu, 0x08AD1028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 213u, 0x08AD1028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888287Cu) goto L_0888287C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888287C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5972,8 +7088,8 @@ L_088828E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08882930: @@ -5992,8 +7108,21 @@ L_08882948: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(676), 0u); aot_gpr_31 = (0x08882954u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 454u, 0x08882954u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882954u) goto L_08882954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882954: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6005,8 +7134,21 @@ L_0888295C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882968u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 456u, 0x08882968u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882968u) goto L_08882968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882968: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2276))); aot_gpr_5 = (0u | 2u); @@ -6019,8 +7161,21 @@ L_08882968: L_08882978: aot_gpr_31 = (0x08882980u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 458u, 0x08882980u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882980u) goto L_08882980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882980: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6050,8 +7205,21 @@ L_088829A4: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x088829C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 462u, 0x088829C8u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088829C8u) goto L_088829C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088829C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6077,8 +7245,8 @@ L_088829E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088829F8: @@ -6103,8 +7271,21 @@ L_088829F8: L_08882A30: aot_gpr_31 = (0x08882A38u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 468u, 0x08882A38u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882A38u) goto L_08882A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882A38: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(48)); @@ -6240,14 +7421,40 @@ L_08882AD4: L_08882AD8: aot_gpr_31 = (0x08882AE0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 475u, 0x08882AE0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882AE0u) goto L_08882AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882AE0: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08882AECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 476u, 0x08882AECu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882AECu) goto L_08882AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882AEC: { const bool branch_taken = ctx.gpr[18] == ctx.gpr[2]; if (branch_taken) { @@ -6372,8 +7579,21 @@ L_08882B94: L_08882BA8: aot_gpr_31 = (0x08882BB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 491u, 0x08882BB0u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882BB0u) goto L_08882BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882BB0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6395,14 +7615,40 @@ L_08882BC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882BD8u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 494u, 0x08882BD8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882BD8u) goto L_08882BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882BD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882BE4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 495u, 0x08882BE4u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882BE4u) goto L_08882BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882BE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6414,13 +7660,39 @@ L_08882BEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882BF8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 497u, 0x08882BF8u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882BF8u) goto L_08882BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882BF8: aot_gpr_31 = (0x08882C00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 498u, 0x08882C00u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882C00u) goto L_08882C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882C00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882C0Cu); @@ -6454,8 +7726,21 @@ L_08882C24: L_08882C38: aot_gpr_31 = (0x08882C40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 503u, 0x08882C40u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882C40u) goto L_08882C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882C40: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6475,8 +7760,21 @@ L_08882C48: L_08882C58: aot_gpr_31 = (0x08882C60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 506u, 0x08882C60u, 0x08A0C7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 86u, 0x08A0C7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882C60u) goto L_08882C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882C60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); aot_gpr_5 = (0u | 58u); @@ -6491,8 +7789,21 @@ L_08882C60: L_08882C78: aot_gpr_31 = (0x08882C80u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 508u, 0x08882C80u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882C80u) goto L_08882C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882C80: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6511,14 +7822,40 @@ L_08882C90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882C9Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 511u, 0x08882C9Cu, 0x0890DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 475u, 0x0890DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882C9Cu) goto L_08882C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882C9C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882CA8u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 512u, 0x08882CA8u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882CA8u) goto L_08882CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882CA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6539,8 +7876,21 @@ L_08882CB0: L_08882CC4: aot_gpr_31 = (0x08882CCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 515u, 0x08882CCCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882CCCu) goto L_08882CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882CCC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6570,8 +7920,21 @@ L_08882CF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882D00u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 519u, 0x08882D00u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882D00u) goto L_08882D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882D00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6591,13 +7954,39 @@ L_08882D08: L_08882D18: aot_gpr_31 = (0x08882D20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 522u, 0x08882D20u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882D20u) goto L_08882D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882D20: aot_gpr_31 = (0x08882D28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 523u, 0x08882D28u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882D28u) goto L_08882D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882D28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); aot_gpr_5 = (0u | 20u); @@ -6619,8 +8008,21 @@ L_08882D38: L_08882D48: aot_gpr_31 = (0x08882D50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 526u, 0x08882D50u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882D50u) goto L_08882D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882D50: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6639,8 +8041,21 @@ L_08882D60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882D6Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 529u, 0x08882D6Cu, 0x0890DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 475u, 0x0890DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882D6Cu) goto L_08882D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882D6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6651,8 +8066,21 @@ L_08882D6C: L_08882D74: aot_gpr_31 = (0x08882D7Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 531u, 0x08882D7Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882D7Cu) goto L_08882D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882D7C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6693,8 +8121,21 @@ L_08882DBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); aot_gpr_31 = (0x08882DC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 536u, 0x08882DC8u, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882DC8u) goto L_08882DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882DC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); @@ -6712,8 +8153,21 @@ L_08882DE0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1152))); aot_gpr_31 = (0x08882DF4u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 538u, 0x08882DF4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882DF4u) goto L_08882DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882DF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6817,14 +8271,40 @@ L_08882EA4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1716))); aot_gpr_31 = (0x08882EB8u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 550u, 0x08882EB8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882EB8u) goto L_08882EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882EB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882EC4u); aot_gpr_5 = (0u | 8000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 551u, 0x08882EC4u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882EC4u) goto L_08882EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882EC4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6833,14 +8313,40 @@ L_08882EC4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08882EE0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 552u, 0x08882EE0u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882EE0u) goto L_08882EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882EE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08882EECu); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 553u, 0x08882EECu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882EECu) goto L_08882EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882EEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6852,8 +8358,21 @@ L_08882EF4: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08882F00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 555u, 0x08882F00u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08882F00u) goto L_08882F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08882F00: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[18] = (0u | 1u); @@ -7013,8 +8532,21 @@ L_08883018: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883024u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 573u, 0x08883024u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883024u) goto L_08883024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883024: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7027,14 +8559,40 @@ L_0888302C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888303Cu); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 575u, 0x0888303Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888303Cu) goto L_0888303C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888303C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883048u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 576u, 0x08883048u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883048u) goto L_08883048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883048: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -7067,8 +8625,21 @@ L_08883064: L_08883074: aot_gpr_31 = (0x0888307Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 581u, 0x0888307Cu, 0x0891826Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 31u, 0x0891826Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888307Cu) goto L_0888307C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888307C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7163,8 +8734,21 @@ L_08883114: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883120u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 593u, 0x08883120u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883120u) goto L_08883120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883120: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7181,8 +8765,21 @@ L_08883130: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888313Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 596u, 0x0888313Cu, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888313Cu) goto L_0888313C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888313C: aot_gpr_31 = (0x08883144u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7217,8 +8814,21 @@ L_0888315C: L_08883168: aot_gpr_31 = (0x08883170u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 602u, 0x08883170u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883170u) goto L_08883170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883170: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1744))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -7237,8 +8847,21 @@ L_08883184: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x088831A0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 604u, 0x088831A0u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088831A0u) goto L_088831A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088831A0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7273,8 +8896,21 @@ L_088831D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088831E4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 609u, 0x088831E4u, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088831E4u) goto L_088831E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088831E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7309,8 +8945,8 @@ L_08883218: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23744))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883230: @@ -7318,8 +8954,21 @@ L_08883230: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883240u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 614u, 0x08883240u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883240u) goto L_08883240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883240: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7345,8 +8994,21 @@ L_08883258: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883278u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 617u, 0x08883278u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883278u) goto L_08883278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883278: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1156))); @@ -7424,14 +9086,40 @@ L_088832F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883304u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1156))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 621u, 0x08883304u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883304u) goto L_08883304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883304: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883310u); aot_gpr_5 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 622u, 0x08883310u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883310u) goto L_08883310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883310: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7444,8 +9132,21 @@ L_08883318: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883328u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(2196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 624u, 0x08883328u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883328u) goto L_08883328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883328: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1756))); @@ -7483,8 +9184,21 @@ L_08883340: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08883360u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 627u, 0x08883360u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883360u) goto L_08883360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883360: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1756))); @@ -7510,8 +9224,21 @@ L_08883384: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(2192))); aot_gpr_31 = (0x08883398u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(2196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 630u, 0x08883398u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883398u) goto L_08883398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883398: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1756))); @@ -7529,14 +9256,40 @@ L_088833AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088833BCu); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 633u, 0x088833BCu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088833BCu) goto L_088833BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088833BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088833C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 634u, 0x088833C8u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088833C8u) goto L_088833C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088833C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7547,8 +9300,21 @@ L_088833C8: L_088833D0: aot_gpr_31 = (0x088833D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 636u, 0x088833D8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088833D8u) goto L_088833D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088833D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7559,8 +9325,21 @@ L_088833D8: L_088833E0: aot_gpr_31 = (0x088833E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 638u, 0x088833E8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088833E8u) goto L_088833E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088833E8: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); @@ -7683,8 +9462,21 @@ L_0888349C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088834E8u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 652u, 0x088834E8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088834E8u) goto L_088834E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088834E8: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(140), aot_run_words); @@ -7698,8 +9490,8 @@ L_088834E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888350C: @@ -7713,8 +9505,21 @@ L_0888350C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08883534u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 654u, 0x08883534u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883534u) goto L_08883534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883534: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -7733,8 +9538,21 @@ L_08883534: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08883570u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 655u, 0x08883570u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883570u) goto L_08883570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883570: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7745,8 +9563,8 @@ L_08883570: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883588: @@ -7760,8 +9578,21 @@ L_08883588: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088835B0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 657u, 0x088835B0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088835B0u) goto L_088835B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088835B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x088835BCu); @@ -7780,8 +9611,21 @@ L_088835BC: L_088835C8: aot_gpr_31 = (0x088835D0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 660u, 0x088835D0u, 0x08832988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 604u, 0x08832988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088835D0u) goto L_088835D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088835D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7792,8 +9636,21 @@ L_088835D0: L_088835D8: aot_gpr_31 = (0x088835E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 662u, 0x088835E0u, 0x08832988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 604u, 0x08832988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088835E0u) goto L_088835E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088835E0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7804,8 +9661,8 @@ L_088835E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088835F8: @@ -7825,8 +9682,21 @@ L_088835F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x08883638u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 664u, 0x08883638u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883638u) goto L_08883638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883638: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); @@ -7854,8 +9724,21 @@ L_08883670: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0888367Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 667u, 0x0888367Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888367Cu) goto L_0888367C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888367C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08883680; @@ -7872,8 +9755,21 @@ L_08883680: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088836B0u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 669u, 0x088836B0u, 0x089CFFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 717u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 717u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 717u, 0x089CFFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088836B0u) goto L_088836B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088836B0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7896,8 +9792,8 @@ L_088836C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088836EC: @@ -7911,8 +9807,21 @@ L_088836EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08883714u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 672u, 0x08883714u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883714u) goto L_08883714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883714: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (aot_gpr_4 << 16u); @@ -7921,8 +9830,21 @@ L_08883714: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); aot_gpr_31 = (0x08883730u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 673u, 0x08883730u, 0x089D0344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 38u, 0x089D0344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883730u) goto L_08883730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883730: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8003,8 +9925,8 @@ L_088837B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088837C8: @@ -8016,8 +9938,21 @@ L_088837C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088837E8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 683u, 0x088837E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088837E8u) goto L_088837E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088837E8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (2238u << 16u); @@ -8025,16 +9960,29 @@ L_088837E8: aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); aot_gpr_31 = (0x08883800u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 684u, 0x08883800u, 0x089D0360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 39u, 0x089D0360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883800u) goto L_08883800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883800: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883814: @@ -8043,15 +9991,28 @@ L_08883814: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08883828u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 686u, 0x08883828u, 0x089D0398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 41u, 0x089D0398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883828u) goto L_08883828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883828: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883838: @@ -8065,8 +10026,21 @@ L_08883838: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08883868u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 688u, 0x08883868u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883868u) goto L_08883868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883868: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08883874u); @@ -8106,8 +10080,21 @@ L_08883890: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088838B4u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 691u, 0x088838B4u, 0x089CFFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 717u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 717u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 717u, 0x089CFFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088838B4u) goto L_088838B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088838B4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -8138,8 +10125,8 @@ L_088838D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088838F0: @@ -8153,8 +10140,21 @@ L_088838F0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08883920u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 696u, 0x08883920u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883920u) goto L_08883920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883920: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x0888392Cu); @@ -8194,8 +10194,21 @@ L_08883948: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x0888396Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 699u, 0x0888396Cu, 0x089CFFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 717u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 717u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 717u, 0x089CFFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888396Cu) goto L_0888396C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888396C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -8226,8 +10239,8 @@ L_0888398C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088839A8: @@ -8243,8 +10256,21 @@ L_088839A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088839D8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 704u, 0x088839D8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088839D8u) goto L_088839D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088839D8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[18] + static_cast(4), aot_run_words); @@ -8304,8 +10330,21 @@ L_08883A40: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[19])); aot_gpr_31 = (0x08883A68u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 711u, 0x08883A68u, 0x089E9438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 248u, 0x089E9438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883A68u) goto L_08883A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883A68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8387,8 +10426,8 @@ L_08883AE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883B04: @@ -8400,8 +10439,21 @@ L_08883B04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08883B24u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 721u, 0x08883B24u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883B24u) goto L_08883B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883B24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8413,8 +10465,21 @@ L_08883B24: L_08883B30: aot_gpr_31 = (0x08883B38u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 723u, 0x08883B38u, 0x08A90840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 64u, 0x08A90840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883B38u) goto L_08883B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883B38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8425,16 +10490,29 @@ L_08883B38: L_08883B40: aot_gpr_31 = (0x08883B48u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 725u, 0x08883B48u, 0x08A90840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 64u, 0x08A90840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883B48u) goto L_08883B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883B48: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883B5C: @@ -8446,36 +10524,75 @@ L_08883B5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08883B7Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 727u, 0x08883B7Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883B7Cu) goto L_08883B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883B7C: aot_gpr_31 = (0x08883B84u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 728u, 0x08883B84u, 0x0897F3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 838u, 0x0897F3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883B84u) goto L_08883B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883B84: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883B98: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08883BA8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 730u, 0x08883BA8u, 0x0897F774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 897u, 0x0897F774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883BA8u) goto L_08883BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883BA8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883BB8: @@ -8486,8 +10603,21 @@ L_08883BB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08883BD4u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 732u, 0x08883BD4u, 0x0897F7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 904u, 0x0897F7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883BD4u) goto L_08883BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883BD4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8568,8 +10698,8 @@ L_08883C54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883C6C: @@ -8582,8 +10712,21 @@ L_08883C6C: aot_gpr_6 = (0u | 13u); aot_gpr_31 = (0x08883C94u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 742u, 0x08883C94u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883C94u) goto L_08883C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883C94: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(4), aot_run_words); @@ -8612,8 +10755,21 @@ L_08883C94: ctx.gpr[10] = (aot_gpr_29 + static_cast(40)); aot_gpr_31 = (0x08883D18u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 743u, 0x08883D18u, 0x08B3E288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 527u, 0x08B3E288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883D18u) goto L_08883D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883D18: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8624,8 +10780,8 @@ L_08883D18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883D30: @@ -8639,8 +10795,21 @@ L_08883D30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08883D58u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 745u, 0x08883D58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883D58u) goto L_08883D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883D58: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -8649,8 +10818,21 @@ L_08883D58: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08883D78u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 746u, 0x08883D78u, 0x0894004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 5u, 0x0894004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883D78u) goto L_08883D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883D78: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8661,8 +10843,8 @@ L_08883D78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883D90: @@ -8674,8 +10856,21 @@ L_08883D90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08883DB0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 748u, 0x08883DB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883DB0u) goto L_08883DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883DB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08883DBCu); @@ -8691,8 +10886,8 @@ L_08883DBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883DDC: @@ -8704,8 +10899,21 @@ L_08883DDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08883DFCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 751u, 0x08883DFCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883DFCu) goto L_08883DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883DFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8732,8 +10940,8 @@ L_08883E18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883E2C: @@ -8746,8 +10954,21 @@ L_08883E2C: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08883E54u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 756u, 0x08883E54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883E54u) goto L_08883E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883E54: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[5]{}; @@ -8829,8 +11050,21 @@ L_08883E54: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08883EC0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 757u, 0x08883EC0u, 0x08A41560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 254u, 0x08A41560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883EC0u) goto L_08883EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883EC0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8841,8 +11075,8 @@ L_08883EC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08883ED8: @@ -8859,8 +11093,21 @@ L_08883ED8: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08883F14u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 759u, 0x08883F14u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883F14u) goto L_08883F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883F14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08883F20u); @@ -8896,8 +11143,21 @@ L_08883F20: } aot_gpr_31 = (0x08883F58u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 761u, 0x08883F58u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883F58u) goto L_08883F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883F58: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); { std::uint32_t aot_run_words[3]{}; @@ -8909,8 +11169,21 @@ L_08883F58: aot_gpr_4 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08883F74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0031->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0031_entry, 762u, 0x08883F74u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08883F74u) goto L_08883F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08883F74: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0032.cpp b/profiles/vcs/generated/generated_unit_0032.cpp index 158d6d5..053b27e 100644 --- a/profiles/vcs/generated/generated_unit_0032.cpp +++ b/profiles/vcs/generated/generated_unit_0032.cpp @@ -997,6 +997,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08884000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1027,8 +1051,21 @@ L_08884014: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08884028u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 4u, 0x08884028u, 0x08B09D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 371u, 0x08B09D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884028u) goto L_08884028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884028: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[8]{}; @@ -1044,8 +1081,8 @@ L_08884028: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884054: @@ -1057,8 +1094,21 @@ L_08884054: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08884074u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 6u, 0x08884074u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884074u) goto L_08884074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884074: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -1068,8 +1118,8 @@ L_08884074: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884094: @@ -1085,8 +1135,21 @@ L_08884094: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x088840C4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 8u, 0x088840C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088840C4u) goto L_088840C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088840C4: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -1116,8 +1179,21 @@ L_08884104: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08884110u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 11u, 0x08884110u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884110u) goto L_08884110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884110: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08884114; @@ -1137,8 +1213,21 @@ L_08884124: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888413Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 14u, 0x0888413Cu, 0x089D1734u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 270u, 0x089D1734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888413Cu) goto L_0888413C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888413C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1152,8 +1241,21 @@ L_08884144: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0888415Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 16u, 0x0888415Cu, 0x089D0284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 32u, 0x089D0284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888415Cu) goto L_0888415C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888415C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -1166,8 +1268,8 @@ L_0888415C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888417C: @@ -1179,8 +1281,21 @@ L_0888417C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0888419Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 18u, 0x0888419Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888419Cu) goto L_0888419C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888419C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -1189,8 +1304,8 @@ L_0888419C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088841B8: @@ -1203,8 +1318,21 @@ L_088841B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088841DCu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 20u, 0x088841DCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088841DCu) goto L_088841DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088841DC: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -1243,8 +1371,21 @@ L_08884208: L_0888420C: aot_gpr_31 = (0x08884214u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 27u, 0x08884214u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884214u) goto L_08884214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884214: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1258,8 +1399,21 @@ L_08884220: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0888422Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 29u, 0x0888422Cu, 0x08AD3328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 556u, 0x08AD3328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888422Cu) goto L_0888422C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888422C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1271,8 +1425,21 @@ L_08884234: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08884240u); aot_gpr_5 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 31u, 0x08884240u, 0x08AD3328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 556u, 0x08AD3328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884240u) goto L_08884240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884240: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1283,8 +1450,8 @@ L_08884240: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884258: @@ -1299,8 +1466,21 @@ L_08884258: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08884284u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 33u, 0x08884284u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884284u) goto L_08884284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884284: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -1339,8 +1519,21 @@ L_088842B0: L_088842B4: aot_gpr_31 = (0x088842BCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 40u, 0x088842BCu, 0x0893EC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 681u, 0x0893EC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088842BCu) goto L_088842BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088842BC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(20))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -1424,8 +1617,8 @@ L_08884340: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888435C: @@ -1436,8 +1629,21 @@ L_0888435C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08884378u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 50u, 0x08884378u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884378u) goto L_08884378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884378: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -1476,21 +1682,47 @@ L_088843A4: L_088843A8: aot_gpr_31 = (0x088843B0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 57u, 0x088843B0u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088843B0u) goto L_088843B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088843B0: aot_gpr_31 = (0x088843B8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 58u, 0x088843B8u, 0x08AD3464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 570u, 0x08AD3464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088843B8u) goto L_088843B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088843B8: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088843CC: @@ -1502,21 +1734,47 @@ L_088843CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088843ECu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 60u, 0x088843ECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088843ECu) goto L_088843EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088843EC: aot_gpr_31 = (0x088843F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 61u, 0x088843F4u, 0x0890EFDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 702u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 702u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 702u, 0x0890EFDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088843F4u) goto L_088843F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088843F4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884408: @@ -1528,21 +1786,47 @@ L_08884408: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08884428u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 63u, 0x08884428u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884428u) goto L_08884428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884428: aot_gpr_31 = (0x08884430u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 64u, 0x08884430u, 0x0890F004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 705u, 0x0890F004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884430u) goto L_08884430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884430: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884444: @@ -1559,8 +1843,21 @@ L_08884444: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08884478u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 66u, 0x08884478u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884478u) goto L_08884478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884478: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08884484u); @@ -1585,15 +1882,41 @@ L_08884498: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x088844A8u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 70u, 0x088844A8u, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088844A8u) goto L_088844A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088844A8: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088844B8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 71u, 0x088844B8u, 0x08906E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 631u, 0x08906E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088844B8u) goto L_088844B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088844B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1625,8 +1948,21 @@ L_088844E8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08884504u); aot_fpr_12 = std::bit_cast(ctx.gpr[8]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 74u, 0x08884504u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884504u) goto L_08884504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884504: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -1643,8 +1979,21 @@ L_0888450C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08884528u); aot_fpr_12 = std::bit_cast(ctx.gpr[8]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 76u, 0x08884528u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884528u) goto L_08884528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884528: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0888452C; @@ -1798,8 +2147,8 @@ L_08884630: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884650: @@ -1815,8 +2164,21 @@ L_08884650: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08884680u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 94u, 0x08884680u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884680u) goto L_08884680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884680: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x0888468Cu); @@ -1843,8 +2205,8 @@ L_088846A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088846C0: @@ -1858,8 +2220,21 @@ L_088846C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088846E8u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 98u, 0x088846E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088846E8u) goto L_088846E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088846E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -1899,8 +2274,21 @@ L_0888472C: L_08884730: aot_gpr_31 = (0x08884738u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 105u, 0x08884738u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884738u) goto L_08884738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884738: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -1913,8 +2301,21 @@ L_08884738: L_08884744: aot_gpr_31 = (0x0888474Cu); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 107u, 0x0888474Cu, 0x08AD3328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 556u, 0x08AD3328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888474Cu) goto L_0888474C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888474C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1925,8 +2326,21 @@ L_0888474C: L_08884754: aot_gpr_31 = (0x0888475Cu); aot_gpr_5 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 109u, 0x0888475Cu, 0x08AD3328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 556u, 0x08AD3328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888475Cu) goto L_0888475C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888475C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1937,8 +2351,8 @@ L_0888475C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884774: @@ -1953,8 +2367,21 @@ L_08884774: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x088847B0u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 111u, 0x088847B0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088847B0u) goto L_088847B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088847B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -1994,8 +2421,21 @@ L_088847F4: L_088847F8: aot_gpr_31 = (0x08884800u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 118u, 0x08884800u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884800u) goto L_08884800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884800: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); ctx.gpr[19] = (0u | 0u); @@ -2065,8 +2505,21 @@ L_08884860: L_08884868: aot_gpr_31 = (0x08884870u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 128u, 0x08884870u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884870u) goto L_08884870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884870: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -2115,8 +2568,21 @@ L_088848A8: L_088848B0: aot_gpr_31 = (0x088848B8u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 135u, 0x088848B8u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088848B8u) goto L_088848B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088848B8: { const bool branch_taken = ctx.gpr[21] != 0u; if (branch_taken) { @@ -2148,8 +2614,21 @@ L_088848D4: L_088848E0: aot_gpr_31 = (0x088848E8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 140u, 0x088848E8u, 0x08AD3800u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 629u, 0x08AD3800u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088848E8u) goto L_088848E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088848E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2160,8 +2639,21 @@ L_088848E8: L_088848F0: aot_gpr_31 = (0x088848F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 142u, 0x088848F8u, 0x08AD3830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 632u, 0x08AD3830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088848F8u) goto L_088848F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088848F8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[8]{}; @@ -2177,8 +2669,8 @@ L_088848F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884924: @@ -2192,8 +2684,21 @@ L_08884924: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0888494Cu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 144u, 0x0888494Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888494Cu) goto L_0888494C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888494C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -2233,13 +2738,39 @@ L_08884990: L_08884994: aot_gpr_31 = (0x0888499Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 151u, 0x0888499Cu, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888499Cu) goto L_0888499C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888499C: aot_gpr_31 = (0x088849A4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 152u, 0x088849A4u, 0x08AD36B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 609u, 0x08AD36B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088849A4u) goto L_088849A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088849A4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_5 = (ctx.gpr[2] & 255u); @@ -2308,8 +2839,8 @@ L_08884A10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884A28: @@ -2325,8 +2856,21 @@ L_08884A28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08884A58u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 160u, 0x08884A58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884A58u) goto L_08884A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884A58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08884A64u); @@ -2338,8 +2882,21 @@ L_08884A64: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x08884A74u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 162u, 0x08884A74u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884A74u) goto L_08884A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884A74: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -2473,8 +3030,8 @@ L_08884B3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884B58: @@ -2493,8 +3050,21 @@ L_08884B58: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x08884B98u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 177u, 0x08884B98u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884B98u) goto L_08884B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884B98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08884BA4u); @@ -2536,8 +3106,21 @@ L_08884BD0: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08884BE8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 182u, 0x08884BE8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884BE8u) goto L_08884BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884BE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_5 = (4u << 16u); @@ -2624,15 +3207,41 @@ L_08884C80: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08884C8Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 193u, 0x08884C8Cu, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884C8Cu) goto L_08884C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884C8C: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08884C9Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 194u, 0x08884C9Cu, 0x08906E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 631u, 0x08906E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884C9Cu) goto L_08884C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884C9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2652,8 +3261,21 @@ L_08884CA4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08884CD0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 196u, 0x08884CD0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884CD0u) goto L_08884CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884CD0: { const bool branch_taken = ctx.gpr[21] != 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -2807,8 +3429,8 @@ L_08884DCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884DF8: @@ -2822,8 +3444,21 @@ L_08884DF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08884E20u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 213u, 0x08884E20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884E20u) goto L_08884E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884E20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08884E2Cu); @@ -2836,8 +3471,21 @@ L_08884E2C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(80))); aot_gpr_31 = (0x08884E40u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 215u, 0x08884E40u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884E40u) goto L_08884E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884E40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_5 = (4u << 16u); @@ -2852,8 +3500,8 @@ L_08884E40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884E68: @@ -2867,8 +3515,21 @@ L_08884E68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08884E90u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 217u, 0x08884E90u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884E90u) goto L_08884E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884E90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08884E9Cu); @@ -2926,8 +3587,8 @@ L_08884EF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884F08: @@ -2942,8 +3603,21 @@ L_08884F08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08884F34u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 225u, 0x08884F34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884F34u) goto L_08884F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884F34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08884F40u); @@ -2956,8 +3630,21 @@ L_08884F40: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(80))); aot_gpr_31 = (0x08884F54u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 227u, 0x08884F54u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884F54u) goto L_08884F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884F54: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2985,8 +3672,8 @@ L_08884F78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08884F94: @@ -3005,8 +3692,21 @@ L_08884F94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08884FD0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 231u, 0x08884FD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884FD0u) goto L_08884FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884FD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08884FDCu); @@ -3020,8 +3720,21 @@ L_08884FDC: aot_fpr_20 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x08884FF4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 233u, 0x08884FF4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08884FF4u) goto L_08884FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08884FF4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3055,8 +3768,8 @@ L_0888501C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885040: @@ -3071,8 +3784,21 @@ L_08885040: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0888506Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 238u, 0x0888506Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888506Cu) goto L_0888506C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888506C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08885078u); @@ -3085,8 +3811,21 @@ L_08885078: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(80))); aot_gpr_31 = (0x0888508Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 240u, 0x0888508Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888508Cu) goto L_0888508C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888508C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3098,8 +3837,21 @@ L_0888508C: L_08885098: aot_gpr_31 = (0x088850A0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 242u, 0x088850A0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088850A0u) goto L_088850A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088850A0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3111,8 +3863,8 @@ L_088850A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088850BC: @@ -3156,8 +3908,8 @@ L_08885100: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888510C: @@ -3166,8 +3918,21 @@ L_0888510C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08885124u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 250u, 0x08885124u, 0x0886B5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 702u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 702u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 702u, 0x0886B5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885124u) goto L_08885124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885124: ctx.gpr[17] = (2232u << 16u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), ctx.gpr[2]); @@ -3208,16 +3973,42 @@ L_08885164: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08885170u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-26176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 255u, 0x08885170u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885170u) goto L_08885170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885170: aot_gpr_5 = (2184u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08885184u); aot_gpr_5 = (aot_gpr_5 + static_cast(21288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 256u, 0x08885184u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885184u) goto L_08885184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885184: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08885190u); @@ -3233,8 +4024,8 @@ L_08885190: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088851A4: @@ -3244,16 +4035,29 @@ L_088851A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088851BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 259u, 0x088851BCu, 0x0886B66Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 712u, 0x0886B66Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088851BCu) goto L_088851BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088851BC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088851D0: @@ -3262,8 +4066,21 @@ L_088851D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088851E4u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 261u, 0x088851E4u, 0x0889E534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 538u, 0x0889E534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088851E4u) goto L_088851E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088851E4: aot_gpr_31 = (0x088851ECu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3272,8 +4089,8 @@ L_088851EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088851F8: @@ -3282,8 +4099,21 @@ L_088851F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0888520Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 264u, 0x0888520Cu, 0x0889E4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 532u, 0x0889E4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888520Cu) goto L_0888520C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888520C: aot_gpr_31 = (0x08885214u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3292,8 +4122,8 @@ L_08885214: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885220: @@ -3316,8 +4146,21 @@ L_0888524C: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08885260u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 268u, 0x08885260u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885260u) goto L_08885260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885260: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x0888526Cu); @@ -3334,8 +4177,8 @@ L_0888526C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885284: @@ -3348,15 +4191,41 @@ L_08885284: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088852A8u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 271u, 0x088852A8u, 0x0889D28Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 234u, 0x0889D28Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088852A8u) goto L_088852A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088852A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_5 = (ctx.gpr[28] + static_cast(-26164)); aot_gpr_31 = (0x088852B8u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 272u, 0x088852B8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088852B8u) goto L_088852B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088852B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x088852C4u); @@ -3367,16 +4236,42 @@ L_088852C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x088852D0u); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 274u, 0x088852D0u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088852D0u) goto L_088852D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088852D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088852E4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 275u, 0x088852E4u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088852E4u) goto L_088852E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088852E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x088852F0u); @@ -3392,8 +4287,8 @@ L_088852F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885304: @@ -3405,15 +4300,15 @@ L_08885304: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(8), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885328: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885330: @@ -3473,15 +4368,41 @@ L_08885394: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088853ACu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 287u, 0x088853ACu, 0x08B6804Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 7u, 0x08B6804Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088853ACu) goto L_088853AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088853AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088853BCu); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 288u, 0x088853BCu, 0x08B680F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 14u, 0x08B680F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088853BCu) goto L_088853BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088853BC: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = ctx.gpr[18] == aot_gpr_16; @@ -3554,15 +4475,41 @@ L_08885424: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0888543Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 300u, 0x0888543Cu, 0x08B6804Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 7u, 0x08B6804Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888543Cu) goto L_0888543C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888543C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0888544Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 301u, 0x0888544Cu, 0x08B680F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 14u, 0x08B680F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888544Cu) goto L_0888544C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888544C: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); { const bool branch_taken = ctx.gpr[17] == aot_gpr_16; @@ -3604,8 +4551,8 @@ L_0888547C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885498: @@ -3637,8 +4584,21 @@ L_088854C0: L_088854C8: aot_gpr_31 = (0x088854D0u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 311u, 0x088854D0u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088854D0u) goto L_088854D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088854D0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3682,8 +4642,8 @@ L_08885514: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885528: @@ -3694,27 +4654,79 @@ L_08885528: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08885548u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-26136)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 320u, 0x08885548u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885548u) goto L_08885548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885548: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885554u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 321u, 0x08885554u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885554u) goto L_08885554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885554: ctx.gpr[18] = (0u | 1u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885564u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 322u, 0x08885564u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885564u) goto L_08885564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885564: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885570u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 323u, 0x08885570u, 0x08806CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 407u, 0x08806CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885570u) goto L_08885570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885570: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3725,8 +4737,21 @@ L_08885570: L_08885578: aot_gpr_31 = (0x08885580u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 325u, 0x08885580u, 0x088065D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 298u, 0x088065D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885580u) goto L_08885580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885580: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3747,8 +4772,21 @@ L_0888559C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088855A8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 328u, 0x088855A8u, 0x088068E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 331u, 0x088068E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088855A8u) goto L_088855A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088855A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3764,8 +4802,21 @@ L_088855B4: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x088855C4u); aot_gpr_6 = (aot_gpr_6 + static_cast(-23544)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 331u, 0x088855C4u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088855C4u) goto L_088855C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088855C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088855D0u); @@ -3777,20 +4828,59 @@ L_088855D0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088855E0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 333u, 0x088855E0u, 0x08806564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 295u, 0x08806564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088855E0u) goto L_088855E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088855E0: aot_gpr_31 = (0x088855E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 334u, 0x088855E8u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088855E8u) goto L_088855E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088855E8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-26128)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088855F8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 335u, 0x088855F8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088855F8u) goto L_088855F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088855F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885604u); @@ -3808,8 +4898,21 @@ L_08885610: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885620u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 338u, 0x08885620u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885620u) goto L_08885620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885620: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888562Cu); @@ -3827,28 +4930,80 @@ L_08885638: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885648u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 341u, 0x08885648u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885648u) goto L_08885648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885648: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885654u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 342u, 0x08885654u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885654u) goto L_08885654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885654: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885660u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 343u, 0x08885660u, 0x0889DB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 388u, 0x0889DB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885660u) goto L_08885660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885660: ctx.gpr[17] = (ctx.gpr[2] + static_cast(1)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x08885674u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 344u, 0x08885674u, 0x0889DA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 370u, 0x0889DA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885674u) goto L_08885674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885674: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885680u); @@ -3860,8 +5015,21 @@ L_08885680: aot_gpr_5 = (0u + static_cast(-2)); aot_gpr_31 = (0x08885690u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 346u, 0x08885690u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885690u) goto L_08885690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885690: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888569Cu); @@ -3879,8 +5047,8 @@ L_0888569C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088856B8: @@ -3891,27 +5059,79 @@ L_088856B8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x088856D8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-26136)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 349u, 0x088856D8u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088856D8u) goto L_088856D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088856D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088856E4u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 350u, 0x088856E4u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088856E4u) goto L_088856E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088856E4: ctx.gpr[18] = (0u | 1u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088856F4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 351u, 0x088856F4u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088856F4u) goto L_088856F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088856F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885700u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 352u, 0x08885700u, 0x08806CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 407u, 0x08806CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885700u) goto L_08885700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885700: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -3926,8 +5146,21 @@ L_0888570C: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08885720u); aot_gpr_6 = (aot_gpr_6 + static_cast(-23520)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 354u, 0x08885720u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885720u) goto L_08885720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885720: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888572Cu); @@ -3939,34 +5172,99 @@ L_0888572C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888573Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 356u, 0x0888573Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888573Cu) goto L_0888573C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888573C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-26112)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888574Cu); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 357u, 0x0888574Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888574Cu) goto L_0888574C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888574C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885758u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 358u, 0x08885758u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885758u) goto L_08885758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885758: aot_gpr_31 = (0x08885760u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 359u, 0x08885760u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885760u) goto L_08885760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885760: aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08885764; L_08885764: aot_gpr_31 = (0x0888576Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 361u, 0x0888576Cu, 0x088078B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 540u, 0x088078B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888576Cu) goto L_0888576C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888576C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3984,14 +5282,40 @@ L_08885780: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888578Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 364u, 0x0888578Cu, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888578Cu) goto L_0888578C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888578C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885798u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 365u, 0x08885798u, 0x08806CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 407u, 0x08806CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885798u) goto L_08885798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885798: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[17]; if (branch_taken) { @@ -4018,8 +5342,21 @@ L_088857B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088857C4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 369u, 0x088857C4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088857C4u) goto L_088857C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088857C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088857D0u); @@ -4065,8 +5402,8 @@ L_08885800: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885818: @@ -4089,23 +5426,62 @@ L_08885838: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x08885848u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 379u, 0x08885848u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885848u) goto L_08885848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885848: aot_gpr_5 = (ctx.gpr[28] + static_cast(-26096)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885858u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 380u, 0x08885858u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885858u) goto L_08885858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885858: aot_gpr_5 = (2184u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0888586Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(21800)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 381u, 0x0888586Cu, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888586Cu) goto L_0888586C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888586C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885878u); @@ -4117,16 +5493,42 @@ L_08885878: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885888u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 383u, 0x08885888u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885888u) goto L_08885888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885888: aot_gpr_5 = (2184u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0888589Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(22200)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 384u, 0x0888589Cu, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888589Cu) goto L_0888589C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888589C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088858A8u); @@ -4138,16 +5540,42 @@ L_088858A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088858B8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 386u, 0x088858B8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088858B8u) goto L_088858B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088858B8: aot_gpr_5 = (2184u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088858CCu); aot_gpr_5 = (aot_gpr_5 + static_cast(22860)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 387u, 0x088858CCu, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088858CCu) goto L_088858CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088858CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088858D8u); @@ -4159,13 +5587,39 @@ L_088858D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088858E8u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 389u, 0x088858E8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088858E8u) goto L_088858E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088858E8: aot_gpr_31 = (0x088858F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 390u, 0x088858F0u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088858F0u) goto L_088858F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088858F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088858FCu); @@ -4176,14 +5630,40 @@ L_088858FC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-26136)); aot_gpr_31 = (0x08885908u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 392u, 0x08885908u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885908u) goto L_08885908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885908: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885914u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 393u, 0x08885914u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885914u) goto L_08885914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885914: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885920u); @@ -4195,8 +5675,8 @@ L_08885920: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885930: @@ -4208,8 +5688,8 @@ L_08885940: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888594C: @@ -4220,21 +5700,60 @@ L_0888594C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08885978u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-26136)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 398u, 0x08885978u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885978u) goto L_08885978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885978: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885984u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 399u, 0x08885984u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885984u) goto L_08885984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885984: ctx.gpr[17] = (0u | 1u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885994u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 400u, 0x08885994u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885994u) goto L_08885994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885994: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088859A0u); @@ -4246,40 +5765,118 @@ L_088859A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088859B0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 402u, 0x088859B0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088859B0u) goto L_088859B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088859B0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-26128)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088859C0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 403u, 0x088859C0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088859C0u) goto L_088859C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088859C0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-26120)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088859D0u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 404u, 0x088859D0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088859D0u) goto L_088859D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088859D0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-26112)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088859E0u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 405u, 0x088859E0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088859E0u) goto L_088859E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088859E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088859ECu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 406u, 0x088859ECu, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088859ECu) goto L_088859EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088859EC: aot_gpr_31 = (0x088859F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 407u, 0x088859F4u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088859F4u) goto L_088859F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088859F4: ctx.gpr[18] = (0u | 5u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4287,8 +5884,21 @@ L_088859F4: L_088859FC: aot_gpr_31 = (0x08885A04u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 409u, 0x08885A04u, 0x088078B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 540u, 0x088078B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885A04u) goto L_08885A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885A04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4306,8 +5916,21 @@ L_08885A18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885A24u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 412u, 0x08885A24u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885A24u) goto L_08885A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885A24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885A30u); @@ -4345,8 +5968,21 @@ L_08885A64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885A70u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 418u, 0x08885A70u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885A70u) goto L_08885A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885A70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885A7Cu); @@ -4365,8 +6001,21 @@ L_08885A84: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08885A94u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 421u, 0x08885A94u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885A94u) goto L_08885A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885A94: aot_gpr_31 = (0x08885A9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4406,14 +6055,40 @@ L_08885ACC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885AD8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 428u, 0x08885AD8u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885AD8u) goto L_08885AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885AD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885AE4u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 429u, 0x08885AE4u, 0x08806CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 407u, 0x08806CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885AE4u) goto L_08885AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885AE4: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4440,8 +6115,21 @@ L_08885B0C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08885B1Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 433u, 0x08885B1Cu, 0x08806564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 295u, 0x08806564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885B1Cu) goto L_08885B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885B1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4456,8 +6144,21 @@ L_08885B28: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08885B34u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 436u, 0x08885B34u, 0x08872734u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 592u, 0x08872734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885B34u) goto L_08885B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885B34: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -4528,8 +6229,21 @@ L_08885B8C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885B9Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 447u, 0x08885B9Cu, 0x08806564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 295u, 0x08806564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885B9Cu) goto L_08885B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885B9C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885BA8u); @@ -4579,13 +6293,39 @@ L_08885BE8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885BF8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 455u, 0x08885BF8u, 0x08806564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 295u, 0x08806564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885BF8u) goto L_08885BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885BF8: aot_gpr_31 = (0x08885C00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 456u, 0x08885C00u, 0x08807890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 538u, 0x08807890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885C00u) goto L_08885C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885C00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4622,8 +6362,21 @@ L_08885C30: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08885C40u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 462u, 0x08885C40u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885C40u) goto L_08885C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885C40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885C4Cu); @@ -4642,8 +6395,21 @@ L_08885C54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885C64u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 465u, 0x08885C64u, 0x0889DA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 370u, 0x0889DA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885C64u) goto L_08885C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885C64: aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[17]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4670,8 +6436,21 @@ L_08885C88: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885C94u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 469u, 0x08885C94u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885C94u) goto L_08885C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885C94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885CA0u); @@ -4698,8 +6477,21 @@ L_08885CB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885CCCu); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 473u, 0x08885CCCu, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885CCCu) goto L_08885CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885CCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4723,16 +6515,42 @@ L_08885CE0: L_08885CE8: aot_gpr_31 = (0x08885CF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 477u, 0x08885CF0u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885CF0u) goto L_08885CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885CF0: aot_gpr_6 = (ctx.gpr[19] | 0u); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08885D04u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 478u, 0x08885D04u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885D04u) goto L_08885D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885D04: aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[17]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4763,8 +6581,8 @@ L_08885D20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885D44: @@ -4776,8 +6594,21 @@ L_08885D44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08885D64u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 483u, 0x08885D64u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885D64u) goto L_08885D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885D64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4817,8 +6648,8 @@ L_08885DB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885DC8: @@ -4830,8 +6661,21 @@ L_08885DC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08885DE8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 489u, 0x08885DE8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885DE8u) goto L_08885DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885DE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4842,8 +6686,8 @@ L_08885DE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885E0C: @@ -4855,8 +6699,21 @@ L_08885E0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08885E2Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 491u, 0x08885E2Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885E2Cu) goto L_08885E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885E2C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8088))); @@ -4873,8 +6730,8 @@ L_08885E44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885E5C: @@ -4886,8 +6743,21 @@ L_08885E5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08885E7Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 494u, 0x08885E7Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885E7Cu) goto L_08885E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885E7C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8092))); @@ -4904,8 +6774,8 @@ L_08885E94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885EAC: @@ -4917,8 +6787,21 @@ L_08885EAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08885ECCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 497u, 0x08885ECCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885ECCu) goto L_08885ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885ECC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8096))); @@ -4944,8 +6827,8 @@ L_08885EE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885F00: @@ -4957,8 +6840,21 @@ L_08885F00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08885F20u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 501u, 0x08885F20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885F20u) goto L_08885F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885F20: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8100))); @@ -4984,8 +6880,8 @@ L_08885F3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885F54: @@ -4997,8 +6893,21 @@ L_08885F54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08885F74u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 505u, 0x08885F74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885F74u) goto L_08885F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885F74: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8104))); @@ -5024,8 +6933,8 @@ L_08885F90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885FA8: @@ -5034,8 +6943,8 @@ L_08885FA8: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8108), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885FBC: @@ -5047,8 +6956,21 @@ L_08885FBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08885FDCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 510u, 0x08885FDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08885FDCu) goto L_08885FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08885FDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -5057,8 +6979,8 @@ L_08885FDC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08885FF8: @@ -5067,8 +6989,8 @@ L_08885FF8: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8116), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888600C: @@ -5080,8 +7002,21 @@ L_0888600C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0888602Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 513u, 0x0888602Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888602Cu) goto L_0888602C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888602C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8120))); @@ -5092,8 +7027,8 @@ L_0888602C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886050: @@ -5102,8 +7037,8 @@ L_08886050: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8124), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886064: @@ -5114,8 +7049,21 @@ L_08886064: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08886088u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 516u, 0x08886088u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886088u) goto L_08886088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886088: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5149,8 +7097,21 @@ L_088860AC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088860B8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 521u, 0x088860B8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088860B8u) goto L_088860B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088860B8: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5174,28 +7135,80 @@ L_088860D0: L_088860D8: aot_gpr_31 = (0x088860E0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 526u, 0x088860E0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088860E0u) goto L_088860E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088860E0: aot_gpr_4 = (ctx.gpr[28] + static_cast(8128)); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088860F0u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 527u, 0x088860F0u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088860F0u) goto L_088860F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088860F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8136))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_31 = (0x08886100u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8136), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 528u, 0x08886100u, 0x089910C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 232u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 232u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 232u, 0x089910C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886100u) goto L_08886100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886100: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x0888610Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7976), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 529u, 0x0888610Cu, 0x089672CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 525u, 0x089672CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888610Cu) goto L_0888610C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888610C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -5207,38 +7220,64 @@ L_0888610C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886128: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08886138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 531u, 0x08886138u, 0x08990BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 161u, 0x08990BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886138u) goto L_08886138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886138: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886148: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08886158u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 533u, 0x08886158u, 0x08990BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 162u, 0x08990BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886158u) goto L_08886158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886158: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886168: @@ -5250,36 +7289,75 @@ L_08886168: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886188u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 535u, 0x08886188u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886188u) goto L_08886188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886188: aot_gpr_31 = (0x08886190u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 536u, 0x08886190u, 0x08990BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 166u, 0x08990BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886190u) goto L_08886190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886190: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088861A4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088861B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 538u, 0x088861B4u, 0x08990BC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 163u, 0x08990BC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088861B4u) goto L_088861B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088861B4: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088861C4: @@ -5290,15 +7368,28 @@ L_088861C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088861E0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 540u, 0x088861E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088861E0u) goto L_088861E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088861E0: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088861F0: @@ -5317,8 +7408,21 @@ L_088861F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x0888622Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 542u, 0x0888622Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888622Cu) goto L_0888622C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888622C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08886238u); @@ -5367,8 +7471,8 @@ L_08886284: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088862C4: @@ -5380,21 +7484,47 @@ L_088862C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088862E4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 547u, 0x088862E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088862E4u) goto L_088862E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088862E4: aot_gpr_31 = (0x088862ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 548u, 0x088862ECu, 0x089910B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 231u, 0x089910B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088862ECu) goto L_088862EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088862EC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886300: @@ -5406,21 +7536,47 @@ L_08886300: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886320u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 550u, 0x08886320u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886320u) goto L_08886320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886320: aot_gpr_31 = (0x08886328u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 551u, 0x08886328u, 0x08990BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 164u, 0x08990BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886328u) goto L_08886328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886328: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888633C: @@ -5436,8 +7592,21 @@ L_0888633C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0888636Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 553u, 0x0888636Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888636Cu) goto L_0888636C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888636C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08886378u); @@ -5472,8 +7641,8 @@ L_088863A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088863C0: @@ -5482,8 +7651,21 @@ L_088863C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088863D4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 558u, 0x088863D4u, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088863D4u) goto L_088863D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088863D4: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<3u>(ctx.fpr[0])); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5502,8 +7684,8 @@ L_088863F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888640C: @@ -5513,21 +7695,47 @@ L_0888640C: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_31 = (0x08886424u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8136), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 561u, 0x08886424u, 0x089910C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 232u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 232u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 232u, 0x089910C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886424u) goto L_08886424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886424: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x08886430u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7976), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 562u, 0x08886430u, 0x089672CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 525u, 0x089672CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886430u) goto L_08886430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886430: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886440: @@ -5539,21 +7747,47 @@ L_08886440: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886460u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 564u, 0x08886460u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886460u) goto L_08886460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886460: aot_gpr_31 = (0x08886468u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 565u, 0x08886468u, 0x08990C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 168u, 0x08990C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886468u) goto L_08886468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886468: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888647C: @@ -5565,8 +7799,21 @@ L_0888647C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0888649Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 567u, 0x0888649Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888649Cu) goto L_0888649C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888649C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -5575,8 +7822,8 @@ L_0888649C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088864B8: @@ -5587,15 +7834,28 @@ L_088864B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088864D4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 569u, 0x088864D4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088864D4u) goto L_088864D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088864D4: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088864E4: @@ -5604,8 +7864,8 @@ L_088864E4: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8140), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088864F8: @@ -5617,8 +7877,21 @@ L_088864F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886518u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 572u, 0x08886518u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886518u) goto L_08886518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886518: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8144))); @@ -5635,8 +7908,8 @@ L_08886530: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886548: @@ -5648,8 +7921,21 @@ L_08886548: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886568u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 575u, 0x08886568u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886568u) goto L_08886568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886568: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8148))); @@ -5660,8 +7946,8 @@ L_08886568: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888658C: @@ -5673,8 +7959,21 @@ L_0888658C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088865ACu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 577u, 0x088865ACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088865ACu) goto L_088865AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088865AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -5683,8 +7982,8 @@ L_088865AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088865C8: @@ -5696,22 +7995,48 @@ L_088865C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088865E8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 579u, 0x088865E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088865E8u) goto L_088865E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088865E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x088865F4u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 580u, 0x088865F4u, 0x089914DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 303u, 0x089914DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088865F4u) goto L_088865F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088865F4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886608: @@ -5727,8 +8052,21 @@ L_08886608: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x0888663Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 582u, 0x0888663Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888663Cu) goto L_0888663C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888663C: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -5751,8 +8089,21 @@ L_08886658: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08886674u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 585u, 0x08886674u, 0x0880DA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 391u, 0x0880DA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886674u) goto L_08886674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886674: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -5766,8 +8117,8 @@ L_08886674: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886698: @@ -5779,8 +8130,21 @@ L_08886698: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088866B8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 587u, 0x088866B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088866B8u) goto L_088866B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088866B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -5789,8 +8153,8 @@ L_088866B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088866D4: @@ -5802,8 +8166,21 @@ L_088866D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088866F4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 589u, 0x088866F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088866F4u) goto L_088866F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088866F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -5812,8 +8189,8 @@ L_088866F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886710: @@ -5824,15 +8201,28 @@ L_08886710: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0888672Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 591u, 0x0888672Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888672Cu) goto L_0888672C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888672C: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888673C: @@ -5846,8 +8236,21 @@ L_0888673C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886764u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 593u, 0x08886764u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886764u) goto L_08886764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886764: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -5862,8 +8265,8 @@ L_08886764: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888678C: @@ -5872,8 +8275,8 @@ L_0888678C: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8168), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088867A0: @@ -5885,22 +8288,48 @@ L_088867A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088867C0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 596u, 0x088867C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088867C0u) goto L_088867C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088867C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x088867CCu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 597u, 0x088867CCu, 0x08991514u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 307u, 0x08991514u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088867CCu) goto L_088867CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088867CC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088867E0: @@ -5914,8 +8343,21 @@ L_088867E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886808u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 599u, 0x08886808u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886808u) goto L_08886808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886808: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8172))); @@ -5965,8 +8407,8 @@ L_08886844: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886860: @@ -5975,8 +8417,8 @@ L_08886860: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8180), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886874: @@ -5985,8 +8427,8 @@ L_08886874: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8184), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886888: @@ -5995,8 +8437,8 @@ L_08886888: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8188), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888689C: @@ -6005,8 +8447,8 @@ L_0888689C: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8192), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088868B0: @@ -6018,8 +8460,21 @@ L_088868B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088868D0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 609u, 0x088868D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088868D0u) goto L_088868D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088868D0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8196))); @@ -6045,8 +8500,8 @@ L_088868EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886904: @@ -6058,8 +8513,21 @@ L_08886904: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886924u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 613u, 0x08886924u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886924u) goto L_08886924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886924: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8200))); @@ -6085,8 +8553,8 @@ L_08886940: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886958: @@ -6098,8 +8566,21 @@ L_08886958: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886978u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 617u, 0x08886978u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886978u) goto L_08886978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886978: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8204))); @@ -6125,8 +8606,8 @@ L_08886994: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088869AC: @@ -6138,8 +8619,21 @@ L_088869AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088869CCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 621u, 0x088869CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088869CCu) goto L_088869CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088869CC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8208))); @@ -6165,8 +8659,8 @@ L_088869E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886A00: @@ -6178,8 +8672,21 @@ L_08886A00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886A20u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 625u, 0x08886A20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886A20u) goto L_08886A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886A20: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8212))); @@ -6205,8 +8712,8 @@ L_08886A3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886A54: @@ -6218,8 +8725,21 @@ L_08886A54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886A74u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 629u, 0x08886A74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886A74u) goto L_08886A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886A74: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8216))); @@ -6245,8 +8765,8 @@ L_08886A90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886AA8: @@ -6258,8 +8778,21 @@ L_08886AA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886AC8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 633u, 0x08886AC8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886AC8u) goto L_08886AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886AC8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8220))); @@ -6285,8 +8818,8 @@ L_08886AE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886AFC: @@ -6298,8 +8831,21 @@ L_08886AFC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886B1Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 637u, 0x08886B1Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886B1Cu) goto L_08886B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886B1C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8224))); @@ -6325,8 +8871,8 @@ L_08886B38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886B50: @@ -6338,8 +8884,21 @@ L_08886B50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886B70u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 641u, 0x08886B70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886B70u) goto L_08886B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886B70: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8228))); @@ -6365,8 +8924,8 @@ L_08886B8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886BA4: @@ -6378,8 +8937,21 @@ L_08886BA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886BC4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 645u, 0x08886BC4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886BC4u) goto L_08886BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886BC4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8232))); @@ -6405,8 +8977,8 @@ L_08886BE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886BF8: @@ -6418,8 +8990,21 @@ L_08886BF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886C18u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 649u, 0x08886C18u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886C18u) goto L_08886C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886C18: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8236))); @@ -6445,8 +9030,8 @@ L_08886C34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886C4C: @@ -6458,8 +9043,21 @@ L_08886C4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886C6Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 653u, 0x08886C6Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886C6Cu) goto L_08886C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886C6C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8240))); @@ -6485,8 +9083,8 @@ L_08886C88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886CA0: @@ -6498,8 +9096,21 @@ L_08886CA0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886CC0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 657u, 0x08886CC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886CC0u) goto L_08886CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886CC0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8244))); @@ -6525,8 +9136,8 @@ L_08886CDC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886CF4: @@ -6538,8 +9149,21 @@ L_08886CF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886D14u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 661u, 0x08886D14u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886D14u) goto L_08886D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886D14: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8248))); @@ -6565,8 +9189,8 @@ L_08886D30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886D48: @@ -6580,14 +9204,40 @@ L_08886D48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886D70u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 665u, 0x08886D70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886D70u) goto L_08886D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886D70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08886D7Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 666u, 0x08886D7Cu, 0x0899136Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 281u, 0x0899136Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886D7Cu) goto L_08886D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886D7C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6598,8 +9248,8 @@ L_08886D7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886D94: @@ -6613,14 +9263,40 @@ L_08886D94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886DBCu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 668u, 0x08886DBCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886DBCu) goto L_08886DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886DBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08886DC8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 669u, 0x08886DC8u, 0x08991328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 276u, 0x08991328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886DC8u) goto L_08886DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886DC8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6631,8 +9307,8 @@ L_08886DC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886DE0: @@ -6646,14 +9322,40 @@ L_08886DE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886E08u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 671u, 0x08886E08u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886E08u) goto L_08886E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886E08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08886E14u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 672u, 0x08886E14u, 0x089911DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 251u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 251u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 251u, 0x089911DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886E14u) goto L_08886E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886E14: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6664,8 +9366,8 @@ L_08886E14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886E2C: @@ -6679,14 +9381,40 @@ L_08886E2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886E54u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 674u, 0x08886E54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886E54u) goto L_08886E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886E54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08886E60u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 675u, 0x08886E60u, 0x08991198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 246u, 0x08991198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886E60u) goto L_08886E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886E60: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6697,8 +9425,8 @@ L_08886E60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886E78: @@ -6712,14 +9440,40 @@ L_08886E78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886EA0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 677u, 0x08886EA0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886EA0u) goto L_08886EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886EA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08886EACu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 678u, 0x08886EACu, 0x08991154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 241u, 0x08991154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886EACu) goto L_08886EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886EAC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6730,8 +9484,8 @@ L_08886EAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886EC4: @@ -6745,14 +9499,40 @@ L_08886EC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886EECu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 680u, 0x08886EECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886EECu) goto L_08886EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886EEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08886EF8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 681u, 0x08886EF8u, 0x08991110u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 236u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 236u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 236u, 0x08991110u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886EF8u) goto L_08886EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886EF8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6763,8 +9543,8 @@ L_08886EF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886F10: @@ -6778,14 +9558,40 @@ L_08886F10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08886F38u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 683u, 0x08886F38u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886F38u) goto L_08886F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886F38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08886F44u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 684u, 0x08886F44u, 0x089910E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 234u, 0x089910E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886F44u) goto L_08886F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886F44: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6796,8 +9602,8 @@ L_08886F44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886F5C: @@ -6809,8 +9615,21 @@ L_08886F5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886F7Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 686u, 0x08886F7Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886F7Cu) goto L_08886F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886F7C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8252))); @@ -6836,8 +9655,8 @@ L_08886F98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08886FB0: @@ -6849,8 +9668,21 @@ L_08886FB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08886FD0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 690u, 0x08886FD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08886FD0u) goto L_08886FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08886FD0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8256))); @@ -6876,8 +9708,8 @@ L_08886FEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887004: @@ -6889,8 +9721,21 @@ L_08887004: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08887024u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 694u, 0x08887024u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887024u) goto L_08887024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887024: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (16672u << 16u); @@ -6915,8 +9760,8 @@ L_0888705C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887074: @@ -6928,8 +9773,21 @@ L_08887074: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08887094u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 697u, 0x08887094u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887094u) goto L_08887094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887094: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (16672u << 16u); @@ -6954,8 +9812,8 @@ L_088870CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088870E4: @@ -6969,14 +9827,40 @@ L_088870E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0888710Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 700u, 0x0888710Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888710Cu) goto L_0888710C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888710C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08887118u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 701u, 0x08887118u, 0x08991264u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 261u, 0x08991264u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887118u) goto L_08887118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887118: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6987,8 +9871,8 @@ L_08887118: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887130: @@ -7002,14 +9886,40 @@ L_08887130: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08887158u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 703u, 0x08887158u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887158u) goto L_08887158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887158: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08887164u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 704u, 0x08887164u, 0x08991220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 256u, 0x08991220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887164u) goto L_08887164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887164: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7020,8 +9930,8 @@ L_08887164: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888717C: @@ -7033,8 +9943,21 @@ L_0888717C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0888719Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 706u, 0x0888719Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888719Cu) goto L_0888719C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888719C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (16672u << 16u); @@ -7059,8 +9982,8 @@ L_088871D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088871EC: @@ -7074,14 +9997,40 @@ L_088871EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08887214u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 709u, 0x08887214u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887214u) goto L_08887214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887214: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08887220u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 710u, 0x08887220u, 0x089912E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 271u, 0x089912E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887220u) goto L_08887220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887220: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7092,8 +10041,8 @@ L_08887220: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887238: @@ -7107,14 +10056,40 @@ L_08887238: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08887260u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 712u, 0x08887260u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887260u) goto L_08887260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887260: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x0888726Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 713u, 0x0888726Cu, 0x089912A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 266u, 0x089912A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888726Cu) goto L_0888726C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888726C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7125,8 +10100,8 @@ L_0888726C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887284: @@ -7138,8 +10113,21 @@ L_08887284: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088872A4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 715u, 0x088872A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088872A4u) goto L_088872A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088872A4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8272))); @@ -7165,8 +10153,8 @@ L_088872C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088872D8: @@ -7178,8 +10166,21 @@ L_088872D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088872F8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 719u, 0x088872F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088872F8u) goto L_088872F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088872F8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8276))); @@ -7205,8 +10206,8 @@ L_08887314: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888732C: @@ -7218,8 +10219,21 @@ L_0888732C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0888734Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 723u, 0x0888734Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888734Cu) goto L_0888734C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888734C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8280))); @@ -7245,8 +10259,8 @@ L_08887368: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887380: @@ -7258,8 +10272,21 @@ L_08887380: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088873A0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 727u, 0x088873A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088873A0u) goto L_088873A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088873A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (2240u << 16u); @@ -7274,8 +10301,8 @@ L_088873A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088873D4: @@ -7289,8 +10316,21 @@ L_088873D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088873FCu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 729u, 0x088873FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088873FCu) goto L_088873FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088873FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -7453,8 +10493,8 @@ L_088874BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088874D4: @@ -7466,8 +10506,21 @@ L_088874D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088874F4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 753u, 0x088874F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088874F4u) goto L_088874F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088874F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8296))); @@ -7478,8 +10531,8 @@ L_088874F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887518: @@ -7491,8 +10544,21 @@ L_08887518: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08887538u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 755u, 0x08887538u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887538u) goto L_08887538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887538: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8300))); @@ -7503,8 +10569,8 @@ L_08887538: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888755C: @@ -7516,8 +10582,21 @@ L_0888755C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0888757Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 757u, 0x0888757Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888757Cu) goto L_0888757C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888757C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8304))); @@ -7543,8 +10622,8 @@ L_08887598: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088875B0: @@ -7556,8 +10635,21 @@ L_088875B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088875D0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 761u, 0x088875D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088875D0u) goto L_088875D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088875D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8308))); @@ -7568,8 +10660,8 @@ L_088875D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088875F4: @@ -7583,8 +10675,21 @@ L_088875F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0888761Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 763u, 0x0888761Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888761Cu) goto L_0888761C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888761C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -7603,8 +10708,8 @@ L_0888761C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887654: @@ -7635,8 +10740,8 @@ L_0888767C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887688: @@ -7661,8 +10766,8 @@ L_088876A0: L_088876B4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088876BC: @@ -7705,8 +10810,8 @@ L_088876FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887708: @@ -7829,8 +10934,8 @@ L_088877D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088877F4: @@ -7908,8 +11013,8 @@ L_0888785C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887874: @@ -7990,8 +11095,8 @@ L_08887904: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887918: @@ -8107,15 +11212,15 @@ L_088879F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887A04: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887A0C: @@ -8168,8 +11273,8 @@ L_08887A54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887A68: @@ -8178,8 +11283,8 @@ L_08887A68: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887A7C: @@ -8188,8 +11293,8 @@ L_08887A7C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887A90: @@ -8232,39 +11337,39 @@ L_08887AD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887ADC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887AE4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887AEC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887AF4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887AFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887B04: @@ -8290,8 +11395,8 @@ L_08887B10: L_08887B28: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(0), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887B30: @@ -8337,8 +11442,8 @@ L_08887B74: aot_mem.aot_direct_store16(aot_gpr_6 + static_cast(0), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887B80: @@ -8366,8 +11471,8 @@ L_08887BA4: aot_mem.aot_direct_store16(aot_gpr_6 + static_cast(0), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887BB0: @@ -8429,8 +11534,8 @@ L_08887C14: aot_mem.aot_direct_store16(ctx.gpr[7] + static_cast(0), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887C20: @@ -8444,14 +11549,27 @@ L_08887C20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08887C48u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(17104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 862u, 0x08887C48u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887C48u) goto L_08887C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887C48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887C54: @@ -8463,8 +11581,21 @@ L_08887C54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08887C74u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(17092)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 864u, 0x08887C74u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887C74u) goto L_08887C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887C74: aot_gpr_31 = (0x08887C7Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25976)); @@ -8474,8 +11605,8 @@ L_08887C7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887C88: @@ -8530,8 +11661,8 @@ L_08887CDC: goto L_08887CF4; L_08887CF4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887CFC: @@ -8592,8 +11723,8 @@ L_08887D60: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1548), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887DC4: @@ -8686,8 +11817,8 @@ L_08887E40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887E54: @@ -8704,8 +11835,21 @@ L_08887E54: } L_08887E6C: aot_gpr_31 = (0x08887E74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 890u, 0x08887E74u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887E74u) goto L_08887E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887E74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8716,8 +11860,21 @@ L_08887E74: L_08887E7C: aot_gpr_31 = (0x08887E84u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 892u, 0x08887E84u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887E84u) goto L_08887E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887E84: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(0), static_cast(0u)); goto L_08887E88; @@ -8726,8 +11883,8 @@ L_08887E88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08887E98: @@ -8832,8 +11989,21 @@ L_08887F30: aot_gpr_4 = (0u | 2u); aot_gpr_31 = (0x08887F3Cu); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1399), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 906u, 0x08887F3Cu, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887F3Cu) goto L_08887F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887F3C: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[17] = (0u | 113u); @@ -8853,8 +12023,21 @@ L_08887F44: L_08887F50: aot_gpr_31 = (0x08887F58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 909u, 0x08887F58u, 0x08889CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 531u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 531u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 531u, 0x08889CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887F58u) goto L_08887F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887F58: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1398))); aot_gpr_5 = (2237u << 16u); @@ -8870,12 +12053,38 @@ L_08887F58: L_08887F80: aot_gpr_31 = (0x08887F88u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 911u, 0x08887F88u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887F88u) goto L_08887F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887F88: aot_gpr_31 = (0x08887F90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 912u, 0x08887F90u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887F90u) goto L_08887F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887F90: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1399))); @@ -8885,20 +12094,72 @@ L_08887F90: L_08887F98: aot_gpr_31 = (0x08887FA0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 914u, 0x08887FA0u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887FA0u) goto L_08887FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887FA0: aot_gpr_31 = (0x08887FA8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 915u, 0x08887FA8u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887FA8u) goto L_08887FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887FA8: aot_gpr_31 = (0x08887FB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 916u, 0x08887FB0u, 0x08934DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 206u, 0x08934DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887FB0u) goto L_08887FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887FB0: aot_gpr_31 = (0x08887FB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0032->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0032_entry, 917u, 0x08887FB8u, 0x0893441Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 57u, 0x0893441Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08887FB8u) goto L_08887FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08887FB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0033.cpp b/profiles/vcs/generated/generated_unit_0033.cpp index 938dde4..69e69b2 100644 --- a/profiles/vcs/generated/generated_unit_0033.cpp +++ b/profiles/vcs/generated/generated_unit_0033.cpp @@ -1247,6 +1247,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08888000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1263,8 +1287,8 @@ LOCAL_SCHED_BOUNDARY: L_08888000: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888008: @@ -1295,22 +1319,22 @@ L_08888040: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888050: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1540), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888058: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1552), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888060: @@ -1343,8 +1367,8 @@ L_08888084: goto L_08888088; L_08888088: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888090: @@ -1391,28 +1415,93 @@ L_088880D8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088880E4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 18u, 0x088880E4u, 0x08986064u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 548u, 0x08986064u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088880E4u) goto L_088880E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088880E4: aot_gpr_31 = (0x088880ECu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 19u, 0x088880ECu, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088880ECu) goto L_088880EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088880EC: ctx.gpr[17] = (0u | 0u); goto L_088880F0; L_088880F0: aot_gpr_31 = (0x088880F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 21u, 0x088880F8u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088880F8u) goto L_088880F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088880F8: aot_gpr_31 = (0x08888100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 22u, 0x08888100u, 0x08934DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 206u, 0x08934DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888100u) goto L_08888100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888100: aot_gpr_31 = (0x08888108u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 23u, 0x08888108u, 0x0893441Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 57u, 0x0893441Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888108u) goto L_08888108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888108: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 5 ? 1u : 0u); @@ -1424,8 +1513,21 @@ L_08888108: } L_08888118: aot_gpr_31 = (0x08888120u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 25u, 0x08888120u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888120u) goto L_08888120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888120: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1436,20 +1538,72 @@ L_08888120: L_08888128: aot_gpr_31 = (0x08888130u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 27u, 0x08888130u, 0x08AABB30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 407u, 0x08AABB30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888130u) goto L_08888130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888130: aot_gpr_31 = (0x08888138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 28u, 0x08888138u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888138u) goto L_08888138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888138: aot_gpr_31 = (0x08888140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 29u, 0x08888140u, 0x08934DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 206u, 0x08934DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888140u) goto L_08888140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888140: aot_gpr_31 = (0x08888148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 30u, 0x08888148u, 0x0893441Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 57u, 0x0893441Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888148u) goto L_08888148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888148: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1464,8 +1618,21 @@ L_08888150: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08888168u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 32u, 0x08888168u, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888168u) goto L_08888168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888168: aot_gpr_4 = (0u | 127u); aot_gpr_5 = (0u | 63u); @@ -1486,8 +1653,8 @@ L_08888180: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888198: @@ -1542,8 +1709,8 @@ L_088881FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888208: @@ -1577,8 +1744,21 @@ L_0888822C: } L_0888823C: aot_gpr_31 = (0x08888244u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 46u, 0x08888244u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888244u) goto L_08888244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888244: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1589,20 +1769,72 @@ L_08888244: L_0888824C: aot_gpr_31 = (0x08888254u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 48u, 0x08888254u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888254u) goto L_08888254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888254: aot_gpr_31 = (0x0888825Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 49u, 0x0888825Cu, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888825Cu) goto L_0888825C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888825C: aot_gpr_31 = (0x08888264u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 50u, 0x08888264u, 0x08934DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 206u, 0x08934DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888264u) goto L_08888264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888264: aot_gpr_31 = (0x0888826Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 51u, 0x0888826Cu, 0x0893441Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 57u, 0x0893441Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888826Cu) goto L_0888826C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888826C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1619,8 +1851,8 @@ L_0888827C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888828C: @@ -1677,8 +1909,21 @@ L_088882E4: } L_088882F4: aot_gpr_31 = (0x088882FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 61u, 0x088882FCu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088882FCu) goto L_088882FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088882FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08888300; @@ -1702,8 +1947,21 @@ L_08888310: } L_08888318: aot_gpr_31 = (0x08888320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 66u, 0x08888320u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888320u) goto L_08888320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888320: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1714,8 +1972,21 @@ L_08888320: L_08888328: aot_gpr_31 = (0x08888330u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 68u, 0x08888330u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888330u) goto L_08888330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888330: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1726,8 +1997,21 @@ L_08888330: } L_0888833C: aot_gpr_31 = (0x08888344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 70u, 0x08888344u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888344u) goto L_08888344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888344: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08888348; @@ -1831,8 +2115,8 @@ L_088883C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088883E0: @@ -1857,8 +2141,8 @@ L_088883F8: goto L_08888400; L_08888400: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888408: @@ -1866,15 +2150,15 @@ L_08888408: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1380), static_cast(ctx.gpr[6])); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1384), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888418: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(1416)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888420: @@ -1884,8 +2168,8 @@ L_08888420: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(28))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888438: @@ -1919,8 +2203,8 @@ L_08888464: } L_08888474: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888847C: @@ -1942,8 +2226,21 @@ L_088884A0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088884ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 99u, 0x088884ACu, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088884ACu) goto L_088884AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088884AC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1989,8 +2286,21 @@ L_088884E8: L_088884F0: aot_gpr_31 = (0x088884F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 106u, 0x088884F8u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088884F8u) goto L_088884F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088884F8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1397), static_cast(aot_gpr_2)); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2033,8 +2343,8 @@ L_08888524: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888853C: @@ -2086,8 +2396,8 @@ L_08888590: goto L_08888594; L_08888594: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888859C: @@ -2097,8 +2407,8 @@ L_0888859C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), ctx.gpr[6]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088885B4: @@ -2129,8 +2439,21 @@ L_088885E4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088885F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 123u, 0x088885F0u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088885F0u) goto L_088885F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088885F0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2197,8 +2520,21 @@ L_08888640: } L_0888864C: aot_gpr_31 = (0x08888654u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 133u, 0x08888654u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888654u) goto L_08888654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888654: aot_gpr_31 = (0x0888865Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); @@ -2287,8 +2623,8 @@ L_088886B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088886CC: @@ -2321,8 +2657,21 @@ L_08888704: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08888710u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 149u, 0x08888710u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888710u) goto L_08888710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888710: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2384,8 +2733,8 @@ L_08888754: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888876C: @@ -2395,8 +2744,21 @@ L_0888876C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08888784u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 159u, 0x08888784u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888784u) goto L_08888784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888784: aot_gpr_31 = (0x0888878Cu); aot_gpr_16 = (aot_gpr_2 | 0u); @@ -2595,8 +2957,8 @@ L_08888888: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888898: @@ -2630,8 +2992,8 @@ L_088888C4: goto L_088888D0; L_088888D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088888D8: @@ -2642,8 +3004,21 @@ L_088888D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088888F4u); ctx.gpr[17] = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 190u, 0x088888F4u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088888F4u) goto L_088888F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088888F4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2679,16 +3054,16 @@ L_08888914: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888928: aot_gpr_5 = (0u + static_cast(-1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888934: @@ -2699,8 +3074,21 @@ L_08888934: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x08888954u); ctx.gpr[18] = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 197u, 0x08888954u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888954u) goto L_08888954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888954: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2753,12 +3141,38 @@ L_08888990: L_0888899C: aot_gpr_31 = (0x088889A4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 205u, 0x088889A4u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088889A4u) goto L_088889A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088889A4: aot_gpr_31 = (0x088889ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 206u, 0x088889ACu, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088889ACu) goto L_088889AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088889AC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2769,20 +3183,72 @@ L_088889AC: L_088889B4: aot_gpr_31 = (0x088889BCu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 208u, 0x088889BCu, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088889BCu) goto L_088889BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088889BC: aot_gpr_31 = (0x088889C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 209u, 0x088889C4u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088889C4u) goto L_088889C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088889C4: aot_gpr_31 = (0x088889CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 210u, 0x088889CCu, 0x08934DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 206u, 0x08934DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088889CCu) goto L_088889CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088889CC: aot_gpr_31 = (0x088889D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 211u, 0x088889D4u, 0x0893441Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 57u, 0x0893441Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088889D4u) goto L_088889D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088889D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2856,14 +3322,40 @@ L_08888A30: goto L_08888A34; L_08888A34: aot_gpr_31 = (0x08888A3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 223u, 0x08888A3Cu, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888A3Cu) goto L_08888A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888A3C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08888A48u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 224u, 0x08888A48u, 0x08A06798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 627u, 0x08A06798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888A48u) goto L_08888A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888A48: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -2888,16 +3380,42 @@ L_08888A64: goto L_08888A68; L_08888A68: aot_gpr_31 = (0x08888A70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 229u, 0x08888A70u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888A70u) goto L_08888A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888A70: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08888A84u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 230u, 0x08888A84u, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888A84u) goto L_08888A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888A84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2925,14 +3443,40 @@ L_08888AA8: goto L_08888AAC; L_08888AAC: aot_gpr_31 = (0x08888AB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 235u, 0x08888AB4u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888AB4u) goto L_08888AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888AB4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08888AC0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 236u, 0x08888AC0u, 0x08A06798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 627u, 0x08A06798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888AC0u) goto L_08888AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888AC0: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -2971,8 +3515,21 @@ L_08888AF4: goto L_08888AF8; L_08888AF8: aot_gpr_31 = (0x08888B00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 243u, 0x08888B00u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888B00u) goto L_08888B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888B00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2991,8 +3548,21 @@ L_08888B14: goto L_08888B18; L_08888B18: aot_gpr_31 = (0x08888B20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 247u, 0x08888B20u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888B20u) goto L_08888B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888B20: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_31 = (0x08888B2Cu); @@ -3005,8 +3575,21 @@ L_08888B2C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08888B44u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 249u, 0x08888B44u, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888B44u) goto L_08888B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888B44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3024,8 +3607,8 @@ L_08888B4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888B64: @@ -3078,8 +3661,21 @@ L_08888BD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x08888BE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 255u, 0x08888BE8u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888BE8u) goto L_08888BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888BE8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -3343,8 +3939,8 @@ L_08888D54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888D84: @@ -3443,8 +4039,8 @@ L_08888E30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888E4C: @@ -3467,8 +4063,21 @@ L_08888E78: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08888E84u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 291u, 0x08888E84u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888E84u) goto L_08888E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888E84: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3562,8 +4171,8 @@ L_08888F18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888F30: @@ -3644,8 +4253,8 @@ L_08888FB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08888FC8: @@ -3666,8 +4275,21 @@ L_08888FC8: } L_08888FF0: aot_gpr_31 = (0x08888FF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 308u, 0x08888FF8u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08888FF8u) goto L_08888FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08888FF8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3726,8 +4348,21 @@ L_08889058: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08889074u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 315u, 0x08889074u, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889074u) goto L_08889074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889074: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3743,8 +4378,21 @@ L_0888907C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08889098u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 317u, 0x08889098u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889098u) goto L_08889098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889098: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3756,8 +4404,21 @@ L_08889098: L_088890A0: aot_gpr_31 = (0x088890A8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 319u, 0x088890A8u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088890A8u) goto L_088890A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088890A8: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3769,8 +4430,21 @@ L_088890A8: L_088890B0: aot_gpr_31 = (0x088890B8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 321u, 0x088890B8u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088890B8u) goto L_088890B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088890B8: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3782,8 +4456,21 @@ L_088890B8: L_088890C0: aot_gpr_31 = (0x088890C8u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 323u, 0x088890C8u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088890C8u) goto L_088890C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088890C8: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3795,8 +4482,21 @@ L_088890C8: L_088890D0: aot_gpr_31 = (0x088890D8u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 325u, 0x088890D8u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088890D8u) goto L_088890D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088890D8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3834,8 +4534,21 @@ L_08889110: } L_08889118: aot_gpr_31 = (0x08889120u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 331u, 0x08889120u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889120u) goto L_08889120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889120: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3880,8 +4593,21 @@ L_0888914C: L_08889178: aot_gpr_31 = (0x08889180u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 337u, 0x08889180u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889180u) goto L_08889180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889180: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1520), static_cast(ctx.gpr[17])); @@ -3916,8 +4642,21 @@ L_088891B0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088891CCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 341u, 0x088891CCu, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088891CCu) goto L_088891CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088891CC: aot_gpr_4 = (0u | 127u); aot_gpr_5 = (0u | 63u); @@ -3939,8 +4678,8 @@ L_088891E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889200: @@ -3982,8 +4721,8 @@ L_0888923C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23288))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889258: @@ -4062,8 +4801,21 @@ L_088892B8: } L_088892C4: aot_gpr_31 = (0x088892CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 354u, 0x088892CCu, 0x08AF99F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 278u, 0x08AF99F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088892CCu) goto L_088892CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088892CC: aot_gpr_4 = (0u | 19u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4096,8 +4848,21 @@ L_088892F4: goto L_088892FC; L_088892FC: aot_gpr_31 = (0x08889304u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 359u, 0x08889304u, 0x08AF99F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 278u, 0x08AF99F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889304u) goto L_08889304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889304: { const bool branch_taken = static_cast(aot_gpr_2) > 0; if (branch_taken) { @@ -4334,15 +5099,15 @@ L_0888946C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888947C: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889484: @@ -4354,8 +5119,21 @@ L_08889484: aot_gpr_16 = (ctx.gpr[6] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x088894ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 392u, 0x088894ACu, 0x08887C88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 866u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 866u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 866u, 0x08887C88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088894ACu) goto L_088894AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088894AC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8002))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -4604,8 +5382,21 @@ L_08889698: } L_088896A8: aot_gpr_31 = (0x088896B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 410u, 0x088896B0u, 0x08AF99F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 278u, 0x08AF99F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088896B0u) goto L_088896B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088896B0: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (16800u << 16u); @@ -4727,8 +5518,8 @@ L_088897C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088897E0: @@ -4754,8 +5545,8 @@ L_088897E8: } L_08889814: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888981C: @@ -4821,8 +5612,8 @@ L_08889894: } L_0888989C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088898A4: @@ -4834,8 +5625,21 @@ L_088898A4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088898C4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 431u, 0x088898C4u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088898C4u) goto L_088898C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088898C4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4901,8 +5705,21 @@ L_08889914: } L_0888991C: aot_gpr_31 = (0x08889924u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 441u, 0x08889924u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889924u) goto L_08889924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889924: aot_gpr_31 = (0x0888992Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); @@ -4962,8 +5779,21 @@ L_08889968: L_08889970: aot_gpr_31 = (0x08889978u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 450u, 0x08889978u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889978u) goto L_08889978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889978: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (aot_gpr_2 & 255u); @@ -4989,8 +5819,8 @@ L_08889988: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888999C: @@ -5002,8 +5832,21 @@ L_0888999C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x088899BCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 454u, 0x088899BCu, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088899BCu) goto L_088899BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088899BC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5069,8 +5912,21 @@ L_08889A0C: } L_08889A14: aot_gpr_31 = (0x08889A1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 464u, 0x08889A1Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889A1Cu) goto L_08889A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889A1C: aot_gpr_31 = (0x08889A24u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); @@ -5148,8 +6004,21 @@ L_08889A98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x08889AA8u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 475u, 0x08889AA8u, 0x089C6F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 680u, 0x089C6F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889AA8u) goto L_08889AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889AA8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-25952), 0u); goto L_08889AAC; @@ -5177,8 +6046,21 @@ L_08889AC8: L_08889AD0: aot_gpr_31 = (0x08889AD8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 480u, 0x08889AD8u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889AD8u) goto L_08889AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889AD8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (aot_gpr_2 & 255u); @@ -5212,8 +6094,8 @@ L_08889AF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889B04: @@ -5361,8 +6243,8 @@ L_08889BA4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23216))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889BBC: @@ -5417,8 +6299,8 @@ L_08889BF4: } L_08889BFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889C04: @@ -5459,8 +6341,8 @@ L_08889C30: goto L_08889C34; L_08889C34: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889C3C: @@ -5481,8 +6363,21 @@ L_08889C3C: } L_08889C64: aot_gpr_31 = (0x08889C6Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 518u, 0x08889C6Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889C6Cu) goto L_08889C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889C6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08889C70; @@ -5531,8 +6426,21 @@ L_08889CA4: } L_08889CAC: aot_gpr_31 = (0x08889CB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 526u, 0x08889CB4u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08889CB4u) goto L_08889CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08889CB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08889CB8; @@ -5564,14 +6472,14 @@ L_08889CD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889CF0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889CF8: @@ -5602,8 +6510,8 @@ L_08889D20: goto L_08889D24; L_08889D24: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889D2C: @@ -5867,8 +6775,8 @@ L_08889F38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08889F48: @@ -6104,8 +7012,8 @@ L_0888A0C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A0D8: @@ -6142,8 +7050,8 @@ L_0888A124: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A144: @@ -6157,23 +7065,36 @@ L_0888A158: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A164: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-25912), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A16C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0888A17Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 588u, 0x0888A17Cu, 0x08AABBB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 414u, 0x08AABBB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A17Cu) goto L_0888A17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A17C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6204,8 +7125,8 @@ L_0888A1A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A1B0: @@ -6247,20 +7168,20 @@ L_0888A1E4: } L_0888A1F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A1F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A200: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A208: @@ -6323,8 +7244,21 @@ L_0888A260: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0888A270u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 607u, 0x0888A270u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A270u) goto L_0888A270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A270: aot_gpr_31 = (0x0888A278u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25904)); @@ -6333,8 +7267,21 @@ L_0888A270: L_0888A278: aot_gpr_31 = (0x0888A280u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 609u, 0x0888A280u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A280u) goto L_0888A280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A280: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6448,8 +7395,8 @@ L_0888A2FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A310: @@ -6477,8 +7424,21 @@ L_0888A34C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0888A35Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-23336)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 628u, 0x0888A35Cu, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A35Cu) goto L_0888A35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A35C: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6493,13 +7453,39 @@ L_0888A368: ctx.gpr[6] = (0u | 18432u); aot_gpr_31 = (0x0888A37Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-23432)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 630u, 0x0888A37Cu, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A37Cu) goto L_0888A37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A37C: aot_gpr_31 = (0x0888A384u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 631u, 0x0888A384u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A384u) goto L_0888A384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A384: ctx.gpr[17] = (0u | 1u); goto L_0888A388; @@ -6571,13 +7557,39 @@ L_0888A3DC: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x0888A440u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 638u, 0x0888A440u, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A440u) goto L_0888A440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A440: aot_gpr_31 = (0x0888A448u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 639u, 0x0888A448u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A448u) goto L_0888A448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A448: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6595,13 +7607,39 @@ L_0888A454: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0888A474u); ctx.gpr[6] = (0u | 2048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 641u, 0x0888A474u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A474u) goto L_0888A474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A474: aot_gpr_31 = (0x0888A47Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 642u, 0x0888A47Cu, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A47Cu) goto L_0888A47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A47C: aot_gpr_4 = (static_cast(ctx.gpr[19]) < 9 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6767,8 +7805,21 @@ L_0888A5C8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1548), static_cast(0u)); aot_gpr_31 = (0x0888A660u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1552), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 653u, 0x0888A660u, 0x08AAB8F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 371u, 0x08AAB8F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A660u) goto L_0888A660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A660: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0))); @@ -6789,8 +7840,8 @@ L_0888A668: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A688: @@ -6809,8 +7860,21 @@ L_0888A688: } L_0888A6AC: aot_gpr_31 = (0x0888A6B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 657u, 0x0888A6B4u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A6B4u) goto L_0888A6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A6B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888A6B8; @@ -6861,16 +7925,42 @@ L_0888A6FC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0888A70Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 665u, 0x0888A70Cu, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A70Cu) goto L_0888A70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A70C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 110u); ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x0888A720u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 666u, 0x0888A720u, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A720u) goto L_0888A720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A720: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6893,8 +7983,21 @@ L_0888A738: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x0888A74Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 669u, 0x0888A74Cu, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A74Cu) goto L_0888A74C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A74C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1544))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -6919,8 +8022,21 @@ L_0888A768: } L_0888A774: aot_gpr_31 = (0x0888A77Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 673u, 0x0888A77Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A77Cu) goto L_0888A77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A77C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888A780; @@ -6945,8 +8061,21 @@ L_0888A790: } L_0888A79C: aot_gpr_31 = (0x0888A7A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 678u, 0x0888A7A4u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A7A4u) goto L_0888A7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A7A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888A7A8; @@ -7083,8 +8212,21 @@ L_0888A880: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6008), 0u); aot_gpr_31 = (0x0888A890u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(3), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 698u, 0x0888A890u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A890u) goto L_0888A890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A890: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (0u | 113u); @@ -7144,8 +8286,21 @@ L_0888A8C8: L_0888A8F4: aot_gpr_31 = (0x0888A8FCu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 706u, 0x0888A8FCu, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888A8FCu) goto L_0888A8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888A8FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7294,8 +8449,8 @@ L_0888A9CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888A9E4: @@ -7467,8 +8622,21 @@ L_0888ABD0: L_0888ABDC: aot_gpr_31 = (0x0888ABE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 740u, 0x0888ABE4u, 0x0899142Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 292u, 0x0899142Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888ABE4u) goto L_0888ABE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888ABE4: { const bool branch_taken = aot_gpr_16 != 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), std::bit_cast(ctx.fpr[0])); @@ -7544,8 +8712,8 @@ L_0888AC44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888AC84: @@ -7588,8 +8756,21 @@ L_0888ACD4: } L_0888ACDC: aot_gpr_31 = (0x0888ACE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 753u, 0x0888ACE4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888ACE4u) goto L_0888ACE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888ACE4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7624,8 +8805,21 @@ L_0888AD00: } L_0888AD0C: aot_gpr_31 = (0x0888AD14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 758u, 0x0888AD14u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AD14u) goto L_0888AD14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AD14: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7637,8 +8831,21 @@ L_0888AD14: } L_0888AD24: aot_gpr_31 = (0x0888AD2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 760u, 0x0888AD2Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AD2Cu) goto L_0888AD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AD2C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); ctx.gpr[17] = (0u | 261u); @@ -7650,8 +8857,21 @@ L_0888AD2C: } L_0888AD3C: aot_gpr_31 = (0x0888AD44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 762u, 0x0888AD44u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AD44u) goto L_0888AD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AD44: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 219u); @@ -7663,8 +8883,21 @@ L_0888AD44: } L_0888AD54: aot_gpr_31 = (0x0888AD5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 764u, 0x0888AD5Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AD5Cu) goto L_0888AD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AD5C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 207u); @@ -7676,8 +8909,21 @@ L_0888AD5C: } L_0888AD6C: aot_gpr_31 = (0x0888AD74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 766u, 0x0888AD74u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AD74u) goto L_0888AD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AD74: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 234u); @@ -7689,8 +8935,21 @@ L_0888AD74: } L_0888AD84: aot_gpr_31 = (0x0888AD8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 768u, 0x0888AD8Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AD8Cu) goto L_0888AD8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AD8C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 191u); @@ -7702,8 +8961,21 @@ L_0888AD8C: } L_0888AD9C: aot_gpr_31 = (0x0888ADA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 770u, 0x0888ADA4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888ADA4u) goto L_0888ADA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888ADA4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 279u); @@ -7715,8 +8987,21 @@ L_0888ADA4: } L_0888ADB4: aot_gpr_31 = (0x0888ADBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 772u, 0x0888ADBCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888ADBCu) goto L_0888ADBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888ADBC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 189u); @@ -7728,8 +9013,21 @@ L_0888ADBC: } L_0888ADCC: aot_gpr_31 = (0x0888ADD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 774u, 0x0888ADD4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888ADD4u) goto L_0888ADD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888ADD4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 194u); @@ -7741,8 +9039,21 @@ L_0888ADD4: } L_0888ADE4: aot_gpr_31 = (0x0888ADECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 776u, 0x0888ADECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888ADECu) goto L_0888ADEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888ADEC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -7753,8 +9064,21 @@ L_0888ADEC: } L_0888ADF8: aot_gpr_31 = (0x0888AE00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 778u, 0x0888AE00u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AE00u) goto L_0888AE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AE00: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 275u); @@ -7768,8 +9092,21 @@ L_0888AE10: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0888AE1Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 780u, 0x0888AE1Cu, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AE1Cu) goto L_0888AE1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AE1C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7925,8 +9262,8 @@ L_0888AEE8: ctx.gpr[17] = (static_cast(static_cast(ctx.gpr[17]) >> 2u)); jump_target = ctx.gpr[1]; ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888AF04: @@ -8005,8 +9342,21 @@ L_0888AF5C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888AF68u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 811u, 0x0888AF68u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AF68u) goto L_0888AF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AF68: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8030,8 +9380,21 @@ L_0888AF80: L_0888AF88: aot_gpr_31 = (0x0888AF90u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 816u, 0x0888AF90u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AF90u) goto L_0888AF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AF90: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8053,8 +9416,21 @@ L_0888AFA4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888AFB0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 819u, 0x0888AFB0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AFB0u) goto L_0888AFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AFB0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8078,8 +9454,21 @@ L_0888AFC8: L_0888AFD0: aot_gpr_31 = (0x0888AFD8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 824u, 0x0888AFD8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AFD8u) goto L_0888AFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AFD8: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8101,8 +9490,21 @@ L_0888AFEC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888AFF8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 827u, 0x0888AFF8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888AFF8u) goto L_0888AFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888AFF8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8126,8 +9528,21 @@ L_0888B010: L_0888B018: aot_gpr_31 = (0x0888B020u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 832u, 0x0888B020u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B020u) goto L_0888B020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B020: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8149,8 +9564,21 @@ L_0888B034: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888B040u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 835u, 0x0888B040u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B040u) goto L_0888B040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B040: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8174,8 +9602,21 @@ L_0888B058: L_0888B060: aot_gpr_31 = (0x0888B068u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 840u, 0x0888B068u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B068u) goto L_0888B068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B068: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8197,8 +9638,21 @@ L_0888B07C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888B088u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 843u, 0x0888B088u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B088u) goto L_0888B088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B088: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8222,8 +9676,21 @@ L_0888B0A0: L_0888B0A8: aot_gpr_31 = (0x0888B0B0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 848u, 0x0888B0B0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B0B0u) goto L_0888B0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B0B0: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8245,8 +9712,21 @@ L_0888B0C4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888B0D0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 851u, 0x0888B0D0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B0D0u) goto L_0888B0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B0D0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8270,8 +9750,21 @@ L_0888B0E8: L_0888B0F0: aot_gpr_31 = (0x0888B0F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 856u, 0x0888B0F8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B0F8u) goto L_0888B0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B0F8: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8293,8 +9786,21 @@ L_0888B10C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888B118u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 859u, 0x0888B118u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B118u) goto L_0888B118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B118: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8318,8 +9824,21 @@ L_0888B130: L_0888B138: aot_gpr_31 = (0x0888B140u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 864u, 0x0888B140u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B140u) goto L_0888B140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B140: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8341,8 +9860,21 @@ L_0888B154: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888B160u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 867u, 0x0888B160u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B160u) goto L_0888B160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B160: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8366,8 +9898,21 @@ L_0888B178: L_0888B180: aot_gpr_31 = (0x0888B188u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 872u, 0x0888B188u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B188u) goto L_0888B188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B188: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8389,8 +9934,21 @@ L_0888B19C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888B1A8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 875u, 0x0888B1A8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B1A8u) goto L_0888B1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B1A8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8414,8 +9972,21 @@ L_0888B1C0: L_0888B1C8: aot_gpr_31 = (0x0888B1D0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 880u, 0x0888B1D0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B1D0u) goto L_0888B1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B1D0: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8427,8 +9998,21 @@ L_0888B1D0: } L_0888B1DC: aot_gpr_31 = (0x0888B1E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 882u, 0x0888B1E4u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B1E4u) goto L_0888B1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B1E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888B1E8; @@ -8453,8 +10037,21 @@ L_0888B1F8: } L_0888B204: aot_gpr_31 = (0x0888B20Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 887u, 0x0888B20Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B20Cu) goto L_0888B20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B20C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888B210; @@ -8516,8 +10113,21 @@ L_0888B250: } L_0888B25C: aot_gpr_31 = (0x0888B264u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 898u, 0x0888B264u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B264u) goto L_0888B264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B264: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -8540,8 +10150,21 @@ L_0888B280: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0888B28Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 902u, 0x0888B28Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B28Cu) goto L_0888B28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B28C: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8565,8 +10188,21 @@ L_0888B2A4: L_0888B2AC: aot_gpr_31 = (0x0888B2B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 907u, 0x0888B2B4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B2B4u) goto L_0888B2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B2B4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); @@ -8587,8 +10223,21 @@ L_0888B2CC: goto L_0888B2D0; L_0888B2D0: aot_gpr_31 = (0x0888B2D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 912u, 0x0888B2D8u, 0x089BACE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 607u, 0x089BACE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B2D8u) goto L_0888B2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B2D8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8707,8 +10356,21 @@ L_0888B388: } L_0888B394: aot_gpr_31 = (0x0888B39Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 927u, 0x0888B39Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B39Cu) goto L_0888B39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B39C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888B3A0; @@ -8822,8 +10484,21 @@ L_0888B458: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888B468u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 943u, 0x0888B468u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B468u) goto L_0888B468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B468: aot_gpr_4 = (0u | 111u); { const bool branch_taken = ctx.gpr[17] == aot_gpr_4; @@ -8855,8 +10530,21 @@ L_0888B490: aot_gpr_4 = (ctx.gpr[28] + static_cast(-25740)); aot_gpr_31 = (0x0888B4A0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 947u, 0x0888B4A0u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B4A0u) goto L_0888B4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B4A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); ctx.fpr[20] = std::bit_cast(0u); @@ -8879,8 +10567,21 @@ L_0888B4D4: ctx.gpr[6] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0888B4E8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 949u, 0x0888B4E8u, 0x08B0C6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 93u, 0x08B0C6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B4E8u) goto L_0888B4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B4E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -8900,8 +10601,21 @@ L_0888B50C: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0888B524u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 951u, 0x0888B524u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B524u) goto L_0888B524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B524: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_4 = (aot_gpr_4 + static_cast(-110)); @@ -8935,8 +10649,21 @@ L_0888B540: L_0888B564: aot_gpr_31 = (0x0888B56Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 955u, 0x0888B56Cu, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B56Cu) goto L_0888B56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B56C: aot_gpr_5 = (0u | 0u); aot_gpr_4 = (aot_gpr_29 | 0u); @@ -8979,8 +10706,21 @@ L_0888B5BC: aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x0888B5D0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 960u, 0x0888B5D0u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B5D0u) goto L_0888B5D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B5D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8998,8 +10738,21 @@ L_0888B5D8: } L_0888B5E4: aot_gpr_31 = (0x0888B5ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 963u, 0x0888B5ECu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B5ECu) goto L_0888B5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B5EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888B5F0; @@ -9019,18 +10772,57 @@ L_0888B604: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888B610u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 967u, 0x0888B610u, 0x08887B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 846u, 0x08887B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B610u) goto L_0888B610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B610: aot_gpr_31 = (0x0888B618u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 968u, 0x0888B618u, 0x08B0C748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 96u, 0x08B0C748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B618u) goto L_0888B618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B618: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0888B624u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 969u, 0x0888B624u, 0x08AFD8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 283u, 0x08AFD8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B624u) goto L_0888B624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B624: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9073,8 +10865,8 @@ L_0888B658: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888B67C: @@ -9093,16 +10885,42 @@ L_0888B67C: L_0888B6A0: aot_gpr_31 = (0x0888B6A8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 976u, 0x0888B6A8u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B6A8u) goto L_0888B6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B6A8: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(23248)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); aot_gpr_31 = (0x0888B6BCu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 977u, 0x0888B6BCu, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B6BCu) goto L_0888B6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B6BC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9238,8 +11056,21 @@ L_0888B788: } L_0888B79C: aot_gpr_31 = (0x0888B7A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 995u, 0x0888B7A4u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B7A4u) goto L_0888B7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B7A4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9290,8 +11121,21 @@ L_0888B7F4: L_0888B808: aot_gpr_31 = (0x0888B810u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1002u, 0x0888B810u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B810u) goto L_0888B810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B810: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9302,8 +11146,21 @@ L_0888B810: L_0888B818: aot_gpr_31 = (0x0888B820u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-25736), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1004u, 0x0888B820u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B820u) goto L_0888B820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B820: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1403)))))); @@ -9369,8 +11226,21 @@ L_0888B874: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0888B88Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1013u, 0x0888B88Cu, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B88Cu) goto L_0888B88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B88C: aot_gpr_4 = (0u | 3u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(5), static_cast(aot_gpr_4)); @@ -9418,8 +11288,21 @@ L_0888B8D8: } L_0888B8E0: aot_gpr_31 = (0x0888B8E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1020u, 0x0888B8E8u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B8E8u) goto L_0888B8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B8E8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9467,8 +11350,21 @@ L_0888B914: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0888B940u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1026u, 0x0888B940u, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B940u) goto L_0888B940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B940: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9519,8 +11415,21 @@ L_0888B970: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0888B990u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1033u, 0x0888B990u, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B990u) goto L_0888B990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B990: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9540,8 +11449,21 @@ L_0888B9A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888B9B0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1036u, 0x0888B9B0u, 0x08887E98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 894u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 894u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 894u, 0x08887E98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B9B0u) goto L_0888B9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B9B0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1513))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9559,8 +11481,21 @@ L_0888B9BC: goto L_0888B9C8; L_0888B9C8: aot_gpr_31 = (0x0888B9D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1039u, 0x0888B9D0u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888B9D0u) goto L_0888B9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888B9D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888B9D4; @@ -9615,8 +11550,21 @@ L_0888BA08: L_0888BA14: aot_gpr_31 = (0x0888BA1Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1048u, 0x0888BA1Cu, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BA1Cu) goto L_0888BA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BA1C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -9629,8 +11577,21 @@ L_0888BA28: ctx.gpr[17] = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x0888BA34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1050u, 0x0888BA34u, 0x0880A704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 559u, 0x0880A704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BA34u) goto L_0888BA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BA34: aot_gpr_4 = (static_cast(aot_gpr_2) < 126 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9642,20 +11603,59 @@ L_0888BA34: L_0888BA40: aot_gpr_31 = (0x0888BA48u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1052u, 0x0888BA48u, 0x0880A704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 559u, 0x0880A704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BA48u) goto L_0888BA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BA48: aot_gpr_5 = (aot_gpr_2 + static_cast(10)); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x0888BA58u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1053u, 0x0888BA58u, 0x0880A6F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 557u, 0x0880A6F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BA58u) goto L_0888BA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BA58: aot_gpr_31 = (0x0888BA60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1054u, 0x0888BA60u, 0x0880A704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 559u, 0x0880A704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BA60u) goto L_0888BA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BA60: aot_gpr_4 = (static_cast(aot_gpr_2) < 128 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9669,8 +11669,21 @@ L_0888BA6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0888BA7Cu); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1056u, 0x0888BA7Cu, 0x0880A6F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 557u, 0x0880A6F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BA7Cu) goto L_0888BA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BA7C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(6))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(7))); @@ -9709,8 +11722,8 @@ L_0888BAB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888BAD0: @@ -9735,8 +11748,21 @@ L_0888BB0C: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0888BB18u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1063u, 0x0888BB18u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BB18u) goto L_0888BB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BB18: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1406))); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1406), static_cast(0u)); @@ -9757,8 +11783,8 @@ L_0888BB38: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-23112))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888BB50: @@ -9868,8 +11894,21 @@ L_0888BBD8: L_0888BBE0: aot_gpr_31 = (0x0888BBE8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1081u, 0x0888BBE8u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BBE8u) goto L_0888BBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BBE8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9888,8 +11927,21 @@ L_0888BBF4: L_0888BBFC: aot_gpr_31 = (0x0888BC04u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1085u, 0x0888BC04u, 0x0898D410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 461u, 0x0898D410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BC04u) goto L_0888BC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BC04: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9905,8 +11957,21 @@ L_0888BC0C: L_0888BC14: aot_gpr_31 = (0x0888BC1Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1088u, 0x0888BC1Cu, 0x0898D464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 468u, 0x0898D464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BC1Cu) goto L_0888BC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BC1C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9962,8 +12027,21 @@ L_0888BC58: L_0888BC68: aot_gpr_31 = (0x0888BC70u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1097u, 0x0888BC70u, 0x0898D410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 461u, 0x0898D410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BC70u) goto L_0888BC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BC70: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-25952))); { const bool branch_taken = aot_gpr_2 == 0u; @@ -9993,8 +12071,21 @@ L_0888BC90: } L_0888BC9C: aot_gpr_31 = (0x0888BCA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1101u, 0x0888BCA4u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BCA4u) goto L_0888BCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BCA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888BCA8; @@ -10031,8 +12122,21 @@ L_0888BCD0: } L_0888BCDC: aot_gpr_31 = (0x0888BCE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1107u, 0x0888BCE4u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BCE4u) goto L_0888BCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BCE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888BCE8; @@ -10426,8 +12530,21 @@ L_0888BF88: } L_0888BF94: aot_gpr_31 = (0x0888BF9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0033->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0033_entry, 1161u, 0x0888BF9Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888BF9Cu) goto L_0888BF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888BF9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_0888BFA0; diff --git a/profiles/vcs/generated/generated_unit_0034.cpp b/profiles/vcs/generated/generated_unit_0034.cpp index 5f610ac..833faf8 100644 --- a/profiles/vcs/generated/generated_unit_0034.cpp +++ b/profiles/vcs/generated/generated_unit_0034.cpp @@ -714,6 +714,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0888C000u; + if (local_delta_v813 >= 16356u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -756,8 +780,21 @@ L_0888C024: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0888C040u); aot_gpr_6 = (0u | 195u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 5u, 0x0888C040u, 0x089B83C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 40u, 0x089B83C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C040u) goto L_0888C040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C040: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-25732), aot_gpr_4); @@ -765,8 +802,21 @@ L_0888C040: L_0888C048: aot_gpr_31 = (0x0888C050u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 7u, 0x0888C050u, 0x08985E58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 524u, 0x08985E58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C050u) goto L_0888C050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C050: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -782,8 +832,21 @@ L_0888C05C: ctx.gpr[20] = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0888C070u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 9u, 0x0888C070u, 0x0888999Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 453u, 0x0888999Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C070u) goto L_0888C070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C070: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1397), static_cast(ctx.gpr[2])); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1397))); @@ -826,8 +889,21 @@ L_0888C09C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0888C0B8u); aot_gpr_6 = (0u | 178u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 15u, 0x0888C0B8u, 0x089B83C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 40u, 0x089B83C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C0B8u) goto L_0888C0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C0B8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6008), 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-25952), 0u); @@ -852,8 +928,21 @@ L_0888C0D0: L_0888C0D8: aot_gpr_31 = (0x0888C0E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 19u, 0x0888C0E0u, 0x08889200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 344u, 0x08889200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C0E0u) goto L_0888C0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C0E0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1520))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -916,8 +1005,21 @@ L_0888C140: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0888C15Cu); aot_gpr_6 = (0u | 195u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 27u, 0x0888C15Cu, 0x089B83C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 40u, 0x089B83C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C15Cu) goto L_0888C15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C15C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); { const bool branch_taken = 0u == 0u; @@ -954,8 +1056,21 @@ L_0888C184: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888C190u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 32u, 0x0888C190u, 0x08889B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 484u, 0x08889B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C190u) goto L_0888C190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C190: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[17] = (0u + static_cast(-1)); @@ -978,8 +1093,21 @@ L_0888C1A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888C1B4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 35u, 0x0888C1B4u, 0x08889C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 510u, 0x08889C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C1B4u) goto L_0888C1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C1B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1030,8 +1158,21 @@ L_0888C200: L_0888C208: aot_gpr_31 = (0x0888C210u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 42u, 0x0888C210u, 0x088898A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 430u, 0x088898A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C210u) goto L_0888C210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C210: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1397), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1397))); @@ -1070,8 +1211,21 @@ L_0888C244: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x0888C250u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 48u, 0x0888C250u, 0x089C6F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 680u, 0x089C6F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C250u) goto L_0888C250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C250: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1099,12 +1253,38 @@ L_0888C264: L_0888C270: aot_gpr_31 = (0x0888C278u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 52u, 0x0888C278u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C278u) goto L_0888C278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C278: aot_gpr_31 = (0x0888C280u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 53u, 0x0888C280u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C280u) goto L_0888C280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C280: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1129,8 +1309,21 @@ L_0888C288: L_0888C2A8: aot_gpr_31 = (0x0888C2B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 56u, 0x0888C2B0u, 0x088897E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 420u, 0x088897E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C2B0u) goto L_0888C2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C2B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1141,8 +1334,21 @@ L_0888C2B0: L_0888C2B8: aot_gpr_31 = (0x0888C2C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 58u, 0x0888C2C0u, 0x08889200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 344u, 0x08889200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C2C0u) goto L_0888C2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C2C0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1520))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1160,8 +1366,21 @@ L_0888C2CC: L_0888C2DC: aot_gpr_31 = (0x0888C2E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 61u, 0x0888C2E4u, 0x088897E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 420u, 0x088897E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C2E4u) goto L_0888C2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C2E4: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1512), static_cast(aot_gpr_4)); @@ -1179,8 +1398,8 @@ L_0888C2EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888C310: @@ -1220,8 +1439,21 @@ L_0888C350: } L_0888C35C: aot_gpr_31 = (0x0888C364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 68u, 0x0888C364u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C364u) goto L_0888C364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C364: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1259,8 +1491,21 @@ L_0888C388: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), 0u); aot_gpr_31 = (0x0888C3B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 72u, 0x0888C3B8u, 0x08889CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 531u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 531u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 531u, 0x08889CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C3B8u) goto L_0888C3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C3B8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-25728), static_cast(aot_gpr_4)); @@ -1271,13 +1516,39 @@ L_0888C3C0: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C3D4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 74u, 0x0888C3D4u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C3D4u) goto L_0888C3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C3D4: aot_gpr_31 = (0x0888C3DCu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 75u, 0x0888C3DCu, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C3DCu) goto L_0888C3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C3DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1326,8 +1597,21 @@ L_0888C41C: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C43Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 81u, 0x0888C43Cu, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C43Cu) goto L_0888C43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C43C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(26344))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1362,8 +1646,21 @@ L_0888C464: } L_0888C46C: aot_gpr_31 = (0x0888C474u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 86u, 0x0888C474u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C474u) goto L_0888C474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C474: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1402,21 +1699,60 @@ L_0888C498: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-25727), static_cast(ctx.gpr[18])); aot_gpr_31 = (0x0888C4CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 90u, 0x0888C4CCu, 0x08889CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 531u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 531u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 531u, 0x08889CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C4CCu) goto L_0888C4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C4CC: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 63u); aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C4E0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 91u, 0x0888C4E0u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C4E0u) goto L_0888C4E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C4E0: aot_gpr_31 = (0x0888C4E8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 92u, 0x0888C4E8u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C4E8u) goto L_0888C4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C4E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1427,8 +1763,21 @@ L_0888C4E8: L_0888C4F0: aot_gpr_31 = (0x0888C4F8u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-25727), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 94u, 0x0888C4F8u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C4F8u) goto L_0888C4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C4F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1488,8 +1837,21 @@ L_0888C54C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888C55Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 101u, 0x0888C55Cu, 0x0888981Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 423u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 423u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 423u, 0x0888981Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C55Cu) goto L_0888C55C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C55C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1403)))))); aot_gpr_6 = (0u | 113u); @@ -1507,8 +1869,21 @@ L_0888C56C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0888C584u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 103u, 0x0888C584u, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C584u) goto L_0888C584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C584: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1397))); aot_gpr_4 = (static_cast(aot_gpr_4) < 9 ? 1u : 0u); @@ -1541,16 +1916,42 @@ L_0888C5B0: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0888C5C0u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 108u, 0x0888C5C0u, 0x08889484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 391u, 0x08889484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C5C0u) goto L_0888C5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C5C0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (0u | 63u); aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C5D4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 109u, 0x0888C5D4u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C5D4u) goto L_0888C5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C5D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1569,14 +1970,40 @@ L_0888C5DC: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C604u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 111u, 0x0888C604u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C604u) goto L_0888C604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C604: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1403)))))); aot_gpr_31 = (0x0888C610u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 112u, 0x0888C610u, 0x08889CF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 532u, 0x08889CF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C610u) goto L_0888C610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C610: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1405), static_cast(ctx.gpr[18])); goto L_0888C614; @@ -1589,8 +2016,21 @@ L_0888C614: } L_0888C61C: aot_gpr_31 = (0x0888C624u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 115u, 0x0888C624u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C624u) goto L_0888C624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C624: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1620,8 +2060,21 @@ L_0888C63C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0888C66Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 118u, 0x0888C66Cu, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C66Cu) goto L_0888C66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C66C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1647,15 +2100,41 @@ L_0888C684: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0888C6A4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 121u, 0x0888C6A4u, 0x08AAB9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 377u, 0x08AAB9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C6A4u) goto L_0888C6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C6A4: ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0888C6B4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 122u, 0x0888C6B4u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C6B4u) goto L_0888C6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C6B4: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1667,8 +2146,21 @@ L_0888C6B4: L_0888C6BC: aot_gpr_31 = (0x0888C6C4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 124u, 0x0888C6C4u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C6C4u) goto L_0888C6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C6C4: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1680,8 +2172,21 @@ L_0888C6C4: L_0888C6CC: aot_gpr_31 = (0x0888C6D4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 126u, 0x0888C6D4u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C6D4u) goto L_0888C6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C6D4: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1693,8 +2198,21 @@ L_0888C6D4: L_0888C6DC: aot_gpr_31 = (0x0888C6E4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 128u, 0x0888C6E4u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C6E4u) goto L_0888C6E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C6E4: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1706,8 +2224,21 @@ L_0888C6E4: L_0888C6EC: aot_gpr_31 = (0x0888C6F4u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 130u, 0x0888C6F4u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C6F4u) goto L_0888C6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C6F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1757,16 +2288,42 @@ L_0888C734: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0888C744u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 137u, 0x0888C744u, 0x08889484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 391u, 0x08889484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C744u) goto L_0888C744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C744: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (0u | 63u); aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C758u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 138u, 0x0888C758u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C758u) goto L_0888C758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C758: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1776,8 +2333,21 @@ L_0888C758: } L_0888C760: aot_gpr_31 = (0x0888C768u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 140u, 0x0888C768u, 0x08A11520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 167u, 0x08A11520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C768u) goto L_0888C768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C768: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1873,8 +2443,21 @@ L_0888C7F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0888C800u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 145u, 0x0888C800u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C800u) goto L_0888C800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C800: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1886,8 +2469,21 @@ L_0888C800: L_0888C808: aot_gpr_31 = (0x0888C810u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 147u, 0x0888C810u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C810u) goto L_0888C810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C810: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1899,8 +2495,21 @@ L_0888C810: L_0888C818: aot_gpr_31 = (0x0888C820u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 149u, 0x0888C820u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C820u) goto L_0888C820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C820: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1912,8 +2521,21 @@ L_0888C820: L_0888C828: aot_gpr_31 = (0x0888C830u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 151u, 0x0888C830u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C830u) goto L_0888C830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C830: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1925,8 +2547,21 @@ L_0888C830: L_0888C838: aot_gpr_31 = (0x0888C840u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 153u, 0x0888C840u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C840u) goto L_0888C840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C840: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1942,8 +2577,21 @@ L_0888C848: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C864u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 155u, 0x0888C864u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C864u) goto L_0888C864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C864: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1965,8 +2613,21 @@ L_0888C878: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C88Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 158u, 0x0888C88Cu, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C88Cu) goto L_0888C88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C88C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1980,8 +2641,21 @@ L_0888C894: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C8A8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 160u, 0x0888C8A8u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C8A8u) goto L_0888C8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C8A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2008,8 +2682,21 @@ L_0888C8B0: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0888C8F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 162u, 0x0888C8F8u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C8F8u) goto L_0888C8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C8F8: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2021,8 +2708,21 @@ L_0888C8F8: L_0888C900: aot_gpr_31 = (0x0888C908u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 164u, 0x0888C908u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C908u) goto L_0888C908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C908: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2034,8 +2734,21 @@ L_0888C908: L_0888C910: aot_gpr_31 = (0x0888C918u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 166u, 0x0888C918u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C918u) goto L_0888C918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C918: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2047,8 +2760,21 @@ L_0888C918: L_0888C920: aot_gpr_31 = (0x0888C928u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 168u, 0x0888C928u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C928u) goto L_0888C928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C928: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2060,8 +2786,21 @@ L_0888C928: L_0888C930: aot_gpr_31 = (0x0888C938u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 170u, 0x0888C938u, 0x088CA414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 442u, 0x088CA414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C938u) goto L_0888C938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C938: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2089,16 +2828,42 @@ L_0888C958: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0888C970u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 174u, 0x0888C970u, 0x089B8234u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 30u, 0x089B8234u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C970u) goto L_0888C970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C970: aot_gpr_6 = (16988u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0888C984u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 175u, 0x0888C984u, 0x089B80C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 13u, 0x089B80C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C984u) goto L_0888C984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C984: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -2127,8 +2892,21 @@ L_0888C9A0: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C9B4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 180u, 0x0888C9B4u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C9B4u) goto L_0888C9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C9B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2142,8 +2920,21 @@ L_0888C9BC: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888C9D0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 182u, 0x0888C9D0u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888C9D0u) goto L_0888C9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888C9D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2208,8 +2999,21 @@ L_0888CA28: L_0888CA34: aot_gpr_31 = (0x0888CA3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 191u, 0x0888CA3Cu, 0x0888876Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 158u, 0x0888876Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CA3Cu) goto L_0888CA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CA3C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2242,8 +3046,21 @@ L_0888CA60: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0888CA70u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 196u, 0x0888CA70u, 0x08889484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 391u, 0x08889484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CA70u) goto L_0888CA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CA70: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 2u)); @@ -2254,8 +3071,21 @@ L_0888CA70: L_0888CA84: aot_gpr_31 = (0x0888CA8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 198u, 0x0888CA8Cu, 0x0888947Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 390u, 0x0888947Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CA8Cu) goto L_0888CA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CA8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2269,8 +3099,21 @@ L_0888CA94: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888CAA8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 200u, 0x0888CAA8u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CAA8u) goto L_0888CAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CAA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2300,8 +3143,21 @@ L_0888CAC8: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888CADCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 204u, 0x0888CADCu, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CADCu) goto L_0888CADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CADC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2315,8 +3171,21 @@ L_0888CAE4: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888CAF8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 206u, 0x0888CAF8u, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CAF8u) goto L_0888CAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CAF8: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1408), static_cast(0u)); @@ -2443,8 +3312,21 @@ L_0888CBC8: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x0888CBDCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 222u, 0x0888CBDCu, 0x0888A144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 584u, 0x0888A144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CBDCu) goto L_0888CBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CBDC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(5))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -2497,8 +3379,8 @@ L_0888CC28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888CC44: @@ -2507,8 +3389,21 @@ L_0888CC44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0888CC58u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 229u, 0x0888CC58u, 0x08887CFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 872u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 872u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 872u, 0x08887CFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CC58u) goto L_0888CC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CC58: aot_gpr_31 = (0x0888CC60u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25716)); @@ -2528,8 +3423,8 @@ L_0888CC60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888CC94: @@ -2560,8 +3455,8 @@ L_0888CCC8: goto L_0888CCCC; L_0888CCCC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888CCD4: @@ -2569,59 +3464,176 @@ L_0888CCD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0888CCE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 236u, 0x0888CCE8u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CCE8u) goto L_0888CCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CCE8: aot_gpr_31 = (0x0888CCF0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25676)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 237u, 0x0888CCF0u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CCF0u) goto L_0888CCF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CCF0: aot_gpr_31 = (0x0888CCF8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 238u, 0x0888CCF8u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CCF8u) goto L_0888CCF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CCF8: aot_gpr_4 = (ctx.gpr[28] + static_cast(-25664)); aot_gpr_31 = (0x0888CD04u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 239u, 0x0888CD04u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CD04u) goto L_0888CD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CD04: aot_gpr_16 = (2246u << 16u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1344), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25656)); aot_gpr_31 = (0x0888CD18u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 240u, 0x0888CD18u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CD18u) goto L_0888CD18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CD18: aot_gpr_16 = (aot_gpr_16 + static_cast(1344)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25648)); aot_gpr_31 = (0x0888CD2Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 241u, 0x0888CD2Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CD2Cu) goto L_0888CD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CD2C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25640)); aot_gpr_31 = (0x0888CD3Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 242u, 0x0888CD3Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CD3Cu) goto L_0888CD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CD3C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(12), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25628)); aot_gpr_31 = (0x0888CD4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 243u, 0x0888CD4Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CD4Cu) goto L_0888CD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CD4C: aot_gpr_31 = (0x0888CD54u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 244u, 0x0888CD54u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CD54u) goto L_0888CD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CD54: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8364), std::bit_cast(aot_fpr_12)); @@ -2629,8 +3641,8 @@ L_0888CD54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888CD6C: @@ -2713,8 +3725,8 @@ L_0888CE3C: L_0888CE4C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8368), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888CE54: @@ -2757,8 +3769,21 @@ L_0888CE88: ctx.fpr[19] = aot_fpr_15 + ctx.fpr[26]; aot_gpr_31 = (0x0888CEF0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 254u, 0x0888CEF0u, 0x08AF53A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 147u, 0x08AF53A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CEF0u) goto L_0888CEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CEF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2796,8 +3821,21 @@ L_0888CEF0: ctx.fpr[19] = ctx.fpr[19] + ctx.fpr[26]; aot_gpr_31 = (0x0888CF80u); ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 255u, 0x0888CF80u, 0x08AF53A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 147u, 0x08AF53A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888CF80u) goto L_0888CF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888CF80: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8383))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2855,8 +3893,21 @@ L_0888CFE8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0888D034u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 259u, 0x0888D034u, 0x08AF53A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 147u, 0x08AF53A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D034u) goto L_0888D034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D034: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -2871,8 +3922,8 @@ L_0888D034: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888D05C: @@ -2880,8 +3931,21 @@ L_0888D05C: { const std::uint32_t aot_run_words[16]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[30]), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(232), aot_run_words); } aot_gpr_31 = (0x0888D0A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 261u, 0x0888D0A8u, 0x08AC36A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 865u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 865u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 865u, 0x08AC36A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D0A8u) goto L_0888D0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D0A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2942,8 +4006,21 @@ L_0888D120: AOT_REGCACHE_SYNC_OUT(); return; L_0888D130: aot_gpr_31 = (0x0888D138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 268u, 0x0888D138u, 0x08AA8BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 58u, 0x08AA8BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D138u) goto L_0888D138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D138: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7649))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7648))); @@ -3069,8 +4146,21 @@ L_0888D278: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0888D290u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 278u, 0x0888D290u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D290u) goto L_0888D290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D290: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3147,8 +4237,21 @@ L_0888D31C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); aot_gpr_31 = (0x0888D35Cu); { const float fs = ctx.fpr[19]; const float ft = ctx.fpr[2]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 285u, 0x0888D35Cu, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D35Cu) goto L_0888D35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D35C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7648))); aot_gpr_4 = (static_cast(aot_gpr_4) < 22 ? 1u : 0u); @@ -3351,8 +4454,21 @@ L_0888D4E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0888D544u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 304u, 0x0888D544u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D544u) goto L_0888D544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D544: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3400,8 +4516,21 @@ L_0888D560: ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0888D5E0u); { const float fs = ctx.fpr[19]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 307u, 0x0888D5E0u, 0x08AA9B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 141u, 0x08AA9B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D5E0u) goto L_0888D5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D5E0: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(228))); goto L_0888D5E4; @@ -3421,8 +4550,21 @@ L_0888D5F4: aot_gpr_4 = (16672u << 16u); aot_gpr_31 = (0x0888D60Cu); ctx.fpr[30] = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 310u, 0x0888D60Cu, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D60Cu) goto L_0888D60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D60C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4264))); aot_gpr_4 = (0u | 1u); @@ -3452,8 +4594,21 @@ L_0888D638: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x0888D664u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 313u, 0x0888D664u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D664u) goto L_0888D664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D664: aot_gpr_4 = (17184u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -3501,8 +4656,21 @@ L_0888D684: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0888D6FCu); aot_gpr_6 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 316u, 0x0888D6FCu, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D6FCu) goto L_0888D6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D6FC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7900))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8396))); @@ -3631,8 +4799,21 @@ L_0888D810: ctx.gpr[7] = (aot_gpr_29 + static_cast(52)); aot_gpr_31 = (0x0888D86Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 324u, 0x0888D86Cu, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D86Cu) goto L_0888D86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D86C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3656,8 +4837,21 @@ L_0888D874: { const float fs = aot_fpr_15; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_15 = std::bit_cast(0x7FC00000u); else aot_fpr_15 = fs * ft; } aot_gpr_31 = (0x0888D8B0u); { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 326u, 0x0888D8B0u, 0x08AAA4ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 188u, 0x08AAA4ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D8B0u) goto L_0888D8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D8B0: ctx.gpr[19] = (ctx.gpr[19] + static_cast(3)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(12)); @@ -3672,8 +4866,21 @@ L_0888D8B0: } L_0888D8C8: aot_gpr_31 = (0x0888D8D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 328u, 0x0888D8D0u, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888D8D0u) goto L_0888D8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888D8D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); ctx.gpr[30] = (ctx.gpr[30] + static_cast(1)); @@ -3805,8 +5012,21 @@ L_0888D9A4: ctx.gpr[7] = (aot_gpr_29 + static_cast(52)); aot_gpr_31 = (0x0888DA28u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 338u, 0x0888DA28u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888DA28u) goto L_0888DA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888DA28: ctx.gpr[17] = (aot_gpr_16 + ctx.gpr[23]); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -4018,8 +5238,21 @@ L_0888DC58: ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0888DCC0u); ctx.fpr[18] = std::bit_cast(ctx.gpr[11]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 349u, 0x0888DCC0u, 0x08AAA9F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 219u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 219u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 219u, 0x08AAA9F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888DCC0u) goto L_0888DCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888DCC0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(ctx.gpr[21])); @@ -4045,8 +5278,21 @@ L_0888DCCC: } L_0888DCE4: aot_gpr_31 = (0x0888DCECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 353u, 0x0888DCECu, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888DCECu) goto L_0888DCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888DCEC: aot_gpr_4 = (0u | 8u); aot_gpr_31 = (0x0888DCF8u); @@ -4138,8 +5384,21 @@ L_0888DDD0: ctx.gpr[7] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0888DDE8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 359u, 0x0888DDE8u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888DDE8u) goto L_0888DDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888DDE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4160,8 +5419,21 @@ L_0888DE04: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(184))); aot_gpr_31 = (0x0888DE10u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 362u, 0x0888DE10u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888DE10u) goto L_0888DE10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888DE10: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -4214,8 +5486,21 @@ L_0888DE58: { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } aot_gpr_31 = (0x0888DEACu); ctx.fpr[18] = ctx.fpr[0] + ctx.fpr[19]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 366u, 0x0888DEACu, 0x08AA9F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 157u, 0x08AA9F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888DEACu) goto L_0888DEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888DEAC: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] + static_cast(4)); @@ -4230,8 +5515,21 @@ L_0888DEAC: } L_0888DEC4: aot_gpr_31 = (0x0888DECCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 368u, 0x0888DECCu, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888DECCu) goto L_0888DECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888DECC: aot_gpr_4 = (0u | 10u); aot_gpr_31 = (0x0888DED8u); @@ -4284,8 +5582,8 @@ L_0888DF08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888DF50: @@ -4464,8 +5762,21 @@ L_0888E130: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888E148u); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 382u, 0x0888E148u, 0x08AF5328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 138u, 0x08AF5328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E148u) goto L_0888E148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E148: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4493,8 +5804,21 @@ L_0888E150: ctx.gpr[17] = (ctx.lo); aot_gpr_31 = (0x0888E1ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 384u, 0x0888E1ACu, 0x08AA846Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 42u, 0x08AA846Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E1ACu) goto L_0888E1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E1AC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8384), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8372), static_cast(ctx.gpr[21])); @@ -4535,8 +5859,21 @@ L_0888E1AC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0888E248u); aot_fpr_15 = ctx.fpr[19] - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 385u, 0x0888E248u, 0x08AF53A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 147u, 0x08AF53A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E248u) goto L_0888E248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E248: aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8384))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); @@ -4563,8 +5900,21 @@ L_0888E248: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888E2ACu); ctx.fpr[19] = aot_fpr_15 + ctx.fpr[19]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 386u, 0x0888E2ACu, 0x08AF53A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 147u, 0x08AF53A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E2ACu) goto L_0888E2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E2AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8384))); @@ -4664,8 +6014,21 @@ L_0888E394: ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x0888E3D8u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 393u, 0x0888E3D8u, 0x08AF53A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 147u, 0x08AF53A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E3D8u) goto L_0888E3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E3D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4737,8 +6100,21 @@ L_0888E448: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0888E4C4u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 397u, 0x0888E4C4u, 0x08AF53A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 147u, 0x08AF53A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E4C4u) goto L_0888E4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E4C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_0888E4C8; @@ -4769,16 +6145,16 @@ L_0888E4E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888E51C: ctx.gpr[2] = (2185u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-6884)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888E528: @@ -4790,8 +6166,8 @@ L_0888E538: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888E544: @@ -4811,8 +6187,21 @@ L_0888E560: goto L_0888E568; L_0888E568: aot_gpr_31 = (0x0888E570u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 406u, 0x0888E570u, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E570u) goto L_0888E570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E570: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -4836,8 +6225,8 @@ L_0888E588: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888E5A0: @@ -4846,8 +6235,21 @@ L_0888E5A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0888E5B4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 410u, 0x0888E5B4u, 0x08A9A720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 300u, 0x08A9A720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E5B4u) goto L_0888E5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E5B4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(21528)); @@ -4861,8 +6263,8 @@ L_0888E5B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888E5E4: @@ -4886,13 +6288,39 @@ L_0888E600: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0888E61Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 413u, 0x0888E61Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E61Cu) goto L_0888E61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E61C: aot_gpr_31 = (0x0888E624u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 414u, 0x0888E624u, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E624u) goto L_0888E624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E624: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4917,8 +6345,21 @@ L_0888E64C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0888E658u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 417u, 0x0888E658u, 0x08A9A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E658u) goto L_0888E658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E658: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4941,14 +6382,14 @@ L_0888E66C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888E680: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888E688: @@ -5125,13 +6566,39 @@ L_0888E798: L_0888E7B8: aot_gpr_31 = (0x0888E7C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 427u, 0x0888E7C0u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E7C0u) goto L_0888E7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E7C0: aot_gpr_31 = (0x0888E7C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 428u, 0x0888E7C8u, 0x08860314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E7C8u) goto L_0888E7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E7C8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(72), aot_run_words); @@ -5144,8 +6611,8 @@ L_0888E7C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888E7E8: @@ -5158,8 +6625,21 @@ L_0888E7E8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(44), aot_run_words); } aot_gpr_31 = (0x0888E818u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 430u, 0x0888E818u, 0x08A9AC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E818u) goto L_0888E818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E818: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); ctx.gpr[18] = (2237u << 16u); @@ -5176,8 +6656,21 @@ L_0888E82C: aot_gpr_6 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0888E83Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 432u, 0x0888E83Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E83Cu) goto L_0888E83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E83C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5215,8 +6708,21 @@ L_0888E87C: ctx.gpr[20] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0888E89Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 436u, 0x0888E89Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E89Cu) goto L_0888E89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E89C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20])}; @@ -5284,8 +6790,21 @@ L_0888E90C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_31 = (0x0888E918u); aot_gpr_5 = (ctx.gpr[19] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 438u, 0x0888E918u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E918u) goto L_0888E918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E918: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5297,14 +6816,40 @@ L_0888E920: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_31 = (0x0888E92Cu); aot_gpr_5 = (ctx.gpr[19] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 440u, 0x0888E92Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E92Cu) goto L_0888E92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E92C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_31 = (0x0888E938u); aot_gpr_5 = (ctx.gpr[19] + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 441u, 0x0888E938u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E938u) goto L_0888E938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E938: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_5 = (ctx.gpr[19] + static_cast(112)); @@ -5324,13 +6869,39 @@ L_0888E938: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_31 = (0x0888E958u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 442u, 0x0888E958u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E958u) goto L_0888E958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E958: aot_gpr_31 = (0x0888E960u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 443u, 0x0888E960u, 0x08A69104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 161u, 0x08A69104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888E960u) goto L_0888E960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888E960: aot_gpr_31 = (0x0888E968u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5437,8 +7008,8 @@ L_0888EA24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888EA48: @@ -5466,8 +7037,21 @@ L_0888EA80: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0888EA90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 456u, 0x0888EA90u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EA90u) goto L_0888EA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EA90: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5481,8 +7065,21 @@ L_0888EA9C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0888EAB8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 458u, 0x0888EAB8u, 0x08A9ADF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 353u, 0x08A9ADF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EAB8u) goto L_0888EAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EAB8: aot_gpr_5 = (2237u << 16u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); @@ -5505,8 +7102,21 @@ L_0888EAE0: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0888EAF4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 460u, 0x0888EAF4u, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EAF4u) goto L_0888EAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EAF4: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5553,8 +7163,21 @@ L_0888EB1C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); aot_gpr_31 = (0x0888EB5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 466u, 0x0888EB5Cu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EB5Cu) goto L_0888EB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EB5C: aot_gpr_31 = (0x0888EB64u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5570,8 +7193,8 @@ L_0888EB64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888EB80: @@ -5583,14 +7206,27 @@ L_0888EB80: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0888EBA0u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(72), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 469u, 0x0888EBA0u, 0x08A9B9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 452u, 0x08A9B9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EBA0u) goto L_0888EBA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EBA0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888EBAC: @@ -5953,8 +7589,21 @@ L_0888ED70: aot_gpr_4 = (ctx.gpr[17] + static_cast(128)); aot_gpr_31 = (0x0888ED7Cu); aot_gpr_5 = (aot_gpr_16 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 484u, 0x0888ED7Cu, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888ED7Cu) goto L_0888ED7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888ED7C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5969,8 +7618,21 @@ L_0888ED88: aot_gpr_4 = (ctx.gpr[17] + static_cast(144)); aot_gpr_31 = (0x0888ED94u); aot_gpr_5 = (aot_gpr_16 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 487u, 0x0888ED94u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888ED94u) goto L_0888ED94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888ED94: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6004,8 +7666,8 @@ L_0888EDB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888EDD0: @@ -6037,20 +7699,59 @@ L_0888EE2C: aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x0888EE38u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 494u, 0x0888EE38u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EE38u) goto L_0888EE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EE38: aot_gpr_5 = (ctx.gpr[17] + static_cast(32)); aot_gpr_31 = (0x0888EE44u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 495u, 0x0888EE44u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EE44u) goto L_0888EE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EE44: aot_gpr_5 = (ctx.gpr[17] + static_cast(48)); aot_gpr_31 = (0x0888EE50u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 496u, 0x0888EE50u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EE50u) goto L_0888EE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EE50: aot_gpr_4 = (aot_gpr_16 & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6063,8 +7764,21 @@ L_0888EE5C: aot_gpr_5 = (ctx.gpr[17] + static_cast(64)); aot_gpr_31 = (0x0888EE68u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 498u, 0x0888EE68u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EE68u) goto L_0888EE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EE68: aot_gpr_4 = (aot_gpr_16 & 4u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6077,8 +7791,21 @@ L_0888EE74: aot_gpr_5 = (ctx.gpr[17] + static_cast(96)); aot_gpr_31 = (0x0888EE80u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 500u, 0x0888EE80u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EE80u) goto L_0888EE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EE80: aot_gpr_4 = (aot_gpr_16 & 8u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6091,8 +7818,21 @@ L_0888EE8C: aot_gpr_5 = (ctx.gpr[17] + static_cast(112)); aot_gpr_31 = (0x0888EE98u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 502u, 0x0888EE98u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EE98u) goto L_0888EE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EE98: aot_gpr_4 = (aot_gpr_16 & 16u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6105,8 +7845,21 @@ L_0888EEA4: aot_gpr_5 = (ctx.gpr[17] + static_cast(128)); aot_gpr_31 = (0x0888EEB0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 504u, 0x0888EEB0u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EEB0u) goto L_0888EEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EEB0: aot_gpr_4 = (aot_gpr_16 & 32u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6119,8 +7872,21 @@ L_0888EEBC: aot_gpr_5 = (ctx.gpr[17] + static_cast(144)); aot_gpr_31 = (0x0888EEC8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 506u, 0x0888EEC8u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888EEC8u) goto L_0888EEC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888EEC8: aot_gpr_4 = (aot_gpr_16 & 64u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6428,8 +8194,21 @@ L_0888EED4: aot_gpr_5 = (aot_gpr_5 + static_cast(192)); aot_gpr_31 = (0x0888F37Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 508u, 0x0888F37Cu, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F37Cu) goto L_0888F37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F37C: aot_gpr_4 = (aot_gpr_16 & 128u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6461,8 +8240,8 @@ L_0888F3B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888F3CC: @@ -6488,20 +8267,59 @@ L_0888F410: aot_gpr_5 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x0888F41Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 513u, 0x0888F41Cu, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F41Cu) goto L_0888F41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F41C: aot_gpr_5 = (aot_gpr_16 + static_cast(32)); aot_gpr_31 = (0x0888F428u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 514u, 0x0888F428u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F428u) goto L_0888F428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F428: aot_gpr_5 = (aot_gpr_16 + static_cast(48)); aot_gpr_31 = (0x0888F434u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 515u, 0x0888F434u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F434u) goto L_0888F434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F434: aot_gpr_4 = (ctx.gpr[20] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6514,8 +8332,21 @@ L_0888F440: aot_gpr_5 = (aot_gpr_16 + static_cast(64)); aot_gpr_31 = (0x0888F44Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 517u, 0x0888F44Cu, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F44Cu) goto L_0888F44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F44C: aot_gpr_4 = (ctx.gpr[20] & 4u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6528,8 +8359,21 @@ L_0888F458: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0888F464u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 519u, 0x0888F464u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F464u) goto L_0888F464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F464: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6558,8 +8402,21 @@ L_0888F47C: aot_gpr_5 = (aot_gpr_16 + static_cast(112)); aot_gpr_31 = (0x0888F488u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 522u, 0x0888F488u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F488u) goto L_0888F488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F488: aot_gpr_4 = (ctx.gpr[20] & 16u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6572,8 +8429,21 @@ L_0888F494: aot_gpr_5 = (aot_gpr_16 + static_cast(128)); aot_gpr_31 = (0x0888F4A0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 524u, 0x0888F4A0u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F4A0u) goto L_0888F4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F4A0: aot_gpr_4 = (ctx.gpr[20] & 32u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6586,8 +8456,21 @@ L_0888F4AC: aot_gpr_5 = (aot_gpr_16 + static_cast(144)); aot_gpr_31 = (0x0888F4B8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 526u, 0x0888F4B8u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F4B8u) goto L_0888F4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F4B8: aot_gpr_4 = (ctx.gpr[20] & 64u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6768,8 +8651,21 @@ L_0888F4C4: aot_gpr_5 = (aot_gpr_5 + static_cast(192)); aot_gpr_31 = (0x0888F770u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 528u, 0x0888F770u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F770u) goto L_0888F770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F770: aot_gpr_4 = (ctx.gpr[20] & 128u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6829,8 +8725,8 @@ L_0888F7F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888F814: @@ -6895,8 +8791,8 @@ L_0888F884: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888F890: @@ -6953,8 +8849,21 @@ L_0888F8FC: L_0888F900: aot_gpr_31 = (0x0888F908u); aot_gpr_5 = (ctx.gpr[17] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 551u, 0x0888F908u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F908u) goto L_0888F908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F908: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x0888F914u); @@ -6996,8 +8905,8 @@ L_0888F934: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888F948: @@ -7035,8 +8944,8 @@ L_0888F980: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888F9A4: @@ -7070,8 +8979,21 @@ L_0888F9E8: aot_gpr_4 = (aot_gpr_4 + static_cast(116)); aot_gpr_31 = (0x0888F9F4u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 565u, 0x0888F9F4u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888F9F4u) goto L_0888F9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888F9F4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7083,15 +9005,28 @@ L_0888F9F4: L_0888FA00: aot_gpr_31 = (0x0888FA08u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 567u, 0x0888FA08u, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FA08u) goto L_0888FA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FA08: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FA18: @@ -7103,14 +9038,27 @@ L_0888FA18: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0888FA38u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 569u, 0x0888FA38u, 0x08ADCEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 264u, 0x08ADCEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FA38u) goto L_0888FA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FA38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FA44: @@ -7120,8 +9068,21 @@ L_0888FA44: aot_gpr_16 = (aot_gpr_5 | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0888FA64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 571u, 0x0888FA64u, 0x08A696F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 258u, 0x08A696F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FA64u) goto L_0888FA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FA64: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(21704)); @@ -7139,8 +9100,21 @@ L_0888FA64: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0888FAA4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 572u, 0x0888FAA4u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FAA4u) goto L_0888FAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FAA4: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7151,8 +9125,8 @@ L_0888FAA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FABC: @@ -7189,14 +9163,40 @@ L_0888FAFC: aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(8))); aot_gpr_31 = (0x0888FB0Cu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 578u, 0x0888FB0Cu, 0x0880E5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 520u, 0x0880E5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FB0Cu) goto L_0888FB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FB0C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0888FB18u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 579u, 0x0888FB18u, 0x08A66220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 501u, 0x08A66220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FB18u) goto L_0888FB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FB18: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7219,8 +9219,8 @@ L_0888FB2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FB40: @@ -7247,45 +9247,110 @@ L_0888FB40: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(24)))))); aot_gpr_31 = (0x0888FB9Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 583u, 0x0888FB9Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FB9Cu) goto L_0888FB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FB9C: aot_gpr_5 = (ctx.gpr[2] + static_cast(16)); aot_gpr_31 = (0x0888FBA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 584u, 0x0888FBA8u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FBA8u) goto L_0888FBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FBA8: aot_gpr_31 = (0x0888FBB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 585u, 0x0888FBB0u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FBB0u) goto L_0888FBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FBB0: aot_gpr_31 = (0x0888FBB8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 586u, 0x0888FBB8u, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FBB8u) goto L_0888FBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FBB8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FBC8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0888FBD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 588u, 0x0888FBD8u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FBD8u) goto L_0888FBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FBD8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FBE4: @@ -7299,14 +9364,27 @@ L_0888FBE4: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[7] + static_cast(20))); aot_mem.aot_direct_store8(ctx.gpr[7] + static_cast(53), static_cast(0u)); aot_gpr_31 = (0x0888FC10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 590u, 0x0888FC10u, 0x08A68ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 76u, 0x08A68ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FC10u) goto L_0888FC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FC10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FC1C: @@ -7327,8 +9405,21 @@ L_0888FC3C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0888FC4Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 593u, 0x0888FC4Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FC4Cu) goto L_0888FC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FC4C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7353,8 +9444,8 @@ L_0888FC58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FC8C: @@ -7375,8 +9466,21 @@ L_0888FCAC: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0888FCBCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 597u, 0x0888FCBCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FCBCu) goto L_0888FCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FCBC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7410,8 +9514,21 @@ L_0888FCE8: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x0888FCF8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 600u, 0x0888FCF8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FCF8u) goto L_0888FCF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FCF8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -7446,8 +9563,21 @@ L_0888FD28: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x0888FD38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 603u, 0x0888FD38u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FD38u) goto L_0888FD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FD38: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -7478,8 +9608,8 @@ L_0888FD48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FD6C: @@ -7488,8 +9618,21 @@ L_0888FD6C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0888FD80u); aot_gpr_4 = (aot_gpr_4 + static_cast(-30320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 606u, 0x0888FD80u, 0x08A8D728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 273u, 0x08A8D728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FD80u) goto L_0888FD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FD80: aot_gpr_31 = (0x0888FD88u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25584)); @@ -7499,8 +9642,8 @@ L_0888FD88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FD94: @@ -7523,8 +9666,8 @@ L_0888FD94: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FDE0: @@ -7546,16 +9689,29 @@ L_0888FDE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0888FE2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 610u, 0x0888FE2Cu, 0x088902BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 56u, 0x088902BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FE2Cu) goto L_0888FE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FE2C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FE40: @@ -7574,8 +9730,21 @@ L_0888FE40: L_0888FE5C: aot_gpr_31 = (0x0888FE64u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 613u, 0x0888FE64u, 0x088903F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 67u, 0x088903F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FE64u) goto L_0888FE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FE64: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -7623,8 +9792,8 @@ L_0888FEA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FEB4: @@ -7656,8 +9825,8 @@ L_0888FEE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FEEC: @@ -7689,8 +9858,8 @@ L_0888FF14: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0888FF20: @@ -7717,8 +9886,21 @@ L_0888FF20: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x0888FF84u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0034->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0034_entry, 631u, 0x0888FF84u, 0x08890374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 61u, 0x08890374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0888FF84u) goto L_0888FF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0888FF84: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(24))); aot_gpr_4 = (0u | 0u); diff --git a/profiles/vcs/generated/generated_unit_0035.cpp b/profiles/vcs/generated/generated_unit_0035.cpp index c000bf1..222cfc5 100644 --- a/profiles/vcs/generated/generated_unit_0035.cpp +++ b/profiles/vcs/generated/generated_unit_0035.cpp @@ -32,6 +32,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0035[64] = { 303u, 309u, 321u, 332u, 340u, 347u, 358u, 366u, 379u, 393u, 407u, 422u, 434u, 444u, 450u, 458u, 469u, 482u, 489u, 504u, 515u, 529u, 543u, 564u, 578u, 592u, 601u, 615u, 626u, 635u, 647u, 657u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0035[4088] = { + 1u, 2u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 4u, 0u, 0u, 5u, 0u, 0u, 6u, 0u, 7u, 0u, 8u, 0u, 0u, 9u, 0u, 0u, 10u, 11u, 0u, 12u, 0u, 13u, 14u, + 0u, 0u, 15u, 0u, 16u, 0u, 0u, 17u, 0u, 18u, 0u, 19u, 0u, 0u, 0u, 20u, 0u, 21u, 0u, 22u, 0u, 23u, 0u, 24u, 0u, 0u, 25u, 0u, 26u, 0u, 0u, 27u, + 0u, 28u, 0u, 29u, 0u, 0u, 0u, 30u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, 32u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, + 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 37u, 0u, 0u, 38u, 0u, 39u, 40u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 42u, 0u, 0u, 43u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 44u, 0u, 0u, 45u, 0u, 0u, 46u, 0u, 47u, 0u, 48u, 0u, 49u, 0u, 0u, 0u, 50u, 0u, 51u, 0u, 52u, 0u, 53u, 0u, + 54u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 57u, 0u, 0u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 59u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 63u, 64u, 0u, 0u, 65u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 0u, 0u, 67u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 69u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 0u, 0u, 72u, 0u, 0u, 0u, 0u, 0u, 73u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 77u, 0u, 78u, 0u, 79u, 0u, 0u, 0u, 80u, 0u, 81u, 0u, 0u, + 82u, 0u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 84u, 0u, 0u, 85u, 0u, 86u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 89u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 90u, 0u, 0u, 91u, 0u, 0u, 0u, 92u, 0u, 0u, 93u, 0u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 95u, 0u, 0u, 0u, + 0u, 96u, 0u, 0u, 0u, 0u, 97u, 0u, 0u, 98u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 100u, 0u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 102u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 104u, 0u, 0u, 0u, 105u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 0u, 107u, 0u, 0u, 108u, 0u, 109u, 0u, + 0u, 0u, 0u, 110u, 0u, 0u, 111u, 0u, 0u, 0u, 0u, 0u, 112u, 0u, 0u, 113u, 0u, 114u, 0u, 0u, 0u, 0u, 115u, 0u, 116u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, + 118u, 0u, 0u, 119u, 0u, 120u, 0u, 0u, 0u, 0u, 121u, 0u, 122u, 0u, 123u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 124u, 0u, 125u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 127u, 0u, 128u, 0u, 129u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 131u, 0u, 132u, 133u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 134u, 0u, 135u, 0u, 136u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 137u, 0u, 0u, 138u, + 0u, 139u, 0u, 140u, 0u, 141u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 143u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 144u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 145u, 0u, 0u, 146u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 147u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 150u, + 0u, 0u, 0u, 151u, 0u, 0u, 152u, 0u, 153u, 154u, 0u, 155u, 0u, 156u, 0u, 0u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 159u, 0u, 160u, 0u, 161u, 0u, 0u, 162u, 0u, 0u, 163u, 0u, 164u, 0u, 0u, 0u, 165u, 0u, + 166u, 167u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 170u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 174u, 175u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 176u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 179u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 181u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 182u, 0u, 0u, 0u, 183u, 0u, 0u, 184u, 0u, 185u, 186u, 0u, 0u, 187u, 0u, 0u, 188u, 0u, 189u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 191u, 0u, 0u, 0u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, + 0u, 193u, 0u, 0u, 194u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 195u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 0u, + 0u, 0u, 197u, 0u, 0u, 198u, 0u, 0u, 0u, 0u, 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 202u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 204u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 206u, 0u, 207u, 0u, 0u, + 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, 0u, 0u, 210u, 211u, 0u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 213u, 0u, 0u, 214u, + 0u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, 216u, 0u, 0u, 217u, 0u, 218u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 0u, + 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 223u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 225u, 0u, 226u, 0u, 0u, 0u, 227u, 0u, 228u, 0u, 229u, + 0u, 0u, 230u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 232u, 0u, 0u, 233u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 236u, 0u, 0u, 0u, 0u, 0u, + 0u, 237u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 0u, 239u, 0u, 240u, 0u, 0u, 0u, 241u, 0u, 242u, 0u, 0u, 0u, 243u, 0u, 244u, 0u, 245u, 0u, 246u, 0u, + 0u, 0u, 0u, 247u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 249u, 0u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, 0u, 0u, 0u, 0u, 0u, 251u, 0u, + 0u, 252u, 0u, 0u, 253u, 0u, 0u, 254u, 0u, 255u, 0u, 0u, 256u, 0u, 0u, 0u, 257u, 0u, 258u, 0u, 259u, 0u, 260u, 0u, 261u, 0u, 0u, 0u, 262u, 0u, 0u, 0u, + 0u, 263u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 264u, 0u, 0u, 265u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 266u, 0u, 267u, 0u, 0u, 268u, 0u, 269u, 0u, + 270u, 0u, 271u, 0u, 272u, 0u, 273u, 0u, 274u, 275u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 0u, 0u, 0u, 0u, 278u, 0u, 0u, 0u, 0u, 279u, 0u, 280u, 0u, + 0u, 0u, 281u, 0u, 0u, 282u, 0u, 0u, 0u, 283u, 0u, 284u, 0u, 285u, 0u, 286u, 0u, 0u, 0u, 0u, 0u, 287u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 290u, 0u, + 0u, 0u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 0u, 293u, 0u, 0u, 0u, 294u, 0u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 296u, 0u, 0u, 297u, 0u, 0u, 298u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 305u, 0u, 306u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 307u, 0u, 308u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 309u, 0u, 310u, 0u, 311u, 312u, 0u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 315u, 0u, 316u, 0u, 0u, 0u, 0u, 317u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 318u, 0u, 319u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 320u, + 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 323u, 0u, 324u, 0u, 0u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 329u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 331u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 333u, 0u, 0u, 0u, 0u, + 0u, 0u, 334u, 0u, 0u, 0u, 335u, 0u, 336u, 0u, 337u, 0u, 0u, 0u, 0u, 338u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 340u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, 345u, 0u, 0u, 0u, 0u, 346u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 347u, 0u, 0u, 348u, 0u, 0u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 0u, 351u, 0u, 0u, 0u, 0u, 352u, + 0u, 0u, 0u, 353u, 0u, 0u, 0u, 0u, 354u, 0u, 0u, 0u, 0u, 355u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 358u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 359u, 0u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 0u, 0u, 0u, 361u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 364u, 0u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 366u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, 368u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 370u, 0u, 371u, 0u, 0u, 0u, 372u, 0u, 0u, 373u, 0u, 374u, 0u, 375u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 377u, 0u, 0u, 0u, 0u, 378u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 379u, 0u, 0u, 0u, 380u, 0u, 0u, 381u, 0u, 382u, 0u, 383u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, + 385u, 0u, 0u, 386u, 0u, 387u, 0u, 388u, 0u, 389u, 0u, 390u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, 0u, + 393u, 0u, 0u, 0u, 394u, 0u, 0u, 0u, 395u, 0u, 396u, 0u, 0u, 0u, 397u, 0u, 0u, 0u, 398u, 0u, 399u, 0u, 400u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 401u, 0u, 0u, 0u, 0u, 0u, 0u, 402u, 403u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 405u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 406u, 0u, 0u, + 0u, 0u, 0u, 407u, 0u, 0u, 0u, 408u, 0u, 0u, 0u, 409u, 0u, 0u, 0u, 410u, 0u, 411u, 0u, 0u, 0u, 412u, 0u, 0u, 0u, 413u, 0u, 414u, 0u, 415u, 0u, 416u, + 0u, 0u, 0u, 0u, 0u, 417u, 418u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 421u, 0u, + 0u, 0u, 0u, 0u, 422u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 423u, 0u, 0u, 0u, 424u, 0u, 425u, 0u, 0u, 0u, 426u, 0u, 0u, 0u, 427u, 0u, 428u, + 0u, 429u, 0u, 430u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 439u, 0u, 440u, 0u, 0u, 0u, 441u, 0u, 0u, 442u, 0u, 443u, + 0u, 444u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 446u, 0u, 447u, 0u, 0u, 0u, 0u, 448u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 449u, + 0u, 450u, 0u, 0u, 0u, 451u, 0u, 452u, 0u, 0u, 0u, 453u, 0u, 0u, 0u, 454u, 0u, 455u, 0u, 456u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 457u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 458u, 0u, 0u, 459u, 0u, 0u, 0u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 463u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 464u, 0u, 0u, 465u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, + 469u, 0u, 0u, 0u, 470u, 0u, 471u, 0u, 472u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 0u, 476u, 0u, 0u, + 0u, 0u, 477u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 480u, 0u, 0u, 481u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 485u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 489u, 0u, 0u, 0u, 0u, 0u, 0u, 490u, 491u, 0u, 0u, 0u, 0u, 492u, 0u, 0u, 493u, 0u, 0u, 494u, 0u, 495u, 0u, 496u, 0u, 0u, 497u, 0u, 498u, 0u, + 0u, 499u, 500u, 0u, 501u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 504u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 508u, 0u, 509u, 0u, 0u, 0u, 510u, 0u, 0u, 511u, 0u, 512u, 0u, 513u, 0u, 514u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 516u, 0u, 0u, 517u, 518u, 0u, 0u, 519u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 520u, 0u, 521u, 0u, 522u, 523u, 0u, 524u, 0u, 525u, 0u, 526u, 527u, 0u, 0u, 0u, 528u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 530u, 0u, 531u, 532u, 0u, 0u, 533u, 0u, 534u, 0u, 535u, 536u, + 0u, 0u, 0u, 537u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, 0u, 539u, 0u, 540u, 0u, 0u, 0u, 541u, 0u, 542u, 0u, 0u, + 0u, 0u, 543u, 0u, 544u, 545u, 0u, 0u, 546u, 0u, 547u, 0u, 0u, 548u, 0u, 0u, 549u, 550u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 0u, 553u, + 0u, 554u, 0u, 0u, 0u, 555u, 0u, 556u, 0u, 0u, 0u, 0u, 557u, 0u, 558u, 559u, 0u, 0u, 560u, 0u, 561u, 0u, 0u, 562u, 0u, 0u, 0u, 0u, 0u, 0u, 563u, 0u, + 0u, 0u, 0u, 564u, 0u, 0u, 0u, 0u, 565u, 0u, 0u, 0u, 566u, 0u, 567u, 0u, 0u, 0u, 568u, 0u, 569u, 0u, 0u, 0u, 0u, 570u, 0u, 571u, 572u, 0u, 0u, 573u, + 0u, 574u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, 580u, 0u, 0u, + 0u, 581u, 0u, 582u, 0u, 0u, 0u, 0u, 583u, 0u, 584u, 585u, 0u, 586u, 0u, 0u, 587u, 0u, 588u, 0u, 589u, 0u, 0u, 590u, 0u, 0u, 0u, 591u, 0u, 0u, 0u, 0u, + 0u, 592u, 0u, 0u, 0u, 593u, 0u, 0u, 0u, 0u, 0u, 0u, 594u, 0u, 0u, 0u, 595u, 0u, 0u, 0u, 0u, 0u, 596u, 0u, 0u, 0u, 597u, 0u, 0u, 0u, 0u, 0u, + 0u, 598u, 0u, 0u, 0u, 0u, 599u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 600u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 601u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 602u, 0u, + 603u, 0u, 0u, 0u, 604u, 0u, 605u, 0u, 0u, 0u, 0u, 606u, 0u, 607u, 608u, 0u, 609u, 0u, 0u, 610u, 0u, 611u, 0u, 612u, 0u, 0u, 613u, 0u, 0u, 0u, 614u, 0u, + 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 616u, 0u, 0u, 0u, 0u, 0u, 617u, 0u, 0u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 620u, 0u, 621u, + 0u, 622u, 0u, 0u, 0u, 0u, 0u, 623u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 624u, 0u, 0u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 627u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 628u, 0u, 629u, 0u, 0u, 0u, 630u, 0u, 631u, 0u, 0u, 0u, 0u, 632u, 0u, 633u, 634u, 0u, + 635u, 0u, 0u, 0u, 636u, 0u, 0u, 637u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 639u, 0u, 0u, 0u, 640u, 0u, 0u, 0u, 0u, 0u, 0u, 641u, 0u, 0u, 0u, 642u, 0u, + 0u, 0u, 0u, 0u, 643u, 0u, 0u, 0u, 644u, 0u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 0u, 646u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 647u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 648u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 649u, 0u, 650u, 0u, 0u, 0u, 651u, 0u, 652u, 0u, 0u, 0u, 0u, 653u, 0u, 654u, 655u, 0u, 656u, 0u, 0u, 0u, 0u, + 0u, 657u, 0u, 0u, 0u, 658u, 0u, 0u, 0u, 0u, 0u, 0u, 659u, 0u, 0u, 0u, 660u, 0u, 0u, 0u, 0u, 0u, 661u, 0u, 0u, 0u, 662u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 663u, 0u, 0u, 0u, 0u, 664u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 665u, +}; + void recomp_unit_0035_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,29,5,6,16,31 fprs=12,13,14,20 gpr_occ=3516 fpr_occ=872 gpr_total=5449 fpr_total=1094 @@ -58,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08890000u; - entry_id = 0u; - if (entry_delta < 16352u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0035[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0035[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16352u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0035[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08890000; @@ -743,6 +867,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08890000u; + if (local_delta_v813 >= 16352u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -764,8 +912,21 @@ L_08890004: aot_gpr_16 = (aot_gpr_16 & 255u); aot_gpr_31 = (0x08890018u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 3u, 0x08890018u, 0x0886CEF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 130u, 0x0886CEF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890018u) goto L_08890018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890018: aot_gpr_4 = (static_cast(aot_gpr_16) < 21 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -906,8 +1067,21 @@ L_088900DC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088900E8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 25u, 0x088900E8u, 0x0886CEF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 130u, 0x0886CEF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088900E8u) goto L_088900E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088900E8: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -920,8 +1094,21 @@ L_088900F0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x088900FCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 27u, 0x088900FCu, 0x0886CE70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 120u, 0x0886CE70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088900FCu) goto L_088900FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088900FC: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_16 = (ctx.gpr[18] | 0u); @@ -961,8 +1148,21 @@ L_0889013C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08890150u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 32u, 0x08890150u, 0x08987F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 961u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 961u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 961u, 0x08987F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890150u) goto L_08890150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890150: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -989,8 +1189,21 @@ L_08890178: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x0889018Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 35u, 0x0889018Cu, 0x08988000u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1u, 0x08988000u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889018Cu) goto L_0889018C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889018C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -1041,8 +1254,21 @@ L_088901DC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088901E8u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 42u, 0x088901E8u, 0x0886CEF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 130u, 0x0886CEF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088901E8u) goto L_088901E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088901E8: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -1103,8 +1329,21 @@ L_08890250: aot_gpr_5 = (aot_gpr_5 + aot_gpr_16); aot_gpr_31 = (0x08890260u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 50u, 0x08890260u, 0x08987F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 961u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 961u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 961u, 0x08987F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890260u) goto L_08890260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890260: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1147,8 +1386,8 @@ L_0889028C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088902BC: @@ -1190,8 +1429,21 @@ L_08890324: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08890338u); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 59u, 0x08890338u, 0x08987E60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 952u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 952u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 952u, 0x08987E60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890338u) goto L_08890338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890338: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(28))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -1217,8 +1469,8 @@ L_08890358: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890374: @@ -1234,8 +1486,21 @@ L_08890374: aot_gpr_6 = (0u | 64u); aot_gpr_31 = (0x088903A8u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 62u, 0x088903A8u, 0x08ABE63Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 516u, 0x08ABE63Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088903A8u) goto L_088903A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088903A8: ctx.gpr[19] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1253,8 +1518,21 @@ L_088903BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(28))); aot_gpr_31 = (0x088903C8u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 65u, 0x088903C8u, 0x08987ED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 955u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 955u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 955u, 0x08987ED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088903C8u) goto L_088903C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088903C8: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1276,8 +1554,8 @@ L_088903D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088903F4: @@ -1307,8 +1585,21 @@ L_08890418: L_0889042C: aot_gpr_31 = (0x08890434u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 70u, 0x08890434u, 0x08987EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 956u, 0x08987EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890434u) goto L_08890434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890434: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -1338,8 +1629,8 @@ L_0889045C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890474: @@ -1442,8 +1733,21 @@ L_0889052C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_31 = (0x08890538u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 85u, 0x08890538u, 0x08988080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 6u, 0x08988080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890538u) goto L_08890538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890538: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1456,8 +1760,21 @@ L_08890540: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(40))); aot_gpr_31 = (0x08890550u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 87u, 0x08890550u, 0x089880D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 12u, 0x089880D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890550u) goto L_08890550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890550: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -1479,8 +1796,8 @@ L_08890564: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889057C: @@ -1499,8 +1816,8 @@ L_088905A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088905B0: @@ -1508,16 +1825,16 @@ L_088905B0: aot_gpr_4 = (aot_gpr_5 << 5u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088905C0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088905CC: @@ -1532,8 +1849,8 @@ L_088905E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088905F0: @@ -1542,8 +1859,8 @@ L_088905F0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(60), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890604: @@ -1552,16 +1869,16 @@ L_08890604: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(60), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890618: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-25560), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890624: @@ -1571,8 +1888,21 @@ L_08890624: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889063Cu); aot_gpr_4 = (0u | 144u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 99u, 0x0889063Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889063Cu) goto L_0889063C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889063C: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -1636,8 +1966,8 @@ L_0889065C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088906E4: @@ -1698,24 +2028,37 @@ L_08890764: } L_08890770: aot_gpr_31 = (0x08890778u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 109u, 0x08890778u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890778u) goto L_08890778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890778: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889078C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890798: @@ -1736,30 +2079,43 @@ L_088907B0: } L_088907BC: aot_gpr_31 = (0x088907C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 114u, 0x088907C4u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088907C4u) goto L_088907C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088907C4: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088907D8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088907E0: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(124))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088907E8: @@ -1780,30 +2136,43 @@ L_08890800: } L_0889080C: aot_gpr_31 = (0x08890814u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 120u, 0x08890814u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890814u) goto L_08890814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890814: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890828: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890830: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(120))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890838: @@ -1855,8 +2224,21 @@ L_088908A4: goto L_088908AC; L_088908AC: aot_gpr_31 = (0x088908B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 129u, 0x088908B4u, 0x08A06FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 723u, 0x08A06FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088908B4u) goto L_088908B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088908B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29192))); ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -1866,8 +2248,8 @@ L_088908B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088908D4: @@ -1907,8 +2289,21 @@ L_08890910: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08890940u); aot_gpr_4 = (aot_gpr_4 + static_cast(29552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 134u, 0x08890940u, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890940u) goto L_08890940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890940: { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { @@ -1932,37 +2327,37 @@ L_08890950: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890970: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(128), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889097C: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890984: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889098C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-25560))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890994: @@ -2102,8 +2497,8 @@ L_08890994: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890BB4: @@ -2135,8 +2530,21 @@ L_08890BB4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(84), aot_run_words); } aot_gpr_31 = (0x08890C28u); { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 143u, 0x08890C28u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890C28u) goto L_08890C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890C28: aot_gpr_4 = (18303u << 16u); aot_gpr_4 = (aot_gpr_4 | 57344u); @@ -2245,8 +2653,8 @@ L_08890D80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890DC0: @@ -2288,8 +2696,8 @@ L_08890DCC: goto L_08890E34; L_08890E34: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890E3C: @@ -2324,8 +2732,8 @@ L_08890E3C: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890EE0: @@ -2360,8 +2768,21 @@ L_08890F0C: goto L_08890F18; L_08890F18: aot_gpr_31 = (0x08890F20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 153u, 0x08890F20u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890F20u) goto L_08890F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890F20: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08890F24; @@ -2386,8 +2807,8 @@ L_08890F34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08890F48: @@ -2438,8 +2859,21 @@ L_08890FD4: ctx.gpr[23] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08890FE0u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 163u, 0x08890FE0u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08890FE0u) goto L_08890FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08890FE0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), 0u); @@ -2459,8 +2893,21 @@ L_08890FE8: L_08890FF8: aot_gpr_31 = (0x08891000u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 166u, 0x08891000u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891000u) goto L_08891000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891000: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); goto L_08891004; @@ -2473,8 +2920,21 @@ L_08891004: ctx.gpr[30] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08891024u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 168u, 0x08891024u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891024u) goto L_08891024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891024: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), 0u); @@ -2492,8 +2952,21 @@ L_08891024: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08891064u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 169u, 0x08891064u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891064u) goto L_08891064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891064: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-25556))); if (aot_gpr_4 != 0u) { @@ -2567,8 +3040,21 @@ L_088910D0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08891154u); aot_gpr_6 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 173u, 0x08891154u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891154u) goto L_08891154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891154: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -2651,8 +3137,21 @@ L_088911CC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08891280u); aot_gpr_6 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 176u, 0x08891280u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891280u) goto L_08891280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891280: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -2710,8 +3209,21 @@ L_08891280: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08891360u); aot_gpr_6 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 177u, 0x08891360u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891360u) goto L_08891360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891360: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -2962,8 +3474,21 @@ L_08891360: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08891430u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 178u, 0x08891430u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891430u) goto L_08891430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891430: aot_fpr_12 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12)}; @@ -2993,8 +3518,21 @@ L_08891430: { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8412), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0889147Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 179u, 0x0889147Cu, 0x08A06D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 704u, 0x08A06D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889147Cu) goto L_0889147C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889147C: aot_gpr_4 = (50688u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(263)); @@ -3105,8 +3643,21 @@ L_08891604: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29552), aot_gpr_4); aot_gpr_31 = (0x08891624u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 182u, 0x08891624u, 0x08AEDEC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 470u, 0x08AEDEC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891624u) goto L_08891624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891624: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3125,8 +3676,21 @@ L_08891634: L_08891640: aot_gpr_31 = (0x08891648u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 185u, 0x08891648u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891648u) goto L_08891648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891648: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); goto L_0889164C; @@ -3149,8 +3713,21 @@ L_08891658: L_08891664: aot_gpr_31 = (0x0889166Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 189u, 0x0889166Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889166Cu) goto L_0889166C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889166C: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[12]{}; @@ -3170,8 +3747,8 @@ L_0889166C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(464)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088916A8: @@ -3195,8 +3772,21 @@ L_088916D4: aot_gpr_4 = (aot_gpr_4 + static_cast(1792)); aot_gpr_31 = (0x088916ECu); aot_gpr_5 = (aot_gpr_5 + static_cast(1536)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 192u, 0x088916ECu, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088916ECu) goto L_088916EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088916EC: aot_gpr_4 = (2246u << 16u); aot_gpr_5 = (2246u << 16u); @@ -3204,14 +3794,27 @@ L_088916EC: aot_gpr_4 = (aot_gpr_4 + static_cast(1816)); aot_gpr_31 = (0x08891704u); aot_gpr_5 = (aot_gpr_5 + static_cast(1664)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 193u, 0x08891704u, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891704u) goto L_08891704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891704: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08891710: @@ -3267,8 +3870,8 @@ L_08891710: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08891738: @@ -3397,8 +4000,21 @@ L_0889184C: L_08891864: aot_gpr_31 = (0x0889186Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 206u, 0x0889186Cu, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889186Cu) goto L_0889186C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889186C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3453,8 +4069,8 @@ L_088918C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088918DC: @@ -3463,14 +4079,27 @@ L_088918DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088918F0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 213u, 0x088918F0u, 0x088806F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 58u, 0x088806F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088918F0u) goto L_088918F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088918F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088918FC: @@ -3489,8 +4118,21 @@ L_088918FC: L_08891918: aot_gpr_31 = (0x08891920u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 216u, 0x08891920u, 0x08807C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 582u, 0x08807C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891920u) goto L_08891920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891920: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3513,8 +4155,8 @@ L_08891934: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08891948: @@ -3528,8 +4170,8 @@ L_08891948: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08891974: @@ -3539,16 +4181,29 @@ L_08891974: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889198Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 221u, 0x0889198Cu, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889198Cu) goto L_0889198C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889198C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088919A0: @@ -3618,8 +4273,8 @@ L_088919A0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088919FC: @@ -3635,8 +4290,8 @@ L_088919FC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8428), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8432), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08891A2C: @@ -3667,8 +4322,21 @@ L_08891A5C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08891A6Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 227u, 0x08891A6Cu, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891A6Cu) goto L_08891A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891A6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -3699,8 +4367,21 @@ L_08891A9C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08891AA8u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 232u, 0x08891AA8u, 0x08807C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891AA8u) goto L_08891AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891AA8: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -3812,8 +4493,21 @@ L_08891B68: L_08891B70: aot_gpr_31 = (0x08891B78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 246u, 0x08891B78u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891B78u) goto L_08891B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891B78: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3823,8 +4517,8 @@ L_08891B78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08891B8C: @@ -3860,8 +4554,21 @@ L_08891BC0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08891BDCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 250u, 0x08891BDCu, 0x08B02100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 550u, 0x08B02100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891BDCu) goto L_08891BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891BDC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(619)))))); aot_gpr_5 = (0u + static_cast(-9)); @@ -3903,8 +4610,21 @@ L_08891C10: L_08891C1C: aot_gpr_31 = (0x08891C24u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 255u, 0x08891C24u, 0x08910CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 222u, 0x08910CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891C24u) goto L_08891C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891C24: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); { const bool branch_taken = 0u == 0u; @@ -3925,8 +4645,21 @@ L_08891C30: } L_08891C40: aot_gpr_31 = (0x08891C48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 258u, 0x08891C48u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891C48u) goto L_08891C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891C48: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); ctx.gpr[18] = (ctx.gpr[18] & 14u); @@ -3951,8 +4684,21 @@ L_08891C60: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08891C70u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 262u, 0x08891C70u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891C70u) goto L_08891C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891C70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (128u << 16u); @@ -4038,8 +4784,21 @@ L_08891D08: } L_08891D10: aot_gpr_31 = (0x08891D18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 273u, 0x08891D18u, 0x08807CB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 595u, 0x08807CB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891D18u) goto L_08891D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891D18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4138,8 +4897,21 @@ L_08891DAC: L_08891DB4: aot_gpr_31 = (0x08891DBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 286u, 0x08891DBCu, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891DBCu) goto L_08891DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891DBC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4150,8 +4922,8 @@ L_08891DBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08891DD4: @@ -4205,8 +4977,21 @@ L_08891E58: } L_08891E70: aot_gpr_31 = (0x08891E78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 290u, 0x08891E78u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891E78u) goto L_08891E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891E78: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -4303,8 +5088,21 @@ L_08891F28: aot_gpr_6 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08891F6Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 300u, 0x08891F6Cu, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891F6Cu) goto L_08891F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891F6C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); @@ -4320,8 +5118,21 @@ L_08891F6C: ctx.gpr[11] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08891FA4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 301u, 0x08891FA4u, 0x08895B94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 362u, 0x08895B94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08891FA4u) goto L_08891FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08891FA4: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(108), aot_run_words); @@ -4340,8 +5151,8 @@ L_08891FA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08891FDC: @@ -4408,8 +5219,21 @@ L_08892064: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088920B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 307u, 0x088920B8u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088920B8u) goto L_088920B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088920B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4598,8 +5422,21 @@ L_0889217C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088921C4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 318u, 0x088921C4u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088921C4u) goto L_088921C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088921C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4871,8 +5708,8 @@ L_088923C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08892400: @@ -5063,8 +5900,21 @@ L_088925C0: ctx.gpr[8] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088925F0u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 357u, 0x088925F0u, 0x0889C644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 82u, 0x0889C644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088925F0u) goto L_088925F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088925F0: aot_gpr_4 = (ctx.gpr[30] + static_cast(36)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5075,8 +5925,21 @@ L_088925F0: ctx.gpr[8] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08892614u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 358u, 0x08892614u, 0x0889C644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 82u, 0x0889C644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08892614u) goto L_08892614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08892614: aot_gpr_4 = (ctx.gpr[30] + static_cast(12)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5087,8 +5950,21 @@ L_08892614: ctx.gpr[8] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08892638u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 359u, 0x08892638u, 0x0889C644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 82u, 0x0889C644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08892638u) goto L_08892638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08892638: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_16 = (aot_gpr_16 + static_cast(56)); @@ -5131,8 +6007,8 @@ L_08892668: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088926A0: @@ -5279,8 +6155,8 @@ L_0889276C: L_08892774: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889277C: @@ -5340,8 +6216,21 @@ L_088927FC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08892824u); aot_gpr_16 = (aot_gpr_5 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 379u, 0x08892824u, 0x089D273Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 419u, 0x089D273Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08892824u) goto L_08892824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08892824: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5383,8 +6272,21 @@ L_08892850: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08892870u); aot_gpr_16 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 384u, 0x08892870u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08892870u) goto L_08892870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08892870: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5574,8 +6476,8 @@ L_08892958: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889298C: @@ -5742,8 +6644,8 @@ L_08892A6C: L_08892A74: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08892A7C: @@ -5912,8 +6814,8 @@ L_08892B7C: L_08892B84: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08892B8C: @@ -6081,8 +6983,8 @@ L_08892CFC: } L_08892D04: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08892D0C: @@ -6212,8 +7114,21 @@ L_08892D78: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_gpr_31 = (0x08892DFCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 449u, 0x08892DFCu, 0x088B11E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 166u, 0x088B11E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08892DFCu) goto L_08892DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08892DFC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6283,8 +7198,8 @@ L_08892E4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08892E7C: @@ -6450,8 +7365,21 @@ L_08893010: } L_08893018: aot_gpr_31 = (0x08893020u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 472u, 0x08893020u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893020u) goto L_08893020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893020: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -6635,8 +7563,8 @@ L_088931D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08893208: @@ -6875,8 +7803,8 @@ L_088933D8: } L_088933E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088933E8: @@ -6925,8 +7853,8 @@ L_08893454: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08893460: @@ -6995,8 +7923,8 @@ L_088934E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088934F4: @@ -7066,8 +7994,8 @@ L_0889357C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889358C: @@ -7157,8 +8085,21 @@ L_08893628: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08893634u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 548u, 0x08893634u, 0x08A671D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 640u, 0x08A671D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893634u) goto L_08893634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893634: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1300))); { const bool branch_taken = aot_gpr_4 != aot_gpr_16; @@ -7260,8 +8201,21 @@ L_088936D0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088936DCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 562u, 0x088936DCu, 0x08A671D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 640u, 0x08A671D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088936DCu) goto L_088936DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088936DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(92))); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -7364,8 +8318,21 @@ L_08893784: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08893790u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 575u, 0x08893790u, 0x08A671D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 640u, 0x08A671D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893790u) goto L_08893790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893790: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[18] = (ctx.gpr[17] + static_cast(-1)); @@ -7391,8 +8358,8 @@ L_088937A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088937CC: @@ -7499,8 +8466,21 @@ L_088938B4: L_088938C0: aot_gpr_31 = (0x088938C8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 588u, 0x088938C8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088938C8u) goto L_088938C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088938C8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7586,8 +8566,21 @@ L_08893968: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08893984u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 598u, 0x08893984u, 0x089D1074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 167u, 0x089D1074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893984u) goto L_08893984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893984: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[19] = (ctx.gpr[18] + static_cast(-1)); @@ -7621,8 +8614,8 @@ L_08893998: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088939E0: @@ -7727,8 +8720,21 @@ L_08893AC0: L_08893ACC: aot_gpr_31 = (0x08893AD4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 611u, 0x08893AD4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893AD4u) goto L_08893AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893AD4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7825,8 +8831,21 @@ L_08893B84: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08893B9Cu); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 623u, 0x08893B9Cu, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893B9Cu) goto L_08893B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893B9C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -7836,8 +8855,21 @@ L_08893B9C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08893BBCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 624u, 0x08893BBCu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893BBCu) goto L_08893BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893BBC: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[19] = (ctx.gpr[18] + static_cast(-1)); @@ -7871,8 +8903,8 @@ L_08893BD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08893C18: @@ -8055,8 +9087,21 @@ L_08893DA0: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08893DBCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 645u, 0x08893DBCu, 0x089D1074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 167u, 0x089D1074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893DBCu) goto L_08893DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893DBC: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[19] = (ctx.gpr[18] + static_cast(-1)); @@ -8089,8 +9134,8 @@ L_08893DD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08893E14: @@ -8248,8 +9293,21 @@ L_08893F68: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08893F8Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0035->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0035_entry, 663u, 0x08893F8Cu, 0x089D1074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 167u, 0x089D1074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08893F8Cu) goto L_08893F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08893F8C: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[19] = (ctx.gpr[18] + static_cast(-1)); @@ -8280,8 +9338,8 @@ L_08893FA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08893FDC: diff --git a/profiles/vcs/generated/generated_unit_0036.cpp b/profiles/vcs/generated/generated_unit_0036.cpp index 07a163a..355da43 100644 --- a/profiles/vcs/generated/generated_unit_0036.cpp +++ b/profiles/vcs/generated/generated_unit_0036.cpp @@ -849,6 +849,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08894000u; + if (local_delta_v813 >= 16344u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -975,8 +999,21 @@ L_088940DC: L_088940E4: ctx.gpr[31] = (0x088940ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 15u, 0x088940ECu, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088940ECu) goto L_088940EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088940EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1027,8 +1064,21 @@ L_08894118: ctx.gpr[9] = (0u | 0u); ctx.gpr[31] = (0x08894150u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 19u, 0x08894150u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894150u) goto L_08894150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894150: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -1117,8 +1167,21 @@ L_088941DC: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[31] = (0x088941F0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 21u, 0x088941F0u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088941F0u) goto L_088941F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088941F0: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[19] = (ctx.gpr[23] + static_cast(-1)); @@ -1150,8 +1213,8 @@ L_08894204: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08894244: @@ -1330,8 +1393,21 @@ L_088943A8: } L_088943BC: ctx.gpr[31] = (0x088943C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 39u, 0x088943C4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088943C4u) goto L_088943C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088943C4: { const bool branch_taken = aot_gpr_17 == ctx.gpr[2]; if (branch_taken) { @@ -1383,8 +1459,21 @@ L_088943E8: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08894418u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 44u, 0x08894418u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894418u) goto L_08894418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894418: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -1474,8 +1563,21 @@ L_088944A8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.gpr[31] = (0x088944BCu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 46u, 0x088944BCu, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088944BCu) goto L_088944BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088944BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1505,8 +1607,21 @@ L_088944E4: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088944F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 50u, 0x088944F0u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088944F0u) goto L_088944F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088944F0: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -1558,8 +1673,8 @@ L_08894528: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889456C: @@ -1659,8 +1774,8 @@ L_08894620: L_08894624: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889462C: @@ -1827,8 +1942,21 @@ L_08894750: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(100))); ctx.gpr[31] = (0x08894764u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 88u, 0x08894764u, 0x088806F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 58u, 0x088806F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894764u) goto L_08894764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894764: aot_gpr_4 = (0u | 5u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(0), static_cast(aot_gpr_4)); @@ -1847,8 +1975,21 @@ L_08894780: aot_gpr_5 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x088947A0u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 90u, 0x088947A0u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088947A0u) goto L_088947A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088947A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1859,8 +2000,21 @@ L_088947A0: L_088947A8: ctx.gpr[31] = (0x088947B0u); aot_gpr_4 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 92u, 0x088947B0u, 0x088806F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 58u, 0x088806F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088947B0u) goto L_088947B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088947B0: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -1875,8 +2029,8 @@ L_088947B0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088947D8: @@ -1932,8 +2086,21 @@ L_0889482C: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08894838u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 100u, 0x08894838u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894838u) goto L_08894838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894838: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1944,8 +2111,21 @@ L_08894838: L_08894840: ctx.gpr[31] = (0x08894848u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 102u, 0x08894848u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894848u) goto L_08894848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894848: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1957,8 +2137,21 @@ L_08894850: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x0889485Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 104u, 0x0889485Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889485Cu) goto L_0889485C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889485C: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -1990,8 +2183,8 @@ L_08894888: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08894898: @@ -2148,8 +2341,21 @@ L_088949D4: L_088949E4: ctx.gpr[31] = (0x088949ECu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 125u, 0x088949ECu, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088949ECu) goto L_088949EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088949EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2168,14 +2374,40 @@ L_088949F4: L_08894A00: ctx.gpr[31] = (0x08894A08u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 128u, 0x08894A08u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894A08u) goto L_08894A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894A08: aot_gpr_4 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08894A14u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 129u, 0x08894A14u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894A14u) goto L_08894A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894A14: aot_gpr_16 = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(565))); @@ -2208,15 +2440,41 @@ L_08894A3C: L_08894A48: ctx.gpr[31] = (0x08894A50u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 134u, 0x08894A50u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894A50u) goto L_08894A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894A50: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08894A60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 135u, 0x08894A60u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894A60u) goto L_08894A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894A60: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(565))); @@ -2230,19 +2488,58 @@ L_08894A60: L_08894A74: ctx.gpr[31] = (0x08894A7Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 137u, 0x08894A7Cu, 0x08B41658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 369u, 0x08B41658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894A7Cu) goto L_08894A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894A7C: ctx.gpr[31] = (0x08894A84u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 138u, 0x08894A84u, 0x08B02100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 550u, 0x08B02100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894A84u) goto L_08894A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894A84: aot_gpr_4 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08894A90u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 139u, 0x08894A90u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894A90u) goto L_08894A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894A90: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -2292,8 +2589,8 @@ L_08894AC4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08894B04: @@ -2384,8 +2681,21 @@ L_08894BB8: L_08894BC0: ctx.gpr[31] = (0x08894BC8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 155u, 0x08894BC8u, 0x0890C798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 128u, 0x0890C798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894BC8u) goto L_08894BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894BC8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2464,8 +2774,21 @@ L_08894C40: L_08894C54: ctx.gpr[31] = (0x08894C5Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 163u, 0x08894C5Cu, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894C5Cu) goto L_08894C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894C5C: aot_gpr_17 = (aot_gpr_17 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_17) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -2494,8 +2817,8 @@ L_08894C6C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08894CA4: @@ -2585,8 +2908,8 @@ L_08894D28: } L_08894D38: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08894D40: @@ -2683,8 +3006,21 @@ L_08894DC8: } L_08894E14: ctx.gpr[31] = (0x08894E1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 188u, 0x08894E1Cu, 0x08B01C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 479u, 0x08B01C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08894E1Cu) goto L_08894E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08894E1C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -2708,8 +3044,8 @@ L_08894E2C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08894E50: @@ -2915,8 +3251,21 @@ L_08895034: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[31] = (0x08895070u); ctx.fpr[19] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 211u, 0x08895070u, 0x0889BA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 655u, 0x0889BA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895070u) goto L_08895070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895070: aot_gpr_4 = (ctx.gpr[23] + static_cast(32)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -2928,8 +3277,21 @@ L_08895070: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[31] = (0x08895098u); ctx.fpr[19] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 212u, 0x08895098u, 0x0889BA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 655u, 0x0889BA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895098u) goto L_08895098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895098: aot_gpr_4 = (ctx.gpr[23] + static_cast(36)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -2996,8 +3358,8 @@ L_0889510C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895150: @@ -3115,8 +3477,21 @@ L_08895254: } L_08895260: ctx.gpr[31] = (0x08895268u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 232u, 0x08895268u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895268u) goto L_08895268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895268: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; if (branch_taken) { @@ -3164,8 +3539,21 @@ L_08895298: L_088952A0: ctx.gpr[31] = (0x088952A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 239u, 0x088952A8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088952A8u) goto L_088952A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088952A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3184,8 +3572,21 @@ L_088952B0: L_088952BC: ctx.gpr[31] = (0x088952C4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 242u, 0x088952C4u, 0x08A33164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 712u, 0x08A33164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088952C4u) goto L_088952C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088952C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3196,14 +3597,40 @@ L_088952C4: L_088952CC: ctx.gpr[31] = (0x088952D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 244u, 0x088952D4u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088952D4u) goto L_088952D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088952D4: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x088952E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 245u, 0x088952E0u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088952E0u) goto L_088952E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088952E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3245,8 +3672,8 @@ L_08895300: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895340: @@ -3334,8 +3761,21 @@ L_088953DC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x088953ECu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 260u, 0x088953ECu, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088953ECu) goto L_088953EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088953EC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_17 = (ctx.gpr[18] + static_cast(-1)); @@ -3359,8 +3799,8 @@ L_08895400: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895420: @@ -3389,8 +3829,8 @@ L_08895438: goto L_0889544C; L_0889544C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895454: @@ -3418,8 +3858,8 @@ L_08895478: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-22992))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895490: @@ -3443,8 +3883,8 @@ L_088954A0: goto L_088954A4; L_088954A4: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088954AC: @@ -3452,8 +3892,8 @@ L_088954AC: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(2052))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088954BC: @@ -3569,8 +4009,8 @@ L_08895580: } L_08895590: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895598: @@ -3939,8 +4379,8 @@ L_08895814: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895844: @@ -3996,8 +4436,21 @@ L_088958F8: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x0889591Cu); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 335u, 0x0889591Cu, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889591Cu) goto L_0889591C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889591C: aot_gpr_4 = (ctx.gpr[21] + static_cast(4)); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -4008,8 +4461,21 @@ L_0889591C: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08895940u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 336u, 0x08895940u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895940u) goto L_08895940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895940: aot_gpr_4 = (ctx.gpr[21] + static_cast(20)); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -4020,8 +4486,21 @@ L_08895940: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08895964u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 337u, 0x08895964u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895964u) goto L_08895964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895964: aot_gpr_4 = (ctx.gpr[21] + static_cast(24)); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -4032,8 +4511,21 @@ L_08895964: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08895988u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 338u, 0x08895988u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895988u) goto L_08895988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895988: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -4051,8 +4543,21 @@ L_08895990: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x088959B4u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 340u, 0x088959B4u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088959B4u) goto L_088959B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088959B4: aot_gpr_4 = (ctx.gpr[21] + static_cast(32)); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -4063,8 +4568,21 @@ L_088959B4: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x088959D8u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 341u, 0x088959D8u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088959D8u) goto L_088959D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088959D8: { const bool branch_taken = ctx.gpr[23] == 0u; ctx.gpr[22] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(8))); @@ -4106,8 +4624,21 @@ L_08895A04: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08895A28u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 347u, 0x08895A28u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895A28u) goto L_08895A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895A28: aot_gpr_4 = (ctx.gpr[21] + static_cast(40)); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -4118,8 +4649,21 @@ L_08895A28: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08895A4Cu); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 348u, 0x08895A4Cu, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895A4Cu) goto L_08895A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895A4C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8072), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(0u)); @@ -4142,8 +4686,21 @@ L_08895A60: ctx.gpr[10] = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x08895A84u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 351u, 0x08895A84u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895A84u) goto L_08895A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895A84: aot_gpr_4 = (ctx.gpr[21] + static_cast(16)); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -4154,8 +4711,21 @@ L_08895A84: ctx.gpr[10] = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x08895AA8u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 352u, 0x08895AA8u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895AA8u) goto L_08895AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895AA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4174,8 +4744,21 @@ L_08895AB4: ctx.gpr[10] = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x08895AD8u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 354u, 0x08895AD8u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895AD8u) goto L_08895AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895AD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); if (aot_gpr_4 == 0u) { @@ -4193,8 +4776,21 @@ L_08895AE4: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08895B08u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 356u, 0x08895B08u, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895B08u) goto L_08895B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895B08: aot_gpr_4 = (ctx.gpr[21] + static_cast(52)); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -4205,8 +4801,21 @@ L_08895B08: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08895B2Cu); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 357u, 0x08895B2Cu, 0x0889BE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 691u, 0x0889BE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895B2Cu) goto L_08895B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895B2C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(9))); goto L_08895B30; @@ -4251,8 +4860,8 @@ L_08895B64: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895B94: @@ -4484,8 +5093,8 @@ L_08895E10: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08895E44: @@ -4657,8 +5266,21 @@ L_08895F88: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08895FB4u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 403u, 0x08895FB4u, 0x088B1820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 207u, 0x088B1820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895FB4u) goto L_08895FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895FB4: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[7] = (0u | 0u); @@ -4680,8 +5302,21 @@ L_08895FC4: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08895FD4u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 406u, 0x08895FD4u, 0x088B3800u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 435u, 0x088B3800u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08895FD4u) goto L_08895FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08895FD4: ctx.gpr[21] = (ctx.gpr[2] | 0u); goto L_08895FD8; @@ -4726,8 +5361,8 @@ L_08895FF4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08896024: @@ -4838,8 +5473,21 @@ L_08896118: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889614Cu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 422u, 0x0889614Cu, 0x088B1820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 207u, 0x088B1820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889614Cu) goto L_0889614C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889614C: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[10] = (0u | 0u); @@ -4931,8 +5579,8 @@ L_088961C8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088961FC: @@ -4954,8 +5602,21 @@ L_088961FC: L_08896224: ctx.gpr[31] = (0x0889622Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 436u, 0x0889622Cu, 0x0896DA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 426u, 0x0896DA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889622Cu) goto L_0889622C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889622C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5004,8 +5665,8 @@ L_08896260: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08896270: @@ -5093,8 +5754,21 @@ L_0889631C: } L_08896324: ctx.gpr[31] = (0x0889632Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 455u, 0x0889632Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889632Cu) goto L_0889632C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889632C: { const bool branch_taken = ctx.gpr[2] == aot_gpr_17; if (branch_taken) { @@ -5216,8 +5890,8 @@ L_08896414: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08896440: @@ -5232,14 +5906,27 @@ L_08896440: ctx.gpr[8] = (0u | 0u); ctx.gpr[31] = (0x0889646Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 468u, 0x0889646Cu, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889646Cu) goto L_0889646C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889646C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08896478: @@ -5252,8 +5939,21 @@ L_08896478: aot_gpr_16 = (aot_gpr_16 + static_cast(-28736)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(11), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x088964B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 470u, 0x088964B8u, 0x0886A6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 530u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 530u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 530u, 0x0886A6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088964B8u) goto L_088964B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088964B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); aot_gpr_17 = (2238u << 16u); @@ -5298,8 +5998,21 @@ L_088964FC: goto L_08896500; L_08896500: ctx.gpr[31] = (0x08896508u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 478u, 0x08896508u, 0x0884C8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 93u, 0x0884C8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896508u) goto L_08896508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896508: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5316,24 +6029,89 @@ L_08896514: L_0889651C: ctx.gpr[31] = (0x08896524u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 481u, 0x08896524u, 0x089EC3FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 47u, 0x089EC3FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896524u) goto L_08896524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896524: ctx.gpr[31] = (0x0889652Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 482u, 0x0889652Cu, 0x088807A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 66u, 0x088807A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889652Cu) goto L_0889652C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889652C: ctx.gpr[31] = (0x08896534u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 483u, 0x08896534u, 0x0882C3C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 62u, 0x0882C3C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896534u) goto L_08896534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896534: ctx.gpr[31] = (0x0889653Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 484u, 0x0889653Cu, 0x0882C628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 93u, 0x0882C628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889653Cu) goto L_0889653C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889653C: ctx.gpr[31] = (0x08896544u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 485u, 0x08896544u, 0x089C7CE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 867u, 0x089C7CE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896544u) goto L_08896544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896544: aot_gpr_17 = (0u | 0u); goto L_08896548; @@ -5348,8 +6126,21 @@ L_08896548: L_08896554: ctx.gpr[31] = (0x0889655Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 488u, 0x0889655Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889655Cu) goto L_0889655C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889655C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5376,8 +6167,21 @@ L_08896584: L_08896588: ctx.gpr[31] = (0x08896590u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 492u, 0x08896590u, 0x089606D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 87u, 0x089606D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896590u) goto L_08896590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896590: aot_gpr_17 = (aot_gpr_17 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_17) < 1 ? 1u : 0u); @@ -5412,8 +6216,21 @@ L_088965C4: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x088965D8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 497u, 0x088965D8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088965D8u) goto L_088965D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088965D8: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -5479,8 +6296,21 @@ L_08896648: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08896654u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 505u, 0x08896654u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896654u) goto L_08896654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896654: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -5525,8 +6355,21 @@ L_08896690: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x088966A4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 511u, 0x088966A4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088966A4u) goto L_088966A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088966A4: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -5606,8 +6449,21 @@ L_08896728: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08896734u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 521u, 0x08896734u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896734u) goto L_08896734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896734: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -5644,8 +6500,21 @@ L_0889676C: AOT_REGCACHE_SYNC_OUT(); return; L_08896774: ctx.gpr[31] = (0x0889677Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 526u, 0x0889677Cu, 0x08990290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 49u, 0x08990290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889677Cu) goto L_0889677C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889677C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-4784), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(11), static_cast(0u)); @@ -5662,8 +6531,8 @@ L_0889677C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088967AC: @@ -5859,8 +6728,21 @@ L_08896988: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088969C0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 545u, 0x088969C0u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088969C0u) goto L_088969C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088969C0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -5913,8 +6795,21 @@ L_08896A10: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08896A48u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 550u, 0x08896A48u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896A48u) goto L_08896A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896A48: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -5983,8 +6878,21 @@ L_08896AAC: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08896AE4u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 557u, 0x08896AE4u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896AE4u) goto L_08896AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896AE4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6069,8 +6977,21 @@ L_08896B5C: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08896B94u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 566u, 0x08896B94u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896B94u) goto L_08896B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896B94: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6139,8 +7060,21 @@ L_08896BF8: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08896C30u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 573u, 0x08896C30u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896C30u) goto L_08896C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896C30: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6370,8 +7304,21 @@ L_08896E48: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08896E80u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 593u, 0x08896E80u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896E80u) goto L_08896E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896E80: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6442,8 +7389,21 @@ L_08896EE4: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08896F1Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 601u, 0x08896F1Cu, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08896F1Cu) goto L_08896F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08896F1C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6556,8 +7516,21 @@ L_08896FF8: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897034u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 611u, 0x08897034u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897034u) goto L_08897034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897034: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6627,8 +7600,21 @@ L_08897094: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088970D0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 618u, 0x088970D0u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088970D0u) goto L_088970D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088970D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6709,8 +7695,21 @@ L_08897148: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897180u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 626u, 0x08897180u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897180u) goto L_08897180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897180: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6778,8 +7777,21 @@ L_088971E0: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897218u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 633u, 0x08897218u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897218u) goto L_08897218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897218: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -6998,8 +8010,21 @@ L_08897418: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897450u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 652u, 0x08897450u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897450u) goto L_08897450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897450: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7070,8 +8095,21 @@ L_088974B4: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088974ECu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 660u, 0x088974ECu, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088974ECu) goto L_088974EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088974EC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7184,8 +8222,21 @@ L_088975C8: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897604u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 670u, 0x08897604u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897604u) goto L_08897604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897604: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7255,8 +8306,21 @@ L_08897664: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088976A0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 677u, 0x088976A0u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088976A0u) goto L_088976A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088976A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7337,8 +8401,21 @@ L_08897718: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897750u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 685u, 0x08897750u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897750u) goto L_08897750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897750: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -7406,8 +8483,21 @@ L_088977B0: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088977E8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 692u, 0x088977E8u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088977E8u) goto L_088977E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088977E8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(645))); @@ -7465,8 +8555,8 @@ L_08897838: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889786C: @@ -7894,8 +8984,21 @@ L_08897C10: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897C48u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 743u, 0x08897C48u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897C48u) goto L_08897C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897C48: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -7954,8 +9057,21 @@ L_08897CB8: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897CF0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 748u, 0x08897CF0u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897CF0u) goto L_08897CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897CF0: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -8017,8 +9133,21 @@ L_08897D68: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897DA0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 753u, 0x08897DA0u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897DA0u) goto L_08897DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897DA0: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -8107,8 +9236,21 @@ L_08897E4C: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897E84u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 761u, 0x08897E84u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897E84u) goto L_08897E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897E84: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -8170,8 +9312,21 @@ L_08897EFC: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08897F34u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0036->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0036_entry, 766u, 0x08897F34u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08897F34u) goto L_08897F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08897F34: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); diff --git a/profiles/vcs/generated/generated_unit_0037.cpp b/profiles/vcs/generated/generated_unit_0037.cpp index c576e3d..2a43536 100644 --- a/profiles/vcs/generated/generated_unit_0037.cpp +++ b/profiles/vcs/generated/generated_unit_0037.cpp @@ -786,6 +786,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08898000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -960,8 +984,21 @@ L_0889817C: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088981B8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 14u, 0x088981B8u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088981B8u) goto L_088981B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088981B8: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -982,8 +1019,21 @@ L_088981B8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x08898208u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 15u, 0x08898208u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898208u) goto L_08898208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898208: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_17) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1025,8 +1075,21 @@ L_0889822C: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08898268u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 19u, 0x08898268u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898268u) goto L_08898268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898268: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1047,8 +1110,21 @@ L_08898268: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x088982B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 20u, 0x088982B8u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088982B8u) goto L_088982B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088982B8: aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(aot_gpr_17) ? 1u : 0u); @@ -1134,8 +1210,21 @@ L_08898358: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08898394u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 27u, 0x08898394u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898394u) goto L_08898394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898394: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1156,8 +1245,21 @@ L_08898394: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x088983E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 28u, 0x088983E4u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088983E4u) goto L_088983E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088983E4: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_17) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1199,8 +1301,21 @@ L_08898408: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08898444u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 32u, 0x08898444u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898444u) goto L_08898444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898444: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1221,8 +1336,21 @@ L_08898444: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x08898494u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 33u, 0x08898494u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898494u) goto L_08898494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898494: aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(aot_gpr_17) ? 1u : 0u); @@ -1275,8 +1403,21 @@ L_088984D0: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08898508u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 38u, 0x08898508u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898508u) goto L_08898508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898508: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1295,8 +1436,21 @@ L_08898508: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } ctx.gpr[31] = (0x08898554u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 39u, 0x08898554u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898554u) goto L_08898554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898554: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1336,8 +1490,21 @@ L_08898578: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088985B0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 43u, 0x088985B0u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088985B0u) goto L_088985B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088985B0: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1356,8 +1523,21 @@ L_088985B0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } ctx.gpr[31] = (0x088985FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 44u, 0x088985FCu, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088985FCu) goto L_088985FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088985FC: aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -1546,8 +1726,21 @@ L_088987BC: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088987F8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 59u, 0x088987F8u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088987F8u) goto L_088987F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088987F8: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1568,8 +1761,21 @@ L_088987F8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x08898848u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 60u, 0x08898848u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898848u) goto L_08898848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898848: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_17) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1611,8 +1817,21 @@ L_0889886C: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088988A8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 64u, 0x088988A8u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088988A8u) goto L_088988A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088988A8: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1633,8 +1852,21 @@ L_088988A8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x088988F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 65u, 0x088988F8u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088988F8u) goto L_088988F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088988F8: aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(aot_gpr_17) ? 1u : 0u); @@ -1720,8 +1952,21 @@ L_08898998: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088989D4u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 72u, 0x088989D4u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088989D4u) goto L_088989D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088989D4: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1742,8 +1987,21 @@ L_088989D4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x08898A24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 73u, 0x08898A24u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898A24u) goto L_08898A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898A24: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_17) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1785,8 +2043,21 @@ L_08898A48: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08898A84u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 77u, 0x08898A84u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898A84u) goto L_08898A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898A84: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1807,8 +2078,21 @@ L_08898A84: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x08898AD4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 78u, 0x08898AD4u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898AD4u) goto L_08898AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898AD4: aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(aot_gpr_17) ? 1u : 0u); @@ -1861,8 +2145,21 @@ L_08898B10: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08898B48u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 83u, 0x08898B48u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898B48u) goto L_08898B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898B48: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1881,8 +2178,21 @@ L_08898B48: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } ctx.gpr[31] = (0x08898B94u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 84u, 0x08898B94u, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898B94u) goto L_08898B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898B94: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1922,8 +2232,21 @@ L_08898BB8: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08898BF0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 88u, 0x08898BF0u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898BF0u) goto L_08898BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898BF0: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); @@ -1942,8 +2265,21 @@ L_08898BF0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } ctx.gpr[31] = (0x08898C3Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 89u, 0x08898C3Cu, 0x08895844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 333u, 0x08895844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898C3Cu) goto L_08898C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898C3C: aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -1984,8 +2320,8 @@ L_08898C70: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(768)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08898CA4: @@ -2002,8 +2338,21 @@ L_08898CA4: } L_08898CCC: ctx.gpr[31] = (0x08898CD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 95u, 0x08898CD4u, 0x08A92DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 385u, 0x08A92DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898CD4u) goto L_08898CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898CD4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8424))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2038,8 +2387,21 @@ L_08898D04: L_08898D08: ctx.gpr[31] = (0x08898D10u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 101u, 0x08898D10u, 0x0884C914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 95u, 0x0884C914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898D10u) goto L_08898D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898D10: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2089,8 +2451,21 @@ L_08898D58: L_08898D64: ctx.gpr[31] = (0x08898D6Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 107u, 0x08898D6Cu, 0x089C62C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 457u, 0x089C62C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898D6Cu) goto L_08898D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898D6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(88)); @@ -2123,18 +2498,57 @@ L_08898D9C: L_08898DA4: ctx.gpr[31] = (0x08898DACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 111u, 0x08898DACu, 0x089C6278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 450u, 0x089C6278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898DACu) goto L_08898DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898DAC: ctx.gpr[31] = (0x08898DB4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 112u, 0x08898DB4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898DB4u) goto L_08898DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898DB4: ctx.gpr[31] = (0x08898DBCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 113u, 0x08898DBCu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898DBCu) goto L_08898DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898DBC: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 50 ? 1u : 0u); @@ -2146,12 +2560,38 @@ L_08898DBC: } L_08898DCC: ctx.gpr[31] = (0x08898DD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 115u, 0x08898DD4u, 0x08990B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 158u, 0x08990B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898DD4u) goto L_08898DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898DD4: ctx.gpr[31] = (0x08898DDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 116u, 0x08898DDCu, 0x08990B70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 157u, 0x08990B70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898DDCu) goto L_08898DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898DDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2206,8 +2646,21 @@ L_08898E1C: L_08898E30: ctx.gpr[31] = (0x08898E38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 123u, 0x08898E38u, 0x0890EFA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 698u, 0x0890EFA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898E38u) goto L_08898E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898E38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(136)); @@ -2228,17 +2681,56 @@ L_08898E50: } L_08898E58: ctx.gpr[31] = (0x08898E60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 126u, 0x08898E60u, 0x08896270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 443u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 443u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 443u, 0x08896270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898E60u) goto L_08898E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898E60: ctx.gpr[31] = (0x08898E68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 127u, 0x08898E68u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898E68u) goto L_08898E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898E68: ctx.gpr[31] = (0x08898E70u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 128u, 0x08898E70u, 0x088195ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 236u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 236u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 236u, 0x088195ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898E70u) goto L_08898E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898E70: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7636))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2261,8 +2753,21 @@ L_08898E7C: L_08898E94: ctx.gpr[31] = (0x08898E9Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 131u, 0x08898E9Cu, 0x088947D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 93u, 0x088947D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898E9Cu) goto L_08898E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898E9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2373,8 +2878,21 @@ L_08898F44: L_08898F50: ctx.gpr[31] = (0x08898F58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 146u, 0x08898F58u, 0x089C62C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 457u, 0x089C62C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898F58u) goto L_08898F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898F58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(88)); @@ -2396,8 +2914,21 @@ L_08898F70: L_08898F78: ctx.gpr[31] = (0x08898F80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 149u, 0x08898F80u, 0x089C6278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 450u, 0x089C6278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898F80u) goto L_08898F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898F80: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -2432,8 +2963,21 @@ L_08898FA8: L_08898FB0: ctx.gpr[31] = (0x08898FB8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 154u, 0x08898FB8u, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08898FB8u) goto L_08898FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08898FB8: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -2477,8 +3021,21 @@ L_08898FF8: L_08899008: ctx.gpr[31] = (0x08899010u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 159u, 0x08899010u, 0x088947D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 93u, 0x088947D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899010u) goto L_08899010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899010: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2508,8 +3065,21 @@ L_08899030: L_0889903C: ctx.gpr[31] = (0x08899044u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 163u, 0x08899044u, 0x089C62C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 457u, 0x089C62C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899044u) goto L_08899044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899044: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(88)); @@ -2531,8 +3101,21 @@ L_0889905C: L_08899064: ctx.gpr[31] = (0x0889906Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 166u, 0x0889906Cu, 0x089C6278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 450u, 0x089C6278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889906Cu) goto L_0889906C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889906C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -2567,8 +3150,21 @@ L_08899094: L_0889909C: ctx.gpr[31] = (0x088990A4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 171u, 0x088990A4u, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088990A4u) goto L_088990A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088990A4: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -2621,13 +3217,39 @@ L_088990F8: L_08899104: ctx.gpr[31] = (0x0889910Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 177u, 0x0889910Cu, 0x089C62C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 457u, 0x089C62C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889910Cu) goto L_0889910C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889910C: ctx.gpr[31] = (0x08899114u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 178u, 0x08899114u, 0x08891738u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 195u, 0x08891738u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899114u) goto L_08899114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899114: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(96)); @@ -2650,18 +3272,57 @@ L_0889912C: L_08899138: ctx.gpr[31] = (0x08899140u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 181u, 0x08899140u, 0x089C6278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 450u, 0x089C6278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899140u) goto L_08899140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899140: ctx.gpr[31] = (0x08899148u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 182u, 0x08899148u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899148u) goto L_08899148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899148: ctx.gpr[31] = (0x08899150u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 183u, 0x08899150u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899150u) goto L_08899150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899150: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -2723,13 +3384,39 @@ L_088991B4: L_088991C0: ctx.gpr[31] = (0x088991C8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 190u, 0x088991C8u, 0x089C62C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 457u, 0x089C62C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088991C8u) goto L_088991C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088991C8: ctx.gpr[31] = (0x088991D0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 191u, 0x088991D0u, 0x08891738u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 195u, 0x08891738u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088991D0u) goto L_088991D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088991D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(96)); @@ -2752,18 +3439,57 @@ L_088991E8: L_088991F4: ctx.gpr[31] = (0x088991FCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 194u, 0x088991FCu, 0x089C6278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 450u, 0x089C6278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088991FCu) goto L_088991FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088991FC: ctx.gpr[31] = (0x08899204u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 195u, 0x08899204u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899204u) goto L_08899204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899204: ctx.gpr[31] = (0x0889920Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 196u, 0x0889920Cu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889920Cu) goto L_0889920C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889920C: { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { @@ -2831,8 +3557,21 @@ L_08899288: L_08899294: ctx.gpr[31] = (0x0889929Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 203u, 0x0889929Cu, 0x089C62C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 457u, 0x089C62C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889929Cu) goto L_0889929C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889929C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(96)); @@ -2854,18 +3593,57 @@ L_088992B4: L_088992BC: ctx.gpr[31] = (0x088992C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 206u, 0x088992C4u, 0x089C6278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 450u, 0x089C6278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088992C4u) goto L_088992C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088992C4: ctx.gpr[31] = (0x088992CCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 207u, 0x088992CCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088992CCu) goto L_088992CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088992CC: ctx.gpr[31] = (0x088992D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 208u, 0x088992D4u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088992D4u) goto L_088992D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088992D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 32768u); @@ -2930,13 +3708,39 @@ L_08899344: L_0889935C: ctx.gpr[31] = (0x08899364u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 215u, 0x08899364u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899364u) goto L_08899364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899364: ctx.gpr[31] = (0x0889936Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 216u, 0x0889936Cu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889936Cu) goto L_0889936C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889936C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 32768u); @@ -3002,13 +3806,39 @@ L_088993E0: L_088993F8: ctx.gpr[31] = (0x08899400u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 223u, 0x08899400u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899400u) goto L_08899400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899400: ctx.gpr[31] = (0x08899408u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 224u, 0x08899408u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899408u) goto L_08899408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899408: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 32768u); @@ -3056,8 +3886,21 @@ L_0889945C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-25500))); ctx.gpr[31] = (0x08899468u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 229u, 0x08899468u, 0x08891948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 219u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 219u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 219u, 0x08891948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899468u) goto L_08899468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899468: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -3079,8 +3922,21 @@ L_08899468: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x0889948Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 230u, 0x0889948Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889948Cu) goto L_0889948C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889948C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); @@ -3134,8 +3990,21 @@ L_088994EC: ctx.gpr[18] = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x088994F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 236u, 0x088994F8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088994F8u) goto L_088994F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088994F8: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2228))); @@ -3196,8 +4065,8 @@ L_08899550: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-22856))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08899568: @@ -3210,8 +4079,21 @@ L_08899568: L_08899570: ctx.gpr[31] = (0x08899578u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 246u, 0x08899578u, 0x089AEEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 714u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 714u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 714u, 0x089AEEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899578u) goto L_08899578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899578: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3231,8 +4113,21 @@ L_08899580: L_08899590: ctx.gpr[31] = (0x08899598u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 249u, 0x08899598u, 0x089AE7A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 610u, 0x089AE7A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899598u) goto L_08899598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899598: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3243,8 +4138,21 @@ L_08899598: L_088995A0: ctx.gpr[31] = (0x088995A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 251u, 0x088995A8u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088995A8u) goto L_088995A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088995A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3255,8 +4163,21 @@ L_088995A8: L_088995B0: ctx.gpr[31] = (0x088995B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 253u, 0x088995B8u, 0x089AE7A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 610u, 0x089AE7A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088995B8u) goto L_088995B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088995B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3267,8 +4188,21 @@ L_088995B8: L_088995C0: ctx.gpr[31] = (0x088995C8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 255u, 0x088995C8u, 0x089AD2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 333u, 0x089AD2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088995C8u) goto L_088995C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088995C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3279,18 +4213,57 @@ L_088995C8: L_088995D0: ctx.gpr[31] = (0x088995D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 257u, 0x088995D8u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088995D8u) goto L_088995D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088995D8: ctx.gpr[31] = (0x088995E0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 258u, 0x088995E0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088995E0u) goto L_088995E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088995E0: ctx.gpr[31] = (0x088995E8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 259u, 0x088995E8u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088995E8u) goto L_088995E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088995E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3302,13 +4275,39 @@ L_088995F0: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x088995FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 261u, 0x088995FCu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088995FCu) goto L_088995FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088995FC: ctx.gpr[31] = (0x08899604u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 262u, 0x08899604u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899604u) goto L_08899604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899604: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3327,18 +4326,57 @@ L_0889960C: L_08899618: ctx.gpr[31] = (0x08899620u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 265u, 0x08899620u, 0x0892CEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 149u, 0x0892CEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899620u) goto L_08899620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899620: ctx.gpr[31] = (0x08899628u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 266u, 0x08899628u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899628u) goto L_08899628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899628: ctx.gpr[31] = (0x08899630u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 267u, 0x08899630u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899630u) goto L_08899630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899630: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3367,18 +4405,57 @@ L_0889964C: L_08899658: ctx.gpr[31] = (0x08899660u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 271u, 0x08899660u, 0x0882BBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 436u, 0x0882BBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899660u) goto L_08899660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899660: ctx.gpr[31] = (0x08899668u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 272u, 0x08899668u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899668u) goto L_08899668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899668: ctx.gpr[31] = (0x08899670u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 273u, 0x08899670u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899670u) goto L_08899670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899670: { const bool branch_taken = aot_gpr_16 != 0u; if (branch_taken) { @@ -3388,8 +4465,21 @@ L_08899670: } L_08899678: ctx.gpr[31] = (0x08899680u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 275u, 0x08899680u, 0x08AB8BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 169u, 0x08AB8BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899680u) goto L_08899680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899680: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3405,8 +4495,21 @@ L_0889968C: L_08899694: ctx.gpr[31] = (0x0889969Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 278u, 0x0889969Cu, 0x0886DAC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 273u, 0x0886DAC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889969Cu) goto L_0889969C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889969C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); @@ -3435,12 +4538,38 @@ L_088996CC: aot_gpr_5 = (aot_gpr_5 + static_cast(-6992)); ctx.gpr[31] = (0x088996F4u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 280u, 0x088996F4u, 0x08961854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 282u, 0x08961854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088996F4u) goto L_088996F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088996F4: ctx.gpr[31] = (0x088996FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 281u, 0x088996FCu, 0x08990B70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 157u, 0x08990B70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088996FCu) goto L_088996FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088996FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 & 7u); @@ -3453,8 +4582,21 @@ L_088996FC: } L_08899710: ctx.gpr[31] = (0x08899718u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 283u, 0x08899718u, 0x08893FDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 665u, 0x08893FDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899718u) goto L_08899718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899718: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3474,8 +4616,21 @@ L_08899720: } L_08899734: ctx.gpr[31] = (0x0889973Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 286u, 0x0889973Cu, 0x08894244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 23u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 23u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 23u, 0x08894244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889973Cu) goto L_0889973C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889973C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(36), aot_run_words); @@ -3487,8 +4642,8 @@ L_0889973C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08899758: @@ -3659,8 +4814,21 @@ L_0889991C: } L_08899924: ctx.gpr[31] = (0x0889992Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 302u, 0x0889992Cu, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889992Cu) goto L_0889992C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889992C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -3722,8 +4890,21 @@ L_088999A4: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x088999C4u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 309u, 0x088999C4u, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088999C4u) goto L_088999C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088999C4: aot_gpr_4 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -3733,8 +4914,21 @@ L_088999C4: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x088999E4u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 310u, 0x088999E4u, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088999E4u) goto L_088999E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088999E4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(41))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3752,8 +4946,21 @@ L_088999F0: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08899A10u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 312u, 0x08899A10u, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899A10u) goto L_08899A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899A10: aot_gpr_4 = (aot_gpr_16 + static_cast(32)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -3763,8 +4970,21 @@ L_08899A10: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08899A30u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 313u, 0x08899A30u, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899A30u) goto L_08899A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899A30: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(40))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3782,8 +5002,21 @@ L_08899A3C: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08899A5Cu); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 315u, 0x08899A5Cu, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899A5Cu) goto L_08899A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899A5C: aot_gpr_4 = (aot_gpr_16 + static_cast(40)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -3793,8 +5026,21 @@ L_08899A5C: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08899A7Cu); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 316u, 0x08899A7Cu, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899A7Cu) goto L_08899A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899A7C: { const bool branch_taken = ctx.gpr[30] == 0u; if (branch_taken) { @@ -3811,8 +5057,21 @@ L_08899A84: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08899AA4u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 318u, 0x08899AA4u, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899AA4u) goto L_08899AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899AA4: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -3822,8 +5081,21 @@ L_08899AA4: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08899AC4u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 319u, 0x08899AC4u, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899AC4u) goto L_08899AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899AC4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3841,8 +5113,21 @@ L_08899AD0: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08899AF0u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 321u, 0x08899AF0u, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899AF0u) goto L_08899AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899AF0: aot_gpr_4 = (aot_gpr_16 + static_cast(52)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -3852,8 +5137,21 @@ L_08899AF0: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08899B10u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 322u, 0x08899B10u, 0x088926A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 362u, 0x088926A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899B10u) goto L_08899B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899B10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3874,8 +5172,21 @@ L_08899B1C: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899B48u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 324u, 0x08899B48u, 0x0889277Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 375u, 0x0889277Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899B48u) goto L_08899B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899B48: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -3919,8 +5230,8 @@ L_08899B80: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08899BB4: @@ -4091,8 +5402,21 @@ L_08899D78: } L_08899D80: ctx.gpr[31] = (0x08899D88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 342u, 0x08899D88u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899D88u) goto L_08899D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899D88: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -4155,8 +5479,21 @@ L_08899E00: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899E24u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 349u, 0x08899E24u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899E24u) goto L_08899E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899E24: aot_gpr_5 = (aot_gpr_16 + static_cast(4)); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -4167,8 +5504,21 @@ L_08899E24: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899E48u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 350u, 0x08899E48u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899E48u) goto L_08899E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899E48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4187,8 +5537,21 @@ L_08899E54: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899E78u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 352u, 0x08899E78u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899E78u) goto L_08899E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899E78: aot_gpr_5 = (aot_gpr_16 + static_cast(32)); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -4199,8 +5562,21 @@ L_08899E78: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899E9Cu); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 353u, 0x08899E9Cu, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899E9Cu) goto L_08899E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899E9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4219,8 +5595,21 @@ L_08899EA8: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899ECCu); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 355u, 0x08899ECCu, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899ECCu) goto L_08899ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899ECC: aot_gpr_5 = (aot_gpr_16 + static_cast(40)); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -4231,8 +5620,21 @@ L_08899ECC: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899EF0u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 356u, 0x08899EF0u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899EF0u) goto L_08899EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899EF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4251,8 +5653,21 @@ L_08899EFC: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899F20u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 358u, 0x08899F20u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899F20u) goto L_08899F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899F20: aot_gpr_5 = (aot_gpr_16 + static_cast(16)); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -4263,8 +5678,21 @@ L_08899F20: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899F44u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 359u, 0x08899F44u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899F44u) goto L_08899F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899F44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4283,8 +5711,21 @@ L_08899F50: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899F74u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 361u, 0x08899F74u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899F74u) goto L_08899F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899F74: aot_gpr_5 = (aot_gpr_16 + static_cast(52)); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -4295,8 +5736,21 @@ L_08899F74: ctx.gpr[9] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08899F98u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 362u, 0x08899F98u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08899F98u) goto L_08899F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08899F98: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -4340,8 +5794,8 @@ L_08899FD0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889A004: @@ -4510,8 +5964,21 @@ L_0889A1C0: } L_0889A1C8: ctx.gpr[31] = (0x0889A1D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 380u, 0x0889A1D0u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A1D0u) goto L_0889A1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A1D0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -4571,8 +6038,21 @@ L_0889A240: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A260u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 387u, 0x0889A260u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A260u) goto L_0889A260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A260: aot_gpr_4 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4582,8 +6062,21 @@ L_0889A260: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A280u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 388u, 0x0889A280u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A280u) goto L_0889A280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A280: aot_gpr_4 = (aot_gpr_16 + static_cast(20)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4593,8 +6086,21 @@ L_0889A280: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A2A0u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 389u, 0x0889A2A0u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A2A0u) goto L_0889A2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A2A0: aot_gpr_4 = (aot_gpr_16 + static_cast(24)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4604,8 +6110,21 @@ L_0889A2A0: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A2C0u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 390u, 0x0889A2C0u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A2C0u) goto L_0889A2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A2C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4623,8 +6142,21 @@ L_0889A2CC: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A2ECu); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 392u, 0x0889A2ECu, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A2ECu) goto L_0889A2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A2EC: aot_gpr_4 = (aot_gpr_16 + static_cast(32)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4634,8 +6166,21 @@ L_0889A2EC: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A30Cu); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 393u, 0x0889A30Cu, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A30Cu) goto L_0889A30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A30C: aot_gpr_4 = (aot_gpr_16 + static_cast(8)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4645,8 +6190,21 @@ L_0889A30C: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A32Cu); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 394u, 0x0889A32Cu, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A32Cu) goto L_0889A32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A32C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4664,8 +6222,21 @@ L_0889A338: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A358u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 396u, 0x0889A358u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A358u) goto L_0889A358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A358: aot_gpr_4 = (aot_gpr_16 + static_cast(40)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4675,8 +6246,21 @@ L_0889A358: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A378u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 397u, 0x0889A378u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A378u) goto L_0889A378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A378: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4694,8 +6278,21 @@ L_0889A384: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A3A4u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 399u, 0x0889A3A4u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A3A4u) goto L_0889A3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A3A4: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4705,8 +6302,21 @@ L_0889A3A4: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A3C4u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 400u, 0x0889A3C4u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A3C4u) goto L_0889A3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A3C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4724,8 +6334,21 @@ L_0889A3D0: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A3F0u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 402u, 0x0889A3F0u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A3F0u) goto L_0889A3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A3F0: aot_gpr_4 = (aot_gpr_16 + static_cast(52)); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4735,8 +6358,21 @@ L_0889A3F0: ctx.gpr[8] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0889A410u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 403u, 0x0889A410u, 0x08892A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 416u, 0x08892A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A410u) goto L_0889A410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A410: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[30]) < static_cast(ctx.gpr[23]) ? 1u : 0u); @@ -4779,8 +6415,8 @@ L_0889A444: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889A478: @@ -4946,8 +6582,21 @@ L_0889A624: } L_0889A62C: ctx.gpr[31] = (0x0889A634u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 421u, 0x0889A634u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A634u) goto L_0889A634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A634: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -5006,8 +6655,21 @@ L_0889A6A4: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A6C0u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 428u, 0x0889A6C0u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A6C0u) goto L_0889A6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A6C0: aot_gpr_4 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5016,8 +6678,21 @@ L_0889A6C0: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A6DCu); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 429u, 0x0889A6DCu, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A6DCu) goto L_0889A6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A6DC: aot_gpr_4 = (aot_gpr_16 + static_cast(20)); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5026,8 +6701,21 @@ L_0889A6DC: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A6F8u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 430u, 0x0889A6F8u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A6F8u) goto L_0889A6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A6F8: aot_gpr_4 = (aot_gpr_16 + static_cast(24)); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5036,8 +6724,21 @@ L_0889A6F8: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A714u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 431u, 0x0889A714u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A714u) goto L_0889A714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A714: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5054,8 +6755,21 @@ L_0889A720: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A73Cu); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 433u, 0x0889A73Cu, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A73Cu) goto L_0889A73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A73C: aot_gpr_4 = (aot_gpr_16 + static_cast(32)); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5064,8 +6778,21 @@ L_0889A73C: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A758u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 434u, 0x0889A758u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A758u) goto L_0889A758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A758: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5082,8 +6809,21 @@ L_0889A764: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A780u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 436u, 0x0889A780u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A780u) goto L_0889A780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A780: aot_gpr_4 = (aot_gpr_16 + static_cast(40)); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5092,8 +6832,21 @@ L_0889A780: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A79Cu); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 437u, 0x0889A79Cu, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A79Cu) goto L_0889A79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A79C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5110,8 +6863,21 @@ L_0889A7A8: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A7C4u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 439u, 0x0889A7C4u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A7C4u) goto L_0889A7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A7C4: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5120,8 +6886,21 @@ L_0889A7C4: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A7E0u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 440u, 0x0889A7E0u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A7E0u) goto L_0889A7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A7E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5138,8 +6917,21 @@ L_0889A7EC: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A808u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 442u, 0x0889A808u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A808u) goto L_0889A808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A808: aot_gpr_4 = (aot_gpr_16 + static_cast(52)); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5148,8 +6940,21 @@ L_0889A808: ctx.gpr[8] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889A824u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 443u, 0x0889A824u, 0x08892B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 430u, 0x08892B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889A824u) goto L_0889A824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889A824: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[30]) < static_cast(ctx.gpr[23]) ? 1u : 0u); @@ -5191,8 +6996,8 @@ L_0889A858: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889A888: @@ -5357,8 +7162,21 @@ L_0889AA30: } L_0889AA38: ctx.gpr[31] = (0x0889AA40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 461u, 0x0889AA40u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AA40u) goto L_0889AA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AA40: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -5419,8 +7237,21 @@ L_0889AAB8: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AAD8u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 468u, 0x0889AAD8u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AAD8u) goto L_0889AAD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AAD8: aot_gpr_4 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -5430,8 +7261,21 @@ L_0889AAD8: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AAF8u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 469u, 0x0889AAF8u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AAF8u) goto L_0889AAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AAF8: aot_gpr_4 = (aot_gpr_16 + static_cast(20)); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -5441,8 +7285,21 @@ L_0889AAF8: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AB18u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 470u, 0x0889AB18u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AB18u) goto L_0889AB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AB18: aot_gpr_4 = (aot_gpr_16 + static_cast(24)); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -5452,8 +7309,21 @@ L_0889AB18: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AB38u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 471u, 0x0889AB38u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AB38u) goto L_0889AB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AB38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5471,8 +7341,21 @@ L_0889AB44: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AB64u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 473u, 0x0889AB64u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AB64u) goto L_0889AB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AB64: aot_gpr_4 = (aot_gpr_16 + static_cast(32)); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -5482,8 +7365,21 @@ L_0889AB64: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AB84u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 474u, 0x0889AB84u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AB84u) goto L_0889AB84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AB84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5501,8 +7397,21 @@ L_0889AB90: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889ABB0u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 476u, 0x0889ABB0u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ABB0u) goto L_0889ABB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889ABB0: aot_gpr_4 = (aot_gpr_16 + static_cast(40)); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -5512,8 +7421,21 @@ L_0889ABB0: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889ABD0u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 477u, 0x0889ABD0u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ABD0u) goto L_0889ABD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889ABD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5531,8 +7453,21 @@ L_0889ABDC: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889ABFCu); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 479u, 0x0889ABFCu, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ABFCu) goto L_0889ABFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889ABFC: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -5542,8 +7477,21 @@ L_0889ABFC: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AC1Cu); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 480u, 0x0889AC1Cu, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AC1Cu) goto L_0889AC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AC1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5561,8 +7509,21 @@ L_0889AC28: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AC48u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 482u, 0x0889AC48u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AC48u) goto L_0889AC48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AC48: aot_gpr_4 = (aot_gpr_16 + static_cast(52)); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -5572,8 +7533,21 @@ L_0889AC48: ctx.gpr[9] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0889AC68u); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 483u, 0x0889AC68u, 0x08892D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 445u, 0x08892D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AC68u) goto L_0889AC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AC68: ctx.gpr[30] = (ctx.gpr[30] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -5618,8 +7592,8 @@ L_0889ACA0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889ACD0: @@ -5795,8 +7769,21 @@ L_0889AEA4: } L_0889AEB4: ctx.gpr[31] = (0x0889AEBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 502u, 0x0889AEBCu, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889AEBCu) goto L_0889AEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889AEBC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -6438,8 +8425,8 @@ L_0889B2A4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889B2D8: @@ -6470,8 +8457,21 @@ L_0889B338: aot_gpr_4 = (2235u << 16u); ctx.gpr[31] = (0x0889B34Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(27952)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 558u, 0x0889B34Cu, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B34Cu) goto L_0889B34C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B34C: ctx.gpr[31] = (0x0889B354u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25464)); @@ -6518,8 +8518,21 @@ L_0889B354: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); ctx.gpr[31] = (0x0889B40Cu); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 560u, 0x0889B40Cu, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B40Cu) goto L_0889B40C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B40C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6645,8 +8658,21 @@ L_0889B4EC: L_0889B4F4: ctx.gpr[31] = (0x0889B4FCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 574u, 0x0889B4FCu, 0x088961FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 434u, 0x088961FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B4FCu) goto L_0889B4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B4FC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6659,8 +8685,21 @@ L_0889B504: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x0889B514u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 576u, 0x0889B514u, 0x088919A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 222u, 0x088919A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B514u) goto L_0889B514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B514: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6824,8 +8863,21 @@ L_0889B630: L_0889B63C: ctx.gpr[31] = (0x0889B644u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 588u, 0x0889B644u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B644u) goto L_0889B644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B644: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (aot_gpr_17 | 0u); @@ -6861,8 +8913,21 @@ L_0889B664: L_0889B670: ctx.gpr[31] = (0x0889B678u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 593u, 0x0889B678u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B678u) goto L_0889B678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B678: ctx.gpr[2] = (0u | 0u); goto L_0889B67C; @@ -6882,8 +8947,8 @@ L_0889B67C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889B6AC: @@ -6975,8 +9040,21 @@ L_0889B764: L_0889B76C: ctx.gpr[31] = (0x0889B774u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 607u, 0x0889B774u, 0x0890C798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 128u, 0x0890C798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B774u) goto L_0889B774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B774: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7018,8 +9096,21 @@ L_0889B77C: L_0889B7BC: ctx.gpr[31] = (0x0889B7C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 610u, 0x0889B7C4u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B7C4u) goto L_0889B7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B7C4: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[23]) ? 1u : 0u); @@ -7147,8 +9238,21 @@ L_0889B894: L_0889B8A0: ctx.gpr[31] = (0x0889B8A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 624u, 0x0889B8A8u, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B8A8u) goto L_0889B8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B8A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7168,25 +9272,77 @@ L_0889B8BC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(900))); ctx.gpr[31] = (0x0889B8C8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 627u, 0x0889B8C8u, 0x08B00578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 78u, 0x08B00578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B8C8u) goto L_0889B8C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B8C8: ctx.gpr[31] = (0x0889B8D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 628u, 0x0889B8D0u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B8D0u) goto L_0889B8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B8D0: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x0889B8DCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 629u, 0x0889B8DCu, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B8DCu) goto L_0889B8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B8DC: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x0889B8E8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 630u, 0x0889B8E8u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B8E8u) goto L_0889B8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B8E8: aot_gpr_16 = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(565))); @@ -7222,26 +9378,78 @@ L_0889B920: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x0889B930u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 635u, 0x0889B930u, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B930u) goto L_0889B930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B930: ctx.gpr[31] = (0x0889B938u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 636u, 0x0889B938u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B938u) goto L_0889B938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B938: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x0889B948u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 637u, 0x0889B948u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B948u) goto L_0889B948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B948: aot_gpr_4 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x0889B954u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 638u, 0x0889B954u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B954u) goto L_0889B954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B954: ctx.gpr[30] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); goto L_0889B958; @@ -7258,14 +9466,40 @@ L_0889B958: L_0889B96C: ctx.gpr[31] = (0x0889B974u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 641u, 0x0889B974u, 0x08B41658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 369u, 0x08B41658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B974u) goto L_0889B974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B974: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x0889B980u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 642u, 0x0889B980u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B980u) goto L_0889B980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B980: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -7315,8 +9549,21 @@ L_0889B9B8: aot_gpr_4 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x0889B9CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 647u, 0x0889B9CCu, 0x0882C4C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 77u, 0x0882C4C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B9CCu) goto L_0889B9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B9CC: aot_gpr_4 = (2238u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); @@ -7336,8 +9583,21 @@ L_0889B9CC: aot_gpr_5 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x0889B9E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 648u, 0x0889B9E8u, 0x089D0284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 32u, 0x089D0284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B9E8u) goto L_0889B9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B9E8: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7355,8 +9615,21 @@ L_0889B9E8: aot_gpr_4 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x0889B9FCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 649u, 0x0889B9FCu, 0x08894D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 177u, 0x08894D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889B9FCu) goto L_0889B9FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889B9FC: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7374,8 +9647,21 @@ L_0889B9FC: aot_gpr_4 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x0889BA10u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 650u, 0x0889BA10u, 0x089E94F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 262u, 0x089E94F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889BA10u) goto L_0889BA10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889BA10: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -7385,18 +9671,57 @@ L_0889BA10: } L_0889BA18: ctx.gpr[31] = (0x0889BA20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 652u, 0x0889BA20u, 0x088807A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 66u, 0x088807A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889BA20u) goto L_0889BA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889BA20: ctx.gpr[31] = (0x0889BA28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 653u, 0x0889BA28u, 0x08A974F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 487u, 0x08A974F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889BA28u) goto L_0889BA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889BA28: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x0889BA34u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 654u, 0x0889BA34u, 0x088F38D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 700u, 0x088F38D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889BA34u) goto L_0889BA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889BA34: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(40), aot_run_words); @@ -7415,8 +9740,8 @@ L_0889BA34: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889BA6C: @@ -7465,8 +9790,21 @@ L_0889BB18: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-25492))); aot_mem.aot_direct_store16(ctx.gpr[20] + static_cast(84), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x0889BB28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 659u, 0x0889BB28u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889BB28u) goto L_0889BB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889BB28: { const bool branch_taken = ctx.gpr[20] == ctx.gpr[2]; if (branch_taken) { @@ -7596,8 +9934,21 @@ L_0889BC28: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x0889BC58u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 671u, 0x0889BC58u, 0x08891710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 194u, 0x08891710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889BC58u) goto L_0889BC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889BC58: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7781,8 +10132,21 @@ L_0889BDC8: L_0889BDD0: ctx.gpr[31] = (0x0889BDD8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 689u, 0x0889BDD8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889BDD8u) goto L_0889BDD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889BDD8: { const bool branch_taken = ctx.gpr[30] != 0u; if (branch_taken) { @@ -7812,8 +10176,8 @@ L_0889BDE0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889BE28: @@ -7836,8 +10200,21 @@ L_0889BE28: ctx.gpr[18] = (0u | 0u); ctx.gpr[31] = (0x0889BEA0u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0037->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0037_entry, 692u, 0x0889BEA0u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889BEA0u) goto L_0889BEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889BEA0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8422))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(612), ctx.gpr[23]); diff --git a/profiles/vcs/generated/generated_unit_0038.cpp b/profiles/vcs/generated/generated_unit_0038.cpp index d2d6472..20af4ac 100644 --- a/profiles/vcs/generated/generated_unit_0038.cpp +++ b/profiles/vcs/generated/generated_unit_0038.cpp @@ -948,6 +948,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0889C000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -979,8 +1003,21 @@ L_0889C008: L_0889C014: aot_gpr_31 = (0x0889C01Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 4u, 0x0889C01Cu, 0x088961FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 434u, 0x088961FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C01Cu) goto L_0889C01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C01C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1042,8 +1079,21 @@ L_0889C084: L_0889C08C: aot_gpr_31 = (0x0889C094u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 11u, 0x0889C094u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C094u) goto L_0889C094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C094: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1062,8 +1112,21 @@ L_0889C09C: L_0889C0A8: aot_gpr_31 = (0x0889C0B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 14u, 0x0889C0B0u, 0x08B017A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 409u, 0x08B017A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C0B0u) goto L_0889C0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C0B0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1100,8 +1163,21 @@ L_0889C0E4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0889C0F0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 19u, 0x0889C0F0u, 0x089039E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 664u, 0x089039E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C0F0u) goto L_0889C0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C0F0: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -1138,8 +1214,21 @@ L_0889C120: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x0889C13Cu); ctx.gpr[21] = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 23u, 0x0889C13Cu, 0x089D273Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 419u, 0x089D273Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C13Cu) goto L_0889C13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C13C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -1203,8 +1292,21 @@ L_0889C194: aot_gpr_6 = (aot_gpr_29 + static_cast(384)); aot_gpr_31 = (0x0889C1A4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 31u, 0x0889C1A4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C1A4u) goto L_0889C1A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C1A4: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(384))); @@ -1249,8 +1351,21 @@ L_0889C1F0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0889C1FCu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 37u, 0x0889C1FCu, 0x089039E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 664u, 0x089039E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C1FCu) goto L_0889C1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C1FC: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -1321,8 +1436,21 @@ L_0889C274: ctx.gpr[7] = (aot_gpr_29 + static_cast(464)); aot_gpr_31 = (0x0889C298u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 45u, 0x0889C298u, 0x088B1820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 207u, 0x088B1820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C298u) goto L_0889C298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C298: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_gpr_29 + static_cast(464)); @@ -1346,8 +1474,21 @@ L_0889C2A8: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889C2C0u); ctx.gpr[9] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 48u, 0x0889C2C0u, 0x088B3CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 484u, 0x088B3CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C2C0u) goto L_0889C2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C2C0: if (aot_gpr_2 != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); @@ -1373,8 +1514,21 @@ L_0889C2D0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889C2F8u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 51u, 0x0889C2F8u, 0x08891710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 194u, 0x08891710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C2F8u) goto L_0889C2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C2F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -1490,8 +1644,21 @@ L_0889C3B8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889C3DCu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 58u, 0x0889C3DCu, 0x088B1820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 207u, 0x088B1820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C3DCu) goto L_0889C3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C3DC: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[8] = (0u | 0u); @@ -1515,8 +1682,21 @@ L_0889C3EC: ctx.gpr[7] = (aot_gpr_29 + static_cast(336)); aot_gpr_31 = (0x0889C404u); ctx.gpr[9] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 61u, 0x0889C404u, 0x088B3CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 484u, 0x088B3CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C404u) goto L_0889C404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C404: if (aot_gpr_2 != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); @@ -1542,8 +1722,21 @@ L_0889C414: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889C43Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 64u, 0x0889C43Cu, 0x08891710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 194u, 0x08891710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C43Cu) goto L_0889C43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C43C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -1633,8 +1826,21 @@ L_0889C4D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0889C4E8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 68u, 0x0889C4E8u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C4E8u) goto L_0889C4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C4E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(604))); { const bool branch_taken = 0u == 0u; @@ -1778,8 +1984,21 @@ L_0889C5A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0889C5B0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 74u, 0x0889C5B0u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C5B0u) goto L_0889C5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C5B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(604))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[18]); @@ -1808,8 +2027,21 @@ L_0889C5E0: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x0889C5F4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 78u, 0x0889C5F4u, 0x08990464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 70u, 0x08990464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C5F4u) goto L_0889C5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C5F4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -1821,8 +2053,21 @@ L_0889C5F4: L_0889C5FC: aot_gpr_31 = (0x0889C604u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 80u, 0x0889C604u, 0x08990464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 70u, 0x08990464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C604u) goto L_0889C604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C604: aot_gpr_2 = (0u | 0u); goto L_0889C608; @@ -1845,8 +2090,8 @@ L_0889C608: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(704)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889C644: @@ -1952,8 +2197,21 @@ L_0889C6E8: L_0889C734: aot_gpr_31 = (0x0889C73Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 86u, 0x0889C73Cu, 0x08A4182Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 290u, 0x08A4182Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C73Cu) goto L_0889C73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C73C: aot_gpr_4 = (4u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -1981,8 +2239,21 @@ L_0889C758: L_0889C774: aot_gpr_31 = (0x0889C77Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 89u, 0x0889C77Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C77Cu) goto L_0889C77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C77C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2164,8 +2435,21 @@ L_0889C8A0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0889C8B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 110u, 0x0889C8B4u, 0x08827E00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 598u, 0x08827E00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C8B4u) goto L_0889C8B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C8B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2179,8 +2463,21 @@ L_0889C8BC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0889C8D0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 112u, 0x0889C8D0u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C8D0u) goto L_0889C8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C8D0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); @@ -2226,8 +2523,21 @@ L_0889C90C: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x0889C920u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 116u, 0x0889C920u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C920u) goto L_0889C920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C920: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x0889C92Cu); @@ -2240,15 +2550,41 @@ L_0889C92C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0889C940u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 118u, 0x0889C940u, 0x08941D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C940u) goto L_0889C940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C940: aot_gpr_4 = (0u | 6u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0889C950u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 119u, 0x0889C950u, 0x08941D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889C950u) goto L_0889C950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889C950: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(482)))))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[19]); @@ -2393,8 +2729,21 @@ L_0889CA54: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889CA70u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 135u, 0x0889CA70u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CA70u) goto L_0889CA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CA70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2408,8 +2757,21 @@ L_0889CA78: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0889CA8Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 137u, 0x0889CA8Cu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CA8Cu) goto L_0889CA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CA8C: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -2534,8 +2896,21 @@ L_0889CB80: } aot_gpr_31 = (0x0889CB94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 150u, 0x0889CB94u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CB94u) goto L_0889CB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CB94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 8192u); @@ -2593,8 +2968,21 @@ L_0889CC14: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0889CC40u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 154u, 0x0889CC40u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CC40u) goto L_0889CC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CC40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -2626,8 +3014,21 @@ L_0889CC70: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0889CC8Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 157u, 0x0889CC8Cu, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CC8Cu) goto L_0889CC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CC8C: aot_gpr_4 = (0u | 1u); goto L_0889CC90; @@ -2657,8 +3058,21 @@ L_0889CCA0: ctx.gpr[7] = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x0889CCD8u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 161u, 0x0889CCD8u, 0x08B0452Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CCD8u) goto L_0889CCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CCD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(268))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2742,8 +3156,21 @@ L_0889CD5C: aot_gpr_5 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x0889CD80u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 171u, 0x0889CD80u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CD80u) goto L_0889CD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CD80: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2120))); @@ -2789,8 +3216,21 @@ L_0889CDCC: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889CDF0u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 175u, 0x0889CDF0u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CDF0u) goto L_0889CDF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CDF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2820,8 +3260,21 @@ L_0889CE04: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x0889CE34u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 178u, 0x0889CE34u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CE34u) goto L_0889CE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CE34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(248), std::bit_cast(ctx.fpr[24])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(252), std::bit_cast(ctx.fpr[22])); @@ -2852,8 +3305,21 @@ L_0889CE50: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889CE80u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 182u, 0x0889CE80u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CE80u) goto L_0889CE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CE80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2228))); aot_gpr_5 = (0u | 57u); @@ -2869,8 +3335,21 @@ L_0889CE90: aot_gpr_5 = (0u | 2000u); aot_gpr_31 = (0x0889CEA4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 184u, 0x0889CEA4u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CEA4u) goto L_0889CEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CEA4: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -2906,8 +3385,21 @@ L_0889CED8: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0889CEF0u); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 188u, 0x0889CEF0u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CEF0u) goto L_0889CEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CEF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2922,14 +3414,40 @@ L_0889CEF8: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0889CF10u); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 190u, 0x0889CF10u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CF10u) goto L_0889CF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CF10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889CF1Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 191u, 0x0889CF1Cu, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CF1Cu) goto L_0889CF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CF1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2956,8 +3474,21 @@ L_0889CF40: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889CF54u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 194u, 0x0889CF54u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CF54u) goto L_0889CF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CF54: { const bool branch_taken = ctx.gpr[21] != 0u; if (branch_taken) { @@ -2993,8 +3524,8 @@ L_0889CF70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889CFB8: @@ -3007,8 +3538,21 @@ L_0889CFB8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0889CFDCu); aot_gpr_6 = (0u | 352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 198u, 0x0889CFDCu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889CFDCu) goto L_0889CFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889CFDC: aot_gpr_31 = (0x0889CFE4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-25440)); @@ -3024,8 +3568,8 @@ L_0889CFF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889CFFC: @@ -3040,21 +3584,60 @@ L_0889CFFC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(108), aot_gpr_31); aot_gpr_31 = (0x0889D028u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 202u, 0x0889D028u, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D028u) goto L_0889D028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D028: aot_gpr_5 = (ctx.gpr[28] + static_cast(-25416)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D038u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 203u, 0x0889D038u, 0x089E6F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 622u, 0x089E6F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D038u) goto L_0889D038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D038: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (0x0889D044u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-25412)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 204u, 0x0889D044u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D044u) goto L_0889D044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D044: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -3123,8 +3706,8 @@ L_0889D0AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D0C4: @@ -3146,16 +3729,42 @@ L_0889D0F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D100u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 215u, 0x0889D100u, 0x088068B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 327u, 0x088068B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D100u) goto L_0889D100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D100: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D114u); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 216u, 0x0889D114u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D114u) goto L_0889D114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D114: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -3173,8 +3782,8 @@ L_0889D124: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D140: @@ -3186,8 +3795,21 @@ L_0889D140: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0889D160u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 219u, 0x0889D160u, 0x088068B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 327u, 0x088068B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D160u) goto L_0889D160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D160: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -3203,8 +3825,8 @@ L_0889D170: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D184: @@ -3214,8 +3836,21 @@ L_0889D184: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), aot_gpr_31); aot_gpr_31 = (0x0889D19Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 222u, 0x0889D19Cu, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D19Cu) goto L_0889D19C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D19C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3228,8 +3863,21 @@ L_0889D1A4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889D1B4u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 224u, 0x0889D1B4u, 0x089E6F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 622u, 0x089E6F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D1B4u) goto L_0889D1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D1B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -3244,8 +3892,21 @@ L_0889D1C0: aot_gpr_6 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0889D1D4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 226u, 0x0889D1D4u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D1D4u) goto L_0889D1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D1D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3258,15 +3919,28 @@ L_0889D1DC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889D1ECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 228u, 0x0889D1ECu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D1ECu) goto L_0889D1EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D1EC: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D1FC: @@ -3297,19 +3971,58 @@ L_0889D250: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D260u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 231u, 0x0889D260u, 0x08806EC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 436u, 0x08806EC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D260u) goto L_0889D260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D260: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889D26Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 232u, 0x0889D26Cu, 0x08807904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D26Cu) goto L_0889D26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D26C: aot_gpr_31 = (0x0889D274u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 233u, 0x0889D274u, 0x08807890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 538u, 0x08807890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D274u) goto L_0889D274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D274: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -3320,8 +4033,8 @@ L_0889D274: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D28C: @@ -3332,14 +4045,40 @@ L_0889D28C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0889D2A8u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 235u, 0x0889D2A8u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2A8u) goto L_0889D2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D2A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D2B4u); aot_gpr_5 = (0u + static_cast(-10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 236u, 0x0889D2B4u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2B4u) goto L_0889D2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D2B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D2C0u); @@ -3370,14 +4109,40 @@ L_0889D2D0: L_0889D2DC: aot_gpr_31 = (0x0889D2E4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 241u, 0x0889D2E4u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2E4u) goto L_0889D2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D2E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D2F0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 242u, 0x0889D2F0u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D2F0u) goto L_0889D2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D2F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D2FCu); @@ -3388,8 +4153,21 @@ L_0889D2FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D308u); aot_gpr_5 = (0u + static_cast(-10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 244u, 0x0889D308u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D308u) goto L_0889D308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D308: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D314u); @@ -3400,14 +4178,40 @@ L_0889D314: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D320u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 246u, 0x0889D320u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D320u) goto L_0889D320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D320: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D32Cu); aot_gpr_5 = (0u + static_cast(-10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 247u, 0x0889D32Cu, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D32Cu) goto L_0889D32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D32C: aot_gpr_2 = (0u | 1u); goto L_0889D330; @@ -3420,8 +4224,8 @@ L_0889D330: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D344: @@ -3430,21 +4234,47 @@ L_0889D344: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889D358u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 250u, 0x0889D358u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D358u) goto L_0889D358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D358: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889D364u); aot_gpr_5 = (0u + static_cast(-10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 251u, 0x0889D364u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D364u) goto L_0889D364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D364: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D374: @@ -3457,8 +4287,21 @@ L_0889D374: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0889D398u); ctx.gpr[18] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 253u, 0x0889D398u, 0x08807294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 466u, 0x08807294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D398u) goto L_0889D398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D398: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3470,14 +4313,40 @@ L_0889D3A0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D3ACu); aot_gpr_5 = (0u + static_cast(-10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 255u, 0x0889D3ACu, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D3ACu) goto L_0889D3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D3AC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D3B8u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 256u, 0x0889D3B8u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D3B8u) goto L_0889D3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D3B8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3489,8 +4358,21 @@ L_0889D3B8: L_0889D3C4: aot_gpr_31 = (0x0889D3CCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 258u, 0x0889D3CCu, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D3CCu) goto L_0889D3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D3CC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3530,8 +4412,21 @@ L_0889D3FC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D408u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 264u, 0x0889D408u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D408u) goto L_0889D408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D408: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3542,8 +4437,8 @@ L_0889D408: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D420: @@ -3554,8 +4449,21 @@ L_0889D420: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0889D43Cu); ctx.gpr[16] = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 266u, 0x0889D43Cu, 0x088064C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 286u, 0x088064C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D43Cu) goto L_0889D43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D43C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3579,8 +4487,8 @@ L_0889D458: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D46C: @@ -3618,8 +4526,8 @@ L_0889D4A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D4C0: @@ -3655,8 +4563,8 @@ L_0889D4F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D50C: @@ -3669,8 +4577,21 @@ L_0889D50C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x0889D534u); ctx.gpr[18] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 278u, 0x0889D534u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D534u) goto L_0889D534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D534: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] != 0u; @@ -3696,8 +4617,21 @@ L_0889D558: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D564u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 282u, 0x0889D564u, 0x08806BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D564u) goto L_0889D564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D564: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), aot_gpr_2); goto L_0889D568; @@ -3713,8 +4647,8 @@ L_0889D568: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D588: @@ -3788,8 +4722,8 @@ L_0889D5F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D610: @@ -3843,8 +4777,8 @@ L_0889D668: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D684: @@ -3889,8 +4823,8 @@ L_0889D6C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D6DC: @@ -3901,8 +4835,21 @@ L_0889D6DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0889D6F8u); ctx.gpr[16] = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 306u, 0x0889D6F8u, 0x08807294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 466u, 0x08807294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D6F8u) goto L_0889D6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D6F8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3914,14 +4861,40 @@ L_0889D700: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D70Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 308u, 0x0889D70Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D70Cu) goto L_0889D70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D70C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D718u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 309u, 0x0889D718u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D718u) goto L_0889D718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D718: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D724u); @@ -3961,8 +4934,21 @@ L_0889D748: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889D754u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 315u, 0x0889D754u, 0x088066C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 310u, 0x088066C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D754u) goto L_0889D754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D754: aot_gpr_2 = (0u | 1u); goto L_0889D758; @@ -3975,8 +4961,8 @@ L_0889D758: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D76C: @@ -4049,8 +5035,21 @@ L_0889D7DC: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0889D7F0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 326u, 0x0889D7F0u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D7F0u) goto L_0889D7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D7F0: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_0889D7F4; @@ -4064,8 +5063,8 @@ L_0889D7F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D80C: @@ -4089,14 +5088,40 @@ L_0889D840: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D84Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 330u, 0x0889D84Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D84Cu) goto L_0889D84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D84C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D858u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 331u, 0x0889D858u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D858u) goto L_0889D858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D858: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D864u); @@ -4119,14 +5144,40 @@ L_0889D86C: L_0889D878: aot_gpr_31 = (0x0889D880u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 335u, 0x0889D880u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D880u) goto L_0889D880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D880: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D88Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 336u, 0x0889D88Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D88Cu) goto L_0889D88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D88C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D898u); @@ -4144,8 +5195,21 @@ L_0889D8A4: aot_gpr_5 = (0u - aot_gpr_5); aot_gpr_31 = (0x0889D8B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 339u, 0x0889D8B4u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D8B4u) goto L_0889D8B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D8B4: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4164,8 +5228,21 @@ L_0889D8CC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D8D8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 342u, 0x0889D8D8u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D8D8u) goto L_0889D8D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D8D8: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[16]) ? 1u : 0u); @@ -4195,8 +5272,21 @@ L_0889D904: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D914u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 346u, 0x0889D914u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D914u) goto L_0889D914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D914: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889D920u); @@ -4232,8 +5322,8 @@ L_0889D940: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D964: @@ -4291,8 +5381,8 @@ L_0889D9BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889D9D8: @@ -4303,8 +5393,21 @@ L_0889D9D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889D9F4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 358u, 0x0889D9F4u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889D9F4u) goto L_0889D9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889D9F4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889DA00u); @@ -4327,8 +5430,21 @@ L_0889DA08: L_0889DA14: aot_gpr_31 = (0x0889DA1Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 362u, 0x0889DA1Cu, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA1Cu) goto L_0889DA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DA1C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889DA28u); @@ -4339,28 +5455,80 @@ L_0889DA28: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889DA34u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 364u, 0x0889DA34u, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA34u) goto L_0889DA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DA34: aot_gpr_5 = (ctx.gpr[28] + static_cast(-25368)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889DA44u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 365u, 0x0889DA44u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA44u) goto L_0889DA44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DA44: aot_gpr_5 = (ctx.gpr[28] + static_cast(-25360)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889DA54u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 366u, 0x0889DA54u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA54u) goto L_0889DA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DA54: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889DA60u); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 367u, 0x0889DA60u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA60u) goto L_0889DA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DA60: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889DA6Cu); @@ -4372,15 +5540,28 @@ L_0889DA6C: aot_gpr_5 = (0u + static_cast(-10000)); aot_gpr_31 = (0x0889DA7Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 369u, 0x0889DA7Cu, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DA7Cu) goto L_0889DA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DA7C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DA8C: @@ -4428,14 +5609,40 @@ L_0889DADC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889DAECu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 375u, 0x0889DAECu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DAECu) goto L_0889DAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DAEC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DAF8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 376u, 0x0889DAF8u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DAF8u) goto L_0889DAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DAF8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DB04u); @@ -4453,8 +5660,21 @@ L_0889DB0C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889DB1Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 379u, 0x0889DB1Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB1Cu) goto L_0889DB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DB1C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DB28u); @@ -4465,8 +5685,21 @@ L_0889DB28: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DB34u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 381u, 0x0889DB34u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB34u) goto L_0889DB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DB34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4494,8 +5727,21 @@ L_0889DB5C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DB68u); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 386u, 0x0889DB68u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DB68u) goto L_0889DB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DB68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DB74u); @@ -4513,8 +5759,8 @@ L_0889DB74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DB90: @@ -4558,14 +5804,40 @@ L_0889DBD0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DBE0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 393u, 0x0889DBE0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DBE0u) goto L_0889DBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DBE0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DBECu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 394u, 0x0889DBECu, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DBECu) goto L_0889DBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DBEC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DBF8u); @@ -4592,8 +5864,21 @@ L_0889DC14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DC20u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 399u, 0x0889DC20u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DC20u) goto L_0889DC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DC20: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DC2Cu); @@ -4633,8 +5918,21 @@ L_0889DC4C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889DC5Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 405u, 0x0889DC5Cu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DC5Cu) goto L_0889DC5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DC5C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889DC68u); @@ -4681,8 +5979,8 @@ L_0889DC94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DCAC: @@ -4713,8 +6011,21 @@ L_0889DCDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_gpr_31 = (0x0889DCECu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 415u, 0x0889DCECu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DCECu) goto L_0889DCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DCEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), ctx.gpr[17]); @@ -4731,8 +6042,8 @@ L_0889DD00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DD14: @@ -4755,8 +6066,21 @@ L_0889DD44: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0889DD58u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 419u, 0x0889DD58u, 0x08806BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DD58u) goto L_0889DD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DD58: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_0889DD5C; @@ -4765,8 +6089,21 @@ L_0889DD5C: aot_gpr_5 = (0u - ctx.gpr[17]); aot_gpr_31 = (0x0889DD6Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 421u, 0x0889DD6Cu, 0x08806BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DD6Cu) goto L_0889DD6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DD6C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_6 = (aot_gpr_5 - ctx.gpr[19]); @@ -4815,8 +6152,21 @@ L_0889DDB0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0889DDBCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 427u, 0x0889DDBCu, 0x08807904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DDBCu) goto L_0889DDBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DDBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 - ctx.gpr[19]); @@ -4835,8 +6185,8 @@ L_0889DDCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DDEC: @@ -4863,8 +6213,8 @@ L_0889DE10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DE24: @@ -4929,8 +6279,8 @@ L_0889DE98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DEB8: @@ -4944,8 +6294,21 @@ L_0889DECC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_gpr_31 = (0x0889DED8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 441u, 0x0889DED8u, 0x08807904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DED8u) goto L_0889DED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DED8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), aot_gpr_4); @@ -4953,8 +6316,8 @@ L_0889DED8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DEF0: @@ -4969,8 +6332,21 @@ L_0889DEF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0889DF1Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 443u, 0x0889DF1Cu, 0x08806BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF1Cu) goto L_0889DF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DF1C: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (ctx.gpr[16] + static_cast(12)); @@ -4989,15 +6365,41 @@ L_0889DF40: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0889DF4Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 445u, 0x0889DF4Cu, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF4Cu) goto L_0889DF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DF4C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0889DF5Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 446u, 0x0889DF5Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF5Cu) goto L_0889DF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DF5C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -5029,8 +6431,21 @@ L_0889DF8C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0889DF98u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 451u, 0x0889DF98u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889DF98u) goto L_0889DF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889DF98: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5049,8 +6464,8 @@ L_0889DFAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DFC8: @@ -5059,8 +6474,8 @@ L_0889DFC8: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889DFDC: @@ -5077,8 +6492,21 @@ L_0889DFDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0889E010u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 455u, 0x0889E010u, 0x08B3B264u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 898u, 0x08B3B264u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E010u) goto L_0889E010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E010: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_6 = (32768u << 16u); @@ -5111,8 +6539,21 @@ L_0889E054: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889E060u); aot_gpr_6 = (0u | 1024u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 458u, 0x0889E060u, 0x08B3AEC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 822u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 822u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 822u, 0x08B3AEC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E060u) goto L_0889E060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E060: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 < static_cast(1) ? 1u : 0u); @@ -5133,8 +6574,21 @@ L_0889E070: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889E07Cu); aot_gpr_6 = (0u | 1024u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 461u, 0x0889E07Cu, 0x08B3B0E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 864u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 864u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 864u, 0x08B3B0E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E07Cu) goto L_0889E07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E07C: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_0889E080; @@ -5156,8 +6610,8 @@ L_0889E090: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E0A8: @@ -5168,8 +6622,21 @@ L_0889E0A8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0889E0CCu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 465u, 0x0889E0CCu, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E0CCu) goto L_0889E0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E0CC: aot_gpr_4 = (2232u << 16u); ctx.gpr[18] = (aot_gpr_2 + static_cast(1)); @@ -5180,22 +6647,61 @@ L_0889E0CC: L_0889E0DC: aot_gpr_31 = (0x0889E0E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 467u, 0x0889E0E4u, 0x08B583A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 74u, 0x08B583A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E0E4u) goto L_0889E0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E0E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889E0F8u); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 468u, 0x0889E0F8u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E0F8u) goto L_0889E0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E0F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889E104u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 469u, 0x0889E104u, 0x088066C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 310u, 0x088066C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E104u) goto L_0889E104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E104: aot_gpr_2 = (0u | 2u); { std::uint32_t aot_run_words[5]{}; @@ -5208,8 +6714,8 @@ L_0889E104: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E124: @@ -5228,15 +6734,41 @@ L_0889E154: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889E168u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 472u, 0x0889E168u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E168u) goto L_0889E168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E168: aot_gpr_5 = (ctx.gpr[28] + static_cast(-25340)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889E178u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 473u, 0x0889E178u, 0x08809B44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 356u, 0x08809B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E178u) goto L_0889E178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E178: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5267,8 +6799,21 @@ L_0889E184: L_0889E1B4: aot_gpr_31 = (0x0889E1BCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 476u, 0x0889E1BCu, 0x08B3AEC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 822u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 822u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 822u, 0x08B3AEC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E1BCu) goto L_0889E1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E1BC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5292,8 +6837,21 @@ L_0889E1D0: L_0889E1D8: aot_gpr_31 = (0x0889E1E0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 480u, 0x0889E1E0u, 0x08B3B0E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 864u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 864u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 864u, 0x08B3B0E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E1E0u) goto L_0889E1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E1E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_0889E1E4; @@ -5312,8 +6870,21 @@ L_0889E1F4: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0889E204u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 483u, 0x0889E204u, 0x08B3B024u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 855u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 855u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 855u, 0x08B3B024u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E204u) goto L_0889E204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E204: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1028)))))); aot_gpr_4 = (ctx.gpr[22] + aot_gpr_4); @@ -5330,8 +6901,21 @@ L_0889E218: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0889E228u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 485u, 0x0889E228u, 0x08B3B264u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 898u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 898u, 0x08B3B264u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E228u) goto L_0889E228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E228: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1028)))))); aot_gpr_4 = (ctx.gpr[22] + aot_gpr_4); @@ -5386,8 +6970,21 @@ L_0889E278: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0889E288u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 493u, 0x0889E288u, 0x08809B44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 356u, 0x08809B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E288u) goto L_0889E288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E288: { const bool branch_taken = aot_gpr_2 == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); @@ -5403,16 +7000,42 @@ L_0889E290: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x0889E2A8u); ctx.gpr[17] = (aot_gpr_6 + static_cast(-8228)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 495u, 0x0889E2A8u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E2A8u) goto L_0889E2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E2A8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0889E2BCu); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 496u, 0x0889E2BCu, 0x0880771Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 517u, 0x0880771Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E2BCu) goto L_0889E2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E2BC: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[17] = (aot_gpr_2 | 0u); @@ -5484,8 +7107,21 @@ L_0889E330: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889E33Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 507u, 0x0889E33Cu, 0x088066C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 310u, 0x088066C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E33Cu) goto L_0889E33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E33C: aot_gpr_2 = (ctx.gpr[17] | 0u); goto L_0889E340; @@ -5503,8 +7139,8 @@ L_0889E340: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E368: @@ -5530,8 +7166,8 @@ L_0889E37C: goto L_0889E388; L_0889E388: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E390: @@ -5543,14 +7179,27 @@ L_0889E390: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0889E3B0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-7320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 514u, 0x0889E3B0u, 0x0880771Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 517u, 0x0880771Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E3B0u) goto L_0889E3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E3B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E3BC: @@ -5568,14 +7217,40 @@ L_0889E3D8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-25312)); aot_gpr_31 = (0x0889E3E4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 517u, 0x0889E3E4u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E3E4u) goto L_0889E3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E3E4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889E3F0u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 518u, 0x0889E3F0u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E3F0u) goto L_0889E3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E3F0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889E3FCu); @@ -5594,15 +7269,41 @@ L_0889E408: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889E414u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 521u, 0x0889E414u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E414u) goto L_0889E414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E414: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0889E424u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 522u, 0x0889E424u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E424u) goto L_0889E424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E424: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5618,8 +7319,21 @@ L_0889E42C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889E448u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 524u, 0x0889E448u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E448u) goto L_0889E448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E448: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -5643,8 +7357,8 @@ L_0889E464: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E47C: @@ -5666,8 +7380,21 @@ L_0889E498: aot_gpr_6 = (0u + static_cast(-1)); aot_gpr_31 = (0x0889E4ACu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 529u, 0x0889E4ACu, 0x0880768Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 512u, 0x0880768Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E4ACu) goto L_0889E4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E4AC: ctx.gpr[16] = (aot_gpr_2 | 0u); goto L_0889E4B0; @@ -5686,8 +7413,8 @@ L_0889E4BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E4D4: @@ -5707,8 +7434,8 @@ L_0889E4F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E504: @@ -5728,8 +7455,8 @@ L_0889E524: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E534: @@ -5759,8 +7486,8 @@ L_0889E568: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E57C: @@ -5773,8 +7500,21 @@ L_0889E57C: L_0889E594: aot_gpr_31 = (0x0889E59Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 543u, 0x0889E59Cu, 0x08A1A2ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 299u, 0x08A1A2ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E59Cu) goto L_0889E59C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E59C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5819,8 +7559,8 @@ L_0889E5C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E5DC: @@ -5833,8 +7573,21 @@ L_0889E5DC: L_0889E5F4: aot_gpr_31 = (0x0889E5FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 551u, 0x0889E5FCu, 0x08A1A348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 306u, 0x08A1A348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E5FCu) goto L_0889E5FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E5FC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 1 ? 1u : 0u); @@ -5854,8 +7607,8 @@ L_0889E60C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E620: @@ -5868,8 +7621,21 @@ L_0889E620: L_0889E638: aot_gpr_31 = (0x0889E640u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 555u, 0x0889E640u, 0x08A1A350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 307u, 0x08A1A350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E640u) goto L_0889E640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E640: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 1 ? 1u : 0u); @@ -5889,8 +7655,8 @@ L_0889E650: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E664: @@ -5909,8 +7675,21 @@ L_0889E698: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x0889E6A4u); aot_gpr_4 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 559u, 0x0889E6A4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E6A4u) goto L_0889E6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E6A4: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5923,8 +7702,21 @@ L_0889E6A4: L_0889E6B0: aot_gpr_31 = (0x0889E6B8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 561u, 0x0889E6B8u, 0x08A1A2DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 298u, 0x08A1A2DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E6B8u) goto L_0889E6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E6B8: ctx.gpr[19] = (ctx.gpr[18] | 0u); goto L_0889E6BC; @@ -5952,8 +7744,8 @@ L_0889E6D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E6F4: @@ -5997,8 +7789,8 @@ L_0889E738: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E744: @@ -6069,8 +7861,8 @@ L_0889E7B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E7C4: @@ -6192,16 +7984,16 @@ L_0889E894: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E8EC: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E8F8: @@ -6212,23 +8004,36 @@ L_0889E8F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889E914u); aot_gpr_5 = (aot_gpr_5 + static_cast(-5908)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 596u, 0x0889E914u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E914u) goto L_0889E914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E914: aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E924: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E930: @@ -6239,23 +8044,36 @@ L_0889E930: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889E94Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-5852)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 599u, 0x0889E94Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E94Cu) goto L_0889E94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E94C: aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E95C: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E968: @@ -6266,15 +8084,28 @@ L_0889E968: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889E984u); aot_gpr_5 = (aot_gpr_5 + static_cast(-5796)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 602u, 0x0889E984u, 0x08A65998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 352u, 0x08A65998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E984u) goto L_0889E984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E984: aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E994: @@ -6293,8 +8124,21 @@ L_0889E9A4: L_0889E9B0: aot_gpr_31 = (0x0889E9B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 606u, 0x0889E9B8u, 0x08968F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 226u, 0x08968F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889E9B8u) goto L_0889E9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889E9B8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); @@ -6310,8 +8154,8 @@ L_0889E9C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889E9D0: @@ -6333,8 +8177,21 @@ L_0889E9E8: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889EA04u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 611u, 0x0889EA04u, 0x089690F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 244u, 0x089690F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EA04u) goto L_0889EA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EA04: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6428,8 +8285,8 @@ L_0889EAC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889EADC: @@ -6438,8 +8295,21 @@ L_0889EADC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889EAF0u); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 620u, 0x0889EAF0u, 0x0896950Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 287u, 0x0896950Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EAF0u) goto L_0889EAF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EAF0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), aot_gpr_2); aot_gpr_2 = (0u | 0u); @@ -6447,8 +8317,8 @@ L_0889EAF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889EB08: @@ -6459,15 +8329,28 @@ L_0889EB08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0889EB24u); aot_gpr_5 = (aot_gpr_5 + static_cast(-5412)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 622u, 0x0889EB24u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EB24u) goto L_0889EB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EB24: aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889EB34: @@ -6478,8 +8361,21 @@ L_0889EB34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0889EB50u); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 624u, 0x0889EB50u, 0x089694F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 285u, 0x089694F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EB50u) goto L_0889EB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EB50: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6494,8 +8390,21 @@ L_0889EB5C: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889EB70u); aot_gpr_5 = (aot_gpr_5 + static_cast(-5324)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 626u, 0x0889EB70u, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EB70u) goto L_0889EB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EB70: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[17] | 0u); @@ -6517,8 +8426,8 @@ L_0889EB80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889EB94: @@ -6529,8 +8438,21 @@ L_0889EB94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0889EBB0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 630u, 0x0889EBB0u, 0x089694F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 285u, 0x089694F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EBB0u) goto L_0889EBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EBB0: { const bool branch_taken = aot_gpr_2 != 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); @@ -6545,8 +8467,21 @@ L_0889EBB8: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0889EBCCu); aot_gpr_5 = (aot_gpr_5 + static_cast(-5324)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 632u, 0x0889EBCCu, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EBCCu) goto L_0889EBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EBCC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6556,8 +8491,8 @@ L_0889EBCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889EBE0: @@ -6569,8 +8504,21 @@ L_0889EBE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0889EC00u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 634u, 0x0889EC00u, 0x089694F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 284u, 0x089694F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EC00u) goto L_0889EC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EC00: aot_gpr_4 = (ctx.gpr[17] << 6u); aot_gpr_4 = (aot_gpr_2 + aot_gpr_4); @@ -6616,8 +8564,8 @@ L_0889EC00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889EC9C: @@ -6632,15 +8580,28 @@ L_0889ECB4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889ECC0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 637u, 0x0889ECC0u, 0x089D8C3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 149u, 0x089D8C3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ECC0u) goto L_0889ECC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889ECC0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889ECD0: @@ -6670,8 +8631,21 @@ L_0889ED10: L_0889ED18: aot_gpr_31 = (0x0889ED20u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 642u, 0x0889ED20u, 0x08968F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 226u, 0x08968F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ED20u) goto L_0889ED20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889ED20: ctx.gpr[22] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0889ED2Cu); @@ -6687,8 +8661,21 @@ L_0889ED2C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(8), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0889ED50u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 644u, 0x0889ED50u, 0x08968F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 228u, 0x08968F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889ED50u) goto L_0889ED50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889ED50: ctx.gpr[17] = (0u | 1u); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(aot_gpr_2) ? 1u : 0u); @@ -6725,8 +8712,21 @@ L_0889ED98: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x0889EDACu); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 649u, 0x0889EDACu, 0x088618A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 233u, 0x088618A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889EDACu) goto L_0889EDAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889EDAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -6795,8 +8795,8 @@ L_0889EE14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889EE44: @@ -7072,8 +9072,8 @@ L_0889EFB0: L_0889EFE0: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889EFE8: @@ -7764,8 +9764,8 @@ L_0889F3F4: L_0889F3F8: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(640)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0889F400: @@ -7794,8 +9794,21 @@ L_0889F444: } L_0889F44C: aot_gpr_31 = (0x0889F454u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 696u, 0x0889F454u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F454u) goto L_0889F454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F454: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7848,13 +9861,39 @@ L_0889F488: L_0889F49C: aot_gpr_31 = (0x0889F4A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 704u, 0x0889F4A4u, 0x0894D4DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 295u, 0x0894D4DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F4A4u) goto L_0889F4A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F4A4: aot_gpr_31 = (0x0889F4ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 705u, 0x0889F4ACu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F4ACu) goto L_0889F4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F4AC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7864,8 +9903,21 @@ L_0889F4AC: } L_0889F4B4: aot_gpr_31 = (0x0889F4BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 707u, 0x0889F4BCu, 0x088954ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 273u, 0x088954ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F4BCu) goto L_0889F4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F4BC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7882,8 +9934,21 @@ L_0889F4C4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x0889F4E4u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 709u, 0x0889F4E4u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F4E4u) goto L_0889F4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F4E4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7908,8 +9973,21 @@ L_0889F4EC: L_0889F50C: aot_gpr_31 = (0x0889F514u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 712u, 0x0889F514u, 0x089B4A30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 184u, 0x089B4A30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F514u) goto L_0889F514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F514: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7945,8 +10023,21 @@ L_0889F548: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889F554u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 717u, 0x0889F554u, 0x088A1AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 377u, 0x088A1AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F554u) goto L_0889F554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F554: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1728))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -8056,8 +10147,21 @@ L_0889F5F8: L_0889F608: aot_gpr_31 = (0x0889F610u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 731u, 0x0889F610u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F610u) goto L_0889F610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F610: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[17] | 0u); @@ -8189,8 +10293,21 @@ L_0889F6FC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889F708u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 745u, 0x0889F708u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F708u) goto L_0889F708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F708: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -8207,8 +10324,21 @@ L_0889F710: L_0889F71C: aot_gpr_31 = (0x0889F724u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 748u, 0x0889F724u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F724u) goto L_0889F724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F724: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8240,8 +10370,21 @@ L_0889F744: L_0889F754: aot_gpr_31 = (0x0889F75Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 752u, 0x0889F75Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F75Cu) goto L_0889F75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F75C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8256,13 +10399,39 @@ L_0889F764: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0889F77Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 754u, 0x0889F77Cu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F77Cu) goto L_0889F77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F77C: aot_gpr_31 = (0x0889F784u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 755u, 0x0889F784u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F784u) goto L_0889F784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F784: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1360))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -8374,8 +10543,21 @@ L_0889F848: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); aot_gpr_31 = (0x0889F854u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 769u, 0x0889F854u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889F854u) goto L_0889F854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889F854: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 2u); @@ -8683,13 +10865,39 @@ L_0889FA84: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x0889FAA4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 799u, 0x0889FAA4u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAA4u) goto L_0889FAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FAA4: aot_gpr_31 = (0x0889FAACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 800u, 0x0889FAACu, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAACu) goto L_0889FAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FAAC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8702,20 +10910,59 @@ L_0889FAB4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889FAC4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 802u, 0x0889FAC4u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAC4u) goto L_0889FAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FAC4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0889FAD4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 803u, 0x0889FAD4u, 0x089B5A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 358u, 0x089B5A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAD4u) goto L_0889FAD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FAD4: aot_gpr_31 = (0x0889FADCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 804u, 0x0889FADCu, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FADCu) goto L_0889FADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FADC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8728,28 +10975,80 @@ L_0889FAE4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889FAF4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 806u, 0x0889FAF4u, 0x089105E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 94u, 0x089105E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FAF4u) goto L_0889FAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FAF4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889FB00u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 807u, 0x0889FB00u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB00u) goto L_0889FB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FB00: ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889FB10u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 808u, 0x0889FB10u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB10u) goto L_0889FB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FB10: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2060))); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889FB20u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 809u, 0x0889FB20u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB20u) goto L_0889FB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FB20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8762,8 +11061,21 @@ L_0889FB28: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0889FB38u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 811u, 0x0889FB38u, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FB38u) goto L_0889FB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FB38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1300))); @@ -8897,8 +11209,21 @@ L_0889FC3C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x0889FC5Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 824u, 0x0889FC5Cu, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FC5Cu) goto L_0889FC5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FC5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); @@ -8945,8 +11270,21 @@ L_0889FC9C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0889FCD4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 829u, 0x0889FCD4u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FCD4u) goto L_0889FCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FCD4: aot_gpr_31 = (0x0889FCDCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FCDCu) goto L_0889FCDC; @@ -8974,8 +11312,21 @@ L_0889FCF8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0889FD28u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 832u, 0x0889FD28u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FD28u) goto L_0889FD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FD28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8987,8 +11338,21 @@ L_0889FD30: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889FD3Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 834u, 0x0889FD3Cu, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FD3Cu) goto L_0889FD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FD3C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -9024,8 +11388,21 @@ L_0889FD60: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0889FD98u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 838u, 0x0889FD98u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FD98u) goto L_0889FD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FD98: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -9061,8 +11438,21 @@ L_0889FDCC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0889FDFCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 842u, 0x0889FDFCu, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FDFCu) goto L_0889FDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FDFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9097,8 +11487,21 @@ L_0889FE20: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0889FE58u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 846u, 0x0889FE58u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FE58u) goto L_0889FE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FE58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9234,8 +11637,21 @@ L_0889FF3C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0889FF78u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 861u, 0x0889FF78u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FF78u) goto L_0889FF78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FF78: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -9270,8 +11686,21 @@ L_0889FF8C: L_0889FFB4: aot_gpr_31 = (0x0889FFBCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 865u, 0x0889FFBCu, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FFBCu) goto L_0889FFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FFBC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9282,8 +11711,21 @@ L_0889FFBC: L_0889FFC4: aot_gpr_31 = (0x0889FFCCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 867u, 0x0889FFCCu, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FFCCu) goto L_0889FFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FFCC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -9308,8 +11750,21 @@ L_0889FFE8: L_0889FFF4: aot_gpr_31 = (0x0889FFFCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0038->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0038_entry, 870u, 0x0889FFFCu, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0889FFFCu) goto L_0889FFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0889FFFC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0039.cpp b/profiles/vcs/generated/generated_unit_0039.cpp index dde3139..0eeac26 100644 --- a/profiles/vcs/generated/generated_unit_0039.cpp +++ b/profiles/vcs/generated/generated_unit_0039.cpp @@ -957,6 +957,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088A0000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -975,8 +999,21 @@ L_088A0000: L_088A0004: aot_gpr_31 = (0x088A000Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 3u, 0x088A000Cu, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A000Cu) goto L_088A000C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A000C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -1073,8 +1110,21 @@ L_088A00C8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_31 = (0x088A00D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 15u, 0x088A00D4u, 0x0890F4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 763u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 763u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 763u, 0x0890F4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A00D4u) goto L_088A00D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A00D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1089,8 +1139,21 @@ L_088A00DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A00F4u); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 17u, 0x088A00F4u, 0x0890AC58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 715u, 0x0890AC58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A00F4u) goto L_088A00F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A00F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1153,15 +1216,41 @@ L_088A0154: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0160u); aot_gpr_5 = (0u | 137u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 25u, 0x088A0160u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0160u) goto L_088A0160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0160: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A0170u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 26u, 0x088A0170u, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0170u) goto L_088A0170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0170: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); @@ -1203,8 +1292,21 @@ L_088A01B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A01C0u); aot_gpr_5 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 32u, 0x088A01C0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A01C0u) goto L_088A01C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A01C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1216,8 +1318,21 @@ L_088A01C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A01D4u); aot_gpr_5 = (0u | 130u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 34u, 0x088A01D4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A01D4u) goto L_088A01D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A01D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1267,8 +1382,21 @@ L_088A0228: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0238u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1744), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 40u, 0x088A0238u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0238u) goto L_088A0238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0238: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -1291,8 +1419,21 @@ L_088A024C: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x088A0278u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 42u, 0x088A0278u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0278u) goto L_088A0278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0278: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); goto L_088A027C; @@ -1392,8 +1533,21 @@ L_088A0328: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088A0344u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 55u, 0x088A0344u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0344u) goto L_088A0344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0344: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2244))); aot_gpr_5 = (0u | 1u); @@ -1413,8 +1567,21 @@ L_088A0354: L_088A035C: aot_gpr_31 = (0x088A0364u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 58u, 0x088A0364u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0364u) goto L_088A0364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0364: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 2u); @@ -1426,8 +1593,21 @@ L_088A0364: L_088A036C: aot_gpr_31 = (0x088A0374u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 60u, 0x088A0374u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0374u) goto L_088A0374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0374: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1438,8 +1618,21 @@ L_088A0374: L_088A037C: aot_gpr_31 = (0x088A0384u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 62u, 0x088A0384u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0384u) goto L_088A0384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0384: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 59u); @@ -1493,8 +1686,21 @@ L_088A03E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A03F4u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 68u, 0x088A03F4u, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A03F4u) goto L_088A03F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A03F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); @@ -1535,8 +1741,21 @@ L_088A0430: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A0468u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 72u, 0x088A0468u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0468u) goto L_088A0468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0468: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); @@ -1735,8 +1954,21 @@ L_088A0660: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A0698u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 83u, 0x088A0698u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0698u) goto L_088A0698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0698: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A06A4u); @@ -1786,8 +2018,21 @@ L_088A06DC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A0714u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 89u, 0x088A0714u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0714u) goto L_088A0714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0714: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1822,8 +2067,21 @@ L_088A0738: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A0770u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 93u, 0x088A0770u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0770u) goto L_088A0770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0770: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A077Cu); @@ -1897,8 +2155,21 @@ L_088A07E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A07F4u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 102u, 0x088A07F4u, 0x089A9A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 321u, 0x089A9A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A07F4u) goto L_088A07F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A07F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2009,8 +2280,21 @@ L_088A08A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A08BCu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 116u, 0x088A08BCu, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A08BCu) goto L_088A08BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A08BC: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2031,8 +2315,21 @@ L_088A08BC: aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); aot_gpr_31 = (0x088A08DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 117u, 0x088A08DCu, 0x0890C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 103u, 0x0890C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A08DCu) goto L_088A08DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A08DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A08E8u); @@ -2059,8 +2356,8 @@ L_088A08EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A0920: @@ -2102,8 +2399,21 @@ L_088A098C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_31 = (0x088A0998u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 124u, 0x088A0998u, 0x08906558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 514u, 0x08906558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0998u) goto L_088A0998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0998: { const bool branch_taken = ctx.gpr[19] == 0u; ctx.gpr[20] = (ctx.gpr[2] | 0u); @@ -2114,8 +2424,21 @@ L_088A0998: } L_088A09A0: aot_gpr_31 = (0x088A09A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 126u, 0x088A09A8u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A09A8u) goto L_088A09A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A09A8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2169,8 +2492,21 @@ L_088A09F0: L_088A0A00: aot_gpr_31 = (0x088A0A08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 133u, 0x088A0A08u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0A08u) goto L_088A0A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0A08: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2276))); @@ -2211,14 +2547,40 @@ L_088A0A38: aot_gpr_6 = (0u | 1000u); aot_gpr_31 = (0x088A0A4Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 139u, 0x088A0A4Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0A4Cu) goto L_088A0A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0A4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0A58u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 140u, 0x088A0A58u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0A58u) goto L_088A0A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0A58: ctx.gpr[17] = (0u | 1u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2364,8 +2726,21 @@ L_088A0B64: L_088A0B74: aot_gpr_31 = (0x088A0B7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 157u, 0x088A0B7Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0B7Cu) goto L_088A0B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0B7C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2452,8 +2827,21 @@ L_088A0BF4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088A0C04u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 163u, 0x088A0C04u, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0C04u) goto L_088A0C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0C04: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (0u | 0u); @@ -2465,19 +2853,58 @@ L_088A0C04: L_088A0C0C: aot_gpr_31 = (0x088A0C14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 165u, 0x088A0C14u, 0x0890B078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 777u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 777u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 777u, 0x0890B078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0C14u) goto L_088A0C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0C14: aot_gpr_31 = (0x088A0C1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 166u, 0x088A0C1Cu, 0x0890B448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 827u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 827u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 827u, 0x0890B448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0C1Cu) goto L_088A0C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0C1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0C28u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 167u, 0x088A0C28u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0C28u) goto L_088A0C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0C28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0C34u); @@ -2492,8 +2919,21 @@ L_088A0C34: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088A0C50u); ctx.gpr[7] = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 169u, 0x088A0C50u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0C50u) goto L_088A0C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0C50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -2501,21 +2941,60 @@ L_088A0C50: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088A0C68u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 170u, 0x088A0C68u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0C68u) goto L_088A0C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0C68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0C74u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 171u, 0x088A0C74u, 0x08909804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 405u, 0x08909804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0C74u) goto L_088A0C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0C74: aot_gpr_5 = (32768u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0C84u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 172u, 0x088A0C84u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0C84u) goto L_088A0C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0C84: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (0u | 1u); @@ -2566,8 +3045,21 @@ L_088A0CB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0D0Cu); aot_gpr_6 = (0u | 3000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 176u, 0x088A0D0Cu, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0D0Cu) goto L_088A0D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0D0C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0D18u); @@ -2724,8 +3216,21 @@ L_088A0E50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0E5Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 190u, 0x088A0E5Cu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0E5Cu) goto L_088A0E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0E5C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2759,8 +3264,21 @@ L_088A0E90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A0EA0u); aot_gpr_5 = (aot_gpr_5 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 195u, 0x088A0EA0u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A0EA0u) goto L_088A0EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A0EA0: aot_gpr_4 = (16256u << 16u); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -2927,8 +3445,21 @@ L_088A1044: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1054u); aot_gpr_5 = (aot_gpr_5 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 207u, 0x088A1054u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1054u) goto L_088A1054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1054: aot_gpr_4 = (16076u << 16u); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -2982,8 +3513,21 @@ L_088A10BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A10CCu); aot_gpr_5 = (aot_gpr_5 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 213u, 0x088A10CCu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A10CCu) goto L_088A10CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A10CC: aot_gpr_4 = (16230u << 16u); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -3013,8 +3557,21 @@ L_088A10FC: L_088A1110: aot_gpr_31 = (0x088A1118u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 216u, 0x088A1118u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1118u) goto L_088A1118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1118: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3053,8 +3610,21 @@ L_088A1148: L_088A1154: aot_gpr_31 = (0x088A115Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 221u, 0x088A115Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A115Cu) goto L_088A115C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A115C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3069,8 +3639,21 @@ L_088A1164: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088A117Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 223u, 0x088A117Cu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A117Cu) goto L_088A117C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A117C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 1u); @@ -3092,8 +3675,21 @@ L_088A118C: L_088A119C: aot_gpr_31 = (0x088A11A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 226u, 0x088A11A4u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A11A4u) goto L_088A11A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A11A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); aot_gpr_5 = (0u | 6u); @@ -3193,8 +3789,21 @@ L_088A1254: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_31 = (0x088A1260u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 238u, 0x088A1260u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1260u) goto L_088A1260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1260: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 2u); @@ -3281,8 +3890,21 @@ L_088A12E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088A12F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 249u, 0x088A12F8u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A12F8u) goto L_088A12F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A12F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3295,20 +3917,59 @@ L_088A1300: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1310u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 251u, 0x088A1310u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1310u) goto L_088A1310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1310: aot_gpr_6 = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1320u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 252u, 0x088A1320u, 0x089B5A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 358u, 0x089B5A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1320u) goto L_088A1320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1320: aot_gpr_31 = (0x088A1328u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 253u, 0x088A1328u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1328u) goto L_088A1328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1328: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3321,28 +3982,80 @@ L_088A1330: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1340u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 255u, 0x088A1340u, 0x089105E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 94u, 0x089105E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1340u) goto L_088A1340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1340: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A134Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 256u, 0x088A134Cu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A134Cu) goto L_088A134C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A134C: ctx.gpr[17] = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A135Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 257u, 0x088A135Cu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A135Cu) goto L_088A135C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A135C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2060))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A136Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 258u, 0x088A136Cu, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A136Cu) goto L_088A136C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A136C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3362,15 +4075,41 @@ L_088A137C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A138Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 261u, 0x088A138Cu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A138Cu) goto L_088A138C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A138C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088A139Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 262u, 0x088A139Cu, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A139Cu) goto L_088A139C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A139C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3383,8 +4122,21 @@ L_088A13A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088A13B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 264u, 0x088A13B4u, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A13B4u) goto L_088A13B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A13B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3491,8 +4243,21 @@ L_088A1464: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1470u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 278u, 0x088A1470u, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1470u) goto L_088A1470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1470: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -3564,8 +4329,21 @@ L_088A14D8: L_088A14F0: aot_gpr_31 = (0x088A14F8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 287u, 0x088A14F8u, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A14F8u) goto L_088A14F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A14F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3632,8 +4410,21 @@ L_088A1580: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_31 = (0x088A158Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 294u, 0x088A158Cu, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A158Cu) goto L_088A158C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A158C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_5 = (aot_gpr_16 + static_cast(48)); @@ -3646,8 +4437,21 @@ L_088A158C: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x088A15B8u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 295u, 0x088A15B8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A15B8u) goto L_088A15B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A15B8: aot_gpr_31 = (0x088A15C0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); @@ -3669,8 +4473,21 @@ L_088A15D4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A15F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 298u, 0x088A15F0u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A15F0u) goto L_088A15F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A15F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 < ctx.gpr[21] ? 1u : 0u); @@ -3710,8 +4527,21 @@ L_088A1620: aot_gpr_5 = (ctx.gpr[17] + aot_gpr_5); aot_gpr_31 = (0x088A165Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 302u, 0x088A165Cu, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A165Cu) goto L_088A165C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A165C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3746,8 +4576,21 @@ L_088A1680: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A16B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 306u, 0x088A16B8u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A16B8u) goto L_088A16B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A16B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (65472u << 16u); @@ -3867,8 +4710,21 @@ L_088A17A0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_31 = (0x088A17ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 320u, 0x088A17ACu, 0x088E3180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 384u, 0x088E3180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A17ACu) goto L_088A17AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A17AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3969,13 +4825,39 @@ L_088A1848: L_088A1850: aot_gpr_31 = (0x088A1858u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 333u, 0x088A1858u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1858u) goto L_088A1858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1858: aot_gpr_31 = (0x088A1860u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 334u, 0x088A1860u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1860u) goto L_088A1860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1860: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 2u); @@ -4076,8 +4958,21 @@ L_088A18FC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_31 = (0x088A1908u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 347u, 0x088A1908u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1908u) goto L_088A1908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1908: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -4089,8 +4984,21 @@ L_088A1908: L_088A1910: aot_gpr_31 = (0x088A1918u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 349u, 0x088A1918u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1918u) goto L_088A1918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1918: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 2u); @@ -4107,8 +5015,21 @@ L_088A1920: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088A193Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 351u, 0x088A193Cu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A193Cu) goto L_088A193C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A193C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 59u); @@ -4180,8 +5101,21 @@ L_088A19B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A19C4u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 359u, 0x088A19C4u, 0x089A9A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 321u, 0x089A9A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A19C4u) goto L_088A19C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A19C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4292,8 +5226,21 @@ L_088A1A70: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A1A8Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 373u, 0x088A1A8Cu, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1A8Cu) goto L_088A1A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1A8C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4314,8 +5261,21 @@ L_088A1A8C: aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); aot_gpr_31 = (0x088A1AACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 374u, 0x088A1AACu, 0x0890C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 103u, 0x0890C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1AACu) goto L_088A1AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1AAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1AB8u); @@ -4343,8 +5303,8 @@ L_088A1ABC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A1AF4: @@ -4433,8 +5393,21 @@ L_088A1B78: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x088A1B98u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 387u, 0x088A1B98u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1B98u) goto L_088A1B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1B98: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4454,8 +5427,21 @@ L_088A1BA0: } L_088A1BB0: aot_gpr_31 = (0x088A1BB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 390u, 0x088A1BB8u, 0x088954ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 273u, 0x088954ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1BB8u) goto L_088A1BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1BB8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4472,8 +5458,21 @@ L_088A1BC0: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x088A1BE0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 392u, 0x088A1BE0u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1BE0u) goto L_088A1BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1BE0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4588,8 +5587,21 @@ L_088A1C80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1C8Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 407u, 0x088A1C8Cu, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1C8Cu) goto L_088A1C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1C8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); goto L_088A1C90; @@ -4699,8 +5711,8 @@ L_088A1D84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A1DA0: @@ -4716,8 +5728,21 @@ L_088A1DA0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x088A1DD0u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 420u, 0x088A1DD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1DD0u) goto L_088A1DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1DD0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); @@ -4727,8 +5752,21 @@ L_088A1DD0: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x088A1DF0u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 421u, 0x088A1DF0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1DF0u) goto L_088A1DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1DF0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_5 != 0u) { @@ -4803,8 +5841,21 @@ L_088A1E5C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1E6Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 431u, 0x088A1E6Cu, 0x08AD3300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 554u, 0x08AD3300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1E6Cu) goto L_088A1E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1E6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4817,8 +5868,21 @@ L_088A1E74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A1E84u); aot_gpr_6 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 433u, 0x088A1E84u, 0x08AD3300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 554u, 0x08AD3300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1E84u) goto L_088A1E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1E84: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4830,8 +5894,8 @@ L_088A1E84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A1EA0: @@ -4846,16 +5910,42 @@ L_088A1EA0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088A1ECCu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 435u, 0x088A1ECCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1ECCu) goto L_088A1ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1ECC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); aot_gpr_31 = (0x088A1EE0u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 436u, 0x088A1EE0u, 0x08AD36E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 612u, 0x08AD36E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1EE0u) goto L_088A1EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1EE0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4937,8 +6027,8 @@ L_088A1F60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A1F7C: @@ -4953,8 +6043,21 @@ L_088A1F7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088A1FA8u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 446u, 0x088A1FA8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1FA8u) goto L_088A1FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1FA8: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { const bool branch_taken = static_cast(ctx.gpr[18]) >= 0; @@ -4987,8 +6090,21 @@ L_088A1FE0: aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x088A1FF0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 450u, 0x088A1FF0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A1FF0u) goto L_088A1FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A1FF0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); { const bool branch_taken = 0u == 0u; @@ -5003,8 +6119,21 @@ L_088A1FFC: aot_gpr_5 = (0u | 148u); aot_gpr_31 = (0x088A200Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 452u, 0x088A200Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A200Cu) goto L_088A200C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A200C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_16 = (aot_gpr_16 & 65535u); @@ -5013,8 +6142,21 @@ L_088A2014: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088A2020u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 454u, 0x088A2020u, 0x08AD32A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 550u, 0x08AD32A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2020u) goto L_088A2020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2020: aot_gpr_4 = (0u | 362u); { const bool branch_taken = ctx.gpr[18] != aot_gpr_4; @@ -5028,8 +6170,21 @@ L_088A202C: aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x088A203Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 456u, 0x088A203Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A203Cu) goto L_088A203C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A203C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -5041,8 +6196,8 @@ L_088A203C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2058: @@ -5057,8 +6212,21 @@ L_088A2058: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088A2084u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 458u, 0x088A2084u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2084u) goto L_088A2084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2084: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { const bool branch_taken = static_cast(ctx.gpr[18]) >= 0; @@ -5081,8 +6249,21 @@ L_088A20AC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088A20B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 461u, 0x088A20B8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A20B8u) goto L_088A20B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A20B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5141,8 +6322,21 @@ L_088A2104: L_088A210C: aot_gpr_31 = (0x088A2114u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 471u, 0x088A2114u, 0x08954B84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 174u, 0x08954B84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2114u) goto L_088A2114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2114: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5224,8 +6418,8 @@ L_088A2194: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A21B0: @@ -5239,8 +6433,21 @@ L_088A21B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088A21D8u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 481u, 0x088A21D8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A21D8u) goto L_088A21D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A21D8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { const bool branch_taken = static_cast(ctx.gpr[17]) >= 0; @@ -5270,8 +6477,21 @@ L_088A2200: L_088A220C: aot_gpr_31 = (0x088A2214u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 485u, 0x088A2214u, 0x08AD37C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 625u, 0x08AD37C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2214u) goto L_088A2214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2214: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5282,14 +6502,40 @@ L_088A2214: L_088A221C: aot_gpr_31 = (0x088A2224u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 487u, 0x088A2224u, 0x08AD37E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 627u, 0x08AD37E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2224u) goto L_088A2224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2224: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A2230u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 488u, 0x088A2230u, 0x08AD32A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 550u, 0x08AD32A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2230u) goto L_088A2230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2230: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5300,8 +6546,8 @@ L_088A2230: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2248: @@ -5315,8 +6561,21 @@ L_088A2248: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088A2270u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 490u, 0x088A2270u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2270u) goto L_088A2270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2270: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); @@ -5330,8 +6589,21 @@ L_088A2270: } L_088A2288: aot_gpr_31 = (0x088A2290u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 492u, 0x088A2290u, 0x08AD3860u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 635u, 0x08AD3860u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2290u) goto L_088A2290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2290: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5341,8 +6613,21 @@ L_088A2290: } L_088A2298: aot_gpr_31 = (0x088A22A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 494u, 0x088A22A0u, 0x08AD3880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 637u, 0x08AD3880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A22A0u) goto L_088A22A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A22A0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5353,32 +6638,71 @@ L_088A22A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A22B8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088A22C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 496u, 0x088A22C8u, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A22C8u) goto L_088A22C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A22C8: aot_gpr_31 = (0x088A22D0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 497u, 0x088A22D0u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A22D0u) goto L_088A22D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A22D0: aot_gpr_31 = (0x088A22D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 498u, 0x088A22D8u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A22D8u) goto L_088A22D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A22D8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A22E8: @@ -5392,8 +6716,21 @@ L_088A22E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088A2310u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 500u, 0x088A2310u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2310u) goto L_088A2310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2310: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -5497,8 +6834,8 @@ L_088A23B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A23CC: @@ -5516,8 +6853,21 @@ L_088A23CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088A2404u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 513u, 0x088A2404u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2404u) goto L_088A2404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2404: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5542,8 +6892,21 @@ L_088A2418: L_088A2420: aot_gpr_31 = (0x088A2428u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 517u, 0x088A2428u, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2428u) goto L_088A2428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2428: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -5557,8 +6920,21 @@ L_088A2434: aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x088A2440u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 519u, 0x088A2440u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2440u) goto L_088A2440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2440: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5573,8 +6949,21 @@ L_088A2450: aot_gpr_5 = (0u | 148u); aot_gpr_31 = (0x088A245Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 521u, 0x088A245Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A245Cu) goto L_088A245C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A245C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5582,8 +6971,21 @@ L_088A245C: goto L_088A2468; L_088A2468: aot_gpr_31 = (0x088A2470u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 523u, 0x088A2470u, 0x08AD32A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 550u, 0x08AD32A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2470u) goto L_088A2470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2470: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (0u | 362u); @@ -5598,8 +7000,21 @@ L_088A2480: aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x088A2490u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 525u, 0x088A2490u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2490u) goto L_088A2490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2490: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_088A2494; @@ -5623,8 +7038,8 @@ L_088A24AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A24C8: @@ -5646,8 +7061,21 @@ L_088A24E0: L_088A24E8: aot_gpr_31 = (0x088A24F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 531u, 0x088A24F0u, 0x08954778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 121u, 0x08954778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A24F0u) goto L_088A24F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A24F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5657,8 +7085,21 @@ L_088A24F0: } L_088A24F8: aot_gpr_31 = (0x088A2500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 533u, 0x088A2500u, 0x08AD349Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 573u, 0x08AD349Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2500u) goto L_088A2500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2500: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 6 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5791,8 +7232,8 @@ L_088A25DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A25F0: @@ -5820,8 +7261,8 @@ L_088A25F0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2608: @@ -5867,8 +7308,8 @@ L_088A2608: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2628: @@ -5914,8 +7355,8 @@ L_088A2628: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2648: @@ -5971,8 +7412,8 @@ L_088A2648: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2670: @@ -5998,8 +7439,8 @@ L_088A2670: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A268C: @@ -6018,8 +7459,8 @@ L_088A268C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A26A0: @@ -6047,8 +7488,8 @@ L_088A26A0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A26B8: @@ -6076,8 +7517,8 @@ L_088A26B8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A26D0: @@ -6098,8 +7539,8 @@ L_088A26D0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A26EC: @@ -6120,8 +7561,8 @@ L_088A26EC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2708: @@ -6144,8 +7585,8 @@ L_088A2720: } L_088A2728: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2730: @@ -6163,8 +7604,8 @@ L_088A2740: L_088A2744: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A274C: @@ -6187,8 +7628,8 @@ L_088A2764: } L_088A276C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2774: @@ -6202,15 +7643,15 @@ L_088A2774: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A27A0: ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A27AC: @@ -6218,8 +7659,8 @@ L_088A27AC: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A27C0: @@ -6238,8 +7679,8 @@ L_088A27C0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A27D0: @@ -6257,8 +7698,8 @@ L_088A27D0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A27EC: @@ -6277,8 +7718,8 @@ L_088A27EC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A27FC: @@ -6300,36 +7741,36 @@ L_088A27FC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2818: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2820: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2828: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2830: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2838: @@ -6359,8 +7800,21 @@ L_088A286C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088A287Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 580u, 0x088A287Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A287Cu) goto L_088A287C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A287C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6372,8 +7826,8 @@ L_088A2884: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2890: @@ -6383,22 +7837,22 @@ L_088A2890: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A28A8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A28B0: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A28B8: @@ -6406,15 +7860,15 @@ L_088A28B8: ctx.gpr[2] = (aot_gpr_4 & 496u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A28C8: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A28D0: @@ -6439,15 +7893,15 @@ L_088A28EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A290C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2914: @@ -6470,8 +7924,8 @@ L_088A2914: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2938: @@ -6481,14 +7935,27 @@ L_088A2938: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088A2950u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 592u, 0x088A2950u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2950u) goto L_088A2950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2950: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A295C: @@ -6504,87 +7971,100 @@ L_088A295C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088A2980u); ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 594u, 0x088A2980u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2980u) goto L_088A2980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2980: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A298C: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(196))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2994: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(108))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A299C: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29A4: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29BC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29CC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29DC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A29E4: @@ -6598,41 +8078,41 @@ L_088A29E4: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2A0C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2A14: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(604))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2A1C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2A24: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2A2C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2A34: @@ -6655,14 +8135,40 @@ L_088A2A50: aot_gpr_4 = (ctx.gpr[17] + static_cast(1120)); aot_gpr_31 = (0x088A2A68u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 614u, 0x088A2A68u, 0x08AFEF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 658u, 0x08AFEF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2A68u) goto L_088A2A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2A68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A2A74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 615u, 0x088A2A74u, 0x08AFF300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 736u, 0x08AFF300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2A74u) goto L_088A2A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2A74: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6674,8 +8180,21 @@ L_088A2A74: L_088A2A80: aot_gpr_31 = (0x088A2A88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 617u, 0x088A2A88u, 0x08AFF2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 734u, 0x08AFF2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2A88u) goto L_088A2A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2A88: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6685,8 +8204,8 @@ L_088A2A88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2A9C: @@ -6697,8 +8216,21 @@ L_088A2A9C: ctx.gpr[17] = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088A2AC0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 619u, 0x088A2AC0u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2AC0u) goto L_088A2AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2AC0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(0), aot_run_words); @@ -6729,8 +8261,21 @@ L_088A2AC0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A2B00u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 620u, 0x088A2B00u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2B00u) goto L_088A2B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2B00: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -6740,16 +8285,42 @@ L_088A2B00: } aot_gpr_31 = (0x088A2B14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 621u, 0x088A2B14u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2B14u) goto L_088A2B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2B14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A2B28u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 622u, 0x088A2B28u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2B28u) goto L_088A2B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2B28: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } @@ -6770,8 +8341,21 @@ L_088A2B28: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088A2B4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 623u, 0x088A2B4Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2B4Cu) goto L_088A2B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2B4C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -6782,8 +8366,8 @@ L_088A2B4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2B64: @@ -6811,8 +8395,21 @@ L_088A2B98: aot_gpr_5 = (aot_gpr_16 + static_cast(548)); aot_gpr_31 = (0x088A2BA4u); aot_gpr_6 = (aot_gpr_16 + static_cast(552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 627u, 0x088A2BA4u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2BA4u) goto L_088A2BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2BA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(3000)); @@ -6827,15 +8424,28 @@ L_088A2BA4: L_088A2BBC: aot_gpr_31 = (0x088A2BC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 629u, 0x088A2BC4u, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2BC4u) goto L_088A2BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2BC4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2BD4: @@ -6852,8 +8462,21 @@ L_088A2BD4: } L_088A2BF0: aot_gpr_31 = (0x088A2BF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 632u, 0x088A2BF8u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2BF8u) goto L_088A2BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2BF8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6872,8 +8495,21 @@ L_088A2C04: L_088A2C14: aot_gpr_31 = (0x088A2C1Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(988))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 635u, 0x088A2C1Cu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2C1Cu) goto L_088A2C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2C1C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); @@ -6907,8 +8543,21 @@ L_088A2C40: } L_088A2C48: aot_gpr_31 = (0x088A2C50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 640u, 0x088A2C50u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2C50u) goto L_088A2C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2C50: aot_gpr_4 = (0u | 11u); aot_gpr_31 = (0x088A2C5Cu); @@ -6920,8 +8569,8 @@ L_088A2C5C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2C6C: @@ -6980,8 +8629,21 @@ L_088A2CDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x088A2CE8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 646u, 0x088A2CE8u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2CE8u) goto L_088A2CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2CE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7008,8 +8670,21 @@ L_088A2D08: aot_gpr_5 = (0u | 42u); aot_gpr_31 = (0x088A2D20u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 649u, 0x088A2D20u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2D20u) goto L_088A2D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2D20: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A2D2Cu); @@ -7041,8 +8716,21 @@ L_088A2D4C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088A2D58u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 654u, 0x088A2D58u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2D58u) goto L_088A2D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2D58: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_088A2D5C; @@ -7088,8 +8776,21 @@ L_088A2D98: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088A2DB0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 661u, 0x088A2DB0u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2DB0u) goto L_088A2DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2DB0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -7101,36 +8802,36 @@ L_088A2DB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2DCC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2DD4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2DDC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2DE4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2DEC: @@ -7139,8 +8840,21 @@ L_088A2DEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088A2E00u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 667u, 0x088A2E00u, 0x08AFF4B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 769u, 0x08AFF4B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2E00u) goto L_088A2E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2E00: aot_gpr_31 = (0x088A2E08u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7150,8 +8864,8 @@ L_088A2E08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2E18: @@ -7175,14 +8889,27 @@ L_088A2E3C: aot_gpr_5 = (aot_gpr_4 + static_cast(956)); aot_gpr_31 = (0x088A2E48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 672u, 0x088A2E48u, 0x0885F668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 888u, 0x0885F668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2E48u) goto L_088A2E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2E48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2E54: @@ -7195,8 +8922,21 @@ L_088A2E54: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(956))); aot_gpr_31 = (0x088A2E7Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 674u, 0x088A2E7Cu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2E7Cu) goto L_088A2E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2E7C: aot_gpr_4 = (ctx.gpr[17] + static_cast(80)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -7226,22 +8966,22 @@ L_088A2E7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2EB4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2EBC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1120))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2EC4: @@ -7332,8 +9072,8 @@ L_088A2F68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A2F88: @@ -7348,8 +9088,21 @@ L_088A2F88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088A2FB4u); aot_gpr_5 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 690u, 0x088A2FB4u, 0x08B03834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 959u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 959u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 959u, 0x08B03834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2FB4u) goto L_088A2FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2FB4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(21936)); @@ -7363,8 +9116,21 @@ L_088A2FB4: L_088A2FD0: aot_gpr_31 = (0x088A2FD8u); aot_gpr_4 = (aot_gpr_16 + static_cast(1120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 692u, 0x088A2FD8u, 0x08AFEF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 657u, 0x08AFEF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A2FD8u) goto L_088A2FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A2FD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_6 = (16128u << 16u); @@ -7435,13 +9201,39 @@ L_088A3074: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1056), aot_gpr_4); aot_gpr_31 = (0x088A309Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 699u, 0x088A309Cu, 0x08AFFDDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 933u, 0x08AFFDDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A309Cu) goto L_088A309C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A309C: aot_gpr_31 = (0x088A30A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 700u, 0x088A30A4u, 0x08B021F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 565u, 0x08B021F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A30A4u) goto L_088A30A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A30A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(188))); @@ -7537,8 +9329,21 @@ L_088A311C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1084), 0u); aot_gpr_31 = (0x088A31C0u); aot_gpr_4 = (0u | 388u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 704u, 0x088A31C0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A31C0u) goto L_088A31C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A31C0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7600,8 +9405,21 @@ L_088A3250: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088A325Cu); aot_gpr_4 = (0u | 1888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 710u, 0x088A325Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A325Cu) goto L_088A325C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A325C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7613,8 +9431,21 @@ L_088A325C: L_088A3268: aot_gpr_31 = (0x088A3270u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 712u, 0x088A3270u, 0x08A0B7C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 577u, 0x08A0B7C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3270u) goto L_088A3270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3270: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_088A3274; @@ -7623,8 +9454,21 @@ L_088A3274: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088A3284u); aot_gpr_4 = (0u | 1888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 714u, 0x088A3284u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3284u) goto L_088A3284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3284: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7636,8 +9480,21 @@ L_088A3284: L_088A3290: aot_gpr_31 = (0x088A3298u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 716u, 0x088A3298u, 0x08A0B7C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 577u, 0x08A0B7C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3298u) goto L_088A3298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3298: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_088A329C; @@ -7670,8 +9527,8 @@ L_088A32C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A32E4: @@ -7721,8 +9578,21 @@ L_088A3354: L_088A335C: aot_gpr_31 = (0x088A3364u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 727u, 0x088A3364u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3364u) goto L_088A3364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3364: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7734,8 +9604,21 @@ L_088A3364: L_088A3370: aot_gpr_31 = (0x088A3378u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 729u, 0x088A3378u, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3378u) goto L_088A3378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3378: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7747,8 +9630,21 @@ L_088A3378: L_088A3384: aot_gpr_31 = (0x088A338Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 731u, 0x088A338Cu, 0x08912A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 672u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 672u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 672u, 0x08912A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A338Cu) goto L_088A338C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A338C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7760,13 +9656,39 @@ L_088A338C: L_088A3398: aot_gpr_31 = (0x088A33A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(368))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 733u, 0x088A33A0u, 0x08A0BA78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 595u, 0x08A0BA78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A33A0u) goto L_088A33A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A33A0: aot_gpr_31 = (0x088A33A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(372))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 734u, 0x088A33A8u, 0x08A0BA78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 595u, 0x08A0BA78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A33A8u) goto L_088A33A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A33A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(268))); aot_fpr_13 = std::bit_cast(0u); @@ -7816,8 +9738,21 @@ L_088A33F8: } L_088A3408: aot_gpr_31 = (0x088A3410u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 741u, 0x088A3410u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3410u) goto L_088A3410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3410: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7855,8 +9790,8 @@ L_088A3444: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-22688))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A345C: @@ -7877,8 +9812,21 @@ L_088A3470: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x088A348Cu); aot_gpr_6 = (0u | 114u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 748u, 0x088A348Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A348Cu) goto L_088A348C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A348C: aot_gpr_31 = (0x088A3494u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3494u) goto L_088A3494; @@ -7899,8 +9847,21 @@ L_088A34A8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A34C8u); aot_gpr_6 = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 751u, 0x088A34C8u, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A34C8u) goto L_088A34C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A34C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2240), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2240))); @@ -7916,8 +9877,21 @@ L_088A34C8: aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x088A3500u); aot_gpr_5 = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 752u, 0x088A3500u, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3500u) goto L_088A3500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3500: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2244), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2244))); @@ -7931,21 +9905,60 @@ L_088A3500: aot_gpr_6 = (0u | 228u); aot_gpr_31 = (0x088A3530u); aot_gpr_5 = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 753u, 0x088A3530u, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3530u) goto L_088A3530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3530: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2248), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2248))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A3544u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 754u, 0x088A3544u, 0x08AFFA50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 868u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 868u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 868u, 0x08AFFA50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3544u) goto L_088A3544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3544: aot_gpr_31 = (0x088A354Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 755u, 0x088A354Cu, 0x08B015F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 385u, 0x08B015F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A354Cu) goto L_088A354C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A354C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); @@ -8050,8 +10063,21 @@ L_088A35F4: L_088A3604: aot_gpr_31 = (0x088A360Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 767u, 0x088A360Cu, 0x08A42134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 389u, 0x08A42134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A360Cu) goto L_088A360C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A360C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(618)))))); aot_gpr_4 = (aot_gpr_4 & 128u); @@ -8069,8 +10095,21 @@ L_088A361C: L_088A3624: aot_gpr_31 = (0x088A362Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 770u, 0x088A362Cu, 0x0898CFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 351u, 0x0898CFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A362Cu) goto L_088A362C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A362C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8081,8 +10120,21 @@ L_088A362C: L_088A3634: aot_gpr_31 = (0x088A363Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 772u, 0x088A363Cu, 0x08A421ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 401u, 0x08A421ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A363Cu) goto L_088A363C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A363C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7892))); aot_gpr_5 = (0u | 1u); @@ -8095,8 +10147,21 @@ L_088A363C: L_088A364C: aot_gpr_31 = (0x088A3654u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 774u, 0x088A3654u, 0x08A52328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 349u, 0x08A52328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3654u) goto L_088A3654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3654: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8115,13 +10180,39 @@ L_088A365C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A3684u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1068), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 776u, 0x088A3684u, 0x08B0EBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 658u, 0x08B0EBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3684u) goto L_088A3684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3684: aot_gpr_31 = (0x088A368Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 777u, 0x088A368Cu, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A368Cu) goto L_088A368C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A368C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1060)))))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -8150,13 +10241,39 @@ L_088A36B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A36E0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1068), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 779u, 0x088A36E0u, 0x08B0EBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 658u, 0x08B0EBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A36E0u) goto L_088A36E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A36E0: aot_gpr_31 = (0x088A36E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 780u, 0x088A36E8u, 0x08B461ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 442u, 0x08B461ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A36E8u) goto L_088A36E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A36E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8197,8 +10314,21 @@ L_088A3728: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088A375Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(600), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 783u, 0x088A375Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A375Cu) goto L_088A375C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A375C: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -8219,8 +10349,21 @@ L_088A377C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(600), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A3790u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 785u, 0x088A3790u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3790u) goto L_088A3790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3790: aot_gpr_4 = (16230u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); @@ -8233,8 +10376,21 @@ L_088A37A4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1112), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1116), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088A37B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 787u, 0x088A37B8u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A37B8u) goto L_088A37B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A37B8: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8300,8 +10456,21 @@ L_088A3810: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A3828u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 790u, 0x088A3828u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3828u) goto L_088A3828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3828: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(80), aot_run_words); } @@ -8356,8 +10525,21 @@ L_088A3884: ctx.gpr[18] = (aot_gpr_5 & 2u); aot_gpr_31 = (0x088A3898u); ctx.gpr[18] = (0u < ctx.gpr[18] ? 1u : 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 794u, 0x088A3898u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3898u) goto L_088A3898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3898: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (0u | 278u); @@ -8439,8 +10621,21 @@ L_088A392C: } L_088A3934: aot_gpr_31 = (0x088A393Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 802u, 0x088A393Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A393Cu) goto L_088A393C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A393C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088A3940; @@ -8457,8 +10652,21 @@ L_088A3954: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088A3960u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 805u, 0x088A3960u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3960u) goto L_088A3960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3960: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8524,8 +10732,21 @@ L_088A39DC: } L_088A39E4: aot_gpr_31 = (0x088A39ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 813u, 0x088A39ECu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A39ECu) goto L_088A39EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A39EC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088A39F0; @@ -8542,8 +10763,21 @@ L_088A3A04: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088A3A10u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 816u, 0x088A3A10u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3A10u) goto L_088A3A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3A10: aot_gpr_4 = (17645u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); @@ -8602,8 +10836,21 @@ L_088A3A84: } L_088A3A8C: aot_gpr_31 = (0x088A3A94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 823u, 0x088A3A94u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3A94u) goto L_088A3A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3A94: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088A3A98; @@ -8634,8 +10881,21 @@ L_088A3AC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A3AE0u); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 827u, 0x088A3AE0u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3AE0u) goto L_088A3AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3AE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8670,8 +10930,21 @@ L_088A3B18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A3B30u); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 831u, 0x088A3B30u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3B30u) goto L_088A3B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3B30: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8737,8 +11010,21 @@ L_088A3BAC: } L_088A3BB4: aot_gpr_31 = (0x088A3BBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 839u, 0x088A3BBCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3BBCu) goto L_088A3BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3BBC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088A3BC0; @@ -8760,8 +11046,21 @@ L_088A3BDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A3BF4u); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 842u, 0x088A3BF4u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3BF4u) goto L_088A3BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3BF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8787,14 +11086,40 @@ L_088A3C18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A3C30u); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 845u, 0x088A3C30u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3C30u) goto L_088A3C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3C30: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x088A3C3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 846u, 0x088A3C3Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3C3Cu) goto L_088A3C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3C3C: aot_fpr_12 = std::bit_cast(0u); goto L_088A3C40; @@ -8811,8 +11136,21 @@ L_088A3C40: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088A3C78u); aot_gpr_4 = (aot_gpr_4 + static_cast(14064)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 848u, 0x088A3C78u, 0x08A8FD04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 697u, 0x08A8FD04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3C78u) goto L_088A3C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3C78: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9000,8 +11338,21 @@ L_088A3D94: } aot_gpr_31 = (0x088A3DF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 859u, 0x088A3DF8u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3DF8u) goto L_088A3DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3DF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9035,8 +11386,21 @@ L_088A3E14: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x088A3E4Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0039->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0039_entry, 862u, 0x088A3E4Cu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A3E4Cu) goto L_088A3E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A3E4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0040.cpp b/profiles/vcs/generated/generated_unit_0040.cpp index 79fec1b..208b655 100644 --- a/profiles/vcs/generated/generated_unit_0040.cpp +++ b/profiles/vcs/generated/generated_unit_0040.cpp @@ -917,6 +917,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088A4000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1051,8 +1075,21 @@ L_088A40B4: } aot_gpr_31 = (0x088A4120u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 10u, 0x088A4120u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4120u) goto L_088A4120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4120: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1417,8 +1454,21 @@ L_088A4330: } aot_gpr_31 = (0x088A436Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 24u, 0x088A436Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A436Cu) goto L_088A436C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A436C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1435,8 +1485,21 @@ L_088A4374: } aot_gpr_31 = (0x088A4388u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 26u, 0x088A4388u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4388u) goto L_088A4388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4388: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -1480,8 +1543,21 @@ L_088A4390: } aot_gpr_31 = (0x088A43D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 28u, 0x088A43D8u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A43D8u) goto L_088A43D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A43D8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (0u | 278u); @@ -1622,8 +1698,21 @@ L_088A44CC: } aot_gpr_31 = (0x088A4538u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 36u, 0x088A4538u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4538u) goto L_088A4538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4538: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1060)))))); aot_gpr_5 = (0u + static_cast(-2)); @@ -1680,8 +1769,21 @@ L_088A4538: } aot_gpr_31 = (0x088A459Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 37u, 0x088A459Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A459Cu) goto L_088A459C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A459C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1088))); aot_fpr_13 = std::bit_cast(0u); @@ -1759,8 +1861,21 @@ L_088A462C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A4638u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 47u, 0x088A4638u, 0x088A8374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 41u, 0x088A8374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4638u) goto L_088A4638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4638: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -1912,8 +2027,21 @@ L_088A475C: } aot_gpr_31 = (0x088A478Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 58u, 0x088A478Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A478Cu) goto L_088A478C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A478C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(360))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); @@ -1974,8 +2102,21 @@ L_088A478C: } aot_gpr_31 = (0x088A47E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 59u, 0x088A47E8u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A47E8u) goto L_088A47E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A47E8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(617)))))); aot_gpr_5 = (16256u << 16u); @@ -2065,8 +2206,21 @@ L_088A4894: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(716))); aot_gpr_31 = (0x088A48A0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 68u, 0x088A48A0u, 0x08A77A90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 734u, 0x08A77A90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A48A0u) goto L_088A48A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A48A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (16256u << 16u); @@ -2121,8 +2275,21 @@ L_088A48EC: L_088A48F4: aot_gpr_31 = (0x088A48FCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 72u, 0x088A48FCu, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A48FCu) goto L_088A48FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A48FC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2312,8 +2479,21 @@ L_088A4958: aot_gpr_4 = (aot_gpr_29 + static_cast(480)); aot_gpr_31 = (0x088A4A44u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 79u, 0x088A4A44u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4A44u) goto L_088A4A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4A44: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(480))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(472))); @@ -2870,21 +3050,60 @@ L_088A4DF4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_31 = (0x088A4E3Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(72))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 106u, 0x088A4E3Cu, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4E3Cu) goto L_088A4E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4E3C: aot_gpr_5 = (aot_gpr_29 + static_cast(800)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(208))); aot_gpr_31 = (0x088A4E4Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 107u, 0x088A4E4Cu, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4E4Cu) goto L_088A4E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4E4C: aot_gpr_5 = (aot_gpr_29 + static_cast(784)); aot_gpr_31 = (0x088A4E58u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 108u, 0x088A4E58u, 0x088A27ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 571u, 0x088A27ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4E58u) goto L_088A4E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4E58: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(520))); aot_gpr_4 = (15948u << 16u); @@ -2921,8 +3140,21 @@ L_088A4EA8: aot_gpr_4 = (aot_gpr_29 + static_cast(512)); aot_gpr_31 = (0x088A4EB4u); aot_gpr_5 = (aot_gpr_29 + static_cast(496)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 112u, 0x088A4EB4u, 0x088A27ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 571u, 0x088A27ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4EB4u) goto L_088A4EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4EB4: aot_gpr_4 = (16204u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(504))); @@ -2939,8 +3171,21 @@ L_088A4ED4: aot_gpr_4 = (aot_gpr_29 + static_cast(1008)); aot_gpr_31 = (0x088A4EE0u); aot_gpr_5 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 114u, 0x088A4EE0u, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4EE0u) goto L_088A4EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4EE0: aot_fpr_12 = std::bit_cast(0u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1008))); @@ -2951,8 +3196,21 @@ L_088A4EE0: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1016))); aot_gpr_31 = (0x088A4F04u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 115u, 0x088A4F04u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4F04u) goto L_088A4F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4F04: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(496))); @@ -3036,15 +3294,41 @@ L_088A4FB8: aot_gpr_5 = (aot_gpr_29 + static_cast(496)); aot_gpr_31 = (0x088A4FC8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 125u, 0x088A4FC8u, 0x088A268Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 552u, 0x088A268Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4FC8u) goto L_088A4FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4FC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (aot_gpr_29 + static_cast(1072)); aot_gpr_31 = (0x088A4FD8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 126u, 0x088A4FD8u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4FD8u) goto L_088A4FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4FD8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1072), aot_run_words); @@ -3054,8 +3338,21 @@ L_088A4FD8: } aot_gpr_31 = (0x088A4FECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 127u, 0x088A4FECu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A4FECu) goto L_088A4FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A4FEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3068,8 +3365,21 @@ L_088A4FF4: aot_gpr_4 = (aot_gpr_29 + static_cast(1104)); aot_gpr_31 = (0x088A5004u); aot_gpr_5 = (aot_gpr_29 + static_cast(496)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 129u, 0x088A5004u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5004u) goto L_088A5004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5004: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1104), aot_run_words); @@ -3079,8 +3389,21 @@ L_088A5004: } aot_gpr_31 = (0x088A5018u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 130u, 0x088A5018u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5018u) goto L_088A5018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5018: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -3096,8 +3419,21 @@ L_088A502C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_31 = (0x088A5040u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 132u, 0x088A5040u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5040u) goto L_088A5040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5040: ctx.gpr[21] = (aot_gpr_29 + static_cast(1168)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(360))); @@ -3105,8 +3441,21 @@ L_088A5040: aot_gpr_5 = (aot_gpr_16 + static_cast(32)); aot_gpr_31 = (0x088A5058u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 133u, 0x088A5058u, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5058u) goto L_088A5058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5058: aot_gpr_4 = (aot_gpr_29 + static_cast(448)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3136,8 +3485,21 @@ L_088A5058: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A507Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 134u, 0x088A507Cu, 0x088A295Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 593u, 0x088A295Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A507Cu) goto L_088A507C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A507C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3151,19 +3513,58 @@ L_088A5084: aot_gpr_5 = (aot_gpr_29 + static_cast(512)); aot_gpr_31 = (0x088A5098u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 136u, 0x088A5098u, 0x088A268Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 552u, 0x088A268Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5098u) goto L_088A5098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5098: aot_gpr_31 = (0x088A50A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 137u, 0x088A50A0u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A50A0u) goto L_088A50A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A50A0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A50B0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 138u, 0x088A50B0u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A50B0u) goto L_088A50B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A50B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(360))); ctx.gpr[20] = (aot_gpr_29 + static_cast(1216)); @@ -3171,46 +3572,137 @@ L_088A50B0: ctx.gpr[22] = (aot_gpr_29 + static_cast(1232)); aot_gpr_31 = (0x088A50C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 139u, 0x088A50C8u, 0x088A2828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 575u, 0x088A2828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A50C8u) goto L_088A50C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A50C8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088A50D8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 140u, 0x088A50D8u, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A50D8u) goto L_088A50D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A50D8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(448)); aot_gpr_31 = (0x088A50E8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 141u, 0x088A50E8u, 0x088A26B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 554u, 0x088A26B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A50E8u) goto L_088A50E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A50E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A50F8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 142u, 0x088A50F8u, 0x088A295Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 593u, 0x088A295Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A50F8u) goto L_088A50F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A50F8: aot_gpr_31 = (0x088A5100u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 143u, 0x088A5100u, 0x088A2818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 573u, 0x088A2818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5100u) goto L_088A5100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5100: aot_gpr_5 = (aot_gpr_29 + static_cast(512)); aot_gpr_31 = (0x088A510Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 144u, 0x088A510Cu, 0x088A2670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 551u, 0x088A2670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A510Cu) goto L_088A510C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A510C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_31 = (0x088A5118u); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 145u, 0x088A5118u, 0x088A298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 595u, 0x088A298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5118u) goto L_088A5118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5118: { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.gpr[20] = (aot_gpr_29 + static_cast(1040)); @@ -3218,38 +3710,116 @@ L_088A5118: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A5130u); ctx.fpr[26] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 146u, 0x088A5130u, 0x088A2818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 573u, 0x088A2818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5130u) goto L_088A5130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5130: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A5140u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 147u, 0x088A5140u, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5140u) goto L_088A5140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5140: aot_gpr_31 = (0x088A5148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 148u, 0x088A5148u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5148u) goto L_088A5148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5148: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A5158u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 149u, 0x088A5158u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5158u) goto L_088A5158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5158: aot_gpr_31 = (0x088A5160u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 150u, 0x088A5160u, 0x088A2828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 575u, 0x088A2828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5160u) goto L_088A5160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5160: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A5170u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 151u, 0x088A5170u, 0x088A295Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 593u, 0x088A295Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5170u) goto L_088A5170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5170: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3294,21 +3864,60 @@ L_088A51C8: L_088A51D0: aot_gpr_31 = (0x088A51D8u); ctx.gpr[20] = (aot_gpr_29 + static_cast(1248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 157u, 0x088A51D8u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A51D8u) goto L_088A51D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A51D8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A51E8u); aot_gpr_5 = (aot_gpr_29 + static_cast(496)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 158u, 0x088A51E8u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A51E8u) goto L_088A51E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A51E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A51F4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 159u, 0x088A51F4u, 0x088A2938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 591u, 0x088A2938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A51F4u) goto L_088A51F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A51F4: aot_gpr_6 = (48419u << 16u); aot_gpr_6 = (aot_gpr_6 | 55050u); @@ -3316,8 +3925,21 @@ L_088A51F4: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088A520Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(496)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 160u, 0x088A520Cu, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A520Cu) goto L_088A520C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A520C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(604))); aot_fpr_13 = std::bit_cast(0u); @@ -3331,8 +3953,21 @@ L_088A520C: L_088A5224: aot_gpr_31 = (0x088A522Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 162u, 0x088A522Cu, 0x088A28B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 585u, 0x088A28B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A522Cu) goto L_088A522C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A522C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (2236u << 16u); @@ -3378,24 +4013,76 @@ L_088A5284: ctx.gpr[21] = (aot_gpr_29 + static_cast(1280)); aot_gpr_31 = (0x088A5290u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 167u, 0x088A5290u, 0x088A28C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 586u, 0x088A28C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5290u) goto L_088A5290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5290: aot_gpr_31 = (0x088A5298u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 168u, 0x088A5298u, 0x088A2890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 582u, 0x088A2890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5298u) goto L_088A5298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5298: aot_gpr_31 = (0x088A52A0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 169u, 0x088A52A0u, 0x088A28A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 583u, 0x088A28A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A52A0u) goto L_088A52A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A52A0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A52ACu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 170u, 0x088A52ACu, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A52ACu) goto L_088A52AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A52AC: aot_fpr_12 = std::bit_cast(0u); ctx.gpr[22] = (aot_gpr_29 + static_cast(1264)); @@ -3405,32 +4092,97 @@ L_088A52AC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A52CCu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 171u, 0x088A52CCu, 0x088A2608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 548u, 0x088A2608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A52CCu) goto L_088A52CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A52CC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A52D8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 172u, 0x088A52D8u, 0x088A27ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 571u, 0x088A27ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A52D8u) goto L_088A52D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A52D8: aot_gpr_31 = (0x088A52E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 173u, 0x088A52E0u, 0x088A2830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 576u, 0x088A2830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A52E0u) goto L_088A52E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A52E0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088A52F0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 174u, 0x088A52F0u, 0x088A26A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 553u, 0x088A26A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A52F0u) goto L_088A52F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A52F0: aot_gpr_4 = (aot_gpr_29 + static_cast(1296)); aot_gpr_31 = (0x088A52FCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 175u, 0x088A52FCu, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A52FCu) goto L_088A52FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A52FC: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -3456,14 +4208,40 @@ L_088A531C: ctx.gpr[20] = (aot_gpr_29 + static_cast(1312)); aot_gpr_31 = (0x088A5328u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 179u, 0x088A5328u, 0x088A2830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 576u, 0x088A2830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5328u) goto L_088A5328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5328: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A5334u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 180u, 0x088A5334u, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5334u) goto L_088A5334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5334: aot_gpr_5 = (aot_gpr_29 + static_cast(1280)); aot_gpr_31 = (0x088A5340u); @@ -3481,15 +4259,41 @@ L_088A5340: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A5368u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1320), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 182u, 0x088A5368u, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5368u) goto L_088A5368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5368: aot_gpr_5 = (16192u << 16u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A5378u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 183u, 0x088A5378u, 0x088A27FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 572u, 0x088A27FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5378u) goto L_088A5378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5378: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3500,8 +4304,21 @@ L_088A5378: L_088A5380: aot_gpr_31 = (0x088A5388u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 185u, 0x088A5388u, 0x08AD0598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 51u, 0x08AD0598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5388u) goto L_088A5388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5388: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3526,8 +4343,21 @@ L_088A5390: L_088A53B4: aot_gpr_31 = (0x088A53BCu); aot_gpr_4 = (aot_gpr_29 + static_cast(464)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 188u, 0x088A53BCu, 0x0894624Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 400u, 0x0894624Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A53BCu) goto L_088A53BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A53BC: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -3570,8 +4400,21 @@ L_088A53E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(472), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088A5450u); aot_fpr_13 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 190u, 0x088A5450u, 0x088A28D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 587u, 0x088A28D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5450u) goto L_088A5450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5450: aot_fpr_14 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (17076u << 16u); @@ -3579,8 +4422,21 @@ L_088A5450: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A5468u); ctx.gpr[22] = (std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 191u, 0x088A5468u, 0x088A28D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 587u, 0x088A28D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5468u) goto L_088A5468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5468: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[23] = (0u | 500u); @@ -3595,8 +4451,21 @@ L_088A5468: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x088A549Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 192u, 0x088A549Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A549Cu) goto L_088A549C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A549C: ctx.gpr[22] = (aot_gpr_29 + static_cast(1344)); aot_gpr_6 = (16192u << 16u); @@ -3604,15 +4473,41 @@ L_088A549C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088A54B4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 193u, 0x088A54B4u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A54B4u) goto L_088A54B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A54B4: aot_gpr_4 = (16880u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A54C4u); aot_fpr_13 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 194u, 0x088A54C4u, 0x088A28D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 587u, 0x088A28D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A54C4u) goto L_088A54C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A54C4: aot_fpr_14 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (16948u << 16u); @@ -3620,8 +4515,21 @@ L_088A54C4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A54DCu); ctx.gpr[21] = (std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 195u, 0x088A54DCu, 0x088A28D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 587u, 0x088A28D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A54DCu) goto L_088A54DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A54DC: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (0u | 44u); @@ -3635,8 +4543,21 @@ L_088A54DC: ctx.gpr[11] = (0u | 3u); aot_gpr_31 = (0x088A550Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 196u, 0x088A550Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A550Cu) goto L_088A550C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A550C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3664,26 +4585,78 @@ L_088A5520: L_088A5528: aot_gpr_31 = (0x088A5530u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 201u, 0x088A5530u, 0x088A2994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 596u, 0x088A2994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5530u) goto L_088A5530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5530: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A553Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 202u, 0x088A553Cu, 0x088A290Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 589u, 0x088A290Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A553Cu) goto L_088A553C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A553C: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088A5548u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 203u, 0x088A5548u, 0x088A2820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 574u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 574u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 574u, 0x088A2820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5548u) goto L_088A5548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5548: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A5554u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 204u, 0x088A5554u, 0x088A2670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 551u, 0x088A2670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5554u) goto L_088A5554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5554: aot_gpr_4 = (15395u << 16u); { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } @@ -3708,13 +4681,39 @@ L_088A557C: L_088A5590: aot_gpr_31 = (0x088A5598u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 207u, 0x088A5598u, 0x088A2A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 608u, 0x088A2A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5598u) goto L_088A5598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5598: aot_gpr_31 = (0x088A55A0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 208u, 0x088A55A0u, 0x088A27A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 567u, 0x088A27A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A55A0u) goto L_088A55A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A55A0: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -3729,8 +4728,21 @@ L_088A55A0: L_088A55BC: aot_gpr_31 = (0x088A55C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 210u, 0x088A55C4u, 0x088A28B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 585u, 0x088A28B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A55C4u) goto L_088A55C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A55C4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3741,13 +4753,39 @@ L_088A55C4: L_088A55CC: aot_gpr_31 = (0x088A55D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 212u, 0x088A55D4u, 0x088A2A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 608u, 0x088A2A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A55D4u) goto L_088A55D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A55D4: aot_gpr_31 = (0x088A55DCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 213u, 0x088A55DCu, 0x088A27A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 567u, 0x088A27A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A55DCu) goto L_088A55DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A55DC: aot_gpr_4 = (16140u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -3767,13 +4805,39 @@ L_088A55DC: L_088A5604: aot_gpr_31 = (0x088A560Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 215u, 0x088A560Cu, 0x088A2A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 608u, 0x088A2A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A560Cu) goto L_088A560C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A560C: aot_gpr_31 = (0x088A5614u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 216u, 0x088A5614u, 0x088A27A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 567u, 0x088A27A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5614u) goto L_088A5614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5614: aot_gpr_4 = (16140u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -3787,8 +4851,21 @@ L_088A5614: L_088A5634: aot_gpr_31 = (0x088A563Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 218u, 0x088A563Cu, 0x088A2A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 608u, 0x088A2A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A563Cu) goto L_088A563C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A563C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -3810,8 +4887,21 @@ L_088A5650: L_088A5664: aot_gpr_31 = (0x088A566Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 221u, 0x088A566Cu, 0x088A2A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 608u, 0x088A2A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A566Cu) goto L_088A566C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A566C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -3845,84 +4935,253 @@ L_088A5698: ctx.gpr[23] = (aot_gpr_29 + static_cast(1392)); aot_gpr_31 = (0x088A56C4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 225u, 0x088A56C4u, 0x088A27ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 568u, 0x088A27ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A56C4u) goto L_088A56C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A56C4: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088A56D4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 226u, 0x088A56D4u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A56D4u) goto L_088A56D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A56D4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A56E4u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 227u, 0x088A56E4u, 0x088A2608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 548u, 0x088A2608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A56E4u) goto L_088A56E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A56E4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A56F4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 228u, 0x088A56F4u, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A56F4u) goto L_088A56F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A56F4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A5700u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 229u, 0x088A5700u, 0x088A27ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 571u, 0x088A27ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5700u) goto L_088A5700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5700: aot_gpr_31 = (0x088A5708u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 230u, 0x088A5708u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5708u) goto L_088A5708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5708: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A5718u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 231u, 0x088A5718u, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5718u) goto L_088A5718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5718: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A5724u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 232u, 0x088A5724u, 0x088A2938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 591u, 0x088A2938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5724u) goto L_088A5724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5724: aot_gpr_31 = (0x088A572Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 233u, 0x088A572Cu, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A572Cu) goto L_088A572C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A572C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A573Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 234u, 0x088A573Cu, 0x088A26ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 556u, 0x088A26ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A573Cu) goto L_088A573C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A573C: aot_gpr_6 = (aot_gpr_29 + static_cast(448)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A574Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 235u, 0x088A574Cu, 0x088A295Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 593u, 0x088A295Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A574Cu) goto L_088A574C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A574C: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088A575Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1424), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 236u, 0x088A575Cu, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A575Cu) goto L_088A575C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A575C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1428), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(1428)); aot_gpr_31 = (0x088A576Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(1424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 237u, 0x088A576Cu, 0x088A274Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 563u, 0x088A274Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A576Cu) goto L_088A576C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A576C: { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (48960u << 16u); @@ -3933,27 +5192,79 @@ L_088A576C: { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } aot_gpr_31 = (0x088A5790u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(480), std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 238u, 0x088A5790u, 0x088A2818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 573u, 0x088A2818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5790u) goto L_088A5790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5790: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088A57A0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 239u, 0x088A57A0u, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A57A0u) goto L_088A57A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A57A0: aot_gpr_31 = (0x088A57A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 240u, 0x088A57A8u, 0x088A2828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 575u, 0x088A2828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A57A8u) goto L_088A57A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A57A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A57B8u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 241u, 0x088A57B8u, 0x088A295Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 593u, 0x088A295Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A57B8u) goto L_088A57B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A57B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3970,8 +5281,21 @@ L_088A57C0: L_088A57D0: aot_gpr_31 = (0x088A57D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 244u, 0x088A57D8u, 0x088A29A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 598u, 0x088A29A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A57D8u) goto L_088A57D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A57D8: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[0]) || std::isnan(aot_fpr_12)) && ctx.fpr[0] == aot_fpr_12)) ? 0x00800000u : 0u); @@ -3985,8 +5309,21 @@ L_088A57EC: ctx.gpr[19] = (aot_gpr_29 + static_cast(1472)); aot_gpr_31 = (0x088A57F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 246u, 0x088A57F8u, 0x088A2820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 574u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 574u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 574u, 0x088A2820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A57F8u) goto L_088A57F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A57F8: ctx.gpr[20] = (aot_gpr_29 + static_cast(1440)); aot_fpr_20 = std::bit_cast(0u); @@ -3997,37 +5334,115 @@ L_088A57F8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A581Cu); aot_fpr_14 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 247u, 0x088A581Cu, 0x088A27ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 568u, 0x088A27ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A581Cu) goto L_088A581C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A581C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A582Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 248u, 0x088A582Cu, 0x088A25F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 547u, 0x088A25F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A582Cu) goto L_088A582C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A582C: aot_gpr_31 = (0x088A5834u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 249u, 0x088A5834u, 0x088A290Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 589u, 0x088A290Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5834u) goto L_088A5834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5834: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088A5840u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 250u, 0x088A5840u, 0x088A2670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 551u, 0x088A2670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5840u) goto L_088A5840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5840: aot_gpr_31 = (0x088A5848u); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 251u, 0x088A5848u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5848u) goto L_088A5848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5848: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_31 = (0x088A5854u); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 252u, 0x088A5854u, 0x088A29A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 598u, 0x088A29A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5854u) goto L_088A5854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5854: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -4049,15 +5464,41 @@ L_088A5854: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A58A4u); { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 253u, 0x088A58A4u, 0x088A27ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 568u, 0x088A27ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A58A4u) goto L_088A58A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A58A4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A58B4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 254u, 0x088A58B4u, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A58B4u) goto L_088A58B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A58B4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A58C0u); @@ -4069,19 +5510,58 @@ L_088A58C0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A58D0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 256u, 0x088A58D0u, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A58D0u) goto L_088A58D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A58D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A58DCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 257u, 0x088A58DCu, 0x088A2938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 591u, 0x088A2938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A58DCu) goto L_088A58DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A58DC: aot_gpr_31 = (0x088A58E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 258u, 0x088A58E4u, 0x088A28B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 585u, 0x088A28B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A58E4u) goto L_088A58E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A58E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4097,8 +5577,21 @@ L_088A58EC: L_088A58F4: aot_gpr_31 = (0x088A58FCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 261u, 0x088A58FCu, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A58FCu) goto L_088A58FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A58FC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4109,8 +5602,21 @@ L_088A58FC: L_088A5904: aot_gpr_31 = (0x088A590Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 263u, 0x088A590Cu, 0x088A2A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 610u, 0x088A2A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A590Cu) goto L_088A590C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A590C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4122,20 +5628,59 @@ L_088A590C: L_088A5918: aot_gpr_31 = (0x088A5920u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 265u, 0x088A5920u, 0x088A290Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 589u, 0x088A290Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5920u) goto L_088A5920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5920: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088A592Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 266u, 0x088A592Cu, 0x088A2820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 574u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 574u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 574u, 0x088A2820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A592Cu) goto L_088A592C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A592C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A5938u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 267u, 0x088A5938u, 0x088A2670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 551u, 0x088A2670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5938u) goto L_088A5938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5938: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(0u); @@ -4149,14 +5694,40 @@ L_088A5938: L_088A5950: aot_gpr_31 = (0x088A5958u); ctx.gpr[19] = (aot_gpr_29 + static_cast(1488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 269u, 0x088A5958u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5958u) goto L_088A5958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5958: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_31 = (0x088A5964u); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 270u, 0x088A5964u, 0x088A299Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 597u, 0x088A299Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5964u) goto L_088A5964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5964: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (48588u << 16u); @@ -4170,37 +5741,115 @@ L_088A5964: { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088A5994u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 271u, 0x088A5994u, 0x088A2820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 574u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 574u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 574u, 0x088A2820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5994u) goto L_088A5994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5994: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088A59A4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 272u, 0x088A59A4u, 0x088A26D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 555u, 0x088A26D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A59A4u) goto L_088A59A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A59A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A59B0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 273u, 0x088A59B0u, 0x088A2938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 591u, 0x088A2938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A59B0u) goto L_088A59B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A59B0: aot_gpr_31 = (0x088A59B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 274u, 0x088A59B8u, 0x088A290Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 589u, 0x088A290Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A59B8u) goto L_088A59B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A59B8: aot_gpr_4 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x088A59C4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 275u, 0x088A59C4u, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A59C4u) goto L_088A59C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A59C4: aot_gpr_31 = (0x088A59CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 276u, 0x088A59CCu, 0x088A28C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 586u, 0x088A28C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A59CCu) goto L_088A59CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A59CC: aot_gpr_4 = (0u | 278u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4212,8 +5861,21 @@ L_088A59CC: L_088A59D8: aot_gpr_31 = (0x088A59E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 278u, 0x088A59E0u, 0x088A2830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 576u, 0x088A2830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A59E0u) goto L_088A59E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A59E0: aot_gpr_4 = (17601u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -4230,14 +5892,40 @@ L_088A59E0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A5A1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1504), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 279u, 0x088A5A1Cu, 0x088A2708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 557u, 0x088A2708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5A1Cu) goto L_088A5A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5A1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A5A28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 280u, 0x088A5A28u, 0x088A2830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 576u, 0x088A2830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5A28u) goto L_088A5A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5A28: aot_gpr_4 = (50435u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -4252,14 +5940,40 @@ L_088A5A28: { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088A5A5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1504), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 281u, 0x088A5A5Cu, 0x088A274Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 563u, 0x088A274Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5A5Cu) goto L_088A5A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5A5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A5A68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 282u, 0x088A5A68u, 0x088A2830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 576u, 0x088A2830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5A68u) goto L_088A5A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5A68: aot_gpr_4 = (17645u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); @@ -4272,14 +5986,40 @@ L_088A5A68: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088A5A94u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1504), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 283u, 0x088A5A94u, 0x088A2708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 557u, 0x088A2708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5A94u) goto L_088A5A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5A94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(196), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A5AA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 284u, 0x088A5AA0u, 0x088A2830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 576u, 0x088A2830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5AA0u) goto L_088A5AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5AA0: aot_gpr_4 = (50413u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); @@ -4291,8 +6031,21 @@ L_088A5AA0: { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088A5AC8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1504), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 285u, 0x088A5AC8u, 0x088A274Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 563u, 0x088A274Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5AC8u) goto L_088A5AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5AC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(196), std::bit_cast(ctx.fpr[0])); goto L_088A5ACC; @@ -4300,8 +6053,21 @@ L_088A5ACC: aot_gpr_5 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x088A5AD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 287u, 0x088A5AD8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5AD8u) goto L_088A5AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5AD8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1060)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4328,24 +6094,76 @@ L_088A5AF0: L_088A5AF8: aot_gpr_31 = (0x088A5B00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 291u, 0x088A5B00u, 0x088A9EE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 269u, 0x088A9EE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5B00u) goto L_088A5B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5B00: aot_gpr_31 = (0x088A5B08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 292u, 0x088A5B08u, 0x088A290Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 589u, 0x088A290Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5B08u) goto L_088A5B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5B08: aot_gpr_31 = (0x088A5B10u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 293u, 0x088A5B10u, 0x088A27D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 570u, 0x088A27D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5B10u) goto L_088A5B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5B10: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A5B1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 294u, 0x088A5B1Cu, 0x088A28C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 586u, 0x088A28C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5B1Cu) goto L_088A5B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5B1C: aot_gpr_4 = (0u | 278u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -4376,8 +6194,21 @@ L_088A5B48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A5B60u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1536), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 298u, 0x088A5B60u, 0x088A2A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 610u, 0x088A2A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5B60u) goto L_088A5B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5B60: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -4425,8 +6256,21 @@ L_088A5BBC: L_088A5BC4: aot_gpr_31 = (0x088A5BCCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 304u, 0x088A5BCCu, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5BCCu) goto L_088A5BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5BCC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (15800u << 16u); @@ -4472,54 +6316,158 @@ L_088A5C14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1576), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088A5C44u); aot_gpr_6 = (aot_gpr_29 + static_cast(1576)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 308u, 0x088A5C44u, 0x088A2EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 677u, 0x088A2EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5C44u) goto L_088A5C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5C44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1536), std::bit_cast(ctx.fpr[0])); goto L_088A5C48; L_088A5C48: aot_gpr_31 = (0x088A5C50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 310u, 0x088A5C50u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5C50u) goto L_088A5C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5C50: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x088A5C5Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 311u, 0x088A5C5Cu, 0x088A2774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 566u, 0x088A2774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5C5Cu) goto L_088A5C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5C5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(360))); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A5C6Cu); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 312u, 0x088A5C6Cu, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5C6Cu) goto L_088A5C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5C6C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A5C78u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 313u, 0x088A5C78u, 0x088A2774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 566u, 0x088A2774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5C78u) goto L_088A5C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5C78: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088A5C84u); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1536))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 314u, 0x088A5C84u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5C84u) goto L_088A5C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5C84: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088A5C90u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 315u, 0x088A5C90u, 0x088A2774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 566u, 0x088A2774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5C90u) goto L_088A5C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5C90: aot_gpr_4 = (aot_gpr_29 + static_cast(1552)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x088A5CA4u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 316u, 0x088A5CA4u, 0x088A27ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 568u, 0x088A27ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5CA4u) goto L_088A5CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5CA4: ctx.gpr[18] = (aot_gpr_29 + static_cast(1520)); ctx.gpr[19] = (aot_gpr_16 + static_cast(112)); @@ -4527,14 +6475,40 @@ L_088A5CA4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088A5CBCu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 317u, 0x088A5CBCu, 0x088A2628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 549u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 549u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 549u, 0x088A2628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5CBCu) goto L_088A5CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5CBC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A5CC8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 318u, 0x088A5CC8u, 0x088A27ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 571u, 0x088A27ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5CC8u) goto L_088A5CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5CC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1552))); @@ -4552,14 +6526,40 @@ L_088A5CC8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A5D08u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(120), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 319u, 0x088A5D08u, 0x088A2608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 548u, 0x088A2608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5D08u) goto L_088A5D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5D08: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A5D14u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 320u, 0x088A5D14u, 0x088A27ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 571u, 0x088A27ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5D14u) goto L_088A5D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5D14: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1164))); goto L_088A5D18; @@ -4625,8 +6625,21 @@ L_088A5D94: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088A5DC0u); aot_gpr_6 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 326u, 0x088A5DC0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5DC0u) goto L_088A5DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5DC0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4642,8 +6655,21 @@ L_088A5DCC: aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x088A5DE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 328u, 0x088A5DE4u, 0x08B0B7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 656u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 656u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 656u, 0x08B0B7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5DE4u) goto L_088A5DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5DE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1168))); aot_fpr_13 = std::bit_cast(0u); @@ -4667,8 +6693,21 @@ L_088A5DFC: L_088A5E14: aot_gpr_31 = (0x088A5E1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 331u, 0x088A5E1Cu, 0x088A28C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 586u, 0x088A28C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5E1Cu) goto L_088A5E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5E1C: aot_gpr_4 = (0u | 278u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4687,20 +6726,59 @@ L_088A5E28: { const float fs = aot_fpr_20; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_gpr_31 = (0x088A5E4Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 333u, 0x088A5E4Cu, 0x088A27ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 568u, 0x088A27ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5E4Cu) goto L_088A5E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5E4C: ctx.gpr[18] = (aot_gpr_29 + static_cast(1600)); aot_gpr_31 = (0x088A5E58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 334u, 0x088A5E58u, 0x088A2830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 576u, 0x088A2830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5E58u) goto L_088A5E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5E58: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088A5E64u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 335u, 0x088A5E64u, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5E64u) goto L_088A5E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5E64: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1600), aot_run_words); @@ -4711,8 +6789,21 @@ L_088A5E64: aot_gpr_4 = (aot_gpr_29 + static_cast(1616)); aot_gpr_31 = (0x088A5E7Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 336u, 0x088A5E7Cu, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5E7Cu) goto L_088A5E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5E7C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1616))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -4724,8 +6815,21 @@ L_088A5E7C: ctx.gpr[7] = (0u | 65u); aot_gpr_31 = (0x088A5EA4u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 337u, 0x088A5EA4u, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5EA4u) goto L_088A5EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5EA4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1164))); { const bool branch_taken = 0u == 0u; @@ -4750,8 +6854,21 @@ L_088A5EC0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088A5ED4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 340u, 0x088A5ED4u, 0x088A2914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 590u, 0x088A2914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5ED4u) goto L_088A5ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5ED4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1061)))))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -4765,8 +6882,21 @@ L_088A5ED4: L_088A5EE4: aot_gpr_31 = (0x088A5EECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 342u, 0x088A5EECu, 0x088A2A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 610u, 0x088A2A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5EECu) goto L_088A5EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5EEC: aot_gpr_4 = (0u | 2u); if (ctx.gpr[2] != aot_gpr_4) { @@ -4792,8 +6922,21 @@ L_088A5F08: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x088A5F2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 346u, 0x088A5F2Cu, 0x088A2A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 610u, 0x088A2A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5F2Cu) goto L_088A5F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5F2C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -4813,13 +6956,39 @@ L_088A5F40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A5F4Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 349u, 0x088A5F4Cu, 0x088A8374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 41u, 0x088A8374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5F4Cu) goto L_088A5F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5F4C: aot_gpr_31 = (0x088A5F54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 350u, 0x088A5F54u, 0x088A28C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 586u, 0x088A28C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5F54u) goto L_088A5F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5F54: aot_gpr_4 = (0u | 278u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -4830,8 +6999,21 @@ L_088A5F54: } L_088A5F60: aot_gpr_31 = (0x088A5F68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 352u, 0x088A5F68u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5F68u) goto L_088A5F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5F68: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -4844,8 +7026,21 @@ L_088A5F68: L_088A5F7C: aot_gpr_31 = (0x088A5F84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 354u, 0x088A5F84u, 0x088A28B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 585u, 0x088A28B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5F84u) goto L_088A5F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5F84: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4868,8 +7063,21 @@ L_088A5F8C: L_088A5FAC: aot_gpr_31 = (0x088A5FB4u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(948))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 357u, 0x088A5FB4u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5FB4u) goto L_088A5FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5FB4: aot_gpr_4 = (14979u << 16u); aot_gpr_4 = (aot_gpr_4 | 4719u); @@ -4888,8 +7096,21 @@ L_088A5FCC: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088A5FF0u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 359u, 0x088A5FF0u, 0x08B061F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 475u, 0x08B061F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A5FF0u) goto L_088A5FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A5FF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4900,8 +7121,21 @@ L_088A5FF0: L_088A5FF8: aot_gpr_31 = (0x088A6000u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(948))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 361u, 0x088A6000u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6000u) goto L_088A6000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6000: aot_gpr_4 = (14851u << 16u); aot_gpr_4 = (aot_gpr_4 | 4719u); @@ -4917,8 +7151,21 @@ L_088A6000: L_088A6020: aot_gpr_31 = (0x088A6028u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(948))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 363u, 0x088A6028u, 0x088A28B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 584u, 0x088A28B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6028u) goto L_088A6028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6028: aot_gpr_4 = (14851u << 16u); aot_gpr_4 = (aot_gpr_4 | 4719u); @@ -4959,8 +7206,21 @@ L_088A605C: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088A6080u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 367u, 0x088A6080u, 0x08B061F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 475u, 0x08B061F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6080u) goto L_088A6080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6080: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1060)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -4974,14 +7234,40 @@ L_088A6090: ctx.gpr[17] = (aot_gpr_29 + static_cast(1632)); aot_gpr_31 = (0x088A609Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 369u, 0x088A609Cu, 0x088A290Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 589u, 0x088A290Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A609Cu) goto L_088A609C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A609C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A60A8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 370u, 0x088A60A8u, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A60A8u) goto L_088A60A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A60A8: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4989,8 +7275,21 @@ L_088A60A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1636), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088A60C0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 371u, 0x088A60C0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A60C0u) goto L_088A60C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A60C0: aot_gpr_4 = (50716u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1068))); @@ -5006,8 +7305,21 @@ L_088A60C0: L_088A60E0: aot_gpr_31 = (0x088A60E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 373u, 0x088A60E8u, 0x088A2838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 577u, 0x088A2838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A60E8u) goto L_088A60E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A60E8: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1068), std::bit_cast(ctx.fpr[0])); @@ -5019,27 +7331,79 @@ L_088A60E8: L_088A60F0: aot_gpr_31 = (0x088A60F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 375u, 0x088A60F8u, 0x088A2838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 577u, 0x088A2838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A60F8u) goto L_088A60F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A60F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1068))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A6108u); aot_fpr_20 = aot_fpr_12 - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 376u, 0x088A6108u, 0x088A2830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 576u, 0x088A2830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6108u) goto L_088A6108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6108: aot_gpr_4 = (aot_gpr_29 + static_cast(1648)); aot_gpr_31 = (0x088A6114u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 377u, 0x088A6114u, 0x088A27C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 569u, 0x088A27C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6114u) goto L_088A6114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6114: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A6120u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 378u, 0x088A6120u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6120u) goto L_088A6120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6120: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1648))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1652))); @@ -5051,8 +7415,21 @@ L_088A6120: L_088A6138: aot_gpr_31 = (0x088A6140u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 380u, 0x088A6140u, 0x08AFFEFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 947u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 947u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 947u, 0x08AFFEFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6140u) goto L_088A6140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6140: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(2256), aot_run_words); @@ -5073,8 +7450,8 @@ L_088A6140: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(2320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A6180: @@ -5094,8 +7471,21 @@ L_088A6180: L_088A61D4: aot_gpr_31 = (0x088A61DCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 383u, 0x088A61DCu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A61DCu) goto L_088A61DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A61DC: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -5121,8 +7511,21 @@ L_088A6208: L_088A6210: aot_gpr_31 = (0x088A6218u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 386u, 0x088A6218u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6218u) goto L_088A6218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6218: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5138,8 +7541,21 @@ L_088A6220: L_088A6228: aot_gpr_31 = (0x088A6230u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 389u, 0x088A6230u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6230u) goto L_088A6230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6230: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5155,8 +7571,21 @@ L_088A6238: L_088A6240: aot_gpr_31 = (0x088A6248u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 392u, 0x088A6248u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6248u) goto L_088A6248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6248: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5173,8 +7602,21 @@ L_088A6250: L_088A625C: aot_gpr_31 = (0x088A6264u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 395u, 0x088A6264u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6264u) goto L_088A6264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6264: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17279u << 16u); @@ -5237,8 +7679,21 @@ L_088A62EC: L_088A62F8: aot_gpr_31 = (0x088A6300u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 402u, 0x088A6300u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6300u) goto L_088A6300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6300: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17279u << 16u); @@ -5277,8 +7732,21 @@ L_088A633C: L_088A6348: aot_gpr_31 = (0x088A6350u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 407u, 0x088A6350u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6350u) goto L_088A6350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6350: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5323,8 +7791,21 @@ L_088A63B0: L_088A63BC: aot_gpr_31 = (0x088A63C4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 412u, 0x088A63C4u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A63C4u) goto L_088A63C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A63C4: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5362,8 +7843,21 @@ L_088A6418: L_088A6428: aot_gpr_31 = (0x088A6430u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 416u, 0x088A6430u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6430u) goto L_088A6430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6430: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5493,8 +7987,21 @@ L_088A6540: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A6550u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 431u, 0x088A6550u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6550u) goto L_088A6550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6550: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(604), std::bit_cast(aot_fpr_20)); aot_gpr_5 = (15820u << 16u); @@ -5515,8 +8022,21 @@ L_088A656C: L_088A6574: aot_gpr_31 = (0x088A657Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 434u, 0x088A657Cu, 0x0894CE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 221u, 0x0894CE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A657Cu) goto L_088A657C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A657C: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5559,8 +8079,21 @@ L_088A65A0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088A65C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 436u, 0x088A65C4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A65C4u) goto L_088A65C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A65C4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_5 = (0u | 219u); @@ -5627,8 +8160,21 @@ L_088A65E4: L_088A6638: aot_gpr_31 = (0x088A6640u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 440u, 0x088A6640u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6640u) goto L_088A6640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6640: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5654,8 +8200,21 @@ L_088A6664: aot_gpr_5 = (0u | 28u); aot_gpr_31 = (0x088A6678u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 443u, 0x088A6678u, 0x08A40A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 117u, 0x08A40A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6678u) goto L_088A6678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6678: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(276))); aot_gpr_4 = (aot_gpr_4 + static_cast(320)); @@ -5695,8 +8254,21 @@ L_088A66BC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A66DCu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 445u, 0x088A66DCu, 0x088A2648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 550u, 0x088A2648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A66DCu) goto L_088A66DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A66DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -5759,8 +8331,21 @@ L_088A66DC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x088A672Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 446u, 0x088A672Cu, 0x08A4842Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 46u, 0x08A4842Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A672Cu) goto L_088A672C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A672C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(196), std::bit_cast(ctx.fpr[24])); @@ -5769,8 +8354,21 @@ L_088A672C: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088A6748u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 447u, 0x088A6748u, 0x08A41568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 255u, 0x08A41568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6748u) goto L_088A6748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6748: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(96))); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -5778,8 +8376,21 @@ L_088A6748: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A6760u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 448u, 0x088A6760u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6760u) goto L_088A6760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6760: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(656), aot_gpr_4); @@ -5815,8 +8426,8 @@ L_088A677C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A67C4: @@ -5825,8 +8436,21 @@ L_088A67C4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(248), aot_run_words); } aot_gpr_31 = (0x088A6808u); ctx.gpr[22] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 451u, 0x088A6808u, 0x08AFEF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 662u, 0x08AFEF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6808u) goto L_088A6808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6808: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.gpr[20] = (0u + static_cast(-2)); @@ -5950,8 +8574,21 @@ L_088A693C: L_088A694C: aot_gpr_31 = (0x088A6954u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 459u, 0x088A6954u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6954u) goto L_088A6954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6954: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A6958; @@ -5962,8 +8599,21 @@ L_088A6958: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A6970u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 461u, 0x088A6970u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6970u) goto L_088A6970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6970: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5985,16 +8635,42 @@ L_088A6970: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088A6994u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 462u, 0x088A6994u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6994u) goto L_088A6994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6994: aot_gpr_4 = (aot_gpr_29 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088A69A8u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 463u, 0x088A69A8u, 0x088600C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 5u, 0x088600C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A69A8u) goto L_088A69A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A69A8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6004,13 +8680,39 @@ L_088A69A8: } aot_gpr_31 = (0x088A69BCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 464u, 0x088A69BCu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A69BCu) goto L_088A69BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A69BC: aot_gpr_31 = (0x088A69C4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 465u, 0x088A69C4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A69C4u) goto L_088A69C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A69C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(972))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6043,8 +8745,21 @@ L_088A69E4: L_088A69F4: aot_gpr_31 = (0x088A69FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 469u, 0x088A69FCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A69FCu) goto L_088A69FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A69FC: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A6A00; @@ -6055,8 +8770,21 @@ L_088A6A00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A6A18u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 471u, 0x088A6A18u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6A18u) goto L_088A6A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6A18: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6075,8 +8803,21 @@ L_088A6A18: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088A6A30u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 472u, 0x088A6A30u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6A30u) goto L_088A6A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6A30: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6086,13 +8827,39 @@ L_088A6A30: } aot_gpr_31 = (0x088A6A44u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 473u, 0x088A6A44u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6A44u) goto L_088A6A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6A44: aot_gpr_31 = (0x088A6A4Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 474u, 0x088A6A4Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6A4Cu) goto L_088A6A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6A4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(976))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6125,8 +8892,21 @@ L_088A6A6C: L_088A6A7C: aot_gpr_31 = (0x088A6A84u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 478u, 0x088A6A84u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6A84u) goto L_088A6A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6A84: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A6A88; @@ -6137,8 +8917,21 @@ L_088A6A88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A6AA0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 480u, 0x088A6AA0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6AA0u) goto L_088A6AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6AA0: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6156,8 +8949,21 @@ L_088A6AA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(600))); aot_gpr_31 = (0x088A6AB4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 481u, 0x088A6AB4u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6AB4u) goto L_088A6AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6AB4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6167,13 +8973,39 @@ L_088A6AB4: } aot_gpr_31 = (0x088A6AC8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 482u, 0x088A6AC8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6AC8u) goto L_088A6AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6AC8: aot_gpr_31 = (0x088A6AD0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 483u, 0x088A6AD0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6AD0u) goto L_088A6AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6AD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(980))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6206,8 +9038,21 @@ L_088A6AF0: L_088A6B00: aot_gpr_31 = (0x088A6B08u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 487u, 0x088A6B08u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6B08u) goto L_088A6B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6B08: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A6B0C; @@ -6218,8 +9063,21 @@ L_088A6B0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A6B24u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 489u, 0x088A6B24u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6B24u) goto L_088A6B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6B24: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6241,8 +9099,21 @@ L_088A6B24: L_088A6B34: aot_gpr_31 = (0x088A6B3Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 491u, 0x088A6B3Cu, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6B3Cu) goto L_088A6B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6B3C: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6252,8 +9123,21 @@ L_088A6B3C: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088A6B5Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 492u, 0x088A6B5Cu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6B5Cu) goto L_088A6B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6B5C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6263,13 +9147,39 @@ L_088A6B5C: } aot_gpr_31 = (0x088A6B70u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 493u, 0x088A6B70u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6B70u) goto L_088A6B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6B70: aot_gpr_31 = (0x088A6B78u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 494u, 0x088A6B78u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6B78u) goto L_088A6B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6B78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(984))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6302,8 +9212,21 @@ L_088A6B98: L_088A6BA8: aot_gpr_31 = (0x088A6BB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 498u, 0x088A6BB0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6BB0u) goto L_088A6BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6BB0: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A6BB4; @@ -6314,8 +9237,21 @@ L_088A6BB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A6BCCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 500u, 0x088A6BCCu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6BCCu) goto L_088A6BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6BCC: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6337,8 +9273,21 @@ L_088A6BCC: L_088A6BDC: aot_gpr_31 = (0x088A6BE4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 502u, 0x088A6BE4u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6BE4u) goto L_088A6BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6BE4: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6348,8 +9297,21 @@ L_088A6BE4: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088A6C04u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 503u, 0x088A6C04u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6C04u) goto L_088A6C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6C04: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6359,13 +9321,39 @@ L_088A6C04: } aot_gpr_31 = (0x088A6C18u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 504u, 0x088A6C18u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6C18u) goto L_088A6C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6C18: aot_gpr_31 = (0x088A6C20u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 505u, 0x088A6C20u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6C20u) goto L_088A6C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6C20: ctx.gpr[19] = (2179u << 16u); aot_gpr_4 = (49024u << 16u); @@ -6397,16 +9385,42 @@ L_088A6C5C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x088A6C78u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 508u, 0x088A6C78u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6C78u) goto L_088A6C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6C78: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(956))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(108), 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A6C8Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 509u, 0x088A6C8Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6C8Cu) goto L_088A6C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6C8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6420,8 +9434,21 @@ L_088A6C98: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A6CA8u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 511u, 0x088A6CA8u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6CA8u) goto L_088A6CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6CA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(956))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6438,16 +9465,42 @@ L_088A6CB4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x088A6CD0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 513u, 0x088A6CD0u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6CD0u) goto L_088A6CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6CD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(956))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(108), 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A6CE4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 514u, 0x088A6CE4u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6CE4u) goto L_088A6CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6CE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6470,8 +9523,21 @@ L_088A6D04: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A6D14u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 517u, 0x088A6D14u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6D14u) goto L_088A6D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6D14: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[23]; if (branch_taken) { @@ -6536,8 +9602,21 @@ L_088A6D68: L_088A6D78: aot_gpr_31 = (0x088A6D80u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 525u, 0x088A6D80u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6D80u) goto L_088A6D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6D80: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_088A6D84; @@ -6548,8 +9627,21 @@ L_088A6D84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A6D9Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 527u, 0x088A6D9Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6D9Cu) goto L_088A6D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6D9C: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6567,8 +9659,21 @@ L_088A6D9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(944))); aot_gpr_31 = (0x088A6DB0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 528u, 0x088A6DB0u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6DB0u) goto L_088A6DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6DB0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6578,21 +9683,60 @@ L_088A6DB0: } aot_gpr_31 = (0x088A6DC4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 529u, 0x088A6DC4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6DC4u) goto L_088A6DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6DC4: aot_gpr_31 = (0x088A6DCCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 530u, 0x088A6DCCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6DCCu) goto L_088A6DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6DCC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(960))); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A6DE0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 531u, 0x088A6DE0u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6DE0u) goto L_088A6DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6DE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6606,8 +9750,21 @@ L_088A6DEC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A6DFCu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 533u, 0x088A6DFCu, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6DFCu) goto L_088A6DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6DFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(964))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6642,8 +9799,21 @@ L_088A6E24: L_088A6E34: aot_gpr_31 = (0x088A6E3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 537u, 0x088A6E3Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6E3Cu) goto L_088A6E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6E3C: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_088A6E40; @@ -6654,8 +9824,21 @@ L_088A6E40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A6E58u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 539u, 0x088A6E58u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6E58u) goto L_088A6E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6E58: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6674,8 +9857,21 @@ L_088A6E58: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088A6E70u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 540u, 0x088A6E70u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6E70u) goto L_088A6E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6E70: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6685,21 +9881,60 @@ L_088A6E70: } aot_gpr_31 = (0x088A6E84u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 541u, 0x088A6E84u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6E84u) goto L_088A6E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6E84: aot_gpr_31 = (0x088A6E8Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 542u, 0x088A6E8Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6E8Cu) goto L_088A6E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6E8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(964))); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A6EA0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 543u, 0x088A6EA0u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6EA0u) goto L_088A6EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6EA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6722,14 +9957,40 @@ L_088A6EC0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A6ED0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 546u, 0x088A6ED0u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6ED0u) goto L_088A6ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6ED0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A6EDCu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 547u, 0x088A6EDCu, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6EDCu) goto L_088A6EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6EDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6822,8 +10083,21 @@ L_088A6F60: L_088A6F70: aot_gpr_31 = (0x088A6F78u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 558u, 0x088A6F78u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6F78u) goto L_088A6F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6F78: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A6F7C; @@ -6834,8 +10108,21 @@ L_088A6F7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A6F94u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 560u, 0x088A6F94u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6F94u) goto L_088A6F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6F94: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6854,8 +10141,21 @@ L_088A6F94: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088A6FACu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 561u, 0x088A6FACu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6FACu) goto L_088A6FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6FAC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6865,13 +10165,39 @@ L_088A6FAC: } aot_gpr_31 = (0x088A6FC0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 562u, 0x088A6FC0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6FC0u) goto L_088A6FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6FC0: aot_gpr_31 = (0x088A6FC8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 563u, 0x088A6FC8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A6FC8u) goto L_088A6FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A6FC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(980))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6904,8 +10230,21 @@ L_088A6FE8: L_088A6FF8: aot_gpr_31 = (0x088A7000u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 567u, 0x088A7000u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7000u) goto L_088A7000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7000: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A7004; @@ -6916,8 +10255,21 @@ L_088A7004: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A701Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 569u, 0x088A701Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A701Cu) goto L_088A701C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A701C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6936,8 +10288,21 @@ L_088A701C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088A7034u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 570u, 0x088A7034u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7034u) goto L_088A7034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7034: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6947,13 +10312,39 @@ L_088A7034: } aot_gpr_31 = (0x088A7048u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 571u, 0x088A7048u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7048u) goto L_088A7048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7048: aot_gpr_31 = (0x088A7050u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 572u, 0x088A7050u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7050u) goto L_088A7050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7050: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(984))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6986,8 +10377,21 @@ L_088A7070: L_088A7080: aot_gpr_31 = (0x088A7088u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 576u, 0x088A7088u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7088u) goto L_088A7088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7088: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A708C; @@ -6998,8 +10402,21 @@ L_088A708C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A70A4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 578u, 0x088A70A4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A70A4u) goto L_088A70A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A70A4: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7018,8 +10435,21 @@ L_088A70A4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088A70BCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 579u, 0x088A70BCu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A70BCu) goto L_088A70BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A70BC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7029,13 +10459,39 @@ L_088A70BC: } aot_gpr_31 = (0x088A70D0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 580u, 0x088A70D0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A70D0u) goto L_088A70D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A70D0: aot_gpr_31 = (0x088A70D8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 581u, 0x088A70D8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A70D8u) goto L_088A70D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A70D8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[23]; @@ -7068,8 +10524,21 @@ L_088A7100: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(128), aot_run_words); } aot_gpr_31 = (0x088A711Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 585u, 0x088A711Cu, 0x08A0019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 29u, 0x08A0019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A711Cu) goto L_088A711C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A711C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(1049))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1008))); @@ -7099,8 +10568,21 @@ L_088A7144: L_088A7154: aot_gpr_31 = (0x088A715Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 588u, 0x088A715Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A715Cu) goto L_088A715C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A715C: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A7160; @@ -7111,8 +10593,21 @@ L_088A7160: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A7178u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 590u, 0x088A7178u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7178u) goto L_088A7178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7178: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7135,8 +10630,21 @@ L_088A7178: } aot_gpr_31 = (0x088A7194u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 591u, 0x088A7194u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7194u) goto L_088A7194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7194: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7146,13 +10654,39 @@ L_088A7194: } aot_gpr_31 = (0x088A71A8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 592u, 0x088A71A8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A71A8u) goto L_088A71A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A71A8: aot_gpr_31 = (0x088A71B0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 593u, 0x088A71B0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A71B0u) goto L_088A71B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A71B0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[23]; @@ -7200,8 +10734,21 @@ L_088A71F8: L_088A7208: aot_gpr_31 = (0x088A7210u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 598u, 0x088A7210u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7210u) goto L_088A7210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7210: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A7214; @@ -7212,8 +10759,21 @@ L_088A7214: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A722Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 600u, 0x088A722Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A722Cu) goto L_088A722C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A722C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7259,8 +10819,21 @@ L_088A7264: L_088A7268: aot_gpr_31 = (0x088A7270u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 605u, 0x088A7270u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7270u) goto L_088A7270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7270: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088A7274; @@ -7294,8 +10867,21 @@ L_088A729C: } L_088A72A8: aot_gpr_31 = (0x088A72B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 610u, 0x088A72B0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A72B0u) goto L_088A72B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A72B0: aot_fpr_20 = ctx.fpr[22] + ctx.fpr[0]; aot_fpr_20 = ctx.fpr[24] - aot_fpr_20; @@ -7304,8 +10890,21 @@ L_088A72B8: ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A72C4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 612u, 0x088A72C4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A72C4u) goto L_088A72C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A72C4: aot_gpr_4 = (16329u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -7418,8 +11017,21 @@ L_088A7358: aot_fpr_12 = ctx.fpr[22] + aot_fpr_12; aot_gpr_31 = (0x088A7400u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 621u, 0x088A7400u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7400u) goto L_088A7400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7400: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7429,13 +11041,39 @@ L_088A7400: } aot_gpr_31 = (0x088A7414u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 622u, 0x088A7414u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7414u) goto L_088A7414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7414: aot_gpr_31 = (0x088A741Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 623u, 0x088A741Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A741Cu) goto L_088A741C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A741C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(960))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7468,8 +11106,21 @@ L_088A743C: L_088A744C: aot_gpr_31 = (0x088A7454u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 627u, 0x088A7454u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7454u) goto L_088A7454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7454: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A7458; @@ -7480,8 +11131,21 @@ L_088A7458: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A7470u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 629u, 0x088A7470u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7470u) goto L_088A7470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7470: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7499,8 +11163,21 @@ L_088A7470: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(944))); aot_gpr_31 = (0x088A7484u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 630u, 0x088A7484u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7484u) goto L_088A7484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7484: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7510,13 +11187,39 @@ L_088A7484: } aot_gpr_31 = (0x088A7498u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 631u, 0x088A7498u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7498u) goto L_088A7498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7498: aot_gpr_31 = (0x088A74A0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 632u, 0x088A74A0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A74A0u) goto L_088A74A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A74A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8348))); aot_gpr_4 = (15897u << 16u); @@ -7652,8 +11355,21 @@ L_088A7584: L_088A7594: aot_gpr_31 = (0x088A759Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 639u, 0x088A759Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A759Cu) goto L_088A759C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A759C: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_088A75A0; @@ -7664,8 +11380,21 @@ L_088A75A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A75B8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 641u, 0x088A75B8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A75B8u) goto L_088A75B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A75B8: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7683,8 +11412,21 @@ L_088A75B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(944))); aot_gpr_31 = (0x088A75CCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 642u, 0x088A75CCu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A75CCu) goto L_088A75CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A75CC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7694,13 +11436,39 @@ L_088A75CC: } aot_gpr_31 = (0x088A75E0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 643u, 0x088A75E0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A75E0u) goto L_088A75E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A75E0: aot_gpr_31 = (0x088A75E8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 644u, 0x088A75E8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A75E8u) goto L_088A75E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A75E8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(1776))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7713,8 +11481,21 @@ L_088A75E8: L_088A75F4: aot_gpr_31 = (0x088A75FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(960))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 646u, 0x088A75FCu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A75FCu) goto L_088A75FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A75FC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); @@ -7751,8 +11532,21 @@ L_088A762C: } L_088A7634: aot_gpr_31 = (0x088A763Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 651u, 0x088A763Cu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A763Cu) goto L_088A763C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A763C: aot_gpr_4 = (15523u << 16u); goto L_088A7640; @@ -7804,8 +11598,21 @@ L_088A768C: L_088A769C: aot_gpr_31 = (0x088A76A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 658u, 0x088A76A4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A76A4u) goto L_088A76A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A76A4: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); goto L_088A76A8; @@ -7816,8 +11623,21 @@ L_088A76A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088A76C0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 660u, 0x088A76C0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A76C0u) goto L_088A76C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A76C0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7857,8 +11677,21 @@ L_088A7704: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088A7710u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 663u, 0x088A7710u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7710u) goto L_088A7710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7710: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7868,13 +11701,39 @@ L_088A7710: } aot_gpr_31 = (0x088A7724u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 664u, 0x088A7724u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7724u) goto L_088A7724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7724: aot_gpr_31 = (0x088A772Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 665u, 0x088A772Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A772Cu) goto L_088A772C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A772C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_088A7730; @@ -7897,8 +11756,21 @@ L_088A773C: L_088A7748: aot_gpr_31 = (0x088A7750u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 669u, 0x088A7750u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7750u) goto L_088A7750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7750: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(248), aot_run_words); @@ -7919,8 +11791,8 @@ L_088A7750: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A7790: @@ -7997,8 +11869,21 @@ L_088A7820: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088A7830u); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 679u, 0x088A7830u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7830u) goto L_088A7830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7830: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A783Cu); @@ -8031,8 +11916,21 @@ L_088A785C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088A786Cu); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 685u, 0x088A786Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A786Cu) goto L_088A786C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A786C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7878u); @@ -8095,8 +11993,21 @@ L_088A78D4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A78ECu); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 694u, 0x088A78ECu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A78ECu) goto L_088A78EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A78EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A78F8u); @@ -8156,16 +12067,42 @@ L_088A7940: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A7950u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 704u, 0x088A7950u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7950u) goto L_088A7950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7950: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A7964u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 705u, 0x088A7964u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7964u) goto L_088A7964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7964: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7970u); @@ -8198,16 +12135,42 @@ L_088A7990: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A79A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 711u, 0x088A79A0u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A79A0u) goto L_088A79A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A79A0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A79B4u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 712u, 0x088A79B4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A79B4u) goto L_088A79B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A79B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A79C0u); @@ -8287,8 +12250,21 @@ L_088A7A38: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x088A7A50u); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 723u, 0x088A7A50u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7A50u) goto L_088A7A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7A50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7A5Cu); @@ -8318,8 +12294,21 @@ L_088A7A74: L_088A7A7C: aot_gpr_31 = (0x088A7A84u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 728u, 0x088A7A84u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7A84u) goto L_088A7A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7A84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8399,8 +12388,21 @@ L_088A7AFC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088A7B08u); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 739u, 0x088A7B08u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7B08u) goto L_088A7B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7B08: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7B14u); @@ -8432,8 +12434,21 @@ L_088A7B34: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088A7B40u); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 745u, 0x088A7B40u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7B40u) goto L_088A7B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7B40: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7B4Cu); @@ -8465,8 +12480,21 @@ L_088A7B64: L_088A7B74: aot_gpr_31 = (0x088A7B7Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 750u, 0x088A7B7Cu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7B7Cu) goto L_088A7B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7B7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8504,16 +12532,42 @@ L_088A7BB0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A7BC0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 756u, 0x088A7BC0u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7BC0u) goto L_088A7BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7BC0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A7BD4u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 757u, 0x088A7BD4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7BD4u) goto L_088A7BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7BD4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7BE0u); @@ -8546,16 +12600,42 @@ L_088A7C00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A7C10u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 763u, 0x088A7C10u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7C10u) goto L_088A7C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7C10: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A7C24u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 764u, 0x088A7C24u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7C24u) goto L_088A7C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7C24: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7C30u); @@ -8655,8 +12735,21 @@ L_088A7CCC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088A7CD8u); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 779u, 0x088A7CD8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7CD8u) goto L_088A7CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7CD8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7CE4u); @@ -8688,8 +12781,21 @@ L_088A7D04: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088A7D10u); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 785u, 0x088A7D10u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7D10u) goto L_088A7D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7D10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7D1Cu); @@ -8727,8 +12833,21 @@ L_088A7D40: L_088A7D50: aot_gpr_31 = (0x088A7D58u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 791u, 0x088A7D58u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7D58u) goto L_088A7D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7D58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8767,16 +12886,42 @@ L_088A7D90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A7DA0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 797u, 0x088A7DA0u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7DA0u) goto L_088A7DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7DA0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A7DB4u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 798u, 0x088A7DB4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7DB4u) goto L_088A7DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7DB4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7DC0u); @@ -8809,16 +12954,42 @@ L_088A7DE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A7DF0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 804u, 0x088A7DF0u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7DF0u) goto L_088A7DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7DF0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088A7E04u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 805u, 0x088A7E04u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7E04u) goto L_088A7E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7E04: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7E10u); @@ -8850,13 +13021,39 @@ L_088A7E30: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A7E44u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 810u, 0x088A7E44u, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7E44u) goto L_088A7E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7E44: aot_gpr_31 = (0x088A7E4Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 811u, 0x088A7E4Cu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7E4Cu) goto L_088A7E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7E4C: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[18] = (0u | 6u); @@ -8869,8 +13066,21 @@ L_088A7E54: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A7E60u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 813u, 0x088A7E60u, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7E60u) goto L_088A7E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7E60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1360))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -8935,8 +13145,21 @@ L_088A7EB8: aot_gpr_6 = (0u | 11u); aot_gpr_31 = (0x088A7ECCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 823u, 0x088A7ECCu, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7ECCu) goto L_088A7ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7ECC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8967,16 +13190,42 @@ L_088A7EF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088A7F04u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 828u, 0x088A7F04u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7F04u) goto L_088A7F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7F04: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A7F18u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0040->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0040_entry, 829u, 0x088A7F18u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A7F18u) goto L_088A7F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A7F18: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A7F24u); @@ -9009,8 +13258,8 @@ L_088A7F3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A7F64: diff --git a/profiles/vcs/generated/generated_unit_0041.cpp b/profiles/vcs/generated/generated_unit_0041.cpp index f2ddad9..df01015 100644 --- a/profiles/vcs/generated/generated_unit_0041.cpp +++ b/profiles/vcs/generated/generated_unit_0041.cpp @@ -714,6 +714,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088A8004u; + if (local_delta_v813 >= 16236u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -744,8 +768,21 @@ L_088A800C: } L_088A8018: aot_gpr_31 = (0x088A8020u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 4u, 0x088A8020u, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8020u) goto L_088A8020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8020: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1019,8 +1056,21 @@ L_088A81F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); aot_gpr_31 = (0x088A8200u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 19u, 0x088A8200u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8200u) goto L_088A8200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8200: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1252))); @@ -1042,8 +1092,21 @@ L_088A8218: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088A823Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 21u, 0x088A823Cu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A823Cu) goto L_088A823C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A823C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1069,8 +1132,21 @@ L_088A825C: aot_gpr_5 = (0u | 42u); aot_gpr_31 = (0x088A8274u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 24u, 0x088A8274u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8274u) goto L_088A8274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8274: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088A8280u); @@ -1102,8 +1178,21 @@ L_088A82A0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088A82ACu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 29u, 0x088A82ACu, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A82ACu) goto L_088A82AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A82AC: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_088A82B0; @@ -1138,8 +1227,21 @@ L_088A82DC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088A8300u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 34u, 0x088A8300u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8300u) goto L_088A8300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8300: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088A830Cu); @@ -1182,8 +1284,21 @@ L_088A833C: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088A8354u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 40u, 0x088A8354u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8354u) goto L_088A8354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8354: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -1196,8 +1311,8 @@ L_088A8354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A8374: @@ -1333,8 +1448,21 @@ L_088A8418: } aot_gpr_31 = (0x088A848Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 46u, 0x088A848Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A848Cu) goto L_088A848C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A848C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1056))); @@ -1454,8 +1582,21 @@ L_088A84FC: } aot_gpr_31 = (0x088A8570u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 51u, 0x088A8570u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8570u) goto L_088A8570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8570: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1056))); goto L_088A8574; @@ -1571,8 +1712,21 @@ L_088A85D8: } aot_gpr_31 = (0x088A865Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 55u, 0x088A865Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A865Cu) goto L_088A865C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A865C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(240), aot_run_words); @@ -1582,8 +1736,8 @@ L_088A865C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A8670: @@ -1734,8 +1888,21 @@ L_088A8788: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088A8794u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 69u, 0x088A8794u, 0x088A2648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 550u, 0x088A2648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8794u) goto L_088A8794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8794: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1755,8 +1922,21 @@ L_088A8794: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A87B0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 70u, 0x088A87B0u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A87B0u) goto L_088A87B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A87B0: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2009,8 +2189,21 @@ L_088A8848: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x088A88E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 78u, 0x088A88E4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A88E4u) goto L_088A88E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A88E4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2044,8 +2237,21 @@ L_088A88EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x088A8924u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 80u, 0x088A8924u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8924u) goto L_088A8924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8924: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2070,8 +2276,21 @@ L_088A892C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088A896Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 82u, 0x088A896Cu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A896Cu) goto L_088A896C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A896C: { const bool branch_taken = aot_gpr_2 != 0u; ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); @@ -2161,8 +2380,21 @@ L_088A89D8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088A8A10u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 92u, 0x088A8A10u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8A10u) goto L_088A8A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8A10: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2197,8 +2429,21 @@ L_088A8A2C: aot_gpr_4 = (aot_gpr_29 + static_cast(196)); aot_gpr_31 = (0x088A8A44u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 96u, 0x088A8A44u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8A44u) goto L_088A8A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8A44: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[22]) || std::isnan(aot_fpr_20)) && ctx.fpr[22] == aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -2245,8 +2490,8 @@ L_088A8A74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A8AAC: @@ -2355,8 +2600,21 @@ L_088A8B74: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A8BC4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 109u, 0x088A8BC4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8BC4u) goto L_088A8BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8BC4: aot_gpr_31 = (0x088A8BCCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8BCCu) goto L_088A8BCC; @@ -2440,14 +2698,40 @@ L_088A8BEC: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_31 = (0x088A8C78u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 113u, 0x088A8C78u, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8C78u) goto L_088A8C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8C78: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A8C84u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(404))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 114u, 0x088A8C84u, 0x08AFFAC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 877u, 0x08AFFAC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8C84u) goto L_088A8C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8C84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(352))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(180))); @@ -2466,8 +2750,21 @@ L_088A8C84: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088A8CC8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 115u, 0x088A8CC8u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8CC8u) goto L_088A8CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8CC8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(404))); @@ -2478,13 +2775,39 @@ L_088A8CC8: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x088A8CECu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 116u, 0x088A8CECu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8CECu) goto L_088A8CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8CEC: aot_gpr_31 = (0x088A8CF4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 117u, 0x088A8CF4u, 0x08A362BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 544u, 0x08A362BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8CF4u) goto L_088A8CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8CF4: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(48), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(49), static_cast(0u)); @@ -2582,8 +2905,21 @@ L_088A8DEC: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A8E2Cu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 121u, 0x088A8E2Cu, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8E2Cu) goto L_088A8E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8E2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); ctx.gpr[23] = (aot_gpr_4 + static_cast(300)); @@ -2651,8 +2987,21 @@ L_088A8E2C: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A8E9Cu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 122u, 0x088A8E9Cu, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8E9Cu) goto L_088A8E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8E9C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2685,8 +3034,21 @@ L_088A8E9C: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088A8ECCu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 123u, 0x088A8ECCu, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8ECCu) goto L_088A8ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8ECC: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); @@ -2694,8 +3056,21 @@ L_088A8ECC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088A8EE4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 124u, 0x088A8EE4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8EE4u) goto L_088A8EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8EE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(408))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(408), aot_gpr_4); @@ -2755,8 +3130,21 @@ L_088A8F18: aot_gpr_4 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x088A8F40u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 129u, 0x088A8F40u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A8F40u) goto L_088A8F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A8F40: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2839,8 +3227,21 @@ L_088A8FC4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088A9014u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 136u, 0x088A9014u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9014u) goto L_088A9014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9014: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 4 ? 1u : 0u); @@ -2891,8 +3292,21 @@ L_088A903C: aot_gpr_4 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x088A9064u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 140u, 0x088A9064u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9064u) goto L_088A9064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9064: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2932,8 +3346,21 @@ L_088A9088: ctx.gpr[7] = (0u | 2500u); aot_gpr_31 = (0x088A90CCu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 144u, 0x088A90CCu, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A90CCu) goto L_088A90CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A90CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(960))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2951,8 +3378,21 @@ L_088A90D8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A90F8u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 146u, 0x088A90F8u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A90F8u) goto L_088A90F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A90F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2965,8 +3405,21 @@ L_088A9104: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x088A9110u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 148u, 0x088A9110u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9110u) goto L_088A9110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9110: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] != 0u; @@ -2992,8 +3445,21 @@ L_088A9124: L_088A912C: aot_gpr_31 = (0x088A9134u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 152u, 0x088A9134u, 0x0882B4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 349u, 0x0882B4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9134u) goto L_088A9134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9134: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_088A9138; @@ -3022,26 +3488,78 @@ L_088A9164: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(86)))))); aot_gpr_31 = (0x088A9170u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 156u, 0x088A9170u, 0x0882C380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 58u, 0x0882C380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9170u) goto L_088A9170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9170: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(960))); aot_gpr_31 = (0x088A917Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 157u, 0x088A917Cu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A917Cu) goto L_088A917C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A917C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(80)); aot_gpr_31 = (0x088A9188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 158u, 0x088A9188u, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9188u) goto L_088A9188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9188: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_gpr_31 = (0x088A9198u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 159u, 0x088A9198u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9198u) goto L_088A9198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9198: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(240), aot_gpr_2); { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); @@ -3100,26 +3618,78 @@ L_088A9198: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_gpr_31 = (0x088A91CCu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 160u, 0x088A91CCu, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A91CCu) goto L_088A91CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A91CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_gpr_31 = (0x088A91D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 161u, 0x088A91D8u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A91D8u) goto L_088A91D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A91D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_gpr_31 = (0x088A91E4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 162u, 0x088A91E4u, 0x0887F368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 698u, 0x0887F368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A91E4u) goto L_088A91E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A91E4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_gpr_31 = (0x088A91F0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 163u, 0x088A91F0u, 0x08ACFE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1117u, 0x08ACFE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A91F0u) goto L_088A91F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A91F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 4096u); @@ -3213,8 +3783,21 @@ L_088A92E0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088A92ECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 168u, 0x088A92ECu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A92ECu) goto L_088A92EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A92EC: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3317,21 +3900,60 @@ L_088A9370: } aot_gpr_31 = (0x088A9384u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 171u, 0x088A9384u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9384u) goto L_088A9384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9384: aot_gpr_31 = (0x088A938Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 172u, 0x088A938Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A938Cu) goto L_088A938C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A938C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(960))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(240), 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088A93A0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 173u, 0x088A93A0u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A93A0u) goto L_088A93A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A93A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3365,8 +3987,8 @@ L_088A93B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A93F8: @@ -3444,8 +4066,21 @@ L_088A9484: L_088A948C: aot_gpr_31 = (0x088A9494u); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 185u, 0x088A9494u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9494u) goto L_088A9494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9494: { const bool branch_taken = ctx.gpr[17] != aot_gpr_2; if (branch_taken) { @@ -3531,8 +4166,21 @@ L_088A9520: } L_088A9530: aot_gpr_31 = (0x088A9538u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 195u, 0x088A9538u, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9538u) goto L_088A9538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9538: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3550,8 +4198,21 @@ L_088A9550: goto L_088A955C; L_088A955C: aot_gpr_31 = (0x088A9564u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 198u, 0x088A9564u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9564u) goto L_088A9564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9564: { const bool branch_taken = ctx.gpr[16] != aot_gpr_2; if (branch_taken) { @@ -3622,8 +4283,21 @@ L_088A95EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); aot_gpr_31 = (0x088A95F8u); aot_gpr_5 = (0u | 145u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 205u, 0x088A95F8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A95F8u) goto L_088A95F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A95F8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3671,8 +4345,21 @@ L_088A9650: } L_088A9660: aot_gpr_31 = (0x088A9668u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 210u, 0x088A9668u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9668u) goto L_088A9668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9668: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3683,8 +4370,21 @@ L_088A9668: L_088A9670: aot_gpr_31 = (0x088A9678u); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 212u, 0x088A9678u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9678u) goto L_088A9678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9678: { const bool branch_taken = ctx.gpr[17] != aot_gpr_2; if (branch_taken) { @@ -3718,8 +4418,21 @@ L_088A9694: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088A96B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 215u, 0x088A96B4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A96B4u) goto L_088A96B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A96B4: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3744,8 +4457,21 @@ L_088A96B4: } L_088A96DC: aot_gpr_31 = (0x088A96E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 217u, 0x088A96E4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A96E4u) goto L_088A96E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A96E4: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3779,8 +4505,21 @@ L_088A9720: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088A972Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 220u, 0x088A972Cu, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A972Cu) goto L_088A972C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A972C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(636))); aot_fpr_13 = std::bit_cast(0u); @@ -3819,8 +4558,21 @@ L_088A976C: L_088A977C: aot_gpr_31 = (0x088A9784u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0040. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 225u, 0x088A9784u, 0x088A7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0040_entry(rt, ctx, 833u, aot_mem); +#else + recomp_unit_0040_entry(rt, ctx, 833u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0040_entry, 40u, 833u, 0x088A7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9784u) goto L_088A9784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9784: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(636))); aot_gpr_4 = (17382u << 16u); @@ -4014,8 +4766,21 @@ L_088A98A4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088A990Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 237u, 0x088A990Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A990Cu) goto L_088A990C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A990C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4135,8 +4900,21 @@ L_088A99A8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088A9A08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 241u, 0x088A9A08u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9A08u) goto L_088A9A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9A08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4315,8 +5093,21 @@ L_088A9B18: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088A9B7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 247u, 0x088A9B7Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9B7Cu) goto L_088A9B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9B7C: ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); @@ -4324,8 +5115,21 @@ L_088A9B7C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088A9B94u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 248u, 0x088A9B94u, 0x088A2648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 550u, 0x088A2648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9B94u) goto L_088A9B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9B94: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4384,8 +5188,21 @@ L_088A9BF4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088A9C30u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 251u, 0x088A9C30u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9C30u) goto L_088A9C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9C30: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4452,8 +5269,21 @@ L_088A9CA0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088A9CECu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 255u, 0x088A9CECu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9CECu) goto L_088A9CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9CEC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16968u << 16u); @@ -4579,8 +5409,21 @@ L_088A9E14: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088A9E3Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 265u, 0x088A9E3Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9E3Cu) goto L_088A9E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9E3C: aot_gpr_4 = (16000u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4631,8 +5474,21 @@ L_088A9E70: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088A9EB4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 268u, 0x088A9EB4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088A9EB4u) goto L_088A9EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088A9EB4: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(248), aot_run_words); @@ -4648,8 +5504,8 @@ L_088A9EB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088A9EE0: @@ -4790,8 +5646,21 @@ L_088AA020: L_088AA03C: aot_gpr_31 = (0x088AA044u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 275u, 0x088AA044u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA044u) goto L_088AA044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA044: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5201,8 +6070,21 @@ L_088AA260: } aot_gpr_31 = (0x088AA368u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 306u, 0x088AA368u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA368u) goto L_088AA368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA368: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -5211,8 +6093,21 @@ L_088AA368: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088AA384u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 307u, 0x088AA384u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA384u) goto L_088AA384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA384: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(204), aot_run_words); @@ -5235,8 +6130,8 @@ L_088AA384: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA3CC: @@ -5264,16 +6159,16 @@ L_088AA3CC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA3E4: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA3F0: @@ -5308,8 +6203,21 @@ L_088AA41C: goto L_088AA428; L_088AA428: aot_gpr_31 = (0x088AA430u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 314u, 0x088AA430u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA430u) goto L_088AA430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA430: aot_gpr_4 = (ctx.gpr[16] & 1u); goto L_088AA434; @@ -5334,8 +6242,8 @@ L_088AA444: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA458: @@ -5355,8 +6263,8 @@ L_088AA474: goto L_088AA478; L_088AA478: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA480: @@ -5377,8 +6285,8 @@ L_088AA48C: } L_088AA4A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA4A8: @@ -5405,8 +6313,21 @@ L_088AA4D4: } L_088AA4DC: aot_gpr_31 = (0x088AA4E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 327u, 0x088AA4E4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA4E4u) goto L_088AA4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA4E4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5416,8 +6337,21 @@ L_088AA4E4: } L_088AA4EC: aot_gpr_31 = (0x088AA4F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 329u, 0x088AA4F4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA4F4u) goto L_088AA4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA4F4: { const bool branch_taken = aot_gpr_2 != ctx.gpr[19]; if (branch_taken) { @@ -5567,8 +6501,21 @@ L_088AA654: } L_088AA684: aot_gpr_31 = (0x088AA68Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 340u, 0x088AA68Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA68Cu) goto L_088AA68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA68C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5578,8 +6525,21 @@ L_088AA68C: } L_088AA694: aot_gpr_31 = (0x088AA69Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 342u, 0x088AA69Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA69Cu) goto L_088AA69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA69C: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5667,8 +6627,8 @@ L_088AA70C: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[16]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-22608))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA724: @@ -5680,8 +6640,21 @@ L_088AA724: aot_gpr_6 = (0u | 750u); aot_gpr_31 = (0x088AA744u); ctx.gpr[7] = (0u | 150u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 350u, 0x088AA744u, 0x088AC7B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 67u, 0x088AC7B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA744u) goto L_088AA744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA744: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5698,8 +6671,21 @@ L_088AA74C: aot_gpr_6 = (0u | 1000u); aot_gpr_31 = (0x088AA76Cu); ctx.gpr[7] = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 352u, 0x088AA76Cu, 0x088AC7B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 67u, 0x088AC7B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA76Cu) goto L_088AA76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA76C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5715,8 +6701,21 @@ L_088AA774: aot_gpr_6 = (0u | 2000u); aot_gpr_31 = (0x088AA790u); ctx.gpr[7] = (0u | 220u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 354u, 0x088AA790u, 0x088AC7B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 67u, 0x088AC7B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA790u) goto L_088AA790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA790: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -5728,8 +6727,8 @@ L_088AA790: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA7AC: @@ -5772,8 +6771,8 @@ L_088AA7EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA800: @@ -5782,24 +6781,76 @@ L_088AA800: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088AA814u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-24888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 361u, 0x088AA814u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA814u) goto L_088AA814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA814: aot_gpr_31 = (0x088AA81Cu); ctx.gpr[16] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 362u, 0x088AA81Cu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA81Cu) goto L_088AA81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA81C: aot_gpr_31 = (0x088AA824u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 363u, 0x088AA824u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA824u) goto L_088AA824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA824: aot_gpr_4 = (ctx.gpr[28] + static_cast(-24876)); aot_gpr_31 = (0x088AA830u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 364u, 0x088AA830u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA830u) goto L_088AA830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA830: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24948), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); @@ -5807,30 +6858,56 @@ L_088AA830: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24944), aot_gpr_5); aot_gpr_31 = (0x088AA848u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 365u, 0x088AA848u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA848u) goto L_088AA848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA848: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24940), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x088AA858u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24936), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 366u, 0x088AA858u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA858u) goto L_088AA858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA858: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA868: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24948), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24940), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA874: @@ -5904,8 +6981,8 @@ L_088AA898: goto L_088AA8FC; L_088AA8FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AA904: @@ -5995,8 +7072,21 @@ L_088AA9D4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088AA9E8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 382u, 0x088AA9E8u, 0x088AD55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 151u, 0x088AD55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AA9E8u) goto L_088AA9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AA9E8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-24952))); @@ -6025,8 +7115,21 @@ L_088AAA00: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x088AAA10u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 386u, 0x088AAA10u, 0x088AD55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 151u, 0x088AD55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AAA10u) goto L_088AAA10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AAA10: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-24952))); @@ -6040,8 +7143,21 @@ L_088AAA18: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088AAA28u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 388u, 0x088AAA28u, 0x088AD55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 151u, 0x088AD55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AAA28u) goto L_088AAA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AAA28: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-24952))); @@ -6055,8 +7171,21 @@ L_088AAA30: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088AAA40u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 390u, 0x088AAA40u, 0x088AD55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 151u, 0x088AD55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AAA40u) goto L_088AAA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AAA40: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-24952))); @@ -6097,14 +7226,14 @@ L_088AAA64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAA94: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAA9C: @@ -6192,8 +7321,8 @@ L_088AAB18: goto L_088AAB1C; L_088AAB1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAB24: @@ -6306,8 +7435,21 @@ L_088AAB90: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(88), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088AAC94u); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(92), std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 407u, 0x088AAC94u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AAC94u) goto L_088AAC94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AAC94: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6320,12 +7462,38 @@ L_088AAC9C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088AACACu); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 409u, 0x088AACACu, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AACACu) goto L_088AACAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AACAC: aot_gpr_31 = (0x088AACB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 410u, 0x088AACB4u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AACB4u) goto L_088AACB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AACB4: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); ctx.gpr[21] = (ctx.gpr[21] + static_cast(-85)); @@ -6353,15 +7521,15 @@ L_088AACCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AACF8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAD00: @@ -6528,8 +7696,8 @@ L_088AAE00: } L_088AAE14: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAE1C: @@ -6550,8 +7718,8 @@ L_088AAE28: } L_088AAE3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAE44: @@ -6685,8 +7853,8 @@ L_088AAF40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAF5C: @@ -6729,15 +7897,15 @@ L_088AAF9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAFB0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8436), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AAFB8: @@ -6757,8 +7925,21 @@ L_088AAFCC: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088AAFE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 454u, 0x088AAFE4u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AAFE4u) goto L_088AAFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AAFE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6772,12 +7953,38 @@ L_088AAFEC: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x088AB000u); aot_gpr_5 = (aot_gpr_5 + static_cast(12016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 456u, 0x088AB000u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB000u) goto L_088AB000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB000: aot_gpr_31 = (0x088AB008u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 457u, 0x088AB008u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB008u) goto L_088AB008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB008: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8456), 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8452), 0u); @@ -6786,8 +7993,8 @@ L_088AB010: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB01C: @@ -6991,15 +8198,15 @@ L_088AB0F0: L_088AB198: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB1A0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8440), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB1A8: @@ -7019,8 +8226,21 @@ L_088AB1BC: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088AB1D4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 470u, 0x088AB1D4u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB1D4u) goto L_088AB1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB1D4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7034,12 +8254,38 @@ L_088AB1DC: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x088AB1F0u); aot_gpr_5 = (aot_gpr_5 + static_cast(12016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 472u, 0x088AB1F0u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB1F0u) goto L_088AB1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB1F0: aot_gpr_31 = (0x088AB1F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 473u, 0x088AB1F8u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB1F8u) goto L_088AB1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB1F8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8456), 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8452), 0u); @@ -7048,8 +8294,8 @@ L_088AB200: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB20C: @@ -7078,8 +8324,21 @@ L_088AB20C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), aot_gpr_31); aot_gpr_31 = (0x088AB278u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 476u, 0x088AB278u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB278u) goto L_088AB278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB278: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8444))); @@ -7090,31 +8349,96 @@ L_088AB278: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088AB29Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-23580)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 477u, 0x088AB29Cu, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB29Cu) goto L_088AB29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB29C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x088AB2A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 478u, 0x088AB2A8u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB2A8u) goto L_088AB2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB2A8: aot_gpr_31 = (0x088AB2B0u); ctx.gpr[19] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 479u, 0x088AB2B0u, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB2B0u) goto L_088AB2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB2B0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088AB2BCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 480u, 0x088AB2BCu, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB2BCu) goto L_088AB2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB2BC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088AB2C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 481u, 0x088AB2C8u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB2C8u) goto L_088AB2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB2C8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(2))); @@ -7139,8 +8463,21 @@ L_088AB2EC: goto L_088AB2F8; L_088AB2F8: aot_gpr_31 = (0x088AB300u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 484u, 0x088AB300u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB300u) goto L_088AB300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB300: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); goto L_088AB304; @@ -7154,8 +8491,21 @@ L_088AB308: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088AB320u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 487u, 0x088AB320u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB320u) goto L_088AB320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB320: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(4))); @@ -7209,8 +8559,8 @@ L_088AB378: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB3B0: @@ -7234,13 +8584,39 @@ L_088AB3B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088AB400u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 492u, 0x088AB400u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB400u) goto L_088AB400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB400: aot_gpr_31 = (0x088AB408u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 493u, 0x088AB408u, 0x089730ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 658u, 0x089730ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB408u) goto L_088AB408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB408: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(80), 0u); { std::uint32_t aot_run_words[3]{}; @@ -7251,8 +8627,8 @@ L_088AB408: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB420: @@ -7271,8 +8647,21 @@ L_088AB444: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(84))); aot_gpr_31 = (0x088AB450u); aot_gpr_5 = (ctx.gpr[16] + static_cast(92)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 496u, 0x088AB450u, 0x08B3E044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 493u, 0x08B3E044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB450u) goto L_088AB450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB450: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.gpr[19] = (0u + static_cast(-2)); @@ -7313,8 +8702,21 @@ L_088AB480: L_088AB490: aot_gpr_31 = (0x088AB498u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 501u, 0x088AB498u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB498u) goto L_088AB498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB498: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), ctx.gpr[18]); goto L_088AB49C; @@ -7324,27 +8726,79 @@ L_088AB49C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088AB4B0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 503u, 0x088AB4B0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB4B0u) goto L_088AB4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB4B0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(108))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(120))); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088AB4C4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 504u, 0x088AB4C4u, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB4C4u) goto L_088AB4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB4C4: aot_gpr_31 = (0x088AB4CCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 505u, 0x088AB4CCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB4CCu) goto L_088AB4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB4CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); aot_gpr_31 = (0x088AB4D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 506u, 0x088AB4D8u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB4D8u) goto L_088AB4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB4D8: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7432,8 +8886,21 @@ L_088AB558: } L_088AB560: aot_gpr_31 = (0x088AB568u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 516u, 0x088AB568u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB568u) goto L_088AB568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB568: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(124))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -7490,8 +8957,21 @@ L_088AB5B8: L_088AB5C4: aot_gpr_31 = (0x088AB5CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 524u, 0x088AB5CCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB5CCu) goto L_088AB5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB5CC: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -7503,8 +8983,8 @@ L_088AB5CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB5E8: @@ -7515,8 +8995,8 @@ L_088AB5E8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB604: @@ -7572,8 +9052,8 @@ L_088AB6B0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8448), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8444), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB6BC: @@ -7616,8 +9096,8 @@ L_088AB6FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AB710: @@ -7719,8 +9199,21 @@ L_088AB828: L_088AB830: aot_gpr_31 = (0x088AB838u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 544u, 0x088AB838u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB838u) goto L_088AB838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB838: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(130)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -7785,8 +9278,21 @@ L_088AB894: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088AB8A0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 553u, 0x088AB8A0u, 0x0885FDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 927u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 927u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 927u, 0x0885FDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB8A0u) goto L_088AB8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB8A0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7860,8 +9366,21 @@ L_088AB8EC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088AB938u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 561u, 0x088AB938u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB938u) goto L_088AB938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB938: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7897,8 +9416,21 @@ L_088AB94C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088AB998u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 564u, 0x088AB998u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AB998u) goto L_088AB998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AB998: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(130)))))); goto L_088AB99C; @@ -7968,8 +9500,8 @@ L_088AB9E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ABA2C: @@ -8007,8 +9539,21 @@ L_088ABA2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_31); aot_gpr_31 = (0x088ABAC4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 573u, 0x088ABAC4u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABAC4u) goto L_088ABAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABAC4: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_2 = (0u + static_cast(-1)); @@ -8031,8 +9576,21 @@ L_088ABAC4: ctx.gpr[11] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088ABB18u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 574u, 0x088ABB18u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABB18u) goto L_088ABB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABB18: aot_gpr_2 = (ctx.gpr[30] | 0u); { std::uint32_t aot_run_words[13]{}; @@ -8053,8 +9611,8 @@ L_088ABB18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ABB58: @@ -8117,8 +9675,21 @@ L_088ABBA0: ctx.gpr[11] = (ctx.gpr[13] | 0u); aot_gpr_31 = (0x088ABC1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 578u, 0x088ABC1Cu, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABC1Cu) goto L_088ABC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABC1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8142,8 +9713,8 @@ L_088ABC38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ABC44: @@ -8212,30 +9783,95 @@ L_088ABD24: goto L_088AB1A0; L_088ABD2C: aot_gpr_31 = (0x088ABD34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 588u, 0x088ABD34u, 0x088AC608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 49u, 0x088AC608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABD34u) goto L_088ABD34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABD34: aot_gpr_31 = (0x088ABD3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 589u, 0x088ABD3Cu, 0x0887CCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 235u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 235u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 235u, 0x0887CCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABD3Cu) goto L_088ABD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABD3C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-24904), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-24920), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24900), 0u); aot_gpr_31 = (0x088ABD50u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-24896), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 590u, 0x088ABD50u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABD50u) goto L_088ABD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABD50: aot_gpr_31 = (0x088ABD58u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-24888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 591u, 0x088ABD58u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABD58u) goto L_088ABD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABD58: aot_gpr_31 = (0x088ABD60u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 592u, 0x088ABD60u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABD60u) goto L_088ABD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABD60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24960))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8248,21 +9884,47 @@ L_088ABD6C: aot_gpr_4 = (ctx.gpr[28] + static_cast(-24848)); aot_gpr_31 = (0x088ABD78u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 594u, 0x088ABD78u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABD78u) goto L_088ABD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABD78: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24960), aot_gpr_2); goto L_088ABD7C; L_088ABD7C: aot_gpr_31 = (0x088ABD84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 596u, 0x088ABD84u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABD84u) goto L_088ABD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABD84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ABD90: @@ -8288,8 +9950,8 @@ L_088ABDB8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ABDC4: @@ -8304,8 +9966,21 @@ L_088ABDC4: } L_088ABDD8: aot_gpr_31 = (0x088ABDE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 604u, 0x088ABDE0u, 0x08A3E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 341u, 0x08A3E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABDE0u) goto L_088ABDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABDE0: aot_gpr_31 = (0x088ABDE8u); goto L_088AAF5C; @@ -8319,8 +9994,8 @@ L_088ABDF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ABE04: @@ -8333,24 +10008,89 @@ L_088ABE14: goto L_088AA904; L_088ABE1C: aot_gpr_31 = (0x088ABE24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 611u, 0x088ABE24u, 0x088ACC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 110u, 0x088ACC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABE24u) goto L_088ABE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABE24: aot_gpr_31 = (0x088ABE2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 612u, 0x088ABE2Cu, 0x088ADD94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 176u, 0x088ADD94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABE2Cu) goto L_088ABE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABE2C: aot_gpr_31 = (0x088ABE34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 613u, 0x088ABE34u, 0x088AE8E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 243u, 0x088AE8E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABE34u) goto L_088ABE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABE34: aot_gpr_31 = (0x088ABE3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 614u, 0x088ABE3Cu, 0x088AC630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 52u, 0x088AC630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABE3Cu) goto L_088ABE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABE3C: aot_gpr_31 = (0x088ABE44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 615u, 0x088ABE44u, 0x0887CD68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 242u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 242u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 242u, 0x0887CD68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABE44u) goto L_088ABE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABE44: aot_gpr_31 = (0x088ABE4Cu); goto L_088AB710; @@ -8364,14 +10104,27 @@ L_088ABE4C: } L_088ABE58: aot_gpr_31 = (0x088ABE60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 618u, 0x088ABE60u, 0x08A3E394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 365u, 0x08A3E394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABE60u) goto L_088ABE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABE60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ABE6C: @@ -8440,8 +10193,21 @@ L_088ABEE8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(28400)); aot_gpr_31 = (0x088ABEFCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 627u, 0x088ABEFCu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABEFCu) goto L_088ABEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABEFC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), 0u); @@ -8461,8 +10227,21 @@ L_088ABF04: L_088ABF14: aot_gpr_31 = (0x088ABF1Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 630u, 0x088ABF1Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABF1Cu) goto L_088ABF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABF1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_088ABF20; @@ -8474,14 +10253,40 @@ L_088ABF20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088ABF3Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 632u, 0x088ABF3Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABF3Cu) goto L_088ABF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABF3C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088ABF48u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 633u, 0x088ABF48u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABF48u) goto L_088ABF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABF48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8502,8 +10307,21 @@ L_088ABF58: L_088ABF64: aot_gpr_31 = (0x088ABF6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0041->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0041_entry, 636u, 0x088ABF6Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ABF6Cu) goto L_088ABF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ABF6C: aot_gpr_4 = (15523u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); diff --git a/profiles/vcs/generated/generated_unit_0042.cpp b/profiles/vcs/generated/generated_unit_0042.cpp index e8b08a8..888a96f 100644 --- a/profiles/vcs/generated/generated_unit_0042.cpp +++ b/profiles/vcs/generated/generated_unit_0042.cpp @@ -522,6 +522,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088AC000u; + if (local_delta_v813 >= 16356u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -604,8 +628,21 @@ L_088AC000: ctx.gpr[7] = (0u | 100u); aot_gpr_31 = (0x088AC04Cu); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 2u, 0x088AC04Cu, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC04Cu) goto L_088AC04C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC04C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -627,8 +664,21 @@ L_088AC060: ctx.gpr[17] = (ctx.gpr[17] + static_cast(28400)); aot_gpr_31 = (0x088AC074u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 5u, 0x088AC074u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC074u) goto L_088AC074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC074: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(240), 0u); @@ -648,8 +698,21 @@ L_088AC07C: L_088AC08C: aot_gpr_31 = (0x088AC094u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 8u, 0x088AC094u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC094u) goto L_088AC094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC094: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); goto L_088AC098; @@ -662,14 +725,40 @@ L_088AC098: ctx.gpr[18] = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x088AC0B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 10u, 0x088AC0B8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC0B8u) goto L_088AC0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC0B8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088AC0C4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 11u, 0x088AC0C4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC0C4u) goto L_088AC0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC0C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -690,8 +779,21 @@ L_088AC0D4: L_088AC0E0: aot_gpr_31 = (0x088AC0E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 14u, 0x088AC0E8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC0E8u) goto L_088AC0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC0E8: aot_gpr_4 = (15523u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -857,8 +959,21 @@ L_088AC0E8: ctx.gpr[7] = (0u | 100u); aot_gpr_31 = (0x088AC1C8u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 15u, 0x088AC1C8u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC1C8u) goto L_088AC1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC1C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -880,8 +995,21 @@ L_088AC1DC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(28400)); aot_gpr_31 = (0x088AC1F0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 18u, 0x088AC1F0u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC1F0u) goto L_088AC1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC1F0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(416), 0u); @@ -901,8 +1029,21 @@ L_088AC1F8: L_088AC208: aot_gpr_31 = (0x088AC210u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 21u, 0x088AC210u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC210u) goto L_088AC210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC210: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(424))); goto L_088AC214; @@ -915,14 +1056,40 @@ L_088AC214: ctx.gpr[18] = (aot_gpr_29 + static_cast(352)); aot_gpr_31 = (0x088AC234u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 23u, 0x088AC234u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC234u) goto L_088AC234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC234: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088AC240u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 24u, 0x088AC240u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC240u) goto L_088AC240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC240: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(424))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -943,8 +1110,21 @@ L_088AC250: L_088AC25C: aot_gpr_31 = (0x088AC264u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 27u, 0x088AC264u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC264u) goto L_088AC264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC264: aot_gpr_4 = (15523u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -1110,8 +1290,21 @@ L_088AC264: ctx.gpr[7] = (0u | 100u); aot_gpr_31 = (0x088AC344u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 28u, 0x088AC344u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC344u) goto L_088AC344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC344: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(624), aot_run_words); @@ -1122,8 +1315,8 @@ L_088AC344: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(640)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AC35C: @@ -1219,8 +1412,8 @@ L_088AC45C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AC47C: @@ -1305,8 +1498,21 @@ L_088AC4C0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088AC518u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 40u, 0x088AC518u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC518u) goto L_088AC518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC518: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (16179u << 16u); @@ -1398,8 +1604,8 @@ L_088AC5F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AC608: @@ -1420,8 +1626,8 @@ L_088AC614: } L_088AC628: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AC630: @@ -1464,8 +1670,8 @@ L_088AC670: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AC684: @@ -1534,8 +1740,21 @@ L_088AC718: aot_gpr_5 = (ctx.gpr[21] + static_cast(32)); aot_gpr_31 = (0x088AC72Cu); aot_gpr_5 = (ctx.gpr[20] + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 63u, 0x088AC72Cu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC72Cu) goto L_088AC72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC72C: aot_gpr_4 = (ctx.gpr[21] + static_cast(16)); aot_gpr_4 = (ctx.gpr[20] + aot_gpr_4); @@ -1574,8 +1793,8 @@ L_088AC750: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AC780: @@ -1590,14 +1809,27 @@ L_088AC780: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088AC7ACu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-31848)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 66u, 0x088AC7ACu, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AC7ACu) goto L_088AC7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AC7AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AC7B8: @@ -2304,8 +2536,21 @@ L_088ACBC8: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088ACBD4u); aot_gpr_5 = (0u | 186u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 104u, 0x088ACBD4u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ACBD4u) goto L_088ACBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ACBD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2339,14 +2584,27 @@ L_088ACC08: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088ACC14u); aot_gpr_5 = (0u | 185u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 109u, 0x088ACC14u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ACC14u) goto L_088ACC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ACC14: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ACC20: @@ -3158,8 +3416,21 @@ L_088AD008: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088AD240u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 133u, 0x088AD240u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD240u) goto L_088AD240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD240: if (ctx.gpr[2] == 0u) { aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(124), std::bit_cast(ctx.fpr[28])); @@ -3171,12 +3442,38 @@ L_088AD248: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088AD258u); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 135u, 0x088AD258u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD258u) goto L_088AD258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD258: aot_gpr_31 = (0x088AD260u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 136u, 0x088AD260u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD260u) goto L_088AD260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD260: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(124), std::bit_cast(ctx.fpr[28])); goto L_088AD264; @@ -3261,8 +3558,21 @@ L_088AD264: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088AD3B8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 138u, 0x088AD3B8u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD3B8u) goto L_088AD3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD3B8: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); @@ -3274,12 +3584,38 @@ L_088AD3C0: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088AD3D0u); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 140u, 0x088AD3D0u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD3D0u) goto L_088AD3D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD3D0: aot_gpr_31 = (0x088AD3D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 141u, 0x088AD3D8u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD3D8u) goto L_088AD3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD3D8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); goto L_088AD3DC; @@ -3332,8 +3668,21 @@ L_088AD3DC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088AD4ACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 143u, 0x088AD4ACu, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD4ACu) goto L_088AD4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD4AC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3346,12 +3695,38 @@ L_088AD4B4: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088AD4C4u); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 145u, 0x088AD4C4u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD4C4u) goto L_088AD4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD4C4: aot_gpr_31 = (0x088AD4CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 146u, 0x088AD4CCu, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD4CCu) goto L_088AD4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD4CC: ctx.gpr[30] = (ctx.gpr[30] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(48)); @@ -3406,8 +3781,8 @@ L_088AD514: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AD55C: @@ -3450,8 +3825,21 @@ L_088AD5D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088AD614u); aot_gpr_6 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 154u, 0x088AD614u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AD614u) goto L_088AD614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AD614: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(56), static_cast(aot_gpr_4)); @@ -4290,19 +4678,58 @@ L_088AD78C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088ADB0Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 168u, 0x088ADB0Cu, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADB0Cu) goto L_088ADB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ADB0C: aot_gpr_4 = (0u | 3u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088ADB1Cu); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 169u, 0x088ADB1Cu, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADB1Cu) goto L_088ADB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ADB1C: aot_gpr_31 = (0x088ADB24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 170u, 0x088ADB24u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADB24u) goto L_088ADB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ADB24: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24936))); aot_gpr_31 = (0x088ADB30u); @@ -4331,8 +4758,21 @@ L_088ADB30: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088ADB58u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 172u, 0x088ADB58u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADB58u) goto L_088ADB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ADB58: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4659,19 +5099,58 @@ L_088ADB58: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088ADD3Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 173u, 0x088ADD3Cu, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADD3Cu) goto L_088ADD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ADD3C: aot_gpr_4 = (0u | 3u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088ADD4Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 174u, 0x088ADD4Cu, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADD4Cu) goto L_088ADD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ADD4C: aot_gpr_31 = (0x088ADD54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 175u, 0x088ADD54u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADD54u) goto L_088ADD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ADD54: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1052), aot_run_words); @@ -4692,8 +5171,8 @@ L_088ADD54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1120)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ADD94: @@ -4847,8 +5326,21 @@ L_088ADF78: } L_088ADF88: aot_gpr_31 = (0x088ADF90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 187u, 0x088ADF90u, 0x088AAFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 452u, 0x088AAFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADF90u) goto L_088ADF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ADF90: aot_gpr_31 = (0x088ADF98u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ADF98u) goto L_088ADF98; @@ -4878,8 +5370,8 @@ L_088ADFCC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-22536))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ADFE4: @@ -5046,8 +5538,8 @@ L_088AE10C: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-22488))); jump_target = ctx.gpr[1]; ctx.gpr[10] = (ctx.gpr[10] & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AE134: @@ -5661,8 +6153,21 @@ L_088AE870: } L_088AE888: aot_gpr_31 = (0x088AE890u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 240u, 0x088AE890u, 0x088AAFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 452u, 0x088AAFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AE890u) goto L_088AE890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AE890: aot_gpr_4 = (0u | 10u); aot_gpr_31 = (0x088AE89Cu); @@ -5694,8 +6199,8 @@ L_088AE8A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AE8E8: @@ -5779,8 +6284,21 @@ L_088AE9A4: } L_088AE9B4: aot_gpr_31 = (0x088AE9BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 253u, 0x088AE9BCu, 0x088AB1A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 468u, 0x088AB1A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AE9BCu) goto L_088AE9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AE9BC: ctx.gpr[17] = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(101))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(102))); @@ -5835,8 +6353,21 @@ L_088AE9F8: } L_088AEA0C: aot_gpr_31 = (0x088AEA14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 260u, 0x088AEA14u, 0x088AB1A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 468u, 0x088AB1A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AEA14u) goto L_088AEA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AEA14: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5016))); aot_gpr_4 = (0u | 1u); @@ -6018,8 +6549,21 @@ L_088AEC9C: } L_088AECAC: aot_gpr_31 = (0x088AECB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 265u, 0x088AECB4u, 0x088AB1A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 468u, 0x088AB1A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AECB4u) goto L_088AECB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AECB4: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x088AECC0u); @@ -6205,8 +6749,21 @@ L_088AEF3C: } L_088AEF54: aot_gpr_31 = (0x088AEF5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 271u, 0x088AEF5Cu, 0x088AB1A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 468u, 0x088AB1A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AEF5Cu) goto L_088AEF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AEF5C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8440), 0u); aot_gpr_4 = (0u | 10u); @@ -6248,8 +6805,8 @@ L_088AEF90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088AEFC0: @@ -6282,8 +6839,21 @@ L_088AEFC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(736), aot_gpr_4); aot_gpr_31 = (0x088AF06Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 277u, 0x088AF06Cu, 0x08960450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF06Cu) goto L_088AF06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF06C: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6977,8 +7547,21 @@ L_088AF548: aot_fpr_12 = aot_fpr_12 / aot_fpr_15; aot_gpr_31 = (0x088AF590u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 347u, 0x088AF590u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF590u) goto L_088AF590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF590: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(48), std::bit_cast(aot_fpr_12)); @@ -7006,8 +7589,21 @@ L_088AF5B8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088AF5CCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 351u, 0x088AF5CCu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF5CCu) goto L_088AF5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF5CC: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[26])}; aot_mem.aot_direct_store32_block(ctx.gpr[19] + static_cast(48), aot_run_words); } @@ -7162,14 +7758,40 @@ L_088AF62C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088AF718u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 354u, 0x088AF718u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF718u) goto L_088AF718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF718: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088AF724u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 355u, 0x088AF724u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF724u) goto L_088AF724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF724: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7190,8 +7812,21 @@ L_088AF734: L_088AF740: aot_gpr_31 = (0x088AF748u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 358u, 0x088AF748u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF748u) goto L_088AF748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF748: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); goto L_088AF74C; @@ -7267,8 +7902,21 @@ L_088AF7B4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088AF7C8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 368u, 0x088AF7C8u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF7C8u) goto L_088AF7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF7C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7280,8 +7928,21 @@ L_088AF7D0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088AF7DCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 370u, 0x088AF7DCu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF7DCu) goto L_088AF7DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF7DC: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[26])}; aot_mem.aot_direct_store32_block(ctx.gpr[19] + static_cast(48), aot_run_words); } @@ -7355,8 +8016,21 @@ L_088AF7F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088AF844u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 372u, 0x088AF844u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF844u) goto L_088AF844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF844: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7629,8 +8303,21 @@ L_088AF94C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088AF990u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 379u, 0x088AF990u, 0x088AA3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 308u, 0x088AA3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AF990u) goto L_088AF990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AF990: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7698,14 +8385,40 @@ L_088AF9BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088AFA40u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 381u, 0x088AFA40u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFA40u) goto L_088AFA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFA40: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088AFA4Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 382u, 0x088AFA4Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFA4Cu) goto L_088AFA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFA4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(296))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7726,8 +8439,21 @@ L_088AFA5C: L_088AFA68: aot_gpr_31 = (0x088AFA70u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 385u, 0x088AFA70u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFA70u) goto L_088AFA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFA70: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); goto L_088AFA74; @@ -7783,8 +8509,21 @@ L_088AFAB8: L_088AFAF8: aot_gpr_31 = (0x088AFB00u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 392u, 0x088AFB00u, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFB00u) goto L_088AFB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFB00: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(130)))))); @@ -7803,8 +8542,21 @@ L_088AFB08: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x088AFB28u); aot_fpr_14 = aot_fpr_14 + aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 394u, 0x088AFB28u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFB28u) goto L_088AFB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFB28: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[26])) && aot_fpr_12 == ctx.fpr[26])) ? 0x00800000u : 0u); @@ -7858,8 +8610,21 @@ L_088AFB88: L_088AFB9C: aot_gpr_31 = (0x088AFBA4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 400u, 0x088AFBA4u, 0x088AB3B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 491u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 491u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 491u, 0x088AB3B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFBA4u) goto L_088AFBA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFBA4: ctx.gpr[7] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(741))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -7874,8 +8639,21 @@ L_088AFBA4: ctx.gpr[9] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088AFBD8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 401u, 0x088AFBD8u, 0x088AB20Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 475u, 0x088AB20Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFBD8u) goto L_088AFBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFBD8: if (ctx.gpr[21] == ctx.gpr[20]) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -7920,8 +8698,21 @@ L_088AFBF4: L_088AFC30: aot_gpr_31 = (0x088AFC38u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 407u, 0x088AFC38u, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFC38u) goto L_088AFC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFC38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7941,8 +8732,21 @@ L_088AFC40: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x088AFC60u); aot_fpr_14 = aot_fpr_14 + aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 409u, 0x088AFC60u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFC60u) goto L_088AFC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFC60: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[26])) && aot_fpr_12 == ctx.fpr[26])) ? 0x00800000u : 0u); @@ -8005,8 +8809,21 @@ L_088AFCC8: } aot_gpr_31 = (0x088AFCDCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 417u, 0x088AFCDCu, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFCDCu) goto L_088AFCDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFCDC: { const bool branch_taken = ctx.gpr[21] != ctx.gpr[17]; if (branch_taken) { @@ -8020,8 +8837,21 @@ L_088AFCE4: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088AFCF8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 419u, 0x088AFCF8u, 0x0885FB5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 924u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 924u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 924u, 0x0885FB5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFCF8u) goto L_088AFCF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFCF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(48), std::bit_cast(aot_fpr_12)); @@ -8152,8 +8982,21 @@ L_088AFDE8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088AFDFCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 434u, 0x088AFDFCu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFDFCu) goto L_088AFDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFDFC: { const std::uint32_t aot_run_words[4]{std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[20])}; aot_mem.aot_direct_store32_block(ctx.gpr[19] + static_cast(48), aot_run_words); } @@ -8228,8 +9071,21 @@ L_088AFE14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088AFE68u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0042->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0042_entry, 437u, 0x088AFE68u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088AFE68u) goto L_088AFE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088AFE68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0043.cpp b/profiles/vcs/generated/generated_unit_0043.cpp index b41ec1c..7a545e4 100644 --- a/profiles/vcs/generated/generated_unit_0043.cpp +++ b/profiles/vcs/generated/generated_unit_0043.cpp @@ -33,6 +33,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0043[64] = { 274u, 281u, 292u, 301u, 309u, 318u, 327u, 335u, 344u, 355u, 359u, 364u, 367u, 371u, 373u, 377u, 380u, 386u, 393u, 401u, 409u, 417u, 424u, 429u, 435u, 441u, 451u, 463u, 475u, 485u, 494u, 501u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0043[4096] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 3u, 0u, 0u, 0u, + 4u, 0u, 0u, 5u, 0u, 6u, 7u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 14u, 0u, 15u, 0u, 16u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 17u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 21u, 22u, 0u, 0u, 0u, 0u, 0u, 0u, 23u, 0u, 0u, 24u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 27u, 0u, 0u, 28u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 30u, 0u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 38u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 43u, 0u, 0u, 0u, 44u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, + 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 0u, 0u, 53u, + 0u, 0u, 54u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 56u, 0u, 57u, + 0u, 0u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 59u, 0u, 60u, 0u, 61u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 0u, 64u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 67u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 72u, 0u, 0u, 73u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 0u, 79u, 0u, 80u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 84u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 87u, 0u, 88u, 0u, 89u, 0u, 0u, 90u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 92u, 0u, 0u, 93u, 0u, 94u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 97u, 0u, 0u, 0u, + 0u, 0u, 0u, 98u, 0u, 99u, 100u, 0u, 101u, 0u, 102u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 104u, 0u, 105u, 0u, 106u, 0u, 107u, 0u, 0u, 108u, 0u, 109u, 0u, 0u, 110u, 0u, 0u, 0u, 111u, 0u, 112u, 0u, 113u, 0u, 0u, 114u, 0u, 0u, 0u, 115u, 0u, 116u, + 0u, 0u, 0u, 117u, 0u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 0u, 119u, 0u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 122u, + 0u, 0u, 0u, 0u, 123u, 0u, 0u, 0u, 0u, 0u, 0u, 124u, 0u, 0u, 125u, 126u, 0u, 127u, 0u, 0u, 0u, 0u, 128u, 0u, 129u, 0u, 130u, 0u, 131u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 134u, 0u, 135u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 136u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 137u, 0u, 138u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 139u, 0u, 0u, 140u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 141u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, 143u, 0u, 144u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 147u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 148u, 0u, 0u, 149u, + 0u, 0u, 150u, 0u, 151u, 0u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 153u, 0u, 154u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 155u, + 0u, 0u, 156u, 0u, 0u, 157u, 0u, 158u, 0u, 0u, 159u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 160u, 161u, 0u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 164u, 165u, 0u, 166u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 167u, 0u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 0u, 0u, 170u, 0u, 0u, 0u, 0u, 0u, 0u, 171u, 0u, 172u, 0u, 173u, 0u, + 174u, 0u, 0u, 0u, 0u, 175u, 0u, 176u, 177u, 0u, 178u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 181u, 0u, 182u, + 0u, 0u, 0u, 0u, 183u, 0u, 184u, 185u, 0u, 186u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 188u, 0u, 189u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 191u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 192u, 0u, 193u, 194u, 0u, 195u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 196u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 0u, 199u, 0u, 200u, 0u, 201u, 0u, 202u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, + 204u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, 0u, 210u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 213u, 0u, 0u, 0u, + 0u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 215u, 216u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 218u, 0u, 219u, 0u, 220u, 0u, 0u, 0u, + 0u, 0u, 221u, 222u, 0u, 223u, 224u, 0u, 0u, 0u, 0u, 0u, 0u, 225u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 228u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 229u, 0u, 230u, 0u, 231u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 233u, 0u, 234u, 0u, 235u, 0u, 236u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 239u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 240u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 241u, 0u, 0u, 0u, 0u, 0u, 242u, 0u, 243u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, 0u, 247u, 0u, 248u, 0u, 249u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 253u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, + 256u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 0u, 0u, 0u, 259u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 261u, 0u, 0u, 0u, 0u, 0u, 262u, 0u, 263u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 265u, 0u, 0u, 0u, 0u, 0u, 266u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 268u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 0u, 0u, 0u, 271u, 0u, 272u, 0u, 273u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 0u, 0u, 0u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 279u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, + 0u, 0u, 281u, 0u, 282u, 0u, 283u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 284u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 285u, 0u, 0u, 0u, 0u, 0u, 286u, 0u, 287u, 0u, + 288u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 291u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 295u, 0u, 0u, 0u, 0u, 0u, 296u, 0u, 297u, 0u, 298u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 306u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 0u, 0u, + 309u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 312u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 315u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 318u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, 320u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 323u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, 0u, 329u, 0u, 330u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 338u, 0u, 339u, 0u, 340u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, 0u, 345u, 0u, 346u, + 0u, 0u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 348u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 0u, 0u, 351u, 0u, 352u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 354u, + 0u, 0u, 0u, 0u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 358u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 359u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 361u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, + 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 371u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 374u, 0u, 375u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 377u, 378u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 379u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 380u, 381u, 0u, 382u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 0u, 385u, 0u, 0u, + 0u, 0u, 386u, 0u, 0u, 0u, 0u, 387u, 0u, 0u, 0u, 388u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 390u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, 0u, 0u, + 393u, 0u, 0u, 0u, 0u, 394u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 397u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 398u, 0u, 0u, 0u, 0u, 399u, 0u, 0u, 0u, 0u, 400u, 0u, 0u, 0u, + 0u, 401u, 0u, 0u, 0u, 402u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 405u, 0u, 0u, 0u, 0u, 406u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 408u, + 0u, 0u, 0u, 409u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 412u, 0u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 0u, 414u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 416u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 422u, 0u, 0u, 0u, 423u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 426u, 427u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 430u, + 0u, 431u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 434u, 0u, 0u, 0u, + 435u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 439u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 440u, + 0u, 0u, 0u, 441u, 0u, 442u, 0u, 0u, 0u, 0u, 443u, 0u, 444u, 0u, 445u, 0u, 0u, 0u, 0u, 446u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, + 0u, 0u, 451u, 0u, 452u, 0u, 0u, 0u, 0u, 453u, 0u, 454u, 0u, 455u, 0u, 0u, 456u, 0u, 0u, 0u, 457u, 0u, 0u, 0u, 0u, 458u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 459u, 0u, 460u, 0u, 0u, 0u, 0u, 461u, 0u, 462u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 463u, 0u, 464u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 0u, 466u, 0u, 467u, 0u, + 0u, 0u, 0u, 468u, 0u, 469u, 0u, 470u, 0u, 0u, 0u, 0u, 471u, 0u, 472u, 0u, 0u, 0u, 0u, 473u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 476u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 477u, 0u, + 0u, 0u, 0u, 478u, 0u, 479u, 0u, 0u, 0u, 0u, 480u, 0u, 481u, 0u, 482u, 483u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 485u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, + 0u, 488u, 0u, 0u, 0u, 0u, 0u, 0u, 489u, 0u, 0u, 490u, 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 0u, 492u, 0u, 493u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 494u, 0u, 495u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 496u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 0u, 0u, 498u, 0u, 0u, 0u, 0u, 499u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 502u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, 0u, 0u, + 0u, 504u, 0u, 0u, 0u, 0u, 505u, 0u, 0u, 506u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 0u, 508u, 509u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 510u, +}; + void recomp_unit_0043_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,29,5,6,31,2 fprs=12,13,14,16 gpr_occ=2606 fpr_occ=1379 gpr_total=4000 fpr_total=1870 @@ -59,18 +193,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x088B0000u; - entry_id = 0u; - if (entry_delta < 16384u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0043[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0043[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16384u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0043[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_088B0000; @@ -589,6 +713,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088B0000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -628,14 +776,40 @@ L_088B0000: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088B0064u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 2u, 0x088B0064u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B0064u) goto L_088B0064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B0064: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B0070u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 3u, 0x088B0070u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B0070u) goto L_088B0070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B0070: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(488))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -656,8 +830,21 @@ L_088B0080: L_088B008C: aot_gpr_31 = (0x088B0094u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(480))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 6u, 0x088B0094u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B0094u) goto L_088B0094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B0094: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); goto L_088B0098; @@ -758,8 +945,21 @@ L_088B0164: L_088B016C: aot_gpr_31 = (0x088B0174u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 16u, 0x088B0174u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B0174u) goto L_088B0174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B0174: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(130)))))); aot_gpr_5 = (0u + static_cast(-5)); @@ -793,8 +993,8 @@ L_088B019C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(812))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(816)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B01E4: @@ -882,8 +1082,21 @@ L_088B02B4: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088B02DCu); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 26u, 0x088B02DCu, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B02DCu) goto L_088B02DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B02DC: aot_gpr_4 = (0u | 8u); aot_gpr_31 = (0x088B02E8u); @@ -925,8 +1138,21 @@ L_088B0330: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088B0358u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 30u, 0x088B0358u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B0358u) goto L_088B0358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B0358: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(4)); @@ -1005,8 +1231,21 @@ L_088B040C: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088B0434u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 37u, 0x088B0434u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B0434u) goto L_088B0434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B0434: ctx.gpr[18] = (0u | 0u); ctx.gpr[17] = (aot_gpr_29 + static_cast(8)); @@ -1058,8 +1297,21 @@ L_088B04BC: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088B04CCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 43u, 0x088B04CCu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B04CCu) goto L_088B04CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B04CC: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 200 ? 1u : 0u); @@ -1278,8 +1530,21 @@ L_088B0710: L_088B0724: aot_gpr_31 = (0x088B072Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 60u, 0x088B072Cu, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B072Cu) goto L_088B072C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B072C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1342,8 +1607,21 @@ L_088B07A8: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x088B07D0u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 66u, 0x088B07D0u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B07D0u) goto L_088B07D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B07D0: aot_gpr_4 = (0u | 8u); aot_gpr_31 = (0x088B07DCu); @@ -1369,8 +1647,8 @@ L_088B07E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0818: @@ -1383,8 +1661,21 @@ L_088B0818: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088B083Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-21256)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 70u, 0x088B083Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B083Cu) goto L_088B083C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B083C: aot_gpr_4 = (2246u << 16u); ctx.gpr[7] = (2187u << 16u); @@ -1393,8 +1684,21 @@ L_088B083C: aot_gpr_4 = (aot_gpr_4 + static_cast(11888)); aot_gpr_31 = (0x088B0858u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-18968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 71u, 0x088B0858u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B0858u) goto L_088B0858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B0858: aot_gpr_31 = (0x088B0860u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-24784)); @@ -1404,8 +1708,8 @@ L_088B0860: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B086C: @@ -1461,8 +1765,8 @@ L_088B086C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0894: @@ -1490,8 +1794,8 @@ L_088B0894: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B08AC: @@ -1856,8 +2160,8 @@ L_088B0BA8: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0BD0: @@ -2083,8 +2387,8 @@ L_088B0D38: goto L_088B0D3C; L_088B0D3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0D44: @@ -2153,15 +2457,15 @@ L_088B0D90: L_088B0DC4: jump_target = aot_gpr_31; aot_gpr_2 = (0u + static_cast(1)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0DCC: jump_target = aot_gpr_31; aot_gpr_2 = (0u + 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0DD4: @@ -2222,8 +2526,8 @@ L_088B0E00: } L_088B0E2C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0E34: @@ -2307,8 +2611,8 @@ L_088B0ED4: aot_gpr_2 = (ctx.gpr[10] | 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0EE0: @@ -2412,8 +2716,8 @@ L_088B0F90: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B0FA4: @@ -2491,8 +2795,8 @@ L_088B1014: L_088B101C: aot_gpr_2 = (ctx.gpr[11] | 0u); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1028: @@ -2697,8 +3001,8 @@ L_088B11D4: L_088B11D8: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B11E0: @@ -2801,8 +3105,8 @@ L_088B129C: goto L_088B12A0; L_088B12A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B12A8: @@ -3027,8 +3331,8 @@ L_088B1418: L_088B141C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1424: @@ -3275,8 +3579,8 @@ L_088B1548: L_088B154C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1554: @@ -3610,8 +3914,8 @@ L_088B1664: L_088B1778: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1780: @@ -3696,8 +4000,8 @@ L_088B180C: aot_gpr_2 = (aot_gpr_4 & 16u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1820: @@ -3830,8 +4134,8 @@ L_088B18D8: aot_gpr_2 = (aot_gpr_4 & 16u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B18EC: @@ -3856,8 +4160,21 @@ L_088B18EC: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088B1940u); ctx.gpr[8] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 211u, 0x088B1940u, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B1940u) goto L_088B1940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B1940: ctx.gpr[20] = (aot_gpr_29 + static_cast(48)); ctx.gpr[19] = (aot_gpr_29 + static_cast(64)); @@ -3939,8 +4256,8 @@ L_088B1A08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1A34: @@ -3977,8 +4294,21 @@ L_088B1A70: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088B1A88u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0043->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0043_entry, 221u, 0x088B1A88u, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B1A88u) goto L_088B1A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B1A88: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(48), static_cast(ctx.gpr[19])); goto L_088B1A8C; @@ -4001,8 +4331,8 @@ L_088B1A98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1AB4: @@ -4103,8 +4433,8 @@ L_088B1B5C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1B74: @@ -4232,15 +4562,15 @@ L_088B1C2C: aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(0), ctx.vfpu_scalar_bits_ct<24u>()); jump_target = aot_gpr_31; aot_gpr_2 = (0u + static_cast(1)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1C40: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B1C50: @@ -6530,8 +6860,8 @@ L_088B2F7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(992))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1008)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B2FA8: @@ -6597,8 +6927,8 @@ L_088B3054: goto L_088B3058; L_088B3058: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B3060: @@ -7314,8 +7644,8 @@ L_088B36C4: L_088B36C8: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B36D0: @@ -7434,15 +7764,15 @@ L_088B378C: L_088B37E8: jump_target = aot_gpr_31; aot_gpr_2 = (0u + static_cast(1)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B37F0: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B3800: @@ -8012,8 +8342,8 @@ L_088B3CBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B3CEC: diff --git a/profiles/vcs/generated/generated_unit_0044.cpp b/profiles/vcs/generated/generated_unit_0044.cpp index 764fdf2..719045e 100644 --- a/profiles/vcs/generated/generated_unit_0044.cpp +++ b/profiles/vcs/generated/generated_unit_0044.cpp @@ -801,6 +801,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088B4004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -903,8 +927,21 @@ L_088B40C4: ctx.gpr[7] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B40E0u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 7u, 0x088B40E0u, 0x088B18ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 210u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 210u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 210u, 0x088B18ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B40E0u) goto L_088B40E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B40E0: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(14)))))); @@ -1027,8 +1064,21 @@ L_088B41D8: ctx.gpr[7] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B41F4u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 17u, 0x088B41F4u, 0x088B18ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 210u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 210u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 210u, 0x088B18ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B41F4u) goto L_088B41F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B41F4: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(50))); @@ -1080,8 +1130,8 @@ L_088B4238: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B426C: @@ -1222,8 +1272,21 @@ L_088B43A0: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088B43C4u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 34u, 0x088B43C4u, 0x088B3060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 382u, 0x088B3060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B43C4u) goto L_088B43C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B43C4: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(48))); @@ -1355,8 +1418,21 @@ L_088B44A8: ctx.gpr[7] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088B44D0u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 45u, 0x088B44D0u, 0x088B1A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 217u, 0x088B1A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B44D0u) goto L_088B44D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B44D0: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(14)))))); @@ -1435,8 +1511,21 @@ L_088B4550: ctx.gpr[7] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088B4578u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 53u, 0x088B4578u, 0x088B1A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 217u, 0x088B1A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B4578u) goto L_088B4578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B4578: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(50))); @@ -1473,8 +1562,21 @@ L_088B45A8: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B45D8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 57u, 0x088B45D8u, 0x088B086Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 73u, 0x088B086Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B45D8u) goto L_088B45D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B45D8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -1611,8 +1713,21 @@ L_088B4670: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B46BCu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 60u, 0x088B46BCu, 0x088B086Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 73u, 0x088B086Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B46BCu) goto L_088B46BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B46BC: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1631,8 +1746,21 @@ L_088B46BC: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B46D4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 61u, 0x088B46D4u, 0x088B086Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 73u, 0x088B086Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B46D4u) goto L_088B46D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B46D4: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1651,8 +1779,21 @@ L_088B46D4: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B46ECu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 62u, 0x088B46ECu, 0x088B086Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 73u, 0x088B086Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B46ECu) goto L_088B46EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B46EC: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1694,8 +1835,8 @@ L_088B4708: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(156))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B4738: @@ -1907,8 +2048,21 @@ L_088B4830: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088B483Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 71u, 0x088B483Cu, 0x088B0E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 138u, 0x088B0E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B483Cu) goto L_088B483C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B483C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[30] + static_cast(53))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(276), ctx.gpr[2]); @@ -1924,21 +2078,60 @@ L_088B4850: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(288), ctx.gpr[18]); aot_gpr_31 = (0x088B485Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 73u, 0x088B485Cu, 0x088B0DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 135u, 0x088B0DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B485Cu) goto L_088B485C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B485C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(276))); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B486Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 74u, 0x088B486Cu, 0x088B0EE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 145u, 0x088B0EE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B486Cu) goto L_088B486C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B486C: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088B4878u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 75u, 0x088B4878u, 0x088B0FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 152u, 0x088B0FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B4878u) goto L_088B4878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B4878: ctx.gpr[30] = (ctx.gpr[2] | 0u); aot_gpr_16 = (2235u << 16u); @@ -2030,8 +2223,21 @@ L_088B48F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x088B4948u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 84u, 0x088B4948u, 0x088B08ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 75u, 0x088B08ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B4948u) goto L_088B4948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B4948: aot_gpr_4 = (ctx.gpr[30] | ctx.gpr[19]); aot_gpr_4 = (aot_gpr_4 | ctx.gpr[2]); @@ -2191,8 +2397,21 @@ L_088B4B1C: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B4B3Cu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 93u, 0x088B4B3Cu, 0x088B1028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 159u, 0x088B1028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B4B3Cu) goto L_088B4B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B4B3C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2237,8 +2456,21 @@ L_088B4B70: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B4B98u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 99u, 0x088B4B98u, 0x088B1C50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 239u, 0x088B1C50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B4B98u) goto L_088B4B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B4B98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2341,8 +2573,21 @@ L_088B4C54: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088B4C7Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 110u, 0x088B4C7Cu, 0x088B086Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 73u, 0x088B086Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B4C7Cu) goto L_088B4C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B4C7C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2551,8 +2796,21 @@ L_088B4E0C: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B4E34u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 126u, 0x088B4E34u, 0x088B3060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 382u, 0x088B3060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B4E34u) goto L_088B4E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B4E34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2632,8 +2890,21 @@ L_088B4EBC: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088B4EE4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 135u, 0x088B4EE4u, 0x088B086Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 73u, 0x088B086Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B4EE4u) goto L_088B4EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B4EE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2729,8 +3000,8 @@ L_088B4F74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B4FA8: @@ -2753,8 +3024,8 @@ L_088B4FD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B4FE0: @@ -2893,8 +3164,8 @@ L_088B50B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(640))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(656)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B50E4: @@ -3060,8 +3331,8 @@ L_088B5204: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(644))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(656)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5234: @@ -3152,8 +3423,8 @@ L_088B52F8: } L_088B5308: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5310: @@ -3236,8 +3507,8 @@ L_088B53AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B53C4: @@ -3345,15 +3616,15 @@ L_088B5470: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5488: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24768))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5490: @@ -3388,8 +3659,8 @@ L_088B54CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B54E4: @@ -3443,8 +3714,8 @@ L_088B5548: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5564: @@ -3498,8 +3769,8 @@ L_088B55C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B55E4: @@ -3611,8 +3882,8 @@ L_088B5734: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-22408))); jump_target = ctx.gpr[1]; aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B574C: @@ -3888,8 +4159,8 @@ L_088B59C0: aot_gpr_4 = (aot_gpr_5 >> 15u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] ^ aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5A54: @@ -3897,8 +4168,8 @@ L_088B5A54: aot_gpr_5 = (aot_gpr_5 | 8u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(8), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5A64: @@ -3950,8 +4221,21 @@ L_088B5AB4: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x088B5AF0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 257u, 0x088B5AF0u, 0x08888928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 195u, 0x08888928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B5AF0u) goto L_088B5AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B5AF0: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -3991,8 +4275,21 @@ L_088B5B24: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B5B30u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 264u, 0x088B5B30u, 0x08888934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 196u, 0x08888934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B5B30u) goto L_088B5B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B5B30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5576))); goto L_088B5B34; @@ -4006,8 +4303,21 @@ L_088B5B34: L_088B5B3C: aot_gpr_31 = (0x088B5B44u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0211. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 267u, 0x088B5B44u, 0x08B50A54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0211_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0211_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0211_entry, 211u, 158u, 0x08B50A54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B5B44u) goto L_088B5B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B5B44: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(8)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -4073,8 +4383,8 @@ L_088B5BA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5BCC: @@ -4086,16 +4396,16 @@ L_088B5BCC: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(8), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5BEC: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(8)))))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] & 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5BF8: @@ -4278,8 +4588,8 @@ L_088B5D34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5D90: @@ -4349,8 +4659,8 @@ L_088B5E0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B5E1C: @@ -4407,8 +4717,21 @@ L_088B5E88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x088B5EA0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 313u, 0x088B5EA0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B5EA0u) goto L_088B5EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B5EA0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -4619,8 +4942,8 @@ L_088B5FF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6020: @@ -4682,8 +5005,21 @@ L_088B60A4: aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_31 = (0x088B60B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 346u, 0x088B60B8u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B60B8u) goto L_088B60B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B60B8: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] != 0u; @@ -4952,8 +5288,8 @@ L_088B6258: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B62A4: @@ -5102,8 +5438,21 @@ L_088B63E8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(660))); aot_gpr_31 = (0x088B63F8u); aot_gpr_4 = (aot_gpr_4 + static_cast(348)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 398u, 0x088B63F8u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B63F8u) goto L_088B63F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B63F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5322,8 +5671,8 @@ L_088B6574: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(712))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B65A4: @@ -5387,8 +5736,8 @@ L_088B6610: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6620: @@ -5408,8 +5757,21 @@ L_088B6644: aot_gpr_4 = (aot_gpr_16 + ctx.gpr[2]); aot_gpr_31 = (0x088B6650u); aot_gpr_5 = (0u | 47u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 437u, 0x088B6650u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B6650u) goto L_088B6650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B6650: aot_gpr_31 = (0x088B6658u); aot_gpr_4 = (ctx.gpr[2] + static_cast(1)); @@ -5421,8 +5783,8 @@ L_088B6658: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B666C: @@ -5437,8 +5799,8 @@ L_088B666C: aot_gpr_4 = (aot_gpr_4 << 2u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6698: @@ -5483,8 +5845,21 @@ L_088B66E4: aot_gpr_4 = (aot_gpr_16 + ctx.gpr[2]); aot_gpr_31 = (0x088B66F0u); aot_gpr_5 = (0u | 47u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 446u, 0x088B66F0u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B66F0u) goto L_088B66F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B66F0: aot_gpr_16 = (ctx.gpr[2] + static_cast(1)); aot_gpr_31 = (0x088B66FCu); @@ -5644,8 +6019,21 @@ L_088B6800: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088B680Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 465u, 0x088B680Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B680Cu) goto L_088B680C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B680C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5669,14 +6057,40 @@ L_088B6824: L_088B682C: aot_gpr_31 = (0x088B6834u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 470u, 0x088B6834u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B6834u) goto L_088B6834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B6834: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B6840u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 471u, 0x088B6840u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B6840u) goto L_088B6840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B6840: ctx.gpr[2] = (ctx.gpr[19] | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5686,8 +6100,8 @@ L_088B6840: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6860: @@ -5764,8 +6178,8 @@ L_088B68E8: goto L_088B68EC; L_088B68EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B68F4: @@ -5789,15 +6203,15 @@ L_088B6930: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B693C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6944: @@ -5845,8 +6259,8 @@ L_088B698C: goto L_088B6990; L_088B6990: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6998: @@ -5944,8 +6358,8 @@ L_088B6A64: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6A70: @@ -6044,8 +6458,8 @@ L_088B6B38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6B44: @@ -6074,8 +6488,21 @@ L_088B6B44: aot_gpr_5 = (ctx.lo); aot_gpr_31 = (0x088B6BA8u); aot_gpr_4 = (ctx.gpr[18] + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 513u, 0x088B6BA8u, 0x08B685A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 96u, 0x08B685A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B6BA8u) goto L_088B6BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B6BA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); @@ -6253,8 +6680,21 @@ L_088B6D24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_5); aot_gpr_31 = (0x088B6D38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 534u, 0x088B6D38u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B6D38u) goto L_088B6D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B6D38: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -6299,8 +6739,21 @@ L_088B6D70: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B6D88u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 540u, 0x088B6D88u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B6D88u) goto L_088B6D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B6D88: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[30]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -6435,8 +6888,8 @@ L_088B6EA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6ED4: @@ -6482,8 +6935,8 @@ L_088B6F18: } L_088B6F28: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6F30: @@ -6523,8 +6976,8 @@ L_088B6F74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B6F88: @@ -6573,8 +7026,8 @@ L_088B7004: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7034: @@ -6601,15 +7054,28 @@ L_088B705C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088B706Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 572u, 0x088B706Cu, 0x08888934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 196u, 0x08888934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B706Cu) goto L_088B706C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B706C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B707C: @@ -6637,8 +7103,21 @@ L_088B707C: aot_gpr_5 = (ctx.lo); aot_gpr_31 = (0x088B70DCu); aot_gpr_4 = (aot_gpr_16 + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 574u, 0x088B70DCu, 0x08B685A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 96u, 0x08B685A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B70DCu) goto L_088B70DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B70DC: ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -6738,8 +7217,21 @@ L_088B7194: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x088B71A8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 585u, 0x088B71A8u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B71A8u) goto L_088B71A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B71A8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -6783,8 +7275,21 @@ L_088B71E0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B71F4u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 591u, 0x088B71F4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B71F4u) goto L_088B71F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B71F4: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[30]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -6872,8 +7377,8 @@ L_088B7288: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B72B8: @@ -6917,8 +7422,8 @@ L_088B72FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7308: @@ -6927,8 +7432,8 @@ L_088B7308: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B731C: @@ -7020,8 +7525,8 @@ L_088B73D4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8544), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B73EC: @@ -7089,8 +7594,8 @@ L_088B74A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B74AC: @@ -7107,8 +7612,21 @@ L_088B74AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x088B74E0u); aot_gpr_4 = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 625u, 0x088B74E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B74E0u) goto L_088B74E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B74E0: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[17] = (0u | 1u); @@ -7123,8 +7641,21 @@ L_088B74F0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088B74FCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 627u, 0x088B74FCu, 0x08944D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 95u, 0x08944D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B74FCu) goto L_088B74FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B74FC: aot_gpr_16 = (ctx.gpr[18] | 0u); goto L_088B7500; @@ -7152,8 +7683,21 @@ L_088B7500: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x088B755Cu); aot_gpr_4 = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 629u, 0x088B755Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B755Cu) goto L_088B755C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B755C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7166,8 +7710,21 @@ L_088B755C: L_088B7568: aot_gpr_31 = (0x088B7570u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 631u, 0x088B7570u, 0x08944D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 95u, 0x08944D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B7570u) goto L_088B7570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B7570: aot_gpr_16 = (ctx.gpr[18] | 0u); goto L_088B7574; @@ -7198,12 +7755,38 @@ L_088B7574: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24624))); aot_gpr_31 = (0x088B75DCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 633u, 0x088B75DCu, 0x08944D50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 96u, 0x08944D50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B75DCu) goto L_088B75DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B75DC: aot_gpr_31 = (0x088B75E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 634u, 0x088B75E4u, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B75E4u) goto L_088B75E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B75E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24624))); ctx.fpr[24] = std::bit_cast(0u); @@ -7217,8 +7800,21 @@ L_088B75E4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088B7614u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 635u, 0x088B7614u, 0x08972FD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 645u, 0x08972FD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B7614u) goto L_088B7614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B7614: aot_gpr_4 = (16128u << 16u); ctx.fpr[26] = std::bit_cast(aot_gpr_4); @@ -7230,8 +7826,21 @@ L_088B7628: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x088B7634u); aot_gpr_4 = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 637u, 0x088B7634u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B7634u) goto L_088B7634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B7634: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7245,8 +7854,21 @@ L_088B7640: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B764Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 639u, 0x088B764Cu, 0x08944D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 95u, 0x08944D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B764Cu) goto L_088B764C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B764C: ctx.gpr[18] = (ctx.gpr[17] | 0u); aot_gpr_4 = (aot_gpr_16 << 2u); @@ -7268,12 +7890,38 @@ L_088B7654: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(12), ctx.gpr[8]); aot_gpr_31 = (0x088B7694u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(-24620))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 641u, 0x088B7694u, 0x08944D50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 96u, 0x08944D50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B7694u) goto L_088B7694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B7694: aot_gpr_31 = (0x088B769Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 642u, 0x088B769Cu, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B769Cu) goto L_088B769C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B769C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(-24620))); aot_gpr_5 = (aot_gpr_16 + static_cast(1)); @@ -7299,8 +7947,8 @@ L_088B76BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B76E8: @@ -7320,8 +7968,8 @@ L_088B76E8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(0u)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7728: @@ -7450,8 +8098,21 @@ L_088B77C8: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(8), aot_gpr_4); aot_gpr_31 = (0x088B7854u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 655u, 0x088B7854u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B7854u) goto L_088B7854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B7854: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(-24620))); aot_gpr_5 = (0u | 1u); @@ -7475,8 +8136,8 @@ L_088B7880: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7894: @@ -7506,8 +8167,8 @@ L_088B78A8: L_088B78C4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24608), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B78CC: @@ -7555,8 +8216,8 @@ L_088B78CC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), ctx.gpr[7]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B797C: @@ -7612,8 +8273,8 @@ L_088B797C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), ctx.gpr[7]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7A4C: @@ -7654,16 +8315,16 @@ L_088B7A94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7AD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24624))); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7AE4: @@ -7671,8 +8332,8 @@ L_088B7AE4: aot_gpr_5 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7AF4: @@ -7691,8 +8352,8 @@ L_088B7AF4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), ctx.gpr[7]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7B30: @@ -7719,8 +8380,8 @@ L_088B7B78: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7B84: @@ -7739,8 +8400,8 @@ L_088B7B84: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), ctx.gpr[7]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7BC0: @@ -7772,8 +8433,8 @@ L_088B7BC0: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(29552), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7C30: @@ -7912,8 +8573,8 @@ L_088B7D18: goto L_088B7D4C; L_088B7D4C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7D54: @@ -7944,8 +8605,21 @@ L_088B7D88: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x088B7D94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 692u, 0x088B7D94u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B7D94u) goto L_088B7D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B7D94: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); aot_gpr_4 = (17279u << 16u); @@ -8065,8 +8739,21 @@ L_088B7E78: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088B7E9Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 706u, 0x088B7E9Cu, 0x088DFDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 516u, 0x088DFDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B7E9Cu) goto L_088B7E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B7E9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); aot_fpr_12 = std::bit_cast(0u); @@ -8107,8 +8794,21 @@ L_088B7EF4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088B7F0Cu); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0044->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0044_entry, 710u, 0x088B7F0Cu, 0x088DFB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 506u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 506u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 506u, 0x088DFB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B7F0Cu) goto L_088B7F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B7F0C: aot_gpr_4 = (ctx.gpr[17] & 3u); aot_gpr_4 = (aot_gpr_4 + static_cast(24)); @@ -8129,8 +8829,8 @@ L_088B7F30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B7F50: diff --git a/profiles/vcs/generated/generated_unit_0045.cpp b/profiles/vcs/generated/generated_unit_0045.cpp index 0d675d6..fa1a962 100644 --- a/profiles/vcs/generated/generated_unit_0045.cpp +++ b/profiles/vcs/generated/generated_unit_0045.cpp @@ -865,6 +865,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088B8000u; + if (local_delta_v813 >= 16220u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1063,8 +1087,8 @@ L_088B81B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B81D4: @@ -1162,8 +1186,21 @@ L_088B82C0: } L_088B82CC: aot_gpr_31 = (0x088B82D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 26u, 0x088B82D4u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B82D4u) goto L_088B82D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B82D4: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (16256u << 16u); @@ -1394,8 +1431,21 @@ L_088B8344: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088B84C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 32u, 0x088B84C8u, 0x08972FA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 642u, 0x08972FA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B84C8u) goto L_088B84C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B84C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1411,8 +1461,21 @@ L_088B84D4: L_088B84DC: aot_gpr_31 = (0x088B84E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 35u, 0x088B84E4u, 0x089C6D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 631u, 0x089C6D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B84E4u) goto L_088B84E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B84E4: aot_gpr_4 = (ctx.gpr[2] < static_cast(257) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1443,8 +1506,21 @@ L_088B8514: L_088B851C: aot_gpr_31 = (0x088B8524u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 39u, 0x088B8524u, 0x089C6D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 631u, 0x089C6D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8524u) goto L_088B8524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8524: ctx.fpr[26] = std::bit_cast(ctx.gpr[2]); { const bool branch_taken = static_cast(ctx.gpr[2]) >= 0; @@ -1481,8 +1557,21 @@ L_088B8560: L_088B8568: aot_gpr_31 = (0x088B8570u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 44u, 0x088B8570u, 0x089C6D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 631u, 0x089C6D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8570u) goto L_088B8570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8570: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); { const bool branch_taken = static_cast(ctx.gpr[2]) >= 0; @@ -1607,14 +1696,14 @@ L_088B86A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B86BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B86C4: @@ -1672,8 +1761,8 @@ L_088B870C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B8720: @@ -1775,8 +1864,21 @@ L_088B87EC: L_088B87F4: aot_gpr_31 = (0x088B87FCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 77u, 0x088B87FCu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B87FCu) goto L_088B87FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B87FC: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -1822,8 +1924,21 @@ L_088B8850: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088B8864u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 83u, 0x088B8864u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8864u) goto L_088B8864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8864: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[20]); @@ -1856,8 +1971,21 @@ L_088B8880: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x088B8898u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 87u, 0x088B8898u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8898u) goto L_088B8898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8898: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); goto L_088B889C; @@ -1910,8 +2038,21 @@ L_088B88E4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x088B88F8u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 94u, 0x088B88F8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B88F8u) goto L_088B88F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B88F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); @@ -1942,16 +2083,16 @@ L_088B8920: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B8950: ctx.gpr[2] = (2188u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-30384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B895C: @@ -1963,8 +2104,8 @@ L_088B896C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B8978: @@ -1985,8 +2126,21 @@ L_088B8998: L_088B89A0: aot_gpr_31 = (0x088B89A8u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 103u, 0x088B89A8u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B89A8u) goto L_088B89A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B89A8: if (ctx.gpr[2] == ctx.gpr[16]) { ctx.gpr[17] = (0u | 1u); @@ -1995,8 +2149,21 @@ L_088B89A8: goto L_088B89B0; L_088B89B0: aot_gpr_31 = (0x088B89B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 105u, 0x088B89B8u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B89B8u) goto L_088B89B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B89B8: aot_gpr_4 = (ctx.gpr[2] ^ ctx.gpr[16]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -2035,8 +2202,8 @@ L_088B89E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B89FC: @@ -2045,8 +2212,21 @@ L_088B89FC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(68), aot_run_words); } aot_gpr_31 = (0x088B8A30u); ctx.gpr[18] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 112u, 0x088B8A30u, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8A30u) goto L_088B8A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8A30: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(22360)); @@ -2058,8 +2238,21 @@ L_088B8A30: aot_gpr_6 = (0u | 12u); aot_gpr_31 = (0x088B8A58u); aot_gpr_7 = (aot_gpr_7 + static_cast(-30968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 113u, 0x088B8A58u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8A58u) goto L_088B8A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8A58: ctx.gpr[17] = (ctx.gpr[28] + static_cast(-24560)); aot_gpr_31 = (0x088B8A64u); @@ -2119,8 +2312,21 @@ L_088B8AFC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B8B0Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 117u, 0x088B8B0Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8B0Cu) goto L_088B8B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8B0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(224))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(220))); @@ -2148,8 +2354,21 @@ L_088B8B34: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B8B40u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 121u, 0x088B8B40u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8B40u) goto L_088B8B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8B40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(224))); goto L_088B8B44; @@ -2175,8 +2394,21 @@ L_088B8B60: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B8B70u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 125u, 0x088B8B70u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8B70u) goto L_088B8B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8B70: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(224))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(220))); @@ -2223,8 +2455,21 @@ L_088B8BD0: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088B8BE0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 131u, 0x088B8BE0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8BE0u) goto L_088B8BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8BE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(236))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(232))); @@ -2252,8 +2497,21 @@ L_088B8C08: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B8C14u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 135u, 0x088B8C14u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8C14u) goto L_088B8C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8C14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(236))); goto L_088B8C18; @@ -2278,8 +2536,21 @@ L_088B8C30: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B8C40u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 139u, 0x088B8C40u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8C40u) goto L_088B8C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8C40: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(236))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(232))); @@ -2326,8 +2597,21 @@ L_088B8CA0: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088B8CB0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 145u, 0x088B8CB0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8CB0u) goto L_088B8CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8CB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(248))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(244))); @@ -2355,8 +2639,21 @@ L_088B8CD8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B8CE4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 149u, 0x088B8CE4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8CE4u) goto L_088B8CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8CE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(248))); goto L_088B8CE8; @@ -2381,8 +2678,21 @@ L_088B8D00: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B8D10u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 153u, 0x088B8D10u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8D10u) goto L_088B8D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8D10: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(248))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(244))); @@ -2429,8 +2739,21 @@ L_088B8D70: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088B8D80u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 159u, 0x088B8D80u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8D80u) goto L_088B8D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8D80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(260))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(256))); @@ -2458,8 +2781,21 @@ L_088B8DA8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B8DB4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 163u, 0x088B8DB4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8DB4u) goto L_088B8DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8DB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(260))); goto L_088B8DB8; @@ -2484,8 +2820,21 @@ L_088B8DD0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B8DE0u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 167u, 0x088B8DE0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8DE0u) goto L_088B8DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8DE0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(260))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(256))); @@ -2533,8 +2882,21 @@ L_088B8E44: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B8E54u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 173u, 0x088B8E54u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8E54u) goto L_088B8E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8E54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(272))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(268))); @@ -2562,8 +2924,21 @@ L_088B8E7C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B8E88u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 177u, 0x088B8E88u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8E88u) goto L_088B8E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8E88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(272))); goto L_088B8E8C; @@ -2588,8 +2963,21 @@ L_088B8EA4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B8EB4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 181u, 0x088B8EB4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8EB4u) goto L_088B8EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8EB4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(272))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(268))); @@ -2637,8 +3025,21 @@ L_088B8F18: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B8F28u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 187u, 0x088B8F28u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8F28u) goto L_088B8F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8F28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(284))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(280))); @@ -2666,8 +3067,21 @@ L_088B8F50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B8F5Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 191u, 0x088B8F5Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8F5Cu) goto L_088B8F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8F5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(284))); goto L_088B8F60; @@ -2692,8 +3106,21 @@ L_088B8F78: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B8F88u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 195u, 0x088B8F88u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8F88u) goto L_088B8F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8F88: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(284))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(280))); @@ -2739,8 +3166,21 @@ L_088B8FEC: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B8FFCu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 201u, 0x088B8FFCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B8FFCu) goto L_088B8FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B8FFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(296))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(292))); @@ -2768,8 +3208,21 @@ L_088B9024: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B9030u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 205u, 0x088B9030u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9030u) goto L_088B9030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9030: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(296))); goto L_088B9034; @@ -2794,8 +3247,21 @@ L_088B904C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B905Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 209u, 0x088B905Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B905Cu) goto L_088B905C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B905C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(296))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(292))); @@ -2841,8 +3307,21 @@ L_088B90C0: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B90D0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 215u, 0x088B90D0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B90D0u) goto L_088B90D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B90D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(308))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(304))); @@ -2870,8 +3349,21 @@ L_088B90F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B9104u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 219u, 0x088B9104u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9104u) goto L_088B9104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9104: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(308))); goto L_088B9108; @@ -2896,8 +3388,21 @@ L_088B9120: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B9130u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 223u, 0x088B9130u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9130u) goto L_088B9130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9130: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(308))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(304))); @@ -2943,8 +3448,21 @@ L_088B9194: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088B91A4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 229u, 0x088B91A4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B91A4u) goto L_088B91A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B91A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(320))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(316))); @@ -2972,8 +3490,21 @@ L_088B91CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B91D8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 233u, 0x088B91D8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B91D8u) goto L_088B91D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B91D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(320))); goto L_088B91DC; @@ -2998,8 +3529,21 @@ L_088B91F4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088B9204u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 237u, 0x088B9204u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9204u) goto L_088B9204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9204: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(320))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(316))); @@ -3049,8 +3593,8 @@ L_088B9254: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9288: @@ -3103,14 +3647,40 @@ L_088B92D8: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x088B92F8u); aot_gpr_7 = (aot_gpr_7 + static_cast(-31036)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 248u, 0x088B92F8u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B92F8u) goto L_088B92F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B92F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B9304u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 249u, 0x088B9304u, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9304u) goto L_088B9304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9304: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3133,20 +3703,20 @@ L_088B9318: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B932C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9334: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B933C: @@ -3155,8 +3725,21 @@ L_088B933C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x088B936Cu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 255u, 0x088B936Cu, 0x08AC5C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 507u, 0x08AC5C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B936Cu) goto L_088B936C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B936C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3172,8 +3755,21 @@ L_088B9378: L_088B9380: aot_gpr_31 = (0x088B9388u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 258u, 0x088B9388u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9388u) goto L_088B9388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9388: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; @@ -3289,8 +3885,21 @@ L_088B94A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_5); aot_gpr_31 = (0x088B94B4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 269u, 0x088B94B4u, 0x08AF51FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 121u, 0x08AF51FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B94B4u) goto L_088B94B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B94B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3304,8 +3913,21 @@ L_088B94BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_5); aot_gpr_31 = (0x088B94D0u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 271u, 0x088B94D0u, 0x08AF51FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 121u, 0x08AF51FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B94D0u) goto L_088B94D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B94D0: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 9 ? 1u : 0u); @@ -3331,48 +3953,74 @@ L_088B94E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B950C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088B951Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 274u, 0x088B951Cu, 0x08AC5CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 511u, 0x08AC5CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B951Cu) goto L_088B951C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B951C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9528: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9530: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9538: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9540: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088B9550u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 279u, 0x088B9550u, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9550u) goto L_088B9550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9550: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3395,8 +4043,8 @@ L_088B9564: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9570: @@ -3406,18 +4054,57 @@ L_088B9570: { const std::uint32_t aot_run_words[3]{ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x088B9590u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 284u, 0x088B9590u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9590u) goto L_088B9590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9590: aot_gpr_31 = (0x088B9598u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(328))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 285u, 0x088B9598u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9598u) goto L_088B9598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9598: aot_gpr_31 = (0x088B95A0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 286u, 0x088B95A0u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B95A0u) goto L_088B95A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B95A0: ctx.gpr[18] = (0u | 0u); ctx.gpr[17] = (ctx.gpr[16] + static_cast(220)); @@ -3426,8 +4113,21 @@ L_088B95A8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x088B95B4u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 288u, 0x088B95B4u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B95B4u) goto L_088B95B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B95B4: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(184), ctx.gpr[2]); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -3442,8 +4142,21 @@ L_088B95B4: } L_088B95CC: aot_gpr_31 = (0x088B95D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 290u, 0x088B95D4u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B95D4u) goto L_088B95D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B95D4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3454,8 +4167,8 @@ L_088B95D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B95EC: @@ -3464,8 +4177,8 @@ L_088B95EC: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9600: @@ -3492,8 +4205,8 @@ L_088B9620: ctx.gpr[2] = (aot_gpr_5 << 3u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] | aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B962C: @@ -3590,8 +4303,8 @@ L_088B96DC: goto L_088B96E0; L_088B96E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B96E8: @@ -3711,8 +4424,8 @@ L_088B9788: goto L_088B9798; L_088B9798: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B97A0: @@ -3724,8 +4437,21 @@ L_088B97A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088B97C0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 321u, 0x088B97C0u, 0x08B59DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 521u, 0x08B59DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B97C0u) goto L_088B97C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B97C0: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x088B97CCu); @@ -3814,8 +4540,8 @@ L_088B9848: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B985C: @@ -3839,8 +4565,21 @@ L_088B9890: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088B98A0u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 333u, 0x088B98A0u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B98A0u) goto L_088B98A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B98A0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(4), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); @@ -3858,8 +4597,21 @@ L_088B98BC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B98C8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 335u, 0x088B98C8u, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B98C8u) goto L_088B98C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B98C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); @@ -3875,8 +4627,8 @@ L_088B98D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B98EC: @@ -3899,8 +4651,8 @@ L_088B9924: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9930: @@ -3926,8 +4678,21 @@ L_088B9960: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088B9970u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 341u, 0x088B9970u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9970u) goto L_088B9970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9970: aot_gpr_4 = (ctx.gpr[16] + ctx.gpr[18]); { const bool branch_taken = 0u == 0u; @@ -3957,8 +4722,21 @@ L_088B9998: aot_gpr_5 = (ctx.gpr[28] + static_cast(-24456)); aot_gpr_31 = (0x088B99A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 345u, 0x088B99A8u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B99A8u) goto L_088B99A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B99A8: aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[16]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3973,14 +4751,40 @@ L_088B99B4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-24452)); aot_gpr_31 = (0x088B99C8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 347u, 0x088B99C8u, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B99C8u) goto L_088B99C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B99C8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088B99D4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 348u, 0x088B99D4u, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B99D4u) goto L_088B99D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B99D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3993,8 +4797,21 @@ L_088B99DC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-24448)); aot_gpr_31 = (0x088B99ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 350u, 0x088B99ECu, 0x08B58360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 66u, 0x08B58360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B99ECu) goto L_088B99EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B99EC: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] + static_cast(-17)); @@ -4012,8 +4829,21 @@ L_088B9A04: aot_gpr_5 = (ctx.gpr[28] + static_cast(-24444)); aot_gpr_31 = (0x088B9A10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 353u, 0x088B9A10u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9A10u) goto L_088B9A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9A10: aot_gpr_4 = (ctx.gpr[16] + ctx.gpr[17]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); @@ -4028,14 +4858,40 @@ L_088B9A20: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B9A30u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 355u, 0x088B9A30u, 0x08B58AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 182u, 0x08B58AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9A30u) goto L_088B9A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9A30: aot_gpr_5 = (ctx.gpr[28] + static_cast(-24452)); aot_gpr_31 = (0x088B9A3Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 356u, 0x088B9A3Cu, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9A3Cu) goto L_088B9A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9A3C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4047,14 +4903,40 @@ L_088B9A44: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088B9A50u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 358u, 0x088B9A50u, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9A50u) goto L_088B9A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9A50: aot_gpr_5 = (ctx.gpr[28] + static_cast(-24432)); aot_gpr_31 = (0x088B9A5Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 359u, 0x088B9A5Cu, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9A5Cu) goto L_088B9A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9A5C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4066,8 +4948,8 @@ L_088B9A5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9A78: @@ -4090,8 +4972,21 @@ L_088B9AB0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088B9ABCu); aot_gpr_5 = (0u | 37u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 362u, 0x088B9ABCu, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9ABCu) goto L_088B9ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9ABC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -4117,8 +5012,21 @@ L_088B9AD4: aot_gpr_6 = (aot_gpr_6 + static_cast(-1)); aot_gpr_31 = (0x088B9B00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 365u, 0x088B9B00u, 0x088C3C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 537u, 0x088C3C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9B00u) goto L_088B9B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9B00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (ctx.gpr[19] << 3u); @@ -4140,8 +5048,21 @@ L_088B9B1C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088B9B38u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 367u, 0x088B9B38u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9B38u) goto L_088B9B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9B38: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); @@ -4158,8 +5079,21 @@ L_088B9B38: L_088B9B54: aot_gpr_31 = (0x088B9B5Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 369u, 0x088B9B5Cu, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9B5Cu) goto L_088B9B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9B5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (0u | 115u); @@ -4263,8 +5197,21 @@ L_088B9BDC: L_088B9C14: aot_gpr_31 = (0x088B9C1Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 381u, 0x088B9C1Cu, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9C1Cu) goto L_088B9C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9C1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); @@ -4296,8 +5243,21 @@ L_088B9C2C: L_088B9C5C: aot_gpr_31 = (0x088B9C64u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 384u, 0x088B9C64u, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9C64u) goto L_088B9C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9C64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); @@ -4335,8 +5295,8 @@ L_088B9C8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9CB0: @@ -4368,8 +5328,8 @@ L_088B9CB0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9CCC: @@ -4403,8 +5363,8 @@ L_088B9CCC: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(32), static_cast(aot_gpr_7)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(33), static_cast(ctx.gpr[8])); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9CEC: @@ -4444,28 +5404,28 @@ L_088B9CEC: aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(1), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9D24: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24276), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9D2C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9D34: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7588), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9D3C: @@ -4510,8 +5470,8 @@ L_088B9D3C: aot_fpr_12 = std::bit_cast(aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(52), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9DE0: @@ -4634,8 +5594,21 @@ L_088B9F28: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088B9F40u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 404u, 0x088B9F40u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088B9F40u) goto L_088B9F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088B9F40: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24]) ^ 0x80000000u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24260), std::bit_cast(aot_fpr_12)); @@ -4699,8 +5672,8 @@ L_088B9FA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088B9FCC: @@ -4715,8 +5688,21 @@ L_088B9FCC: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x088BA000u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 412u, 0x088BA000u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA000u) goto L_088BA000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA000: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088BA00Cu); @@ -4740,8 +5726,21 @@ L_088BA00C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088BA020u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 414u, 0x088BA020u, 0x0896ECD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 659u, 0x0896ECD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA020u) goto L_088BA020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA020: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -4760,8 +5759,8 @@ L_088BA030: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA04C: @@ -4788,8 +5787,21 @@ L_088BA07C: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x088BA090u); ctx.gpr[16] = (std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 419u, 0x088BA090u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA090u) goto L_088BA090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA090: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4811,8 +5823,21 @@ L_088BA0A4: aot_gpr_4 = (ctx.gpr[17] & 255u); aot_gpr_31 = (0x088BA0B8u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 422u, 0x088BA0B8u, 0x0896D36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 335u, 0x0896D36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA0B8u) goto L_088BA0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA0B8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4823,8 +5848,8 @@ L_088BA0B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA0D0: @@ -4849,8 +5874,21 @@ L_088BA0FC: ctx.gpr[16] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088BA120u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 425u, 0x088BA120u, 0x08B15604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 274u, 0x08B15604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA120u) goto L_088BA120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA120: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4862,8 +5900,21 @@ L_088BA128: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088BA134u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 427u, 0x088BA134u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA134u) goto L_088BA134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA134: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_088BA138; @@ -4872,8 +5923,21 @@ L_088BA138: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088BA148u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 429u, 0x088BA148u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA148u) goto L_088BA148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA148: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4897,8 +5961,21 @@ L_088BA160: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x088BA170u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 432u, 0x088BA170u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA170u) goto L_088BA170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA170: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -4926,8 +6003,21 @@ L_088BA194: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(3)))))); aot_gpr_31 = (0x088BA1A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 436u, 0x088BA1A0u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA1A0u) goto L_088BA1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA1A0: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088BA1A4; @@ -4950,8 +6040,21 @@ L_088BA1B8: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x088BA1C8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 440u, 0x088BA1C8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA1C8u) goto L_088BA1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA1C8: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -4979,8 +6082,21 @@ L_088BA1EC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(3)))))); aot_gpr_31 = (0x088BA1F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 444u, 0x088BA1F8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA1F8u) goto L_088BA1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA1F8: ctx.gpr[20] = (ctx.gpr[2] | 0u); goto L_088BA1FC; @@ -5004,8 +6120,21 @@ L_088BA20C: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); aot_gpr_31 = (0x088BA220u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 448u, 0x088BA220u, 0x0896D36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 335u, 0x0896D36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA220u) goto L_088BA220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA220: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -5020,8 +6149,8 @@ L_088BA220: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA248: @@ -5041,8 +6170,21 @@ L_088BA268: aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x088BA27Cu); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 451u, 0x088BA27Cu, 0x0896D3E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 341u, 0x0896D3E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA27Cu) goto L_088BA27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA27C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088BA288u); @@ -5059,8 +6201,8 @@ L_088BA288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA2A0: @@ -5081,8 +6223,21 @@ L_088BA2C4: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x088BA2D8u); ctx.gpr[17] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 455u, 0x088BA2D8u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA2D8u) goto L_088BA2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA2D8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5157,8 +6312,21 @@ L_088BA338: aot_gpr_6 = (aot_gpr_6 + static_cast(17840)); aot_gpr_31 = (0x088BA360u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 464u, 0x088BA360u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA360u) goto L_088BA360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA360: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5198,8 +6366,8 @@ L_088BA38C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA3A4: @@ -5260,8 +6428,8 @@ L_088BA418: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA430: @@ -5303,8 +6471,8 @@ L_088BA48C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA4A4: @@ -5341,8 +6509,8 @@ L_088BA4D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA510: @@ -5405,8 +6573,8 @@ L_088BA584: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA598: @@ -5431,8 +6599,21 @@ L_088BA5B4: L_088BA5BC: aot_gpr_31 = (0x088BA5C4u); aot_gpr_6 = (ctx.gpr[28] + static_cast(-24176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 493u, 0x088BA5C4u, 0x08885284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 270u, 0x08885284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA5C4u) goto L_088BA5C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA5C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5454,14 +6635,27 @@ L_088BA5E0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088BA5ECu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21924)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 497u, 0x088BA5ECu, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA5ECu) goto L_088BA5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA5EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA5F8: @@ -5480,8 +6674,8 @@ L_088BA618: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA62C: @@ -5523,8 +6717,8 @@ L_088BA664: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA678: @@ -5546,15 +6740,15 @@ L_088BA698: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA6A4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA6AC: @@ -5571,8 +6765,21 @@ L_088BA6AC: } L_088BA6C8: aot_gpr_31 = (0x088BA6D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 511u, 0x088BA6D0u, 0x08B213BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 245u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 245u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 245u, 0x08B213BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA6D0u) goto L_088BA6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA6D0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(12), 0u); { const bool branch_taken = 0u == 0u; @@ -5590,8 +6797,8 @@ L_088BA6E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA6F0: @@ -5615,8 +6822,8 @@ L_088BA70C: L_088BA720: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA728: @@ -5626,8 +6833,8 @@ L_088BA728: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7672), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA740: @@ -5641,8 +6848,8 @@ L_088BA740: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA768: @@ -5722,8 +6929,8 @@ L_088BA7EC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-21840))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA804: @@ -5895,8 +7102,21 @@ L_088BA978: AOT_REGCACHE_SYNC_OUT(); return; L_088BA994: aot_gpr_31 = (0x088BA99Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 544u, 0x088BA99Cu, 0x08935094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 268u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 268u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 268u, 0x08935094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BA99Cu) goto L_088BA99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BA99C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5925,8 +7145,8 @@ L_088BA9C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BA9D4: @@ -6010,8 +7230,8 @@ L_088BAA4C: L_088BAA84: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BAA8C: @@ -6096,8 +7316,8 @@ L_088BAB0C: L_088BAB44: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BAB4C: @@ -6106,8 +7326,8 @@ L_088BAB4C: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BAB60: @@ -6122,8 +7342,8 @@ L_088BAB60: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(12), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BABB4: @@ -6155,8 +7375,21 @@ L_088BABFC: aot_gpr_4 = (aot_gpr_4 + static_cast(116)); aot_gpr_31 = (0x088BAC14u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(0)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 569u, 0x088BAC14u, 0x08934334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 41u, 0x08934334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BAC14u) goto L_088BAC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BAC14: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); ctx.gpr[18] = (ctx.gpr[16] + static_cast(36)); @@ -6451,8 +7684,21 @@ L_088BAE64: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x088BAE74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 602u, 0x088BAE74u, 0x08B6876Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 121u, 0x08B6876Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BAE74u) goto L_088BAE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BAE74: ctx.gpr[2] = (aot_gpr_29 + static_cast(84)); ctx.gpr[11] = (aot_gpr_29 + static_cast(68)); @@ -6525,8 +7771,8 @@ L_088BAED8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BAEF8: @@ -6588,8 +7834,8 @@ L_088BAF64: goto L_088BAF68; L_088BAF68: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BAF70: @@ -6606,15 +7852,41 @@ L_088BAF70: aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8616)))))); aot_gpr_31 = (0x088BAFB0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 621u, 0x088BAFB0u, 0x08B6A1E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 323u, 0x08B6A1E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BAFB0u) goto L_088BAFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BAFB0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088BAFC0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 622u, 0x088BAFC0u, 0x08B6A05Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 294u, 0x08B6A05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BAFC0u) goto L_088BAFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BAFC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); ctx.gpr[2] = (ctx.gpr[2] ^ aot_gpr_4); @@ -6629,8 +7901,8 @@ L_088BAFC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BAFE8: @@ -6715,8 +7987,21 @@ L_088BB08C: aot_gpr_4 = (ctx.gpr[18] << 2u); aot_gpr_31 = (0x088BB09Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 632u, 0x088BB09Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB09Cu) goto L_088BB09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB09C: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -6760,8 +8045,21 @@ L_088BB0D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088BB0E8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 638u, 0x088BB0E8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB0E8u) goto L_088BB0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB0E8: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[20]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -6807,8 +8105,21 @@ L_088BB130: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088BB13Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 645u, 0x088BB13Cu, 0x08A9BB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 468u, 0x08A9BB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB13Cu) goto L_088BB13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB13C: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), aot_run_words); @@ -6821,8 +8132,8 @@ L_088BB13C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BB15C: @@ -6876,8 +8187,21 @@ L_088BB1C8: aot_gpr_4 = (ctx.gpr[17] << 3u); aot_gpr_31 = (0x088BB1E0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 651u, 0x088BB1E0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB1E0u) goto L_088BB1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB1E0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7093,8 +8417,8 @@ L_088BB330: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BB360: @@ -7162,16 +8486,42 @@ L_088BB408: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x088BB414u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 685u, 0x088BB414u, 0x08A9BB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 468u, 0x08A9BB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB414u) goto L_088BB414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB414: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(28))); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088BB428u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 686u, 0x088BB428u, 0x08B6A098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 296u, 0x08B6A098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB428u) goto L_088BB428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB428: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -7236,8 +8586,21 @@ L_088BB480: aot_gpr_5 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x088BB498u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 695u, 0x088BB498u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB498u) goto L_088BB498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB498: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[17]); @@ -7257,8 +8620,8 @@ L_088BB4A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BB4BC: @@ -7316,8 +8679,8 @@ L_088BB52C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BB53C: @@ -7349,8 +8712,21 @@ L_088BB570: aot_gpr_4 = (aot_gpr_6 + static_cast(4)); aot_gpr_31 = (0x088BB598u); aot_gpr_5 = (ctx.gpr[9] + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 705u, 0x088BB598u, 0x08B68A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 154u, 0x08B68A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB598u) goto L_088BB598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB598: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_gpr_4 = (aot_gpr_6 + static_cast(44)); @@ -7522,8 +8898,21 @@ L_088BB76C: aot_gpr_4 = (ctx.gpr[24] | 0u); aot_gpr_31 = (0x088BB788u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 718u, 0x088BB788u, 0x08B6876Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 121u, 0x08B6876Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB788u) goto L_088BB788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB788: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); @@ -7556,8 +8945,8 @@ L_088BB7C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BB7D4: @@ -7574,8 +8963,21 @@ L_088BB7D4: aot_gpr_5 = (aot_gpr_5 + static_cast(-15428)); aot_gpr_31 = (0x088BB818u); aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8616)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 723u, 0x088BB818u, 0x08B6A1E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 323u, 0x08B6A1E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB818u) goto L_088BB818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB818: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -7589,8 +8991,21 @@ L_088BB818: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088BB840u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 724u, 0x088BB840u, 0x08B6A1A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 321u, 0x08B6A1A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB840u) goto L_088BB840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB840: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] != ctx.gpr[20]; @@ -7660,8 +9075,21 @@ L_088BB8B4: aot_gpr_4 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x088BB8C8u); aot_gpr_5 = (ctx.gpr[19] + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 733u, 0x088BB8C8u, 0x08B68A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 154u, 0x08B68A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB8C8u) goto L_088BB8C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB8C8: aot_gpr_4 = (ctx.gpr[17] + static_cast(44)); aot_gpr_5 = (ctx.gpr[19] + static_cast(44)); @@ -7704,8 +9132,8 @@ L_088BB910: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BB930: @@ -7720,8 +9148,21 @@ L_088BB930: aot_mem.aot_direct_store32_block(ctx.gpr[16] + static_cast(20), aot_run_words); } aot_gpr_31 = (0x088BB974u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 738u, 0x088BB974u, 0x08B687E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 130u, 0x08B687E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BB974u) goto L_088BB974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BB974: aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(44), static_cast(0u)); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(46), static_cast(0u)); @@ -7730,8 +9171,8 @@ L_088BB974: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BB990: @@ -7769,8 +9210,21 @@ L_088BB990: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x088BBA34u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 740u, 0x088BBA34u, 0x08B687E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 130u, 0x08B687E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BBA34u) goto L_088BBA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BBA34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(76), aot_gpr_4); @@ -7918,8 +9372,8 @@ L_088BBBE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BBBF8: @@ -7974,8 +9428,21 @@ L_088BBC60: aot_gpr_4 = (aot_gpr_4 - aot_gpr_5); aot_gpr_31 = (0x088BBC80u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(172), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0045->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0045_entry, 755u, 0x088BBC80u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BBC80u) goto L_088BBC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BBC80: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); diff --git a/profiles/vcs/generated/generated_unit_0046.cpp b/profiles/vcs/generated/generated_unit_0046.cpp index 511574c..f9ee18f 100644 --- a/profiles/vcs/generated/generated_unit_0046.cpp +++ b/profiles/vcs/generated/generated_unit_0046.cpp @@ -484,6 +484,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088BC000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -562,8 +586,21 @@ L_088BC0A0: aot_gpr_4 = (aot_gpr_6 | 0u); ctx.gpr[31] = (0x088BC0B0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 8u, 0x088BC0B0u, 0x08B6876Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 121u, 0x08B6876Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BC0B0u) goto L_088BC0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BC0B0: ctx.gpr[2] = (aot_gpr_29 + static_cast(92)); ctx.gpr[11] = (aot_gpr_29 + static_cast(76)); @@ -616,8 +653,8 @@ L_088BC0F0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BC128: @@ -627,8 +664,21 @@ L_088BC128: ctx.gpr[17] = (aot_gpr_5 | 0u); ctx.gpr[16] = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x088BC148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 16u, 0x088BC148u, 0x088BAF70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 620u, 0x088BAF70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BC148u) goto L_088BC148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BC148: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -641,8 +691,21 @@ L_088BC150: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[31] = (0x088BC190u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 18u, 0x088BC190u, 0x088BB930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 737u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 737u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 737u, 0x088BB930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BC190u) goto L_088BC190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BC190: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); @@ -669,8 +732,21 @@ L_088BC1AC: aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(0), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x088BC1C4u); aot_gpr_4 = (aot_gpr_6 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 21u, 0x088BC1C4u, 0x088BB990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 739u, 0x088BB990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BC1C4u) goto L_088BC1C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BC1C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); aot_gpr_5 = (aot_gpr_4 + static_cast(44)); @@ -714,8 +790,21 @@ L_088BC224: aot_gpr_8 = (0u | 1u); ctx.gpr[31] = (0x088BC240u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 24u, 0x088BC240u, 0x088BBBF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 750u, 0x088BBBF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BC240u) goto L_088BC240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BC240: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -825,8 +914,21 @@ L_088BC380: L_088BC398: ctx.gpr[31] = (0x088BC3A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 31u, 0x088BC3A0u, 0x08B6876Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 121u, 0x08B6876Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BC3A0u) goto L_088BC3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BC3A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(-56), static_cast(ctx.gpr[17])); @@ -840,8 +942,8 @@ L_088BC3A8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BC3BC: @@ -849,8 +951,8 @@ L_088BC3BC: ctx.gpr[2] = (aot_gpr_4 ^ aot_gpr_5); jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BC3CC: @@ -1109,8 +1211,8 @@ L_088BC6AC: L_088BC6B4: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BC6BC: @@ -1275,8 +1377,8 @@ L_088BC8B4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BC8DC: @@ -1547,8 +1649,8 @@ L_088BCBCC: L_088BCBD4: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BCBDC: @@ -1713,8 +1815,8 @@ L_088BCDDC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BCE04: @@ -1816,8 +1918,21 @@ L_088BCF5C: aot_gpr_5 = (ctx.gpr[17] - aot_gpr_8); ctx.gpr[31] = (0x088BCF68u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 92u, 0x088BCF68u, 0x08B69BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 243u, 0x08B69BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BCF68u) goto L_088BCF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BCF68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); @@ -1831,8 +1946,21 @@ L_088BCF7C: aot_gpr_4 = (aot_gpr_29 + static_cast(524)); ctx.gpr[31] = (0x088BCF94u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 94u, 0x088BCF94u, 0x088BAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 556u, 0x088BAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BCF94u) goto L_088BCF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BCF94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), aot_gpr_4); @@ -1855,8 +1983,21 @@ L_088BCF94: aot_gpr_4 = (aot_gpr_29 + static_cast(540)); ctx.gpr[31] = (0x088BCFF0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 95u, 0x088BCFF0u, 0x088BA9D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 548u, 0x088BA9D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BCFF0u) goto L_088BCFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BCFF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), aot_gpr_4); @@ -1893,8 +2034,21 @@ L_088BD048: aot_gpr_4 = (aot_gpr_29 + static_cast(556)); ctx.gpr[31] = (0x088BD064u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 97u, 0x088BD064u, 0x088BA9D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 548u, 0x088BA9D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BD064u) goto L_088BD064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BD064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), aot_gpr_4); @@ -2101,8 +2255,21 @@ L_088BD2DC: aot_gpr_4 = (aot_gpr_29 + static_cast(572)); ctx.gpr[31] = (0x088BD308u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 108u, 0x088BD308u, 0x088BAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 556u, 0x088BAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BD308u) goto L_088BD308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BD308: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(196), aot_gpr_4); @@ -2595,8 +2762,21 @@ L_088BD91C: aot_gpr_5 = (ctx.gpr[17] - aot_gpr_6); ctx.gpr[31] = (0x088BD928u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 135u, 0x088BD928u, 0x08B69CA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 253u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 253u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 253u, 0x08B69CA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BD928u) goto L_088BD928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BD928: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); @@ -2611,8 +2791,21 @@ L_088BD930: aot_gpr_4 = (aot_gpr_29 + static_cast(588)); ctx.gpr[31] = (0x088BD954u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 137u, 0x088BD954u, 0x088BA9D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 548u, 0x088BA9D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BD954u) goto L_088BD954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BD954: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(328), aot_gpr_4); @@ -2636,8 +2829,21 @@ L_088BD954: aot_gpr_4 = (aot_gpr_29 + static_cast(604)); ctx.gpr[31] = (0x088BD9B4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 138u, 0x088BD9B4u, 0x088BAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 556u, 0x088BAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BD9B4u) goto L_088BD9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BD9B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(312), aot_gpr_4); @@ -2674,8 +2880,21 @@ L_088BDA0C: aot_gpr_4 = (aot_gpr_29 + static_cast(620)); ctx.gpr[31] = (0x088BDA28u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 140u, 0x088BDA28u, 0x088BAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 556u, 0x088BAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BDA28u) goto L_088BDA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BDA28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(424), aot_gpr_4); @@ -3333,8 +3552,8 @@ L_088BE260: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(1360)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BE284: @@ -3414,8 +3633,21 @@ L_088BE374: aot_gpr_5 = (aot_gpr_5 - aot_gpr_4); ctx.gpr[31] = (0x088BE384u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 178u, 0x088BE384u, 0x08B69BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 243u, 0x08B69BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BE384u) goto L_088BE384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BE384: aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); @@ -3430,8 +3662,21 @@ L_088BE390: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(196), aot_gpr_4); ctx.gpr[31] = (0x088BE3B0u); aot_gpr_4 = (aot_gpr_29 + static_cast(184)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 180u, 0x088BE3B0u, 0x088BAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 556u, 0x088BAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BE3B0u) goto L_088BE3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BE3B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), aot_gpr_4); @@ -3618,8 +3863,21 @@ L_088BE5BC: aot_gpr_5 = (aot_gpr_5 - aot_gpr_7); ctx.gpr[31] = (0x088BE5CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 193u, 0x088BE5CCu, 0x08B69CA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 253u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 253u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 253u, 0x08B69CA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BE5CCu) goto L_088BE5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BE5CC: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); @@ -3634,8 +3892,21 @@ L_088BE5DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), aot_gpr_4); ctx.gpr[31] = (0x088BE5F8u); aot_gpr_4 = (aot_gpr_29 + static_cast(200)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 195u, 0x088BE5F8u, 0x088BA9D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 548u, 0x088BA9D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BE5F8u) goto L_088BE5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BE5F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(116), aot_gpr_4); @@ -3815,8 +4086,8 @@ L_088BE808: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(424))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(432)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BE818: @@ -3870,8 +4141,21 @@ L_088BE884: aot_gpr_4 = (ctx.gpr[17] << 2u); ctx.gpr[31] = (0x088BE89Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 212u, 0x088BE89Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BE89Cu) goto L_088BE89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BE89C: ctx.gpr[19] = (ctx.gpr[2] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4097,8 +4381,8 @@ L_088BEA0C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BEA3C: @@ -4485,8 +4769,8 @@ L_088BED8C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BEDBC: @@ -4873,8 +5157,8 @@ L_088BF10C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088BF13C: @@ -4969,8 +5253,21 @@ L_088BF1EC: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x088BF1F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 323u, 0x088BF1F8u, 0x088BB4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 697u, 0x088BB4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BF1F8u) goto L_088BF1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BF1F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(100))); aot_gpr_4 = (aot_gpr_4 + static_cast(96)); @@ -5035,8 +5332,21 @@ L_088BF298: aot_gpr_4 = (aot_gpr_29 + static_cast(2076)); ctx.gpr[31] = (0x088BF2A4u); aot_gpr_5 = (ctx.gpr[9] + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 328u, 0x088BF2A4u, 0x088BB990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 739u, 0x088BB990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BF2A4u) goto L_088BF2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BF2A4: ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2596))); ctx.gpr[9] = (ctx.gpr[9] + static_cast(56)); @@ -5349,8 +5659,21 @@ L_088BF5E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2160), aot_gpr_6); ctx.gpr[31] = (0x088BF63Cu); aot_gpr_6 = (ctx.gpr[10] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 348u, 0x088BF63Cu, 0x08B6927Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 182u, 0x08B6927Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BF63Cu) goto L_088BF63C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BF63C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2092))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2076))); @@ -5645,8 +5968,21 @@ L_088BF8FC: aot_gpr_8 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2304))); ctx.gpr[31] = (0x088BF950u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2288), aot_gpr_8); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 372u, 0x088BF950u, 0x08B6927Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 182u, 0x08B6927Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BF950u) goto L_088BF950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BF950: aot_gpr_8 = (aot_gpr_29 + static_cast(2276)); aot_gpr_7 = (aot_gpr_29 + static_cast(2260)); @@ -5768,8 +6104,21 @@ L_088BFAB0: L_088BFAC8: ctx.gpr[31] = (0x088BFAD0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 379u, 0x088BFAD0u, 0x08B6876Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 121u, 0x08B6876Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BFAD0u) goto L_088BFAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BFAD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2588), ctx.gpr[17]); goto L_088BFAD4; @@ -5996,8 +6345,21 @@ L_088BFD60: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(2072)))))); ctx.gpr[31] = (0x088BFD70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0046->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0046_entry, 393u, 0x088BFD70u, 0x08A9B470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 411u, 0x08A9B470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088BFD70u) goto L_088BFD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088BFD70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(16))); diff --git a/profiles/vcs/generated/generated_unit_0047.cpp b/profiles/vcs/generated/generated_unit_0047.cpp index 15b80c6..39633ce 100644 --- a/profiles/vcs/generated/generated_unit_0047.cpp +++ b/profiles/vcs/generated/generated_unit_0047.cpp @@ -663,6 +663,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088C0000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -750,8 +774,21 @@ L_088C00C0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); aot_gpr_31 = (0x088C00CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 7u, 0x088C00CCu, 0x08A9BC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 486u, 0x08A9BC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C00CCu) goto L_088C00CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C00CC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(18), static_cast(ctx.gpr[18])); @@ -796,8 +833,21 @@ L_088C0124: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C014Cu); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 11u, 0x088C014Cu, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C014Cu) goto L_088C014C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C014C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2584))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); @@ -807,8 +857,21 @@ L_088C014C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2548))); aot_gpr_31 = (0x088C016Cu); aot_gpr_6 = (aot_gpr_16 - ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 12u, 0x088C016Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C016Cu) goto L_088C016C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C016C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(23))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -1074,8 +1137,21 @@ L_088C03D0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C03FCu); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 36u, 0x088C03FCu, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C03FCu) goto L_088C03FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C03FC: aot_gpr_4 = (ctx.gpr[22] + ctx.gpr[18]); aot_gpr_4 = (aot_gpr_4 - ctx.gpr[17]); @@ -1084,8 +1160,21 @@ L_088C03FC: aot_gpr_6 = (ctx.gpr[18] - ctx.gpr[17]); aot_gpr_31 = (0x088C0418u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 37u, 0x088C0418u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0418u) goto L_088C0418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0418: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(23))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -1126,8 +1215,21 @@ L_088C0474: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C0484u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 41u, 0x088C0484u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0484u) goto L_088C0484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0484: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1141,8 +1243,21 @@ L_088C048C: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C04A0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 43u, 0x088C04A0u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C04A0u) goto L_088C04A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C04A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1277,8 +1392,8 @@ L_088C0590: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(2656)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C05C0: @@ -1494,8 +1609,21 @@ L_088C0784: L_088C0788: aot_gpr_31 = (0x088C0790u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 80u, 0x088C0790u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0790u) goto L_088C0790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0790: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1731,8 +1859,21 @@ L_088C09D8: L_088C09E4: aot_gpr_31 = (0x088C09ECu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 99u, 0x088C09ECu, 0x08B69A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 230u, 0x08B69A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C09ECu) goto L_088C09EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C09EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(180), aot_gpr_4); @@ -1762,8 +1903,21 @@ L_088C09EC: aot_gpr_4 = (aot_gpr_29 + static_cast(212)); aot_gpr_31 = (0x088C0A5Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 100u, 0x088C0A5Cu, 0x088BAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 556u, 0x088BAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0A5Cu) goto L_088C0A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0A5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(196), aot_gpr_4); @@ -2084,8 +2238,21 @@ L_088C0DEC: L_088C0DFC: aot_gpr_31 = (0x088C0E04u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 121u, 0x088C0E04u, 0x08B69B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 240u, 0x08B69B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0E04u) goto L_088C0E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0E04: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(28))); @@ -2110,8 +2277,21 @@ L_088C0E0C: aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 16u)); aot_gpr_31 = (0x088C0E48u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 123u, 0x088C0E48u, 0x08ADC06Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 4u, 0x08ADC06Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0E48u) goto L_088C0E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0E48: aot_gpr_4 = (ctx.gpr[20] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2183,8 +2363,21 @@ L_088C0EF0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C0F0Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 128u, 0x088C0F0Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0F0Cu) goto L_088C0F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0F0C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2248,8 +2441,21 @@ L_088C0F54: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088C0FB4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 133u, 0x088C0FB4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0FB4u) goto L_088C0FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0FB4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2279,8 +2485,21 @@ L_088C0FE0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C0FF4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 137u, 0x088C0FF4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C0FF4u) goto L_088C0FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C0FF4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2302,16 +2521,29 @@ L_088C1008: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[23]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-21792))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C1020: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C102Cu); aot_gpr_4 = (0u | 224u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 141u, 0x088C102Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C102Cu) goto L_088C102C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C102C: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2323,8 +2555,21 @@ L_088C102C: L_088C1038: aot_gpr_31 = (0x088C1040u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 143u, 0x088C1040u, 0x088239DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 678u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 678u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 678u, 0x088239DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1040u) goto L_088C1040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1040: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C1044; @@ -2339,8 +2584,21 @@ L_088C104C: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C1058u); aot_gpr_4 = (0u | 408u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 146u, 0x088C1058u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1058u) goto L_088C1058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1058: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2352,8 +2610,21 @@ L_088C1058: L_088C1064: aot_gpr_31 = (0x088C106Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 148u, 0x088C106Cu, 0x089F7524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 648u, 0x089F7524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C106Cu) goto L_088C106C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C106C: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C1070; @@ -2368,8 +2639,21 @@ L_088C1078: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C1084u); aot_gpr_4 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 151u, 0x088C1084u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1084u) goto L_088C1084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1084: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2381,8 +2665,21 @@ L_088C1084: L_088C1090: aot_gpr_31 = (0x088C1098u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 153u, 0x088C1098u, 0x08AA4C00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 114u, 0x08AA4C00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1098u) goto L_088C1098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1098: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C109C; @@ -2397,8 +2694,21 @@ L_088C10A4: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C10B0u); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 156u, 0x088C10B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C10B0u) goto L_088C10B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C10B0: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2410,8 +2720,21 @@ L_088C10B0: L_088C10BC: aot_gpr_31 = (0x088C10C4u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 158u, 0x088C10C4u, 0x089D2950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 455u, 0x089D2950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C10C4u) goto L_088C10C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C10C4: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C10C8; @@ -2426,8 +2749,21 @@ L_088C10D0: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C10DCu); aot_gpr_4 = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 161u, 0x088C10DCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C10DCu) goto L_088C10DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C10DC: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2439,8 +2775,21 @@ L_088C10DC: L_088C10E8: aot_gpr_31 = (0x088C10F0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 163u, 0x088C10F0u, 0x08A3ED80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 444u, 0x08A3ED80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C10F0u) goto L_088C10F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C10F0: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C10F4; @@ -2455,8 +2804,21 @@ L_088C10FC: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C1108u); aot_gpr_4 = (0u | 112u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 166u, 0x088C1108u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1108u) goto L_088C1108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1108: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2468,8 +2830,21 @@ L_088C1108: L_088C1114: aot_gpr_31 = (0x088C111Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 168u, 0x088C111Cu, 0x0896561Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 168u, 0x0896561Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C111Cu) goto L_088C111C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C111C: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C1120; @@ -2484,8 +2859,21 @@ L_088C1128: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C1134u); aot_gpr_4 = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 171u, 0x088C1134u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1134u) goto L_088C1134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1134: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2497,8 +2885,21 @@ L_088C1134: L_088C1140: aot_gpr_31 = (0x088C1148u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 173u, 0x088C1148u, 0x08B1E844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 457u, 0x08B1E844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1148u) goto L_088C1148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1148: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C114C; @@ -2513,8 +2914,21 @@ L_088C1154: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C1160u); aot_gpr_4 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 176u, 0x088C1160u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1160u) goto L_088C1160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1160: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2526,8 +2940,21 @@ L_088C1160: L_088C116C: aot_gpr_31 = (0x088C1174u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 178u, 0x088C1174u, 0x08A0A190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 312u, 0x08A0A190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1174u) goto L_088C1174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1174: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C1178; @@ -2542,8 +2969,21 @@ L_088C1180: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C118Cu); aot_gpr_4 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 181u, 0x088C118Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C118Cu) goto L_088C118C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C118C: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2555,8 +2995,21 @@ L_088C118C: L_088C1198: aot_gpr_31 = (0x088C11A0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 183u, 0x088C11A0u, 0x0886BD7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 782u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 782u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 782u, 0x0886BD7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C11A0u) goto L_088C11A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C11A0: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C11A4; @@ -2571,8 +3024,21 @@ L_088C11AC: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C11B8u); aot_gpr_4 = (0u | 364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 186u, 0x088C11B8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C11B8u) goto L_088C11B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C11B8: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2600,8 +3066,21 @@ L_088C11D8: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C11E4u); aot_gpr_4 = (0u | 364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 191u, 0x088C11E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C11E4u) goto L_088C11E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C11E4: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2613,8 +3092,21 @@ L_088C11E4: L_088C11F0: aot_gpr_31 = (0x088C11F8u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 193u, 0x088C11F8u, 0x0881B230u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 555u, 0x0881B230u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C11F8u) goto L_088C11F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C11F8: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C11FC; @@ -2629,8 +3121,21 @@ L_088C1204: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C1210u); aot_gpr_4 = (0u | 232u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 196u, 0x088C1210u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1210u) goto L_088C1210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1210: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2642,8 +3147,21 @@ L_088C1210: L_088C121C: aot_gpr_31 = (0x088C1224u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 198u, 0x088C1224u, 0x08825E1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 284u, 0x08825E1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1224u) goto L_088C1224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1224: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C1228; @@ -2658,8 +3176,21 @@ L_088C1230: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x088C123Cu); aot_gpr_4 = (0u | 364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 201u, 0x088C123Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C123Cu) goto L_088C123C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C123C: ctx.gpr[30] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -2671,8 +3202,21 @@ L_088C123C: L_088C1248: aot_gpr_31 = (0x088C1250u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 203u, 0x088C1250u, 0x089CE480u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 430u, 0x089CE480u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1250u) goto L_088C1250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1250: ctx.gpr[23] = (ctx.gpr[30] | 0u); goto L_088C1254; @@ -2718,8 +3262,21 @@ L_088C128C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(0)))))); aot_gpr_31 = (0x088C12A4u); ctx.gpr[23] = (ctx.gpr[23] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 209u, 0x088C12A4u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C12A4u) goto L_088C12A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C12A4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(4))); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -2768,16 +3325,42 @@ L_088C12D0: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088C1300u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 215u, 0x088C1300u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1300u) goto L_088C1300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1300: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(3)))))); ctx.gpr[7] = (aot_mem.aot_direct_load16(ctx.gpr[23] + static_cast(8))); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088C1314u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 216u, 0x088C1314u, 0x08B112B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 291u, 0x08B112B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1314u) goto L_088C1314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1314: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(100), aot_gpr_16); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(108))); @@ -2788,8 +3371,21 @@ L_088C1314: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088C1338u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 217u, 0x088C1338u, 0x08A9B1DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 394u, 0x08A9B1DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1338u) goto L_088C1338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1338: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -2918,8 +3514,21 @@ L_088C1454: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(3)))))); aot_gpr_31 = (0x088C1460u); aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[23] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 230u, 0x088C1460u, 0x0880E4A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 501u, 0x0880E4A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1460u) goto L_088C1460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1460: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2933,8 +3542,21 @@ L_088C1468: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C147Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 232u, 0x088C147Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C147Cu) goto L_088C147C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C147C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -2977,8 +3599,21 @@ L_088C14B8: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); aot_gpr_31 = (0x088C14D8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 238u, 0x088C14D8u, 0x08A9B1DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 394u, 0x08A9B1DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C14D8u) goto L_088C14D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C14D8: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -3149,8 +3784,21 @@ L_088C163C: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x088C165Cu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0046. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 254u, 0x088C165Cu, 0x088BE818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0046_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0046_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0046_entry, 46u, 207u, 0x088BE818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C165Cu) goto L_088C165C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C165C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3195,8 +3843,8 @@ L_088C169C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(448)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C16CC: @@ -3214,16 +3862,42 @@ L_088C16CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x088C1704u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 259u, 0x088C1704u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1704u) goto L_088C1704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1704: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_4 = (2246u << 16u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_31 = (0x088C1718u); aot_gpr_4 = (aot_gpr_4 + static_cast(23472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 260u, 0x088C1718u, 0x089F5114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 181u, 0x089F5114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1718u) goto L_088C1718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1718: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3244,8 +3918,8 @@ L_088C172C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C174C: @@ -3257,8 +3931,21 @@ L_088C174C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088C176Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 263u, 0x088C176Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C176Cu) goto L_088C176C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C176C: aot_gpr_4 = (2246u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); @@ -3270,16 +3957,29 @@ L_088C176C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088C1794u); aot_gpr_4 = (aot_gpr_4 + static_cast(23472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 264u, 0x088C1794u, 0x089F52D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 194u, 0x089F52D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1794u) goto L_088C1794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1794: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C17A8: @@ -3291,8 +3991,21 @@ L_088C17A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088C17C8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 266u, 0x088C17C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C17C8u) goto L_088C17C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C17C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_6 = (2246u << 16u); @@ -3306,8 +4019,8 @@ L_088C17C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C17F8: @@ -3322,14 +4035,27 @@ L_088C17F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088C1824u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(1124)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 268u, 0x088C1824u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1824u) goto L_088C1824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1824: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C1830: @@ -3422,8 +4148,21 @@ L_088C1974: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C1990u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 271u, 0x088C1990u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1990u) goto L_088C1990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1990: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(80), aot_run_words); } @@ -3433,8 +4172,21 @@ L_088C1990: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C19B8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 272u, 0x088C19B8u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C19B8u) goto L_088C19B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C19B8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(55), static_cast(0u)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -3730,8 +4482,21 @@ L_088C1DC0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088C1DECu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 282u, 0x088C1DECu, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1DECu) goto L_088C1DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1DEC: aot_gpr_4 = (48947u << 16u); aot_gpr_5 = (49049u << 16u); @@ -3752,8 +4517,21 @@ L_088C1DEC: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088C1E38u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 283u, 0x088C1E38u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1E38u) goto L_088C1E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1E38: ctx.gpr[17] = (0u | 3u); aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(52), static_cast(ctx.gpr[17])); @@ -3859,8 +4637,21 @@ L_088C1F70: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C1FBCu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 286u, 0x088C1FBCu, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C1FBCu) goto L_088C1FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C1FBC: aot_gpr_5 = (49024u << 16u); aot_gpr_4 = (48844u << 16u); @@ -3887,8 +4678,21 @@ L_088C1FBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088C2020u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 287u, 0x088C2020u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2020u) goto L_088C2020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2020: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(52), static_cast(aot_gpr_16)); aot_gpr_4 = (15897u << 16u); @@ -3979,8 +4783,21 @@ L_088C2130: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C216Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 290u, 0x088C216Cu, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C216Cu) goto L_088C216C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C216C: aot_gpr_4 = (48793u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -4001,8 +4818,21 @@ L_088C216C: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C21B8u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 291u, 0x088C21B8u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C21B8u) goto L_088C21B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C21B8: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(52), static_cast(ctx.gpr[17])); ctx.gpr[11] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); @@ -4103,8 +4933,21 @@ L_088C22FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C232Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 294u, 0x088C232Cu, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C232Cu) goto L_088C232C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C232C: aot_gpr_5 = (48793u << 16u); aot_gpr_4 = (49049u << 16u); @@ -4131,8 +4974,21 @@ L_088C232C: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C2390u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 295u, 0x088C2390u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2390u) goto L_088C2390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2390: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(52), static_cast(aot_gpr_16)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); @@ -4229,8 +5085,21 @@ L_088C24C0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C24F0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 298u, 0x088C24F0u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C24F0u) goto L_088C24F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C24F0: aot_gpr_5 = (48921u << 16u); aot_gpr_4 = (48793u << 16u); @@ -4254,8 +5123,21 @@ L_088C24F0: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C2548u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 299u, 0x088C2548u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2548u) goto L_088C2548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2548: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(52), static_cast(aot_gpr_16)); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(172))); @@ -4353,8 +5235,21 @@ L_088C2678: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C26B0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 302u, 0x088C26B0u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C26B0u) goto L_088C26B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C26B0: aot_gpr_5 = (48947u << 16u); aot_gpr_5 = (aot_gpr_5 | 13107u); @@ -4381,8 +5276,21 @@ L_088C26B0: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C2714u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 303u, 0x088C2714u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2714u) goto L_088C2714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2714: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(52), static_cast(aot_gpr_16)); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); @@ -4481,8 +5389,21 @@ L_088C2844: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C2884u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 306u, 0x088C2884u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2884u) goto L_088C2884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2884: aot_gpr_5 = (48998u << 16u); aot_gpr_4 = (48947u << 16u); @@ -4506,8 +5427,21 @@ L_088C2884: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C28DCu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 307u, 0x088C28DCu, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C28DCu) goto L_088C28DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C28DC: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(52), static_cast(aot_gpr_16)); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); @@ -4572,8 +5506,21 @@ L_088C2980: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C29C0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 310u, 0x088C29C0u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C29C0u) goto L_088C29C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C29C0: aot_gpr_4 = (48947u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -4591,8 +5538,21 @@ L_088C29C0: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C2A00u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 311u, 0x088C2A00u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2A00u) goto L_088C2A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2A00: aot_gpr_16 = (0u | 2u); aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(52), static_cast(aot_gpr_16)); @@ -4657,8 +5617,21 @@ L_088C2AB0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C2AE4u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 314u, 0x088C2AE4u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2AE4u) goto L_088C2AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2AE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(ctx.fpr[30])); aot_gpr_5 = (16268u << 16u); @@ -4673,8 +5646,21 @@ L_088C2AE4: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C2B18u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 315u, 0x088C2B18u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2B18u) goto L_088C2B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2B18: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(52), static_cast(aot_gpr_16)); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(188))); @@ -4738,8 +5724,21 @@ L_088C2BBC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088C2BF8u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 318u, 0x088C2BF8u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2BF8u) goto L_088C2BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2BF8: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20])}; @@ -4749,8 +5748,21 @@ L_088C2BF8: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C2C20u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 319u, 0x088C2C20u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2C20u) goto L_088C2C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2C20: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(52), static_cast(aot_gpr_16)); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(56), ctx.gpr[17]); @@ -4844,8 +5856,21 @@ L_088C2CE0: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088C2D0Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 321u, 0x088C2D0Cu, 0x088B9CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 389u, 0x088B9CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2D0Cu) goto L_088C2D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2D0C: aot_gpr_4 = (2246u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -4853,15 +5878,41 @@ L_088C2D0C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088C2D24u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 322u, 0x088C2D24u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2D24u) goto L_088C2D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2D24: aot_gpr_4 = (ctx.gpr[21] + static_cast(16)); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C2D34u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 323u, 0x088C2D34u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2D34u) goto L_088C2D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2D34: aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(52), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(56), 0u); @@ -4889,8 +5940,8 @@ L_088C2D34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C2D90: @@ -4903,8 +5954,21 @@ L_088C2D90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088C2DB4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 325u, 0x088C2DB4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2DB4u) goto L_088C2DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2DB4: aot_gpr_31 = (0x088C2DBCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-24040)); @@ -4914,8 +5978,21 @@ L_088C2DBC: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2DC8u); aot_gpr_4 = (aot_gpr_4 + static_cast(28208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 327u, 0x088C2DC8u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2DC8u) goto L_088C2DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2DC8: aot_gpr_31 = (0x088C2DD0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-24028)); @@ -4925,8 +6002,21 @@ L_088C2DD0: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2DDCu); aot_gpr_4 = (aot_gpr_4 + static_cast(28128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 329u, 0x088C2DDCu, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2DDCu) goto L_088C2DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2DDC: aot_gpr_31 = (0x088C2DE4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-24016)); @@ -4936,8 +6026,21 @@ L_088C2DE4: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2DF0u); aot_gpr_4 = (aot_gpr_4 + static_cast(28288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 331u, 0x088C2DF0u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2DF0u) goto L_088C2DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2DF0: aot_gpr_31 = (0x088C2DF8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-24004)); @@ -4947,8 +6050,21 @@ L_088C2DF8: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2E04u); aot_gpr_4 = (aot_gpr_4 + static_cast(28368)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 333u, 0x088C2E04u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2E04u) goto L_088C2E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2E04: aot_gpr_31 = (0x088C2E0Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23992)); @@ -4958,8 +6074,21 @@ L_088C2E0C: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2E18u); aot_gpr_4 = (aot_gpr_4 + static_cast(28448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 335u, 0x088C2E18u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2E18u) goto L_088C2E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2E18: aot_gpr_31 = (0x088C2E20u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23980)); @@ -4969,8 +6098,21 @@ L_088C2E20: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2E2Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(28528)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 337u, 0x088C2E2Cu, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2E2Cu) goto L_088C2E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2E2C: aot_gpr_31 = (0x088C2E34u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23968)); @@ -4980,8 +6122,21 @@ L_088C2E34: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2E40u); aot_gpr_4 = (aot_gpr_4 + static_cast(28608)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 339u, 0x088C2E40u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2E40u) goto L_088C2E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2E40: aot_gpr_31 = (0x088C2E48u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23956)); @@ -4991,8 +6146,21 @@ L_088C2E48: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2E54u); aot_gpr_4 = (aot_gpr_4 + static_cast(28688)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 341u, 0x088C2E54u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2E54u) goto L_088C2E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2E54: aot_gpr_31 = (0x088C2E5Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23944)); @@ -5002,8 +6170,21 @@ L_088C2E5C: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2E68u); aot_gpr_4 = (aot_gpr_4 + static_cast(28768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 343u, 0x088C2E68u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2E68u) goto L_088C2E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2E68: aot_gpr_31 = (0x088C2E70u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23932)); @@ -5013,8 +6194,21 @@ L_088C2E70: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2E7Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(28848)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 345u, 0x088C2E7Cu, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2E7Cu) goto L_088C2E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2E7C: aot_gpr_31 = (0x088C2E84u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23920)); @@ -5024,8 +6218,21 @@ L_088C2E84: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x088C2E90u); aot_gpr_4 = (aot_gpr_4 + static_cast(28928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 347u, 0x088C2E90u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2E90u) goto L_088C2E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2E90: aot_gpr_31 = (0x088C2E98u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23908)); @@ -5035,8 +6242,8 @@ L_088C2E98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C2EA4: @@ -5067,8 +6274,21 @@ L_088C2ED4: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088C2EE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 352u, 0x088C2EE4u, 0x088B97A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 320u, 0x088B97A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2EE4u) goto L_088C2EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2EE4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5106,8 +6326,8 @@ L_088C2F0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C2F20: @@ -5160,8 +6380,21 @@ L_088C2F80: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088C2F90u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 363u, 0x088C2F90u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C2F90u) goto L_088C2F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C2F90: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -5181,8 +6414,8 @@ L_088C2F9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C2FB4: @@ -5227,8 +6460,21 @@ L_088C2FF4: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x088C300Cu); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 370u, 0x088C300Cu, 0x08871D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 485u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 485u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 485u, 0x08871D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C300Cu) goto L_088C300C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C300C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5295,8 +6541,21 @@ L_088C3090: L_088C3098: aot_gpr_31 = (0x088C30A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 377u, 0x088C30A0u, 0x089E6948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 536u, 0x089E6948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C30A0u) goto L_088C30A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C30A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5350,8 +6609,21 @@ L_088C30FC: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x088C310Cu); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 384u, 0x088C310Cu, 0x08871D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 485u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 485u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 485u, 0x08871D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C310Cu) goto L_088C310C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C310C: ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[10] + static_cast(16))); @@ -5365,8 +6637,8 @@ L_088C311C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C312C: @@ -5414,8 +6686,21 @@ L_088C31BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C31C8u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 389u, 0x088C31C8u, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C31C8u) goto L_088C31C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C31C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); goto L_088C31CC; @@ -5426,8 +6711,21 @@ L_088C31CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C31E4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 391u, 0x088C31E4u, 0x088724C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 560u, 0x088724C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C31E4u) goto L_088C31E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C31E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(-8)); @@ -5436,8 +6734,8 @@ L_088C31E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3200: @@ -5494,8 +6792,21 @@ L_088C32B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C32C0u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 394u, 0x088C32C0u, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C32C0u) goto L_088C32C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C32C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); goto L_088C32C4; @@ -5506,15 +6817,28 @@ L_088C32C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C32DCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 396u, 0x088C32DCu, 0x088724C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 560u, 0x088724C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C32DCu) goto L_088C32DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C32DC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C32EC: @@ -5551,8 +6875,21 @@ L_088C3330: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(84))); aot_gpr_31 = (0x088C3340u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 400u, 0x088C3340u, 0x08B245DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 37u, 0x08B245DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3340u) goto L_088C3340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3340: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088C3344; @@ -5613,8 +6950,8 @@ L_088C3394: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C33B0: @@ -5628,8 +6965,21 @@ L_088C33B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088C33E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 409u, 0x088C33E0u, 0x08B2463Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 41u, 0x08B2463Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C33E0u) goto L_088C33E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C33E0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -5645,8 +6995,21 @@ L_088C33F0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C3404u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 411u, 0x088C3404u, 0x089E7464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 705u, 0x089E7464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3404u) goto L_088C3404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3404: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_088C3408; @@ -5692,8 +7055,8 @@ L_088C3448: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3464: @@ -5718,8 +7081,21 @@ L_088C3494: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C34A4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 419u, 0x088C34A4u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C34A4u) goto L_088C34A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C34A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (0u | 5u); @@ -5733,8 +7109,21 @@ L_088C34B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x088C34C0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 421u, 0x088C34C0u, 0x08A9402Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 6u, 0x08A9402Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C34C0u) goto L_088C34C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C34C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5782,8 +7171,8 @@ L_088C3504: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3520: @@ -5818,8 +7207,21 @@ L_088C3578: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088C3590u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 430u, 0x088C3590u, 0x08A940D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 17u, 0x08A940D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3590u) goto L_088C3590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3590: ctx.gpr[22] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(8))); @@ -5848,8 +7250,21 @@ L_088C35B8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(92))); aot_gpr_31 = (0x088C35CCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 433u, 0x088C35CCu, 0x08B245DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 37u, 0x08B245DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C35CCu) goto L_088C35CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C35CC: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088C35D0; @@ -5890,8 +7305,21 @@ L_088C3608: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(88))); aot_gpr_31 = (0x088C361Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 438u, 0x088C361Cu, 0x08B245DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 37u, 0x08B245DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C361Cu) goto L_088C361C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C361C: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088C3620; @@ -5928,8 +7356,21 @@ L_088C3650: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C3660u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 443u, 0x088C3660u, 0x08B2463Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 41u, 0x08B2463Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3660u) goto L_088C3660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3660: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -5945,8 +7386,21 @@ L_088C3670: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C3684u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 445u, 0x088C3684u, 0x089E7464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 705u, 0x089E7464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3684u) goto L_088C3684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3684: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_088C3688; @@ -5973,8 +7427,21 @@ L_088C36A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C36B8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21716)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 449u, 0x088C36B8u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C36B8u) goto L_088C36B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C36B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6006,8 +7473,8 @@ L_088C36D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3708: @@ -6025,8 +7492,21 @@ L_088C3708: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088C3744u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 453u, 0x088C3744u, 0x08B2463Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 41u, 0x08B2463Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3744u) goto L_088C3744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3744: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -6041,8 +7521,21 @@ L_088C3754: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C3764u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 455u, 0x088C3764u, 0x08B2463Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 41u, 0x08B2463Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3764u) goto L_088C3764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3764: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088C3768; @@ -6095,8 +7588,8 @@ L_088C37C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C37E0: @@ -6132,8 +7625,21 @@ L_088C382C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088C3848u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 463u, 0x088C3848u, 0x08B245DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 37u, 0x08B245DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3848u) goto L_088C3848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3848: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_088C384C; @@ -6193,8 +7699,21 @@ L_088C3888: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C38A4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 471u, 0x088C38A4u, 0x08B245DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 37u, 0x08B245DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C38A4u) goto L_088C38A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C38A4: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088C38A8; @@ -6209,8 +7728,21 @@ L_088C38B0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C38BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 474u, 0x088C38BCu, 0x088B96E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 305u, 0x088B96E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C38BCu) goto L_088C38BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C38BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6251,8 +7783,8 @@ L_088C38D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3900: @@ -6268,8 +7800,21 @@ L_088C3900: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088C3934u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 480u, 0x088C3934u, 0x08B2463Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 41u, 0x08B2463Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3934u) goto L_088C3934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3934: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); @@ -6284,14 +7829,40 @@ L_088C3944: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C3954u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 482u, 0x088C3954u, 0x08B2463Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 41u, 0x08B2463Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3954u) goto L_088C3954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3954: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C3960u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 483u, 0x088C3960u, 0x088B96E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 305u, 0x088B96E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3960u) goto L_088C3960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3960: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6369,8 +7940,8 @@ L_088C39C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C39E0: @@ -6389,8 +7960,21 @@ L_088C3A08: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C3A14u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 495u, 0x088C3A14u, 0x08B58300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 61u, 0x08B58300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3A14u) goto L_088C3A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3A14: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6465,8 +8049,8 @@ L_088C3A70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3A8C: @@ -6506,8 +8090,21 @@ L_088C3ACC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C3ADCu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 508u, 0x088C3ADCu, 0x089E75E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 723u, 0x089E75E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3ADCu) goto L_088C3ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3ADC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6580,8 +8177,21 @@ L_088C3B50: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C3B60u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 518u, 0x088C3B60u, 0x089E75E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 723u, 0x089E75E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3B60u) goto L_088C3B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3B60: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6592,8 +8202,8 @@ L_088C3B60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3B78: @@ -6634,8 +8244,21 @@ L_088C3BBC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C3BCCu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 523u, 0x088C3BCCu, 0x089E75E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 723u, 0x089E75E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3BCCu) goto L_088C3BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3BCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6731,8 +8354,21 @@ L_088C3C68: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C3C78u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 536u, 0x088C3C78u, 0x089E75E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 723u, 0x089E75E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3C78u) goto L_088C3C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3C78: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6744,8 +8380,8 @@ L_088C3C78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3C94: @@ -6834,8 +8470,21 @@ L_088C3D54: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C3D64u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 547u, 0x088C3D64u, 0x089E7554u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 714u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 714u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 714u, 0x089E7554u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3D64u) goto L_088C3D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3D64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6915,16 +8564,42 @@ L_088C3DE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[17]); aot_gpr_31 = (0x088C3DF4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 557u, 0x088C3DF4u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3DF4u) goto L_088C3DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3DF4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(16))); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (aot_gpr_5 + static_cast(24)); aot_gpr_31 = (0x088C3E08u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 558u, 0x088C3E08u, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3E08u) goto L_088C3E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3E08: ctx.gpr[20] = (ctx.gpr[2] | 0u); ctx.gpr[17] = (ctx.gpr[21] | 0u); @@ -6946,8 +8621,21 @@ L_088C3E20: aot_gpr_5 = (aot_gpr_5 + static_cast(16)); aot_gpr_31 = (0x088C3E38u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 561u, 0x088C3E38u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3E38u) goto L_088C3E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3E38: ctx.gpr[18] = (ctx.gpr[23] + ctx.gpr[18]); ctx.gpr[17] = (ctx.gpr[17] + static_cast(-1)); @@ -6964,8 +8652,21 @@ L_088C3E48: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C3E5Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0047->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0047_entry, 563u, 0x088C3E5Cu, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C3E5Cu) goto L_088C3E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C3E5C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -7000,8 +8701,8 @@ L_088C3E88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3EB8: @@ -7027,8 +8728,8 @@ L_088C3EE4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-21528))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C3EFC: diff --git a/profiles/vcs/generated/generated_unit_0048.cpp b/profiles/vcs/generated/generated_unit_0048.cpp index b1ef269..d4f73bf 100644 --- a/profiles/vcs/generated/generated_unit_0048.cpp +++ b/profiles/vcs/generated/generated_unit_0048.cpp @@ -884,6 +884,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088C4000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -933,8 +957,8 @@ L_088C4024: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C403C: @@ -955,8 +979,21 @@ L_088C403C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x088C4080u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 7u, 0x088C4080u, 0x088C2EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 349u, 0x088C2EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4080u) goto L_088C4080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4080: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -969,8 +1006,21 @@ L_088C4080: L_088C408C: aot_gpr_31 = (0x088C4094u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 9u, 0x088C4094u, 0x088C2EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 349u, 0x088C2EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4094u) goto L_088C4094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4094: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1078,8 +1128,21 @@ L_088C4144: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(124))); aot_gpr_31 = (0x088C4154u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(68))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 20u, 0x088C4154u, 0x08A93FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 640u, 0x08A93FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4154u) goto L_088C4154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4154: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(28))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -1098,8 +1161,21 @@ L_088C4170: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C4184u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21672)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 22u, 0x088C4184u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4184u) goto L_088C4184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4184: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); goto L_088C4188; @@ -1109,8 +1185,21 @@ L_088C4188: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C419Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 24u, 0x088C419Cu, 0x088C312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 387u, 0x088C312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C419Cu) goto L_088C419C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C419C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(28))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -1142,8 +1231,21 @@ L_088C41D0: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C41E8u); ctx.gpr[8] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 27u, 0x088C41E8u, 0x088C3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 452u, 0x088C3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C41E8u) goto L_088C41E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C41E8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1156,8 +1258,21 @@ L_088C41F0: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088C4200u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 29u, 0x088C4200u, 0x089E7584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 718u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 718u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 718u, 0x089E7584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4200u) goto L_088C4200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4200: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -1172,8 +1287,8 @@ L_088C4200: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C4228: @@ -1198,8 +1313,21 @@ L_088C4264: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C427Cu); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 33u, 0x088C427Cu, 0x08871D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 485u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 485u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 485u, 0x08871D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C427Cu) goto L_088C427C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C427C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); goto L_088C4280; @@ -1251,8 +1379,21 @@ L_088C42DC: L_088C42EC: aot_gpr_31 = (0x088C42F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 39u, 0x088C42F4u, 0x088C2FB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 365u, 0x088C2FB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C42F4u) goto L_088C42F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C42F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -1282,8 +1423,8 @@ L_088C4324: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-21496))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C433C: @@ -1418,8 +1559,21 @@ L_088C4464: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); aot_gpr_31 = (0x088C4488u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 53u, 0x088C4488u, 0x08A93FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 640u, 0x08A93FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4488u) goto L_088C4488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4488: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -1449,8 +1603,21 @@ L_088C44B8: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C44CCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 56u, 0x088C44CCu, 0x088C32ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 397u, 0x088C32ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C44CCu) goto L_088C44CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C44CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (ctx.gpr[19] >> 24u); @@ -1516,8 +1683,21 @@ L_088C4558: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_31 = (0x088C4564u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 63u, 0x088C4564u, 0x08A9402Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 6u, 0x08A9402Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4564u) goto L_088C4564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4564: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -1547,8 +1727,21 @@ L_088C4594: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088C45A8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 66u, 0x088C45A8u, 0x088C32ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 397u, 0x088C32ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C45A8u) goto L_088C45A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C45A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (ctx.gpr[19] >> 24u); @@ -1575,8 +1768,21 @@ L_088C45DC: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088C45F0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 69u, 0x088C45F0u, 0x088C33B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 408u, 0x088C33B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C45F0u) goto L_088C45F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C45F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (ctx.gpr[19] >> 24u); @@ -1608,8 +1814,21 @@ L_088C4624: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C464Cu); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 72u, 0x088C464Cu, 0x088C3520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 427u, 0x088C3520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C464Cu) goto L_088C464C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C464C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1699,8 +1918,21 @@ L_088C46FC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088C4710u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 81u, 0x088C4710u, 0x088C3520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 427u, 0x088C3520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4710u) goto L_088C4710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4710: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1720,8 +1952,21 @@ L_088C4718: aot_gpr_6 = (aot_gpr_6 & 511u); aot_gpr_31 = (0x088C4744u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 83u, 0x088C4744u, 0x08A93C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 588u, 0x08A93C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4744u) goto L_088C4744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4744: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -1737,8 +1982,21 @@ L_088C4744: L_088C4760: aot_gpr_31 = (0x088C4768u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 85u, 0x088C4768u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4768u) goto L_088C4768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4768: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1808,8 +2066,21 @@ L_088C47F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_31 = (0x088C4804u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 92u, 0x088C4804u, 0x08A93FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 640u, 0x08A93FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4804u) goto L_088C4804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4804: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -1839,8 +2110,21 @@ L_088C4834: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088C4848u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 95u, 0x088C4848u, 0x088C32ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 397u, 0x088C32ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4848u) goto L_088C4848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4848: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (ctx.gpr[19] >> 24u); @@ -1867,8 +2151,21 @@ L_088C487C: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088C4890u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 98u, 0x088C4890u, 0x088C33B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 408u, 0x088C33B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4890u) goto L_088C4890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4890: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (ctx.gpr[19] >> 24u); @@ -2384,8 +2681,21 @@ L_088C4C74: L_088C4C94: aot_gpr_31 = (0x088C4C9Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 154u, 0x088C4C9Cu, 0x088C2EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 349u, 0x088C2EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4C9Cu) goto L_088C4C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4C9C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2417,8 +2727,21 @@ L_088C4CC0: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088C4CE8u); ctx.gpr[8] = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 157u, 0x088C4CE8u, 0x088C3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 452u, 0x088C3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4CE8u) goto L_088C4CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4CE8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2434,8 +2757,21 @@ L_088C4CF0: aot_gpr_6 = (aot_gpr_29 + static_cast(4)); aot_gpr_31 = (0x088C4D0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 159u, 0x088C4D0Cu, 0x089E7584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 718u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 718u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 718u, 0x089E7584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4D0Cu) goto L_088C4D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4D0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2503,8 +2839,21 @@ L_088C4D7C: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_gpr_31 = (0x088C4D9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 166u, 0x088C4D9Cu, 0x088C3C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 537u, 0x088C3C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4D9Cu) goto L_088C4D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4D9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (ctx.gpr[20] << 3u); @@ -2532,8 +2881,21 @@ L_088C4D9C: L_088C4DE8: aot_gpr_31 = (0x088C4DF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 168u, 0x088C4DF0u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4DF0u) goto L_088C4DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4DF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2687,8 +3049,21 @@ L_088C4F1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C4F2Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 184u, 0x088C4F2Cu, 0x088C3EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 566u, 0x088C3EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C4F2Cu) goto L_088C4F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C4F2C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[19] >> 24u); @@ -2798,8 +3173,21 @@ L_088C4FF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C5008u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 197u, 0x088C5008u, 0x088C3A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 504u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 504u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 504u, 0x088C3A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5008u) goto L_088C5008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5008: aot_gpr_4 = (ctx.gpr[19] >> 24u); if (ctx.gpr[2] == aot_gpr_4) { @@ -2898,8 +3286,21 @@ L_088C50C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C50D8u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 208u, 0x088C50D8u, 0x088C3B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 519u, 0x088C3B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C50D8u) goto L_088C50D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C50D8: aot_gpr_4 = (ctx.gpr[19] >> 24u); if (ctx.gpr[2] == aot_gpr_4) { @@ -3038,8 +3439,21 @@ L_088C51F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C5208u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 223u, 0x088C5208u, 0x08872148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 522u, 0x08872148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5208u) goto L_088C5208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5208: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -3062,8 +3476,21 @@ L_088C5224: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C5234u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 226u, 0x088C5234u, 0x088723DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 550u, 0x088723DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5234u) goto L_088C5234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5234: { const bool branch_taken = static_cast(ctx.gpr[20]) < 0; if (branch_taken) { @@ -3136,8 +3563,21 @@ L_088C52B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C52C4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 234u, 0x088C52C4u, 0x08AB05DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 68u, 0x08AB05DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C52C4u) goto L_088C52C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C52C4: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_gpr_4 << 3u); @@ -3234,8 +3674,21 @@ L_088C53B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C53BCu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 244u, 0x088C53BCu, 0x08AB05DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 68u, 0x08AB05DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C53BCu) goto L_088C53BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C53BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); goto L_088C53C0; @@ -3269,8 +3722,21 @@ L_088C53EC: ctx.gpr[17] = (aot_gpr_5 + static_cast(-1)); aot_gpr_31 = (0x088C540Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 248u, 0x088C540Cu, 0x088723DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 550u, 0x088723DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C540Cu) goto L_088C540C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C540C: { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; if (branch_taken) { @@ -3307,8 +3773,21 @@ L_088C543C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C544Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21628)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 253u, 0x088C544Cu, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C544Cu) goto L_088C544C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C544C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (0u | 3u); @@ -3322,8 +3801,21 @@ L_088C544C: L_088C545C: aot_gpr_31 = (0x088C5464u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 255u, 0x088C5464u, 0x088C2EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 349u, 0x088C2EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5464u) goto L_088C5464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5464: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -3337,8 +3829,21 @@ L_088C5470: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C5480u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21588)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 257u, 0x088C5480u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5480u) goto L_088C5480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5480: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (0u | 3u); @@ -3352,8 +3857,21 @@ L_088C5480: L_088C5490: aot_gpr_31 = (0x088C5498u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 259u, 0x088C5498u, 0x088C2EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 349u, 0x088C2EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5498u) goto L_088C5498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5498: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -3367,8 +3885,21 @@ L_088C54A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C54B4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21556)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 261u, 0x088C54B4u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C54B4u) goto L_088C54B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C54B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); aot_fpr_13 = std::bit_cast(0u); @@ -3471,8 +4002,21 @@ L_088C553C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C55D0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 269u, 0x088C55D0u, 0x088724C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 560u, 0x088724C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C55D0u) goto L_088C55D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C55D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -3569,14 +4113,40 @@ L_088C56B4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C56C4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 278u, 0x088C56C4u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C56C4u) goto L_088C56C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C56C4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088C56D0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 279u, 0x088C56D0u, 0x08A93FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 640u, 0x08A93FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C56D0u) goto L_088C56D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C56D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_5 = (ctx.gpr[2] + static_cast(4)); @@ -3673,8 +4243,21 @@ L_088C5798: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C57B0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 288u, 0x088C57B0u, 0x08A94190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 28u, 0x08A94190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C57B0u) goto L_088C57B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C57B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_5 = (ctx.gpr[23] + static_cast(4)); @@ -3701,8 +4284,21 @@ L_088C57DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C57E8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 291u, 0x088C57E8u, 0x08AB05DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 68u, 0x08AB05DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C57E8u) goto L_088C57E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C57E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3725,8 +4321,21 @@ L_088C57F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C5828u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 293u, 0x088C5828u, 0x08AB04C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 56u, 0x08AB04C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5828u) goto L_088C5828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5828: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(12), ctx.gpr[21]); @@ -3774,8 +4383,21 @@ L_088C5884: aot_gpr_5 = (aot_gpr_5 << 3u); aot_gpr_31 = (0x088C58A0u); aot_gpr_5 = (ctx.gpr[23] + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 297u, 0x088C58A0u, 0x08AB0548u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 59u, 0x08AB0548u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C58A0u) goto L_088C58A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C58A0: aot_gpr_4 = (ctx.gpr[21] << 2u); aot_gpr_4 = (ctx.gpr[20] + aot_gpr_4); @@ -3812,8 +4434,21 @@ L_088C58CC: L_088C58EC: aot_gpr_31 = (0x088C58F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 302u, 0x088C58F4u, 0x08A16D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 534u, 0x08A16D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C58F4u) goto L_088C58F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C58F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3836,8 +4471,8 @@ L_088C58FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5928: @@ -3847,8 +4482,8 @@ L_088C5928: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5940: @@ -3892,8 +4527,8 @@ L_088C5984: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5990: @@ -3947,15 +4582,15 @@ L_088C59E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C59F0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C59F8: @@ -4116,8 +4751,8 @@ L_088C5B10: goto L_088C5B14; L_088C5B14: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5B1C: @@ -4146,8 +4781,8 @@ L_088C5B50: goto L_088C5B64; L_088C5B64: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5B6C: @@ -4169,13 +4804,39 @@ L_088C5B84: L_088C5B94: aot_gpr_31 = (0x088C5B9Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 343u, 0x088C5B9Cu, 0x08B59EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 542u, 0x08B59EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5B9Cu) goto L_088C5B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5B9C: aot_gpr_31 = (0x088C5BA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 344u, 0x088C5BA4u, 0x08A8C7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 75u, 0x08A8C7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5BA4u) goto L_088C5BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5BA4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16352))); aot_gpr_16 = (0u | 0u); @@ -4249,8 +4910,21 @@ L_088C5C18: L_088C5C28: aot_gpr_31 = (0x088C5C30u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 353u, 0x088C5C30u, 0x08A8C7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 75u, 0x08A8C7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5C30u) goto L_088C5C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5C30: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16352))); aot_gpr_16 = (0u | 0u); @@ -4334,8 +5008,8 @@ L_088C5CC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5CD0: @@ -4349,8 +5023,8 @@ L_088C5CD0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5CF4: @@ -4415,8 +5089,21 @@ L_088C5D94: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C5DA4u); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 368u, 0x088C5DA4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5DA4u) goto L_088C5DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5DA4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1962))); ctx.gpr[19] = (0u | 0u); @@ -4475,8 +5162,21 @@ L_088C5E18: aot_gpr_5 = (aot_gpr_6 + static_cast(1920)); aot_gpr_31 = (0x088C5E2Cu); aot_gpr_6 = (ctx.gpr[7] - ctx.gpr[19]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 374u, 0x088C5E2Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5E2Cu) goto L_088C5E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5E2C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1962))); aot_gpr_5 = (aot_gpr_4 << 4u); @@ -4515,8 +5215,8 @@ L_088C5E60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5E7C: @@ -4591,8 +5291,21 @@ L_088C5F20: aot_gpr_5 = (ctx.gpr[18] & 255u); aot_gpr_31 = (0x088C5F2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 386u, 0x088C5F2Cu, 0x088CA378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 435u, 0x088CA378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5F2Cu) goto L_088C5F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5F2C: aot_gpr_4 = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (aot_gpr_4 << 16u); @@ -4616,8 +5329,21 @@ L_088C5F50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C5F5Cu); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 389u, 0x088C5F5Cu, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5F5Cu) goto L_088C5F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5F5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4629,8 +5355,21 @@ L_088C5F64: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C5F70u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 391u, 0x088C5F70u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C5F70u) goto L_088C5F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C5F70: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4641,8 +5380,8 @@ L_088C5F70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C5F88: @@ -4677,8 +5416,8 @@ L_088C5F88: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(92), static_cast(ctx.gpr[10])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(113), static_cast(ctx.gpr[10])); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6004: @@ -4727,8 +5466,8 @@ L_088C6060: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(92), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(113), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6080: @@ -4747,8 +5486,8 @@ L_088C608C: goto L_088C609C; L_088C609C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C60A4: @@ -4761,8 +5500,21 @@ L_088C60A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088C60C8u); aot_gpr_6 = (aot_gpr_6 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 401u, 0x088C60C8u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C60C8u) goto L_088C60C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C60C8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(23520), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -4778,15 +5530,41 @@ L_088C60D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C60E8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 403u, 0x088C60E8u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C60E8u) goto L_088C60E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C60E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 6u); aot_gpr_31 = (0x088C60F8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 404u, 0x088C60F8u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C60F8u) goto L_088C60F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C60F8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -4801,15 +5579,41 @@ L_088C6104: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C6114u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 406u, 0x088C6114u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6114u) goto L_088C6114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6114: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x088C6124u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 407u, 0x088C6124u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6124u) goto L_088C6124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6124: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -4824,15 +5628,41 @@ L_088C6130: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C6140u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 409u, 0x088C6140u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6140u) goto L_088C6140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6140: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x088C6150u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 410u, 0x088C6150u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6150u) goto L_088C6150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6150: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -4847,15 +5677,41 @@ L_088C615C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C616Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 412u, 0x088C616Cu, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C616Cu) goto L_088C616C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C616C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 11u); aot_gpr_31 = (0x088C617Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 413u, 0x088C617Cu, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C617Cu) goto L_088C617C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C617C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -4870,15 +5726,41 @@ L_088C6188: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C6198u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 415u, 0x088C6198u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6198u) goto L_088C6198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6198: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 14u); aot_gpr_31 = (0x088C61A8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 416u, 0x088C61A8u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C61A8u) goto L_088C61A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C61A8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -4893,15 +5775,41 @@ L_088C61B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C61C4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 418u, 0x088C61C4u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C61C4u) goto L_088C61C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C61C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 12u); aot_gpr_31 = (0x088C61D4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 419u, 0x088C61D4u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C61D4u) goto L_088C61D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C61D4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -4916,15 +5824,41 @@ L_088C61E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C61F0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 421u, 0x088C61F0u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C61F0u) goto L_088C61F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C61F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x088C6200u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 422u, 0x088C6200u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6200u) goto L_088C6200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6200: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -4939,8 +5873,21 @@ L_088C620C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C621Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 424u, 0x088C621Cu, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C621Cu) goto L_088C621C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C621C: aot_gpr_4 = (0u | 0u); aot_gpr_6 = (0u | 127u); @@ -4986,8 +5933,8 @@ L_088C6278: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6298: @@ -5006,8 +5953,21 @@ L_088C62B4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C62C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 430u, 0x088C62C0u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C62C0u) goto L_088C62C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C62C0: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(26152), aot_gpr_4); @@ -5024,8 +5984,21 @@ L_088C62D4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C62E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 433u, 0x088C62E0u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C62E0u) goto L_088C62E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C62E0: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(26148), aot_gpr_4); @@ -5042,8 +6015,21 @@ L_088C62F4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C6300u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 436u, 0x088C6300u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6300u) goto L_088C6300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6300: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(23528), aot_gpr_4); @@ -5060,8 +6046,21 @@ L_088C6314: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C6320u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 439u, 0x088C6320u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6320u) goto L_088C6320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6320: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(23524), aot_gpr_4); @@ -5078,8 +6077,21 @@ L_088C6334: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C6340u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 442u, 0x088C6340u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6340u) goto L_088C6340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6340: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(23520), aot_gpr_4); @@ -5096,8 +6108,21 @@ L_088C6354: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C6360u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 445u, 0x088C6360u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6360u) goto L_088C6360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6360: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24260), aot_gpr_4); @@ -5114,8 +6139,21 @@ L_088C6374: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C6380u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 448u, 0x088C6380u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6380u) goto L_088C6380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6380: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24256), aot_gpr_4); @@ -5132,8 +6170,21 @@ L_088C6394: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C63A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 451u, 0x088C63A0u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C63A0u) goto L_088C63A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C63A0: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(26144), aot_gpr_4); @@ -5143,14 +6194,14 @@ L_088C63A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C63B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C63C0: @@ -5158,8 +6209,21 @@ L_088C63C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088C63D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 455u, 0x088C63D4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C63D4u) goto L_088C63D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C63D4: aot_gpr_31 = (0x088C63DCu); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -5209,8 +6273,8 @@ L_088C6418: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C642C: @@ -5246,8 +6310,8 @@ L_088C6468: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-21128))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6480: @@ -5284,8 +6348,21 @@ L_088C64B0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088C64C0u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 470u, 0x088C64C0u, 0x088D85BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 127u, 0x088D85BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C64C0u) goto L_088C64C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C64C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5306,8 +6383,21 @@ L_088C64D4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088C64E4u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 473u, 0x088C64E4u, 0x088D8878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 155u, 0x088D8878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C64E4u) goto L_088C64E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C64E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5328,8 +6418,21 @@ L_088C64F8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088C6508u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 476u, 0x088C6508u, 0x088C99ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 326u, 0x088C99ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6508u) goto L_088C6508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6508: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5366,8 +6469,21 @@ L_088C6530: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088C6540u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 481u, 0x088C6540u, 0x088DA180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 326u, 0x088DA180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6540u) goto L_088C6540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6540: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5378,8 +6494,21 @@ L_088C6540: L_088C6548: aot_gpr_31 = (0x088C6550u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 483u, 0x088C6550u, 0x088DAA78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 421u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 421u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 421u, 0x088DAA78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6550u) goto L_088C6550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6550: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5398,8 +6527,21 @@ L_088C6558: L_088C6564: aot_gpr_31 = (0x088C656Cu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 486u, 0x088C656Cu, 0x088DB134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 507u, 0x088DB134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C656Cu) goto L_088C656C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C656C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5418,8 +6560,21 @@ L_088C6574: L_088C6580: aot_gpr_31 = (0x088C6588u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 489u, 0x088C6588u, 0x088C9B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 342u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 342u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 342u, 0x088C9B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6588u) goto L_088C6588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6588: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5445,8 +6600,21 @@ L_088C6598: L_088C65A4: aot_gpr_31 = (0x088C65ACu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 493u, 0x088C65ACu, 0x088DA5A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 366u, 0x088DA5A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C65ACu) goto L_088C65AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C65AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5465,8 +6633,21 @@ L_088C65B4: L_088C65C0: aot_gpr_31 = (0x088C65C8u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 496u, 0x088C65C8u, 0x088C9A4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 335u, 0x088C9A4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C65C8u) goto L_088C65C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C65C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5487,8 +6668,21 @@ L_088C65DC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088C65ECu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 499u, 0x088C65ECu, 0x088C9818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 317u, 0x088C9818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C65ECu) goto L_088C65EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C65EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5500,8 +6694,8 @@ L_088C65F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6600: @@ -5548,8 +6742,21 @@ L_088C6648: } L_088C6650: aot_gpr_31 = (0x088C6658u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 506u, 0x088C6658u, 0x088CB124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 617u, 0x088CB124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6658u) goto L_088C6658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6658: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5573,8 +6780,21 @@ L_088C6668: } L_088C6670: aot_gpr_31 = (0x088C6678u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 510u, 0x088C6678u, 0x088C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 177u, 0x088C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6678u) goto L_088C6678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6678: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5596,8 +6816,21 @@ L_088C6680: } L_088C669C: aot_gpr_31 = (0x088C66A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 513u, 0x088C66A4u, 0x08A75DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 395u, 0x08A75DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C66A4u) goto L_088C66A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C66A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5607,8 +6840,21 @@ L_088C66A4: } L_088C66AC: aot_gpr_31 = (0x088C66B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 515u, 0x088C66B4u, 0x088C90E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 180u, 0x088C90E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C66B4u) goto L_088C66B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C66B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5620,8 +6866,8 @@ L_088C66BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C66C8: @@ -5656,8 +6902,21 @@ L_088C66F8: } L_088C6718: aot_gpr_31 = (0x088C6720u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 520u, 0x088C6720u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6720u) goto L_088C6720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6720: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -5666,8 +6925,21 @@ L_088C6720: goto L_088C6728; L_088C6728: aot_gpr_31 = (0x088C6730u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 522u, 0x088C6730u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6730u) goto L_088C6730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6730: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5712,8 +6984,21 @@ L_088C6770: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C67A4u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 527u, 0x088C67A4u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C67A4u) goto L_088C67A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C67A4: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -5778,8 +7063,21 @@ L_088C67F8: aot_gpr_6 = (aot_gpr_6 + static_cast(28000)); aot_gpr_31 = (0x088C6854u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(68), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 533u, 0x088C6854u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6854u) goto L_088C6854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6854: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5790,8 +7088,8 @@ L_088C6854: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C686C: @@ -5817,8 +7115,21 @@ L_088C68B0: aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x088C68BCu); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 536u, 0x088C68BCu, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C68BCu) goto L_088C68BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C68BC: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -5829,8 +7140,21 @@ L_088C68BC: } L_088C68C8: aot_gpr_31 = (0x088C68D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 538u, 0x088C68D0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C68D0u) goto L_088C68D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C68D0: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_gpr_4 = (16908u << 16u); @@ -5895,20 +7219,59 @@ L_088C6934: ctx.gpr[21] = (aot_gpr_4 + static_cast(-6640)); aot_gpr_31 = (0x088C6944u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 546u, 0x088C6944u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6944u) goto L_088C6944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6944: ctx.gpr[19] = (ctx.gpr[2] & 65535u); aot_gpr_31 = (0x088C6950u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 547u, 0x088C6950u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6950u) goto L_088C6950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6950: ctx.gpr[20] = (ctx.gpr[2] & 65535u); aot_gpr_31 = (0x088C695Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 548u, 0x088C695Cu, 0x0898C3A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 90u, 0x0898C3A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C695Cu) goto L_088C695C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C695C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -6020,8 +7383,21 @@ L_088C6A2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C6A40u); aot_gpr_5 = (0u | 70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 562u, 0x088C6A40u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6A40u) goto L_088C6A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6A40: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6055,8 +7431,21 @@ L_088C6A50: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C6AA8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 564u, 0x088C6AA8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6AA8u) goto L_088C6AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6AA8: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -6081,8 +7470,8 @@ L_088C6AB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6ADC: @@ -6228,8 +7617,21 @@ L_088C6BE8: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088C6C0Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 583u, 0x088C6C0Cu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6C0Cu) goto L_088C6C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6C0C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6317,8 +7719,21 @@ L_088C6CAC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C6CE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 591u, 0x088C6CE4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6CE4u) goto L_088C6CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6CE4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -6343,8 +7758,8 @@ L_088C6CF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6D14: @@ -6368,8 +7783,21 @@ L_088C6D14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x088C6D70u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 595u, 0x088C6D70u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6D70u) goto L_088C6D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6D70: aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (17579u << 16u); @@ -6424,8 +7852,21 @@ L_088C6DCC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C6DF4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 601u, 0x088C6DF4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6DF4u) goto L_088C6DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6DF4: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6441,8 +7882,8 @@ L_088C6DF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6E20: @@ -6478,8 +7919,21 @@ L_088C6E64: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C6E80u); aot_gpr_5 = (0u | 80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 605u, 0x088C6E80u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6E80u) goto L_088C6E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6E80: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -6513,8 +7967,21 @@ L_088C6E90: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C6EE8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 607u, 0x088C6EE8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6EE8u) goto L_088C6EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6EE8: aot_gpr_4 = (17917u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -6535,8 +8002,21 @@ L_088C6F08: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C6F24u); aot_gpr_5 = (0u | 80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 609u, 0x088C6F24u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6F24u) goto L_088C6F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6F24: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -6570,8 +8050,21 @@ L_088C6F34: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C6F8Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 611u, 0x088C6F8Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C6F8Cu) goto L_088C6F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C6F8C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6582,8 +8075,8 @@ L_088C6F8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6FA4: @@ -6600,14 +8093,14 @@ L_088C6FB0: goto L_088C6FB8; L_088C6FB8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6FC0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C6FC8: @@ -6684,8 +8177,21 @@ L_088C705C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_31 = (0x088C7070u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 624u, 0x088C7070u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7070u) goto L_088C7070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7070: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6731,8 +8237,21 @@ L_088C70A8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C70FCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 627u, 0x088C70FCu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C70FCu) goto L_088C70FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C70FC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -6754,8 +8273,8 @@ L_088C7108: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7120: @@ -6813,8 +8332,21 @@ L_088C71E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x088C71F4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 634u, 0x088C71F4u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C71F4u) goto L_088C71F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C71F4: aot_gpr_4 = (ctx.gpr[2] & 255u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -6874,8 +8406,21 @@ L_088C725C: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088C727Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 641u, 0x088C727Cu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C727Cu) goto L_088C727C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C727C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6918,8 +8463,21 @@ L_088C72C4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088C72F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 645u, 0x088C72F8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C72F8u) goto L_088C72F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C72F8: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); goto L_088C72FC; @@ -6965,8 +8523,8 @@ L_088C731C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7360: @@ -6993,8 +8551,8 @@ L_088C737C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-21072))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7394: @@ -7065,8 +8623,8 @@ L_088C7408: goto L_088C740C; L_088C740C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7414: @@ -7262,8 +8820,8 @@ L_088C7598: L_088C75AC: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C75B4: @@ -7326,8 +8884,8 @@ L_088C761C: L_088C7630: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7638: @@ -7400,8 +8958,8 @@ L_088C7680: goto L_088C7684; L_088C7684: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C768C: @@ -7409,8 +8967,21 @@ L_088C768C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088C769Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 698u, 0x088C769Cu, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C769Cu) goto L_088C769C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C769C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7433,8 +9004,8 @@ L_088C76B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C76BC: @@ -7460,8 +9031,21 @@ L_088C76D8: L_088C76E0: aot_gpr_31 = (0x088C76E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 705u, 0x088C76E8u, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C76E8u) goto L_088C76E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C76E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7492,8 +9076,8 @@ L_088C7704: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7710: @@ -7589,8 +9173,21 @@ L_088C77D4: aot_gpr_5 = (aot_gpr_5 + static_cast(70)); aot_gpr_31 = (0x088C7804u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 719u, 0x088C7804u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7804u) goto L_088C7804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7804: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -7632,8 +9229,21 @@ L_088C7840: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C787Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 723u, 0x088C787Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C787Cu) goto L_088C787C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C787C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -7657,8 +9267,8 @@ L_088C7888: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C78A8: @@ -7789,8 +9399,8 @@ L_088C7934: } L_088C793C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7944: @@ -7927,8 +9537,21 @@ L_088C7A60: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C7A74u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 757u, 0x088C7A74u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7A74u) goto L_088C7A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7A74: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -7956,8 +9579,21 @@ L_088C7A84: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C7AC4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 759u, 0x088C7AC4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7AC4u) goto L_088C7AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7AC4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -7981,8 +9617,8 @@ L_088C7AD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7AF0: @@ -8097,8 +9733,21 @@ L_088C7BA4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C7BC0u); aot_gpr_5 = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 774u, 0x088C7BC0u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7BC0u) goto L_088C7BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7BC0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -8136,8 +9785,21 @@ L_088C7BF8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C7C30u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 777u, 0x088C7C30u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7C30u) goto L_088C7C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7C30: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -8159,8 +9821,8 @@ L_088C7C3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7C54: @@ -8264,8 +9926,21 @@ L_088C7D18: aot_gpr_6 = (ctx.gpr[2] + aot_gpr_6); aot_gpr_31 = (0x088C7D80u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(68), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 787u, 0x088C7D80u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7D80u) goto L_088C7D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7D80: aot_gpr_4 = (16948u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8296,8 +9971,21 @@ L_088C7D80: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088C7DF4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 788u, 0x088C7DF4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7DF4u) goto L_088C7DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7DF4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8320,8 +10008,8 @@ L_088C7E00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7E1C: @@ -8398,8 +10086,21 @@ L_088C7EC4: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088C7EECu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 797u, 0x088C7EECu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7EECu) goto L_088C7EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7EEC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -8462,8 +10163,21 @@ L_088C7F64: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C7F9Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0048->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0048_entry, 802u, 0x088C7F9Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C7F9Cu) goto L_088C7F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C7F9C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8485,8 +10199,8 @@ L_088C7FA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C7FC0: diff --git a/profiles/vcs/generated/generated_unit_0049.cpp b/profiles/vcs/generated/generated_unit_0049.cpp index 783a0ac..c7b1f5c 100644 --- a/profiles/vcs/generated/generated_unit_0049.cpp +++ b/profiles/vcs/generated/generated_unit_0049.cpp @@ -917,6 +917,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088C8000u; + if (local_delta_v813 >= 16332u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -975,8 +999,21 @@ L_088C8058: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C807Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 5u, 0x088C807Cu, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C807Cu) goto L_088C807C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C807C: { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } aot_gpr_4 = (16880u << 16u); @@ -990,8 +1027,21 @@ L_088C807C: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088C80ACu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 6u, 0x088C80ACu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C80ACu) goto L_088C80AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C80AC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -1064,8 +1114,21 @@ L_088C813C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C816Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 13u, 0x088C816Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C816Cu) goto L_088C816C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C816C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1089,8 +1152,8 @@ L_088C8178: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8198: @@ -1121,8 +1184,21 @@ L_088C81C8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088C81D8u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 19u, 0x088C81D8u, 0x088C6E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 602u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 602u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 602u, 0x088C6E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C81D8u) goto L_088C81D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C81D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1155,8 +1231,8 @@ L_088C8204: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8210: @@ -1181,13 +1257,39 @@ L_088C8240: aot_gpr_5 = (aot_gpr_16 + static_cast(4)); aot_gpr_31 = (0x088C824Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 26u, 0x088C824Cu, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C824Cu) goto L_088C824C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C824C: aot_gpr_31 = (0x088C8254u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 27u, 0x088C8254u, 0x088C5B1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 337u, 0x088C5B1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8254u) goto L_088C8254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8254: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(944)))))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9304))); @@ -1340,8 +1442,8 @@ L_088C8380: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8394: @@ -1382,8 +1484,8 @@ L_088C83D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C83E8: @@ -1569,8 +1671,8 @@ L_088C858C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C85B0: @@ -1659,8 +1761,8 @@ L_088C8680: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8694: @@ -1689,8 +1791,8 @@ L_088C86C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C86D4: @@ -1804,8 +1906,8 @@ L_088C87F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8808: @@ -1913,8 +2015,8 @@ L_088C88FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8910: @@ -1974,8 +2076,21 @@ L_088C89AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C89C0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 108u, 0x088C89C0u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C89C0u) goto L_088C89C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C89C0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -2010,8 +2125,21 @@ L_088C89F0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C8A28u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 111u, 0x088C8A28u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8A28u) goto L_088C8A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8A28: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -2033,8 +2161,8 @@ L_088C8A34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8A4C: @@ -2063,8 +2191,21 @@ L_088C8A84: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C8A98u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 116u, 0x088C8A98u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8A98u) goto L_088C8A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8A98: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -2097,8 +2238,21 @@ L_088C8AA8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C8AFCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 118u, 0x088C8AFCu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8AFCu) goto L_088C8AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8AFC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -2121,8 +2275,8 @@ L_088C8B08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8B24: @@ -2158,8 +2312,21 @@ L_088C8B5C: aot_gpr_5 = (ctx.gpr[18] - aot_gpr_5); aot_gpr_31 = (0x088C8B94u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 123u, 0x088C8B94u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8B94u) goto L_088C8B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8B94: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -2192,8 +2359,21 @@ L_088C8BA4: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C8BF8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 125u, 0x088C8BF8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8BF8u) goto L_088C8BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8BF8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -2216,8 +2396,8 @@ L_088C8C04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8C20: @@ -2244,8 +2424,21 @@ L_088C8C50: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C8C64u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 130u, 0x088C8C64u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8C64u) goto L_088C8C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8C64: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -2283,8 +2476,21 @@ L_088C8C98: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C8CD0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 133u, 0x088C8CD0u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8CD0u) goto L_088C8CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8CD0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -2306,8 +2512,8 @@ L_088C8CDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8CF4: @@ -2335,8 +2541,21 @@ L_088C8D2C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C8D40u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 138u, 0x088C8D40u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8D40u) goto L_088C8D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8D40: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -2377,8 +2596,21 @@ L_088C8D78: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C8DB8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 141u, 0x088C8DB8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8DB8u) goto L_088C8DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8DB8: aot_gpr_4 = (0u | 6u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); @@ -2391,8 +2623,21 @@ L_088C8DB8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088C8DE4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 142u, 0x088C8DE4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8DE4u) goto L_088C8DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8DE4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -2416,8 +2661,8 @@ L_088C8DF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8E10: @@ -2456,8 +2701,8 @@ L_088C8E58: goto L_088C8E6C; L_088C8E6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8E74: @@ -2479,8 +2724,21 @@ L_088C8E94: aot_gpr_5 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x088C8EA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 151u, 0x088C8EA4u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8EA4u) goto L_088C8EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8EA4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (16928u << 16u); @@ -2496,8 +2754,21 @@ L_088C8EC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C8ECCu); aot_gpr_5 = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 153u, 0x088C8ECCu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8ECCu) goto L_088C8ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8ECC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -2556,8 +2827,21 @@ L_088C8EF4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088C8F54u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 158u, 0x088C8F54u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C8F54u) goto L_088C8F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C8F54: ctx.gpr[2] = (0u | 1u); goto L_088C8F58; @@ -2566,8 +2850,8 @@ L_088C8F58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8F68: @@ -2598,8 +2882,8 @@ L_088C8F94: goto L_088C8FA0; L_088C8FA0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C8FA8: @@ -2709,8 +2993,8 @@ L_088C9044: goto L_088C9070; L_088C9070: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9078: @@ -2748,8 +3032,21 @@ L_088C90BC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C90D0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0052. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 179u, 0x088C90D0u, 0x088D4AF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0052_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0052_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0052_entry, 52u, 109u, 0x088D4AF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C90D0u) goto L_088C90D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C90D0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -2759,8 +3056,8 @@ L_088C90D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C90E4: @@ -2794,8 +3091,21 @@ L_088C9118: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C912Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 182u, 0x088C912Cu, 0x088D3090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 531u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 531u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 531u, 0x088D3090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C912Cu) goto L_088C912C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C912C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -2805,8 +3115,8 @@ L_088C912C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9140: @@ -2834,8 +3144,8 @@ L_088C9158: goto L_088C9168; L_088C9168: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9170: @@ -2851,15 +3161,15 @@ L_088C9178: goto L_088C917C; L_088C917C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9184: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(26352), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C918C: @@ -2867,8 +3177,8 @@ L_088C918C: aot_gpr_5 = (ctx.gpr[28] + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(8624), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C919C: @@ -2888,8 +3198,21 @@ L_088C91BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C91C8u); aot_gpr_5 = (0u | 23u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 194u, 0x088C91C8u, 0x088888D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 189u, 0x088888D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C91C8u) goto L_088C91C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C91C8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2924,8 +3247,8 @@ L_088C91F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9200: @@ -2943,8 +3266,8 @@ L_088C9218: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C922C: @@ -2953,14 +3276,27 @@ L_088C922C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x088C9240u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 202u, 0x088C9240u, 0x08888420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 91u, 0x08888420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9240u) goto L_088C9240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9240: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C924C: @@ -2974,14 +3310,27 @@ L_088C925C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088C9268u); aot_gpr_5 = (0u | 158u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 205u, 0x088C9268u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9268u) goto L_088C9268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9268: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9274: @@ -3125,8 +3474,8 @@ L_088C9344: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9358: @@ -3149,8 +3498,8 @@ L_088C9378: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-21032))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9390: @@ -3166,8 +3515,21 @@ L_088C939C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C93A8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 227u, 0x088C93A8u, 0x088528ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 649u, 0x088528ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C93A8u) goto L_088C93A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C93A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3179,8 +3541,21 @@ L_088C93B0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C93BCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 229u, 0x088C93BCu, 0x08852D08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 714u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 714u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 714u, 0x08852D08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C93BCu) goto L_088C93BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C93BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3192,8 +3567,21 @@ L_088C93C4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C93D0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 231u, 0x088C93D0u, 0x08853764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 874u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 874u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 874u, 0x08853764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C93D0u) goto L_088C93D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C93D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3205,8 +3593,21 @@ L_088C93D8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C93E4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 233u, 0x088C93E4u, 0x08853840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 889u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 889u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 889u, 0x08853840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C93E4u) goto L_088C93E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C93E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3218,8 +3619,21 @@ L_088C93EC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C93F8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 235u, 0x088C93F8u, 0x08853D18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 967u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 967u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 967u, 0x08853D18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C93F8u) goto L_088C93F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C93F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3231,8 +3645,21 @@ L_088C9400: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C940Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 237u, 0x088C940Cu, 0x08853DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 982u, 0x08853DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C940Cu) goto L_088C940C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C940C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3244,8 +3671,21 @@ L_088C9414: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9420u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 239u, 0x088C9420u, 0x08853ED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 997u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 997u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 997u, 0x08853ED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9420u) goto L_088C9420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9420: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3257,8 +3697,21 @@ L_088C9428: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9434u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 241u, 0x088C9434u, 0x08853FACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 1012u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 1012u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 1012u, 0x08853FACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9434u) goto L_088C9434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9434: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3270,8 +3723,21 @@ L_088C943C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9448u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 243u, 0x088C9448u, 0x088545E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 95u, 0x088545E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9448u) goto L_088C9448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9448: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3283,8 +3749,21 @@ L_088C9450: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C945Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 245u, 0x088C945Cu, 0x088546BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 110u, 0x088546BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C945Cu) goto L_088C945C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C945C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3296,8 +3775,21 @@ L_088C9464: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9470u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 247u, 0x088C9470u, 0x08854798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 125u, 0x08854798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9470u) goto L_088C9470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9470: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3309,8 +3801,21 @@ L_088C9478: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9484u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 249u, 0x088C9484u, 0x08855D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 460u, 0x08855D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9484u) goto L_088C9484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9484: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3322,8 +3827,21 @@ L_088C948C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9498u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 251u, 0x088C9498u, 0x08856E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 728u, 0x08856E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9498u) goto L_088C9498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9498: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3335,8 +3853,21 @@ L_088C94A0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C94ACu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 253u, 0x088C94ACu, 0x08857028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 758u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 758u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 758u, 0x08857028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C94ACu) goto L_088C94AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C94AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3348,8 +3879,21 @@ L_088C94B4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C94C0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 255u, 0x088C94C0u, 0x08857104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 773u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 773u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 773u, 0x08857104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C94C0u) goto L_088C94C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C94C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3361,8 +3905,21 @@ L_088C94C8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C94D4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 257u, 0x088C94D4u, 0x088582B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 47u, 0x088582B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C94D4u) goto L_088C94D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C94D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3374,8 +3931,21 @@ L_088C94DC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C94E8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 259u, 0x088C94E8u, 0x088586FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 122u, 0x088586FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C94E8u) goto L_088C94E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C94E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3387,8 +3957,21 @@ L_088C94F0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C94FCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 261u, 0x088C94FCu, 0x08858B18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 187u, 0x08858B18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C94FCu) goto L_088C94FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C94FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3400,8 +3983,21 @@ L_088C9504: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9510u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 263u, 0x088C9510u, 0x08858B74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 192u, 0x08858B74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9510u) goto L_088C9510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9510: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3413,8 +4009,21 @@ L_088C9518: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9524u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 265u, 0x088C9524u, 0x08858BD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 197u, 0x08858BD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9524u) goto L_088C9524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9524: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3426,8 +4035,21 @@ L_088C952C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9538u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 267u, 0x088C9538u, 0x08858C2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 202u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 202u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 202u, 0x08858C2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9538u) goto L_088C9538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9538: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3439,8 +4061,21 @@ L_088C9540: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C954Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 269u, 0x088C954Cu, 0x08859368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 327u, 0x08859368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C954Cu) goto L_088C954C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C954C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3452,8 +4087,21 @@ L_088C9554: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9560u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 271u, 0x088C9560u, 0x08859444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 342u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 342u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 342u, 0x08859444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9560u) goto L_088C9560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9560: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3465,8 +4113,21 @@ L_088C9568: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9574u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 273u, 0x088C9574u, 0x08859840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 411u, 0x08859840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9574u) goto L_088C9574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9574: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3478,8 +4139,21 @@ L_088C957C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C9588u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 275u, 0x088C9588u, 0x0885991Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 426u, 0x0885991Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9588u) goto L_088C9588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9588: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3491,8 +4165,21 @@ L_088C9590: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C959Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 277u, 0x088C959Cu, 0x0885AE54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 756u, 0x0885AE54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C959Cu) goto L_088C959C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C959C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3504,8 +4191,21 @@ L_088C95A4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C95B0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 279u, 0x088C95B0u, 0x0885E3ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 557u, 0x0885E3ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C95B0u) goto L_088C95B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C95B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3517,8 +4217,21 @@ L_088C95B8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088C95C4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8629)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 281u, 0x088C95C4u, 0x0885E310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 542u, 0x0885E310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C95C4u) goto L_088C95C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C95C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3530,8 +4243,8 @@ L_088C95CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C95D8: @@ -3584,8 +4297,8 @@ L_088C9630: L_088C9638: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9640: @@ -3611,8 +4324,8 @@ L_088C966C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20912))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9684: @@ -3689,8 +4402,8 @@ L_088C9710: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C971C: @@ -3716,8 +4429,8 @@ L_088C9748: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20760))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9760: @@ -3810,8 +4523,8 @@ L_088C980C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9818: @@ -3899,8 +4612,21 @@ L_088C98F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C9910u); aot_gpr_5 = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 322u, 0x088C9910u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9910u) goto L_088C9910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9910: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -3926,8 +4652,21 @@ L_088C9920: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088C995Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 324u, 0x088C995Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C995Cu) goto L_088C995C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C995C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 255u); @@ -3957,8 +4696,8 @@ L_088C9970: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C99AC: @@ -4031,8 +4770,21 @@ L_088C9A20: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[7] + static_cast(6266))); aot_gpr_31 = (0x088C9A2Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 332u, 0x088C9A2Cu, 0x088D8C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 182u, 0x088D8C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9A2Cu) goto L_088C9A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9A2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4044,14 +4796,27 @@ L_088C9A34: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0))); aot_gpr_31 = (0x088C9A40u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 334u, 0x088C9A40u, 0x088D9D9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 296u, 0x088D9D9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9A40u) goto L_088C9A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9A40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9A4C: @@ -4101,8 +4866,21 @@ L_088C9AB4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C9AC4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 338u, 0x088C9AC4u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9AC4u) goto L_088C9AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9AC4: aot_gpr_6 = (16908u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_6); @@ -4111,8 +4889,21 @@ L_088C9AC4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088C9AE0u); aot_gpr_5 = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 339u, 0x088C9AE0u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9AE0u) goto L_088C9AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9AE0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -4145,8 +4936,21 @@ L_088C9AF0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088C9B48u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 341u, 0x088C9B48u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9B48u) goto L_088C9B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9B48: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -4156,8 +4960,8 @@ L_088C9B48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9B5C: @@ -4244,8 +5048,21 @@ L_088C9C2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C9C44u); aot_gpr_5 = (0u | 26u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 348u, 0x088C9C44u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9C44u) goto L_088C9C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9C44: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -4278,8 +5095,21 @@ L_088C9C54: aot_gpr_6 = (aot_gpr_6 + static_cast(3973)); aot_gpr_31 = (0x088C9CA8u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(68), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 350u, 0x088C9CA8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9CA8u) goto L_088C9CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9CA8: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8632))); @@ -4309,8 +5139,8 @@ L_088C9CC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9CF8: @@ -4342,16 +5172,42 @@ L_088C9D2C: L_088C9D38: aot_gpr_31 = (0x088C9D40u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 355u, 0x088C9D40u, 0x088C5B6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 340u, 0x088C5B6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9D40u) goto L_088C9D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9D40: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[17] = (ctx.gpr[28] + static_cast(7696)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088C9D54u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 356u, 0x088C9D54u, 0x0880A41Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 515u, 0x0880A41Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9D54u) goto L_088C9D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9D54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -4385,8 +5241,21 @@ L_088C9D9C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088C9DACu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 360u, 0x088C9DACu, 0x0880A41Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 515u, 0x0880A41Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9DACu) goto L_088C9DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9DAC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(26340))); { const std::int64_t product = static_cast(static_cast(aot_gpr_4)) * static_cast(static_cast(ctx.gpr[2])); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } @@ -4421,8 +5290,8 @@ L_088C9E00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9E24: @@ -4451,8 +5320,21 @@ L_088C9E50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088C9E5Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 365u, 0x088C9E5Cu, 0x088DB3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 528u, 0x088DB3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9E5Cu) goto L_088C9E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9E5C: aot_gpr_4 = (aot_gpr_16 + ctx.gpr[17]); { const bool branch_taken = 0u == 0u; @@ -4474,8 +5356,8 @@ L_088C9E6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9E80: @@ -4502,8 +5384,8 @@ L_088C9EC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9ED4: @@ -4533,8 +5415,8 @@ L_088C9EEC: goto L_088C9F08; L_088C9F08: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9F10: @@ -4566,8 +5448,21 @@ L_088C9F40: aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x088C9F58u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 377u, 0x088C9F58u, 0x0880A41Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 515u, 0x0880A41Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088C9F58u) goto L_088C9F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088C9F58: aot_fpr_20 = std::bit_cast(ctx.gpr[2]); { const bool branch_taken = static_cast(ctx.gpr[2]) >= 0; @@ -4633,8 +5528,8 @@ L_088C9FCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088C9FE0: @@ -4727,8 +5622,21 @@ L_088CA09C: L_088CA0A4: aot_gpr_31 = (0x088CA0ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 394u, 0x088CA0ACu, 0x089C6D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 629u, 0x089C6D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA0ACu) goto L_088CA0AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA0AC: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); @@ -4749,8 +5657,21 @@ L_088CA0C0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088CA0D8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 397u, 0x088CA0D8u, 0x08AB9068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 216u, 0x08AB9068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA0D8u) goto L_088CA0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA0D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4768,8 +5689,21 @@ L_088CA0E0: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x088CA104u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 399u, 0x088CA104u, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA104u) goto L_088CA104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA104: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(26248))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(26278), static_cast(0u)); @@ -4784,8 +5718,21 @@ L_088CA11C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088CA12Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 401u, 0x088CA12Cu, 0x0880A41Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 515u, 0x0880A41Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA12Cu) goto L_088CA12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA12C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(26340))); { const std::int64_t product = static_cast(static_cast(aot_gpr_4)) * static_cast(static_cast(ctx.gpr[2])); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } @@ -4814,8 +5761,8 @@ L_088CA16C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA18C: @@ -4896,8 +5843,21 @@ L_088CA20C: } L_088CA228: aot_gpr_31 = (0x088CA230u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 412u, 0x088CA230u, 0x08ABA450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 405u, 0x08ABA450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA230u) goto L_088CA230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA230: ctx.gpr[17] = (ctx.gpr[17] & 255u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4922,8 +5882,8 @@ L_088CA24C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA270: @@ -5010,8 +5970,8 @@ L_088CA2E4: } L_088CA2EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA2F4: @@ -5098,8 +6058,8 @@ L_088CA368: } L_088CA370: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA378: @@ -5151,8 +6111,21 @@ L_088CA3E0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088CA3F0u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 439u, 0x088CA3F0u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA3F0u) goto L_088CA3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA3F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5165,14 +6138,27 @@ L_088CA3F8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088CA408u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 441u, 0x088CA408u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA408u) goto L_088CA408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA408: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA414: @@ -5251,8 +6237,8 @@ L_088CA480: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA494: @@ -5260,8 +6246,8 @@ L_088CA494: aot_gpr_4 = (ctx.gpr[28] + aot_gpr_4); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(8640))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA4A4: @@ -5306,8 +6292,8 @@ L_088CA4DC: goto L_088CA4E0; L_088CA4E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA4E8: @@ -5325,8 +6311,21 @@ L_088CA4E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088CA520u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 461u, 0x088CA520u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA520u) goto L_088CA520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA520: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(23168)); @@ -5336,8 +6335,8 @@ L_088CA520: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA540: @@ -5368,8 +6367,8 @@ L_088CA560: } L_088CA570: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA578: @@ -5424,8 +6423,8 @@ L_088CA5D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA5E4: @@ -5484,8 +6483,8 @@ L_088CA61C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA6A8: @@ -5535,8 +6534,8 @@ L_088CA6F4: goto L_088CA6F8; L_088CA6F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA700: @@ -5558,8 +6557,21 @@ L_088CA720: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088CA72Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 485u, 0x088CA72Cu, 0x088DB3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 528u, 0x088DB3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA72Cu) goto L_088CA72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA72C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 255u); @@ -5628,15 +6640,15 @@ L_088CA794: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA7A8: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA7B0: @@ -5695,8 +6707,8 @@ L_088CA7B0: ctx.fpr[0] = aot_fpr_12 + ctx.fpr[0]; jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CA814: @@ -5862,8 +6874,21 @@ L_088CA9BC: aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x088CA9CCu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 509u, 0x088CA9CCu, 0x0880A390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 502u, 0x0880A390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA9CCu) goto L_088CA9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA9CC: aot_gpr_4 = (ctx.gpr[2] & 255u); { const bool branch_taken = 0u == 0u; @@ -5877,8 +6902,21 @@ L_088CA9D8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088CA9E4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 511u, 0x088CA9E4u, 0x0880A330u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 495u, 0x0880A330u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CA9E4u) goto L_088CA9E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CA9E4: aot_gpr_4 = (ctx.gpr[2] & 255u); aot_gpr_5 = (0u | 0u); @@ -5937,8 +6975,21 @@ L_088CAA24: aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x088CAA34u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 520u, 0x088CAA34u, 0x0880A350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 497u, 0x0880A350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CAA34u) goto L_088CAA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CAA34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5950,8 +7001,21 @@ L_088CAA3C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088CAA48u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 522u, 0x088CAA48u, 0x0880A2A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 483u, 0x0880A2A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CAA48u) goto L_088CAA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CAA48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6134,8 +7198,21 @@ L_088CAC68: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088CAC74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 531u, 0x088CAC74u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CAC74u) goto L_088CAC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CAC74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6212,8 +7289,21 @@ L_088CACF8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(37), static_cast(aot_gpr_6)); aot_gpr_31 = (0x088CAD24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 539u, 0x088CAD24u, 0x088C5CF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 364u, 0x088C5CF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CAD24u) goto L_088CAD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CAD24: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(1960))); @@ -6257,8 +7347,8 @@ L_088CAD64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CAD84: @@ -6290,8 +7380,21 @@ L_088CADC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088CADCCu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 547u, 0x088CADCCu, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CADCCu) goto L_088CADCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CADCC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6303,8 +7406,21 @@ L_088CADD4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088CADE0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 549u, 0x088CADE0u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CADE0u) goto L_088CADE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CADE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6316,8 +7432,21 @@ L_088CADE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088CADF4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 551u, 0x088CADF4u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CADF4u) goto L_088CADF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CADF4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -6352,8 +7481,21 @@ L_088CAE1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088CAE28u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 556u, 0x088CAE28u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CAE28u) goto L_088CAE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CAE28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6427,8 +7569,21 @@ L_088CAEA8: L_088CAEB0: aot_gpr_31 = (0x088CAEB8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 565u, 0x088CAEB8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CAEB8u) goto L_088CAEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CAEB8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6522,8 +7677,21 @@ L_088CAF48: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088CAF54u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 577u, 0x088CAF54u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CAF54u) goto L_088CAF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CAF54: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -6619,8 +7787,21 @@ L_088CAFD4: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(648))); aot_gpr_31 = (0x088CAFE0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 590u, 0x088CAFE0u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CAFE0u) goto L_088CAFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CAFE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6655,16 +7836,29 @@ L_088CB014: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20608))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CB02C: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(648))); aot_gpr_31 = (0x088CB038u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 595u, 0x088CB038u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB038u) goto L_088CB038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB038: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6684,8 +7878,21 @@ L_088CB040: L_088CB04C: aot_gpr_31 = (0x088CB054u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 598u, 0x088CB054u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB054u) goto L_088CB054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB054: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6696,13 +7903,39 @@ L_088CB054: L_088CB05C: aot_gpr_31 = (0x088CB064u); aot_gpr_5 = (0u | 27u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 600u, 0x088CB064u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB064u) goto L_088CB064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB064: aot_gpr_31 = (0x088CB06Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 601u, 0x088CB06Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB06Cu) goto L_088CB06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB06C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6726,8 +7959,8 @@ L_088CB088: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[20]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20568))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CB0A0: @@ -6800,8 +8033,21 @@ L_088CB0E8: aot_gpr_5 = (ctx.gpr[17] & 255u); aot_gpr_31 = (0x088CB0F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 614u, 0x088CB0F4u, 0x089B8068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 7u, 0x089B8068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB0F4u) goto L_088CB0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB0F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6825,8 +8071,8 @@ L_088CB100: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CB124: @@ -6847,8 +8093,21 @@ L_088CB124: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x088CB170u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 618u, 0x088CB170u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB170u) goto L_088CB170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB170: { const bool branch_taken = ctx.gpr[2] == aot_gpr_16; if (branch_taken) { @@ -6872,8 +8131,8 @@ L_088CB188: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20440))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CB1A4: @@ -7004,8 +8263,21 @@ L_088CB25C: L_088CB278: aot_gpr_31 = (0x088CB280u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 632u, 0x088CB280u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB280u) goto L_088CB280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB280: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -7029,28 +8301,67 @@ L_088CB29C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20368))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CB2B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB2C0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 636u, 0x088CB2C0u, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB2C0u) goto L_088CB2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB2C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB2CCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 637u, 0x088CB2CCu, 0x088D02ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 41u, 0x088D02ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB2CCu) goto L_088CB2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB2CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB2D8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 638u, 0x088CB2D8u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB2D8u) goto L_088CB2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB2D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7062,14 +8373,40 @@ L_088CB2E0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB2ECu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 640u, 0x088CB2ECu, 0x088C7C54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 780u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 780u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 780u, 0x088C7C54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB2ECu) goto L_088CB2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB2EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB2F8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 641u, 0x088CB2F8u, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB2F8u) goto L_088CB2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB2F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7086,8 +8423,21 @@ L_088CB30C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB318u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 644u, 0x088CB318u, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB318u) goto L_088CB318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB318: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7124,32 +8474,97 @@ L_088CB340: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB34Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 649u, 0x088CB34Cu, 0x088CD55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 247u, 0x088CD55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB34Cu) goto L_088CB34C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB34C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB358u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 650u, 0x088CB358u, 0x088CFFF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 834u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 834u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 834u, 0x088CFFF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB358u) goto L_088CB358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB358: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB364u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 651u, 0x088CB364u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB364u) goto L_088CB364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB364: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB370u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 652u, 0x088CB370u, 0x088C7FC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 805u, 0x088C7FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB370u) goto L_088CB370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB370: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB37Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 653u, 0x088CB37Cu, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB37Cu) goto L_088CB37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB37C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7166,14 +8581,40 @@ L_088CB390: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB39Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 656u, 0x088CB39Cu, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB39Cu) goto L_088CB39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB39C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB3A8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 657u, 0x088CB3A8u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB3A8u) goto L_088CB3A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB3A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7190,14 +8631,40 @@ L_088CB3BC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB3C8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 660u, 0x088CB3C8u, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB3C8u) goto L_088CB3C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB3C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB3D4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 661u, 0x088CB3D4u, 0x088CF7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 735u, 0x088CF7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB3D4u) goto L_088CB3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB3D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7209,14 +8676,40 @@ L_088CB3DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB3E8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 663u, 0x088CB3E8u, 0x088D2248u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 386u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 386u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 386u, 0x088D2248u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB3E8u) goto L_088CB3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB3E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB3F4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 664u, 0x088CB3F4u, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB3F4u) goto L_088CB3F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB3F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7250,26 +8743,78 @@ L_088CB424: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB430u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 669u, 0x088CB430u, 0x088D1C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 299u, 0x088D1C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB430u) goto L_088CB430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB430: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB43Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 670u, 0x088CB43Cu, 0x088C7E1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 791u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 791u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 791u, 0x088C7E1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB43Cu) goto L_088CB43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB43C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB448u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 671u, 0x088CB448u, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB448u) goto L_088CB448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB448: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB454u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 672u, 0x088CB454u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB454u) goto L_088CB454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB454: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7282,24 +8827,76 @@ L_088CB45C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x088CB46Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 674u, 0x088CB46Cu, 0x088C7360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 650u, 0x088C7360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB46Cu) goto L_088CB46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB46C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB478u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 675u, 0x088CB478u, 0x088CFAC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 769u, 0x088CFAC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB478u) goto L_088CB478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB478: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB484u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 676u, 0x088CB484u, 0x088CFFF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 834u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 834u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 834u, 0x088CFFF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB484u) goto L_088CB484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB484: aot_gpr_31 = (0x088CB48Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 677u, 0x088CB48Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB48Cu) goto L_088CB48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB48C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -7312,8 +8909,21 @@ L_088CB498: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB4A4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 679u, 0x088CB4A4u, 0x088D2660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 441u, 0x088D2660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB4A4u) goto L_088CB4A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB4A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7325,8 +8935,21 @@ L_088CB4AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB4B8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 681u, 0x088CB4B8u, 0x088D2BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 488u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 488u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 488u, 0x088D2BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB4B8u) goto L_088CB4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB4B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = 0u == 0u; @@ -7341,14 +8964,40 @@ L_088CB4C4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x088CB4D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 683u, 0x088CB4D4u, 0x088C7360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 650u, 0x088C7360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB4D4u) goto L_088CB4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB4D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB4E0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 684u, 0x088CB4E0u, 0x088CD96Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 292u, 0x088CD96Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB4E0u) goto L_088CB4E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB4E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7369,8 +9018,21 @@ L_088CB4FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB508u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 687u, 0x088CB508u, 0x088CD97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 294u, 0x088CD97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB508u) goto L_088CB508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB508: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -7386,50 +9048,154 @@ L_088CB508: L_088CB520: aot_gpr_31 = (0x088CB528u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 689u, 0x088CB528u, 0x088CFAC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 769u, 0x088CFAC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB528u) goto L_088CB528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB528: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB534u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 690u, 0x088CB534u, 0x088CFFF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 834u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 834u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 834u, 0x088CFFF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB534u) goto L_088CB534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB534: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB540u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 691u, 0x088CB540u, 0x088D02ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 41u, 0x088D02ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB540u) goto L_088CB540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB540: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB54Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 692u, 0x088CB54Cu, 0x088C7AF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 762u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 762u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 762u, 0x088C7AF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB54Cu) goto L_088CB54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB54C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB558u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 693u, 0x088CB558u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB558u) goto L_088CB558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB558: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB564u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 694u, 0x088CB564u, 0x088CDBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 318u, 0x088CDBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB564u) goto L_088CB564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB564: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB570u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 695u, 0x088CB570u, 0x088CF7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 735u, 0x088CF7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB570u) goto L_088CB570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB570: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB57Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 696u, 0x088CB57Cu, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB57Cu) goto L_088CB57C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB57C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = 0u == 0u; @@ -7444,8 +9210,21 @@ L_088CB588: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x088CB598u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 698u, 0x088CB598u, 0x088C7360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 650u, 0x088C7360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB598u) goto L_088CB598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB598: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (static_cast(aot_gpr_4) < -972 ? 1u : 0u); @@ -7489,14 +9268,40 @@ L_088CB5D0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB5DCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 704u, 0x088CB5DCu, 0x088C686Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 534u, 0x088C686Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB5DCu) goto L_088CB5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB5DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB5E8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 705u, 0x088CB5E8u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB5E8u) goto L_088CB5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB5E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7515,14 +9320,40 @@ L_088CB5F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB604u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 708u, 0x088CB604u, 0x088CCD9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 150u, 0x088CCD9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB604u) goto L_088CB604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB604: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB610u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 709u, 0x088CB610u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB610u) goto L_088CB610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB610: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7560,14 +9391,40 @@ L_088CB648: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB654u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 715u, 0x088CB654u, 0x088CF7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 735u, 0x088CF7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB654u) goto L_088CB654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB654: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB660u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 716u, 0x088CB660u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB660u) goto L_088CB660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB660: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7607,8 +9464,21 @@ L_088CB694: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB6A0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 722u, 0x088CB6A0u, 0x088CD96Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 292u, 0x088CD96Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB6A0u) goto L_088CB6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB6A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7620,8 +9490,21 @@ L_088CB6A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB6B4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 724u, 0x088CB6B4u, 0x088C6ADCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 567u, 0x088C6ADCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB6B4u) goto L_088CB6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB6B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7888))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -7635,38 +9518,116 @@ L_088CB6C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB6D4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 726u, 0x088CB6D4u, 0x088CD97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 294u, 0x088CD97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB6D4u) goto L_088CB6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB6D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB6E0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 727u, 0x088CB6E0u, 0x088CFAC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 769u, 0x088CFAC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB6E0u) goto L_088CB6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB6E0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB6ECu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 728u, 0x088CB6ECu, 0x088CF7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 735u, 0x088CF7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB6ECu) goto L_088CB6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB6EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB6F8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 729u, 0x088CB6F8u, 0x088CFFF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 834u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 834u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 834u, 0x088CFFF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB6F8u) goto L_088CB6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB6F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB704u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 730u, 0x088CB704u, 0x088D02ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 41u, 0x088D02ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB704u) goto L_088CB704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB704: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x088CB710u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 731u, 0x088CB710u, 0x088C7638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 687u, 0x088C7638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB710u) goto L_088CB710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB710: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7678,14 +9639,40 @@ L_088CB718: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB724u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 733u, 0x088CB724u, 0x088C6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 616u, 0x088C6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB724u) goto L_088CB724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB724: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x088CB730u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 734u, 0x088CB730u, 0x088C78A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 726u, 0x088C78A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB730u) goto L_088CB730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB730: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7697,38 +9684,116 @@ L_088CB738: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB744u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 736u, 0x088CB744u, 0x088C7710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 710u, 0x088C7710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB744u) goto L_088CB744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB744: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB750u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 737u, 0x088CB750u, 0x088C7AF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 762u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 762u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 762u, 0x088C7AF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB750u) goto L_088CB750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB750: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB75Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0050. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 738u, 0x088CB75Cu, 0x088CDBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0050_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0050_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0050_entry, 50u, 318u, 0x088CDBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB75Cu) goto L_088CB75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB75C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB768u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 739u, 0x088CB768u, 0x088C7944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 743u, 0x088C7944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB768u) goto L_088CB768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB768: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB774u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 740u, 0x088CB774u, 0x088C7120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 630u, 0x088C7120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB774u) goto L_088CB774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB774: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB780u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0051. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 741u, 0x088CB780u, 0x088D0610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0051_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0051_entry, 51u, 97u, 0x088D0610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB780u) goto L_088CB780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB780: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1724), std::bit_cast(aot_fpr_12)); @@ -7737,8 +9802,21 @@ L_088CB788: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088CB794u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 743u, 0x088CB794u, 0x088C66C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 517u, 0x088C66C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB794u) goto L_088CB794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB794: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(40), aot_run_words); @@ -7750,8 +9828,8 @@ L_088CB794: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CB7B0: @@ -7792,8 +9870,21 @@ L_088CB7B0: } L_088CB834: aot_gpr_31 = (0x088CB83Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 746u, 0x088CB83Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB83Cu) goto L_088CB83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB83C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); if (ctx.gpr[2] != aot_gpr_4) { @@ -7806,14 +9897,40 @@ L_088CB848: ctx.gpr[21] = (aot_gpr_4 + static_cast(-6640)); aot_gpr_31 = (0x088CB858u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 748u, 0x088CB858u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB858u) goto L_088CB858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB858: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088CB864u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 749u, 0x088CB864u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB864u) goto L_088CB864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB864: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (ctx.gpr[2] | 0u); @@ -7843,8 +9960,21 @@ L_088CB8A4: aot_gpr_5 = (aot_gpr_5 + static_cast(32304)); aot_gpr_31 = (0x088CB8B4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 752u, 0x088CB8B4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB8B4u) goto L_088CB8B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB8B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); @@ -7935,8 +10065,21 @@ L_088CB944: ctx.fpr[24] = ctx.fpr[24] / aot_fpr_12; aot_gpr_31 = (0x088CB968u); aot_gpr_5 = (0u | 35u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 756u, 0x088CB968u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB968u) goto L_088CB968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB968: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -7973,8 +10116,21 @@ L_088CB990: ctx.fpr[24] = ctx.fpr[24] / aot_fpr_12; aot_gpr_31 = (0x088CB9B4u); aot_gpr_5 = (0u | 35u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 760u, 0x088CB9B4u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CB9B4u) goto L_088CB9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CB9B4: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -8050,8 +10206,21 @@ L_088CBA34: L_088CBA40: aot_gpr_31 = (0x088CBA48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 769u, 0x088CBA48u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBA48u) goto L_088CBA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBA48: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8079,8 +10248,21 @@ L_088CBA70: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x088CBA80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 773u, 0x088CBA80u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBA80u) goto L_088CBA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBA80: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (16928u << 16u); @@ -8154,8 +10336,21 @@ L_088CBB14: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088CBB2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 780u, 0x088CBB2Cu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBB2Cu) goto L_088CBB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBB2C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -8347,8 +10542,21 @@ L_088CBCAC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088CBCF0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 798u, 0x088CBCF0u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBCF0u) goto L_088CBCF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBCF0: { const bool branch_taken = ctx.gpr[23] == 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(296), static_cast(ctx.gpr[22])); @@ -8570,8 +10778,21 @@ L_088CBE6C: goto L_088CBE78; L_088CBE78: aot_gpr_31 = (0x088CBE80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 814u, 0x088CBE80u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBE80u) goto L_088CBE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBE80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -8620,8 +10841,21 @@ L_088CBEC0: aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x088CBED0u); aot_gpr_5 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 821u, 0x088CBED0u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBED0u) goto L_088CBED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBED0: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[30]; if (branch_taken) { @@ -8668,8 +10902,21 @@ L_088CBF04: } L_088CBF14: aot_gpr_31 = (0x088CBF1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 828u, 0x088CBF1Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBF1Cu) goto L_088CBF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBF1C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8681,8 +10928,21 @@ L_088CBF24: aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x088CBF30u); aot_gpr_5 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 830u, 0x088CBF30u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBF30u) goto L_088CBF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBF30: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8703,8 +10963,21 @@ L_088CBF40: L_088CBF4C: aot_gpr_31 = (0x088CBF54u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0049->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0049_entry, 833u, 0x088CBF54u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CBF54u) goto L_088CBF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CBF54: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); diff --git a/profiles/vcs/generated/generated_unit_0050.cpp b/profiles/vcs/generated/generated_unit_0050.cpp index 8eb9ed5..0128eae 100644 --- a/profiles/vcs/generated/generated_unit_0050.cpp +++ b/profiles/vcs/generated/generated_unit_0050.cpp @@ -912,6 +912,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088CC000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1138,8 +1162,21 @@ L_088CC1BC: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088CC1D4u); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 26u, 0x088CC1D4u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CC1D4u) goto L_088CC1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CC1D4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -1317,8 +1354,21 @@ L_088CC330: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); ctx.gpr[31] = (0x088CC374u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 42u, 0x088CC374u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CC374u) goto L_088CC374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CC374: aot_gpr_4 = (ctx.gpr[20] | ctx.gpr[19]); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1389,8 +1439,21 @@ L_088CC3D4: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); ctx.gpr[31] = (0x088CC418u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 48u, 0x088CC418u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CC418u) goto L_088CC418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CC418: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -1529,8 +1592,21 @@ L_088CC534: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); ctx.gpr[31] = (0x088CC584u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 59u, 0x088CC584u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CC584u) goto L_088CC584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CC584: aot_gpr_4 = (16128u << 16u); goto L_088CC588; @@ -1814,8 +1890,21 @@ L_088CC7E8: aot_fpr_12 = std::bit_cast(aot_gpr_6); ctx.gpr[31] = (0x088CC800u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 90u, 0x088CC800u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CC800u) goto L_088CC800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CC800: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -1968,8 +2057,21 @@ L_088CC938: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); ctx.gpr[31] = (0x088CC97Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 103u, 0x088CC97Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CC97Cu) goto L_088CC97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CC97C: aot_gpr_4 = (ctx.gpr[20] | ctx.gpr[19]); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2029,8 +2131,21 @@ L_088CC9EC: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); ctx.gpr[31] = (0x088CCA14u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 108u, 0x088CCA14u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CCA14u) goto L_088CCA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CCA14: { const bool branch_taken = static_cast(ctx.gpr[18]) > 0; aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); @@ -2326,8 +2441,21 @@ L_088CCC5C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); ctx.gpr[31] = (0x088CCCB8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 138u, 0x088CCCB8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CCCB8u) goto L_088CCCB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CCCB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2371,8 +2499,21 @@ L_088CCCC0: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088CCCF4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 140u, 0x088CCCF4u, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CCCF4u) goto L_088CCCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CCCF4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); @@ -2411,8 +2552,21 @@ L_088CCD18: L_088CCD24: ctx.gpr[31] = (0x088CCD2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 144u, 0x088CCD2Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CCD2Cu) goto L_088CCD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CCD2C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2441,8 +2595,21 @@ L_088CCD44: L_088CCD50: ctx.gpr[31] = (0x088CCD58u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 148u, 0x088CCD58u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CCD58u) goto L_088CCD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CCD58: ctx.gpr[2] = (0u | 0u); goto L_088CCD5C; @@ -2466,8 +2633,8 @@ L_088CCD5C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CCD9C: @@ -2502,8 +2669,21 @@ L_088CCDFC: ctx.gpr[19] = (0u | 17u); ctx.gpr[31] = (0x088CCE0Cu); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 152u, 0x088CCE0Cu, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CCE0Cu) goto L_088CCE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CCE0C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -2532,8 +2712,21 @@ L_088CCE28: L_088CCE34: ctx.gpr[31] = (0x088CCE3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 156u, 0x088CCE3Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CCE3Cu) goto L_088CCE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CCE3C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2545,8 +2738,21 @@ L_088CCE44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); ctx.gpr[31] = (0x088CCE50u); ctx.gpr[21] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 158u, 0x088CCE50u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CCE50u) goto L_088CCE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CCE50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); if (ctx.gpr[2] != aot_gpr_4) { @@ -2848,8 +3054,21 @@ L_088CD0D8: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); ctx.gpr[31] = (0x088CD0E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 191u, 0x088CD0E8u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD0E8u) goto L_088CD0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD0E8: aot_gpr_6 = (16908u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_6); @@ -2858,8 +3077,21 @@ L_088CD0E8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x088CD104u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 192u, 0x088CD104u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD104u) goto L_088CD104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD104: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -2892,8 +3124,21 @@ L_088CD114: aot_gpr_5 = (0u | 0u); ctx.gpr[31] = (0x088CD168u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 194u, 0x088CD168u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD168u) goto L_088CD168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD168: if (ctx.gpr[20] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); @@ -2929,14 +3174,40 @@ L_088CD198: ctx.gpr[22] = (aot_gpr_4 + static_cast(-6640)); ctx.gpr[31] = (0x088CD1A8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 199u, 0x088CD1A8u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD1A8u) goto L_088CD1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD1A8: ctx.gpr[21] = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x088CD1B4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 200u, 0x088CD1B4u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD1B4u) goto L_088CD1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD1B4: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = 0u == 0u; @@ -2976,8 +3247,21 @@ L_088CD204: aot_gpr_5 = (aot_gpr_5 + static_cast(32304)); ctx.gpr[31] = (0x088CD21Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 204u, 0x088CD21Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD21Cu) goto L_088CD21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD21C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_fpr_13 = std::bit_cast(0u); @@ -3251,8 +3535,21 @@ L_088CD438: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); ctx.gpr[31] = (0x088CD448u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 233u, 0x088CD448u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD448u) goto L_088CD448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD448: aot_gpr_6 = (16908u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_6); @@ -3261,8 +3558,21 @@ L_088CD448: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x088CD464u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 234u, 0x088CD464u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD464u) goto L_088CD464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD464: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -3316,8 +3626,21 @@ L_088CD4AC: aot_gpr_5 = (0u | 0u); ctx.gpr[31] = (0x088CD4ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 239u, 0x088CD4ECu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD4ECu) goto L_088CD4EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD4EC: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -3360,8 +3683,21 @@ L_088CD51C: L_088CD528: ctx.gpr[31] = (0x088CD530u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 246u, 0x088CD530u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD530u) goto L_088CD530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD530: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(188), aot_run_words); @@ -3377,8 +3713,8 @@ L_088CD530: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CD55C: @@ -3476,8 +3812,21 @@ L_088CD644: goto L_088CD654; L_088CD654: ctx.gpr[31] = (0x088CD65Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 257u, 0x088CD65Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD65Cu) goto L_088CD65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD65C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -3500,14 +3849,40 @@ L_088CD678: ctx.gpr[18] = (0u | 0u); ctx.gpr[31] = (0x088CD688u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 260u, 0x088CD688u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD688u) goto L_088CD688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD688: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x088CD694u); ctx.gpr[20] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 261u, 0x088CD694u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD694u) goto L_088CD694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD694: ctx.fpr[19] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1980))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23856))); @@ -3530,14 +3905,40 @@ L_088CD6C4: ctx.gpr[20] = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x088CD6D0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 263u, 0x088CD6D0u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD6D0u) goto L_088CD6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD6D0: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x088CD6DCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 264u, 0x088CD6DCu, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD6DCu) goto L_088CD6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD6DC: ctx.fpr[19] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1980))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23856))); @@ -3707,8 +4108,21 @@ L_088CD84C: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); ctx.gpr[31] = (0x088CD860u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 283u, 0x088CD860u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD860u) goto L_088CD860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD860: aot_fpr_14 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_20)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); @@ -3717,8 +4131,21 @@ L_088CD860: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); ctx.gpr[31] = (0x088CD87Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 284u, 0x088CD87Cu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD87Cu) goto L_088CD87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD87C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); ctx.gpr[17] = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -3791,8 +4218,21 @@ L_088CD8DC: aot_gpr_5 = (0u | 0u); ctx.gpr[31] = (0x088CD934u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 291u, 0x088CD934u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CD934u) goto L_088CD934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CD934: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(36), aot_run_words); @@ -3811,8 +4251,8 @@ L_088CD934: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CD96C: @@ -3825,8 +4265,8 @@ L_088CD96C: } L_088CD974: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CD97C: @@ -3926,8 +4366,21 @@ L_088CDA28: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); ctx.gpr[31] = (0x088CDA38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 305u, 0x088CDA38u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDA38u) goto L_088CDA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDA38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_gpr_5 = (16128u << 16u); @@ -3958,8 +4411,21 @@ L_088CDA70: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); ctx.gpr[31] = (0x088CDAA0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 307u, 0x088CDAA0u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDAA0u) goto L_088CDAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDAA0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -4042,8 +4508,21 @@ L_088CDB40: aot_gpr_5 = (0u | 0u); ctx.gpr[31] = (0x088CDB78u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 315u, 0x088CDB78u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDB78u) goto L_088CDB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDB78: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -4067,8 +4546,8 @@ L_088CDB84: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CDBA4: @@ -4081,8 +4560,21 @@ L_088CDBA4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(44), aot_run_words); } ctx.gpr[31] = (0x088CDBD8u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 319u, 0x088CDBD8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDBD8u) goto L_088CDBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDBD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -4141,8 +4633,21 @@ L_088CDC30: L_088CDC38: ctx.gpr[31] = (0x088CDC40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 326u, 0x088CDC40u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDC40u) goto L_088CDC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDC40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -4153,8 +4658,21 @@ L_088CDC40: } L_088CDC4C: ctx.gpr[31] = (0x088CDC54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 328u, 0x088CDC54u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDC54u) goto L_088CDC54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDC54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -4188,8 +4706,21 @@ L_088CDC84: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088CDC90u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 332u, 0x088CDC90u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDC90u) goto L_088CDC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDC90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4201,8 +4732,21 @@ L_088CDC98: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088CDCA4u); aot_gpr_5 = (0u | 27u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 334u, 0x088CDCA4u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDCA4u) goto L_088CDCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDCA4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[20] | 0u); @@ -4225,12 +4769,38 @@ L_088CDCBC: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); ctx.gpr[31] = (0x088CDCCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 337u, 0x088CDCCCu, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDCCCu) goto L_088CDCCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDCCC: ctx.gpr[31] = (0x088CDCD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 338u, 0x088CDCD4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDCD4u) goto L_088CDCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDCD4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_6; @@ -4271,8 +4841,21 @@ L_088CDD1C: aot_gpr_5 = (aot_gpr_5 + static_cast(644)); ctx.gpr[31] = (0x088CDD28u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 343u, 0x088CDD28u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CDD28u) goto L_088CDD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CDD28: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[18]; if (branch_taken) { @@ -5157,8 +5740,21 @@ L_088CE388: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088CE39Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 447u, 0x088CE39Cu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CE39Cu) goto L_088CE39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CE39C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -5346,8 +5942,21 @@ L_088CE528: L_088CE530: ctx.gpr[31] = (0x088CE538u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 466u, 0x088CE538u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CE538u) goto L_088CE538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CE538: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -5441,8 +6050,21 @@ L_088CE5E8: aot_gpr_5 = (0u | 0u); ctx.gpr[31] = (0x088CE61Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 475u, 0x088CE61Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CE61Cu) goto L_088CE61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CE61C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[20] | 0u); @@ -5469,8 +6091,8 @@ L_088CE628: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CE654: @@ -5538,8 +6160,21 @@ L_088CE70C: aot_gpr_4 = (2237u << 16u); ctx.gpr[31] = (0x088CE718u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 484u, 0x088CE718u, 0x0888876Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 158u, 0x0888876Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CE718u) goto L_088CE718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CE718: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5552,14 +6187,40 @@ L_088CE720: ctx.gpr[18] = (aot_gpr_4 + static_cast(-6640)); ctx.gpr[31] = (0x088CE730u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 486u, 0x088CE730u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CE730u) goto L_088CE730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CE730: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(214), static_cast(ctx.gpr[2])); ctx.gpr[31] = (0x088CE73Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 487u, 0x088CE73Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CE73Cu) goto L_088CE73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CE73C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); { const bool branch_taken = 0u == 0u; @@ -5605,8 +6266,21 @@ L_088CE790: aot_gpr_4 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x088CE79Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 493u, 0x088CE79Cu, 0x0880A5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 542u, 0x0880A5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CE79Cu) goto L_088CE79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CE79C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); @@ -6114,8 +6788,21 @@ L_088CEB5C: L_088CEB78: ctx.gpr[31] = (0x088CEB80u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 555u, 0x088CEB80u, 0x088C5CD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 363u, 0x088C5CD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CEB80u) goto L_088CEB80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CEB80: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -6437,8 +7124,21 @@ L_088CEDE0: ctx.gpr[10] = (0u | 1u); ctx.gpr[31] = (0x088CEE04u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 592u, 0x088CEE04u, 0x088C6D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 594u, 0x088C6D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CEE04u) goto L_088CEE04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CEE04: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(214)))))); @@ -6882,8 +7582,21 @@ L_088CF130: aot_gpr_4 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x088CF148u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 645u, 0x088CF148u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF148u) goto L_088CF148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF148: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-23736), static_cast(aot_gpr_4)); @@ -6915,8 +7628,21 @@ L_088CF178: ctx.gpr[10] = (0u | 1u); ctx.gpr[31] = (0x088CF19Cu); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 649u, 0x088CF19Cu, 0x088C6D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 594u, 0x088C6D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF19Cu) goto L_088CF19C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF19C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6932,8 +7658,21 @@ L_088CF1A4: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x088CF1C0u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 651u, 0x088CF1C0u, 0x089B8234u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 30u, 0x089B8234u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF1C0u) goto L_088CF1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF1C0: aot_gpr_5 = (16916u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_5); @@ -6941,8 +7680,21 @@ L_088CF1C0: aot_gpr_5 = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x088CF1D8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 652u, 0x088CF1D8u, 0x089B80C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 13u, 0x089B80C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF1D8u) goto L_088CF1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF1D8: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-23736))); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7048,31 +7800,83 @@ L_088CF280: ctx.gpr[8] = (0u | 0u); ctx.gpr[31] = (0x088CF2ACu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 664u, 0x088CF2ACu, 0x0880A214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 474u, 0x0880A214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF2ACu) goto L_088CF2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF2AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_5 = (0u | 127u); ctx.gpr[31] = (0x088CF2C0u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(76))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 665u, 0x088CF2C0u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF2C0u) goto L_088CF2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF2C0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_6 = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x088CF2D4u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 666u, 0x088CF2D4u, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF2D4u) goto L_088CF2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF2D4: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x088CF2E4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 667u, 0x088CF2E4u, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF2E4u) goto L_088CF2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF2E4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-23746))); aot_gpr_6 = (2233u << 16u); @@ -7122,8 +7926,21 @@ L_088CF330: aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x088CF340u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 673u, 0x088CF340u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF340u) goto L_088CF340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF340: { const bool branch_taken = ctx.gpr[23] != 0u; if (branch_taken) { @@ -7135,8 +7952,21 @@ L_088CF348: aot_gpr_4 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x088CF354u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 675u, 0x088CF354u, 0x0880A624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 546u, 0x0880A624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF354u) goto L_088CF354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF354: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(214)))))); @@ -7171,8 +8001,21 @@ L_088CF388: aot_gpr_4 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x088CF394u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 679u, 0x088CF394u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF394u) goto L_088CF394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF394: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-23736), static_cast(aot_gpr_4)); @@ -7280,8 +8123,21 @@ L_088CF444: aot_gpr_4 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x088CF454u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 693u, 0x088CF454u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF454u) goto L_088CF454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF454: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-23736), static_cast(aot_gpr_4)); @@ -7497,8 +8353,21 @@ L_088CF600: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x088CF61Cu); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 716u, 0x088CF61Cu, 0x088C6D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 594u, 0x088C6D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF61Cu) goto L_088CF61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF61C: aot_gpr_4 = (17948u << 16u); goto L_088CF620; @@ -7619,8 +8488,21 @@ L_088CF718: ctx.gpr[10] = (0u | 1u); ctx.gpr[31] = (0x088CF738u); ctx.gpr[11] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 730u, 0x088CF738u, 0x088C6D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 594u, 0x088C6D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF738u) goto L_088CF738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF738: aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (0u | 1u); @@ -7668,8 +8550,8 @@ L_088CF774: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CF7BC: @@ -7731,8 +8613,21 @@ L_088CF828: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x088CF838u); aot_gpr_4 = (aot_gpr_4 + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 741u, 0x088CF838u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF838u) goto L_088CF838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF838: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -7909,8 +8804,21 @@ L_088CF97C: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); ctx.gpr[31] = (0x088CF98Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 760u, 0x088CF98Cu, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF98Cu) goto L_088CF98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF98C: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7923,8 +8831,21 @@ L_088CF98C: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); ctx.gpr[31] = (0x088CF9B8u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 761u, 0x088CF9B8u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CF9B8u) goto L_088CF9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CF9B8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -8000,8 +8921,21 @@ L_088CFA50: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); ctx.gpr[31] = (0x088CFA94u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 766u, 0x088CFA94u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFA94u) goto L_088CFA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFA94: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8025,8 +8959,8 @@ L_088CFAA0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CFAC0: @@ -8077,8 +9011,8 @@ L_088CFB3C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20328))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CFB54: @@ -8126,8 +9060,21 @@ L_088CFB94: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); ctx.gpr[31] = (0x088CFBA8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 778u, 0x088CFBA8u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFBA8u) goto L_088CFBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFBA8: aot_gpr_16 = (0u | 0u); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -8217,8 +9164,21 @@ L_088CFC28: aot_gpr_5 = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x088CFC44u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 789u, 0x088CFC44u, 0x088C7414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 662u, 0x088C7414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFC44u) goto L_088CFC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFC44: { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -8234,8 +9194,21 @@ L_088CFC4C: aot_gpr_5 = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x088CFC64u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 791u, 0x088CFC64u, 0x088C75B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 682u, 0x088C75B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFC64u) goto L_088CFC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFC64: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088CFC68; @@ -8270,8 +9243,21 @@ L_088CFC84: aot_gpr_5 = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x088CFCA0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 796u, 0x088CFCA0u, 0x088C7414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 662u, 0x088C7414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFCA0u) goto L_088CFCA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFCA0: { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -8287,8 +9273,21 @@ L_088CFCA8: aot_gpr_5 = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x088CFCC0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 798u, 0x088CFCC0u, 0x088C75B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 682u, 0x088C75B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFCC0u) goto L_088CFCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFCC0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088CFCC4; @@ -8307,8 +9306,21 @@ L_088CFCCC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); ctx.gpr[31] = (0x088CFCE8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 801u, 0x088CFCE8u, 0x088C7414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 662u, 0x088C7414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFCE8u) goto L_088CFCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFCE8: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_088CFCEC; @@ -8356,8 +9368,21 @@ L_088CFD28: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x088CFD58u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 807u, 0x088CFD58u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFD58u) goto L_088CFD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFD58: aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(72))); @@ -8387,8 +9412,8 @@ L_088CFD8C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20288))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CFDA4: @@ -8604,8 +9629,21 @@ L_088CFF78: aot_gpr_4 = (ctx.gpr[9] | 0u); ctx.gpr[31] = (0x088CFFA4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0050->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0050_entry, 831u, 0x088CFFA4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088CFFA4u) goto L_088CFFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088CFFA4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -8637,8 +9675,8 @@ L_088CFFB0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088CFFF0: diff --git a/profiles/vcs/generated/generated_unit_0051.cpp b/profiles/vcs/generated/generated_unit_0051.cpp index 5f0afc6..f1511d4 100644 --- a/profiles/vcs/generated/generated_unit_0051.cpp +++ b/profiles/vcs/generated/generated_unit_0051.cpp @@ -708,6 +708,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088D0000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -750,8 +774,21 @@ L_088D003C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D0048u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 4u, 0x088D0048u, 0x088C76BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 702u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 702u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 702u, 0x088C76BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D0048u) goto L_088D0048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D0048: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -935,8 +972,21 @@ L_088D0178: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x088D0188u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 26u, 0x088D0188u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D0188u) goto L_088D0188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D0188: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_gpr_5 = (16928u << 16u); @@ -974,8 +1024,21 @@ L_088D01B4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_31 = (0x088D01C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 31u, 0x088D01C8u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D01C8u) goto L_088D01C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D01C8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); @@ -1049,8 +1112,21 @@ L_088D0248: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088D0280u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 38u, 0x088D0280u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D0280u) goto L_088D0280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D0280: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -1074,8 +1150,8 @@ L_088D028C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D02AC: @@ -1101,8 +1177,21 @@ L_088D02AC: L_088D02F4: aot_gpr_31 = (0x088D02FCu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 43u, 0x088D02FCu, 0x08895420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 262u, 0x08895420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D02FCu) goto L_088D02FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D02FC: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = aot_gpr_2 != ctx.gpr[7]; @@ -1128,8 +1217,21 @@ L_088D0310: } L_088D0318: aot_gpr_31 = (0x088D0320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 47u, 0x088D0320u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D0320u) goto L_088D0320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D0320: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = aot_gpr_2 != ctx.gpr[7]; @@ -1315,8 +1417,21 @@ L_088D0450: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088D0460u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 72u, 0x088D0460u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D0460u) goto L_088D0460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D0460: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); ctx.gpr[6] = (17116u << 16u); @@ -1339,8 +1454,21 @@ L_088D0480: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_31 = (0x088D0494u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 75u, 0x088D0494u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D0494u) goto L_088D0494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D0494: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -1356,8 +1484,21 @@ L_088D04A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D04B8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 77u, 0x088D04B8u, 0x088C768Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 697u, 0x088C768Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D04B8u) goto L_088D04B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D04B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1509,8 +1650,21 @@ L_088D05A8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D05D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 94u, 0x088D05D8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D05D8u) goto L_088D05D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D05D8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[19] | 0u); @@ -1537,8 +1691,8 @@ L_088D05E4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D0610: @@ -1819,8 +1973,21 @@ L_088D085C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D087Cu); ctx.gpr[6] = (0u | 113u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0052. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 124u, 0x088D087Cu, 0x088D789Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0052_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0052_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0052_entry, 52u, 496u, 0x088D789Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D087Cu) goto L_088D087C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D087C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); @@ -1835,8 +2002,8 @@ L_088D0884: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20160))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D089C: @@ -3105,8 +3272,8 @@ L_088D1520: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-20032))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D1538: @@ -3158,8 +3325,21 @@ L_088D1574: L_088D157C: aot_gpr_31 = (0x088D1584u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 239u, 0x088D1584u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1584u) goto L_088D1584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1584: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3170,8 +3350,21 @@ L_088D1584: L_088D158C: aot_gpr_31 = (0x088D1594u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 241u, 0x088D1594u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1594u) goto L_088D1594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1594: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3551,8 +3744,21 @@ L_088D1978: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D1998u); ctx.gpr[6] = (0u | 114u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0052. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 272u, 0x088D1998u, 0x088D789Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0052_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0052_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0052_entry, 52u, 496u, 0x088D789Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1998u) goto L_088D1998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1998: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); @@ -3673,16 +3879,42 @@ L_088D1AE8: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x088D1AF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 281u, 0x088D1AF8u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1AF8u) goto L_088D1AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1AF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(88))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D1B0Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 282u, 0x088D1B0Cu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1B0Cu) goto L_088D1B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1B0C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -3760,8 +3992,21 @@ L_088D1B88: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088D1B98u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 292u, 0x088D1B98u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1B98u) goto L_088D1B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1B98: { const bool branch_taken = ctx.gpr[20] == 0u; aot_gpr_4 = (0u | 127u); @@ -3797,8 +4042,21 @@ L_088D1BD8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088D1BECu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 296u, 0x088D1BECu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1BECu) goto L_088D1BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1BEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); goto L_088D1BF0; @@ -3832,8 +4090,8 @@ L_088D1C18: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D1C48: @@ -3976,8 +4234,8 @@ L_088D1D44: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-19896))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D1D5C: @@ -4000,8 +4258,8 @@ L_088D1D6C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-19824))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D1D84: @@ -4063,8 +4321,21 @@ L_088D1DE8: goto L_088D1DEC; L_088D1DEC: aot_gpr_31 = (0x088D1DF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 324u, 0x088D1DF4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1DF4u) goto L_088D1DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1DF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(12))); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4078,14 +4349,40 @@ L_088D1E00: ctx.gpr[30] = (aot_gpr_4 + static_cast(-6640)); aot_gpr_31 = (0x088D1E10u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 326u, 0x088D1E10u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1E10u) goto L_088D1E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1E10: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088D1E1Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 327u, 0x088D1E1Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1E1Cu) goto L_088D1E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1E1C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < static_cast(ctx.gpr[21]) ? 1u : 0u); @@ -4334,8 +4631,21 @@ L_088D1FE4: L_088D1FEC: aot_gpr_31 = (0x088D1FF4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 356u, 0x088D1FF4u, 0x08AFFD38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 922u, 0x08AFFD38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D1FF4u) goto L_088D1FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D1FF4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4367,8 +4677,21 @@ L_088D2020: aot_gpr_5 = (ctx.gpr[22] + static_cast(4)); aot_gpr_31 = (0x088D2030u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 360u, 0x088D2030u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2030u) goto L_088D2030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2030: ctx.gpr[6] = (17136u << 16u); aot_gpr_5 = (ctx.gpr[19] & 255u); @@ -4376,8 +4699,21 @@ L_088D2030: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_31 = (0x088D2048u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 361u, 0x088D2048u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2048u) goto L_088D2048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2048: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -4466,8 +4802,21 @@ L_088D20C0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088D210Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 371u, 0x088D210Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D210Cu) goto L_088D210C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D210C: aot_gpr_4 = (0u | 214u); { const bool branch_taken = ctx.gpr[20] != aot_gpr_4; @@ -4481,8 +4830,21 @@ L_088D2118: aot_gpr_5 = (ctx.gpr[22] + static_cast(4)); aot_gpr_31 = (0x088D2128u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 373u, 0x088D2128u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2128u) goto L_088D2128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2128: ctx.gpr[6] = (17136u << 16u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); @@ -4490,8 +4852,21 @@ L_088D2128: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D2140u); aot_gpr_5 = (0u | 80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 374u, 0x088D2140u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2140u) goto L_088D2140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2140: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -4510,8 +4885,21 @@ L_088D2150: L_088D2158: aot_gpr_31 = (0x088D2160u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 377u, 0x088D2160u, 0x08AFFD38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 922u, 0x08AFFD38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2160u) goto L_088D2160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2160: if (aot_gpr_2 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); @@ -4561,8 +4949,21 @@ L_088D2178: ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]); aot_gpr_31 = (0x088D21F4u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(68), ctx.gpr[6]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 381u, 0x088D21F4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D21F4u) goto L_088D21F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D21F4: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -4603,8 +5004,8 @@ L_088D2210: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D2248: @@ -4664,8 +5065,21 @@ L_088D22BC: } L_088D22E0: aot_gpr_31 = (0x088D22E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 391u, 0x088D22E8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D22E8u) goto L_088D22E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D22E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4788,13 +5202,39 @@ L_088D23C8: ctx.gpr[21] = (aot_gpr_4 + static_cast(-6640)); aot_gpr_31 = (0x088D23D8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 404u, 0x088D23D8u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D23D8u) goto L_088D23D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D23D8: aot_gpr_31 = (0x088D23E0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 405u, 0x088D23E0u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D23E0u) goto L_088D23E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D23E0: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (0u | 1u); @@ -4967,8 +5407,21 @@ L_088D2518: L_088D2520: aot_gpr_31 = (0x088D2528u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 427u, 0x088D2528u, 0x08AFFD38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 922u, 0x08AFFD38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2528u) goto L_088D2528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2528: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5000,8 +5453,21 @@ L_088D2554: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x088D2564u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 431u, 0x088D2564u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2564u) goto L_088D2564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2564: ctx.gpr[6] = (17136u << 16u); aot_gpr_5 = (ctx.gpr[19] & 255u); @@ -5009,8 +5475,21 @@ L_088D2564: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_31 = (0x088D257Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 432u, 0x088D257Cu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D257Cu) goto L_088D257C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D257C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -5063,8 +5542,21 @@ L_088D25B4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088D2614u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 436u, 0x088D2614u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2614u) goto L_088D2614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2614: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -5103,8 +5595,8 @@ L_088D2630: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D2660: @@ -5133,8 +5625,21 @@ L_088D26C4: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x088D26D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 443u, 0x088D26D4u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D26D4u) goto L_088D26D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D26D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); ctx.fpr[26] = std::bit_cast(0u); @@ -5302,8 +5807,21 @@ L_088D2804: L_088D2880: aot_gpr_31 = (0x088D2888u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 459u, 0x088D2888u, 0x088C5CD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 363u, 0x088C5CD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2888u) goto L_088D2888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2888: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); @@ -5331,8 +5849,21 @@ L_088D28C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D28CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 462u, 0x088D28CCu, 0x088C8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 164u, 0x088C8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D28CCu) goto L_088D28CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D28CC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -5350,8 +5881,21 @@ L_088D28E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D28ECu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 465u, 0x088D28ECu, 0x088C8F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 160u, 0x088C8F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D28ECu) goto L_088D28EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D28EC: aot_gpr_4 = (16800u << 16u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-23796))); @@ -5384,8 +5928,21 @@ L_088D292C: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088D2948u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 468u, 0x088D2948u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2948u) goto L_088D2948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2948: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (0u | 63u); @@ -5450,8 +6007,21 @@ L_088D29C8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088D29FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 473u, 0x088D29FCu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D29FCu) goto L_088D29FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D29FC: aot_gpr_4 = (16384u << 16u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -5474,8 +6044,21 @@ L_088D2A14: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088D2A30u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 476u, 0x088D2A30u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2A30u) goto L_088D2A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2A30: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -5536,8 +6119,21 @@ L_088D2AAC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088D2AD4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 481u, 0x088D2AD4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2AD4u) goto L_088D2AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2AD4: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -5564,8 +6160,21 @@ L_088D2AE8: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088D2B0Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 484u, 0x088D2B0Cu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2B0Cu) goto L_088D2B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2B0C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -5596,8 +6205,21 @@ L_088D2B1C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088D2B6Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 486u, 0x088D2B6Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2B6Cu) goto L_088D2B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2B6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1596))); @@ -5625,8 +6247,8 @@ L_088D2B7C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D2BC0: @@ -5655,8 +6277,21 @@ L_088D2C24: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x088D2C34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 490u, 0x088D2C34u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2C34u) goto L_088D2C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2C34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); @@ -5772,8 +6407,21 @@ L_088D2CE8: L_088D2D50: aot_gpr_31 = (0x088D2D58u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 502u, 0x088D2D58u, 0x088C5CD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 363u, 0x088C5CD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2D58u) goto L_088D2D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2D58: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); @@ -5801,8 +6449,21 @@ L_088D2D90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D2D9Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 505u, 0x088D2D9Cu, 0x088C8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 164u, 0x088C8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2D9Cu) goto L_088D2D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2D9C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -5820,8 +6481,21 @@ L_088D2DB0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D2DBCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 508u, 0x088D2DBCu, 0x088C8F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 160u, 0x088C8F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2DBCu) goto L_088D2DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2DBC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-23796))); { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -5854,8 +6528,21 @@ L_088D2DF8: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088D2E18u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 511u, 0x088D2E18u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2E18u) goto L_088D2E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2E18: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (0u | 63u); @@ -5921,8 +6608,21 @@ L_088D2E98: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088D2ECCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 516u, 0x088D2ECCu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2ECCu) goto L_088D2ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2ECC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[26])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -5943,8 +6643,21 @@ L_088D2EE0: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088D2EFCu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 519u, 0x088D2EFCu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2EFCu) goto L_088D2EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2EFC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6008,8 +6721,21 @@ L_088D2F78: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088D2FA8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 524u, 0x088D2FA8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2FA8u) goto L_088D2FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2FA8: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -6036,8 +6762,21 @@ L_088D2FBC: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088D2FE0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 527u, 0x088D2FE0u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D2FE0u) goto L_088D2FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D2FE0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6071,8 +6810,21 @@ L_088D2FF0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088D3048u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 529u, 0x088D3048u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3048u) goto L_088D3048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3048: aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-23680), static_cast(ctx.gpr[17])); goto L_088D304C; @@ -6097,8 +6849,8 @@ L_088D304C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D3090: @@ -6177,8 +6929,8 @@ L_088D3158: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[7]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-19776))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D3170: @@ -6253,8 +7005,8 @@ L_088D31F4: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[6]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-19680))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D320C: @@ -6985,8 +7737,21 @@ L_088D3AA8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D3AB4u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 587u, 0x088D3AB4u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3AB4u) goto L_088D3AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3AB4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6998,8 +7763,21 @@ L_088D3ABC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D3AC8u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 589u, 0x088D3AC8u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3AC8u) goto L_088D3AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3AC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -7056,8 +7834,21 @@ L_088D3B5C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D3B68u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 593u, 0x088D3B68u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3B68u) goto L_088D3B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3B68: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (0u | 5921u); @@ -7070,8 +7861,21 @@ L_088D3B70: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D3B7Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 595u, 0x088D3B7Cu, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3B7Cu) goto L_088D3B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3B7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -7121,8 +7925,21 @@ L_088D3C00: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D3C0Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 598u, 0x088D3C0Cu, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3C0Cu) goto L_088D3C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3C0C: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (0u | 5920u); @@ -7135,8 +7952,21 @@ L_088D3C14: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D3C20u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 600u, 0x088D3C20u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3C20u) goto L_088D3C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3C20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -7223,8 +8053,8 @@ L_088D3CF0: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[6]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-19600))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D3D08: @@ -7422,8 +8252,21 @@ L_088D3F1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D3F2Cu); ctx.gpr[6] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 621u, 0x088D3F2Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3F2Cu) goto L_088D3F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3F2C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(16))); @@ -7453,8 +8296,21 @@ L_088D3F60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D3F70u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 625u, 0x088D3F70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3F70u) goto L_088D3F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3F70: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(17))); @@ -7507,8 +8363,21 @@ L_088D3FE4: ctx.gpr[6] = (ctx.gpr[29] + static_cast(18)); aot_gpr_31 = (0x088D3FF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0051->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0051_entry, 630u, 0x088D3FF4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D3FF4u) goto L_088D3FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D3FF4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(18))); diff --git a/profiles/vcs/generated/generated_unit_0052.cpp b/profiles/vcs/generated/generated_unit_0052.cpp index 9f521a5..738d42b 100644 --- a/profiles/vcs/generated/generated_unit_0052.cpp +++ b/profiles/vcs/generated/generated_unit_0052.cpp @@ -708,6 +708,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088D4000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -747,8 +771,8 @@ L_088D4030: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-19520))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D4048: @@ -1020,8 +1044,21 @@ L_088D4284: ctx.gpr[6] = (ctx.gpr[29] + static_cast(19)); aot_gpr_31 = (0x088D4294u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 34u, 0x088D4294u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D4294u) goto L_088D4294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D4294: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(19))); @@ -1175,8 +1212,8 @@ L_088D43D0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-19392))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D43E8: @@ -1728,16 +1765,42 @@ L_088D4980: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088D498Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 94u, 0x088D498Cu, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D498Cu) goto L_088D498C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D498C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(88))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(76))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D49A0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 95u, 0x088D49A0u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D49A0u) goto L_088D49A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D49A0: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -1789,8 +1852,21 @@ L_088D4A00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D4A0Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 101u, 0x088D4A0Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D4A0Cu) goto L_088D4A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D4A0C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(28))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1859,8 +1935,21 @@ L_088D4AA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D4AB0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 108u, 0x088D4AB0u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D4AB0u) goto L_088D4AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D4AB0: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(32), aot_run_words); @@ -1881,8 +1970,8 @@ L_088D4AB0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D4AF0: @@ -2004,8 +2093,8 @@ L_088D4CA0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-19352))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D4CB8: @@ -2264,8 +2353,8 @@ L_088D4F08: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-18496))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D4F20: @@ -2825,8 +2914,8 @@ L_088D54E0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-18384))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D54F8: @@ -3230,8 +3319,8 @@ L_088D5854: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-18256))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D586C: @@ -3305,8 +3394,8 @@ L_088D58D0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-18192))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D58E8: @@ -3502,8 +3591,8 @@ L_088D5AA8: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-18160))); jump_target = ctx.gpr[1]; aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(36), ctx.gpr[12]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D5AC0: @@ -4257,8 +4346,8 @@ L_088D6368: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-18080))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D6380: @@ -4459,8 +4548,21 @@ L_088D6530: L_088D658C: aot_gpr_31 = (0x088D6594u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 305u, 0x088D6594u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6594u) goto L_088D6594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6594: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4485,8 +4587,21 @@ L_088D65B8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D65C4u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 308u, 0x088D65C4u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D65C4u) goto L_088D65C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D65C4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4498,8 +4613,21 @@ L_088D65CC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D65D8u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 310u, 0x088D65D8u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D65D8u) goto L_088D65D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D65D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -4517,8 +4645,21 @@ L_088D65F4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D6600u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 312u, 0x088D6600u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6600u) goto L_088D6600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6600: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_5 = (0u | 2u); @@ -4584,8 +4725,21 @@ L_088D6664: aot_gpr_5 = (ctx.gpr[6] | 0u); aot_gpr_31 = (0x088D6690u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 319u, 0x088D6690u, 0x08A0E6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 413u, 0x08A0E6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6690u) goto L_088D6690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6690: aot_gpr_4 = (0u | 5921u); aot_gpr_5 = (0u | 16u); @@ -4630,8 +4784,21 @@ L_088D66B8: L_088D6710: aot_gpr_31 = (0x088D6718u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 322u, 0x088D6718u, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6718u) goto L_088D6718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6718: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4656,8 +4823,21 @@ L_088D673C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D6748u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 325u, 0x088D6748u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6748u) goto L_088D6748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6748: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4669,8 +4849,21 @@ L_088D6750: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D675Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 327u, 0x088D675Cu, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D675Cu) goto L_088D675C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D675C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -4688,8 +4881,21 @@ L_088D6778: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D6784u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 329u, 0x088D6784u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6784u) goto L_088D6784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6784: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4751,8 +4957,21 @@ L_088D67AC: L_088D6824: aot_gpr_31 = (0x088D682Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 333u, 0x088D682Cu, 0x088C63C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 454u, 0x088C63C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D682Cu) goto L_088D682C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D682C: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(28))); @@ -4801,8 +5020,21 @@ L_088D6888: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D6894u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 338u, 0x088D6894u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6894u) goto L_088D6894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6894: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4814,8 +5046,21 @@ L_088D689C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D68A8u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 340u, 0x088D68A8u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D68A8u) goto L_088D68A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D68A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -4833,8 +5078,21 @@ L_088D68C4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088D68D0u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 342u, 0x088D68D0u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D68D0u) goto L_088D68D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D68D0: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4940,8 +5198,8 @@ L_088D69C4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-18000))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D69DC: @@ -5309,8 +5567,21 @@ L_088D6CFC: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6D18u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 387u, 0x088D6D18u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6D18u) goto L_088D6D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6D18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5331,8 +5602,21 @@ L_088D6D30: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6D4Cu); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 389u, 0x088D6D4Cu, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6D4Cu) goto L_088D6D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6D4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5353,8 +5637,21 @@ L_088D6D64: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6D80u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 391u, 0x088D6D80u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6D80u) goto L_088D6D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6D80: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5375,8 +5672,21 @@ L_088D6D98: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6DB4u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 393u, 0x088D6DB4u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6DB4u) goto L_088D6DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6DB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5397,8 +5707,21 @@ L_088D6DCC: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6DE8u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 395u, 0x088D6DE8u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6DE8u) goto L_088D6DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6DE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5419,8 +5742,21 @@ L_088D6E00: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6E1Cu); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 397u, 0x088D6E1Cu, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6E1Cu) goto L_088D6E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6E1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5441,8 +5777,21 @@ L_088D6E34: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6E50u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 399u, 0x088D6E50u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6E50u) goto L_088D6E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6E50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5463,8 +5812,21 @@ L_088D6E68: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6E84u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 401u, 0x088D6E84u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6E84u) goto L_088D6E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6E84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5485,8 +5847,21 @@ L_088D6E9C: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6EB8u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 403u, 0x088D6EB8u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6EB8u) goto L_088D6EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6EB8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5507,8 +5882,21 @@ L_088D6ED0: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6EECu); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 405u, 0x088D6EECu, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6EECu) goto L_088D6EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6EEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5529,8 +5917,21 @@ L_088D6F04: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6F20u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 407u, 0x088D6F20u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6F20u) goto L_088D6F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6F20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5551,8 +5952,21 @@ L_088D6F38: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6F54u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 409u, 0x088D6F54u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6F54u) goto L_088D6F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6F54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5573,8 +5987,21 @@ L_088D6F6C: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6F88u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 411u, 0x088D6F88u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6F88u) goto L_088D6F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6F88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5595,8 +6022,21 @@ L_088D6FA0: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6FBCu); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 413u, 0x088D6FBCu, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6FBCu) goto L_088D6FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6FBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5617,8 +6057,21 @@ L_088D6FD4: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D6FF0u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 415u, 0x088D6FF0u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D6FF0u) goto L_088D6FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D6FF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5639,8 +6092,21 @@ L_088D7008: ctx.gpr[8] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D7024u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 417u, 0x088D7024u, 0x088C5F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 392u, 0x088C5F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7024u) goto L_088D7024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7024: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5665,8 +6131,21 @@ L_088D703C: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D7068u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 419u, 0x088D7068u, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7068u) goto L_088D7068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7068: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5691,8 +6170,21 @@ L_088D7080: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D70ACu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 421u, 0x088D70ACu, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D70ACu) goto L_088D70AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D70AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5717,8 +6209,21 @@ L_088D70C4: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D70F0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 423u, 0x088D70F0u, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D70F0u) goto L_088D70F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D70F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5743,8 +6248,21 @@ L_088D7108: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D7134u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 425u, 0x088D7134u, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7134u) goto L_088D7134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7134: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5769,8 +6287,21 @@ L_088D714C: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D7178u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 427u, 0x088D7178u, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7178u) goto L_088D7178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7178: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5795,8 +6326,21 @@ L_088D7190: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D71BCu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 429u, 0x088D71BCu, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D71BCu) goto L_088D71BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D71BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5821,8 +6365,21 @@ L_088D71D4: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D7200u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 431u, 0x088D7200u, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7200u) goto L_088D7200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7200: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5847,8 +6404,21 @@ L_088D7218: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D7244u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 433u, 0x088D7244u, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7244u) goto L_088D7244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7244: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5873,8 +6443,21 @@ L_088D725C: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D7288u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 435u, 0x088D7288u, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7288u) goto L_088D7288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7288: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5899,8 +6482,21 @@ L_088D72A0: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D72CCu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 437u, 0x088D72CCu, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D72CCu) goto L_088D72CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D72CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5931,8 +6527,21 @@ L_088D72F0: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D731Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 440u, 0x088D731Cu, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D731Cu) goto L_088D731C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D731C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5963,8 +6572,21 @@ L_088D7340: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D736Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 443u, 0x088D736Cu, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D736Cu) goto L_088D736C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D736C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -5995,8 +6617,21 @@ L_088D7390: ctx.gpr[11] = (0u | 127u); aot_gpr_31 = (0x088D73BCu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 446u, 0x088D73BCu, 0x088C6004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 393u, 0x088C6004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D73BCu) goto L_088D73BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D73BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(68))); ctx.gpr[8] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -6149,8 +6784,8 @@ L_088D7538: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-17960))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D7550: @@ -6336,16 +6971,42 @@ L_088D76D0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_15)); aot_gpr_31 = (0x088D76E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 479u, 0x088D76E0u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D76E0u) goto L_088D76E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D76E0: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(16))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(88))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_31 = (0x088D76F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 480u, 0x088D76F4u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D76F4u) goto L_088D76F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D76F4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6395,8 +7056,21 @@ L_088D7748: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088D7758u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 486u, 0x088D7758u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7758u) goto L_088D7758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7758: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(25))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6464,8 +7138,21 @@ L_088D77EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D77F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 493u, 0x088D77F8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D77F8u) goto L_088D77F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D77F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -6519,8 +7206,8 @@ L_088D7854: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D789C: @@ -6708,8 +7395,21 @@ L_088D7A10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D7A20u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 515u, 0x088D7A20u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7A20u) goto L_088D7A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7A20: aot_gpr_4 = (2236u << 16u); ctx.gpr[18] = (aot_gpr_4 + static_cast(32304)); @@ -6726,8 +7426,21 @@ L_088D7A20: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088D7A5Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 516u, 0x088D7A5Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7A5Cu) goto L_088D7A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7A5C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6752,8 +7465,21 @@ L_088D7A70: ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_31 = (0x088D7A84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 520u, 0x088D7A84u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7A84u) goto L_088D7A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7A84: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (0u | 10u); @@ -6846,8 +7572,21 @@ L_088D7B0C: aot_gpr_4 = (aot_gpr_16 + static_cast(21552)); aot_gpr_31 = (0x088D7B18u); aot_gpr_5 = (ctx.gpr[29] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 528u, 0x088D7B18u, 0x088C5CF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 364u, 0x088C5CF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7B18u) goto L_088D7B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7B18: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(64), aot_run_words); @@ -6861,8 +7600,8 @@ L_088D7B18: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D7B3C: @@ -6984,8 +7723,21 @@ L_088D7BF4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7C04u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 543u, 0x088D7C04u, 0x088D8114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 25u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 25u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 25u, 0x088D8114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7C04u) goto L_088D7C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7C04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7024,8 +7776,21 @@ L_088D7C38: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7C48u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 548u, 0x088D7C48u, 0x0885E4C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 572u, 0x0885E4C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7C48u) goto L_088D7C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7C48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-16352))); aot_gpr_4 = (aot_gpr_4 + static_cast(6028)); @@ -7065,8 +7830,21 @@ L_088D7C78: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7C88u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 553u, 0x088D7C88u, 0x088C9358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 223u, 0x088C9358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7C88u) goto L_088D7C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7C88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7095,8 +7873,8 @@ L_088D7CA0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-17920))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D7CB8: @@ -7155,8 +7933,21 @@ L_088D7D04: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7D14u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 565u, 0x088D7D14u, 0x08858C88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 207u, 0x08858C88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7D14u) goto L_088D7D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7D14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7186,8 +7977,8 @@ L_088D7D2C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-17864))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D7D44: @@ -7195,8 +7986,21 @@ L_088D7D44: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7D54u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 570u, 0x088D7D54u, 0x088D8114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 25u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 25u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 25u, 0x088D8114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7D54u) goto L_088D7D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7D54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7209,8 +8013,21 @@ L_088D7D5C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7D6Cu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 572u, 0x088D7D6Cu, 0x08858D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 222u, 0x08858D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7D6Cu) goto L_088D7D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7D6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7223,8 +8040,21 @@ L_088D7D74: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7D84u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 574u, 0x088D7D84u, 0x088591B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 297u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 297u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 297u, 0x088591B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7D84u) goto L_088D7D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7D84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7237,8 +8067,21 @@ L_088D7D8C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7D9Cu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 576u, 0x088D7D9Cu, 0x0885928Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 312u, 0x0885928Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7D9Cu) goto L_088D7D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7D9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7251,8 +8094,21 @@ L_088D7DA4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7DB4u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 578u, 0x088D7DB4u, 0x08857520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 838u, 0x08857520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7DB4u) goto L_088D7DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7DB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7265,8 +8121,21 @@ L_088D7DBC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7DCCu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 580u, 0x088D7DCCu, 0x088541C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 30u, 0x088541C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7DCCu) goto L_088D7DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7DCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7323,8 +8192,21 @@ L_088D7E14: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7E24u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 587u, 0x088D7E24u, 0x08852DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 729u, 0x08852DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7E24u) goto L_088D7E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7E24: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7337,8 +8219,21 @@ L_088D7E2C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7E3Cu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 589u, 0x088D7E3Cu, 0x08852F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 748u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 748u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 748u, 0x08852F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7E3Cu) goto L_088D7E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7E3C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7351,8 +8246,21 @@ L_088D7E44: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7E54u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 591u, 0x088D7E54u, 0x08853064u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 767u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 767u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 767u, 0x08853064u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7E54u) goto L_088D7E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7E54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7365,8 +8273,21 @@ L_088D7E5C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7E6Cu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 593u, 0x088D7E6Cu, 0x088531A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 786u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 786u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 786u, 0x088531A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7E6Cu) goto L_088D7E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7E6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7379,8 +8300,21 @@ L_088D7E74: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7E84u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0019. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 595u, 0x088D7E84u, 0x088532E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0019_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0019_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0019_entry, 19u, 805u, 0x088532E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7E84u) goto L_088D7E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7E84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7449,8 +8383,21 @@ L_088D7ED4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7EE4u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 604u, 0x088D7EE4u, 0x088595D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 369u, 0x088595D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7EE4u) goto L_088D7EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7EE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7463,8 +8410,21 @@ L_088D7EEC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7EFCu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 606u, 0x088D7EFCu, 0x08859520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 357u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 357u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 357u, 0x08859520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7EFCu) goto L_088D7EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7EFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7524,8 +8484,21 @@ L_088D7F40: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7F50u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 614u, 0x088D7F50u, 0x08858218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 37u, 0x08858218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7F50u) goto L_088D7F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7F50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7538,8 +8511,21 @@ L_088D7F58: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7F68u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 616u, 0x088D7F68u, 0x08858154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 24u, 0x08858154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7F68u) goto L_088D7F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7F68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7599,8 +8585,21 @@ L_088D7FAC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7FBCu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 624u, 0x088D7FBCu, 0x08855F14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 490u, 0x08855F14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7FBCu) goto L_088D7FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7FBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7613,8 +8612,21 @@ L_088D7FC4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D7FD4u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0052->0020. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0052_entry, 626u, 0x088D7FD4u, 0x08855E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0020_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0020_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0020_entry, 20u, 475u, 0x08855E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D7FD4u) goto L_088D7FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D7FD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0053.cpp b/profiles/vcs/generated/generated_unit_0053.cpp index 265895c..ecdc830 100644 --- a/profiles/vcs/generated/generated_unit_0053.cpp +++ b/profiles/vcs/generated/generated_unit_0053.cpp @@ -784,6 +784,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088D8004u; + if (local_delta_v813 >= 16328u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -818,8 +842,21 @@ L_088D8018: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D8028u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 4u, 0x088D8028u, 0x08859764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 396u, 0x08859764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8028u) goto L_088D8028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8028: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -832,8 +869,21 @@ L_088D8030: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D8040u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 6u, 0x088D8040u, 0x08859688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 381u, 0x08859688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8040u) goto L_088D8040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8040: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -890,8 +940,21 @@ L_088D8080: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D8090u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 14u, 0x088D8090u, 0x08858E40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 237u, 0x08858E40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8090u) goto L_088D8090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8090: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -919,8 +982,21 @@ L_088D80A8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D80B8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 18u, 0x088D80B8u, 0x088590D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 282u, 0x088590D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D80B8u) goto L_088D80B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D80B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -933,8 +1009,21 @@ L_088D80C0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D80D0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 20u, 0x088D80D0u, 0x08858F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 252u, 0x08858F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D80D0u) goto L_088D80D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D80D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -947,8 +1036,21 @@ L_088D80D8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088D80E8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 22u, 0x088D80E8u, 0x08858FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 267u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 267u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 267u, 0x08858FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D80E8u) goto L_088D80E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D80E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -975,8 +1077,8 @@ L_088D80FC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D8114: @@ -1446,8 +1548,21 @@ L_088D83EC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D83FCu); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 87u, 0x088D83FCu, 0x08859C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 483u, 0x08859C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D83FCu) goto L_088D83FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D83FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1475,8 +1590,21 @@ L_088D8414: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D8424u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 91u, 0x088D8424u, 0x08859FF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 535u, 0x08859FF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8424u) goto L_088D8424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8424: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1489,8 +1617,21 @@ L_088D842C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D843Cu); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 93u, 0x088D843Cu, 0x08859E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 510u, 0x08859E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D843Cu) goto L_088D843C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D843C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1503,8 +1644,21 @@ L_088D8444: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D8454u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 95u, 0x088D8454u, 0x08859AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 456u, 0x08859AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8454u) goto L_088D8454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8454: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1517,8 +1671,21 @@ L_088D845C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D846Cu); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 97u, 0x088D846Cu, 0x08859C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 483u, 0x08859C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D846Cu) goto L_088D846C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D846C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1555,8 +1722,21 @@ L_088D8494: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D84A4u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 102u, 0x088D84A4u, 0x0885A994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 683u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 683u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 683u, 0x0885A994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D84A4u) goto L_088D84A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D84A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1585,8 +1765,21 @@ L_088D84C0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D84D0u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 106u, 0x088D84D0u, 0x0885ACF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 735u, 0x0885ACF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D84D0u) goto L_088D84D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D84D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1599,8 +1792,21 @@ L_088D84D8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D84E8u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 108u, 0x088D84E8u, 0x0885AB54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 710u, 0x0885AB54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D84E8u) goto L_088D84E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D84E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1613,8 +1819,21 @@ L_088D84F0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D8500u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 110u, 0x088D8500u, 0x0885A7D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 656u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 656u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 656u, 0x0885A7D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8500u) goto L_088D8500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8500: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1627,8 +1846,21 @@ L_088D8508: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D8518u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 112u, 0x088D8518u, 0x0885A994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 683u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 683u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 683u, 0x0885A994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8518u) goto L_088D8518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8518: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1655,8 +1887,21 @@ L_088D8530: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D8540u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 116u, 0x088D8540u, 0x0885A314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 583u, 0x0885A314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8540u) goto L_088D8540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8540: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1684,8 +1929,21 @@ L_088D8558: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D8568u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 120u, 0x088D8568u, 0x0885A674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 635u, 0x0885A674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8568u) goto L_088D8568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8568: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1698,8 +1956,21 @@ L_088D8570: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D8580u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 122u, 0x088D8580u, 0x0885A4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 610u, 0x0885A4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8580u) goto L_088D8580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8580: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1712,8 +1983,21 @@ L_088D8588: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D8598u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 124u, 0x088D8598u, 0x0885A154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 556u, 0x0885A154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8598u) goto L_088D8598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8598: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1726,14 +2010,27 @@ L_088D85A0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088D85B0u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0021. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 126u, 0x088D85B0u, 0x0885A314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0021_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0021_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0021_entry, 21u, 583u, 0x0885A314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D85B0u) goto L_088D85B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D85B0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D85BC: @@ -1778,8 +2075,21 @@ L_088D85BC: L_088D8654: aot_gpr_31 = (0x088D865Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 129u, 0x088D865Cu, 0x089E93CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 245u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 245u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 245u, 0x089E93CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D865Cu) goto L_088D865C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D865C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1797,8 +2107,21 @@ L_088D8664: L_088D866C: aot_gpr_31 = (0x088D8674u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 132u, 0x088D8674u, 0x089E9384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 243u, 0x089E9384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8674u) goto L_088D8674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8674: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1810,13 +2133,39 @@ L_088D8674: L_088D8680: aot_gpr_31 = (0x088D8688u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 134u, 0x088D8688u, 0x089E93A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 244u, 0x089E93A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8688u) goto L_088D8688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8688: aot_gpr_31 = (0x088D8690u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 135u, 0x088D8690u, 0x089E93F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 246u, 0x089E93F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8690u) goto L_088D8690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8690: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] < static_cast(12) ? 1u : 0u); @@ -1833,8 +2182,8 @@ L_088D86A0: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-17752))); jump_target = ctx.gpr[1]; ctx.gpr[17] = (static_cast(static_cast(ctx.gpr[17]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D86B8: @@ -1939,8 +2288,21 @@ L_088D8798: L_088D87A4: aot_gpr_31 = (0x088D87ACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 148u, 0x088D87ACu, 0x089E9414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 247u, 0x089E9414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D87ACu) goto L_088D87AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D87AC: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1958,8 +2320,21 @@ L_088D87AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D87C0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 149u, 0x088D87C0u, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D87C0u) goto L_088D87C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D87C0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_22)) ? 0x00800000u : 0u); @@ -1976,8 +2351,21 @@ L_088D87D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D87ECu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 151u, 0x088D87ECu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D87ECu) goto L_088D87EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D87EC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -1996,8 +2384,21 @@ L_088D87FC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088D881Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 153u, 0x088D881Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D881Cu) goto L_088D881C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D881C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] & 255u); @@ -2030,8 +2431,8 @@ L_088D8830: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D8878: @@ -2250,8 +2651,21 @@ L_088D8A94: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088D8AB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 171u, 0x088D8AB0u, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8AB0u) goto L_088D8AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8AB0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -2276,8 +2690,21 @@ L_088D8ACC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D8AE4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 174u, 0x088D8AE4u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8AE4u) goto L_088D8AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8AE4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -2300,8 +2727,21 @@ L_088D8AF4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088D8B24u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 176u, 0x088D8B24u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8B24u) goto L_088D8B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8B24: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(76))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2321,8 +2761,21 @@ L_088D8B30: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_31 = (0x088D8B58u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 178u, 0x088D8B58u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8B58u) goto L_088D8B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8B58: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -2359,8 +2812,21 @@ L_088D8B68: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088D8BCCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 180u, 0x088D8BCCu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D8BCCu) goto L_088D8BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D8BCC: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] & 255u); @@ -2393,8 +2859,8 @@ L_088D8BE0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D8C28: @@ -2419,8 +2885,8 @@ L_088D8C58: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-17704))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D8C70: @@ -2848,8 +3314,21 @@ L_088D9104: aot_gpr_4 = (aot_gpr_16 + static_cast(32)); aot_gpr_31 = (0x088D9110u); aot_gpr_5 = (aot_gpr_16 + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 214u, 0x088D9110u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9110u) goto L_088D9110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9110: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2956,8 +3435,21 @@ L_088D9210: aot_gpr_4 = (aot_gpr_28 + static_cast(7696)); aot_gpr_31 = (0x088D921Cu); aot_gpr_5 = (0u | 35u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 221u, 0x088D921Cu, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D921Cu) goto L_088D921C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D921C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3533,8 +4025,8 @@ L_088D9894: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-17352))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D98AC: @@ -3821,16 +4313,42 @@ L_088D9B94: aot_gpr_5 = (aot_gpr_16 + static_cast(96)); aot_gpr_31 = (0x088D9BB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 276u, 0x088D9BB0u, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9BB0u) goto L_088D9BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9BB0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[29] | 0u); aot_gpr_31 = (0x088D9BC4u); ctx.gpr[6] = (0u | 201u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0052. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 277u, 0x088D9BC4u, 0x088D789Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0052_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0052_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0052_entry, 52u, 496u, 0x088D789Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9BC4u) goto L_088D9BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9BC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3846,16 +4364,42 @@ L_088D9BCC: aot_gpr_5 = (aot_gpr_16 + static_cast(96)); aot_gpr_31 = (0x088D9BE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 279u, 0x088D9BE8u, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9BE8u) goto L_088D9BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9BE8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(16), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[29] + static_cast(12)); aot_gpr_31 = (0x088D9BFCu); ctx.gpr[6] = (0u | 202u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0052. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 280u, 0x088D9BFCu, 0x088D789Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0052_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0052_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0052_entry, 52u, 496u, 0x088D789Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9BFCu) goto L_088D9BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9BFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3940,8 +4484,21 @@ L_088D9CCC: aot_gpr_5 = (aot_gpr_16 + static_cast(96)); aot_gpr_31 = (0x088D9CD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 287u, 0x088D9CD8u, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9CD8u) goto L_088D9CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9CD8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -3958,8 +4515,21 @@ L_088D9CEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088D9D04u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 289u, 0x088D9D04u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9D04u) goto L_088D9D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9D04: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -3993,8 +4563,21 @@ L_088D9D40: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088D9D50u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 293u, 0x088D9D50u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9D50u) goto L_088D9D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9D50: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -4012,8 +4595,21 @@ L_088D9D58: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088D9D7Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 295u, 0x088D9D7Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088D9D7Cu) goto L_088D9D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088D9D7C: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(24), aot_run_words); @@ -4026,8 +4622,8 @@ L_088D9D7C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D9D9C: @@ -4068,8 +4664,8 @@ L_088D9DD8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-17224))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088D9DF0: @@ -4377,8 +4973,21 @@ L_088DA100: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088DA10Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 321u, 0x088DA10Cu, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA10Cu) goto L_088DA10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA10C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -4395,8 +5004,21 @@ L_088DA120: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DA138u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 323u, 0x088DA138u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA138u) goto L_088DA138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA138: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -4415,8 +5037,21 @@ L_088DA148: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088DA168u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 325u, 0x088DA168u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA168u) goto L_088DA168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA168: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -4427,8 +5062,8 @@ L_088DA168: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DA180: @@ -4576,8 +5211,21 @@ L_088DA2D8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088DA318u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 338u, 0x088DA318u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA318u) goto L_088DA318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA318: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7896))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[24])) ? 0x00800000u : 0u); @@ -4589,8 +5237,21 @@ L_088DA318: } L_088DA32C: aot_gpr_31 = (0x088DA334u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 340u, 0x088DA334u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA334u) goto L_088DA334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA334: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4600,8 +5261,21 @@ L_088DA334: } L_088DA33C: aot_gpr_31 = (0x088DA344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 342u, 0x088DA344u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA344u) goto L_088DA344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA344: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4643,8 +5317,21 @@ L_088DA360: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x088DA3C4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 345u, 0x088DA3C4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA3C4u) goto L_088DA3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA3C4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(16), std::bit_cast(ctx.fpr[24])); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(20), std::bit_cast(ctx.fpr[24])); @@ -4666,8 +5353,21 @@ L_088DA3C4: ctx.gpr[6] = (ctx.gpr[29] + static_cast(20)); aot_gpr_31 = (0x088DA3E8u); aot_gpr_4 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 346u, 0x088DA3E8u, 0x089DD460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 197u, 0x089DD460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA3E8u) goto L_088DA3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA3E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(16))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -4824,8 +5524,21 @@ L_088DA504: ctx.gpr[6] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088DA564u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[6])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 364u, 0x088DA564u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA564u) goto L_088DA564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA564: aot_gpr_4 = (18804u << 16u); aot_gpr_4 = (aot_gpr_4 | 9214u); @@ -4847,8 +5560,8 @@ L_088DA574: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DA5A0: @@ -4972,8 +5685,21 @@ L_088DA6BC: aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(0), static_cast(0u)); aot_gpr_31 = (0x088DA6CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 375u, 0x088DA6CCu, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA6CCu) goto L_088DA6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA6CC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_22)) ? 0x00800000u : 0u); @@ -5013,16 +5739,42 @@ L_088DA710: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088DA720u); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 380u, 0x088DA720u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA720u) goto L_088DA720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA720: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DA734u); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 381u, 0x088DA734u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA734u) goto L_088DA734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA734: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -5170,8 +5922,21 @@ L_088DA854: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DA878u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 396u, 0x088DA878u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA878u) goto L_088DA878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA878: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); goto L_088DA87C; @@ -5236,16 +6001,42 @@ L_088DA8EC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088DA8FCu); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 404u, 0x088DA8FCu, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA8FCu) goto L_088DA8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA8FC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DA910u); aot_gpr_5 = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 405u, 0x088DA910u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA910u) goto L_088DA910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA910: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -5354,8 +6145,21 @@ L_088DA9DC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DA9ECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 417u, 0x088DA9ECu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DA9ECu) goto L_088DA9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DA9EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); goto L_088DA9F0; @@ -5407,8 +6211,8 @@ L_088DAA34: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DAA78: @@ -5484,8 +6288,8 @@ L_088DAB44: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-17176))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DAB5C: @@ -6178,8 +6982,21 @@ L_088DB03C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DB050u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 499u, 0x088DB050u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB050u) goto L_088DB050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB050: { const bool branch_taken = ctx.gpr[19] == 0u; ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); @@ -6202,8 +7019,21 @@ L_088DB058: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DB08Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 501u, 0x088DB08Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB08Cu) goto L_088DB08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB08C: { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_4 = (ctx.gpr[17] + static_cast(-1)); @@ -6231,8 +7061,21 @@ L_088DB0C0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DB0D0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 504u, 0x088DB0D0u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB0D0u) goto L_088DB0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB0D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -6269,8 +7112,8 @@ L_088DB0FC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DB134: @@ -6315,8 +7158,21 @@ L_088DB134: L_088DB1C8: aot_gpr_31 = (0x088DB1D0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 509u, 0x088DB1D0u, 0x08880328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 31u, 0x08880328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB1D0u) goto L_088DB1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB1D0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6328,8 +7184,21 @@ L_088DB1D0: L_088DB1DC: aot_gpr_31 = (0x088DB1E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 511u, 0x088DB1E4u, 0x08880328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 31u, 0x08880328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB1E4u) goto L_088DB1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB1E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (static_cast(aot_gpr_4) < 17 ? 1u : 0u); @@ -6465,8 +7334,21 @@ L_088DB2F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB30Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 522u, 0x088DB30Cu, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB30Cu) goto L_088DB30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB30C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -6483,8 +7365,21 @@ L_088DB320: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB338u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 524u, 0x088DB338u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB338u) goto L_088DB338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB338: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6503,8 +7398,21 @@ L_088DB348: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088DB368u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 526u, 0x088DB368u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB368u) goto L_088DB368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB368: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] & 255u); @@ -6537,8 +7445,8 @@ L_088DB37C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DB3C4: @@ -6581,8 +7489,21 @@ L_088DB428: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB434u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 531u, 0x088DB434u, 0x088CA5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 474u, 0x088CA5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB434u) goto L_088DB434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB434: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(26268))); goto L_088DB438; @@ -6624,8 +7545,21 @@ L_088DB464: aot_gpr_4 = (aot_gpr_28 + static_cast(7696)); aot_gpr_31 = (0x088DB474u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 537u, 0x088DB474u, 0x0880A350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 497u, 0x0880A350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB474u) goto L_088DB474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB474: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6661,8 +7595,21 @@ L_088DB494: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088DB4A8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 542u, 0x088DB4A8u, 0x0880A390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 502u, 0x0880A390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB4A8u) goto L_088DB4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB4A8: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -6767,8 +7714,21 @@ L_088DB548: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088DB558u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 555u, 0x088DB558u, 0x0880A350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 497u, 0x0880A350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB558u) goto L_088DB558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB558: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6822,21 +7782,60 @@ L_088DB598: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB5A4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 563u, 0x088DB5A4u, 0x088CA378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 435u, 0x088CA378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB5A4u) goto L_088DB5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB5A4: aot_gpr_16 = (aot_gpr_28 + static_cast(7696)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB5B4u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 564u, 0x088DB5B4u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB5B4u) goto L_088DB5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB5B4: aot_gpr_5 = (ctx.gpr[18] + ctx.gpr[22]); aot_gpr_31 = (0x088DB5C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 565u, 0x088DB5C0u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB5C0u) goto L_088DB5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB5C0: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(-23536), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(-23531), static_cast(0u)); @@ -6874,8 +7873,21 @@ L_088DB5F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB610u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 569u, 0x088DB610u, 0x088CA6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 476u, 0x088CA6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB610u) goto L_088DB610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB610: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6887,8 +7899,21 @@ L_088DB618: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB624u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 571u, 0x088DB624u, 0x088CA578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 467u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 467u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 467u, 0x088CA578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB624u) goto L_088DB624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB624: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6924,8 +7949,21 @@ L_088DB644: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x088DB66Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 575u, 0x088DB66Cu, 0x0880A214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 474u, 0x0880A214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB66Cu) goto L_088DB66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB66C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(26341))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6939,8 +7977,21 @@ L_088DB678: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DB688u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 577u, 0x088DB688u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB688u) goto L_088DB688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB688: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(26240))); @@ -6960,8 +8011,21 @@ L_088DB69C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DB6ACu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 580u, 0x088DB6ACu, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB6ACu) goto L_088DB6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB6AC: ctx.gpr[21] = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(26240))); goto L_088DB6B0; @@ -6978,22 +8042,61 @@ L_088DB6B8: ctx.gpr[6] = (0u | 127u); aot_gpr_31 = (0x088DB6CCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 583u, 0x088DB6CCu, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB6CCu) goto L_088DB6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB6CC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DB6DCu); ctx.gpr[6] = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 584u, 0x088DB6DCu, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB6DCu) goto L_088DB6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB6DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DB6ECu); ctx.gpr[6] = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 585u, 0x088DB6ECu, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB6ECu) goto L_088DB6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB6EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7008,8 +8111,21 @@ L_088DB6F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB70Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 587u, 0x088DB70Cu, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB70Cu) goto L_088DB70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB70C: aot_gpr_4 = (17864u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -7030,23 +8146,62 @@ L_088DB728: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088DB748u); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 589u, 0x088DB748u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB748u) goto L_088DB748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB748: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088DB75Cu); ctx.gpr[6] = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 590u, 0x088DB75Cu, 0x089B8234u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 30u, 0x089B8234u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB75Cu) goto L_088DB75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB75C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088DB76Cu); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 591u, 0x088DB76Cu, 0x089B80C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 13u, 0x089B80C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB76Cu) goto L_088DB76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB76C: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (aot_gpr_2 | 0u); @@ -7065,21 +8220,60 @@ L_088DB77C: ctx.gpr[6] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088DB790u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 594u, 0x088DB790u, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB790u) goto L_088DB790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB790: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088DB7A0u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 595u, 0x088DB7A0u, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB7A0u) goto L_088DB7A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB7A0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088DB7ACu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 596u, 0x088DB7ACu, 0x0880A624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 546u, 0x0880A624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB7ACu) goto L_088DB7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB7AC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(26273), static_cast(aot_gpr_4)); @@ -7111,8 +8305,21 @@ L_088DB7D8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(26248))); aot_gpr_31 = (0x088DB7E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 600u, 0x088DB7E4u, 0x088CA7A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 493u, 0x088CA7A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB7E4u) goto L_088DB7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB7E4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7131,21 +8338,60 @@ L_088DB7F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB800u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 603u, 0x088DB800u, 0x088CA378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 435u, 0x088CA378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB800u) goto L_088DB800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB800: aot_gpr_16 = (aot_gpr_28 + static_cast(7696)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB810u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 604u, 0x088DB810u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB810u) goto L_088DB810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB810: aot_gpr_5 = (ctx.gpr[18] + ctx.gpr[22]); aot_gpr_31 = (0x088DB81Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 605u, 0x088DB81Cu, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB81Cu) goto L_088DB81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB81C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7209,8 +8455,21 @@ L_088DB86C: L_088DB874: aot_gpr_31 = (0x088DB87Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 613u, 0x088DB87Cu, 0x08985EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 527u, 0x08985EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB87Cu) goto L_088DB87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB87C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7235,8 +8494,21 @@ L_088DB894: aot_gpr_4 = (aot_gpr_28 + static_cast(7696)); aot_gpr_31 = (0x088DB8A8u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 617u, 0x088DB8A8u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB8A8u) goto L_088DB8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB8A8: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(26284), 0u); @@ -7295,8 +8567,21 @@ L_088DB8F4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088DB900u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 624u, 0x088DB900u, 0x0880A5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 542u, 0x0880A5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB900u) goto L_088DB900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB900: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7321,15 +8606,41 @@ L_088DB914: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088DB92Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 628u, 0x088DB92Cu, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB92Cu) goto L_088DB92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB92C: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(26284), 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB93Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 629u, 0x088DB93Cu, 0x088CA6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 476u, 0x088CA6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB93Cu) goto L_088DB93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB93C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7341,8 +8652,21 @@ L_088DB944: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB950u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 631u, 0x088DB950u, 0x088CA578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 467u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 467u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 467u, 0x088CA578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB950u) goto L_088DB950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB950: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7363,8 +8687,21 @@ L_088DB964: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088DB974u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 634u, 0x088DB974u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB974u) goto L_088DB974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB974: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7383,8 +8720,21 @@ L_088DB988: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088DB998u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 637u, 0x088DB998u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB998u) goto L_088DB998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB998: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -7403,8 +8753,21 @@ L_088DB9B4: ctx.gpr[6] = (0u | 127u); aot_gpr_31 = (0x088DB9C8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 639u, 0x088DB9C8u, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB9C8u) goto L_088DB9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB9C8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(26240))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7420,8 +8783,21 @@ L_088DB9D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DB9ECu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 641u, 0x088DB9ECu, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DB9ECu) goto L_088DB9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DB9EC: aot_gpr_4 = (17864u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -7442,8 +8818,21 @@ L_088DBA08: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088DBA28u); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 643u, 0x088DBA28u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DBA28u) goto L_088DBA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DBA28: ctx.gpr[21] = (ctx.gpr[29] + static_cast(16)); aot_gpr_16 = (aot_gpr_2 | 0u); @@ -7451,15 +8840,41 @@ L_088DBA28: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088DBA40u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 644u, 0x088DBA40u, 0x089B8234u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 30u, 0x089B8234u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DBA40u) goto L_088DBA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DBA40: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088DBA50u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 645u, 0x088DBA50u, 0x089B80C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 13u, 0x089B80C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DBA50u) goto L_088DBA50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DBA50: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -7478,15 +8893,41 @@ L_088DBA60: ctx.gpr[6] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088DBA74u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 648u, 0x088DBA74u, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DBA74u) goto L_088DBA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DBA74: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088DBA84u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 649u, 0x088DBA84u, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DBA84u) goto L_088DBA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DBA84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7526,8 +8967,21 @@ L_088DBAB8: aot_gpr_4 = (aot_gpr_28 + static_cast(7696)); aot_gpr_31 = (0x088DBAC4u); aot_gpr_5 = (ctx.gpr[18] + ctx.gpr[22]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 654u, 0x088DBAC4u, 0x0880A5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 542u, 0x0880A5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DBAC4u) goto L_088DBAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DBAC4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7556,8 +9010,8 @@ L_088DBAD8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DBB08: @@ -7602,8 +9056,8 @@ L_088DBB08: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(-23812), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(-23796), std::bit_cast(ctx.fpr[14])); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DBBAC: @@ -7661,8 +9115,8 @@ L_088DBC1C: goto L_088DBC20; L_088DBC20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DBC28: @@ -7895,8 +9349,21 @@ L_088DBE28: ctx.gpr[7] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x088DBE3Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0053->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0053_entry, 687u, 0x088DBE3Cu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DBE3Cu) goto L_088DBE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DBE3C: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x088DBE48u); diff --git a/profiles/vcs/generated/generated_unit_0054.cpp b/profiles/vcs/generated/generated_unit_0054.cpp index 8fb08fc..850cb2f 100644 --- a/profiles/vcs/generated/generated_unit_0054.cpp +++ b/profiles/vcs/generated/generated_unit_0054.cpp @@ -610,6 +610,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088DC004u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -791,8 +815,8 @@ L_088DC15C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DC198: @@ -835,8 +859,8 @@ L_088DC1D8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DC1E4: @@ -902,8 +926,8 @@ L_088DC264: goto L_088DC268; L_088DC268: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DC270: @@ -1023,8 +1047,8 @@ L_088DC34C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DC36C: @@ -1110,8 +1134,21 @@ L_088DC3C0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x088DC470u); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 47u, 0x088DC470u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC470u) goto L_088DC470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC470: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1528))); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -1134,8 +1171,8 @@ L_088DC48C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DC4A4: @@ -1149,8 +1186,21 @@ L_088DC4A4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(13080), aot_run_words); } ctx.gpr[31] = (0x088DC4D0u); ctx.gpr[19] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 50u, 0x088DC4D0u, 0x08A2F9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 583u, 0x08A2F9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC4D0u) goto L_088DC4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC4D0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(36)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1167,8 +1217,21 @@ L_088DC4E0: aot_gpr_6 = (0u | 32u); ctx.gpr[31] = (0x088DC4F8u); aot_gpr_7 = (aot_gpr_7 + static_cast(-32180)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 52u, 0x088DC4F8u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC4F8u) goto L_088DC4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC4F8: ctx.gpr[18] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 4 ? 1u : 0u); @@ -1230,8 +1293,21 @@ L_088DC544: ctx.gpr[9] = (0u | 0u); ctx.gpr[31] = (0x088DC564u); aot_gpr_7 = (aot_gpr_7 + static_cast(-15976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 61u, 0x088DC564u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC564u) goto L_088DC564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC564: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1254,8 +1330,8 @@ L_088DC570: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(13104)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DC58C: @@ -1278,8 +1354,21 @@ L_088DC5C8: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x088DC5D8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 66u, 0x088DC5D8u, 0x0890F188u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 717u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 717u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 717u, 0x0890F188u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC5D8u) goto L_088DC5D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC5D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_4 = (aot_gpr_4 & 28u); @@ -1452,8 +1541,21 @@ L_088DC714: L_088DC71C: ctx.gpr[31] = (0x088DC724u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 88u, 0x088DC724u, 0x0890F33Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 739u, 0x0890F33Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC724u) goto L_088DC724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC724: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(1492))); @@ -1523,8 +1625,8 @@ L_088DC794: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DC7B8: @@ -1585,14 +1687,40 @@ L_088DC830: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(116), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x088DC888u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 98u, 0x088DC888u, 0x088F824Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 26u, 0x088F824Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC888u) goto L_088DC888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC888: aot_gpr_16 = (aot_gpr_29 + static_cast(208)); ctx.gpr[31] = (0x088DC894u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 99u, 0x088DC894u, 0x088F824Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 26u, 0x088F824Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC894u) goto L_088DC894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC894: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1464))); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(280))); @@ -1654,16 +1782,42 @@ L_088DC8E4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x088DC8FCu); aot_gpr_5 = (aot_gpr_29 + static_cast(272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 106u, 0x088DC8FCu, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC8FCu) goto L_088DC8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC8FC: ctx.gpr[19] = (aot_gpr_29 + static_cast(240)); ctx.gpr[30] = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (aot_gpr_29 + static_cast(256)); ctx.gpr[31] = (0x088DC910u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 107u, 0x088DC910u, 0x088F83CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 29u, 0x088F83CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC910u) goto L_088DC910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC910: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(264))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -1688,8 +1842,21 @@ L_088DC924: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x088DC938u); aot_gpr_5 = (aot_gpr_29 + static_cast(276)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 109u, 0x088DC938u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC938u) goto L_088DC938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC938: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; @@ -1744,8 +1911,21 @@ L_088DC990: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(116), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x088DC9CCu); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 114u, 0x088DC9CCu, 0x08A2F9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 583u, 0x08A2F9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DC9CCu) goto L_088DC9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DC9CC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(36)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1848,8 +2028,21 @@ L_088DCAA8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(116), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x088DCACCu); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 124u, 0x088DCACCu, 0x08A2F9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 583u, 0x08A2F9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCACCu) goto L_088DCACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCACC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(36)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1899,8 +2092,8 @@ L_088DCB28: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DCB5C: @@ -1917,8 +2110,21 @@ L_088DCB5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[31]); ctx.gpr[31] = (0x088DCB98u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 129u, 0x088DCB98u, 0x0890F3BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 745u, 0x0890F3BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCB98u) goto L_088DCB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCB98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(460))); ctx.gpr[20] = (ctx.gpr[21] | 0u); @@ -1965,8 +2171,21 @@ L_088DCBF0: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(0), static_cast(ctx.gpr[20])); ctx.gpr[31] = (0x088DCBFCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 135u, 0x088DCBFCu, 0x0890F33Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 739u, 0x0890F33Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCBFCu) goto L_088DCBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCBFC: ctx.gpr[2] = (0u | 0u); goto L_088DCC00; @@ -1983,8 +2202,8 @@ L_088DCC00: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DCC24: @@ -1995,14 +2214,40 @@ L_088DCC24: ctx.gpr[19] = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x088DCC60u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 138u, 0x088DCC60u, 0x088F824Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 26u, 0x088F824Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCC60u) goto L_088DCC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCC60: ctx.gpr[30] = (aot_gpr_29 + static_cast(32)); ctx.gpr[31] = (0x088DCC6Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 139u, 0x088DCC6Cu, 0x088F824Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 26u, 0x088F824Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCC6Cu) goto L_088DCC6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCC6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(116), 0u); @@ -2040,8 +2285,21 @@ L_088DCC6C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x088DCCD0u); aot_gpr_5 = (aot_gpr_29 + static_cast(192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 140u, 0x088DCCD0u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCCD0u) goto L_088DCCD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCCD0: aot_gpr_4 = (0u + static_cast(-1)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(904)))))); @@ -2097,8 +2355,21 @@ L_088DCD28: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x088DCD3Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(196)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 145u, 0x088DCD3Cu, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCD3Cu) goto L_088DCD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCD3C: ctx.gpr[17] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(904)))))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(204))); @@ -2136,8 +2407,21 @@ L_088DCD70: aot_gpr_5 = (aot_gpr_29 + static_cast(200)); ctx.gpr[31] = (0x088DCD84u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 148u, 0x088DCD84u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCD84u) goto L_088DCD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCD84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); if (aot_gpr_4 == aot_gpr_29) { @@ -2190,8 +2474,21 @@ L_088DCDDC: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(148), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x088DCE18u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 153u, 0x088DCE18u, 0x08A2F9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 583u, 0x08A2F9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DCE18u) goto L_088DCE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DCE18: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(36)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2309,8 +2606,8 @@ L_088DCF08: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DCF44: @@ -2352,14 +2649,40 @@ L_088DCF44: aot_gpr_5 = (ctx.gpr[17] + static_cast(48)); ctx.gpr[31] = (0x088DD008u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 164u, 0x088DD008u, 0x088F82FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 27u, 0x088F82FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD008u) goto L_088DD008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD008: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x088DD014u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 165u, 0x088DD014u, 0x088F83CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 29u, 0x088F83CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD014u) goto L_088DD014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD014: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2886,8 +3209,8 @@ L_088DD458: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DD494: @@ -2908,8 +3231,21 @@ L_088DD494: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x088DD4E4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 213u, 0x088DD4E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD4E4u) goto L_088DD4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD4E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); if (aot_gpr_4 != 0u) { @@ -2935,8 +3271,21 @@ L_088DD4FC: aot_gpr_6 = (0u | 12u); ctx.gpr[31] = (0x088DD514u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 217u, 0x088DD514u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD514u) goto L_088DD514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD514: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); @@ -2961,8 +3310,21 @@ L_088DD514: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x088DD570u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 218u, 0x088DD570u, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD570u) goto L_088DD570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD570: ctx.gpr[22] = (2246u << 16u); ctx.gpr[19] = (2232u << 16u); @@ -3034,15 +3396,41 @@ L_088DD5F0: aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DD620u); ctx.gpr[9] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 225u, 0x088DD620u, 0x08A8E694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 486u, 0x08A8E694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD620u) goto L_088DD620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD620: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x088DD630u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 226u, 0x088DD630u, 0x08A8DD20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 352u, 0x08A8DD20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD630u) goto L_088DD630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD630: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_16) >= 0; @@ -3068,8 +3456,8 @@ L_088DD63C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DD670: @@ -3086,8 +3474,21 @@ L_088DD670: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } ctx.gpr[31] = (0x088DD6A8u); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 229u, 0x088DD6A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD6A8u) goto L_088DD6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD6A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[18] = (2236u << 16u); @@ -3118,8 +3519,21 @@ L_088DD6C8: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x088DD6E4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 233u, 0x088DD6E4u, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD6E4u) goto L_088DD6E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD6E4: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -3127,8 +3541,21 @@ L_088DD6E4: aot_gpr_6 = (0u | 2u); ctx.gpr[31] = (0x088DD6FCu); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 234u, 0x088DD6FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD6FCu) goto L_088DD6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD6FC: { const bool branch_taken = static_cast(aot_gpr_16) < 0; if (branch_taken) { @@ -3144,15 +3571,41 @@ L_088DD704: aot_gpr_6 = (aot_gpr_6 & 255u); ctx.gpr[31] = (0x088DD720u); aot_gpr_7 = (aot_gpr_7 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 236u, 0x088DD720u, 0x08A8E8E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 500u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 500u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 500u, 0x08A8E8E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD720u) goto L_088DD720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD720: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x088DD730u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 237u, 0x088DD730u, 0x08A8DD20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 352u, 0x08A8DD20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD730u) goto L_088DD730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD730: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_16) >= 0; @@ -3175,8 +3628,8 @@ L_088DD73C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DD764: @@ -3193,8 +3646,21 @@ L_088DD764: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } ctx.gpr[31] = (0x088DD79Cu); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 240u, 0x088DD79Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD79Cu) goto L_088DD79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD79C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[18] = (2236u << 16u); @@ -3225,8 +3691,21 @@ L_088DD7BC: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x088DD7D8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 244u, 0x088DD7D8u, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD7D8u) goto L_088DD7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD7D8: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -3234,8 +3713,21 @@ L_088DD7D8: aot_gpr_6 = (0u | 2u); ctx.gpr[31] = (0x088DD7F0u); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 245u, 0x088DD7F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD7F0u) goto L_088DD7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD7F0: { const bool branch_taken = static_cast(aot_gpr_16) < 0; if (branch_taken) { @@ -3251,15 +3743,41 @@ L_088DD7F8: aot_gpr_6 = (aot_gpr_6 & 255u); ctx.gpr[31] = (0x088DD814u); aot_gpr_7 = (aot_gpr_7 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 247u, 0x088DD814u, 0x08A8E960u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 505u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 505u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 505u, 0x08A8E960u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD814u) goto L_088DD814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD814: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x088DD824u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 248u, 0x088DD824u, 0x08A8DD20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 352u, 0x08A8DD20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD824u) goto L_088DD824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD824: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_16) >= 0; @@ -3282,8 +3800,8 @@ L_088DD830: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DD858: @@ -3299,8 +3817,21 @@ L_088DD858: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), ctx.gpr[31]); ctx.gpr[31] = (0x088DD888u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 251u, 0x088DD888u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD888u) goto L_088DD888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD888: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); ctx.gpr[18] = (2236u << 16u); @@ -3331,15 +3862,41 @@ L_088DD8A8: aot_gpr_6 = (0u | 12u); ctx.gpr[31] = (0x088DD8C4u); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 255u, 0x088DD8C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD8C4u) goto L_088DD8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD8C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DD8D4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 256u, 0x088DD8D4u, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD8D4u) goto L_088DD8D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD8D4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -3398,15 +3955,41 @@ L_088DD8E4: ctx.gpr[11] = (static_cast(static_cast(ctx.gpr[11]) >> 16u)); ctx.gpr[31] = (0x088DD990u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[15]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 259u, 0x088DD990u, 0x08A8E770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 493u, 0x08A8E770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD990u) goto L_088DD990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD990: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DD9A0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 260u, 0x088DD9A0u, 0x08A8DD20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 352u, 0x08A8DD20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD9A0u) goto L_088DD9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD9A0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -3428,8 +4011,8 @@ L_088DD9AC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DD9CC: @@ -3445,8 +4028,21 @@ L_088DD9CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[31]); ctx.gpr[31] = (0x088DD9FCu); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 263u, 0x088DD9FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DD9FCu) goto L_088DD9FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DD9FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[18] = (2236u << 16u); @@ -3477,15 +4073,41 @@ L_088DDA1C: aot_gpr_6 = (0u | 2u); ctx.gpr[31] = (0x088DDA38u); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 267u, 0x088DDA38u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDA38u) goto L_088DDA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDA38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DDA48u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 268u, 0x088DDA48u, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDA48u) goto L_088DDA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDA48: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -3502,15 +4124,41 @@ L_088DDA54: aot_gpr_6 = (aot_gpr_6 & 255u); ctx.gpr[31] = (0x088DDA70u); aot_gpr_7 = (aot_gpr_7 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 270u, 0x088DDA70u, 0x08A8E9DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 510u, 0x08A8E9DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDA70u) goto L_088DDA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDA70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DDA80u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 271u, 0x088DDA80u, 0x08A8DD20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 352u, 0x08A8DD20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDA80u) goto L_088DDA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDA80: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -3531,8 +4179,8 @@ L_088DDA8C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DDAAC: @@ -3549,8 +4197,21 @@ L_088DDAAC: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x088DDAE4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 274u, 0x088DDAE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDAE4u) goto L_088DDAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDAE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); if (aot_gpr_4 != 0u) { @@ -3578,8 +4239,21 @@ L_088DDAFC: aot_gpr_6 = (0u | 14u); ctx.gpr[31] = (0x088DDB1Cu); aot_gpr_7 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 278u, 0x088DDB1Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDB1Cu) goto L_088DDB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDB1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); @@ -3612,8 +4286,21 @@ L_088DDB1C: aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DDB98u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 279u, 0x088DDB98u, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDB98u) goto L_088DDB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDB98: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -3629,15 +4316,41 @@ L_088DDBA4: aot_gpr_7 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x088DDBBCu); aot_gpr_6 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 281u, 0x088DDBBCu, 0x08A8E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 479u, 0x08A8E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDBBCu) goto L_088DDBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDBBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DDBCCu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 282u, 0x088DDBCCu, 0x08A8DD20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 352u, 0x08A8DD20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDBCCu) goto L_088DDBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDBCC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -3658,8 +4371,8 @@ L_088DDBD8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DDBF8: @@ -3677,8 +4390,21 @@ L_088DDBF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), ctx.gpr[31]); ctx.gpr[31] = (0x088DDC30u); aot_gpr_7 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 285u, 0x088DDC30u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDC30u) goto L_088DDC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDC30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -3691,8 +4417,21 @@ L_088DDC30: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x088DDC5Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 286u, 0x088DDC5Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDC5Cu) goto L_088DDC5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDC5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -3716,21 +4455,60 @@ L_088DDC74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); ctx.gpr[31] = (0x088DDC84u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 290u, 0x088DDC84u, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDC84u) goto L_088DDC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDC84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); ctx.gpr[31] = (0x088DDC90u); aot_gpr_5 = (ctx.gpr[2] & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 291u, 0x088DDC90u, 0x08A8EA74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 516u, 0x08A8EA74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDC90u) goto L_088DDC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDC90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x088DDCA0u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 292u, 0x088DDCA0u, 0x08A8DAA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 313u, 0x08A8DAA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDCA0u) goto L_088DDCA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDCA0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3819,8 +4597,8 @@ L_088DDD20: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DDD40: @@ -3838,8 +4616,21 @@ L_088DDD40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[31]); ctx.gpr[31] = (0x088DDD78u); aot_gpr_7 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 303u, 0x088DDD78u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDD78u) goto L_088DDD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDD78: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -3850,14 +4641,40 @@ L_088DDD78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x088DDD9Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 304u, 0x088DDD9Cu, 0x08A8E188u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 421u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 421u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 421u, 0x08A8E188u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDD9Cu) goto L_088DDD9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDD9C: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DDDA8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 305u, 0x088DDDA8u, 0x08862920u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 436u, 0x08862920u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDDA8u) goto L_088DDDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDDA8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3878,8 +4695,8 @@ L_088DDDBC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DDDDC: @@ -3897,8 +4714,21 @@ L_088DDDDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[31]); ctx.gpr[31] = (0x088DDE14u); aot_gpr_7 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 308u, 0x088DDE14u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDE14u) goto L_088DDE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDE14: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -3909,14 +4739,40 @@ L_088DDE14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x088DDE38u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 309u, 0x088DDE38u, 0x08A8E2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 433u, 0x08A8E2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDE38u) goto L_088DDE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDE38: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x088DDE44u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 310u, 0x088DDE44u, 0x08862920u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 436u, 0x08862920u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDE44u) goto L_088DDE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDE44: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3937,8 +4793,8 @@ L_088DDE58: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DDE78: @@ -3953,8 +4809,21 @@ L_088DDE78: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } ctx.gpr[31] = (0x088DDEB0u); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 313u, 0x088DDEB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDEB0u) goto L_088DDEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDEB0: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[19] = (2236u << 16u); @@ -3983,8 +4852,21 @@ L_088DDED0: aot_gpr_6 = (0u | 1u); ctx.gpr[31] = (0x088DDEE4u); aot_gpr_7 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 317u, 0x088DDEE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDEE4u) goto L_088DDEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDEE4: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); @@ -3992,15 +4874,41 @@ L_088DDEE4: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x088DDEFCu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 318u, 0x088DDEFCu, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDEFCu) goto L_088DDEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDEFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x088DDF0Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 319u, 0x088DDF0Cu, 0x08A8E55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 472u, 0x08A8E55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DDF0Cu) goto L_088DDF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DDF0C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(48))); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), aot_gpr_4); @@ -4049,8 +4957,8 @@ L_088DDF68: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DDF90: @@ -4064,8 +4972,8 @@ L_088DDF90: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DDFB4: @@ -4079,8 +4987,8 @@ L_088DDFB4: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DDFD8: @@ -4239,8 +5147,8 @@ L_088DE0DC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DE140: @@ -4288,8 +5196,8 @@ L_088DE194: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DE1A0: @@ -4319,8 +5227,8 @@ L_088DE1C0: goto L_088DE1CC; L_088DE1CC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DE1D4: @@ -4382,8 +5290,8 @@ L_088DE1EC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DE240: @@ -4417,8 +5325,8 @@ L_088DE240: { const float fs = aot_fpr_13; const float ft = aot_fpr_15; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } jump_target = ctx.gpr[31]; ctx.fpr[0] = ctx.fpr[0] + aot_fpr_13; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DE2B8: @@ -4454,8 +5362,8 @@ L_088DE2B8: ctx.fpr[0] = aot_fpr_12 + aot_fpr_13; jump_target = ctx.gpr[31]; ctx.fpr[0] = ctx.fpr[0] + aot_fpr_14; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DE338: @@ -5873,8 +6781,21 @@ L_088DF454: ctx.gpr[10] = (ctx.gpr[10] + static_cast(576)); ctx.gpr[31] = (0x088DF5A8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 435u, 0x088DF5A8u, 0x08A97418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 486u, 0x08A97418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF5A8u) goto L_088DF5A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF5A8: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -5898,8 +6819,21 @@ L_088DF5CC: } L_088DF5D8: ctx.gpr[31] = (0x088DF5E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 438u, 0x088DF5E0u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF5E0u) goto L_088DF5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF5E0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5909,8 +6843,21 @@ L_088DF5E0: } L_088DF5E8: ctx.gpr[31] = (0x088DF5F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 440u, 0x088DF5F0u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF5F0u) goto L_088DF5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF5F0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5990,14 +6937,14 @@ L_088DF65C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF694: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF69C: @@ -6021,8 +6968,8 @@ L_088DF69C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF6EC: @@ -6053,8 +7000,8 @@ L_088DF714: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF720: @@ -6064,16 +7011,29 @@ L_088DF720: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x088DF738u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 457u, 0x088DF738u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF738u) goto L_088DF738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF738: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), ctx.gpr[2]); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF74C: @@ -6088,8 +7048,8 @@ L_088DF764: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF770: @@ -6111,8 +7071,8 @@ L_088DF790: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF79C: @@ -6120,14 +7080,27 @@ L_088DF79C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x088DF7ACu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(30)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 464u, 0x088DF7ACu, 0x08AAF2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 687u, 0x08AAF2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF7ACu) goto L_088DF7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF7AC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF7B8: @@ -6139,8 +7112,21 @@ L_088DF7B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x088DF7D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 466u, 0x088DF7D8u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF7D8u) goto L_088DF7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF7D8: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(30), static_cast(ctx.gpr[2])); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(30)))))); @@ -6154,8 +7140,21 @@ L_088DF7D8: L_088DF7EC: ctx.gpr[31] = (0x088DF7F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 468u, 0x088DF7F4u, 0x08AAEBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 571u, 0x08AAEBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF7F4u) goto L_088DF7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF7F4: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(30), static_cast(ctx.gpr[2])); goto L_088DF7F8; @@ -6168,16 +7167,16 @@ L_088DF7F8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF80C: aot_gpr_5 = (0u + static_cast(-1)); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(30), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF818: @@ -6193,14 +7192,27 @@ L_088DF818: } L_088DF830: ctx.gpr[31] = (0x088DF838u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 473u, 0x088DF838u, 0x08AAF008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 644u, 0x08AAF008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF838u) goto L_088DF838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF838: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF844: @@ -6208,14 +7220,27 @@ L_088DF844: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x088DF854u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(30)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 475u, 0x088DF854u, 0x08AAF068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 651u, 0x08AAF068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF854u) goto L_088DF854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF854: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF860: @@ -6231,14 +7256,27 @@ L_088DF860: } L_088DF878: ctx.gpr[31] = (0x088DF880u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 478u, 0x088DF880u, 0x08AAF118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 661u, 0x08AAF118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF880u) goto L_088DF880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF880: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF88C: @@ -6246,14 +7284,27 @@ L_088DF88C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x088DF89Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(30)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 480u, 0x088DF89Cu, 0x08AAF19Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 670u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 670u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 670u, 0x08AAF19Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF89Cu) goto L_088DF89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF89C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF8A8: @@ -6294,8 +7345,8 @@ L_088DF8EC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF90C: @@ -6321,35 +7372,48 @@ L_088DF928: L_088DF934: ctx.gpr[31] = (0x088DF93Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 488u, 0x088DF93Cu, 0x08990464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 70u, 0x08990464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF93Cu) goto L_088DF93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF93C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(20), 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF950: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF958: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF960: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u + static_cast(-1)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF968: @@ -6368,8 +7432,21 @@ L_088DF980: aot_gpr_4 = (aot_gpr_16 + static_cast(12)); ctx.gpr[31] = (0x088DF98Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0054->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0054_entry, 494u, 0x088DF98Cu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088DF98Cu) goto L_088DF98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088DF98C: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -6385,8 +7462,8 @@ L_088DF9A0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF9B0: @@ -6397,8 +7474,8 @@ L_088DF9B0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DF9D0: @@ -6416,8 +7493,8 @@ L_088DF9D0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_6); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DFA08: @@ -6539,8 +7616,8 @@ L_088DFB3C: } L_088DFB6C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DFB74: @@ -6741,8 +7818,8 @@ L_088DFD48: goto L_088DFDCC; L_088DFDCC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DFDD4: @@ -6830,8 +7907,8 @@ L_088DFE60: goto L_088DFE78; L_088DFE78: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088DFE80: @@ -6961,8 +8038,8 @@ L_088DFFD8: } L_088DFFFC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; } diff --git a/profiles/vcs/generated/generated_unit_0055.cpp b/profiles/vcs/generated/generated_unit_0055.cpp index 61b4beb..3f2e154 100644 --- a/profiles/vcs/generated/generated_unit_0055.cpp +++ b/profiles/vcs/generated/generated_unit_0055.cpp @@ -662,6 +662,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088E0000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -709,8 +733,8 @@ L_088E0004: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E00A8: @@ -850,8 +874,8 @@ L_088E00A8: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E02C8: @@ -865,8 +889,21 @@ L_088E02C8: aot_gpr_6 = (0u | 64u); aot_gpr_31 = (0x088E02F8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-16384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 5u, 0x088E02F8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E02F8u) goto L_088E02F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E02F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (256u << 16u); @@ -2280,8 +2317,8 @@ L_088E1564: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E18B4: @@ -2302,8 +2339,21 @@ L_088E18B4: } L_088E18DC: aot_gpr_31 = (0x088E18E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 15u, 0x088E18E4u, 0x08B62FE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 651u, 0x08B62FE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E18E4u) goto L_088E18E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E18E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2318,8 +2368,21 @@ L_088E18F0: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x088E18FCu); aot_gpr_5 = (0u | 2048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 18u, 0x088E18FCu, 0x08B63158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 674u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 674u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 674u, 0x08B63158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E18FCu) goto L_088E18FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E18FC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2377,8 +2440,8 @@ L_088E1948: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1994: @@ -2407,8 +2470,8 @@ L_088E19B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E19EC: @@ -2431,8 +2494,8 @@ L_088E1A0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1A20: @@ -2477,8 +2540,8 @@ L_088E1A68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1A7C: @@ -2502,8 +2565,8 @@ L_088E1A90: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16400), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1AAC: @@ -2515,8 +2578,8 @@ L_088E1AAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16400))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1ACC: @@ -2554,8 +2617,8 @@ L_088E1B08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1B3C: @@ -2565,16 +2628,16 @@ L_088E1B3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] - aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1B54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16424))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1B60: @@ -2583,16 +2646,16 @@ L_088E1B60: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1B74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1B80: @@ -2607,8 +2670,8 @@ L_088E1B94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1BA0: @@ -2760,8 +2823,21 @@ L_088E1CB8: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x088E1CCCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 68u, 0x088E1CCCu, 0x08B631C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 680u, 0x08B631C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1CCCu) goto L_088E1CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1CCC: aot_gpr_31 = (0x088E1CD4u); aot_gpr_4 = (0u | 0u); @@ -2777,8 +2853,8 @@ L_088E1CD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1CEC: @@ -2796,8 +2872,21 @@ L_088E1CEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088E1D24u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 71u, 0x088E1D24u, 0x08B631C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 680u, 0x08B631C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1D24u) goto L_088E1D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1D24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16420))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16428))); @@ -2812,8 +2901,8 @@ L_088E1D24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1D58: @@ -2822,20 +2911,59 @@ L_088E1D58: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x088E1D80u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 73u, 0x088E1D80u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1D80u) goto L_088E1D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1D80: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088E1D8Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-17528)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 74u, 0x088E1D8Cu, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1D8Cu) goto L_088E1D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1D8C: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088E1D98u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-23360)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 75u, 0x088E1D98u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1D98u) goto L_088E1D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1D98: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; if (branch_taken) { @@ -2861,8 +2989,21 @@ L_088E1DB8: L_088E1DBC: aot_gpr_31 = (0x088E1DC4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 79u, 0x088E1DC4u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1DC4u) goto L_088E1DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1DC4: { const bool branch_taken = ctx.gpr[19] != ctx.gpr[2]; if (branch_taken) { @@ -2892,8 +3033,21 @@ L_088E1DD4: L_088E1DE8: aot_gpr_31 = (0x088E1DF0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 83u, 0x088E1DF0u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1DF0u) goto L_088E1DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1DF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_16 = (0u | 0u); @@ -3010,8 +3164,8 @@ L_088E1E9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1EC0: @@ -3022,8 +3176,8 @@ L_088E1EC0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1EDC: @@ -3065,8 +3219,8 @@ L_088E1F14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E1F28: @@ -3104,8 +3258,21 @@ L_088E1F78: L_088E1F7C: aot_gpr_31 = (0x088E1F84u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 109u, 0x088E1F84u, 0x0893EC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 681u, 0x0893EC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1F84u) goto L_088E1F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1F84: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[2]); ctx.gpr[7] = (2185u << 16u); @@ -3114,8 +3281,21 @@ L_088E1F84: aot_gpr_6 = (0u | 68u); aot_gpr_31 = (0x088E1FA0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-620)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 110u, 0x088E1FA0u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E1FA0u) goto L_088E1FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E1FA0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), 0u); @@ -3199,8 +3379,21 @@ L_088E2054: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088E2060u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 120u, 0x088E2060u, 0x0886D308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 171u, 0x0886D308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2060u) goto L_088E2060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2060: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -3209,13 +3402,39 @@ L_088E2060: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088E207Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 121u, 0x088E207Cu, 0x0888FF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 630u, 0x0888FF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E207Cu) goto L_088E207C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E207C: aot_gpr_31 = (0x088E2084u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 122u, 0x088E2084u, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2084u) goto L_088E2084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2084: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3228,13 +3447,39 @@ L_088E208C: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088E209Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 124u, 0x088E209Cu, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E209Cu) goto L_088E209C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E209C: aot_gpr_31 = (0x088E20A4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 125u, 0x088E20A4u, 0x089D868Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 74u, 0x089D868Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E20A4u) goto L_088E20A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E20A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -3276,8 +3521,8 @@ L_088E20EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2118: @@ -3349,8 +3594,21 @@ L_088E21A0: L_088E21A4: aot_gpr_31 = (0x088E21ACu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 138u, 0x088E21ACu, 0x0893EC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 681u, 0x0893EC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E21ACu) goto L_088E21AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E21AC: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), ctx.gpr[2]); ctx.gpr[7] = (2185u << 16u); @@ -3359,8 +3617,21 @@ L_088E21AC: aot_gpr_6 = (0u | 68u); aot_gpr_31 = (0x088E21C8u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-620)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 139u, 0x088E21C8u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E21C8u) goto L_088E21C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E21C8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(8), 0u); @@ -3422,8 +3693,21 @@ L_088E224C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088E2258u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 147u, 0x088E2258u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2258u) goto L_088E2258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2258: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3500,8 +3784,21 @@ L_088E22D4: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088E22E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 157u, 0x088E22E0u, 0x0886D308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 171u, 0x0886D308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E22E0u) goto L_088E22E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E22E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -3514,13 +3811,39 @@ L_088E22E0: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088E230Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 158u, 0x088E230Cu, 0x0888FF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 630u, 0x0888FF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E230Cu) goto L_088E230C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E230C: aot_gpr_31 = (0x088E2314u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 159u, 0x088E2314u, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2314u) goto L_088E2314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2314: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3533,13 +3856,39 @@ L_088E231C: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088E232Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 161u, 0x088E232Cu, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E232Cu) goto L_088E232C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E232C: aot_gpr_31 = (0x088E2334u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 162u, 0x088E2334u, 0x089D868Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 74u, 0x089D868Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2334u) goto L_088E2334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2334: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -3589,8 +3938,8 @@ L_088E239C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E23CC: @@ -3634,8 +3983,21 @@ L_088E2424: L_088E2428: aot_gpr_31 = (0x088E2430u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 171u, 0x088E2430u, 0x0893EC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 681u, 0x0893EC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2430u) goto L_088E2430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2430: ctx.gpr[7] = (2185u << 16u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[2]); @@ -3644,8 +4006,21 @@ L_088E2430: aot_gpr_6 = (0u | 68u); aot_gpr_31 = (0x088E244Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-620)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 172u, 0x088E244Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E244Cu) goto L_088E244C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E244C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -3659,8 +4034,21 @@ L_088E2458: aot_gpr_5 = (ctx.gpr[28] + static_cast(-23352)); aot_gpr_31 = (0x088E2464u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 174u, 0x088E2464u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2464u) goto L_088E2464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2464: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_5 = (ctx.gpr[28] + static_cast(-23348)); @@ -3672,8 +4060,21 @@ L_088E2464: L_088E246C: aot_gpr_31 = (0x088E2474u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 176u, 0x088E2474u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2474u) goto L_088E2474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2474: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_5 = (ctx.gpr[28] + static_cast(-23340)); @@ -3685,8 +4086,21 @@ L_088E2474: L_088E247C: aot_gpr_31 = (0x088E2484u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 178u, 0x088E2484u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2484u) goto L_088E2484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2484: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_5 = (ctx.gpr[28] + static_cast(-23332)); @@ -3698,8 +4112,21 @@ L_088E2484: L_088E248C: aot_gpr_31 = (0x088E2494u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 180u, 0x088E2494u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2494u) goto L_088E2494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2494: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3764,8 +4191,21 @@ L_088E2500: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x088E250Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 191u, 0x088E250Cu, 0x0893EE90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 701u, 0x0893EE90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E250Cu) goto L_088E250C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E250C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -3774,8 +4214,21 @@ L_088E250C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088E2528u); ctx.gpr[8] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 192u, 0x088E2528u, 0x0888FF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 630u, 0x0888FF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2528u) goto L_088E2528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2528: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); @@ -3835,8 +4288,8 @@ L_088E2598: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E25C4: @@ -3859,8 +4312,21 @@ L_088E25E0: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x088E25FCu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 199u, 0x088E25FCu, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E25FCu) goto L_088E25FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E25FC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), 0u); @@ -3871,8 +4337,8 @@ L_088E2608: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2618: @@ -4044,8 +4510,8 @@ L_088E271C: goto L_088E2720; L_088E2720: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2728: @@ -4066,8 +4532,21 @@ L_088E2750: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088E275Cu); aot_gpr_4 = (0u | 68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 225u, 0x088E275Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E275Cu) goto L_088E275C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E275C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4080,8 +4559,21 @@ L_088E275C: L_088E2768: aot_gpr_31 = (0x088E2770u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 227u, 0x088E2770u, 0x0888FDE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 609u, 0x0888FDE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2770u) goto L_088E2770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2770: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_088E2774; @@ -4106,8 +4598,8 @@ L_088E2780: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2798: @@ -4152,8 +4644,8 @@ L_088E27C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2810: @@ -4174,8 +4666,21 @@ L_088E2838: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088E2844u); aot_gpr_4 = (0u | 68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 237u, 0x088E2844u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2844u) goto L_088E2844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2844: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4188,8 +4693,21 @@ L_088E2844: L_088E2850: aot_gpr_31 = (0x088E2858u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 239u, 0x088E2858u, 0x0888FDE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 609u, 0x0888FDE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2858u) goto L_088E2858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2858: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_088E285C; @@ -4214,8 +4732,8 @@ L_088E2868: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2880: @@ -4236,8 +4754,8 @@ L_088E2880: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E289C: @@ -4285,8 +4803,21 @@ L_088E28E4: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x088E28F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 249u, 0x088E28F4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E28F4u) goto L_088E28F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E28F4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -4301,8 +4832,8 @@ L_088E2908: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2918: @@ -4314,8 +4845,21 @@ L_088E2918: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x088E2938u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 253u, 0x088E2938u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2938u) goto L_088E2938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2938: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4333,8 +4877,21 @@ L_088E2944: } L_088E294C: aot_gpr_31 = (0x088E2954u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 256u, 0x088E2954u, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2954u) goto L_088E2954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2954: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4365,35 +4922,48 @@ L_088E2954: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088E299Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 257u, 0x088E299Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E299Cu) goto L_088E299C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E299C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E29A8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2016)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E29B0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2016)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E29B8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2268)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E29C0: @@ -4438,8 +5008,21 @@ L_088E29F4: L_088E29FC: aot_gpr_31 = (0x088E2A04u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 267u, 0x088E2A04u, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2A04u) goto L_088E2A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2A04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4452,8 +5035,21 @@ L_088E2A0C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088E2A1Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 269u, 0x088E2A1Cu, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2A1Cu) goto L_088E2A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2A1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4483,8 +5079,21 @@ L_088E2A40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E2A50u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 273u, 0x088E2A50u, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2A50u) goto L_088E2A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2A50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4514,8 +5123,21 @@ L_088E2A68: L_088E2A74: aot_gpr_31 = (0x088E2A7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 278u, 0x088E2A7Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2A7Cu) goto L_088E2A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2A7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4526,15 +5148,28 @@ L_088E2A7C: L_088E2A84: aot_gpr_31 = (0x088E2A8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 280u, 0x088E2A8Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2A8Cu) goto L_088E2A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2A8C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2A9C: @@ -4598,8 +5233,21 @@ L_088E2B10: L_088E2B18: aot_gpr_31 = (0x088E2B20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 288u, 0x088E2B20u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2B20u) goto L_088E2B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2B20: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4633,8 +5281,21 @@ L_088E2B5C: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E2B68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 292u, 0x088E2B68u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2B68u) goto L_088E2B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2B68: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088E2B6C; @@ -4669,8 +5330,21 @@ L_088E2BA0: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E2BACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 297u, 0x088E2BACu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2BACu) goto L_088E2BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2BAC: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088E2BB0; @@ -4705,8 +5379,21 @@ L_088E2BE4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E2BF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 302u, 0x088E2BF0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2BF0u) goto L_088E2BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2BF0: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088E2BF4; @@ -4742,8 +5429,21 @@ L_088E2C28: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E2C38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 307u, 0x088E2C38u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2C38u) goto L_088E2C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2C38: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088E2C3C; @@ -4768,8 +5468,21 @@ L_088E2C44: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E2C74u); aot_gpr_5 = (aot_gpr_5 + static_cast(-11988)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 310u, 0x088E2C74u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2C74u) goto L_088E2C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2C74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4790,8 +5503,8 @@ L_088E2C84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2C98: @@ -4875,8 +5588,21 @@ L_088E2D78: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x088E2D98u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 319u, 0x088E2D98u, 0x08ADD1ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 305u, 0x08ADD1ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2D98u) goto L_088E2D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2D98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4927,8 +5653,21 @@ L_088E2DDC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088E2DE8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 327u, 0x088E2DE8u, 0x088E4830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 103u, 0x088E4830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2DE8u) goto L_088E2DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2DE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4945,19 +5684,58 @@ L_088E2DF0: aot_fpr_12 = ctx.fpr[14] - aot_fpr_12; aot_gpr_31 = (0x088E2E10u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 329u, 0x088E2E10u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2E10u) goto L_088E2E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2E10: aot_gpr_31 = (0x088E2E18u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 330u, 0x088E2E18u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2E18u) goto L_088E2E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2E18: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2256))); aot_gpr_31 = (0x088E2E24u); aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 331u, 0x088E2E24u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2E24u) goto L_088E2E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2E24: aot_fpr_12 = aot_fpr_22 - ctx.fpr[0]; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -5117,8 +5895,8 @@ L_088E2F08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E2F4C: @@ -5142,8 +5920,21 @@ L_088E2F4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x088E2F9Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 351u, 0x088E2F9Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2F9Cu) goto L_088E2F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2F9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5172,8 +5963,21 @@ L_088E2FB4: L_088E2FC4: aot_gpr_31 = (0x088E2FCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 355u, 0x088E2FCCu, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2FCCu) goto L_088E2FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2FCC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_gpr_5 = (65280u << 16u); @@ -5183,8 +5987,21 @@ L_088E2FCC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E2FECu); aot_gpr_5 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 356u, 0x088E2FECu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E2FECu) goto L_088E2FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E2FEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(688), aot_gpr_16); @@ -5193,14 +6010,40 @@ L_088E2FEC: aot_gpr_5 = (aot_gpr_29 + static_cast(8)); aot_gpr_31 = (0x088E3008u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 357u, 0x088E3008u, 0x08910338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 49u, 0x08910338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3008u) goto L_088E3008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3008: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E3014u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 358u, 0x088E3014u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3014u) goto L_088E3014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3014: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(688))); aot_gpr_4 = (static_cast(aot_gpr_4) < 20 ? 1u : 0u); @@ -5219,8 +6062,21 @@ L_088E3024: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E3040u); ctx.gpr[7] = (0u | 157u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 360u, 0x088E3040u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3040u) goto L_088E3040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3040: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5250,8 +6106,8 @@ L_088E3054: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3074: @@ -5262,8 +6118,21 @@ L_088E3074: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088E3090u); aot_gpr_6 = (0u | 149u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 365u, 0x088E3090u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3090u) goto L_088E3090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3090: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5277,8 +6146,21 @@ L_088E309C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E30ACu); aot_gpr_6 = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 367u, 0x088E30ACu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E30ACu) goto L_088E30AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E30AC: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088E30B0; @@ -5294,8 +6176,21 @@ L_088E30B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E30C8u); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 370u, 0x088E30C8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E30C8u) goto L_088E30C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E30C8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088E30CC; @@ -5311,8 +6206,21 @@ L_088E30D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E30E4u); aot_gpr_6 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 373u, 0x088E30E4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E30E4u) goto L_088E30E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E30E4: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088E30E8; @@ -5359,8 +6267,21 @@ L_088E3124: L_088E3144: aot_gpr_31 = (0x088E314Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 380u, 0x088E314Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E314Cu) goto L_088E314C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E314C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2244))); aot_gpr_5 = (0u | 1u); @@ -5388,8 +6309,8 @@ L_088E3170: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3180: @@ -5466,8 +6387,21 @@ L_088E31FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E3208u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 393u, 0x088E3208u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3208u) goto L_088E3208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3208: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5497,8 +6431,21 @@ L_088E3238: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x088E3258u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 396u, 0x088E3258u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3258u) goto L_088E3258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3258: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -5518,23 +6465,62 @@ L_088E3274: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E328Cu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 398u, 0x088E328Cu, 0x08A3ADE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 620u, 0x08A3ADE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E328Cu) goto L_088E328C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E328C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E329Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 399u, 0x088E329Cu, 0x08821BF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 317u, 0x08821BF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E329Cu) goto L_088E329C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E329C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E32B0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 400u, 0x088E32B0u, 0x08A3B508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 734u, 0x08A3B508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E32B0u) goto L_088E32B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E32B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5621,8 +6607,21 @@ L_088E3338: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E3344u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 411u, 0x088E3344u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3344u) goto L_088E3344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3344: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -5633,8 +6632,8 @@ L_088E3344: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E335C: @@ -5658,8 +6657,21 @@ L_088E3388: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088E3398u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 414u, 0x088E3398u, 0x0881DF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 302u, 0x0881DF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3398u) goto L_088E3398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3398: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5685,8 +6697,21 @@ L_088E33B8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E33D0u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 417u, 0x088E33D0u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E33D0u) goto L_088E33D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E33D0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(20))); if (aot_gpr_4 == 0u) { @@ -5738,8 +6763,21 @@ L_088E3428: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E3434u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 423u, 0x088E3434u, 0x0881FA70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 665u, 0x0881FA70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3434u) goto L_088E3434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3434: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5775,8 +6813,8 @@ L_088E3450: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3464: @@ -5809,8 +6847,21 @@ L_088E3490: L_088E349C: aot_gpr_31 = (0x088E34A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 432u, 0x088E34A4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E34A4u) goto L_088E34A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E34A4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5836,8 +6887,21 @@ L_088E34BC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E34C8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 436u, 0x088E34C8u, 0x088E459Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 72u, 0x088E459Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E34C8u) goto L_088E34C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E34C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E34D4u); @@ -5853,8 +6917,8 @@ L_088E34D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E34EC: @@ -5879,8 +6943,21 @@ L_088E3510: L_088E3518: aot_gpr_31 = (0x088E3520u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 441u, 0x088E3520u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3520u) goto L_088E3520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3520: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-9)); @@ -5888,8 +6965,21 @@ L_088E3520: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(456), aot_gpr_4); aot_gpr_31 = (0x088E3538u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 442u, 0x088E3538u, 0x0891283Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 629u, 0x0891283Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3538u) goto L_088E3538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3538: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); @@ -5916,13 +7006,39 @@ L_088E3558: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E3564u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 446u, 0x088E3564u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3564u) goto L_088E3564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3564: aot_gpr_31 = (0x088E356Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 447u, 0x088E356Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E356Cu) goto L_088E356C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E356C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); goto L_088E3570; @@ -5942,8 +7058,21 @@ L_088E358C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E35A0u); aot_gpr_6 = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 450u, 0x088E35A0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E35A0u) goto L_088E35A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E35A0: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -5987,8 +7116,21 @@ L_088E35F0: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E35FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 456u, 0x088E35FCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E35FCu) goto L_088E35FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E35FC: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_088E3600; @@ -6016,8 +7158,8 @@ L_088E3620: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3634: @@ -6050,8 +7192,21 @@ L_088E367C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E368Cu); aot_gpr_6 = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 463u, 0x088E368Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E368Cu) goto L_088E368C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E368C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6111,8 +7266,21 @@ L_088E36EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E36FCu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 470u, 0x088E36FCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E36FCu) goto L_088E36FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E36FC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -6140,8 +7308,21 @@ L_088E370C: L_088E372C: aot_gpr_31 = (0x088E3734u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 474u, 0x088E3734u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3734u) goto L_088E3734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3734: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-2)); @@ -6207,8 +7388,8 @@ L_088E37B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E37CC: @@ -6303,8 +7484,21 @@ L_088E3880: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E388Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 491u, 0x088E388Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E388Cu) goto L_088E388C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E388C: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -6357,16 +7551,42 @@ L_088E38D0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E38ECu); ctx.gpr[7] = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 498u, 0x088E38ECu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E38ECu) goto L_088E38EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E38EC: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E3900u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 499u, 0x088E3900u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3900u) goto L_088E3900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3900: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (0u + static_cast(-2)); @@ -6420,8 +7640,21 @@ L_088E3960: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x088E3980u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 504u, 0x088E3980u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3980u) goto L_088E3980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3980: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (2191u << 16u); @@ -6461,8 +7694,21 @@ L_088E39C0: L_088E39E4: aot_gpr_31 = (0x088E39ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 508u, 0x088E39ECu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E39ECu) goto L_088E39EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E39EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6495,8 +7741,21 @@ L_088E3A28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E3A34u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 512u, 0x088E3A34u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3A34u) goto L_088E3A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3A34: aot_gpr_31 = (0x088E3A3Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3A3Cu) goto L_088E3A3C; @@ -6527,8 +7786,21 @@ L_088E3A60: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x088E3A78u); ctx.gpr[18] = (aot_gpr_16 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 516u, 0x088E3A78u, 0x08948040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 6u, 0x08948040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3A78u) goto L_088E3A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3A78: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -6541,15 +7813,41 @@ L_088E3A78: L_088E3A88: aot_gpr_31 = (0x088E3A90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 518u, 0x088E3A90u, 0x08948040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 6u, 0x08948040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3A90u) goto L_088E3A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3A90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088E3AA0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 519u, 0x088E3AA0u, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3AA0u) goto L_088E3AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3AA0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -6561,8 +7859,8 @@ L_088E3AA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3ABC: @@ -6596,8 +7894,21 @@ L_088E3AE4: L_088E3AF4: aot_gpr_31 = (0x088E3AFCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 524u, 0x088E3AFCu, 0x08911140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 305u, 0x08911140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3AFCu) goto L_088E3AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3AFC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6662,8 +7973,21 @@ L_088E3B74: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088E3B80u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 531u, 0x088E3B80u, 0x0881FEE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 719u, 0x0881FEE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3B80u) goto L_088E3B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3B80: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6673,8 +7997,8 @@ L_088E3B80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3B94: @@ -6703,8 +8027,21 @@ L_088E3BB4: L_088E3BC8: aot_gpr_31 = (0x088E3BD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0058. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 535u, 0x088E3BD0u, 0x088EFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0058_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0058_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0058_entry, 58u, 843u, 0x088EFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3BD0u) goto L_088E3BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3BD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6731,8 +8068,21 @@ L_088E3BE0: L_088E3BF0: aot_gpr_31 = (0x088E3BF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 539u, 0x088E3BF8u, 0x088F1288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 259u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 259u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 259u, 0x088F1288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3BF8u) goto L_088E3BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3BF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6784,15 +8134,28 @@ L_088E3C40: L_088E3C48: aot_gpr_31 = (0x088E3C50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 546u, 0x088E3C50u, 0x088F0C78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 156u, 0x088F0C78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3C50u) goto L_088E3C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3C50: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3C60: @@ -6825,8 +8188,21 @@ L_088E3CA0: L_088E3CAC: aot_gpr_31 = (0x088E3CB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 550u, 0x088E3CB4u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3CB4u) goto L_088E3CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3CB4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6864,8 +8240,21 @@ L_088E3CD4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088E3CF8u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 555u, 0x088E3CF8u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3CF8u) goto L_088E3CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3CF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_22)); ctx.gpr[2] = (15820u << 16u); @@ -6882,8 +8271,21 @@ L_088E3CF8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088E3D34u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 556u, 0x088E3D34u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3D34u) goto L_088E3D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3D34: aot_gpr_4 = (15605u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -6905,8 +8307,21 @@ L_088E3D48: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088E3D7Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 558u, 0x088E3D7Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3D7Cu) goto L_088E3D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3D7C: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] & 255u); @@ -6948,8 +8363,8 @@ L_088E3DB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3DD8: @@ -6966,8 +8381,21 @@ L_088E3DD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x088E3E0Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 564u, 0x088E3E0Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3E0Cu) goto L_088E3E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3E0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(708))); ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -6989,8 +8417,21 @@ L_088E3E2C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088E3E44u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 567u, 0x088E3E44u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3E44u) goto L_088E3E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3E44: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -7024,8 +8465,8 @@ L_088E3E70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3E88: @@ -7077,14 +8518,40 @@ L_088E3EC0: L_088E3ED0: aot_gpr_31 = (0x088E3ED8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 575u, 0x088E3ED8u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3ED8u) goto L_088E3ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3ED8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E3EE4u); aot_gpr_16 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 576u, 0x088E3EE4u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3EE4u) goto L_088E3EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3EE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E3EF0u); @@ -7104,8 +8571,21 @@ L_088E3EFC: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088E3F14u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 579u, 0x088E3F14u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3F14u) goto L_088E3F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3F14: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7131,8 +8611,8 @@ L_088E3F20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E3F34: @@ -7150,8 +8630,21 @@ L_088E3F34: } aot_gpr_31 = (0x088E3F88u); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 582u, 0x088E3F88u, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3F88u) goto L_088E3F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3F88: ctx.gpr[23] = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); @@ -7198,8 +8691,21 @@ L_088E3F88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x088E3FE4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0055->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0055_entry, 583u, 0x088E3FE4u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E3FE4u) goto L_088E3FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E3FE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0056.cpp b/profiles/vcs/generated/generated_unit_0056.cpp index 1325b21..ee1372b 100644 --- a/profiles/vcs/generated/generated_unit_0056.cpp +++ b/profiles/vcs/generated/generated_unit_0056.cpp @@ -918,6 +918,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088E4000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1060,8 +1084,21 @@ L_088E4000: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); aot_gpr_31 = (0x088E40E0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 2u, 0x088E40E0u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E40E0u) goto L_088E40E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E40E0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1159,8 +1196,21 @@ L_088E4110: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); aot_gpr_31 = (0x088E4180u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 6u, 0x088E4180u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4180u) goto L_088E4180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4180: if (aot_gpr_2 != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(152))); @@ -1269,8 +1319,8 @@ L_088E425C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E4294: @@ -1283,8 +1333,21 @@ L_088E4294: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088E42B8u); aot_gpr_6 = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 16u, 0x088E42B8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E42B8u) goto L_088E42B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E42B8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1304,8 +1367,21 @@ L_088E42D4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E42E4u); aot_gpr_6 = (0u | 215u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 19u, 0x088E42E4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E42E4u) goto L_088E42E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E42E4: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1325,8 +1401,21 @@ L_088E4300: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E4310u); aot_gpr_6 = (0u | 218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 22u, 0x088E4310u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4310u) goto L_088E4310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4310: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1346,8 +1435,21 @@ L_088E432C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E433Cu); aot_gpr_6 = (0u | 216u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 25u, 0x088E433Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E433Cu) goto L_088E433C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E433C: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1367,8 +1469,21 @@ L_088E4358: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E4368u); aot_gpr_6 = (0u | 217u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 28u, 0x088E4368u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4368u) goto L_088E4368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4368: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1405,8 +1520,21 @@ L_088E439C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E43B4u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 32u, 0x088E43B4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E43B4u) goto L_088E43B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E43B4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -1416,29 +1544,29 @@ L_088E43B4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E43C8: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E43D0: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E43D8: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E43E0: @@ -1502,8 +1630,21 @@ L_088E4450: L_088E4454: aot_gpr_31 = (0x088E445Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 44u, 0x088E445Cu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E445Cu) goto L_088E445C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E445C: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (aot_gpr_18 | 0u); @@ -1515,8 +1656,21 @@ L_088E445C: L_088E4464: aot_gpr_31 = (0x088E446Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 46u, 0x088E446Cu, 0x089AB910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 762u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 762u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 762u, 0x089AB910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E446Cu) goto L_088E446C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E446C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1538,8 +1692,21 @@ L_088E4478: L_088E4488: aot_gpr_31 = (0x088E4490u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 50u, 0x088E4490u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4490u) goto L_088E4490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4490: { const bool branch_taken = aot_gpr_18 != aot_gpr_2; if (branch_taken) { @@ -1569,8 +1736,21 @@ L_088E44AC: L_088E44B8: aot_gpr_31 = (0x088E44C0u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 56u, 0x088E44C0u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E44C0u) goto L_088E44C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E44C0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1648,8 +1828,8 @@ L_088E4528: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E4548: @@ -1661,8 +1841,21 @@ L_088E4548: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088E4568u); ctx.gpr[17] = (ctx.gpr[17] < static_cast(1) ? 1u : 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 68u, 0x088E4568u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4568u) goto L_088E4568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4568: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1692,8 +1885,8 @@ L_088E4584: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E459C: @@ -1826,8 +2019,21 @@ L_088E46B4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E46C0u); aot_gpr_5 = (0u | 138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 90u, 0x088E46C0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E46C0u) goto L_088E46C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E46C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1897,8 +2103,21 @@ L_088E473C: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x088E4784u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 96u, 0x088E4784u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4784u) goto L_088E4784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4784: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1937,8 +2156,21 @@ L_088E47A8: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x088E47F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 100u, 0x088E47F0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E47F0u) goto L_088E47F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E47F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1966,8 +2198,8 @@ L_088E4804: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E4830: @@ -1995,8 +2227,21 @@ L_088E4850: aot_fpr_20 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088E4878u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 105u, 0x088E4878u, 0x08A40D58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 161u, 0x08A40D58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4878u) goto L_088E4878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4878: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2091,8 +2336,8 @@ L_088E48F8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E4910: @@ -2170,8 +2415,21 @@ L_088E4978: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E4990u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 122u, 0x088E4990u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4990u) goto L_088E4990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4990: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2186,8 +2444,21 @@ L_088E4998: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E49B0u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 124u, 0x088E49B0u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E49B0u) goto L_088E49B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E49B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2209,8 +2480,21 @@ L_088E49C0: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E49D8u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 127u, 0x088E49D8u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E49D8u) goto L_088E49D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E49D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2225,8 +2509,21 @@ L_088E49E0: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E49F8u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 129u, 0x088E49F8u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E49F8u) goto L_088E49F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E49F8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -2237,8 +2534,8 @@ L_088E49F8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E4A10: @@ -2257,8 +2554,8 @@ L_088E4A10: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_14)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E4A4C: @@ -2315,8 +2612,21 @@ L_088E4AB4: aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_31 = (0x088E4AD4u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 136u, 0x088E4AD4u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4AD4u) goto L_088E4AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4AD4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(12), aot_run_words); @@ -2544,8 +2854,8 @@ L_088E4C34: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E4C6C: @@ -2645,8 +2955,8 @@ L_088E4D20: L_088E4D24: jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E4D2C: @@ -2786,19 +3096,58 @@ L_088E4E68: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x088E4E84u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 187u, 0x088E4E84u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4E84u) goto L_088E4E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4E84: aot_gpr_31 = (0x088E4E8Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 188u, 0x088E4E8Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4E8Cu) goto L_088E4E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4E8C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088E4E98u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 189u, 0x088E4E98u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4E98u) goto L_088E4E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4E98: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2256))); @@ -2831,8 +3180,21 @@ L_088E4ED8: L_088E4EE4: aot_gpr_31 = (0x088E4EECu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 193u, 0x088E4EECu, 0x088E289Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 244u, 0x088E289Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4EECu) goto L_088E4EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4EEC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 45u); @@ -2924,8 +3286,21 @@ L_088E4F74: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E4F80u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 204u, 0x088E4F80u, 0x088E3DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 563u, 0x088E3DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4F80u) goto L_088E4F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4F80: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (0u < aot_gpr_2 ? 1u : 0u); @@ -2938,8 +3313,21 @@ L_088E4F88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_31 = (0x088E4F94u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 206u, 0x088E4F94u, 0x089D3298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 576u, 0x089D3298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E4F94u) goto L_088E4F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E4F94: aot_gpr_4 = (0u < aot_gpr_2 ? 1u : 0u); goto L_088E4F98; @@ -3220,8 +3608,8 @@ L_088E5148: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E5190: @@ -3240,8 +3628,21 @@ L_088E5190: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x088E51F8u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 244u, 0x088E51F8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E51F8u) goto L_088E51F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E51F8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3265,8 +3666,21 @@ L_088E5210: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5228u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 247u, 0x088E5228u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5228u) goto L_088E5228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5228: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -3519,8 +3933,21 @@ L_088E53D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23256))); aot_gpr_31 = (0x088E53F4u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 271u, 0x088E53F4u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E53F4u) goto L_088E53F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E53F4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23244))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23248))); @@ -3635,8 +4062,21 @@ L_088E54C0: ctx.gpr[7] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088E54E0u); ctx.gpr[9] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 284u, 0x088E54E0u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E54E0u) goto L_088E54E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E54E0: aot_gpr_31 = (0x088E54E8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -3692,8 +4132,21 @@ L_088E553C: ctx.gpr[8] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088E555Cu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 290u, 0x088E555Cu, 0x0881ECDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 486u, 0x0881ECDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E555Cu) goto L_088E555C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E555C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3705,13 +4158,39 @@ L_088E5564: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(112))); aot_gpr_31 = (0x088E5570u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 292u, 0x088E5570u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5570u) goto L_088E5570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5570: aot_gpr_31 = (0x088E5578u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 293u, 0x088E5578u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5578u) goto L_088E5578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5578: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3726,8 +4205,21 @@ L_088E5580: aot_gpr_5 = (ctx.gpr[29] + static_cast(112)); aot_gpr_31 = (0x088E559Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 295u, 0x088E559Cu, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E559Cu) goto L_088E559C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E559C: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[16] = (0u | 17u); @@ -3749,8 +4241,21 @@ L_088E55A4: } aot_gpr_31 = (0x088E55C8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 297u, 0x088E55C8u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E55C8u) goto L_088E55C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E55C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -3771,8 +4276,21 @@ L_088E55E0: ctx.gpr[8] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088E5600u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 299u, 0x088E5600u, 0x0881ECDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 486u, 0x0881ECDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5600u) goto L_088E5600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5600: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2228))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[16]; @@ -3785,8 +4303,21 @@ L_088E560C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E5618u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 301u, 0x088E5618u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5618u) goto L_088E5618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5618: aot_gpr_4 = (0u | 1u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_20) || std::isnan(ctx.fpr[24])) && aot_fpr_20 == ctx.fpr[24])) ? 0x00800000u : 0u); @@ -3805,8 +4336,21 @@ L_088E5634: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(112))); aot_gpr_31 = (0x088E5640u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 304u, 0x088E5640u, 0x088E3464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 428u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 428u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 428u, 0x088E3464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5640u) goto L_088E5640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5640: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(216)); @@ -3825,8 +4369,21 @@ L_088E5658: ctx.gpr[7] = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5670u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 306u, 0x088E5670u, 0x0881FB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 675u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 675u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 675u, 0x0881FB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5670u) goto L_088E5670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5670: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3892,8 +4449,21 @@ L_088E56C0: ctx.gpr[9] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E56E0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 308u, 0x088E56E0u, 0x08822484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 439u, 0x08822484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E56E0u) goto L_088E56E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E56E0: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(152), aot_run_words); @@ -3913,8 +4483,8 @@ L_088E56E0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E571C: @@ -4014,8 +4584,21 @@ L_088E5820: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5830u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 318u, 0x088E5830u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5830u) goto L_088E5830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5830: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4073,8 +4656,21 @@ L_088E5898: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E58A8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 324u, 0x088E58A8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E58A8u) goto L_088E58A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E58A8: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4137,8 +4733,21 @@ L_088E5904: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088E5938u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 330u, 0x088E5938u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5938u) goto L_088E5938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5938: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23228))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23232))); @@ -4162,8 +4771,21 @@ L_088E5958: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5968u); aot_gpr_6 = (0u | 172u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 333u, 0x088E5968u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5968u) goto L_088E5968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5968: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -4177,8 +4799,21 @@ L_088E5974: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5984u); aot_gpr_6 = (0u | 218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 335u, 0x088E5984u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5984u) goto L_088E5984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5984: ctx.gpr[20] = (aot_gpr_2 | 0u); goto L_088E5988; @@ -4227,8 +4862,21 @@ L_088E59DC: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E59FCu); aot_gpr_5 = (ctx.gpr[10] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 340u, 0x088E59FCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E59FCu) goto L_088E59FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E59FC: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_18 + static_cast(1929)))))); @@ -4244,8 +4892,21 @@ L_088E59FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(240))); aot_gpr_31 = (0x088E5A34u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 341u, 0x088E5A34u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5A34u) goto L_088E5A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5A34: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23220))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23224))); @@ -4304,8 +4965,21 @@ L_088E5AA4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E5AB0u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 348u, 0x088E5AB0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5AB0u) goto L_088E5AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5AB0: ctx.gpr[17] = (aot_gpr_2 | 0u); goto L_088E5AB4; @@ -4343,8 +5017,21 @@ L_088E5AF4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E5B00u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 353u, 0x088E5B00u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5B00u) goto L_088E5B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5B00: ctx.gpr[17] = (aot_gpr_2 | 0u); goto L_088E5B04; @@ -4395,8 +5082,21 @@ L_088E5B3C: L_088E5B44: aot_gpr_31 = (0x088E5B4Cu); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 361u, 0x088E5B4Cu, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5B4Cu) goto L_088E5B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5B4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4455,8 +5155,21 @@ L_088E5BC4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E5BD0u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 368u, 0x088E5BD0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5BD0u) goto L_088E5BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5BD0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(232), aot_gpr_2); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(228), ctx.gpr[17]); @@ -4513,8 +5226,21 @@ L_088E5C3C: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5C4Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 375u, 0x088E5C4Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5C4Cu) goto L_088E5C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5C4C: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4647,8 +5373,21 @@ L_088E5D1C: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5D2Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 392u, 0x088E5D2Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5D2Cu) goto L_088E5D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5D2C: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4729,8 +5468,21 @@ L_088E5DC0: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5DD0u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 401u, 0x088E5DD0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5DD0u) goto L_088E5DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5DD0: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_2 | 0u); @@ -4744,8 +5496,21 @@ L_088E5DD8: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5DE8u); aot_gpr_6 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 403u, 0x088E5DE8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5DE8u) goto L_088E5DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5DE8: ctx.gpr[20] = (aot_gpr_2 | 0u); goto L_088E5DEC; @@ -4798,8 +5563,21 @@ L_088E5E20: L_088E5E2C: aot_gpr_31 = (0x088E5E34u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 411u, 0x088E5E34u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5E34u) goto L_088E5E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5E34: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (ctx.gpr[16] & 255u); @@ -4838,8 +5616,21 @@ L_088E5E4C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088E5E60u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 416u, 0x088E5E60u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5E60u) goto L_088E5E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5E60: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(724))); @@ -4861,8 +5652,21 @@ L_088E5E80: aot_gpr_5 = (ctx.gpr[29] | 0u); aot_gpr_31 = (0x088E5E98u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 419u, 0x088E5E98u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5E98u) goto L_088E5E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5E98: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_18 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -4873,14 +5677,40 @@ L_088E5E98: aot_gpr_5 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5EBCu); aot_gpr_6 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 420u, 0x088E5EBCu, 0x08A45338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 206u, 0x08A45338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5EBCu) goto L_088E5EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5EBC: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E5EC8u); aot_gpr_5 = (0u | 50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 421u, 0x088E5EC8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5EC8u) goto L_088E5EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5EC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5006,8 +5836,21 @@ L_088E5FB4: aot_gpr_5 = (aot_gpr_18 + aot_gpr_5); aot_gpr_31 = (0x088E5FD4u); aot_gpr_5 = (aot_gpr_5 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 434u, 0x088E5FD4u, 0x0881E094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 315u, 0x0881E094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E5FD4u) goto L_088E5FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E5FD4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_18 + static_cast(1929)))))); @@ -5173,8 +6016,21 @@ L_088E6090: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x088E60E0u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 443u, 0x088E60E0u, 0x08A45338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 206u, 0x08A45338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E60E0u) goto L_088E60E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E60E0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_18 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -5213,8 +6069,21 @@ L_088E6130: aot_gpr_6 = (0u | 54u); aot_gpr_31 = (0x088E6144u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 447u, 0x088E6144u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6144u) goto L_088E6144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6144: aot_gpr_31 = (0x088E614Cu); aot_gpr_4 = (aot_gpr_18 | 0u); @@ -5237,8 +6106,21 @@ L_088E615C: aot_gpr_5 = (0u | 240u); aot_gpr_31 = (0x088E616Cu); aot_gpr_6 = (0u | 180u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 451u, 0x088E616Cu, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E616Cu) goto L_088E616C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E616C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5253,8 +6135,21 @@ L_088E6174: aot_gpr_6 = (0u | 53u); aot_gpr_31 = (0x088E618Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 453u, 0x088E618Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E618Cu) goto L_088E618C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E618C: aot_gpr_31 = (0x088E6194u); aot_gpr_4 = (aot_gpr_18 | 0u); @@ -5277,8 +6172,21 @@ L_088E61A4: aot_gpr_5 = (0u | 240u); aot_gpr_31 = (0x088E61B4u); aot_gpr_6 = (0u | 90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 457u, 0x088E61B4u, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E61B4u) goto L_088E61B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E61B4: ctx.gpr[19] = (0u | 0u); { const bool branch_taken = 0u == 0u; @@ -5309,8 +6217,21 @@ L_088E61E4: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088E6200u); aot_gpr_6 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 460u, 0x088E6200u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6200u) goto L_088E6200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6200: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5562,8 +6483,21 @@ L_088E62F0: L_088E6324: aot_gpr_31 = (0x088E632Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 473u, 0x088E632Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E632Cu) goto L_088E632C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E632C: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(48)))))); @@ -5619,8 +6553,21 @@ L_088E6384: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088E6398u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 481u, 0x088E6398u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6398u) goto L_088E6398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6398: aot_gpr_31 = (0x088E63A0u); aot_gpr_4 = (aot_gpr_18 | 0u); @@ -5699,8 +6646,21 @@ L_088E6414: aot_gpr_5 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E6438u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 488u, 0x088E6438u, 0x08A45338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 206u, 0x08A45338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6438u) goto L_088E6438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6438: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_18 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -5805,8 +6765,21 @@ L_088E6544: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); aot_gpr_31 = (0x088E6550u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 496u, 0x088E6550u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6550u) goto L_088E6550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6550: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_18 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -5843,8 +6816,21 @@ L_088E6588: L_088E6590: aot_gpr_31 = (0x088E6598u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 501u, 0x088E6598u, 0x089AB158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 642u, 0x089AB158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6598u) goto L_088E6598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6598: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_18 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -6000,8 +6986,21 @@ L_088E66BC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x088E66D0u); aot_gpr_6 = (0u | 46u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 518u, 0x088E66D0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E66D0u) goto L_088E66D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E66D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6043,8 +7042,21 @@ L_088E6728: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x088E673Cu); aot_gpr_6 = (0u | 50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 522u, 0x088E673Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E673Cu) goto L_088E673C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E673C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -6155,8 +7167,21 @@ L_088E67F4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088E680Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 534u, 0x088E680Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E680Cu) goto L_088E680C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E680C: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(724))); @@ -6178,8 +7203,21 @@ L_088E682C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E6844u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 537u, 0x088E6844u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6844u) goto L_088E6844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6844: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6266,8 +7304,21 @@ L_088E6920: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088E693Cu); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 541u, 0x088E693Cu, 0x08A41568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 255u, 0x08A41568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E693Cu) goto L_088E693C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E693C: aot_gpr_31 = (0x088E6944u); aot_gpr_4 = (aot_gpr_18 | 0u); @@ -6379,8 +7430,21 @@ L_088E6A28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x088E6A4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 552u, 0x088E6A4Cu, 0x088ABE6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 619u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 619u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 619u, 0x088ABE6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6A4Cu) goto L_088E6A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6A4C: aot_gpr_31 = (0x088E6A54u); aot_gpr_4 = (aot_gpr_18 | 0u); @@ -6401,8 +7465,21 @@ L_088E6A5C: L_088E6A64: aot_gpr_31 = (0x088E6A6Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 556u, 0x088E6A6Cu, 0x0898D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 543u, 0x0898D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6A6Cu) goto L_088E6A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6A6C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6452,8 +7529,21 @@ L_088E6AB0: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x088E6AC8u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0058. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 562u, 0x088E6AC8u, 0x088ED12Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0058_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0058_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0058_entry, 58u, 309u, 0x088ED12Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6AC8u) goto L_088E6AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6AC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6593,8 +7683,21 @@ L_088E6BE4: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E6BFCu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 575u, 0x088E6BFCu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6BFCu) goto L_088E6BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6BFC: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_2 | 0u); @@ -6623,8 +7726,21 @@ L_088E6C28: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E6C40u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 578u, 0x088E6C40u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6C40u) goto L_088E6C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6C40: ctx.gpr[20] = (aot_gpr_2 | 0u); goto L_088E6C44; @@ -6651,8 +7767,21 @@ L_088E6C60: L_088E6C68: aot_gpr_31 = (0x088E6C70u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 583u, 0x088E6C70u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6C70u) goto L_088E6C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6C70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-9)); @@ -6735,8 +7864,21 @@ L_088E6D10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E6D4Cu); aot_gpr_6 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 591u, 0x088E6D4Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6D4Cu) goto L_088E6D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6D4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6930,8 +8072,21 @@ L_088E6ED8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088E6EECu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 612u, 0x088E6EECu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6EECu) goto L_088E6EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6EEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6999,8 +8154,21 @@ L_088E6F74: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E6F84u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 619u, 0x088E6F84u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6F84u) goto L_088E6F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6F84: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_2 | 0u); @@ -7015,8 +8183,21 @@ L_088E6F8C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E6FA0u); ctx.gpr[7] = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 621u, 0x088E6FA0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E6FA0u) goto L_088E6FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E6FA0: ctx.gpr[20] = (aot_gpr_2 | 0u); goto L_088E6FA4; @@ -7074,8 +8255,21 @@ L_088E700C: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E7020u); ctx.gpr[7] = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 628u, 0x088E7020u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7020u) goto L_088E7020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7020: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_2 | 0u); @@ -7102,8 +8296,21 @@ L_088E704C: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E705Cu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 631u, 0x088E705Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E705Cu) goto L_088E705C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E705C: ctx.gpr[20] = (aot_gpr_2 | 0u); goto L_088E7060; @@ -7139,8 +8346,21 @@ L_088E709C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088E70A8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 636u, 0x088E70A8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E70A8u) goto L_088E70A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E70A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -7214,14 +8434,40 @@ L_088E7114: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088E7150u); aot_gpr_6 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 644u, 0x088E7150u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7150u) goto L_088E7150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7150: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088E715Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 645u, 0x088E715Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E715Cu) goto L_088E715C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E715C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-2)); @@ -7231,8 +8477,21 @@ L_088E715C: aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x088E717Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 646u, 0x088E717Cu, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E717Cu) goto L_088E717C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E717C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7243,8 +8502,21 @@ L_088E717C: L_088E7184: aot_gpr_31 = (0x088E718Cu); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 648u, 0x088E718Cu, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E718Cu) goto L_088E718C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E718C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(40))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); @@ -7272,8 +8544,21 @@ L_088E71A8: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088E71E4u); aot_gpr_6 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 650u, 0x088E71E4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E71E4u) goto L_088E71E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E71E4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_18 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -7369,8 +8654,21 @@ L_088E72A4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x088E72B0u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0058. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 661u, 0x088E72B0u, 0x088ED12Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0058_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0058_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0058_entry, 58u, 309u, 0x088ED12Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E72B0u) goto L_088E72B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E72B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7467,8 +8765,21 @@ L_088E7354: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7368u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 672u, 0x088E7368u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7368u) goto L_088E7368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7368: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -7520,8 +8831,21 @@ L_088E73C4: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E73D8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 678u, 0x088E73D8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E73D8u) goto L_088E73D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E73D8: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -7618,8 +8942,21 @@ L_088E7484: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7498u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 689u, 0x088E7498u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7498u) goto L_088E7498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7498: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -7669,8 +9006,21 @@ L_088E74F0: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7504u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 694u, 0x088E7504u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7504u) goto L_088E7504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7504: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -7713,8 +9063,21 @@ L_088E7528: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23256))); aot_gpr_31 = (0x088E755Cu); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 699u, 0x088E755Cu, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E755Cu) goto L_088E755C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E755C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23228))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23232))); @@ -7755,8 +9118,21 @@ L_088E75A4: ctx.gpr[7] = (0u | 172u); aot_gpr_31 = (0x088E75BCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 703u, 0x088E75BCu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E75BCu) goto L_088E75BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E75BC: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -7772,8 +9148,21 @@ L_088E75C4: ctx.gpr[7] = (0u | 218u); aot_gpr_31 = (0x088E75DCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 705u, 0x088E75DCu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E75DCu) goto L_088E75DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E75DC: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -7803,8 +9192,21 @@ L_088E760C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7624u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 708u, 0x088E7624u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7624u) goto L_088E7624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7624: ctx.gpr[16] = (aot_gpr_2 | 0u); goto L_088E7628; @@ -7833,8 +9235,21 @@ L_088E7660: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x088E766Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 712u, 0x088E766Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E766Cu) goto L_088E766C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E766C: aot_gpr_31 = (0x088E7674u); aot_gpr_4 = (aot_gpr_18 | 0u); @@ -7875,8 +9290,8 @@ L_088E7694: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E76D4: @@ -7990,8 +9405,21 @@ L_088E77C4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E77D0u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 729u, 0x088E77D0u, 0x088E3180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 384u, 0x088E3180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E77D0u) goto L_088E77D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E77D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8091,8 +9519,21 @@ L_088E7858: L_088E7870: aot_gpr_31 = (0x088E7878u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 742u, 0x088E7878u, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7878u) goto L_088E7878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7878: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8269,8 +9710,21 @@ L_088E79B0: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E79BCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 755u, 0x088E79BCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E79BCu) goto L_088E79BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E79BC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8307,8 +9761,21 @@ L_088E79FC: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E7A08u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 760u, 0x088E7A08u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7A08u) goto L_088E7A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7A08: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8477,8 +9944,21 @@ L_088E7B40: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7B4Cu); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 780u, 0x088E7B4Cu, 0x088E3180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 384u, 0x088E3180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7B4Cu) goto L_088E7B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7B4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8512,8 +9992,21 @@ L_088E7B80: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7B8Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 784u, 0x088E7B8Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7B8Cu) goto L_088E7B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7B8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(456))); aot_gpr_5 = (0u + static_cast(-5)); @@ -8540,8 +10033,21 @@ L_088E7BC8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7BE0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 786u, 0x088E7BE0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7BE0u) goto L_088E7BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7BE0: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -8561,8 +10067,21 @@ L_088E7C0C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x088E7C18u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 788u, 0x088E7C18u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7C18u) goto L_088E7C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7C18: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -8653,8 +10172,21 @@ L_088E7CB8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7CC4u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 800u, 0x088E7CC4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7CC4u) goto L_088E7CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7CC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(456))); aot_gpr_5 = (0u + static_cast(-5)); @@ -8681,8 +10213,21 @@ L_088E7D00: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7D18u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 802u, 0x088E7D18u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7D18u) goto L_088E7D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7D18: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -8702,8 +10247,21 @@ L_088E7D44: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x088E7D50u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 804u, 0x088E7D50u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7D50u) goto L_088E7D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7D50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -8722,8 +10280,21 @@ L_088E7D68: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088E7D74u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 807u, 0x088E7D74u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7D74u) goto L_088E7D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7D74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 64u); @@ -8899,8 +10470,21 @@ L_088E7E4C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_gpr_31 = (0x088E7E84u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 811u, 0x088E7E84u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7E84u) goto L_088E7E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7E84: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8952,8 +10536,21 @@ L_088E7EE4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20328))); aot_gpr_31 = (0x088E7F04u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 816u, 0x088E7F04u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7F04u) goto L_088E7F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7F04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1772), aot_gpr_4); @@ -8991,8 +10588,21 @@ L_088E7F38: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1716))); aot_gpr_31 = (0x088E7F44u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 822u, 0x088E7F44u, 0x08909804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 405u, 0x08909804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7F44u) goto L_088E7F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7F44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9015,8 +10625,21 @@ L_088E7F64: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2256))); aot_gpr_31 = (0x088E7F70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 825u, 0x088E7F70u, 0x08909744u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 397u, 0x08909744u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7F70u) goto L_088E7F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7F70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9040,8 +10663,21 @@ L_088E7F88: ctx.gpr[20] = (ctx.gpr[20] + static_cast(32304)); aot_gpr_31 = (0x088E7F94u); aot_gpr_4 = (ctx.gpr[20] + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 829u, 0x088E7F94u, 0x08999134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 124u, 0x08999134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7F94u) goto L_088E7F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7F94: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9053,13 +10689,39 @@ L_088E7F9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2256))); aot_gpr_31 = (0x088E7FA8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 831u, 0x088E7FA8u, 0x08909744u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 397u, 0x08909744u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7FA8u) goto L_088E7FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7FA8: aot_gpr_31 = (0x088E7FB0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0056->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0056_entry, 832u, 0x088E7FB0u, 0x08A1C438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 36u, 0x08A1C438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E7FB0u) goto L_088E7FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E7FB0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(3228), std::bit_cast(ctx.fpr[0])); goto L_088E7FB4; diff --git a/profiles/vcs/generated/generated_unit_0057.cpp b/profiles/vcs/generated/generated_unit_0057.cpp index b6c3c1a..c89cd7a 100644 --- a/profiles/vcs/generated/generated_unit_0057.cpp +++ b/profiles/vcs/generated/generated_unit_0057.cpp @@ -969,6 +969,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088E8000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1053,8 +1077,21 @@ L_088E808C: L_088E8094: aot_gpr_31 = (0x088E809Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 9u, 0x088E809Cu, 0x0898E250u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 758u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 758u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 758u, 0x0898E250u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E809Cu) goto L_088E809C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E809C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1082,8 +1119,21 @@ L_088E80B8: L_088E80C0: aot_gpr_31 = (0x088E80C8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 13u, 0x088E80C8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E80C8u) goto L_088E80C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E80C8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1122,8 +1172,21 @@ L_088E8108: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088E8120u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 17u, 0x088E8120u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8120u) goto L_088E8120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8120: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -1131,14 +1194,40 @@ L_088E8120: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088E8138u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 18u, 0x088E8138u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8138u) goto L_088E8138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8138: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8144u); aot_gpr_5 = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 19u, 0x088E8144u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8144u) goto L_088E8144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8144: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1282,8 +1371,21 @@ L_088E8238: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088E8248u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 37u, 0x088E8248u, 0x088E2C98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 313u, 0x088E2C98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8248u) goto L_088E8248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8248: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1295,8 +1397,21 @@ L_088E8248: L_088E8254: aot_gpr_31 = (0x088E825Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 39u, 0x088E825Cu, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E825Cu) goto L_088E825C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E825C: { const bool branch_taken = ctx.gpr[17] == ctx.gpr[21]; if (branch_taken) { @@ -1335,8 +1450,21 @@ L_088E8288: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8294u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 45u, 0x088E8294u, 0x088E3180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 384u, 0x088E3180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8294u) goto L_088E8294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8294: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1361,8 +1489,21 @@ L_088E82B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E82C4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 48u, 0x088E82C4u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E82C4u) goto L_088E82C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E82C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 22u); @@ -1384,8 +1525,21 @@ L_088E82D4: L_088E82E4: aot_gpr_31 = (0x088E82ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 51u, 0x088E82ECu, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E82ECu) goto L_088E82EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E82EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -1415,8 +1569,21 @@ L_088E8328: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8334u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 54u, 0x088E8334u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8334u) goto L_088E8334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8334: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8340u); @@ -1470,8 +1637,21 @@ L_088E839C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E83ACu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 60u, 0x088E83ACu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E83ACu) goto L_088E83AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E83AC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1511,8 +1691,21 @@ L_088E83F0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x088E8400u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 66u, 0x088E8400u, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8400u) goto L_088E8400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8400: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(32))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); @@ -1580,8 +1773,21 @@ L_088E8458: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088E8464u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 74u, 0x088E8464u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8464u) goto L_088E8464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8464: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(64))); @@ -1602,8 +1808,21 @@ L_088E8488: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088E84A0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 76u, 0x088E84A0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E84A0u) goto L_088E84A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E84A0: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -1623,8 +1842,21 @@ L_088E84CC: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x088E84D8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 78u, 0x088E84D8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E84D8u) goto L_088E84D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E84D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1713,8 +1945,21 @@ L_088E8570: L_088E8578: aot_gpr_31 = (0x088E8580u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 89u, 0x088E8580u, 0x088E4D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 178u, 0x088E4D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8580u) goto L_088E8580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8580: aot_gpr_4 = (aot_gpr_2 & 255u); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -1878,8 +2123,21 @@ L_088E86A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23256))); aot_gpr_31 = (0x088E86D8u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 106u, 0x088E86D8u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E86D8u) goto L_088E86D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E86D8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23228))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23232))); @@ -1930,8 +2188,21 @@ L_088E8730: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8740u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 112u, 0x088E8740u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8740u) goto L_088E8740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8740: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -1958,8 +2229,21 @@ L_088E8764: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088E8770u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 117u, 0x088E8770u, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8770u) goto L_088E8770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8770: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(32))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); @@ -2027,8 +2311,21 @@ L_088E87C8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088E87D4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 125u, 0x088E87D4u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E87D4u) goto L_088E87D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E87D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2050,8 +2347,21 @@ L_088E87E4: L_088E87F4: aot_gpr_31 = (0x088E87FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 128u, 0x088E87FCu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E87FCu) goto L_088E87FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E87FC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2144,8 +2454,21 @@ L_088E889C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E88ACu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 139u, 0x088E88ACu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E88ACu) goto L_088E88AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E88AC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2158,8 +2481,21 @@ L_088E88B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E88C4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 141u, 0x088E88C4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E88C4u) goto L_088E88C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E88C4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2172,8 +2508,21 @@ L_088E88CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E88DCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 143u, 0x088E88DCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E88DCu) goto L_088E88DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E88DC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2189,8 +2538,21 @@ L_088E88E4: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x088E8900u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 145u, 0x088E8900u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8900u) goto L_088E8900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8900: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2198,8 +2560,21 @@ L_088E8900: ctx.gpr[7] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088E8918u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 146u, 0x088E8918u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8918u) goto L_088E8918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8918: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -2219,8 +2594,21 @@ L_088E8944: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x088E8950u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 148u, 0x088E8950u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8950u) goto L_088E8950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8950: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -2243,8 +2631,21 @@ L_088E8958: L_088E8978: aot_gpr_31 = (0x088E8980u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 151u, 0x088E8980u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8980u) goto L_088E8980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8980: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2280,8 +2681,8 @@ L_088E89A8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E89D4: @@ -2348,8 +2749,21 @@ L_088E8A44: L_088E8A4C: aot_gpr_31 = (0x088E8A54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 163u, 0x088E8A54u, 0x088E3074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 364u, 0x088E3074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8A54u) goto L_088E8A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8A54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2364,8 +2778,21 @@ L_088E8A5C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088E8A74u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 165u, 0x088E8A74u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8A74u) goto L_088E8A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8A74: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1740), 0u); { const bool branch_taken = 0u == 0u; @@ -2378,8 +2805,21 @@ L_088E8A80: aot_gpr_4 = (ctx.gpr[29] + static_cast(8)); aot_gpr_31 = (0x088E8A8Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 167u, 0x088E8A8Cu, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8A8Cu) goto L_088E8A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8A8C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(8))); ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); @@ -2389,8 +2829,21 @@ L_088E8A8C: aot_gpr_4 = (ctx.gpr[29] + static_cast(16)); aot_gpr_31 = (0x088E8AACu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 168u, 0x088E8AACu, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8AACu) goto L_088E8AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8AAC: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(20))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -2412,15 +2865,41 @@ L_088E8AE0: aot_gpr_4 = (ctx.gpr[29] + static_cast(48)); aot_gpr_31 = (0x088E8AECu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 170u, 0x088E8AECu, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8AECu) goto L_088E8AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8AEC: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(48))); aot_gpr_4 = (ctx.gpr[29] + static_cast(56)); aot_gpr_31 = (0x088E8AFCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 171u, 0x088E8AFCu, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8AFCu) goto L_088E8AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8AFC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); @@ -2430,13 +2909,39 @@ L_088E8AFC: aot_gpr_5 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x088E8B20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 172u, 0x088E8B20u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8B20u) goto L_088E8B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8B20: aot_gpr_31 = (0x088E8B28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 173u, 0x088E8B28u, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8B28u) goto L_088E8B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8B28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(688))); aot_gpr_4 = (static_cast(aot_gpr_4) < 20 ? 1u : 0u); @@ -2529,8 +3034,21 @@ L_088E8BD8: aot_gpr_4 = (ctx.gpr[29] + static_cast(64)); aot_gpr_31 = (0x088E8BE4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 184u, 0x088E8BE4u, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8BE4u) goto L_088E8BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8BE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(64))); aot_gpr_4 = (ctx.gpr[17] << 2u); @@ -2543,8 +3061,21 @@ L_088E8BE4: aot_gpr_4 = (ctx.gpr[29] + static_cast(72)); aot_gpr_31 = (0x088E8C10u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 185u, 0x088E8C10u, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8C10u) goto L_088E8C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8C10: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(76))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1784))); @@ -2629,8 +3160,21 @@ L_088E8CB4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088E8CC4u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 195u, 0x088E8CC4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8CC4u) goto L_088E8CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8CC4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2655,8 +3199,8 @@ L_088E8CE8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-16296))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E8D00: @@ -2674,8 +3218,21 @@ L_088E8D14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8D24u); aot_gpr_6 = (0u | 149u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 200u, 0x088E8D24u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8D24u) goto L_088E8D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8D24: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2705,8 +3262,21 @@ L_088E8D54: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088E8D6Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 203u, 0x088E8D6Cu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8D6Cu) goto L_088E8D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8D6C: aot_gpr_31 = (0x088E8D74u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8D74u) goto L_088E8D74; @@ -2734,8 +3304,21 @@ L_088E8D88: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E8DC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 206u, 0x088E8DC0u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8DC0u) goto L_088E8DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8DC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2769,8 +3352,21 @@ L_088E8DE8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E8E04u); ctx.gpr[7] = (0u | 149u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 211u, 0x088E8E04u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8E04u) goto L_088E8E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8E04: aot_gpr_31 = (0x088E8E0Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8E0Cu) goto L_088E8E0C; @@ -2798,14 +3394,40 @@ L_088E8E20: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E8E58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 214u, 0x088E8E58u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8E58u) goto L_088E8E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8E58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8E64u); aot_gpr_5 = (0u | 154u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 215u, 0x088E8E64u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8E64u) goto L_088E8E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8E64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2816,8 +3438,21 @@ L_088E8E64: L_088E8E6C: aot_gpr_31 = (0x088E8E74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 217u, 0x088E8E74u, 0x088E3074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 364u, 0x088E3074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8E74u) goto L_088E8E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8E74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2850,8 +3485,21 @@ L_088E8EA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8EB4u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 221u, 0x088E8EB4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8EB4u) goto L_088E8EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8EB4: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2865,8 +3513,21 @@ L_088E8EC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8ED0u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 223u, 0x088E8ED0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8ED0u) goto L_088E8ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8ED0: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2880,8 +3541,21 @@ L_088E8EDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8EECu); aot_gpr_6 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 225u, 0x088E8EECu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8EECu) goto L_088E8EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8EEC: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088E8EF0; @@ -2909,8 +3583,21 @@ L_088E8F08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E8F24u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 229u, 0x088E8F24u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8F24u) goto L_088E8F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8F24: aot_gpr_31 = (0x088E8F2Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8F2Cu) goto L_088E8F2C; @@ -2938,8 +3625,21 @@ L_088E8F40: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E8F78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 232u, 0x088E8F78u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8F78u) goto L_088E8F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8F78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2968,8 +3668,21 @@ L_088E8F98: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E8FB4u); ctx.gpr[7] = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 236u, 0x088E8FB4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8FB4u) goto L_088E8FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E8FB4: aot_gpr_31 = (0x088E8FBCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E8FBCu) goto L_088E8FBC; @@ -2997,8 +3710,21 @@ L_088E8FD8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E9008u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 239u, 0x088E9008u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9008u) goto L_088E9008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9008: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1038))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3011,8 +3737,21 @@ L_088E9014: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E9020u); aot_gpr_5 = (0u | 154u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 241u, 0x088E9020u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9020u) goto L_088E9020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9020: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3043,8 +3782,21 @@ L_088E9044: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E9054u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 245u, 0x088E9054u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9054u) goto L_088E9054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9054: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3058,8 +3810,21 @@ L_088E9060: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E9070u); aot_gpr_6 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 247u, 0x088E9070u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9070u) goto L_088E9070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9070: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088E9074; @@ -3075,8 +3840,21 @@ L_088E907C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E908Cu); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 250u, 0x088E908Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E908Cu) goto L_088E908C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E908C: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088E9090; @@ -3092,8 +3870,21 @@ L_088E9098: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E90A8u); aot_gpr_6 = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 253u, 0x088E90A8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E90A8u) goto L_088E90A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E90A8: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088E90AC; @@ -3143,8 +3934,21 @@ L_088E90EC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E9108u); ctx.gpr[7] = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 260u, 0x088E9108u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9108u) goto L_088E9108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9108: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3160,8 +3964,21 @@ L_088E9110: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E912Cu); ctx.gpr[7] = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 262u, 0x088E912Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E912Cu) goto L_088E912C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E912C: aot_gpr_31 = (0x088E9134u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9134u) goto L_088E9134; @@ -3189,8 +4006,21 @@ L_088E9148: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E9180u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 265u, 0x088E9180u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9180u) goto L_088E9180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9180: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3241,8 +4071,21 @@ L_088E91D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E91ECu); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 271u, 0x088E91ECu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E91ECu) goto L_088E91EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E91EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3258,8 +4101,21 @@ L_088E91F4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E9210u); ctx.gpr[7] = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 273u, 0x088E9210u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9210u) goto L_088E9210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9210: aot_gpr_31 = (0x088E9218u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9218u) goto L_088E9218; @@ -3287,8 +4143,21 @@ L_088E922C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E9264u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 276u, 0x088E9264u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9264u) goto L_088E9264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9264: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3317,8 +4186,21 @@ L_088E9284: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E92A0u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 280u, 0x088E92A0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E92A0u) goto L_088E92A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E92A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3334,8 +4216,21 @@ L_088E92A8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E92C4u); ctx.gpr[7] = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 282u, 0x088E92C4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E92C4u) goto L_088E92C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E92C4: aot_gpr_31 = (0x088E92CCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E92CCu) goto L_088E92CC; @@ -3363,8 +4258,21 @@ L_088E92E0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E9318u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 285u, 0x088E9318u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9318u) goto L_088E9318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9318: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1038))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3377,8 +4285,21 @@ L_088E9324: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E9330u); aot_gpr_5 = (0u | 154u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 287u, 0x088E9330u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9330u) goto L_088E9330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9330: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3411,8 +4332,21 @@ L_088E9360: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E9370u); aot_gpr_6 = (0u | 149u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 291u, 0x088E9370u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9370u) goto L_088E9370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9370: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3436,8 +4370,21 @@ L_088E9384: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E93A0u); ctx.gpr[7] = (0u | 149u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 294u, 0x088E93A0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E93A0u) goto L_088E93A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E93A0: aot_gpr_31 = (0x088E93A8u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E93A8u) goto L_088E93A8; @@ -3465,8 +4412,21 @@ L_088E93BC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E93F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 297u, 0x088E93F4u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E93F4u) goto L_088E93F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E93F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3497,8 +4457,21 @@ L_088E9424: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E9440u); ctx.gpr[7] = (0u | 166u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 300u, 0x088E9440u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9440u) goto L_088E9440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9440: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3514,8 +4487,21 @@ L_088E9448: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088E9464u); ctx.gpr[7] = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 302u, 0x088E9464u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9464u) goto L_088E9464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9464: aot_gpr_31 = (0x088E946Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E946Cu) goto L_088E946C; @@ -3543,8 +4529,21 @@ L_088E9480: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E94B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 305u, 0x088E94B8u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E94B8u) goto L_088E94B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E94B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3557,8 +4556,21 @@ L_088E94C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E94D0u); aot_gpr_6 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 307u, 0x088E94D0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E94D0u) goto L_088E94D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E94D0: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3572,8 +4584,21 @@ L_088E94DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E94ECu); aot_gpr_6 = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 309u, 0x088E94ECu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E94ECu) goto L_088E94EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E94EC: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3591,8 +4616,21 @@ L_088E94F8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_gpr_31 = (0x088E9518u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 311u, 0x088E9518u, 0x088E3074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 364u, 0x088E3074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9518u) goto L_088E9518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9518: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3609,8 +4647,21 @@ L_088E9520: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_gpr_31 = (0x088E9540u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 313u, 0x088E9540u, 0x088E3074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 364u, 0x088E3074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9540u) goto L_088E9540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9540: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3621,8 +4672,21 @@ L_088E9540: L_088E9548: aot_gpr_31 = (0x088E9550u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 315u, 0x088E9550u, 0x088E3074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 364u, 0x088E3074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9550u) goto L_088E9550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9550: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3643,8 +4707,8 @@ L_088E9558: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088E957C: @@ -3653,8 +4717,21 @@ L_088E957C: aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(776), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088E95BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 318u, 0x088E95BCu, 0x088E335Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 412u, 0x088E335Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E95BCu) goto L_088E95BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E95BC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3709,8 +4786,21 @@ L_088E962C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(764), aot_gpr_4); aot_gpr_31 = (0x088E9648u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 323u, 0x088E9648u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9648u) goto L_088E9648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9648: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(752), aot_gpr_2); @@ -3743,8 +4833,21 @@ L_088E9648: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088E969Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 324u, 0x088E969Cu, 0x0881DD84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 257u, 0x0881DD84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E969Cu) goto L_088E969C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E969C: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); @@ -3752,8 +4855,21 @@ L_088E969C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088E96B4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 325u, 0x088E96B4u, 0x0881DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 293u, 0x0881DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E96B4u) goto L_088E96B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E96B4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[21] = (ctx.gpr[29] + static_cast(112)); @@ -3761,8 +4877,21 @@ L_088E96B4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088E96CCu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 326u, 0x088E96CCu, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E96CCu) goto L_088E96CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E96CC: aot_gpr_4 = (ctx.gpr[17] << 4u); aot_gpr_5 = (2238u << 16u); @@ -3820,8 +4949,21 @@ L_088E9700: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088E9714u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 328u, 0x088E9714u, 0x0881DE58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 275u, 0x0881DE58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9714u) goto L_088E9714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9714: ctx.gpr[17] = (0u | 0u); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(744), static_cast(aot_gpr_2)); @@ -4018,8 +5160,21 @@ L_088E9888: aot_gpr_6 = (ctx.gpr[29] + static_cast(512)); aot_gpr_31 = (0x088E9898u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 342u, 0x088E9898u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9898u) goto L_088E9898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9898: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(512))); @@ -4040,8 +5195,21 @@ L_088E98BC: aot_gpr_6 = (ctx.gpr[29] + static_cast(513)); aot_gpr_31 = (0x088E98CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 345u, 0x088E98CCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E98CCu) goto L_088E98CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E98CC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(513))); @@ -4071,8 +5239,21 @@ L_088E9910: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(740))); aot_gpr_31 = (0x088E991Cu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 348u, 0x088E991Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E991Cu) goto L_088E991C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E991C: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4117,8 +5298,21 @@ L_088E996C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(52), aot_gpr_5); aot_gpr_31 = (0x088E9984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 353u, 0x088E9984u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9984u) goto L_088E9984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9984: aot_gpr_4 = (aot_gpr_2 & 1u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(56)))))); @@ -4165,8 +5359,21 @@ L_088E99F0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(48))); aot_gpr_31 = (0x088E99FCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 358u, 0x088E99FCu, 0x0881F9F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 657u, 0x0881F9F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E99FCu) goto L_088E99FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E99FC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4285,8 +5492,21 @@ L_088E9ACC: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x088E9AECu); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 372u, 0x088E9AECu, 0x088E4A4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 131u, 0x088E4A4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9AECu) goto L_088E9AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9AEC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1914))); @@ -4327,8 +5547,21 @@ L_088E9B08: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_gpr_31 = (0x088E9B44u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 374u, 0x088E9B44u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9B44u) goto L_088E9B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9B44: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4374,8 +5607,21 @@ L_088E9B90: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088E9B9Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 379u, 0x088E9B9Cu, 0x0881F9F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 657u, 0x0881F9F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9B9Cu) goto L_088E9B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9B9C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4471,8 +5717,21 @@ L_088E9C20: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088E9C60u); aot_gpr_6 = (0u | 45u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 389u, 0x088E9C60u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9C60u) goto L_088E9C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9C60: aot_gpr_4 = (2246u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(2032)); @@ -4506,8 +5765,21 @@ L_088E9CC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E9CCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 391u, 0x088E9CCCu, 0x08B0A360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 425u, 0x08B0A360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9CCCu) goto L_088E9CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9CCC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -4523,8 +5795,21 @@ L_088E9CE4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088E9CF0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 393u, 0x088E9CF0u, 0x0881F874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 634u, 0x0881F874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9CF0u) goto L_088E9CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9CF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4567,8 +5852,21 @@ L_088E9D38: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088E9D44u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 398u, 0x088E9D44u, 0x0881F9F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 657u, 0x0881F9F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9D44u) goto L_088E9D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9D44: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4645,8 +5943,21 @@ L_088E9DC4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x088E9DDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 407u, 0x088E9DDCu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9DDCu) goto L_088E9DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9DDC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -4751,8 +6062,21 @@ L_088E9E0C: } aot_gpr_31 = (0x088E9E7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 412u, 0x088E9E7Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9E7Cu) goto L_088E9E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9E7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -4768,8 +6092,21 @@ L_088E9E94: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088E9EA0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 414u, 0x088E9EA0u, 0x0881F874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 634u, 0x0881F874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9EA0u) goto L_088E9EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9EA0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(756))); @@ -4811,8 +6148,21 @@ L_088E9ED8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088E9EF0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 420u, 0x088E9EF0u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9EF0u) goto L_088E9EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9EF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -4828,8 +6178,21 @@ L_088E9F08: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088E9F14u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 422u, 0x088E9F14u, 0x0881F874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 634u, 0x0881F874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088E9F14u) goto L_088E9F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088E9F14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(756))); goto L_088E9F18; @@ -5011,8 +6374,21 @@ L_088E9FAC: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(762))); aot_gpr_31 = (0x088EA018u); aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(760))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 434u, 0x088EA018u, 0x0881DEBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 284u, 0x0881DEBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA018u) goto L_088EA018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA018: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -5165,8 +6541,21 @@ L_088EA104: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); aot_gpr_31 = (0x088EA11Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 441u, 0x088EA11Cu, 0x08903BB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 678u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 678u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 678u, 0x08903BB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA11Cu) goto L_088EA11C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA11C: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(352), std::bit_cast(aot_fpr_22)); @@ -5423,8 +6812,21 @@ L_088EA2CC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088EA32Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 455u, 0x088EA32Cu, 0x08A6734Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 658u, 0x08A6734Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA32Cu) goto L_088EA32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA32C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(305))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); @@ -5530,8 +6932,8 @@ L_088EA3F0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(832)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088EA428: @@ -5576,8 +6978,21 @@ L_088EA4B4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088EA4D0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 470u, 0x088EA4D0u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA4D0u) goto L_088EA4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA4D0: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u | 0u); @@ -5730,8 +7145,21 @@ L_088EA5EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_31 = (0x088EA5F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 487u, 0x088EA5F8u, 0x0881E044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 309u, 0x0881E044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA5F8u) goto L_088EA5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA5F8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5765,8 +7193,21 @@ L_088EA61C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(20))); aot_gpr_31 = (0x088EA628u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 492u, 0x088EA628u, 0x0881E3E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 372u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 372u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 372u, 0x0881E3E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA628u) goto L_088EA628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA628: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5796,8 +7237,21 @@ L_088EA650: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088EA660u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 496u, 0x088EA660u, 0x0881F588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 591u, 0x0881F588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA660u) goto L_088EA660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA660: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5823,8 +7277,21 @@ L_088EA684: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EA690u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 500u, 0x088EA690u, 0x0881F874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 634u, 0x0881F874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA690u) goto L_088EA690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA690: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -5854,8 +7321,21 @@ L_088EA6C0: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x088EA6D8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 503u, 0x088EA6D8u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA6D8u) goto L_088EA6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA6D8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(20))); aot_fpr_22 = std::bit_cast(aot_gpr_4); @@ -5873,8 +7353,21 @@ L_088EA6D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23256))); aot_gpr_31 = (0x088EA718u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 504u, 0x088EA718u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA718u) goto L_088EA718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA718: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23244))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23248))); @@ -5934,8 +7427,21 @@ L_088EA77C: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EA790u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 511u, 0x088EA790u, 0x0881EE20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 501u, 0x0881EE20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA790u) goto L_088EA790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA790: ctx.gpr[23] = (aot_gpr_2 | 0u); ctx.gpr[18] = (ctx.gpr[23] & 255u); @@ -5958,8 +7464,21 @@ L_088EA7B0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088EA7D8u); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 513u, 0x088EA7D8u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA7D8u) goto L_088EA7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA7D8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6167,8 +7686,21 @@ L_088EA934: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EA948u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 527u, 0x088EA948u, 0x088E43E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 36u, 0x088E43E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA948u) goto L_088EA948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA948: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6221,8 +7753,21 @@ L_088EA9A0: ctx.gpr[9] = (0u | 1u); aot_gpr_31 = (0x088EA9C0u); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 533u, 0x088EA9C0u, 0x0881ECDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 486u, 0x0881ECDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA9C0u) goto L_088EA9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA9C0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(48))); if (aot_gpr_4 == 0u) { @@ -6233,8 +7778,21 @@ L_088EA9C0: L_088EA9CC: aot_gpr_31 = (0x088EA9D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 535u, 0x088EA9D4u, 0x0890F68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 780u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 780u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 780u, 0x0890F68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA9D4u) goto L_088EA9D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA9D4: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(252))); @@ -6247,13 +7805,39 @@ L_088EA9DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EA9E8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 537u, 0x088EA9E8u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA9E8u) goto L_088EA9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA9E8: aot_gpr_31 = (0x088EA9F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 538u, 0x088EA9F0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EA9F0u) goto L_088EA9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EA9F0: if (aot_gpr_2 != 0u) { aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(252))); @@ -6289,8 +7873,21 @@ L_088EAA2C: aot_gpr_5 = (ctx.gpr[29] + static_cast(80)); aot_gpr_31 = (0x088EAA44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 542u, 0x088EAA44u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAA44u) goto L_088EAA44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAA44: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6311,8 +7908,21 @@ L_088EAA4C: } aot_gpr_31 = (0x088EAA70u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 544u, 0x088EAA70u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAA70u) goto L_088EAA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAA70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(12))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -6385,8 +7995,21 @@ L_088EAB04: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EAB18u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 551u, 0x088EAB18u, 0x0881EE20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 501u, 0x0881EE20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAB18u) goto L_088EAB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAB18: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_4 = (0u | 255u); @@ -6441,8 +8064,21 @@ L_088EAB78: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EAB88u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 557u, 0x088EAB88u, 0x0881F474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 583u, 0x0881F474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAB88u) goto L_088EAB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAB88: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(248))); goto L_088EAB8C; @@ -6466,8 +8102,21 @@ L_088EABA4: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x088EABC4u); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 560u, 0x088EABC4u, 0x0881ECDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 486u, 0x0881ECDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EABC4u) goto L_088EABC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EABC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(36))); aot_gpr_5 = (aot_gpr_4 + static_cast(8)); @@ -6486,8 +8135,21 @@ L_088EABDC: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x088EABF4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 562u, 0x088EABF4u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EABF4u) goto L_088EABF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EABF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -6508,8 +8170,21 @@ L_088EAC0C: ctx.gpr[9] = (0u | 1u); aot_gpr_31 = (0x088EAC2Cu); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 564u, 0x088EAC2Cu, 0x0881ECDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 486u, 0x0881ECDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAC2Cu) goto L_088EAC2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAC2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(36))); aot_gpr_5 = (aot_gpr_4 + static_cast(8)); @@ -6529,8 +8204,21 @@ L_088EAC44: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EAC60u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 566u, 0x088EAC60u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAC60u) goto L_088EAC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAC60: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); @@ -6596,8 +8284,21 @@ L_088EACDC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088EACE8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 573u, 0x088EACE8u, 0x0881F37Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 574u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 574u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 574u, 0x0881F37Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EACE8u) goto L_088EACE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EACE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2228))); aot_gpr_5 = (0u | 17u); @@ -6611,8 +8312,21 @@ L_088EACF8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EAD04u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 575u, 0x088EAD04u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAD04u) goto L_088EAD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAD04: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(20))); @@ -6631,8 +8345,21 @@ L_088EAD1C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EAD28u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 578u, 0x088EAD28u, 0x088E3464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 428u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 428u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 428u, 0x088E3464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAD28u) goto L_088EAD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAD28: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(252))); goto L_088EAD2C; @@ -6654,8 +8381,21 @@ L_088EAD44: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088EAD5Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 581u, 0x088EAD5Cu, 0x0881FB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 675u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 675u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 675u, 0x0881FB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAD5Cu) goto L_088EAD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAD5C: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6720,8 +8460,21 @@ L_088EADA8: ctx.gpr[9] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EADC8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 583u, 0x088EADC8u, 0x08822484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 439u, 0x08822484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EADC8u) goto L_088EADC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EADC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6758,8 +8511,21 @@ L_088EADF4: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x088EAE18u); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 587u, 0x088EAE18u, 0x0881ECDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 486u, 0x0881ECDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAE18u) goto L_088EAE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAE18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); @@ -6778,8 +8544,21 @@ L_088EAE30: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EAE48u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 589u, 0x088EAE48u, 0x0881FB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 675u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 675u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 675u, 0x0881FB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAE48u) goto L_088EAE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAE48: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(240))); { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); @@ -6847,8 +8626,21 @@ L_088EAEA0: ctx.gpr[9] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EAEC0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 591u, 0x088EAEC0u, 0x08822484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 439u, 0x08822484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAEC0u) goto L_088EAEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAEC0: aot_gpr_4 = (0u | 54u); aot_mem.aot_direct_store16(ctx.gpr[29] + static_cast(112), static_cast(aot_gpr_4)); @@ -6880,8 +8672,21 @@ L_088EAEC0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EAF38u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 592u, 0x088EAF38u, 0x088E4C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 164u, 0x088E4C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EAF38u) goto L_088EAF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EAF38: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(8))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(244)))))); @@ -6947,8 +8752,21 @@ L_088EAF38: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EB038u); aot_gpr_5 = (ctx.gpr[29] + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 593u, 0x088EB038u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB038u) goto L_088EB038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB038: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(288), aot_run_words); @@ -6968,8 +8786,8 @@ L_088EB038: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088EB074: @@ -7001,8 +8819,21 @@ L_088EB0C4: L_088EB0D4: aot_gpr_31 = (0x088EB0DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 597u, 0x088EB0DCu, 0x08911284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 327u, 0x08911284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB0DCu) goto L_088EB0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB0DC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7046,21 +8877,60 @@ L_088EB104: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x088EB11Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 603u, 0x088EB11Cu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB11Cu) goto L_088EB11C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB11C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EB128u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 604u, 0x088EB128u, 0x08909804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 405u, 0x08909804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB128u) goto L_088EB128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB128: aot_gpr_5 = (32768u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); aot_gpr_31 = (0x088EB138u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 605u, 0x088EB138u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB138u) goto L_088EB138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB138: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -7071,8 +8941,21 @@ L_088EB138: } L_088EB144: aot_gpr_31 = (0x088EB14Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 607u, 0x088EB14Cu, 0x088954ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 273u, 0x088954ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB14Cu) goto L_088EB14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB14C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7100,8 +8983,21 @@ L_088EB17C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EB18Cu); aot_gpr_6 = (0u | 218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 610u, 0x088EB18Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB18Cu) goto L_088EB18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB18C: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7115,8 +9011,21 @@ L_088EB198: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EB1A8u); aot_gpr_6 = (0u | 172u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 612u, 0x088EB1A8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB1A8u) goto L_088EB1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB1A8: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088EB1AC; @@ -7141,8 +9050,21 @@ L_088EB1B4: } L_088EB1D4: aot_gpr_31 = (0x088EB1DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 616u, 0x088EB1DCu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB1DCu) goto L_088EB1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB1DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[20]; @@ -7217,8 +9139,21 @@ L_088EB238: L_088EB240: aot_gpr_31 = (0x088EB248u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 627u, 0x088EB248u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB248u) goto L_088EB248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB248: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); goto L_088EB24C; @@ -7234,8 +9169,21 @@ L_088EB258: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EB264u); aot_gpr_5 = (0u | 50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 630u, 0x088EB264u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB264u) goto L_088EB264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB264: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7284,8 +9232,21 @@ L_088EB290: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23256))); aot_gpr_31 = (0x088EB2C4u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 636u, 0x088EB2C4u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB2C4u) goto L_088EB2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB2C4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23172))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23176))); @@ -7310,8 +9271,21 @@ L_088EB2E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EB2F4u); aot_gpr_5 = (0u | 22u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 639u, 0x088EB2F4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB2F4u) goto L_088EB2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB2F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 8u); @@ -7350,8 +9324,21 @@ L_088EB34C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_31 = (0x088EB35Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 643u, 0x088EB35Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB35Cu) goto L_088EB35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB35C: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7420,8 +9407,21 @@ L_088EB3CC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088EB3DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 651u, 0x088EB3DCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB3DCu) goto L_088EB3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB3DC: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (aot_gpr_2 | 0u); @@ -7437,8 +9437,21 @@ L_088EB3E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EB3F4u); aot_gpr_6 = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 654u, 0x088EB3F4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB3F4u) goto L_088EB3F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB3F4: aot_gpr_5 = (aot_gpr_2 | 0u); goto L_088EB3F8; @@ -7524,8 +9537,21 @@ L_088EB480: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EB498u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 665u, 0x088EB498u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB498u) goto L_088EB498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB498: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -7566,8 +9592,21 @@ L_088EB4C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23256))); aot_gpr_31 = (0x088EB4F4u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 669u, 0x088EB4F4u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB4F4u) goto L_088EB4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB4F4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23228))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23232))); @@ -7631,8 +9670,21 @@ L_088EB540: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23256))); aot_gpr_31 = (0x088EB574u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 676u, 0x088EB574u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB574u) goto L_088EB574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB574: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23228))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23232))); @@ -7673,8 +9725,21 @@ L_088EB5BC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088EB5D0u); ctx.gpr[7] = (0u | 172u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 680u, 0x088EB5D0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB5D0u) goto L_088EB5D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB5D0: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -7689,8 +9754,21 @@ L_088EB5D8: aot_gpr_6 = (0u | 14u); aot_gpr_31 = (0x088EB5ECu); ctx.gpr[7] = (0u | 218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 682u, 0x088EB5ECu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB5ECu) goto L_088EB5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB5EC: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -7705,8 +9783,21 @@ L_088EB5F4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EB608u); ctx.gpr[7] = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 684u, 0x088EB608u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB608u) goto L_088EB608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB608: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_088EB60C; @@ -7747,8 +9838,21 @@ L_088EB640: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EB64Cu); aot_gpr_5 = (0u | 137u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 691u, 0x088EB64Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB64Cu) goto L_088EB64C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB64C: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(12), aot_run_words); @@ -7763,8 +9867,8 @@ L_088EB64C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088EB674: @@ -7821,8 +9925,21 @@ L_088EB720: L_088EB728: aot_gpr_31 = (0x088EB730u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 697u, 0x088EB730u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB730u) goto L_088EB730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB730: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7994,8 +10111,21 @@ L_088EB834: L_088EB858: aot_gpr_31 = (0x088EB860u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 719u, 0x088EB860u, 0x089AB910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 762u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 762u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 762u, 0x089AB910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB860u) goto L_088EB860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB860: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8059,8 +10189,21 @@ L_088EB8C0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EB8CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 728u, 0x088EB8CCu, 0x0894751Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 668u, 0x0894751Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB8CCu) goto L_088EB8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB8CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8154,8 +10297,21 @@ L_088EB948: L_088EB950: aot_gpr_31 = (0x088EB958u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 740u, 0x088EB958u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB958u) goto L_088EB958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB958: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8217,8 +10373,21 @@ L_088EB9A4: } L_088EB9AC: aot_gpr_31 = (0x088EB9B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 749u, 0x088EB9B4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EB9B4u) goto L_088EB9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EB9B4: { const bool branch_taken = ctx.gpr[21] == aot_gpr_2; if (branch_taken) { @@ -8334,8 +10503,21 @@ L_088EBA50: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EBA5Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 766u, 0x088EBA5Cu, 0x08AD0600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 58u, 0x08AD0600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBA5Cu) goto L_088EBA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBA5C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8397,8 +10579,21 @@ L_088EBAB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EBADCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 773u, 0x088EBADCu, 0x088E4C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 164u, 0x088E4C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBADCu) goto L_088EBADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBADC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(3)))))); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(27), static_cast(aot_gpr_4)); @@ -8419,8 +10614,21 @@ L_088EBB00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088EBB1Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 775u, 0x088EBB1Cu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBB1Cu) goto L_088EBB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBB1C: aot_gpr_31 = (0x088EBB24u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8501,8 +10709,21 @@ L_088EBB78: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088EBB8Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 786u, 0x088EBB8Cu, 0x088E3DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 563u, 0x088E3DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBB8Cu) goto L_088EBB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBB8C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8514,8 +10735,21 @@ L_088EBB94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); aot_gpr_31 = (0x088EBBA0u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 788u, 0x088EBBA0u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBBA0u) goto L_088EBBA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBBA0: aot_gpr_4 = (16384u << 16u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); @@ -8560,8 +10794,21 @@ L_088EBBDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); aot_gpr_31 = (0x088EBBE8u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 794u, 0x088EBBE8u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBBE8u) goto L_088EBBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBBE8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8665,8 +10912,8 @@ L_088EBC7C: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-16224))); jump_target = ctx.gpr[1]; ctx.gpr[23] = (static_cast(static_cast(ctx.gpr[23]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088EBC94: @@ -8709,8 +10956,21 @@ L_088EBCC8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088EBCDCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 813u, 0x088EBCDCu, 0x088E3DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 563u, 0x088E3DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBCDCu) goto L_088EBCDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBCDC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8722,8 +10982,21 @@ L_088EBCE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); aot_gpr_31 = (0x088EBCF0u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 815u, 0x088EBCF0u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBCF0u) goto L_088EBCF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBCF0: aot_gpr_4 = (16384u << 16u); { const bool branch_taken = aot_gpr_2 == 0u; @@ -8881,8 +11154,21 @@ L_088EBDB8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088EBDCCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 836u, 0x088EBDCCu, 0x088E3DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 563u, 0x088E3DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBDCCu) goto L_088EBDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBDCC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8894,8 +11180,21 @@ L_088EBDD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); aot_gpr_31 = (0x088EBDE0u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 838u, 0x088EBDE0u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBDE0u) goto L_088EBDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBDE0: aot_gpr_4 = (16384u << 16u); { const bool branch_taken = aot_gpr_2 == 0u; @@ -9264,8 +11563,8 @@ L_088EBFB8: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[30]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-16032))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088EBFD0: @@ -9275,8 +11574,21 @@ L_088EBFD0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EBFE8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0057->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0057_entry, 890u, 0x088EBFE8u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EBFE8u) goto L_088EBFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EBFE8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(120), static_cast(aot_gpr_4)); diff --git a/profiles/vcs/generated/generated_unit_0058.cpp b/profiles/vcs/generated/generated_unit_0058.cpp index c666834..ba72cba 100644 --- a/profiles/vcs/generated/generated_unit_0058.cpp +++ b/profiles/vcs/generated/generated_unit_0058.cpp @@ -982,6 +982,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088EC000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1028,8 +1052,21 @@ L_088EC024: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC03Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 5u, 0x088EC03Cu, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC03Cu) goto L_088EC03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC03C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(120), static_cast(aot_gpr_4)); @@ -1056,8 +1093,21 @@ L_088EC058: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC070u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 9u, 0x088EC070u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC070u) goto L_088EC070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC070: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(120), static_cast(aot_gpr_4)); @@ -1084,8 +1134,21 @@ L_088EC08C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC0A4u); aot_gpr_5 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 13u, 0x088EC0A4u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC0A4u) goto L_088EC0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC0A4: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(120), static_cast(aot_gpr_4)); @@ -1112,8 +1175,21 @@ L_088EC0C0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC0D8u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 17u, 0x088EC0D8u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC0D8u) goto L_088EC0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC0D8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(120), static_cast(aot_gpr_4)); @@ -1199,8 +1275,21 @@ L_088EC148: L_088EC150: aot_gpr_31 = (0x088EC158u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 29u, 0x088EC158u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC158u) goto L_088EC158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC158: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (16256u << 16u); @@ -1241,8 +1330,21 @@ L_088EC19C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC1B0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 34u, 0x088EC1B0u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC1B0u) goto L_088EC1B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC1B0: aot_gpr_4 = (ctx.gpr[16] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1257,8 +1359,21 @@ L_088EC1BC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC1D0u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 36u, 0x088EC1D0u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC1D0u) goto L_088EC1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC1D0: aot_gpr_4 = (ctx.gpr[16] & 4u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1273,8 +1388,21 @@ L_088EC1DC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC1F0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 38u, 0x088EC1F0u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC1F0u) goto L_088EC1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC1F0: aot_gpr_4 = (ctx.gpr[16] & 8u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1289,8 +1417,21 @@ L_088EC1FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC210u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 40u, 0x088EC210u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC210u) goto L_088EC210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC210: aot_gpr_4 = (ctx.gpr[16] & 16u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1305,8 +1446,21 @@ L_088EC21C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC230u); aot_gpr_5 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 42u, 0x088EC230u, 0x088E3C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 547u, 0x088E3C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC230u) goto L_088EC230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC230: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(456))); aot_gpr_5 = (64u << 16u); @@ -1428,8 +1582,21 @@ L_088EC2CC: L_088EC2D4: aot_gpr_31 = (0x088EC2DCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 59u, 0x088EC2DCu, 0x08895454u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 266u, 0x08895454u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC2DCu) goto L_088EC2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC2DC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2209,8 +2376,21 @@ L_088EC778: L_088EC788: aot_gpr_31 = (0x088EC790u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 155u, 0x088EC790u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC790u) goto L_088EC790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC790: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2279,8 +2459,21 @@ L_088EC798: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088EC810u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 157u, 0x088EC810u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC810u) goto L_088EC810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC810: aot_gpr_4 = (0u | 8u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -2292,8 +2485,21 @@ L_088EC810: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088EC838u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 158u, 0x088EC838u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC838u) goto L_088EC838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC838: aot_gpr_31 = (0x088EC840u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2318,8 +2524,21 @@ L_088EC848: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088EC870u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 161u, 0x088EC870u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC870u) goto L_088EC870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC870: aot_gpr_4 = (0u | 8u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -2331,8 +2550,21 @@ L_088EC870: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088EC898u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 162u, 0x088EC898u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC898u) goto L_088EC898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC898: aot_gpr_31 = (0x088EC8A0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC8A0u) goto L_088EC8A0; @@ -2359,15 +2591,41 @@ L_088EC8B0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x088EC8E4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 165u, 0x088EC8E4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC8E4u) goto L_088EC8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC8E4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088EC8F4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 166u, 0x088EC8F4u, 0x088E4910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 113u, 0x088E4910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC8F4u) goto L_088EC8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC8F4: { const bool branch_taken = ctx.gpr[23] != ctx.gpr[18]; if (branch_taken) { @@ -2380,8 +2638,21 @@ L_088EC8FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EC90Cu); aot_gpr_6 = (0u | 130u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 168u, 0x088EC90Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC90Cu) goto L_088EC90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC90C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2441,8 +2712,21 @@ L_088EC974: L_088EC97C: aot_gpr_31 = (0x088EC984u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 176u, 0x088EC984u, 0x08A17A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 617u, 0x08A17A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC984u) goto L_088EC984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC984: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2493,8 +2777,21 @@ L_088EC9D0: L_088EC9D8: aot_gpr_31 = (0x088EC9E0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 183u, 0x088EC9E0u, 0x08A17A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 617u, 0x08A17A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC9E0u) goto L_088EC9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC9E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2505,8 +2802,21 @@ L_088EC9E0: L_088EC9E8: aot_gpr_31 = (0x088EC9F0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 185u, 0x088EC9F0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EC9F0u) goto L_088EC9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EC9F0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2534,8 +2844,21 @@ L_088ECA0C: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088ECA24u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 189u, 0x088ECA24u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECA24u) goto L_088ECA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECA24: aot_gpr_31 = (0x088ECA2Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECA2Cu) goto L_088ECA2C; @@ -2556,8 +2879,21 @@ L_088ECA34: } L_088ECA3C: aot_gpr_31 = (0x088ECA44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 193u, 0x088ECA44u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECA44u) goto L_088ECA44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECA44: { const bool branch_taken = ctx.gpr[21] != aot_gpr_2; if (branch_taken) { @@ -2570,8 +2906,21 @@ L_088ECA4C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088ECA5Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 195u, 0x088ECA5Cu, 0x08A360ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 510u, 0x08A360ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECA5Cu) goto L_088ECA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECA5C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); @@ -2597,8 +2946,21 @@ L_088ECAA8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088ECAB4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 197u, 0x088ECAB4u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECAB4u) goto L_088ECAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECAB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2610,8 +2972,21 @@ L_088ECABC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088ECAC8u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 199u, 0x088ECAC8u, 0x08A362ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 543u, 0x08A362ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECAC8u) goto L_088ECAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECAC8: { const bool branch_taken = ctx.gpr[23] != ctx.gpr[30]; if (branch_taken) { @@ -2692,8 +3067,21 @@ L_088ECB50: aot_gpr_6 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x088ECB60u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 210u, 0x088ECB60u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECB60u) goto L_088ECB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECB60: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(112))); @@ -2716,8 +3104,21 @@ L_088ECB88: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088ECB98u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 213u, 0x088ECB98u, 0x08ADC994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 183u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 183u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 183u, 0x08ADC994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECB98u) goto L_088ECB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECB98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2737,8 +3138,21 @@ L_088ECBAC: aot_gpr_6 = (aot_gpr_29 + static_cast(113)); aot_gpr_31 = (0x088ECBBCu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 216u, 0x088ECBBCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECBBCu) goto L_088ECBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECBBC: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(113))); @@ -2768,8 +3182,21 @@ L_088ECBE8: aot_gpr_6 = (aot_gpr_29 + static_cast(114)); aot_gpr_31 = (0x088ECBF8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 220u, 0x088ECBF8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECBF8u) goto L_088ECBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECBF8: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(114))); @@ -2780,8 +3207,21 @@ L_088ECC04: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(208)))))); aot_gpr_31 = (0x088ECC14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 222u, 0x088ECC14u, 0x08ADC994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 183u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 183u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 183u, 0x08ADC994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECC14u) goto L_088ECC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECC14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2794,8 +3234,21 @@ L_088ECC1C: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088ECC2Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 224u, 0x088ECC2Cu, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECC2Cu) goto L_088ECC2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECC2C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[16] | 0u); @@ -2839,8 +3292,21 @@ L_088ECC68: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088ECC80u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 230u, 0x088ECC80u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECC80u) goto L_088ECC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECC80: aot_gpr_31 = (0x088ECC88u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECC88u) goto L_088ECC88; @@ -2882,8 +3348,21 @@ L_088ECCB8: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088ECCC8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 237u, 0x088ECCC8u, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECCC8u) goto L_088ECCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECCC8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[16] | 0u); @@ -2966,8 +3445,21 @@ L_088ECD4C: ctx.gpr[7] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088ECD68u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 246u, 0x088ECD68u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECD68u) goto L_088ECD68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECD68: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (0u | 1u); @@ -3018,8 +3510,21 @@ L_088ECDAC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); aot_gpr_31 = (0x088ECDCCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 252u, 0x088ECDCCu, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECDCCu) goto L_088ECDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECDCC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); aot_gpr_4 = (aot_gpr_4 + static_cast(384)); @@ -3144,8 +3649,21 @@ L_088ECED4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); aot_gpr_31 = (0x088ECEE0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 265u, 0x088ECEE0u, 0x08B012BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 339u, 0x08B012BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECEE0u) goto L_088ECEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECEE0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3158,8 +3676,21 @@ L_088ECEE8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088ECEF8u); aot_gpr_5 = (0u | 38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 267u, 0x088ECEF8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECEF8u) goto L_088ECEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECEF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3188,8 +3719,21 @@ L_088ECF10: L_088ECF20: aot_gpr_31 = (0x088ECF28u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 271u, 0x088ECF28u, 0x08910F00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 264u, 0x08910F00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECF28u) goto L_088ECF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECF28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -3205,8 +3749,21 @@ L_088ECF40: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088ECF58u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 273u, 0x088ECF58u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECF58u) goto L_088ECF58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECF58: aot_gpr_31 = (0x088ECF60u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECF60u) goto L_088ECF60; @@ -3290,8 +3847,21 @@ L_088ECFF0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088ECFFCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 285u, 0x088ECFFCu, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ECFFCu) goto L_088ECFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ECFFC: aot_gpr_4 = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (aot_gpr_4 << 16u); @@ -3330,8 +3900,21 @@ L_088ED034: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(900))); aot_gpr_31 = (0x088ED040u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 290u, 0x088ED040u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED040u) goto L_088ED040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED040: aot_gpr_31 = (0x088ED048u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED048u) goto L_088ED048; @@ -3352,8 +3935,21 @@ L_088ED050: } L_088ED058: aot_gpr_31 = (0x088ED060u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 294u, 0x088ED060u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED060u) goto L_088ED060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED060: { const bool branch_taken = ctx.gpr[21] != aot_gpr_2; if (branch_taken) { @@ -3366,8 +3962,21 @@ L_088ED068: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088ED078u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 296u, 0x088ED078u, 0x08A360ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 510u, 0x08A360ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED078u) goto L_088ED078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED078: aot_gpr_31 = (0x088ED080u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED080u) goto L_088ED080; @@ -3376,8 +3985,21 @@ L_088ED080: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088ED08Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 298u, 0x088ED08Cu, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED08Cu) goto L_088ED08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED08C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3389,8 +4011,21 @@ L_088ED094: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088ED0A0u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 300u, 0x088ED0A0u, 0x08A362ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 543u, 0x08A362ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED0A0u) goto L_088ED0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED0A0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3416,8 +4051,21 @@ L_088ED0BC: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088ED0CCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 304u, 0x088ED0CCu, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED0CCu) goto L_088ED0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED0CC: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -3461,8 +4109,8 @@ L_088ED0E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ED12C: @@ -3504,8 +4152,21 @@ L_088ED188: L_088ED198: aot_gpr_31 = (0x088ED1A0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 313u, 0x088ED1A0u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED1A0u) goto L_088ED1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED1A0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3547,8 +4208,21 @@ L_088ED1E4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088ED1F4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 318u, 0x088ED1F4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED1F4u) goto L_088ED1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED1F4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -3601,16 +4275,42 @@ L_088ED23C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088ED258u); ctx.gpr[7] = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 325u, 0x088ED258u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED258u) goto L_088ED258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED258: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); aot_gpr_31 = (0x088ED26Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 326u, 0x088ED26Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED26Cu) goto L_088ED26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED26C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-2)); @@ -3708,8 +4408,21 @@ L_088ED310: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088ED328u); ctx.gpr[7] = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 338u, 0x088ED328u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED328u) goto L_088ED328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED328: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -3725,8 +4438,21 @@ L_088ED330: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088ED348u); ctx.gpr[7] = (0u | 215u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 340u, 0x088ED348u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED348u) goto L_088ED348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED348: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_088ED34C; @@ -3785,8 +4511,21 @@ L_088ED3A4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088ED3B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 348u, 0x088ED3B0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED3B0u) goto L_088ED3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED3B0: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -3840,16 +4579,42 @@ L_088ED3F8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088ED414u); ctx.gpr[7] = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 355u, 0x088ED414u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED414u) goto L_088ED414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED414: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); aot_gpr_31 = (0x088ED428u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 356u, 0x088ED428u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED428u) goto L_088ED428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED428: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-2)); @@ -3939,8 +4704,21 @@ L_088ED4C8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088ED4D8u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 366u, 0x088ED4D8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED4D8u) goto L_088ED4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED4D8: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (aot_gpr_2 | 0u); @@ -3954,8 +4732,21 @@ L_088ED4E0: aot_gpr_5 = (ctx.gpr[7] | 0u); aot_gpr_31 = (0x088ED4F0u); aot_gpr_6 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 368u, 0x088ED4F0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED4F0u) goto L_088ED4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED4F0: aot_gpr_5 = (aot_gpr_2 | 0u); goto L_088ED4F4; @@ -4043,8 +4834,21 @@ L_088ED58C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088ED5A0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 378u, 0x088ED5A0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED5A0u) goto L_088ED5A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED5A0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4058,8 +4862,21 @@ L_088ED5A8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088ED5B8u); ctx.gpr[7] = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 380u, 0x088ED5B8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED5B8u) goto L_088ED5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED5B8: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088ED5BC; @@ -4123,8 +4940,21 @@ L_088ED608: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(8), aot_gpr_4); aot_gpr_31 = (0x088ED628u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 389u, 0x088ED628u, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED628u) goto L_088ED628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED628: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4180,8 +5010,21 @@ L_088ED680: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); aot_gpr_31 = (0x088ED68Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 396u, 0x088ED68Cu, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED68Cu) goto L_088ED68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED68C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -4197,8 +5040,21 @@ L_088ED6AC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); aot_gpr_31 = (0x088ED6B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 398u, 0x088ED6B8u, 0x08907E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 897u, 0x08907E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED6B8u) goto L_088ED6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED6B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -4218,8 +5074,21 @@ L_088ED6C8: L_088ED6D0: aot_gpr_31 = (0x088ED6D8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 401u, 0x088ED6D8u, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED6D8u) goto L_088ED6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED6D8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4232,8 +5101,8 @@ L_088ED6D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088ED6F8: @@ -4369,8 +5238,21 @@ L_088ED7C0: L_088ED7D8: aot_gpr_31 = (0x088ED7E0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 409u, 0x088ED7E0u, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED7E0u) goto L_088ED7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED7E0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4381,8 +5263,21 @@ L_088ED7E0: L_088ED7E8: aot_gpr_31 = (0x088ED7F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 411u, 0x088ED7F0u, 0x08911220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 321u, 0x08911220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED7F0u) goto L_088ED7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED7F0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4461,8 +5356,21 @@ L_088ED820: } aot_gpr_31 = (0x088ED868u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 414u, 0x088ED868u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED868u) goto L_088ED868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED868: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -4548,8 +5456,21 @@ L_088ED884: } aot_gpr_31 = (0x088ED8ECu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 419u, 0x088ED8ECu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED8ECu) goto L_088ED8EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED8EC: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -4580,8 +5501,21 @@ L_088ED900: L_088ED910: aot_gpr_31 = (0x088ED918u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 424u, 0x088ED918u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED918u) goto L_088ED918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED918: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4597,21 +5531,60 @@ L_088ED920: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088ED93Cu); aot_gpr_6 = (0u | 49u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 426u, 0x088ED93Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED93Cu) goto L_088ED93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED93C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 3000u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088ED950u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 427u, 0x088ED950u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED950u) goto L_088ED950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED950: aot_gpr_31 = (0x088ED958u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 428u, 0x088ED958u, 0x08911284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 327u, 0x08911284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED958u) goto L_088ED958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED958: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4690,8 +5663,21 @@ L_088ED9C0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088ED9D0u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 439u, 0x088ED9D0u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088ED9D0u) goto L_088ED9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088ED9D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -4758,8 +5744,21 @@ L_088EDA30: L_088EDA38: aot_gpr_31 = (0x088EDA40u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 448u, 0x088EDA40u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDA40u) goto L_088EDA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDA40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4770,8 +5769,21 @@ L_088EDA40: L_088EDA48: aot_gpr_31 = (0x088EDA50u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 450u, 0x088EDA50u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDA50u) goto L_088EDA50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDA50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4790,8 +5802,21 @@ L_088EDA58: L_088EDA64: aot_gpr_31 = (0x088EDA6Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 453u, 0x088EDA6Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDA6Cu) goto L_088EDA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDA6C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4895,8 +5920,21 @@ L_088EDB08: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EDB18u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 466u, 0x088EDB18u, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDB18u) goto L_088EDB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDB18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(3000)); @@ -4963,8 +6001,21 @@ L_088EDB88: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EDB98u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 474u, 0x088EDB98u, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDB98u) goto L_088EDB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDB98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(3000)); @@ -5002,8 +6053,21 @@ L_088EDBC8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EDBE8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 478u, 0x088EDBE8u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDBE8u) goto L_088EDBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDBE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5218,8 +6282,21 @@ L_088EDD08: } aot_gpr_31 = (0x088EDD50u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 500u, 0x088EDD50u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDD50u) goto L_088EDD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDD50: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -5305,8 +6382,21 @@ L_088EDD6C: } aot_gpr_31 = (0x088EDDD4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 505u, 0x088EDDD4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDDD4u) goto L_088EDDD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDDD4: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -5337,8 +6427,21 @@ L_088EDDE8: L_088EDDF8: aot_gpr_31 = (0x088EDE00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 510u, 0x088EDE00u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDE00u) goto L_088EDE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDE00: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5354,16 +6457,42 @@ L_088EDE08: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088EDE24u); aot_gpr_6 = (0u | 49u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 512u, 0x088EDE24u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDE24u) goto L_088EDE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDE24: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 3000u); aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EDE38u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 513u, 0x088EDE38u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDE38u) goto L_088EDE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDE38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5449,8 +6578,21 @@ L_088EDE70: } aot_gpr_31 = (0x088EDEB8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 517u, 0x088EDEB8u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDEB8u) goto L_088EDEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDEB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2244))); aot_gpr_5 = (0u | 4u); @@ -5554,8 +6696,21 @@ L_088EDEF4: } aot_gpr_31 = (0x088EDF5Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 524u, 0x088EDF5Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDF5Cu) goto L_088EDF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDF5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2244))); aot_gpr_5 = (0u | 4u); @@ -5624,8 +6779,21 @@ L_088EDFB8: L_088EDFBC: aot_gpr_31 = (0x088EDFC4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 534u, 0x088EDFC4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDFC4u) goto L_088EDFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDFC4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5651,8 +6819,21 @@ L_088EDFE0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088EDFFCu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 537u, 0x088EDFFCu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EDFFCu) goto L_088EDFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EDFFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 8u); @@ -5676,8 +6857,21 @@ L_088EE024: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x088EE040u); aot_gpr_6 = (0u | 49u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 539u, 0x088EE040u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE040u) goto L_088EE040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE040: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5751,8 +6945,21 @@ L_088EE0AC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EE0BCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 549u, 0x088EE0BCu, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE0BCu) goto L_088EE0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE0BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(3000)); @@ -5773,8 +6980,21 @@ L_088EE0CC: L_088EE0D4: aot_gpr_31 = (0x088EE0DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 552u, 0x088EE0DCu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE0DCu) goto L_088EE0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE0DC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5834,13 +7054,39 @@ L_088EE13C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EE154u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 559u, 0x088EE154u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE154u) goto L_088EE154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE154: aot_gpr_31 = (0x088EE15Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 560u, 0x088EE15Cu, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE15Cu) goto L_088EE15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE15C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); aot_gpr_4 = (16640u << 16u); @@ -5849,8 +7095,21 @@ L_088EE15C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088EE178u); ctx.gpr[7] = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 561u, 0x088EE178u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE178u) goto L_088EE178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE178: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 8u); @@ -6084,14 +7343,40 @@ L_088EE308: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x088EE318u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 581u, 0x088EE318u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE318u) goto L_088EE318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE318: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE324u); aot_gpr_5 = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 582u, 0x088EE324u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE324u) goto L_088EE324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE324: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6103,14 +7388,40 @@ L_088EE32C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE338u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 584u, 0x088EE338u, 0x0892D2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 213u, 0x0892D2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE338u) goto L_088EE338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE338: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE344u); aot_gpr_5 = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 585u, 0x088EE344u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE344u) goto L_088EE344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE344: aot_gpr_31 = (0x088EE34Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE34Cu) goto L_088EE34C; @@ -6229,8 +7540,21 @@ L_088EE418: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE428u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 600u, 0x088EE428u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE428u) goto L_088EE428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE428: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6278,8 +7602,21 @@ L_088EE428: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE494u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 601u, 0x088EE494u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE494u) goto L_088EE494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE494: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6362,8 +7699,21 @@ L_088EE54C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EE56Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 604u, 0x088EE56Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE56Cu) goto L_088EE56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE56C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -6384,8 +7734,21 @@ L_088EE580: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EE5A0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 606u, 0x088EE5A0u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE5A0u) goto L_088EE5A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE5A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -6412,8 +7775,21 @@ L_088EE5C8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE5D4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 610u, 0x088EE5D4u, 0x0892D2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 213u, 0x0892D2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE5D4u) goto L_088EE5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE5D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6477,8 +7853,21 @@ L_088EE628: aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_31 = (0x088EE644u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 619u, 0x088EE644u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE644u) goto L_088EE644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE644: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6556,8 +7945,21 @@ L_088EE6CC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE6DCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 628u, 0x088EE6DCu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE6DCu) goto L_088EE6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE6DC: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6605,8 +8007,21 @@ L_088EE6DC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE748u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 629u, 0x088EE748u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE748u) goto L_088EE748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE748: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6696,8 +8111,21 @@ L_088EE7F4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EE814u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 634u, 0x088EE814u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE814u) goto L_088EE814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE814: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -6725,8 +8153,21 @@ L_088EE838: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EE844u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 638u, 0x088EE844u, 0x08947420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 649u, 0x08947420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE844u) goto L_088EE844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE844: aot_gpr_4 = (0u | 500u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); @@ -6736,8 +8177,21 @@ L_088EE844: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EE864u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 639u, 0x088EE864u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE864u) goto L_088EE864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE864: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -6765,8 +8219,21 @@ L_088EE880: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EE8A0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 642u, 0x088EE8A0u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE8A0u) goto L_088EE8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE8A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -6784,8 +8251,21 @@ L_088EE8B8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE8C4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 645u, 0x088EE8C4u, 0x0892D2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 213u, 0x0892D2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE8C4u) goto L_088EE8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE8C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6871,8 +8351,21 @@ L_088EE950: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EE960u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 656u, 0x088EE960u, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE960u) goto L_088EE960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE960: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6884,8 +8377,21 @@ L_088EE968: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE974u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 658u, 0x088EE974u, 0x0892D2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 213u, 0x0892D2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE974u) goto L_088EE974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE974: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -6897,8 +8403,21 @@ L_088EE97C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE988u); aot_gpr_5 = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 660u, 0x088EE988u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE988u) goto L_088EE988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE988: aot_gpr_31 = (0x088EE990u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6918,14 +8437,40 @@ L_088EE998: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EE9B0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 663u, 0x088EE9B0u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE9B0u) goto L_088EE9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE9B0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EE9BCu); aot_gpr_5 = (0u | 800u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 664u, 0x088EE9BCu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EE9BCu) goto L_088EE9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EE9BC: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(720), aot_run_words); @@ -6940,8 +8485,8 @@ L_088EE9BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(752)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088EE9E4: @@ -7159,8 +8704,21 @@ L_088EEB6C: aot_gpr_4 = (0u | 42u); aot_gpr_31 = (0x088EEB80u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1116), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 689u, 0x088EEB80u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EEB80u) goto L_088EEB80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EEB80: ctx.gpr[21] = (0u | 1u); ctx.gpr[16] = (0u + static_cast(-939)); @@ -7229,8 +8787,21 @@ L_088EEC28: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EEC3Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 693u, 0x088EEC3Cu, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EEC3Cu) goto L_088EEC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EEC3C: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1120))); goto L_088EEC40; @@ -7248,8 +8819,21 @@ L_088EEC40: aot_gpr_5 = (aot_gpr_29 + static_cast(40)); aot_gpr_31 = (0x088EEC74u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 695u, 0x088EEC74u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EEC74u) goto L_088EEC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EEC74: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(86)))))); @@ -7336,8 +8920,21 @@ L_088EECC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088EED08u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 697u, 0x088EED08u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EED08u) goto L_088EED08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EED08: { const bool branch_taken = ctx.gpr[18] == ctx.gpr[21]; aot_gpr_4 = (0u | 3u); @@ -7371,8 +8968,21 @@ L_088EED28: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088EED40u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 702u, 0x088EED40u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EED40u) goto L_088EED40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EED40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7548,8 +9158,21 @@ L_088EEE20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088EEE70u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 711u, 0x088EEE70u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EEE70u) goto L_088EEE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EEE70: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[18] == aot_gpr_4; @@ -7584,8 +9207,21 @@ L_088EEE94: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088EEEACu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 716u, 0x088EEEACu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EEEACu) goto L_088EEEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EEEAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7955,8 +9591,21 @@ L_088EF11C: aot_gpr_4 = (aot_gpr_2 & 65535u); aot_gpr_31 = (0x088EF128u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 729u, 0x088EF128u, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF128u) goto L_088EF128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF128: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23132))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23136))); @@ -8107,8 +9756,21 @@ L_088EF224: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EF234u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 740u, 0x088EF234u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF234u) goto L_088EF234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF234: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (17076u << 16u); @@ -8126,8 +9788,21 @@ L_088EF254: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088EF268u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 742u, 0x088EF268u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF268u) goto L_088EF268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF268: ctx.gpr[18] = (ctx.gpr[18] + static_cast(2)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 4 ? 1u : 0u); @@ -8163,8 +9838,21 @@ L_088EF298: L_088EF2A4: aot_gpr_31 = (0x088EF2ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 747u, 0x088EF2ACu, 0x08831B44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 385u, 0x08831B44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF2ACu) goto L_088EF2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF2AC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -8274,8 +9962,21 @@ L_088EF2D8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088EF338u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 751u, 0x088EF338u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF338u) goto L_088EF338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF338: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8368,8 +10069,21 @@ L_088EF340: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088EF3A0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 753u, 0x088EF3A0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF3A0u) goto L_088EF3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF3A0: aot_gpr_4 = (16672u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8404,8 +10118,21 @@ L_088EF3A0: } aot_gpr_31 = (0x088EF3E0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 754u, 0x088EF3E0u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF3E0u) goto L_088EF3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF3E0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1108))); goto L_088EF3E4; @@ -8508,8 +10235,21 @@ L_088EF404: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(472), std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x088EF45Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 757u, 0x088EF45Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF45Cu) goto L_088EF45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF45C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[18] == aot_gpr_4; @@ -8544,8 +10284,21 @@ L_088EF480: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x088EF498u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 762u, 0x088EF498u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF498u) goto L_088EF498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF498: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -8584,8 +10337,21 @@ L_088EF4D4: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EF4ECu); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 766u, 0x088EF4ECu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF4ECu) goto L_088EF4EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF4EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8600,8 +10366,21 @@ L_088EF4F4: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EF50Cu); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 768u, 0x088EF50Cu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF50Cu) goto L_088EF50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF50C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1104))); aot_gpr_4 = (static_cast(aot_gpr_4) < 3 ? 1u : 0u); @@ -8628,8 +10407,21 @@ L_088EF52C: ctx.gpr[8] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EF54Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 771u, 0x088EF54Cu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF54Cu) goto L_088EF54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF54C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8664,8 +10456,21 @@ L_088EF570: ctx.gpr[8] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EF58Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 775u, 0x088EF58Cu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF58Cu) goto L_088EF58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF58C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8682,8 +10487,21 @@ L_088EF594: ctx.gpr[8] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EF5B4u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 777u, 0x088EF5B4u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF5B4u) goto L_088EF5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF5B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8700,8 +10518,21 @@ L_088EF5BC: ctx.gpr[8] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EF5DCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 779u, 0x088EF5DCu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF5DCu) goto L_088EF5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF5DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2228))); aot_gpr_5 = (0u | 57u); @@ -8827,14 +10658,40 @@ L_088EF68C: } aot_gpr_31 = (0x088EF6C4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 790u, 0x088EF6C4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF6C4u) goto L_088EF6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF6C4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EF6D0u); aot_gpr_5 = (0u | 138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 791u, 0x088EF6D0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF6D0u) goto L_088EF6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF6D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8913,8 +10770,21 @@ L_088EF74C: aot_gpr_5 = (aot_gpr_29 + static_cast(528)); aot_gpr_31 = (0x088EF780u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 800u, 0x088EF780u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF780u) goto L_088EF780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF780: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EF78Cu); @@ -8958,8 +10828,21 @@ L_088EF7C8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EF7ECu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 804u, 0x088EF7ECu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF7ECu) goto L_088EF7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF7EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8979,16 +10862,42 @@ L_088EF7F8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088EF818u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 807u, 0x088EF818u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF818u) goto L_088EF818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF818: aot_gpr_6 = (ctx.gpr[16] + static_cast(28)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x088EF82Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 808u, 0x088EF82Cu, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF82Cu) goto L_088EF82C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF82C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2228))); aot_gpr_5 = (0u | 45u); @@ -9138,8 +11047,21 @@ L_088EF908: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EF918u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 823u, 0x088EF918u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EF918u) goto L_088EF918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EF918: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9342,8 +11264,21 @@ L_088EFA58: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088EFA74u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 830u, 0x088EFA74u, 0x088E2880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 243u, 0x088E2880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFA74u) goto L_088EFA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFA74: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(496), aot_run_words); @@ -9353,8 +11288,21 @@ L_088EFA74: } aot_gpr_31 = (0x088EFA88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 831u, 0x088EFA88u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFA88u) goto L_088EFA88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFA88: ctx.gpr[22] = (aot_gpr_29 + static_cast(496)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(208))); @@ -9374,8 +11322,21 @@ L_088EFAAC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088EFAC4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 833u, 0x088EFAC4u, 0x088E2880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 243u, 0x088E2880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFAC4u) goto L_088EFAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFAC4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(496), aot_run_words); @@ -9385,14 +11346,40 @@ L_088EFAC4: } aot_gpr_31 = (0x088EFAD8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 834u, 0x088EFAD8u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFAD8u) goto L_088EFAD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFAD8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EFAE4u); aot_gpr_5 = (0u | 138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 835u, 0x088EFAE4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFAE4u) goto L_088EFAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFAE4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9404,8 +11391,21 @@ L_088EFAE4: L_088EFAF0: aot_gpr_31 = (0x088EFAF8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 837u, 0x088EFAF8u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFAF8u) goto L_088EFAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFAF8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9437,8 +11437,21 @@ L_088EFB1C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(900))); aot_gpr_31 = (0x088EFB28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 842u, 0x088EFB28u, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFB28u) goto L_088EFB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFB28: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1128), aot_run_words); @@ -9461,8 +11474,8 @@ L_088EFB28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1200)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088EFB70: @@ -9480,30 +11493,82 @@ L_088EFB70: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFBE0u); aot_gpr_6 = (0u | 189u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 844u, 0x088EFBE0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFBE0u) goto L_088EFBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFBE0: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFBF4u); aot_gpr_6 = (0u | 190u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 845u, 0x088EFBF4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFBF4u) goto L_088EFBF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFBF4: ctx.gpr[22] = (aot_gpr_2 | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_gpr_31 = (0x088EFC04u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 846u, 0x088EFC04u, 0x08A59578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 307u, 0x08A59578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFC04u) goto L_088EFC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFC04: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088EFC14u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 847u, 0x088EFC14u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFC14u) goto L_088EFC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFC14: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EFC20u); @@ -9524,16 +11589,42 @@ L_088EFC2C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFC3Cu); aot_gpr_6 = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 850u, 0x088EFC3Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFC3Cu) goto L_088EFC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFC3C: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFC50u); aot_gpr_6 = (0u | 191u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 851u, 0x088EFC50u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFC50u) goto L_088EFC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFC50: ctx.gpr[20] = (aot_gpr_2 | 0u); goto L_088EFC54; @@ -9541,23 +11632,62 @@ L_088EFC54: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_gpr_31 = (0x088EFC60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 853u, 0x088EFC60u, 0x08A59554u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 303u, 0x08A59554u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFC60u) goto L_088EFC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFC60: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088EFC70u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 854u, 0x088EFC70u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFC70u) goto L_088EFC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFC70: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFC84u); aot_gpr_6 = (0u | 201u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 855u, 0x088EFC84u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFC84u) goto L_088EFC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFC84: ctx.gpr[30] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[30] != 0u; @@ -9571,8 +11701,21 @@ L_088EFC90: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFCA0u); aot_gpr_6 = (0u | 202u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 857u, 0x088EFCA0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFCA0u) goto L_088EFCA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFCA0: ctx.gpr[30] = (aot_gpr_2 | 0u); goto L_088EFCA4; @@ -9588,8 +11731,21 @@ L_088EFCAC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFCBCu); aot_gpr_6 = (0u | 203u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 860u, 0x088EFCBCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFCBCu) goto L_088EFCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFCBC: ctx.gpr[30] = (aot_gpr_2 | 0u); goto L_088EFCC0; @@ -9647,8 +11803,21 @@ L_088EFD0C: ctx.gpr[7] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFD24u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 863u, 0x088EFD24u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFD24u) goto L_088EFD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFD24: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EFD30u); @@ -9675,8 +11844,21 @@ L_088EFD44: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EFD5Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 867u, 0x088EFD5Cu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFD5Cu) goto L_088EFD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFD5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9748,8 +11930,21 @@ L_088EFDEC: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EFDF8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 875u, 0x088EFDF8u, 0x08A59578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 307u, 0x08A59578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFDF8u) goto L_088EFDF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFDF8: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9758,8 +11953,21 @@ L_088EFDF8: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088EFE14u); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 876u, 0x088EFE14u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFE14u) goto L_088EFE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFE14: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -9817,8 +12025,21 @@ L_088EFE7C: ctx.gpr[7] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088EFE94u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 882u, 0x088EFE94u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFE94u) goto L_088EFE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFE94: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088EFEA0u); @@ -9845,8 +12066,21 @@ L_088EFEB4: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EFECCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 886u, 0x088EFECCu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFECCu) goto L_088EFECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFECC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9951,8 +12185,21 @@ L_088EFFA0: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088EFFACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 899u, 0x088EFFACu, 0x08A59554u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 303u, 0x08A59554u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFFACu) goto L_088EFFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFFAC: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9961,8 +12208,21 @@ L_088EFFAC: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088EFFC8u); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0058->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0058_entry, 900u, 0x088EFFC8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088EFFC8u) goto L_088EFFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088EFFC8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; diff --git a/profiles/vcs/generated/generated_unit_0059.cpp b/profiles/vcs/generated/generated_unit_0059.cpp index cd1cf14..cbed11d 100644 --- a/profiles/vcs/generated/generated_unit_0059.cpp +++ b/profiles/vcs/generated/generated_unit_0059.cpp @@ -884,6 +884,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088F0000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1776,8 +1800,21 @@ L_088F0798: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F07ACu); ctx.gpr[7] = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 98u, 0x088F07ACu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F07ACu) goto L_088F07AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F07AC: ctx.gpr[21] = (aot_gpr_2 | 0u); goto L_088F07B0; @@ -1806,8 +1843,21 @@ L_088F07D4: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F07E8u); ctx.gpr[7] = (0u | 191u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 102u, 0x088F07E8u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F07E8u) goto L_088F07E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F07E8: ctx.gpr[20] = (aot_gpr_2 | 0u); goto L_088F07EC; @@ -1858,15 +1908,41 @@ L_088F0848: { const float fs = aot_fpr_22; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088F0858u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 108u, 0x088F0858u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0858u) goto L_088F0858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0858: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(16), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088F0868u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 109u, 0x088F0868u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0868u) goto L_088F0868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0868: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1894,15 +1970,41 @@ L_088F0894: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088F08A8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 112u, 0x088F08A8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F08A8u) goto L_088F08A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F08A8: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(16), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F08B8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 113u, 0x088F08B8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F08B8u) goto L_088F08B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F08B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1950,8 +2052,21 @@ L_088F0910: { const float fs = aot_fpr_22; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088F0920u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 118u, 0x088F0920u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0920u) goto L_088F0920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0920: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -1983,8 +2098,21 @@ L_088F0958: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088F096Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 121u, 0x088F096Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F096Cu) goto L_088F096C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F096C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -2016,8 +2144,21 @@ L_088F09A0: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F09B4u); ctx.gpr[7] = (0u | 189u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 125u, 0x088F09B4u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F09B4u) goto L_088F09B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F09B4: ctx.gpr[23] = (aot_gpr_2 | 0u); goto L_088F09B8; @@ -2046,8 +2187,21 @@ L_088F09DC: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F09F0u); ctx.gpr[7] = (0u | 190u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 129u, 0x088F09F0u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F09F0u) goto L_088F09F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F09F0: ctx.gpr[22] = (aot_gpr_2 | 0u); goto L_088F09F4; @@ -2098,15 +2252,41 @@ L_088F0A50: { const float fs = aot_fpr_22; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088F0A60u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 135u, 0x088F0A60u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0A60u) goto L_088F0A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0A60: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(16), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088F0A70u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 136u, 0x088F0A70u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0A70u) goto L_088F0A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0A70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2134,15 +2314,41 @@ L_088F0A9C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088F0AB0u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 139u, 0x088F0AB0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0AB0u) goto L_088F0AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0AB0: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(16), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088F0AC0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 140u, 0x088F0AC0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0AC0u) goto L_088F0AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0AC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2190,8 +2396,21 @@ L_088F0B18: { const float fs = aot_fpr_22; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088F0B28u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 145u, 0x088F0B28u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0B28u) goto L_088F0B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0B28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -2223,8 +2442,21 @@ L_088F0B60: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088F0B74u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 148u, 0x088F0B74u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0B74u) goto L_088F0B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0B74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -2266,8 +2498,21 @@ L_088F0BE4: aot_gpr_5 = (ctx.gpr[29] + static_cast(44)); aot_gpr_31 = (0x088F0C00u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 152u, 0x088F0C00u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0C00u) goto L_088F0C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0C00: aot_gpr_31 = (0x088F0C08u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], ctx.gpr[29], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0C08u) goto L_088F0C08; @@ -2280,8 +2525,21 @@ L_088F0C08: aot_gpr_5 = (ctx.gpr[29] + static_cast(56)); aot_gpr_31 = (0x088F0C24u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 154u, 0x088F0C24u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0C24u) goto L_088F0C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0C24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(464))); aot_gpr_4 = (aot_gpr_4 | 8192u); @@ -2309,8 +2567,8 @@ L_088F0C30: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F0C78: @@ -2346,8 +2604,21 @@ L_088F0CD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0CE8u); aot_gpr_6 = (0u | 110u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 159u, 0x088F0CE8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0CE8u) goto L_088F0CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0CE8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2372,24 +2643,63 @@ L_088F0D10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0D20u); aot_gpr_6 = (0u | 111u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 162u, 0x088F0D20u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0D20u) goto L_088F0D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0D20: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0D34u); aot_gpr_6 = (0u | 112u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 163u, 0x088F0D34u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0D34u) goto L_088F0D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0D34: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0D48u); aot_gpr_6 = (0u | 113u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 164u, 0x088F0D48u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0D48u) goto L_088F0D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0D48: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -2421,8 +2731,21 @@ L_088F0D6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0D7Cu); aot_gpr_6 = (0u | 98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 168u, 0x088F0D7Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0D7Cu) goto L_088F0D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0D7C: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2447,16 +2770,42 @@ L_088F0DA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0DB4u); aot_gpr_6 = (0u | 103u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 171u, 0x088F0DB4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0DB4u) goto L_088F0DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0DB4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0DC8u); aot_gpr_6 = (0u | 104u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 172u, 0x088F0DC8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0DC8u) goto L_088F0DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0DC8: ctx.gpr[19] = (aot_gpr_2 | 0u); ctx.gpr[20] = (0u | 0u); @@ -2478,8 +2827,21 @@ L_088F0DE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0DECu); aot_gpr_6 = (0u | 97u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 175u, 0x088F0DECu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0DECu) goto L_088F0DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0DEC: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2504,24 +2866,63 @@ L_088F0E14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0E24u); aot_gpr_6 = (0u | 101u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 178u, 0x088F0E24u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0E24u) goto L_088F0E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0E24: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0E38u); aot_gpr_6 = (0u | 102u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 179u, 0x088F0E38u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0E38u) goto L_088F0E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0E38: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0E4Cu); aot_gpr_6 = (0u | 109u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 180u, 0x088F0E4Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0E4Cu) goto L_088F0E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0E4C: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -2582,8 +2983,21 @@ L_088F0EB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0EC4u); aot_gpr_6 = (0u | 105u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 187u, 0x088F0EC4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0EC4u) goto L_088F0EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0EC4: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2597,8 +3011,21 @@ L_088F0ED0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0EE0u); aot_gpr_6 = (0u | 106u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 189u, 0x088F0EE0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0EE0u) goto L_088F0EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0EE0: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088F0EE4; @@ -2614,8 +3041,21 @@ L_088F0EEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0EFCu); aot_gpr_6 = (0u | 108u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 192u, 0x088F0EFCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0EFCu) goto L_088F0EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0EFC: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088F0F00; @@ -2631,8 +3071,21 @@ L_088F0F08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F0F18u); aot_gpr_6 = (0u | 108u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 195u, 0x088F0F18u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F0F18u) goto L_088F0F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F0F18: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_088F0F1C; @@ -2744,8 +3197,21 @@ L_088F0FF0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F1004u); ctx.gpr[7] = (0u | 113u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 207u, 0x088F1004u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1004u) goto L_088F1004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1004: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2761,8 +3227,21 @@ L_088F1010: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F1020u); ctx.gpr[7] = (0u | 109u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 210u, 0x088F1020u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1020u) goto L_088F1020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1020: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2901,8 +3380,21 @@ L_088F10F8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F110Cu); ctx.gpr[7] = (0u | 111u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 230u, 0x088F110Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F110Cu) goto L_088F110C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F110C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2926,8 +3418,21 @@ L_088F1124: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F1138u); ctx.gpr[7] = (0u | 103u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 233u, 0x088F1138u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1138u) goto L_088F1138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1138: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2940,8 +3445,21 @@ L_088F1140: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F1150u); ctx.gpr[7] = (0u | 101u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 235u, 0x088F1150u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1150u) goto L_088F1150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1150: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3039,8 +3557,21 @@ L_088F11EC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F11FCu); ctx.gpr[7] = (0u | 112u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 249u, 0x088F11FCu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F11FCu) goto L_088F11FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F11FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3062,8 +3593,21 @@ L_088F1214: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F1224u); ctx.gpr[7] = (0u | 104u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 252u, 0x088F1224u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1224u) goto L_088F1224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1224: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3076,8 +3620,21 @@ L_088F122C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F123Cu); ctx.gpr[7] = (0u | 102u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 254u, 0x088F123Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F123Cu) goto L_088F123C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F123C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3115,8 +3672,8 @@ L_088F125C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F1288: @@ -3134,30 +3691,82 @@ L_088F1288: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F12F8u); aot_gpr_6 = (0u | 189u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 260u, 0x088F12F8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F12F8u) goto L_088F12F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F12F8: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F130Cu); aot_gpr_6 = (0u | 190u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 261u, 0x088F130Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F130Cu) goto L_088F130C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F130C: ctx.gpr[19] = (aot_gpr_2 | 0u); ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x088F131Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 262u, 0x088F131Cu, 0x08A59578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 307u, 0x08A59578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F131Cu) goto L_088F131C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F131C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088F132Cu); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 263u, 0x088F132Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F132Cu) goto L_088F132C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F132C: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F1338u); @@ -3176,16 +3785,42 @@ L_088F1340: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F1350u); aot_gpr_6 = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 266u, 0x088F1350u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1350u) goto L_088F1350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1350: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F1364u); aot_gpr_6 = (0u | 191u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 267u, 0x088F1364u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1364u) goto L_088F1364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1364: ctx.gpr[22] = (aot_gpr_2 | 0u); goto L_088F1368; @@ -3193,23 +3828,62 @@ L_088F1368: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x088F1374u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 269u, 0x088F1374u, 0x08A59554u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 303u, 0x08A59554u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1374u) goto L_088F1374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1374: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x088F1384u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 270u, 0x088F1384u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1384u) goto L_088F1384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1384: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F1398u); aot_gpr_6 = (0u | 201u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 271u, 0x088F1398u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1398u) goto L_088F1398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1398: ctx.gpr[30] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[30] != 0u; @@ -3223,8 +3897,21 @@ L_088F13A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F13B4u); aot_gpr_6 = (0u | 202u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 273u, 0x088F13B4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F13B4u) goto L_088F13B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F13B4: ctx.gpr[30] = (aot_gpr_2 | 0u); goto L_088F13B8; @@ -3240,8 +3927,21 @@ L_088F13C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F13D0u); aot_gpr_6 = (0u | 203u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 276u, 0x088F13D0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F13D0u) goto L_088F13D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F13D0: ctx.gpr[30] = (aot_gpr_2 | 0u); goto L_088F13D4; @@ -3299,8 +3999,21 @@ L_088F1420: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F1438u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 279u, 0x088F1438u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1438u) goto L_088F1438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1438: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F1444u); @@ -3327,8 +4040,21 @@ L_088F1458: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F1470u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 283u, 0x088F1470u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1470u) goto L_088F1470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1470: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3400,8 +4126,21 @@ L_088F1500: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F150Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 291u, 0x088F150Cu, 0x08A59578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 307u, 0x08A59578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F150Cu) goto L_088F150C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F150C: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3410,8 +4149,21 @@ L_088F150C: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088F1528u); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 292u, 0x088F1528u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1528u) goto L_088F1528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1528: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -3461,8 +4213,21 @@ L_088F1584: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F159Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 297u, 0x088F159Cu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F159Cu) goto L_088F159C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F159C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F15A8u); @@ -3489,8 +4254,21 @@ L_088F15BC: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F15D4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 301u, 0x088F15D4u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F15D4u) goto L_088F15D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F15D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3604,8 +4382,21 @@ L_088F16B8: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F16C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 315u, 0x088F16C4u, 0x08A59554u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 303u, 0x08A59554u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F16C4u) goto L_088F16C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F16C4: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3614,8 +4405,21 @@ L_088F16C4: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088F16E0u); ctx.gpr[7] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 316u, 0x088F16E0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F16E0u) goto L_088F16E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F16E0: ctx.gpr[23] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -4230,8 +5034,21 @@ L_088F1C08: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F1C1Cu); ctx.gpr[7] = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 388u, 0x088F1C1Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1C1Cu) goto L_088F1C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1C1C: ctx.gpr[21] = (aot_gpr_2 | 0u); goto L_088F1C20; @@ -4260,8 +5077,21 @@ L_088F1C44: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F1C58u); ctx.gpr[7] = (0u | 191u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 392u, 0x088F1C58u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1C58u) goto L_088F1C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1C58: ctx.gpr[22] = (aot_gpr_2 | 0u); goto L_088F1C5C; @@ -4290,15 +5120,41 @@ L_088F1C7C: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088F1C98u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 396u, 0x088F1C98u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1C98u) goto L_088F1C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1C98: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(16), std::bit_cast(aot_fpr_22)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088F1CA8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 397u, 0x088F1CA8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1CA8u) goto L_088F1CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1CA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4315,15 +5171,41 @@ L_088F1CB0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088F1CD0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 399u, 0x088F1CD0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1CD0u) goto L_088F1CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1CD0: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(16), std::bit_cast(aot_fpr_22)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F1CE0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 400u, 0x088F1CE0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1CE0u) goto L_088F1CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1CE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4349,8 +5231,21 @@ L_088F1CFC: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088F1D18u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 403u, 0x088F1D18u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1D18u) goto L_088F1D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1D18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[20]); @@ -4371,8 +5266,21 @@ L_088F1D2C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088F1D4Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 405u, 0x088F1D4Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1D4Cu) goto L_088F1D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1D4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[20]); @@ -4404,8 +5312,21 @@ L_088F1D80: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F1D94u); ctx.gpr[7] = (0u | 189u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 409u, 0x088F1D94u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1D94u) goto L_088F1D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1D94: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_088F1D98; @@ -4434,8 +5355,21 @@ L_088F1DBC: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F1DD0u); ctx.gpr[7] = (0u | 190u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 413u, 0x088F1DD0u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1DD0u) goto L_088F1DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1DD0: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_088F1DD4; @@ -4464,15 +5398,41 @@ L_088F1DF4: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088F1E10u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 417u, 0x088F1E10u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1E10u) goto L_088F1E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1E10: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(16), std::bit_cast(aot_fpr_22)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088F1E20u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 418u, 0x088F1E20u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1E20u) goto L_088F1E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1E20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4489,15 +5449,41 @@ L_088F1E28: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088F1E48u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 420u, 0x088F1E48u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1E48u) goto L_088F1E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1E48: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(16), std::bit_cast(aot_fpr_22)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088F1E58u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 421u, 0x088F1E58u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1E58u) goto L_088F1E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1E58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4523,8 +5509,21 @@ L_088F1E74: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x088F1E90u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 424u, 0x088F1E90u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1E90u) goto L_088F1E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1E90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[20]); @@ -4545,8 +5544,21 @@ L_088F1EA4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x088F1EC4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 426u, 0x088F1EC4u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1EC4u) goto L_088F1EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1EC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[20]); @@ -4588,8 +5600,21 @@ L_088F1F34: aot_gpr_5 = (ctx.gpr[29] + static_cast(40)); aot_gpr_31 = (0x088F1F50u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 430u, 0x088F1F50u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1F50u) goto L_088F1F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1F50: aot_gpr_31 = (0x088F1F58u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], ctx.gpr[29], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1F58u) goto L_088F1F58; @@ -4602,8 +5627,21 @@ L_088F1F58: aot_gpr_5 = (ctx.gpr[29] + static_cast(52)); aot_gpr_31 = (0x088F1F74u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 432u, 0x088F1F74u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F1F74u) goto L_088F1F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F1F74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_4 = (aot_gpr_4 | 8192u); @@ -4631,8 +5669,8 @@ L_088F1F80: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F1FC8: @@ -4700,8 +5738,21 @@ L_088F2050: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F2064u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 441u, 0x088F2064u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2064u) goto L_088F2064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2064: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -4719,8 +5770,21 @@ L_088F207C: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F2090u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 443u, 0x088F2090u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2090u) goto L_088F2090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2090: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4755,8 +5819,21 @@ L_088F20C0: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x088F20D8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 447u, 0x088F20D8u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F20D8u) goto L_088F20D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F20D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] << 3u); @@ -4768,8 +5845,21 @@ L_088F20D8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088F2100u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 448u, 0x088F2100u, 0x0881DD84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 257u, 0x0881DD84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2100u) goto L_088F2100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2100: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); @@ -4777,8 +5867,21 @@ L_088F2100: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088F2118u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 449u, 0x088F2118u, 0x0881DDE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 266u, 0x0881DDE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2118u) goto L_088F2118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2118: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4799,8 +5902,21 @@ L_088F212C: aot_gpr_5 = (ctx.gpr[29] | 0u); aot_gpr_31 = (0x088F213Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 452u, 0x088F213Cu, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F213Cu) goto L_088F213C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F213C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -4841,8 +5957,21 @@ L_088F2184: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x088F219Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 456u, 0x088F219Cu, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F219Cu) goto L_088F219C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F219C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (ctx.gpr[20] << 3u); @@ -4854,8 +5983,21 @@ L_088F219C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088F21C4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 457u, 0x088F21C4u, 0x0881DD84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 257u, 0x0881DD84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F21C4u) goto L_088F21C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F21C4: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); @@ -4863,8 +6005,21 @@ L_088F21C4: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088F21DCu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 458u, 0x088F21DCu, 0x0881DDE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 266u, 0x0881DDE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F21DCu) goto L_088F21DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F21DC: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4886,8 +6041,21 @@ L_088F21F0: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F2204u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 461u, 0x088F2204u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2204u) goto L_088F2204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2204: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2120), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); @@ -5158,8 +6326,21 @@ L_088F22B8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088F22E8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 464u, 0x088F22E8u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F22E8u) goto L_088F22E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F22E8: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(208), aot_run_words); } @@ -5258,8 +6439,8 @@ L_088F2374: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F239C: @@ -5315,8 +6496,8 @@ L_088F239C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F23C4: @@ -5334,8 +6515,21 @@ L_088F23C4: L_088F23E0: aot_gpr_31 = (0x088F23E8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 474u, 0x088F23E8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F23E8u) goto L_088F23E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F23E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5370,8 +6564,21 @@ L_088F2414: L_088F2420: aot_gpr_31 = (0x088F2428u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 479u, 0x088F2428u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2428u) goto L_088F2428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2428: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5400,8 +6607,8 @@ L_088F2454: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2464: @@ -5461,8 +6668,21 @@ L_088F24E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F24F0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 489u, 0x088F24F0u, 0x089082C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 53u, 0x089082C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F24F0u) goto L_088F24F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F24F0: aot_fpr_12 = std::bit_cast(ctx.gpr[18]); ctx.gpr[7] = (16256u << 16u); @@ -5472,8 +6692,21 @@ L_088F24F0: aot_fpr_13 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x088F2510u); aot_gpr_6 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 490u, 0x088F2510u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2510u) goto L_088F2510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2510: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(58)))))); @@ -5500,8 +6733,21 @@ L_088F2528: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F2548u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 493u, 0x088F2548u, 0x089082C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 53u, 0x089082C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2548u) goto L_088F2548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2548: aot_fpr_12 = std::bit_cast(ctx.gpr[18]); ctx.gpr[7] = (16256u << 16u); @@ -5511,8 +6757,21 @@ L_088F2548: aot_fpr_13 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x088F2568u); aot_gpr_6 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 494u, 0x088F2568u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2568u) goto L_088F2568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2568: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(58)))))); goto L_088F256C; @@ -5531,8 +6790,8 @@ L_088F2578: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2590: @@ -5908,8 +7167,8 @@ L_088F27D0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F27E4: @@ -5962,8 +7221,8 @@ L_088F2840: L_088F2864: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(8690), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F286C: @@ -5998,8 +7257,21 @@ L_088F28B4: L_088F28BC: aot_gpr_31 = (0x088F28C4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 527u, 0x088F28C4u, 0x0898DAB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 605u, 0x0898DAB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F28C4u) goto L_088F28C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F28C4: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23116))); @@ -6086,8 +7358,21 @@ L_088F2980: L_088F2988: aot_gpr_31 = (0x088F2990u); ctx.gpr[21] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 539u, 0x088F2990u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2990u) goto L_088F2990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2990: ctx.gpr[7] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6145,8 +7430,21 @@ L_088F29EC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088F2A00u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 547u, 0x088F2A00u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2A00u) goto L_088F2A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2A00: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(104), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(40))); @@ -6200,8 +7498,21 @@ L_088F2A54: L_088F2A5C: aot_gpr_31 = (0x088F2A64u); ctx.gpr[17] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 555u, 0x088F2A64u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2A64u) goto L_088F2A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2A64: ctx.gpr[7] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -6259,8 +7570,21 @@ L_088F2AC0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088F2AD4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 563u, 0x088F2AD4u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2AD4u) goto L_088F2AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2AD4: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(104), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); @@ -6309,8 +7633,8 @@ L_088F2B14: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2B3C: @@ -6347,8 +7671,21 @@ L_088F2B7C: ctx.gpr[9] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088F2B9Cu); ctx.gpr[10] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 570u, 0x088F2B9Cu, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2B9Cu) goto L_088F2B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2B9C: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); @@ -6362,8 +7699,21 @@ L_088F2BAC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F2BB8u); aot_gpr_4 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 572u, 0x088F2BB8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2BB8u) goto L_088F2BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2BB8: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6376,8 +7726,21 @@ L_088F2BB8: L_088F2BC4: aot_gpr_31 = (0x088F2BCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 574u, 0x088F2BCCu, 0x08A0A1DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 314u, 0x08A0A1DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2BCCu) goto L_088F2BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2BCC: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_088F2BD0; @@ -6387,14 +7750,40 @@ L_088F2BD0: aot_gpr_4 = (aot_gpr_4 + static_cast(116)); aot_gpr_31 = (0x088F2BE4u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 576u, 0x088F2BE4u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2BE4u) goto L_088F2BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2BE4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F2BF0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 577u, 0x088F2BF0u, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2BF0u) goto L_088F2BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2BF0: aot_gpr_2 = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6408,8 +7797,8 @@ L_088F2BF0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2C14: @@ -6526,8 +7915,8 @@ L_088F2CCC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2CE4: @@ -6541,8 +7930,8 @@ L_088F2CF4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2D04: @@ -6638,14 +8027,27 @@ L_088F2D78: L_088F2D88: aot_gpr_31 = (0x088F2D90u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 601u, 0x088F2D90u, 0x08B1150Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 334u, 0x08B1150Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2D90u) goto L_088F2D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2D90: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2D9C: @@ -6685,8 +8087,8 @@ L_088F2DCC: goto L_088F2DD4; L_088F2DD4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2DDC: @@ -6719,8 +8121,21 @@ L_088F2E00: L_088F2E1C: aot_gpr_31 = (0x088F2E24u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 612u, 0x088F2E24u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2E24u) goto L_088F2E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2E24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6755,8 +8170,21 @@ L_088F2E50: L_088F2E5C: aot_gpr_31 = (0x088F2E64u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 617u, 0x088F2E64u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F2E64u) goto L_088F2E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F2E64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6791,8 +8219,8 @@ L_088F2EA0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F2EB0: @@ -6940,8 +8368,21 @@ L_088F2F5C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); aot_gpr_31 = (0x088F3030u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 626u, 0x088F3030u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3030u) goto L_088F3030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3030: aot_gpr_4 = (48844u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6962,8 +8403,21 @@ L_088F3030: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088F3080u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 627u, 0x088F3080u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3080u) goto L_088F3080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3080: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 & 2047u); @@ -7022,8 +8476,8 @@ L_088F30A0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F3134: @@ -7167,8 +8621,21 @@ L_088F31E0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); aot_gpr_31 = (0x088F32A4u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 634u, 0x088F32A4u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F32A4u) goto L_088F32A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F32A4: aot_gpr_4 = (48921u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -7189,8 +8656,21 @@ L_088F32A4: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088F32F4u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 635u, 0x088F32F4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F32F4u) goto L_088F32F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F32F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 & 4095u); @@ -7249,8 +8729,8 @@ L_088F3314: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F33A8: @@ -7331,8 +8811,8 @@ L_088F3414: L_088F3418: jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F3420: @@ -7389,8 +8869,8 @@ L_088F3464: } L_088F3474: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F347C: @@ -7422,8 +8902,8 @@ L_088F34C8: goto L_088F34CC; L_088F34CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F34D4: @@ -7461,8 +8941,8 @@ L_088F3510: goto L_088F3524; L_088F3524: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F352C: @@ -7506,8 +8986,8 @@ L_088F3568: } L_088F3570: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F3578: @@ -7602,8 +9082,21 @@ L_088F3640: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(32))); aot_gpr_31 = (0x088F364Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 677u, 0x088F364Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F364Cu) goto L_088F364C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F364C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7653,8 +9146,8 @@ L_088F3690: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F36B8: @@ -7748,8 +9241,21 @@ L_088F3798: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x088F37E4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 688u, 0x088F37E4u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F37E4u) goto L_088F37E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F37E4: aot_fpr_12 = ctx.fpr[0] + aot_fpr_20; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), std::bit_cast(aot_fpr_12)); @@ -7790,8 +9296,21 @@ L_088F380C: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x088F3834u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 691u, 0x088F3834u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3834u) goto L_088F3834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3834: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -7820,8 +9339,8 @@ L_088F3844: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F3880: @@ -7873,8 +9392,8 @@ L_088F38C0: } L_088F38C8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F38D0: @@ -7985,8 +9504,8 @@ L_088F3980: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F39A8: @@ -8059,8 +9578,21 @@ L_088F3A08: } L_088F3A10: aot_gpr_31 = (0x088F3A18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 717u, 0x088F3A18u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3A18u) goto L_088F3A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3A18: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8182,8 +9714,8 @@ L_088F3AB4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F3AC4: @@ -8233,8 +9765,21 @@ L_088F3B30: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088F3B44u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 738u, 0x088F3B44u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3B44u) goto L_088F3B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3B44: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(104), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(40))); @@ -8284,8 +9829,8 @@ L_088F3B88: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F3BA8: @@ -8299,8 +9844,21 @@ L_088F3BA8: L_088F3BC0: aot_gpr_31 = (0x088F3BC8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 746u, 0x088F3BC8u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3BC8u) goto L_088F3BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3BC8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8315,8 +9873,21 @@ L_088F3BD0: L_088F3BD8: aot_gpr_31 = (0x088F3BE0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 749u, 0x088F3BE0u, 0x089476E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 710u, 0x089476E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3BE0u) goto L_088F3BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3BE0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8331,8 +9902,21 @@ L_088F3BE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F3C00u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 751u, 0x088F3C00u, 0x088F7DF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 869u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 869u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 869u, 0x088F7DF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3C00u) goto L_088F3C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3C00: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(24))); aot_gpr_4 = (16153u << 16u); @@ -8360,8 +9944,21 @@ L_088F3C20: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F3C34u); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 753u, 0x088F3C34u, 0x08947990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 751u, 0x08947990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3C34u) goto L_088F3C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3C34: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(32), aot_run_words); @@ -8371,8 +9968,8 @@ L_088F3C34: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F3C48: @@ -8524,8 +10121,21 @@ L_088F3D2C: L_088F3D3C: aot_gpr_31 = (0x088F3D44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 772u, 0x088F3D44u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3D44u) goto L_088F3D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3D44: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8590,8 +10200,8 @@ L_088F3D90: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(36))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F3DA0: @@ -8662,8 +10272,21 @@ L_088F3E50: ctx.gpr[7] = (0u + static_cast(-1)); aot_gpr_31 = (0x088F3E68u); ctx.gpr[8] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 786u, 0x088F3E68u, 0x088F4B00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 187u, 0x088F4B00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3E68u) goto L_088F3E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3E68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8675,8 +10298,21 @@ L_088F3E68: L_088F3E74: aot_gpr_31 = (0x088F3E7Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 788u, 0x088F3E7Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3E7Cu) goto L_088F3E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3E7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8688,8 +10324,21 @@ L_088F3E7C: L_088F3E88: aot_gpr_31 = (0x088F3E90u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 790u, 0x088F3E90u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3E90u) goto L_088F3E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3E90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8780,8 +10429,21 @@ L_088F3EF0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(72), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088F3F2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 799u, 0x088F3F2Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3F2Cu) goto L_088F3F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3F2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -8838,13 +10500,39 @@ L_088F3F2C: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(48), aot_run_words); } aot_gpr_31 = (0x088F3F88u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 800u, 0x088F3F88u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3F88u) goto L_088F3F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3F88: aot_gpr_31 = (0x088F3F90u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 801u, 0x088F3F90u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3F90u) goto L_088F3F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3F90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); { std::uint32_t aot_run_words[3]{}; @@ -8859,8 +10547,21 @@ L_088F3F90: aot_gpr_4 = (ctx.gpr[29] + static_cast(16)); aot_gpr_31 = (0x088F3FB8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0059->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0059_entry, 802u, 0x088F3FB8u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F3FB8u) goto L_088F3FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F3FB8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0060.cpp b/profiles/vcs/generated/generated_unit_0060.cpp index b8287ec..f99e06b 100644 --- a/profiles/vcs/generated/generated_unit_0060.cpp +++ b/profiles/vcs/generated/generated_unit_0060.cpp @@ -952,6 +952,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088F4000u; + if (local_delta_v813 >= 16240u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -971,8 +995,21 @@ L_088F4000: aot_gpr_4 = (ctx.gpr[29] + static_cast(16)); aot_gpr_31 = (0x088F4014u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 2u, 0x088F4014u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4014u) goto L_088F4014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4014: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -988,13 +1025,39 @@ L_088F401C: L_088F4028: aot_gpr_31 = (0x088F4030u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 5u, 0x088F4030u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4030u) goto L_088F4030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4030: aot_gpr_31 = (0x088F4038u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 6u, 0x088F4038u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4038u) goto L_088F4038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4038: { const bool branch_taken = ctx.gpr[30] == 0u; if (branch_taken) { @@ -1014,8 +1077,21 @@ L_088F4040: ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088F406Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 8u, 0x088F406Cu, 0x08AD1028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 213u, 0x08AD1028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F406Cu) goto L_088F406C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F406C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1026,8 +1102,21 @@ L_088F406C: L_088F4074: aot_gpr_31 = (0x088F407Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 10u, 0x088F407Cu, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F407Cu) goto L_088F407C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F407C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(57), static_cast(aot_gpr_4)); @@ -1037,8 +1126,21 @@ L_088F407C: aot_gpr_5 = (0u | 89u); aot_gpr_31 = (0x088F409Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 11u, 0x088F409Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F409Cu) goto L_088F409C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F409C: aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(212), static_cast(ctx.gpr[16])); goto L_088F40A0; @@ -1054,8 +1156,21 @@ L_088F40A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); aot_gpr_31 = (0x088F40B8u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 14u, 0x088F40B8u, 0x088F39A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 708u, 0x088F39A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F40B8u) goto L_088F40B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F40B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1083,8 +1198,21 @@ L_088F40D4: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088F40E4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 18u, 0x088F40E4u, 0x088F2590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 497u, 0x088F2590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F40E4u) goto L_088F40E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F40E4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1112,8 +1240,21 @@ L_088F40F4: ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088F4120u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 21u, 0x088F4120u, 0x08AD1028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 213u, 0x08AD1028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4120u) goto L_088F4120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4120: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1135,8 +1276,21 @@ L_088F4130: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088F4144u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 24u, 0x088F4144u, 0x088F2590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 497u, 0x088F2590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4144u) goto L_088F4144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4144: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1165,8 +1319,21 @@ L_088F415C: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088F4170u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 28u, 0x088F4170u, 0x088F2590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 497u, 0x088F2590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4170u) goto L_088F4170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4170: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1201,8 +1368,21 @@ L_088F41A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); aot_gpr_31 = (0x088F41ACu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 34u, 0x088F41ACu, 0x088F2D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 589u, 0x088F2D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F41ACu) goto L_088F41AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F41AC: ctx.gpr[16] = (aot_gpr_2 | 0u); ctx.gpr[17] = (static_cast(ctx.gpr[16]) < 40 ? 1u : 0u); @@ -1214,8 +1394,21 @@ L_088F41AC: } L_088F41BC: aot_gpr_31 = (0x088F41C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 36u, 0x088F41C4u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F41C4u) goto L_088F41C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F41C4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1368,8 +1561,21 @@ L_088F42E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); aot_gpr_31 = (0x088F42F4u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 54u, 0x088F42F4u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F42F4u) goto L_088F42F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F42F4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1466,8 +1672,21 @@ L_088F43A0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088F43ACu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 65u, 0x088F43ACu, 0x088F2464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 483u, 0x088F2464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F43ACu) goto L_088F43AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F43AC: aot_gpr_31 = (0x088F43B4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F43B4u) goto L_088F43B4; @@ -1476,8 +1695,21 @@ L_088F43B4: aot_gpr_4 = (aot_gpr_2 + ctx.gpr[21]); aot_gpr_31 = (0x088F43C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 67u, 0x088F43C0u, 0x08A40FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 212u, 0x08A40FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F43C0u) goto L_088F43C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F43C0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(58)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -1513,8 +1745,21 @@ L_088F43F0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F43FCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 73u, 0x088F43FCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F43FCu) goto L_088F43FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F43FC: ctx.gpr[18] = (aot_gpr_2 | 0u); if (ctx.gpr[18] == 0u) { @@ -1535,8 +1780,21 @@ L_088F4418: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x088F4424u); aot_gpr_5 = (aot_gpr_28 + static_cast(-23104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 77u, 0x088F4424u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4424u) goto L_088F4424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4424: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -1544,8 +1802,21 @@ L_088F4424: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088F443Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 78u, 0x088F443Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F443Cu) goto L_088F443C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F443C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(58)))))); aot_gpr_4 = (aot_gpr_4 | 2u); @@ -1596,8 +1867,21 @@ L_088F4484: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088F4498u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 86u, 0x088F4498u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4498u) goto L_088F4498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4498: aot_gpr_31 = (0x088F44A0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F44A0u) goto L_088F44A0; @@ -1652,8 +1936,21 @@ L_088F44EC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088F4500u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 95u, 0x088F4500u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4500u) goto L_088F4500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4500: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(58)))))); aot_gpr_5 = (0u + static_cast(-3)); @@ -1715,8 +2012,21 @@ L_088F4564: L_088F457C: aot_gpr_31 = (0x088F4584u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 102u, 0x088F4584u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4584u) goto L_088F4584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4584: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1851,8 +2161,21 @@ L_088F46A8: } L_088F46C0: aot_gpr_31 = (0x088F46C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 116u, 0x088F46C8u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F46C8u) goto L_088F46C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F46C8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1898,8 +2221,21 @@ L_088F4714: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_31 = (0x088F4728u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 121u, 0x088F4728u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4728u) goto L_088F4728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4728: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1920,8 +2256,21 @@ L_088F4740: aot_gpr_6 = (ctx.gpr[29] + static_cast(192)); aot_gpr_31 = (0x088F4750u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 124u, 0x088F4750u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4750u) goto L_088F4750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4750: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(192))); @@ -1957,8 +2306,21 @@ L_088F4784: aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); aot_gpr_31 = (0x088F47A0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(96)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 129u, 0x088F47A0u, 0x08A0A700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 375u, 0x08A0A700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F47A0u) goto L_088F47A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F47A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2013,8 +2375,21 @@ L_088F47F8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088F480Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 137u, 0x088F480Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F480Cu) goto L_088F480C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F480C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(57))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2071,8 +2446,21 @@ L_088F485C: L_088F486C: aot_gpr_31 = (0x088F4874u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 145u, 0x088F4874u, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4874u) goto L_088F4874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4874: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(57), static_cast(aot_gpr_4)); @@ -2149,8 +2537,21 @@ L_088F48E0: L_088F4904: aot_gpr_31 = (0x088F490Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 154u, 0x088F490Cu, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F490Cu) goto L_088F490C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F490C: aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(aot_gpr_2) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2163,8 +2564,21 @@ L_088F4918: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088F4924u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 156u, 0x088F4924u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4924u) goto L_088F4924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4924: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2184,13 +2598,39 @@ L_088F4934: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088F4940u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 159u, 0x088F4940u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4940u) goto L_088F4940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4940: aot_gpr_31 = (0x088F4948u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 160u, 0x088F4948u, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4948u) goto L_088F4948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4948: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2295,16 +2735,42 @@ L_088F49D4: L_088F49E0: aot_gpr_31 = (0x088F49E8u); aot_gpr_4 = (ctx.gpr[29] + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 173u, 0x088F49E8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F49E8u) goto L_088F49E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F49E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(96))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); ctx.fpr[20] = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x088F49FCu); aot_gpr_4 = (ctx.gpr[29] + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 174u, 0x088F49FCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F49FCu) goto L_088F49FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F49FC: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(112))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); @@ -2312,16 +2778,42 @@ L_088F49FC: { const float fs = ctx.fpr[20]; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } aot_gpr_31 = (0x088F4A14u); aot_gpr_4 = (ctx.gpr[29] + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 175u, 0x088F4A14u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4A14u) goto L_088F4A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4A14: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(132))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_fpr_22 = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x088F4A28u); aot_gpr_4 = (ctx.gpr[29] + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 176u, 0x088F4A28u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4A28u) goto L_088F4A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4A28: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(148))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -2385,8 +2877,21 @@ L_088F4A98: L_088F4AA4: aot_gpr_31 = (0x088F4AACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 184u, 0x088F4AACu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4AACu) goto L_088F4AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4AAC: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(57), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); @@ -2399,8 +2904,21 @@ L_088F4AAC: L_088F4ABC: aot_gpr_31 = (0x088F4AC4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 186u, 0x088F4AC4u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4AC4u) goto L_088F4AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4AC4: aot_gpr_2 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(212))); { std::uint32_t aot_run_words[12]{}; @@ -2420,8 +2938,8 @@ L_088F4AC4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F4B00: @@ -2481,8 +2999,21 @@ L_088F4B98: L_088F4BA8: aot_gpr_31 = (0x088F4BB0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 193u, 0x088F4BB0u, 0x08B1150Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 334u, 0x08B1150Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4BB0u) goto L_088F4BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4BB0: aot_gpr_31 = (0x088F4BB8u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2515,8 +3046,21 @@ L_088F4BE0: L_088F4BE8: aot_gpr_31 = (0x088F4BF0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 198u, 0x088F4BF0u, 0x08990018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 2u, 0x08990018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4BF0u) goto L_088F4BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4BF0: { const bool branch_taken = static_cast(ctx.gpr[20]) < 0; if (branch_taken) { @@ -2527,8 +3071,21 @@ L_088F4BF0: L_088F4BF8: aot_gpr_31 = (0x088F4C00u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 200u, 0x088F4C00u, 0x08990018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 2u, 0x08990018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4C00u) goto L_088F4C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4C00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2543,8 +3100,21 @@ L_088F4C0C: aot_gpr_5 = (aot_gpr_5 << 8u); aot_gpr_31 = (0x088F4C1Cu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 202u, 0x088F4C1Cu, 0x0882B9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 394u, 0x0882B9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4C1Cu) goto L_088F4C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4C1C: ctx.gpr[22] = (aot_gpr_2 | 0u); if (ctx.gpr[22] == 0u) { @@ -2557,8 +3127,21 @@ L_088F4C28: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088F4C38u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 204u, 0x088F4C38u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4C38u) goto L_088F4C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4C38: ctx.gpr[19] = (ctx.gpr[22] | 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[19]); @@ -2591,8 +3174,21 @@ L_088F4C5C: aot_gpr_5 = (ctx.gpr[20] << 8u); aot_gpr_31 = (0x088F4C6Cu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 209u, 0x088F4C6Cu, 0x0882B9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 394u, 0x0882B9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4C6Cu) goto L_088F4C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4C6C: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2606,8 +3202,21 @@ L_088F4C78: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F4C84u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 211u, 0x088F4C84u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4C84u) goto L_088F4C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4C84: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_088F4C88; @@ -2623,8 +3232,21 @@ L_088F4C90: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x088F4C9Cu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 214u, 0x088F4C9Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4C9Cu) goto L_088F4C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4C9C: ctx.gpr[20] = (aot_gpr_2 | 0u); if (ctx.gpr[20] == 0u) { @@ -2637,8 +3259,21 @@ L_088F4CA8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088F4CB8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 216u, 0x088F4CB8u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4CB8u) goto L_088F4CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4CB8: ctx.gpr[19] = (ctx.gpr[20] | 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[19]); @@ -2655,8 +3290,21 @@ L_088F4CCC: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x088F4CD8u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 219u, 0x088F4CD8u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4CD8u) goto L_088F4CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4CD8: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2670,8 +3318,21 @@ L_088F4CE4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F4CF0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 221u, 0x088F4CF0u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4CF0u) goto L_088F4CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4CF0: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_088F4CF4; @@ -2723,8 +3384,21 @@ L_088F4D04: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x088F4D60u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 225u, 0x088F4D60u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4D60u) goto L_088F4D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4D60: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -2734,18 +3408,57 @@ L_088F4D60: } aot_gpr_31 = (0x088F4D74u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 226u, 0x088F4D74u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4D74u) goto L_088F4D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4D74: aot_gpr_31 = (0x088F4D7Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 227u, 0x088F4D7Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4D7Cu) goto L_088F4D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4D7C: aot_gpr_31 = (0x088F4D84u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 228u, 0x088F4D84u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4D84u) goto L_088F4D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4D84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(236))); @@ -2840,8 +3553,21 @@ L_088F4E38: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x088F4E88u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 232u, 0x088F4E88u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4E88u) goto L_088F4E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4E88: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(16), aot_run_words); @@ -2851,18 +3577,57 @@ L_088F4E88: } aot_gpr_31 = (0x088F4E9Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 233u, 0x088F4E9Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4E9Cu) goto L_088F4E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4E9C: aot_gpr_31 = (0x088F4EA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 234u, 0x088F4EA4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4EA4u) goto L_088F4EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4EA4: aot_gpr_31 = (0x088F4EACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 235u, 0x088F4EACu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F4EACu) goto L_088F4EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F4EAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(236))); @@ -2969,8 +3734,8 @@ L_088F4FC0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-16000))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F4FD8: @@ -3008,8 +3773,21 @@ L_088F502C: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x088F5038u); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 246u, 0x088F5038u, 0x088F2D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 589u, 0x088F2D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5038u) goto L_088F5038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5038: aot_gpr_4 = (aot_gpr_2 + aot_gpr_2); aot_gpr_5 = (2233u << 16u); @@ -3093,8 +3871,8 @@ L_088F50E4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F5118: @@ -3178,8 +3956,21 @@ L_088F51C0: aot_gpr_5 = (0u | 120u); aot_gpr_31 = (0x088F51D0u); aot_gpr_6 = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 262u, 0x088F51D0u, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F51D0u) goto L_088F51D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F51D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(104))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(154))); @@ -3211,8 +4002,21 @@ L_088F51FC: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x088F520Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 266u, 0x088F520Cu, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F520Cu) goto L_088F520C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F520C: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -3233,8 +4037,21 @@ L_088F5224: aot_gpr_6 = (ctx.gpr[29] + static_cast(16)); aot_gpr_31 = (0x088F5234u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 269u, 0x088F5234u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5234u) goto L_088F5234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5234: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(16))); @@ -3262,8 +4079,21 @@ L_088F525C: L_088F5264: aot_gpr_31 = (0x088F526Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 273u, 0x088F526Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F526Cu) goto L_088F526C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F526C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3282,8 +4112,21 @@ L_088F5274: L_088F527C: aot_gpr_31 = (0x088F5284u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 276u, 0x088F5284u, 0x088F2D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 589u, 0x088F2D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5284u) goto L_088F5284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5284: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(56))); @@ -3301,8 +4144,8 @@ L_088F529C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-15936))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F52B4: @@ -3344,8 +4187,21 @@ L_088F530C: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F531Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 282u, 0x088F531Cu, 0x08947340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 630u, 0x08947340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F531Cu) goto L_088F531C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F531C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3369,22 +4225,61 @@ L_088F532C: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F534Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 285u, 0x088F534Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F534Cu) goto L_088F534C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F534C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F5358u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 286u, 0x088F5358u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5358u) goto L_088F5358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5358: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(3256), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_gpr_28 + static_cast(7768)); aot_gpr_6 = (ctx.gpr[20] + static_cast(-342)); aot_gpr_31 = (0x088F536Cu); aot_gpr_5 = (0u | 77u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 287u, 0x088F536Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F536Cu) goto L_088F536C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F536C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(172))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(0)))))); @@ -3393,8 +4288,21 @@ L_088F536C: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x088F5388u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 288u, 0x088F5388u, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5388u) goto L_088F5388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5388: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(5000)); @@ -3413,8 +4321,21 @@ L_088F53A0: aot_gpr_6 = (0u | 6000u); aot_gpr_31 = (0x088F53B4u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 290u, 0x088F53B4u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F53B4u) goto L_088F53B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F53B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3446,8 +4367,21 @@ L_088F53D4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F53E4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 295u, 0x088F53E4u, 0x08947340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 630u, 0x08947340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F53E4u) goto L_088F53E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F53E4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3483,15 +4417,41 @@ L_088F5408: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F541Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 300u, 0x088F541Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F541Cu) goto L_088F541C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F541C: ctx.gpr[18] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3256)))))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F542Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 301u, 0x088F542Cu, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F542Cu) goto L_088F542C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F542C: { const bool branch_taken = ctx.gpr[18] != aot_gpr_2; if (branch_taken) { @@ -3503,8 +4463,21 @@ L_088F5434: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F5440u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 303u, 0x088F5440u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5440u) goto L_088F5440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5440: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(3256), static_cast(aot_gpr_2)); goto L_088F5444; @@ -3519,8 +4492,21 @@ L_088F5444: L_088F5450: aot_gpr_31 = (0x088F5458u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 306u, 0x088F5458u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5458u) goto L_088F5458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5458: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3531,8 +4517,21 @@ L_088F5458: L_088F5460: aot_gpr_31 = (0x088F5468u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 308u, 0x088F5468u, 0x0890850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 84u, 0x0890850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5468u) goto L_088F5468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5468: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3559,8 +4558,21 @@ L_088F5480: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F54A4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 311u, 0x088F54A4u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F54A4u) goto L_088F54A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F54A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3574,15 +4586,41 @@ L_088F54AC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F54C0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 313u, 0x088F54C0u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F54C0u) goto L_088F54C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F54C0: ctx.gpr[18] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3256)))))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F54D0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 314u, 0x088F54D0u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F54D0u) goto L_088F54D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F54D0: { const bool branch_taken = ctx.gpr[18] != aot_gpr_2; if (branch_taken) { @@ -3594,8 +4632,21 @@ L_088F54D8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F54E4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 316u, 0x088F54E4u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F54E4u) goto L_088F54E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F54E4: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(3256), static_cast(aot_gpr_2)); goto L_088F54E8; @@ -3610,8 +4661,21 @@ L_088F54E8: L_088F54F4: aot_gpr_31 = (0x088F54FCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 319u, 0x088F54FCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F54FCu) goto L_088F54FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F54FC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3622,15 +4686,41 @@ L_088F54FC: L_088F5504: aot_gpr_31 = (0x088F550Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 321u, 0x088F550Cu, 0x0890850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 84u, 0x0890850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F550Cu) goto L_088F550C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F550C: aot_gpr_4 = (aot_gpr_28 + static_cast(7768)); aot_gpr_6 = (ctx.gpr[20] + static_cast(-342)); aot_gpr_31 = (0x088F551Cu); aot_gpr_5 = (0u | 78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 322u, 0x088F551Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F551Cu) goto L_088F551C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F551C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3659,14 +4749,40 @@ L_088F553C: aot_gpr_5 = (0u | 84u); aot_gpr_31 = (0x088F554Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 326u, 0x088F554Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F554Cu) goto L_088F554C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F554C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(8692), static_cast(aot_gpr_4)); aot_gpr_31 = (0x088F555Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 327u, 0x088F555Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F555Cu) goto L_088F555C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F555C: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(8696), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); @@ -3762,8 +4878,21 @@ L_088F55F8: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x088F5604u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 337u, 0x088F5604u, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5604u) goto L_088F5604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5604: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(57), static_cast(aot_gpr_4)); @@ -3797,8 +4926,21 @@ L_088F5630: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F5640u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 342u, 0x088F5640u, 0x08947340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 630u, 0x08947340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5640u) goto L_088F5640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5640: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3810,8 +4952,21 @@ L_088F5648: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088F5654u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 344u, 0x088F5654u, 0x088F2464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 483u, 0x088F2464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5654u) goto L_088F5654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5654: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3840,8 +4995,21 @@ L_088F5670: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F5684u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 348u, 0x088F5684u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5684u) goto L_088F5684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5684: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3864,8 +5032,21 @@ L_088F569C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088F56B0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 351u, 0x088F56B0u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F56B0u) goto L_088F56B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F56B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3883,8 +5064,21 @@ L_088F56B8: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F56DCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 353u, 0x088F56DCu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F56DCu) goto L_088F56DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F56DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(104))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(176))); @@ -3899,14 +5093,40 @@ L_088F56EC: aot_gpr_6 = (ctx.gpr[20] + static_cast(-342)); aot_gpr_31 = (0x088F56FCu); aot_gpr_5 = (0u | 78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 355u, 0x088F56FCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F56FCu) goto L_088F56FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F56FC: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x088F5708u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 356u, 0x088F5708u, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5708u) goto L_088F5708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5708: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(57), static_cast(aot_gpr_4)); @@ -3942,8 +5162,21 @@ L_088F572C: L_088F574C: aot_gpr_31 = (0x088F5754u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 360u, 0x088F5754u, 0x08A0A6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 373u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 373u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 373u, 0x08A0A6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5754u) goto L_088F5754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5754: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3982,8 +5215,21 @@ L_088F57A8: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x088F57B4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 364u, 0x088F57B4u, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F57B4u) goto L_088F57B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F57B4: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(57), static_cast(aot_gpr_4)); @@ -3992,14 +5238,40 @@ L_088F57B4: aot_gpr_5 = (0u | 85u); aot_gpr_31 = (0x088F57D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 365u, 0x088F57D0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F57D0u) goto L_088F57D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F57D0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F57DCu); aot_gpr_5 = (0u | 121u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 366u, 0x088F57DCu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F57DCu) goto L_088F57DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F57DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4031,8 +5303,21 @@ L_088F57F4: } L_088F5800: aot_gpr_31 = (0x088F5808u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 371u, 0x088F5808u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5808u) goto L_088F5808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5808: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4066,8 +5351,21 @@ L_088F5830: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x088F583Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 377u, 0x088F583Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F583Cu) goto L_088F583C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F583C: ctx.gpr[17] = (aot_gpr_2 | 0u); if (ctx.gpr[17] == 0u) { @@ -4088,8 +5386,21 @@ L_088F5858: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x088F5864u); aot_gpr_5 = (aot_gpr_28 + static_cast(-23084)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 381u, 0x088F5864u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5864u) goto L_088F5864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5864: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4097,8 +5408,21 @@ L_088F5864: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088F587Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 382u, 0x088F587Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F587Cu) goto L_088F587C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F587C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4156,14 +5480,40 @@ L_088F5900: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088F5914u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 388u, 0x088F5914u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5914u) goto L_088F5914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5914: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x088F5920u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 389u, 0x088F5920u, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5920u) goto L_088F5920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5920: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(57), static_cast(aot_gpr_4)); @@ -4200,8 +5550,21 @@ L_088F5950: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F595Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 395u, 0x088F595Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F595Cu) goto L_088F595C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F595C: ctx.gpr[18] = (aot_gpr_2 | 0u); if (ctx.gpr[18] == 0u) { @@ -4222,8 +5585,21 @@ L_088F5978: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x088F5984u); aot_gpr_5 = (aot_gpr_28 + static_cast(-23076)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 399u, 0x088F5984u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5984u) goto L_088F5984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5984: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4231,8 +5607,21 @@ L_088F5984: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088F599Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 400u, 0x088F599Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F599Cu) goto L_088F599C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F599C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4253,8 +5642,21 @@ L_088F59B0: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x088F59C0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 403u, 0x088F59C0u, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F59C0u) goto L_088F59C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F59C0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(57), static_cast(aot_gpr_4)); @@ -4282,8 +5684,21 @@ L_088F59D8: L_088F59F8: aot_gpr_31 = (0x088F5A00u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 406u, 0x088F5A00u, 0x08A0A6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 373u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 373u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 373u, 0x08A0A6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5A00u) goto L_088F5A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5A00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4310,8 +5725,8 @@ L_088F5A0C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F5A3C: @@ -4342,13 +5757,39 @@ L_088F5A80: } L_088F5A90: aot_gpr_31 = (0x088F5A98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 412u, 0x088F5A98u, 0x088F3AC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 733u, 0x088F3AC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5A98u) goto L_088F5A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5A98: aot_gpr_31 = (0x088F5AA0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-15960))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 413u, 0x088F5AA0u, 0x08B6A2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 337u, 0x08B6A2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5AA0u) goto L_088F5AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5AA0: aot_gpr_4 = (static_cast(aot_gpr_2) < 8 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4717,8 +6158,21 @@ L_088F5D10: L_088F5D1C: aot_gpr_31 = (0x088F5D24u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 458u, 0x088F5D24u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5D24u) goto L_088F5D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5D24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4730,8 +6184,21 @@ L_088F5D24: L_088F5D30: aot_gpr_31 = (0x088F5D38u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 460u, 0x088F5D38u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5D38u) goto L_088F5D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5D38: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4770,8 +6237,21 @@ L_088F5D54: L_088F5D68: aot_gpr_31 = (0x088F5D70u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 464u, 0x088F5D70u, 0x088F34D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 655u, 0x088F34D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5D70u) goto L_088F5D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5D70: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(4), aot_run_words); @@ -4786,8 +6266,8 @@ L_088F5D70: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F5D98: @@ -4799,8 +6279,21 @@ L_088F5D98: ctx.gpr[18] = (0u | 1u); ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x088F5DF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 466u, 0x088F5DF4u, 0x088F3880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 693u, 0x088F3880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5DF4u) goto L_088F5DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5DF4: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4845,8 +6338,21 @@ L_088F5E24: } L_088F5E34: aot_gpr_31 = (0x088F5E3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 472u, 0x088F5E3Cu, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5E3Cu) goto L_088F5E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5E3C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4856,8 +6362,21 @@ L_088F5E3C: } L_088F5E44: aot_gpr_31 = (0x088F5E4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 474u, 0x088F5E4Cu, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F5E4Cu) goto L_088F5E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F5E4C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5257,8 +6776,21 @@ L_088F60E8: L_088F60F4: aot_gpr_31 = (0x088F60FCu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 517u, 0x088F60FCu, 0x088F2D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 589u, 0x088F2D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F60FCu) goto L_088F60FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F60FC: ctx.gpr[17] = (aot_gpr_2 << 16u); ctx.gpr[17] = (static_cast(static_cast(ctx.gpr[17]) >> 16u)); @@ -5443,8 +6975,21 @@ L_088F61D0: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088F6290u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 535u, 0x088F6290u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6290u) goto L_088F6290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6290: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-5048))); aot_gpr_4 = (16384u << 16u); @@ -5492,8 +7037,21 @@ L_088F6290: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); aot_gpr_31 = (0x088F6348u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 536u, 0x088F6348u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6348u) goto L_088F6348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6348: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5547,8 +7105,21 @@ L_088F6364: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x088F63E0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 538u, 0x088F63E0u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F63E0u) goto L_088F63E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F63E0: ctx.gpr[30] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(512))); { const bool branch_taken = 0u == 0u; @@ -5578,8 +7149,21 @@ L_088F63EC: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088F643Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 540u, 0x088F643Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F643Cu) goto L_088F643C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F643C: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -5633,8 +7217,21 @@ L_088F6444: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088F64FCu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 542u, 0x088F64FCu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F64FCu) goto L_088F64FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F64FC: { const bool branch_taken = ctx.gpr[23] != 0u; if (branch_taken) { @@ -5688,8 +7285,21 @@ L_088F6504: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); aot_gpr_31 = (0x088F65B8u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 544u, 0x088F65B8u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F65B8u) goto L_088F65B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F65B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5717,8 +7327,21 @@ L_088F65C0: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088F6610u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 546u, 0x088F6610u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6610u) goto L_088F6610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6610: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(482)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -5807,8 +7430,21 @@ L_088F66B8: ctx.gpr[7] = (ctx.gpr[29] + static_cast(132)); aot_gpr_31 = (0x088F66F8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 553u, 0x088F66F8u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F66F8u) goto L_088F66F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F66F8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5834,8 +7470,21 @@ L_088F6700: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x088F6744u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 555u, 0x088F6744u, 0x088F2D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 589u, 0x088F2D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6744u) goto L_088F6744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6744: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_28 + static_cast(8688))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -6108,8 +7757,21 @@ L_088F6A24: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F6A70u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 573u, 0x088F6A70u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6A70u) goto L_088F6A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6A70: aot_gpr_4 = (15776u << 16u); aot_gpr_4 = (aot_gpr_4 | 1798u); @@ -6122,8 +7784,21 @@ L_088F6A70: aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x088F6A9Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 574u, 0x088F6A9Cu, 0x088600C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 5u, 0x088600C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6A9Cu) goto L_088F6A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6A9C: aot_gpr_4 = (16212u << 16u); aot_gpr_4 = (aot_gpr_4 | 14680u); @@ -6139,22 +7814,61 @@ L_088F6A9C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(152), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x088F6AD4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 575u, 0x088F6AD4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6AD4u) goto L_088F6AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6AD4: ctx.gpr[20] = (ctx.gpr[29] + static_cast(160)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088F6AE8u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 576u, 0x088F6AE8u, 0x0885FEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 935u, 0x0885FEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6AE8u) goto L_088F6AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6AE8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088F6AF4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 577u, 0x088F6AF4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6AF4u) goto L_088F6AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6AF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(232))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6175,8 +7889,21 @@ L_088F6B04: L_088F6B10: aot_gpr_31 = (0x088F6B18u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 580u, 0x088F6B18u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6B18u) goto L_088F6B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6B18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(392))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6195,8 +7922,21 @@ L_088F6B28: L_088F6B34: aot_gpr_31 = (0x088F6B3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(384))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 583u, 0x088F6B3Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6B3Cu) goto L_088F6B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6B3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(312))); goto L_088F6B40; @@ -6219,8 +7959,21 @@ L_088F6B4C: L_088F6B58: aot_gpr_31 = (0x088F6B60u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(304))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 587u, 0x088F6B60u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6B60u) goto L_088F6B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6B60: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -6413,8 +8166,21 @@ L_088F6CE4: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088F6D1Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 595u, 0x088F6D1Cu, 0x088F239Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 471u, 0x088F239Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6D1Cu) goto L_088F6D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6D1C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6463,8 +8229,21 @@ L_088F6D1C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); aot_gpr_31 = (0x088F6DB0u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 596u, 0x088F6DB0u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6DB0u) goto L_088F6DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6DB0: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < 4 ? 1u : 0u); @@ -6504,8 +8283,21 @@ L_088F6DC8: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088F6E20u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 599u, 0x088F6E20u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6E20u) goto L_088F6E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6E20: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(520), aot_run_words); @@ -6528,8 +8320,8 @@ L_088F6E20: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(592)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F6E68: @@ -6607,8 +8399,21 @@ L_088F6F64: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F6F70u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 605u, 0x088F6F70u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6F70u) goto L_088F6F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6F70: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (ctx.gpr[20] | 0u); @@ -6632,8 +8437,8 @@ L_088F6F88: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-15872))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F6FA0: @@ -6680,8 +8485,21 @@ L_088F6FDC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F6FE8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 614u, 0x088F6FE8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F6FE8u) goto L_088F6FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F6FE8: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -6704,8 +8522,21 @@ L_088F7004: L_088F7008: aot_gpr_31 = (0x088F7010u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 619u, 0x088F7010u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7010u) goto L_088F7010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7010: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -6727,8 +8558,21 @@ L_088F7030: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F703Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 622u, 0x088F703Cu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F703Cu) goto L_088F703C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F703C: ctx.gpr[16] = (ctx.gpr[20] | 0u); goto L_088F7040; @@ -6750,8 +8594,21 @@ L_088F7054: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F7060u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 626u, 0x088F7060u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7060u) goto L_088F7060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7060: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -6774,8 +8631,21 @@ L_088F707C: L_088F7080: aot_gpr_31 = (0x088F7088u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 631u, 0x088F7088u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7088u) goto L_088F7088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7088: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -6795,8 +8665,21 @@ L_088F70A0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F70ACu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 634u, 0x088F70ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F70ACu) goto L_088F70AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F70AC: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -6819,8 +8702,21 @@ L_088F70C8: L_088F70CC: aot_gpr_31 = (0x088F70D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 639u, 0x088F70D4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F70D4u) goto L_088F70D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F70D4: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -6840,8 +8736,21 @@ L_088F70EC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F70F8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 642u, 0x088F70F8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F70F8u) goto L_088F70F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F70F8: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -6864,8 +8773,21 @@ L_088F7114: L_088F7118: aot_gpr_31 = (0x088F7120u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 647u, 0x088F7120u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7120u) goto L_088F7120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7120: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -6885,8 +8807,21 @@ L_088F7138: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F7144u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 650u, 0x088F7144u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7144u) goto L_088F7144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7144: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -6909,8 +8844,21 @@ L_088F7160: L_088F7164: aot_gpr_31 = (0x088F716Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 655u, 0x088F716Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F716Cu) goto L_088F716C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F716C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -6930,8 +8878,21 @@ L_088F7184: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F7190u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 658u, 0x088F7190u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7190u) goto L_088F7190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7190: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -6954,8 +8915,21 @@ L_088F71AC: L_088F71B0: aot_gpr_31 = (0x088F71B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 663u, 0x088F71B8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F71B8u) goto L_088F71B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F71B8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -6975,8 +8949,21 @@ L_088F71D0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F71DCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 666u, 0x088F71DCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F71DCu) goto L_088F71DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F71DC: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -6999,8 +8986,21 @@ L_088F71F8: L_088F71FC: aot_gpr_31 = (0x088F7204u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 671u, 0x088F7204u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7204u) goto L_088F7204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7204: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -7020,8 +9020,21 @@ L_088F721C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F7228u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 674u, 0x088F7228u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7228u) goto L_088F7228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7228: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7044,8 +9057,21 @@ L_088F7244: L_088F7248: aot_gpr_31 = (0x088F7250u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 679u, 0x088F7250u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7250u) goto L_088F7250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7250: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -7065,8 +9091,21 @@ L_088F7268: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F7274u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 682u, 0x088F7274u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7274u) goto L_088F7274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7274: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7089,8 +9128,21 @@ L_088F7290: L_088F7294: aot_gpr_31 = (0x088F729Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 687u, 0x088F729Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F729Cu) goto L_088F729C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F729C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -7110,8 +9162,21 @@ L_088F72B4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F72C0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 690u, 0x088F72C0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F72C0u) goto L_088F72C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F72C0: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7134,8 +9199,21 @@ L_088F72DC: L_088F72E0: aot_gpr_31 = (0x088F72E8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 695u, 0x088F72E8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F72E8u) goto L_088F72E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F72E8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -7155,8 +9233,21 @@ L_088F7300: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F730Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 698u, 0x088F730Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F730Cu) goto L_088F730C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F730C: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7179,8 +9270,21 @@ L_088F7328: L_088F732C: aot_gpr_31 = (0x088F7334u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 703u, 0x088F7334u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7334u) goto L_088F7334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7334: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -7200,8 +9304,21 @@ L_088F734C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F7358u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 706u, 0x088F7358u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7358u) goto L_088F7358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7358: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7224,8 +9341,21 @@ L_088F7374: L_088F7378: aot_gpr_31 = (0x088F7380u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 711u, 0x088F7380u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7380u) goto L_088F7380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7380: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -7247,8 +9377,21 @@ L_088F7398: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F73A4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 714u, 0x088F73A4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F73A4u) goto L_088F73A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F73A4: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7271,8 +9414,21 @@ L_088F73C0: L_088F73C4: aot_gpr_31 = (0x088F73CCu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 719u, 0x088F73CCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F73CCu) goto L_088F73CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F73CC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -7294,8 +9450,21 @@ L_088F73E4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F73F0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 722u, 0x088F73F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F73F0u) goto L_088F73F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F73F0: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7318,8 +9487,21 @@ L_088F740C: L_088F7410: aot_gpr_31 = (0x088F7418u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 727u, 0x088F7418u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7418u) goto L_088F7418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7418: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -7405,8 +9587,8 @@ L_088F74B8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F74EC: @@ -7515,8 +9697,21 @@ L_088F75C0: aot_gpr_5 = (0u | 84u); aot_gpr_31 = (0x088F75D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 747u, 0x088F75D0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F75D0u) goto L_088F75D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F75D0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -7542,8 +9737,21 @@ L_088F75D8: aot_gpr_5 = (0u | 79u); aot_gpr_31 = (0x088F7618u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 749u, 0x088F7618u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7618u) goto L_088F7618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7618: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -7557,8 +9765,21 @@ L_088F7620: aot_gpr_5 = (0u | 84u); aot_gpr_31 = (0x088F7630u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 751u, 0x088F7630u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7630u) goto L_088F7630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7630: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -7584,8 +9805,21 @@ L_088F7638: aot_gpr_5 = (0u | 83u); aot_gpr_31 = (0x088F7678u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 753u, 0x088F7678u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7678u) goto L_088F7678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7678: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -7607,8 +9841,21 @@ L_088F7680: aot_gpr_5 = (0u | 82u); aot_gpr_31 = (0x088F76B0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 755u, 0x088F76B0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F76B0u) goto L_088F76B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F76B0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -7635,15 +9882,41 @@ L_088F76D4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088F76E0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 759u, 0x088F76E0u, 0x08947470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 655u, 0x08947470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F76E0u) goto L_088F76E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F76E0: aot_gpr_4 = (aot_gpr_28 + static_cast(7768)); aot_gpr_5 = (0u | 84u); aot_gpr_31 = (0x088F76F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 760u, 0x088F76F0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F76F0u) goto L_088F76F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F76F0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -7675,8 +9948,21 @@ L_088F7718: aot_gpr_5 = (0u | 84u); aot_gpr_31 = (0x088F7728u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 764u, 0x088F7728u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7728u) goto L_088F7728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7728: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(104))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(168))); @@ -7730,8 +10016,21 @@ L_088F7768: L_088F7774: aot_gpr_31 = (0x088F777Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 772u, 0x088F777Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F777Cu) goto L_088F777C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F777C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7750,8 +10049,21 @@ L_088F7790: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F779Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 775u, 0x088F779Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F779Cu) goto L_088F779C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F779C: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7774,15 +10086,41 @@ L_088F77B8: L_088F77BC: aot_gpr_31 = (0x088F77C4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-22956)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 780u, 0x088F77C4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F77C4u) goto L_088F77C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F77C4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x088F77D4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 781u, 0x088F77D4u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F77D4u) goto L_088F77D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F77D4: aot_gpr_4 = (0u | 11u); aot_mem.aot_direct_store16(ctx.gpr[29] + static_cast(26), static_cast(aot_gpr_4)); @@ -7908,8 +10246,21 @@ L_088F78D0: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088F78F4u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 796u, 0x088F78F4u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F78F4u) goto L_088F78F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F78F4: aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[29] + static_cast(29), aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load_word_left(ctx.gpr[29] + static_cast(32), aot_gpr_5)); @@ -7918,8 +10269,21 @@ L_088F78F4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x088F7910u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 797u, 0x088F7910u, 0x08A3716Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 795u, 0x08A3716Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7910u) goto L_088F7910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7910: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -7940,8 +10304,21 @@ L_088F7918: L_088F7928: aot_gpr_31 = (0x088F7930u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 800u, 0x088F7930u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7930u) goto L_088F7930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7930: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7960,8 +10337,21 @@ L_088F7944: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F7950u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 803u, 0x088F7950u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7950u) goto L_088F7950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7950: ctx.gpr[16] = (aot_gpr_2 | 0u); if (ctx.gpr[16] == 0u) { @@ -7984,15 +10374,41 @@ L_088F796C: L_088F7970: aot_gpr_31 = (0x088F7978u); aot_gpr_5 = (aot_gpr_28 + static_cast(-22948)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 808u, 0x088F7978u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7978u) goto L_088F7978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7978: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x088F7988u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 809u, 0x088F7988u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7988u) goto L_088F7988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7988: aot_gpr_31 = (0x088F7990u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7990u) goto L_088F7990; @@ -8001,8 +10417,21 @@ L_088F7990: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F799Cu); aot_gpr_5 = (0u | 30000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 811u, 0x088F799Cu, 0x089477FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 726u, 0x089477FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F799Cu) goto L_088F799C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F799C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -8023,8 +10452,8 @@ L_088F79A8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F79BC: @@ -8033,8 +10462,21 @@ L_088F79BC: aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(152), aot_run_words); } ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088F79F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 815u, 0x088F79F8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F79F8u) goto L_088F79F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F79F8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8078,8 +10520,21 @@ L_088F7A24: } L_088F7A2C: aot_gpr_31 = (0x088F7A34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 822u, 0x088F7A34u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7A34u) goto L_088F7A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7A34: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8094,8 +10549,21 @@ L_088F7A3C: L_088F7A44: aot_gpr_31 = (0x088F7A4Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 825u, 0x088F7A4Cu, 0x08947944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 745u, 0x08947944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7A4Cu) goto L_088F7A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7A4C: aot_gpr_6 = (ctx.gpr[29] + static_cast(4)); ctx.gpr[7] = (ctx.gpr[29] + static_cast(8)); @@ -8145,8 +10613,21 @@ L_088F7AC0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x088F7AD0u); aot_gpr_4 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 828u, 0x088F7AD0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7AD0u) goto L_088F7AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7AD0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8159,8 +10640,21 @@ L_088F7AD0: L_088F7ADC: aot_gpr_31 = (0x088F7AE4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 830u, 0x088F7AE4u, 0x08A0A1DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 314u, 0x08A0A1DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7AE4u) goto L_088F7AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7AE4: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_088F7AE8; @@ -8170,14 +10664,40 @@ L_088F7AE8: aot_gpr_4 = (aot_gpr_4 + static_cast(116)); aot_gpr_31 = (0x088F7AFCu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 832u, 0x088F7AFCu, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7AFCu) goto L_088F7AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7AFC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x088F7B08u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 833u, 0x088F7B08u, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7B08u) goto L_088F7B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7B08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8192,8 +10712,21 @@ L_088F7B10: L_088F7B18: aot_gpr_31 = (0x088F7B20u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 836u, 0x088F7B20u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7B20u) goto L_088F7B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7B20: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8208,8 +10741,21 @@ L_088F7B28: L_088F7B30: aot_gpr_31 = (0x088F7B38u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 839u, 0x088F7B38u, 0x089476E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 710u, 0x089476E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7B38u) goto L_088F7B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7B38: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8251,8 +10797,21 @@ L_088F7B74: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088F7B88u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 843u, 0x088F7B88u, 0x08947990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 751u, 0x08947990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7B88u) goto L_088F7B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7B88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8356,8 +10915,21 @@ L_088F7BFC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x088F7C54u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 853u, 0x088F7C54u, 0x088F2B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 568u, 0x088F2B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7C54u) goto L_088F7C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7C54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8410,8 +10982,21 @@ L_088F7CB4: L_088F7CC0: aot_gpr_31 = (0x088F7CC8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 859u, 0x088F7CC8u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7CC8u) goto L_088F7CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7CC8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8465,8 +11050,21 @@ L_088F7D28: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x088F7D40u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 863u, 0x088F7D40u, 0x088F2C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 578u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 578u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 578u, 0x088F2C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7D40u) goto L_088F7D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7D40: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8511,8 +11109,21 @@ L_088F7D80: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x088F7D9Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 866u, 0x088F7D9Cu, 0x088F2B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 568u, 0x088F2B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7D9Cu) goto L_088F7D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7D9C: aot_gpr_4 = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (aot_gpr_4 << 16u); @@ -8527,8 +11138,21 @@ L_088F7D9C: L_088F7DB4: aot_gpr_31 = (0x088F7DBCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 868u, 0x088F7DBCu, 0x0890849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7DBCu) goto L_088F7DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7DBC: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(152), aot_run_words); @@ -8546,8 +11170,8 @@ L_088F7DBC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F7DF0: @@ -8648,8 +11272,21 @@ L_088F7F04: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(24))); aot_gpr_31 = (0x088F7F50u); aot_gpr_4 = (ctx.gpr[29] + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0060->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0060_entry, 873u, 0x088F7F50u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F7F50u) goto L_088F7F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F7F50: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); diff --git a/profiles/vcs/generated/generated_unit_0061.cpp b/profiles/vcs/generated/generated_unit_0061.cpp index 680fcbe..44f430a 100644 --- a/profiles/vcs/generated/generated_unit_0061.cpp +++ b/profiles/vcs/generated/generated_unit_0061.cpp @@ -1067,6 +1067,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088F8000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1136,16 +1160,42 @@ L_088F8000: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088F8038u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 2u, 0x088F8038u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8038u) goto L_088F8038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8038: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); ctx.fpr[26] = aot_fpr_13 - aot_fpr_12; aot_gpr_31 = (0x088F804Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 3u, 0x088F804Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F804Cu) goto L_088F804C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F804C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -1153,16 +1203,42 @@ L_088F804C: { const float fs = ctx.fpr[26]; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } aot_gpr_31 = (0x088F8064u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 4u, 0x088F8064u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8064u) goto L_088F8064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8064: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); ctx.fpr[28] = aot_fpr_13 - aot_fpr_12; aot_gpr_31 = (0x088F8078u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 5u, 0x088F8078u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8078u) goto L_088F8078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8078: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -1211,8 +1287,21 @@ L_088F80B4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088F80C8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 9u, 0x088F80C8u, 0x088F33A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 638u, 0x088F33A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F80C8u) goto L_088F80C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F80C8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1233,8 +1322,21 @@ L_088F80D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x088F8100u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 11u, 0x088F8100u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8100u) goto L_088F8100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8100: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1274,8 +1376,21 @@ L_088F8110: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x088F8148u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 14u, 0x088F8148u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8148u) goto L_088F8148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8148: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1344,8 +1459,8 @@ L_088F81B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F8200: @@ -1388,8 +1503,8 @@ L_088F8240: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F824C: @@ -1436,8 +1551,8 @@ L_088F824C: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(16), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F82FC: @@ -1499,16 +1614,29 @@ L_088F82FC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088F83B8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 28u, 0x088F83B8u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F83B8u) goto L_088F83B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F83B8: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F83CC: @@ -1527,8 +1655,8 @@ L_088F83CC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F83E0: @@ -1537,28 +1665,28 @@ L_088F83E0: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F83F4: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F83FC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F8404: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F840C: @@ -1665,8 +1793,21 @@ L_088F84FC: aot_gpr_5 = (aot_gpr_5 | 4u); aot_gpr_31 = (0x088F8520u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(84), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 42u, 0x088F8520u, 0x08A2FBA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 597u, 0x08A2FBA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8520u) goto L_088F8520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8520: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(3964))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -1681,8 +1822,21 @@ L_088F8534: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(0), static_cast(ctx.gpr[19])); aot_gpr_31 = (0x088F8544u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 44u, 0x088F8544u, 0x08B24720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 56u, 0x08B24720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8544u) goto L_088F8544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8544: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(4)))))); aot_gpr_5 = (0u | 0u); @@ -1721,8 +1875,21 @@ L_088F8584: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x088F8598u); aot_gpr_5 = (aot_gpr_29 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 46u, 0x088F8598u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8598u) goto L_088F8598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8598: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[19] | 0u); @@ -1745,42 +1912,42 @@ L_088F85A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F85C0: aot_gpr_4 = (0u | 2u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F85CC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 2u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F85D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F85DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F85E4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u + static_cast(-1)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F85EC: @@ -1793,8 +1960,8 @@ L_088F85EC: goto L_088F85FC; L_088F85FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F8604: @@ -1806,8 +1973,21 @@ L_088F8604: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088F8624u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 57u, 0x088F8624u, 0x088DF69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 451u, 0x088DF69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8624u) goto L_088F8624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8624: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27492)); @@ -1824,15 +2004,28 @@ L_088F8640: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088F8654u); ctx.gpr[7] = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 59u, 0x088F8654u, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8654u) goto L_088F8654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8654: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F8664: @@ -1863,8 +2056,8 @@ L_088F868C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F8698: @@ -2143,8 +2336,8 @@ L_088F884C: } L_088F8858: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F8860: @@ -2160,8 +2353,21 @@ L_088F8860: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_31 = (0x088F889Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 98u, 0x088F889Cu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F889Cu) goto L_088F889C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F889C: { const bool branch_taken = aot_gpr_16 != 0u; aot_gpr_4 = (2232u << 16u); @@ -2316,8 +2522,21 @@ L_088F897C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F8990u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 118u, 0x088F8990u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8990u) goto L_088F8990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8990: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -2351,8 +2570,8 @@ L_088F89A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F89CC: @@ -2374,8 +2593,21 @@ L_088F89CC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(72), aot_run_words); } aot_gpr_31 = (0x088F8A1Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 123u, 0x088F8A1Cu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8A1Cu) goto L_088F8A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8A1C: aot_gpr_4 = (ctx.gpr[28] + static_cast(-22844)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_4); @@ -2549,8 +2781,21 @@ L_088F8B48: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088F8B54u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 145u, 0x088F8B54u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8B54u) goto L_088F8B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8B54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = 0u == 0u; @@ -2568,8 +2813,21 @@ L_088F8B64: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F8B74u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 148u, 0x088F8B74u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8B74u) goto L_088F8B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8B74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2725,8 +2983,21 @@ L_088F8C90: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x088F8CA4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 165u, 0x088F8CA4u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8CA4u) goto L_088F8CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8CA4: ctx.gpr[18] = (0u | 0u); goto L_088F8CA8; @@ -2845,8 +3116,21 @@ L_088F8D5C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088F8D68u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 181u, 0x088F8D68u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8D68u) goto L_088F8D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8D68: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); { const bool branch_taken = 0u == 0u; @@ -2909,8 +3193,21 @@ L_088F8DCC: aot_gpr_5 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x088F8DE0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 188u, 0x088F8DE0u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8DE0u) goto L_088F8DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8DE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2923,8 +3220,21 @@ L_088F8DE8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F8DF8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 190u, 0x088F8DF8u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F8DF8u) goto L_088F8DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F8DF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2954,8 +3264,8 @@ L_088F8E08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F8E3C: @@ -3292,8 +3602,8 @@ L_088F900C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9028: @@ -3323,8 +3633,8 @@ L_088F9054: goto L_088F9058; L_088F9058: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9060: @@ -3354,8 +3664,8 @@ L_088F908C: goto L_088F9090; L_088F9090: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9098: @@ -3534,15 +3844,15 @@ L_088F91CC: L_088F91E0: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F91E8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F91F0: @@ -3585,8 +3895,21 @@ L_088F9238: L_088F9240: aot_gpr_31 = (0x088F9248u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 268u, 0x088F9248u, 0x0898474Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 140u, 0x0898474Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9248u) goto L_088F9248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9248: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -3652,8 +3975,21 @@ L_088F92A8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F92B4u); aot_gpr_4 = (0u | 88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 277u, 0x088F92B4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F92B4u) goto L_088F92B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F92B4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3666,8 +4002,21 @@ L_088F92B4: L_088F92C0: aot_gpr_31 = (0x088F92C8u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 279u, 0x088F92C8u, 0x089847ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 152u, 0x089847ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F92C8u) goto L_088F92C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F92C8: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(24952)); @@ -3709,8 +4058,21 @@ L_088F9320: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F932Cu); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 284u, 0x088F932Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F932Cu) goto L_088F932C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F932C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3723,8 +4085,21 @@ L_088F932C: L_088F9338: aot_gpr_31 = (0x088F9340u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 286u, 0x088F9340u, 0x089847ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 152u, 0x089847ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9340u) goto L_088F9340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9340: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(24904)); @@ -3757,8 +4132,21 @@ L_088F9374: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F9380u); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 291u, 0x088F9380u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9380u) goto L_088F9380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9380: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3771,8 +4159,21 @@ L_088F9380: L_088F938C: aot_gpr_31 = (0x088F9394u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 293u, 0x088F9394u, 0x089847ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 152u, 0x089847ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9394u) goto L_088F9394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9394: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25000)); @@ -3813,8 +4214,21 @@ L_088F93D4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F93E0u); aot_gpr_4 = (0u | 104u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 299u, 0x088F93E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F93E0u) goto L_088F93E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F93E0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3827,8 +4241,21 @@ L_088F93E0: L_088F93EC: aot_gpr_31 = (0x088F93F4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 301u, 0x088F93F4u, 0x08984C44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 226u, 0x08984C44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F93F4u) goto L_088F93F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F93F4: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_088F93F8; @@ -3844,8 +4271,21 @@ L_088F9400: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F940Cu); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 304u, 0x088F940Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F940Cu) goto L_088F940C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F940C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3859,8 +4299,21 @@ L_088F9418: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088F9424u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 306u, 0x088F9424u, 0x089847ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 152u, 0x089847ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9424u) goto L_088F9424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9424: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25000)); @@ -3915,8 +4368,8 @@ L_088F9470: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9494: @@ -4195,8 +4648,21 @@ L_088F9684: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22848)); aot_gpr_31 = (0x088F9690u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 349u, 0x088F9690u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9690u) goto L_088F9690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9690: aot_gpr_4 = (2234u << 16u); ctx.gpr[19] = (aot_gpr_4 + static_cast(14520)); @@ -4312,8 +4778,21 @@ L_088F9764: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088F9778u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 361u, 0x088F9778u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9778u) goto L_088F9778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9778: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -4337,8 +4816,8 @@ L_088F9780: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F97AC: @@ -4354,8 +4833,21 @@ L_088F97AC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x088F97ECu); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 364u, 0x088F97ECu, 0x0898474Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 140u, 0x0898474Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F97ECu) goto L_088F97EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F97EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4397,8 +4889,21 @@ L_088F9834: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x088F9840u); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 370u, 0x088F9840u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9840u) goto L_088F9840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9840: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4411,15 +4916,41 @@ L_088F9840: L_088F984C: aot_gpr_31 = (0x088F9854u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 372u, 0x088F9854u, 0x089847ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 152u, 0x089847ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9854u) goto L_088F9854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9854: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(12), ctx.gpr[30]); aot_gpr_4 = (aot_gpr_16 + static_cast(32)); aot_gpr_31 = (0x088F9864u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 373u, 0x088F9864u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9864u) goto L_088F9864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9864: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_088F9868; @@ -4514,8 +5045,21 @@ L_088F9900: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088F990Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 386u, 0x088F990Cu, 0x0898458Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 99u, 0x0898458Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F990Cu) goto L_088F990C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F990C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4604,8 +5148,21 @@ L_088F99A4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088F99B4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 397u, 0x088F99B4u, 0x0898458Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 99u, 0x0898458Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F99B4u) goto L_088F99B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F99B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4675,8 +5232,8 @@ L_088F9A04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9A34: @@ -4693,16 +5250,42 @@ L_088F9A34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x088F9A6Cu); ctx.gpr[18] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 407u, 0x088F9A6Cu, 0x0898474Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 140u, 0x0898474Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9A6Cu) goto L_088F9A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9A6C: ctx.gpr[19] = (ctx.gpr[21] + static_cast(32)); ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-22848)); aot_gpr_31 = (0x088F9A80u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 408u, 0x088F9A80u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9A80u) goto L_088F9A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9A80: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088F9A8Cu); @@ -4788,8 +5371,8 @@ L_088F9B1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9B44: @@ -4812,8 +5395,21 @@ L_088F9B60: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088F9B78u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 421u, 0x088F9B78u, 0x089843C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 69u, 0x089843C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9B78u) goto L_088F9B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9B78: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4836,8 +5432,8 @@ L_088F9B8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9BA0: @@ -4856,8 +5452,21 @@ L_088F9BA0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088F9BDCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 425u, 0x088F9BDCu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9BDCu) goto L_088F9BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9BDC: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -4917,8 +5526,8 @@ L_088F9C38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9C58: @@ -5031,8 +5640,8 @@ L_088F9D40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088F9D60: @@ -5056,8 +5665,21 @@ L_088F9DA4: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088F9DB0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 446u, 0x088F9DB0u, 0x0898474Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 140u, 0x0898474Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9DB0u) goto L_088F9DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9DB0: { const bool branch_taken = aot_gpr_16 == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -5137,22 +5759,61 @@ L_088F9E2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(164), aot_gpr_4); aot_gpr_31 = (0x088F9E44u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 457u, 0x088F9E44u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9E44u) goto L_088F9E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9E44: aot_gpr_4 = (ctx.gpr[17] + static_cast(64)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), aot_gpr_4); aot_gpr_31 = (0x088F9E54u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 458u, 0x088F9E54u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9E54u) goto L_088F9E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9E54: aot_gpr_4 = (ctx.gpr[17] + static_cast(76)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(156), aot_gpr_4); aot_gpr_31 = (0x088F9E64u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 459u, 0x088F9E64u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9E64u) goto L_088F9E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9E64: aot_gpr_4 = (ctx.gpr[28] + static_cast(-22792)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), aot_gpr_4); @@ -5269,8 +5930,21 @@ L_088F9F54: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088F9F60u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(164))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 473u, 0x088F9F60u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088F9F60u) goto L_088F9F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088F9F60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5369,8 +6043,21 @@ L_088FA024: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088FA030u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 486u, 0x088FA030u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA030u) goto L_088FA030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA030: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5467,8 +6154,21 @@ L_088FA0F0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088FA0FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(156))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 498u, 0x088FA0FCu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA0FCu) goto L_088FA0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA0FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5577,8 +6277,8 @@ L_088FA1A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FA1D4: @@ -5595,8 +6295,21 @@ L_088FA1D4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x088FA20Cu); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 511u, 0x088FA20Cu, 0x0898474Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 140u, 0x0898474Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA20Cu) goto L_088FA20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA20C: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5676,8 +6389,21 @@ L_088FA288: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22848)); aot_gpr_31 = (0x088FA2A0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 522u, 0x088FA2A0u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA2A0u) goto L_088FA2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA2A0: ctx.gpr[22] = (0u | 62u); goto L_088FA2A4; @@ -5745,8 +6471,21 @@ L_088FA308: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088FA31Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 530u, 0x088FA31Cu, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA31Cu) goto L_088FA31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA31C: ctx.gpr[20] = (ctx.gpr[17] + static_cast(1)); { const bool branch_taken = 0u == 0u; @@ -5811,8 +6550,8 @@ L_088FA368: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FA390: @@ -5862,8 +6601,21 @@ L_088FA3DC: L_088FA3E8: aot_gpr_31 = (0x088FA3F0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 545u, 0x088FA3F0u, 0x089843C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 69u, 0x089843C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA3F0u) goto L_088FA3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA3F0: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5886,8 +6638,8 @@ L_088FA404: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FA418: @@ -5960,8 +6712,21 @@ L_088FA488: aot_gpr_4 = (ctx.gpr[20] + static_cast(60)); aot_gpr_31 = (0x088FA4B0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 556u, 0x088FA4B0u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA4B0u) goto L_088FA4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA4B0: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(80), aot_gpr_4); @@ -6004,8 +6769,8 @@ L_088FA4EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FA50C: @@ -6094,8 +6859,21 @@ L_088FA5BC: aot_gpr_4 = (aot_gpr_16 + static_cast(3)); aot_gpr_31 = (0x088FA5C8u); aot_gpr_5 = (0u | 59u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 571u, 0x088FA5C8u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA5C8u) goto L_088FA5C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA5C8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6318,8 +7096,21 @@ L_088FA740: aot_gpr_4 = (aot_gpr_16 + static_cast(2)); aot_gpr_31 = (0x088FA74Cu); aot_gpr_5 = (0u | 59u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 599u, 0x088FA74Cu, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA74Cu) goto L_088FA74C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA74C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6511,8 +7302,21 @@ L_088FA894: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x088FA8BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 623u, 0x088FA8BCu, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FA8BCu) goto L_088FA8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FA8BC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6630,8 +7434,8 @@ L_088FA998: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FA9C0: @@ -6653,8 +7457,21 @@ L_088FA9FC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088FAA08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 638u, 0x088FAA08u, 0x0898474Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 140u, 0x0898474Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FAA08u) goto L_088FAA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FAA08: { const bool branch_taken = ctx.gpr[17] == 0u; ctx.gpr[20] = (ctx.gpr[2] | 0u); @@ -6800,8 +7617,21 @@ L_088FAB04: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22804)); aot_gpr_31 = (0x088FAB10u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 658u, 0x088FAB10u, 0x089E8C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 134u, 0x089E8C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FAB10u) goto L_088FAB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FAB10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6823,14 +7653,40 @@ L_088FAB24: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088FAB30u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 661u, 0x088FAB30u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FAB30u) goto L_088FAB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FAB30: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22752)); aot_gpr_31 = (0x088FAB3Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 662u, 0x088FAB3Cu, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FAB3Cu) goto L_088FAB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FAB3C: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -7157,8 +8013,21 @@ L_088FAD6C: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x088FAD78u); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 708u, 0x088FAD78u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FAD78u) goto L_088FAD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FAD78: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7347,8 +8216,21 @@ L_088FAEE0: goto L_088FAEE4; L_088FAEE4: aot_gpr_31 = (0x088FAEECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 732u, 0x088FAEECu, 0x08984BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 216u, 0x08984BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FAEECu) goto L_088FAEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FAEEC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7377,8 +8259,21 @@ L_088FAF04: L_088FAF0C: aot_gpr_31 = (0x088FAF14u); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 736u, 0x088FAF14u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FAF14u) goto L_088FAF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FAF14: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -7427,8 +8322,21 @@ L_088FAF60: aot_gpr_4 = (aot_gpr_16 + static_cast(52)); aot_gpr_31 = (0x088FAF6Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 743u, 0x088FAF6Cu, 0x08984AC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 202u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 202u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 202u, 0x08984AC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FAF6Cu) goto L_088FAF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FAF6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7470,8 +8378,8 @@ L_088FAF98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FAFC0: @@ -7492,8 +8400,21 @@ L_088FAFC0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(36), aot_run_words); } aot_gpr_31 = (0x088FB014u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 750u, 0x088FB014u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FB014u) goto L_088FB014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FB014: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(80), 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7728,8 +8649,21 @@ L_088FB1AC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FB1BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 778u, 0x088FB1BCu, 0x0898458Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 99u, 0x0898458Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FB1BCu) goto L_088FB1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FB1BC: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -7918,8 +8852,8 @@ L_088FB2A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FB2D8: @@ -8020,8 +8954,8 @@ L_088FB398: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[8]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-14512))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FB3B0: @@ -8313,8 +9247,8 @@ L_088FB560: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FB584: @@ -8370,8 +9304,8 @@ L_088FB584: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FB5AC: @@ -8565,8 +9499,8 @@ L_088FB6E0: goto L_088FB6F4; L_088FB6F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FB6FC: @@ -8584,8 +9518,21 @@ L_088FB6FC: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x088FB738u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 876u, 0x088FB738u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FB738u) goto L_088FB738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FB738: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); ctx.gpr[8] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -8766,8 +9713,8 @@ L_088FB85C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FB878: @@ -8783,8 +9730,21 @@ L_088FB878: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088FB8A8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 894u, 0x088FB8A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FB8A8u) goto L_088FB8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FB8A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x088FB8B4u); @@ -8801,8 +9761,21 @@ L_088FB8B4: L_088FB8C0: aot_gpr_31 = (0x088FB8C8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 897u, 0x088FB8C8u, 0x08ACFCB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1090u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1090u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1090u, 0x08ACFCB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FB8C8u) goto L_088FB8C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FB8C8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -8837,8 +9810,21 @@ L_088FB8F8: goto L_088FB904; L_088FB904: aot_gpr_31 = (0x088FB90Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 902u, 0x088FB90Cu, 0x08B6A238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 324u, 0x08B6A238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FB90Cu) goto L_088FB90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FB90C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5904))); goto L_088FB910; @@ -8927,8 +9913,8 @@ L_088FB9B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FB9C8: @@ -8948,8 +9934,21 @@ L_088FB9C8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(68), aot_run_words); } aot_gpr_31 = (0x088FBA14u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 914u, 0x088FBA14u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBA14u) goto L_088FBA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBA14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -8970,8 +9969,21 @@ L_088FBA34: L_088FBA40: aot_gpr_31 = (0x088FBA48u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 917u, 0x088FBA48u, 0x08ACFCB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1090u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1090u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1090u, 0x08ACFCB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBA48u) goto L_088FBA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBA48: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -9006,8 +10018,21 @@ L_088FBA78: goto L_088FBA84; L_088FBA84: aot_gpr_31 = (0x088FBA8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 922u, 0x088FBA8Cu, 0x08B6A238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 324u, 0x08B6A238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBA8Cu) goto L_088FBA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBA8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5904))); goto L_088FBA90; @@ -9018,8 +10043,21 @@ L_088FBA90: ctx.gpr[8] = (0u + static_cast(-1)); aot_gpr_31 = (0x088FBAA8u); ctx.gpr[9] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 924u, 0x088FBAA8u, 0x088C59F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 319u, 0x088C59F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBAA8u) goto L_088FBAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBAA8: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -9083,8 +10121,21 @@ L_088FBAF4: } L_088FBB04: aot_gpr_31 = (0x088FBB0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 929u, 0x088FBB0Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBB0Cu) goto L_088FBB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBB0C: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -9137,8 +10188,8 @@ L_088FBB68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FBB9C: @@ -9157,8 +10208,21 @@ L_088FBB9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x088FBBD8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 935u, 0x088FBBD8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBBD8u) goto L_088FBBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBBD8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -9168,8 +10232,21 @@ L_088FBBD8: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x088FBBF8u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 936u, 0x088FBBF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBBF8u) goto L_088FBBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBBF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -9204,8 +10281,21 @@ L_088FBC1C: L_088FBC28: aot_gpr_31 = (0x088FBC30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 942u, 0x088FBC30u, 0x08ACFCB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1090u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1090u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1090u, 0x08ACFCB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBC30u) goto L_088FBC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBC30: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -9240,8 +10330,21 @@ L_088FBC60: goto L_088FBC6C; L_088FBC6C: aot_gpr_31 = (0x088FBC74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 947u, 0x088FBC74u, 0x08B6A238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 324u, 0x08B6A238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBC74u) goto L_088FBC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBC74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5904))); goto L_088FBC78; @@ -9415,8 +10518,8 @@ L_088FBDC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FBDE0: @@ -9438,8 +10541,21 @@ L_088FBDE0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(92), aot_run_words); } aot_gpr_31 = (0x088FBE34u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 967u, 0x088FBE34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBE34u) goto L_088FBE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBE34: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -9451,8 +10567,21 @@ L_088FBE34: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088FBE5Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 968u, 0x088FBE5Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBE5Cu) goto L_088FBE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBE5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9493,8 +10622,21 @@ L_088FBE94: L_088FBEA0: aot_gpr_31 = (0x088FBEA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 974u, 0x088FBEA8u, 0x08ACFCB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1090u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1090u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1090u, 0x08ACFCB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBEA8u) goto L_088FBEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBEA8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -9523,8 +10665,21 @@ L_088FBECC: } L_088FBED8: aot_gpr_31 = (0x088FBEE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 978u, 0x088FBEE0u, 0x08B6A238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 324u, 0x08B6A238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBEE0u) goto L_088FBEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBEE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5904))); ctx.gpr[9] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0)))))); @@ -9533,8 +10688,21 @@ L_088FBEE0: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x088FBEFCu); ctx.gpr[8] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 979u, 0x088FBEFCu, 0x088C59F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 319u, 0x088C59F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBEFCu) goto L_088FBEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBEFC: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -9598,8 +10766,21 @@ L_088FBF48: } L_088FBF58: aot_gpr_31 = (0x088FBF60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0061->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0061_entry, 984u, 0x088FBF60u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FBF60u) goto L_088FBF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FBF60: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -9654,8 +10835,8 @@ L_088FBFBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FBFF8: diff --git a/profiles/vcs/generated/generated_unit_0062.cpp b/profiles/vcs/generated/generated_unit_0062.cpp index 1793dad..4d80196 100644 --- a/profiles/vcs/generated/generated_unit_0062.cpp +++ b/profiles/vcs/generated/generated_unit_0062.cpp @@ -921,6 +921,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x088FC000u; + if (local_delta_v813 >= 16316u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -940,20 +964,59 @@ L_088FC000: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088FC014u); ctx.gpr[17] = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 2u, 0x088FC014u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC014u) goto L_088FC014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC014: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC020u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 3u, 0x088FC020u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC020u) goto L_088FC020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC020: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC02Cu); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 4u, 0x088FC02Cu, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC02Cu) goto L_088FC02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC02C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -963,8 +1026,8 @@ L_088FC02C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC040: @@ -975,8 +1038,21 @@ L_088FC040: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088FC05Cu); ctx.gpr[17] = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 6u, 0x088FC05Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC05Cu) goto L_088FC05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC05C: aot_fpr_12 = std::bit_cast(ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -988,8 +1064,21 @@ L_088FC06C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC078u); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 8u, 0x088FC078u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC078u) goto L_088FC078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC078: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -999,8 +1088,8 @@ L_088FC078: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC08C: @@ -1013,8 +1102,21 @@ L_088FC08C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(108), aot_run_words); } aot_gpr_31 = (0x088FC0CCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 10u, 0x088FC0CCu, 0x0889D588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 284u, 0x0889D588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC0CCu) goto L_088FC0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC0CC: ctx.gpr[17] = (ctx.gpr[2] | 0u); ctx.gpr[18] = (0u | 1u); @@ -1042,8 +1144,21 @@ L_088FC0F4: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088FC108u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 14u, 0x088FC108u, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC108u) goto L_088FC108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC108: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1056,8 +1171,21 @@ L_088FC110: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FC120u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 16u, 0x088FC120u, 0x089E6F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 622u, 0x089E6F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC120u) goto L_088FC120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC120: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1068,8 +1196,21 @@ L_088FC120: L_088FC128: aot_gpr_31 = (0x088FC130u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 18u, 0x088FC130u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC130u) goto L_088FC130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC130: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(0)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1091,8 +1232,21 @@ L_088FC144: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC154u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 21u, 0x088FC154u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC154u) goto L_088FC154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC154: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1103,8 +1257,21 @@ L_088FC154: L_088FC15C: aot_gpr_31 = (0x088FC164u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 23u, 0x088FC164u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC164u) goto L_088FC164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC164: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -1132,14 +1299,40 @@ L_088FC184: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC194u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 27u, 0x088FC194u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC194u) goto L_088FC194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC194: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC1A0u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 28u, 0x088FC1A0u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC1A0u) goto L_088FC1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC1A0: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1160,8 +1353,21 @@ L_088FC1B8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088FC1CCu); aot_gpr_6 = (aot_gpr_6 + static_cast(-14304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 31u, 0x088FC1CCu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC1CCu) goto L_088FC1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC1CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1196,8 +1402,8 @@ L_088FC20C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-14168))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC224: @@ -1205,15 +1411,41 @@ L_088FC224: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_gpr_31 = (0x088FC234u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 36u, 0x088FC234u, 0x088FBFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 989u, 0x088FBFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC234u) goto L_088FC234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC234: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_gpr_6 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x088FC244u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 37u, 0x088FC244u, 0x088FBFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 989u, 0x088FBFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC244u) goto L_088FC244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC244: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1225,8 +1457,21 @@ L_088FC254: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC264u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 39u, 0x088FC264u, 0x088FBFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 989u, 0x088FBFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC264u) goto L_088FC264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC264: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1265,15 +1510,41 @@ L_088FC29C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC2ACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 45u, 0x088FC2ACu, 0x088FBFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 989u, 0x088FBFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC2ACu) goto L_088FC2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC2AC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC2BCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 46u, 0x088FC2BCu, 0x088FBFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 989u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 989u, 0x088FBFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC2BCu) goto L_088FC2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC2BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1286,8 +1557,21 @@ L_088FC2C4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FC2D4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 48u, 0x088FC2D4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC2D4u) goto L_088FC2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC2D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC2E0u); @@ -1298,8 +1582,21 @@ L_088FC2E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC2ECu); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 50u, 0x088FC2ECu, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC2ECu) goto L_088FC2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC2EC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(0)))))); @@ -1328,8 +1625,8 @@ L_088FC300: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC330: @@ -1342,16 +1639,42 @@ L_088FC330: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(108), aot_gpr_31); aot_gpr_31 = (0x088FC354u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 54u, 0x088FC354u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC354u) goto L_088FC354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC354: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088FC368u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 55u, 0x088FC368u, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC368u) goto L_088FC368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC368: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1364,16 +1687,42 @@ L_088FC370: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC380u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 57u, 0x088FC380u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC380u) goto L_088FC380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC380: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088FC394u); aot_gpr_6 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 58u, 0x088FC394u, 0x089E6A94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 563u, 0x089E6A94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC394u) goto L_088FC394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC394: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1386,8 +1735,21 @@ L_088FC3A0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088FC3ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 60u, 0x088FC3ACu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC3ACu) goto L_088FC3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC3AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC3B8u); @@ -1408,8 +1770,21 @@ L_088FC3C0: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088FC3D4u); aot_gpr_6 = (aot_gpr_6 + static_cast(-14276)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 63u, 0x088FC3D4u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC3D4u) goto L_088FC3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC3D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1420,8 +1795,21 @@ L_088FC3D4: L_088FC3DC: aot_gpr_31 = (0x088FC3E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 65u, 0x088FC3E4u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC3E4u) goto L_088FC3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC3E4: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_088FC3E8; @@ -1435,8 +1823,8 @@ L_088FC3E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC400: @@ -1448,16 +1836,42 @@ L_088FC400: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_31); aot_gpr_31 = (0x088FC420u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 68u, 0x088FC420u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC420u) goto L_088FC420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC420: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088FC434u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 69u, 0x088FC434u, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC434u) goto L_088FC434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC434: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1471,8 +1885,21 @@ L_088FC43C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088FC450u); aot_gpr_6 = (aot_gpr_6 + static_cast(-14276)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 71u, 0x088FC450u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC450u) goto L_088FC450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC450: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1484,28 +1911,80 @@ L_088FC458: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC464u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 73u, 0x088FC464u, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC464u) goto L_088FC464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC464: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC470u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 74u, 0x088FC470u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC470u) goto L_088FC470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC470: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088FC484u); aot_gpr_6 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 75u, 0x088FC484u, 0x089E6B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 570u, 0x089E6B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC484u) goto L_088FC484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC484: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC490u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 76u, 0x088FC490u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC490u) goto L_088FC490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC490: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_088FC494; @@ -1518,8 +1997,8 @@ L_088FC494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC4A8: @@ -1532,8 +2011,21 @@ L_088FC4A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088FC4CCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 79u, 0x088FC4CCu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC4CCu) goto L_088FC4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC4CC: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1541,14 +2033,40 @@ L_088FC4CC: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x088FC4E4u); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 80u, 0x088FC4E4u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC4E4u) goto L_088FC4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC4E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FC4F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 81u, 0x088FC4F0u, 0x088068E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 331u, 0x088068E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC4F0u) goto L_088FC4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC4F0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1569,8 +2087,21 @@ L_088FC500: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088FC510u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 84u, 0x088FC510u, 0x08807B18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 571u, 0x08807B18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC510u) goto L_088FC510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC510: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -1591,8 +2122,21 @@ L_088FC520: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x088FC52Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 87u, 0x088FC52Cu, 0x08807B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 575u, 0x08807B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC52Cu) goto L_088FC52C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC52C: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_088FC530; @@ -1615,15 +2159,41 @@ L_088FC540: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FC54Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 91u, 0x088FC54Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC54Cu) goto L_088FC54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC54C: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_5 = (0u - aot_gpr_16); aot_gpr_31 = (0x088FC55Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 92u, 0x088FC55Cu, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC55Cu) goto L_088FC55C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC55C: ctx.gpr[2] = (aot_gpr_16 | 0u); goto L_088FC560; @@ -1637,8 +2207,8 @@ L_088FC560: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC578: @@ -1651,8 +2221,8 @@ L_088FC588: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC594: @@ -1662,8 +2232,21 @@ L_088FC594: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088FC5ACu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 97u, 0x088FC5ACu, 0x0889D4C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 273u, 0x0889D4C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC5ACu) goto L_088FC5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC5AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC5B8u); @@ -1674,8 +2257,8 @@ L_088FC5B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC5C8: @@ -1687,14 +2270,40 @@ L_088FC5C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x088FC5E8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-22704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 100u, 0x088FC5E8u, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC5E8u) goto L_088FC5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC5E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FC5F4u); aot_gpr_5 = (0u + static_cast(-10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 101u, 0x088FC5F4u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC5F4u) goto L_088FC5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC5F4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FC600u); @@ -1718,8 +2327,21 @@ L_088FC60C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x088FC62Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 104u, 0x088FC62Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC62Cu) goto L_088FC62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC62C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); { const bool branch_taken = static_cast(aot_gpr_16) < 0; @@ -1745,15 +2367,41 @@ L_088FC648: L_088FC650: aot_gpr_31 = (0x088FC658u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 108u, 0x088FC658u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC658u) goto L_088FC658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC658: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x088FC668u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 109u, 0x088FC668u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC668u) goto L_088FC668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC668: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1776,8 +2424,8 @@ L_088FC67C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC690: @@ -1790,8 +2438,21 @@ L_088FC690: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x088FC6B8u); aot_gpr_5 = (0u | 99u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 113u, 0x088FC6B8u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC6B8u) goto L_088FC6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC6B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1806,8 +2467,21 @@ L_088FC6C4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FC6D0u); aot_gpr_5 = (0u | 114u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 116u, 0x088FC6D0u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC6D0u) goto L_088FC6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC6D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1822,8 +2496,21 @@ L_088FC6DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FC6E8u); aot_gpr_5 = (0u | 108u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 119u, 0x088FC6E8u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC6E8u) goto L_088FC6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC6E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1855,8 +2542,8 @@ L_088FC700: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC71C: @@ -1906,8 +2593,8 @@ L_088FC76C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC77C: @@ -1939,8 +2626,21 @@ L_088FC7B0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088FC7C4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 135u, 0x088FC7C4u, 0x089E699Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 540u, 0x089E699Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC7C4u) goto L_088FC7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC7C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1953,16 +2653,42 @@ L_088FC7CC: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x088FC7DCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 137u, 0x088FC7DCu, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC7DCu) goto L_088FC7DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC7DC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC7F0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 138u, 0x088FC7F0u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC7F0u) goto L_088FC7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC7F0: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1970,8 +2696,21 @@ L_088FC7F0: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x088FC808u); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 139u, 0x088FC808u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC808u) goto L_088FC808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC808: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_6 = (2192u << 16u); @@ -1985,14 +2724,40 @@ L_088FC81C: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088FC830u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 141u, 0x088FC830u, 0x089E699Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 540u, 0x089E699Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC830u) goto L_088FC830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC830: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22704)); aot_gpr_31 = (0x088FC83Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 142u, 0x088FC83Cu, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC83Cu) goto L_088FC83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC83C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC848u); @@ -2003,8 +2768,21 @@ L_088FC848: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC854u); aot_gpr_5 = (0u + static_cast(-10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 144u, 0x088FC854u, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC854u) goto L_088FC854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC854: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -2016,8 +2794,8 @@ L_088FC854: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC870: @@ -2026,14 +2804,40 @@ L_088FC870: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x088FC888u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 146u, 0x088FC888u, 0x089E69D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 545u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 545u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 545u, 0x089E69D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC888u) goto L_088FC888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC888: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x088FC894u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 147u, 0x088FC894u, 0x089E69D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 544u, 0x089E69D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC894u) goto L_088FC894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC894: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2056,8 +2860,21 @@ L_088FC8AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC8BCu); aot_gpr_6 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 150u, 0x088FC8BCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC8BCu) goto L_088FC8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC8BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2069,14 +2886,40 @@ L_088FC8C4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22704)); aot_gpr_31 = (0x088FC8D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 152u, 0x088FC8D0u, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC8D0u) goto L_088FC8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC8D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC8DCu); aot_gpr_5 = (0u + static_cast(-10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 153u, 0x088FC8DCu, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC8DCu) goto L_088FC8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC8DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FC8E8u); @@ -2086,13 +2929,39 @@ L_088FC8E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC8F4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 155u, 0x088FC8F4u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC8F4u) goto L_088FC8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC8F4: aot_gpr_31 = (0x088FC8FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 156u, 0x088FC8FCu, 0x089E69E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 546u, 0x089E69E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC8FCu) goto L_088FC8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC8FC: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2110,8 +2979,8 @@ L_088FC90C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC924: @@ -2153,8 +3022,21 @@ L_088FC974: L_088FC97C: aot_gpr_31 = (0x088FC984u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 163u, 0x088FC984u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC984u) goto L_088FC984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC984: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2174,8 +3056,21 @@ L_088FC994: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC9A0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 166u, 0x088FC9A0u, 0x0889E534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 538u, 0x0889E534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FC9A0u) goto L_088FC9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FC9A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FC9ACu); @@ -2202,8 +3097,8 @@ L_088FC9B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FC9D4: @@ -2233,8 +3128,21 @@ L_088FCA18: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCA28u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 172u, 0x088FCA28u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCA28u) goto L_088FCA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCA28: aot_gpr_4 = (ctx.gpr[28] + static_cast(-22404)); aot_gpr_5 = (ctx.gpr[28] + static_cast(-22396)); @@ -2270,8 +3178,21 @@ L_088FCA8C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCA98u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 174u, 0x088FCA98u, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCA98u) goto L_088FCA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCA98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2284,8 +3205,21 @@ L_088FCAA0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCAB0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 176u, 0x088FCAB0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCAB0u) goto L_088FCAB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCAB0: aot_gpr_4 = (ctx.gpr[28] + static_cast(-22404)); aot_gpr_5 = (ctx.gpr[28] + static_cast(-22396)); @@ -2330,8 +3264,21 @@ L_088FCB1C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCB2Cu); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 179u, 0x088FCB2Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCB2Cu) goto L_088FCB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCB2C: aot_gpr_5 = (ctx.gpr[17] | 0u); goto L_088FCB30; @@ -2340,8 +3287,21 @@ L_088FCB30: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCB40u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 181u, 0x088FCB40u, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCB40u) goto L_088FCB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCB40: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2370,8 +3330,21 @@ L_088FCB5C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FCB70u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 185u, 0x088FCB70u, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCB70u) goto L_088FCB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCB70: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2396,8 +3369,21 @@ L_088FCB88: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCB98u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 189u, 0x088FCB98u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCB98u) goto L_088FCB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCB98: ctx.gpr[18] = (ctx.gpr[17] + static_cast(1)); goto L_088FCB9C; @@ -2406,8 +3392,21 @@ L_088FCB9C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FCBACu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 191u, 0x088FCBACu, 0x089E69E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 547u, 0x089E69E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCBACu) goto L_088FCBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCBAC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2430,22 +3429,61 @@ L_088FCBC4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCBD4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 194u, 0x088FCBD4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCBD4u) goto L_088FCBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCBD4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCBE4u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 195u, 0x088FCBE4u, 0x089E6F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 622u, 0x089E6F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCBE4u) goto L_088FCBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCBE4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCBF4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 196u, 0x088FCBF4u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCBF4u) goto L_088FCBF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCBF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -2460,8 +3498,21 @@ L_088FCC00: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_gpr_31 = (0x088FCC10u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 198u, 0x088FCC10u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCC10u) goto L_088FCC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCC10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); @@ -2508,8 +3559,21 @@ L_088FCC48: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_gpr_31 = (0x088FCC58u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 204u, 0x088FCC58u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCC58u) goto L_088FCC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCC58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2531,8 +3595,21 @@ L_088FCC74: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_gpr_31 = (0x088FCC80u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 207u, 0x088FCC80u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCC80u) goto L_088FCC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCC80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2559,8 +3636,21 @@ L_088FCC98: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x088FCCA8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 211u, 0x088FCCA8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCCA8u) goto L_088FCCA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCCA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2574,8 +3664,21 @@ L_088FCCB0: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x088FCCC4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 213u, 0x088FCCC4u, 0x08806F24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 440u, 0x08806F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCCC4u) goto L_088FCCC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCCC4: aot_gpr_31 = (0x088FCCCCu); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -2585,8 +3688,21 @@ L_088FCCCC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCCD8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 215u, 0x088FCCD8u, 0x08807904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCCD8u) goto L_088FCCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCCD8: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -2604,8 +3720,21 @@ L_088FCCE8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FCCF4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 218u, 0x088FCCF4u, 0x08807904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 546u, 0x08807904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCCF4u) goto L_088FCCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCCF4: ctx.gpr[2] = (0u | 1u); goto L_088FCCF8; @@ -2625,8 +3754,8 @@ L_088FCCF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FCD28: @@ -2639,23 +3768,62 @@ L_088FCD28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088FCD4Cu); aot_gpr_6 = (aot_gpr_6 + static_cast(-14384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 221u, 0x088FCD4Cu, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCD4Cu) goto L_088FCD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCD4C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22360)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FCD5Cu); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 222u, 0x088FCD5Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCD5Cu) goto L_088FCD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCD5C: aot_gpr_5 = (2192u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x088FCD70u); aot_gpr_5 = (aot_gpr_5 + static_cast(-13868)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 223u, 0x088FCD70u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCD70u) goto L_088FCD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCD70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FCD7Cu); @@ -2668,8 +3836,8 @@ L_088FCD7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FCD90: @@ -2747,8 +3915,8 @@ L_088FCE10: L_088FCE14: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FCE1C: @@ -2776,16 +3944,16 @@ L_088FCE50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FCE64: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-29156), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FCE70: @@ -2888,8 +4056,8 @@ L_088FCF20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FCF38: @@ -2972,8 +4140,8 @@ L_088FCFCC: L_088FCFD0: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FCFD8: @@ -2986,8 +4154,21 @@ L_088FCFD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x088FCFFCu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 259u, 0x088FCFFCu, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FCFFCu) goto L_088FCFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FCFFC: aot_gpr_4 = (2236u << 16u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(29704), ctx.gpr[2]); @@ -3003,8 +4184,8 @@ L_088FD014: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD028: @@ -3024,8 +4205,8 @@ L_088FD028: aot_mem.aot_direct_store_word_right(aot_gpr_6 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD068: @@ -3047,8 +4228,8 @@ L_088FD090: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD09C: @@ -3058,8 +4239,21 @@ L_088FD09C: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088FD0BCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 265u, 0x088FD0BCu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD0BCu) goto L_088FD0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD0BC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088FD0C8u); @@ -3080,8 +4274,21 @@ L_088FD0D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD0E4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 268u, 0x088FD0E4u, 0x08931D08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 355u, 0x08931D08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD0E4u) goto L_088FD0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD0E4: aot_gpr_5 = (ctx.gpr[2] >> 24u); aot_gpr_5 = (aot_gpr_5 & 255u); @@ -3091,20 +4298,59 @@ L_088FD0E4: ctx.gpr[7] = (ctx.gpr[7] & 255u); aot_gpr_31 = (0x088FD104u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 269u, 0x088FD104u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD104u) goto L_088FD104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD104: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088FD114u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 270u, 0x088FD114u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD114u) goto L_088FD114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD114: aot_gpr_31 = (0x088FD11Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 271u, 0x088FD11Cu, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD11Cu) goto L_088FD11C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD11C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3116,8 +4362,8 @@ L_088FD11C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD138: @@ -3127,8 +4373,21 @@ L_088FD138: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x088FD158u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 273u, 0x088FD158u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD158u) goto L_088FD158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD158: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x088FD164u); @@ -3149,8 +4408,21 @@ L_088FD174: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD180u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 276u, 0x088FD180u, 0x08931D08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 355u, 0x08931D08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD180u) goto L_088FD180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD180: aot_gpr_5 = (ctx.gpr[2] >> 24u); aot_gpr_5 = (aot_gpr_5 & 255u); @@ -3160,20 +4432,59 @@ L_088FD180: ctx.gpr[7] = (ctx.gpr[7] & 255u); aot_gpr_31 = (0x088FD1A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 277u, 0x088FD1A0u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD1A0u) goto L_088FD1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD1A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088FD1B0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 278u, 0x088FD1B0u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD1B0u) goto L_088FD1B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD1B0: aot_gpr_31 = (0x088FD1B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 279u, 0x088FD1B8u, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD1B8u) goto L_088FD1B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD1B8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3185,8 +4496,8 @@ L_088FD1B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD1D4: @@ -3197,8 +4508,21 @@ L_088FD1D4: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x088FD1F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 281u, 0x088FD1F0u, 0x08A1C640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 53u, 0x08A1C640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD1F0u) goto L_088FD1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD1F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD1FCu); @@ -3211,8 +4535,8 @@ L_088FD1FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD210: @@ -3248,8 +4572,21 @@ L_088FD210: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x088FD2ACu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 284u, 0x088FD2ACu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD2ACu) goto L_088FD2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD2AC: aot_gpr_4 = (ctx.gpr[19] + static_cast(15)); ctx.gpr[18] = (aot_mem.aot_direct_load_word_left(aot_gpr_4 + static_cast(3), ctx.gpr[18])); @@ -3270,8 +4607,21 @@ L_088FD2AC: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x088FD2FCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 285u, 0x088FD2FCu, 0x08A1D580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 261u, 0x08A1D580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD2FCu) goto L_088FD2FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD2FC: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -3285,8 +4635,8 @@ L_088FD2FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD320: @@ -3305,8 +4655,21 @@ L_088FD344: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x088FD360u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 288u, 0x088FD360u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD360u) goto L_088FD360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD360: ctx.gpr[19] = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -3314,8 +4677,21 @@ L_088FD360: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x088FD378u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 289u, 0x088FD378u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD378u) goto L_088FD378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD378: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x088FD384u); @@ -3444,16 +4820,42 @@ L_088FD544: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD550u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 293u, 0x088FD550u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD550u) goto L_088FD550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD550: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_5 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x088FD564u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 294u, 0x088FD564u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD564u) goto L_088FD564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD564: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -3484,8 +4886,8 @@ L_088FD588: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD5A4: @@ -3504,8 +4906,21 @@ L_088FD5A4: } L_088FD5C4: aot_gpr_31 = (0x088FD5CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 300u, 0x088FD5CCu, 0x08A1CC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 125u, 0x08A1CC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD5CCu) goto L_088FD5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD5CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3515,14 +4930,27 @@ L_088FD5CC: } L_088FD5D4: aot_gpr_31 = (0x088FD5DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 302u, 0x088FD5DCu, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD5DCu) goto L_088FD5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD5DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD5E8: @@ -3575,16 +5003,42 @@ L_088FD67C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD688u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 308u, 0x088FD688u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD688u) goto L_088FD688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD688: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FD69Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 309u, 0x088FD69Cu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD69Cu) goto L_088FD69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD69C: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(16), static_cast(0u)); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); @@ -3606,8 +5060,8 @@ L_088FD6B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD6D8: @@ -3620,8 +5074,21 @@ L_088FD6D8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x088FD708u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 312u, 0x088FD708u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD708u) goto L_088FD708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD708: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3662,8 +5129,21 @@ L_088FD754: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FD764u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 317u, 0x088FD764u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD764u) goto L_088FD764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD764: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3692,8 +5172,21 @@ L_088FD788: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x088FD798u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 321u, 0x088FD798u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD798u) goto L_088FD798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD798: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3733,8 +5226,21 @@ L_088FD7E0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FD7F0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 326u, 0x088FD7F0u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD7F0u) goto L_088FD7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD7F0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3777,8 +5283,21 @@ L_088FD82C: aot_gpr_5 = (aot_gpr_5 + static_cast(-14024)); aot_gpr_31 = (0x088FD83Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 333u, 0x088FD83Cu, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD83Cu) goto L_088FD83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD83C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -3790,8 +5309,8 @@ L_088FD83C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD858: @@ -3812,8 +5331,8 @@ L_088FD858: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FD89C: @@ -3836,15 +5355,41 @@ L_088FD8D8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x088FD8E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 338u, 0x088FD8E8u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD8E8u) goto L_088FD8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD8E8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22192)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD8F8u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 339u, 0x088FD8F8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD8F8u) goto L_088FD8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD8F8: aot_gpr_5 = (17279u << 16u); aot_fpr_20 = std::bit_cast(0u); @@ -3854,8 +5399,21 @@ L_088FD8F8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088FD918u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 340u, 0x088FD918u, 0x08931A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 305u, 0x08931A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD918u) goto L_088FD918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD918: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD924u); @@ -3867,16 +5425,42 @@ L_088FD924: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD934u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 342u, 0x088FD934u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD934u) goto L_088FD934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD934: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088FD948u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 343u, 0x088FD948u, 0x08931A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 305u, 0x08931A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD948u) goto L_088FD948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD948: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD954u); @@ -3888,16 +5472,42 @@ L_088FD954: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD964u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 345u, 0x088FD964u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD964u) goto L_088FD964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD964: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088FD978u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 346u, 0x088FD978u, 0x08931A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 305u, 0x08931A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD978u) goto L_088FD978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD978: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD984u); @@ -3909,16 +5519,42 @@ L_088FD984: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD994u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 348u, 0x088FD994u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD994u) goto L_088FD994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD994: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088FD9A8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 349u, 0x088FD9A8u, 0x08931A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 305u, 0x08931A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD9A8u) goto L_088FD9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD9A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD9B4u); @@ -3930,16 +5566,42 @@ L_088FD9B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD9C4u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 351u, 0x088FD9C4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD9C4u) goto L_088FD9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD9C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088FD9D8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 352u, 0x088FD9D8u, 0x08931A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 305u, 0x08931A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD9D8u) goto L_088FD9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD9D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD9E4u); @@ -3951,16 +5613,42 @@ L_088FD9E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FD9F4u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 354u, 0x088FD9F4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FD9F4u) goto L_088FD9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FD9F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x088FDA08u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 355u, 0x088FDA08u, 0x08931A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 305u, 0x08931A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDA08u) goto L_088FDA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDA08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDA14u); @@ -3972,16 +5660,42 @@ L_088FDA14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDA24u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 357u, 0x088FDA24u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDA24u) goto L_088FDA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDA24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088FDA38u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 358u, 0x088FDA38u, 0x08931A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 305u, 0x08931A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDA38u) goto L_088FDA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDA38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDA44u); @@ -3993,16 +5707,42 @@ L_088FDA44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDA54u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 360u, 0x088FDA54u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDA54u) goto L_088FDA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDA54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x088FDA68u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 361u, 0x088FDA68u, 0x08931A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 305u, 0x08931A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDA68u) goto L_088FDA68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDA68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDA74u); @@ -4013,14 +5753,40 @@ L_088FDA74: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22132)); aot_gpr_31 = (0x088FDA80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 363u, 0x088FDA80u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDA80u) goto L_088FDA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDA80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDA8Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 364u, 0x088FDA8Cu, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDA8Cu) goto L_088FDA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDA8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDA98u); @@ -4030,16 +5796,42 @@ L_088FDA8C: L_088FDA98: aot_gpr_31 = (0x088FDAA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 366u, 0x088FDAA0u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDAA0u) goto L_088FDAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDAA0: ctx.gpr[17] = (ctx.gpr[28] + static_cast(-22124)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FDAB4u); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 367u, 0x088FDAB4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDAB4u) goto L_088FDAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDAB4: aot_gpr_5 = (16896u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4057,14 +5849,40 @@ L_088FDAD0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22108)); aot_gpr_31 = (0x088FDADCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 370u, 0x088FDADCu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDADCu) goto L_088FDADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDADC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDAE8u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 371u, 0x088FDAE8u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDAE8u) goto L_088FDAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDAE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDAF4u); @@ -4074,15 +5892,41 @@ L_088FDAE8: L_088FDAF4: aot_gpr_31 = (0x088FDAFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 373u, 0x088FDAFCu, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDAFCu) goto L_088FDAFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDAFC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-22100)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDB0Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 374u, 0x088FDB0Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDB0Cu) goto L_088FDB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDB0C: aot_gpr_5 = (50283u << 16u); aot_gpr_5 = (aot_gpr_5 | 16384u); @@ -4102,8 +5946,21 @@ L_088FDB2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDB3Cu); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 377u, 0x088FDB3Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDB3Cu) goto L_088FDB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDB3C: aot_gpr_5 = (17224u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4122,8 +5979,21 @@ L_088FDB58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDB68u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 380u, 0x088FDB68u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDB68u) goto L_088FDB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDB68: aot_gpr_5 = (17223u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4142,8 +6012,21 @@ L_088FDB84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDB94u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 383u, 0x088FDB94u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDB94u) goto L_088FDB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDB94: aot_gpr_5 = (17278u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4162,8 +6045,21 @@ L_088FDBB0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDBC0u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 386u, 0x088FDBC0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDBC0u) goto L_088FDBC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDBC0: aot_gpr_5 = (17200u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4182,8 +6078,21 @@ L_088FDBDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDBECu); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 389u, 0x088FDBECu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDBECu) goto L_088FDBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDBEC: aot_gpr_5 = (17235u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4202,8 +6111,21 @@ L_088FDC08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDC18u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 392u, 0x088FDC18u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDC18u) goto L_088FDC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDC18: aot_gpr_5 = (17233u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4222,8 +6144,21 @@ L_088FDC34: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDC44u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 395u, 0x088FDC44u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDC44u) goto L_088FDC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDC44: aot_gpr_5 = (17225u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4242,8 +6177,21 @@ L_088FDC60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDC70u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 398u, 0x088FDC70u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDC70u) goto L_088FDC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDC70: aot_gpr_5 = (17287u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4262,8 +6210,21 @@ L_088FDC8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDC9Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 401u, 0x088FDC9Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDC9Cu) goto L_088FDC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDC9C: aot_gpr_5 = (17201u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4282,8 +6243,21 @@ L_088FDCB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDCC8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 404u, 0x088FDCC8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDCC8u) goto L_088FDCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDCC8: aot_gpr_5 = (17234u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4302,8 +6276,21 @@ L_088FDCE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDCF4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 407u, 0x088FDCF4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDCF4u) goto L_088FDCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDCF4: aot_gpr_5 = (17262u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4322,8 +6309,21 @@ L_088FDD10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDD20u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 410u, 0x088FDD20u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDD20u) goto L_088FDD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDD20: aot_gpr_5 = (50288u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4342,8 +6342,21 @@ L_088FDD3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDD4Cu); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 413u, 0x088FDD4Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDD4Cu) goto L_088FDD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDD4C: aot_gpr_5 = (17247u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4362,8 +6375,21 @@ L_088FDD68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDD78u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 416u, 0x088FDD78u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDD78u) goto L_088FDD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDD78: aot_gpr_5 = (17216u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4382,8 +6408,21 @@ L_088FDD94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDDA4u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 419u, 0x088FDDA4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDDA4u) goto L_088FDDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDDA4: aot_gpr_5 = (17241u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4402,8 +6441,21 @@ L_088FDDC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDDD0u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 422u, 0x088FDDD0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDDD0u) goto L_088FDDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDDD0: aot_gpr_5 = (17204u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4422,8 +6474,21 @@ L_088FDDEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDDFCu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 425u, 0x088FDDFCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDDFCu) goto L_088FDDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDDFC: aot_gpr_5 = (50289u << 16u); aot_gpr_5 = (aot_gpr_5 | 16384u); @@ -4443,8 +6508,21 @@ L_088FDE1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDE2Cu); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 428u, 0x088FDE2Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDE2Cu) goto L_088FDE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDE2C: aot_gpr_5 = (17264u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4463,8 +6541,21 @@ L_088FDE48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDE58u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 431u, 0x088FDE58u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDE58u) goto L_088FDE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDE58: aot_gpr_5 = (17199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4483,8 +6574,21 @@ L_088FDE74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDE84u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 434u, 0x088FDE84u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDE84u) goto L_088FDE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDE84: aot_gpr_5 = (17207u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4503,8 +6607,21 @@ L_088FDEA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDEB0u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 437u, 0x088FDEB0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDEB0u) goto L_088FDEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDEB0: aot_gpr_5 = (17230u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4523,8 +6640,21 @@ L_088FDECC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDEDCu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 440u, 0x088FDEDCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDEDCu) goto L_088FDEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDEDC: aot_gpr_5 = (17248u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4543,8 +6673,21 @@ L_088FDEF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDF08u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 443u, 0x088FDF08u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDF08u) goto L_088FDF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDF08: aot_gpr_5 = (50286u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -4564,8 +6707,21 @@ L_088FDF28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDF38u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 446u, 0x088FDF38u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDF38u) goto L_088FDF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDF38: aot_gpr_5 = (50285u << 16u); aot_gpr_5 = (aot_gpr_5 | 49152u); @@ -4585,8 +6741,21 @@ L_088FDF58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDF68u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 449u, 0x088FDF68u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDF68u) goto L_088FDF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDF68: aot_gpr_5 = (50288u << 16u); aot_gpr_5 = (aot_gpr_5 | 16384u); @@ -4606,8 +6775,21 @@ L_088FDF88: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDF98u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 452u, 0x088FDF98u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDF98u) goto L_088FDF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDF98: aot_gpr_5 = (50283u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4626,8 +6808,21 @@ L_088FDFB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDFC4u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 455u, 0x088FDFC4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDFC4u) goto L_088FDFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDFC4: aot_gpr_5 = (50282u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -4647,8 +6842,21 @@ L_088FDFE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FDFF4u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 458u, 0x088FDFF4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FDFF4u) goto L_088FDFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FDFF4: aot_gpr_5 = (50282u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4667,8 +6875,21 @@ L_088FE010: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE020u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 461u, 0x088FE020u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE020u) goto L_088FE020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE020: aot_gpr_5 = (50284u << 16u); aot_gpr_5 = (aot_gpr_5 | 49152u); @@ -4688,8 +6909,21 @@ L_088FE040: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE050u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 464u, 0x088FE050u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE050u) goto L_088FE050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE050: aot_gpr_5 = (50284u << 16u); aot_gpr_5 = (aot_gpr_5 | 16384u); @@ -4709,8 +6943,21 @@ L_088FE070: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE080u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 467u, 0x088FE080u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE080u) goto L_088FE080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE080: aot_gpr_5 = (17267u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4729,8 +6976,21 @@ L_088FE09C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE0ACu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 470u, 0x088FE0ACu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE0ACu) goto L_088FE0AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE0AC: aot_gpr_5 = (50283u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -4750,8 +7010,21 @@ L_088FE0CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE0DCu); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 473u, 0x088FE0DCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE0DCu) goto L_088FE0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE0DC: aot_gpr_5 = (50284u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4770,8 +7043,21 @@ L_088FE0F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE108u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 476u, 0x088FE108u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE108u) goto L_088FE108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE108: aot_gpr_5 = (50285u << 16u); aot_gpr_5 = (aot_gpr_5 | 16384u); @@ -4791,8 +7077,21 @@ L_088FE128: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE138u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 479u, 0x088FE138u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE138u) goto L_088FE138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE138: aot_gpr_5 = (50284u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -4812,8 +7111,21 @@ L_088FE158: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE168u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 482u, 0x088FE168u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE168u) goto L_088FE168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE168: aot_gpr_5 = (50286u << 16u); aot_gpr_5 = (aot_gpr_5 | 16384u); @@ -4833,8 +7145,21 @@ L_088FE188: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE198u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 485u, 0x088FE198u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE198u) goto L_088FE198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE198: aot_gpr_5 = (50286u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4853,8 +7178,21 @@ L_088FE1B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE1C4u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 488u, 0x088FE1C4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE1C4u) goto L_088FE1C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE1C4: aot_gpr_5 = (50285u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4873,8 +7211,21 @@ L_088FE1E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE1F0u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 491u, 0x088FE1F0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE1F0u) goto L_088FE1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE1F0: aot_gpr_5 = (17255u << 16u); ctx.fpr[24] = std::bit_cast(aot_gpr_5); @@ -4894,8 +7245,21 @@ L_088FE210: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE220u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 494u, 0x088FE220u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE220u) goto L_088FE220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE220: aot_gpr_5 = (17236u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4914,8 +7278,21 @@ L_088FE23C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE24Cu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 497u, 0x088FE24Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE24Cu) goto L_088FE24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE24C: aot_gpr_5 = (17253u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4934,8 +7311,21 @@ L_088FE268: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE278u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 500u, 0x088FE278u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE278u) goto L_088FE278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE278: aot_gpr_5 = (17256u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4954,8 +7344,21 @@ L_088FE294: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE2A4u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 503u, 0x088FE2A4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE2A4u) goto L_088FE2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE2A4: aot_gpr_5 = (17229u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4974,8 +7377,21 @@ L_088FE2C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE2D0u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 506u, 0x088FE2D0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE2D0u) goto L_088FE2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE2D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE2DCu); @@ -4993,8 +7409,21 @@ L_088FE2E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE2F8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 509u, 0x088FE2F8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE2F8u) goto L_088FE2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE2F8: aot_gpr_5 = (17252u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5013,8 +7442,21 @@ L_088FE314: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE324u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 512u, 0x088FE324u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE324u) goto L_088FE324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE324: aot_gpr_5 = (17257u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5033,8 +7475,21 @@ L_088FE340: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE350u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 515u, 0x088FE350u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE350u) goto L_088FE350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE350: aot_gpr_5 = (17281u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5053,8 +7508,21 @@ L_088FE36C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE37Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 518u, 0x088FE37Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE37Cu) goto L_088FE37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE37C: aot_gpr_5 = (17289u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5074,8 +7542,21 @@ L_088FE39C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE3ACu); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 521u, 0x088FE3ACu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE3ACu) goto L_088FE3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE3AC: aot_gpr_5 = (17282u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5095,8 +7576,21 @@ L_088FE3CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE3DCu); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 524u, 0x088FE3DCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE3DCu) goto L_088FE3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE3DC: aot_gpr_5 = (17217u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5116,8 +7610,21 @@ L_088FE3F8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FE40Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 527u, 0x088FE40Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE40Cu) goto L_088FE40C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE40C: aot_gpr_5 = (17270u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5136,8 +7643,21 @@ L_088FE428: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE438u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 530u, 0x088FE438u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE438u) goto L_088FE438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE438: aot_gpr_5 = (17221u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5156,8 +7676,21 @@ L_088FE454: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE464u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 533u, 0x088FE464u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE464u) goto L_088FE464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE464: aot_gpr_5 = (17210u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5176,8 +7709,21 @@ L_088FE480: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE490u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 536u, 0x088FE490u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE490u) goto L_088FE490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE490: aot_gpr_5 = (17251u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5196,8 +7742,21 @@ L_088FE4AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE4BCu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 539u, 0x088FE4BCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE4BCu) goto L_088FE4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE4BC: aot_gpr_5 = (17231u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5216,8 +7775,21 @@ L_088FE4D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE4E8u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 542u, 0x088FE4E8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE4E8u) goto L_088FE4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE4E8: aot_gpr_5 = (17258u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5236,8 +7808,21 @@ L_088FE504: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE514u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 545u, 0x088FE514u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE514u) goto L_088FE514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE514: aot_gpr_5 = (17218u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5256,8 +7841,21 @@ L_088FE530: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE540u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 548u, 0x088FE540u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE540u) goto L_088FE540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE540: aot_gpr_5 = (17280u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5277,8 +7875,21 @@ L_088FE560: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE570u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 551u, 0x088FE570u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE570u) goto L_088FE570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE570: aot_gpr_5 = (17291u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5297,8 +7908,21 @@ L_088FE58C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE59Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 554u, 0x088FE59Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE59Cu) goto L_088FE59C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE59C: aot_gpr_5 = (17266u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5317,8 +7941,21 @@ L_088FE5B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE5C8u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 557u, 0x088FE5C8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE5C8u) goto L_088FE5C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE5C8: aot_gpr_5 = (17208u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5337,8 +7974,21 @@ L_088FE5E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE5F4u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 560u, 0x088FE5F4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE5F4u) goto L_088FE5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE5F4: aot_gpr_5 = (17284u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5358,8 +8008,21 @@ L_088FE614: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE624u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 563u, 0x088FE624u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE624u) goto L_088FE624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE624: aot_gpr_5 = (17281u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5379,8 +8042,21 @@ L_088FE644: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE654u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 566u, 0x088FE654u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE654u) goto L_088FE654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE654: aot_gpr_5 = (17271u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5399,8 +8075,21 @@ L_088FE670: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE680u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 569u, 0x088FE680u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE680u) goto L_088FE680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE680: aot_gpr_5 = (17215u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5419,8 +8108,21 @@ L_088FE69C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE6ACu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 572u, 0x088FE6ACu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE6ACu) goto L_088FE6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE6AC: aot_gpr_5 = (17254u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5439,8 +8141,21 @@ L_088FE6C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE6D8u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 575u, 0x088FE6D8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE6D8u) goto L_088FE6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE6D8: aot_gpr_5 = (17222u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5459,8 +8174,21 @@ L_088FE6F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE704u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 578u, 0x088FE704u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE704u) goto L_088FE704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE704: aot_gpr_5 = (17283u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5480,8 +8208,21 @@ L_088FE724: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE734u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 581u, 0x088FE734u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE734u) goto L_088FE734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE734: aot_gpr_5 = (17239u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5500,8 +8241,21 @@ L_088FE750: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE760u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 584u, 0x088FE760u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE760u) goto L_088FE760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE760: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE76Cu); @@ -5519,14 +8273,40 @@ L_088FE778: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE788u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 587u, 0x088FE788u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE788u) goto L_088FE788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE788: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE794u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 588u, 0x088FE794u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE794u) goto L_088FE794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE794: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE7A0u); @@ -5536,15 +8316,41 @@ L_088FE794: L_088FE7A0: aot_gpr_31 = (0x088FE7A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 590u, 0x088FE7A8u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE7A8u) goto L_088FE7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE7A8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-21444)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE7B8u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 591u, 0x088FE7B8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE7B8u) goto L_088FE7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE7B8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5565,8 +8371,21 @@ L_088FE7DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE7ECu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 594u, 0x088FE7ECu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE7ECu) goto L_088FE7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE7EC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5587,8 +8406,21 @@ L_088FE810: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE820u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 597u, 0x088FE820u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE820u) goto L_088FE820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE820: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5609,8 +8441,21 @@ L_088FE844: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE854u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 600u, 0x088FE854u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE854u) goto L_088FE854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE854: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5631,8 +8476,21 @@ L_088FE878: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE888u); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 603u, 0x088FE888u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE888u) goto L_088FE888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE888: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5653,8 +8511,21 @@ L_088FE8AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE8BCu); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 606u, 0x088FE8BCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE8BCu) goto L_088FE8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE8BC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5675,8 +8546,21 @@ L_088FE8E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE8F0u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 609u, 0x088FE8F0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE8F0u) goto L_088FE8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE8F0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5697,8 +8581,21 @@ L_088FE914: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE924u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 612u, 0x088FE924u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE924u) goto L_088FE924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE924: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5719,8 +8616,21 @@ L_088FE948: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE958u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 615u, 0x088FE958u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE958u) goto L_088FE958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE958: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(132))); @@ -5742,8 +8652,21 @@ L_088FE97C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088FE990u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 618u, 0x088FE990u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE990u) goto L_088FE990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE990: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5764,8 +8687,21 @@ L_088FE9B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE9C4u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 621u, 0x088FE9C4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE9C4u) goto L_088FE9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE9C4: aot_gpr_5 = (17320u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5784,8 +8720,21 @@ L_088FE9E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FE9F0u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 624u, 0x088FE9F0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FE9F0u) goto L_088FE9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FE9F0: aot_gpr_5 = (17322u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5805,8 +8754,21 @@ L_088FEA10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEA20u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 627u, 0x088FEA20u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEA20u) goto L_088FEA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEA20: aot_gpr_5 = (17323u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5825,8 +8787,21 @@ L_088FEA3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEA4Cu); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 630u, 0x088FEA4Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEA4Cu) goto L_088FEA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEA4C: aot_gpr_5 = (17333u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5846,8 +8821,21 @@ L_088FEA6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEA7Cu); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 633u, 0x088FEA7Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEA7Cu) goto L_088FEA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEA7C: aot_gpr_5 = (17324u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5866,8 +8854,21 @@ L_088FEA98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEAA8u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 636u, 0x088FEAA8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEAA8u) goto L_088FEAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEAA8: aot_gpr_5 = (17325u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5886,8 +8887,21 @@ L_088FEAC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEAD4u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 639u, 0x088FEAD4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEAD4u) goto L_088FEAD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEAD4: aot_gpr_5 = (17326u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5907,8 +8921,21 @@ L_088FEAF4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEB04u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 642u, 0x088FEB04u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEB04u) goto L_088FEB04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEB04: aot_gpr_5 = (17328u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5928,8 +8955,21 @@ L_088FEB24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEB34u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 645u, 0x088FEB34u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEB34u) goto L_088FEB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEB34: aot_gpr_5 = (17326u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5948,8 +8988,21 @@ L_088FEB50: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FEB60u); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 648u, 0x088FEB60u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEB60u) goto L_088FEB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEB60: aot_gpr_5 = (17331u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5969,8 +9022,21 @@ L_088FEB80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEB90u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 651u, 0x088FEB90u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEB90u) goto L_088FEB90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEB90: aot_gpr_5 = (17330u << 16u); aot_gpr_5 = (aot_gpr_5 | 32768u); @@ -5989,14 +9055,40 @@ L_088FEBB0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-21252)); aot_gpr_31 = (0x088FEBBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 654u, 0x088FEBBCu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEBBCu) goto L_088FEBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEBBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEBC8u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 655u, 0x088FEBC8u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEBC8u) goto L_088FEBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEBC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEBD4u); @@ -6006,15 +9098,41 @@ L_088FEBC8: L_088FEBD4: aot_gpr_31 = (0x088FEBDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 657u, 0x088FEBDCu, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEBDCu) goto L_088FEBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEBDC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-21244)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEBECu); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 658u, 0x088FEBECu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEBECu) goto L_088FEBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEBEC: aot_gpr_5 = (16704u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6033,8 +9151,21 @@ L_088FEC08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEC18u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 661u, 0x088FEC18u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEC18u) goto L_088FEC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEC18: aot_gpr_5 = (16720u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6053,8 +9184,21 @@ L_088FEC34: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEC44u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 664u, 0x088FEC44u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEC44u) goto L_088FEC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEC44: aot_gpr_5 = (16736u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6073,8 +9217,21 @@ L_088FEC60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEC70u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 667u, 0x088FEC70u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEC70u) goto L_088FEC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEC70: aot_gpr_5 = (16752u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6093,8 +9250,21 @@ L_088FEC8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEC9Cu); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 670u, 0x088FEC9Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEC9Cu) goto L_088FEC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEC9C: aot_gpr_5 = (16768u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6113,8 +9283,21 @@ L_088FECB8: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FECC8u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 673u, 0x088FECC8u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FECC8u) goto L_088FECC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FECC8: aot_gpr_5 = (16776u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6133,8 +9316,21 @@ L_088FECE4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FECF4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 676u, 0x088FECF4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FECF4u) goto L_088FECF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FECF4: aot_gpr_5 = (16784u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6153,8 +9349,21 @@ L_088FED10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FED20u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 679u, 0x088FED20u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FED20u) goto L_088FED20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FED20: aot_gpr_5 = (16792u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6173,8 +9382,21 @@ L_088FED3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FED4Cu); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 682u, 0x088FED4Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FED4Cu) goto L_088FED4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FED4C: aot_gpr_5 = (16800u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6193,8 +9415,21 @@ L_088FED68: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x088FED78u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 685u, 0x088FED78u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FED78u) goto L_088FED78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FED78: aot_gpr_5 = (16972u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6213,8 +9448,21 @@ L_088FED94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEDA4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 688u, 0x088FEDA4u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEDA4u) goto L_088FEDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEDA4: aot_gpr_5 = (16976u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6233,8 +9481,21 @@ L_088FEDC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEDD0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 691u, 0x088FEDD0u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEDD0u) goto L_088FEDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEDD0: aot_gpr_5 = (16980u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6253,8 +9514,21 @@ L_088FEDEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEDFCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 694u, 0x088FEDFCu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEDFCu) goto L_088FEDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEDFC: aot_gpr_5 = (16984u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6272,14 +9546,40 @@ L_088FEE18: aot_gpr_5 = (ctx.gpr[28] + static_cast(-21144)); aot_gpr_31 = (0x088FEE24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 697u, 0x088FEE24u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEE24u) goto L_088FEE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEE24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEE30u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 698u, 0x088FEE30u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEE30u) goto L_088FEE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEE30: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEE3Cu); @@ -6289,15 +9589,41 @@ L_088FEE30: L_088FEE3C: aot_gpr_31 = (0x088FEE44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 700u, 0x088FEE44u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEE44u) goto L_088FEE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEE44: aot_gpr_5 = (ctx.gpr[28] + static_cast(-21132)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEE54u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 701u, 0x088FEE54u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEE54u) goto L_088FEE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEE54: aot_gpr_5 = (16256u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6316,8 +9642,21 @@ L_088FEE70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEE80u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 704u, 0x088FEE80u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEE80u) goto L_088FEE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEE80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEE8Cu); @@ -6334,14 +9673,40 @@ L_088FEE98: aot_gpr_5 = (ctx.gpr[28] + static_cast(-21120)); aot_gpr_31 = (0x088FEEA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 707u, 0x088FEEA4u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEEA4u) goto L_088FEEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEEA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEEB0u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 708u, 0x088FEEB0u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FEEB0u) goto L_088FEEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FEEB0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x088FEEBCu); @@ -6363,8 +9728,8 @@ L_088FEEBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FEEE8: @@ -6553,8 +9918,8 @@ L_088FF02C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FF060: @@ -6571,14 +9936,27 @@ L_088FF060: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088FF094u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 717u, 0x088FF094u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF094u) goto L_088FF094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF094: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FF0A0: @@ -6589,8 +9967,21 @@ L_088FF0A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x088FF0BCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8816)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 719u, 0x088FF0BCu, 0x08AC2F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 704u, 0x08AC2F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF0BCu) goto L_088FF0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF0BC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8812), aot_gpr_16); aot_fpr_13 = std::bit_cast(0u); @@ -6683,8 +10074,8 @@ L_088FF16C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FF17C: @@ -6714,8 +10105,8 @@ L_088FF198: goto L_088FF1A8; L_088FF1A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FF1B0: @@ -6752,8 +10143,8 @@ L_088FF1F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FF204: @@ -6933,8 +10324,21 @@ L_088FF3B4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088FF400u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 744u, 0x088FF400u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF400u) goto L_088FF400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF400: aot_gpr_31 = (0x088FF408u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF408u) goto L_088FF408; @@ -6973,8 +10377,21 @@ L_088FF428: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088FF474u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 748u, 0x088FF474u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF474u) goto L_088FF474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF474: aot_gpr_31 = (0x088FF47Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF47Cu) goto L_088FF47C; @@ -7012,8 +10429,21 @@ L_088FF4A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088FF4E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 752u, 0x088FF4E4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF4E4u) goto L_088FF4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF4E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FF4F0u); @@ -7051,8 +10481,8 @@ L_088FF508: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FF544: @@ -7178,8 +10608,21 @@ L_088FF66C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x088FF6B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 763u, 0x088FF6B8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF6B8u) goto L_088FF6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF6B8: aot_gpr_31 = (0x088FF6C0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF6C0u) goto L_088FF6C0; @@ -7218,8 +10661,21 @@ L_088FF6E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088FF72Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 767u, 0x088FF72Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF72Cu) goto L_088FF72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF72C: aot_gpr_31 = (0x088FF734u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF734u) goto L_088FF734; @@ -7257,8 +10713,21 @@ L_088FF758: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x088FF79Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 771u, 0x088FF79Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF79Cu) goto L_088FF79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF79C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FF7A8u); @@ -7297,14 +10766,14 @@ L_088FF7C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FF800: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_088FF808: @@ -7376,8 +10845,21 @@ L_088FF808: goto L_088FF0A0; L_088FF92C: aot_gpr_31 = (0x088FF934u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 777u, 0x088FF934u, 0x08941C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 271u, 0x08941C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FF934u) goto L_088FF934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FF934: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -7451,18 +10933,57 @@ L_088FF9F8: ctx.gpr[17] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x088FFA04u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-21084)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 782u, 0x088FFA04u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFA04u) goto L_088FFA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFA04: aot_gpr_31 = (0x088FFA0Cu); aot_gpr_16 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 783u, 0x088FFA0Cu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFA0Cu) goto L_088FFA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFA0C: aot_gpr_31 = (0x088FFA14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 784u, 0x088FFA14u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFA14u) goto L_088FFA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFA14: ctx.gpr[18] = (0u | 0u); ctx.gpr[19] = (0u | 0u); @@ -7473,8 +10994,21 @@ L_088FFA24: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FFA30u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 786u, 0x088FFA30u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFA30u) goto L_088FFA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFA30: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7495,8 +11029,21 @@ L_088FFA54: aot_gpr_4 = (ctx.gpr[28] + static_cast(-21072)); aot_gpr_31 = (0x088FFA64u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 788u, 0x088FFA64u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFA64u) goto L_088FFA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFA64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6124), ctx.gpr[2]); @@ -7511,8 +11058,21 @@ L_088FFA84: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FFA90u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 790u, 0x088FFA90u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFA90u) goto L_088FFA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFA90: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7541,8 +11101,21 @@ L_088FFAD0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FFADCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 793u, 0x088FFADCu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFADCu) goto L_088FFADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFADC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7569,8 +11142,21 @@ L_088FFB14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FFB20u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 796u, 0x088FFB20u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFB20u) goto L_088FFB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFB20: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(6172), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7597,8 +11183,21 @@ L_088FFB58: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FFB64u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 799u, 0x088FFB64u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFB64u) goto L_088FFB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFB64: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7625,8 +11224,21 @@ L_088FFB9C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FFBA8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 802u, 0x088FFBA8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFBA8u) goto L_088FFBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFBA8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(6128), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7646,8 +11258,21 @@ L_088FFBC8: aot_gpr_4 = (ctx.gpr[28] + static_cast(-21060)); aot_gpr_31 = (0x088FFBD8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 804u, 0x088FFBD8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFBD8u) goto L_088FFBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFBD8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8764), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7661,8 +11286,21 @@ L_088FFBF4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FFC00u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 806u, 0x088FFC00u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFC00u) goto L_088FFC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFC00: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(6232), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7688,8 +11326,21 @@ L_088FFC34: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FFC40u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 809u, 0x088FFC40u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFC40u) goto L_088FFC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFC40: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(6344), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7716,8 +11367,21 @@ L_088FFC78: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x088FFC84u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 812u, 0x088FFC84u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFC84u) goto L_088FFC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFC84: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7744,8 +11408,21 @@ L_088FFCBC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FFCC8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 815u, 0x088FFCC8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFCC8u) goto L_088FFCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFCC8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(6312), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7771,8 +11448,21 @@ L_088FFCFC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x088FFD08u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 818u, 0x088FFD08u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFD08u) goto L_088FFD08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFD08: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(6196), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -7791,8 +11481,21 @@ L_088FFD28: aot_gpr_4 = (ctx.gpr[28] + static_cast(-21048)); aot_gpr_31 = (0x088FFD34u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 820u, 0x088FFD34u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFD34u) goto L_088FFD34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFD34: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6212), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6212))); @@ -7801,8 +11504,21 @@ L_088FFD34: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFD50u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6216), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 821u, 0x088FFD50u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFD50u) goto L_088FFD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFD50: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6112), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6112))); @@ -7811,8 +11527,21 @@ L_088FFD50: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFD6Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6116), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 822u, 0x088FFD6Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFD6Cu) goto L_088FFD6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFD6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6112))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6120), ctx.gpr[2]); @@ -7821,8 +11550,21 @@ L_088FFD6C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8752), aot_gpr_5); aot_gpr_31 = (0x088FFD88u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 823u, 0x088FFD88u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFD88u) goto L_088FFD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFD88: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6224), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6224))); @@ -7831,8 +11573,21 @@ L_088FFD88: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFDA4u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6228), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 824u, 0x088FFDA4u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFDA4u) goto L_088FFDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFDA4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6160), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6160))); @@ -7841,8 +11596,21 @@ L_088FFDA4: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFDC0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6164), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 825u, 0x088FFDC0u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFDC0u) goto L_088FFDC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFDC0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6248), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6248))); @@ -7851,8 +11619,21 @@ L_088FFDC0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFDDCu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6256), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 826u, 0x088FFDDCu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFDDCu) goto L_088FFDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFDDC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6252), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6252))); @@ -7861,8 +11642,21 @@ L_088FFDDC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFDF8u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6260), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 827u, 0x088FFDF8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFDF8u) goto L_088FFDF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFDF8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6272), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6272))); @@ -7871,8 +11665,21 @@ L_088FFDF8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFE14u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6276), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 828u, 0x088FFE14u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFE14u) goto L_088FFE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFE14: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6280), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6280))); @@ -7881,8 +11688,21 @@ L_088FFE14: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFE30u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6284), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 829u, 0x088FFE30u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFE30u) goto L_088FFE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFE30: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6288), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6288))); @@ -7891,8 +11711,21 @@ L_088FFE30: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFE4Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6292), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 830u, 0x088FFE4Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFE4Cu) goto L_088FFE4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFE4C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6264), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6264))); @@ -7901,8 +11734,21 @@ L_088FFE4C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFE68u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6268), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 831u, 0x088FFE68u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFE68u) goto L_088FFE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFE68: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6304), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6304))); @@ -7911,8 +11757,21 @@ L_088FFE68: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFE84u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6308), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 832u, 0x088FFE84u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFE84u) goto L_088FFE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFE84: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6296), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6296))); @@ -7921,8 +11780,21 @@ L_088FFE84: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFEA0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6300), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 833u, 0x088FFEA0u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFEA0u) goto L_088FFEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFEA0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6376), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6376))); @@ -7931,8 +11803,21 @@ L_088FFEA0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFEBCu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6380), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 834u, 0x088FFEBCu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFEBCu) goto L_088FFEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFEBC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6168), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6168))); @@ -7941,8 +11826,21 @@ L_088FFEBC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFED8u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8760), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 835u, 0x088FFED8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFED8u) goto L_088FFED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFED8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6384), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6384))); @@ -7951,8 +11849,21 @@ L_088FFED8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFEF4u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6388), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 836u, 0x088FFEF4u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFEF4u) goto L_088FFEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFEF4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6392), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6392))); @@ -7961,8 +11872,21 @@ L_088FFEF4: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFF10u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6396), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 837u, 0x088FFF10u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFF10u) goto L_088FFF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFF10: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6404), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6404))); @@ -7971,8 +11895,21 @@ L_088FFF10: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFF2Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8596), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 838u, 0x088FFF2Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFF2Cu) goto L_088FFF2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFF2C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6408), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6408))); @@ -7981,8 +11918,21 @@ L_088FFF2C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFF48u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6412), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 839u, 0x088FFF48u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFF48u) goto L_088FFF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFF48: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6424), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6424))); @@ -7991,8 +11941,21 @@ L_088FFF48: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFF64u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8600), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 840u, 0x088FFF64u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFF64u) goto L_088FFF64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFF64: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6428), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6428))); @@ -8001,8 +11964,21 @@ L_088FFF64: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFF80u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8604), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 841u, 0x088FFF80u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFF80u) goto L_088FFF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFF80: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6432), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6432))); @@ -8011,8 +11987,21 @@ L_088FFF80: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFF9Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8608), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 842u, 0x088FFF9Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFF9Cu) goto L_088FFF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFF9C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6416), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6416))); @@ -8021,8 +12010,21 @@ L_088FFF9C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x088FFFB8u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6420), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0062->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0062_entry, 843u, 0x088FFFB8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x088FFFB8u) goto L_088FFFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_088FFFB8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6440), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6440))); diff --git a/profiles/vcs/generated/generated_unit_0063.cpp b/profiles/vcs/generated/generated_unit_0063.cpp index c8f63ca..bce5330 100644 --- a/profiles/vcs/generated/generated_unit_0063.cpp +++ b/profiles/vcs/generated/generated_unit_0063.cpp @@ -798,6 +798,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08900000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -828,8 +852,21 @@ L_08900000: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8808), aot_gpr_5); aot_gpr_31 = (0x08900040u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 2u, 0x08900040u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08900040u) goto L_08900040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08900040: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6456), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6456))); @@ -838,16 +875,42 @@ L_08900040: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0890005Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8788), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 3u, 0x0890005Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890005Cu) goto L_0890005C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890005C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6460), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6460))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08900070u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8792), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 4u, 0x08900070u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08900070u) goto L_08900070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08900070: aot_gpr_4 = (ctx.gpr[28] + static_cast(6388)); aot_gpr_5 = (ctx.gpr[28] + static_cast(6164)); @@ -909,8 +972,8 @@ L_08900128: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-13976))); jump_target = ctx.gpr[1]; ctx.gpr[11] = (static_cast(static_cast(ctx.gpr[11]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08900140: @@ -1599,8 +1662,8 @@ L_0890040C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890043C: @@ -2481,8 +2544,21 @@ L_08900B88: L_08900B94: aot_gpr_31 = (0x08900B9Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 179u, 0x08900B9Cu, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08900B9Cu) goto L_08900B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08900B9C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2544,8 +2620,21 @@ L_08900BB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08900C14u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 182u, 0x08900C14u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08900C14u) goto L_08900C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08900C14: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2631,8 +2720,21 @@ L_08900C8C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08900CA4u); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 190u, 0x08900CA4u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08900CA4u) goto L_08900CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08900CA4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-20760), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(128))); @@ -2686,8 +2788,8 @@ L_08900CE4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-13616))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08900CFC: @@ -2885,8 +2987,8 @@ L_08900ED4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08900F14: @@ -2994,8 +3096,21 @@ L_08900F68: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089010B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 218u, 0x089010B8u, 0x08941EA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 302u, 0x08941EA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089010B8u) goto L_089010B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089010B8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7648))); aot_gpr_5 = (0u | 23u); @@ -3474,8 +3589,21 @@ L_089014C4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); aot_gpr_31 = (0x089014E4u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 250u, 0x089014E4u, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089014E4u) goto L_089014E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089014E4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(48))); @@ -3500,8 +3628,21 @@ L_0890150C: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08901518u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 253u, 0x08901518u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08901518u) goto L_08901518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08901518: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -4155,8 +4296,8 @@ L_08901984: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-13456))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890199C: @@ -4326,8 +4467,8 @@ L_08901ABC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-13416))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08901AD4: @@ -4368,8 +4509,21 @@ L_08901AEC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08901B48u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 329u, 0x08901B48u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08901B48u) goto L_08901B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08901B48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4399,8 +4553,21 @@ L_08901B50: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08901BA8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 331u, 0x08901BA8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08901BA8u) goto L_08901BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08901BA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4456,8 +4623,21 @@ L_08901BD8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08901C34u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 336u, 0x08901C34u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08901C34u) goto L_08901C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08901C34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4487,8 +4667,21 @@ L_08901C3C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08901C94u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 338u, 0x08901C94u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08901C94u) goto L_08901C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08901C94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4561,8 +4754,21 @@ L_08901D04: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08901D4Cu); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 342u, 0x08901D4Cu, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08901D4Cu) goto L_08901D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08901D4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4613,8 +4819,21 @@ L_08901D90: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08901DD8u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 346u, 0x08901DD8u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08901DD8u) goto L_08901DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08901DD8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4652,8 +4871,21 @@ L_08901DF8: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08901E2Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 350u, 0x08901E2Cu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08901E2Cu) goto L_08901E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08901E2C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4892,8 +5124,21 @@ L_08902030: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08902040u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 377u, 0x08902040u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902040u) goto L_08902040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902040: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4947,8 +5192,21 @@ L_089020D8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089020E8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 381u, 0x089020E8u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089020E8u) goto L_089020E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089020E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5024,8 +5282,21 @@ L_08902164: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08902198u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 389u, 0x08902198u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902198u) goto L_08902198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902198: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5075,8 +5346,21 @@ L_089021D0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08902220u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 393u, 0x08902220u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902220u) goto L_08902220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902220: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5290,8 +5574,21 @@ L_08902370: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08902380u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 419u, 0x08902380u, 0x088FF17Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 725u, 0x088FF17Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902380u) goto L_08902380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902380: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -5354,8 +5651,8 @@ L_089023B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(656)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089023F4: @@ -5409,8 +5706,21 @@ L_08902494: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089024A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(200), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 434u, 0x089024A0u, 0x08AA8B90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 55u, 0x08AA8B90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089024A0u) goto L_089024A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089024A0: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -5484,8 +5794,21 @@ L_08902560: } L_08902574: aot_gpr_31 = (0x0890257Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 439u, 0x0890257Cu, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890257Cu) goto L_0890257C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890257C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -5576,8 +5899,21 @@ L_08902604: } L_08902614: aot_gpr_31 = (0x0890261Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 453u, 0x0890261Cu, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890261Cu) goto L_0890261C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890261C: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08902628u); @@ -5715,8 +6051,21 @@ L_08902728: } L_08902744: aot_gpr_31 = (0x0890274Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 469u, 0x0890274Cu, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890274Cu) goto L_0890274C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890274C: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08902758u); @@ -5751,8 +6100,21 @@ L_08902778: L_08902788: aot_gpr_31 = (0x08902790u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 474u, 0x08902790u, 0x08AA8278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 28u, 0x08AA8278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902790u) goto L_08902790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902790: aot_gpr_4 = (0u | 34u); { const bool branch_taken = ctx.gpr[20] == aot_gpr_4; @@ -5878,8 +6240,21 @@ L_08902874: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x089028C8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 486u, 0x089028C8u, 0x08AA89FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 51u, 0x08AA89FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089028C8u) goto L_089028C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089028C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5900,8 +6275,21 @@ L_089028D0: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); aot_gpr_31 = (0x08902900u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 488u, 0x08902900u, 0x08AA88C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 46u, 0x08AA88C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902900u) goto L_08902900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902900: aot_gpr_4 = (20352u << 16u); ctx.gpr[18] = (0u | 0u); @@ -5949,8 +6337,21 @@ L_0890293C: ctx.gpr[7] = (aot_gpr_29 + static_cast(52)); aot_gpr_31 = (0x08902950u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 493u, 0x08902950u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902950u) goto L_08902950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902950: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6125,8 +6526,21 @@ L_08902A58: L_08902A60: aot_gpr_31 = (0x08902A68u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(220))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 506u, 0x08902A68u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902A68u) goto L_08902A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902A68: aot_gpr_6 = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(aot_gpr_6) <= 0; @@ -6361,8 +6775,21 @@ L_08902C60: L_08902C6C: aot_gpr_31 = (0x08902C74u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 531u, 0x08902C74u, 0x08AA8278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 28u, 0x08AA8278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902C74u) goto L_08902C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902C74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[26])) ? 0x00800000u : 0u); @@ -6510,8 +6937,21 @@ L_08902D98: ctx.fpr[18] = ctx.fpr[18] / ctx.fpr[19]; aot_gpr_31 = (0x08902DF8u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 544u, 0x08902DF8u, 0x08AAA4ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 188u, 0x08AAA4ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902DF8u) goto L_08902DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902DF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6645,8 +7085,21 @@ L_08902EE8: ctx.fpr[16] = ctx.fpr[16] + aot_fpr_13; aot_gpr_31 = (0x08902F44u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[19])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 555u, 0x08902F44u, 0x08AAA4ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 188u, 0x08AAA4ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902F44u) goto L_08902F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902F44: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(40), std::bit_cast(aot_fpr_12)); @@ -6698,8 +7151,21 @@ L_08902F68: ctx.gpr[7] = (aot_gpr_29 + static_cast(132)); aot_gpr_31 = (0x08902F94u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 558u, 0x08902F94u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08902F94u) goto L_08902F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08902F94: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6782,8 +7248,21 @@ L_08903020: ctx.fpr[16] = ctx.fpr[16] + ctx.fpr[19]; aot_gpr_31 = (0x08903084u); ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[2])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 564u, 0x08903084u, 0x08AAA4ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 188u, 0x08AAA4ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903084u) goto L_08903084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903084: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6838,8 +7317,21 @@ L_089030C4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x0890311Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 569u, 0x0890311Cu, 0x08AA9B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 141u, 0x08AA9B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890311Cu) goto L_0890311C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890311C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6879,8 +7371,21 @@ L_08903130: { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } aot_gpr_31 = (0x0890318Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 572u, 0x0890318Cu, 0x08AA9B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 141u, 0x08AA9B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890318Cu) goto L_0890318C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890318C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6920,8 +7425,21 @@ L_089031A0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08903200u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 575u, 0x08903200u, 0x08AA9B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 141u, 0x08AA9B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903200u) goto L_08903200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903200: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6947,8 +7465,21 @@ L_08903208: { const float fs = ctx.fpr[16]; const float ft = aot_fpr_15; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_15 = std::bit_cast(0x7FC00000u); else aot_fpr_15 = fs * ft; } aot_gpr_31 = (0x0890324Cu); { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast(0x7FC00000u); else ctx.fpr[16] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 577u, 0x0890324Cu, 0x08AA9B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 141u, 0x08AA9B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890324Cu) goto L_0890324C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890324C: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -6959,8 +7490,21 @@ L_0890324C: } L_08903258: aot_gpr_31 = (0x08903260u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 579u, 0x08903260u, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903260u) goto L_08903260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903260: aot_gpr_4 = (0u | 76u); { const bool branch_taken = ctx.gpr[20] == aot_gpr_4; @@ -7085,8 +7629,8 @@ L_08903364: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089033AC: @@ -7100,22 +7644,22 @@ L_089033BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089033C8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089033D0: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089033D8: @@ -7145,8 +7689,21 @@ L_089033F4: L_0890340C: aot_gpr_31 = (0x08903414u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 597u, 0x08903414u, 0x08990464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 70u, 0x08990464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903414u) goto L_08903414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903414: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -7194,8 +7751,8 @@ L_0890344C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903460: @@ -7207,8 +7764,21 @@ L_08903460: aot_gpr_4 = (ctx.gpr[16] + static_cast(64)); aot_gpr_31 = (0x08903488u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 605u, 0x08903488u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903488u) goto L_08903488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903488: ctx.gpr[18] = (ctx.gpr[16] | 0u); ctx.gpr[19] = (0u | 0u); @@ -7226,8 +7796,21 @@ L_089034A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089034ACu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 608u, 0x089034ACu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089034ACu) goto L_089034AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089034AC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(8)); @@ -7242,8 +7825,21 @@ L_089034AC: L_089034C0: aot_gpr_31 = (0x089034C8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 610u, 0x089034C8u, 0x0885F484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 855u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 855u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 855u, 0x0885F484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089034C8u) goto L_089034C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089034C8: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(64), 0u); { std::uint32_t aot_run_words[5]{}; @@ -7256,8 +7852,8 @@ L_089034C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089034E8: @@ -7303,8 +7899,21 @@ L_0890353C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0890354Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 615u, 0x0890354Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890354Cu) goto L_0890354C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890354C: aot_gpr_31 = (0x08903554u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-20648)); @@ -7313,8 +7922,21 @@ L_0890354C: L_08903554: aot_gpr_31 = (0x0890355Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 617u, 0x0890355Cu, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890355Cu) goto L_0890355C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890355C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7335,8 +7957,21 @@ L_08903570: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0890357Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 620u, 0x0890357Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890357Cu) goto L_0890357C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890357C: aot_gpr_31 = (0x08903584u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-20648)); @@ -7345,8 +7980,21 @@ L_0890357C: L_08903584: aot_gpr_31 = (0x0890358Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 622u, 0x0890358Cu, 0x0882E9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 609u, 0x0882E9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890358Cu) goto L_0890358C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890358C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7434,8 +8082,8 @@ L_08903638: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903654: @@ -7522,8 +8170,8 @@ L_08903714: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903730: @@ -7610,8 +8258,8 @@ L_089037F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890380C: @@ -7645,8 +8293,8 @@ L_08903834: } L_08903844: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890384C: @@ -7658,14 +8306,40 @@ L_0890384C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(88), aot_run_words); } aot_gpr_31 = (0x08903874u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 654u, 0x08903874u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903874u) goto L_08903874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903874: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08903880u); aot_gpr_4 = (0u | 80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 655u, 0x08903880u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903880u) goto L_08903880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903880: ctx.gpr[19] = (2234u << 16u); ctx.fpr[20] = std::bit_cast(0u); @@ -7680,16 +8354,42 @@ L_08903880: L_08903894: aot_gpr_31 = (0x0890389Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 657u, 0x0890389Cu, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890389Cu) goto L_0890389C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890389C: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_089038A0; L_089038A0: aot_gpr_31 = (0x089038A8u); aot_gpr_4 = (0u | 320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 659u, 0x089038A8u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089038A8u) goto L_089038A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089038A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(ctx.fpr[20])); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7756,8 +8456,21 @@ L_0890393C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08903968u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 662u, 0x08903968u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903968u) goto L_08903968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903968: aot_gpr_5 = (48896u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); @@ -7779,8 +8492,21 @@ L_08903968: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089039B8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 663u, 0x089039B8u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089039B8u) goto L_089039B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089039B8: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(55), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(64), ctx.gpr[17]); @@ -7796,8 +8522,8 @@ L_089039B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089039E4: @@ -7832,8 +8558,21 @@ L_08903A40: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); aot_gpr_31 = (0x08903A4Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 668u, 0x08903A4Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903A4Cu) goto L_08903A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903A4C: ctx.fpr[20] = std::bit_cast(0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); @@ -7845,8 +8584,21 @@ L_08903A4C: aot_gpr_5 = (aot_gpr_5 + static_cast(16)); aot_gpr_31 = (0x08903A78u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 669u, 0x08903A78u, 0x089D8C3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 149u, 0x089D8C3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903A78u) goto L_08903A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903A78: ctx.gpr[17] = (2234u << 16u); ctx.gpr[21] = (0u | 0u); @@ -7925,8 +8677,21 @@ L_08903A94: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08903AC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 671u, 0x08903AC8u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903AC8u) goto L_08903AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903AC8: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08903AD4u); @@ -7945,16 +8710,42 @@ L_08903AE0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08903AF4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 674u, 0x08903AF4u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903AF4u) goto L_08903AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903AF4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08903B08u); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 675u, 0x08903B08u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903B08u) goto L_08903B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903B08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(64))); @@ -8026,8 +8817,8 @@ L_08903B7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903BB0: @@ -8058,8 +8849,21 @@ L_08903BF8: L_08903C04: aot_gpr_31 = (0x08903C0Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 681u, 0x08903C0Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903C0Cu) goto L_08903C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903C0C: ctx.fpr[20] = std::bit_cast(0u); ctx.gpr[21] = (aot_gpr_2 | 0u); @@ -8087,8 +8891,21 @@ L_08903C34: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08903C44u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 683u, 0x08903C44u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903C44u) goto L_08903C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903C44: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08903C50u); @@ -8108,8 +8925,21 @@ L_08903C5C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08903C74u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 686u, 0x08903C74u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903C74u) goto L_08903C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903C74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(64))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(56))); @@ -8177,8 +9007,8 @@ L_08903CDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903D14: @@ -8209,8 +9039,21 @@ L_08903D60: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08903D70u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 691u, 0x08903D70u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903D70u) goto L_08903D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903D70: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); ctx.gpr[20] = (ctx.gpr[20] + static_cast(4)); @@ -8230,15 +9073,41 @@ L_08903D88: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08903DA0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 693u, 0x08903DA0u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903DA0u) goto L_08903DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903DA0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08903DB0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 694u, 0x08903DB0u, 0x0885F690u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 890u, 0x0885F690u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903DB0u) goto L_08903DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903DB0: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8253,8 +9122,8 @@ L_08903DB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903DD8: @@ -8321,8 +9190,8 @@ L_08903E48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903E70: @@ -8389,15 +9258,15 @@ L_08903EE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903F08: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903F10: @@ -8409,8 +9278,21 @@ L_08903F10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08903F30u); aot_gpr_5 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 711u, 0x08903F30u, 0x088DF69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 451u, 0x088DF69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903F30u) goto L_08903F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903F30: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(44), aot_gpr_4); @@ -8428,21 +9310,34 @@ L_08903F50: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08903F64u); ctx.gpr[7] = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0063->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0063_entry, 713u, 0x08903F64u, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08903F64u) goto L_08903F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08903F64: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903F74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08903F7C: diff --git a/profiles/vcs/generated/generated_unit_0064.cpp b/profiles/vcs/generated/generated_unit_0064.cpp index 2385911..6ef385a 100644 --- a/profiles/vcs/generated/generated_unit_0064.cpp +++ b/profiles/vcs/generated/generated_unit_0064.cpp @@ -32,6 +32,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0064[64] = { 417u, 436u, 454u, 477u, 493u, 509u, 524u, 539u, 556u, 572u, 580u, 591u, 596u, 606u, 622u, 648u, 678u, 696u, 712u, 727u, 744u, 762u, 773u, 776u, 780u, 797u, 817u, 840u, 857u, 876u, 896u, 912u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0064[4095] = { + 1u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 5u, 0u, 6u, 0u, 7u, 0u, 0u, 8u, 0u, 9u, 10u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 13u, 0u, 14u, 0u, 0u, 15u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 17u, 18u, 0u, + 0u, 0u, 0u, 19u, 0u, 20u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 22u, 0u, 23u, 0u, 0u, 0u, 0u, 24u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 27u, 0u, 0u, 28u, 0u, 0u, 0u, 29u, 0u, 0u, 30u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 31u, 0u, 32u, + 0u, 33u, 0u, 34u, 0u, 35u, 0u, 0u, 0u, 0u, 36u, 37u, 38u, 0u, 39u, 40u, 0u, 0u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 48u, + 0u, 49u, 0u, 50u, 0u, 51u, 0u, 52u, 0u, 53u, 0u, 54u, 0u, 55u, 0u, 56u, 57u, 0u, 58u, 0u, 0u, 59u, 0u, 60u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 62u, + 0u, 63u, 0u, 0u, 0u, 0u, 0u, 64u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, + 0u, 0u, 67u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 71u, 0u, 0u, 0u, 0u, 0u, 72u, 0u, 0u, 0u, 0u, 73u, 0u, 74u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 77u, + 0u, 0u, 0u, 78u, 0u, 0u, 79u, 0u, 0u, 0u, 0u, 80u, 0u, 81u, 0u, 82u, 0u, 83u, 0u, 0u, 0u, 84u, 0u, 85u, 0u, 86u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 87u, 0u, 88u, 0u, 0u, 0u, 89u, 0u, 90u, 0u, 0u, 0u, 91u, 0u, 0u, 0u, 92u, 0u, 0u, 93u, 94u, 0u, 0u, 0u, 95u, 0u, 96u, 0u, 0u, 0u, 97u, + 0u, 0u, 0u, 98u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 100u, 0u, 0u, 101u, 0u, 0u, 102u, 0u, 103u, 0u, 0u, 0u, 104u, 0u, 105u, 0u, 106u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 107u, 0u, 108u, 0u, 0u, 0u, 109u, 0u, 110u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 112u, 0u, 0u, 113u, 114u, 0u, 0u, 0u, 115u, 0u, 116u, + 0u, 0u, 0u, 117u, 0u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 0u, 119u, 120u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 122u, 0u, 0u, 0u, 0u, 123u, + 0u, 124u, 0u, 125u, 0u, 0u, 126u, 0u, 127u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 0u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 135u, 0u, 0u, 136u, 0u, 0u, 0u, 137u, 0u, 0u, 138u, 0u, 139u, 0u, 0u, 0u, 0u, 0u, 140u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 141u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 143u, 144u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 147u, 0u, 0u, + 0u, 148u, 149u, 0u, 150u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 151u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 153u, 154u, 0u, 155u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 156u, 0u, 0u, 0u, 0u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 158u, 0u, 0u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 160u, 0u, 161u, 0u, 162u, 0u, 163u, + 0u, 164u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 165u, 0u, 0u, 0u, 166u, 0u, 0u, 167u, 0u, 0u, 168u, 0u, 169u, 0u, 0u, 0u, 0u, 170u, 0u, 0u, 0u, 0u, 0u, + 0u, 171u, 0u, 0u, 0u, 0u, 172u, 0u, 173u, 0u, 0u, 0u, 0u, 174u, 0u, 175u, 0u, 0u, 0u, 0u, 0u, 176u, 0u, 177u, 0u, 178u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 0u, 0u, 0u, 181u, 0u, 0u, 0u, 0u, 0u, 182u, 0u, 0u, 0u, 0u, 0u, 0u, 183u, 0u, 0u, + 0u, 0u, 0u, 0u, 184u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 185u, 0u, 0u, 0u, 186u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, + 0u, 188u, 0u, 0u, 0u, 0u, 0u, 189u, 190u, 191u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 194u, 0u, 195u, 0u, 0u, 0u, 196u, 0u, 0u, 0u, 197u, 0u, 198u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 199u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 204u, 0u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, + 0u, 207u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, + 0u, 209u, 0u, 0u, 0u, 210u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 0u, 0u, 215u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 220u, 0u, 0u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, + 0u, 0u, 0u, 0u, 223u, 0u, 0u, 0u, 224u, 0u, 0u, 225u, 0u, 0u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 227u, 0u, 228u, 0u, 0u, 0u, 0u, 0u, 229u, 230u, + 0u, 231u, 0u, 232u, 0u, 0u, 0u, 0u, 0u, 0u, 233u, 0u, 0u, 0u, 0u, 0u, 234u, 0u, 0u, 235u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 0u, 237u, + 0u, 0u, 238u, 239u, 0u, 0u, 0u, 0u, 0u, 240u, 0u, 241u, 0u, 0u, 0u, 0u, 0u, 242u, 0u, 243u, 0u, 244u, 0u, 245u, 0u, 246u, 0u, 247u, 0u, 248u, 0u, 0u, + 249u, 0u, 250u, 0u, 251u, 0u, 252u, 0u, 253u, 0u, 254u, 255u, 256u, 0u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 258u, 0u, 259u, 0u, 0u, 260u, 0u, 0u, 0u, 0u, 261u, + 0u, 0u, 262u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 263u, 0u, 264u, 0u, 0u, 265u, 0u, 0u, 266u, 0u, 0u, 267u, 0u, 0u, 268u, 0u, 0u, 269u, + 0u, 270u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 272u, 273u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, + 276u, 0u, 277u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 279u, 0u, 280u, 0u, 0u, 281u, 0u, 282u, 0u, 283u, 0u, 284u, + 0u, 285u, 0u, 286u, 0u, 287u, 288u, 0u, 289u, 0u, 0u, 290u, 0u, 0u, 291u, 0u, 0u, 292u, 0u, 293u, 0u, 294u, 0u, 295u, 296u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 297u, 0u, 0u, 0u, 0u, 298u, 0u, 299u, 0u, 0u, 300u, 0u, 0u, 0u, 0u, 301u, 0u, 302u, 0u, 0u, 0u, 303u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 305u, + 0u, 306u, 0u, 307u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 0u, 0u, 0u, 309u, 0u, 0u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 312u, + 0u, 0u, 0u, 0u, 0u, 313u, 0u, 314u, 0u, 0u, 0u, 0u, 315u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 316u, 0u, 0u, 317u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 318u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 322u, 0u, 323u, 0u, 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, + 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 329u, 0u, 0u, 330u, + 0u, 331u, 0u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, + 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 338u, 0u, 0u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 340u, + 0u, 0u, 0u, 0u, 341u, 0u, 342u, 0u, 0u, 343u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, + 0u, 0u, 0u, 346u, 0u, 0u, 0u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 350u, 0u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 0u, 0u, 354u, + 0u, 0u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 357u, 0u, 0u, 0u, 0u, 358u, 0u, 0u, 0u, 0u, 0u, 0u, 359u, 0u, 360u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 361u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 363u, 0u, 0u, 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 366u, + 0u, 0u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 369u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 371u, + 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 373u, 0u, 374u, 0u, 0u, 0u, 375u, 0u, 376u, 0u, 377u, 0u, 0u, 0u, 0u, 378u, 0u, 0u, 0u, 0u, 379u, 0u, 0u, 0u, + 0u, 380u, 0u, 0u, 0u, 0u, 381u, 0u, 0u, 0u, 0u, 382u, 0u, 0u, 0u, 383u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 387u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 388u, 0u, 389u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 393u, 0u, 0u, + 0u, 0u, 0u, 0u, 394u, 0u, 395u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 397u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 398u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 399u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 400u, 0u, 401u, 0u, 402u, 0u, 0u, 0u, 0u, 403u, 0u, 404u, 0u, 405u, 0u, 0u, 0u, 0u, + 0u, 406u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 408u, 0u, 409u, 0u, 410u, 0u, 411u, 0u, 0u, 0u, 412u, 0u, 413u, 0u, 0u, 0u, 0u, 414u, 0u, 0u, 0u, 415u, 0u, 416u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 420u, 0u, 421u, 0u, 422u, 0u, 0u, 423u, 0u, 0u, 424u, + 0u, 425u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, 427u, 0u, 428u, 429u, 0u, 0u, 430u, 0u, 0u, 0u, 431u, 0u, 0u, 432u, 0u, 433u, 0u, 434u, 0u, 0u, 0u, 0u, 435u, + 0u, 0u, 436u, 0u, 0u, 0u, 0u, 437u, 0u, 0u, 438u, 0u, 0u, 439u, 0u, 0u, 440u, 0u, 441u, 0u, 0u, 442u, 0u, 0u, 0u, 443u, 0u, 0u, 444u, 0u, 0u, 445u, + 0u, 0u, 0u, 446u, 0u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 451u, 0u, 452u, 0u, 0u, 0u, 453u, 0u, + 0u, 0u, 0u, 0u, 454u, 0u, 0u, 455u, 0u, 456u, 0u, 457u, 0u, 458u, 459u, 0u, 460u, 0u, 0u, 0u, 461u, 0u, 0u, 462u, 0u, 463u, 464u, 0u, 465u, 0u, 0u, 466u, + 0u, 0u, 467u, 0u, 0u, 0u, 468u, 0u, 0u, 469u, 0u, 470u, 471u, 0u, 472u, 0u, 0u, 473u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 476u, + 0u, 0u, 477u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 479u, 0u, 0u, 0u, 480u, 0u, 0u, 481u, 0u, 0u, 0u, 0u, 0u, 482u, 0u, 483u, 0u, 0u, 484u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 485u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 0u, 488u, 0u, 0u, 489u, 0u, 0u, 490u, 0u, 0u, 0u, 0u, 491u, 0u, 492u, 0u, + 0u, 0u, 0u, 493u, 0u, 494u, 0u, 495u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 498u, 0u, 0u, 499u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, + 0u, 501u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, 503u, 0u, 0u, 504u, 0u, 0u, 505u, 0u, 0u, 0u, 0u, 506u, 0u, 507u, 508u, 0u, 0u, 0u, 0u, + 0u, 509u, 0u, 0u, 510u, 0u, 0u, 0u, 0u, 0u, 0u, 511u, 0u, 512u, 0u, 0u, 0u, 0u, 0u, 0u, 513u, 0u, 514u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 515u, 0u, 0u, 0u, 516u, 0u, 517u, 0u, 518u, 0u, 0u, 519u, 0u, 0u, 0u, 0u, 0u, 0u, 520u, 0u, 0u, 521u, 0u, 522u, 0u, 523u, 0u, 0u, 0u, 0u, + 524u, 0u, 525u, 0u, 526u, 0u, 527u, 0u, 528u, 0u, 0u, 529u, 0u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 532u, 0u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 534u, 0u, 0u, 535u, 0u, 536u, 0u, 0u, 0u, 0u, 537u, 538u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 539u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 540u, 0u, 0u, 0u, 0u, 0u, 541u, 0u, 542u, 543u, 0u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 545u, 0u, 546u, 0u, 547u, 0u, 548u, 0u, 0u, 0u, 549u, 0u, 550u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 552u, 0u, 553u, 0u, 0u, 0u, 554u, 0u, 0u, 0u, 0u, 555u, + 0u, 0u, 0u, 556u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 558u, 559u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, 0u, 562u, 0u, 0u, + 563u, 0u, 564u, 0u, 0u, 565u, 0u, 566u, 0u, 567u, 0u, 568u, 0u, 569u, 570u, 0u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 573u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, + 576u, 0u, 577u, 578u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, 582u, 0u, 0u, 583u, 0u, 584u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 586u, 0u, 0u, 0u, 587u, 0u, 588u, 589u, 0u, 0u, 0u, 0u, 0u, 590u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 591u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 592u, 0u, 593u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 0u, 0u, + 596u, 0u, 597u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 598u, 0u, 0u, 0u, 599u, 0u, 0u, 600u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 601u, 0u, 602u, 0u, 0u, 0u, 0u, 603u, 0u, 0u, 0u, 0u, 604u, 0u, 0u, 0u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 606u, 0u, 0u, 0u, 607u, 0u, 608u, 0u, 609u, 610u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 611u, 0u, 0u, 612u, 0u, 0u, 0u, 0u, 613u, 614u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 616u, 0u, 0u, 0u, 0u, 0u, 617u, 0u, 618u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 620u, 0u, 0u, 0u, 621u, 0u, 0u, + 0u, 622u, 0u, 623u, 0u, 0u, 0u, 0u, 0u, 624u, 0u, 625u, 626u, 0u, 627u, 0u, 0u, 0u, 628u, 0u, 629u, 630u, 0u, 631u, 0u, 0u, 0u, 632u, 0u, 633u, 0u, 634u, + 0u, 635u, 0u, 636u, 0u, 0u, 0u, 637u, 0u, 0u, 638u, 0u, 0u, 639u, 0u, 640u, 0u, 641u, 0u, 642u, 643u, 0u, 644u, 0u, 0u, 0u, 645u, 0u, 646u, 0u, 647u, 0u, + 648u, 0u, 649u, 0u, 650u, 0u, 651u, 0u, 652u, 0u, 653u, 654u, 0u, 655u, 0u, 0u, 0u, 656u, 0u, 657u, 0u, 658u, 0u, 659u, 0u, 660u, 0u, 661u, 0u, 662u, 663u, 0u, + 664u, 0u, 0u, 0u, 665u, 0u, 0u, 666u, 667u, 0u, 668u, 0u, 0u, 0u, 669u, 0u, 670u, 0u, 671u, 0u, 672u, 0u, 673u, 0u, 674u, 0u, 675u, 0u, 676u, 0u, 0u, 677u, + 0u, 678u, 0u, 679u, 0u, 680u, 681u, 0u, 682u, 0u, 0u, 683u, 0u, 0u, 0u, 684u, 0u, 0u, 0u, 685u, 0u, 686u, 0u, 687u, 0u, 0u, 688u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 689u, 0u, 690u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 691u, 0u, 0u, 0u, 692u, 0u, 0u, 693u, 0u, 0u, 0u, 694u, 0u, 695u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 696u, 0u, 697u, 0u, 698u, 0u, 699u, 0u, 700u, 0u, 701u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 702u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 703u, 0u, 0u, 704u, 0u, 0u, 0u, 705u, 0u, 0u, 706u, 0u, 0u, 0u, 707u, 0u, 0u, 708u, 0u, 0u, 709u, 0u, 710u, 0u, 0u, 711u, 0u, + 712u, 0u, 713u, 0u, 714u, 715u, 0u, 0u, 0u, 0u, 716u, 0u, 0u, 0u, 717u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 719u, 0u, 0u, 720u, 0u, 721u, 0u, 0u, 0u, 722u, 0u, 723u, 0u, 724u, 0u, 0u, 725u, 0u, 0u, 0u, 0u, 726u, 0u, + 0u, 0u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 728u, 0u, 729u, 0u, 0u, 730u, 0u, 0u, 0u, 731u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 732u, 733u, 0u, 0u, 734u, 0u, 0u, 735u, 0u, 736u, 0u, 737u, 738u, 0u, 0u, 0u, 739u, 0u, 740u, 741u, 0u, 0u, 0u, 742u, 0u, 743u, 0u, + 744u, 0u, 0u, 0u, 745u, 0u, 0u, 746u, 0u, 0u, 0u, 0u, 747u, 0u, 748u, 749u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 750u, 0u, 0u, 0u, 0u, 751u, + 0u, 752u, 0u, 753u, 0u, 0u, 0u, 0u, 0u, 0u, 754u, 0u, 755u, 0u, 756u, 0u, 0u, 0u, 0u, 0u, 757u, 0u, 758u, 0u, 759u, 0u, 760u, 0u, 761u, 0u, 0u, 0u, + 0u, 762u, 0u, 763u, 0u, 764u, 0u, 0u, 0u, 765u, 0u, 766u, 0u, 0u, 767u, 0u, 0u, 0u, 768u, 0u, 769u, 0u, 770u, 0u, 0u, 771u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 772u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 0u, 0u, 0u, 0u, 774u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 775u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 776u, 0u, 0u, + 777u, 0u, 778u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 779u, + 0u, 0u, 0u, 0u, 0u, 780u, 0u, 781u, 0u, 0u, 0u, 0u, 782u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 783u, 0u, 0u, 0u, 0u, 784u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 785u, 0u, 786u, 0u, 787u, 0u, 0u, 0u, 788u, 0u, 789u, 0u, 790u, 0u, 791u, 0u, 792u, 0u, 793u, 0u, 794u, 0u, 795u, 0u, 796u, + 0u, 797u, 0u, 0u, 798u, 0u, 799u, 0u, 800u, 0u, 801u, 0u, 0u, 802u, 0u, 803u, 0u, 804u, 0u, 805u, 0u, 806u, 0u, 807u, 0u, 808u, 0u, 0u, 0u, 0u, 809u, 0u, + 810u, 0u, 0u, 0u, 811u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 812u, 0u, 0u, 0u, 0u, 0u, 0u, 813u, 0u, 0u, 0u, 0u, 0u, 814u, 0u, 0u, 815u, 0u, 0u, 816u, + 0u, 817u, 0u, 818u, 0u, 819u, 0u, 0u, 820u, 0u, 0u, 821u, 0u, 0u, 0u, 0u, 822u, 823u, 0u, 0u, 0u, 824u, 0u, 0u, 0u, 0u, 825u, 0u, 826u, 0u, 827u, 0u, + 828u, 0u, 829u, 0u, 0u, 0u, 830u, 0u, 0u, 831u, 0u, 832u, 0u, 833u, 0u, 834u, 0u, 835u, 0u, 836u, 0u, 0u, 837u, 838u, 0u, 0u, 0u, 839u, 0u, 0u, 0u, 0u, + 840u, 0u, 841u, 0u, 842u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 843u, 0u, 0u, 0u, 0u, 844u, 0u, 0u, 0u, 845u, 0u, 846u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 847u, 0u, 848u, 0u, 849u, 0u, 0u, 850u, 0u, 0u, 851u, 0u, 0u, 0u, 0u, 0u, 0u, 852u, 0u, 853u, 0u, 0u, 0u, 854u, 0u, 0u, 0u, 855u, 856u, + 0u, 857u, 0u, 858u, 0u, 0u, 0u, 0u, 0u, 859u, 860u, 861u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 862u, 0u, 863u, 0u, 864u, 0u, 865u, 0u, 0u, + 0u, 0u, 0u, 0u, 866u, 0u, 867u, 0u, 0u, 868u, 0u, 869u, 0u, 870u, 0u, 871u, 0u, 872u, 0u, 873u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 874u, 0u, 875u, + 0u, 876u, 0u, 877u, 0u, 878u, 0u, 0u, 0u, 879u, 0u, 0u, 880u, 0u, 0u, 0u, 881u, 0u, 882u, 0u, 0u, 0u, 0u, 883u, 0u, 884u, 0u, 0u, 0u, 0u, 885u, 0u, + 886u, 0u, 887u, 888u, 0u, 889u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 890u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 891u, 0u, 892u, 0u, 0u, 893u, 0u, 894u, 0u, 895u, + 0u, 0u, 0u, 0u, 896u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 897u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 898u, 0u, 0u, 0u, 899u, 0u, 900u, 0u, + 901u, 0u, 0u, 0u, 902u, 0u, 0u, 903u, 0u, 0u, 904u, 0u, 905u, 0u, 906u, 0u, 0u, 0u, 907u, 0u, 908u, 0u, 0u, 909u, 0u, 0u, 910u, 0u, 0u, 0u, 911u, 0u, + 0u, 0u, 0u, 912u, 0u, 0u, 0u, 0u, 0u, 913u, 0u, 0u, 914u, 0u, 915u, 0u, 916u, 0u, 917u, 0u, 0u, 0u, 0u, 918u, 0u, 919u, 0u, 0u, 0u, 0u, 0u, 920u, + 921u, 0u, 0u, 0u, 0u, 0u, 0u, 922u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 923u, 0u, 0u, 924u, 0u, 925u, 0u, 0u, 0u, 0u, 926u, 0u, 0u, 0u, 927u, +}; + void recomp_unit_0064_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,31,29,6,16 fprs=12,13,14,15 gpr_occ=4346 fpr_occ=501 gpr_total=5839 fpr_total=703 @@ -58,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08904000u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0064[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0064[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0064[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08904000; @@ -1005,6 +1129,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08904000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1066,8 +1214,21 @@ L_08904048: L_08904050: aot_gpr_31 = (0x08904058u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 7u, 0x08904058u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904058u) goto L_08904058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904058: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -1113,8 +1274,21 @@ L_089040AC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089040C0u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 13u, 0x089040C0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089040C0u) goto L_089040C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089040C0: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[20]); @@ -1147,8 +1321,21 @@ L_089040DC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089040F4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 17u, 0x089040F4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089040F4u) goto L_089040F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089040F4: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); goto L_089040F8; @@ -1201,8 +1388,21 @@ L_08904140: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08904154u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 24u, 0x08904154u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904154u) goto L_08904154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904154: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); @@ -1233,16 +1433,16 @@ L_0890417C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089041AC: ctx.gpr[2] = (2192u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(16812)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089041B8: @@ -1254,8 +1454,8 @@ L_089041C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089041D4: @@ -1276,8 +1476,21 @@ L_089041F4: L_089041FC: aot_gpr_31 = (0x08904204u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 33u, 0x08904204u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904204u) goto L_08904204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904204: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -1286,8 +1499,21 @@ L_08904204: goto L_0890420C; L_0890420C: aot_gpr_31 = (0x08904214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 35u, 0x08904214u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904214u) goto L_08904214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904214: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -1326,8 +1552,8 @@ L_0890423C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904258: @@ -1336,8 +1562,21 @@ L_08904258: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08904270u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 42u, 0x08904270u, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904270u) goto L_08904270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904270: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(22976)); @@ -1367,8 +1606,8 @@ L_089042A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089042BC: @@ -1460,8 +1699,21 @@ L_0890433C: L_08904340: aot_gpr_31 = (0x08904348u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 58u, 0x08904348u, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904348u) goto L_08904348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904348: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1485,20 +1737,20 @@ L_0890435C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904374: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890437C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904384: @@ -1507,8 +1759,21 @@ L_08904384: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x0890439Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 64u, 0x0890439Cu, 0x08AC5C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 507u, 0x08AC5C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890439Cu) goto L_0890439C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890439C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); aot_gpr_4 = (0u | 1u); @@ -1546,8 +1811,21 @@ L_089043F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_5); aot_gpr_31 = (0x08904408u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 67u, 0x08904408u, 0x08AF51FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 121u, 0x08AF51FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904408u) goto L_08904408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904408: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -1557,8 +1835,8 @@ L_08904408: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890441C: @@ -1567,8 +1845,21 @@ L_0890441C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x08904434u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 69u, 0x08904434u, 0x08AC5CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 511u, 0x08AC5CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904434u) goto L_08904434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904434: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); aot_gpr_4 = (0u | 1u); @@ -1606,8 +1897,21 @@ L_08904488: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_5); aot_gpr_31 = (0x089044A0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 72u, 0x089044A0u, 0x08AF51FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 121u, 0x08AF51FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089044A0u) goto L_089044A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089044A0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -1617,20 +1921,20 @@ L_089044A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089044B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089044BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089044C4: @@ -1642,8 +1946,21 @@ L_089044C4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x089044F4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 76u, 0x089044F4u, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089044F4u) goto L_089044F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089044F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1656,14 +1973,40 @@ L_089044FC: aot_gpr_5 = (0u | 158u); aot_gpr_31 = (0x0890450Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 78u, 0x0890450Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890450Cu) goto L_0890450C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890450C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08904518u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 79u, 0x08904518u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904518u) goto L_08904518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904518: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -1740,8 +2083,21 @@ L_0890458C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890459Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 89u, 0x0890459Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890459Cu) goto L_0890459C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890459C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(188))); @@ -1769,8 +2125,21 @@ L_089045C4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089045D0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 93u, 0x089045D0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089045D0u) goto L_089045D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089045D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); goto L_089045D4; @@ -1795,8 +2164,21 @@ L_089045EC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089045FCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 97u, 0x089045FCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089045FCu) goto L_089045FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089045FC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(188))); @@ -1810,21 +2192,60 @@ L_0890460C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08904624u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 99u, 0x08904624u, 0x08903F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 715u, 0x08903F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904624u) goto L_08904624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904624: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (0u | 159u); aot_gpr_31 = (0x08904634u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 100u, 0x08904634u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904634u) goto L_08904634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904634: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08904640u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 101u, 0x08904640u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904640u) goto L_08904640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904640: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1884,8 +2305,21 @@ L_0890469C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089046ACu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 109u, 0x089046ACu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089046ACu) goto L_089046AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089046AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(200))); @@ -1913,8 +2347,21 @@ L_089046D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089046E0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 113u, 0x089046E0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089046E0u) goto L_089046E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089046E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); goto L_089046E4; @@ -1939,8 +2386,21 @@ L_089046FC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0890470Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 117u, 0x0890470Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890470Cu) goto L_0890470C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890470C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(200))); @@ -1954,8 +2414,21 @@ L_0890471C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08904734u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 119u, 0x08904734u, 0x08903F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 715u, 0x08903F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904734u) goto L_08904734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904734: ctx.gpr[2] = (0u | 1u); goto L_08904738; @@ -1973,14 +2446,14 @@ L_08904738: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904760: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904768: @@ -1989,36 +2462,101 @@ L_08904768: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0890477Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 123u, 0x0890477Cu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890477Cu) goto L_0890477C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890477C: aot_gpr_31 = (0x08904784u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(188))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 124u, 0x08904784u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904784u) goto L_08904784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904784: aot_gpr_31 = (0x0890478Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 125u, 0x0890478Cu, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890478Cu) goto L_0890478C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890478C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(200))); aot_gpr_31 = (0x08904798u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 126u, 0x08904798u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904798u) goto L_08904798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904798: aot_gpr_31 = (0x089047A0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(184), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 127u, 0x089047A0u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089047A0u) goto L_089047A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089047A0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089047B0: @@ -2027,8 +2565,8 @@ L_089047B0: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089047C4: @@ -2061,8 +2599,8 @@ L_08904818: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890482C: @@ -2090,8 +2628,8 @@ L_08904858: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890486C: @@ -2112,8 +2650,21 @@ L_0890488C: ctx.gpr[18] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08904898u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 136u, 0x08904898u, 0x08B246F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 53u, 0x08B246F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904898u) goto L_08904898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904898: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2142,8 +2693,8 @@ L_089048BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089048D4: @@ -2318,8 +2869,8 @@ L_08904A28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904A3C: @@ -2330,14 +2881,40 @@ L_08904A3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08904A58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 159u, 0x08904A58u, 0x08B24720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 56u, 0x08B24720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904A58u) goto L_08904A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904A58: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08904A64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 160u, 0x08904A64u, 0x08B246F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 53u, 0x08B246F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904A64u) goto L_08904A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904A64: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -2373,8 +2950,8 @@ L_08904A84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904AA4: @@ -2461,8 +3038,8 @@ L_08904B20: goto L_08904B34; L_08904B34: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904B3C: @@ -2485,8 +3062,8 @@ L_08904B54: } L_08904B5C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904B64: @@ -2542,8 +3119,8 @@ L_08904B64: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904B8C: @@ -2569,8 +3146,8 @@ L_08904B8C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904BA8: @@ -2598,8 +3175,8 @@ L_08904BA8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904BC0: @@ -2627,8 +3204,8 @@ L_08904BC0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904BD8: @@ -2649,8 +3226,8 @@ L_08904BD8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904BF4: @@ -2671,8 +3248,8 @@ L_08904BF4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904C10: @@ -2684,8 +3261,8 @@ L_08904C10: { const float fs = aot_fpr_14; const float ft = aot_fpr_15; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } jump_target = aot_gpr_31; ctx.fpr[0] = ctx.fpr[0] + aot_fpr_14; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904C30: @@ -2693,8 +3270,8 @@ L_08904C30: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904C40: @@ -2709,8 +3286,8 @@ L_08904C40: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904C6C: @@ -2744,8 +3321,8 @@ L_08904CA0: L_08904CA4: jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904CAC: @@ -2768,8 +3345,8 @@ L_08904CC4: } L_08904CCC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904CD4: @@ -2783,15 +3360,15 @@ L_08904CE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904CF4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904CFC: @@ -2899,8 +3476,21 @@ L_08904DF4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08904E24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 204u, 0x08904E24u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904E24u) goto L_08904E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904E24: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[23]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -2929,8 +3519,8 @@ L_08904E34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904E70: @@ -2938,8 +3528,8 @@ L_08904E70: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904E84: @@ -2977,8 +3567,8 @@ L_08904EEC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-13040))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904F04: @@ -3044,8 +3634,21 @@ L_08904F54: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08904FA4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 214u, 0x08904FA4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08904FA4u) goto L_08904FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08904FA4: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[21]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -3079,8 +3682,8 @@ L_08904FBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08904FF0: @@ -3093,8 +3696,21 @@ L_08904FF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08905018u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 218u, 0x08905018u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905018u) goto L_08905018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905018: aot_gpr_4 = (ctx.gpr[17] << 2u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); @@ -3118,8 +3734,21 @@ L_08905040: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08905058u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 221u, 0x08905058u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905058u) goto L_08905058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905058: ctx.gpr[2] = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3131,8 +3760,8 @@ L_08905058: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905074: @@ -3142,8 +3771,21 @@ L_08905074: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08905090u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 223u, 0x08905090u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905090u) goto L_08905090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905090: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -3168,8 +3810,8 @@ L_089050AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089050C8: @@ -3177,8 +3819,8 @@ L_089050C8: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089050D8: @@ -3206,15 +3848,15 @@ L_089050F8: L_089050FC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905104: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2228)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890510C: @@ -3236,14 +3878,27 @@ L_08905128: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08905140u); ctx.gpr[7] = (0u | 161u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 234u, 0x08905140u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905140u) goto L_08905140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905140: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890514C: @@ -3269,8 +3924,21 @@ L_0890517C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1676))); aot_gpr_31 = (0x08905188u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 238u, 0x08905188u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905188u) goto L_08905188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905188: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1676), aot_gpr_16); goto L_0890518C; @@ -3284,15 +3952,15 @@ L_0890518C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089051A4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089051AC: @@ -3312,8 +3980,21 @@ L_089051C4: L_089051CC: aot_gpr_31 = (0x089051D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 244u, 0x089051D4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089051D4u) goto L_089051D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089051D4: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); @@ -3360,8 +4041,21 @@ L_08905200: } L_08905208: aot_gpr_31 = (0x08905210u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 251u, 0x08905210u, 0x08ACF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1019u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1019u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1019u, 0x08ACF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905210u) goto L_08905210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905210: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3395,8 +4089,8 @@ L_08905230: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905244: @@ -3433,8 +4127,8 @@ L_0890527C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905288: @@ -3460,14 +4154,40 @@ L_089052C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); aot_gpr_31 = (0x089052CCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 265u, 0x089052CCu, 0x0893EC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 681u, 0x0893EC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089052CCu) goto L_089052CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089052CC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089052D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 266u, 0x089052D8u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089052D8u) goto L_089052D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089052D8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3545,29 +4265,29 @@ L_08905354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905378: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905380: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2240), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905388: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2240))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905390: @@ -3638,20 +4358,59 @@ L_08905414: L_08905418: aot_gpr_31 = (0x08905420u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 289u, 0x08905420u, 0x0893EC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 680u, 0x0893EC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905420u) goto L_08905420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905420: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0890542Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 290u, 0x0890542Cu, 0x0893EC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 681u, 0x0893EC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890542Cu) goto L_0890542C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890542C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08905438u); ctx.gpr[20] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 291u, 0x08905438u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905438u) goto L_08905438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905438: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -3805,8 +4564,21 @@ L_08905548: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08905564u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 311u, 0x08905564u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905564u) goto L_08905564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905564: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2193u << 16u); @@ -3882,8 +4654,8 @@ L_089055FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890562C: @@ -3896,8 +4668,21 @@ L_0890562C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08905650u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 319u, 0x08905650u, 0x0890F28Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 731u, 0x0890F28Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905650u) goto L_08905650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905650: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(472))); aot_gpr_5 = (0u + static_cast(-1793)); @@ -3915,8 +4700,8 @@ L_08905650: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905684: @@ -3952,8 +4737,21 @@ L_089056C4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089056D0u); aot_gpr_5 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 324u, 0x089056D0u, 0x0890F28Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 731u, 0x0890F28Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089056D0u) goto L_089056D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089056D0: aot_gpr_4 = (50298u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3965,8 +4763,21 @@ L_089056D0: aot_gpr_6 = (0u | 60u); aot_gpr_31 = (0x089056F8u); ctx.gpr[7] = (0u | 260u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 325u, 0x089056F8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089056F8u) goto L_089056F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089056F8: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2192u << 16u); @@ -3995,8 +4806,8 @@ L_0890572C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905744: @@ -4032,8 +4843,21 @@ L_08905784: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08905790u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 332u, 0x08905790u, 0x0890F28Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 731u, 0x0890F28Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905790u) goto L_08905790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905790: aot_gpr_4 = (50298u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4045,8 +4869,21 @@ L_08905790: aot_gpr_6 = (0u | 60u); aot_gpr_31 = (0x089057B8u); ctx.gpr[7] = (0u | 259u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 333u, 0x089057B8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089057B8u) goto L_089057B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089057B8: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2192u << 16u); @@ -4075,8 +4912,8 @@ L_089057EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905804: @@ -4088,8 +4925,8 @@ L_08905804: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(456), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905824: @@ -4127,8 +4964,21 @@ L_08905860: aot_gpr_6 = (0u | 60u); aot_gpr_31 = (0x0890587Cu); ctx.gpr[7] = (0u | 261u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 340u, 0x0890587Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890587Cu) goto L_0890587C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890587C: aot_gpr_5 = (2192u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4174,8 +5024,21 @@ L_089058AC: aot_gpr_6 = (0u | 60u); aot_gpr_31 = (0x089058F0u); ctx.gpr[7] = (0u | 258u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 345u, 0x089058F0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089058F0u) goto L_089058F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089058F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20384))); aot_gpr_5 = (2192u << 16u); @@ -4194,8 +5057,21 @@ L_0890590C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08905928u); aot_gpr_6 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 347u, 0x08905928u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905928u) goto L_08905928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905928: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4205,8 +5081,8 @@ L_08905928: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890593C: @@ -4215,8 +5091,8 @@ L_0890593C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905964: @@ -4230,15 +5106,15 @@ L_08905964: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905990: ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890599C: @@ -4250,8 +5126,8 @@ L_0890599C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089059BC: @@ -4276,8 +5152,8 @@ L_089059BC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089059E4: @@ -4294,8 +5170,8 @@ L_089059E4: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089059FC: @@ -4314,8 +5190,8 @@ L_089059FC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905A0C: @@ -4337,15 +5213,15 @@ L_08905A0C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905A28: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905A30: @@ -4364,8 +5240,8 @@ L_08905A30: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905A44: @@ -4379,15 +5255,15 @@ L_08905A44: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(52), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), std::bit_cast(aot_fpr_14)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905A60: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905A68: @@ -4411,8 +5287,21 @@ L_08905A68: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08905A8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 361u, 0x08905A8Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905A8Cu) goto L_08905A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905A8C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4422,15 +5311,28 @@ L_08905A8C: } aot_gpr_31 = (0x08905AA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 362u, 0x08905AA0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905AA0u) goto L_08905AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905AA0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905AB0: @@ -4440,8 +5342,8 @@ L_08905AB0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905AC8: @@ -4452,8 +5354,8 @@ L_08905AC8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905AE4: @@ -4463,8 +5365,8 @@ L_08905AE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905AFC: @@ -4474,8 +5376,8 @@ L_08905AFC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905B14: @@ -4485,15 +5387,15 @@ L_08905B14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905B2C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905B34: @@ -4535,15 +5437,15 @@ L_08905B7C: goto L_08905B98; L_08905B98: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905BA0: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905BA8: @@ -4551,22 +5453,22 @@ L_08905BA8: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905BB8: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905BC0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905BC8: @@ -4575,8 +5477,8 @@ L_08905BC8: ctx.gpr[2] = (aot_gpr_4 ^ 2u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905BDC: @@ -4585,8 +5487,8 @@ L_08905BDC: ctx.gpr[2] = (aot_gpr_4 ^ 6u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905BF0: @@ -4595,8 +5497,8 @@ L_08905BF0: ctx.gpr[2] = (aot_gpr_4 ^ 8u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905C04: @@ -4605,8 +5507,8 @@ L_08905C04: ctx.gpr[2] = (aot_gpr_4 ^ 14u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905C18: @@ -4615,8 +5517,8 @@ L_08905C18: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905C2C: @@ -4624,8 +5526,8 @@ L_08905C2C: ctx.gpr[2] = (aot_gpr_4 & 496u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905C3C: @@ -4633,8 +5535,8 @@ L_08905C3C: ctx.gpr[2] = (aot_gpr_4 & 512u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905C4C: @@ -4647,8 +5549,8 @@ L_08905C4C: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905C70: @@ -4662,8 +5564,8 @@ L_08905C70: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905C98: @@ -4677,8 +5579,8 @@ L_08905C98: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905CC0: @@ -4691,15 +5593,15 @@ L_08905CC0: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(76), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905CE4: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905CEC: @@ -4769,15 +5671,15 @@ L_08905CEC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905D48: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905D50: @@ -4793,8 +5695,8 @@ L_08905D50: goto L_08905D6C; L_08905D6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905D74: @@ -4810,8 +5712,8 @@ L_08905D74: goto L_08905D90; L_08905D90: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905D98: @@ -4820,14 +5722,27 @@ L_08905D98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08905DACu); aot_fpr_13 = aot_fpr_13 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 396u, 0x08905DACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905DACu) goto L_08905DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905DAC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905DB8: @@ -4869,8 +5784,8 @@ L_08905DB8: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(8), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905E50: @@ -4914,8 +5829,8 @@ L_08905E50: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905E94: @@ -4927,22 +5842,22 @@ L_08905E94: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.vfpu_scalar_bits_ct<2u>()); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), ctx.vfpu_scalar_bits_ct<34u>()); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905EB8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905EC0: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(310), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905EC8: @@ -4951,22 +5866,22 @@ L_08905EC8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(268), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(336), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905EDC: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(268))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905EE4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(336))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905EEC: @@ -4976,14 +5891,27 @@ L_08905EEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08905F04u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 406u, 0x08905F04u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08905F04u) goto L_08905F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08905F04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905F10: @@ -5097,29 +6025,29 @@ L_08905F10: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905F90: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905F98: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(900))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905FA0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(474))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905FA8: @@ -5127,15 +6055,15 @@ L_08905FA8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(24), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905FB8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905FC0: @@ -5144,8 +6072,8 @@ L_08905FC0: aot_gpr_5 = (aot_gpr_6 & aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905FD4: @@ -5153,15 +6081,15 @@ L_08905FD4: ctx.gpr[2] = (aot_gpr_4 & 512u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905FE4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2276))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08905FEC: @@ -5183,8 +6111,21 @@ L_08906014: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(92), aot_gpr_4); aot_gpr_31 = (0x08906028u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 418u, 0x08906028u, 0x088E29A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 258u, 0x088E29A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906028u) goto L_08906028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906028: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(36))); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -5215,14 +6156,40 @@ L_08906054: L_0890605C: aot_gpr_31 = (0x08906064u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 422u, 0x08906064u, 0x089086DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 117u, 0x089086DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906064u) goto L_08906064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906064: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08906070u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 423u, 0x08906070u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906070u) goto L_08906070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906070: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5233,16 +6200,42 @@ L_08906070: } L_0890607C: aot_gpr_31 = (0x08906084u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 425u, 0x08906084u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906084u) goto L_08906084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906084: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08906098u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 426u, 0x08906098u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906098u) goto L_08906098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906098: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -5268,8 +6261,21 @@ L_089060BC: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089060CCu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 431u, 0x089060CCu, 0x0880DD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 422u, 0x0880DD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089060CCu) goto L_089060CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089060CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1712))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5280,13 +6286,39 @@ L_089060CC: } L_089060D8: aot_gpr_31 = (0x089060E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 433u, 0x089060E0u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089060E0u) goto L_089060E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089060E0: aot_gpr_31 = (0x089060E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 434u, 0x089060E8u, 0x0890849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089060E8u) goto L_089060E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089060E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (4u << 16u); @@ -5321,8 +6353,21 @@ L_08906128: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); aot_gpr_31 = (0x08906134u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 439u, 0x08906134u, 0x089C8D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 238u, 0x089C8D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906134u) goto L_08906134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906134: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1136))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5340,21 +6385,60 @@ L_08906148: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08906154u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 442u, 0x08906154u, 0x08910498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 75u, 0x08910498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906154u) goto L_08906154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906154: ctx.gpr[19] = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); aot_gpr_31 = (0x08906164u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 443u, 0x08906164u, 0x08A05F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 499u, 0x08A05F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906164u) goto L_08906164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906164: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08906170u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 444u, 0x08906170u, 0x08A066D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 614u, 0x08A066D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906170u) goto L_08906170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906170: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2276))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -5368,8 +6452,21 @@ L_0890617C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0890618Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 446u, 0x0890618Cu, 0x08863EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 786u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 786u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 786u, 0x08863EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890618Cu) goto L_0890618C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890618C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08906198u); @@ -5384,8 +6481,21 @@ L_08906198: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089061B4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 448u, 0x089061B4u, 0x08861CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 279u, 0x08861CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089061B4u) goto L_089061B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089061B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5400,14 +6510,40 @@ L_089061BC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089061D4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 450u, 0x089061D4u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089061D4u) goto L_089061D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089061D4: aot_gpr_4 = (aot_gpr_16 + static_cast(2268)); aot_gpr_31 = (0x089061E0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 451u, 0x089061E0u, 0x08887A90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 832u, 0x08887A90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089061E0u) goto L_089061E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089061E0: { const bool branch_taken = ctx.gpr[20] == 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(1168)); @@ -5493,16 +6629,42 @@ L_08906250: goto L_0890625C; L_0890625C: aot_gpr_31 = (0x08906264u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 463u, 0x08906264u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906264u) goto L_08906264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906264: aot_gpr_4 = (aot_gpr_16 + static_cast(864)); goto L_08906268; L_08906268: aot_gpr_31 = (0x08906270u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 465u, 0x08906270u, 0x08A9F8BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 558u, 0x08A9F8BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906270u) goto L_08906270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906270: aot_gpr_4 = (aot_gpr_16 + static_cast(496)); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5540,16 +6702,42 @@ L_08906298: goto L_089062A4; L_089062A4: aot_gpr_31 = (0x089062ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 470u, 0x089062ACu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089062ACu) goto L_089062AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089062AC: aot_gpr_4 = (aot_gpr_16 | 0u); goto L_089062B0; L_089062B0: aot_gpr_31 = (0x089062B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 472u, 0x089062B8u, 0x08A66220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 501u, 0x08A66220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089062B8u) goto L_089062B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089062B8: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5574,8 +6762,8 @@ L_089062CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089062EC: @@ -5583,14 +6771,27 @@ L_089062EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089062FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 476u, 0x089062FCu, 0x08B6A78Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 427u, 0x08B6A78Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089062FCu) goto L_089062FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089062FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906308: @@ -5599,28 +6800,54 @@ L_08906308: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0890631Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 478u, 0x0890631Cu, 0x08B6A848u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 435u, 0x08B6A848u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890631Cu) goto L_0890631C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890631C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906328: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08906338u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 480u, 0x08906338u, 0x08ACFFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1147u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1147u, 0x08ACFFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906338u) goto L_08906338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906338: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906344: @@ -5629,19 +6856,58 @@ L_08906344: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0890635Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 482u, 0x0890635Cu, 0x08ACFA70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1055u, 0x08ACFA70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890635Cu) goto L_0890635C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890635C: aot_gpr_31 = (0x08906364u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 483u, 0x08906364u, 0x0886D308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 171u, 0x0886D308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906364u) goto L_08906364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906364: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08906370u); aot_gpr_5 = (aot_gpr_16 + static_cast(700)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 484u, 0x08906370u, 0x0886CFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 140u, 0x0886CFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906370u) goto L_08906370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906370: ctx.gpr[7] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -5702,21 +6968,60 @@ L_089063DC: L_089063F0: aot_gpr_31 = (0x089063F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 492u, 0x089063F8u, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089063F8u) goto L_089063F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089063F8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(776))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890640Cu); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 493u, 0x0890640Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890640Cu) goto L_0890640C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890640C: aot_gpr_31 = (0x08906414u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 494u, 0x08906414u, 0x089098ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 416u, 0x089098ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906414u) goto L_08906414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906414: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5745,22 +7050,61 @@ L_08906444: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08906450u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 498u, 0x08906450u, 0x0890384Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 653u, 0x0890384Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906450u) goto L_08906450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906450: aot_gpr_5 = (aot_gpr_16 + static_cast(1276)); aot_gpr_31 = (0x0890645Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 499u, 0x0890645Cu, 0x089034E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 611u, 0x089034E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890645Cu) goto L_0890645C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890645C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2272), static_cast(ctx.gpr[2])); aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2273), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08906470u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 500u, 0x08906470u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906470u) goto L_08906470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906470: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5770,8 +7114,8 @@ L_08906470: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906484: @@ -5805,16 +7149,42 @@ L_089064C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-27440))); aot_gpr_31 = (0x089064CCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 505u, 0x089064CCu, 0x088716C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 400u, 0x088716C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089064CCu) goto L_089064CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089064CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1364))); ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x089064E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-27440))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 506u, 0x089064E0u, 0x088716C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 400u, 0x088716C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089064E0u) goto L_089064E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089064E0: { const bool branch_taken = ctx.gpr[19] == ctx.gpr[2]; if (branch_taken) { @@ -5841,8 +7211,21 @@ L_08906504: aot_gpr_4 = (ctx.gpr[17] + static_cast(2016)); aot_gpr_31 = (0x08906510u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 510u, 0x08906510u, 0x08AD99CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 455u, 0x08AD99CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906510u) goto L_08906510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906510: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5854,15 +7237,15 @@ L_08906510: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890652C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2076))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906534: @@ -5873,15 +7256,15 @@ L_08906534: ctx.gpr[2] = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(1396)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906550: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1360))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906558: @@ -5936,8 +7319,21 @@ L_089065B4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x089065D0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 520u, 0x089065D0u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089065D0u) goto L_089065D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089065D0: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6079,8 +7475,21 @@ L_08906690: aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_31 = (0x089066ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 533u, 0x089066ACu, 0x08A420BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 378u, 0x08A420BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089066ACu) goto L_089066AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089066AC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6131,8 +7540,8 @@ L_089066E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906704: @@ -6174,8 +7583,8 @@ L_08906750: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890675C: @@ -6205,8 +7614,21 @@ L_08906788: L_08906790: aot_gpr_31 = (0x08906798u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 548u, 0x08906798u, 0x0898C4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 114u, 0x0898C4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906798u) goto L_08906798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906798: ctx.fpr[22] = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (0u | 0u); @@ -6217,8 +7639,21 @@ L_08906798: L_089067A8: aot_gpr_31 = (0x089067B0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 550u, 0x089067B0u, 0x0898C578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 124u, 0x0898C578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089067B0u) goto L_089067B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089067B0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6286,8 +7721,21 @@ L_08906820: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0890682Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 558u, 0x0890682Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890682Cu) goto L_0890682C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890682C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(3224), std::bit_cast(ctx.fpr[0])); goto L_08906830; @@ -6295,8 +7743,21 @@ L_08906830: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3224))); aot_gpr_31 = (0x0890683Cu); aot_fpr_12 = ctx.fpr[20] + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 560u, 0x0890683Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890683Cu) goto L_0890683C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890683C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6308,8 +7769,8 @@ L_0890683C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906858: @@ -6381,8 +7842,8 @@ L_089068B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089068C8: @@ -6423,8 +7884,21 @@ L_089068C8: L_0890693C: aot_gpr_31 = (0x08906944u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 573u, 0x08906944u, 0x0891283Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 629u, 0x0891283Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906944u) goto L_08906944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906944: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6473,8 +7947,8 @@ L_0890698C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089069AC: @@ -6548,8 +8022,21 @@ L_08906A1C: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08906A5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 581u, 0x08906A5Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906A5Cu) goto L_08906A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906A5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6590,8 +8077,21 @@ L_08906A78: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08906AB8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 585u, 0x08906AB8u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906AB8u) goto L_08906AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906AB8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6629,8 +8129,8 @@ L_08906ADC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906AF4: @@ -6927,8 +8427,8 @@ L_08906CBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906CD8: @@ -6966,8 +8466,21 @@ L_08906D18: } L_08906D20: aot_gpr_31 = (0x08906D28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 609u, 0x08906D28u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08906D28u) goto L_08906D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08906D28: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08906D2C; @@ -7034,15 +8547,15 @@ L_08906DA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906DBC: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2256))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906DC4: @@ -7056,8 +8569,8 @@ L_08906DD8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906DE4: @@ -7109,8 +8622,8 @@ L_08906E2C: goto L_08906E30; L_08906E30: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906E38: @@ -7135,8 +8648,8 @@ L_08906E50: goto L_08906E54; L_08906E54: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906E5C: @@ -7233,8 +8746,8 @@ L_08906ECC: goto L_08906ED0; L_08906ED0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906ED8: @@ -7315,8 +8828,8 @@ L_08906F28: goto L_08906F2C; L_08906F2C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906F34: @@ -7381,8 +8894,8 @@ L_08906F74: goto L_08906F78; L_08906F78: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906F80: @@ -7409,8 +8922,8 @@ L_08906F9C: L_08906FA0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08906FA8: @@ -7511,8 +9024,8 @@ L_08907014: goto L_08907018; L_08907018: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907020: @@ -7647,36 +9160,36 @@ L_089070F4: } L_08907114: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890711C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2244))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907124: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2196))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890712C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2260), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907134: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2256), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890713C: @@ -7828,8 +9341,21 @@ L_08907238: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08907250u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 718u, 0x08907250u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907250u) goto L_08907250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907250: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7960,8 +9486,8 @@ L_089072F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890730C: @@ -7983,14 +9509,27 @@ L_0890730C: } L_0890733C: aot_gpr_31 = (0x08907344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 729u, 0x08907344u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907344u) goto L_08907344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907344: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907350: @@ -7998,8 +9537,8 @@ L_08907350: ctx.gpr[2] = (aot_gpr_4 & 256u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907360: @@ -8061,8 +9600,21 @@ L_089073C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089073D4u); aot_gpr_6 = (0u | 152u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 739u, 0x089073D4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089073D4u) goto L_089073D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089073D4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); @@ -8079,8 +9631,21 @@ L_089073E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089073F0u); aot_gpr_6 = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 742u, 0x089073F0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089073F0u) goto L_089073F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089073F0: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -8121,8 +9686,21 @@ L_0890741C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08907430u); ctx.gpr[7] = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 747u, 0x08907430u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907430u) goto L_08907430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907430: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8145,8 +9723,21 @@ L_0890743C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08907468u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 750u, 0x08907468u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907468u) goto L_08907468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907468: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8156,22 +9747,22 @@ L_08907468: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890747C: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2260))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907484: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2192))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890748C: @@ -8189,8 +9780,21 @@ L_0890748C: L_089074A8: aot_gpr_31 = (0x089074B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 755u, 0x089074B0u, 0x08912938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 648u, 0x08912938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089074B0u) goto L_089074B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089074B0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8298,8 +9902,21 @@ L_08907538: L_08907548: aot_gpr_31 = (0x08907550u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 769u, 0x08907550u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907550u) goto L_08907550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907550: { const bool branch_taken = ctx.gpr[17] == ctx.gpr[2]; if (branch_taken) { @@ -8524,8 +10141,21 @@ L_089077FC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08907814u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 780u, 0x08907814u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907814u) goto L_08907814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907814: aot_gpr_31 = (0x0890781Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890781Cu) goto L_0890781C; @@ -8553,8 +10183,21 @@ L_08907830: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08907868u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 783u, 0x08907868u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907868u) goto L_08907868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907868: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(88), aot_run_words); @@ -8564,8 +10207,8 @@ L_08907868: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890787C: @@ -8574,8 +10217,21 @@ L_0890787C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_31 = (0x0890789Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 785u, 0x0890789Cu, 0x0890FF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 886u, 0x0890FF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890789Cu) goto L_0890789C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890789C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8586,8 +10242,21 @@ L_0890789C: L_089078A4: aot_gpr_31 = (0x089078ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 787u, 0x089078ACu, 0x0890FF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 886u, 0x0890FF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089078ACu) goto L_089078AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089078AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -8600,8 +10269,21 @@ L_089078AC: L_089078BC: aot_gpr_31 = (0x089078C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 789u, 0x089078C4u, 0x089107ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 133u, 0x089107ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089078C4u) goto L_089078C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089078C4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8612,18 +10294,57 @@ L_089078C4: L_089078CC: aot_gpr_31 = (0x089078D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 791u, 0x089078D4u, 0x089108E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 152u, 0x089108E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089078D4u) goto L_089078D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089078D4: aot_gpr_31 = (0x089078DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 792u, 0x089078DCu, 0x08910870u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 145u, 0x08910870u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089078DCu) goto L_089078DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089078DC: aot_gpr_31 = (0x089078E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 793u, 0x089078E4u, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089078E4u) goto L_089078E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089078E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8641,19 +10362,58 @@ L_089078EC: L_089078F4: aot_gpr_31 = (0x089078FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 796u, 0x089078FCu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089078FCu) goto L_089078FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089078FC: aot_gpr_31 = (0x08907904u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 797u, 0x08907904u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907904u) goto L_08907904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907904: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08907910u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 798u, 0x08907910u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907910u) goto L_08907910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907910: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8664,19 +10424,58 @@ L_08907910: L_08907918: aot_gpr_31 = (0x08907920u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 800u, 0x08907920u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907920u) goto L_08907920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907920: aot_gpr_31 = (0x08907928u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 801u, 0x08907928u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907928u) goto L_08907928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907928: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08907934u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 802u, 0x08907934u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907934u) goto L_08907934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907934: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8687,8 +10486,21 @@ L_08907934: L_0890793C: aot_gpr_31 = (0x08907944u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 804u, 0x08907944u, 0x089107ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 133u, 0x089107ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907944u) goto L_08907944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907944: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8699,38 +10511,116 @@ L_08907944: L_0890794C: aot_gpr_31 = (0x08907954u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 806u, 0x08907954u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907954u) goto L_08907954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907954: aot_gpr_31 = (0x0890795Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 807u, 0x0890795Cu, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890795Cu) goto L_0890795C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890795C: aot_gpr_31 = (0x08907964u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 808u, 0x08907964u, 0x0890FF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 886u, 0x0890FF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907964u) goto L_08907964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907964: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[17] = (ctx.gpr[2] - aot_gpr_5); aot_gpr_31 = (0x08907978u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 809u, 0x08907978u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907978u) goto L_08907978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907978: aot_gpr_31 = (0x08907980u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 810u, 0x08907980u, 0x089107C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 129u, 0x089107C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907980u) goto L_08907980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907980: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1248))); aot_gpr_31 = (0x08907990u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 811u, 0x08907990u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907990u) goto L_08907990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907990: ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1136))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -8740,8 +10630,21 @@ L_08907990: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089079B0u); ctx.gpr[9] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 812u, 0x089079B0u, 0x0891CA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 152u, 0x0891CA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089079B0u) goto L_089079B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089079B0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -8753,8 +10656,8 @@ L_089079B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089079CC: @@ -8773,14 +10676,40 @@ L_089079E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089079F0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 815u, 0x089079F0u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089079F0u) goto L_089079F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089079F0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(692), 0u); aot_gpr_31 = (0x089079FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 816u, 0x089079FCu, 0x0891826Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 31u, 0x0891826Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089079FCu) goto L_089079FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089079FC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1900), ctx.gpr[2]); @@ -8837,8 +10766,8 @@ L_08907A44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907A54: @@ -8864,8 +10793,21 @@ L_08907A70: L_08907A78: aot_gpr_31 = (0x08907A80u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 828u, 0x08907A80u, 0x08ACF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1019u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1019u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1019u, 0x08ACF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907A80u) goto L_08907A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907A80: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8878,8 +10820,21 @@ L_08907A88: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08907A98u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 830u, 0x08907A98u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907A98u) goto L_08907A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907A98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(692))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8890,8 +10845,21 @@ L_08907A98: } L_08907AA4: aot_gpr_31 = (0x08907AACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 832u, 0x08907AACu, 0x08ACF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1019u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1019u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1019u, 0x08ACF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907AACu) goto L_08907AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907AAC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8931,8 +10899,8 @@ L_08907ADC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907AEC: @@ -8976,8 +10944,21 @@ L_08907B10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08907B30u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 843u, 0x08907B30u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907B30u) goto L_08907B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907B30: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8987,22 +10968,35 @@ L_08907B30: } aot_gpr_31 = (0x08907B44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 844u, 0x08907B44u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907B44u) goto L_08907B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907B44: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907B54: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(352))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907B5C: @@ -9238,15 +11232,41 @@ L_08907D04: L_08907D0C: aot_gpr_31 = (0x08907D14u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 878u, 0x08907D14u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907D14u) goto L_08907D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907D14: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(0))); aot_gpr_31 = (0x08907D24u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 879u, 0x08907D24u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907D24u) goto L_08907D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907D24: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -9260,8 +11280,21 @@ L_08907D30: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08907D40u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 881u, 0x08907D40u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907D40u) goto L_08907D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907D40: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9293,8 +11326,21 @@ L_08907D64: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08907D78u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 885u, 0x08907D78u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907D78u) goto L_08907D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907D78: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[21]; if (branch_taken) { @@ -9330,8 +11376,8 @@ L_08907D94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907DB8: @@ -9383,8 +11429,8 @@ L_08907DFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907E10: @@ -9393,8 +11439,8 @@ L_08907E10: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907E38: @@ -9458,8 +11504,21 @@ L_08907E9C: L_08907EA8: aot_gpr_31 = (0x08907EB0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 905u, 0x08907EB0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907EB0u) goto L_08907EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907EB0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9472,13 +11531,39 @@ L_08907EB8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08907EC8u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 907u, 0x08907EC8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907EC8u) goto L_08907EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907EC8: aot_gpr_31 = (0x08907ED0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 908u, 0x08907ED0u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907ED0u) goto L_08907ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907ED0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9524,8 +11609,21 @@ L_08907F24: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(772), ctx.gpr[2]); aot_gpr_31 = (0x08907F30u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 914u, 0x08907F30u, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907F30u) goto L_08907F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907F30: aot_gpr_31 = (0x08907F38u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -9586,8 +11684,8 @@ L_08907F80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08907F9C: @@ -9614,8 +11712,21 @@ L_08907FC0: } L_08907FCC: aot_gpr_31 = (0x08907FD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0064->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0064_entry, 925u, 0x08907FD4u, 0x08945288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 180u, 0x08945288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08907FD4u) goto L_08907FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08907FD4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_5 = (ctx.gpr[2] | 0u); diff --git a/profiles/vcs/generated/generated_unit_0065.cpp b/profiles/vcs/generated/generated_unit_0065.cpp index e8ce300..b31cc20 100644 --- a/profiles/vcs/generated/generated_unit_0065.cpp +++ b/profiles/vcs/generated/generated_unit_0065.cpp @@ -1079,6 +1079,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08908000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1095,24 +1119,76 @@ LOCAL_SCHED_BOUNDARY: L_08908000: aot_gpr_31 = (0x08908008u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(772))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 2u, 0x08908008u, 0x08945288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 180u, 0x08945288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908008u) goto L_08908008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908008: aot_gpr_31 = (0x08908010u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 3u, 0x08908010u, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908010u) goto L_08908010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908010: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(772))); aot_gpr_31 = (0x0890801Cu); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 4u, 0x0890801Cu, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890801Cu) goto L_0890801C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890801C: aot_gpr_31 = (0x08908024u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 5u, 0x08908024u, 0x089730ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 658u, 0x089730ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908024u) goto L_08908024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908024: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(772), 0u); goto L_08908028; @@ -1155,13 +1231,39 @@ L_08908048: L_08908054: aot_gpr_31 = (0x0890805Cu); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 12u, 0x0890805Cu, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890805Cu) goto L_0890805C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890805C: aot_gpr_31 = (0x08908064u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 13u, 0x08908064u, 0x089730ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 658u, 0x089730ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908064u) goto L_08908064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908064: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(3240), 0u); goto L_08908068; @@ -1175,8 +1277,8 @@ L_08908068: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08908080: @@ -1217,8 +1319,21 @@ L_089080D0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x089080DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 19u, 0x089080DCu, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089080DCu) goto L_089080DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089080DC: aot_gpr_31 = (0x089080E4u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1929), static_cast(aot_gpr_16)); @@ -1276,8 +1391,21 @@ L_08908148: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x08908154u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 27u, 0x08908154u, 0x08907E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 897u, 0x08907E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908154u) goto L_08908154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908154: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1288,8 +1416,8 @@ L_08908154: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890816C: @@ -1309,8 +1437,8 @@ L_0890818C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890819C: @@ -1324,8 +1452,8 @@ L_089081B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089081BC: @@ -1383,8 +1511,21 @@ L_08908218: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08908228u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 40u, 0x08908228u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908228u) goto L_08908228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908228: { const bool branch_taken = ctx.gpr[18] == ctx.gpr[17]; if (branch_taken) { @@ -1397,8 +1538,21 @@ L_08908230: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08908240u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 42u, 0x08908240u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908240u) goto L_08908240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908240: { const bool branch_taken = ctx.gpr[19] == ctx.gpr[17]; if (branch_taken) { @@ -1409,8 +1563,21 @@ L_08908240: L_08908248: aot_gpr_31 = (0x08908250u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 44u, 0x08908250u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908250u) goto L_08908250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908250: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1428,8 +1595,21 @@ L_08908258: L_08908260: aot_gpr_31 = (0x08908268u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 47u, 0x08908268u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908268u) goto L_08908268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908268: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1443,8 +1623,21 @@ L_08908270: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08908284u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 49u, 0x08908284u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908284u) goto L_08908284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908284: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1680), ctx.gpr[20]); goto L_08908288; @@ -1460,8 +1653,8 @@ L_08908288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089082A8: @@ -1476,8 +1669,8 @@ L_089082B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089082C8: @@ -1596,8 +1789,8 @@ L_0890839C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089083B4: @@ -1714,8 +1907,8 @@ L_08908484: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890849C: @@ -1727,8 +1920,21 @@ L_0890849C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089084BCu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 80u, 0x089084BCu, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089084BCu) goto L_089084BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089084BC: aot_gpr_4 = (ctx.gpr[17] << 5u); aot_gpr_5 = (ctx.gpr[17] << 2u); @@ -1736,8 +1942,21 @@ L_089084BC: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x089084D4u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 81u, 0x089084D4u, 0x08A40C70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 148u, 0x08A40C70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089084D4u) goto L_089084D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089084D4: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (aot_gpr_4 << 16u); @@ -1763,8 +1982,8 @@ L_089084F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890850C: @@ -1868,8 +2087,21 @@ L_089085AC: goto L_089085B4; L_089085B4: aot_gpr_31 = (0x089085BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 99u, 0x089085BCu, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089085BCu) goto L_089085BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089085BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1911,8 +2143,21 @@ L_08908604: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x08908610u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 105u, 0x08908610u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908610u) goto L_08908610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908610: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890861Cu); @@ -1927,8 +2172,8 @@ L_0890861C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08908630: @@ -1981,8 +2226,21 @@ L_089086A0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x089086ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 113u, 0x089086ACu, 0x08907E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 897u, 0x08907E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089086ACu) goto L_089086AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089086AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1676))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -2008,8 +2266,8 @@ L_089086C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089086DC: @@ -2018,8 +2276,21 @@ L_089086DC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08908700u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 118u, 0x08908700u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908700u) goto L_08908700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908700: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2140,8 +2411,21 @@ L_089087A0: L_089087A4: aot_gpr_31 = (0x089087ACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 134u, 0x089087ACu, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089087ACu) goto L_089087AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089087AC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); @@ -2206,8 +2490,21 @@ L_08908808: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08908814u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 144u, 0x08908814u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908814u) goto L_08908814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908814: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); goto L_08908818; @@ -2282,20 +2579,59 @@ L_08908878: L_08908880: aot_gpr_31 = (0x08908888u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 155u, 0x08908888u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908888u) goto L_08908888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908888: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08908894u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 156u, 0x08908894u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908894u) goto L_08908894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908894: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089088A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 157u, 0x089088A0u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089088A0u) goto L_089088A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089088A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089088ACu); @@ -2328,8 +2664,21 @@ L_089088C4: L_089088CC: aot_gpr_31 = (0x089088D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 162u, 0x089088D4u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089088D4u) goto L_089088D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089088D4: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2342,8 +2691,8 @@ L_089088D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089088F4: @@ -2364,8 +2713,21 @@ L_08908920: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08908934u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 165u, 0x08908934u, 0x0891BA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 647u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 647u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 647u, 0x0891BA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908934u) goto L_08908934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908934: aot_gpr_31 = (0x0890893Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -2423,8 +2785,21 @@ L_0890898C: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x089089A0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 174u, 0x089089A0u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089089A0u) goto L_089089A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089089A0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -2435,8 +2810,8 @@ L_089089A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089089B8: @@ -2456,8 +2831,21 @@ L_089089DC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089089F0u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 177u, 0x089089F0u, 0x0891BA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 647u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 647u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 647u, 0x0891BA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089089F0u) goto L_089089F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089089F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -2477,8 +2865,21 @@ L_08908A08: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08908A18u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 181u, 0x08908A18u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908A18u) goto L_08908A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908A18: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -2488,8 +2889,8 @@ L_08908A18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08908A2C: @@ -2502,8 +2903,21 @@ L_08908A2C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x08908A5Cu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 183u, 0x08908A5Cu, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908A5Cu) goto L_08908A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908A5C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2764,8 +3178,8 @@ L_08908BE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08908C10: @@ -2778,8 +3192,21 @@ L_08908C10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08908C34u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 217u, 0x08908C34u, 0x0891BA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 647u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 647u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 647u, 0x0891BA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908C34u) goto L_08908C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908C34: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08908C40u); @@ -2791,8 +3218,8 @@ L_08908C40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08908C50: @@ -2961,8 +3388,8 @@ L_08908D54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08908D60: @@ -3022,8 +3449,21 @@ L_08908DAC: L_08908DB8: aot_gpr_31 = (0x08908DC0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 247u, 0x08908DC0u, 0x0890F994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 813u, 0x0890F994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908DC0u) goto L_08908DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908DC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3126,15 +3566,15 @@ L_08908E60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08908E78: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2232), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08908E80: @@ -3170,8 +3610,21 @@ L_08908ED0: aot_gpr_4 = (aot_gpr_16 + static_cast(512)); aot_gpr_31 = (0x08908EF8u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(496), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 264u, 0x08908EF8u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908EF8u) goto L_08908EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908EF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -3207,8 +3660,21 @@ L_08908F34: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08908F40u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 269u, 0x08908F40u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908F40u) goto L_08908F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908F40: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08908F44; @@ -3221,8 +3687,21 @@ L_08908F44: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08908F64u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 271u, 0x08908F64u, 0x089B1C20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 466u, 0x089B1C20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08908F64u) goto L_08908F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08908F64: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3342,15 +3821,15 @@ L_08909030: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909054: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2236))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890905C: @@ -3437,8 +3916,21 @@ L_089090CC: L_089090D8: aot_gpr_31 = (0x089090E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 293u, 0x089090E0u, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089090E0u) goto L_089090E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089090E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089090ECu); @@ -3501,8 +3993,8 @@ L_08909168: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909180: @@ -3563,8 +4055,21 @@ L_089091DC: L_089091E0: aot_gpr_31 = (0x089091E8u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 310u, 0x089091E8u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089091E8u) goto L_089091E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089091E8: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -3633,8 +4138,8 @@ L_08909260: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909270: @@ -3645,8 +4150,21 @@ L_08909270: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0890928Cu); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 320u, 0x0890928Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890928Cu) goto L_0890928C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890928C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3664,8 +4182,21 @@ L_08909294: L_0890929C: aot_gpr_31 = (0x089092A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 323u, 0x089092A4u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089092A4u) goto L_089092A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089092A4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089092B0u); @@ -3688,8 +4219,8 @@ L_089092C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089092DC: @@ -3708,8 +4239,8 @@ L_089092F0: goto L_089092F8; L_089092F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909300: @@ -3718,8 +4249,21 @@ L_08909300: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08909314u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 330u, 0x08909314u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909314u) goto L_08909314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909314: aot_gpr_31 = (0x0890931Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3729,8 +4273,8 @@ L_0890931C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890932C: @@ -3791,8 +4335,8 @@ L_08909388: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909394: @@ -3825,16 +4369,42 @@ L_089093D8: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x089093F8u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 342u, 0x089093F8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089093F8u) goto L_089093F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089093F8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1720), std::bit_cast(ctx.fpr[0])); goto L_089093FC; L_089093FC: aot_gpr_31 = (0x08909404u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1720))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 344u, 0x08909404u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909404u) goto L_08909404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909404: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3913,8 +4483,8 @@ L_089094A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089094C8: @@ -3993,8 +4563,21 @@ L_08909540: L_08909550: aot_gpr_31 = (0x08909558u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 363u, 0x08909558u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909558u) goto L_08909558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909558: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4005,8 +4588,21 @@ L_08909558: L_08909560: aot_gpr_31 = (0x08909568u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 365u, 0x08909568u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909568u) goto L_08909568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909568: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -4022,15 +4618,41 @@ L_08909568: L_08909584: aot_gpr_31 = (0x0890958Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 367u, 0x0890958Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890958Cu) goto L_0890958C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890958C: aot_gpr_4 = (ctx.gpr[2] + static_cast(816)); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0890959Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 368u, 0x0890959Cu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890959Cu) goto L_0890959C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890959C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4041,8 +4663,21 @@ L_0890959C: L_089095A4: aot_gpr_31 = (0x089095ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 370u, 0x089095ACu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089095ACu) goto L_089095AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089095AC: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4075,14 +4710,40 @@ L_089095C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089095D4u); aot_gpr_5 = (0u | 137u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 374u, 0x089095D4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089095D4u) goto L_089095D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089095D4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089095E0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 375u, 0x089095E0u, 0x089F3D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 645u, 0x089F3D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089095E0u) goto L_089095E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089095E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (ctx.gpr[2] & 1u); @@ -4093,8 +4754,21 @@ L_089095E0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1716))); aot_gpr_31 = (0x08909604u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 376u, 0x08909604u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909604u) goto L_08909604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909604: { const bool branch_taken = ctx.gpr[17] == ctx.gpr[2]; if (branch_taken) { @@ -4105,8 +4779,21 @@ L_08909604: L_0890960C: aot_gpr_31 = (0x08909614u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 378u, 0x08909614u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909614u) goto L_08909614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909614: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -4139,8 +4826,21 @@ L_08909644: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3228))); aot_gpr_31 = (0x08909654u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 383u, 0x08909654u, 0x089F44B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 49u, 0x089F44B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909654u) goto L_08909654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909654: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (ctx.gpr[2] & 1u); @@ -4159,8 +4859,21 @@ L_08909670: aot_fpr_13 = std::bit_cast(0u); aot_gpr_31 = (0x08909680u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 385u, 0x08909680u, 0x089F44B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 49u, 0x089F44B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909680u) goto L_08909680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909680: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (ctx.gpr[2] & 1u); @@ -4179,8 +4892,8 @@ L_08909698: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089096B0: @@ -4199,8 +4912,21 @@ L_089096B0: L_089096D0: aot_gpr_31 = (0x089096D8u); aot_gpr_4 = (aot_gpr_16 + static_cast(816)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 389u, 0x089096D8u, 0x089F3E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 654u, 0x089F3E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089096D8u) goto L_089096D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089096D8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4261,8 +4987,8 @@ L_08909734: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909744: @@ -4282,8 +5008,21 @@ L_08909744: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08909784u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 398u, 0x08909784u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909784u) goto L_08909784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909784: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_4 = (aot_gpr_4 & 8192u); @@ -4340,8 +5079,8 @@ L_089097F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909804: @@ -4381,8 +5120,21 @@ L_08909858: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08909864u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 409u, 0x08909864u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909864u) goto L_08909864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909864: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1736), 0u); { std::uint32_t aot_run_words[4]{}; @@ -4394,8 +5146,8 @@ L_08909864: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909880: @@ -4444,8 +5196,8 @@ L_089098DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089098EC: @@ -4519,8 +5271,8 @@ L_08909944: goto L_08909948; L_08909948: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909950: @@ -4530,8 +5282,21 @@ L_08909950: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08909968u); aot_gpr_4 = (aot_gpr_16 + static_cast(816)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 427u, 0x08909968u, 0x089F3C20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 633u, 0x089F3C20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909968u) goto L_08909968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909968: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4550,8 +5315,8 @@ L_08909980: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909990: @@ -4654,8 +5419,8 @@ L_08909A54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909A64: @@ -4773,8 +5538,8 @@ L_08909B4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909B60: @@ -4877,15 +5642,15 @@ L_08909C10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909C20: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2120))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909C28: @@ -4903,8 +5668,21 @@ L_08909C28: L_08909C40: aot_gpr_31 = (0x08909C48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 470u, 0x08909C48u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909C48u) goto L_08909C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909C48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4995,8 +5773,21 @@ L_08909CC4: L_08909CCC: aot_gpr_31 = (0x08909CD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 483u, 0x08909CD4u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909CD4u) goto L_08909CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909CD4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08909CE0u); @@ -5052,8 +5843,8 @@ L_08909D2C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909D3C: @@ -5094,8 +5885,21 @@ L_08909D3C: L_08909D8C: aot_gpr_31 = (0x08909D94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 493u, 0x08909D94u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909D94u) goto L_08909D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909D94: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5149,8 +5953,21 @@ L_08909DC0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08909DF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 499u, 0x08909DF4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909DF4u) goto L_08909DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909DF4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -5226,8 +6043,21 @@ L_08909E30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x08909E90u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 505u, 0x08909E90u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909E90u) goto L_08909E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909E90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5256,8 +6086,8 @@ L_08909EA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909EBC: @@ -5281,8 +6111,21 @@ L_08909EDC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(456), aot_gpr_4); aot_gpr_31 = (0x08909EF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 511u, 0x08909EF8u, 0x08911220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 321u, 0x08911220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909EF8u) goto L_08909EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909EF8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5308,8 +6151,21 @@ L_08909F18: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08909F24u); aot_gpr_6 = (0u | 140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 516u, 0x08909F24u, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909F24u) goto L_08909F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909F24: aot_gpr_4 = (0u | 22u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), aot_gpr_4); @@ -5333,28 +6189,54 @@ L_08909F48: L_08909F58: aot_gpr_31 = (0x08909F60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 519u, 0x08909F60u, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909F60u) goto L_08909F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909F60: aot_gpr_31 = (0x08909F68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 520u, 0x08909F68u, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08909F68u) goto L_08909F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08909F68: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909F78: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(456))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] & 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08909F84: @@ -5427,8 +6309,21 @@ L_08909FFC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0890A038u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 527u, 0x0890A038u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A038u) goto L_0890A038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A038: if (ctx.gpr[2] != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); @@ -5493,8 +6388,21 @@ L_0890A0A0: L_0890A0AC: aot_gpr_31 = (0x0890A0B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 536u, 0x0890A0B4u, 0x08911220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 321u, 0x08911220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A0B4u) goto L_0890A0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A0B4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5520,8 +6428,21 @@ L_0890A0D4: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0890A0E0u); aot_gpr_6 = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 541u, 0x0890A0E0u, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A0E0u) goto L_0890A0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A0E0: aot_gpr_4 = (0u | 86u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), aot_gpr_4); @@ -5605,8 +6526,8 @@ L_0890A190: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890A1A0: @@ -5636,8 +6557,21 @@ L_0890A1D4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0890A1E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 554u, 0x0890A1E0u, 0x08911220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 321u, 0x08911220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A1E0u) goto L_0890A1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A1E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5691,8 +6625,21 @@ L_0890A22C: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x0890A244u); aot_gpr_6 = (4u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 561u, 0x0890A244u, 0x0886D3B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 187u, 0x0886D3B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A244u) goto L_0890A244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A244: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20380))); aot_gpr_4 = (16256u << 16u); @@ -5738,8 +6685,21 @@ L_0890A290: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0890A29Cu); aot_gpr_6 = (0u | 139u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 568u, 0x0890A29Cu, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A29Cu) goto L_0890A29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A29C: aot_gpr_4 = (0u | 84u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), aot_gpr_4); @@ -5761,8 +6721,21 @@ L_0890A2BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890A2D8u); aot_fpr_14 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 570u, 0x0890A2D8u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A2D8u) goto L_0890A2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A2D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5796,8 +6769,21 @@ L_0890A308: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890A314u); aot_gpr_5 = (0u | 105u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 576u, 0x0890A314u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A314u) goto L_0890A314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A314: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5805,8 +6791,21 @@ L_0890A314: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0890A32Cu); aot_gpr_6 = (0u | 35u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 577u, 0x0890A32Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A32Cu) goto L_0890A32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A32C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5855,8 +6854,21 @@ L_0890A370: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x0890A38Cu); aot_gpr_6 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 583u, 0x0890A38Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A38Cu) goto L_0890A38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A38C: aot_gpr_31 = (0x0890A394u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5873,8 +6885,21 @@ L_0890A39C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890A3A8u); aot_gpr_5 = (0u | 105u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 586u, 0x0890A3A8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A3A8u) goto L_0890A3A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A3A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -5934,8 +6959,21 @@ L_0890A400: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x0890A41Cu); aot_gpr_6 = (0u | 35u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 593u, 0x0890A41Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A41Cu) goto L_0890A41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A41C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_fpr_12 = std::bit_cast(0u); @@ -5970,8 +7008,21 @@ L_0890A45C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0890A468u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 597u, 0x0890A468u, 0x0890CA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 179u, 0x0890CA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A468u) goto L_0890A468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A468: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5983,8 +7034,8 @@ L_0890A468: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890A484: @@ -6127,8 +7178,8 @@ L_0890A59C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890A5BC: @@ -6288,8 +7339,8 @@ L_0890A708: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890A728: @@ -6323,8 +7374,21 @@ L_0890A758: L_0890A760: aot_gpr_31 = (0x0890A768u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 635u, 0x0890A768u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A768u) goto L_0890A768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A768: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6502,8 +7566,21 @@ L_0890A8A0: ctx.gpr[7] = (ctx.gpr[7] & 255u); aot_gpr_31 = (0x0890A8BCu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 656u, 0x0890A8BCu, 0x089106ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 118u, 0x089106ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A8BCu) goto L_0890A8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A8BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6533,8 +7610,21 @@ L_0890A8D4: L_0890A8DC: aot_gpr_31 = (0x0890A8E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 661u, 0x0890A8E4u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A8E4u) goto L_0890A8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A8E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6622,8 +7712,21 @@ L_0890A974: ctx.gpr[7] = (ctx.gpr[7] & 255u); aot_gpr_31 = (0x0890A98Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 672u, 0x0890A98Cu, 0x089106ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 118u, 0x089106ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890A98Cu) goto L_0890A98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890A98C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6719,8 +7822,21 @@ L_0890A9E0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0890AA2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 680u, 0x0890AA2Cu, 0x089C89A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 174u, 0x089C89A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AA2Cu) goto L_0890AA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AA2C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6760,8 +7876,8 @@ L_0890AA70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890AA84: @@ -6774,8 +7890,21 @@ L_0890AA84: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(56), aot_run_words); } aot_gpr_31 = (0x0890AAACu); ctx.gpr[18] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 687u, 0x0890AAACu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AAACu) goto L_0890AAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AAAC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6847,8 +7976,21 @@ L_0890AB24: L_0890AB2C: aot_gpr_31 = (0x0890AB34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 695u, 0x0890AB34u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AB34u) goto L_0890AB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AB34: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -6863,8 +8005,21 @@ L_0890AB34: L_0890AB4C: aot_gpr_31 = (0x0890AB54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 697u, 0x0890AB54u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AB54u) goto L_0890AB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AB54: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -6887,8 +8042,21 @@ L_0890AB6C: L_0890AB7C: aot_gpr_31 = (0x0890AB84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 700u, 0x0890AB84u, 0x08906704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 539u, 0x08906704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AB84u) goto L_0890AB84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AB84: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6920,8 +8088,21 @@ L_0890AB9C: L_0890ABA4: aot_gpr_31 = (0x0890ABACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 705u, 0x0890ABACu, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890ABACu) goto L_0890ABAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890ABAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -6933,8 +8114,21 @@ L_0890ABAC: L_0890ABB8: aot_gpr_31 = (0x0890ABC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 707u, 0x0890ABC0u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890ABC0u) goto L_0890ABC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890ABC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(216)); @@ -6984,14 +8178,40 @@ L_0890AC24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890AC30u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 713u, 0x0890AC30u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AC30u) goto L_0890AC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AC30: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890AC3Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 714u, 0x0890AC3Cu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AC3Cu) goto L_0890AC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AC3C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -7003,8 +8223,8 @@ L_0890AC3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890AC58: @@ -7017,8 +8237,21 @@ L_0890AC58: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0890AC7Cu); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 716u, 0x0890AC7Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AC7Cu) goto L_0890AC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AC7C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7089,8 +8322,21 @@ L_0890ACF4: L_0890ACFC: aot_gpr_31 = (0x0890AD04u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 724u, 0x0890AD04u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AD04u) goto L_0890AD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AD04: { const bool branch_taken = ctx.gpr[2] == aot_gpr_16; if (branch_taken) { @@ -7153,14 +8399,40 @@ L_0890AD6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890AD78u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 732u, 0x0890AD78u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AD78u) goto L_0890AD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AD78: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890AD84u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 733u, 0x0890AD84u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AD84u) goto L_0890AD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AD84: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890AD90u); @@ -7188,8 +8460,8 @@ L_0890ADAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890ADC4: @@ -7200,8 +8472,21 @@ L_0890ADC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x0890ADE0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2060))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 737u, 0x0890ADE0u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890ADE0u) goto L_0890ADE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890ADE0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7260,8 +8545,21 @@ L_0890AE28: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890AE34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 740u, 0x0890AE34u, 0x0890F4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 763u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 763u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 763u, 0x0890F4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AE34u) goto L_0890AE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AE34: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7322,8 +8620,8 @@ L_0890AE80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890AE94: @@ -7351,8 +8649,8 @@ L_0890AEC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890AED8: @@ -7366,8 +8664,21 @@ L_0890AED8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0890AF00u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 752u, 0x0890AF00u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AF00u) goto L_0890AF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AF00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7438,8 +8749,21 @@ L_0890AF78: L_0890AF80: aot_gpr_31 = (0x0890AF88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 760u, 0x0890AF88u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AF88u) goto L_0890AF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AF88: { const bool branch_taken = ctx.gpr[2] == aot_gpr_16; if (branch_taken) { @@ -7494,8 +8818,21 @@ L_0890AFC0: L_0890AFC8: aot_gpr_31 = (0x0890AFD0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 768u, 0x0890AFD0u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890AFD0u) goto L_0890AFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890AFD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(216)); @@ -7545,14 +8882,40 @@ L_0890B038: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890B044u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 774u, 0x0890B044u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B044u) goto L_0890B044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B044: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890B050u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 775u, 0x0890B050u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B050u) goto L_0890B050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B050: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890B05Cu); @@ -7569,8 +8932,8 @@ L_0890B05C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890B078: @@ -7588,8 +8951,8 @@ L_0890B08C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890B0A8: @@ -7651,8 +9014,21 @@ L_0890B124: L_0890B138: aot_gpr_31 = (0x0890B140u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 784u, 0x0890B140u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B140u) goto L_0890B140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B140: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7712,8 +9088,21 @@ L_0890B188: L_0890B190: aot_gpr_31 = (0x0890B198u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 792u, 0x0890B198u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B198u) goto L_0890B198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B198: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890B1A4u); @@ -7728,8 +9117,21 @@ L_0890B1B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890B1BCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 795u, 0x0890B1BCu, 0x089102D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 44u, 0x089102D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B1BCu) goto L_0890B1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B1BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -7751,13 +9153,39 @@ L_0890B1D4: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x0890B200u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 797u, 0x0890B200u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B200u) goto L_0890B200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B200: aot_gpr_31 = (0x0890B208u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 798u, 0x0890B208u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B208u) goto L_0890B208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B208: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2256))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(2260), std::bit_cast(ctx.fpr[0])); @@ -7809,8 +9237,8 @@ L_0890B260: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890B27C: @@ -7862,8 +9290,21 @@ L_0890B2D0: L_0890B2F8: aot_gpr_31 = (0x0890B300u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 807u, 0x0890B300u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B300u) goto L_0890B300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B300: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7911,8 +9352,21 @@ L_0890B330: L_0890B338: aot_gpr_31 = (0x0890B340u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 814u, 0x0890B340u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B340u) goto L_0890B340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B340: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890B34Cu); @@ -7931,8 +9385,21 @@ L_0890B358: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890B374u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 817u, 0x0890B374u, 0x089103CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 60u, 0x089103CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B374u) goto L_0890B374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B374: aot_gpr_5 = (16457u << 16u); aot_gpr_5 = (aot_gpr_5 | 4059u); @@ -7970,13 +9437,39 @@ L_0890B3C0: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x0890B3CCu); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 821u, 0x0890B3CCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B3CCu) goto L_0890B3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B3CC: aot_gpr_31 = (0x0890B3D4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 822u, 0x0890B3D4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B3D4u) goto L_0890B3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B3D4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); @@ -8028,8 +9521,8 @@ L_0890B42C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890B448: @@ -8038,8 +9531,21 @@ L_0890B448: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0890B45Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 828u, 0x0890B45Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B45Cu) goto L_0890B45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B45C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (49152u << 16u); @@ -8052,8 +9558,8 @@ L_0890B45C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890B488: @@ -8075,8 +9581,8 @@ L_0890B4A4: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(904), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(906), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890B4B0: @@ -8085,8 +9591,21 @@ L_0890B4B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x0890B4C4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 833u, 0x0890B4C4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B4C4u) goto L_0890B4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B4C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8097,8 +9616,21 @@ L_0890B4C4: L_0890B4CC: aot_gpr_31 = (0x0890B4D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 835u, 0x0890B4D4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B4D4u) goto L_0890B4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B4D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -8157,8 +9689,21 @@ L_0890B53C: L_0890B548: aot_gpr_31 = (0x0890B550u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 843u, 0x0890B550u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B550u) goto L_0890B550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B550: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -8175,8 +9720,21 @@ L_0890B560: L_0890B568: aot_gpr_31 = (0x0890B570u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 846u, 0x0890B570u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B570u) goto L_0890B570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B570: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8247,19 +9805,58 @@ L_0890B5C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890B5D4u); aot_gpr_5 = (0u | 121u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 849u, 0x0890B5D4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B5D4u) goto L_0890B5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B5D4: aot_gpr_31 = (0x0890B5DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 850u, 0x0890B5DCu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B5DCu) goto L_0890B5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B5DC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0890B5E8u); aot_gpr_5 = (0u | 123u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 851u, 0x0890B5E8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B5E8u) goto L_0890B5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B5E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8276,8 +9873,8 @@ L_0890B5F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890B608: @@ -8314,8 +9911,21 @@ L_0890B644: L_0890B64C: aot_gpr_31 = (0x0890B654u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 859u, 0x0890B654u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B654u) goto L_0890B654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B654: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8343,8 +9953,21 @@ L_0890B670: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890B694u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 862u, 0x0890B694u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B694u) goto L_0890B694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B694: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -8352,8 +9975,21 @@ L_0890B694: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x0890B6ACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 863u, 0x0890B6ACu, 0x08A1D580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 261u, 0x08A1D580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B6ACu) goto L_0890B6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B6AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); @@ -8389,8 +10025,21 @@ L_0890B6E4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1252), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0890B6F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 869u, 0x0890B6F0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B6F0u) goto L_0890B6F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B6F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8406,8 +10055,21 @@ L_0890B6F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890B714u); aot_gpr_5 = (0u | 58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 871u, 0x0890B714u, 0x08910CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 222u, 0x08910CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B714u) goto L_0890B714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B714: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8443,8 +10105,21 @@ L_0890B738: L_0890B740: aot_gpr_31 = (0x0890B748u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 876u, 0x0890B748u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B748u) goto L_0890B748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B748: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890B754u); @@ -8472,8 +10147,21 @@ L_0890B784: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x0890B790u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 880u, 0x0890B790u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B790u) goto L_0890B790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B790: aot_gpr_4 = (0u | 5u); aot_gpr_5 = (0u | 1u); @@ -8481,8 +10169,21 @@ L_0890B790: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0890B7A8u); ctx.gpr[8] = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 881u, 0x0890B7A8u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B7A8u) goto L_0890B7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B7A8: aot_gpr_31 = (0x0890B7B0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B7B0u) goto L_0890B7B0; @@ -8500,8 +10201,21 @@ L_0890B7B8: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0890B7CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 884u, 0x0890B7CCu, 0x088E4294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 15u, 0x088E4294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B7CCu) goto L_0890B7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B7CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(468))); aot_gpr_5 = (32u << 16u); @@ -8515,8 +10229,21 @@ L_0890B7CC: L_0890B7E0: aot_gpr_31 = (0x0890B7E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 886u, 0x0890B7E8u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B7E8u) goto L_0890B7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B7E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8560,13 +10287,39 @@ L_0890B80C: L_0890B84C: aot_gpr_31 = (0x0890B854u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 891u, 0x0890B854u, 0x088F79BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 814u, 0x088F79BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B854u) goto L_0890B854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B854: aot_gpr_31 = (0x0890B85Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 892u, 0x0890B85Cu, 0x088F3C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 754u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 754u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 754u, 0x088F3C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B85Cu) goto L_0890B85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B85C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); @@ -8585,8 +10338,21 @@ L_0890B864: L_0890B870: aot_gpr_31 = (0x0890B878u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 895u, 0x0890B878u, 0x088F79BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 814u, 0x088F79BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B878u) goto L_0890B878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B878: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); goto L_0890B87C; @@ -8614,14 +10380,40 @@ L_0890B87C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0890B8D8u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 897u, 0x0890B8D8u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B8D8u) goto L_0890B8D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B8D8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x0890B8E4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 898u, 0x0890B8E4u, 0x08A066D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 614u, 0x08A066D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B8E4u) goto L_0890B8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B8E4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -8633,8 +10425,8 @@ L_0890B8E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890B900: @@ -8643,8 +10435,21 @@ L_0890B900: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x0890B918u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 900u, 0x0890B918u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B918u) goto L_0890B918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B918: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8675,8 +10480,21 @@ L_0890B948: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890B954u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 905u, 0x0890B954u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B954u) goto L_0890B954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B954: aot_fpr_20 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8684,14 +10502,40 @@ L_0890B954: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0890B970u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 906u, 0x0890B970u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B970u) goto L_0890B970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B970: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890B97Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 907u, 0x0890B97Cu, 0x089103CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 60u, 0x089103CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B97Cu) goto L_0890B97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B97C: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -8700,14 +10544,40 @@ L_0890B97C: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0890B99Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 908u, 0x0890B99Cu, 0x089102D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 44u, 0x089102D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B99Cu) goto L_0890B99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B99C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890B9A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 909u, 0x0890B9A8u, 0x089103CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 60u, 0x089103CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B9A8u) goto L_0890B9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B9A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); @@ -8718,8 +10588,21 @@ L_0890B9A8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0890B9CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 910u, 0x0890B9CCu, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890B9CCu) goto L_0890B9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890B9CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-9)); @@ -8747,8 +10630,8 @@ L_0890BA0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BA20: @@ -8797,8 +10680,21 @@ L_0890BA5C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x0890BA88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 917u, 0x0890BA88u, 0x088E4294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 15u, 0x088E4294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BA88u) goto L_0890BA88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BA88: ctx.gpr[8] = (16512u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); @@ -8854,15 +10750,28 @@ L_0890BB00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890BB0Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 924u, 0x0890BB0Cu, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BB0Cu) goto L_0890BB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BB0C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BB1C: @@ -8926,8 +10835,21 @@ L_0890BB98: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0890BBA4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 933u, 0x0890BBA4u, 0x0890514Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 235u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 235u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 235u, 0x0890514Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BBA4u) goto L_0890BBA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BBA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); goto L_0890BBA8; @@ -8953,8 +10875,21 @@ L_0890BBB8: L_0890BBC4: aot_gpr_31 = (0x0890BBCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 938u, 0x0890BBCCu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BBCCu) goto L_0890BBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BBCC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890BBD8u); @@ -8970,8 +10905,8 @@ L_0890BBD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BBEC: @@ -8980,8 +10915,21 @@ L_0890BBEC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0890BC08u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 941u, 0x0890BC08u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BC08u) goto L_0890BC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BC08: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9065,8 +11013,21 @@ L_0890BCB0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890BCBCu); aot_gpr_5 = (0u | 330u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 952u, 0x0890BCBCu, 0x08907E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 897u, 0x08907E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BCBCu) goto L_0890BCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BCBC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9092,14 +11053,40 @@ L_0890BCD8: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x0890BCE8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 956u, 0x0890BCE8u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BCE8u) goto L_0890BCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BCE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(112))); aot_gpr_31 = (0x0890BCF4u); aot_gpr_5 = (0u | 330u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0116. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 957u, 0x0890BCF4u, 0x089D4940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0116_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 115u, 0x089D4940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BCF4u) goto L_0890BCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BCF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9139,8 +11126,21 @@ L_0890BD38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890BD44u); aot_gpr_5 = (0u | 330u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 962u, 0x0890BD44u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BD44u) goto L_0890BD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BD44: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9166,14 +11166,40 @@ L_0890BD60: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x0890BD70u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 966u, 0x0890BD70u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BD70u) goto L_0890BD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BD70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(112))); aot_gpr_31 = (0x0890BD7Cu); aot_gpr_5 = (0u | 330u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0116. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 967u, 0x0890BD7Cu, 0x089D49DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0116_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 125u, 0x089D49DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BD7Cu) goto L_0890BD7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BD7C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1676))); aot_gpr_31 = (0x0890BD88u); @@ -9193,8 +11219,8 @@ L_0890BD90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BDA8: @@ -9202,8 +11228,21 @@ L_0890BDA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0890BDB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 971u, 0x0890BDB8u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BDB8u) goto L_0890BDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BDB8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9240,8 +11279,8 @@ L_0890BDF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BDFC: @@ -9249,8 +11288,21 @@ L_0890BDFC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0890BE0Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 977u, 0x0890BE0Cu, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BE0Cu) goto L_0890BE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BE0C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9286,22 +11338,22 @@ L_0890BE44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BE50: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2244), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BE58: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2252), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BE60: @@ -9357,8 +11409,8 @@ L_0890BEC4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BED4: @@ -9366,8 +11418,8 @@ L_0890BED4: ctx.gpr[2] = (aot_gpr_4 & 2u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890BEE4: @@ -9401,8 +11453,21 @@ L_0890BEE4: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x0890BF5Cu); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 994u, 0x0890BF5Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BF5Cu) goto L_0890BF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BF5C: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[17] = (0u | 1u); @@ -9416,8 +11481,21 @@ L_0890BF5C: L_0890BF7C: aot_gpr_31 = (0x0890BF84u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0065->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0065_entry, 996u, 0x0890BF84u, 0x08A8EF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 563u, 0x08A8EF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890BF84u) goto L_0890BF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890BF84: aot_fpr_14 = ctx.fpr[24] + aot_fpr_20; aot_fpr_13 = std::bit_cast(0u); diff --git a/profiles/vcs/generated/generated_unit_0066.cpp b/profiles/vcs/generated/generated_unit_0066.cpp index 03063fa..297ddb4 100644 --- a/profiles/vcs/generated/generated_unit_0066.cpp +++ b/profiles/vcs/generated/generated_unit_0066.cpp @@ -32,6 +32,140 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0066[64] = { 485u, 489u, 496u, 514u, 536u, 549u, 565u, 575u, 589u, 606u, 625u, 638u, 647u, 659u, 671u, 688u, 705u, 712u, 725u, 737u, 748u, 766u, 774u, 790u, 800u, 808u, 818u, 831u, 836u, 846u, 870u, 883u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0066[4090] = { + 1u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 9u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 10u, 11u, 0u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 13u, 0u, 14u, 0u, 15u, 0u, 16u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 19u, 0u, 20u, 0u, 21u, 0u, 22u, 0u, 23u, 0u, + 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 25u, 0u, 26u, 0u, 0u, 27u, 0u, 28u, 0u, 0u, 0u, 29u, 0u, 30u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 32u, 0u, 0u, + 33u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 36u, 0u, 37u, 0u, 38u, 0u, 0u, 0u, 39u, 0u, 0u, 40u, 0u, 41u, 0u, 0u, 0u, 0u, + 0u, 0u, 42u, 0u, 0u, 0u, 43u, 0u, 0u, 44u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 48u, 0u, 0u, 0u, + 0u, 0u, 49u, 0u, 0u, 50u, 0u, 0u, 0u, 51u, 0u, 52u, 0u, 0u, 53u, 0u, 0u, 0u, 0u, 0u, 0u, 54u, 0u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 56u, + 0u, 0u, 0u, 0u, 0u, 57u, 0u, 0u, 0u, 0u, 0u, 58u, 0u, 59u, 0u, 0u, 0u, 60u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 62u, 0u, 0u, 0u, 0u, 63u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 64u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 67u, 0u, 68u, 0u, 0u, 69u, 0u, + 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 72u, 0u, 0u, 0u, 0u, 0u, 0u, 73u, 0u, 74u, 0u, 0u, + 0u, 75u, 0u, 76u, 0u, 0u, 0u, 77u, 0u, 78u, 0u, 79u, 0u, 80u, 0u, 0u, 0u, 81u, 0u, 0u, 82u, 0u, 0u, 83u, 0u, 84u, 0u, 85u, 0u, 86u, 0u, 87u, + 0u, 88u, 0u, 89u, 0u, 90u, 0u, 91u, 0u, 92u, 0u, 93u, 0u, 94u, 0u, 95u, 0u, 96u, 0u, 97u, 0u, 98u, 99u, 0u, 0u, 100u, 0u, 101u, 102u, 0u, 0u, 0u, + 0u, 103u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 104u, 0u, 105u, 0u, 106u, 0u, 0u, 0u, 107u, 0u, 0u, 0u, 0u, 0u, 108u, 0u, 0u, + 0u, 0u, 0u, 109u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 110u, 0u, 0u, 111u, 0u, 0u, 0u, 112u, 0u, 0u, 113u, 0u, 114u, 0u, 115u, 0u, 0u, 116u, 0u, + 0u, 117u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 0u, 119u, 0u, 0u, 120u, 0u, 121u, 0u, 122u, 0u, 123u, 0u, 124u, 0u, 125u, 0u, 126u, 0u, 0u, 0u, 127u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 130u, 0u, 0u, 131u, 0u, 132u, 0u, 133u, 0u, 134u, 0u, 135u, 0u, 136u, 0u, 137u, 0u, 138u, 139u, + 0u, 0u, 0u, 140u, 0u, 0u, 141u, 0u, 142u, 0u, 143u, 0u, 144u, 0u, 145u, 0u, 146u, 0u, 147u, 148u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 150u, 0u, 0u, 0u, 151u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 152u, 0u, 153u, 0u, 0u, 0u, 0u, 0u, 154u, 0u, 0u, 155u, 0u, 0u, 0u, 0u, 0u, 0u, + 156u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 159u, 0u, 0u, 0u, 0u, 160u, 0u, 0u, 161u, 0u, 0u, 0u, 162u, 0u, 0u, 163u, 0u, 0u, 0u, 0u, + 0u, 0u, 164u, 0u, 0u, 0u, 165u, 0u, 0u, 166u, 0u, 167u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 0u, 0u, 170u, + 0u, 0u, 0u, 171u, 0u, 0u, 172u, 0u, 173u, 0u, 0u, 174u, 0u, 0u, 175u, 0u, 0u, 176u, 0u, 177u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 179u, 0u, 0u, 0u, 180u, 0u, 0u, 181u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 182u, 0u, 0u, 183u, 0u, 184u, 0u, 185u, 0u, 186u, 0u, 0u, 187u, 0u, + 0u, 0u, 0u, 0u, 0u, 188u, 0u, 0u, 0u, 189u, 0u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 191u, 0u, 0u, 0u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 0u, + 193u, 0u, 0u, 0u, 0u, 0u, 194u, 0u, 195u, 0u, 0u, 0u, 196u, 0u, 197u, 0u, 198u, 0u, 199u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, + 202u, 0u, 203u, 0u, 0u, 0u, 204u, 0u, 205u, 0u, 206u, 0u, 207u, 0u, 208u, 0u, 0u, 0u, 209u, 0u, 210u, 0u, 211u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, + 0u, 0u, 213u, 0u, 214u, 0u, 0u, 0u, 215u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 217u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, + 0u, 0u, 220u, 0u, 0u, 0u, 221u, 0u, 0u, 222u, 0u, 223u, 0u, 0u, 0u, 224u, 0u, 0u, 225u, 0u, 226u, 0u, 0u, 227u, 0u, 228u, 0u, 0u, 0u, 0u, 229u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 233u, 0u, 234u, 0u, 235u, 0u, 236u, 0u, 237u, 0u, 238u, 0u, 239u, 0u, 0u, 0u, 240u, 0u, 0u, 0u, 241u, 0u, 0u, 242u, + 0u, 0u, 243u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 247u, 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 249u, 0u, 0u, 250u, 0u, 251u, 0u, 0u, 0u, 0u, 252u, 0u, 253u, 0u, 0u, 254u, 0u, 255u, 0u, 0u, 0u, 0u, 256u, 0u, 257u, 0u, 0u, + 258u, 0u, 259u, 0u, 0u, 0u, 0u, 260u, 0u, 261u, 0u, 0u, 262u, 0u, 263u, 0u, 0u, 0u, 0u, 264u, 265u, 0u, 266u, 0u, 267u, 0u, 0u, 268u, 0u, 0u, 0u, 0u, + 0u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 273u, 0u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 278u, 0u, + 279u, 0u, 280u, 0u, 0u, 281u, 0u, 282u, 0u, 283u, 0u, 284u, 0u, 285u, 0u, 286u, 287u, 0u, 288u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, 291u, + 0u, 292u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 296u, 0u, 0u, 0u, 0u, 0u, 0u, 297u, 0u, 0u, 0u, 0u, 0u, 298u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 304u, 0u, 305u, + 0u, 306u, 0u, 0u, 0u, 307u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 309u, 0u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 311u, 0u, 0u, 0u, 0u, 312u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, 315u, 0u, 0u, 316u, 0u, 317u, 318u, 0u, 319u, 0u, 0u, 0u, 320u, + 0u, 321u, 0u, 322u, 323u, 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 326u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 328u, 0u, 329u, + 0u, 330u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 333u, 0u, 0u, 0u, 334u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 338u, 0u, 0u, 0u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, + 340u, 0u, 341u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 346u, 0u, + 0u, 0u, 347u, 0u, 0u, 0u, 0u, 0u, 348u, 0u, 349u, 0u, 350u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 351u, 0u, 0u, + 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 0u, 354u, 0u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 357u, 0u, 0u, 358u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 359u, 0u, 0u, 360u, 0u, 0u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 364u, 0u, 0u, 365u, 0u, 0u, + 0u, 0u, 0u, 366u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 369u, 0u, 370u, 0u, 0u, 371u, 0u, 0u, 0u, 372u, 0u, 0u, + 373u, 0u, 0u, 0u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 0u, 0u, 376u, 0u, 0u, 0u, 377u, 0u, 378u, 0u, 379u, 380u, 0u, 0u, 0u, 0u, + 381u, 0u, 0u, 0u, 0u, 0u, 382u, 0u, 0u, 0u, 383u, 0u, 384u, 0u, 385u, 386u, 0u, 0u, 0u, 387u, 0u, 0u, 0u, 0u, 388u, 0u, 0u, 0u, 389u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 390u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, 393u, 0u, 0u, 394u, 0u, 0u, 0u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 397u, 0u, 0u, 398u, 0u, 399u, 0u, 400u, 0u, 0u, 401u, 0u, 402u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 403u, 0u, 0u, 404u, 0u, 0u, 0u, 405u, 0u, 0u, 406u, 0u, 407u, 0u, 0u, 408u, 0u, 409u, 0u, 0u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, + 0u, 411u, 0u, 412u, 0u, 0u, 0u, 0u, 0u, 413u, 0u, 414u, 0u, 0u, 415u, 0u, 0u, 416u, 0u, 0u, 0u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 422u, 0u, 0u, 0u, 423u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 426u, 0u, 427u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 0u, + 0u, 0u, 0u, 0u, 430u, 0u, 431u, 0u, 432u, 0u, 0u, 433u, 0u, 0u, 434u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 0u, 437u, 0u, 0u, 0u, + 0u, 438u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 0u, 440u, 0u, 441u, 0u, 0u, 442u, 0u, 443u, 0u, 0u, 0u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 445u, + 0u, 446u, 0u, 0u, 447u, 0u, 448u, 0u, 0u, 0u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 452u, 0u, 453u, 0u, 0u, 454u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, 0u, 456u, 0u, 0u, 457u, 458u, 0u, 459u, 0u, 460u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, + 0u, 0u, 0u, 0u, 0u, 463u, 0u, 464u, 0u, 0u, 0u, 465u, 0u, 466u, 0u, 467u, 0u, 0u, 468u, 0u, 0u, 469u, 0u, 0u, 0u, 470u, 0u, 0u, 471u, 0u, 472u, 0u, + 0u, 473u, 0u, 0u, 474u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 476u, 0u, 0u, 0u, 0u, 0u, 0u, 477u, 0u, 0u, 478u, 0u, 0u, 479u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 480u, 0u, 481u, 0u, 482u, 0u, 483u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 485u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 486u, 0u, 487u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 489u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 490u, 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 492u, 0u, 493u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 494u, 0u, 0u, 0u, 0u, 0u, 0u, 495u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 496u, 0u, 497u, 0u, 498u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 501u, 0u, 0u, 0u, 0u, 502u, 0u, 503u, 0u, 0u, 0u, + 0u, 504u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 0u, 507u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 510u, 0u, 0u, 0u, 511u, 512u, 0u, 513u, + 0u, 0u, 0u, 0u, 514u, 0u, 515u, 0u, 0u, 0u, 516u, 0u, 0u, 0u, 517u, 0u, 518u, 0u, 519u, 0u, 0u, 0u, 0u, 0u, 520u, 0u, 521u, 0u, 522u, 0u, 0u, 523u, + 0u, 0u, 524u, 0u, 0u, 525u, 0u, 526u, 0u, 527u, 0u, 0u, 0u, 528u, 0u, 529u, 0u, 0u, 0u, 530u, 0u, 531u, 0u, 0u, 0u, 532u, 0u, 533u, 0u, 534u, 0u, 535u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 536u, 537u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 539u, 0u, 540u, 0u, 541u, 0u, 542u, 0u, 0u, 0u, 543u, 0u, 0u, 544u, 0u, 0u, 545u, 0u, 0u, 0u, 546u, 0u, 0u, 547u, 0u, 0u, 548u, 0u, 0u, 0u, + 549u, 0u, 0u, 550u, 0u, 0u, 551u, 0u, 0u, 0u, 552u, 0u, 0u, 553u, 0u, 0u, 554u, 555u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 0u, 0u, 0u, 557u, + 0u, 0u, 0u, 0u, 558u, 0u, 559u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 562u, 0u, 0u, 0u, 563u, 0u, 0u, 0u, 564u, 0u, 0u, 0u, 0u, + 0u, 0u, 565u, 0u, 0u, 0u, 0u, 0u, 566u, 0u, 567u, 0u, 0u, 568u, 0u, 0u, 0u, 0u, 569u, 0u, 0u, 0u, 0u, 570u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, + 572u, 0u, 0u, 0u, 0u, 0u, 0u, 573u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 579u, 0u, 0u, 0u, 0u, 580u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, 0u, 0u, 0u, 582u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 0u, 584u, 0u, 0u, 585u, 0u, 586u, 0u, 587u, 0u, 588u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, 590u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 591u, 0u, 592u, 0u, 593u, 0u, 0u, 0u, 0u, 594u, + 0u, 0u, 595u, 0u, 596u, 0u, 597u, 0u, 598u, 0u, 599u, 0u, 0u, 0u, 600u, 0u, 0u, 0u, 601u, 0u, 0u, 602u, 0u, 0u, 0u, 603u, 0u, 0u, 604u, 0u, 605u, 0u, + 0u, 0u, 606u, 0u, 0u, 0u, 607u, 0u, 0u, 608u, 0u, 0u, 0u, 609u, 0u, 0u, 610u, 0u, 611u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 613u, 0u, 0u, 614u, 0u, 0u, + 0u, 615u, 0u, 0u, 616u, 0u, 617u, 0u, 0u, 0u, 618u, 0u, 0u, 0u, 619u, 0u, 0u, 620u, 0u, 0u, 0u, 621u, 0u, 0u, 622u, 0u, 623u, 0u, 0u, 0u, 624u, 0u, + 0u, 0u, 625u, 0u, 0u, 626u, 0u, 0u, 0u, 627u, 0u, 0u, 628u, 0u, 629u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 631u, 0u, 0u, 632u, 0u, 0u, 0u, 633u, 0u, 0u, + 634u, 0u, 635u, 0u, 0u, 0u, 0u, 0u, 0u, 636u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 637u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 639u, 0u, 0u, 0u, + 640u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 641u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 642u, 0u, 0u, 643u, 0u, 644u, 0u, 645u, 0u, 646u, 0u, 0u, 0u, 0u, 0u, + 0u, 647u, 0u, 0u, 0u, 648u, 649u, 0u, 0u, 650u, 0u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 652u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 653u, 0u, 0u, 654u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 655u, 0u, 656u, 0u, 657u, 0u, 658u, 0u, + 0u, 0u, 0u, 659u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 660u, 0u, 0u, 661u, 0u, 662u, 0u, 663u, 0u, 0u, 0u, 0u, 0u, 664u, 0u, 0u, 0u, 0u, 0u, 665u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 666u, 0u, 0u, 0u, 667u, 0u, 0u, 0u, 0u, 0u, 668u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 669u, 0u, 670u, 0u, 0u, + 0u, 671u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 672u, 0u, 0u, 673u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 675u, 0u, 676u, 0u, 677u, 678u, 0u, 0u, + 679u, 0u, 680u, 0u, 681u, 0u, 682u, 0u, 683u, 0u, 0u, 0u, 0u, 684u, 0u, 0u, 0u, 685u, 0u, 0u, 0u, 0u, 0u, 686u, 0u, 0u, 0u, 687u, 0u, 0u, 0u, 0u, + 688u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 689u, 0u, 0u, 690u, 0u, 0u, 691u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 692u, 0u, 693u, 0u, 694u, + 0u, 0u, 0u, 695u, 0u, 696u, 0u, 697u, 0u, 0u, 698u, 0u, 0u, 0u, 0u, 699u, 0u, 700u, 0u, 0u, 701u, 0u, 0u, 702u, 0u, 0u, 0u, 0u, 703u, 0u, 704u, 0u, + 0u, 705u, 0u, 706u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 707u, 0u, 0u, 708u, 0u, 0u, 0u, + 0u, 709u, 0u, 0u, 710u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 713u, 0u, 0u, 0u, 0u, 714u, 0u, 0u, 0u, 0u, 715u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, + 0u, 0u, 717u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 0u, 0u, 719u, 0u, 720u, 721u, 0u, 0u, 722u, 723u, 0u, 0u, 0u, 724u, + 725u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 726u, 0u, 0u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 728u, 0u, 0u, 729u, 730u, + 0u, 0u, 0u, 731u, 0u, 0u, 0u, 0u, 0u, 0u, 732u, 0u, 0u, 0u, 733u, 0u, 0u, 0u, 734u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 0u, 0u, 736u, 0u, 0u, 0u, + 0u, 0u, 0u, 737u, 0u, 738u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 739u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 740u, 0u, 0u, 741u, 0u, 0u, + 0u, 742u, 0u, 0u, 743u, 0u, 0u, 744u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 745u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 746u, 0u, 0u, 747u, 0u, 0u, + 0u, 748u, 0u, 0u, 749u, 0u, 0u, 750u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 751u, 0u, 0u, 0u, 0u, 0u, 752u, 0u, 0u, 753u, 0u, 0u, 754u, 0u, 0u, 0u, 755u, + 0u, 756u, 0u, 757u, 0u, 758u, 0u, 759u, 0u, 0u, 0u, 760u, 761u, 762u, 0u, 763u, 0u, 0u, 0u, 0u, 0u, 0u, 764u, 0u, 0u, 0u, 765u, 0u, 0u, 0u, 0u, 0u, + 766u, 0u, 0u, 0u, 767u, 0u, 768u, 0u, 769u, 0u, 770u, 0u, 771u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 772u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 774u, 0u, 775u, 0u, 776u, 777u, 0u, 0u, 0u, 778u, 0u, 0u, 0u, 0u, 0u, 0u, 779u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 780u, 0u, 781u, 0u, 782u, 0u, 0u, 0u, 783u, 0u, 784u, 0u, 785u, 0u, 0u, 0u, 0u, 786u, 0u, 787u, 0u, 788u, 0u, 0u, 789u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 790u, 0u, 0u, 791u, 0u, 792u, 0u, 0u, 793u, 0u, 0u, 794u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 795u, 0u, 0u, 796u, 0u, 0u, 0u, 0u, 0u, 0u, 797u, 0u, 0u, 0u, 798u, 0u, 0u, 0u, 0u, 799u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 800u, 0u, 801u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 802u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 803u, 0u, 804u, 0u, 805u, 0u, 0u, 0u, 0u, 806u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 807u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 808u, 0u, 0u, 0u, 0u, 0u, 0u, 809u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 810u, 0u, 811u, 0u, 812u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 813u, 0u, 0u, 0u, 0u, 0u, 0u, 814u, 0u, 815u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 816u, 0u, 817u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 818u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 819u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 820u, 0u, 0u, 821u, 0u, 822u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 823u, 0u, 824u, 0u, 0u, 825u, 0u, 826u, 0u, 827u, 828u, 0u, 829u, 0u, 0u, 0u, 0u, 0u, 0u, 830u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 831u, 0u, 0u, 832u, 0u, 0u, + 0u, 0u, 833u, 0u, 0u, 0u, 0u, 834u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 835u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 836u, 0u, 0u, 0u, 837u, 0u, 0u, 0u, 0u, 0u, 0u, 838u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 839u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 840u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 841u, 0u, 0u, 842u, 0u, 0u, 0u, 0u, 0u, 843u, 0u, 0u, 844u, 0u, 0u, 0u, 0u, 0u, 845u, + 0u, 846u, 0u, 847u, 0u, 848u, 0u, 849u, 0u, 0u, 0u, 0u, 0u, 850u, 0u, 851u, 0u, 852u, 0u, 0u, 853u, 0u, 0u, 0u, 0u, 854u, 0u, 0u, 855u, 0u, 0u, 856u, + 0u, 857u, 0u, 858u, 0u, 859u, 0u, 860u, 0u, 0u, 861u, 0u, 862u, 863u, 0u, 0u, 864u, 0u, 0u, 0u, 0u, 865u, 0u, 0u, 866u, 0u, 0u, 867u, 0u, 868u, 0u, 869u, + 0u, 870u, 0u, 871u, 0u, 0u, 872u, 0u, 873u, 874u, 0u, 0u, 875u, 0u, 0u, 0u, 0u, 0u, 876u, 0u, 0u, 877u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 878u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 879u, 0u, 0u, 0u, 880u, 0u, 0u, 0u, 0u, 0u, 881u, 0u, 0u, 882u, 0u, 0u, + 0u, 883u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 884u, 0u, 0u, 0u, 885u, 0u, 886u, 0u, 887u, 0u, 888u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 889u, 0u, 890u, 0u, 0u, 0u, 891u, 0u, 892u, 0u, 893u, 0u, 894u, 0u, 895u, 896u, 0u, 897u, 0u, 0u, 0u, 898u, +}; + void recomp_unit_0066_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,31,16,6 fprs=12,13,20,14 gpr_occ=4735 fpr_occ=542 gpr_total=5669 fpr_total=602 @@ -58,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x0890C000u; - entry_id = 0u; - if (entry_delta < 16360u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0066[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0066[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16360u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0066[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_0890C000; @@ -976,6 +1100,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0890C000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1015,8 +1163,21 @@ L_0890C010: L_0890C030: aot_gpr_31 = (0x0890C038u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 4u, 0x0890C038u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C038u) goto L_0890C038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C038: aot_gpr_31 = (0x0890C040u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1041,8 +1202,8 @@ L_0890C050: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C074: @@ -1062,8 +1223,21 @@ L_0890C074: L_0890C098: aot_gpr_31 = (0x0890C0A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 9u, 0x0890C0A0u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C0A0u) goto L_0890C0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C0A0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1924)))))); aot_gpr_5 = (2246u << 16u); @@ -1088,8 +1262,8 @@ L_0890C0CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C0DC: @@ -1111,8 +1285,21 @@ L_0890C0DC: L_0890C108: aot_gpr_31 = (0x0890C110u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 14u, 0x0890C110u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C110u) goto L_0890C110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C110: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1208,8 +1395,21 @@ L_0890C1A8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890C1B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 27u, 0x0890C1B4u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C1B4u) goto L_0890C1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C1B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1244,8 +1444,21 @@ L_0890C1E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890C1F4u); aot_gpr_6 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 32u, 0x0890C1F4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C1F4u) goto L_0890C1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C1F4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1277,8 +1490,21 @@ L_0890C22C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890C238u); aot_gpr_5 = (0u | 156u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 36u, 0x0890C238u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C238u) goto L_0890C238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C238: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1303,8 +1529,21 @@ L_0890C258: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x0890C264u); aot_gpr_5 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 40u, 0x0890C264u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C264u) goto L_0890C264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C264: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1320,8 +1559,21 @@ L_0890C26C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0890C288u); ctx.gpr[7] = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 42u, 0x0890C288u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C288u) goto L_0890C288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C288: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 2048u); @@ -1335,8 +1587,21 @@ L_0890C298: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x0890C2A4u); aot_gpr_5 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 44u, 0x0890C2A4u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C2A4u) goto L_0890C2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C2A4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1352,8 +1617,21 @@ L_0890C2AC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0890C2C8u); ctx.gpr[7] = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 46u, 0x0890C2C8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C2C8u) goto L_0890C2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C2C8: aot_gpr_4 = (16448u << 16u); aot_fpr_20 = std::bit_cast(0u); @@ -1368,8 +1646,21 @@ L_0890C2DC: { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x0890C2F0u); aot_fpr_12 = aot_fpr_20 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 48u, 0x0890C2F0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C2F0u) goto L_0890C2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C2F0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1377,8 +1668,21 @@ L_0890C2F0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(456), aot_gpr_5); aot_gpr_31 = (0x0890C308u); aot_gpr_5 = (0u | 156u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 49u, 0x0890C308u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C308u) goto L_0890C308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C308: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1740))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1416,8 +1720,8 @@ L_0890C338: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C354: @@ -1428,8 +1732,21 @@ L_0890C354: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0890C370u); aot_gpr_6 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 55u, 0x0890C370u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C370u) goto L_0890C370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C370: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1458,8 +1775,21 @@ L_0890C394: L_0890C3AC: aot_gpr_31 = (0x0890C3B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 59u, 0x0890C3B4u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C3B4u) goto L_0890C3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C3B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); aot_gpr_5 = (0u | 34u); @@ -1476,8 +1806,21 @@ L_0890C3C4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(468), aot_gpr_5); aot_gpr_31 = (0x0890C3DCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 61u, 0x0890C3DCu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C3DCu) goto L_0890C3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C3DC: aot_gpr_31 = (0x0890C3E4u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C3E4u) goto L_0890C3E4; @@ -1500,15 +1843,28 @@ L_0890C3F8: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x0890C41Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 64u, 0x0890C41Cu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C41Cu) goto L_0890C41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C41C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C42C: @@ -1537,14 +1893,40 @@ L_0890C458: L_0890C464: aot_gpr_31 = (0x0890C46Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 68u, 0x0890C46Cu, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C46Cu) goto L_0890C46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C46C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890C478u); aot_gpr_5 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 69u, 0x0890C478u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C478u) goto L_0890C478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C478: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890C484u); @@ -1559,8 +1941,21 @@ L_0890C484: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x0890C4A0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 71u, 0x0890C4A0u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C4A0u) goto L_0890C4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C4A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); @@ -1577,8 +1972,8 @@ L_0890C4A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C4D0: @@ -1805,8 +2200,8 @@ L_0890C5F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C604: @@ -1830,8 +2225,21 @@ L_0890C604: L_0890C63C: aot_gpr_31 = (0x0890C644u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 105u, 0x0890C644u, 0x08906F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 655u, 0x08906F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C644u) goto L_0890C644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C644: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1920,26 +2328,78 @@ L_0890C6DC: L_0890C6E4: aot_gpr_31 = (0x0890C6ECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 115u, 0x0890C6ECu, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C6ECu) goto L_0890C6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C6EC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890C6F8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 116u, 0x0890C6F8u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C6F8u) goto L_0890C6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C6F8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890C704u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 117u, 0x0890C704u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C704u) goto L_0890C704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C704: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890C710u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 118u, 0x0890C710u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C710u) goto L_0890C710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C710: aot_gpr_4 = (aot_gpr_16 & 65535u); aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast(2274), static_cast(aot_gpr_4)); @@ -1947,14 +2407,40 @@ L_0890C710: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890C728u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 119u, 0x0890C728u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C728u) goto L_0890C728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C728: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890C734u); aot_gpr_5 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 120u, 0x0890C734u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C734u) goto L_0890C734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C734: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2015,8 +2501,8 @@ L_0890C774: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C798: @@ -2025,8 +2511,21 @@ L_0890C798: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0890C7ACu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 129u, 0x0890C7ACu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C7ACu) goto L_0890C7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C7AC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2104,8 +2603,8 @@ L_0890C7FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C80C: @@ -2167,8 +2666,8 @@ L_0890C848: goto L_0890C84C; L_0890C84C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890C854: @@ -2195,8 +2694,21 @@ L_0890C888: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0890C898u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 151u, 0x0890C898u, 0x0886D370u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 181u, 0x0886D370u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C898u) goto L_0890C898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C898: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -2213,8 +2725,21 @@ L_0890C898: L_0890C8B8: aot_gpr_31 = (0x0890C8C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 153u, 0x0890C8C0u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C8C0u) goto L_0890C8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C8C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 256u); @@ -2292,14 +2817,40 @@ L_0890C950: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890C960u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 162u, 0x0890C960u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C960u) goto L_0890C960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C960: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890C96Cu); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 163u, 0x0890C96Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C96Cu) goto L_0890C96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C96C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (65528u << 16u); @@ -2326,8 +2877,21 @@ L_0890C998: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890C9A4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 166u, 0x0890C9A4u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C9A4u) goto L_0890C9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C9A4: aot_gpr_31 = (0x0890C9ACu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C9ACu) goto L_0890C9AC; @@ -2350,8 +2914,21 @@ L_0890C9C0: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x0890C9E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 169u, 0x0890C9E4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890C9E4u) goto L_0890C9E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890C9E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (65520u << 16u); @@ -2439,8 +3016,8 @@ L_0890CA60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890CA8C: @@ -2494,14 +3071,27 @@ L_0890CADC: L_0890CAE4: aot_gpr_31 = (0x0890CAECu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 186u, 0x0890CAECu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CAECu) goto L_0890CAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CAEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890CAF8: @@ -2551,8 +3141,21 @@ L_0890CB4C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1732), aot_gpr_5); aot_gpr_31 = (0x0890CB64u); aot_gpr_5 = (0u | 45u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 192u, 0x0890CB64u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CB64u) goto L_0890CB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CB64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-9)); @@ -2602,8 +3205,21 @@ L_0890CBB0: L_0890CBB8: aot_gpr_31 = (0x0890CBC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 198u, 0x0890CBC0u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CBC0u) goto L_0890CBC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CBC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2662,8 +3278,21 @@ L_0890CC18: L_0890CC20: aot_gpr_31 = (0x0890CC28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 206u, 0x0890CC28u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CC28u) goto L_0890CC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CC28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2696,8 +3325,21 @@ L_0890CC48: L_0890CC50: aot_gpr_31 = (0x0890CC58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 211u, 0x0890CC58u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CC58u) goto L_0890CC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CC58: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2707,8 +3349,8 @@ L_0890CC58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890CC6C: @@ -2723,15 +3365,28 @@ L_0890CC6C: L_0890CC88: aot_gpr_31 = (0x0890CC90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 214u, 0x0890CC90u, 0x08929EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 450u, 0x08929EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CC90u) goto L_0890CC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CC90: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890CCA0: @@ -2752,8 +3407,8 @@ L_0890CCB4: goto L_0890CCC4; L_0890CCC4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890CCCC: @@ -2813,13 +3468,39 @@ L_0890CD3C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1372), ctx.gpr[2]); aot_gpr_31 = (0x0890CD48u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 225u, 0x0890CD48u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CD48u) goto L_0890CD48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CD48: aot_gpr_31 = (0x0890CD50u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 226u, 0x0890CD50u, 0x08929C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 396u, 0x08929C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CD50u) goto L_0890CD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CD50: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2240), 0u); aot_gpr_31 = (0x0890CD5Cu); @@ -2828,8 +3509,21 @@ L_0890CD50: L_0890CD5C: aot_gpr_31 = (0x0890CD64u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 228u, 0x0890CD64u, 0x08929EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 450u, 0x08929EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CD64u) goto L_0890CD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CD64: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2839,8 +3533,8 @@ L_0890CD64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890CD78: @@ -2852,8 +3546,21 @@ L_0890CD78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x0890CD98u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 230u, 0x0890CD98u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CD98u) goto L_0890CD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CD98: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); @@ -2876,8 +3583,21 @@ L_0890CD98: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(336), 0u); aot_gpr_31 = (0x0890CDE0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 231u, 0x0890CDE0u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CDE0u) goto L_0890CDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CDE0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -2887,8 +3607,8 @@ L_0890CDE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890CDF4: @@ -2941,15 +3661,41 @@ L_0890CE40: L_0890CE48: aot_gpr_31 = (0x0890CE50u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 239u, 0x0890CE50u, 0x08948040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 6u, 0x08948040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CE50u) goto L_0890CE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CE50: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0890CE60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 240u, 0x0890CE60u, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CE60u) goto L_0890CE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CE60: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(48)))))); aot_gpr_6 = (0u | 235u); @@ -2992,8 +3738,21 @@ L_0890CE90: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x0890CEACu); ctx.gpr[7] = (0u | 243u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 245u, 0x0890CEACu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CEACu) goto L_0890CEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CEAC: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); @@ -3003,8 +3762,21 @@ L_0890CEAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890CECCu); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 246u, 0x0890CECCu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CECCu) goto L_0890CECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CECC: aot_fpr_12 = std::bit_cast(0u); { const bool branch_taken = 0u == 0u; @@ -3022,8 +3794,21 @@ L_0890CED8: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x0890CEF4u); ctx.gpr[7] = (0u | 236u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 248u, 0x0890CEF4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CEF4u) goto L_0890CEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CEF4: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); @@ -3033,8 +3818,21 @@ L_0890CEF4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890CF14u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 249u, 0x0890CF14u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CF14u) goto L_0890CF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CF14: aot_fpr_12 = std::bit_cast(0u); { const bool branch_taken = 0u == 0u; @@ -3057,8 +3855,21 @@ L_0890CF28: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x0890CF3Cu); ctx.gpr[7] = (0u | 237u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 252u, 0x0890CF3Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CF3Cu) goto L_0890CF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CF3C: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(48)))))); @@ -3085,8 +3896,21 @@ L_0890CF58: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x0890CF6Cu); ctx.gpr[7] = (0u | 236u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 256u, 0x0890CF6Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CF6Cu) goto L_0890CF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CF6C: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(48)))))); @@ -3113,8 +3937,21 @@ L_0890CF88: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x0890CF9Cu); ctx.gpr[7] = (0u | 244u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 260u, 0x0890CF9Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CF9Cu) goto L_0890CF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CF9C: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(48)))))); @@ -3141,8 +3978,21 @@ L_0890CFB8: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x0890CFCCu); ctx.gpr[7] = (0u | 243u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 264u, 0x0890CFCCu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890CFCCu) goto L_0890CFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890CFCC: aot_gpr_5 = (ctx.gpr[2] | 0u); goto L_0890CFD0; @@ -3172,8 +4022,8 @@ L_0890CFEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D004: @@ -3225,8 +4075,21 @@ L_0890D05C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), aot_gpr_4); aot_gpr_31 = (0x0890D08Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 273u, 0x0890D08Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D08Cu) goto L_0890D08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D08C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3236,8 +4099,8 @@ L_0890D08C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D0A0: @@ -3265,8 +4128,21 @@ L_0890D0A0: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x0890D0D8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 275u, 0x0890D0D8u, 0x089800C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 15u, 0x089800C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D0D8u) goto L_0890D0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D0D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3326,8 +4202,21 @@ L_0890D170: L_0890D178: aot_gpr_31 = (0x0890D180u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 279u, 0x0890D180u, 0x089902D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 54u, 0x089902D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D180u) goto L_0890D180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D180: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3362,8 +4251,21 @@ L_0890D19C: L_0890D1A4: aot_gpr_31 = (0x0890D1ACu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 284u, 0x0890D1ACu, 0x08990314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 58u, 0x08990314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D1ACu) goto L_0890D1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D1AC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3375,8 +4277,21 @@ L_0890D1AC: L_0890D1B4: aot_gpr_31 = (0x0890D1BCu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 286u, 0x0890D1BCu, 0x08990354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 62u, 0x08990354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D1BCu) goto L_0890D1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D1BC: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0890D1C0; @@ -3414,8 +4329,21 @@ L_0890D1E8: L_0890D1FC: aot_gpr_31 = (0x0890D204u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 292u, 0x0890D204u, 0x08980164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 21u, 0x08980164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D204u) goto L_0890D204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D204: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -3443,8 +4371,21 @@ L_0890D20C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0890D228u); aot_gpr_4 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 294u, 0x0890D228u, 0x089800C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 15u, 0x089800C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D228u) goto L_0890D228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D228: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3481,8 +4422,21 @@ L_0890D230: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), std::bit_cast(ctx.fpr[15])); aot_gpr_31 = (0x0890D2A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 296u, 0x0890D2A0u, 0x08980164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 21u, 0x08980164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D2A0u) goto L_0890D2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D2A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_gpr_5 = (64512u << 16u); @@ -3513,8 +4467,8 @@ L_0890D2D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D2E8: @@ -3541,8 +4495,21 @@ L_0890D2E8: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x0890D318u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 300u, 0x0890D318u, 0x089800C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 15u, 0x089800C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D318u) goto L_0890D318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D318: aot_gpr_4 = (64512u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -3576,8 +4543,21 @@ L_0890D354: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0890D36Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(456), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 303u, 0x0890D36Cu, 0x089902D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 54u, 0x089902D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D36Cu) goto L_0890D36C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D36C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3611,8 +4591,8 @@ L_0890D394: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D3A4: @@ -3639,8 +4619,21 @@ L_0890D3A4: aot_gpr_4 = (0u | 6u); aot_gpr_31 = (0x0890D3D4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 309u, 0x0890D3D4u, 0x089800C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 15u, 0x089800C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D3D4u) goto L_0890D3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D3D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3671,8 +4664,21 @@ L_0890D408: aot_gpr_5 = (aot_gpr_5 | aot_gpr_6); aot_gpr_31 = (0x0890D41Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(456), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 312u, 0x0890D41Cu, 0x089902D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 54u, 0x089902D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D41Cu) goto L_0890D41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D41C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3693,8 +4699,8 @@ L_0890D43C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D44C: @@ -3718,8 +4724,8 @@ L_0890D460: goto L_0890D464; L_0890D464: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D46C: @@ -3752,8 +4758,8 @@ L_0890D48C: goto L_0890D490; L_0890D490: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D498: @@ -3762,8 +4768,21 @@ L_0890D498: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } aot_gpr_31 = (0x0890D4C8u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 325u, 0x0890D4C8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D4C8u) goto L_0890D4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D4C8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3837,8 +4856,21 @@ L_0890D544: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0890D554u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 334u, 0x0890D554u, 0x089AB048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 627u, 0x089AB048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D554u) goto L_0890D554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D554: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3934,8 +4966,21 @@ L_0890D5D0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0890D5E8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 339u, 0x0890D5E8u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D5E8u) goto L_0890D5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D5E8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3943,8 +4988,21 @@ L_0890D5E8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1736), aot_gpr_5); aot_gpr_31 = (0x0890D600u); aot_gpr_5 = (0u | 153u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 340u, 0x0890D600u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D600u) goto L_0890D600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D600: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3983,8 +5041,8 @@ L_0890D628: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D654: @@ -3993,8 +5051,21 @@ L_0890D654: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(80), aot_run_words); } aot_gpr_31 = (0x0890D670u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 345u, 0x0890D670u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D670u) goto L_0890D670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D670: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4066,8 +5137,21 @@ L_0890D6B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x0890D6F4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 351u, 0x0890D6F4u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D6F4u) goto L_0890D6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D6F4: aot_gpr_5 = (0u | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); @@ -4142,8 +5226,21 @@ L_0890D774: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0890D794u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 359u, 0x0890D794u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D794u) goto L_0890D794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D794: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(10000)); @@ -4159,15 +5256,15 @@ L_0890D7A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D7B8: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2264), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D7C0: @@ -4202,8 +5299,8 @@ L_0890D7F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D80C: @@ -4211,8 +5308,8 @@ L_0890D80C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(2264), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D81C: @@ -4235,8 +5332,21 @@ L_0890D81C: L_0890D848: aot_gpr_31 = (0x0890D850u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 369u, 0x0890D850u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D850u) goto L_0890D850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D850: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4321,8 +5431,21 @@ L_0890D8D8: } L_0890D8E0: aot_gpr_31 = (0x0890D8E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 379u, 0x0890D8E8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D8E8u) goto L_0890D8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D8E8: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[22]; goto L_0890D8EC; @@ -4366,8 +5489,21 @@ L_0890D928: } L_0890D930: aot_gpr_31 = (0x0890D938u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 385u, 0x0890D938u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D938u) goto L_0890D938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D938: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[22]; goto L_0890D93C; @@ -4422,8 +5558,21 @@ L_0890D998: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0890D9B4u); ctx.gpr[7] = (0u | 125u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 392u, 0x0890D9B4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D9B4u) goto L_0890D9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D9B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890D9C0u); @@ -4433,8 +5582,21 @@ L_0890D9C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890D9CCu); aot_gpr_5 = (0u | 28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 394u, 0x0890D9CCu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890D9CCu) goto L_0890D9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890D9CC: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -4446,8 +5608,8 @@ L_0890D9CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890D9E8: @@ -4485,19 +5647,58 @@ L_0890DA2C: L_0890DA38: aot_gpr_31 = (0x0890DA40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 399u, 0x0890DA40u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DA40u) goto L_0890DA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DA40: aot_gpr_31 = (0x0890DA48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 400u, 0x0890DA48u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DA48u) goto L_0890DA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DA48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DA54u); aot_gpr_5 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 401u, 0x0890DA54u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DA54u) goto L_0890DA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DA54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4537,8 +5738,21 @@ L_0890DAA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DAB4u); aot_gpr_5 = (0u | 147u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 406u, 0x0890DAB4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DAB4u) goto L_0890DAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DAB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4550,8 +5764,21 @@ L_0890DABC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DAC8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 408u, 0x0890DAC8u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DAC8u) goto L_0890DAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DAC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4567,8 +5794,21 @@ L_0890DAD0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0890DAECu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 410u, 0x0890DAECu, 0x089AA270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 395u, 0x089AA270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DAECu) goto L_0890DAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DAEC: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4587,12 +5827,38 @@ L_0890DAEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DB04u); aot_gpr_5 = (0u | 147u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 411u, 0x0890DB04u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DB04u) goto L_0890DB04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DB04: aot_gpr_31 = (0x0890DB0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 412u, 0x0890DB0Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DB0Cu) goto L_0890DB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DB0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1156))); ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); @@ -4613,8 +5879,21 @@ L_0890DB2C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0890DB38u); aot_gpr_5 = (0u | 147u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 415u, 0x0890DB38u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DB38u) goto L_0890DB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DB38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DB44u); @@ -4628,8 +5907,21 @@ L_0890DB44: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x0890DB5Cu); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 417u, 0x0890DB5Cu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DB5Cu) goto L_0890DB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DB5C: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -4734,8 +6026,21 @@ L_0890DC00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DC10u); aot_gpr_6 = (0u | 125u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 423u, 0x0890DC10u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DC10u) goto L_0890DC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DC10: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4755,19 +6060,58 @@ L_0890DC1C: L_0890DC34: aot_gpr_31 = (0x0890DC3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 426u, 0x0890DC3Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DC3Cu) goto L_0890DC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DC3C: aot_gpr_31 = (0x0890DC44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 427u, 0x0890DC44u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DC44u) goto L_0890DC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DC44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DC50u); aot_gpr_5 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 428u, 0x0890DC50u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DC50u) goto L_0890DC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DC50: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); @@ -4781,8 +6125,8 @@ L_0890DC50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890DC74: @@ -4801,8 +6145,21 @@ L_0890DC74: L_0890DC90: aot_gpr_31 = (0x0890DC98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 431u, 0x0890DC98u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DC98u) goto L_0890DC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DC98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4822,15 +6179,28 @@ L_0890DCAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DCB8u); aot_gpr_5 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 434u, 0x0890DCB8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DCB8u) goto L_0890DCB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DCB8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890DCC8: @@ -4887,8 +6257,21 @@ L_0890DD30: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DD3Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 442u, 0x0890DD3Cu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DD3Cu) goto L_0890DD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DD3C: aot_gpr_31 = (0x0890DD44u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DD44u) goto L_0890DD44; @@ -4911,8 +6294,21 @@ L_0890DD58: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x0890DD7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 445u, 0x0890DD7Cu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DD7Cu) goto L_0890DD7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DD7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4924,8 +6320,21 @@ L_0890DD84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DD90u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 447u, 0x0890DD90u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DD90u) goto L_0890DD90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DD90: aot_gpr_31 = (0x0890DD98u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DD98u) goto L_0890DD98; @@ -4948,15 +6357,28 @@ L_0890DDAC: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x0890DDD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 450u, 0x0890DDD0u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DDD0u) goto L_0890DDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DDD0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890DDE0: @@ -4968,8 +6390,21 @@ L_0890DDE0: aot_gpr_5 = (aot_gpr_5 | 1u); aot_gpr_31 = (0x0890DE00u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(76), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 452u, 0x0890DE00u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DE00u) goto L_0890DE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DE00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5008,16 +6443,42 @@ L_0890DE38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DE44u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 457u, 0x0890DE44u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DE44u) goto L_0890DE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DE44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); goto L_0890DE48; L_0890DE48: aot_gpr_31 = (0x0890DE50u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 459u, 0x0890DE50u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DE50u) goto L_0890DE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DE50: aot_gpr_31 = (0x0890DE58u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5056,8 +6517,21 @@ L_0890DE7C: L_0890DE94: aot_gpr_31 = (0x0890DE9Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 464u, 0x0890DE9Cu, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DE9Cu) goto L_0890DE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DE9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); aot_gpr_5 = (0u | 17u); @@ -5078,20 +6552,59 @@ L_0890DEAC: L_0890DEB4: aot_gpr_31 = (0x0890DEBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 467u, 0x0890DEBCu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DEBCu) goto L_0890DEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DEBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DEC8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 468u, 0x0890DEC8u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DEC8u) goto L_0890DEC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DEC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DED4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 469u, 0x0890DED4u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DED4u) goto L_0890DED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DED4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2276))); aot_gpr_5 = (0u | 2u); @@ -5105,8 +6618,21 @@ L_0890DEE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DEF0u); aot_gpr_5 = (0u | 58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 471u, 0x0890DEF0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DEF0u) goto L_0890DEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DEF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5118,8 +6644,21 @@ L_0890DEF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DF04u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 473u, 0x0890DF04u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890DF04u) goto L_0890DF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890DF04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890DF10u); @@ -5130,8 +6669,8 @@ L_0890DF10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890DF20: @@ -5167,8 +6706,8 @@ L_0890DF58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890DF64: @@ -5527,8 +7066,21 @@ L_0890E1D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0890E210u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 496u, 0x0890E210u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E210u) goto L_0890E210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E210: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5559,8 +7111,8 @@ L_0890E224: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890E244: @@ -5665,8 +7217,8 @@ L_0890E2F0: goto L_0890E2F4; L_0890E2F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890E2FC: @@ -5675,8 +7227,21 @@ L_0890E2FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x0890E310u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 514u, 0x0890E310u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E310u) goto L_0890E310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E310: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5744,8 +7309,21 @@ L_0890E370: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E37Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 523u, 0x0890E37Cu, 0x0892FCA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 765u, 0x0892FCA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E37Cu) goto L_0890E37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E37C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5758,8 +7336,21 @@ L_0890E388: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E394u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 525u, 0x0890E394u, 0x08912BE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 688u, 0x08912BE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E394u) goto L_0890E394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E394: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5779,8 +7370,21 @@ L_0890E3A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E3B4u); aot_gpr_6 = (0u | 136u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 528u, 0x0890E3B4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E3B4u) goto L_0890E3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E3B4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5793,8 +7397,21 @@ L_0890E3BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E3CCu); aot_gpr_6 = (0u | 138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 530u, 0x0890E3CCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E3CCu) goto L_0890E3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E3CC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5883,8 +7500,21 @@ L_0890E430: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0890E468u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 538u, 0x0890E468u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E468u) goto L_0890E468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E468: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20228))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20232))); @@ -5925,8 +7555,21 @@ L_0890E4A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E4B0u); aot_gpr_6 = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 543u, 0x0890E4B0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E4B0u) goto L_0890E4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E4B0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5945,8 +7588,21 @@ L_0890E4C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E4D8u); aot_gpr_6 = (0u | 215u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 546u, 0x0890E4D8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E4D8u) goto L_0890E4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E4D8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5965,8 +7621,21 @@ L_0890E4F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E500u); aot_gpr_6 = (0u | 216u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 549u, 0x0890E500u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E500u) goto L_0890E500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E500: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5985,8 +7654,21 @@ L_0890E518: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E528u); aot_gpr_6 = (0u | 217u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 552u, 0x0890E528u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E528u) goto L_0890E528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E528: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6038,22 +7720,61 @@ L_0890E57C: L_0890E590: aot_gpr_31 = (0x0890E598u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 559u, 0x0890E598u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E598u) goto L_0890E598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E598: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E5A4u); aot_gpr_5 = (0u | 43u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 560u, 0x0890E5A4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E5A4u) goto L_0890E5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E5A4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0890E5B8u); ctx.gpr[7] = (0u | 136u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 561u, 0x0890E5B8u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E5B8u) goto L_0890E5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E5B8: aot_gpr_5 = (2195u << 16u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6073,8 +7794,8 @@ L_0890E5DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890E5EC: @@ -6112,8 +7833,21 @@ L_0890E628: aot_gpr_4 = (aot_gpr_16 + static_cast(864)); aot_gpr_31 = (0x0890E634u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 568u, 0x0890E634u, 0x08A9F948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 565u, 0x08A9F948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E634u) goto L_0890E634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E634: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6173,8 +7907,21 @@ L_0890E680: ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0890E69Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 573u, 0x0890E69Cu, 0x08905E50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 398u, 0x08905E50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E69Cu) goto L_0890E69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E69C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6269,8 +8016,8 @@ L_0890E754: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890E768: @@ -6286,8 +8033,8 @@ L_0890E768: aot_fpr_12 = std::bit_cast(aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890E798: @@ -6342,8 +8089,21 @@ L_0890E7E8: L_0890E7F0: aot_gpr_31 = (0x0890E7F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 588u, 0x0890E7F8u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E7F8u) goto L_0890E7F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E7F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-8193)); @@ -6353,16 +8113,16 @@ L_0890E7F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890E818: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1340))); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890E824: @@ -6451,8 +8211,21 @@ L_0890E8A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E8B8u); aot_gpr_5 = (0u | 39u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 600u, 0x0890E8B8u, 0x08AC7BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1009u, 0x08AC7BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E8B8u) goto L_0890E8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E8B8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { @@ -6479,8 +8252,21 @@ L_0890E8E4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890E8F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 604u, 0x0890E8F0u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E8F0u) goto L_0890E8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E8F0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1344), ctx.gpr[17]); @@ -6494,8 +8280,21 @@ L_0890E8F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E908u); aot_gpr_5 = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 606u, 0x0890E908u, 0x08AC7BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1009u, 0x08AC7BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E908u) goto L_0890E908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E908: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { @@ -6522,8 +8321,21 @@ L_0890E934: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890E940u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 610u, 0x0890E940u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E940u) goto L_0890E940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E940: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1344), ctx.gpr[17]); @@ -6537,8 +8349,21 @@ L_0890E948: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E958u); aot_gpr_5 = (0u | 43u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 612u, 0x0890E958u, 0x08AC7BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1009u, 0x08AC7BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E958u) goto L_0890E958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E958: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { @@ -6565,8 +8390,21 @@ L_0890E984: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890E990u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 616u, 0x0890E990u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E990u) goto L_0890E990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E990: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1344), ctx.gpr[17]); @@ -6580,8 +8418,21 @@ L_0890E998: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E9A8u); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 618u, 0x0890E9A8u, 0x08AC7BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1009u, 0x08AC7BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E9A8u) goto L_0890E9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E9A8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { @@ -6608,8 +8459,21 @@ L_0890E9D4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890E9E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 622u, 0x0890E9E0u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E9E0u) goto L_0890E9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E9E0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1344), ctx.gpr[17]); @@ -6623,8 +8487,21 @@ L_0890E9E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890E9F8u); aot_gpr_5 = (0u | 45u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 624u, 0x0890E9F8u, 0x08AC7BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1009u, 0x08AC7BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890E9F8u) goto L_0890E9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890E9F8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { @@ -6651,8 +8528,21 @@ L_0890EA24: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890EA30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 628u, 0x0890EA30u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EA30u) goto L_0890EA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EA30: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1344), ctx.gpr[17]); @@ -6666,8 +8556,21 @@ L_0890EA38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890EA48u); aot_gpr_5 = (0u | 53u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 630u, 0x0890EA48u, 0x08AC7BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1009u, 0x08AC7BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EA48u) goto L_0890EA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EA48: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); if (!((ctx.fcr31 & 0x00800000u) != 0u)) { @@ -6694,8 +8597,21 @@ L_0890EA74: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890EA80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 634u, 0x0890EA80u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EA80u) goto L_0890EA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EA80: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1344), ctx.gpr[17]); @@ -6715,8 +8631,8 @@ L_0890EA88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890EAA4: @@ -6814,8 +8730,21 @@ L_0890EAD0: } aot_gpr_31 = (0x0890EB58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 638u, 0x0890EB58u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EB58u) goto L_0890EB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EB58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-2)); @@ -6866,8 +8795,21 @@ L_0890EBC4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x0890EBD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 643u, 0x0890EBD0u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EBD0u) goto L_0890EBD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EBD0: aot_gpr_31 = (0x0890EBD8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6882,8 +8824,21 @@ L_0890EBD8: L_0890EBE0: aot_gpr_31 = (0x0890EBE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 646u, 0x0890EBE8u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EBE8u) goto L_0890EBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EBE8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); ctx.gpr[8] = (17530u << 16u); @@ -6892,8 +8847,21 @@ L_0890EBE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890EC04u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 647u, 0x0890EC04u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EC04u) goto L_0890EC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EC04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 | 512u); @@ -6966,8 +8934,21 @@ L_0890ECB0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1676))); aot_gpr_31 = (0x0890ECBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 654u, 0x0890ECBCu, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890ECBCu) goto L_0890ECBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890ECBC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1892))); @@ -7003,8 +8984,8 @@ L_0890ECF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890ED0C: @@ -7115,15 +9096,28 @@ L_0890EDC8: L_0890EDEC: aot_gpr_31 = (0x0890EDF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 670u, 0x0890EDF4u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EDF4u) goto L_0890EDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EDF4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890EE04: @@ -7139,8 +9133,21 @@ L_0890EE04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0890EE34u); aot_gpr_6 = (0u | 160u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 672u, 0x0890EE34u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EE34u) goto L_0890EE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EE34: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7152,8 +9159,21 @@ L_0890EE34: L_0890EE40: aot_gpr_31 = (0x0890EE48u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 674u, 0x0890EE48u, 0x0890514Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 235u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 235u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 235u, 0x0890514Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EE48u) goto L_0890EE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EE48: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(72)); @@ -7183,8 +9203,21 @@ L_0890EE74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890EE80u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 679u, 0x0890EE80u, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EE80u) goto L_0890EE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EE80: aot_gpr_31 = (0x0890EE88u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7199,21 +9232,60 @@ L_0890EE88: L_0890EE90: aot_gpr_31 = (0x0890EE98u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 682u, 0x0890EE98u, 0x08AD37C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 625u, 0x08AD37C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EE98u) goto L_0890EE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EE98: aot_gpr_31 = (0x0890EEA0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 683u, 0x0890EEA0u, 0x08AD37E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 627u, 0x08AD37E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EEA0u) goto L_0890EEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EEA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_6 = (ctx.gpr[28] + static_cast(-20216)); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(86), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0890EEB4u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 684u, 0x0890EEB4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EEB4u) goto L_0890EEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EEB4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0)))))); aot_gpr_6 = (0u | 0u); @@ -7241,8 +9313,21 @@ L_0890EEDC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890EEECu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 687u, 0x0890EEECu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EEECu) goto L_0890EEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EEEC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -7252,8 +9337,8 @@ L_0890EEEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890EF00: @@ -7278,8 +9363,21 @@ L_0890EF34: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890EF40u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 690u, 0x0890EF40u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EF40u) goto L_0890EF40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EF40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0890EF4Cu); @@ -7295,13 +9393,39 @@ L_0890EF4C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0890EF6Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 692u, 0x0890EF6Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EF6Cu) goto L_0890EF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EF6C: aot_gpr_31 = (0x0890EF74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 693u, 0x0890EF74u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EF74u) goto L_0890EF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EF74: aot_gpr_31 = (0x0890EF7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7311,30 +9435,30 @@ L_0890EF7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890EF8C: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(1916), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890EF94: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(1916))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890EF9C: aot_gpr_5 = (0u | 2u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1931), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890EFA8: @@ -7355,14 +9479,27 @@ L_0890EFC4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890EFD0u); aot_gpr_4 = (aot_gpr_5 + static_cast(1168)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 701u, 0x0890EFD0u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EFD0u) goto L_0890EFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EFD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890EFDC: @@ -7371,25 +9508,51 @@ L_0890EFDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0890EFF0u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 703u, 0x0890EFF0u, 0x08AD3328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 556u, 0x08AD3328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EFF0u) goto L_0890EFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EFF0: aot_gpr_31 = (0x0890EFF8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 704u, 0x0890EFF8u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890EFF8u) goto L_0890EFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890EFF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F004: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F00C: @@ -7423,8 +9586,21 @@ L_0890F00C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x0890F064u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 707u, 0x0890F064u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F064u) goto L_0890F064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F064: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; @@ -7449,8 +9625,21 @@ L_0890F070: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0890F084u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 709u, 0x0890F084u, 0x08AB044Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 52u, 0x08AB044Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F084u) goto L_0890F084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F084: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7515,8 +9704,21 @@ L_0890F090: ctx.gpr[18] = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x0890F0F4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 711u, 0x0890F0F4u, 0x08905E50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 398u, 0x08905E50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F0F4u) goto L_0890F0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F0F4: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7541,8 +9743,21 @@ L_0890F114: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890F120u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 713u, 0x0890F120u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F120u) goto L_0890F120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F120: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); @@ -7552,16 +9767,42 @@ L_0890F120: } aot_gpr_31 = (0x0890F134u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 714u, 0x0890F134u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F134u) goto L_0890F134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F134: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0890F148u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 715u, 0x0890F148u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F148u) goto L_0890F148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F148: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(304)))))); aot_gpr_5 = (0u + static_cast(-2)); @@ -7584,8 +9825,8 @@ L_0890F16C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F188: @@ -7648,8 +9889,21 @@ L_0890F1DC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0890F1E8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 722u, 0x0890F1E8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F1E8u) goto L_0890F1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F1E8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0890F1EC; @@ -7722,8 +9976,8 @@ L_0890F27C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F28C: @@ -7734,8 +9988,21 @@ L_0890F28C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x0890F2A8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 732u, 0x0890F2A8u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F2A8u) goto L_0890F2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F2A8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(448))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7747,8 +10014,8 @@ L_0890F2B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F2C8: @@ -7799,8 +10066,8 @@ L_0890F314: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F33C: @@ -7824,8 +10091,21 @@ L_0890F368: aot_gpr_5 = (aot_gpr_4 + static_cast(1)); aot_gpr_31 = (0x0890F374u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 741u, 0x0890F374u, 0x08913498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 807u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 807u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 807u, 0x08913498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F374u) goto L_0890F374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F374: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (ctx.gpr[2] & 7u); @@ -7840,8 +10120,21 @@ L_0890F384: aot_gpr_5 = (aot_gpr_4 + static_cast(-1)); aot_gpr_31 = (0x0890F390u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 743u, 0x0890F390u, 0x08913498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 807u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 807u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 807u, 0x08913498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F390u) goto L_0890F390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F390: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (ctx.gpr[2] & 7u); @@ -7859,8 +10152,8 @@ L_0890F39C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F3BC: @@ -7884,8 +10177,21 @@ L_0890F3E8: aot_gpr_5 = (aot_gpr_4 + static_cast(-1)); aot_gpr_31 = (0x0890F3F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 747u, 0x0890F3F4u, 0x08913498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 807u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 807u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 807u, 0x08913498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F3F4u) goto L_0890F3F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F3F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (ctx.gpr[2] & 7u); @@ -7900,8 +10206,21 @@ L_0890F404: aot_gpr_5 = (aot_gpr_4 + static_cast(1)); aot_gpr_31 = (0x0890F410u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 749u, 0x0890F410u, 0x08913498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 807u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 807u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 807u, 0x08913498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F410u) goto L_0890F410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F410: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (ctx.gpr[2] & 7u); @@ -7919,8 +10238,8 @@ L_0890F41C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F43C: @@ -8008,8 +10327,8 @@ L_0890F4B0: goto L_0890F4B4; L_0890F4B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F4BC: @@ -8259,8 +10578,21 @@ L_0890F5A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0890F620u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 774u, 0x0890F620u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F620u) goto L_0890F620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F620: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8284,8 +10616,8 @@ L_0890F634: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F644: @@ -8309,14 +10641,14 @@ L_0890F660: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F68C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F694: @@ -8335,15 +10667,15 @@ L_0890F69C: goto L_0890F6AC; L_0890F6AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F6B4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(780))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F6BC: @@ -8366,14 +10698,27 @@ L_0890F6D0: } L_0890F6D8: aot_gpr_31 = (0x0890F6E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 788u, 0x0890F6E0u, 0x08A673F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 666u, 0x08A673F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F6E0u) goto L_0890F6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F6E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F6EC: @@ -8548,8 +10893,8 @@ L_0890F7A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F7BC: @@ -8660,8 +11005,8 @@ L_0890F7E0: L_0890F820: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F828: @@ -8771,8 +11116,21 @@ L_0890F898: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0890F8ACu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 806u, 0x0890F8ACu, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F8ACu) goto L_0890F8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F8AC: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8814,8 +11172,21 @@ L_0890F8AC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0890F8D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 807u, 0x0890F8D8u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F8D8u) goto L_0890F8D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F8D8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -8834,8 +11205,8 @@ L_0890F8D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F908: @@ -8949,8 +11320,8 @@ L_0890F96C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890F994: @@ -8979,8 +11350,21 @@ L_0890F9B8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x0890F9D8u); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 816u, 0x0890F9D8u, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890F9D8u) goto L_0890F9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890F9D8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9017,8 +11401,8 @@ L_0890FA0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FA3C: @@ -9086,8 +11470,21 @@ L_0890FAB4: L_0890FAC0: aot_gpr_31 = (0x0890FAC8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 826u, 0x0890FAC8u, 0x0888FEB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 620u, 0x0888FEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FAC8u) goto L_0890FAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FAC8: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); @@ -9117,8 +11514,8 @@ L_0890FADC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FAF8: @@ -9185,14 +11582,40 @@ L_0890FAF8: ctx.gpr[17] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x0890FB68u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 831u, 0x0890FB68u, 0x088F824Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 26u, 0x088F824Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FB68u) goto L_0890FB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FB68: aot_gpr_16 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x0890FB74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 832u, 0x0890FB74u, 0x088F824Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 26u, 0x088F824Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FB74u) goto L_0890FB74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FB74: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9210,8 +11633,21 @@ L_0890FB74: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0890FB88u); aot_gpr_5 = (aot_gpr_29 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 833u, 0x0890FB88u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FB88u) goto L_0890FB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FB88: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9229,8 +11665,21 @@ L_0890FB88: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0890FB9Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(212)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 834u, 0x0890FB9Cu, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FB9Cu) goto L_0890FB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FB9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(144), 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(148), 0u); @@ -9295,8 +11744,21 @@ L_0890FC40: aot_gpr_5 = (aot_gpr_5 | 4u); aot_gpr_31 = (0x0890FC60u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(180), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 839u, 0x0890FC60u, 0x08A2F9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 583u, 0x08A2F9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FC60u) goto L_0890FC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FC60: aot_gpr_4 = (2235u << 16u); ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(36)))))); @@ -9314,8 +11776,8 @@ L_0890FC60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FC94: @@ -9336,8 +11798,21 @@ L_0890FCB4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890FCC0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 842u, 0x0890FCC0u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FCC0u) goto L_0890FCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FCC0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2192), aot_gpr_16); { std::uint32_t aot_run_words[3]{}; @@ -9348,8 +11823,8 @@ L_0890FCC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FCD8: @@ -9393,8 +11868,8 @@ L_0890FD0C: goto L_0890FD14; L_0890FD14: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FD1C: @@ -9418,14 +11893,27 @@ L_0890FD34: L_0890FD3C: aot_gpr_31 = (0x0890FD44u); aot_gpr_4 = (aot_gpr_4 + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 852u, 0x0890FD44u, 0x08A9F908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 563u, 0x08A9F908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FD44u) goto L_0890FD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FD44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FD50: @@ -9465,8 +11953,21 @@ L_0890FD7C: L_0890FD84: aot_gpr_31 = (0x0890FD8Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 858u, 0x0890FD8Cu, 0x08A9FCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 604u, 0x08A9FCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FD8Cu) goto L_0890FD8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FD8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9485,8 +11986,21 @@ L_0890FD9C: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890FDA8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 861u, 0x0890FDA8u, 0x08978D08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 99u, 0x08978D08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FDA8u) goto L_0890FDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FDA8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9501,8 +12015,8 @@ L_0890FDB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FDC0: @@ -9542,8 +12056,21 @@ L_0890FDEC: L_0890FDF4: aot_gpr_31 = (0x0890FDFCu); aot_gpr_4 = (aot_gpr_4 + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 869u, 0x0890FDFCu, 0x08A9FCE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 609u, 0x08A9FCE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FDFCu) goto L_0890FDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FDFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9562,8 +12089,21 @@ L_0890FE0C: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0890FE18u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 872u, 0x0890FE18u, 0x08978DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 108u, 0x08978DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FE18u) goto L_0890FE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FE18: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9578,8 +12118,8 @@ L_0890FE24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FE30: @@ -9598,8 +12138,21 @@ L_0890FE48: aot_gpr_4 = (aot_gpr_4 + static_cast(864)); aot_gpr_31 = (0x0890FE54u); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 877u, 0x0890FE54u, 0x08A9F948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 565u, 0x08A9F948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FE54u) goto L_0890FE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FE54: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -9640,8 +12193,8 @@ L_0890FEC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FED0: @@ -9660,8 +12213,21 @@ L_0890FEE8: aot_gpr_4 = (aot_gpr_4 + static_cast(864)); aot_gpr_31 = (0x0890FEF4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 882u, 0x0890FEF4u, 0x08A9F948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 565u, 0x08A9F948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FEF4u) goto L_0890FEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FEF4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9729,29 +12295,29 @@ L_0890FF44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FF54: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1132), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FF5C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1132))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FF64: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1032), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0890FF6C: @@ -9763,8 +12329,21 @@ L_0890FF6C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x0890FF90u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 889u, 0x0890FF90u, 0x08912938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 648u, 0x08912938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FF90u) goto L_0890FF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FF90: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9817,15 +12396,41 @@ L_0890FFC8: L_0890FFCC: aot_gpr_31 = (0x0890FFD4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 897u, 0x0890FFD4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FFD4u) goto L_0890FFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FFD4: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2192))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0890FFE4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0066->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0066_entry, 898u, 0x0890FFE4u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0890FFE4u) goto L_0890FFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0890FFE4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2244))); aot_fpr_12 = std::bit_cast(0u); diff --git a/profiles/vcs/generated/generated_unit_0067.cpp b/profiles/vcs/generated/generated_unit_0067.cpp index be17a9c..f29ebfc 100644 --- a/profiles/vcs/generated/generated_unit_0067.cpp +++ b/profiles/vcs/generated/generated_unit_0067.cpp @@ -31,6 +31,129 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0067[59] = { 531u, 540u, 557u, 564u, 575u, 588u, 602u, 617u, 627u, 645u, 664u, 679u, 689u, 703u, 713u, 730u, 744u, 760u, 774u, 788u, 800u, 817u, 833u, 840u, 846u, 847u, 852u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0067[3758] = { + 1u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 0u, 0u, 5u, 0u, 6u, 0u, 7u, 0u, 8u, 9u, 0u, 0u, 10u, 0u, 0u, + 0u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 12u, 0u, 13u, 0u, 0u, 14u, 0u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 20u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 22u, + 0u, 23u, 0u, 24u, 0u, 25u, 26u, 0u, 0u, 27u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, 0u, 30u, 0u, 0u, 0u, 31u, 0u, + 32u, 0u, 0u, 33u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, 38u, + 0u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 40u, 0u, 0u, 41u, 0u, 42u, 0u, 43u, 0u, 0u, 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, + 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 47u, 0u, 48u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 52u, 0u, 53u, + 0u, 0u, 54u, 0u, 0u, 55u, 0u, 56u, 0u, 0u, 57u, 0u, 58u, 0u, 59u, 0u, 0u, 0u, 0u, 60u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 62u, 0u, 0u, + 63u, 0u, 64u, 0u, 65u, 0u, 0u, 66u, 0u, 67u, 0u, 68u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, 71u, 0u, 0u, 72u, 0u, 73u, + 0u, 74u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 77u, 0u, 78u, 0u, 0u, 79u, 0u, 80u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 82u, + 0u, 83u, 84u, 0u, 85u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 0u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 93u, 0u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 0u, + 0u, 95u, 0u, 0u, 0u, 96u, 0u, 97u, 0u, 0u, 0u, 0u, 0u, 98u, 0u, 0u, 99u, 0u, 0u, 100u, 0u, 101u, 0u, 102u, 0u, 103u, 0u, 0u, 104u, 0u, 105u, 0u, + 106u, 0u, 0u, 107u, 0u, 108u, 0u, 109u, 0u, 0u, 110u, 0u, 0u, 111u, 0u, 112u, 0u, 113u, 0u, 114u, 0u, 0u, 115u, 0u, 116u, 117u, 0u, 118u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 119u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 122u, 0u, 123u, 124u, 0u, 0u, 0u, 0u, 125u, + 0u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 127u, 128u, 0u, 129u, 0u, 0u, 130u, 0u, 0u, 0u, 131u, 132u, 0u, 133u, 0u, 0u, 134u, 0u, + 0u, 135u, 0u, 136u, 0u, 0u, 0u, 137u, 0u, 0u, 0u, 138u, 0u, 0u, 0u, 0u, 139u, 140u, 141u, 0u, 142u, 0u, 0u, 143u, 0u, 0u, 144u, 0u, 145u, 0u, 0u, 146u, + 0u, 0u, 147u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 150u, 0u, 0u, 0u, 0u, 0u, 151u, 0u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 0u, 0u, + 153u, 0u, 0u, 154u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 155u, 0u, 0u, 0u, 156u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 157u, 0u, 0u, 158u, 0u, + 159u, 0u, 160u, 0u, 161u, 0u, 162u, 0u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 164u, 0u, 0u, 165u, 0u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, 0u, 167u, 0u, 168u, + 0u, 0u, 0u, 0u, 0u, 169u, 0u, 170u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 172u, 0u, 173u, 0u, 174u, 0u, 0u, 175u, 0u, 176u, 0u, 177u, 0u, 178u, 179u, + 0u, 180u, 0u, 181u, 182u, 0u, 0u, 183u, 0u, 184u, 0u, 185u, 0u, 0u, 186u, 0u, 187u, 0u, 0u, 0u, 0u, 188u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 189u, 0u, 190u, + 0u, 191u, 0u, 0u, 192u, 0u, 193u, 0u, 0u, 0u, 0u, 194u, 0u, 0u, 195u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 0u, 197u, 0u, 198u, 0u, 0u, 0u, 0u, 0u, 199u, + 0u, 200u, 0u, 201u, 0u, 0u, 0u, 202u, 0u, 203u, 0u, 0u, 0u, 204u, 0u, 0u, 205u, 206u, 0u, 207u, 208u, 0u, 0u, 209u, 0u, 210u, 0u, 0u, 0u, 0u, 0u, 0u, + 211u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 213u, 0u, 0u, 0u, 214u, 0u, 0u, 0u, 215u, 0u, 216u, 217u, 0u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 220u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 224u, 0u, + 225u, 0u, 0u, 0u, 226u, 0u, 227u, 0u, 228u, 0u, 0u, 229u, 0u, 230u, 0u, 0u, 0u, 231u, 232u, 0u, 233u, 0u, 234u, 0u, 0u, 0u, 235u, 236u, 0u, 237u, 0u, 238u, + 0u, 0u, 0u, 239u, 0u, 0u, 240u, 0u, 0u, 241u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 0u, 244u, + 0u, 0u, 0u, 245u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 247u, 0u, 0u, 0u, 248u, 0u, 0u, 0u, 249u, 0u, 0u, 0u, 250u, 0u, 0u, 0u, 251u, 0u, 0u, 0u, 252u, + 0u, 0u, 0u, 253u, 0u, 0u, 0u, 254u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 256u, 0u, 257u, 0u, 258u, 0u, 259u, 0u, 260u, 0u, 261u, 0u, 262u, 263u, 0u, 0u, 0u, + 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 0u, 266u, 0u, 267u, 0u, 268u, 0u, 0u, 269u, 0u, 0u, 270u, 0u, 0u, 0u, 271u, 0u, 272u, + 0u, 273u, 0u, 274u, 0u, 275u, 0u, 0u, 0u, 276u, 0u, 0u, 277u, 0u, 0u, 278u, 0u, 279u, 0u, 280u, 0u, 281u, 0u, 282u, 0u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, + 0u, 0u, 0u, 284u, 0u, 285u, 0u, 286u, 287u, 0u, 288u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 0u, 290u, 0u, 291u, 0u, 292u, 0u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, + 0u, 0u, 0u, 294u, 0u, 0u, 0u, 295u, 0u, 296u, 0u, 0u, 0u, 297u, 0u, 298u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 300u, 0u, 301u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 303u, 0u, 304u, 0u, 305u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 306u, 0u, 0u, 307u, 0u, 0u, 308u, 0u, + 309u, 310u, 0u, 0u, 311u, 0u, 312u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, 0u, 0u, 315u, 0u, 316u, 0u, 317u, 0u, 318u, 0u, 0u, 319u, + 0u, 0u, 0u, 0u, 0u, 0u, 320u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 325u, 0u, 0u, 326u, 0u, 0u, 0u, + 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, 0u, 329u, 0u, 0u, 0u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 332u, + 0u, 0u, 0u, 0u, 333u, 0u, 0u, 0u, 334u, 0u, 0u, 335u, 0u, 0u, 336u, 0u, 0u, 0u, 337u, 0u, 338u, 0u, 339u, 0u, 0u, 340u, 341u, 0u, 342u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 343u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 346u, 0u, 0u, + 347u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 349u, 0u, 350u, 0u, 0u, 351u, 0u, 352u, 353u, 0u, 0u, 0u, + 354u, 0u, 0u, 355u, 0u, 0u, 356u, 0u, 357u, 0u, 358u, 0u, 359u, 0u, 360u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 364u, 365u, 0u, 0u, + 0u, 0u, 0u, 366u, 0u, 0u, 367u, 0u, 368u, 0u, 369u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 371u, + 0u, 372u, 0u, 0u, 0u, 373u, 0u, 374u, 0u, 0u, 375u, 0u, 0u, 376u, 0u, 377u, 378u, 0u, 0u, 0u, 0u, 379u, 0u, 0u, 380u, 0u, 381u, 0u, 382u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 384u, 0u, 0u, 385u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 386u, 0u, 387u, 0u, 0u, 0u, 388u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 0u, 390u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 392u, 0u, 0u, 0u, 393u, 0u, 394u, 0u, 395u, + 0u, 396u, 0u, 397u, 0u, 398u, 0u, 399u, 0u, 400u, 0u, 401u, 402u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, + 405u, 0u, 0u, 406u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 408u, 0u, 0u, 409u, 0u, 0u, 0u, 0u, 410u, 0u, 411u, 0u, 412u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 416u, 0u, 0u, + 0u, 417u, 0u, 0u, 418u, 0u, 419u, 0u, 420u, 0u, 0u, 0u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 0u, 0u, 422u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 423u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, 0u, 0u, 0u, 427u, + 0u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, + 0u, 0u, 434u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 437u, 0u, 438u, 0u, 0u, 439u, 0u, 440u, 0u, 441u, 0u, 0u, 0u, 442u, 0u, 0u, 0u, + 0u, 0u, 443u, 0u, 0u, 444u, 0u, 0u, 445u, 0u, 0u, 446u, 0u, 0u, 447u, 0u, 0u, 448u, 0u, 0u, 0u, 449u, 0u, 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 451u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, 0u, 453u, 0u, 0u, 0u, 454u, 0u, 0u, 455u, 0u, 456u, 0u, 0u, 0u, 457u, 0u, 0u, 0u, + 0u, 0u, 458u, 0u, 0u, 0u, 0u, 0u, 0u, 459u, 0u, 0u, 0u, 0u, 460u, 0u, 0u, 0u, 461u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, 464u, 0u, 0u, + 0u, 465u, 0u, 466u, 0u, 467u, 0u, 468u, 0u, 0u, 469u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 473u, 474u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 0u, 0u, 476u, 0u, 0u, 0u, 477u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 480u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, 0u, 482u, 0u, 483u, 0u, 484u, 485u, 0u, 486u, 0u, 0u, 0u, 487u, 488u, 0u, 489u, 0u, 490u, 0u, 491u, + 492u, 0u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, 0u, 494u, 0u, 0u, 0u, 495u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 497u, 498u, 499u, 0u, 500u, 501u, 0u, 502u, 0u, + 503u, 0u, 504u, 505u, 0u, 506u, 0u, 507u, 0u, 508u, 0u, 509u, 0u, 0u, 0u, 0u, 510u, 0u, 0u, 0u, 511u, 0u, 512u, 0u, 0u, 0u, 0u, 513u, 0u, 514u, 0u, 0u, + 515u, 0u, 516u, 0u, 0u, 0u, 517u, 0u, 518u, 0u, 0u, 519u, 0u, 520u, 0u, 521u, 0u, 0u, 522u, 0u, 523u, 0u, 524u, 0u, 525u, 0u, 526u, 0u, 0u, 0u, 527u, 0u, + 528u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 530u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 532u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 0u, 534u, 0u, 0u, 0u, 535u, 0u, 0u, 536u, 0u, 537u, 0u, 0u, 0u, 0u, 538u, 539u, 0u, 0u, 0u, + 0u, 0u, 0u, 540u, 0u, 0u, 0u, 0u, 0u, 0u, 541u, 0u, 542u, 0u, 543u, 0u, 0u, 0u, 544u, 0u, 0u, 545u, 0u, 546u, 0u, 0u, 0u, 0u, 547u, 548u, 0u, 0u, + 0u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, 551u, 0u, 0u, 0u, 552u, 0u, 0u, 553u, 0u, 554u, 0u, 0u, 0u, 0u, 555u, 556u, 0u, 0u, 0u, + 0u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, 0u, 0u, 558u, 0u, 0u, 0u, 0u, 0u, 0u, 559u, 0u, 0u, 560u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 562u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 563u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 564u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 565u, 0u, 0u, 0u, + 0u, 0u, 0u, 566u, 0u, 0u, 567u, 0u, 0u, 0u, 568u, 0u, 569u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 570u, 571u, 0u, 0u, 572u, 0u, 0u, 573u, 0u, 574u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 578u, 0u, 0u, 0u, 0u, 579u, 0u, + 0u, 0u, 0u, 580u, 0u, 581u, 0u, 0u, 582u, 0u, 583u, 0u, 0u, 584u, 0u, 585u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 0u, 0u, 0u, + 0u, 588u, 0u, 589u, 0u, 0u, 0u, 0u, 0u, 0u, 590u, 591u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 592u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 593u, 0u, 0u, 594u, 0u, 0u, 0u, 595u, 0u, 0u, 0u, 596u, 0u, 0u, 597u, 0u, 598u, 0u, 599u, 0u, 0u, 600u, 0u, 601u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 602u, 0u, 0u, 603u, 0u, 604u, 0u, 605u, 0u, 606u, 0u, 607u, 0u, 0u, 0u, 0u, 608u, 0u, 0u, 0u, 0u, 609u, 0u, 0u, 610u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 611u, 0u, 0u, 0u, 612u, 0u, 613u, 0u, 0u, 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 0u, 0u, 616u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 617u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 620u, 0u, 0u, 0u, 0u, + 621u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 623u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 624u, 0u, 625u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 627u, 0u, 0u, 0u, 0u, 0u, 0u, 628u, 0u, 0u, 0u, 0u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 631u, 0u, 0u, 0u, 632u, 0u, 633u, 0u, + 634u, 0u, 635u, 0u, 0u, 636u, 0u, 637u, 638u, 0u, 0u, 639u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 640u, 0u, 0u, 641u, 0u, 642u, 0u, 643u, 0u, 644u, 0u, + 645u, 0u, 0u, 0u, 0u, 0u, 0u, 646u, 647u, 0u, 0u, 0u, 0u, 0u, 648u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 649u, 0u, 0u, 650u, 0u, 651u, 0u, 652u, + 0u, 653u, 0u, 654u, 0u, 0u, 0u, 655u, 0u, 0u, 656u, 657u, 0u, 658u, 0u, 659u, 0u, 660u, 0u, 0u, 0u, 661u, 662u, 0u, 0u, 0u, 0u, 0u, 663u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 664u, 0u, 0u, 665u, 0u, 666u, 0u, 667u, 0u, 668u, 0u, 669u, 0u, 0u, 0u, 670u, 671u, 0u, 0u, 0u, 0u, 0u, 672u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 673u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 674u, 0u, 675u, 0u, 676u, 0u, 677u, 0u, 678u, 0u, 0u, + 679u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 682u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 683u, 0u, 0u, 0u, 684u, 0u, 0u, 0u, 0u, 685u, 0u, 0u, 0u, 0u, 686u, 0u, 687u, 0u, 0u, 0u, 0u, 688u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 689u, 0u, 0u, 690u, 0u, 691u, 0u, 692u, 0u, 693u, 0u, 0u, 0u, 694u, 0u, 695u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 696u, 0u, + 0u, 697u, 0u, 0u, 0u, 698u, 0u, 0u, 0u, 0u, 0u, 0u, 699u, 0u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 701u, 0u, 0u, 0u, 0u, 702u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 703u, 0u, 0u, 0u, 0u, 0u, 704u, 0u, 0u, 0u, 0u, 0u, 705u, 0u, 0u, 0u, 0u, 0u, 706u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 707u, 0u, 0u, 0u, 0u, 708u, 0u, 709u, 0u, 710u, 0u, 711u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 713u, 0u, 0u, 0u, 714u, 0u, 715u, 0u, 0u, 0u, 0u, 716u, 0u, 717u, 0u, 0u, 718u, 0u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 720u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 721u, 0u, 0u, 722u, 0u, 723u, 0u, 0u, 0u, 0u, 724u, 0u, 0u, 0u, 0u, 0u, 0u, 725u, 0u, 726u, 727u, 0u, 728u, 0u, 729u, + 0u, 730u, 0u, 0u, 0u, 731u, 0u, 732u, 0u, 0u, 0u, 0u, 0u, 0u, 733u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 734u, 735u, 0u, 736u, 0u, 0u, + 0u, 737u, 0u, 0u, 738u, 739u, 740u, 0u, 0u, 0u, 0u, 0u, 741u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 742u, 0u, 0u, 743u, 0u, 0u, 0u, 0u, + 0u, 744u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 745u, 0u, 0u, 0u, 0u, 0u, 746u, 0u, 0u, 0u, 0u, 747u, 0u, 0u, 0u, 748u, 749u, 0u, 750u, 0u, 751u, 0u, 752u, + 0u, 753u, 0u, 754u, 0u, 0u, 755u, 0u, 0u, 0u, 0u, 0u, 756u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 757u, 0u, 0u, 0u, 0u, 0u, 758u, 0u, 0u, 759u, 0u, 0u, + 0u, 760u, 0u, 0u, 761u, 0u, 0u, 0u, 762u, 0u, 0u, 0u, 763u, 0u, 764u, 0u, 765u, 0u, 0u, 766u, 0u, 0u, 0u, 0u, 0u, 767u, 0u, 0u, 0u, 0u, 0u, 768u, + 0u, 0u, 0u, 0u, 0u, 0u, 769u, 0u, 0u, 0u, 0u, 0u, 770u, 0u, 771u, 0u, 0u, 0u, 0u, 0u, 772u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 0u, 0u, 0u, + 0u, 774u, 0u, 0u, 0u, 0u, 0u, 0u, 775u, 0u, 0u, 0u, 0u, 0u, 0u, 776u, 0u, 777u, 0u, 0u, 0u, 0u, 0u, 0u, 778u, 0u, 0u, 0u, 0u, 779u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 780u, 0u, 0u, 0u, 781u, 0u, 782u, 0u, 783u, 0u, 0u, 784u, 0u, 0u, 0u, 785u, 0u, 0u, 786u, 0u, 0u, 0u, 787u, 0u, + 788u, 0u, 789u, 0u, 0u, 0u, 790u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 791u, 0u, 792u, 0u, 0u, + 0u, 793u, 0u, 794u, 0u, 795u, 0u, 796u, 0u, 797u, 0u, 798u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 799u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 800u, 0u, 0u, 0u, 801u, 0u, 0u, 802u, 0u, 803u, 0u, 0u, 0u, 804u, 0u, 0u, 805u, 0u, 0u, 0u, 0u, 0u, 0u, 806u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 807u, 0u, 0u, 808u, 0u, 809u, 0u, 810u, 0u, 811u, 812u, 0u, 813u, 0u, 0u, 814u, 0u, 0u, 0u, 0u, 0u, 815u, 0u, 0u, 0u, 816u, + 0u, 0u, 817u, 0u, 0u, 0u, 0u, 818u, 0u, 819u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 820u, 0u, 0u, 821u, 0u, 0u, 822u, 0u, + 0u, 823u, 0u, 0u, 824u, 825u, 0u, 826u, 0u, 0u, 0u, 0u, 0u, 827u, 0u, 828u, 0u, 0u, 829u, 0u, 0u, 0u, 830u, 0u, 0u, 0u, 0u, 0u, 831u, 0u, 832u, 0u, + 0u, 0u, 0u, 0u, 833u, 0u, 0u, 0u, 0u, 0u, 834u, 0u, 835u, 0u, 0u, 0u, 0u, 0u, 836u, 837u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 838u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 839u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 840u, 0u, 841u, 0u, 0u, 0u, 0u, 0u, 842u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 843u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 844u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 845u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 846u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 847u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 848u, + 0u, 0u, 0u, 0u, 849u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 850u, 0u, 0u, 851u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 852u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 853u, 0u, 0u, 854u, 0u, 0u, 855u, 0u, 0u, 856u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 857u, 0u, 0u, 0u, 0u, 858u, +}; void recomp_unit_0067_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,31,29,6,16 fprs=12,13,20,14 gpr_occ=4420 fpr_occ=444 gpr_total=5974 fpr_total=506 @@ -57,18 +180,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08910000u; - entry_id = 0u; - if (entry_delta < 15032u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0067[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0067[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 15032u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0067[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08910000; @@ -935,6 +1048,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08910000u; + if (local_delta_v813 >= 15032u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -962,8 +1099,8 @@ L_08910004: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910020: @@ -990,8 +1127,21 @@ L_08910034: L_0891004C: aot_gpr_31 = (0x08910054u); aot_gpr_4 = (aot_gpr_4 + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 6u, 0x08910054u, 0x08A9FD14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 614u, 0x08A9FD14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910054u) goto L_08910054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910054: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1014,8 +1164,8 @@ L_08910068: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910074: @@ -1036,8 +1186,21 @@ L_08910090: aot_gpr_4 = (aot_gpr_5 + static_cast(864)); aot_gpr_31 = (0x089100A0u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 12u, 0x089100A0u, 0x08A9FD80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 621u, 0x08A9FD80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089100A0u) goto L_089100A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089100A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1065,8 +1228,8 @@ L_089100B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089100C0: @@ -1086,8 +1249,21 @@ L_089100DC: aot_gpr_4 = (aot_gpr_4 + static_cast(864)); aot_gpr_31 = (0x089100E8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 17u, 0x089100E8u, 0x08A9FD80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 621u, 0x08A9FD80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089100E8u) goto L_089100E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089100E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -1123,8 +1299,8 @@ L_08910140: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910150: @@ -1151,8 +1327,21 @@ L_08910164: L_0891017C: aot_gpr_31 = (0x08910184u); aot_gpr_4 = (aot_gpr_4 + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 23u, 0x08910184u, 0x08A9FD14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 614u, 0x08A9FD14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910184u) goto L_08910184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910184: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1175,15 +1364,15 @@ L_08910198: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089101A4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1128))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089101AC: @@ -1195,8 +1384,8 @@ L_089101AC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089101CC: @@ -1217,8 +1406,21 @@ L_089101E8: aot_gpr_4 = (aot_gpr_5 + static_cast(864)); aot_gpr_31 = (0x089101F8u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 31u, 0x089101F8u, 0x08A9F948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 565u, 0x08A9F948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089101F8u) goto L_089101F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089101F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1246,8 +1448,8 @@ L_0891020C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910218: @@ -1272,8 +1474,21 @@ L_08910218: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08910244u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 35u, 0x08910244u, 0x0890F644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 778u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 778u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 778u, 0x0890F644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910244u) goto L_08910244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910244: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4199))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1317,14 +1532,40 @@ L_08910294: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089102A4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 40u, 0x089102A4u, 0x08A9F948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 565u, 0x08A9F948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089102A4u) goto L_089102A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089102A4: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089102B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 41u, 0x089102B0u, 0x08A9FD80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 621u, 0x08A9FD80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089102B0u) goto L_089102B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089102B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1335,8 +1576,21 @@ L_089102B0: L_089102B8: aot_gpr_31 = (0x089102C0u); aot_gpr_4 = (ctx.gpr[17] + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 43u, 0x089102C0u, 0x08A9F908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 563u, 0x08A9F908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089102C0u) goto L_089102C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089102C0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -1346,8 +1600,8 @@ L_089102C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089102D4: @@ -1386,14 +1640,27 @@ L_08910310: L_08910324: aot_gpr_31 = (0x0891032Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 48u, 0x0891032Cu, 0x08A9F908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 563u, 0x08A9F908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891032Cu) goto L_0891032C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891032C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910338: @@ -1402,8 +1669,8 @@ L_08910338: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1124), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891034C: @@ -1437,8 +1704,21 @@ L_0891037C: aot_gpr_5 = (aot_gpr_16 + static_cast(48)); aot_gpr_31 = (0x08910388u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 54u, 0x08910388u, 0x0890F644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 778u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 778u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 778u, 0x0890F644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910388u) goto L_08910388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910388: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1104))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1470,8 +1750,21 @@ L_089103A8: L_089103B0: aot_gpr_31 = (0x089103B8u); aot_gpr_4 = (ctx.gpr[17] + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 59u, 0x089103B8u, 0x08A9F908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 563u, 0x08A9F908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089103B8u) goto L_089103B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089103B8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1481,8 +1774,8 @@ L_089103B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089103CC: @@ -1543,8 +1836,21 @@ L_0891041C: L_08910424: aot_gpr_31 = (0x0891042Cu); aot_gpr_4 = (ctx.gpr[17] + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 68u, 0x0891042Cu, 0x08A9F908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 563u, 0x08A9F908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891042Cu) goto L_0891042C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891042C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1554,8 +1860,8 @@ L_0891042C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910440: @@ -1607,8 +1913,8 @@ L_08910484: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910498: @@ -1660,8 +1966,8 @@ L_089104DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089104F0: @@ -1685,8 +1991,8 @@ L_08910504: goto L_08910508; L_08910508: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910510: @@ -1717,8 +2023,8 @@ L_0891051C: goto L_08910530; L_08910530: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910538: @@ -1738,8 +2044,21 @@ L_08910554: aot_gpr_4 = (aot_gpr_4 + static_cast(864)); aot_gpr_31 = (0x08910560u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 90u, 0x08910560u, 0x08A9F948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 565u, 0x08A9F948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910560u) goto L_08910560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910560: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -1768,8 +2087,21 @@ L_0891059C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); aot_gpr_31 = (0x089105B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(908))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 92u, 0x089105B4u, 0x08905E50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 398u, 0x08905E50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089105B4u) goto L_089105B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089105B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -1790,8 +2122,8 @@ L_089105D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089105E8: @@ -1812,8 +2144,21 @@ L_08910604: aot_gpr_4 = (aot_gpr_5 + static_cast(864)); aot_gpr_31 = (0x08910614u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 96u, 0x08910614u, 0x08A9F948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 565u, 0x08A9F948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910614u) goto L_08910614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910614: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1828,14 +2173,27 @@ L_0891061C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1032))); aot_gpr_31 = (0x08910634u); aot_gpr_6 = (aot_gpr_6 >> 22u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 98u, 0x08910634u, 0x08978C50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 98u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 98u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 98u, 0x08978C50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910634u) goto L_08910634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910634: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910640: @@ -1859,8 +2217,8 @@ L_08910654: goto L_0891065C; L_0891065C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910664: @@ -1880,8 +2238,8 @@ L_08910670: } L_08910678: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910680: @@ -1901,8 +2259,8 @@ L_0891068C: } L_08910694: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891069C: @@ -1964,8 +2322,8 @@ L_089106E0: goto L_089106E4; L_089106E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089106EC: @@ -2017,8 +2375,21 @@ L_08910720: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08910750u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 121u, 0x08910750u, 0x089798CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 219u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 219u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 219u, 0x089798CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910750u) goto L_08910750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910750: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1032))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2047,8 +2418,8 @@ L_08910768: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891077C: @@ -2082,8 +2453,8 @@ L_089107B8: goto L_089107BC; L_089107BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089107C4: @@ -2109,8 +2480,8 @@ L_089107E0: goto L_089107E4; L_089107E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089107EC: @@ -2176,8 +2547,8 @@ L_08910844: goto L_08910848; L_08910848: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910850: @@ -2206,8 +2577,8 @@ L_0891085C: goto L_08910868; L_08910868: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910870: @@ -2225,8 +2596,8 @@ L_0891087C: goto L_08910888; L_08910888: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910890: @@ -2265,8 +2636,8 @@ L_089108D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089108E8: @@ -2302,8 +2673,8 @@ L_08910934: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910944: @@ -2326,8 +2697,21 @@ L_0891096C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(864)); aot_gpr_31 = (0x08910978u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 158u, 0x08910978u, 0x08A9FB14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 586u, 0x08A9FB14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910978u) goto L_08910978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910978: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2352,8 +2736,21 @@ L_08910988: L_08910990: aot_gpr_31 = (0x08910998u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 162u, 0x08910998u, 0x08A9FC1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 598u, 0x08A9FC1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910998u) goto L_08910998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910998: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_12)) ? 0x00800000u : 0u); @@ -2415,8 +2812,8 @@ L_089109FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910A14: @@ -2429,8 +2826,8 @@ L_08910A14: } L_08910A1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910A24: @@ -2471,8 +2868,21 @@ L_08910A54: } L_08910A60: aot_gpr_31 = (0x08910A68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 176u, 0x08910A68u, 0x08B00578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 78u, 0x08B00578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910A68u) goto L_08910A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910A68: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); @@ -2484,8 +2894,21 @@ L_08910A68: L_08910A70: aot_gpr_31 = (0x08910A78u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 178u, 0x08910A78u, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910A78u) goto L_08910A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910A78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); goto L_08910A7C; @@ -2547,8 +2970,8 @@ L_08910AC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910AD4: @@ -2600,16 +3023,16 @@ L_08910B18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910B2C: ctx.gpr[2] = (aot_gpr_4 ^ 10u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910B38: @@ -2646,8 +3069,8 @@ L_08910B64: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12904))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910B7C: @@ -2671,8 +3094,21 @@ L_08910B8C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08910B9Cu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 202u, 0x08910B9Cu, 0x08B00A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 169u, 0x08B00A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910B9Cu) goto L_08910B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910B9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2716,14 +3152,14 @@ L_08910BD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910BDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910BE4: @@ -2734,8 +3170,21 @@ L_08910BE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_31); aot_gpr_31 = (0x08910C00u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 211u, 0x08910C00u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910C00u) goto L_08910C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910C00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(704))); ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -2771,8 +3220,21 @@ L_08910C30: L_08910C40: aot_gpr_31 = (0x08910C48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 216u, 0x08910C48u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910C48u) goto L_08910C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910C48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), ctx.gpr[17]); goto L_08910C4C; @@ -2783,8 +3245,21 @@ L_08910C4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08910C64u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 218u, 0x08910C64u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910C64u) goto L_08910C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910C64: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2827,8 +3302,21 @@ L_08910CA4: L_08910CB0: aot_gpr_31 = (0x08910CB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 221u, 0x08910CB8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910CB8u) goto L_08910CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910CB8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -2838,8 +3326,8 @@ L_08910CB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910CCC: @@ -2866,15 +3354,41 @@ L_08910CEC: } L_08910CF8: aot_gpr_31 = (0x08910D00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 225u, 0x08910D00u, 0x08B00578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 78u, 0x08B00578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910D00u) goto L_08910D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910D00: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08910D10u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 226u, 0x08910D10u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910D10u) goto L_08910D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910D10: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2885,8 +3399,21 @@ L_08910D10: L_08910D18: aot_gpr_31 = (0x08910D20u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 228u, 0x08910D20u, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910D20u) goto L_08910D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910D20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_31 = (0x08910D2Cu); @@ -2906,8 +3433,21 @@ L_08910D34: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08910D44u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 231u, 0x08910D44u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910D44u) goto L_08910D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910D44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); goto L_08910D48; @@ -2929,8 +3469,21 @@ L_08910D58: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08910D68u); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 235u, 0x08910D68u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910D68u) goto L_08910D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910D68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); goto L_08910D6C; @@ -2951,14 +3504,40 @@ L_08910D7C: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08910D8Cu); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 239u, 0x08910D8Cu, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910D8Cu) goto L_08910D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910D8C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08910D98u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 240u, 0x08910D98u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910D98u) goto L_08910D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910D98: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08910DA4u); @@ -2973,8 +3552,8 @@ L_08910DA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910DB8: @@ -3114,8 +3693,21 @@ L_08910EAC: } L_08910EBC: aot_gpr_31 = (0x08910EC4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 257u, 0x08910EC4u, 0x08A40D58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 161u, 0x08A40D58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910EC4u) goto L_08910EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910EC4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3162,8 +3754,8 @@ L_08910EF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08910F00: @@ -3237,8 +3829,21 @@ L_08910F74: L_08910F7C: aot_gpr_31 = (0x08910F84u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 273u, 0x08910F84u, 0x08A06474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 575u, 0x08A06474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08910F84u) goto L_08910F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08910F84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(695), static_cast(ctx.gpr[2])); @@ -3395,8 +4000,8 @@ L_08911074: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891108C: @@ -3424,8 +4029,8 @@ L_089110A4: goto L_089110B4; L_089110B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089110BC: @@ -3447,13 +4052,39 @@ L_089110E0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089110ECu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 300u, 0x089110ECu, 0x08AE31F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 865u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 865u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 865u, 0x08AE31F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089110ECu) goto L_089110EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089110EC: aot_gpr_31 = (0x089110F4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 301u, 0x089110F4u, 0x08AE34B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 893u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 893u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 893u, 0x08AE34B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089110F4u) goto L_089110F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089110F4: aot_fpr_12 = aot_fpr_20 / ctx.fpr[0]; aot_gpr_6 = (16512u << 16u); @@ -3465,8 +4096,21 @@ L_089110F4: aot_gpr_6 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0891111Cu); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(891), static_cast(aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 302u, 0x0891111Cu, 0x08AE3358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 875u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 875u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 875u, 0x08AE3358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891111Cu) goto L_0891111C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891111C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -3476,22 +4120,22 @@ L_0891111C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911130: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2248))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911138: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2248), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911140: @@ -3501,8 +4145,21 @@ L_08911140: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08911160u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 306u, 0x08911160u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911160u) goto L_08911160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911160: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3530,8 +4187,21 @@ L_08911184: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(50)))))); aot_gpr_31 = (0x08911190u); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(48)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 311u, 0x08911190u, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911190u) goto L_08911190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911190: { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -3612,15 +4282,15 @@ L_089111FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911218: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2116))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911220: @@ -3630,8 +4300,21 @@ L_08911220: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08911238u); aot_gpr_16 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 322u, 0x08911238u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911238u) goto L_08911238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911238: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3673,8 +4356,8 @@ L_08911270: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911284: @@ -3736,8 +4419,8 @@ L_089112FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911310: @@ -3745,8 +4428,8 @@ L_08911310: ctx.gpr[2] = (aot_gpr_4 & 2u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911320: @@ -3799,8 +4482,8 @@ L_08911364: goto L_08911368; L_08911368: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911370: @@ -3913,8 +4596,8 @@ L_08911480: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911494: @@ -3938,8 +4621,21 @@ L_08911494: L_089114D0: aot_gpr_31 = (0x089114D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 350u, 0x089114D8u, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089114D8u) goto L_089114D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089114D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -3959,8 +4655,21 @@ L_089114F0: aot_gpr_6 = (0u | 89u); aot_gpr_31 = (0x08911500u); ctx.gpr[7] = (0u | 414u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 354u, 0x08911500u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911500u) goto L_08911500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911500: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891150Cu); @@ -4034,8 +4743,21 @@ L_08911574: aot_gpr_6 = (0u | 89u); aot_gpr_31 = (0x0891158Cu); ctx.gpr[7] = (0u | 414u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 366u, 0x0891158Cu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891158Cu) goto L_0891158C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891158C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08911598u); @@ -4161,8 +4883,21 @@ L_08911640: aot_gpr_6 = (0u | 89u); aot_gpr_31 = (0x08911654u); ctx.gpr[7] = (0u | 413u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 379u, 0x08911654u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911654u) goto L_08911654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911654: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08911660u); @@ -4234,8 +4969,21 @@ L_089116BC: aot_fpr_12 = ctx.fpr[26] + aot_fpr_12; aot_gpr_31 = (0x089116DCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 386u, 0x089116DCu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089116DCu) goto L_089116DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089116DC: aot_gpr_31 = (0x089116E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -4296,8 +5044,8 @@ L_08911728: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911750: @@ -4385,8 +5133,8 @@ L_089117AC: goto L_089117B0; L_089117B0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089117B8: @@ -4403,8 +5151,21 @@ L_089117B8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(36), aot_run_words); } aot_gpr_31 = (0x089117F4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 404u, 0x089117F4u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089117F4u) goto L_089117F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089117F4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4476,8 +5237,21 @@ L_08911874: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08911894u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 413u, 0x08911894u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911894u) goto L_08911894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911894: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(8), ctx.gpr[20]); @@ -4492,8 +5266,21 @@ L_08911894: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089118C8u); { const float fs = aot_fpr_14; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 414u, 0x089118C8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089118C8u) goto L_089118C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089118C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(44))); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(44), std::bit_cast(aot_fpr_12)); @@ -4560,8 +5347,21 @@ L_08911938: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08911954u); ctx.gpr[7] = (0u | 152u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 422u, 0x08911954u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911954u) goto L_08911954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911954: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); @@ -4572,8 +5372,21 @@ L_08911954: aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08911978u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 423u, 0x08911978u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911978u) goto L_08911978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911978: aot_gpr_4 = (16253u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -4602,8 +5415,8 @@ L_089119A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089119D0: @@ -4622,8 +5435,8 @@ L_089119E4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12688))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089119FC: @@ -4705,8 +5518,8 @@ L_08911A74: } L_08911A88: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911A90: @@ -4765,8 +5578,8 @@ L_08911AF0: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[18]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12512))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911B08: @@ -4844,8 +5657,8 @@ L_08911B64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911B7C: @@ -4859,8 +5672,21 @@ L_08911B7C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(80), aot_run_words); } aot_gpr_31 = (0x08911BA8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-9256)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 452u, 0x08911BA8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911BA8u) goto L_08911BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911BA8: ctx.gpr[18] = (aot_gpr_29 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -4876,8 +5702,21 @@ L_08911BBC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08911BCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 454u, 0x08911BCCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911BCCu) goto L_08911BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911BCC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4888,8 +5727,21 @@ L_08911BCC: } L_08911BD8: aot_gpr_31 = (0x08911BE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 456u, 0x08911BE0u, 0x0888FEB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 620u, 0x0888FEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911BE0u) goto L_08911BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911BE0: ctx.gpr[18] = (ctx.gpr[18] + static_cast(4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -4909,8 +5761,8 @@ L_08911BF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911C08: @@ -4947,16 +5799,42 @@ L_08911C48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08911C54u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 462u, 0x08911C54u, 0x0886D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 197u, 0x0886D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911C54u) goto L_08911C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911C54: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x08911C68u); ctx.gpr[7] = (0u | 249u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 463u, 0x08911C68u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911C68u) goto L_08911C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911C68: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5012,8 +5890,21 @@ L_08911CB0: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x08911CD0u); ctx.gpr[7] = (0u | 242u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 471u, 0x08911CD0u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911CD0u) goto L_08911CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911CD0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5033,8 +5924,21 @@ L_08911CD8: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x08911D00u); ctx.gpr[7] = (0u | 235u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 473u, 0x08911D00u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911D00u) goto L_08911D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911D00: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08911D04; @@ -5085,8 +5989,8 @@ L_08911D4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911D6C: @@ -5168,8 +6072,21 @@ L_08911DE4: L_08911DEC: aot_gpr_31 = (0x08911DF4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 490u, 0x08911DF4u, 0x08B00B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 187u, 0x08B00B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911DF4u) goto L_08911DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911DF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5246,8 +6163,21 @@ L_08911E6C: L_08911E70: aot_gpr_31 = (0x08911E78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 502u, 0x08911E78u, 0x0891826Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 31u, 0x0891826Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911E78u) goto L_08911E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911E78: aot_gpr_31 = (0x08911E80u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5363,8 +6293,21 @@ L_08911F3C: aot_gpr_5 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x08911F48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 522u, 0x08911F48u, 0x08930380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 20u, 0x08930380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911F48u) goto L_08911F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911F48: aot_gpr_31 = (0x08911F50u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5411,8 +6354,8 @@ L_08911F80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08911F98: @@ -5443,8 +6386,21 @@ L_08911F98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_31 = (0x08911FECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 530u, 0x08911FECu, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08911FECu) goto L_08911FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08911FEC: aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), std::bit_cast(aot_fpr_20)); @@ -5457,8 +6413,21 @@ L_08911FEC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08912018u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 531u, 0x08912018u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912018u) goto L_08912018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912018: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5568,8 +6537,21 @@ L_089120B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089120C4u); aot_gpr_6 = (0u | 203u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 535u, 0x089120C4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089120C4u) goto L_089120C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089120C4: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -5616,8 +6598,21 @@ L_0891210C: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08912128u); ctx.gpr[7] = (0u | 203u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 541u, 0x08912128u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912128u) goto L_08912128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912128: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5637,8 +6632,21 @@ L_08912138: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08912148u); aot_gpr_6 = (0u | 202u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 544u, 0x08912148u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912148u) goto L_08912148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912148: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -5685,8 +6693,21 @@ L_08912190: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089121ACu); ctx.gpr[7] = (0u | 202u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 550u, 0x089121ACu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089121ACu) goto L_089121AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089121AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5699,8 +6720,21 @@ L_089121B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089121C4u); aot_gpr_6 = (0u | 201u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 552u, 0x089121C4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089121C4u) goto L_089121C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089121C4: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -5747,8 +6781,21 @@ L_0891220C: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08912228u); ctx.gpr[7] = (0u | 201u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 558u, 0x08912228u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912228u) goto L_08912228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912228: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); @@ -5772,8 +6819,21 @@ L_08912244: L_08912250: aot_gpr_31 = (0x08912258u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 561u, 0x08912258u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912258u) goto L_08912258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912258: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -5787,8 +6847,8 @@ L_08912258: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891227C: @@ -5819,8 +6879,21 @@ L_0891227C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_31 = (0x089122D4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 563u, 0x089122D4u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089122D4u) goto L_089122D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089122D4: ctx.fpr[24] = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), std::bit_cast(ctx.fpr[24])); @@ -5833,8 +6906,21 @@ L_089122D4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08912300u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 564u, 0x08912300u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912300u) goto L_08912300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912300: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5928,8 +7014,21 @@ L_08912370: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0891238Cu); aot_gpr_6 = (0u | 249u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 566u, 0x0891238Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891238Cu) goto L_0891238C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891238C: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -5960,8 +7059,21 @@ L_089123B0: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(32))); aot_gpr_31 = (0x089123D0u); { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 570u, 0x089123D0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089123D0u) goto L_089123D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089123D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); goto L_089123D4; @@ -5984,8 +7096,21 @@ L_089123E0: L_089123EC: aot_gpr_31 = (0x089123F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 574u, 0x089123F4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089123F4u) goto L_089123F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089123F4: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -6000,8 +7125,8 @@ L_089123F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891241C: @@ -6035,24 +7160,63 @@ L_08912454: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08912464u); aot_gpr_6 = (0u | 203u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 578u, 0x08912464u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912464u) goto L_08912464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912464: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08912478u); aot_gpr_6 = (0u | 201u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 579u, 0x08912478u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912478u) goto L_08912478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912478: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891248Cu); aot_gpr_6 = (0u | 202u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 580u, 0x0891248Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891248Cu) goto L_0891248C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891248C: { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6110,8 +7274,21 @@ L_089124E8: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08912504u); ctx.gpr[7] = (0u | 204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 588u, 0x08912504u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912504u) goto L_08912504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912504: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); @@ -6128,8 +7305,21 @@ L_0891250C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08912528u); ctx.gpr[7] = (0u | 99u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 590u, 0x08912528u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912528u) goto L_08912528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912528: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); goto L_0891252C; @@ -6150,8 +7340,8 @@ L_0891252C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08912560: @@ -6163,8 +7353,21 @@ L_08912560: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x0891258Cu); aot_gpr_6 = (0u | 235u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 593u, 0x0891258Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891258Cu) goto L_0891258C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891258C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6187,8 +7390,21 @@ L_089125A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089125B8u); aot_gpr_6 = (0u | 242u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 596u, 0x089125B8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089125B8u) goto L_089125B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089125B8: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 != 0u) { @@ -6284,8 +7500,21 @@ L_08912638: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0891264Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 608u, 0x0891264Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891264Cu) goto L_0891264C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891264C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(724))); @@ -6332,8 +7561,21 @@ L_089126A4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089126B8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 614u, 0x089126B8u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089126B8u) goto L_089126B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089126B8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_6 = (aot_gpr_29 | 0u); @@ -6344,8 +7586,21 @@ L_089126B8: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x089126DCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 615u, 0x089126DCu, 0x08A45338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 206u, 0x08A45338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089126DCu) goto L_089126DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089126DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (0u | 0u); @@ -6370,8 +7625,8 @@ L_089126F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08912718: @@ -6422,8 +7677,21 @@ L_0891276C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08912780u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 621u, 0x08912780u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912780u) goto L_08912780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912780: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(724))); @@ -6465,8 +7733,21 @@ L_089127CC: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089127E0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 626u, 0x089127E0u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089127E0u) goto L_089127E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089127E0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(1929)))))); aot_gpr_6 = (aot_gpr_29 | 0u); @@ -6477,8 +7758,21 @@ L_089127E0: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x08912804u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 627u, 0x08912804u, 0x08A45338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 206u, 0x08A45338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912804u) goto L_08912804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912804: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_5 = (0u | 0u); @@ -6502,8 +7796,8 @@ L_08912820: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891283C: @@ -6562,8 +7856,21 @@ L_08912888: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08912894u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 636u, 0x08912894u, 0x08B00A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 169u, 0x08B00A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912894u) goto L_08912894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912894: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6578,8 +7885,8 @@ L_089128A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089128AC: @@ -6654,8 +7961,8 @@ L_08912920: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08912938: @@ -6765,8 +8072,8 @@ L_089129D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089129F0: @@ -6838,8 +8145,8 @@ L_08912A58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08912A70: @@ -6999,8 +8306,21 @@ L_08912BB0: L_08912BC4: aot_gpr_31 = (0x08912BCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 687u, 0x08912BCCu, 0x08909C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 468u, 0x08909C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912BCCu) goto L_08912BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912BCC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7010,8 +8330,8 @@ L_08912BCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08912BE0: @@ -7087,21 +8407,60 @@ L_08912C44: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(472), aot_gpr_4); aot_gpr_31 = (0x08912C78u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 696u, 0x08912C78u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912C78u) goto L_08912C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912C78: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08912C84u); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 697u, 0x08912C84u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912C84u) goto L_08912C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912C84: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_6 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x08912C94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 698u, 0x08912C94u, 0x0890F6ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 789u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 789u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 789u, 0x0890F6ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912C94u) goto L_08912C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912C94: ctx.gpr[8] = (17530u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); @@ -7110,8 +8469,21 @@ L_08912C94: aot_gpr_6 = (0u | 60u); aot_gpr_31 = (0x08912CB0u); ctx.gpr[7] = (0u | 257u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 699u, 0x08912CB0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912CB0u) goto L_08912CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912CB0: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (2192u << 16u); @@ -7136,8 +8508,8 @@ L_08912CD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08912CEC: @@ -7182,8 +8554,21 @@ L_08912D4C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08912D64u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 706u, 0x08912D64u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912D64u) goto L_08912D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912D64: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(20))); aot_fpr_12 = std::bit_cast(0u); @@ -7286,8 +8671,21 @@ L_08912E00: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08912E10u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 714u, 0x08912E10u, 0x089AB048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 627u, 0x089AB048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912E10u) goto L_08912E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912E10: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7301,8 +8699,21 @@ L_08912E18: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08912E2Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 716u, 0x08912E2Cu, 0x088E43E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 36u, 0x088E43E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912E2Cu) goto L_08912E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912E2C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7314,8 +8725,21 @@ L_08912E34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1784))); aot_gpr_31 = (0x08912E40u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 718u, 0x08912E40u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912E40u) goto L_08912E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912E40: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1914))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -7340,8 +8764,8 @@ L_08912E54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08912E78: @@ -7460,8 +8884,21 @@ L_08912F38: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08912F68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 734u, 0x08912F68u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912F68u) goto L_08912F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912F68: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1744), 0u); goto L_08912F6C; @@ -7486,8 +8923,21 @@ L_08912F84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08912F90u); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 738u, 0x08912F90u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08912F90u) goto L_08912F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08912F90: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1748), 0u); goto L_08912F94; @@ -7504,8 +8954,8 @@ L_08912F98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08912FB0: @@ -7624,8 +9074,21 @@ L_0891308C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08913098u); aot_gpr_5 = (0u | 137u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 755u, 0x08913098u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913098u) goto L_08913098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913098: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7636,8 +9099,8 @@ L_08913098: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089130B0: @@ -7677,8 +9140,21 @@ L_089130F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08913104u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 760u, 0x08913104u, 0x08AD120Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 227u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 227u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 227u, 0x08AD120Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913104u) goto L_08913104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913104: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7924,8 +9400,8 @@ L_08913260: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08913274: @@ -8069,8 +9545,21 @@ L_08913318: L_0891336C: aot_gpr_31 = (0x08913374u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 792u, 0x08913374u, 0x0890FF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 886u, 0x0890FF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913374u) goto L_08913374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913374: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -8156,8 +9645,21 @@ L_089133D0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0891341Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 800u, 0x0891341Cu, 0x08976C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 607u, 0x08976C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891341Cu) goto L_0891341C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891341C: aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(906), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(904)))))); @@ -8171,8 +9673,21 @@ L_0891342C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x08913438u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 802u, 0x08913438u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913438u) goto L_08913438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913438: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8203,8 +9718,21 @@ L_0891345C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_31 = (0x08913478u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 806u, 0x08913478u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913478u) goto L_08913478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913478: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -8217,8 +9745,8 @@ L_08913478: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08913498: @@ -8257,16 +9785,16 @@ L_089134BC: goto L_089134C0; L_089134C0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089134C8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(204)))))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] & 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089134D4: @@ -8286,8 +9814,21 @@ L_089134EC: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089134FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 816u, 0x089134FCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089134FCu) goto L_089134FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089134FC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -8299,15 +9840,15 @@ L_08913508: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891351C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08913524: @@ -8403,8 +9944,21 @@ L_089135D8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089135F0u); ctx.gpr[7] = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 831u, 0x089135F0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089135F0u) goto L_089135F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089135F0: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -8431,8 +9985,21 @@ L_08913610: aot_gpr_6 = (0u | 60u); aot_gpr_31 = (0x08913628u); ctx.gpr[7] = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 834u, 0x08913628u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913628u) goto L_08913628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913628: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -8448,8 +10015,21 @@ L_08913630: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08913648u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 836u, 0x08913648u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913648u) goto L_08913648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913648: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_0891364C; @@ -8466,8 +10046,8 @@ L_0891364C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08913670: @@ -8506,8 +10086,21 @@ L_08913670: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), aot_gpr_31); aot_gpr_31 = (0x089136FCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 839u, 0x089136FCu, 0x08A696F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 258u, 0x08A696F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089136FCu) goto L_089136FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089136FC: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(23096)); @@ -8523,13 +10116,39 @@ L_089136FC: aot_gpr_4 = (ctx.gpr[22] + static_cast(816)); aot_gpr_31 = (0x08913734u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 840u, 0x08913734u, 0x089F38DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 607u, 0x089F38DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913734u) goto L_08913734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913734: aot_gpr_31 = (0x0891373Cu); aot_gpr_4 = (ctx.gpr[22] + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 841u, 0x0891373Cu, 0x08A9F784u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 557u, 0x08A9F784u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891373Cu) goto L_0891373C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891373C: aot_gpr_4 = (ctx.gpr[22] + static_cast(944)); ctx.gpr[7] = (2192u << 16u); @@ -8537,8 +10156,21 @@ L_0891373C: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08913754u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 842u, 0x08913754u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913754u) goto L_08913754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913754: ctx.gpr[21] = (ctx.gpr[22] + static_cast(1040)); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(1232), 0u); @@ -8557,8 +10189,21 @@ L_08913754: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x08913798u); aot_gpr_6 = (0u | 28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 843u, 0x08913798u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913798u) goto L_08913798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913798: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(1780)))))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]); @@ -8575,8 +10220,21 @@ L_08913798: aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(1972), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089137D4u); aot_gpr_4 = (ctx.gpr[22] + static_cast(2016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 844u, 0x089137D4u, 0x08AD9C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 482u, 0x08AD9C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089137D4u) goto L_089137D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089137D4: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(2080), 0u); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(2084), std::bit_cast(ctx.fpr[22])); @@ -8587,8 +10245,21 @@ L_089137D4: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(2236), 0u); aot_gpr_31 = (0x089137F8u); aot_gpr_4 = (ctx.gpr[22] + static_cast(2268)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 845u, 0x089137F8u, 0x08887A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 831u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 831u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 831u, 0x08887A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089137F8u) goto L_089137F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089137F8: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(2280), ctx.gpr[19]); aot_gpr_4 = (16672u << 16u); @@ -8615,8 +10286,21 @@ L_089137F8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891385Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 846u, 0x0891385Cu, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891385Cu) goto L_0891385C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891385C: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(1156), 0u); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(672), std::bit_cast(aot_fpr_20)); @@ -8750,8 +10434,21 @@ L_089139C8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089139D4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 851u, 0x089139D4u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089139D4u) goto L_089139D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089139D4: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(1248), 0u); aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(1936), static_cast(0u)); @@ -8805,8 +10502,21 @@ L_08913A54: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08913A60u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0067->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0067_entry, 855u, 0x08913A60u, 0x0890BE58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 983u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 983u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 983u, 0x0890BE58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08913A60u) goto L_08913A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08913A60: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08913A6Cu); diff --git a/profiles/vcs/generated/generated_unit_0068.cpp b/profiles/vcs/generated/generated_unit_0068.cpp index f7c54d3..b4b236a 100644 --- a/profiles/vcs/generated/generated_unit_0068.cpp +++ b/profiles/vcs/generated/generated_unit_0068.cpp @@ -839,6 +839,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08914000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1116,8 +1140,21 @@ L_08914378: aot_gpr_16 = (0u + static_cast(-9)); aot_gpr_31 = (0x089143A8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 10u, 0x089143A8u, 0x0890F2C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 734u, 0x0890F2C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089143A8u) goto L_089143A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089143A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(476))); ctx.gpr[17] = (ctx.gpr[28] + static_cast(7768)); @@ -1127,16 +1164,42 @@ L_089143A8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089143C8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 11u, 0x089143C8u, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089143C8u) goto L_089143C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089143C8: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089143DCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 12u, 0x089143DCu, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089143DCu) goto L_089143DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089143DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1360))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24276))); @@ -1150,8 +1213,21 @@ L_089143DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0891440Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 13u, 0x0891440Cu, 0x08910338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 49u, 0x08910338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891440Cu) goto L_0891440C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891440C: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(692), 0u); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(688), 0u); @@ -1203,8 +1279,21 @@ L_08914490: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089144A4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 18u, 0x089144A4u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089144A4u) goto L_089144A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089144A4: aot_gpr_4 = (17046u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1262,8 +1351,21 @@ L_08914520: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1360))); aot_gpr_31 = (0x08914558u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 23u, 0x08914558u, 0x089C8D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 238u, 0x089C8D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914558u) goto L_08914558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914558: aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(2088), static_cast(0u)); aot_gpr_4 = (0u + static_cast(-1)); @@ -1273,8 +1375,21 @@ L_08914558: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(420), 0u); aot_gpr_31 = (0x08914578u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 24u, 0x08914578u, 0x088E29B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 260u, 0x088E29B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914578u) goto L_08914578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914578: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(48)); @@ -1319,8 +1434,21 @@ L_08914594: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089145C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 26u, 0x089145C4u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089145C4u) goto L_089145C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089145C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1369,8 +1497,8 @@ L_089145F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08914630: @@ -1481,8 +1609,21 @@ L_089146C8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08914728u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 33u, 0x08914728u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914728u) goto L_08914728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914728: ctx.gpr[21] = (0u | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); @@ -1691,8 +1832,21 @@ L_08914924: L_08914934: aot_gpr_31 = (0x0891493Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 52u, 0x0891493Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891493Cu) goto L_0891493C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891493C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(48)); @@ -1819,8 +1973,21 @@ L_08914A10: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(0)))))); aot_gpr_31 = (0x08914A2Cu); ctx.gpr[23] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 67u, 0x08914A2Cu, 0x089D273Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 419u, 0x089D273Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914A2Cu) goto L_08914A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914A2C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -1880,8 +2047,21 @@ L_08914A88: aot_gpr_6 = (aot_gpr_29 + static_cast(664)); aot_gpr_31 = (0x08914A98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 74u, 0x08914A98u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914A98u) goto L_08914A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914A98: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(664))); @@ -1919,8 +2099,21 @@ L_08914AD4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08914AE4u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 79u, 0x08914AE4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914AE4u) goto L_08914AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914AE4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(665))); @@ -1942,8 +2135,21 @@ L_08914B04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08914B14u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 82u, 0x08914B14u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914B14u) goto L_08914B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914B14: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(666))); @@ -1976,8 +2182,21 @@ L_08914B58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08914B68u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 86u, 0x08914B68u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914B68u) goto L_08914B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914B68: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(667))); @@ -2051,8 +2270,21 @@ L_08914BF4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08914C18u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 94u, 0x08914C18u, 0x08906AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 590u, 0x08906AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914C18u) goto L_08914C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914C18: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(1914), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(1914))); @@ -2120,8 +2352,21 @@ L_08914C84: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08914C98u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 103u, 0x08914C98u, 0x08906AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 590u, 0x08906AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914C98u) goto L_08914C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914C98: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(1912), static_cast(0u)); goto L_08914C9C; @@ -2200,8 +2445,21 @@ L_08914D10: L_08914D24: aot_gpr_31 = (0x08914D2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 113u, 0x08914D2Cu, 0x08906858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 561u, 0x08906858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914D2Cu) goto L_08914D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914D2C: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(740))); @@ -2315,8 +2573,8 @@ L_08914DEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(816)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08914E30: @@ -2380,8 +2638,21 @@ L_08914EB0: L_08914EC0: aot_gpr_31 = (0x08914EC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 131u, 0x08914EC8u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08914EC8u) goto L_08914EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08914EC8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7588))); aot_fpr_12 = std::bit_cast(0u); @@ -2700,8 +2971,21 @@ L_08915114: L_08915124: aot_gpr_31 = (0x0891512Cu); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(311))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 166u, 0x0891512Cu, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891512Cu) goto L_0891512C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891512C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 4 ? 1u : 0u); @@ -2779,8 +3063,21 @@ L_089151A8: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x089151BCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 175u, 0x089151BCu, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089151BCu) goto L_089151BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089151BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2826,8 +3123,21 @@ L_08915204: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x08915218u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 181u, 0x08915218u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915218u) goto L_08915218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915218: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2908,8 +3218,21 @@ L_089152A4: aot_fpr_12 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x089152E4u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 189u, 0x089152E4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089152E4u) goto L_089152E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089152E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2966,8 +3289,21 @@ L_08915338: aot_fpr_12 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x08915378u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 194u, 0x08915378u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915378u) goto L_08915378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915378: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3020,16 +3356,42 @@ L_089153E4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08915400u); aot_gpr_6 = (0u | 33u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 199u, 0x08915400u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915400u) goto L_08915400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915400: ctx.gpr[21] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08915414u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 200u, 0x08915414u, 0x08904FF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 217u, 0x08904FF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915414u) goto L_08915414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915414: ctx.gpr[17] = (0u | 1u); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); @@ -3148,8 +3510,21 @@ L_089154A8: ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08915508u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 204u, 0x08915508u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915508u) goto L_08915508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915508: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3192,8 +3567,21 @@ L_08915524: ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08915584u); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 207u, 0x08915584u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915584u) goto L_08915584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915584: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1768))); aot_gpr_4 = (aot_gpr_4 < static_cast(21) ? 1u : 0u); @@ -3267,8 +3655,21 @@ L_089155DC: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08915644u); ctx.gpr[7] = (0u | 50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 214u, 0x08915644u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915644u) goto L_08915644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915644: aot_gpr_4 = (15820u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7896))); @@ -3283,8 +3684,21 @@ L_08915644: } L_08915664: aot_gpr_31 = (0x0891566Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 216u, 0x0891566Cu, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891566Cu) goto L_0891566C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891566C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3294,8 +3708,21 @@ L_0891566C: } L_08915674: aot_gpr_31 = (0x0891567Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 218u, 0x0891567Cu, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891567Cu) goto L_0891567C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891567C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3321,8 +3748,21 @@ L_08915694: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089156A8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 222u, 0x089156A8u, 0x08904E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 207u, 0x08904E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089156A8u) goto L_089156A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089156A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3369,16 +3809,42 @@ L_089156FC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08915718u); aot_gpr_6 = (0u | 34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 227u, 0x08915718u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915718u) goto L_08915718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915718: ctx.gpr[21] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0891572Cu); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 228u, 0x0891572Cu, 0x08904FF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 217u, 0x08904FF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891572Cu) goto L_0891572C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891572C: ctx.gpr[18] = (0u | 1u); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); @@ -3497,8 +3963,21 @@ L_089157C0: ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08915820u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 232u, 0x08915820u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915820u) goto L_08915820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915820: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3541,8 +4020,21 @@ L_0891583C: ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0891589Cu); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 235u, 0x0891589Cu, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891589Cu) goto L_0891589C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891589C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1768))); aot_gpr_4 = (aot_gpr_4 < static_cast(21) ? 1u : 0u); @@ -3623,8 +4115,21 @@ L_089158FC: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08915964u); ctx.gpr[7] = (0u | 50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 243u, 0x08915964u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915964u) goto L_08915964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915964: aot_gpr_4 = (15820u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7896))); @@ -3639,8 +4144,21 @@ L_08915964: } L_08915984: aot_gpr_31 = (0x0891598Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 245u, 0x0891598Cu, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891598Cu) goto L_0891598C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891598C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3650,8 +4168,21 @@ L_0891598C: } L_08915994: aot_gpr_31 = (0x0891599Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 247u, 0x0891599Cu, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891599Cu) goto L_0891599C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891599C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3667,8 +4198,21 @@ L_089159A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089159C0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 249u, 0x089159C0u, 0x08904CFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 198u, 0x08904CFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089159C0u) goto L_089159C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089159C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3694,8 +4238,21 @@ L_089159D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089159ECu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 253u, 0x089159ECu, 0x08904E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 207u, 0x08904E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089159ECu) goto L_089159EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089159EC: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -3780,8 +4337,21 @@ L_08915A54: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08915A64u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 263u, 0x08915A64u, 0x08904FF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 217u, 0x08904FF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915A64u) goto L_08915A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915A64: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3902,8 +4472,21 @@ L_08915AF8: ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08915B58u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 268u, 0x08915B58u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915B58u) goto L_08915B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915B58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3946,8 +4529,21 @@ L_08915B74: ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08915BD4u); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 271u, 0x08915BD4u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915BD4u) goto L_08915BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915BD4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1768))); aot_gpr_4 = (aot_gpr_4 < static_cast(21) ? 1u : 0u); @@ -4028,8 +4624,21 @@ L_08915C34: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08915C9Cu); ctx.gpr[7] = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 279u, 0x08915C9Cu, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915C9Cu) goto L_08915C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915C9C: { const bool branch_taken = ctx.gpr[18] == 0u; ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); @@ -4065,8 +4674,21 @@ L_08915CBC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08915CCCu); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 282u, 0x08915CCCu, 0x08904FF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 217u, 0x08904FF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915CCCu) goto L_08915CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915CCC: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4187,8 +4809,21 @@ L_08915D60: ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08915DC0u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 287u, 0x08915DC0u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915DC0u) goto L_08915DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915DC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4231,8 +4866,21 @@ L_08915DDC: ctx.fpr[16] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08915E3Cu); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 290u, 0x08915E3Cu, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915E3Cu) goto L_08915E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915E3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1768))); aot_gpr_4 = (aot_gpr_4 < static_cast(21) ? 1u : 0u); @@ -4313,8 +4961,21 @@ L_08915E9C: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08915F04u); ctx.gpr[7] = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 298u, 0x08915F04u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08915F04u) goto L_08915F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08915F04: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(311))); aot_gpr_5 = (0u | 19u); @@ -4551,8 +5212,21 @@ L_089160D0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089160FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 312u, 0x089160FCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089160FCu) goto L_089160FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089160FC: ctx.gpr[8] = (aot_gpr_29 + static_cast(432)); aot_gpr_4 = (0u | 66u); @@ -4565,8 +5239,21 @@ L_089160FC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08916128u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 313u, 0x08916128u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916128u) goto L_08916128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916128: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_6 = (0u | 43u); @@ -4651,8 +5338,21 @@ L_089161C4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089161F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 319u, 0x089161F0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089161F0u) goto L_089161F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089161F0: aot_gpr_4 = (48460u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -4705,8 +5405,21 @@ L_08916254: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0891629Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 323u, 0x0891629Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891629Cu) goto L_0891629C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891629C: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(720), aot_run_words); @@ -4724,8 +5437,8 @@ L_0891629C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(768)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089162D0: @@ -4788,8 +5501,21 @@ L_0891633C: L_0891634C: aot_gpr_31 = (0x08916354u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 331u, 0x08916354u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916354u) goto L_08916354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916354: aot_gpr_31 = (0x0891635Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4834,8 +5560,21 @@ L_08916390: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x0891639Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 338u, 0x0891639Cu, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891639Cu) goto L_0891639C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891639C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4874,8 +5613,21 @@ L_089163C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089163D8u); aot_gpr_6 = (0u | 143u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 343u, 0x089163D8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089163D8u) goto L_089163D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089163D8: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_089163DC; @@ -4891,8 +5643,21 @@ L_089163E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089163F4u); aot_gpr_6 = (0u | 144u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 346u, 0x089163F4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089163F4u) goto L_089163F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089163F4: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_089163F8; @@ -4980,8 +5745,21 @@ L_089164A4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089164B0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 356u, 0x089164B0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089164B0u) goto L_089164B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089164B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -5035,8 +5813,21 @@ L_089164FC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891650Cu); aot_gpr_6 = (0u | 143u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 364u, 0x0891650Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891650Cu) goto L_0891650C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891650C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5051,8 +5842,21 @@ L_08916518: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916528u); aot_gpr_6 = (0u | 144u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 366u, 0x08916528u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916528u) goto L_08916528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916528: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5091,8 +5895,21 @@ L_08916574: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916580u); aot_gpr_5 = (0u | 105u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 371u, 0x08916580u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916580u) goto L_08916580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916580: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5104,8 +5921,21 @@ L_08916588: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08916594u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 373u, 0x08916594u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916594u) goto L_08916594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916594: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5143,8 +5973,8 @@ L_089165D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089165E8: @@ -5155,8 +5985,21 @@ L_089165E8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(68), aot_run_words); } aot_gpr_31 = (0x0891661Cu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 378u, 0x0891661Cu, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891661Cu) goto L_0891661C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891661C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5181,8 +6024,21 @@ L_08916630: L_08916638: aot_gpr_31 = (0x08916640u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 382u, 0x08916640u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916640u) goto L_08916640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916640: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5216,8 +6072,21 @@ L_08916668: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916678u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 387u, 0x08916678u, 0x08910890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 148u, 0x08910890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916678u) goto L_08916678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916678: aot_gpr_31 = (0x08916680u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5323,13 +6192,39 @@ L_08916748: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916754u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 399u, 0x08916754u, 0x08910664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 103u, 0x08910664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916754u) goto L_08916754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916754: aot_gpr_31 = (0x0891675Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 400u, 0x0891675Cu, 0x08910640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 99u, 0x08910640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891675Cu) goto L_0891675C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891675C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1930)))))); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); @@ -5357,8 +6252,21 @@ L_08916788: ctx.gpr[7] = (ctx.gpr[7] & 255u); aot_gpr_31 = (0x089167A4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 403u, 0x089167A4u, 0x089106ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 118u, 0x089106ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089167A4u) goto L_089167A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089167A4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -5387,8 +6295,21 @@ L_089167C8: L_089167D4: aot_gpr_31 = (0x089167DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 407u, 0x089167DCu, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089167DCu) goto L_089167DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089167DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5401,13 +6322,39 @@ L_089167E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089167F4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 409u, 0x089167F4u, 0x0890FED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 880u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 880u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 880u, 0x0890FED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089167F4u) goto L_089167F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089167F4: aot_gpr_31 = (0x089167FCu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 410u, 0x089167FCu, 0x089C89A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 174u, 0x089C89A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089167FCu) goto L_089167FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089167FC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5426,8 +6373,21 @@ L_0891680C: L_08916810: aot_gpr_31 = (0x08916818u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 414u, 0x08916818u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916818u) goto L_08916818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916818: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5474,13 +6434,39 @@ L_08916860: ctx.gpr[21] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891686Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 420u, 0x0891686Cu, 0x0890B900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 899u, 0x0890B900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891686Cu) goto L_0891686C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891686C: aot_gpr_31 = (0x08916874u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 421u, 0x08916874u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916874u) goto L_08916874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916874: ctx.gpr[22] = (ctx.gpr[21] + static_cast(48)); ctx.gpr[20] = (2232u << 16u); @@ -5536,8 +6522,21 @@ L_089168C8: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089168F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 428u, 0x089168F0u, 0x0890593Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 348u, 0x0890593Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089168F0u) goto L_089168F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089168F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5574,13 +6573,39 @@ L_08916924: ctx.gpr[7] = (ctx.gpr[7] & 255u); aot_gpr_31 = (0x08916948u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 432u, 0x08916948u, 0x089106ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 118u, 0x089106ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916948u) goto L_08916948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916948: aot_gpr_31 = (0x08916950u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 433u, 0x08916950u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916950u) goto L_08916950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916950: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5600,8 +6625,21 @@ L_08916964: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916970u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 436u, 0x08916970u, 0x08910680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 106u, 0x08910680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916970u) goto L_08916970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916970: aot_gpr_31 = (0x08916978u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5635,8 +6673,21 @@ L_0891699C: L_089169A8: aot_gpr_31 = (0x089169B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 441u, 0x089169B0u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089169B0u) goto L_089169B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089169B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5648,13 +6699,39 @@ L_089169B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089169C4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 443u, 0x089169C4u, 0x0890FED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 880u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 880u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 880u, 0x0890FED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089169C4u) goto L_089169C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089169C4: aot_gpr_31 = (0x089169CCu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 444u, 0x089169CCu, 0x089C89A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 174u, 0x089C89A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089169CCu) goto L_089169CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089169CC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5680,8 +6757,21 @@ L_089169E4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1930), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089169F8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 448u, 0x089169F8u, 0x0891069Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 109u, 0x0891069Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089169F8u) goto L_089169F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089169F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5692,8 +6782,21 @@ L_089169F8: L_08916A00: aot_gpr_31 = (0x08916A08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 450u, 0x08916A08u, 0x0890FDC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 864u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 864u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 864u, 0x0890FDC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916A08u) goto L_08916A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916A08: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5708,8 +6811,21 @@ L_08916A10: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08916A28u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 452u, 0x08916A28u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916A28u) goto L_08916A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916A28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5720,8 +6836,21 @@ L_08916A28: L_08916A30: aot_gpr_31 = (0x08916A38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 454u, 0x08916A38u, 0x0890FD50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 853u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 853u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 853u, 0x0890FD50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916A38u) goto L_08916A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916A38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5736,8 +6865,21 @@ L_08916A40: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08916A58u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 456u, 0x08916A58u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916A58u) goto L_08916A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916A58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5749,8 +6891,21 @@ L_08916A60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916A6Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 458u, 0x08916A6Cu, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916A6Cu) goto L_08916A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916A6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 8u); @@ -5758,14 +6913,40 @@ L_08916A6C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08916A84u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 459u, 0x08916A84u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916A84u) goto L_08916A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916A84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916A90u); aot_gpr_5 = (0u | 151u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 460u, 0x08916A90u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916A90u) goto L_08916A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916A90: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); @@ -5781,8 +6962,8 @@ L_08916A90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08916ABC: @@ -5797,15 +6978,41 @@ L_08916ABC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), 0u); aot_gpr_31 = (0x08916B18u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 462u, 0x08916B18u, 0x08910870u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 145u, 0x08910870u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916B18u) goto L_08916B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916B18: ctx.gpr[22] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916B28u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 463u, 0x08916B28u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916B28u) goto L_08916B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916B28: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5896,8 +7103,21 @@ L_08916BAC: L_08916BB8: aot_gpr_31 = (0x08916BC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 472u, 0x08916BC0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916BC0u) goto L_08916BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916BC0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5950,8 +7170,21 @@ L_08916BF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08916C30u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 476u, 0x08916C30u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916C30u) goto L_08916C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916C30: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6015,8 +7248,21 @@ L_08916CC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916CCCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 482u, 0x08916CCCu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916CCCu) goto L_08916CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916CCC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); @@ -6025,8 +7271,21 @@ L_08916CCC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08916CE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 483u, 0x08916CE8u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916CE8u) goto L_08916CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916CE8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(4))); @@ -6034,8 +7293,21 @@ L_08916CE8: aot_fpr_12 = aot_fpr_12 - aot_fpr_14; aot_gpr_31 = (0x08916D00u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 484u, 0x08916D00u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916D00u) goto L_08916D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916D00: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6055,8 +7327,21 @@ L_08916D08: L_08916D18: aot_gpr_31 = (0x08916D20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 487u, 0x08916D20u, 0x0890B078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 777u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 777u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 777u, 0x0890B078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916D20u) goto L_08916D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916D20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -6076,13 +7361,39 @@ L_08916D2C: L_08916D38: aot_gpr_31 = (0x08916D40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 490u, 0x08916D40u, 0x08913274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 779u, 0x08913274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916D40u) goto L_08916D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916D40: aot_gpr_31 = (0x08916D48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 491u, 0x08916D48u, 0x0890E5ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 564u, 0x0890E5ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916D48u) goto L_08916D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916D48: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (2235u << 16u); @@ -6127,14 +7438,40 @@ L_08916D8C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2196), 0u); aot_gpr_31 = (0x08916D98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 494u, 0x08916D98u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916D98u) goto L_08916D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916D98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916DA4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 495u, 0x08916DA4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916DA4u) goto L_08916DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916DA4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -6148,8 +7485,21 @@ L_08916DAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916DBCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 497u, 0x08916DBCu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916DBCu) goto L_08916DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916DBC: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6186,13 +7536,39 @@ L_08916DC8: aot_gpr_5 = (aot_gpr_5 | 2u); aot_gpr_31 = (0x08916E14u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(180), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 499u, 0x08916E14u, 0x08AE30FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 864u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 864u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 864u, 0x08AE30FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916E14u) goto L_08916E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916E14: aot_gpr_31 = (0x08916E1Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 500u, 0x08916E1Cu, 0x088F824Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 26u, 0x088F824Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916E1Cu) goto L_08916E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916E1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2244))); ctx.gpr[21] = (aot_gpr_4 ^ 1u); @@ -6244,8 +7620,21 @@ L_08916E74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), aot_gpr_16); aot_gpr_31 = (0x08916E80u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 507u, 0x08916E80u, 0x08AE3D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1004u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1004u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1004u, 0x08AE3D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916E80u) goto L_08916E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916E80: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6278,8 +7667,21 @@ L_08916E98: aot_gpr_5 = (aot_gpr_29 + static_cast(944)); aot_gpr_31 = (0x08916EACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 510u, 0x08916EACu, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916EACu) goto L_08916EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916EAC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_gpr_4 = (aot_gpr_29 + static_cast(192)); @@ -6336,8 +7738,21 @@ L_08916F08: L_08916F34: aot_gpr_31 = (0x08916F3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 516u, 0x08916F3Cu, 0x08912938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 648u, 0x08912938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916F3Cu) goto L_08916F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916F3C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6351,16 +7766,42 @@ L_08916F44: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08916F58u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 518u, 0x08916F58u, 0x0887CF50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 254u, 0x0887CF50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916F58u) goto L_08916F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916F58: ctx.gpr[20] = (aot_gpr_29 + static_cast(352)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08916F6Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 519u, 0x08916F6Cu, 0x0887CFA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 259u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 259u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 259u, 0x0887CFA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916F6Cu) goto L_08916F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916F6C: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6391,13 +7832,39 @@ L_08916F6C: aot_gpr_5 = (aot_gpr_29 + static_cast(948)); aot_gpr_31 = (0x08916F88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 520u, 0x08916F88u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916F88u) goto L_08916F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916F88: aot_gpr_31 = (0x08916F90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 521u, 0x08916F90u, 0x089129F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 663u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 663u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 663u, 0x089129F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916F90u) goto L_08916F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916F90: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[17] = (aot_gpr_29 + static_cast(192)); @@ -6414,8 +7881,21 @@ L_08916F98: ctx.fpr[26] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08916FB4u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 523u, 0x08916FB4u, 0x08A2FBECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 601u, 0x08A2FBECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916FB4u) goto L_08916FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916FB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); @@ -6452,15 +7932,41 @@ L_08916FE0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08916FF0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 525u, 0x08916FF0u, 0x08AE3404u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 885u, 0x08AE3404u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08916FF0u) goto L_08916FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08916FF0: ctx.gpr[20] = (aot_gpr_29 + static_cast(848)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08917000u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 526u, 0x08917000u, 0x08AE3404u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 885u, 0x08AE3404u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917000u) goto L_08917000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917000: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); aot_gpr_5 = (std::bit_cast(ctx.fpr[22])); @@ -6510,8 +8016,21 @@ L_08917000: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08917048u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 527u, 0x08917048u, 0x08A30364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 35u, 0x08A30364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917048u) goto L_08917048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917048: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(804)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6575,8 +8094,21 @@ L_08917098: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089170B8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 533u, 0x089170B8u, 0x0889EE44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 656u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 656u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 656u, 0x0889EE44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089170B8u) goto L_089170B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089170B8: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6630,8 +8162,21 @@ L_089170E4: L_089170EC: aot_gpr_31 = (0x089170F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 536u, 0x089170F4u, 0x089128ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 639u, 0x089128ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089170F4u) goto L_089170F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089170F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6666,8 +8211,21 @@ L_08917124: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x0891713Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 540u, 0x0891713Cu, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891713Cu) goto L_0891713C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891713C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-16385)); @@ -6729,8 +8287,21 @@ L_089171A0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089171ACu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 549u, 0x089171ACu, 0x088DC4A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 49u, 0x088DC4A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089171ACu) goto L_089171AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089171AC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6773,8 +8344,21 @@ L_089171E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089171F0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 555u, 0x089171F0u, 0x0890F644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 778u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 778u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 778u, 0x0890F644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089171F0u) goto L_089171F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089171F0: ctx.gpr[17] = (aot_gpr_29 + static_cast(192)); goto L_089171F4; @@ -6887,8 +8471,21 @@ L_08917288: L_0891729C: aot_gpr_31 = (0x089172A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 564u, 0x089172A4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089172A4u) goto L_089172A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089172A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7085,8 +8682,21 @@ L_089173D4: L_089173E4: aot_gpr_31 = (0x089173ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 588u, 0x089173ECu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089173ECu) goto L_089173EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089173EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_5 = (0u | 3u); @@ -7101,13 +8711,39 @@ L_089173EC: L_08917404: aot_gpr_31 = (0x0891740Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 590u, 0x0891740Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891740Cu) goto L_0891740C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891740C: aot_gpr_31 = (0x08917414u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 591u, 0x08917414u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917414u) goto L_08917414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917414: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7289,8 +8925,21 @@ L_08917538: L_08917548: aot_gpr_31 = (0x08917550u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 613u, 0x08917550u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917550u) goto L_08917550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917550: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7326,8 +8975,21 @@ L_08917588: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08917598u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 618u, 0x08917598u, 0x08AE3358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 875u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 875u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 875u, 0x08AE3358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917598u) goto L_08917598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917598: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7362,8 +9024,21 @@ L_089175C0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089175D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 623u, 0x089175D0u, 0x08910944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 156u, 0x08910944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089175D0u) goto L_089175D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089175D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -7382,8 +9057,21 @@ L_089175E4: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x08917600u); aot_fpr_13 = aot_fpr_13 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 625u, 0x08917600u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917600u) goto L_08917600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917600: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); @@ -7499,8 +9187,21 @@ L_089176F0: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x0891770Cu); aot_fpr_13 = aot_fpr_13 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 638u, 0x0891770Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891770Cu) goto L_0891770C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891770C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); @@ -7744,8 +9445,21 @@ L_0891793C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891794Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 663u, 0x0891794Cu, 0x08AE3358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 875u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 875u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 875u, 0x08AE3358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891794Cu) goto L_0891794C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891794C: ctx.gpr[2] = (0u | 0u); goto L_08917950; @@ -7769,8 +9483,8 @@ L_08917950: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1136)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08917990: @@ -7846,8 +9560,21 @@ L_08917A3C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(468), aot_gpr_4); aot_gpr_31 = (0x08917A58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 672u, 0x08917A58u, 0x0890B448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 827u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 827u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 827u, 0x0890B448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917A58u) goto L_08917A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917A58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); aot_gpr_5 = (0u | 10u); @@ -7873,8 +9600,21 @@ L_08917A78: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x08917A90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 675u, 0x08917A90u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917A90u) goto L_08917A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917A90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 1u); @@ -7921,8 +9661,21 @@ L_08917AD4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08917AECu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 681u, 0x08917AECu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917AECu) goto L_08917AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917AEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7937,8 +9690,21 @@ L_08917AF4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08917B0Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 683u, 0x08917B0Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917B0Cu) goto L_08917B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917B0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7978,8 +9744,21 @@ L_08917B54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08917B60u); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 688u, 0x08917B60u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917B60u) goto L_08917B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917B60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(468))); aot_gpr_5 = (0u + static_cast(-17)); @@ -8022,8 +9801,21 @@ L_08917BA0: L_08917BB4: aot_gpr_31 = (0x08917BBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 693u, 0x08917BBCu, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917BBCu) goto L_08917BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917BBC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8050,8 +9842,21 @@ L_08917BD8: aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8868))); aot_gpr_31 = (0x08917BF4u); aot_fpr_13 = aot_fpr_14 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 696u, 0x08917BF4u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917BF4u) goto L_08917BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917BF4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1930)))))); ctx.gpr[17] = (ctx.gpr[2] & 255u); @@ -8090,8 +9895,21 @@ L_08917C34: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08917C40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 701u, 0x08917C40u, 0x08910640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 99u, 0x08910640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917C40u) goto L_08917C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917C40: aot_gpr_31 = (0x08917C48u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8100,8 +9918,21 @@ L_08917C40: L_08917C48: aot_gpr_31 = (0x08917C50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 703u, 0x08917C50u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917C50u) goto L_08917C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917C50: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8113,8 +9944,21 @@ L_08917C58: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08917C64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 705u, 0x08917C64u, 0x08910890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 148u, 0x08910890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917C64u) goto L_08917C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917C64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2244))); aot_gpr_5 = (0u | 4u); @@ -8145,13 +9989,39 @@ L_08917C94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08917CA0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 710u, 0x08917CA0u, 0x08910664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 103u, 0x08910664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917CA0u) goto L_08917CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917CA0: aot_gpr_31 = (0x08917CA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 711u, 0x08917CA8u, 0x08910640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 99u, 0x08910640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917CA8u) goto L_08917CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917CA8: aot_gpr_31 = (0x08917CB0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8170,8 +10040,21 @@ L_08917CB0: L_08917CCC: aot_gpr_31 = (0x08917CD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 714u, 0x08917CD4u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917CD4u) goto L_08917CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917CD4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8196,8 +10079,21 @@ L_08917CE8: aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8868))); aot_gpr_31 = (0x08917D04u); aot_fpr_13 = aot_fpr_14 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 717u, 0x08917D04u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917D04u) goto L_08917D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917D04: ctx.gpr[17] = (ctx.gpr[2] & 255u); goto L_08917D08; @@ -8227,8 +10123,21 @@ L_08917D2C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08917D4Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 721u, 0x08917D4Cu, 0x089106ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 118u, 0x089106ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917D4Cu) goto L_08917D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917D4C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8255,8 +10164,21 @@ L_08917D64: L_08917D6C: aot_gpr_31 = (0x08917D74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 725u, 0x08917D74u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917D74u) goto L_08917D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917D74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8272,8 +10194,21 @@ L_08917D84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08917D90u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 728u, 0x08917D90u, 0x0891069Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 109u, 0x0891069Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917D90u) goto L_08917D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917D90: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8370,13 +10305,39 @@ L_08917E30: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x08917E50u); aot_fpr_13 = aot_fpr_13 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 740u, 0x08917E50u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917E50u) goto L_08917E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917E50: aot_gpr_31 = (0x08917E58u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 741u, 0x08917E58u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917E58u) goto L_08917E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917E58: aot_gpr_4 = (16457u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); @@ -8466,8 +10427,21 @@ L_08917F1C: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08917F30u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 750u, 0x08917F30u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917F30u) goto L_08917F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917F30: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08917F3Cu); @@ -8491,13 +10465,39 @@ L_08917F58: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(292))); aot_gpr_31 = (0x08917F68u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 753u, 0x08917F68u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917F68u) goto L_08917F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917F68: aot_gpr_31 = (0x08917F70u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 754u, 0x08917F70u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917F70u) goto L_08917F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917F70: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); @@ -8517,26 +10517,78 @@ L_08917F78: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x08917FA0u); aot_fpr_13 = aot_fpr_13 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 756u, 0x08917FA0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917FA0u) goto L_08917FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917FA0: aot_gpr_31 = (0x08917FA8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 757u, 0x08917FA8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917FA8u) goto L_08917FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917FA8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(288))); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(292))); aot_gpr_31 = (0x08917FBCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 758u, 0x08917FBCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917FBCu) goto L_08917FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917FBC: aot_gpr_31 = (0x08917FC4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0068->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0068_entry, 759u, 0x08917FC4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08917FC4u) goto L_08917FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08917FC4: aot_gpr_4 = (16457u << 16u); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); diff --git a/profiles/vcs/generated/generated_unit_0069.cpp b/profiles/vcs/generated/generated_unit_0069.cpp index 067d04d..9dd7779 100644 --- a/profiles/vcs/generated/generated_unit_0069.cpp +++ b/profiles/vcs/generated/generated_unit_0069.cpp @@ -806,6 +806,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08918000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -858,8 +882,21 @@ L_08918048: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08918064u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 6u, 0x08918064u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918064u) goto L_08918064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918064: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20140))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20144))); @@ -893,8 +930,21 @@ L_089180A0: ctx.gpr[7] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x089180B4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 11u, 0x089180B4u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089180B4u) goto L_089180B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089180B4: ctx.gpr[19] = (ctx.gpr[3] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -1011,8 +1061,21 @@ L_08918198: L_089181B4: aot_gpr_31 = (0x089181BCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 26u, 0x089181BCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089181BCu) goto L_089181BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089181BC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16457u << 16u); @@ -1079,8 +1142,8 @@ L_0891823C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891826C: @@ -1112,8 +1175,21 @@ L_089182D4: aot_gpr_5 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089182E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 33u, 0x089182E0u, 0x0890D0A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 274u, 0x0890D0A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089182E0u) goto L_089182E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089182E0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1141,8 +1217,21 @@ L_08918300: aot_gpr_5 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x0891830Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 37u, 0x0891830Cu, 0x08910338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 49u, 0x08910338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891830Cu) goto L_0891830C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891830C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (128u << 16u); @@ -1154,8 +1243,21 @@ L_0891830C: L_08918314: aot_gpr_31 = (0x0891831Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 39u, 0x0891831Cu, 0x0891283Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 629u, 0x0891283Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891831Cu) goto L_0891831C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891831C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1166,8 +1268,21 @@ L_0891831C: L_08918324: aot_gpr_31 = (0x0891832Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 41u, 0x0891832Cu, 0x0890D2E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 299u, 0x0890D2E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891832Cu) goto L_0891832C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891832C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1206,8 +1321,21 @@ L_08918358: L_08918368: aot_gpr_31 = (0x08918370u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 46u, 0x08918370u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918370u) goto L_08918370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918370: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1257,8 +1385,21 @@ L_089183C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089183D0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 52u, 0x089183D0u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089183D0u) goto L_089183D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089183D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1360))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24276))); @@ -1276,8 +1417,21 @@ L_089183EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089183F8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 54u, 0x089183F8u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089183F8u) goto L_089183F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089183F8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (16u << 16u); @@ -1297,8 +1451,21 @@ L_08918400: L_0891840C: aot_gpr_31 = (0x08918414u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 57u, 0x08918414u, 0x0890D3A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 308u, 0x0890D3A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918414u) goto L_08918414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918414: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1379,8 +1546,21 @@ L_08918478: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x0891849Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 62u, 0x0891849Cu, 0x0891283Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 629u, 0x0891283Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891849Cu) goto L_0891849C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891849C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1758,21 +1938,60 @@ L_08918758: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); aot_gpr_31 = (0x08918768u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 91u, 0x08918768u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918768u) goto L_08918768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918768: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); aot_gpr_31 = (0x0891877Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 92u, 0x0891877Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891877Cu) goto L_0891877C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891877C: aot_gpr_31 = (0x08918784u); aot_fpr_12 = ctx.fpr[24] - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 93u, 0x08918784u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918784u) goto L_08918784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918784: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1888))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1811,8 +2030,21 @@ L_089187BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089187E4u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 97u, 0x089187E4u, 0x089068C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 571u, 0x089068C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089187E4u) goto L_089187E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089187E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1972,8 +2204,21 @@ L_0891891C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08918968u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 110u, 0x08918968u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918968u) goto L_08918968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918968: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2036,8 +2281,21 @@ L_089189E4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08918A08u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 115u, 0x08918A08u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918A08u) goto L_08918A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918A08: aot_gpr_4 = (ctx.gpr[2] | ctx.gpr[20]); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2135,8 +2393,21 @@ L_08918A9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08918AE0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 123u, 0x08918AE0u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918AE0u) goto L_08918AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918AE0: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); @@ -2158,8 +2429,21 @@ L_08918AFC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08918B08u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 126u, 0x08918B08u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918B08u) goto L_08918B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918B08: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[22] | 0u); @@ -2191,8 +2475,21 @@ L_08918B34: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08918B40u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 130u, 0x08918B40u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918B40u) goto L_08918B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918B40: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (1024u << 16u); @@ -2415,21 +2712,60 @@ L_08918C88: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); aot_gpr_31 = (0x08918C98u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 145u, 0x08918C98u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918C98u) goto L_08918C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918C98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(244))); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); aot_gpr_31 = (0x08918CACu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 146u, 0x08918CACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918CACu) goto L_08918CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918CAC: aot_gpr_31 = (0x08918CB4u); aot_fpr_12 = ctx.fpr[22] - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 147u, 0x08918CB4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918CB4u) goto L_08918CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918CB4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1888))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2556,8 +2892,21 @@ L_08918D84: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08918D90u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 165u, 0x08918D90u, 0x089068C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 571u, 0x089068C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918D90u) goto L_08918D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918D90: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[21] + static_cast(48)); @@ -2636,8 +2985,21 @@ L_08918E68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08918E74u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 170u, 0x08918E74u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918E74u) goto L_08918E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918E74: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (1024u << 16u); @@ -2679,8 +3041,21 @@ L_08918EC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08918ECCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 175u, 0x08918ECCu, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918ECCu) goto L_08918ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918ECC: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_08918ED0; @@ -2703,8 +3078,8 @@ L_08918ED0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08918F0C: @@ -2713,8 +3088,21 @@ L_08918F0C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(160), aot_run_words); } aot_gpr_31 = (0x08918F48u); ctx.gpr[19] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 178u, 0x08918F48u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918F48u) goto L_08918F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918F48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2742,18 +3130,57 @@ L_08918F5C: L_08918F6C: aot_gpr_31 = (0x08918F74u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 182u, 0x08918F74u, 0x0890D498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 324u, 0x0890D498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918F74u) goto L_08918F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918F74: aot_gpr_31 = (0x08918F7Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 183u, 0x08918F7Cu, 0x0890D654u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 344u, 0x0890D654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918F7Cu) goto L_08918F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918F7C: aot_gpr_31 = (0x08918F84u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 184u, 0x08918F84u, 0x089292D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 287u, 0x089292D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08918F84u) goto L_08918F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08918F84: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2848,8 +3275,21 @@ L_08918FEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08919038u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 193u, 0x08919038u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919038u) goto L_08919038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919038: aot_gpr_16 = (0u | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); @@ -2901,8 +3341,21 @@ L_0891906C: L_08919094: aot_gpr_31 = (0x0891909Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 198u, 0x0891909Cu, 0x08B01AA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 439u, 0x08B01AA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891909Cu) goto L_0891909C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891909C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2983,8 +3436,21 @@ L_08919118: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08919128u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 208u, 0x08919128u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919128u) goto L_08919128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919128: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(5000)); @@ -3154,8 +3620,21 @@ L_08919228: L_08919238: aot_gpr_31 = (0x08919240u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 225u, 0x08919240u, 0x08906E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 627u, 0x08906E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919240u) goto L_08919240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919240: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3206,8 +3685,21 @@ L_0891928C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0891929Cu); aot_gpr_5 = (0u | 37u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 231u, 0x0891929Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891929Cu) goto L_0891929C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891929C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(5000)); @@ -3340,8 +3832,21 @@ L_08919388: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08919398u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 242u, 0x08919398u, 0x089AB048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 627u, 0x089AB048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919398u) goto L_08919398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919398: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -3354,8 +3859,21 @@ L_089193A0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089193ACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 244u, 0x089193ACu, 0x089AB048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 627u, 0x089AB048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089193ACu) goto L_089193AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089193AC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3367,8 +3885,21 @@ L_089193B4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089193C0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 246u, 0x089193C0u, 0x0890C4D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 72u, 0x0890C4D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089193C0u) goto L_089193C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089193C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3387,8 +3918,21 @@ L_089193D0: ctx.gpr[30] = (ctx.hi); aot_gpr_31 = (0x089193E8u); ctx.gpr[30] = (ctx.gpr[30] + static_cast(10000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 249u, 0x089193E8u, 0x08910B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 194u, 0x08910B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089193E8u) goto L_089193E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089193E8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3399,8 +3943,21 @@ L_089193E8: L_089193F0: aot_gpr_31 = (0x089193F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1360))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 251u, 0x089193F8u, 0x08910B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 194u, 0x08910B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089193F8u) goto L_089193F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089193F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3413,15 +3970,41 @@ L_08919400: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08919410u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 253u, 0x08919410u, 0x0890C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 65u, 0x0890C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919410u) goto L_08919410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919410: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08919420u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 254u, 0x08919420u, 0x0890C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 65u, 0x0890C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919420u) goto L_08919420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919420: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(1914))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -3463,8 +4046,8 @@ L_08919448: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08919480: @@ -3473,8 +4056,21 @@ L_08919480: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } aot_gpr_31 = (0x089194ACu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 259u, 0x089194ACu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089194ACu) goto L_089194AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089194AC: ctx.gpr[17] = (2236u << 16u); aot_gpr_4 = (16128u << 16u); @@ -3620,14 +4216,40 @@ L_089195E4: goto L_089195F4; L_089195F4: aot_gpr_31 = (0x089195FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 273u, 0x089195FCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089195FCu) goto L_089195FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089195FC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08919608u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 274u, 0x08919608u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919608u) goto L_08919608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919608: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3729,15 +4351,41 @@ L_089196B8: L_089196D0: aot_gpr_31 = (0x089196D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 286u, 0x089196D8u, 0x08907AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 839u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 839u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 839u, 0x08907AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089196D8u) goto L_089196D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089196D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089196E8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 287u, 0x089196E8u, 0x08AD120Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 227u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 227u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 227u, 0x08AD120Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089196E8u) goto L_089196E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089196E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3799,8 +4447,21 @@ L_08919768: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08919778u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 294u, 0x08919778u, 0x0881EF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 517u, 0x0881EF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919778u) goto L_08919778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919778: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -4046,8 +4707,21 @@ L_089199B0: L_089199E8: aot_gpr_31 = (0x089199F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 314u, 0x089199F0u, 0x089990E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 119u, 0x089990E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089199F0u) goto L_089199F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089199F0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4058,8 +4732,21 @@ L_089199F0: L_089199F8: aot_gpr_31 = (0x08919A00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 316u, 0x08919A00u, 0x08999134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 124u, 0x08999134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919A00u) goto L_08919A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919A00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4081,8 +4768,21 @@ L_08919A10: L_08919A18: aot_gpr_31 = (0x08919A20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 320u, 0x08919A20u, 0x08906FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 668u, 0x08906FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919A20u) goto L_08919A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919A20: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4094,8 +4794,21 @@ L_08919A28: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x08919A34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 322u, 0x08919A34u, 0x0890675Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 544u, 0x0890675Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919A34u) goto L_08919A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919A34: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1940))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1944))); @@ -4107,8 +4820,21 @@ L_08919A34: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x08919A5Cu); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 323u, 0x08919A5Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919A5Cu) goto L_08919A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919A5C: aot_gpr_4 = (49097u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4201,8 +4927,21 @@ L_08919B34: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08919B44u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 331u, 0x08919B44u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919B44u) goto L_08919B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919B44: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4216,8 +4955,21 @@ L_08919B50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08919B60u); aot_gpr_6 = (0u | 217u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 333u, 0x08919B60u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919B60u) goto L_08919B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919B60: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4231,8 +4983,21 @@ L_08919B6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08919B7Cu); aot_gpr_6 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 335u, 0x08919B7Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919B7Cu) goto L_08919B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919B7C: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08919B80; @@ -4256,8 +5021,21 @@ L_08919B9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x08919BA8u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 339u, 0x08919BA8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919BA8u) goto L_08919BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919BA8: aot_gpr_4 = (16351u << 16u); aot_gpr_4 = (aot_gpr_4 | 26355u); @@ -4343,8 +5121,21 @@ L_08919C34: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08919C88u); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 346u, 0x08919C88u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919C88u) goto L_08919C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919C88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(732))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -4353,8 +5144,21 @@ L_08919C88: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08919CA4u); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 347u, 0x08919CA4u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919CA4u) goto L_08919CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919CA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_4 = (aot_gpr_4 | 8192u); @@ -4374,8 +5178,8 @@ L_08919CB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08919CD8: @@ -4454,8 +5258,21 @@ L_08919D60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x08919D7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 355u, 0x08919D7Cu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919D7Cu) goto L_08919D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919D7C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4465,8 +5282,21 @@ L_08919D7C: } aot_gpr_31 = (0x08919D90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 356u, 0x08919D90u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919D90u) goto L_08919D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919D90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1300))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4489,8 +5319,21 @@ L_08919DA4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08919DB8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 359u, 0x08919DB8u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919DB8u) goto L_08919DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919DB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4573,8 +5416,21 @@ L_08919E14: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x08919E48u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 367u, 0x08919E48u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919E48u) goto L_08919E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919E48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1300))); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); @@ -4712,8 +5568,21 @@ L_08919ED8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08919EF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 369u, 0x08919EF4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919EF4u) goto L_08919EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919EF4: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1940))); @@ -4728,8 +5597,21 @@ L_08919EFC: aot_gpr_6 = (aot_gpr_16 + static_cast(1312)); aot_gpr_31 = (0x08919F10u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 371u, 0x08919F10u, 0x08905F10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 407u, 0x08905F10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08919F10u) goto L_08919F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08919F10: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4919,8 +5801,21 @@ L_0891A0BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891A0D8u); aot_fpr_14 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 390u, 0x0891A0D8u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A0D8u) goto L_0891A0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A0D8: aot_gpr_4 = (15523u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); @@ -5126,8 +6021,21 @@ L_0891A28C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0891A2C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 409u, 0x0891A2C0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A2C0u) goto L_0891A2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A2C0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4199))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5142,8 +6050,21 @@ L_0891A2CC: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0891A2E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 411u, 0x0891A2E0u, 0x0890BE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 984u, 0x0890BE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A2E0u) goto L_0891A2E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A2E0: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5167,8 +6088,21 @@ L_0891A2EC: L_0891A304: aot_gpr_31 = (0x0891A30Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 414u, 0x0891A30Cu, 0x08A9FB14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 586u, 0x08A9FB14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A30Cu) goto L_0891A30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A30C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5227,8 +6161,8 @@ L_0891A35C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891A380: @@ -5242,8 +6176,21 @@ L_0891A380: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(876), aot_run_words); } aot_gpr_31 = (0x0891A3C0u); aot_fpr_20 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 423u, 0x0891A3C0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A3C0u) goto L_0891A3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A3C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5272,8 +6219,21 @@ L_0891A3C8: L_0891A3F8: aot_gpr_31 = (0x0891A400u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 426u, 0x0891A400u, 0x089117B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 403u, 0x089117B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A400u) goto L_0891A400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A400: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); aot_gpr_5 = (0u + static_cast(-129)); @@ -5363,8 +6323,21 @@ L_0891A48C: aot_gpr_4 = (aot_gpr_4 + static_cast(14064)); aot_gpr_31 = (0x0891A4B8u); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 436u, 0x0891A4B8u, 0x08A8F64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 644u, 0x08A8F64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A4B8u) goto L_0891A4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A4B8: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); @@ -5415,8 +6388,21 @@ L_0891A4C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x0891A540u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 438u, 0x0891A540u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A540u) goto L_0891A540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A540: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5577,8 +6563,21 @@ L_0891A618: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x0891A688u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 451u, 0x0891A688u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A688u) goto L_0891A688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A688: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5774,8 +6773,21 @@ L_0891A75C: aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); aot_gpr_31 = (0x0891A854u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 457u, 0x0891A854u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A854u) goto L_0891A854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A854: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_4 = (aot_gpr_4 ^ 68u); @@ -5799,8 +6811,21 @@ L_0891A884: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891A890u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 460u, 0x0891A890u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A890u) goto L_0891A890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A890: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); goto L_0891A894; @@ -5933,8 +6958,21 @@ L_0891A998: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x0891A9B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 477u, 0x0891A9B0u, 0x089117B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 403u, 0x089117B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891A9B0u) goto L_0891A9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891A9B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); aot_gpr_5 = (0u + static_cast(-129)); @@ -5986,8 +7024,21 @@ L_0891AA0C: aot_gpr_5 = (aot_gpr_5 | 256u); aot_gpr_31 = (0x0891AA20u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 484u, 0x0891AA20u, 0x089117B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 403u, 0x089117B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AA20u) goto L_0891AA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AA20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 256u); @@ -6057,8 +7108,21 @@ L_0891AACC: } L_0891AAE8: aot_gpr_31 = (0x0891AAF0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 490u, 0x0891AAF0u, 0x08B6033Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AAF0u) goto L_0891AAF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AAF0: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6069,16 +7133,42 @@ L_0891AAF0: } L_0891AAF8: aot_gpr_31 = (0x0891AB00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 492u, 0x0891AB00u, 0x089644F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AB00u) goto L_0891AB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AB00: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0891AB04; L_0891AB04: aot_gpr_31 = (0x0891AB0Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 494u, 0x0891AB0Cu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AB0Cu) goto L_0891AB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AB0C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (16256u << 16u); @@ -6089,8 +7179,21 @@ L_0891AB0C: aot_gpr_5 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x0891AB34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 495u, 0x0891AB34u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AB34u) goto L_0891AB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AB34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(280))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6111,8 +7214,21 @@ L_0891AB44: L_0891AB50: aot_gpr_31 = (0x0891AB58u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 498u, 0x0891AB58u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AB58u) goto L_0891AB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AB58: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -6122,8 +7238,21 @@ L_0891AB58: } aot_gpr_31 = (0x0891AB6Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 499u, 0x0891AB6Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AB6Cu) goto L_0891AB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AB6C: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(148))); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(149))); @@ -6175,15 +7304,41 @@ L_0891ABC0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891ABD4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 505u, 0x0891ABD4u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891ABD4u) goto L_0891ABD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891ABD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); aot_gpr_31 = (0x0891ABE4u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 506u, 0x0891ABE4u, 0x08818130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 10u, 0x08818130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891ABE4u) goto L_0891ABE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891ABE4: aot_gpr_4 = (16575u << 16u); aot_gpr_4 = (aot_gpr_4 | 2621u); @@ -6205,8 +7360,21 @@ L_0891ABE4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0891AC34u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 507u, 0x0891AC34u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AC34u) goto L_0891AC34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AC34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6237,15 +7405,41 @@ L_0891AC58: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891AC6Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 511u, 0x0891AC6Cu, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AC6Cu) goto L_0891AC6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AC6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); aot_gpr_31 = (0x0891AC7Cu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 512u, 0x0891AC7Cu, 0x08818130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 10u, 0x08818130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AC7Cu) goto L_0891AC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AC7C: aot_gpr_4 = (16575u << 16u); aot_fpr_14 = std::bit_cast(0u); @@ -6269,8 +7463,21 @@ L_0891AC7C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0891ACD4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 513u, 0x0891ACD4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891ACD4u) goto L_0891ACD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891ACD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6284,21 +7491,60 @@ L_0891ACDC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891ACF0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 515u, 0x0891ACF0u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891ACF0u) goto L_0891ACF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891ACF0: aot_gpr_5 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x0891ACFCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 516u, 0x0891ACFCu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891ACFCu) goto L_0891ACFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891ACFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); aot_gpr_31 = (0x0891AD0Cu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 517u, 0x0891AD0Cu, 0x08818130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 10u, 0x08818130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AD0Cu) goto L_0891AD0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AD0C: aot_gpr_4 = (16575u << 16u); aot_fpr_13 = std::bit_cast(0u); @@ -6411,8 +7657,21 @@ L_0891ADF0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0891AE1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 524u, 0x0891AE1Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AE1Cu) goto L_0891AE1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AE1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2244))); aot_gpr_5 = (0u | 5u); @@ -6503,15 +7762,41 @@ L_0891AEBC: aot_gpr_5 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x0891AED0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 527u, 0x0891AED0u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AED0u) goto L_0891AED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AED0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); aot_gpr_31 = (0x0891AEE0u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 528u, 0x0891AEE0u, 0x08818130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 10u, 0x08818130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AEE0u) goto L_0891AEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AEE0: aot_gpr_4 = (16575u << 16u); aot_gpr_5 = (15820u << 16u); @@ -6577,8 +7862,21 @@ L_0891AF80: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0891AFACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 532u, 0x0891AFACu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891AFACu) goto L_0891AFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891AFAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6632,8 +7930,21 @@ L_0891AFE4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0891B044u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 536u, 0x0891B044u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B044u) goto L_0891B044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B044: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (0u | 1u); @@ -6684,8 +7995,21 @@ L_0891B07C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0891B0C4u); aot_gpr_6 = (0u | 179u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 541u, 0x0891B0C4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B0C4u) goto L_0891B0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B0C4: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 255u); @@ -6757,8 +8081,21 @@ L_0891B138: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0891B160u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 547u, 0x0891B160u, 0x088E3F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 581u, 0x088E3F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B160u) goto L_0891B160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B160: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6787,8 +8124,21 @@ L_0891B184: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x0891B1A8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 550u, 0x0891B1A8u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B1A8u) goto L_0891B1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B1A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 4096u); @@ -6805,8 +8155,21 @@ L_0891B1B8: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0891B1CCu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 552u, 0x0891B1CCu, 0x0886D370u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 181u, 0x0886D370u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B1CCu) goto L_0891B1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B1CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -6832,22 +8195,61 @@ L_0891B1E0: ctx.gpr[7] = (0u | 50u); aot_gpr_31 = (0x0891B224u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 554u, 0x0891B224u, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B224u) goto L_0891B224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B224: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0891B238u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 555u, 0x0891B238u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B238u) goto L_0891B238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B238: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891B244u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 556u, 0x0891B244u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B244u) goto L_0891B244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B244: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6924,8 +8326,21 @@ L_0891B2B0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0891B308u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 561u, 0x0891B308u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B308u) goto L_0891B308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B308: aot_gpr_4 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7021,8 +8436,21 @@ L_0891B3E4: aot_gpr_6 = (0u | 164u); aot_gpr_31 = (0x0891B414u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 567u, 0x0891B414u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B414u) goto L_0891B414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B414: aot_gpr_4 = (16396u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -7094,8 +8522,21 @@ L_0891B414: aot_gpr_4 = (aot_gpr_29 + static_cast(528)); aot_gpr_31 = (0x0891B47Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 568u, 0x0891B47Cu, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B47Cu) goto L_0891B47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B47C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7122,8 +8563,21 @@ L_0891B48C: ctx.gpr[7] = (0u | 200u); aot_gpr_31 = (0x0891B4C4u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 571u, 0x0891B4C4u, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B4C4u) goto L_0891B4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B4C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (aot_gpr_4 + static_cast(80)); @@ -7158,8 +8612,21 @@ L_0891B50C: aot_gpr_5 = (aot_gpr_29 + static_cast(464)); aot_gpr_31 = (0x0891B518u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 575u, 0x0891B518u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B518u) goto L_0891B518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B518: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20076))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7205,8 +8672,21 @@ L_0891B538: aot_gpr_4 = (aot_gpr_29 + static_cast(576)); aot_gpr_31 = (0x0891B568u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 578u, 0x0891B568u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B568u) goto L_0891B568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B568: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7290,8 +8770,21 @@ L_0891B5E0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0891B630u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 585u, 0x0891B630u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B630u) goto L_0891B630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B630: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -7350,8 +8843,21 @@ L_0891B660: aot_gpr_4 = (aot_gpr_29 + static_cast(656)); aot_gpr_31 = (0x0891B6A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 589u, 0x0891B6A0u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B6A0u) goto L_0891B6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B6A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7393,8 +8899,21 @@ L_0891B6C8: ctx.gpr[7] = (0u | 1500u); aot_gpr_31 = (0x0891B714u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 593u, 0x0891B714u, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B714u) goto L_0891B714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B714: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7428,8 +8947,21 @@ L_0891B744: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(472), aot_gpr_4); aot_gpr_31 = (0x0891B770u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 596u, 0x0891B770u, 0x089117B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 403u, 0x089117B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B770u) goto L_0891B770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B770: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); goto L_0891B774; @@ -7449,8 +8981,21 @@ L_0891B774: L_0891B7A0: aot_gpr_31 = (0x0891B7A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 599u, 0x0891B7A8u, 0x08912A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 672u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 672u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 672u, 0x08912A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B7A8u) goto L_0891B7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B7A8: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(864), aot_run_words); @@ -7468,8 +9013,8 @@ L_0891B7A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(912)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891B7DC: @@ -7483,8 +9028,21 @@ L_0891B7DC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x0891B814u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 601u, 0x0891B814u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B814u) goto L_0891B814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B814: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] << 5u); @@ -7587,8 +9145,21 @@ L_0891B8CC: L_0891B8D4: aot_gpr_31 = (0x0891B8DCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 613u, 0x0891B8DCu, 0x08A40FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 212u, 0x08A40FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B8DCu) goto L_0891B8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B8DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[21]; @@ -7667,13 +9238,39 @@ L_0891B95C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x0891B968u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 623u, 0x0891B968u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B968u) goto L_0891B968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B968: aot_gpr_31 = (0x0891B970u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 624u, 0x0891B970u, 0x08A40C70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 148u, 0x08A40C70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B970u) goto L_0891B970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B970: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -7703,8 +9300,21 @@ L_0891B98C: L_0891B994: aot_gpr_31 = (0x0891B99Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 629u, 0x0891B99Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B99Cu) goto L_0891B99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B99C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7722,8 +9332,21 @@ L_0891B9A4: L_0891B9AC: aot_gpr_31 = (0x0891B9B4u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 632u, 0x0891B9B4u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B9B4u) goto L_0891B9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B9B4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7743,8 +9366,21 @@ L_0891B9C4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891B9D4u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 635u, 0x0891B9D4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B9D4u) goto L_0891B9D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B9D4: { const bool branch_taken = static_cast(ctx.gpr[23]) < 0; if (branch_taken) { @@ -7757,20 +9393,59 @@ L_0891B9DC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0891B9ECu); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 637u, 0x0891B9ECu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B9ECu) goto L_0891B9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B9EC: aot_gpr_31 = (0x0891B9F4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 638u, 0x0891B9F4u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891B9F4u) goto L_0891B9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891B9F4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891BA04u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 639u, 0x0891BA04u, 0x08A40B6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 131u, 0x08A40B6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BA04u) goto L_0891BA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BA04: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); { const bool branch_taken = ctx.gpr[19] != aot_gpr_4; @@ -7782,8 +9457,21 @@ L_0891BA04: L_0891BA10: aot_gpr_31 = (0x0891BA18u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 641u, 0x0891BA18u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BA18u) goto L_0891BA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BA18: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7806,8 +9494,21 @@ L_0891BA40: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x0891BA4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 644u, 0x0891BA4Cu, 0x08907E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 897u, 0x08907E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BA4Cu) goto L_0891BA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BA4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[21]; @@ -7835,8 +9536,8 @@ L_0891BA5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891BA8C: @@ -7865,8 +9566,21 @@ L_0891BAD0: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891BAE4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 649u, 0x0891BAE4u, 0x089119D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 425u, 0x089119D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BAE4u) goto L_0891BAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BAE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2228))); aot_gpr_5 = (0u | 17u); @@ -7892,8 +9606,21 @@ L_0891BAF4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0891BB30u); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 651u, 0x0891BB30u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BB30u) goto L_0891BB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BB30: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20220))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20224))); @@ -7959,8 +9686,21 @@ L_0891BB80: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0891BBBCu); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 658u, 0x0891BBBCu, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BBBCu) goto L_0891BBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BBBC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20028))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20032))); @@ -8032,8 +9772,21 @@ L_0891BC20: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x0891BC5Cu); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 666u, 0x0891BC5Cu, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BC5Cu) goto L_0891BC5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BC5C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20020))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20024))); @@ -8142,8 +9895,8 @@ L_0891BD0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891BD30: @@ -8155,8 +9908,21 @@ L_0891BD30: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x0891BD58u); aot_gpr_6 = (0u | 172u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 679u, 0x0891BD58u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BD58u) goto L_0891BD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BD58: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8169,8 +9935,21 @@ L_0891BD60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891BD70u); aot_gpr_6 = (0u | 218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 681u, 0x0891BD70u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BD70u) goto L_0891BD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BD70: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8195,8 +9974,21 @@ L_0891BD84: L_0891BD8C: aot_gpr_31 = (0x0891BD94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 685u, 0x0891BD94u, 0x08909950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 426u, 0x08909950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BD94u) goto L_0891BD94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BD94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8228,8 +10020,21 @@ L_0891BDB4: L_0891BDBC: aot_gpr_31 = (0x0891BDC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 690u, 0x0891BDC4u, 0x089098ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 416u, 0x089098ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BDC4u) goto L_0891BDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BDC4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8268,8 +10073,21 @@ L_0891BE00: aot_gpr_4 = (aot_gpr_4 + static_cast(816)); aot_gpr_31 = (0x0891BE14u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 695u, 0x0891BE14u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BE14u) goto L_0891BE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BE14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8298,8 +10116,21 @@ L_0891BE2C: aot_gpr_4 = (aot_gpr_16 + static_cast(816)); aot_gpr_31 = (0x0891BE38u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 698u, 0x0891BE38u, 0x089F3B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 628u, 0x089F3B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BE38u) goto L_0891BE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BE38: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8386,8 +10217,21 @@ L_0891BEB8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0891BEE0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0069->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0069_entry, 708u, 0x0891BEE0u, 0x08A40D58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 161u, 0x08A40D58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891BEE0u) goto L_0891BEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891BEE0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0070.cpp b/profiles/vcs/generated/generated_unit_0070.cpp index 4f6d195..b70f487 100644 --- a/profiles/vcs/generated/generated_unit_0070.cpp +++ b/profiles/vcs/generated/generated_unit_0070.cpp @@ -954,6 +954,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0891C000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -974,8 +998,21 @@ L_0891C000: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891C018u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 2u, 0x0891C018u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C018u) goto L_0891C018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C018: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0891C01C; @@ -1021,8 +1058,21 @@ L_0891C06C: aot_fpr_13 = std::bit_cast(0u); aot_gpr_31 = (0x0891C07Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(816)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 8u, 0x0891C07Cu, 0x089F4168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 15u, 0x089F4168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C07Cu) goto L_0891C07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C07C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1075,8 +1125,8 @@ L_0891C0CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891C0E8: @@ -1104,8 +1154,21 @@ L_0891C0E8: L_0891C128: aot_gpr_31 = (0x0891C130u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 16u, 0x0891C130u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C130u) goto L_0891C130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C130: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1159,19 +1222,58 @@ L_0891C168: L_0891C170: aot_gpr_31 = (0x0891C178u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 24u, 0x0891C178u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C178u) goto L_0891C178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C178: aot_gpr_31 = (0x0891C180u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 25u, 0x0891C180u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C180u) goto L_0891C180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C180: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C18Cu); aot_gpr_5 = (0u | 45u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 26u, 0x0891C18Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C18Cu) goto L_0891C18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C18C: aot_gpr_4 = (0u | 173u); { const bool branch_taken = ctx.gpr[18] == aot_gpr_4; @@ -1186,8 +1288,21 @@ L_0891C198: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C1A8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 28u, 0x0891C1A8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C1A8u) goto L_0891C1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C1A8: aot_gpr_4 = (16640u << 16u); ctx.gpr[20] = (ctx.gpr[2] | 0u); @@ -1211,8 +1326,21 @@ L_0891C1C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C1D4u); aot_gpr_6 = (0u | 275u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 31u, 0x0891C1D4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C1D4u) goto L_0891C1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C1D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1235,8 +1363,21 @@ L_0891C1E8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0891C1F8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 35u, 0x0891C1F8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C1F8u) goto L_0891C1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C1F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(16), std::bit_cast(ctx.fpr[22])); @@ -1256,8 +1397,21 @@ L_0891C210: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891C228u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 37u, 0x0891C228u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C228u) goto L_0891C228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C228: ctx.gpr[20] = (ctx.gpr[2] | 0u); goto L_0891C22C; @@ -1275,8 +1429,21 @@ L_0891C238: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0891C24Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 40u, 0x0891C24Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C24Cu) goto L_0891C24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C24C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1301,8 +1468,21 @@ L_0891C264: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C274u); aot_gpr_6 = (0u | 130u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 44u, 0x0891C274u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C274u) goto L_0891C274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C274: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -1316,8 +1496,21 @@ L_0891C280: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C290u); aot_gpr_6 = (0u | 131u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 46u, 0x0891C290u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C290u) goto L_0891C290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C290: ctx.gpr[20] = (ctx.gpr[2] | 0u); goto L_0891C294; @@ -1531,8 +1724,8 @@ L_0891C424: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891C44C: @@ -1563,8 +1756,21 @@ L_0891C484: L_0891C494: aot_gpr_31 = (0x0891C49Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 73u, 0x0891C49Cu, 0x08906F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 655u, 0x08906F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C49Cu) goto L_0891C49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C49C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1590,8 +1796,21 @@ L_0891C4C0: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0891C4D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 76u, 0x0891C4D4u, 0x088E3DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 563u, 0x088E3DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C4D4u) goto L_0891C4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C4D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1653,8 +1872,21 @@ L_0891C538: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0891C548u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 84u, 0x0891C548u, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C548u) goto L_0891C548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C548: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1676,8 +1908,21 @@ L_0891C550: L_0891C564: aot_gpr_31 = (0x0891C56Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 87u, 0x0891C56Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C56Cu) goto L_0891C56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C56C: aot_gpr_31 = (0x0891C574u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1689,8 +1934,21 @@ L_0891C574: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x0891C588u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 89u, 0x0891C588u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C588u) goto L_0891C588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C588: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x0891C594u); @@ -1716,14 +1974,40 @@ L_0891C5AC: L_0891C5B8: aot_gpr_31 = (0x0891C5C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 93u, 0x0891C5C0u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C5C0u) goto L_0891C5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C5C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C5CCu); aot_gpr_5 = (0u | 46u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 94u, 0x0891C5CCu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C5CCu) goto L_0891C5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C5CC: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1740,8 +2024,21 @@ L_0891C5CC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0891C5DCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 95u, 0x0891C5DCu, 0x08B1FB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 717u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 717u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 717u, 0x08B1FB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C5DCu) goto L_0891C5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C5DC: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -1863,8 +2160,21 @@ L_0891C6E0: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x0891C700u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 108u, 0x0891C700u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C700u) goto L_0891C700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C700: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1895,8 +2205,21 @@ L_0891C71C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x0891C740u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 112u, 0x0891C740u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C740u) goto L_0891C740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C740: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1941,8 +2264,21 @@ L_0891C7A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C7B8u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 116u, 0x0891C7B8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C7B8u) goto L_0891C7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C7B8: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1956,8 +2292,21 @@ L_0891C7C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C7D4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 118u, 0x0891C7D4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C7D4u) goto L_0891C7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C7D4: aot_gpr_4 = (16640u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -1973,8 +2322,21 @@ L_0891C7E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C7F4u); ctx.gpr[7] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 120u, 0x0891C7F4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C7F4u) goto L_0891C7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C7F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1988,8 +2350,21 @@ L_0891C7FC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C810u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 122u, 0x0891C810u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C810u) goto L_0891C810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C810: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 4u); @@ -2031,8 +2406,21 @@ L_0891C850: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891C868u); ctx.gpr[7] = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 127u, 0x0891C868u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C868u) goto L_0891C868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C868: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -2048,8 +2436,21 @@ L_0891C870: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891C888u); ctx.gpr[7] = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 129u, 0x0891C888u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C888u) goto L_0891C888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C888: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0891C88C; @@ -2071,8 +2472,21 @@ L_0891C8A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891C8B0u); aot_gpr_6 = (0u | 121u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 133u, 0x0891C8B0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C8B0u) goto L_0891C8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C8B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2113,8 +2527,21 @@ L_0891C8F0: } L_0891C8F8: aot_gpr_31 = (0x0891C900u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 138u, 0x0891C900u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C900u) goto L_0891C900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C900: ctx.fpr[26] = ctx.fpr[0] + ctx.fpr[26]; goto L_0891C904; @@ -2141,8 +2568,21 @@ L_0891C904: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0891C930u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 140u, 0x0891C930u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C930u) goto L_0891C930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C930: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -2152,8 +2592,21 @@ L_0891C930: } aot_gpr_31 = (0x0891C944u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 141u, 0x0891C944u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C944u) goto L_0891C944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C944: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 256u); @@ -2172,8 +2625,21 @@ L_0891C95C: aot_gpr_6 = (0u | 60u); aot_gpr_31 = (0x0891C974u); ctx.gpr[7] = (0u | 262u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 143u, 0x0891C974u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C974u) goto L_0891C974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C974: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -2193,8 +2659,21 @@ L_0891C998: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x0891C9A4u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 145u, 0x0891C9A4u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C9A4u) goto L_0891C9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C9A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2209,8 +2688,21 @@ L_0891C9AC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891C9C4u); ctx.gpr[7] = (0u | 135u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 147u, 0x0891C9C4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C9C4u) goto L_0891C9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C9C4: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -2226,8 +2718,21 @@ L_0891C9CC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891C9E4u); ctx.gpr[7] = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 149u, 0x0891C9E4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891C9E4u) goto L_0891C9E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891C9E4: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0891C9E8; @@ -2252,8 +2757,8 @@ L_0891C9F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891CA20: @@ -2277,8 +2782,21 @@ L_0891CA20: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(140), aot_run_words); } aot_gpr_31 = (0x0891CA74u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 153u, 0x0891CA74u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CA74u) goto L_0891CA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CA74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2228))); aot_gpr_5 = (0u | 11u); @@ -2299,8 +2817,21 @@ L_0891CA84: L_0891CA8C: aot_gpr_31 = (0x0891CA94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 156u, 0x0891CA94u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CA94u) goto L_0891CA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CA94: { const bool branch_taken = ctx.gpr[21] == ctx.gpr[2]; if (branch_taken) { @@ -2326,8 +2857,21 @@ L_0891CAA4: L_0891CAAC: aot_gpr_31 = (0x0891CAB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 160u, 0x0891CAB4u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CAB4u) goto L_0891CAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CAB4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2410,8 +2954,21 @@ L_0891CB14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891CB24u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 171u, 0x0891CB24u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CB24u) goto L_0891CB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CB24: aot_gpr_4 = (ctx.gpr[18] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2481,8 +3038,21 @@ L_0891CB78: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891CB88u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 176u, 0x0891CB88u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CB88u) goto L_0891CB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CB88: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2559,21 +3129,60 @@ L_0891CBD8: L_0891CBE8: aot_gpr_31 = (0x0891CBF0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 182u, 0x0891CBF0u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CBF0u) goto L_0891CBF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CBF0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891CC00u); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 183u, 0x0891CC00u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CC00u) goto L_0891CC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CC00: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891CC0Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 184u, 0x0891CC0Cu, 0x08910498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 75u, 0x08910498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CC0Cu) goto L_0891CC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CC0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1136))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2647,8 +3256,21 @@ L_0891CC74: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891CC80u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 194u, 0x0891CC80u, 0x08910850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 142u, 0x08910850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CC80u) goto L_0891CC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CC80: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -2670,14 +3292,40 @@ L_0891CC98: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891CCA8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 197u, 0x0891CCA8u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CCA8u) goto L_0891CCA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CCA8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891CCB4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 198u, 0x0891CCB4u, 0x08910850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 142u, 0x08910850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CCB4u) goto L_0891CCB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CCB4: aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= aot_fpr_13)) ? 0x00800000u : 0u); @@ -2695,8 +3343,21 @@ L_0891CCC8: L_0891CCD0: aot_gpr_31 = (0x0891CCD8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 201u, 0x0891CCD8u, 0x0891077Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 125u, 0x0891077Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CCD8u) goto L_0891CCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CCD8: aot_gpr_5 = (0u | 4u); { const bool branch_taken = aot_gpr_16 == aot_gpr_5; @@ -2721,8 +3382,21 @@ L_0891CCF4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1248), aot_gpr_4); aot_gpr_31 = (0x0891CD00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 205u, 0x0891CD00u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CD00u) goto L_0891CD00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CD00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2733,8 +3407,21 @@ L_0891CD00: L_0891CD08: aot_gpr_31 = (0x0891CD10u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 207u, 0x0891CD10u, 0x08912938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 648u, 0x08912938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CD10u) goto L_0891CD10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CD10: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2763,8 +3450,21 @@ L_0891CD28: L_0891CD30: aot_gpr_31 = (0x0891CD38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 212u, 0x0891CD38u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CD38u) goto L_0891CD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CD38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -2780,8 +3480,21 @@ L_0891CD38: L_0891CD54: aot_gpr_31 = (0x0891CD5Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 214u, 0x0891CD5Cu, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CD5Cu) goto L_0891CD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CD5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -2797,8 +3510,21 @@ L_0891CD5C: L_0891CD78: aot_gpr_31 = (0x0891CD80u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 216u, 0x0891CD80u, 0x089128ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 639u, 0x089128ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CD80u) goto L_0891CD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CD80: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2836,8 +3562,8 @@ L_0891CD9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891CDCC: @@ -2846,8 +3572,21 @@ L_0891CDCC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(336), aot_run_words); } aot_gpr_31 = (0x0891CE08u); ctx.gpr[30] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 222u, 0x0891CE08u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CE08u) goto L_0891CE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CE08: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(96), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4199))); @@ -2881,8 +3620,21 @@ L_0891CE40: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891CE50u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 226u, 0x0891CE50u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CE50u) goto L_0891CE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CE50: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2922,14 +3674,40 @@ L_0891CE50: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0891CE7Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 227u, 0x0891CE7Cu, 0x089107C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 129u, 0x089107C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CE7Cu) goto L_0891CE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CE7C: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0891CE88u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 228u, 0x0891CE88u, 0x089107C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 129u, 0x089107C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CE88u) goto L_0891CE88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CE88: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_12)) ? 0x00800000u : 0u); @@ -2944,15 +3722,41 @@ L_0891CE9C: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891CEACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 230u, 0x0891CEACu, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CEACu) goto L_0891CEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CEAC: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891CEBCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 231u, 0x0891CEBCu, 0x0890FAF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 830u, 0x0890FAF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CEBCu) goto L_0891CEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CEBC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2963,8 +3767,21 @@ L_0891CEBC: L_0891CEC4: aot_gpr_31 = (0x0891CECCu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 233u, 0x0891CECCu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CECCu) goto L_0891CECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CECC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(2196))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2987,15 +3804,41 @@ L_0891CEE8: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891CEF8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 236u, 0x0891CEF8u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CEF8u) goto L_0891CEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CEF8: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 25u); aot_gpr_31 = (0x0891CF08u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 237u, 0x0891CF08u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CF08u) goto L_0891CF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CF08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3008,21 +3851,60 @@ L_0891CF10: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891CF20u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 239u, 0x0891CF20u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CF20u) goto L_0891CF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CF20: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 24u); aot_gpr_31 = (0x0891CF30u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 240u, 0x0891CF30u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CF30u) goto L_0891CF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CF30: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891CF3Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 241u, 0x0891CF3Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CF3Cu) goto L_0891CF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CF3C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[19] | 0u); @@ -3060,8 +3942,21 @@ L_0891CF50: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891CF74u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 244u, 0x0891CF74u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CF74u) goto L_0891CF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CF74: ctx.gpr[11] = (aot_gpr_16 << 16u); ctx.gpr[11] = (static_cast(static_cast(ctx.gpr[11]) >> 16u)); @@ -3084,8 +3979,21 @@ L_0891CF74: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0891CFCCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 245u, 0x0891CFCCu, 0x08976C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 607u, 0x08976C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CFCCu) goto L_0891CFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CFCC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3097,8 +4005,21 @@ L_0891CFCC: L_0891CFD8: aot_gpr_31 = (0x0891CFE0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 247u, 0x0891CFE0u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891CFE0u) goto L_0891CFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891CFE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(2196))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3121,15 +4042,41 @@ L_0891CFFC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891D00Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 250u, 0x0891D00Cu, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D00Cu) goto L_0891D00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D00C: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 25u); aot_gpr_31 = (0x0891D01Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 251u, 0x0891D01Cu, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D01Cu) goto L_0891D01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D01C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3142,21 +4089,60 @@ L_0891D024: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891D034u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 253u, 0x0891D034u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D034u) goto L_0891D034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D034: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (0u | 24u); aot_gpr_31 = (0x0891D044u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 254u, 0x0891D044u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D044u) goto L_0891D044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D044: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891D050u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 255u, 0x0891D050u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D050u) goto L_0891D050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D050: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[19] | 0u); @@ -3216,8 +4202,21 @@ L_0891D0B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(332), ctx.gpr[18]); aot_gpr_31 = (0x0891D0C0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 262u, 0x0891D0C0u, 0x089128ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 639u, 0x089128ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D0C0u) goto L_0891D0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D0C0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3289,8 +4288,21 @@ L_0891D0F4: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891D144u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 266u, 0x0891D144u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D144u) goto L_0891D144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D144: aot_gpr_16 = (ctx.gpr[21] | 0u); { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); @@ -3330,14 +4342,40 @@ L_0891D144: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0891D170u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 267u, 0x0891D170u, 0x089107C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 129u, 0x089107C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D170u) goto L_0891D170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D170: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0891D17Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 268u, 0x0891D17Cu, 0x089107C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 129u, 0x089107C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D17Cu) goto L_0891D17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D17C: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_12)) ? 0x00800000u : 0u); @@ -3352,8 +4390,21 @@ L_0891D190: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891D1A0u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 270u, 0x0891D1A0u, 0x0890FAF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 830u, 0x0890FAF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D1A0u) goto L_0891D1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D1A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3449,8 +4500,21 @@ L_0891D228: L_0891D24C: aot_gpr_31 = (0x0891D254u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 280u, 0x0891D254u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D254u) goto L_0891D254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D254: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(2232))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3470,8 +4534,21 @@ L_0891D26C: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0891D27Cu); aot_gpr_5 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 283u, 0x0891D27Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D27Cu) goto L_0891D27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D27C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(1248))); aot_gpr_31 = (0x0891D288u); @@ -3499,8 +4576,8 @@ L_0891D28C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891D2C4: @@ -3517,8 +4594,21 @@ L_0891D2C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0891D328u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 287u, 0x0891D328u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D328u) goto L_0891D328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D328: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -3559,8 +4649,21 @@ L_0891D328: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(48), aot_run_words); } aot_gpr_31 = (0x0891D37Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 288u, 0x0891D37Cu, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D37Cu) goto L_0891D37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D37C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -3614,8 +4717,21 @@ L_0891D37C: ctx.gpr[19] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x0891D410u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 289u, 0x0891D410u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D410u) goto L_0891D410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D410: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -3633,13 +4749,39 @@ L_0891D410: L_0891D430: aot_gpr_31 = (0x0891D438u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 291u, 0x0891D438u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D438u) goto L_0891D438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D438: aot_gpr_31 = (0x0891D440u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 292u, 0x0891D440u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D440u) goto L_0891D440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D440: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3731,8 +4873,21 @@ L_0891D448: L_0891D47C: aot_gpr_31 = (0x0891D484u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 295u, 0x0891D484u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D484u) goto L_0891D484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D484: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3974,8 +5129,21 @@ L_0891D59C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0891D5C0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 300u, 0x0891D5C0u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D5C0u) goto L_0891D5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D5C0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4639,15 +5807,41 @@ L_0891D918: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891D940u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 329u, 0x0891D940u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D940u) goto L_0891D940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D940: aot_gpr_16 = (aot_gpr_29 + static_cast(784)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891D950u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 330u, 0x0891D950u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D950u) goto L_0891D950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D950: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4734,8 +5928,21 @@ L_0891D98C: ctx.gpr[7] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0891D9CCu); ctx.gpr[8] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 332u, 0x0891D9CCu, 0x08A19470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 125u, 0x08A19470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D9CCu) goto L_0891D9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D9CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4762,8 +5969,21 @@ L_0891D9E4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891D9F0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 336u, 0x0891D9F0u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891D9F0u) goto L_0891D9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891D9F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(2228))); aot_gpr_5 = (0u | 11u); @@ -4776,8 +5996,21 @@ L_0891D9F0: L_0891DA00: aot_gpr_31 = (0x0891DA08u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 338u, 0x0891DA08u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891DA08u) goto L_0891DA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891DA08: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -5164,8 +6397,21 @@ L_0891DBE4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891DBF4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 349u, 0x0891DBF4u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891DBF4u) goto L_0891DBF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891DBF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(2228))); { const bool branch_taken = aot_gpr_4 != aot_gpr_16; @@ -5177,8 +6423,21 @@ L_0891DBF4: L_0891DC00: aot_gpr_31 = (0x0891DC08u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 351u, 0x0891DC08u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891DC08u) goto L_0891DC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891DC08: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -5353,8 +6612,21 @@ L_0891DD00: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891DD14u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 366u, 0x0891DD14u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891DD14u) goto L_0891DD14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891DD14: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5461,8 +6733,21 @@ L_0891DDA4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891DDB4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 371u, 0x0891DDB4u, 0x089101CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 29u, 0x089101CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891DDB4u) goto L_0891DDB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891DDB4: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5773,8 +7058,21 @@ L_0891DF30: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0891DF8Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 379u, 0x0891DF8Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891DF8Cu) goto L_0891DF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891DF8C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5796,8 +7094,21 @@ L_0891DF98: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0891DFD0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 381u, 0x0891DFD0u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891DFD0u) goto L_0891DFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891DFD0: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0891DFD4; @@ -5814,8 +7125,21 @@ L_0891DFDC: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(560))); aot_gpr_31 = (0x0891DFF0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1960), ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 384u, 0x0891DFF0u, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891DFF0u) goto L_0891DFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891DFF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1960))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[2]; @@ -5839,8 +7163,21 @@ L_0891E00C: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(560))); aot_gpr_31 = (0x0891E01Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1960), ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 387u, 0x0891E01Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E01Cu) goto L_0891E01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E01C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1960))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[2]; @@ -6264,8 +7601,21 @@ L_0891E22C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0891E288u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 404u, 0x0891E288u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E288u) goto L_0891E288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E288: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6287,8 +7637,21 @@ L_0891E294: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0891E2CCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 406u, 0x0891E2CCu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E2CCu) goto L_0891E2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E2CC: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0891E2D0; @@ -6305,8 +7668,21 @@ L_0891E2D8: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(564))); aot_gpr_31 = (0x0891E2ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1960), ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 409u, 0x0891E2ECu, 0x089104F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 81u, 0x089104F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E2ECu) goto L_0891E2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E2EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1960))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[2]; @@ -6330,8 +7706,21 @@ L_0891E308: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(564))); aot_gpr_31 = (0x0891E318u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1960), ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 412u, 0x0891E318u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E318u) goto L_0891E318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E318: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1960))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[2]; @@ -6810,8 +8199,21 @@ L_0891E600: L_0891E608: aot_gpr_31 = (0x0891E610u); aot_gpr_4 = (ctx.gpr[10] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 451u, 0x0891E610u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E610u) goto L_0891E610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E610: ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1932))); ctx.gpr[8] = (0u | 1u); @@ -6923,8 +8325,21 @@ L_0891E6F4: L_0891E700: aot_gpr_31 = (0x0891E708u); aot_gpr_4 = (ctx.gpr[10] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 460u, 0x0891E708u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E708u) goto L_0891E708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E708: ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1928))); aot_gpr_4 = (0u | 1u); @@ -7021,8 +8436,21 @@ L_0891E7B8: L_0891E7E4: aot_gpr_31 = (0x0891E7ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1912))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 467u, 0x0891E7ECu, 0x089107ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 133u, 0x089107ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E7ECu) goto L_0891E7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E7EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7036,8 +8464,21 @@ L_0891E7F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891E808u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 469u, 0x0891E808u, 0x0890FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 885u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 885u, 0x0890FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E808u) goto L_0891E808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E808: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -7049,8 +8490,21 @@ L_0891E808: L_0891E814: aot_gpr_31 = (0x0891E81Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 471u, 0x0891E81Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E81Cu) goto L_0891E81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E81C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -7070,8 +8524,21 @@ L_0891E824: L_0891E838: aot_gpr_31 = (0x0891E840u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 474u, 0x0891E840u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E840u) goto L_0891E840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E840: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2232))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7091,8 +8558,21 @@ L_0891E858: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891E864u); aot_gpr_5 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 477u, 0x0891E864u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E864u) goto L_0891E864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E864: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1248))); aot_gpr_31 = (0x0891E870u); @@ -7122,8 +8602,8 @@ L_0891E874: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(2032)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891E8B4: @@ -7174,8 +8654,21 @@ L_0891E914: L_0891E920: aot_gpr_31 = (0x0891E928u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 485u, 0x0891E928u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E928u) goto L_0891E928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E928: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7250,19 +8743,58 @@ L_0891E97C: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x0891E9A0u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 495u, 0x0891E9A0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E9A0u) goto L_0891E9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E9A0: aot_gpr_31 = (0x0891E9A8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 496u, 0x0891E9A8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E9A8u) goto L_0891E9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E9A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x0891E9B4u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 497u, 0x0891E9B4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891E9B4u) goto L_0891E9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891E9B4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); ctx.fpr[22] = std::bit_cast(0u); @@ -7376,8 +8908,21 @@ L_0891EA84: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0891EA9Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 511u, 0x0891EA9Cu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EA9Cu) goto L_0891EA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EA9C: aot_gpr_31 = (0x0891EAA4u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EAA4u) goto L_0891EAA4; @@ -7426,8 +8971,21 @@ L_0891EAD8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(324))); aot_gpr_31 = (0x0891EAE8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 518u, 0x0891EAE8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EAE8u) goto L_0891EAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EAE8: aot_fpr_20 = aot_fpr_20 + ctx.fpr[26]; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= ctx.fpr[26])) ? 0x00800000u : 0u); @@ -7447,8 +9005,21 @@ L_0891EAFC: L_0891EB0C: aot_gpr_31 = (0x0891EB14u); aot_fpr_12 = aot_fpr_20 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 521u, 0x0891EB14u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EB14u) goto L_0891EB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EB14: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -7508,8 +9079,21 @@ L_0891EB5C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891EB6Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 530u, 0x0891EB6Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EB6Cu) goto L_0891EB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EB6C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7532,8 +9116,21 @@ L_0891EB7C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891EB98u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 533u, 0x0891EB98u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EB98u) goto L_0891EB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EB98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-5)); @@ -7558,8 +9155,21 @@ L_0891EBC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891EBD4u); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 536u, 0x0891EBD4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EBD4u) goto L_0891EBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EBD4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7582,8 +9192,21 @@ L_0891EBE4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891EC00u); ctx.gpr[7] = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 539u, 0x0891EC00u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EC00u) goto L_0891EC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EC00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-5)); @@ -7607,19 +9230,58 @@ L_0891EC2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891EC38u); aot_gpr_5 = (0u | 141u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 542u, 0x0891EC38u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EC38u) goto L_0891EC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EC38: aot_gpr_31 = (0x0891EC40u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 543u, 0x0891EC40u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EC40u) goto L_0891EC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EC40: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0891EC4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 544u, 0x0891EC4Cu, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EC4Cu) goto L_0891EC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EC4C: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2232))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7630,8 +9292,21 @@ L_0891EC4C: L_0891EC5C: aot_gpr_31 = (0x0891EC64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 546u, 0x0891EC64u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EC64u) goto L_0891EC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EC64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2232))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7650,8 +9325,21 @@ L_0891EC7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891EC88u); aot_gpr_5 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 549u, 0x0891EC88u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EC88u) goto L_0891EC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EC88: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -7668,8 +9356,8 @@ L_0891EC88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891ECB8: @@ -7713,8 +9401,21 @@ L_0891ED18: L_0891ED24: aot_gpr_31 = (0x0891ED2Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 554u, 0x0891ED2Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891ED2Cu) goto L_0891ED2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891ED2C: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(456))); @@ -7846,19 +9547,58 @@ L_0891EDDC: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x0891EE00u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 572u, 0x0891EE00u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EE00u) goto L_0891EE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EE00: aot_gpr_31 = (0x0891EE08u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 573u, 0x0891EE08u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EE08u) goto L_0891EE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EE08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(2256))); aot_gpr_31 = (0x0891EE14u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 574u, 0x0891EE14u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EE14u) goto L_0891EE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EE14: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -7974,8 +9714,21 @@ L_0891EEF8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891EF04u); aot_gpr_5 = (0u | 141u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 589u, 0x0891EF04u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EF04u) goto L_0891EF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EF04: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(1929)))))); @@ -8002,8 +9755,21 @@ L_0891EF28: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(324))); aot_gpr_31 = (0x0891EF38u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 592u, 0x0891EF38u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EF38u) goto L_0891EF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EF38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(476))); aot_gpr_4 = (aot_gpr_4 & 192u); @@ -8089,8 +9855,21 @@ L_0891EFC4: L_0891EFD4: aot_gpr_31 = (0x0891EFDCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 602u, 0x0891EFDCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891EFDCu) goto L_0891EFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891EFDC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0891EFE0; @@ -8110,8 +9889,21 @@ L_0891EFE4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0891F014u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 605u, 0x0891F014u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F014u) goto L_0891F014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F014: ctx.gpr[7] = (ctx.gpr[3] & ctx.gpr[19]); aot_gpr_6 = (ctx.gpr[2] & ctx.gpr[18]); @@ -8133,8 +9925,21 @@ L_0891F02C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F03Cu); aot_gpr_6 = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 608u, 0x0891F03Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F03Cu) goto L_0891F03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F03C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8153,8 +9958,21 @@ L_0891F054: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F064u); aot_gpr_6 = (0u | 215u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 611u, 0x0891F064u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F064u) goto L_0891F064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F064: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8173,8 +9991,21 @@ L_0891F07C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F08Cu); aot_gpr_6 = (0u | 216u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 614u, 0x0891F08Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F08Cu) goto L_0891F08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F08C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8193,8 +10024,21 @@ L_0891F0A4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F0B4u); aot_gpr_6 = (0u | 217u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 617u, 0x0891F0B4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F0B4u) goto L_0891F0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F0B4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8246,8 +10090,21 @@ L_0891F0F8: L_0891F104: aot_gpr_31 = (0x0891F10Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 625u, 0x0891F10Cu, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F10Cu) goto L_0891F10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F10C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); @@ -8255,15 +10112,41 @@ L_0891F10C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0891F124u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 626u, 0x0891F124u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F124u) goto L_0891F124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F124: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(80))); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F134u); aot_gpr_6 = (0u | 156u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 627u, 0x0891F134u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F134u) goto L_0891F134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F134: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8279,8 +10162,21 @@ L_0891F13C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891F158u); ctx.gpr[7] = (0u | 156u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 629u, 0x0891F158u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F158u) goto L_0891F158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F158: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-5)); @@ -8303,8 +10199,21 @@ L_0891F17C: L_0891F18C: aot_gpr_31 = (0x0891F194u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 632u, 0x0891F194u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F194u) goto L_0891F194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F194: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(2232))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8337,8 +10246,21 @@ L_0891F1BC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F1C8u); aot_gpr_5 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 637u, 0x0891F1C8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F1C8u) goto L_0891F1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F1C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -8360,19 +10282,58 @@ L_0891F1E0: L_0891F1EC: aot_gpr_31 = (0x0891F1F4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 640u, 0x0891F1F4u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F1F4u) goto L_0891F1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F1F4: aot_gpr_31 = (0x0891F1FCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 641u, 0x0891F1FCu, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F1FCu) goto L_0891F1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F1FC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F208u); aot_gpr_5 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 642u, 0x0891F208u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F208u) goto L_0891F208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F208: ctx.gpr[8] = (16640u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(80))); @@ -8381,8 +10342,21 @@ L_0891F208: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0891F224u); ctx.gpr[7] = (0u | 146u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 643u, 0x0891F224u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F224u) goto L_0891F224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F224: aot_gpr_5 = (2193u << 16u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -8452,8 +10426,21 @@ L_0891F280: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F2C4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 651u, 0x0891F2C4u, 0x08AB3BE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 958u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 958u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 958u, 0x08AB3BE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F2C4u) goto L_0891F2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F2C4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -8469,8 +10456,21 @@ L_0891F2C4: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0891F2FCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 652u, 0x0891F2FCu, 0x08AB3BE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 958u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 958u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 958u, 0x08AB3BE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F2FCu) goto L_0891F2FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F2FC: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -8490,8 +10490,8 @@ L_0891F2FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891F338: @@ -8538,16 +10538,42 @@ L_0891F38C: } L_0891F398: aot_gpr_31 = (0x0891F3A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 658u, 0x0891F3A0u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F3A0u) goto L_0891F3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F3A0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891F3B4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 659u, 0x0891F3B4u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F3B4u) goto L_0891F3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F3B4: aot_gpr_31 = (0x0891F3BCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F3BCu) goto L_0891F3BC; @@ -8604,8 +10630,21 @@ L_0891F404: } L_0891F40C: aot_gpr_31 = (0x0891F414u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 668u, 0x0891F414u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F414u) goto L_0891F414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F414: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8631,20 +10670,59 @@ L_0891F430: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0891F44Cu); aot_gpr_6 = (0u | 205u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 671u, 0x0891F44Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F44Cu) goto L_0891F44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F44C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891F458u); aot_gpr_5 = (0u | 103u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 672u, 0x0891F458u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F458u) goto L_0891F458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F458: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891F464u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 673u, 0x0891F464u, 0x08910440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 69u, 0x08910440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F464u) goto L_0891F464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F464: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2228))); aot_gpr_5 = (0u | 58u); @@ -8690,13 +10768,39 @@ L_0891F4A4: L_0891F4B0: aot_gpr_31 = (0x0891F4B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 679u, 0x0891F4B8u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F4B8u) goto L_0891F4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F4B8: aot_gpr_31 = (0x0891F4C0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 680u, 0x0891F4C0u, 0x0890B900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 899u, 0x0890B900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F4C0u) goto L_0891F4C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F4C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(456))); aot_fpr_12 = std::bit_cast(0u); @@ -8763,8 +10867,21 @@ L_0891F530: L_0891F538: aot_gpr_31 = (0x0891F540u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 688u, 0x0891F540u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F540u) goto L_0891F540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F540: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8820,8 +10937,21 @@ L_0891F580: L_0891F590: aot_gpr_31 = (0x0891F598u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 696u, 0x0891F598u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F598u) goto L_0891F598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F598: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 256u); @@ -8908,8 +11038,21 @@ L_0891F624: aot_gpr_6 = (0u | 63u); aot_gpr_31 = (0x0891F63Cu); ctx.gpr[7] = (0u | 275u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 706u, 0x0891F63Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F63Cu) goto L_0891F63C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F63C: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_0891F640; @@ -8927,8 +11070,21 @@ L_0891F648: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891F660u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 709u, 0x0891F660u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F660u) goto L_0891F660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F660: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_0891F664; @@ -8986,13 +11142,39 @@ L_0891F6D4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891F6E0u); aot_gpr_5 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 717u, 0x0891F6E0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F6E0u) goto L_0891F6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F6E0: aot_gpr_31 = (0x0891F6E8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 718u, 0x0891F6E8u, 0x089050D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 227u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 227u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 227u, 0x089050D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F6E8u) goto L_0891F6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F6E8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9004,8 +11186,21 @@ L_0891F6F0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891F6FCu); aot_gpr_5 = (0u | 102u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 720u, 0x0891F6FCu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F6FCu) goto L_0891F6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F6FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2232))); aot_gpr_5 = (0u | 61u); @@ -9027,13 +11222,39 @@ L_0891F70C: L_0891F71C: aot_gpr_31 = (0x0891F724u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 723u, 0x0891F724u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F724u) goto L_0891F724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F724: aot_gpr_31 = (0x0891F72Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 724u, 0x0891F72Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F72Cu) goto L_0891F72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F72C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9044,8 +11265,21 @@ L_0891F72C: L_0891F734: aot_gpr_31 = (0x0891F73Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 726u, 0x0891F73Cu, 0x0890BDA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 970u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 970u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 970u, 0x0890BDA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F73Cu) goto L_0891F73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F73C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(1768), aot_gpr_4); @@ -9080,8 +11314,21 @@ L_0891F760: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0891F780u); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 730u, 0x0891F780u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F780u) goto L_0891F780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F780: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -9111,8 +11358,8 @@ L_0891F798: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891F7BC: @@ -9134,8 +11381,21 @@ L_0891F7BC: L_0891F7F0: aot_gpr_31 = (0x0891F7F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 736u, 0x0891F7F8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F7F8u) goto L_0891F7F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F7F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9186,8 +11446,21 @@ L_0891F838: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891F844u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 743u, 0x0891F844u, 0x08911138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 304u, 0x08911138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F844u) goto L_0891F844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F844: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9206,8 +11479,21 @@ L_0891F854: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891F860u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 746u, 0x0891F860u, 0x08911140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 305u, 0x08911140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F860u) goto L_0891F860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F860: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9278,8 +11564,21 @@ L_0891F8C0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891F8D0u); aot_gpr_6 = (0u | 217u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 756u, 0x0891F8D0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F8D0u) goto L_0891F8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F8D0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -9295,8 +11594,21 @@ L_0891F8DC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891F8F4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 758u, 0x0891F8F4u, 0x08913524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 819u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 819u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 819u, 0x08913524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F8F4u) goto L_0891F8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F8F4: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0891F8F8; @@ -9312,8 +11624,21 @@ L_0891F900: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891F910u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 761u, 0x0891F910u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F910u) goto L_0891F910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F910: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -9378,8 +11703,21 @@ L_0891F964: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0891F97Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 769u, 0x0891F97Cu, 0x08913524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 819u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 819u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 819u, 0x08913524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F97Cu) goto L_0891F97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F97C: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0891F980; @@ -9394,8 +11732,21 @@ L_0891F988: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2244))); aot_gpr_31 = (0x0891F994u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 772u, 0x0891F994u, 0x08911138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 304u, 0x08911138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F994u) goto L_0891F994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F994: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2244))); ctx.gpr[19] = (0u | 2u); @@ -9433,8 +11784,21 @@ L_0891F9BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x0891F9C8u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 777u, 0x0891F9C8u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891F9C8u) goto L_0891F9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891F9C8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9478,8 +11842,21 @@ L_0891FA04: L_0891FA14: aot_gpr_31 = (0x0891FA1Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 783u, 0x0891FA1Cu, 0x0886D53Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 217u, 0x0886D53Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FA1Cu) goto L_0891FA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FA1C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9491,8 +11868,21 @@ L_0891FA1C: L_0891FA28: aot_gpr_31 = (0x0891FA30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 785u, 0x0891FA30u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FA30u) goto L_0891FA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FA30: aot_gpr_31 = (0x0891FA38u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -9558,8 +11948,21 @@ L_0891FA78: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891FA94u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 794u, 0x0891FA94u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FA94u) goto L_0891FA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FA94: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -9576,8 +11979,21 @@ L_0891FA9C: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891FAB8u); ctx.gpr[7] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 796u, 0x0891FAB8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FAB8u) goto L_0891FAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FAB8: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -9594,8 +12010,21 @@ L_0891FAC0: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891FADCu); ctx.gpr[7] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 798u, 0x0891FADCu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FADCu) goto L_0891FADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FADC: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -9622,8 +12051,21 @@ L_0891FAF4: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891FB10u); ctx.gpr[7] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 801u, 0x0891FB10u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FB10u) goto L_0891FB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FB10: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -9640,8 +12082,21 @@ L_0891FB18: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891FB34u); ctx.gpr[7] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 803u, 0x0891FB34u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FB34u) goto L_0891FB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FB34: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0891FB38; @@ -9660,8 +12115,21 @@ L_0891FB40: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0891FB5Cu); ctx.gpr[7] = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 806u, 0x0891FB5Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FB5Cu) goto L_0891FB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FB5C: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -9690,8 +12158,21 @@ L_0891FB78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891FB88u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 810u, 0x0891FB88u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FB88u) goto L_0891FB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FB88: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9706,8 +12187,21 @@ L_0891FB94: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(80))); aot_gpr_31 = (0x0891FBA8u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 812u, 0x0891FBA8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FBA8u) goto L_0891FBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FBA8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0891FBAC; @@ -9724,8 +12218,21 @@ L_0891FBB4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(80))); aot_gpr_31 = (0x0891FBC8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 815u, 0x0891FBC8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FBC8u) goto L_0891FBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FBC8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0891FBCC; @@ -9742,8 +12249,21 @@ L_0891FBD4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(80))); aot_gpr_31 = (0x0891FBE8u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 818u, 0x0891FBE8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FBE8u) goto L_0891FBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FBE8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0891FBEC; @@ -9881,8 +12401,8 @@ L_0891FCEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0891FD10: @@ -9895,8 +12415,21 @@ L_0891FD10: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(1284), aot_run_words); } aot_gpr_31 = (0x0891FD5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 833u, 0x0891FD5Cu, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FD5Cu) goto L_0891FD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FD5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); aot_gpr_5 = (65535u << 16u); @@ -9996,13 +12529,39 @@ L_0891FE0C: L_0891FE30: aot_gpr_31 = (0x0891FE38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 845u, 0x0891FE38u, 0x08A930F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 450u, 0x08A930F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FE38u) goto L_0891FE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FE38: aot_gpr_31 = (0x0891FE40u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 846u, 0x0891FE40u, 0x0894530Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 191u, 0x0894530Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FE40u) goto L_0891FE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FE40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (32768u << 16u); @@ -10017,8 +12576,21 @@ L_0891FE40: L_0891FE54: aot_gpr_31 = (0x0891FE5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 848u, 0x0891FE5Cu, 0x0890FA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 819u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 819u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 819u, 0x0890FA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FE5Cu) goto L_0891FE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FE5C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(-8)); { const bool branch_taken = static_cast(ctx.gpr[18]) >= 0; @@ -10070,8 +12642,21 @@ L_0891FEAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x0891FEB8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 855u, 0x0891FEB8u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FEB8u) goto L_0891FEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FEB8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (65408u << 16u); @@ -10084,13 +12669,39 @@ L_0891FEB8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(468), aot_gpr_4); aot_gpr_31 = (0x0891FEE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 856u, 0x0891FEE4u, 0x08914630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 31u, 0x08914630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FEE4u) goto L_0891FEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FEE4: aot_gpr_31 = (0x0891FEECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 857u, 0x0891FEECu, 0x0891A380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 422u, 0x0891A380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FEECu) goto L_0891FEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FEEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 65u); @@ -10103,8 +12714,21 @@ L_0891FEEC: L_0891FEFC: aot_gpr_31 = (0x0891FF04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 859u, 0x0891FF04u, 0x08912FB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 741u, 0x08912FB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FF04u) goto L_0891FF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FF04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(232)); @@ -10144,8 +12768,21 @@ L_0891FF3C: L_0891FF44: aot_gpr_31 = (0x0891FF4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 864u, 0x0891FF4Cu, 0x08860704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 68u, 0x08860704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FF4Cu) goto L_0891FF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FF4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10160,15 +12797,41 @@ L_0891FF54: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891FF6Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 866u, 0x0891FF6Cu, 0x08AD9658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 413u, 0x08AD9658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FF6Cu) goto L_0891FF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FF6C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0891FF7Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 867u, 0x0891FF7Cu, 0x08821BF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 317u, 0x08821BF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FF7Cu) goto L_0891FF7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FF7C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -10185,8 +12848,21 @@ L_0891FF8C: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0891FF9Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 870u, 0x0891FF9Cu, 0x08ADA2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 554u, 0x08ADA2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FF9Cu) goto L_0891FF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FF9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 58u); @@ -10199,8 +12875,21 @@ L_0891FF9C: L_0891FFAC: aot_gpr_31 = (0x0891FFB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0070->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0070_entry, 872u, 0x0891FFB4u, 0x08833D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 831u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 831u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 831u, 0x08833D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0891FFB4u) goto L_0891FFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0891FFB4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; diff --git a/profiles/vcs/generated/generated_unit_0071.cpp b/profiles/vcs/generated/generated_unit_0071.cpp index 4f4667d..d089d14 100644 --- a/profiles/vcs/generated/generated_unit_0071.cpp +++ b/profiles/vcs/generated/generated_unit_0071.cpp @@ -1173,6 +1173,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08920000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1512,8 +1536,21 @@ L_089202CC: aot_gpr_5 = (aot_gpr_6 + aot_gpr_5); aot_gpr_31 = (0x089202F8u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 23u, 0x089202F8u, 0x089990E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 119u, 0x089990E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089202F8u) goto L_089202F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089202F8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1530,14 +1567,40 @@ L_08920300: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08920320u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 25u, 0x08920320u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920320u) goto L_08920320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920320: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1784))); aot_gpr_31 = (0x0892032Cu); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 26u, 0x0892032Cu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892032Cu) goto L_0892032C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892032C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1914))); @@ -1642,8 +1705,21 @@ L_089203BC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08920420u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 34u, 0x08920420u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920420u) goto L_08920420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920420: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1682,8 +1758,21 @@ L_08920438: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x0892048Cu); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 37u, 0x0892048Cu, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892048Cu) goto L_0892048C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892048C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1780)))))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -1692,8 +1781,21 @@ L_0892048C: L_08920498: aot_gpr_31 = (0x089204A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 39u, 0x089204A0u, 0x08860400u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 12u, 0x08860400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089204A0u) goto L_089204A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089204A0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1704,8 +1806,21 @@ L_089204A0: L_089204A8: aot_gpr_31 = (0x089204B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 41u, 0x089204B0u, 0x08860704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 68u, 0x08860704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089204B0u) goto L_089204B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089204B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 256u); @@ -1734,8 +1849,21 @@ L_089204C8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(456), aot_gpr_4); aot_gpr_31 = (0x08920508u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 43u, 0x08920508u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920508u) goto L_08920508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920508: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1746,8 +1874,21 @@ L_08920508: L_08920510: aot_gpr_31 = (0x08920518u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 45u, 0x08920518u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920518u) goto L_08920518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920518: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1767,8 +1908,21 @@ L_0892052C: aot_gpr_4 = (ctx.gpr[29] + static_cast(96)); aot_gpr_31 = (0x08920538u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 48u, 0x08920538u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920538u) goto L_08920538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920538: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); @@ -1823,8 +1977,21 @@ L_08920538: aot_gpr_5 = (ctx.gpr[29] + static_cast(80)); aot_gpr_31 = (0x08920610u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 49u, 0x08920610u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920610u) goto L_08920610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920610: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); @@ -1839,8 +2006,21 @@ L_08920610: L_08920628: aot_gpr_31 = (0x08920630u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 51u, 0x08920630u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920630u) goto L_08920630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920630: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (0u | 1u); @@ -1853,8 +2033,21 @@ L_08920638: aot_gpr_5 = (ctx.gpr[29] + static_cast(96)); aot_gpr_31 = (0x08920644u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 53u, 0x08920644u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920644u) goto L_08920644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920644: aot_gpr_4 = (0u | 1u); goto L_08920648; @@ -1883,8 +2076,21 @@ L_08920648: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089206A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 55u, 0x089206A8u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089206A8u) goto L_089206A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089206A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(168))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1905,8 +2111,21 @@ L_089206B8: L_089206C4: aot_gpr_31 = (0x089206CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 58u, 0x089206CCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089206CCu) goto L_089206CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089206CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1917,8 +2136,21 @@ L_089206CC: L_089206D4: aot_gpr_31 = (0x089206DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 60u, 0x089206DCu, 0x089130B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 756u, 0x089130B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089206DCu) goto L_089206DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089206DC: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); @@ -1966,8 +2198,21 @@ L_08920720: L_0892073C: aot_gpr_31 = (0x08920744u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 65u, 0x08920744u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920744u) goto L_08920744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920744: if (aot_gpr_2 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2236))); @@ -2109,8 +2354,21 @@ L_08920848: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08920864u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 81u, 0x08920864u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920864u) goto L_08920864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920864: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); if (aot_gpr_4 == 0u) { @@ -2134,8 +2392,21 @@ L_08920880: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08920890u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 85u, 0x08920890u, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920890u) goto L_08920890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920890: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(468))); goto L_08920894; @@ -2211,15 +2482,41 @@ L_08920918: } L_08920924: aot_gpr_31 = (0x0892092Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 95u, 0x0892092Cu, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892092Cu) goto L_0892092C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892092C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0892093Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 96u, 0x0892093Cu, 0x08A0343Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 858u, 0x08A0343Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892093Cu) goto L_0892093C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892093C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2240,8 +2537,21 @@ L_08920944: L_08920954: aot_gpr_31 = (0x0892095Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 99u, 0x0892095Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892095Cu) goto L_0892095C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892095C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2256,8 +2566,21 @@ L_08920964: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0892097Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 101u, 0x0892097Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892097Cu) goto L_0892097C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892097C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2291,8 +2614,8 @@ L_089209A8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12480))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089209C0: @@ -2302,8 +2625,21 @@ L_089209C0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x089209D8u); ctx.gpr[21] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 106u, 0x089209D8u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089209D8u) goto L_089209D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089209D8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -2400,8 +2736,21 @@ L_08920A70: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(196), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08920A94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 116u, 0x08920A94u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920A94u) goto L_08920A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920A94: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (0u | 0u); @@ -2416,14 +2765,40 @@ L_08920A94: aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x08920AC8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 117u, 0x08920AC8u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920AC8u) goto L_08920AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920AC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08920AD4u); aot_gpr_5 = (0u | 103u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 118u, 0x08920AD4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920AD4u) goto L_08920AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920AD4: ctx.gpr[10] = (17046u << 16u); ctx.gpr[8] = (ctx.gpr[18] & 255u); @@ -2434,8 +2809,21 @@ L_08920AD4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08920AF8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 119u, 0x08920AF8u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920AF8u) goto L_08920AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920AF8: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1252))); @@ -2564,8 +2952,21 @@ L_08920BD4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08920BF0u); aot_gpr_6 = (0u | 167u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 129u, 0x08920BF0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920BF0u) goto L_08920BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920BF0: aot_gpr_31 = (0x08920BF8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2616,8 +3017,21 @@ L_08920C50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08920C5Cu); aot_gpr_5 = (0u | 103u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 136u, 0x08920C5Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920C5Cu) goto L_08920C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920C5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2662,8 +3076,21 @@ L_08920CA0: L_08920CA4: aot_gpr_31 = (0x08920CACu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 143u, 0x08920CACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920CACu) goto L_08920CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920CAC: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08920CB0; @@ -2886,16 +3313,42 @@ L_08920DB0: } L_08920DB8: aot_gpr_31 = (0x08920DC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 148u, 0x08920DC0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920DC0u) goto L_08920DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920DC0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08920DC4; L_08920DC4: aot_gpr_31 = (0x08920DCCu); aot_fpr_12 = aot_fpr_22 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 150u, 0x08920DCCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920DCCu) goto L_08920DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920DCC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(288))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(272))); @@ -2931,8 +3384,21 @@ L_08920E0C: } L_08920E14: aot_gpr_31 = (0x08920E1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 154u, 0x08920E1Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920E1Cu) goto L_08920E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920E1C: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08920E20; @@ -2994,8 +3460,21 @@ L_08920E20: L_08920E70: aot_gpr_31 = (0x08920E78u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 157u, 0x08920E78u, 0x08905990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 350u, 0x08905990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920E78u) goto L_08920E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920E78: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -3012,8 +3491,21 @@ L_08920E98: aot_gpr_4 = (ctx.gpr[29] + static_cast(320)); aot_gpr_31 = (0x08920EA4u); aot_gpr_5 = (ctx.gpr[22] + static_cast(320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 159u, 0x08920EA4u, 0x08904B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 179u, 0x08904B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920EA4u) goto L_08920EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920EA4: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3039,14 +3531,40 @@ L_08920EC0: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08920EDCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 162u, 0x08920EDCu, 0x08904BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 182u, 0x08904BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920EDCu) goto L_08920EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920EDC: aot_gpr_5 = (ctx.gpr[22] + static_cast(320)); aot_gpr_31 = (0x08920EE8u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 163u, 0x08920EE8u, 0x08904B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 179u, 0x08904B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920EE8u) goto L_08920EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920EE8: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55051u); @@ -3105,8 +3623,21 @@ L_08920F20: L_08920F4C: aot_gpr_31 = (0x08920F54u); aot_gpr_5 = (ctx.gpr[22] + static_cast(320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 167u, 0x08920F54u, 0x08904B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 179u, 0x08904B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920F54u) goto L_08920F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920F54: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -3121,8 +3652,21 @@ L_08920F68: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08920F78u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 169u, 0x08920F78u, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920F78u) goto L_08920F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920F78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3134,20 +3678,59 @@ L_08920F80: aot_fpr_22 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08920F8Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 171u, 0x08920F8Cu, 0x08905A28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 356u, 0x08905A28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920F8Cu) goto L_08920F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920F8C: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08920F98u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 172u, 0x08920F98u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920F98u) goto L_08920F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920F98: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08920FA4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 173u, 0x08920FA4u, 0x08904B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 179u, 0x08904B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920FA4u) goto L_08920FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920FA4: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55051u); @@ -3174,20 +3757,59 @@ L_08920FC0: L_08920FDC: aot_gpr_31 = (0x08920FE4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 176u, 0x08920FE4u, 0x08905A28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 356u, 0x08905A28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920FE4u) goto L_08920FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920FE4: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08920FF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 177u, 0x08920FF0u, 0x08904CF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 197u, 0x08904CF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920FF0u) goto L_08920FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920FF0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08920FFCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 178u, 0x08920FFCu, 0x08904B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 179u, 0x08904B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08920FFCu) goto L_08920FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08920FFC: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -3200,14 +3822,40 @@ L_08920FFC: L_08921010: aot_gpr_31 = (0x08921018u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 180u, 0x08921018u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921018u) goto L_08921018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921018: aot_gpr_4 = (ctx.gpr[29] + static_cast(320)); aot_gpr_31 = (0x08921024u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 181u, 0x08921024u, 0x08904B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 179u, 0x08904B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921024u) goto L_08921024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921024: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -3222,8 +3870,21 @@ L_08921038: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08921048u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 183u, 0x08921048u, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921048u) goto L_08921048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921048: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3236,8 +3897,21 @@ L_08921048: L_08921054: aot_gpr_31 = (0x0892105Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 185u, 0x0892105Cu, 0x08905EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 403u, 0x08905EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892105Cu) goto L_0892105C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892105C: aot_gpr_4 = (16752u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3265,35 +3939,100 @@ L_08921090: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892109Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 189u, 0x0892109Cu, 0x08905804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 336u, 0x08905804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892109Cu) goto L_0892109C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892109C: ctx.gpr[23] = (ctx.gpr[29] + static_cast(352)); aot_gpr_31 = (0x089210A8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 190u, 0x089210A8u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089210A8u) goto L_089210A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089210A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089210B8u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 191u, 0x089210B8u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089210B8u) goto L_089210B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089210B8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089210CCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 192u, 0x089210CCu, 0x08904C30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 185u, 0x08904C30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089210CCu) goto L_089210CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089210CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089210D8u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 193u, 0x089210D8u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089210D8u) goto L_089210D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089210D8: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_6 = (ctx.gpr[23] + static_cast(28)); @@ -3301,13 +4040,39 @@ L_089210D8: aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x089210F0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 194u, 0x089210F0u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089210F0u) goto L_089210F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089210F0: aot_gpr_31 = (0x089210F8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 195u, 0x089210F8u, 0x08905CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 388u, 0x08905CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089210F8u) goto L_089210F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089210F8: aot_gpr_4 = (0u + static_cast(-939)); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3353,13 +4118,39 @@ L_0892112C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08921148u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 201u, 0x08921148u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921148u) goto L_08921148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921148: aot_gpr_31 = (0x08921150u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 202u, 0x08921150u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921150u) goto L_08921150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921150: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_fpr_13 = std::bit_cast(0u); @@ -3373,8 +4164,21 @@ L_08921150: L_08921168: aot_gpr_31 = (0x08921170u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 204u, 0x08921170u, 0x08905CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 388u, 0x08905CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921170u) goto L_08921170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921170: aot_gpr_4 = (0u + static_cast(-939)); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3386,14 +4190,40 @@ L_08921170: L_0892117C: aot_gpr_31 = (0x08921184u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 206u, 0x08921184u, 0x0890F00Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 706u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 706u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 706u, 0x0890F00Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921184u) goto L_08921184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921184: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921190u); aot_gpr_5 = (0u | 103u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 207u, 0x08921190u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921190u) goto L_08921190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921190: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3404,8 +4234,21 @@ L_08921190: L_08921198: aot_gpr_31 = (0x089211A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 209u, 0x089211A0u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089211A0u) goto L_089211A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089211A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 17u); @@ -3422,14 +4265,40 @@ L_089211B0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089211C8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 211u, 0x089211C8u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089211C8u) goto L_089211C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089211C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089211D4u); aot_gpr_5 = (0u | 700u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 212u, 0x089211D4u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089211D4u) goto L_089211D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089211D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3440,20 +4309,59 @@ L_089211D4: L_089211DC: aot_gpr_31 = (0x089211E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 214u, 0x089211E4u, 0x08905EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 403u, 0x08905EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089211E4u) goto L_089211E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089211E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089211F4u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0058. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 215u, 0x089211F4u, 0x088EE9E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0058_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0058_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0058_entry, 58u, 665u, 0x088EE9E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089211F4u) goto L_089211F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089211F4: aot_gpr_31 = (0x089211FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 216u, 0x089211FCu, 0x08911218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 320u, 0x08911218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089211FCu) goto L_089211FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089211FC: { const bool branch_taken = aot_gpr_2 == ctx.gpr[22]; if (branch_taken) { @@ -3477,8 +4385,21 @@ L_08921210: L_08921218: aot_gpr_31 = (0x08921220u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 220u, 0x08921220u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921220u) goto L_08921220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921220: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3501,8 +4422,21 @@ L_08921230: L_08921238: aot_gpr_31 = (0x08921240u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 224u, 0x08921240u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921240u) goto L_08921240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921240: aot_gpr_4 = (0u | 24u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3514,8 +4448,21 @@ L_08921240: L_0892124C: aot_gpr_31 = (0x08921254u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 226u, 0x08921254u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921254u) goto L_08921254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921254: aot_gpr_4 = (0u | 39u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3527,8 +4474,21 @@ L_08921254: L_08921260: aot_gpr_31 = (0x08921268u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 228u, 0x08921268u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921268u) goto L_08921268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921268: aot_gpr_4 = (0u | 40u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3540,8 +4500,21 @@ L_08921268: L_08921274: aot_gpr_31 = (0x0892127Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 230u, 0x0892127Cu, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892127Cu) goto L_0892127C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892127C: aot_gpr_4 = (0u | 43u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3553,8 +4526,21 @@ L_0892127C: L_08921288: aot_gpr_31 = (0x08921290u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 232u, 0x08921290u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921290u) goto L_08921290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921290: aot_gpr_4 = (0u | 44u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3566,8 +4552,21 @@ L_08921290: L_0892129C: aot_gpr_31 = (0x089212A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 234u, 0x089212A4u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089212A4u) goto L_089212A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089212A4: aot_gpr_4 = (0u | 45u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3579,8 +4578,21 @@ L_089212A4: L_089212B0: aot_gpr_31 = (0x089212B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 236u, 0x089212B8u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089212B8u) goto L_089212B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089212B8: aot_gpr_4 = (0u | 53u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3592,8 +4604,21 @@ L_089212B8: L_089212C4: aot_gpr_31 = (0x089212CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 238u, 0x089212CCu, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089212CCu) goto L_089212CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089212CC: aot_gpr_4 = (0u | 18u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3605,8 +4630,21 @@ L_089212CC: L_089212D8: aot_gpr_31 = (0x089212E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 240u, 0x089212E0u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089212E0u) goto L_089212E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089212E0: aot_gpr_4 = (0u | 49u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3618,8 +4656,21 @@ L_089212E0: L_089212EC: aot_gpr_31 = (0x089212F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 242u, 0x089212F4u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089212F4u) goto L_089212F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089212F4: aot_gpr_4 = (0u | 25u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3651,19 +4702,58 @@ L_08921314: L_0892131C: aot_gpr_31 = (0x08921324u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 247u, 0x08921324u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921324u) goto L_08921324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921324: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08921330u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 248u, 0x08921330u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921330u) goto L_08921330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921330: aot_gpr_31 = (0x08921338u); aot_fpr_12 = aot_fpr_20 - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 249u, 0x08921338u, 0x08905990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 350u, 0x08905990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921338u) goto L_08921338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921338: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -3680,8 +4770,21 @@ L_08921354: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08921360u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 251u, 0x08921360u, 0x0890DF64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 479u, 0x0890DF64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921360u) goto L_08921360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921360: if (aot_gpr_2 == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1252))); @@ -3691,8 +4794,21 @@ L_08921360: L_08921368: aot_gpr_31 = (0x08921370u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 253u, 0x08921370u, 0x0890E2FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 513u, 0x0890E2FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921370u) goto L_08921370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921370: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1252))); @@ -3713,8 +4829,21 @@ L_08921378: L_0892138C: aot_gpr_31 = (0x08921394u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 256u, 0x08921394u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921394u) goto L_08921394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921394: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 17u); @@ -3726,8 +4855,21 @@ L_08921394: L_089213A4: aot_gpr_31 = (0x089213ACu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 258u, 0x089213ACu, 0x08905C2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 382u, 0x08905C2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089213ACu) goto L_089213AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089213AC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3738,8 +4880,21 @@ L_089213AC: L_089213B4: aot_gpr_31 = (0x089213BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 260u, 0x089213BCu, 0x08905FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 415u, 0x08905FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089213BCu) goto L_089213BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089213BC: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3750,8 +4905,21 @@ L_089213BC: } L_089213C8: aot_gpr_31 = (0x089213D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 262u, 0x089213D0u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089213D0u) goto L_089213D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089213D0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3772,8 +4940,21 @@ L_089213D0: } L_08921404: aot_gpr_31 = (0x0892140Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 264u, 0x0892140Cu, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892140Cu) goto L_0892140C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892140C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -3786,8 +4967,21 @@ L_0892140C: L_0892141C: aot_gpr_31 = (0x08921424u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 266u, 0x08921424u, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921424u) goto L_08921424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921424: if (aot_gpr_2 == ctx.gpr[22]) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1252))); @@ -3799,8 +4993,21 @@ L_0892142C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0892143Cu); aot_gpr_6 = (0u | 4000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 268u, 0x0892143Cu, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892143Cu) goto L_0892143C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892143C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (49152u << 16u); @@ -3823,8 +5030,21 @@ L_0892145C: L_08921464: aot_gpr_31 = (0x0892146Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 271u, 0x0892146Cu, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892146Cu) goto L_0892146C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892146C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 24u); @@ -3838,8 +5058,21 @@ L_0892147C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921488u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 273u, 0x08921488u, 0x0890FF6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 888u, 0x0890FF6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921488u) goto L_08921488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921488: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1252))); @@ -3852,8 +5085,21 @@ L_08921490: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892149Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 275u, 0x0892149Cu, 0x0892D2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 213u, 0x0892D2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892149Cu) goto L_0892149C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892149C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); @@ -3875,8 +5121,21 @@ L_0892149C: L_089214CC: aot_gpr_31 = (0x089214D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 277u, 0x089214D4u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089214D4u) goto L_089214D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089214D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 24u); @@ -3890,8 +5149,21 @@ L_089214E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089214F0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 279u, 0x089214F0u, 0x0890FF6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 888u, 0x0890FF6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089214F0u) goto L_089214F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089214F0: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1252))); @@ -3904,8 +5176,21 @@ L_089214F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921504u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 281u, 0x08921504u, 0x0892D2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 213u, 0x0892D2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921504u) goto L_08921504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921504: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); @@ -3947,8 +5232,21 @@ L_08921554: ctx.gpr[18] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921560u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 286u, 0x08921560u, 0x08905C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 380u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 380u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 380u, 0x08905C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921560u) goto L_08921560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921560: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3959,23 +5257,75 @@ L_08921560: L_08921568: aot_gpr_31 = (0x08921570u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 288u, 0x08921570u, 0x08907B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 845u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 845u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 845u, 0x08907B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921570u) goto L_08921570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921570: aot_gpr_31 = (0x08921578u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 289u, 0x08921578u, 0x0891351Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 818u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 818u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 818u, 0x0891351Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921578u) goto L_08921578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921578: aot_gpr_31 = (0x08921580u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 290u, 0x08921580u, 0x089134D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 814u, 0x089134D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921580u) goto L_08921580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921580: aot_gpr_31 = (0x08921588u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 291u, 0x08921588u, 0x089134C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 813u, 0x089134C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921588u) goto L_08921588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921588: { const bool branch_taken = 0u == 0u; ctx.gpr[22] = (aot_gpr_2 | 0u); @@ -3987,16 +5337,42 @@ L_08921588: L_08921590: aot_gpr_31 = (0x08921598u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 293u, 0x08921598u, 0x08905F98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 409u, 0x08905F98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921598u) goto L_08921598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921598: ctx.gpr[22] = (0u < aot_gpr_2 ? 1u : 0u); goto L_0892159C; L_0892159C: aot_gpr_31 = (0x089215A4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 295u, 0x089215A4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089215A4u) goto L_089215A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089215A4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4025,8 +5401,21 @@ L_089215C4: } L_089215D4: aot_gpr_31 = (0x089215DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 299u, 0x089215DCu, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089215DCu) goto L_089215DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089215DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1736))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -4047,8 +5436,21 @@ L_089215F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08921600u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 302u, 0x08921600u, 0x0894751Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 668u, 0x0894751Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921600u) goto L_08921600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921600: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -4056,24 +5458,76 @@ L_08921600: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08921618u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 303u, 0x08921618u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921618u) goto L_08921618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921618: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08921624u); aot_gpr_5 = (0u | 1300u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 304u, 0x08921624u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921624u) goto L_08921624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921624: aot_gpr_31 = (0x0892162Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 305u, 0x0892162Cu, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892162Cu) goto L_0892162C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892162C: aot_gpr_31 = (0x08921634u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 306u, 0x08921634u, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921634u) goto L_08921634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921634: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4084,19 +5538,58 @@ L_08921634: L_0892163C: aot_gpr_31 = (0x08921644u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 308u, 0x08921644u, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921644u) goto L_08921644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921644: aot_gpr_31 = (0x0892164Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 309u, 0x0892164Cu, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892164Cu) goto L_0892164C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892164C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08921658u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 310u, 0x08921658u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921658u) goto L_08921658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921658: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4108,19 +5601,58 @@ L_08921658: L_08921664: aot_gpr_31 = (0x0892166Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 312u, 0x0892166Cu, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892166Cu) goto L_0892166C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892166C: aot_gpr_31 = (0x08921674u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 313u, 0x08921674u, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921674u) goto L_08921674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921674: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08921680u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 314u, 0x08921680u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921680u) goto L_08921680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921680: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4132,19 +5664,58 @@ L_08921680: L_0892168C: aot_gpr_31 = (0x08921694u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 316u, 0x08921694u, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921694u) goto L_08921694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921694: aot_gpr_31 = (0x0892169Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 317u, 0x0892169Cu, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892169Cu) goto L_0892169C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892169C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089216A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 318u, 0x089216A8u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089216A8u) goto L_089216A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089216A8: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4170,14 +5741,40 @@ L_089216C4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089216DCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 321u, 0x089216DCu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089216DCu) goto L_089216DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089216DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089216E8u); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 322u, 0x089216E8u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089216E8u) goto L_089216E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089216E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1252))); goto L_089216EC; @@ -4202,8 +5799,21 @@ L_08921708: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921714u); aot_gpr_5 = (0u | 104u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 326u, 0x08921714u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921714u) goto L_08921714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921714: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4215,8 +5825,21 @@ L_0892171C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921728u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0058. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 328u, 0x08921728u, 0x088ED6F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0058_entry(rt, ctx, 402u, aot_mem); +#else + recomp_unit_0058_entry(rt, ctx, 402u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0058_entry, 58u, 402u, 0x088ED6F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921728u) goto L_08921728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921728: aot_gpr_31 = (0x08921730u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -4233,13 +5856,39 @@ L_08921738: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921744u); aot_gpr_5 = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 331u, 0x08921744u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921744u) goto L_08921744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921744: aot_gpr_31 = (0x0892174Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 332u, 0x0892174Cu, 0x0890711Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 697u, 0x0890711Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892174Cu) goto L_0892174C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892174C: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4251,8 +5900,21 @@ L_0892174C: L_08921758: aot_gpr_31 = (0x08921760u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 334u, 0x08921760u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921760u) goto L_08921760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921760: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4282,8 +5944,21 @@ L_08921784: } L_08921794: aot_gpr_31 = (0x0892179Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 338u, 0x0892179Cu, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892179Cu) goto L_0892179C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892179C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1736))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -4297,8 +5972,21 @@ L_089217AC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089217B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 340u, 0x089217B8u, 0x0894751Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 668u, 0x0894751Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089217B8u) goto L_089217B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089217B8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -4306,24 +5994,76 @@ L_089217B8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089217D0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 341u, 0x089217D0u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089217D0u) goto L_089217D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089217D0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089217DCu); aot_gpr_5 = (0u | 1300u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 342u, 0x089217DCu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089217DCu) goto L_089217DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089217DC: aot_gpr_31 = (0x089217E4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 343u, 0x089217E4u, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089217E4u) goto L_089217E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089217E4: aot_gpr_31 = (0x089217ECu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 344u, 0x089217ECu, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089217ECu) goto L_089217EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089217EC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4334,19 +6074,58 @@ L_089217EC: L_089217F4: aot_gpr_31 = (0x089217FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 346u, 0x089217FCu, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089217FCu) goto L_089217FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089217FC: aot_gpr_31 = (0x08921804u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 347u, 0x08921804u, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921804u) goto L_08921804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921804: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08921810u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 348u, 0x08921810u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921810u) goto L_08921810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921810: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4358,19 +6137,58 @@ L_08921810: L_0892181C: aot_gpr_31 = (0x08921824u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 350u, 0x08921824u, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921824u) goto L_08921824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921824: aot_gpr_31 = (0x0892182Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 351u, 0x0892182Cu, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892182Cu) goto L_0892182C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892182C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08921838u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 352u, 0x08921838u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921838u) goto L_08921838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921838: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4382,19 +6200,58 @@ L_08921838: L_08921844: aot_gpr_31 = (0x0892184Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 354u, 0x0892184Cu, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892184Cu) goto L_0892184C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892184C: aot_gpr_31 = (0x08921854u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 355u, 0x08921854u, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921854u) goto L_08921854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921854: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08921860u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 356u, 0x08921860u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921860u) goto L_08921860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921860: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4418,8 +6275,21 @@ L_08921878: L_08921880: aot_gpr_31 = (0x08921888u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 360u, 0x08921888u, 0x08905BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 379u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 379u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 379u, 0x08905BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921888u) goto L_08921888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921888: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4430,8 +6300,21 @@ L_08921888: L_08921890: aot_gpr_31 = (0x08921898u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 362u, 0x08921898u, 0x08905FA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 410u, 0x08905FA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921898u) goto L_08921898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921898: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4443,18 +6326,57 @@ L_08921898: L_089218A4: aot_gpr_31 = (0x089218ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 364u, 0x089218ACu, 0x08905CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 388u, 0x08905CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089218ACu) goto L_089218AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089218AC: aot_gpr_31 = (0x089218B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 365u, 0x089218B4u, 0x08905B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 367u, 0x08905B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089218B4u) goto L_089218B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089218B4: aot_gpr_31 = (0x089218BCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 366u, 0x089218BCu, 0x08905B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 368u, 0x08905B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089218BCu) goto L_089218BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089218BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (16448u << 16u); @@ -4469,18 +6391,57 @@ L_089218BC: L_089218D8: aot_gpr_31 = (0x089218E0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 368u, 0x089218E0u, 0x08905CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 388u, 0x08905CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089218E0u) goto L_089218E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089218E0: aot_gpr_31 = (0x089218E8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 369u, 0x089218E8u, 0x08905B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 367u, 0x08905B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089218E8u) goto L_089218E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089218E8: aot_gpr_31 = (0x089218F0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 370u, 0x089218F0u, 0x08905B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 368u, 0x08905B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089218F0u) goto L_089218F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089218F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_4 = (16448u << 16u); @@ -4508,8 +6469,21 @@ L_0892191C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921928u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 374u, 0x08921928u, 0x0892D2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 213u, 0x0892D2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921928u) goto L_08921928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921928: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4532,28 +6506,80 @@ L_08921938: L_08921940: aot_gpr_31 = (0x08921948u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 378u, 0x08921948u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921948u) goto L_08921948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921948: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08921954u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 379u, 0x08921954u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921954u) goto L_08921954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921954: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_31 = (0x08921960u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 380u, 0x08921960u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921960u) goto L_08921960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921960: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(288))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921974u); ctx.fpr[24] = aot_fpr_12 + aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 381u, 0x08921974u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921974u) goto L_08921974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921974: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(292))); @@ -4562,21 +6588,60 @@ L_08921974: ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08921990u); ctx.fpr[15] = ctx.fpr[15] + ctx.fpr[16]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 382u, 0x08921990u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921990u) goto L_08921990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921990: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0892199Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 383u, 0x0892199Cu, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892199Cu) goto L_0892199C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892199C: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[26]; aot_gpr_4 = (ctx.gpr[29] + static_cast(360)); aot_gpr_31 = (0x089219ACu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(360), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 384u, 0x089219ACu, 0x08904B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 175u, 0x08904B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089219ACu) goto L_089219AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089219AC: aot_gpr_4 = (16457u << 16u); aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4598,19 +6663,58 @@ L_089219CC: L_089219DC: aot_gpr_31 = (0x089219E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 387u, 0x089219E4u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089219E4u) goto L_089219E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089219E4: aot_gpr_31 = (0x089219ECu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 388u, 0x089219ECu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089219ECu) goto L_089219EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089219EC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089219F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 389u, 0x089219F8u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089219F8u) goto L_089219F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089219F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 11u); @@ -4623,8 +6727,21 @@ L_089219F8: L_08921A08: aot_gpr_31 = (0x08921A10u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 391u, 0x08921A10u, 0x08907484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 752u, 0x08907484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921A10u) goto L_08921A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921A10: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4635,8 +6752,21 @@ L_08921A10: L_08921A18: aot_gpr_31 = (0x08921A20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 393u, 0x08921A20u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921A20u) goto L_08921A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921A20: aot_gpr_4 = (0u | 12u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4648,8 +6778,21 @@ L_08921A20: L_08921A2C: aot_gpr_31 = (0x08921A34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 395u, 0x08921A34u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921A34u) goto L_08921A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921A34: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4661,8 +6804,21 @@ L_08921A34: L_08921A40: aot_gpr_31 = (0x08921A48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 397u, 0x08921A48u, 0x08907484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 752u, 0x08907484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921A48u) goto L_08921A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921A48: aot_gpr_31 = (0x08921A50u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4700,8 +6856,21 @@ L_08921A80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921A90u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 402u, 0x08921A90u, 0x0890DF64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 479u, 0x0890DF64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921A90u) goto L_08921A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921A90: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4712,8 +6881,21 @@ L_08921A90: L_08921A98: aot_gpr_31 = (0x08921AA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 404u, 0x08921AA0u, 0x0890E2FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 513u, 0x0890E2FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921AA0u) goto L_08921AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921AA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4735,8 +6917,21 @@ L_08921AA8: L_08921AC4: aot_gpr_31 = (0x08921ACCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 407u, 0x08921ACCu, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921ACCu) goto L_08921ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921ACC: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4752,19 +6947,58 @@ L_08921AD8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08921AF0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 409u, 0x08921AF0u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921AF0u) goto L_08921AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921AF0: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08921AFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 410u, 0x08921AFCu, 0x0890D7B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 361u, 0x0890D7B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921AFCu) goto L_08921AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921AFC: aot_gpr_31 = (0x08921B04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 411u, 0x08921B04u, 0x08907484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 752u, 0x08907484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921B04u) goto L_08921B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921B04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4772,20 +7006,59 @@ L_08921B04: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08921B1Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 412u, 0x08921B1Cu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921B1Cu) goto L_08921B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921B1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921B28u); aot_gpr_5 = (0u | 3000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 413u, 0x08921B28u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921B28u) goto L_08921B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921B28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921B34u); aot_gpr_5 = (0u | 157u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 414u, 0x08921B34u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921B34u) goto L_08921B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921B34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4796,8 +7069,21 @@ L_08921B34: L_08921B3C: aot_gpr_31 = (0x08921B44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 416u, 0x08921B44u, 0x08906550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 513u, 0x08906550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921B44u) goto L_08921B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921B44: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4809,8 +7095,21 @@ L_08921B44: L_08921B50: aot_gpr_31 = (0x08921B58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 418u, 0x08921B58u, 0x08909054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 281u, 0x08909054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921B58u) goto L_08921B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921B58: aot_gpr_4 = (0u | 13u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4831,8 +7130,21 @@ L_08921B70: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08921B88u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 421u, 0x08921B88u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921B88u) goto L_08921B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921B88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4857,8 +7169,21 @@ L_08921B9C: L_08921BA8: aot_gpr_31 = (0x08921BB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 425u, 0x08921BB0u, 0x08907484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 752u, 0x08907484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921BB0u) goto L_08921BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921BB0: { const bool branch_taken = aot_gpr_2 == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1716), aot_gpr_2); @@ -4876,8 +7201,21 @@ L_08921BB8: L_08921BC4: aot_gpr_31 = (0x08921BCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 428u, 0x08921BCCu, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921BCCu) goto L_08921BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921BCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4888,8 +7226,21 @@ L_08921BCC: L_08921BD4: aot_gpr_31 = (0x08921BDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 430u, 0x08921BDCu, 0x08906550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 513u, 0x08906550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921BDCu) goto L_08921BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921BDC: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4912,8 +7263,21 @@ L_08921BE8: L_08921C00: aot_gpr_31 = (0x08921C08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 433u, 0x08921C08u, 0x08909054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 281u, 0x08909054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921C08u) goto L_08921C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921C08: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4924,8 +7288,21 @@ L_08921C08: L_08921C10: aot_gpr_31 = (0x08921C18u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 435u, 0x08921C18u, 0x08911130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 303u, 0x08911130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921C18u) goto L_08921C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921C18: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4938,8 +7315,21 @@ L_08921C18: L_08921C24: aot_gpr_31 = (0x08921C2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 437u, 0x08921C2Cu, 0x08911130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 303u, 0x08911130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921C2Cu) goto L_08921C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921C2C: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4967,8 +7357,21 @@ L_08921C58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921C68u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 441u, 0x08921C68u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921C68u) goto L_08921C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921C68: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -4982,8 +7385,21 @@ L_08921C74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921C84u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 443u, 0x08921C84u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921C84u) goto L_08921C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921C84: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_08921C88; @@ -4997,8 +7413,21 @@ L_08921C88: L_08921C90: aot_gpr_31 = (0x08921C98u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 446u, 0x08921C98u, 0x08905BB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 375u, 0x08905BB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921C98u) goto L_08921C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921C98: aot_gpr_4 = (16230u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); @@ -5014,8 +7443,21 @@ L_08921C98: L_08921CB4: aot_gpr_31 = (0x08921CBCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 448u, 0x08921CBCu, 0x089050C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 226u, 0x089050C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921CBCu) goto L_08921CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921CBC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5030,13 +7472,39 @@ L_08921CC4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08921CDCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 450u, 0x08921CDCu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921CDCu) goto L_08921CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921CDC: aot_gpr_31 = (0x08921CE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 451u, 0x08921CE4u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921CE4u) goto L_08921CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921CE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 8u); @@ -5050,35 +7518,100 @@ L_08921CF4: ctx.gpr[18] = (ctx.gpr[29] + static_cast(372)); aot_gpr_31 = (0x08921D00u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 453u, 0x08921D00u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921D00u) goto L_08921D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921D00: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08921D0Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 454u, 0x08921D0Cu, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921D0Cu) goto L_08921D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921D0C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08921D1Cu); aot_gpr_4 = (ctx.gpr[29] + static_cast(364)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 455u, 0x08921D1Cu, 0x08904C30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 185u, 0x08904C30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921D1Cu) goto L_08921D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921D1C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08921D28u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 456u, 0x08921D28u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921D28u) goto L_08921D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921D28: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1368))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08921D3Cu); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 457u, 0x08921D3Cu, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921D3Cu) goto L_08921D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921D3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1368))); { const bool branch_taken = ctx.gpr[19] == aot_gpr_4; @@ -5089,8 +7622,21 @@ L_08921D3C: } L_08921D48: aot_gpr_31 = (0x08921D50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 459u, 0x08921D50u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921D50u) goto L_08921D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921D50: aot_gpr_4 = (aot_gpr_2 + static_cast(500)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2072), aot_gpr_4); @@ -5105,8 +7651,21 @@ L_08921D58: L_08921D60: aot_gpr_31 = (0x08921D68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 462u, 0x08921D68u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921D68u) goto L_08921D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921D68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 9u); @@ -5138,8 +7697,21 @@ L_08921D90: } L_08921DA0: aot_gpr_31 = (0x08921DA8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 466u, 0x08921DA8u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921DA8u) goto L_08921DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921DA8: aot_gpr_4 = (aot_gpr_2 + static_cast(2500)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1380), aot_gpr_4); @@ -5152,8 +7724,21 @@ L_08921DA8: L_08921DC0: aot_gpr_31 = (0x08921DC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 468u, 0x08921DC8u, 0x08909054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 281u, 0x08909054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921DC8u) goto L_08921DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921DC8: aot_gpr_4 = (0u | 9u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5169,19 +7754,58 @@ L_08921DD4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08921DECu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 470u, 0x08921DECu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921DECu) goto L_08921DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921DEC: aot_gpr_31 = (0x08921DF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 471u, 0x08921DF4u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921DF4u) goto L_08921DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921DF4: aot_gpr_4 = (aot_gpr_2 + static_cast(5000)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2072), aot_gpr_4); aot_gpr_31 = (0x08921E04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 472u, 0x08921E04u, 0x08917990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 665u, 0x08917990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921E04u) goto L_08921E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921E04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5207,21 +7831,60 @@ L_08921E28: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08921E40u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 475u, 0x08921E40u, 0x08904E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 206u, 0x08904E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921E40u) goto L_08921E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921E40: aot_gpr_4 = (ctx.gpr[29] + static_cast(448)); aot_gpr_31 = (0x08921E4Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 476u, 0x08921E4Cu, 0x08905AB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 363u, 0x08905AB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921E4Cu) goto L_08921E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921E4C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); ctx.gpr[19] = (ctx.gpr[29] + static_cast(400)); aot_gpr_31 = (0x08921E5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 477u, 0x08921E5Cu, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921E5Cu) goto L_08921E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921E5C: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(288))); @@ -5232,22 +7895,61 @@ L_08921E5C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(292))); aot_gpr_31 = (0x08921E80u); aot_gpr_4 = (ctx.gpr[29] + static_cast(432)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 478u, 0x08921E80u, 0x08904E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 206u, 0x08904E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921E80u) goto L_08921E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921E80: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08921E90u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 479u, 0x08921E90u, 0x08904BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 182u, 0x08904BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921E90u) goto L_08921E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921E90: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08921EA0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 480u, 0x08921EA0u, 0x08904BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 180u, 0x08904BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921EA0u) goto L_08921EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921EA0: aot_gpr_2 = (17096u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -5260,14 +7962,40 @@ L_08921EA0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08921ECCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 481u, 0x08921ECCu, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921ECCu) goto L_08921ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921ECC: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08921ED8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 482u, 0x08921ED8u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921ED8u) goto L_08921ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921ED8: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5279,8 +8007,21 @@ L_08921ED8: L_08921EE4: aot_gpr_31 = (0x08921EECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 484u, 0x08921EECu, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921EECu) goto L_08921EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921EEC: aot_gpr_4 = (0u | 9u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5295,14 +8036,40 @@ L_08921EF8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(292))); aot_gpr_31 = (0x08921F0Cu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[14])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 486u, 0x08921F0Cu, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921F0Cu) goto L_08921F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921F0C: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08921F18u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 487u, 0x08921F18u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921F18u) goto L_08921F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921F18: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_22 < ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -5320,8 +8087,21 @@ L_08921F28: L_08921F38: aot_gpr_31 = (0x08921F40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 490u, 0x08921F40u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921F40u) goto L_08921F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921F40: aot_fpr_22 = aot_fpr_22 - ctx.fpr[0]; aot_gpr_4 = (16457u << 16u); @@ -5337,8 +8117,21 @@ L_08921F40: L_08921F60: aot_gpr_31 = (0x08921F68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 492u, 0x08921F68u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921F68u) goto L_08921F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921F68: aot_gpr_4 = (16585u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -5350,8 +8143,21 @@ L_08921F68: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_22 = std::bit_cast(0x7FC00000u); else aot_fpr_22 = fs * ft; } aot_gpr_31 = (0x08921F90u); aot_fpr_22 = ctx.fpr[0] - aot_fpr_22; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 493u, 0x08921F90u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921F90u) goto L_08921F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921F90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1364))); aot_gpr_5 = (16457u << 16u); @@ -5368,8 +8174,21 @@ L_08921F90: { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08921FCCu); aot_fpr_12 = ctx.fpr[0] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 494u, 0x08921FCCu, 0x08907134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 700u, 0x08907134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921FCCu) goto L_08921FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921FCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5380,8 +8199,21 @@ L_08921FCC: L_08921FD4: aot_gpr_31 = (0x08921FDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 496u, 0x08921FDCu, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921FDCu) goto L_08921FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921FDC: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5389,8 +8221,21 @@ L_08921FDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08921FF4u); aot_fpr_22 = ctx.fpr[0] + aot_fpr_22; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 497u, 0x08921FF4u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08921FF4u) goto L_08921FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08921FF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1364))); aot_gpr_5 = (16457u << 16u); @@ -5407,19 +8252,58 @@ L_08921FF4: { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08922030u); aot_fpr_12 = ctx.fpr[0] + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 498u, 0x08922030u, 0x08907134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 700u, 0x08907134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922030u) goto L_08922030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922030: aot_gpr_31 = (0x08922038u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 499u, 0x08922038u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922038u) goto L_08922038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922038: aot_gpr_4 = (aot_gpr_2 + static_cast(200)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2072), aot_gpr_4); aot_gpr_31 = (0x08922048u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 500u, 0x08922048u, 0x08906550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 513u, 0x08906550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922048u) goto L_08922048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922048: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5431,8 +8315,21 @@ L_08922048: L_08922054: aot_gpr_31 = (0x0892205Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 502u, 0x0892205Cu, 0x08907484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 752u, 0x08907484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892205Cu) goto L_0892205C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892205C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5443,55 +8340,172 @@ L_0892205C: L_08922064: aot_gpr_31 = (0x0892206Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 504u, 0x0892206Cu, 0x08907484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 752u, 0x08907484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892206Cu) goto L_0892206C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892206C: aot_gpr_31 = (0x08922074u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 505u, 0x08922074u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922074u) goto L_08922074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922074: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08922080u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 506u, 0x08922080u, 0x08907484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 752u, 0x08907484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922080u) goto L_08922080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922080: aot_gpr_31 = (0x08922088u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 507u, 0x08922088u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922088u) goto L_08922088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922088: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_31 = (0x08922094u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 508u, 0x08922094u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922094u) goto L_08922094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922094: ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x089220A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 509u, 0x089220A0u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089220A0u) goto L_089220A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089220A0: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x089220B4u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 510u, 0x089220B4u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089220B4u) goto L_089220B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089220B4: aot_gpr_31 = (0x089220BCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 511u, 0x089220BCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089220BCu) goto L_089220BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089220BC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089220C8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 512u, 0x089220C8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089220C8u) goto L_089220C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089220C8: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_22 <= ctx.fpr[24])) ? 0x00800000u : 0u); @@ -5544,8 +8558,21 @@ L_0892212C: L_08922134: aot_gpr_31 = (0x0892213Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 519u, 0x0892213Cu, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892213Cu) goto L_0892213C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892213C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 6u); @@ -5558,8 +8585,21 @@ L_0892213C: L_0892214C: aot_gpr_31 = (0x08922154u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 521u, 0x08922154u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922154u) goto L_08922154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922154: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 24u); @@ -5580,14 +8620,40 @@ L_08922164: ctx.gpr[19] = (ctx.gpr[29] + static_cast(448)); aot_gpr_31 = (0x0892218Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 523u, 0x0892218Cu, 0x08905E50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 398u, 0x08905E50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892218Cu) goto L_0892218C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892218C: aot_gpr_4 = (ctx.gpr[29] + static_cast(528)); aot_gpr_31 = (0x08922198u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 524u, 0x08922198u, 0x08905AC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 364u, 0x08905AC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922198u) goto L_08922198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922198: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(528))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(532))); @@ -5599,42 +8665,120 @@ L_08922198: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089221C0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 525u, 0x089221C0u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089221C0u) goto L_089221C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089221C0: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(448))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(452))); aot_gpr_31 = (0x089221D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 526u, 0x089221D0u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089221D0u) goto L_089221D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089221D0: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x089221DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 527u, 0x089221DCu, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089221DCu) goto L_089221DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089221DC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089221F0u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 528u, 0x089221F0u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089221F0u) goto L_089221F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089221F0: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[21] = (ctx.gpr[29] + static_cast(512)); aot_gpr_31 = (0x08922200u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 529u, 0x08922200u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922200u) goto L_08922200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922200: aot_gpr_4 = (ctx.gpr[29] + static_cast(544)); aot_gpr_31 = (0x0892220Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 530u, 0x0892220Cu, 0x08905AC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 364u, 0x08905AC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892220Cu) goto L_0892220C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892220C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(544))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(548))); @@ -5647,8 +8791,21 @@ L_0892220C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08922238u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 531u, 0x08922238u, 0x08904C40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 186u, 0x08904C40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922238u) goto L_08922238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922238: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(536))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(540))); @@ -5659,34 +8816,99 @@ L_08922238: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(460), aot_gpr_6); aot_gpr_31 = (0x0892225Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 532u, 0x0892225Cu, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892225Cu) goto L_0892225C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892225C: ctx.gpr[20] = (ctx.gpr[29] + static_cast(496)); ctx.gpr[19] = (ctx.gpr[29] + static_cast(520)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922270u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 533u, 0x08922270u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922270u) goto L_08922270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922270: aot_gpr_31 = (0x08922278u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 534u, 0x08922278u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922278u) goto L_08922278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922278: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08922288u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 535u, 0x08922288u, 0x08904BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 181u, 0x08904BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922288u) goto L_08922288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922288: aot_gpr_4 = (ctx.gpr[29] + static_cast(552)); aot_gpr_31 = (0x08922294u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 536u, 0x08922294u, 0x08905AC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 364u, 0x08905AC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922294u) goto L_08922294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922294: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(552))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(556))); @@ -5697,14 +8919,40 @@ L_08922294: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(484), aot_gpr_6); aot_gpr_31 = (0x089222B8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 537u, 0x089222B8u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089222B8u) goto L_089222B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089222B8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089222C4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 538u, 0x089222C4u, 0x08904C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 184u, 0x08904C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089222C4u) goto L_089222C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089222C4: ctx.fpr[14] = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < ctx.fpr[14])) ? 0x00800000u : 0u); @@ -5717,14 +8965,40 @@ L_089222C4: L_089222D8: aot_gpr_31 = (0x089222E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 540u, 0x089222E0u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089222E0u) goto L_089222E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089222E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089222ECu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 541u, 0x089222ECu, 0x08907134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 700u, 0x08907134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089222ECu) goto L_089222EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089222EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5742,8 +9016,21 @@ L_089222F4: L_089222FC: aot_gpr_31 = (0x08922304u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 544u, 0x08922304u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922304u) goto L_08922304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922304: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 5u); @@ -5762,21 +9049,60 @@ L_08922314: aot_gpr_5 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08922334u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 546u, 0x08922334u, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922334u) goto L_08922334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922334: ctx.gpr[18] = (ctx.gpr[29] + static_cast(576)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922344u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 547u, 0x08922344u, 0x089105E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 94u, 0x089105E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922344u) goto L_08922344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922344: aot_gpr_4 = (ctx.gpr[29] + static_cast(592)); aot_gpr_31 = (0x08922350u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 548u, 0x08922350u, 0x08905AC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 364u, 0x08905AC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922350u) goto L_08922350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922350: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(592))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(596))); @@ -5787,29 +9113,81 @@ L_08922350: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(564), aot_gpr_6); aot_gpr_31 = (0x08922374u); aot_gpr_4 = (ctx.gpr[29] + static_cast(448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 549u, 0x08922374u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922374u) goto L_08922374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922374: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(448))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(452))); aot_gpr_31 = (0x08922384u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 550u, 0x08922384u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922384u) goto L_08922384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922384: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08922390u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 551u, 0x08922390u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922390u) goto L_08922390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922390: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089223A4u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 552u, 0x089223A4u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089223A4u) goto L_089223A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089223A4: { const bool branch_taken = 0u == 0u; aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -5821,8 +9199,21 @@ L_089223A4: L_089223AC: aot_gpr_31 = (0x089223B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 554u, 0x089223B4u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089223B4u) goto L_089223B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089223B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 11u); @@ -5836,8 +9227,21 @@ L_089223C4: aot_gpr_4 = (ctx.gpr[29] + static_cast(608)); aot_gpr_31 = (0x089223D0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 556u, 0x089223D0u, 0x08910538u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 88u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 88u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 88u, 0x08910538u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089223D0u) goto L_089223D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089223D0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(608))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(612))); @@ -5848,29 +9252,81 @@ L_089223D0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(604), aot_gpr_6); aot_gpr_31 = (0x089223F4u); aot_gpr_4 = (ctx.gpr[29] + static_cast(448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 557u, 0x089223F4u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089223F4u) goto L_089223F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089223F4: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(448))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(452))); aot_gpr_31 = (0x08922404u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 558u, 0x08922404u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922404u) goto L_08922404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922404: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08922410u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 559u, 0x08922410u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922410u) goto L_08922410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922410: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08922424u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 560u, 0x08922424u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922424u) goto L_08922424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922424: { const bool branch_taken = 0u == 0u; aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -5889,14 +9345,40 @@ L_0892242C: ctx.gpr[18] = (ctx.gpr[29] + static_cast(616)); aot_gpr_31 = (0x08922450u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 562u, 0x08922450u, 0x08905E94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 399u, 0x08905E94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922450u) goto L_08922450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922450: aot_gpr_5 = (ctx.gpr[29] + static_cast(448)); aot_gpr_31 = (0x0892245Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 563u, 0x0892245Cu, 0x08904C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 187u, 0x08904C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892245Cu) goto L_0892245C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892245C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5908,8 +9390,21 @@ L_08922464: aot_gpr_4 = (ctx.gpr[29] + static_cast(448)); aot_gpr_31 = (0x08922470u); aot_gpr_5 = (ctx.gpr[29] + static_cast(616)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 565u, 0x08922470u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922470u) goto L_08922470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922470: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5922,8 +9417,21 @@ L_08922478: ctx.gpr[19] = (ctx.gpr[29] + static_cast(640)); aot_gpr_31 = (0x08922488u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 567u, 0x08922488u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922488u) goto L_08922488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922488: ctx.gpr[20] = (ctx.gpr[29] + static_cast(656)); aot_gpr_6 = (16448u << 16u); @@ -5932,19 +9440,58 @@ L_08922488: aot_gpr_5 = (aot_gpr_16 + static_cast(288)); aot_gpr_31 = (0x089224A4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 568u, 0x089224A4u, 0x08904BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 182u, 0x08904BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089224A4u) goto L_089224A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089224A4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089224B4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 569u, 0x089224B4u, 0x08904BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 180u, 0x08904BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089224B4u) goto L_089224B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089224B4: aot_gpr_31 = (0x089224BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 570u, 0x089224BCu, 0x08904CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 195u, 0x08904CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089224BCu) goto L_089224BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089224BC: aot_gpr_4 = (aot_gpr_2 & 511u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5957,8 +9504,21 @@ L_089224BC: ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089224E8u); ctx.fpr[26] = aot_fpr_12 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 571u, 0x089224E8u, 0x08904CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 195u, 0x08904CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089224E8u) goto L_089224E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089224E8: aot_gpr_4 = (aot_gpr_2 & 511u); aot_fpr_13 = std::bit_cast(aot_gpr_4); @@ -5969,48 +9529,139 @@ L_089224E8: { const float fs = aot_fpr_13; const float ft = aot_fpr_22; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x0892250Cu); aot_fpr_13 = aot_fpr_13 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 572u, 0x0892250Cu, 0x08904E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 206u, 0x08904E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892250Cu) goto L_0892250C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892250C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0892251Cu); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 573u, 0x0892251Cu, 0x08904BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 180u, 0x08904BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892251Cu) goto L_0892251C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892251C: aot_gpr_4 = (ctx.gpr[29] + static_cast(448)); aot_gpr_31 = (0x08922528u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 574u, 0x08922528u, 0x08905AFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 366u, 0x08905AFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922528u) goto L_08922528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922528: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(448))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(452))); aot_gpr_31 = (0x08922538u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 575u, 0x08922538u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922538u) goto L_08922538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922538: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08922544u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 576u, 0x08922544u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922544u) goto L_08922544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922544: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08922558u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 577u, 0x08922558u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922558u) goto L_08922558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922558: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08922564u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 578u, 0x08922564u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922564u) goto L_08922564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922564: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 11u); @@ -6022,8 +9673,21 @@ L_08922564: } L_08922574: aot_gpr_31 = (0x0892257Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 580u, 0x0892257Cu, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892257Cu) goto L_0892257C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892257C: aot_gpr_4 = (aot_gpr_2 + static_cast(500)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2072), aot_gpr_4); @@ -6031,19 +9695,58 @@ L_0892257C: L_08922584: aot_gpr_31 = (0x0892258Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 582u, 0x0892258Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892258Cu) goto L_0892258C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892258C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922598u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 583u, 0x08922598u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922598u) goto L_08922598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922598: aot_gpr_31 = (0x089225A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 584u, 0x089225A0u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089225A0u) goto L_089225A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089225A0: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -6051,8 +9754,21 @@ L_089225A0: aot_fpr_22 = ctx.fpr[0] + aot_fpr_12; aot_gpr_31 = (0x089225B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 585u, 0x089225B8u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089225B8u) goto L_089225B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089225B8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_22 < ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -6064,8 +9780,21 @@ L_089225B8: L_089225C8: aot_gpr_31 = (0x089225D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 587u, 0x089225D0u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089225D0u) goto L_089225D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089225D0: aot_gpr_4 = (16585u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -6073,8 +9802,21 @@ L_089225D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089225E8u); aot_fpr_12 = ctx.fpr[0] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 588u, 0x089225E8u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089225E8u) goto L_089225E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089225E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6085,8 +9827,21 @@ L_089225E8: L_089225F0: aot_gpr_31 = (0x089225F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 590u, 0x089225F8u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089225F8u) goto L_089225F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089225F8: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -6094,8 +9849,21 @@ L_089225F8: aot_fpr_22 = ctx.fpr[0] - aot_fpr_12; aot_gpr_31 = (0x08922610u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 591u, 0x08922610u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922610u) goto L_08922610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922610: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_22 <= ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -6107,8 +9875,21 @@ L_08922610: L_08922620: aot_gpr_31 = (0x08922628u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 593u, 0x08922628u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922628u) goto L_08922628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922628: aot_gpr_4 = (16585u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -6116,13 +9897,39 @@ L_08922628: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922640u); aot_fpr_12 = ctx.fpr[0] + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 594u, 0x08922640u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922640u) goto L_08922640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922640: aot_gpr_31 = (0x08922648u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 595u, 0x08922648u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922648u) goto L_08922648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922648: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_20) || std::isnan(ctx.fpr[0])) && aot_fpr_20 == ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -6133,8 +9940,21 @@ L_08922648: } L_08922658: aot_gpr_31 = (0x08922660u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 597u, 0x08922660u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922660u) goto L_08922660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922660: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -6146,15 +9966,41 @@ L_08922660: } L_08922670: aot_gpr_31 = (0x08922678u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 599u, 0x08922678u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922678u) goto L_08922678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922678: aot_gpr_4 = (aot_gpr_2 + static_cast(200)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2072), aot_gpr_4); aot_gpr_31 = (0x08922688u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 600u, 0x08922688u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922688u) goto L_08922688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922688: aot_gpr_4 = (16329u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -6162,13 +10008,39 @@ L_08922688: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089226A0u); aot_fpr_12 = ctx.fpr[0] + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 601u, 0x089226A0u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089226A0u) goto L_089226A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089226A0: aot_gpr_31 = (0x089226A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 602u, 0x089226A8u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089226A8u) goto L_089226A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089226A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 5u); @@ -6181,8 +10053,21 @@ L_089226A8: L_089226B8: aot_gpr_31 = (0x089226C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 604u, 0x089226C0u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089226C0u) goto L_089226C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089226C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 9u); @@ -6208,14 +10093,40 @@ L_089226E0: ctx.gpr[18] = (aot_gpr_16 + static_cast(288)); aot_gpr_31 = (0x089226ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 608u, 0x089226ECu, 0x08904CF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 197u, 0x08904CF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089226ECu) goto L_089226EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089226EC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089226F8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 609u, 0x089226F8u, 0x08904B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 179u, 0x08904B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089226F8u) goto L_089226F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089226F8: aot_gpr_4 = (48989u << 16u); aot_gpr_4 = (aot_gpr_4 | 45613u); @@ -6232,8 +10143,21 @@ L_08922714: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922724u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 611u, 0x08922724u, 0x0890DF64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 479u, 0x0890DF64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922724u) goto L_08922724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922724: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6244,8 +10168,21 @@ L_08922724: L_0892272C: aot_gpr_31 = (0x08922734u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 613u, 0x08922734u, 0x0890E2FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 513u, 0x0890E2FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922734u) goto L_08922734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922734: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 32768u); @@ -6268,8 +10205,21 @@ L_08922744: L_08922754: aot_gpr_31 = (0x0892275Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 616u, 0x0892275Cu, 0x08906F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 664u, 0x08906F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892275Cu) goto L_0892275C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892275C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6280,8 +10230,21 @@ L_0892275C: L_08922764: aot_gpr_31 = (0x0892276Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 618u, 0x0892276Cu, 0x08905EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 403u, 0x08905EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892276Cu) goto L_0892276C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892276C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -6295,15 +10258,41 @@ L_08922780: aot_gpr_4 = (ctx.gpr[29] + static_cast(176)); aot_gpr_31 = (0x0892278Cu); aot_gpr_5 = (aot_gpr_16 + static_cast(288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 620u, 0x0892278Cu, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892278Cu) goto L_0892278C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892278C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892279Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(184), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 621u, 0x0892279Cu, 0x08909F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 521u, 0x08909F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892279Cu) goto L_0892279C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892279C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6316,8 +10305,21 @@ L_089227A4: aot_gpr_4 = (ctx.gpr[29] + static_cast(176)); aot_gpr_31 = (0x089227B4u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 623u, 0x089227B4u, 0x08905A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 355u, 0x08905A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089227B4u) goto L_089227B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089227B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6330,14 +10332,40 @@ L_089227BC: aot_gpr_4 = (ctx.gpr[29] + static_cast(176)); aot_gpr_31 = (0x089227CCu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 625u, 0x089227CCu, 0x08905A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 355u, 0x08905A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089227CCu) goto L_089227CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089227CC: aot_gpr_5 = (ctx.gpr[29] + static_cast(176)); aot_gpr_31 = (0x089227D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 626u, 0x089227D8u, 0x08905EECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 405u, 0x08905EECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089227D8u) goto L_089227D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089227D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 4096u); @@ -6350,8 +10378,21 @@ L_089227D8: L_089227E8: aot_gpr_31 = (0x089227F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 628u, 0x089227F0u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089227F0u) goto L_089227F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089227F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 57u); @@ -6364,8 +10405,21 @@ L_089227F0: L_08922800: aot_gpr_31 = (0x08922808u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 630u, 0x08922808u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922808u) goto L_08922808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922808: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 58u); @@ -6378,8 +10432,21 @@ L_08922808: L_08922818: aot_gpr_31 = (0x08922820u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 632u, 0x08922820u, 0x08909F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 521u, 0x08909F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922820u) goto L_08922820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922820: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6390,8 +10457,21 @@ L_08922820: L_08922828: aot_gpr_31 = (0x08922830u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 634u, 0x08922830u, 0x0890BED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 992u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 992u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 992u, 0x0890BED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922830u) goto L_08922830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922830: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6402,8 +10482,21 @@ L_08922830: L_08922838: aot_gpr_31 = (0x08922840u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 636u, 0x08922840u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922840u) goto L_08922840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922840: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 45u); @@ -6436,28 +10529,80 @@ L_0892286C: ctx.gpr[18] = (aot_gpr_16 + static_cast(1696)); aot_gpr_31 = (0x0892287Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 640u, 0x0892287Cu, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892287Cu) goto L_0892287C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892287C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08922888u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 641u, 0x08922888u, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922888u) goto L_08922888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922888: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[29] + static_cast(800)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0892289Cu); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 642u, 0x0892289Cu, 0x08904E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 206u, 0x08904E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892289Cu) goto L_0892289C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892289C: aot_gpr_4 = (ctx.gpr[29] + static_cast(176)); aot_gpr_31 = (0x089228A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 643u, 0x089228A8u, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089228A8u) goto L_089228A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089228A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6469,21 +10614,60 @@ L_089228B0: ctx.gpr[18] = (ctx.gpr[29] + static_cast(816)); aot_gpr_31 = (0x089228BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 645u, 0x089228BCu, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089228BCu) goto L_089228BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089228BC: aot_gpr_6 = (aot_gpr_16 + static_cast(1696)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089228CCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 646u, 0x089228CCu, 0x08904BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 181u, 0x08904BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089228CCu) goto L_089228CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089228CC: aot_gpr_4 = (ctx.gpr[29] + static_cast(176)); aot_gpr_31 = (0x089228D8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 647u, 0x089228D8u, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089228D8u) goto L_089228D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089228D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -6506,15 +10690,41 @@ L_089228FC: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892290Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(688), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 650u, 0x0892290Cu, 0x08905BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 373u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 373u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 373u, 0x08905BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892290Cu) goto L_0892290C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892290C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(692), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (ctx.gpr[29] + static_cast(692)); aot_gpr_31 = (0x0892291Cu); aot_gpr_4 = (ctx.gpr[29] + static_cast(688)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 651u, 0x0892291Cu, 0x08904CACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 192u, 0x08904CACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892291Cu) goto L_0892291C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892291C: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6531,8 +10741,21 @@ L_0892291C: L_08922944: aot_gpr_31 = (0x0892294Cu); aot_gpr_4 = (ctx.gpr[29] + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 653u, 0x0892294Cu, 0x089059E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 353u, 0x089059E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892294Cu) goto L_0892294C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892294C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6592,15 +10815,41 @@ L_089229B8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089229C8u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(696), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 661u, 0x089229C8u, 0x08905BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 373u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 373u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 373u, 0x08905BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089229C8u) goto L_089229C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089229C8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(700), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (ctx.gpr[29] + static_cast(700)); aot_gpr_31 = (0x089229D8u); aot_gpr_4 = (ctx.gpr[29] + static_cast(696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 662u, 0x089229D8u, 0x08904CACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 192u, 0x08904CACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089229D8u) goto L_089229D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089229D8: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6618,8 +10867,21 @@ L_089229D8: L_08922A00: aot_gpr_31 = (0x08922A08u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(184))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 664u, 0x08922A08u, 0x08905990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 350u, 0x08905990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922A08u) goto L_08922A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922A08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6676,14 +10938,40 @@ L_08922A70: aot_gpr_4 = (ctx.gpr[29] + static_cast(832)); aot_gpr_31 = (0x08922A94u); ctx.fpr[14] = ctx.fpr[14] + ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 669u, 0x08922A94u, 0x08904E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 206u, 0x08904E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922A94u) goto L_08922A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922A94: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08922AA0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 670u, 0x08922AA0u, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922AA0u) goto L_08922AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922AA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); aot_gpr_4 = (16261u << 16u); @@ -6702,8 +10990,21 @@ L_08922AA0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08922AE4u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 671u, 0x08922AE4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922AE4u) goto L_08922AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922AE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6724,8 +11025,21 @@ L_08922AEC: L_08922B00: aot_gpr_31 = (0x08922B08u); aot_gpr_4 = (ctx.gpr[29] + static_cast(704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 674u, 0x08922B08u, 0x08905D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 390u, 0x08905D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922B08u) goto L_08922B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922B08: aot_gpr_4 = (16261u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); @@ -6743,8 +11057,21 @@ L_08922B08: L_08922B30: aot_gpr_31 = (0x08922B38u); aot_gpr_4 = (ctx.gpr[29] + static_cast(704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 676u, 0x08922B38u, 0x08905D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 390u, 0x08905D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922B38u) goto L_08922B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922B38: aot_gpr_4 = (16261u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); @@ -6754,8 +11081,21 @@ L_08922B38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922B58u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(56), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 677u, 0x08922B58u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922B58u) goto L_08922B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922B58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (8192u << 16u); @@ -6776,14 +11116,40 @@ L_08922B6C: L_08922B80: aot_gpr_31 = (0x08922B88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 680u, 0x08922B88u, 0x0890A1A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 551u, 0x0890A1A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922B88u) goto L_08922B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922B88: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922B94u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 681u, 0x08922B94u, 0x08905804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 336u, 0x08905804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922B94u) goto L_08922B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922B94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6806,8 +11172,21 @@ L_08922BA4: L_08922BAC: aot_gpr_31 = (0x08922BB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 685u, 0x08922BB4u, 0x08906F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 664u, 0x08906F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922BB4u) goto L_08922BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922BB4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6823,8 +11202,21 @@ L_08922BBC: L_08922BC4: aot_gpr_31 = (0x08922BCCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 688u, 0x08922BCCu, 0x0898D640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 508u, 0x0898D640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922BCCu) goto L_08922BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922BCC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6840,8 +11232,21 @@ L_08922BD4: L_08922BDC: aot_gpr_31 = (0x08922BE4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 691u, 0x08922BE4u, 0x0898C4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 114u, 0x0898C4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922BE4u) goto L_08922BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922BE4: aot_fpr_22 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (0u | 0u); @@ -6852,15 +11257,41 @@ L_08922BE4: L_08922BF4: aot_gpr_31 = (0x08922BFCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 693u, 0x08922BFCu, 0x0898C578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 124u, 0x0898C578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922BFCu) goto L_08922BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922BFC: aot_fpr_20 = std::bit_cast(aot_gpr_2); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_20))); aot_gpr_31 = (0x08922C0Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 694u, 0x08922C0Cu, 0x08905990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 350u, 0x08905990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C0Cu) goto L_08922C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C0C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -6873,8 +11304,21 @@ L_08922C0C: L_08922C20: aot_gpr_31 = (0x08922C28u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 696u, 0x08922C28u, 0x08905990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 350u, 0x08905990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C28u) goto L_08922C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C28: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -6891,89 +11335,271 @@ L_08922C3C: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08922C54u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 698u, 0x08922C54u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C54u) goto L_08922C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922C60u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 699u, 0x08922C60u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C60u) goto L_08922C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C60: aot_gpr_31 = (0x08922C68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 700u, 0x08922C68u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C68u) goto L_08922C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C68: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1968))); aot_gpr_31 = (0x08922C7Cu); aot_fpr_12 = ctx.fpr[0] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 701u, 0x08922C7Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C7Cu) goto L_08922C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922C88u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 702u, 0x08922C88u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C88u) goto L_08922C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C88: aot_gpr_31 = (0x08922C90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 703u, 0x08922C90u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C90u) goto L_08922C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922C9Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 704u, 0x08922C9Cu, 0x08907134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 700u, 0x08907134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922C9Cu) goto L_08922C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922C9C: aot_gpr_31 = (0x08922CA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 705u, 0x08922CA4u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922CA4u) goto L_08922CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922CA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08922CB8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 706u, 0x08922CB8u, 0x08905A68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 360u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 360u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 360u, 0x08905A68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922CB8u) goto L_08922CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922CB8: aot_gpr_31 = (0x08922CC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 707u, 0x08922CC0u, 0x0890E2FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 513u, 0x0890E2FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922CC0u) goto L_08922CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922CC0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2072), 0u); ctx.gpr[18] = (aot_gpr_16 + static_cast(1696)); aot_gpr_31 = (0x08922CD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 708u, 0x08922CD0u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922CD0u) goto L_08922CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922CD0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08922CDCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 709u, 0x08922CDCu, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922CDCu) goto L_08922CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922CDC: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[29] + static_cast(848)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08922CF0u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 710u, 0x08922CF0u, 0x08904E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 206u, 0x08904E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922CF0u) goto L_08922CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922CF0: aot_gpr_4 = (ctx.gpr[29] + static_cast(176)); aot_gpr_31 = (0x08922CFCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 711u, 0x08922CFCu, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922CFCu) goto L_08922CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922CFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7001,8 +11627,21 @@ L_08922D14: L_08922D1C: aot_gpr_31 = (0x08922D24u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 716u, 0x08922D24u, 0x0898C4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 114u, 0x0898C4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922D24u) goto L_08922D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922D24: aot_fpr_22 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (0u | 0u); @@ -7013,15 +11652,41 @@ L_08922D24: L_08922D34: aot_gpr_31 = (0x08922D3Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 718u, 0x08922D3Cu, 0x0898C578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 124u, 0x0898C578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922D3Cu) goto L_08922D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922D3C: aot_fpr_20 = std::bit_cast(aot_gpr_2); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_20))); aot_gpr_31 = (0x08922D4Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 719u, 0x08922D4Cu, 0x08905990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 350u, 0x08905990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922D4Cu) goto L_08922D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922D4C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -7034,8 +11699,21 @@ L_08922D4C: L_08922D60: aot_gpr_31 = (0x08922D68u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 721u, 0x08922D68u, 0x08905990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 350u, 0x08905990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922D68u) goto L_08922D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922D68: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -7052,64 +11730,194 @@ L_08922D7C: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08922D94u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 723u, 0x08922D94u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922D94u) goto L_08922D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922D94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922DA0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 724u, 0x08922DA0u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922DA0u) goto L_08922DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922DA0: aot_gpr_31 = (0x08922DA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 725u, 0x08922DA8u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922DA8u) goto L_08922DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922DA8: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1968))); aot_gpr_31 = (0x08922DBCu); aot_fpr_12 = ctx.fpr[0] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 726u, 0x08922DBCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922DBCu) goto L_08922DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922DBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922DC8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 727u, 0x08922DC8u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922DC8u) goto L_08922DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922DC8: aot_gpr_31 = (0x08922DD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 728u, 0x08922DD0u, 0x0890747Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 751u, 0x0890747Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922DD0u) goto L_08922DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922DD0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922DDCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 729u, 0x08922DDCu, 0x08907134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 700u, 0x08907134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922DDCu) goto L_08922DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922DDC: aot_gpr_31 = (0x08922DE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 730u, 0x08922DE4u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922DE4u) goto L_08922DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922DE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08922DF8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 731u, 0x08922DF8u, 0x08905A68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 360u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 360u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 360u, 0x08905A68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922DF8u) goto L_08922DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922DF8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922E08u); aot_gpr_6 = (0u | 137u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 732u, 0x08922E08u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922E08u) goto L_08922E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922E08: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -7123,8 +11931,21 @@ L_08922E14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922E24u); aot_gpr_6 = (0u | 140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 734u, 0x08922E24u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922E24u) goto L_08922E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922E24: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_08922E28; @@ -7140,19 +11961,58 @@ L_08922E30: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08922E40u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 737u, 0x08922E40u, 0x08905BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 376u, 0x08905BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922E40u) goto L_08922E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922E40: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08922E4Cu); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 738u, 0x08922E4Cu, 0x08905BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 374u, 0x08905BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922E4Cu) goto L_08922E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922E4C: aot_gpr_31 = (0x08922E54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 739u, 0x08922E54u, 0x08906F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 664u, 0x08906F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922E54u) goto L_08922E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922E54: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7164,8 +12024,21 @@ L_08922E5C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922E68u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 741u, 0x08922E68u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922E68u) goto L_08922E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922E68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7178,8 +12051,21 @@ L_08922E70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922E80u); aot_gpr_6 = (0u | 137u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 743u, 0x08922E80u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922E80u) goto L_08922E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922E80: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -7193,8 +12079,21 @@ L_08922E8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08922E9Cu); aot_gpr_6 = (0u | 140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 745u, 0x08922E9Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922E9Cu) goto L_08922E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922E9C: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_08922EA0; @@ -7210,14 +12109,40 @@ L_08922EA8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08922EB8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 748u, 0x08922EB8u, 0x08905BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 376u, 0x08905BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922EB8u) goto L_08922EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922EB8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08922EC4u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 749u, 0x08922EC4u, 0x08905BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 374u, 0x08905BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922EC4u) goto L_08922EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922EC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7245,8 +12170,21 @@ L_08922EDC: L_08922EE8: aot_gpr_31 = (0x08922EF0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 753u, 0x08922EF0u, 0x08905BC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 377u, 0x08905BC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922EF0u) goto L_08922EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922EF0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7274,15 +12212,41 @@ L_08922F14: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08922F24u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(864), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 757u, 0x08922F24u, 0x08905BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 373u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 373u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 373u, 0x08905BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922F24u) goto L_08922F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922F24: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(868), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (ctx.gpr[29] + static_cast(868)); aot_gpr_31 = (0x08922F34u); aot_gpr_4 = (ctx.gpr[29] + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 758u, 0x08922F34u, 0x08904CACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 192u, 0x08904CACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922F34u) goto L_08922F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922F34: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7300,8 +12264,21 @@ L_08922F34: L_08922F5C: aot_gpr_31 = (0x08922F64u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(184))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 760u, 0x08922F64u, 0x08905990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 350u, 0x08905990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922F64u) goto L_08922F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922F64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -7342,21 +12319,60 @@ L_08922FA4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(776), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08922FD0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 764u, 0x08922FD0u, 0x089059BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 352u, 0x089059BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922FD0u) goto L_08922FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922FD0: ctx.gpr[19] = (ctx.gpr[29] + static_cast(880)); aot_gpr_31 = (0x08922FDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 765u, 0x08922FDCu, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922FDCu) goto L_08922FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922FDC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08922FECu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 766u, 0x08922FECu, 0x08904BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 180u, 0x08904BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08922FECu) goto L_08922FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08922FEC: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); @@ -7372,8 +12388,21 @@ L_08922FEC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08923024u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 767u, 0x08923024u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923024u) goto L_08923024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923024: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7384,8 +12413,21 @@ L_08923024: L_0892302C: aot_gpr_31 = (0x08923034u); aot_gpr_4 = (ctx.gpr[29] + static_cast(704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 769u, 0x08923034u, 0x08905D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 390u, 0x08905D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923034u) goto L_08923034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923034: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); @@ -7402,15 +12444,41 @@ L_08923044: ctx.gpr[18] = (ctx.gpr[29] + static_cast(880)); aot_gpr_31 = (0x08923050u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 772u, 0x08923050u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923050u) goto L_08923050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923050: aot_gpr_6 = (ctx.gpr[29] + static_cast(768)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08923060u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 773u, 0x08923060u, 0x08904BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 181u, 0x08904BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923060u) goto L_08923060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923060: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); @@ -7426,8 +12494,21 @@ L_08923060: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08923098u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 774u, 0x08923098u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923098u) goto L_08923098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923098: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7438,8 +12519,21 @@ L_08923098: L_089230A0: aot_gpr_31 = (0x089230A8u); aot_gpr_4 = (ctx.gpr[29] + static_cast(736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 776u, 0x089230A8u, 0x08905D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 390u, 0x08905D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089230A8u) goto L_089230A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089230A8: { const bool branch_taken = 0u == 0u; aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); @@ -7457,8 +12551,21 @@ L_089230BC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089230C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 779u, 0x089230C8u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089230C8u) goto L_089230C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089230C8: aot_gpr_4 = (16261u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); @@ -7485,8 +12592,21 @@ L_089230EC: L_08923100: aot_gpr_31 = (0x08923108u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 782u, 0x08923108u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923108u) goto L_08923108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923108: aot_gpr_4 = (16261u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); @@ -7503,8 +12623,21 @@ L_08923108: L_0892312C: aot_gpr_31 = (0x08923134u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 784u, 0x08923134u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923134u) goto L_08923134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923134: aot_gpr_4 = (16261u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); @@ -7529,8 +12662,21 @@ L_08923158: L_08923160: aot_gpr_31 = (0x08923168u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 787u, 0x08923168u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923168u) goto L_08923168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923168: aot_gpr_4 = (16261u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); @@ -7586,20 +12732,59 @@ L_089231C4: L_089231D0: aot_gpr_31 = (0x089231D8u); aot_gpr_4 = (ctx.gpr[29] + static_cast(736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 794u, 0x089231D8u, 0x08905D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 390u, 0x08905D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089231D8u) goto L_089231D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089231D8: aot_gpr_4 = (ctx.gpr[29] + static_cast(912)); aot_gpr_31 = (0x089231E4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 795u, 0x089231E4u, 0x0890599Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 351u, 0x0890599Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089231E4u) goto L_089231E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089231E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089231F0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 796u, 0x089231F0u, 0x08905A30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 357u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 357u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 357u, 0x08905A30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089231F0u) goto L_089231F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089231F0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (16261u << 16u); @@ -7611,20 +12796,59 @@ L_089231F0: L_089231F8: aot_gpr_31 = (0x08923200u); aot_gpr_4 = (ctx.gpr[29] + static_cast(704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 798u, 0x08923200u, 0x08905D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 390u, 0x08905D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923200u) goto L_08923200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923200: aot_gpr_4 = (ctx.gpr[29] + static_cast(928)); aot_gpr_31 = (0x0892320Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 799u, 0x0892320Cu, 0x0890599Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 351u, 0x0890599Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892320Cu) goto L_0892320C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892320C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923218u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 800u, 0x08923218u, 0x08905A30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 357u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 357u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 357u, 0x08905A30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923218u) goto L_08923218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923218: aot_gpr_4 = (16261u << 16u); goto L_0892321C; @@ -7636,19 +12860,58 @@ L_0892321C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923238u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(56), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 802u, 0x08923238u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923238u) goto L_08923238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923238: aot_gpr_31 = (0x08923240u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 803u, 0x08923240u, 0x0890A1A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 551u, 0x0890A1A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923240u) goto L_08923240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923240: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892324Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 804u, 0x0892324Cu, 0x08905804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 336u, 0x08905804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892324Cu) goto L_0892324C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892324C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_22)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -7665,14 +12928,40 @@ L_0892325C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08923278u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 806u, 0x08923278u, 0x08904BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 182u, 0x08904BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923278u) goto L_08923278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923278: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08923284u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 807u, 0x08923284u, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923284u) goto L_08923284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923284: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7684,19 +12973,58 @@ L_08923284: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089232ACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 808u, 0x089232ACu, 0x08904BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 182u, 0x08904BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089232ACu) goto L_089232AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089232AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089232B8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 809u, 0x089232B8u, 0x08905EECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 405u, 0x08905EECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089232B8u) goto L_089232B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089232B8: aot_gpr_31 = (0x089232C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 810u, 0x089232C0u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089232C0u) goto L_089232C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089232C0: ctx.gpr[20] = (ctx.gpr[29] + static_cast(896)); aot_gpr_6 = (16000u << 16u); @@ -7705,21 +13033,60 @@ L_089232C0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089232DCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 811u, 0x089232DCu, 0x08904BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 182u, 0x08904BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089232DCu) goto L_089232DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089232DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089232ECu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 812u, 0x089232ECu, 0x08904BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 180u, 0x08904BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089232ECu) goto L_089232EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089232EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089232F8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 813u, 0x089232F8u, 0x08905A44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 358u, 0x08905A44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089232F8u) goto L_089232F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089232F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(768))); aot_fpr_20 = std::bit_cast(0u); @@ -7727,48 +13094,152 @@ L_089232F8: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08923310u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 814u, 0x08923310u, 0x08905D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 395u, 0x08905D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923310u) goto L_08923310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923310: aot_gpr_31 = (0x08923318u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 815u, 0x08923318u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923318u) goto L_08923318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923318: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923324u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 816u, 0x08923324u, 0x08907134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 700u, 0x08907134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923324u) goto L_08923324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923324: aot_gpr_31 = (0x0892332Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 817u, 0x0892332Cu, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892332Cu) goto L_0892332C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892332C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923338u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 818u, 0x08923338u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923338u) goto L_08923338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923338: aot_gpr_31 = (0x08923340u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 819u, 0x08923340u, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923340u) goto L_08923340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923340: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08923354u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 820u, 0x08923354u, 0x08905A68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 360u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 360u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 360u, 0x08905A68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923354u) goto L_08923354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923354: aot_gpr_31 = (0x0892335Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 821u, 0x0892335Cu, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892335Cu) goto L_0892335C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892335C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 45u); @@ -7794,8 +13265,21 @@ L_08923380: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x08923394u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 824u, 0x08923394u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923394u) goto L_08923394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923394: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -7822,8 +13306,21 @@ L_089233A8: L_089233C8: aot_gpr_31 = (0x089233D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 827u, 0x089233D0u, 0x08906F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 664u, 0x08906F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089233D0u) goto L_089233D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089233D0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7834,8 +13331,21 @@ L_089233D0: L_089233D8: aot_gpr_31 = (0x089233E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 829u, 0x089233E0u, 0x08905388u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 277u, 0x08905388u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089233E0u) goto L_089233E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089233E0: aot_gpr_4 = (aot_gpr_2 < static_cast(2001) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7848,8 +13358,21 @@ L_089233EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089233F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 831u, 0x089233F8u, 0x08905380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 276u, 0x08905380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089233F8u) goto L_089233F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089233F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7860,8 +13383,21 @@ L_089233F8: L_08923400: aot_gpr_31 = (0x08923408u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 833u, 0x08923408u, 0x08905388u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 277u, 0x08905388u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923408u) goto L_08923408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923408: aot_gpr_4 = (aot_gpr_2 < static_cast(1000) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7873,39 +13409,117 @@ L_08923408: L_08923414: aot_gpr_31 = (0x0892341Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 835u, 0x0892341Cu, 0x08905388u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 277u, 0x08905388u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892341Cu) goto L_0892341C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892341C: aot_gpr_31 = (0x08923424u); ctx.gpr[18] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 836u, 0x08923424u, 0x08905B34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 369u, 0x08905B34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923424u) goto L_08923424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923424: aot_gpr_5 = (ctx.gpr[18] + aot_gpr_2); aot_gpr_31 = (0x08923430u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 837u, 0x08923430u, 0x08905380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 276u, 0x08905380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923430u) goto L_08923430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923430: ctx.gpr[18] = (ctx.gpr[29] + static_cast(176)); aot_gpr_5 = (aot_gpr_16 + static_cast(288)); aot_gpr_31 = (0x08923440u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 838u, 0x08923440u, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923440u) goto L_08923440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923440: aot_fpr_20 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08923450u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(184), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 839u, 0x08923450u, 0x08904B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 175u, 0x08904B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923450u) goto L_08923450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923450: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0892345Cu); aot_gpr_4 = (ctx.gpr[29] + static_cast(180)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 840u, 0x0892345Cu, 0x08904B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 175u, 0x08904B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892345Cu) goto L_0892345C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892345C: aot_fpr_12 = aot_fpr_22 + ctx.fpr[0]; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -7918,13 +13532,39 @@ L_0892345C: L_08923470: aot_gpr_31 = (0x08923478u); aot_gpr_4 = (ctx.gpr[29] + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 842u, 0x08923478u, 0x089059BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 352u, 0x089059BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923478u) goto L_08923478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923478: aot_gpr_31 = (0x08923480u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 843u, 0x08923480u, 0x08906F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 664u, 0x08906F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923480u) goto L_08923480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923480: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7935,8 +13575,21 @@ L_08923480: L_08923488: aot_gpr_31 = (0x08923490u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 845u, 0x08923490u, 0x08905388u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 277u, 0x08905388u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923490u) goto L_08923490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923490: aot_gpr_4 = (aot_gpr_2 < static_cast(300) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7952,14 +13605,40 @@ L_0892349C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089234B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 847u, 0x089234B4u, 0x08904BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 182u, 0x08904BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089234B4u) goto L_089234B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089234B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089234C0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 848u, 0x089234C0u, 0x08905EECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 405u, 0x08905EECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089234C0u) goto L_089234C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089234C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7974,14 +13653,40 @@ L_089234C8: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089234E0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 850u, 0x089234E0u, 0x08904BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 182u, 0x08904BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089234E0u) goto L_089234E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089234E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089234ECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 851u, 0x089234ECu, 0x08905EECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 405u, 0x08905EECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089234ECu) goto L_089234EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089234EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8073,8 +13778,21 @@ L_08923574: L_08923584: aot_gpr_31 = (0x0892358Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 863u, 0x0892358Cu, 0x089AB3ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 675u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 675u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 675u, 0x089AB3ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892358Cu) goto L_0892358C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892358C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (2048u << 16u); @@ -8088,8 +13806,21 @@ L_0892358C: L_089235A0: aot_gpr_31 = (0x089235A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 865u, 0x089235A8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089235A8u) goto L_089235A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089235A8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8100,14 +13831,40 @@ L_089235A8: L_089235B0: aot_gpr_31 = (0x089235B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 867u, 0x089235B8u, 0x0890B900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 899u, 0x0890B900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089235B8u) goto L_089235B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089235B8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1930)))))); aot_gpr_31 = (0x089235C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 868u, 0x089235C4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089235C4u) goto L_089235C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089235C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (63488u << 16u); @@ -8123,8 +13880,21 @@ L_089235C4: L_089235DC: aot_gpr_31 = (0x089235E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 870u, 0x089235E4u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089235E4u) goto L_089235E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089235E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 55u); @@ -8141,15 +13911,41 @@ L_089235F4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x0892360Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 872u, 0x0892360Cu, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892360Cu) goto L_0892360C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892360C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x0892361Cu); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 873u, 0x0892361Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892361Cu) goto L_0892361C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892361C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (63488u << 16u); @@ -8160,8 +13956,21 @@ L_0892361C: L_08923630: aot_gpr_31 = (0x08923638u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 875u, 0x08923638u, 0x08909F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 521u, 0x08909F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923638u) goto L_08923638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923638: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8172,8 +13981,21 @@ L_08923638: L_08923640: aot_gpr_31 = (0x08923648u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 877u, 0x08923648u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923648u) goto L_08923648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923648: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (16000u << 16u); @@ -8189,35 +14011,100 @@ L_08923664: ctx.gpr[18] = (ctx.gpr[29] + static_cast(992)); aot_gpr_31 = (0x08923670u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 879u, 0x08923670u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923670u) goto L_08923670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923670: aot_gpr_4 = (16243u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08923684u); aot_fpr_20 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 880u, 0x08923684u, 0x08905BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 373u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 373u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 373u, 0x08905BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923684u) goto L_08923684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923684: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08923690u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 881u, 0x08923690u, 0x08905964u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 349u, 0x08905964u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923690u) goto L_08923690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923690: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089236A0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 882u, 0x089236A0u, 0x08904BF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 183u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 183u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 183u, 0x08904BF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089236A0u) goto L_089236A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089236A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089236ACu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 883u, 0x089236ACu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089236ACu) goto L_089236AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089236AC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089236B8u); @@ -8234,8 +14121,21 @@ L_089236B8: L_089236C0: aot_gpr_31 = (0x089236C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 886u, 0x089236C8u, 0x08909F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 521u, 0x08909F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089236C8u) goto L_089236C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089236C8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8246,8 +14146,21 @@ L_089236C8: L_089236D0: aot_gpr_31 = (0x089236D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 888u, 0x089236D8u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089236D8u) goto L_089236D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089236D8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_fpr_13 = std::bit_cast(0u); @@ -8261,8 +14174,21 @@ L_089236D8: L_089236F0: aot_gpr_31 = (0x089236F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 890u, 0x089236F8u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089236F8u) goto L_089236F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089236F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_13 = std::bit_cast(0u); @@ -8276,8 +14202,21 @@ L_089236F8: L_08923710: aot_gpr_31 = (0x08923718u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 892u, 0x08923718u, 0x08905EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 400u, 0x08905EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923718u) goto L_08923718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923718: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_fpr_13 = std::bit_cast(0u); @@ -8291,8 +14230,21 @@ L_08923718: L_08923730: aot_gpr_31 = (0x08923738u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 894u, 0x08923738u, 0x0890711Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 697u, 0x0890711Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923738u) goto L_08923738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923738: aot_gpr_4 = (0u | 1u); if (aot_gpr_2 == aot_gpr_4) { @@ -8303,8 +14255,21 @@ L_08923738: L_08923744: aot_gpr_31 = (0x0892374Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 896u, 0x0892374Cu, 0x0890711Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 697u, 0x0890711Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892374Cu) goto L_0892374C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892374C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8337,8 +14302,21 @@ L_0892376C: L_08923784: aot_gpr_31 = (0x0892378Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 901u, 0x0892378Cu, 0x08906F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 664u, 0x08906F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892378Cu) goto L_0892378C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892378C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8370,8 +14348,21 @@ L_089237B4: ctx.gpr[18] = (ctx.gpr[18] & 255u); aot_gpr_31 = (0x089237C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 906u, 0x089237C0u, 0x08905C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 381u, 0x08905C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089237C0u) goto L_089237C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089237C0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8418,31 +14409,96 @@ L_08923804: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923810u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 913u, 0x08923810u, 0x08905C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 384u, 0x08905C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923810u) goto L_08923810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923810: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892381Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 914u, 0x0892381Cu, 0x08905C70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 385u, 0x08905C70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892381Cu) goto L_0892381C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892381C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923828u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 915u, 0x08923828u, 0x08905C98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 386u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 386u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 386u, 0x08905C98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923828u) goto L_08923828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923828: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923834u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 916u, 0x08923834u, 0x08905CC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 387u, 0x08905CC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923834u) goto L_08923834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923834: aot_gpr_31 = (0x0892383Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 917u, 0x0892383Cu, 0x08905EC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 401u, 0x08905EC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892383Cu) goto L_0892383C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892383C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (65520u << 16u); @@ -8451,8 +14507,21 @@ L_0892383C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08923858u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 918u, 0x08923858u, 0x08905EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 402u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 402u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 402u, 0x08905EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923858u) goto L_08923858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923858: ctx.gpr[18] = (ctx.gpr[29] + static_cast(1008)); aot_fpr_20 = std::bit_cast(0u); @@ -8462,14 +14531,40 @@ L_08923858: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08923878u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 919u, 0x08923878u, 0x08904E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 206u, 0x08904E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923878u) goto L_08923878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923878: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08923884u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 920u, 0x08923884u, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923884u) goto L_08923884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923884: ctx.gpr[19] = (aot_gpr_16 + static_cast(128)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8477,14 +14572,40 @@ L_08923884: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0892389Cu); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 921u, 0x0892389Cu, 0x08904E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 206u, 0x08904E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892389Cu) goto L_0892389C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892389C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089238A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 922u, 0x089238A8u, 0x089059FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 354u, 0x089059FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089238A8u) goto L_089238A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089238A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8495,13 +14616,39 @@ L_089238A8: L_089238B0: aot_gpr_31 = (0x089238B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 924u, 0x089238B8u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089238B8u) goto L_089238B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089238B8: aot_gpr_31 = (0x089238C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 925u, 0x089238C0u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089238C0u) goto L_089238C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089238C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 57u); @@ -8524,8 +14671,21 @@ L_089238D0: L_089238E4: aot_gpr_31 = (0x089238ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 928u, 0x089238ECu, 0x08909F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 521u, 0x08909F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089238ECu) goto L_089238EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089238EC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8566,8 +14726,21 @@ L_08923910: L_08923924: aot_gpr_31 = (0x0892392Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 934u, 0x0892392Cu, 0x08907350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 730u, 0x08907350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892392Cu) goto L_0892392C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892392C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8578,8 +14751,21 @@ L_0892392C: L_08923934: aot_gpr_31 = (0x0892393Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 936u, 0x0892393Cu, 0x08905C3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 383u, 0x08905C3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892393Cu) goto L_0892393C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892393C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8590,8 +14776,21 @@ L_0892393C: L_08923944: aot_gpr_31 = (0x0892394Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 938u, 0x0892394Cu, 0x0890B608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 854u, 0x0890B608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892394Cu) goto L_0892394C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892394C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1300), 0u); @@ -8603,18 +14802,57 @@ L_0892394C: L_08923954: aot_gpr_31 = (0x0892395Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 940u, 0x0892395Cu, 0x089081BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 33u, 0x089081BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892395Cu) goto L_0892395C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892395C: aot_gpr_31 = (0x08923964u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 941u, 0x08923964u, 0x08914E30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 124u, 0x08914E30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923964u) goto L_08923964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923964: aot_gpr_31 = (0x0892396Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 942u, 0x0892396Cu, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892396Cu) goto L_0892396C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892396C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 58u); @@ -8627,18 +14865,57 @@ L_0892396C: L_0892397C: aot_gpr_31 = (0x08923984u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 944u, 0x08923984u, 0x08919480u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 258u, 0x08919480u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923984u) goto L_08923984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923984: aot_gpr_31 = (0x0892398Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 945u, 0x0892398Cu, 0x08907AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 839u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 839u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 839u, 0x08907AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892398Cu) goto L_0892398C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892398C: aot_gpr_31 = (0x08923994u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 946u, 0x08923994u, 0x08919CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 349u, 0x08919CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923994u) goto L_08923994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923994: aot_gpr_31 = (0x0892399Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8654,8 +14931,21 @@ L_0892399C: L_089239A4: aot_gpr_31 = (0x089239ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 949u, 0x089239ACu, 0x088B9DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 395u, 0x088B9DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089239ACu) goto L_089239AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089239AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(216)); @@ -8670,8 +14960,21 @@ L_089239AC: L_089239C4: aot_gpr_31 = (0x089239CCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 951u, 0x089239CCu, 0x08905FD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 414u, 0x08905FD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089239CCu) goto L_089239CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089239CC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8682,8 +14985,21 @@ L_089239CC: L_089239D4: aot_gpr_31 = (0x089239DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 953u, 0x089239DCu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089239DCu) goto L_089239DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089239DC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8694,8 +15010,21 @@ L_089239DC: L_089239E4: aot_gpr_31 = (0x089239ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 955u, 0x089239ECu, 0x08909F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 521u, 0x08909F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089239ECu) goto L_089239EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089239EC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8706,8 +15035,21 @@ L_089239EC: L_089239F4: aot_gpr_31 = (0x089239FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 957u, 0x089239FCu, 0x08905EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 404u, 0x08905EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089239FCu) goto L_089239FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089239FC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8718,8 +15060,21 @@ L_089239FC: L_08923A04: aot_gpr_31 = (0x08923A0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 959u, 0x08923A0Cu, 0x08909C20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 467u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 467u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 467u, 0x08909C20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923A0Cu) goto L_08923A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923A0C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8741,8 +15096,21 @@ L_08923A14: L_08923A28: aot_gpr_31 = (0x08923A30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 962u, 0x08923A30u, 0x08909D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 491u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 491u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 491u, 0x08909D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923A30u) goto L_08923A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923A30: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8753,8 +15121,21 @@ L_08923A30: L_08923A38: aot_gpr_31 = (0x08923A40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 964u, 0x08923A40u, 0x08909EBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 509u, 0x08909EBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923A40u) goto L_08923A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923A40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (57344u << 16u); @@ -8765,8 +15146,21 @@ L_08923A40: L_08923A54: aot_gpr_31 = (0x08923A5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0177. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 966u, 0x08923A5Cu, 0x08AC811Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0177_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0177_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0177_entry, 177u, 29u, 0x08AC811Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923A5Cu) goto L_08923A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923A5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8779,13 +15173,39 @@ L_08923A5C: L_08923A6C: aot_gpr_31 = (0x08923A74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 968u, 0x08923A74u, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923A74u) goto L_08923A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923A74: aot_gpr_31 = (0x08923A7Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 969u, 0x08923A7Cu, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923A7Cu) goto L_08923A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923A7C: aot_gpr_31 = (0x08923A84u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -8809,13 +15229,39 @@ L_08923A98: L_08923AA0: aot_gpr_31 = (0x08923AA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 973u, 0x08923AA8u, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923AA8u) goto L_08923AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923AA8: aot_gpr_31 = (0x08923AB0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 974u, 0x08923AB0u, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923AB0u) goto L_08923AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923AB0: aot_gpr_4 = (0u | 24u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -8827,13 +15273,39 @@ L_08923AB0: L_08923ABC: aot_gpr_31 = (0x08923AC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 976u, 0x08923AC4u, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923AC4u) goto L_08923AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923AC4: aot_gpr_31 = (0x08923ACCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 977u, 0x08923ACCu, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923ACCu) goto L_08923ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923ACC: aot_gpr_4 = (0u | 26u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8856,15 +15328,41 @@ L_08923AE4: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08923AF0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 981u, 0x08923AF0u, 0x08905D74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 393u, 0x08905D74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923AF0u) goto L_08923AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923AF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08923B00u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 982u, 0x08923B00u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923B00u) goto L_08923B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923B00: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] != 0u; @@ -8877,15 +15375,41 @@ L_08923B0C: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08923B18u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 984u, 0x08923B18u, 0x08905D50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 391u, 0x08905D50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923B18u) goto L_08923B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923B18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08923B28u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 985u, 0x08923B28u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923B28u) goto L_08923B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923B28: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08923B2C; @@ -8893,8 +15417,21 @@ L_08923B2C: aot_gpr_4 = (aot_gpr_16 + static_cast(816)); aot_gpr_31 = (0x08923B38u); aot_gpr_5 = (0u | 248u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 987u, 0x08923B38u, 0x08905FC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 413u, 0x08905FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923B38u) goto L_08923B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923B38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 256u); @@ -8921,8 +15458,21 @@ L_08923B50: L_08923B58: aot_gpr_31 = (0x08923B60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 991u, 0x08923B60u, 0x089094C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 352u, 0x089094C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923B60u) goto L_08923B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923B60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8942,8 +15492,21 @@ L_08923B68: L_08923B78: aot_gpr_31 = (0x08923B80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 994u, 0x08923B80u, 0x089096B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 387u, 0x089096B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923B80u) goto L_08923B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923B80: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -8956,8 +15519,21 @@ L_08923B80: L_08923B90: aot_gpr_31 = (0x08923B98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 996u, 0x08923B98u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923B98u) goto L_08923B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923B98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 17u); @@ -8977,8 +15553,21 @@ L_08923BA8: L_08923BB0: aot_gpr_31 = (0x08923BB8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 999u, 0x08923BB8u, 0x0891BD30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 678u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 678u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 678u, 0x0891BD30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923BB8u) goto L_08923BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923BB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8998,8 +15587,21 @@ L_08923BC0: L_08923BD0: aot_gpr_31 = (0x08923BD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1002u, 0x08923BD8u, 0x08909950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 426u, 0x08909950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923BD8u) goto L_08923BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923BD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 4096u); @@ -9012,8 +15614,21 @@ L_08923BD8: L_08923BE8: aot_gpr_31 = (0x08923BF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1004u, 0x08923BF0u, 0x08909F84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 522u, 0x08909F84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923BF0u) goto L_08923BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923BF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (32u << 16u); @@ -9027,8 +15642,21 @@ L_08923BF0: L_08923C04: aot_gpr_31 = (0x08923C0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1006u, 0x08923C0Cu, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C0Cu) goto L_08923C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 46u); @@ -9041,8 +15669,21 @@ L_08923C0C: L_08923C1C: aot_gpr_31 = (0x08923C24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1008u, 0x08923C24u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C24u) goto L_08923C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 45u); @@ -9055,8 +15696,21 @@ L_08923C24: L_08923C34: aot_gpr_31 = (0x08923C3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1010u, 0x08923C3Cu, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C3Cu) goto L_08923C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C3C: aot_gpr_4 = (16329u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -9064,19 +15718,58 @@ L_08923C3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923C54u); aot_fpr_12 = ctx.fpr[0] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1011u, 0x08923C54u, 0x08907134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 700u, 0x08907134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C54u) goto L_08923C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C54: aot_gpr_31 = (0x08923C5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1012u, 0x08923C5Cu, 0x08906DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 617u, 0x08906DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C5Cu) goto L_08923C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C5C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923C68u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1013u, 0x08923C68u, 0x0890712Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 699u, 0x0890712Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C68u) goto L_08923C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (65504u << 16u); @@ -9087,8 +15780,21 @@ L_08923C68: L_08923C7C: aot_gpr_31 = (0x08923C84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1015u, 0x08923C84u, 0x08909054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 281u, 0x08909054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C84u) goto L_08923C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C84: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9099,18 +15805,57 @@ L_08923C84: L_08923C8C: aot_gpr_31 = (0x08923C94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1017u, 0x08923C94u, 0x08929EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 450u, 0x08929EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C94u) goto L_08923C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C94: aot_gpr_31 = (0x08923C9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1018u, 0x08923C9Cu, 0x088E957Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 317u, 0x088E957Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923C9Cu) goto L_08923C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923C9C: aot_gpr_31 = (0x08923CA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1019u, 0x08923CA4u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923CA4u) goto L_08923CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923CA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(-1)); @@ -9128,8 +15873,8 @@ L_08923CB8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12448))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08923CD0: @@ -9147,8 +15892,21 @@ L_08923CE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923CF4u); aot_gpr_6 = (0u | 157u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1023u, 0x08923CF4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923CF4u) goto L_08923CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923CF4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9162,15 +15920,41 @@ L_08923CFC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08923D10u); ctx.gpr[7] = (0u | 157u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1025u, 0x08923D10u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923D10u) goto L_08923D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923D10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 118u); aot_gpr_31 = (0x08923D20u); aot_gpr_6 = (0u | 1500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1026u, 0x08923D20u, 0x0891108Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 294u, 0x0891108Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923D20u) goto L_08923D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923D20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9183,8 +15967,21 @@ L_08923D28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923D38u); aot_gpr_6 = (0u | 156u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1028u, 0x08923D38u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923D38u) goto L_08923D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923D38: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9198,14 +15995,40 @@ L_08923D40: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08923D54u); ctx.gpr[7] = (0u | 156u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1030u, 0x08923D54u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923D54u) goto L_08923D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923D54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923D60u); aot_gpr_5 = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1031u, 0x08923D60u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923D60u) goto L_08923D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923D60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9216,8 +16039,21 @@ L_08923D60: L_08923D68: aot_gpr_31 = (0x08923D70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1033u, 0x08923D70u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923D70u) goto L_08923D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923D70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9235,8 +16071,21 @@ L_08923D78: L_08923D80: aot_gpr_31 = (0x08923D88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1036u, 0x08923D88u, 0x0890ADC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 736u, 0x0890ADC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923D88u) goto L_08923D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923D88: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9247,8 +16096,21 @@ L_08923D88: L_08923D90: aot_gpr_31 = (0x08923D98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1038u, 0x08923D98u, 0x0890AE94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 748u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 748u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 748u, 0x0890AE94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923D98u) goto L_08923D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923D98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9259,8 +16121,21 @@ L_08923D98: L_08923DA0: aot_gpr_31 = (0x08923DA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1040u, 0x08923DA8u, 0x089A9900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 296u, 0x089A9900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923DA8u) goto L_08923DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923DA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9271,8 +16146,21 @@ L_08923DA8: L_08923DB0: aot_gpr_31 = (0x08923DB8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1042u, 0x08923DB8u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923DB8u) goto L_08923DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923DB8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9283,8 +16171,21 @@ L_08923DB8: L_08923DC0: aot_gpr_31 = (0x08923DC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1044u, 0x08923DC8u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923DC8u) goto L_08923DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923DC8: aot_gpr_4 = (0u | 17u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -9296,8 +16197,21 @@ L_08923DC8: L_08923DD4: aot_gpr_31 = (0x08923DDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1046u, 0x08923DDCu, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923DDCu) goto L_08923DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923DDC: aot_gpr_4 = (0u | 18u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9309,20 +16223,59 @@ L_08923DDC: L_08923DE8: aot_gpr_31 = (0x08923DF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1048u, 0x08923DF0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923DF0u) goto L_08923DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923DF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923DFCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1049u, 0x08923DFCu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923DFCu) goto L_08923DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923DFC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08923E08u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1050u, 0x08923E08u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923E08u) goto L_08923E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923E08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(160)); @@ -9344,13 +16297,39 @@ L_08923E20: L_08923E28: aot_gpr_31 = (0x08923E30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1053u, 0x08923E30u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923E30u) goto L_08923E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923E30: aot_gpr_31 = (0x08923E38u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1054u, 0x08923E38u, 0x08905F98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 409u, 0x08905F98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923E38u) goto L_08923E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923E38: { const bool branch_taken = aot_gpr_2 != aot_gpr_16; if (branch_taken) { @@ -9361,13 +16340,39 @@ L_08923E38: L_08923E40: aot_gpr_31 = (0x08923E48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1056u, 0x08923E48u, 0x088E3B94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 532u, 0x088E3B94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923E48u) goto L_08923E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923E48: aot_gpr_31 = (0x08923E50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1057u, 0x08923E50u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923E50u) goto L_08923E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923E50: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9404,13 +16409,39 @@ L_08923E70: L_08923E78: aot_gpr_31 = (0x08923E80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1063u, 0x08923E80u, 0x0890D498u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 324u, 0x0890D498u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923E80u) goto L_08923E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923E80: aot_gpr_31 = (0x08923E88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1064u, 0x08923E88u, 0x0890D654u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 344u, 0x0890D654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923E88u) goto L_08923E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923E88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9421,13 +16452,39 @@ L_08923E88: L_08923E90: aot_gpr_31 = (0x08923E98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1066u, 0x08923E98u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923E98u) goto L_08923E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923E98: aot_gpr_31 = (0x08923EA0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1067u, 0x08923EA0u, 0x08905F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 408u, 0x08905F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923EA0u) goto L_08923EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923EA0: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9444,8 +16501,21 @@ L_08923EB4: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(1300))); aot_gpr_31 = (0x08923EC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1070u, 0x08923EC0u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923EC0u) goto L_08923EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923EC0: { const bool branch_taken = ctx.gpr[18] != aot_gpr_2; if (branch_taken) { @@ -9456,8 +16526,21 @@ L_08923EC0: L_08923EC8: aot_gpr_31 = (0x08923ED0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1072u, 0x08923ED0u, 0x08905FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 415u, 0x08905FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923ED0u) goto L_08923ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923ED0: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9485,8 +16568,21 @@ L_08923EF8: aot_gpr_5 = (0u | 50u); aot_gpr_31 = (0x08923F08u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1076u, 0x08923F08u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923F08u) goto L_08923F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923F08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9511,8 +16607,21 @@ L_08923F18: L_08923F20: aot_gpr_31 = (0x08923F28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1080u, 0x08923F28u, 0x08924728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 145u, 0x08924728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923F28u) goto L_08923F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923F28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9530,8 +16639,21 @@ L_08923F30: L_08923F38: aot_gpr_31 = (0x08923F40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1083u, 0x08923F40u, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923F40u) goto L_08923F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923F40: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9541,8 +16663,21 @@ L_08923F40: } L_08923F48: aot_gpr_31 = (0x08923F50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1085u, 0x08923F50u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923F50u) goto L_08923F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923F50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2072))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -9556,19 +16691,58 @@ L_08923F60: ctx.gpr[18] = (ctx.gpr[28] + static_cast(8864)); aot_gpr_31 = (0x08923F6Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1087u, 0x08923F6Cu, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923F6Cu) goto L_08923F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923F6C: aot_gpr_31 = (0x08923F74u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1088u, 0x08923F74u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923F74u) goto L_08923F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923F74: aot_gpr_4 = (ctx.gpr[29] + static_cast(1040)); aot_gpr_31 = (0x08923F80u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1089u, 0x08923F80u, 0x08905AC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 364u, 0x08905AC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923F80u) goto L_08923F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923F80: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1040))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1044))); @@ -9579,13 +16753,39 @@ L_08923F80: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1036), aot_gpr_6); aot_gpr_31 = (0x08923FA4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1090u, 0x08923FA4u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923FA4u) goto L_08923FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923FA4: aot_gpr_31 = (0x08923FACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1091u, 0x08923FACu, 0x08917990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 665u, 0x08917990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923FACu) goto L_08923FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923FAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9600,8 +16800,21 @@ L_08923FB4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(468), aot_gpr_4); aot_gpr_31 = (0x08923FCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1093u, 0x08923FCCu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923FCCu) goto L_08923FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923FCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9614,8 +16827,21 @@ L_08923FD4: aot_gpr_4 = (ctx.gpr[29] + static_cast(1048)); aot_gpr_31 = (0x08923FE4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0071->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0071_entry, 1095u, 0x08923FE4u, 0x089100C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 15u, 0x089100C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08923FE4u) goto L_08923FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08923FE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1048))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1052))); diff --git a/profiles/vcs/generated/generated_unit_0072.cpp b/profiles/vcs/generated/generated_unit_0072.cpp index dd3764f..b703ec6 100644 --- a/profiles/vcs/generated/generated_unit_0072.cpp +++ b/profiles/vcs/generated/generated_unit_0072.cpp @@ -1071,6 +1071,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08924000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1087,13 +1111,39 @@ LOCAL_SCHED_BOUNDARY: L_08924000: aot_gpr_31 = (0x08924008u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 2u, 0x08924008u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924008u) goto L_08924008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924008: aot_gpr_31 = (0x08924010u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 3u, 0x08924010u, 0x08917990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 665u, 0x08917990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924010u) goto L_08924010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924010: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1111,8 +1161,21 @@ L_08924018: L_08924020: aot_gpr_31 = (0x08924028u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 6u, 0x08924028u, 0x088E571Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 309u, 0x088E571Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924028u) goto L_08924028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924028: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1123,8 +1186,21 @@ L_08924028: L_08924030: aot_gpr_31 = (0x08924038u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 8u, 0x08924038u, 0x08910A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 169u, 0x08910A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924038u) goto L_08924038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924038: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1139,8 +1215,21 @@ L_08924044: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08924054u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 10u, 0x08924054u, 0x088E43E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 36u, 0x088E43E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924054u) goto L_08924054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924054: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1152,8 +1241,21 @@ L_0892405C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08924068u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 12u, 0x08924068u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924068u) goto L_08924068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924068: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1164,8 +1266,21 @@ L_08924068: L_08924070: aot_gpr_31 = (0x08924078u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 14u, 0x08924078u, 0x0890652Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 511u, 0x0890652Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924078u) goto L_08924078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924078: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1176,13 +1291,39 @@ L_08924078: L_08924080: aot_gpr_31 = (0x08924088u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 16u, 0x08924088u, 0x0890652Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 511u, 0x0890652Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924088u) goto L_08924088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924088: aot_gpr_31 = (0x08924090u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 17u, 0x08924090u, 0x08905BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 378u, 0x08905BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924090u) goto L_08924090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924090: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1193,8 +1334,21 @@ L_08924090: L_08924098: aot_gpr_31 = (0x089240A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 19u, 0x089240A0u, 0x0890652Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 511u, 0x0890652Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089240A0u) goto L_089240A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089240A0: aot_gpr_4 = (16390u << 16u); aot_gpr_4 = (aot_gpr_4 | 2706u); @@ -1202,8 +1356,21 @@ L_089240A0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089240B8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 20u, 0x089240B8u, 0x089AB048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 627u, 0x089AB048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089240B8u) goto L_089240B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089240B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1214,19 +1381,58 @@ L_089240B8: L_089240C0: aot_gpr_31 = (0x089240C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 22u, 0x089240C8u, 0x0890652Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 511u, 0x0890652Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089240C8u) goto L_089240C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089240C8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089240D4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 23u, 0x089240D4u, 0x089380CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 14u, 0x089380CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089240D4u) goto L_089240D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089240D4: aot_gpr_31 = (0x089240DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 24u, 0x089240DCu, 0x088E3634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 460u, 0x088E3634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089240DCu) goto L_089240DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089240DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1237,8 +1443,21 @@ L_089240DC: L_089240E4: aot_gpr_31 = (0x089240ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 26u, 0x089240ECu, 0x0890C0DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 12u, 0x0890C0DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089240ECu) goto L_089240EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089240EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1249,8 +1468,21 @@ L_089240EC: L_089240F4: aot_gpr_31 = (0x089240FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 28u, 0x089240FCu, 0x0893176Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 260u, 0x0893176Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089240FCu) goto L_089240FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089240FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1261,8 +1493,21 @@ L_089240FC: L_08924104: aot_gpr_31 = (0x0892410Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 30u, 0x0892410Cu, 0x0890713Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 701u, 0x0890713Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892410Cu) goto L_0892410C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892410C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1273,8 +1518,21 @@ L_0892410C: L_08924114: aot_gpr_31 = (0x0892411Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 32u, 0x0892411Cu, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892411Cu) goto L_0892411C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892411C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1285,8 +1543,21 @@ L_0892411C: L_08924124: aot_gpr_31 = (0x0892412Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 34u, 0x0892412Cu, 0x089162D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 324u, 0x089162D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892412Cu) goto L_0892412C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892412C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1297,8 +1568,21 @@ L_0892412C: L_08924134: aot_gpr_31 = (0x0892413Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 36u, 0x0892413Cu, 0x08907360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 731u, 0x08907360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892413Cu) goto L_0892413C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892413C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1316,8 +1600,21 @@ L_08924144: L_0892414C: aot_gpr_31 = (0x08924154u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 39u, 0x08924154u, 0x089ADBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 437u, 0x089ADBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924154u) goto L_08924154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924154: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1328,8 +1625,21 @@ L_08924154: L_0892415C: aot_gpr_31 = (0x08924164u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 41u, 0x08924164u, 0x0890730Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 727u, 0x0890730Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924164u) goto L_08924164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924164: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1340,8 +1650,21 @@ L_08924164: L_0892416C: aot_gpr_31 = (0x08924174u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 43u, 0x08924174u, 0x089165E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 377u, 0x089165E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924174u) goto L_08924174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924174: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1352,8 +1675,21 @@ L_08924174: L_0892417C: aot_gpr_31 = (0x08924184u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 45u, 0x08924184u, 0x0890787Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 784u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 784u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 784u, 0x0890787Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924184u) goto L_08924184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924184: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1364,8 +1700,21 @@ L_08924184: L_0892418C: aot_gpr_31 = (0x08924194u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 47u, 0x08924194u, 0x0890DCC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 435u, 0x0890DCC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924194u) goto L_08924194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924194: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1376,8 +1725,21 @@ L_08924194: L_0892419C: aot_gpr_31 = (0x089241A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 49u, 0x089241A4u, 0x088E89D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 155u, 0x088E89D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089241A4u) goto L_089241A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089241A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1388,8 +1750,21 @@ L_089241A4: L_089241AC: aot_gpr_31 = (0x089241B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 51u, 0x089241B4u, 0x0890BBECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 940u, 0x0890BBECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089241B4u) goto L_089241B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089241B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1419,8 +1794,21 @@ L_089241CC: } L_089241D8: aot_gpr_31 = (0x089241E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 56u, 0x089241E0u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089241E0u) goto L_089241E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089241E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1368))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -1442,8 +1830,21 @@ L_089241F0: L_08924200: aot_gpr_31 = (0x08924208u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1712))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 59u, 0x08924208u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924208u) goto L_08924208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924208: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1454,8 +1855,21 @@ L_08924208: L_08924210: aot_gpr_31 = (0x08924218u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 61u, 0x08924218u, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924218u) goto L_08924218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924218: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1467,19 +1881,58 @@ L_08924220: ctx.gpr[18] = (ctx.gpr[28] + static_cast(8864)); aot_gpr_31 = (0x0892422Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 63u, 0x0892422Cu, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892422Cu) goto L_0892422C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892422C: aot_gpr_31 = (0x08924234u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 64u, 0x08924234u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924234u) goto L_08924234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924234: aot_gpr_4 = (ctx.gpr[29] + static_cast(1068)); aot_gpr_31 = (0x08924240u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 65u, 0x08924240u, 0x08905AC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 364u, 0x08905AC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924240u) goto L_08924240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924240: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1068))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1072))); @@ -1490,8 +1943,21 @@ L_08924240: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1064), aot_gpr_6); aot_gpr_31 = (0x08924264u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 66u, 0x08924264u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924264u) goto L_08924264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924264: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1504,8 +1970,21 @@ L_0892426C: aot_gpr_4 = (ctx.gpr[29] + static_cast(1084)); aot_gpr_31 = (0x0892427Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 68u, 0x0892427Cu, 0x089100C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 15u, 0x089100C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892427Cu) goto L_0892427C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892427C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1084))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1088))); @@ -1516,13 +1995,39 @@ L_0892427C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1080), aot_gpr_6); aot_gpr_31 = (0x089242A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 69u, 0x089242A0u, 0x08905AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 365u, 0x08905AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089242A0u) goto L_089242A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089242A0: aot_gpr_31 = (0x089242A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 70u, 0x089242A8u, 0x08917990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 665u, 0x08917990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089242A8u) goto L_089242A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089242A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1540,8 +2045,21 @@ L_089242BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089242C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 73u, 0x089242C8u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089242C8u) goto L_089242C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089242C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 20u); @@ -1549,13 +2067,39 @@ L_089242C8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089242E0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 74u, 0x089242E0u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089242E0u) goto L_089242E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089242E0: aot_gpr_31 = (0x089242E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 75u, 0x089242E8u, 0x08912CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 702u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 702u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 702u, 0x08912CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089242E8u) goto L_089242E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089242E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (0u | 0u); @@ -1621,27 +2165,79 @@ L_08924348: L_08924358: aot_gpr_31 = (0x08924360u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 84u, 0x08924360u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924360u) goto L_08924360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924360: aot_gpr_4 = (2236u << 16u); ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08924370u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 85u, 0x08924370u, 0x08905A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 359u, 0x08905A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924370u) goto L_08924370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924370: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08924380u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 86u, 0x08924380u, 0x08904BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 181u, 0x08904BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924380u) goto L_08924380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924380: aot_gpr_31 = (0x08924388u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 87u, 0x08924388u, 0x089059E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 353u, 0x089059E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924388u) goto L_08924388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924388: aot_gpr_4 = (17692u << 16u); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -1655,8 +2251,21 @@ L_08924388: } L_089243A4: aot_gpr_31 = (0x089243ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 89u, 0x089243ACu, 0x08904CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 195u, 0x08904CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089243ACu) goto L_089243AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089243AC: aot_gpr_4 = (aot_gpr_2 & 127u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1671,8 +2280,21 @@ L_089243AC: aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089243E0u); ctx.fpr[22] = aot_fpr_12 + aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 90u, 0x089243E0u, 0x08904CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 195u, 0x08904CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089243E0u) goto L_089243E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089243E0: aot_gpr_4 = (aot_gpr_2 & 127u); aot_gpr_4 = (aot_gpr_4 + static_cast(-64)); @@ -1686,8 +2308,21 @@ L_089243E0: aot_fpr_12 = aot_fpr_20 + aot_fpr_12; aot_gpr_31 = (0x08924410u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1120), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 91u, 0x08924410u, 0x08904CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 195u, 0x08904CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924410u) goto L_08924410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924410: aot_gpr_4 = (aot_gpr_2 & 127u); aot_gpr_4 = (aot_gpr_4 + static_cast(-64)); @@ -1707,8 +2342,21 @@ L_08924410: ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08924458u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1124), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 92u, 0x08924458u, 0x08904CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 195u, 0x08904CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924458u) goto L_08924458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924458: ctx.gpr[11] = (aot_gpr_2 & 4095u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -1726,18 +2374,57 @@ L_08924458: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08924498u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 93u, 0x08924498u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924498u) goto L_08924498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924498: aot_gpr_31 = (0x089244A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 94u, 0x089244A0u, 0x08860704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 68u, 0x08860704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089244A0u) goto L_089244A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089244A0: aot_gpr_31 = (0x089244A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 95u, 0x089244A8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089244A8u) goto L_089244A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089244A8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1748,8 +2435,21 @@ L_089244A8: L_089244B0: aot_gpr_31 = (0x089244B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 97u, 0x089244B8u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089244B8u) goto L_089244B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089244B8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1760,8 +2460,21 @@ L_089244B8: L_089244C0: aot_gpr_31 = (0x089244C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 99u, 0x089244C8u, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089244C8u) goto L_089244C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089244C8: aot_gpr_4 = (0u | 17u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -1773,8 +2486,21 @@ L_089244C8: L_089244D4: aot_gpr_31 = (0x089244DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 101u, 0x089244DCu, 0x08907124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 698u, 0x08907124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089244DCu) goto L_089244DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089244DC: aot_gpr_4 = (0u | 18u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1786,14 +2512,40 @@ L_089244DC: L_089244E8: aot_gpr_31 = (0x089244F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 103u, 0x089244F0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089244F0u) goto L_089244F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089244F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089244FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 104u, 0x089244FCu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089244FCu) goto L_089244FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089244FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (1024u << 16u); @@ -1807,8 +2559,21 @@ L_089244FC: L_08924510: aot_gpr_31 = (0x08924518u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 106u, 0x08924518u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924518u) goto L_08924518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924518: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1819,13 +2584,39 @@ L_08924518: L_08924520: aot_gpr_31 = (0x08924528u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 108u, 0x08924528u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924528u) goto L_08924528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924528: aot_gpr_31 = (0x08924530u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 109u, 0x08924530u, 0x08905F98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 409u, 0x08905F98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924530u) goto L_08924530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924530: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1836,13 +2627,39 @@ L_08924530: L_08924538: aot_gpr_31 = (0x08924540u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 111u, 0x08924540u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924540u) goto L_08924540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924540: aot_gpr_31 = (0x08924548u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 112u, 0x08924548u, 0x08905F98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 409u, 0x08905F98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924548u) goto L_08924548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924548: aot_gpr_31 = (0x08924550u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1858,13 +2675,39 @@ L_08924550: L_08924558: aot_gpr_31 = (0x08924560u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 115u, 0x08924560u, 0x089051A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 240u, 0x089051A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924560u) goto L_08924560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924560: aot_gpr_31 = (0x08924568u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 116u, 0x08924568u, 0x08B00ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 259u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 259u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 259u, 0x08B00ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924568u) goto L_08924568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924568: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1890,8 +2733,21 @@ L_08924584: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089245A0u); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 119u, 0x089245A0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089245A0u) goto L_089245A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089245A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1952))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -1902,8 +2758,21 @@ L_089245A0: } L_089245AC: aot_gpr_31 = (0x089245B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 121u, 0x089245B4u, 0x08905378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 275u, 0x08905378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089245B4u) goto L_089245B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089245B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1956))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -1918,8 +2787,21 @@ L_089245C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089245D4u); aot_gpr_5 = (aot_gpr_5 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 123u, 0x089245D4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089245D4u) goto L_089245D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089245D4: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1952), aot_gpr_4); @@ -1958,8 +2840,21 @@ L_08924610: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892461Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 129u, 0x0892461Cu, 0x0890DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 475u, 0x0890DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892461Cu) goto L_0892461C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892461C: aot_gpr_31 = (0x08924624u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1975,13 +2870,39 @@ L_08924624: L_0892462C: aot_gpr_31 = (0x08924634u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 132u, 0x08924634u, 0x08906534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 512u, 0x08906534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924634u) goto L_08924634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924634: aot_gpr_31 = (0x0892463Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 133u, 0x0892463Cu, 0x08905FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 412u, 0x08905FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892463Cu) goto L_0892463C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892463C: aot_gpr_4 = (0u | 11u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1993,8 +2914,21 @@ L_0892463C: L_08924648: aot_gpr_31 = (0x08924650u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 135u, 0x08924650u, 0x08905104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 231u, 0x08905104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924650u) goto L_08924650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924650: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 16u); @@ -2007,8 +2941,21 @@ L_08924650: L_08924660: aot_gpr_31 = (0x08924668u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 137u, 0x08924668u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924668u) goto L_08924668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924668: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2024,8 +2971,21 @@ L_08924670: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x0892468Cu); aot_gpr_6 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 139u, 0x0892468Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892468Cu) goto L_0892468C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892468C: if (ctx.gpr[17] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); @@ -2048,8 +3008,21 @@ L_089246AC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089246BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 142u, 0x089246BCu, 0x0881EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 465u, 0x0881EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089246BCu) goto L_089246BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089246BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); goto L_089246C0; @@ -2085,8 +3058,8 @@ L_089246E4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(1328)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08924728: @@ -2125,8 +3098,21 @@ L_0892476C: L_08924774: aot_gpr_31 = (0x0892477Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 149u, 0x0892477Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892477Cu) goto L_0892477C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892477C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2189,8 +3175,21 @@ L_089247C4: L_089247CC: aot_gpr_31 = (0x089247D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 156u, 0x089247D4u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089247D4u) goto L_089247D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089247D4: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -2211,8 +3210,21 @@ L_089247D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08924820u); aot_gpr_6 = (0u | 4000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 157u, 0x08924820u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924820u) goto L_08924820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924820: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2244,8 +3256,21 @@ L_0892484C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892485Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 161u, 0x0892485Cu, 0x089AF330u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 784u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 784u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 784u, 0x089AF330u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892485Cu) goto L_0892485C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892485C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2290,8 +3315,21 @@ L_0892489C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089248ACu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 167u, 0x089248ACu, 0x089A9AF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 325u, 0x089A9AF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089248ACu) goto L_089248AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089248AC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2318,13 +3356,39 @@ L_089248CC: L_089248D4: aot_gpr_31 = (0x089248DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 171u, 0x089248DCu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089248DCu) goto L_089248DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089248DC: aot_gpr_31 = (0x089248E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 172u, 0x089248E4u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089248E4u) goto L_089248E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089248E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2335,13 +3399,39 @@ L_089248E4: L_089248EC: aot_gpr_31 = (0x089248F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 174u, 0x089248F4u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089248F4u) goto L_089248F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089248F4: aot_gpr_31 = (0x089248FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 175u, 0x089248FCu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089248FCu) goto L_089248FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089248FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2354,8 +3444,21 @@ L_08924904: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08924914u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 177u, 0x08924914u, 0x089AF91Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 863u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 863u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 863u, 0x089AF91Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924914u) goto L_08924914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924914: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2366,8 +3469,21 @@ L_08924914: L_0892491C: aot_gpr_31 = (0x08924924u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 179u, 0x08924924u, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924924u) goto L_08924924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924924: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(565))); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -2379,13 +3495,39 @@ L_08924924: L_08924930: aot_gpr_31 = (0x08924938u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 181u, 0x08924938u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924938u) goto L_08924938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924938: aot_gpr_31 = (0x08924940u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 182u, 0x08924940u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924940u) goto L_08924940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924940: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2476,8 +3618,21 @@ L_089249D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089249E0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 194u, 0x089249E0u, 0x089AF330u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 784u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 784u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 784u, 0x089AF330u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089249E0u) goto L_089249E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089249E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2506,8 +3661,21 @@ L_08924A04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08924A10u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 198u, 0x08924A10u, 0x089AB6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 726u, 0x089AB6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924A10u) goto L_08924A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924A10: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2522,8 +3690,21 @@ L_08924A18: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08924A30u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 200u, 0x08924A30u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924A30u) goto L_08924A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924A30: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2561,8 +3742,21 @@ L_08924A54: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08924A6Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 203u, 0x08924A6Cu, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924A6Cu) goto L_08924A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924A6C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2602,8 +3796,21 @@ L_08924A94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08924AA4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 207u, 0x08924AA4u, 0x089AF330u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 784u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 784u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 784u, 0x089AF330u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924AA4u) goto L_08924AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924AA4: aot_gpr_31 = (0x08924AACu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2652,8 +3859,21 @@ L_08924AD8: L_08924AE8: aot_gpr_31 = (0x08924AF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 214u, 0x08924AF0u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924AF0u) goto L_08924AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924AF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2704,8 +3924,21 @@ L_08924B30: L_08924B38: aot_gpr_31 = (0x08924B40u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 222u, 0x08924B40u, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924B40u) goto L_08924B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924B40: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2743,22 +3976,61 @@ L_08924B68: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08924B7Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 225u, 0x08924B7Cu, 0x0892B110u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 765u, 0x0892B110u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924B7Cu) goto L_08924B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924B7C: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08924B8Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 226u, 0x08924B8Cu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924B8Cu) goto L_08924B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924B8C: ctx.gpr[19] = (ctx.gpr[29] + static_cast(16)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08924B9Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 227u, 0x08924B9Cu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924B9Cu) goto L_08924B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924B9C: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2830,8 +4102,21 @@ L_08924BE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08924BF0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 230u, 0x08924BF0u, 0x0892BA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 878u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 878u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 878u, 0x0892BA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924BF0u) goto L_08924BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924BF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2842,8 +4127,21 @@ L_08924BF0: L_08924BF8: aot_gpr_31 = (0x08924C00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 232u, 0x08924C00u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924C00u) goto L_08924C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924C00: aot_gpr_31 = (0x08924C08u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2859,8 +4157,21 @@ L_08924C08: L_08924C10: aot_gpr_31 = (0x08924C18u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 235u, 0x08924C18u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924C18u) goto L_08924C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924C18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2904,13 +4215,39 @@ L_08924C58: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08924C64u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 242u, 0x08924C64u, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924C64u) goto L_08924C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924C64: aot_gpr_31 = (0x08924C6Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 243u, 0x08924C6Cu, 0x08B41658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 369u, 0x08B41658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924C6Cu) goto L_08924C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924C6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3056,8 +4393,8 @@ L_08924DA4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12176))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08924DBC: @@ -3125,8 +4462,21 @@ L_08924E04: L_08924E18: aot_gpr_31 = (0x08924E20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 268u, 0x08924E20u, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924E20u) goto L_08924E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924E20: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3204,8 +4554,21 @@ L_08924EC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08924ED4u); aot_gpr_5 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 275u, 0x08924ED4u, 0x0890D81Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 367u, 0x0890D81Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924ED4u) goto L_08924ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924ED4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3238,8 +4601,21 @@ L_08924EF0: L_08924F00: aot_gpr_31 = (0x08924F08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 280u, 0x08924F08u, 0x0890DC74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 429u, 0x0890DC74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924F08u) goto L_08924F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924F08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3261,8 +4637,21 @@ L_08924F10: L_08924F28: aot_gpr_31 = (0x08924F30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 283u, 0x08924F30u, 0x08B011C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 327u, 0x08B011C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08924F30u) goto L_08924F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08924F30: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3287,8 +4676,8 @@ L_08924F50: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12120))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08924F68: @@ -3401,8 +4790,21 @@ L_08925014: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08925020u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 303u, 0x08925020u, 0x089A9038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 148u, 0x089A9038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925020u) goto L_08925020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925020: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3416,8 +4818,21 @@ L_08925028: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892503Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 305u, 0x0892503Cu, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892503Cu) goto L_0892503C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892503C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3612,21 +5027,60 @@ L_08925168: aot_gpr_5 = (0u | 51u); aot_gpr_31 = (0x08925178u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 333u, 0x08925178u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925178u) goto L_08925178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925178: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925184u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 334u, 0x08925184u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925184u) goto L_08925184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925184: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08925194u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 335u, 0x08925194u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925194u) goto L_08925194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925194: ctx.gpr[18] = (0u | 1u); goto L_08925198; @@ -3641,8 +5095,21 @@ L_089251A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089251ACu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 338u, 0x089251ACu, 0x089A9038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 148u, 0x089A9038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089251ACu) goto L_089251AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089251AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); aot_gpr_5 = (0u | 18u); @@ -3687,8 +5154,21 @@ L_089251F0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925204u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 343u, 0x08925204u, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925204u) goto L_08925204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925204: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3807,8 +5287,21 @@ L_089252BC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089252D0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 359u, 0x089252D0u, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089252D0u) goto L_089252D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089252D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3820,8 +5313,21 @@ L_089252D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089252E4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 361u, 0x089252E4u, 0x089A9038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 148u, 0x089A9038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089252E4u) goto L_089252E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089252E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3835,8 +5341,21 @@ L_089252EC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925300u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 363u, 0x08925300u, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925300u) goto L_08925300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925300: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3916,8 +5435,21 @@ L_08925374: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925388u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 374u, 0x08925388u, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925388u) goto L_08925388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925388: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3929,8 +5461,21 @@ L_08925390: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892539Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 376u, 0x0892539Cu, 0x089A9038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 148u, 0x089A9038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892539Cu) goto L_0892539C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892539C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3944,8 +5489,21 @@ L_089253A4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089253B8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 378u, 0x089253B8u, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089253B8u) goto L_089253B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089253B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3956,8 +5514,21 @@ L_089253B8: L_089253C0: aot_gpr_31 = (0x089253C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 380u, 0x089253C8u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089253C8u) goto L_089253C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089253C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3968,8 +5539,21 @@ L_089253C8: L_089253D0: aot_gpr_31 = (0x089253D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 382u, 0x089253D8u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089253D8u) goto L_089253D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089253D8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(160), aot_run_words); @@ -3982,8 +5566,8 @@ L_089253D8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089253F8: @@ -4051,13 +5635,39 @@ L_0892547C: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(448))); aot_gpr_31 = (0x089254A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 391u, 0x089254A8u, 0x08A96658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 358u, 0x08A96658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089254A8u) goto L_089254A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089254A8: aot_gpr_31 = (0x089254B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 392u, 0x089254B0u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089254B0u) goto L_089254B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089254B0: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4108,8 +5718,21 @@ L_089254E4: aot_gpr_4 = (ctx.gpr[29] | 0u); aot_gpr_31 = (0x08925500u); aot_gpr_6 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 397u, 0x08925500u, 0x089DD460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 197u, 0x089DD460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925500u) goto L_08925500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925500: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4119,8 +5742,21 @@ L_08925500: } L_08925508: aot_gpr_31 = (0x08925510u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 399u, 0x08925510u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925510u) goto L_08925510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925510: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4227,8 +5863,21 @@ L_089255A0: aot_gpr_6 = (0u | 203u); aot_gpr_31 = (0x089255D4u); aot_fpr_13 = std::bit_cast(ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 409u, 0x089255D4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089255D4u) goto L_089255D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089255D4: if (ctx.gpr[17] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20352))); @@ -4295,14 +5944,40 @@ L_08925678: aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_gpr_31 = (0x08925690u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(28), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 416u, 0x08925690u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925690u) goto L_08925690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925690: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0892569Cu); aot_gpr_4 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 417u, 0x0892569Cu, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892569Cu) goto L_0892569C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892569C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089256A8u); @@ -4322,8 +5997,21 @@ L_089256B4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089256CCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 420u, 0x089256CCu, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089256CCu) goto L_089256CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089256CC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20348))); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4363,8 +6051,21 @@ L_08925728: aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_gpr_31 = (0x08925740u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(28), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 424u, 0x08925740u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925740u) goto L_08925740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925740: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892574Cu); @@ -4383,13 +6084,39 @@ L_08925758: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892576Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 427u, 0x0892576Cu, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892576Cu) goto L_0892576C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892576C: aot_gpr_31 = (0x08925774u); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 428u, 0x08925774u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925774u) goto L_08925774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925774: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925780u); @@ -4408,13 +6135,39 @@ L_0892578C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089257A0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 431u, 0x089257A0u, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089257A0u) goto L_089257A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089257A0: aot_gpr_31 = (0x089257A8u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 432u, 0x089257A8u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089257A8u) goto L_089257A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089257A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089257B4u); @@ -4433,8 +6186,21 @@ L_089257C0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089257D4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 435u, 0x089257D4u, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089257D4u) goto L_089257D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089257D4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20344))); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4474,8 +6240,21 @@ L_08925830: aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_gpr_31 = (0x08925848u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(28), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 439u, 0x08925848u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925848u) goto L_08925848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925848: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925854u); @@ -4494,13 +6273,39 @@ L_08925860: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08925874u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 442u, 0x08925874u, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925874u) goto L_08925874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925874: aot_gpr_31 = (0x0892587Cu); aot_gpr_4 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 443u, 0x0892587Cu, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892587Cu) goto L_0892587C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892587C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925888u); @@ -4519,8 +6324,21 @@ L_08925894: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089258A8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 446u, 0x089258A8u, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089258A8u) goto L_089258A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089258A8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-20329))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4532,14 +6350,40 @@ L_089258A8: L_089258B4: aot_gpr_31 = (0x089258BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 448u, 0x089258BCu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089258BCu) goto L_089258BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089258BC: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089258C8u); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 449u, 0x089258C8u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089258C8u) goto L_089258C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089258C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089258D4u); @@ -4563,8 +6407,21 @@ L_089258E0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08925908u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 452u, 0x08925908u, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925908u) goto L_08925908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925908: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (64u << 16u); @@ -4587,14 +6444,40 @@ L_0892591C: L_0892592C: aot_gpr_31 = (0x08925934u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 455u, 0x08925934u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925934u) goto L_08925934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925934: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08925940u); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 456u, 0x08925940u, 0x08AB1020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 289u, 0x08AB1020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925940u) goto L_08925940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925940: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892594Cu); @@ -4617,8 +6500,21 @@ L_08925958: aot_gpr_5 = (ctx.gpr[29] + static_cast(44)); aot_gpr_31 = (0x0892597Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 459u, 0x0892597Cu, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892597Cu) goto L_0892597C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892597C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925988u); @@ -4644,8 +6540,21 @@ L_089259A4: aot_gpr_5 = (ctx.gpr[29] + static_cast(44)); aot_gpr_31 = (0x089259B0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 463u, 0x089259B0u, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089259B0u) goto L_089259B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089259B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (64u << 16u); @@ -4695,8 +6604,21 @@ L_089259FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08925A24u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(88), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 468u, 0x08925A24u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925A24u) goto L_08925A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925A24: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1926)))))); ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -4721,8 +6643,21 @@ L_08925A50: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08925A68u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 471u, 0x08925A68u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925A68u) goto L_08925A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925A68: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1926)))))); aot_gpr_5 = (aot_gpr_4 + static_cast(-2)); @@ -4740,8 +6675,8 @@ L_08925A7C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12064))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08925A94: @@ -5169,8 +7104,21 @@ L_08925CCC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08925CF4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 481u, 0x08925CF4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925CF4u) goto L_08925CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925CF4: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 255u); @@ -5273,8 +7221,21 @@ L_08925DA4: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08925DC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 487u, 0x08925DC8u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925DC8u) goto L_08925DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925DC8: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5414,8 +7375,21 @@ L_08925EB4: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08925EC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 501u, 0x08925EC8u, 0x088E3DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 563u, 0x088E3DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925EC8u) goto L_08925EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925EC8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5436,8 +7410,21 @@ L_08925ED8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08925EE8u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 504u, 0x08925EE8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08925EE8u) goto L_08925EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08925EE8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5626,8 +7613,21 @@ L_08926014: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08926040u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 516u, 0x08926040u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926040u) goto L_08926040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926040: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -5655,8 +7655,8 @@ L_08926050: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08926088: @@ -5665,8 +7665,21 @@ L_08926088: aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(288), aot_run_words); } aot_gpr_31 = (0x089260ACu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 519u, 0x089260ACu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089260ACu) goto L_089260AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089260AC: if (aot_gpr_2 == 0u) { aot_fpr_12 = std::bit_cast(0u); @@ -5930,13 +7943,39 @@ L_089262D4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089262E0u); aot_gpr_5 = (aot_gpr_16 + static_cast(1276)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 543u, 0x089262E0u, 0x0890380Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 648u, 0x0890380Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089262E0u) goto L_089262E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089262E0: aot_gpr_31 = (0x089262E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 544u, 0x089262E8u, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089262E8u) goto L_089262E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089262E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(772))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5959,8 +7998,21 @@ L_089262F4: L_0892630C: aot_gpr_31 = (0x08926314u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 547u, 0x08926314u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926314u) goto L_08926314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926314: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(724))); ctx.gpr[17] = (aot_gpr_2 | 0u); @@ -6014,8 +8066,21 @@ L_08926334: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(56), ctx.gpr[8]); aot_gpr_31 = (0x089263CCu); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(60), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 550u, 0x089263CCu, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089263CCu) goto L_089263CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089263CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(772))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); @@ -6051,8 +8116,21 @@ L_089263FC: } L_08926404: aot_gpr_31 = (0x0892640Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 555u, 0x0892640Cu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892640Cu) goto L_0892640C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892640C: aot_gpr_31 = (0x08926414u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6154,8 +8232,21 @@ L_08926510: L_08926520: aot_gpr_31 = (0x08926528u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(176))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 563u, 0x08926528u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926528u) goto L_08926528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926528: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(184))); goto L_0892652C; @@ -6165,8 +8256,21 @@ L_0892652C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(184), aot_gpr_4); aot_gpr_31 = (0x08926540u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 565u, 0x08926540u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926540u) goto L_08926540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926540: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(264))); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(256), 0u); @@ -6176,8 +8280,21 @@ L_08926540: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3248))); aot_gpr_31 = (0x08926560u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 566u, 0x08926560u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926560u) goto L_08926560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926560: aot_gpr_4 = (48544u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8848))); @@ -6196,8 +8313,21 @@ L_08926560: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089265A4u); { const float fs = ctx.fpr[15]; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 567u, 0x089265A4u, 0x088600C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 5u, 0x088600C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089265A4u) goto L_089265A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089265A4: aot_gpr_4 = (16212u << 16u); aot_gpr_4 = (aot_gpr_4 | 14680u); @@ -6213,22 +8343,61 @@ L_089265A4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(24), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x089265DCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 568u, 0x089265DCu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089265DCu) goto L_089265DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089265DC: ctx.gpr[19] = (ctx.gpr[29] + static_cast(32)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089265F0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 569u, 0x089265F0u, 0x0885FEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 935u, 0x0885FEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089265F0u) goto L_089265F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089265F0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089265FCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 570u, 0x089265FCu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089265FCu) goto L_089265FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089265FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(104))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6249,18 +8418,57 @@ L_0892660C: L_08926618: aot_gpr_31 = (0x08926620u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 573u, 0x08926620u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926620u) goto L_08926620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926620: aot_gpr_31 = (0x08926628u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 574u, 0x08926628u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926628u) goto L_08926628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926628: aot_gpr_31 = (0x08926630u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 575u, 0x08926630u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926630u) goto L_08926630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926630: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3240))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); @@ -6298,8 +8506,21 @@ L_08926660: L_08926668: aot_gpr_31 = (0x08926670u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 580u, 0x08926670u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926670u) goto L_08926670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926670: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(264))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6318,8 +8539,21 @@ L_08926680: L_0892668C: aot_gpr_31 = (0x08926694u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 583u, 0x08926694u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926694u) goto L_08926694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926694: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(184))); goto L_08926698; @@ -6342,8 +8576,21 @@ L_089266A4: L_089266B0: aot_gpr_31 = (0x089266B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(176))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 587u, 0x089266B8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089266B8u) goto L_089266B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089266B8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(288), aot_run_words); @@ -6356,8 +8603,8 @@ L_089266B8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089266D8: @@ -6431,8 +8678,21 @@ L_08926794: L_089267A4: aot_gpr_31 = (0x089267ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 593u, 0x089267ACu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089267ACu) goto L_089267AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089267AC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6482,8 +8742,21 @@ L_089267E8: aot_gpr_5 = (0u | 40u); aot_gpr_31 = (0x0892680Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 599u, 0x0892680Cu, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892680Cu) goto L_0892680C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892680C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6509,8 +8782,21 @@ L_08926828: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08926838u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 603u, 0x08926838u, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926838u) goto L_08926838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926838: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2196))); aot_gpr_5 = (0u | 17u); @@ -6532,14 +8818,40 @@ L_08926848: L_08926858: aot_gpr_31 = (0x08926860u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 606u, 0x08926860u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926860u) goto L_08926860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926860: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892686Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 607u, 0x0892686Cu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892686Cu) goto L_0892686C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892686C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6627,8 +8939,21 @@ L_089268B0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_gpr_31 = (0x08926928u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 612u, 0x08926928u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926928u) goto L_08926928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926928: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6675,8 +9000,21 @@ L_08926930: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_gpr_31 = (0x08926980u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 614u, 0x08926980u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926980u) goto L_08926980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926980: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6697,8 +9035,21 @@ L_08926988: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089269B8u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), ctx.gpr[20]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 616u, 0x089269B8u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089269B8u) goto L_089269B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089269B8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6710,8 +9061,21 @@ L_089269C0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); aot_gpr_31 = (0x089269CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 618u, 0x089269CCu, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089269CCu) goto L_089269CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089269CC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); goto L_089269D0; @@ -6736,8 +9100,21 @@ L_089269E0: L_089269F0: aot_gpr_31 = (0x089269F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 622u, 0x089269F8u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089269F8u) goto L_089269F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089269F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2308))); aot_gpr_5 = (0u | 5u); @@ -6772,8 +9149,21 @@ L_08926A24: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08926A40u); aot_gpr_6 = (0u | 110u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 626u, 0x08926A40u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926A40u) goto L_08926A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926A40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6784,8 +9174,21 @@ L_08926A40: L_08926A48: aot_gpr_31 = (0x08926A50u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 628u, 0x08926A50u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926A50u) goto L_08926A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926A50: aot_gpr_31 = (0x08926A58u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6801,8 +9204,21 @@ L_08926A58: L_08926A60: aot_gpr_31 = (0x08926A68u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 631u, 0x08926A68u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926A68u) goto L_08926A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926A68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6830,8 +9246,21 @@ L_08926A80: L_08926A8C: aot_gpr_31 = (0x08926A94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 635u, 0x08926A94u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926A94u) goto L_08926A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926A94: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); @@ -6875,8 +9304,21 @@ L_08926AB0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926B10u); aot_gpr_6 = (0u | 12000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 639u, 0x08926B10u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926B10u) goto L_08926B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926B10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -6919,8 +9361,21 @@ L_08926B60: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926B6Cu); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 645u, 0x08926B6Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926B6Cu) goto L_08926B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926B6C: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (0u | 1u); @@ -6939,8 +9394,21 @@ L_08926B80: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926B8Cu); aot_gpr_5 = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 648u, 0x08926B8Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926B8Cu) goto L_08926B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926B8C: ctx.gpr[18] = (0u | 1u); goto L_08926B90; @@ -6989,8 +9457,21 @@ L_08926BD4: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08926BF8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 655u, 0x08926BF8u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926BF8u) goto L_08926BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926BF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (65535u << 16u); @@ -7009,8 +9490,21 @@ L_08926C1C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926C28u); aot_gpr_5 = (0u | 30000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 657u, 0x08926C28u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926C28u) goto L_08926C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926C28: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926C34u); @@ -7046,8 +9540,21 @@ L_08926C50: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x08926C7Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 661u, 0x08926C7Cu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926C7Cu) goto L_08926C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926C7C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7125,8 +9632,21 @@ L_08926CEC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926CF8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 667u, 0x08926CF8u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926CF8u) goto L_08926CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926CF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7149,8 +9669,21 @@ L_08926D14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926D24u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 670u, 0x08926D24u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926D24u) goto L_08926D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926D24: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7189,8 +9722,21 @@ L_08926D4C: } L_08926D54: aot_gpr_31 = (0x08926D5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 676u, 0x08926D5Cu, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926D5Cu) goto L_08926D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926D5C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7272,15 +9818,41 @@ L_08926DBC: L_08926DC4: aot_gpr_31 = (0x08926DCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 688u, 0x08926DCCu, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926DCCu) goto L_08926DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926DCC: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926DDCu); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 689u, 0x08926DDCu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926DDCu) goto L_08926DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926DDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7308,8 +9880,21 @@ L_08926DE4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926E30u); aot_gpr_6 = (0u | 14000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 691u, 0x08926E30u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926E30u) goto L_08926E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926E30: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7322,8 +9907,21 @@ L_08926E44: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926E50u); aot_gpr_5 = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 693u, 0x08926E50u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926E50u) goto L_08926E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926E50: aot_gpr_4 = (0u | 1500u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(144), aot_gpr_4); @@ -7333,8 +9931,21 @@ L_08926E50: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08926E70u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 694u, 0x08926E70u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926E70u) goto L_08926E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926E70: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926E7Cu); @@ -7409,8 +10020,21 @@ L_08926EDC: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08926F00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 704u, 0x08926F00u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926F00u) goto L_08926F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926F00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7431,8 +10055,21 @@ L_08926F18: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926F24u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 707u, 0x08926F24u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926F24u) goto L_08926F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926F24: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -7448,8 +10085,21 @@ L_08926F2C: L_08926F38: aot_gpr_31 = (0x08926F40u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 710u, 0x08926F40u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926F40u) goto L_08926F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926F40: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08926F4Cu); @@ -7462,8 +10112,21 @@ L_08926F4C: aot_gpr_5 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08926F64u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 712u, 0x08926F64u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08926F64u) goto L_08926F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08926F64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7575,8 +10238,21 @@ L_0892706C: aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2274))); aot_gpr_31 = (0x0892707Cu); aot_gpr_4 = (ctx.gpr[29] + static_cast(164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 723u, 0x0892707Cu, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892707Cu) goto L_0892707C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892707C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(172))); @@ -7596,8 +10272,21 @@ L_0892707C: L_089270A8: aot_gpr_31 = (0x089270B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 725u, 0x089270B0u, 0x08B00578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 78u, 0x08B00578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089270B0u) goto L_089270B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089270B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_5 = (0u + static_cast(-497)); @@ -7631,8 +10320,21 @@ L_089270E8: L_089270F4: aot_gpr_31 = (0x089270FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 729u, 0x089270FCu, 0x08B01BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089270FCu) goto L_089270FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089270FC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7644,8 +10346,21 @@ L_08927104: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_31 = (0x08927110u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 731u, 0x08927110u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927110u) goto L_08927110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927110: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); @@ -7730,8 +10445,21 @@ L_089271BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_31 = (0x089271C8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 742u, 0x089271C8u, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089271C8u) goto L_089271C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089271C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(614)))))); @@ -7745,8 +10473,21 @@ L_089271C8: L_089271DC: aot_gpr_31 = (0x089271E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 744u, 0x089271E4u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089271E4u) goto L_089271E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089271E4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7757,8 +10498,21 @@ L_089271E4: L_089271EC: aot_gpr_31 = (0x089271F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 746u, 0x089271F4u, 0x08B00DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 233u, 0x08B00DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089271F4u) goto L_089271F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089271F4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7802,8 +10556,21 @@ L_08927228: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08927240u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 750u, 0x08927240u, 0x0896DCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 465u, 0x0896DCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927240u) goto L_08927240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927240: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7835,8 +10602,21 @@ L_08927270: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0892727Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 755u, 0x0892727Cu, 0x088C6FC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 615u, 0x088C6FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892727Cu) goto L_0892727C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892727C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(468))); aot_gpr_5 = (51200u << 16u); @@ -7848,8 +10628,21 @@ L_0892727C: L_08927294: aot_gpr_31 = (0x0892729Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 757u, 0x0892729Cu, 0x08908630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 107u, 0x08908630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892729Cu) goto L_0892729C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892729C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (61440u << 16u); @@ -7869,8 +10662,21 @@ L_089272BC: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x089272D0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 759u, 0x089272D0u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089272D0u) goto L_089272D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089272D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (57344u << 16u); @@ -7893,14 +10699,40 @@ L_089272F4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08927300u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 763u, 0x08927300u, 0x08911138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 304u, 0x08911138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927300u) goto L_08927300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927300: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892730Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 764u, 0x0892730Cu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892730Cu) goto L_0892730C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892730C: aot_gpr_31 = (0x08927314u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7958,8 +10790,8 @@ L_08927340: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892738C: @@ -7981,8 +10813,21 @@ L_0892738C: L_089273CC: aot_gpr_31 = (0x089273D4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 772u, 0x089273D4u, 0x0890EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 697u, 0x0890EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089273D4u) goto L_089273D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089273D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(472))); aot_gpr_5 = (0u + static_cast(-2)); @@ -8011,8 +10856,21 @@ L_08927410: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0892741Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 775u, 0x0892741Cu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892741Cu) goto L_0892741C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892741C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8103,8 +10961,21 @@ L_08927498: L_089274A8: aot_gpr_31 = (0x089274B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 787u, 0x089274B0u, 0x0890B608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 854u, 0x0890B608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089274B0u) goto L_089274B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089274B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(900))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(92))); @@ -8121,8 +10992,21 @@ L_089274CC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089274D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 789u, 0x089274D8u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089274D8u) goto L_089274D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089274D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8147,8 +11031,21 @@ L_089274F0: L_089274FC: aot_gpr_31 = (0x08927504u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 793u, 0x08927504u, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927504u) goto L_08927504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927504: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8160,25 +11057,77 @@ L_0892750C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08927518u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 795u, 0x08927518u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927518u) goto L_08927518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927518: aot_gpr_31 = (0x08927520u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 796u, 0x08927520u, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927520u) goto L_08927520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927520: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892752Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 797u, 0x0892752Cu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892752Cu) goto L_0892752C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892752C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08927538u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 798u, 0x08927538u, 0x08B04218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 30u, 0x08B04218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927538u) goto L_08927538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927538: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8189,20 +11138,59 @@ L_08927538: L_08927540: aot_gpr_31 = (0x08927548u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 800u, 0x08927548u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927548u) goto L_08927548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927548: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927554u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 801u, 0x08927554u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927554u) goto L_08927554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927554: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927560u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 802u, 0x08927560u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927560u) goto L_08927560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927560: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8426,8 +11414,21 @@ L_089276F4: L_08927704: aot_gpr_31 = (0x0892770Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 830u, 0x0892770Cu, 0x08947574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 676u, 0x08947574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892770Cu) goto L_0892770C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892770C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[30]; @@ -8440,8 +11441,21 @@ L_08927718: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08927724u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 832u, 0x08927724u, 0x08B04218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 30u, 0x08B04218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927724u) goto L_08927724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927724: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[23]; @@ -8483,13 +11497,39 @@ L_0892775C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08927778u); aot_gpr_6 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 837u, 0x08927778u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927778u) goto L_08927778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927778: aot_gpr_31 = (0x08927780u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 838u, 0x08927780u, 0x08B4214Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 488u, 0x08B4214Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927780u) goto L_08927780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927780: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(72))); aot_gpr_5 = (0u | 32u); @@ -8509,8 +11549,21 @@ L_08927794: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089277B4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 840u, 0x089277B4u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089277B4u) goto L_089277B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089277B4: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(16), aot_run_words); } @@ -8537,14 +11590,40 @@ L_089277D0: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089277E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 842u, 0x089277E8u, 0x088C6FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 612u, 0x088C6FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089277E8u) goto L_089277E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089277E8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089277F4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 843u, 0x089277F4u, 0x08B04218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 30u, 0x08B04218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089277F4u) goto L_089277F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089277F4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -8563,24 +11642,76 @@ L_08927810: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0892781Cu); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 846u, 0x0892781Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892781Cu) goto L_0892781C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892781C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927828u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 847u, 0x08927828u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927828u) goto L_08927828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927828: aot_gpr_31 = (0x08927830u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 848u, 0x08927830u, 0x0890BDA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 970u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 970u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 970u, 0x0890BDA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927830u) goto L_08927830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927830: aot_gpr_31 = (0x08927838u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 849u, 0x08927838u, 0x0890850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 84u, 0x0890850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927838u) goto L_08927838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927838: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8683,8 +11814,21 @@ L_089278DC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089278F4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 863u, 0x089278F4u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089278F4u) goto L_089278F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089278F4: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(32), aot_run_words); } @@ -8713,8 +11857,21 @@ L_08927910: L_08927920: aot_gpr_31 = (0x08927928u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 866u, 0x08927928u, 0x088C6FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 612u, 0x088C6FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927928u) goto L_08927928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927928: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8747,8 +11904,21 @@ L_08927950: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08927968u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 870u, 0x08927968u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927968u) goto L_08927968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927968: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(48), aot_run_words); } @@ -8876,8 +12046,21 @@ L_08927A3C: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08927A4Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 886u, 0x08927A4Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927A4Cu) goto L_08927A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927A4C: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -8920,8 +12103,21 @@ L_08927A94: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08927AA0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 892u, 0x08927AA0u, 0x08B04218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 30u, 0x08B04218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927AA0u) goto L_08927AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927AA0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(612))); aot_gpr_5 = (0u | 3u); @@ -8989,8 +12185,21 @@ L_08927B24: L_08927B34: aot_gpr_31 = (0x08927B3Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 900u, 0x08927B3Cu, 0x08B01BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927B3Cu) goto L_08927B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927B3C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9002,8 +12211,21 @@ L_08927B44: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08927B50u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 902u, 0x08927B50u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927B50u) goto L_08927B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927B50: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -9024,8 +12246,21 @@ L_08927B60: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08927B88u); aot_gpr_6 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 904u, 0x08927B88u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927B88u) goto L_08927B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927B88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(2196))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[22]; @@ -9065,8 +12300,21 @@ L_08927BB0: L_08927BC0: aot_gpr_31 = (0x08927BC8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 910u, 0x08927BC8u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927BC8u) goto L_08927BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927BC8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(533), static_cast(aot_gpr_4)); @@ -9080,14 +12328,40 @@ L_08927BE4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927BF0u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 912u, 0x08927BF0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927BF0u) goto L_08927BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927BF0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927BFCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 913u, 0x08927BFCu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927BFCu) goto L_08927BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927BFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(2196))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[22]; @@ -9138,8 +12412,21 @@ L_08927C48: L_08927C4C: aot_gpr_31 = (0x08927C54u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 920u, 0x08927C54u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927C54u) goto L_08927C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927C54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9211,8 +12498,21 @@ L_08927CB8: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927CC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 930u, 0x08927CC8u, 0x08B00214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 24u, 0x08B00214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927CC8u) goto L_08927CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927CC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9224,8 +12524,21 @@ L_08927CD0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08927CDCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 932u, 0x08927CDCu, 0x08B000ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 10u, 0x08B000ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927CDCu) goto L_08927CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927CDC: aot_gpr_16 = (0u | 1u); { const bool branch_taken = 0u == 0u; @@ -9258,8 +12571,21 @@ L_08927D08: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927D18u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 936u, 0x08927D18u, 0x08B00214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 24u, 0x08B00214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927D18u) goto L_08927D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927D18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9280,8 +12606,21 @@ L_08927D30: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08927D3Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 939u, 0x08927D3Cu, 0x08B000ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 10u, 0x08B000ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927D3Cu) goto L_08927D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927D3C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9320,8 +12659,21 @@ L_08927D68: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927D78u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 944u, 0x08927D78u, 0x08B00214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 24u, 0x08B00214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927D78u) goto L_08927D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927D78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9341,8 +12693,21 @@ L_08927D88: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927D98u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 947u, 0x08927D98u, 0x08B00214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 24u, 0x08B00214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927D98u) goto L_08927D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927D98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9355,8 +12720,21 @@ L_08927DA0: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927DB0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 949u, 0x08927DB0u, 0x08B00214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 24u, 0x08B00214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927DB0u) goto L_08927DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927DB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9368,20 +12746,59 @@ L_08927DB8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08927DC4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 951u, 0x08927DC4u, 0x08B000ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 10u, 0x08B000ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927DC4u) goto L_08927DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927DC4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927DD0u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 952u, 0x08927DD0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927DD0u) goto L_08927DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927DD0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927DDCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 953u, 0x08927DDCu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927DDCu) goto L_08927DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927DDC: aot_gpr_31 = (0x08927DE4u); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -9406,8 +12823,21 @@ L_08927DF8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927E04u); aot_gpr_5 = (0u | 51u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 957u, 0x08927E04u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927E04u) goto L_08927E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927E04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(640))); aot_gpr_5 = (0u | 25u); @@ -9450,8 +12880,21 @@ L_08927E44: L_08927E48: aot_gpr_31 = (0x08927E50u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 963u, 0x08927E50u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927E50u) goto L_08927E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927E50: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -9464,8 +12907,21 @@ L_08927E58: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08927E68u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 965u, 0x08927E68u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927E68u) goto L_08927E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927E68: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -9482,8 +12938,21 @@ L_08927E78: aot_gpr_4 = (ctx.gpr[29] | 0u); aot_gpr_31 = (0x08927E88u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 968u, 0x08927E88u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927E88u) goto L_08927E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927E88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(563))); @@ -9511,8 +12980,21 @@ L_08927EB8: aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x08927EC8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 971u, 0x08927EC8u, 0x08832ADCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 623u, 0x08832ADCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927EC8u) goto L_08927EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927EC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(2196))); aot_gpr_4 = (aot_gpr_4 + static_cast(-8)); @@ -9529,8 +13011,8 @@ L_08927EDC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-12032))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08927EF4: @@ -9544,8 +13026,21 @@ L_08927EFC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927F08u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 975u, 0x08927F08u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927F08u) goto L_08927F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927F08: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(900))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -9554,8 +13049,21 @@ L_08927F08: aot_gpr_6 = (aot_gpr_6 & 255u); aot_gpr_31 = (0x08927F24u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 976u, 0x08927F24u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927F24u) goto L_08927F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927F24: aot_gpr_31 = (0x08927F2Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -9579,8 +13087,21 @@ L_08927F34: L_08927F40: aot_gpr_31 = (0x08927F48u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 980u, 0x08927F48u, 0x0890850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 84u, 0x0890850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927F48u) goto L_08927F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927F48: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(614)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -9612,8 +13133,21 @@ L_08927F74: L_08927F7C: aot_gpr_31 = (0x08927F84u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 985u, 0x08927F84u, 0x08B4223Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 505u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 505u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 505u, 0x08B4223Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927F84u) goto L_08927F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927F84: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9632,8 +13166,21 @@ L_08927F8C: L_08927F98: aot_gpr_31 = (0x08927FA0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 988u, 0x08927FA0u, 0x08B4214Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 488u, 0x08B4214Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927FA0u) goto L_08927FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927FA0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -9658,8 +13205,21 @@ L_08927FBC: ctx.gpr[7] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08927FD4u); ctx.gpr[8] = (0u | 1500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0072->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0072_entry, 991u, 0x08927FD4u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08927FD4u) goto L_08927FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08927FD4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 | 4u); diff --git a/profiles/vcs/generated/generated_unit_0073.cpp b/profiles/vcs/generated/generated_unit_0073.cpp index 144e96b..934c6b8 100644 --- a/profiles/vcs/generated/generated_unit_0073.cpp +++ b/profiles/vcs/generated/generated_unit_0073.cpp @@ -1053,6 +1053,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08928000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1079,8 +1103,8 @@ L_08928000: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08928024: @@ -1100,8 +1124,21 @@ L_0892804C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08928058u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 4u, 0x08928058u, 0x0890EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 697u, 0x0890EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928058u) goto L_08928058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928058: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -1179,8 +1216,21 @@ L_089280C4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089280D8u); ctx.gpr[7] = (0u | 120u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 14u, 0x089280D8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089280D8u) goto L_089280D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089280D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_5 = (0u + static_cast(-6)); @@ -1197,8 +1247,21 @@ L_089280E8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089280FCu); ctx.gpr[7] = (0u | 121u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 16u, 0x089280FCu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089280FCu) goto L_089280FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089280FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_5 = (0u + static_cast(-11)); @@ -1214,8 +1277,21 @@ L_08928108: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892812Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 18u, 0x0892812Cu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892812Cu) goto L_0892812C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892812C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1253,8 +1329,21 @@ L_08928158: L_08928164: aot_gpr_31 = (0x0892816Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 24u, 0x0892816Cu, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892816Cu) goto L_0892816C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892816C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08928178u); @@ -1265,8 +1354,21 @@ L_08928178: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08928184u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 26u, 0x08928184u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928184u) goto L_08928184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928184: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1280,8 +1382,21 @@ L_08928190: aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2274))); aot_gpr_31 = (0x089281A0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 28u, 0x089281A0u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089281A0u) goto L_089281A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089281A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -1300,8 +1415,21 @@ L_089281A0: } L_089281CC: aot_gpr_31 = (0x089281D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 30u, 0x089281D4u, 0x08B00578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 78u, 0x08B00578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089281D4u) goto L_089281D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089281D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_5 = (0u | 5u); @@ -1328,8 +1456,21 @@ L_089281F0: L_08928200: aot_gpr_31 = (0x08928208u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 34u, 0x08928208u, 0x08B01BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928208u) goto L_08928208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928208: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1341,8 +1482,21 @@ L_08928210: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_31 = (0x0892821Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 36u, 0x0892821Cu, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892821Cu) goto L_0892821C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892821C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2196))); aot_gpr_5 = (0u | 17u); @@ -1363,14 +1517,40 @@ L_0892822C: L_08928234: aot_gpr_31 = (0x0892823Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 39u, 0x0892823Cu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892823Cu) goto L_0892823C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892823C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08928248u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 40u, 0x08928248u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928248u) goto L_08928248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928248: aot_gpr_31 = (0x08928250u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1387,8 +1567,21 @@ L_08928258: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08928264u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 43u, 0x08928264u, 0x088C6FC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 615u, 0x088C6FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928264u) goto L_08928264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928264: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2196))); aot_gpr_5 = (0u | 38u); @@ -1404,8 +1597,21 @@ L_08928274: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08928288u); aot_gpr_5 = (aot_gpr_5 + static_cast(8428)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 45u, 0x08928288u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928288u) goto L_08928288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928288: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_fpr_12 = std::bit_cast(0u); @@ -1427,8 +1633,21 @@ L_089282B0: aot_gpr_5 = (0u | 42u); aot_gpr_31 = (0x089282C0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 47u, 0x089282C0u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089282C0u) goto L_089282C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089282C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1441,8 +1660,21 @@ L_089282C8: aot_gpr_5 = (0u | 40u); aot_gpr_31 = (0x089282D8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 49u, 0x089282D8u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089282D8u) goto L_089282D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089282D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1476,8 +1708,21 @@ L_089282FC: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08928310u); aot_gpr_5 = (aot_gpr_5 + static_cast(10420)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 54u, 0x08928310u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928310u) goto L_08928310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928310: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1503,13 +1748,39 @@ L_0892832C: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08928340u); aot_gpr_5 = (aot_gpr_5 + static_cast(8428)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 58u, 0x08928340u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928340u) goto L_08928340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928340: aot_gpr_31 = (0x08928348u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 59u, 0x08928348u, 0x08906F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 655u, 0x08906F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928348u) goto L_08928348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928348: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1525,19 +1796,58 @@ L_08928350: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892836Cu); ctx.gpr[7] = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 61u, 0x0892836Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892836Cu) goto L_0892836C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892836C: aot_gpr_31 = (0x08928374u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 62u, 0x08928374u, 0x08908630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 107u, 0x08908630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928374u) goto L_08928374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928374: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08928380u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 63u, 0x08928380u, 0x08911138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 304u, 0x08911138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928380u) goto L_08928380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928380: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(464))); aot_gpr_5 = (0u + static_cast(-1025)); @@ -1554,26 +1864,78 @@ L_0892839C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_31 = (0x089283A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 65u, 0x089283A8u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089283A8u) goto L_089283A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089283A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089283B4u); aot_gpr_5 = (0u | 69u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 66u, 0x089283B4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089283B4u) goto L_089283B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089283B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089283C0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 67u, 0x089283C0u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089283C0u) goto L_089283C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089283C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089283CCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 68u, 0x089283CCu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089283CCu) goto L_089283CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089283CC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -1584,8 +1946,8 @@ L_089283CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089283E4: @@ -1626,8 +1988,21 @@ L_08928454: aot_gpr_6 = (aot_gpr_29 + static_cast(240)); aot_gpr_31 = (0x08928464u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 71u, 0x08928464u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928464u) goto L_08928464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928464: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(240))); @@ -1647,8 +2022,21 @@ L_08928470: ctx.fpr[22] = std::sqrt(aot_fpr_12); aot_gpr_31 = (0x089284A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 73u, 0x089284A4u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089284A4u) goto L_089284A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089284A4: aot_gpr_4 = (16544u << 16u); aot_fpr_13 = std::bit_cast(aot_gpr_4); @@ -1689,16 +2077,42 @@ L_08928504: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08928520u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 76u, 0x08928520u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928520u) goto L_08928520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928520: aot_gpr_6 = (aot_gpr_16 + static_cast(28)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08928534u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 77u, 0x08928534u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928534u) goto L_08928534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928534: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -1728,16 +2142,42 @@ L_0892855C: } L_08928564: aot_gpr_31 = (0x0892856Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 81u, 0x0892856Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892856Cu) goto L_0892856C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892856C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08928570; L_08928570: aot_gpr_31 = (0x08928578u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 83u, 0x08928578u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928578u) goto L_08928578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928578: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2116), ctx.gpr[18]); @@ -2093,8 +2533,21 @@ L_089287E8: aot_gpr_4 = (ctx.gpr[2] & 65535u); aot_gpr_31 = (0x089287F4u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 95u, 0x089287F4u, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089287F4u) goto L_089287F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089287F4: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-19996))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20000))); @@ -2241,8 +2694,21 @@ L_089288E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089288F4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 106u, 0x089288F4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089288F4u) goto L_089288F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089288F4: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(432), aot_run_words); @@ -2261,8 +2727,8 @@ L_089288F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892892C: @@ -2339,15 +2805,41 @@ L_089289CC: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x089289DCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 116u, 0x089289DCu, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089289DCu) goto L_089289DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089289DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089289ECu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 117u, 0x089289ECu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089289ECu) goto L_089289EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089289EC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2361,15 +2853,41 @@ L_089289F8: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08928A08u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 119u, 0x08928A08u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928A08u) goto L_08928A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928A08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08928A18u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 120u, 0x08928A18u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928A18u) goto L_08928A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928A18: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928A1C; @@ -2385,8 +2903,21 @@ L_08928A24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928A34u); aot_gpr_6 = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 123u, 0x08928A34u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928A34u) goto L_08928A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928A34: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928A38; @@ -2413,8 +2944,21 @@ L_08928A58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928A64u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 127u, 0x08928A64u, 0x089AFEFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 930u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 930u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 930u, 0x089AFEFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928A64u) goto L_08928A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928A64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2427,8 +2971,21 @@ L_08928A6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928A7Cu); aot_gpr_6 = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 129u, 0x08928A7Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928A7Cu) goto L_08928A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928A7C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2442,8 +2999,21 @@ L_08928A88: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928A98u); aot_gpr_6 = (0u | 72u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 131u, 0x08928A98u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928A98u) goto L_08928A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928A98: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928A9C; @@ -2459,8 +3029,21 @@ L_08928AA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928AB4u); aot_gpr_6 = (0u | 73u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 134u, 0x08928AB4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928AB4u) goto L_08928AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928AB4: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928AB8; @@ -2476,8 +3059,21 @@ L_08928AC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928AD0u); aot_gpr_6 = (0u | 93u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 137u, 0x08928AD0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928AD0u) goto L_08928AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928AD0: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928AD4; @@ -2493,8 +3089,21 @@ L_08928ADC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928AECu); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 140u, 0x08928AECu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928AECu) goto L_08928AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928AEC: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928AF0; @@ -2510,8 +3119,21 @@ L_08928AF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928B08u); aot_gpr_6 = (0u | 95u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 143u, 0x08928B08u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928B08u) goto L_08928B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928B08: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928B0C; @@ -2527,8 +3149,21 @@ L_08928B14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928B24u); aot_gpr_6 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 146u, 0x08928B24u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928B24u) goto L_08928B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928B24: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928B28; @@ -2544,8 +3179,21 @@ L_08928B30: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928B40u); aot_gpr_6 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 149u, 0x08928B40u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928B40u) goto L_08928B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928B40: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928B44; @@ -2561,8 +3209,21 @@ L_08928B4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928B5Cu); aot_gpr_6 = (0u | 180u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 152u, 0x08928B5Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928B5Cu) goto L_08928B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928B5C: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928B60; @@ -2578,8 +3239,21 @@ L_08928B68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928B78u); aot_gpr_6 = (0u | 175u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 155u, 0x08928B78u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928B78u) goto L_08928B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928B78: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928B7C; @@ -2595,8 +3269,21 @@ L_08928B84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928B94u); aot_gpr_6 = (0u | 179u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 158u, 0x08928B94u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928B94u) goto L_08928B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928B94: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928B98; @@ -2612,8 +3299,21 @@ L_08928BA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928BB0u); aot_gpr_6 = (0u | 184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 161u, 0x08928BB0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928BB0u) goto L_08928BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928BB0: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928BB4; @@ -2629,8 +3329,21 @@ L_08928BBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928BCCu); aot_gpr_6 = (0u | 185u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 164u, 0x08928BCCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928BCCu) goto L_08928BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928BCC: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928BD0; @@ -2646,8 +3359,21 @@ L_08928BD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928BE8u); aot_gpr_6 = (0u | 77u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 167u, 0x08928BE8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928BE8u) goto L_08928BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928BE8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08928BEC; @@ -2705,8 +3431,21 @@ L_08928C40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928C4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 175u, 0x08928C4Cu, 0x089AFEFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 930u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 930u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 930u, 0x089AFEFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928C4Cu) goto L_08928C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928C4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (65520u << 16u); @@ -2729,8 +3468,21 @@ L_08928C74: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_31 = (0x08928C80u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 178u, 0x08928C80u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928C80u) goto L_08928C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928C80: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(200))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), 0u); @@ -2791,8 +3543,21 @@ L_08928CC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08928CDCu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 184u, 0x08928CDCu, 0x08907020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 682u, 0x08907020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928CDCu) goto L_08928CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928CDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); @@ -3088,15 +3853,41 @@ L_08928E60: L_08928E74: aot_gpr_31 = (0x08928E7Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 214u, 0x08928E7Cu, 0x08A595C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 312u, 0x08A595C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928E7Cu) goto L_08928E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928E7C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08928E8Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(960)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 215u, 0x08928E8Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928E8Cu) goto L_08928E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928E8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); @@ -3128,8 +3919,21 @@ L_08928EB0: L_08928EC0: aot_gpr_31 = (0x08928EC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 219u, 0x08928EC8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928EC8u) goto L_08928EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928EC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(360))); goto L_08928ECC; @@ -3141,21 +3945,60 @@ L_08928ECC: ctx.gpr[18] = (aot_gpr_29 + static_cast(288)); aot_gpr_31 = (0x08928EE8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 221u, 0x08928EE8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928EE8u) goto L_08928EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928EE8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08928EF8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 222u, 0x08928EF8u, 0x0885FEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 935u, 0x0885FEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928EF8u) goto L_08928EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928EF8: aot_gpr_5 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x08928F04u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 223u, 0x08928F04u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928F04u) goto L_08928F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928F04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(280))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3174,8 +4017,21 @@ L_08928F14: L_08928F20: aot_gpr_31 = (0x08928F28u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 226u, 0x08928F28u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928F28u) goto L_08928F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928F28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(360))); goto L_08928F2C; @@ -3198,8 +4054,21 @@ L_08928F38: L_08928F44: aot_gpr_31 = (0x08928F4Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 230u, 0x08928F4Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928F4Cu) goto L_08928F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928F4C: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3270,8 +4139,21 @@ L_08928F4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08928FA8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 231u, 0x08928FA8u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08928FA8u) goto L_08928FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08928FA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); @@ -3422,8 +4304,21 @@ L_089290B8: } L_089290C0: aot_gpr_31 = (0x089290C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 251u, 0x089290C8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089290C8u) goto L_089290C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089290C8: ctx.fpr[22] = ctx.fpr[0] - ctx.fpr[22]; goto L_089290CC; @@ -3434,16 +4329,42 @@ L_089290CC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089290E4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 253u, 0x089290E4u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089290E4u) goto L_089290E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089290E4: aot_gpr_5 = (49097u << 16u); aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089290F8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 254u, 0x089290F8u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089290F8u) goto L_089290F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089290F8: aot_gpr_5 = (16153u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -3452,14 +4373,40 @@ L_089290F8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08929114u); aot_fpr_13 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 255u, 0x08929114u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929114u) goto L_08929114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929114: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08929120u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 256u, 0x08929120u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929120u) goto L_08929120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929120: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3513,8 +4460,21 @@ L_08929174: } L_0892917C: aot_gpr_31 = (0x08929184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 263u, 0x08929184u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929184u) goto L_08929184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929184: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[22]; goto L_08929188; @@ -3525,20 +4485,59 @@ L_08929188: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089291A0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 265u, 0x089291A0u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089291A0u) goto L_089291A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089291A0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089291ACu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 266u, 0x089291ACu, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089291ACu) goto L_089291AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089291AC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089291B8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 267u, 0x089291B8u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089291B8u) goto L_089291B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089291B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3568,8 +4567,21 @@ L_089291DC: } L_089291EC: aot_gpr_31 = (0x089291F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 271u, 0x089291F4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089291F4u) goto L_089291F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089291F4: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3608,8 +4620,21 @@ L_08929220: } L_08929230: aot_gpr_31 = (0x08929238u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 276u, 0x08929238u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929238u) goto L_08929238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929238: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3625,8 +4650,21 @@ L_08929244: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929250u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 279u, 0x08929250u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929250u) goto L_08929250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929250: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(200))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3645,8 +4683,21 @@ L_08929260: L_0892926C: aot_gpr_31 = (0x08929274u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 282u, 0x08929274u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929274u) goto L_08929274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929274: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); goto L_08929278; @@ -3669,8 +4720,21 @@ L_08929284: L_08929290: aot_gpr_31 = (0x08929298u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 286u, 0x08929298u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929298u) goto L_08929298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929298: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(384), aot_run_words); @@ -3689,8 +4753,8 @@ L_08929298: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(432)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089292D0: @@ -4036,8 +5100,21 @@ L_08929614: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0892962Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 320u, 0x0892962Cu, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892962Cu) goto L_0892962C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892962C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4212,8 +5289,21 @@ L_08929738: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08929750u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 336u, 0x08929750u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929750u) goto L_08929750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929750: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4388,8 +5478,21 @@ L_0892985C: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08929874u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 352u, 0x08929874u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929874u) goto L_08929874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929874: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4563,8 +5666,21 @@ L_08929980: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08929990u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 368u, 0x08929990u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929990u) goto L_08929990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929990: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4677,8 +5793,21 @@ L_08929A20: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929A4Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 376u, 0x08929A4Cu, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929A4Cu) goto L_08929A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929A4C: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4709,8 +5838,21 @@ L_08929A4C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08929A74u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 377u, 0x08929A74u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929A74u) goto L_08929A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929A74: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(76))); @@ -4736,8 +5878,21 @@ L_08929AA4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08929AB4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 380u, 0x08929AB4u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929AB4u) goto L_08929AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929AB4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); @@ -4772,8 +5927,21 @@ L_08929AE8: aot_gpr_5 = (0u | 20u); aot_gpr_31 = (0x08929B0Cu); ctx.gpr[7] = (0u | 15000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 383u, 0x08929B0Cu, 0x088E2F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 350u, 0x088E2F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929B0Cu) goto L_08929B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929B0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4842,8 +6010,21 @@ L_08929B60: aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x08929BACu); aot_gpr_6 = (aot_gpr_29 + static_cast(224)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 390u, 0x08929BACu, 0x088E2F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 350u, 0x088E2F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929BACu) goto L_08929BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929BAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4869,14 +6050,40 @@ L_08929BBC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08929BE0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 393u, 0x08929BE0u, 0x08909990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 430u, 0x08909990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929BE0u) goto L_08929BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929BE0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08929BECu); aot_gpr_5 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 394u, 0x08929BECu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929BECu) goto L_08929BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929BEC: ctx.gpr[2] = (0u | 0u); goto L_08929BF0; @@ -4898,8 +6105,8 @@ L_08929BF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(416)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08929C28: @@ -4922,8 +6129,8 @@ L_08929C4C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-11848))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08929C64: @@ -4949,8 +6156,21 @@ L_08929C84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929C94u); aot_gpr_6 = (0u | 166u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 401u, 0x08929C94u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929C94u) goto L_08929C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929C94: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4974,16 +6194,42 @@ L_08929CAC: } L_08929CB8: aot_gpr_31 = (0x08929CC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 405u, 0x08929CC0u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929CC0u) goto L_08929CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929CC0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929CD4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 406u, 0x08929CD4u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929CD4u) goto L_08929CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929CD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5004,8 +6250,21 @@ L_08929CE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929CF8u); aot_gpr_6 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 409u, 0x08929CF8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929CF8u) goto L_08929CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929CF8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5029,16 +6288,42 @@ L_08929D10: } L_08929D1C: aot_gpr_31 = (0x08929D24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 413u, 0x08929D24u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929D24u) goto L_08929D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929D24: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929D38u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 414u, 0x08929D38u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929D38u) goto L_08929D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929D38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5090,8 +6375,21 @@ L_08929D6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929D7Cu); aot_gpr_6 = (0u | 162u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 421u, 0x08929D7Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929D7Cu) goto L_08929D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929D7C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5123,8 +6421,21 @@ L_08929DA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929DB4u); aot_gpr_6 = (0u | 164u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 425u, 0x08929DB4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929DB4u) goto L_08929DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929DB4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5156,8 +6467,21 @@ L_08929DDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929DECu); aot_gpr_6 = (0u | 163u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 429u, 0x08929DECu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929DECu) goto L_08929DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929DEC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5181,16 +6505,42 @@ L_08929E04: } L_08929E10: aot_gpr_31 = (0x08929E18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 433u, 0x08929E18u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929E18u) goto L_08929E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929E18: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929E2Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 434u, 0x08929E2Cu, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929E2Cu) goto L_08929E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929E2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5202,8 +6552,21 @@ L_08929E34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08929E40u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-19976)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 436u, 0x08929E40u, 0x08905288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 262u, 0x08905288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929E40u) goto L_08929E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929E40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5216,8 +6579,21 @@ L_08929E48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929E58u); aot_gpr_6 = (0u | 28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 438u, 0x08929E58u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929E58u) goto L_08929E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929E58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5228,8 +6604,21 @@ L_08929E58: L_08929E60: aot_gpr_31 = (0x08929E68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 440u, 0x08929E68u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929E68u) goto L_08929E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929E68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5242,8 +6631,21 @@ L_08929E70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929E80u); aot_gpr_6 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 442u, 0x08929E80u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929E80u) goto L_08929E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929E80: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5269,8 +6671,21 @@ L_08929EA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08929EB0u); aot_gpr_6 = (0u | 156u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 446u, 0x08929EB0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929EB0u) goto L_08929EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929EB0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5297,8 +6712,8 @@ L_08929ED0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08929EE4: @@ -5352,8 +6767,8 @@ L_08929F4C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-11784))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08929F64: @@ -5363,8 +6778,21 @@ L_08929F64: L_08929F6C: aot_gpr_31 = (0x08929F74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 457u, 0x08929F74u, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929F74u) goto L_08929F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929F74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5384,8 +6812,21 @@ L_08929F7C: } L_08929F90: aot_gpr_31 = (0x08929F98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 460u, 0x08929F98u, 0x08A0F33Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 555u, 0x08A0F33Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08929F98u) goto L_08929F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08929F98: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5448,8 +6889,21 @@ L_08929FF4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0892A00Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 469u, 0x0892A00Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A00Cu) goto L_0892A00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A00C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5466,8 +6920,21 @@ L_0892A01C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A02Cu); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 472u, 0x0892A02Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A02Cu) goto L_0892A02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A02C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5510,8 +6977,21 @@ L_0892A074: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A084u); aot_gpr_6 = (0u | 149u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 478u, 0x0892A084u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A084u) goto L_0892A084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A084: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5623,8 +7103,21 @@ L_0892A130: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892A158u); ctx.gpr[7] = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 492u, 0x0892A158u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A158u) goto L_0892A158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A158: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5707,8 +7200,21 @@ L_0892A1C8: L_0892A1EC: aot_gpr_31 = (0x0892A1F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 503u, 0x0892A1F4u, 0x088E3074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 364u, 0x088E3074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A1F4u) goto L_0892A1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A1F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1380))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -5746,8 +7252,21 @@ L_0892A230: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A240u); aot_gpr_6 = (0u | 41u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 508u, 0x0892A240u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A240u) goto L_0892A240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A240: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5763,8 +7282,21 @@ L_0892A248: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892A264u); ctx.gpr[7] = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 510u, 0x0892A264u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A264u) goto L_0892A264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A264: aot_gpr_5 = (2193u << 16u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5813,8 +7345,21 @@ L_0892A2B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A2C4u); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 517u, 0x0892A2C4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A2C4u) goto L_0892A2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A2C4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5861,15 +7406,41 @@ L_0892A304: L_0892A314: aot_gpr_31 = (0x0892A31Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 523u, 0x0892A31Cu, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A31Cu) goto L_0892A31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A31C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A32Cu); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 524u, 0x0892A32Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A32Cu) goto L_0892A32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A32C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -5883,8 +7454,21 @@ L_0892A338: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A348u); aot_gpr_6 = (0u | 150u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 526u, 0x0892A348u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A348u) goto L_0892A348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A348: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0892A34C; @@ -5900,8 +7484,21 @@ L_0892A354: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A364u); aot_gpr_6 = (0u | 148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 529u, 0x0892A364u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A364u) goto L_0892A364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A364: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0892A368; @@ -5917,8 +7514,21 @@ L_0892A370: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A380u); aot_gpr_6 = (0u | 149u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 532u, 0x0892A380u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A380u) goto L_0892A380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A380: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0892A384; @@ -5951,8 +7561,21 @@ L_0892A3A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A3CCu); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 536u, 0x0892A3CCu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A3CCu) goto L_0892A3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A3CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6006,8 +7629,21 @@ L_0892A41C: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892A434u); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 543u, 0x0892A434u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A434u) goto L_0892A434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A434: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0892A440u); @@ -6023,8 +7659,21 @@ L_0892A44C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A458u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 546u, 0x0892A458u, 0x08911138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 304u, 0x08911138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A458u) goto L_0892A458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A458: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1938), static_cast(0u)); @@ -6104,8 +7753,21 @@ L_0892A4A4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892A4C0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 557u, 0x0892A4C0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A4C0u) goto L_0892A4C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A4C0: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[17]; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6184,8 +7846,21 @@ L_0892A554: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A564u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 568u, 0x0892A564u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A564u) goto L_0892A564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A564: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1716))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -6318,15 +7993,41 @@ L_0892A64C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A658u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 584u, 0x0892A658u, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A658u) goto L_0892A658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A658: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 10000u); aot_gpr_31 = (0x0892A668u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 585u, 0x0892A668u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A668u) goto L_0892A668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A668: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6353,8 +8054,21 @@ L_0892A694: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A6A4u); aot_gpr_5 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 588u, 0x0892A6A4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A6A4u) goto L_0892A6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A6A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; @@ -6391,8 +8105,21 @@ L_0892A6E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A6F0u); aot_gpr_5 = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 593u, 0x0892A6F0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A6F0u) goto L_0892A6F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A6F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6408,8 +8135,21 @@ L_0892A6F8: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x0892A714u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 595u, 0x0892A714u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A714u) goto L_0892A714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A714: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6436,14 +8176,40 @@ L_0892A740: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A750u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 598u, 0x0892A750u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A750u) goto L_0892A750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A750: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A75Cu); aot_gpr_5 = (0u | 20000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 599u, 0x0892A75Cu, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A75Cu) goto L_0892A75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A75C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6455,8 +8221,21 @@ L_0892A764: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A770u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 601u, 0x0892A770u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A770u) goto L_0892A770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A770: aot_gpr_31 = (0x0892A778u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A778u) goto L_0892A778; @@ -6479,8 +8258,21 @@ L_0892A78C: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x0892A7B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 604u, 0x0892A7B0u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A7B0u) goto L_0892A7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A7B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6504,8 +8296,21 @@ L_0892A7CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A7E0u); aot_gpr_5 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 607u, 0x0892A7E0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A7E0u) goto L_0892A7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A7E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; @@ -6559,8 +8364,21 @@ L_0892A82C: L_0892A83C: aot_gpr_31 = (0x0892A844u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0177. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 614u, 0x0892A844u, 0x08AC811Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0177_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0177_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0177_entry, 177u, 29u, 0x08AC811Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A844u) goto L_0892A844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A844: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A850u); @@ -6578,8 +8396,21 @@ L_0892A858: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A864u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 617u, 0x0892A864u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A864u) goto L_0892A864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A864: aot_gpr_31 = (0x0892A86Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A86Cu) goto L_0892A86C; @@ -6602,15 +8433,41 @@ L_0892A880: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x0892A8A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 620u, 0x0892A8A4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A8A4u) goto L_0892A8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A8A4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A8B4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 621u, 0x0892A8B4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A8B4u) goto L_0892A8B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A8B4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6645,8 +8502,21 @@ L_0892A8E0: L_0892A8EC: aot_gpr_31 = (0x0892A8F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 626u, 0x0892A8F4u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A8F4u) goto L_0892A8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A8F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6731,8 +8601,21 @@ L_0892A95C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892A96Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 641u, 0x0892A96Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A96Cu) goto L_0892A96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A96C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6768,15 +8651,41 @@ L_0892A99C: } L_0892A9AC: aot_gpr_31 = (0x0892A9B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 646u, 0x0892A9B4u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A9B4u) goto L_0892A9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A9B4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0892A9C4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 647u, 0x0892A9C4u, 0x08A03194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 802u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 802u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 802u, 0x08A03194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892A9C4u) goto L_0892A9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892A9C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(468))); aot_gpr_4 = (aot_gpr_4 | 8192u); @@ -6860,8 +8769,21 @@ L_0892AA40: L_0892AA4C: aot_gpr_31 = (0x0892AA54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 659u, 0x0892AA54u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AA54u) goto L_0892AA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AA54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6874,8 +8796,21 @@ L_0892AA5C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892AA6Cu); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 661u, 0x0892AA6Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AA6Cu) goto L_0892AA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AA6C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6916,8 +8851,21 @@ L_0892AA9C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892AAC4u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 666u, 0x0892AAC4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AAC4u) goto L_0892AAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AAC4: aot_gpr_4 = (0u | 2000u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); @@ -6931,8 +8879,21 @@ L_0892AAD4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0892AAECu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 668u, 0x0892AAECu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AAECu) goto L_0892AAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AAEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6961,8 +8922,21 @@ L_0892AB10: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0892AB28u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 672u, 0x0892AB28u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AB28u) goto L_0892AB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AB28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6988,8 +8962,21 @@ L_0892AB40: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0892AB5Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 675u, 0x0892AB5Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AB5Cu) goto L_0892AB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AB5C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); @@ -7021,8 +9008,21 @@ L_0892AB98: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0892ABB0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 679u, 0x0892ABB0u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ABB0u) goto L_0892ABB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ABB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7033,8 +9033,21 @@ L_0892ABB0: L_0892ABB8: aot_gpr_31 = (0x0892ABC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 681u, 0x0892ABC0u, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ABC0u) goto L_0892ABC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ABC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7045,8 +9058,21 @@ L_0892ABC0: L_0892ABC8: aot_gpr_31 = (0x0892ABD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 683u, 0x0892ABD0u, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ABD0u) goto L_0892ABD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ABD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_5 = (0u | 2u); @@ -7084,8 +9110,21 @@ L_0892AC14: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0892AC2Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 688u, 0x0892AC2Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AC2Cu) goto L_0892AC2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AC2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7096,8 +9135,21 @@ L_0892AC2C: L_0892AC34: aot_gpr_31 = (0x0892AC3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 690u, 0x0892AC3Cu, 0x0891826Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 31u, 0x0891826Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AC3Cu) goto L_0892AC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AC3C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (512u << 16u); @@ -7149,8 +9201,21 @@ L_0892AC88: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0892ACA0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 697u, 0x0892ACA0u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ACA0u) goto L_0892ACA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ACA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7185,15 +9250,41 @@ L_0892ACC4: } L_0892ACD0: aot_gpr_31 = (0x0892ACD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 702u, 0x0892ACD8u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ACD8u) goto L_0892ACD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ACD8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0892ACE8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 703u, 0x0892ACE8u, 0x08A03194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 802u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 802u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 802u, 0x08A03194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ACE8u) goto L_0892ACE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ACE8: aot_gpr_31 = (0x0892ACF0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7221,8 +9312,21 @@ L_0892AD10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892AD20u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 707u, 0x0892AD20u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AD20u) goto L_0892AD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AD20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (65528u << 16u); @@ -7233,8 +9337,21 @@ L_0892AD20: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892AD44u); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 708u, 0x0892AD44u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AD44u) goto L_0892AD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AD44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7262,15 +9379,41 @@ L_0892AD60: } L_0892AD6C: aot_gpr_31 = (0x0892AD74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 712u, 0x0892AD74u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AD74u) goto L_0892AD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AD74: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0892AD84u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 713u, 0x0892AD84u, 0x08A03194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 802u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 802u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 802u, 0x08A03194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AD84u) goto L_0892AD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AD84: aot_gpr_31 = (0x0892AD8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7313,8 +9456,21 @@ L_0892ADC0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(464), aot_gpr_4); aot_gpr_31 = (0x0892ADD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 719u, 0x0892ADD8u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ADD8u) goto L_0892ADD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ADD8: aot_gpr_31 = (0x0892ADE0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7350,8 +9506,21 @@ L_0892AE10: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(464), aot_gpr_4); aot_gpr_31 = (0x0892AE28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 724u, 0x0892AE28u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AE28u) goto L_0892AE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AE28: aot_gpr_31 = (0x0892AE30u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7405,8 +9574,21 @@ L_0892AE84: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(464), aot_gpr_4); aot_gpr_31 = (0x0892AE9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 731u, 0x0892AE9Cu, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AE9Cu) goto L_0892AE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AE9C: aot_gpr_31 = (0x0892AEA4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7421,8 +9603,21 @@ L_0892AEA4: L_0892AEAC: aot_gpr_31 = (0x0892AEB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 734u, 0x0892AEB4u, 0x0891826Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 31u, 0x0891826Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AEB4u) goto L_0892AEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AEB4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (512u << 16u); @@ -7466,8 +9661,21 @@ L_0892AEE4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(464), aot_gpr_4); aot_gpr_31 = (0x0892AF00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 740u, 0x0892AF00u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AF00u) goto L_0892AF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AF00: aot_gpr_31 = (0x0892AF08u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7502,8 +9710,21 @@ L_0892AF24: L_0892AF30: aot_gpr_31 = (0x0892AF38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 746u, 0x0892AF38u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892AF38u) goto L_0892AF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892AF38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7712,8 +9933,21 @@ L_0892B048: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(464), aot_gpr_4); aot_gpr_31 = (0x0892B064u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 752u, 0x0892B064u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B064u) goto L_0892B064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B064: aot_gpr_31 = (0x0892B06Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7731,8 +9965,21 @@ L_0892B074: aot_gpr_6 = (0u | 228u); aot_gpr_31 = (0x0892B088u); ctx.gpr[7] = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 755u, 0x0892B088u, 0x08905390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 278u, 0x08905390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B088u) goto L_0892B088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B088: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7793,8 +10040,21 @@ L_0892B0D8: L_0892B0E4: aot_gpr_31 = (0x0892B0ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 764u, 0x0892B0ECu, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B0ECu) goto L_0892B0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B0EC: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(192), aot_run_words); @@ -7808,8 +10068,8 @@ L_0892B0EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892B110: @@ -7943,8 +10203,21 @@ L_0892B1E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0892B228u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 767u, 0x0892B228u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B228u) goto L_0892B228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B228: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8002,8 +10275,21 @@ L_0892B230: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892B2F4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 769u, 0x0892B2F4u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B2F4u) goto L_0892B2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B2F4: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8023,8 +10309,21 @@ L_0892B2F4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892B310u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 770u, 0x0892B310u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B310u) goto L_0892B310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B310: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8044,8 +10343,21 @@ L_0892B310: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892B32Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 771u, 0x0892B32Cu, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B32Cu) goto L_0892B32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B32C: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8065,8 +10377,21 @@ L_0892B32C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892B348u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 772u, 0x0892B348u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B348u) goto L_0892B348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B348: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8085,15 +10410,41 @@ L_0892B348: aot_gpr_5 = (ctx.gpr[18] + static_cast(48)); aot_gpr_31 = (0x0892B360u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 773u, 0x0892B360u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B360u) goto L_0892B360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B360: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892B370u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 774u, 0x0892B370u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B370u) goto L_0892B370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B370: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8143,8 +10494,21 @@ L_0892B3B8: L_0892B3BC: aot_gpr_31 = (0x0892B3C4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 779u, 0x0892B3C4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B3C4u) goto L_0892B3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B3C4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892B3C8; @@ -8179,16 +10543,42 @@ L_0892B3F8: } L_0892B400: aot_gpr_31 = (0x0892B408u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 784u, 0x0892B408u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B408u) goto L_0892B408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B408: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892B40C; L_0892B40C: aot_gpr_31 = (0x0892B414u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 786u, 0x0892B414u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B414u) goto L_0892B414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B414: aot_fpr_13 = std::bit_cast(0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); @@ -8227,8 +10617,21 @@ L_0892B458: L_0892B45C: aot_gpr_31 = (0x0892B464u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 791u, 0x0892B464u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B464u) goto L_0892B464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B464: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892B468; @@ -8263,16 +10666,42 @@ L_0892B498: } L_0892B4A0: aot_gpr_31 = (0x0892B4A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 796u, 0x0892B4A8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B4A8u) goto L_0892B4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B4A8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892B4AC; L_0892B4AC: aot_gpr_31 = (0x0892B4B4u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 798u, 0x0892B4B4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B4B4u) goto L_0892B4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B4B4: aot_fpr_13 = std::bit_cast(0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); @@ -8311,8 +10740,21 @@ L_0892B4F8: L_0892B4FC: aot_gpr_31 = (0x0892B504u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 803u, 0x0892B504u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B504u) goto L_0892B504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B504: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892B508; @@ -8347,16 +10789,42 @@ L_0892B538: } L_0892B540: aot_gpr_31 = (0x0892B548u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 808u, 0x0892B548u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B548u) goto L_0892B548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B548: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892B54C; L_0892B54C: aot_gpr_31 = (0x0892B554u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 810u, 0x0892B554u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B554u) goto L_0892B554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B554: aot_fpr_13 = std::bit_cast(0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); @@ -8395,8 +10863,21 @@ L_0892B598: L_0892B59C: aot_gpr_31 = (0x0892B5A4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 815u, 0x0892B5A4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B5A4u) goto L_0892B5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B5A4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892B5A8; @@ -8431,16 +10912,42 @@ L_0892B5D8: } L_0892B5E0: aot_gpr_31 = (0x0892B5E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 820u, 0x0892B5E8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B5E8u) goto L_0892B5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B5E8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892B5EC; L_0892B5EC: aot_gpr_31 = (0x0892B5F4u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 822u, 0x0892B5F4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892B5F4u) goto L_0892B5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892B5F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(188), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (49225u << 16u); @@ -9208,8 +11715,8 @@ L_0892BA28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892BA54: @@ -9233,38 +11740,116 @@ L_0892BA54: L_0892BA84: aot_gpr_31 = (0x0892BA8Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 880u, 0x0892BA8Cu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BA8Cu) goto L_0892BA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BA8C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892BA98u); aot_gpr_5 = (0u | 69u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 881u, 0x0892BA98u, 0x08910CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 222u, 0x08910CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BA98u) goto L_0892BA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BA98: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892BAA4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 882u, 0x0892BAA4u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BAA4u) goto L_0892BAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BAA4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892BAB0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 883u, 0x0892BAB0u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BAB0u) goto L_0892BAB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BAB0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892BABCu); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 884u, 0x0892BABCu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BABCu) goto L_0892BABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BABC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892BAC8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 885u, 0x0892BAC8u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BAC8u) goto L_0892BAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BAC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); @@ -9288,8 +11873,21 @@ L_0892BB00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892BB0Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 887u, 0x0892BB0Cu, 0x08B04218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 30u, 0x08B04218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BB0Cu) goto L_0892BB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BB0C: aot_gpr_4 = (50298u << 16u); ctx.gpr[19] = (0u + static_cast(-497)); @@ -9341,8 +11939,21 @@ L_0892BB60: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0892BB70u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 893u, 0x0892BB70u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BB70u) goto L_0892BB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BB70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892BB7Cu); @@ -9361,8 +11972,21 @@ L_0892BB84: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0892BB94u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 896u, 0x0892BB94u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BB94u) goto L_0892BB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BB94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9388,8 +12012,21 @@ L_0892BBB0: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0892BBC0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 900u, 0x0892BBC0u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BBC0u) goto L_0892BBC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BBC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9415,8 +12052,21 @@ L_0892BBDC: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x0892BBECu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 904u, 0x0892BBECu, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BBECu) goto L_0892BBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BBEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9442,8 +12092,21 @@ L_0892BC08: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x0892BC18u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 908u, 0x0892BC18u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BC18u) goto L_0892BC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BC18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9474,13 +12137,39 @@ L_0892BC38: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0892BC44u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 913u, 0x0892BC44u, 0x088C6FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 612u, 0x088C6FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BC44u) goto L_0892BC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BC44: aot_gpr_31 = (0x0892BC4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 914u, 0x0892BC4Cu, 0x08B4214Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 488u, 0x08B4214Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BC4Cu) goto L_0892BC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BC4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9521,8 +12210,21 @@ L_0892BC88: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892BC94u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 920u, 0x0892BC94u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BC94u) goto L_0892BC94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BC94: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9547,8 +12249,21 @@ L_0892BC94: aot_mem.aot_direct_store32_block(ctx.gpr[17] + static_cast(48), aot_run_words); } aot_gpr_31 = (0x0892BCBCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 921u, 0x0892BCBCu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BCBCu) goto L_0892BCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BCBC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -9605,15 +12320,41 @@ L_0892BD24: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0892BD4Cu); aot_gpr_6 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 927u, 0x0892BD4Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BD4Cu) goto L_0892BD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BD4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0892BD5Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 928u, 0x0892BD5Cu, 0x0886D370u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 181u, 0x0886D370u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BD5Cu) goto L_0892BD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BD5C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -9622,13 +12363,39 @@ L_0892BD5C: aot_gpr_6 = (aot_gpr_6 & 255u); aot_gpr_31 = (0x0892BD78u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 929u, 0x0892BD78u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BD78u) goto L_0892BD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BD78: aot_gpr_31 = (0x0892BD80u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 930u, 0x0892BD80u, 0x0890850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 84u, 0x0890850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BD80u) goto L_0892BD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BD80: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(614)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -9657,8 +12424,8 @@ L_0892BDA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892BDC4: @@ -9682,38 +12449,116 @@ L_0892BDC4: L_0892BDF8: aot_gpr_31 = (0x0892BE00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 935u, 0x0892BE00u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BE00u) goto L_0892BE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BE00: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892BE0Cu); aot_gpr_5 = (0u | 69u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 936u, 0x0892BE0Cu, 0x08910CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 222u, 0x08910CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BE0Cu) goto L_0892BE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BE0C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892BE18u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 937u, 0x0892BE18u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BE18u) goto L_0892BE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BE18: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892BE24u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 938u, 0x0892BE24u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BE24u) goto L_0892BE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BE24: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892BE30u); aot_gpr_5 = (0u | 51u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 939u, 0x0892BE30u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BE30u) goto L_0892BE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BE30: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892BE3Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 940u, 0x0892BE3Cu, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BE3Cu) goto L_0892BE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BE3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); @@ -9752,8 +12597,21 @@ L_0892BE8C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0892BE9Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 944u, 0x0892BE9Cu, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BE9Cu) goto L_0892BE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BE9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9786,8 +12644,21 @@ L_0892BEC0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892BED0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 949u, 0x0892BED0u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BED0u) goto L_0892BED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BED0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9813,8 +12684,21 @@ L_0892BEEC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0892BEFCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 953u, 0x0892BEFCu, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BEFCu) goto L_0892BEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BEFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9840,8 +12724,21 @@ L_0892BF18: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0892BF28u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 957u, 0x0892BF28u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BF28u) goto L_0892BF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BF28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9867,8 +12764,21 @@ L_0892BF44: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x0892BF54u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 961u, 0x0892BF54u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BF54u) goto L_0892BF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BF54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9894,8 +12804,21 @@ L_0892BF70: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x0892BF80u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 965u, 0x0892BF80u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BF80u) goto L_0892BF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BF80: aot_gpr_31 = (0x0892BF88u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -9912,13 +12835,39 @@ L_0892BF90: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0892BF9Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 968u, 0x0892BF9Cu, 0x088C6FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 612u, 0x088C6FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BF9Cu) goto L_0892BF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BF9C: aot_gpr_31 = (0x0892BFA4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 969u, 0x0892BFA4u, 0x08B4214Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 488u, 0x08B4214Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BFA4u) goto L_0892BFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BFA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9959,8 +12908,21 @@ L_0892BFE0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892BFECu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0073->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0073_entry, 975u, 0x0892BFECu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892BFECu) goto L_0892BFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892BFEC: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); diff --git a/profiles/vcs/generated/generated_unit_0074.cpp b/profiles/vcs/generated/generated_unit_0074.cpp index 4bae83c..735cd05 100644 --- a/profiles/vcs/generated/generated_unit_0074.cpp +++ b/profiles/vcs/generated/generated_unit_0074.cpp @@ -853,6 +853,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0892C000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -872,8 +896,21 @@ L_0892C000: aot_mem.aot_direct_store32_block(ctx.gpr[18] + static_cast(48), aot_run_words); } aot_gpr_31 = (0x0892C018u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 2u, 0x0892C018u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C018u) goto L_0892C018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C018: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -930,16 +967,42 @@ L_0892C080: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0892C0A8u); aot_gpr_6 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 8u, 0x0892C0A8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C0A8u) goto L_0892C0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C0A8: aot_gpr_6 = (50298u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x0892C0BCu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 9u, 0x0892C0BCu, 0x0886D370u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 181u, 0x0886D370u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C0BCu) goto L_0892C0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C0BC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -948,13 +1011,39 @@ L_0892C0BC: aot_gpr_6 = (aot_gpr_6 & 255u); aot_gpr_31 = (0x0892C0D8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 10u, 0x0892C0D8u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C0D8u) goto L_0892C0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C0D8: aot_gpr_31 = (0x0892C0E0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 11u, 0x0892C0E0u, 0x0890850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 84u, 0x0890850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C0E0u) goto L_0892C0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C0E0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(614)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -986,8 +1075,8 @@ L_0892C104: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892C130: @@ -1121,8 +1210,21 @@ L_0892C21C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0892C25Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 19u, 0x0892C25Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C25Cu) goto L_0892C25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C25C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1216,8 +1318,21 @@ L_0892C268: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0892C2E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 21u, 0x0892C2E8u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C2E8u) goto L_0892C2E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C2E8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0892C2EC; @@ -1247,8 +1362,21 @@ L_0892C300: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0892C320u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 26u, 0x0892C320u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C320u) goto L_0892C320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C320: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1285,8 +1413,21 @@ L_0892C354: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892C37Cu); ctx.gpr[7] = (0u | 41u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 29u, 0x0892C37Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C37Cu) goto L_0892C37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C37C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-9)); @@ -1314,8 +1455,21 @@ L_0892C3B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892C3C0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 32u, 0x0892C3C0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C3C0u) goto L_0892C3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C3C0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1418,8 +1572,21 @@ L_0892C434: } aot_gpr_31 = (0x0892C478u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 43u, 0x0892C478u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C478u) goto L_0892C478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C478: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(320))); @@ -1460,8 +1627,21 @@ L_0892C480: } aot_gpr_31 = (0x0892C4C4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 45u, 0x0892C4C4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C4C4u) goto L_0892C4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C4C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(320))); goto L_0892C4C8; @@ -1551,8 +1731,21 @@ L_0892C584: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x0892C594u); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 51u, 0x0892C594u, 0x08999134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 124u, 0x08999134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C594u) goto L_0892C594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C594: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1564,8 +1757,21 @@ L_0892C59C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2256))); aot_gpr_31 = (0x0892C5A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 53u, 0x0892C5A8u, 0x0890675Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 544u, 0x0890675Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C5A8u) goto L_0892C5A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C5A8: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<0u>(aot_gpr_4); @@ -1627,8 +1833,21 @@ L_0892C650: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892C65Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 56u, 0x0892C65Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C65Cu) goto L_0892C65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C65C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(456))); goto L_0892C660; @@ -1657,8 +1876,21 @@ L_0892C698: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892C6ACu); ctx.gpr[7] = (0u | 137u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 59u, 0x0892C6ACu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C6ACu) goto L_0892C6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C6AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(472))); aot_gpr_4 = (aot_gpr_4 & 12288u); @@ -1674,8 +1906,21 @@ L_0892C6BC: aot_gpr_16 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x0892C6D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 61u, 0x0892C6D4u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C6D4u) goto L_0892C6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C6D4: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(736))); @@ -1697,8 +1942,21 @@ L_0892C6F4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892C70Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 64u, 0x0892C70Cu, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C70Cu) goto L_0892C70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C70C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1787,8 +2045,21 @@ L_0892C760: ctx.gpr[11] = (0u | 3000u); aot_gpr_31 = (0x0892C7D8u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 66u, 0x0892C7D8u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C7D8u) goto L_0892C7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C7D8: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(176), aot_run_words); } @@ -1807,8 +2078,21 @@ L_0892C7D8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0892C7F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 67u, 0x0892C7F4u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C7F4u) goto L_0892C7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C7F4: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(740))); @@ -1830,8 +2114,21 @@ L_0892C814: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892C82Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 70u, 0x0892C82Cu, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C82Cu) goto L_0892C82C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C82C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(200))); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; @@ -1878,8 +2175,21 @@ L_0892C858: ctx.gpr[11] = (0u | 3000u); aot_gpr_31 = (0x0892C8A8u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 72u, 0x0892C8A8u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C8A8u) goto L_0892C8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C8A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1768))); aot_gpr_4 = (aot_gpr_4 < static_cast(41) ? 1u : 0u); @@ -1924,8 +2234,8 @@ L_0892C8DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(432)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892C914: @@ -1953,8 +2263,21 @@ L_0892C914: L_0892C954: aot_gpr_31 = (0x0892C95Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 78u, 0x0892C95Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892C95Cu) goto L_0892C95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892C95C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2072,14 +2395,40 @@ L_0892C9F8: L_0892CA00: aot_gpr_31 = (0x0892CA08u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 93u, 0x0892CA08u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CA08u) goto L_0892CA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CA08: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892CA14u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 94u, 0x0892CA14u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CA14u) goto L_0892CA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CA14: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); ctx.gpr[8] = (17530u << 16u); @@ -2088,8 +2437,21 @@ L_0892CA14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892CA30u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 95u, 0x0892CA30u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CA30u) goto L_0892CA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CA30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1676))); aot_gpr_5 = (0u | 48u); @@ -2115,8 +2477,21 @@ L_0892CA68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892CA74u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 98u, 0x0892CA74u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CA74u) goto L_0892CA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CA74: aot_gpr_4 = (ctx.gpr[2] << 5u); aot_gpr_5 = (ctx.gpr[2] << 2u); @@ -2128,8 +2503,21 @@ L_0892CA74: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1896), aot_gpr_5); aot_gpr_31 = (0x0892CA9Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 99u, 0x0892CA9Cu, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CA9Cu) goto L_0892CA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CA9C: aot_gpr_4 = (ctx.gpr[2] << 5u); aot_gpr_5 = (ctx.gpr[2] << 2u); @@ -2155,15 +2543,41 @@ L_0892CAC8: aot_gpr_6 = (0u | 30000u); aot_gpr_31 = (0x0892CADCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 102u, 0x0892CADCu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CADCu) goto L_0892CADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CADC: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(3256), static_cast(ctx.gpr[18])); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892CAECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 103u, 0x0892CAECu, 0x089471E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 613u, 0x089471E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CAECu) goto L_0892CAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CAEC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3262)))))); aot_gpr_4 = (aot_gpr_4 & 32u); @@ -2180,14 +2594,40 @@ L_0892CAFC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0892CB14u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 105u, 0x0892CB14u, 0x08A1D018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 167u, 0x08A1D018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CB14u) goto L_0892CB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CB14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892CB20u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 106u, 0x0892CB20u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CB20u) goto L_0892CB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CB20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2201,14 +2641,40 @@ L_0892CB28: aot_gpr_6 = (0u | 30000u); aot_gpr_31 = (0x0892CB3Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 108u, 0x0892CB3Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CB3Cu) goto L_0892CB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CB3C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892CB48u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 109u, 0x0892CB48u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CB48u) goto L_0892CB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CB48: aot_gpr_31 = (0x0892CB50u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -2218,8 +2684,21 @@ L_0892CB50: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0892CB60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 111u, 0x0892CB60u, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CB60u) goto L_0892CB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CB60: aot_gpr_31 = (0x0892CB68u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -2270,8 +2749,21 @@ L_0892CBB4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892CBC8u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 118u, 0x0892CBC8u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CBC8u) goto L_0892CBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CBC8: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(1920))); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -2475,8 +2967,21 @@ L_0892CD08: L_0892CD10: aot_gpr_31 = (0x0892CD18u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 132u, 0x0892CD18u, 0x08948040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 6u, 0x08948040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CD18u) goto L_0892CD18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CD18: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -2492,8 +2997,21 @@ L_0892CD18: L_0892CD38: aot_gpr_31 = (0x0892CD40u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 134u, 0x0892CD40u, 0x08948040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 6u, 0x08948040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CD40u) goto L_0892CD40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CD40: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (2236u << 16u); @@ -2511,8 +3029,21 @@ L_0892CD40: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0892CD80u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 135u, 0x0892CD80u, 0x089991D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 137u, 0x089991D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CD80u) goto L_0892CD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CD80: aot_gpr_4 = (ctx.gpr[18] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2545,8 +3076,21 @@ L_0892CD80: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0892CDB0u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 136u, 0x0892CDB0u, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CDB0u) goto L_0892CDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CDB0: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); @@ -2555,13 +3099,39 @@ L_0892CDB0: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0892CDCCu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 137u, 0x0892CDCCu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CDCCu) goto L_0892CDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CDCC: aot_gpr_31 = (0x0892CDD4u); aot_fpr_12 = aot_fpr_22 - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 138u, 0x0892CDD4u, 0x08A8EF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 563u, 0x08A8EF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CDD4u) goto L_0892CDD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CDD4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (49884u << 16u); @@ -2609,8 +3179,21 @@ L_0892CE04: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0892CE38u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 141u, 0x0892CE38u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CE38u) goto L_0892CE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CE38: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2256))); @@ -2675,8 +3258,8 @@ L_0892CE88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892CEB0: @@ -2706,8 +3289,21 @@ L_0892CEDC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2120))); aot_gpr_31 = (0x0892CF14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 151u, 0x0892CF14u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CF14u) goto L_0892CF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CF14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2120))); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2810,8 +3406,21 @@ L_0892CF88: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x0892CF94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 155u, 0x0892CF94u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CF94u) goto L_0892CF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CF94: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1920))); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -2840,8 +3449,21 @@ L_0892CFB4: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0892CFC0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 159u, 0x0892CFC0u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CFC0u) goto L_0892CFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CFC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2870,8 +3492,21 @@ L_0892CFD8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892CFECu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 163u, 0x0892CFECu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892CFECu) goto L_0892CFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892CFEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2885,8 +3520,21 @@ L_0892CFF4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892D008u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 165u, 0x0892D008u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D008u) goto L_0892D008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D008: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2900,8 +3548,21 @@ L_0892D010: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892D024u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 167u, 0x0892D024u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D024u) goto L_0892D024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D024: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2932,8 +3593,21 @@ L_0892D04C: } L_0892D05C: aot_gpr_31 = (0x0892D064u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 171u, 0x0892D064u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D064u) goto L_0892D064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D064: { const bool branch_taken = 0u == 0u; aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3061,14 +3735,40 @@ L_0892D118: L_0892D128: aot_gpr_31 = (0x0892D130u); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 187u, 0x0892D130u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D130u) goto L_0892D130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D130: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x0892D13Cu); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 188u, 0x0892D13Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D13Cu) goto L_0892D13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D13C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); @@ -3145,8 +3845,21 @@ L_0892D1D4: L_0892D1E0: aot_gpr_31 = (0x0892D1E8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 197u, 0x0892D1E8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D1E8u) goto L_0892D1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D1E8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); goto L_0892D1EC; @@ -3155,20 +3868,59 @@ L_0892D1EC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892D1FCu); aot_fpr_12 = aot_fpr_12 - aot_fpr_22; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 199u, 0x0892D1FCu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D1FCu) goto L_0892D1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D1FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892D208u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 200u, 0x0892D208u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D208u) goto L_0892D208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D208: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892D214u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 201u, 0x0892D214u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D214u) goto L_0892D214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D214: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2120))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -3199,8 +3951,21 @@ L_0892D254: aot_gpr_5 = (aot_gpr_5 + static_cast(320)); aot_gpr_31 = (0x0892D264u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 204u, 0x0892D264u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D264u) goto L_0892D264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D264: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2120))); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); @@ -3237,8 +4002,21 @@ L_0892D288: L_0892D294: aot_gpr_31 = (0x0892D29Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 208u, 0x0892D29Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D29Cu) goto L_0892D29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D29C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); goto L_0892D2A0; @@ -3261,8 +4039,21 @@ L_0892D2AC: L_0892D2B8: aot_gpr_31 = (0x0892D2C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 212u, 0x0892D2C0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D2C0u) goto L_0892D2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D2C0: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(228), aot_run_words); @@ -3276,8 +4067,8 @@ L_0892D2C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892D2E4: @@ -3290,8 +4081,21 @@ L_0892D2E4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(724), aot_run_words); } aot_gpr_31 = (0x0892D328u); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 214u, 0x0892D328u, 0x08912938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 648u, 0x08912938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D328u) goto L_0892D328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D328: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3469,8 +4273,21 @@ L_0892D3D4: aot_gpr_4 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x0892D470u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 224u, 0x0892D470u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D470u) goto L_0892D470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D470: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_fpr_22 = std::bit_cast(std::bit_cast(aot_fpr_22) ^ 0x80000000u); @@ -3506,8 +4323,21 @@ L_0892D4AC: L_0892D4B0: aot_gpr_31 = (0x0892D4B8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 229u, 0x0892D4B8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D4B8u) goto L_0892D4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D4B8: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892D4BC; @@ -3558,8 +4388,21 @@ L_0892D50C: L_0892D518: aot_gpr_31 = (0x0892D520u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 235u, 0x0892D520u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D520u) goto L_0892D520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D520: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3612,8 +4455,21 @@ L_0892D570: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0892D584u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 242u, 0x0892D584u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D584u) goto L_0892D584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D584: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -3656,8 +4512,21 @@ L_0892D5C0: L_0892D5CC: aot_gpr_31 = (0x0892D5D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 248u, 0x0892D5D4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D5D4u) goto L_0892D5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D5D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3970,8 +4839,21 @@ L_0892D840: L_0892D844: aot_gpr_31 = (0x0892D84Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 273u, 0x0892D84Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D84Cu) goto L_0892D84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D84C: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892D850; @@ -3979,14 +4861,40 @@ L_0892D850: ctx.gpr[19] = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x0892D85Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 275u, 0x0892D85Cu, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D85Cu) goto L_0892D85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D85C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0892D868u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 276u, 0x0892D868u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D868u) goto L_0892D868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D868: ctx.gpr[21] = (ctx.gpr[17] + static_cast(48)); { std::uint32_t aot_run_words[3]{}; @@ -3997,8 +4905,21 @@ L_0892D868: } aot_gpr_31 = (0x0892D880u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 277u, 0x0892D880u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D880u) goto L_0892D880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D880: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4166,16 +5087,42 @@ L_0892D928: L_0892D92C: aot_gpr_31 = (0x0892D934u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 285u, 0x0892D934u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D934u) goto L_0892D934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D934: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892D938; L_0892D938: aot_gpr_31 = (0x0892D940u); aot_fpr_12 = aot_fpr_22 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 287u, 0x0892D940u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D940u) goto L_0892D940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D940: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); @@ -4214,8 +5161,21 @@ L_0892D988: L_0892D98C: aot_gpr_31 = (0x0892D994u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 292u, 0x0892D994u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892D994u) goto L_0892D994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892D994: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892D998; @@ -4343,8 +5303,21 @@ L_0892DA48: L_0892DA4C: aot_gpr_31 = (0x0892DA54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 310u, 0x0892DA54u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892DA54u) goto L_0892DA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892DA54: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[17]; if (branch_taken) { @@ -4602,8 +5575,21 @@ L_0892DB44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0892DC00u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 327u, 0x0892DC00u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892DC00u) goto L_0892DC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892DC00: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4782,8 +5768,21 @@ L_0892DC64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0892DD20u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 334u, 0x0892DD20u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892DD20u) goto L_0892DD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892DD20: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4962,8 +5961,21 @@ L_0892DD84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0892DE40u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 341u, 0x0892DE40u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892DE40u) goto L_0892DE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892DE40: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5142,8 +6154,21 @@ L_0892DEA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0892DF60u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 348u, 0x0892DF60u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892DF60u) goto L_0892DF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892DF60: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5375,8 +6400,21 @@ L_0892DFDC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0892E0B4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 357u, 0x0892E0B4u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E0B4u) goto L_0892E0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E0B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5621,8 +6659,21 @@ L_0892E158: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0892E230u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 367u, 0x0892E230u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E230u) goto L_0892E230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E230: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5818,8 +6869,21 @@ L_0892E388: L_0892E38C: aot_gpr_31 = (0x0892E394u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 392u, 0x0892E394u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E394u) goto L_0892E394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E394: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -5980,8 +7044,21 @@ L_0892E498: L_0892E49C: aot_gpr_31 = (0x0892E4A4u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 412u, 0x0892E4A4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E4A4u) goto L_0892E4A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E4A4: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -6161,8 +7238,21 @@ L_0892E5B0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); aot_gpr_31 = (0x0892E5BCu); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 435u, 0x0892E5BCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E5BCu) goto L_0892E5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E5BC: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -6393,8 +7483,21 @@ L_0892E710: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); aot_gpr_31 = (0x0892E71Cu); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 463u, 0x0892E71Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E71Cu) goto L_0892E71C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E71C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -6671,8 +7774,21 @@ L_0892E8D4: L_0892E8E0: aot_gpr_31 = (0x0892E8E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 498u, 0x0892E8E8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E8E8u) goto L_0892E8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E8E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6720,8 +7836,21 @@ L_0892E928: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892E93Cu); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 504u, 0x0892E93Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E93Cu) goto L_0892E93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E93C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(0u); @@ -6742,8 +7871,21 @@ L_0892E95C: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892E970u); aot_fpr_12 = aot_fpr_22 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 506u, 0x0892E970u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E970u) goto L_0892E970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E970: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(0u); @@ -6788,8 +7930,21 @@ L_0892E9BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); aot_gpr_31 = (0x0892E9C8u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 511u, 0x0892E9C8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E9C8u) goto L_0892E9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E9C8: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -6805,8 +7960,21 @@ L_0892E9DC: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892E9F0u); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 513u, 0x0892E9F0u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892E9F0u) goto L_0892E9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892E9F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(0u); @@ -6827,8 +7995,21 @@ L_0892EA10: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EA24u); aot_fpr_12 = aot_fpr_22 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 515u, 0x0892EA24u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EA24u) goto L_0892EA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EA24: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(0u); @@ -6936,8 +8117,21 @@ L_0892EAE4: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EAF8u); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 527u, 0x0892EAF8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EAF8u) goto L_0892EAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EAF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(0u); @@ -6958,8 +8152,21 @@ L_0892EB18: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EB2Cu); aot_fpr_12 = aot_fpr_22 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 529u, 0x0892EB2Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EB2Cu) goto L_0892EB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EB2C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(0u); @@ -7004,8 +8211,21 @@ L_0892EB78: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); aot_gpr_31 = (0x0892EB84u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 534u, 0x0892EB84u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EB84u) goto L_0892EB84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EB84: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -7021,8 +8241,21 @@ L_0892EB98: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EBACu); aot_fpr_12 = aot_fpr_22 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 536u, 0x0892EBACu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EBACu) goto L_0892EBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EBAC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(0u); @@ -7043,8 +8276,21 @@ L_0892EBCC: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EBE0u); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 538u, 0x0892EBE0u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EBE0u) goto L_0892EBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EBE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(0u); @@ -7106,8 +8352,21 @@ L_0892EC44: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EC58u); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 545u, 0x0892EC58u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EC58u) goto L_0892EC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EC58: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(0u); @@ -7174,8 +8433,21 @@ L_0892ECB8: L_0892ECC4: aot_gpr_31 = (0x0892ECCCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 553u, 0x0892ECCCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ECCCu) goto L_0892ECCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ECCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7213,8 +8485,21 @@ L_0892ED00: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); aot_gpr_31 = (0x0892ED0Cu); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 558u, 0x0892ED0Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ED0Cu) goto L_0892ED0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ED0C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -7244,8 +8529,21 @@ L_0892ED40: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892ED54u); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 561u, 0x0892ED54u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892ED54u) goto L_0892ED54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892ED54: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(0u); @@ -7298,8 +8596,21 @@ L_0892EDA4: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EDB8u); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 567u, 0x0892EDB8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EDB8u) goto L_0892EDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EDB8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(0u); @@ -7366,8 +8677,21 @@ L_0892EE18: L_0892EE24: aot_gpr_31 = (0x0892EE2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 575u, 0x0892EE2Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EE2Cu) goto L_0892EE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EE2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7405,8 +8729,21 @@ L_0892EE60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); aot_gpr_31 = (0x0892EE6Cu); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 580u, 0x0892EE6Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EE6Cu) goto L_0892EE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EE6C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -7422,8 +8759,21 @@ L_0892EE80: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EE94u); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 582u, 0x0892EE94u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EE94u) goto L_0892EE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EE94: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(0u); @@ -7532,8 +8882,21 @@ L_0892EEE4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2068), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0892EF30u); aot_gpr_5 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 587u, 0x0892EF30u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EF30u) goto L_0892EF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EF30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -7565,15 +8928,41 @@ L_0892EF60: } L_0892EF68: aot_gpr_31 = (0x0892EF70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 591u, 0x0892EF70u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EF70u) goto L_0892EF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EF70: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0892EF74; L_0892EF74: aot_gpr_31 = (0x0892EF7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 593u, 0x0892EF7Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EF7Cu) goto L_0892EF7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EF7C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); @@ -7616,8 +9005,21 @@ L_0892EFC8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0892EFDCu); aot_fpr_12 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 598u, 0x0892EFDCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892EFDCu) goto L_0892EFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892EFDC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); goto L_0892EFE0; @@ -7740,8 +9142,21 @@ L_0892F0F0: L_0892F0FC: aot_gpr_31 = (0x0892F104u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 612u, 0x0892F104u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F104u) goto L_0892F104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F104: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(696), aot_run_words); @@ -7761,8 +9176,8 @@ L_0892F104: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(752)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892F140: @@ -7781,8 +9196,21 @@ L_0892F140: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0892F190u); ctx.gpr[22] = (0u | 173u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 614u, 0x0892F190u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F190u) goto L_0892F190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F190: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7847,8 +9275,21 @@ L_0892F1DC: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0892F1E8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 623u, 0x0892F1E8u, 0x0890CC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 212u, 0x0890CC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F1E8u) goto L_0892F1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F1E8: aot_gpr_4 = (ctx.gpr[20] < static_cast(33) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7863,8 +9304,8 @@ L_0892F1F4: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[20]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-11648))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892F20C: @@ -7894,8 +9335,21 @@ L_0892F22C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F254u); ctx.gpr[7] = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 628u, 0x0892F254u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F254u) goto L_0892F254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F254: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7911,8 +9365,21 @@ L_0892F25C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F278u); ctx.gpr[7] = (0u | 149u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 630u, 0x0892F278u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F278u) goto L_0892F278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F278: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -8008,8 +9475,21 @@ L_0892F314: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F344u); ctx.gpr[7] = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 641u, 0x0892F344u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F344u) goto L_0892F344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F344: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8031,8 +9511,21 @@ L_0892F34C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F380u); ctx.gpr[7] = (0u | 41u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 643u, 0x0892F380u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F380u) goto L_0892F380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F380: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); @@ -8045,8 +9538,21 @@ L_0892F380: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892F3ACu); aot_gpr_5 = (aot_gpr_5 + static_cast(-13204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 644u, 0x0892F3ACu, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F3ACu) goto L_0892F3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F3AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[23]; @@ -8076,13 +9582,39 @@ L_0892F3C8: L_0892F3D8: aot_gpr_31 = (0x0892F3E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 648u, 0x0892F3E0u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F3E0u) goto L_0892F3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F3E0: aot_gpr_31 = (0x0892F3E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 649u, 0x0892F3E8u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F3E8u) goto L_0892F3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F3E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(30000)); @@ -8108,8 +9640,21 @@ L_0892F3FC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F42Cu); ctx.gpr[7] = (0u | 150u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 652u, 0x0892F42Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F42Cu) goto L_0892F42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F42C: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2193u << 16u); @@ -8139,8 +9684,21 @@ L_0892F44C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F47Cu); ctx.gpr[7] = (0u | 41u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 655u, 0x0892F47Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F47Cu) goto L_0892F47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F47C: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2193u << 16u); @@ -8197,8 +9755,21 @@ L_0892F4E4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F500u); ctx.gpr[7] = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 661u, 0x0892F500u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F500u) goto L_0892F500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F500: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[23]; @@ -8227,13 +9798,39 @@ L_0892F518: L_0892F528: aot_gpr_31 = (0x0892F530u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 665u, 0x0892F530u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F530u) goto L_0892F530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F530: aot_gpr_31 = (0x0892F538u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 666u, 0x0892F538u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F538u) goto L_0892F538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F538: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(30000)); @@ -8277,8 +9874,21 @@ L_0892F574: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F5A4u); ctx.gpr[7] = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 671u, 0x0892F5A4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F5A4u) goto L_0892F5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F5A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8376,16 +9986,42 @@ L_0892F64C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F664u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 684u, 0x0892F664u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F664u) goto L_0892F664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F664: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0892F678u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 685u, 0x0892F678u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F678u) goto L_0892F678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F678: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8484,8 +10120,21 @@ L_0892F728: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F740u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 698u, 0x0892F740u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F740u) goto L_0892F740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F740: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); @@ -8499,8 +10148,21 @@ L_0892F740: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0892F770u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 699u, 0x0892F770u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F770u) goto L_0892F770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F770: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8539,8 +10201,21 @@ L_0892F7A0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F7D0u); ctx.gpr[7] = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 703u, 0x0892F7D0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F7D0u) goto L_0892F7D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F7D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8556,8 +10231,21 @@ L_0892F7D8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F7F4u); ctx.gpr[7] = (0u | 162u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 705u, 0x0892F7F4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F7F4u) goto L_0892F7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F7F4: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2193u << 16u); @@ -8587,8 +10275,21 @@ L_0892F824: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F840u); ctx.gpr[7] = (0u | 163u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 708u, 0x0892F840u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F840u) goto L_0892F840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F840: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2193u << 16u); @@ -8618,8 +10319,21 @@ L_0892F870: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F88Cu); ctx.gpr[7] = (0u | 164u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 711u, 0x0892F88Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F88Cu) goto L_0892F88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F88C: { const bool branch_taken = ctx.gpr[18] == 0u; ctx.gpr[21] = (ctx.gpr[2] | 0u); @@ -8710,8 +10424,21 @@ L_0892F930: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892F94Cu); ctx.gpr[7] = (0u | 166u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 722u, 0x0892F94Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F94Cu) goto L_0892F94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F94C: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2193u << 16u); @@ -8762,8 +10489,21 @@ L_0892F994: aot_gpr_6 = (0u | 25u); aot_gpr_31 = (0x0892F9B8u); ctx.gpr[7] = (0u | 219u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 728u, 0x0892F9B8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F9B8u) goto L_0892F9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F9B8: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2193u << 16u); @@ -8771,8 +10511,21 @@ L_0892F9B8: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892F9D0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-13108)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 729u, 0x0892F9D0u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892F9D0u) goto L_0892F9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892F9D0: aot_gpr_4 = (18243u << 16u); aot_gpr_4 = (aot_gpr_4 | 20480u); @@ -8847,8 +10600,21 @@ L_0892FA5C: aot_gpr_6 = (0u | 28u); aot_gpr_31 = (0x0892FA70u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 738u, 0x0892FA70u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FA70u) goto L_0892FA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FA70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8864,8 +10630,21 @@ L_0892FA78: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892FA94u); ctx.gpr[7] = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 740u, 0x0892FA94u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FA94u) goto L_0892FA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FA94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -8949,8 +10728,21 @@ L_0892FB38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892FB48u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 749u, 0x0892FB48u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FB48u) goto L_0892FB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FB48: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -8997,16 +10789,42 @@ L_0892FBA4: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x0892FBC0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 753u, 0x0892FBC0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FBC0u) goto L_0892FBC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FBC0: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0892FBD4u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 754u, 0x0892FBD4u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FBD4u) goto L_0892FBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FBD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9022,8 +10840,21 @@ L_0892FBDC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0892FBF8u); ctx.gpr[7] = (0u | 156u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 756u, 0x0892FBF8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FBF8u) goto L_0892FBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FBF8: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); @@ -9037,8 +10868,21 @@ L_0892FBF8: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0892FC28u); aot_gpr_5 = (aot_gpr_5 + static_cast(-13204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 757u, 0x0892FC28u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FC28u) goto L_0892FC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FC28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -9053,13 +10897,39 @@ L_0892FC28: L_0892FC3C: aot_gpr_31 = (0x0892FC44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 759u, 0x0892FC44u, 0x08929C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 396u, 0x08929C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FC44u) goto L_0892FC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FC44: aot_gpr_31 = (0x0892FC4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 760u, 0x0892FC4Cu, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FC4Cu) goto L_0892FC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FC4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9104,8 +10974,8 @@ L_0892FC70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0892FCA4: @@ -9279,8 +11149,21 @@ L_0892FCA4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0892FE0Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 766u, 0x0892FE0Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FE0Cu) goto L_0892FE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FE0C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9379,8 +11262,21 @@ L_0892FE14: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0892FE94u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0074->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0074_entry, 768u, 0x0892FE94u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0892FE94u) goto L_0892FE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0892FE94: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0075.cpp b/profiles/vcs/generated/generated_unit_0075.cpp index 2a31b2d..ac24e74 100644 --- a/profiles/vcs/generated/generated_unit_0075.cpp +++ b/profiles/vcs/generated/generated_unit_0075.cpp @@ -850,6 +850,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08930000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -997,8 +1021,21 @@ L_0893008C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089300E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 8u, 0x089300E4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089300E4u) goto L_089300E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089300E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1216,8 +1253,21 @@ L_0893012C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089301E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 11u, 0x089301E4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089301E4u) goto L_089301E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089301E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1446,8 +1496,21 @@ L_089302FC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08930348u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 18u, 0x08930348u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930348u) goto L_08930348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930348: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(aot_gpr_4)); @@ -1468,8 +1531,8 @@ L_08930350: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(960)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08930380: @@ -1494,8 +1557,21 @@ L_08930380: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x089303C4u); aot_gpr_6 = (0u | 235u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 21u, 0x089303C4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089303C4u) goto L_089303C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089303C4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1523,8 +1599,21 @@ L_089303E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_31 = (0x08930404u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 24u, 0x08930404u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930404u) goto L_08930404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930404: aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), std::bit_cast(aot_fpr_20)); @@ -1537,8 +1626,21 @@ L_08930404: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08930430u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 25u, 0x08930430u, 0x08904B64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 178u, 0x08904B64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930430u) goto L_08930430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930430: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1757,8 +1859,21 @@ L_08930550: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08930560u); aot_gpr_6 = (0u | 237u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 43u, 0x08930560u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930560u) goto L_08930560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930560: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -1772,8 +1887,21 @@ L_08930568: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08930578u); aot_gpr_6 = (0u | 236u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 45u, 0x08930578u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930578u) goto L_08930578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930578: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0893057C; @@ -1834,8 +1962,21 @@ L_089305EC: aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; aot_gpr_31 = (0x08930608u); { const float fs = ctx.fpr[15]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 53u, 0x08930608u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930608u) goto L_08930608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930608: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1936,8 +2077,21 @@ L_08930680: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08930690u); aot_gpr_6 = (0u | 243u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 66u, 0x08930690u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930690u) goto L_08930690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930690: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -1951,8 +2105,21 @@ L_08930698: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089306A8u); aot_gpr_6 = (0u | 244u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 68u, 0x089306A8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089306A8u) goto L_089306A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089306A8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089306AC; @@ -2013,8 +2180,21 @@ L_0893071C: aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; aot_gpr_31 = (0x08930738u); { const float fs = ctx.fpr[15]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 76u, 0x08930738u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930738u) goto L_08930738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930738: aot_gpr_4 = (0u | 2u); if (ctx.gpr[19] == aot_gpr_4) { @@ -2027,8 +2207,21 @@ L_08930744: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08930754u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 78u, 0x08930754u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930754u) goto L_08930754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930754: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2047,22 +2240,61 @@ L_0893075C: L_08930770: aot_gpr_31 = (0x08930778u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 81u, 0x08930778u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930778u) goto L_08930778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930778: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08930784u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 82u, 0x08930784u, 0x0886D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 197u, 0x0886D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930784u) goto L_08930784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930784: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x08930798u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 83u, 0x08930798u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930798u) goto L_08930798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930798: aot_gpr_4 = (16153u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -2113,8 +2345,21 @@ L_0893080C: L_08930818: aot_gpr_31 = (0x08930820u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 88u, 0x08930820u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930820u) goto L_08930820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930820: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(148), aot_run_words); @@ -2130,8 +2375,8 @@ L_08930820: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893084C: @@ -2427,8 +2672,21 @@ L_08930AD8: aot_gpr_6 = (aot_gpr_16 + static_cast(352)); aot_gpr_31 = (0x08930AE4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 116u, 0x08930AE4u, 0x088B1AB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 225u, 0x088B1AB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930AE4u) goto L_08930AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930AE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2493,8 +2751,21 @@ L_08930B54: L_08930B6C: aot_gpr_31 = (0x08930B74u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 123u, 0x08930B74u, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930B74u) goto L_08930B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930B74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2529,8 +2800,21 @@ L_08930B90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08930BA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 126u, 0x08930BA8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930BA8u) goto L_08930BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930BA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-2)); @@ -2638,8 +2922,21 @@ L_08930CA0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08930CB0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 136u, 0x08930CB0u, 0x08905CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 389u, 0x08905CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930CB0u) goto L_08930CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930CB0: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2736,8 +3033,21 @@ L_08930D60: aot_gpr_6 = (ctx.gpr[20] + static_cast(16)); aot_gpr_31 = (0x08930D90u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 140u, 0x08930D90u, 0x088B1820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 207u, 0x088B1820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930D90u) goto L_08930D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930D90: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[8] = (aot_gpr_29 + static_cast(144)); @@ -2811,8 +3121,21 @@ L_08930DEC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08930E2Cu); aot_gpr_6 = (ctx.gpr[20] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 148u, 0x08930E2Cu, 0x088B1820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 207u, 0x088B1820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08930E2Cu) goto L_08930E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08930E2C: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[8] = (aot_gpr_29 + static_cast(144)); @@ -3161,8 +3484,21 @@ L_089310B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089310C4u); aot_gpr_6 = (0u | 139u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 180u, 0x089310C4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089310C4u) goto L_089310C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089310C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -3343,16 +3679,42 @@ L_0893120C: aot_gpr_5 = (aot_gpr_29 + static_cast(216)); aot_gpr_31 = (0x08931270u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 195u, 0x08931270u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931270u) goto L_08931270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931270: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_08931274; L_08931274: aot_gpr_31 = (0x0893127Cu); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 197u, 0x0893127Cu, 0x08A91F58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 250u, 0x08A91F58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893127Cu) goto L_0893127C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893127C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3374,8 +3736,21 @@ L_08931290: ctx.gpr[8] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089312B0u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 200u, 0x089312B0u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089312B0u) goto L_089312B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089312B0: aot_gpr_31 = (0x089312B8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3402,8 +3777,21 @@ L_089312D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089312E0u); aot_gpr_5 = (0u | 105u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 204u, 0x089312E0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089312E0u) goto L_089312E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089312E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -3411,8 +3799,21 @@ L_089312E0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089312F8u); aot_gpr_6 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 205u, 0x089312F8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089312F8u) goto L_089312F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089312F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3462,8 +3863,21 @@ L_08931344: ctx.gpr[8] = (0u | 2u); aot_gpr_31 = (0x08931368u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 210u, 0x08931368u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931368u) goto L_08931368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931368: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(216)); @@ -3478,8 +3892,21 @@ L_08931368: L_08931380: aot_gpr_31 = (0x08931388u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 212u, 0x08931388u, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931388u) goto L_08931388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931388: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3515,8 +3942,21 @@ L_089313A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(264), std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x089313C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 215u, 0x089313C0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089313C0u) goto L_089313C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089313C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-2)); @@ -3619,8 +4059,21 @@ L_0893146C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931478u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 226u, 0x08931478u, 0x08A66AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931478u) goto L_08931478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931478: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -3637,8 +4090,21 @@ L_08931494: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089314A0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 228u, 0x089314A0u, 0x08A66AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089314A0u) goto L_089314A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089314A0: { const bool branch_taken = static_cast(ctx.gpr[19]) <= 0; if (branch_taken) { @@ -3958,8 +4424,8 @@ L_08931730: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893176C: @@ -4022,8 +4488,21 @@ L_089317C4: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089317D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 267u, 0x089317D0u, 0x0892FCA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 765u, 0x0892FCA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089317D0u) goto L_089317D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089317D0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4043,8 +4522,21 @@ L_089317DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931800u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 269u, 0x08931800u, 0x0890F6ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 789u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 789u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 789u, 0x0890F6ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931800u) goto L_08931800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931800: aot_gpr_6 = (16025u << 16u); aot_gpr_6 = (aot_gpr_6 | 39322u); @@ -4053,8 +4545,21 @@ L_08931800: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893181Cu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 270u, 0x0893181Cu, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893181Cu) goto L_0893181C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893181C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4062,8 +4567,21 @@ L_0893181C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08931834u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 271u, 0x08931834u, 0x0890F7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 797u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 797u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 797u, 0x0890F7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931834u) goto L_08931834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931834: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= aot_fpr_13)) ? 0x00800000u : 0u); @@ -4088,14 +4606,40 @@ L_08931848: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x08931880u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 273u, 0x08931880u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931880u) goto L_08931880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931880: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893188Cu); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 274u, 0x0893188Cu, 0x0890F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 801u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 801u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 801u, 0x0890F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893188Cu) goto L_0893188C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893188C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4108,8 +4652,21 @@ L_08931894: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089318A4u); aot_gpr_6 = (0u | 260u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 276u, 0x089318A4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089318A4u) goto L_089318A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089318A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4121,8 +4678,21 @@ L_089318AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089318B8u); aot_gpr_5 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 278u, 0x089318B8u, 0x0890F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 801u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 801u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 801u, 0x0890F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089318B8u) goto L_089318B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089318B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4135,8 +4705,21 @@ L_089318C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089318D0u); aot_gpr_6 = (0u | 259u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 280u, 0x089318D0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089318D0u) goto L_089318D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089318D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4148,8 +4731,21 @@ L_089318D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089318E4u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 282u, 0x089318E4u, 0x0890F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 801u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 801u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 801u, 0x0890F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089318E4u) goto L_089318E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089318E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4162,8 +4758,21 @@ L_089318EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089318FCu); aot_gpr_6 = (0u | 257u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 284u, 0x089318FCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089318FCu) goto L_089318FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089318FC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4176,8 +4785,21 @@ L_08931904: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931914u); aot_gpr_6 = (0u | 258u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 286u, 0x08931914u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931914u) goto L_08931914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931914: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4189,8 +4811,21 @@ L_0893191C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931928u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 288u, 0x08931928u, 0x0890F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 801u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 801u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 801u, 0x0890F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931928u) goto L_08931928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931928: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4205,13 +4840,39 @@ L_08931930: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(472), aot_gpr_4); aot_gpr_31 = (0x08931948u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 290u, 0x08931948u, 0x0890F994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 813u, 0x0890F994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931948u) goto L_08931948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931948: aot_gpr_31 = (0x08931950u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 291u, 0x08931950u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931950u) goto L_08931950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931950: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4231,8 +4892,21 @@ L_08931960: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931970u); aot_gpr_6 = (0u | 260u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 294u, 0x08931970u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931970u) goto L_08931970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931970: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4266,8 +4940,21 @@ L_08931990: L_08931998: aot_gpr_31 = (0x089319A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 299u, 0x089319A0u, 0x0890F908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 808u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 808u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 808u, 0x0890F908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089319A0u) goto L_089319A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089319A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_5 = (0u + static_cast(-257)); @@ -4280,18 +4967,57 @@ L_089319A0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(472), aot_gpr_4); aot_gpr_31 = (0x089319CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 300u, 0x089319CCu, 0x089117B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 403u, 0x089117B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089319CCu) goto L_089319CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089319CC: aot_gpr_31 = (0x089319D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 301u, 0x089319D4u, 0x0890F994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 813u, 0x0890F994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089319D4u) goto L_089319D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089319D4: aot_gpr_31 = (0x089319DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 302u, 0x089319DCu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089319DCu) goto L_089319DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089319DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(472))); aot_gpr_5 = (0u + static_cast(-1793)); @@ -4312,8 +5038,8 @@ L_089319F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08931A04: @@ -4329,8 +5055,8 @@ L_08931A04: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8852), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8856), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08931A34: @@ -4345,8 +5071,21 @@ L_08931A34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08931A60u); ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 306u, 0x08931A60u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931A60u) goto L_08931A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931A60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931A6Cu); @@ -4358,8 +5097,21 @@ L_08931A6C: aot_gpr_5 = (0u + static_cast(-2)); aot_gpr_31 = (0x08931A7Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 308u, 0x08931A7Cu, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931A7Cu) goto L_08931A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931A7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931A88u); @@ -4371,8 +5123,21 @@ L_08931A88: aot_gpr_5 = (0u + static_cast(-2)); aot_gpr_31 = (0x08931A98u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 310u, 0x08931A98u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931A98u) goto L_08931A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931A98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931AA4u); @@ -4384,8 +5149,21 @@ L_08931AA4: aot_gpr_5 = (0u + static_cast(-2)); aot_gpr_31 = (0x08931AB4u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 312u, 0x08931AB4u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931AB4u) goto L_08931AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931AB4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4397,8 +5175,8 @@ L_08931AB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08931AD0: @@ -4413,8 +5191,8 @@ L_08931AE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08931AF4: @@ -4469,8 +5247,21 @@ L_08931B54: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08931B60u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 322u, 0x08931B60u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931B60u) goto L_08931B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931B60: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_08931B64; @@ -4487,16 +5278,42 @@ L_08931B6C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931B80u); aot_gpr_6 = (aot_gpr_6 + static_cast(-11512)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 325u, 0x08931B80u, 0x0889D0C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 213u, 0x0889D0C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931B80u) goto L_08931B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931B80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(108))); aot_gpr_16 = (aot_gpr_4 + static_cast(16)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(0)))))); aot_gpr_31 = (0x08931B94u); ctx.gpr[17] = (ctx.gpr[19] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 326u, 0x08931B94u, 0x08823710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 639u, 0x08823710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931B94u) goto L_08931B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931B94: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -4532,8 +5349,21 @@ L_08931BB8: L_08931BC0: aot_gpr_31 = (0x08931BC8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 331u, 0x08931BC8u, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931BC8u) goto L_08931BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931BC8: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4559,8 +5389,21 @@ L_08931BD8: aot_gpr_6 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08931BE8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 333u, 0x08931BE8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931BE8u) goto L_08931BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931BE8: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); @@ -4593,22 +5436,61 @@ L_08931C0C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931C1Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 336u, 0x08931C1Cu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931C1Cu) goto L_08931C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931C1C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931C2Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 337u, 0x08931C2Cu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931C2Cu) goto L_08931C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931C2C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931C3Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 338u, 0x08931C3Cu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931C3Cu) goto L_08931C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931C3C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08931C48u); @@ -4657,8 +5539,21 @@ L_08931C74: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08931C84u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 345u, 0x08931C84u, 0x0889D0C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 213u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 213u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 213u, 0x0889D0C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931C84u) goto L_08931C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931C84: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08931C90u); @@ -4738,8 +5633,8 @@ L_08931CEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08931D08: @@ -4795,8 +5690,21 @@ L_08931D78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931D84u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 362u, 0x08931D84u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931D84u) goto L_08931D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931D84: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -4810,14 +5718,40 @@ L_08931D90: aot_gpr_5 = (ctx.gpr[28] + static_cast(-19936)); aot_gpr_31 = (0x08931D9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 364u, 0x08931D9Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931D9Cu) goto L_08931D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931D9C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931DA8u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 365u, 0x08931DA8u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931DA8u) goto L_08931DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931DA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931DB4u); @@ -4828,8 +5762,21 @@ L_08931DB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931DC0u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 367u, 0x08931DC0u, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931DC0u) goto L_08931DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931DC0: aot_gpr_31 = (0x08931DC8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4843,8 +5790,21 @@ L_08931DCC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08931DDCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 370u, 0x08931DDCu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931DDCu) goto L_08931DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931DDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931DE8u); @@ -4904,8 +5864,21 @@ L_08931E44: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08931E54u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 378u, 0x08931E54u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931E54u) goto L_08931E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931E54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931E60u); @@ -4965,8 +5938,21 @@ L_08931EBC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08931ECCu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 386u, 0x08931ECCu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931ECCu) goto L_08931ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931ECC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08931ED8u); @@ -5026,8 +6012,21 @@ L_08931F34: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08931F44u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 394u, 0x08931F44u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08931F44u) goto L_08931F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08931F44: ctx.gpr[17] = (0u | 255u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5123,8 +6122,8 @@ L_08931FE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932014: @@ -5153,8 +6152,21 @@ L_0893204C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08932058u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 409u, 0x08932058u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932058u) goto L_08932058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932058: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(8), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(4), std::bit_cast(ctx.fpr[0])); @@ -5170,14 +6182,40 @@ L_08932068: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08932078u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 411u, 0x08932078u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932078u) goto L_08932078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932078: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08932084u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 412u, 0x08932084u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932084u) goto L_08932084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932084: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(8), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(4), std::bit_cast(ctx.fpr[0])); @@ -5186,8 +6224,21 @@ L_08932084: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089320A0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 413u, 0x089320A0u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089320A0u) goto L_089320A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089320A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089320ACu); @@ -5215,8 +6266,21 @@ L_089320C4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089320D4u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 418u, 0x089320D4u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089320D4u) goto L_089320D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089320D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089320E0u); @@ -5255,8 +6319,8 @@ L_08932104: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893211C: @@ -5333,8 +6397,8 @@ L_08932198: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089321B8: @@ -5400,8 +6464,8 @@ L_08932270: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932288: @@ -5463,8 +6527,8 @@ L_089322EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932308: @@ -5487,8 +6551,21 @@ L_08932324: L_0893232C: aot_gpr_31 = (0x08932334u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-19928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 440u, 0x08932334u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932334u) goto L_08932334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932334: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5511,8 +6588,21 @@ L_08932350: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08932360u); aot_gpr_5 = (aot_gpr_5 + static_cast(8476)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 444u, 0x08932360u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932360u) goto L_08932360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932360: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -5551,8 +6641,21 @@ L_08932398: L_089323A0: aot_gpr_31 = (0x089323A8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-19916)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 452u, 0x089323A8u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089323A8u) goto L_089323A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089323A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5575,8 +6678,21 @@ L_089323C4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089323D4u); aot_gpr_5 = (aot_gpr_5 + static_cast(8632)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 456u, 0x089323D4u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089323D4u) goto L_089323D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089323D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -5615,8 +6731,21 @@ L_0893240C: L_08932414: aot_gpr_31 = (0x0893241Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-19904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 464u, 0x0893241Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893241Cu) goto L_0893241C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893241C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5639,8 +6768,21 @@ L_08932438: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08932448u); aot_gpr_5 = (aot_gpr_5 + static_cast(8840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 468u, 0x08932448u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932448u) goto L_08932448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932448: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -5665,8 +6807,8 @@ L_0893246C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932478: @@ -5705,8 +6847,21 @@ L_089324B0: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089324F4u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 476u, 0x089324F4u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089324F4u) goto L_089324F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089324F4: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -5718,8 +6873,8 @@ L_089324F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932510: @@ -5756,8 +6911,8 @@ L_0893255C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932574: @@ -5776,8 +6931,8 @@ L_08932598: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089325A8: @@ -5841,15 +6996,28 @@ L_0893261C: } L_08932624: aot_gpr_31 = (0x0893262Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 490u, 0x0893262Cu, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893262Cu) goto L_0893262C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893262C: ctx.gpr[2] = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893263C: @@ -5983,8 +7151,8 @@ L_08932734: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932758: @@ -6004,8 +7172,21 @@ L_08932758: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893279Cu); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 509u, 0x0893279Cu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893279Cu) goto L_0893279C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893279C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(100))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); @@ -6014,8 +7195,21 @@ L_0893279C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089327B8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 510u, 0x089327B8u, 0x08A36ECCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 753u, 0x08A36ECCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089327B8u) goto L_089327B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089327B8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), aot_run_words); @@ -6025,8 +7219,8 @@ L_089327B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089327CC: @@ -6072,8 +7266,8 @@ L_08932814: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932824: @@ -6131,8 +7325,8 @@ L_08932890: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089328A0: @@ -6213,8 +7407,8 @@ L_08932928: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893293C: @@ -6274,8 +7468,8 @@ L_089329A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089329BC: @@ -6356,30 +7550,43 @@ L_08932A44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932A58: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932A60: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08932A70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 554u, 0x08932A70u, 0x08AD3BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 696u, 0x08AD3BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932A70u) goto L_08932A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932A70: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932A80: @@ -6417,8 +7624,21 @@ L_08932ADC: L_08932AF0: aot_gpr_31 = (0x08932AF8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 560u, 0x08932AF8u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932AF8u) goto L_08932AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932AF8: aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[2]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6431,8 +7651,21 @@ L_08932B04: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08932B10u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 562u, 0x08932B10u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932B10u) goto L_08932B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932B10: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6459,8 +7692,21 @@ L_08932B1C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08932B34u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 564u, 0x08932B34u, 0x08824354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 38u, 0x08824354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932B34u) goto L_08932B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932B34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6513,8 +7759,8 @@ L_08932B68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932B90: @@ -6552,8 +7798,8 @@ L_08932BC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932BD4: @@ -6573,8 +7819,21 @@ L_08932BF4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), ctx.gpr[17]); aot_gpr_31 = (0x08932C00u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 578u, 0x08932C00u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932C00u) goto L_08932C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932C00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7868))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6593,8 +7852,8 @@ L_08932C14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932C2C: @@ -6640,27 +7899,40 @@ L_08932C74: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08932C88u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 588u, 0x08932C88u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932C88u) goto L_08932C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932C88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932C94: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(8886), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932C9C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932CA4: @@ -6676,8 +7948,21 @@ L_08932CA4: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08932CD8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 592u, 0x08932CD8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932CD8u) goto L_08932CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932CD8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { std::uint32_t aot_run_words[5]{}; @@ -6690,8 +7975,21 @@ L_08932CD8: } aot_gpr_31 = (0x08932CF8u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 593u, 0x08932CF8u, 0x0886481Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 79u, 0x0886481Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932CF8u) goto L_08932CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932CF8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -6703,8 +8001,8 @@ L_08932CF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932D14: @@ -6717,8 +8015,21 @@ L_08932D14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08932D38u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 595u, 0x08932D38u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932D38u) goto L_08932D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932D38: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -6781,8 +8092,8 @@ L_08932D9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932DB0: @@ -6793,15 +8104,28 @@ L_08932DB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08932DCCu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 603u, 0x08932DCCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932DCCu) goto L_08932DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932DCC: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932DDC: @@ -6815,8 +8139,21 @@ L_08932DDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08932E04u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 605u, 0x08932E04u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932E04u) goto L_08932E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932E04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); if (aot_gpr_4 != 0u) { @@ -6835,8 +8172,21 @@ L_08932E1C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08932E28u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 609u, 0x08932E28u, 0x08954310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 70u, 0x08954310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932E28u) goto L_08932E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932E28: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6847,8 +8197,8 @@ L_08932E28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932E40: @@ -6870,8 +8220,21 @@ L_08932E58: L_08932E60: aot_gpr_31 = (0x08932E68u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 613u, 0x08932E68u, 0x08954704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 113u, 0x08954704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932E68u) goto L_08932E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932E68: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_5 = (ctx.gpr[2] & 255u); @@ -6936,8 +8299,8 @@ L_08932ED4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932EE8: @@ -6959,8 +8322,21 @@ L_08932F00: L_08932F08: aot_gpr_31 = (0x08932F10u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 623u, 0x08932F10u, 0x08954778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 121u, 0x08954778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932F10u) goto L_08932F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932F10: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_5 = (ctx.gpr[2] & 255u); @@ -7025,15 +8401,15 @@ L_08932F7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932F90: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932F98: @@ -7047,8 +8423,21 @@ L_08932F98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08932FC0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 632u, 0x08932FC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08932FC0u) goto L_08932FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08932FC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -7063,8 +8452,8 @@ L_08932FC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08932FE8: @@ -7078,8 +8467,21 @@ L_08932FE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08933010u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 634u, 0x08933010u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933010u) goto L_08933010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933010: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7652))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -7163,8 +8565,8 @@ L_08933098: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089330B0: @@ -7178,8 +8580,21 @@ L_089330B0: aot_gpr_6 = (0u | 13u); aot_gpr_31 = (0x0893310Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 644u, 0x0893310Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893310Cu) goto L_0893310C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893310C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -7459,8 +8874,21 @@ L_089332F8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08933330u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 658u, 0x08933330u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933330u) goto L_08933330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933330: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7530,8 +8958,21 @@ L_08933384: ctx.gpr[7] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089333E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 662u, 0x089333E8u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089333E8u) goto L_089333E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089333E8: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7564,8 +9005,21 @@ L_089333E8: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08933438u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 663u, 0x08933438u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933438u) goto L_08933438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933438: { const bool branch_taken = ctx.gpr[23] != 0u; if (branch_taken) { @@ -7595,8 +9049,21 @@ L_08933440: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08933494u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 665u, 0x08933494u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933494u) goto L_08933494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933494: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[15]{}; @@ -7619,8 +9086,8 @@ L_08933494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089334DC: @@ -7634,8 +9101,21 @@ L_089334DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08933504u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 667u, 0x08933504u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933504u) goto L_08933504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933504: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -7657,8 +9137,21 @@ L_08933528: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08933534u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 671u, 0x08933534u, 0x0895439Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 77u, 0x0895439Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933534u) goto L_08933534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933534: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7669,8 +9162,8 @@ L_08933534: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893354C: @@ -7687,8 +9180,21 @@ L_0893354C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08933580u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 673u, 0x08933580u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933580u) goto L_08933580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933580: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7706,8 +9212,21 @@ L_08933594: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x089335A0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 676u, 0x089335A0u, 0x08954624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 104u, 0x08954624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089335A0u) goto L_089335A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089335A0: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; @@ -7740,8 +9259,8 @@ L_089335C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089335E8: @@ -7756,8 +9275,21 @@ L_089335E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08933614u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 681u, 0x08933614u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933614u) goto L_08933614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933614: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -7775,8 +9307,8 @@ L_08933624: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893363C: @@ -7793,8 +9325,21 @@ L_0893363C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08933670u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 684u, 0x08933670u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933670u) goto L_08933670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933670: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7814,8 +9359,21 @@ L_08933684: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08933698u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 687u, 0x08933698u, 0x089544E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 95u, 0x089544E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933698u) goto L_08933698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933698: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7837,8 +9395,8 @@ L_089336B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089336D0: @@ -7857,8 +9415,21 @@ L_089336D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x0893370Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 690u, 0x0893370Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893370Cu) goto L_0893370C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893370C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7878,8 +9449,21 @@ L_08933720: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08933734u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 693u, 0x08933734u, 0x089544E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 95u, 0x089544E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933734u) goto L_08933734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933734: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -7906,8 +9490,8 @@ L_0893375C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08933780: @@ -7919,8 +9503,21 @@ L_08933780: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089337A0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 696u, 0x089337A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089337A0u) goto L_089337A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089337A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -7952,8 +9549,8 @@ L_089337CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089337E0: @@ -7965,8 +9562,21 @@ L_089337E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08933800u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 701u, 0x08933800u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933800u) goto L_08933800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933800: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -7976,8 +9586,8 @@ L_08933800: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08933820: @@ -7993,8 +9603,21 @@ L_08933820: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_31); aot_gpr_31 = (0x08933850u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 703u, 0x08933850u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933850u) goto L_08933850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933850: ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -8118,8 +9741,21 @@ L_08933928: ctx.gpr[8] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x089339A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 713u, 0x089339A0u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089339A0u) goto L_089339A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089339A0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -8131,8 +9767,8 @@ L_089339A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089339BC: @@ -8146,8 +9782,21 @@ L_089339BC: aot_gpr_6 = (0u | 9u); aot_gpr_31 = (0x089339F4u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 715u, 0x089339F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089339F4u) goto L_089339F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089339F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -8402,8 +10051,21 @@ L_08933B70: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08933BD8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 728u, 0x08933BD8u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933BD8u) goto L_08933BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933BD8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8475,8 +10137,21 @@ L_08933C38: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08933C98u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 732u, 0x08933C98u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933C98u) goto L_08933C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933C98: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -8490,8 +10165,8 @@ L_08933C98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08933CBC: @@ -8503,8 +10178,21 @@ L_08933CBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08933CDCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 734u, 0x08933CDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933CDCu) goto L_08933CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933CDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -8513,8 +10201,8 @@ L_08933CDC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08933CF8: @@ -8572,8 +10260,8 @@ L_08933D6C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08933D7C: @@ -8619,8 +10307,21 @@ L_08933DCC: L_08933DD4: aot_gpr_31 = (0x08933DDCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 746u, 0x08933DDCu, 0x08A53394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 601u, 0x08A53394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933DDCu) goto L_08933DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933DDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); aot_gpr_4 = (aot_gpr_4 + static_cast(40)); @@ -8637,8 +10338,21 @@ L_08933DF4: goto L_08933DF8; L_08933DF8: aot_gpr_31 = (0x08933E00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 749u, 0x08933E00u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933E00u) goto L_08933E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933E00: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -8662,8 +10376,8 @@ L_08933E24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08933E38: @@ -8690,8 +10404,21 @@ L_08933E74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[18]); aot_gpr_31 = (0x08933E80u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 753u, 0x08933E80u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933E80u) goto L_08933E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933E80: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -8754,8 +10481,8 @@ L_08933EF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08933F0C: @@ -8834,8 +10561,21 @@ L_08933FA4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08933FB4u); aot_gpr_4 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 768u, 0x08933FB4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933FB4u) goto L_08933FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933FB4: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8848,8 +10588,21 @@ L_08933FB4: L_08933FC0: aot_gpr_31 = (0x08933FC8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 770u, 0x08933FC8u, 0x08AB33F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 850u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 850u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 850u, 0x08AB33F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933FC8u) goto L_08933FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933FC8: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_08933FCC; @@ -8866,8 +10619,21 @@ L_08933FCC: ctx.gpr[7] = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08933FFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0075->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0075_entry, 772u, 0x08933FFCu, 0x08B6B034u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 571u, 0x08B6B034u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08933FFCu) goto L_08933FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08933FFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); ctx.pc = 0x08934000u; AOT_REGCACHE_SYNC_OUT(); return; diff --git a/profiles/vcs/generated/generated_unit_0076.cpp b/profiles/vcs/generated/generated_unit_0076.cpp index 533423e..7aad026 100644 --- a/profiles/vcs/generated/generated_unit_0076.cpp +++ b/profiles/vcs/generated/generated_unit_0076.cpp @@ -1243,6 +1243,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08934000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1285,8 +1309,8 @@ L_0893402C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934048: @@ -1314,14 +1338,40 @@ L_08934084: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_31 = (0x08934090u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 6u, 0x08934090u, 0x088BB7D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 722u, 0x088BB7D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934090u) goto L_08934090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934090: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (0x0893409Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 7u, 0x0893409Cu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893409Cu) goto L_0893409C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893409C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1345,8 +1395,8 @@ L_089340C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089340D4: @@ -1464,8 +1514,21 @@ L_08934194: L_089341C0: aot_gpr_31 = (0x089341C8u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 25u, 0x089341C8u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089341C8u) goto L_089341C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089341C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -1528,8 +1591,21 @@ L_0893424C: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x08934260u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 31u, 0x08934260u, 0x08B6AA64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 462u, 0x08B6AA64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934260u) goto L_08934260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934260: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(8)); @@ -1567,8 +1643,21 @@ L_089342A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); aot_gpr_31 = (0x089342B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 35u, 0x089342B8u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089342B8u) goto L_089342B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089342B8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); @@ -1577,8 +1666,21 @@ L_089342B8: aot_gpr_6 = (ctx.gpr[7] + static_cast(8)); aot_gpr_31 = (0x089342D4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 36u, 0x089342D4u, 0x08B6AC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 484u, 0x08B6AC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089342D4u) goto L_089342D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089342D4: aot_gpr_4 = (aot_gpr_2 | 0u); if (aot_gpr_4 == 0u) { @@ -1620,8 +1722,8 @@ L_08934310: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934334: @@ -1635,8 +1737,8 @@ L_08934348: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934354: @@ -1649,8 +1751,21 @@ L_08934354: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08934378u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 44u, 0x08934378u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934378u) goto L_08934378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934378: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1678,8 +1793,8 @@ L_08934390: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089343AC: @@ -1701,8 +1816,8 @@ L_089343C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089343D8: @@ -1717,33 +1832,46 @@ L_089343D8: } L_089343EC: aot_gpr_31 = (0x089343F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 53u, 0x089343F4u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089343F4u) goto L_089343F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089343F4: aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934404: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893440C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934414: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893441C: @@ -1756,16 +1884,16 @@ L_0893442C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934438: aot_gpr_2 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4189), static_cast(aot_gpr_2)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934444: @@ -1774,8 +1902,21 @@ L_08934444: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08934458u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 61u, 0x08934458u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934458u) goto L_08934458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934458: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); ctx.gpr[16] = (2236u << 16u); @@ -1793,8 +1934,21 @@ L_08934468: L_08934470: aot_gpr_31 = (0x08934478u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 64u, 0x08934478u, 0x08954778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 121u, 0x08954778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934478u) goto L_08934478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934478: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1806,17 +1960,56 @@ L_08934480: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x0893448Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 66u, 0x0893448Cu, 0x089567C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 507u, 0x089567C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893448Cu) goto L_0893448C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893448C: aot_gpr_31 = (0x08934494u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 67u, 0x08934494u, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934494u) goto L_08934494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934494: aot_gpr_31 = (0x0893449Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 68u, 0x0893449Cu, 0x08ABEFDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 641u, 0x08ABEFDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893449Cu) goto L_0893449C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893449C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1827,15 +2020,28 @@ L_0893449C: L_089344A4: aot_gpr_31 = (0x089344ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 70u, 0x089344ACu, 0x08ABF048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 650u, 0x08ABF048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089344ACu) goto L_089344AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089344AC: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089344BC: @@ -1861,37 +2067,128 @@ L_089344E8: ctx.gpr[16] = (aot_gpr_4 + static_cast(31984)); aot_gpr_31 = (0x089344F8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 74u, 0x089344F8u, 0x08ABEE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 620u, 0x08ABEE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089344F8u) goto L_089344F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089344F8: aot_gpr_31 = (0x08934500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 75u, 0x08934500u, 0x0887F804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 746u, 0x0887F804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934500u) goto L_08934500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934500: aot_gpr_31 = (0x08934508u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 76u, 0x08934508u, 0x08AD3BD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 694u, 0x08AD3BD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934508u) goto L_08934508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934508: aot_gpr_31 = (0x08934510u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 77u, 0x08934510u, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934510u) goto L_08934510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934510: aot_gpr_31 = (0x08934518u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 78u, 0x08934518u, 0x08ABEE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 620u, 0x08ABEE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934518u) goto L_08934518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934518: aot_gpr_31 = (0x08934520u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 79u, 0x08934520u, 0x0887F804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 746u, 0x0887F804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934520u) goto L_08934520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934520: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19632), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08934530u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 80u, 0x08934530u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934530u) goto L_08934530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934530: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1908,8 +2205,8 @@ L_08934540: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934550: @@ -1925,20 +2222,59 @@ L_08934550: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08934580u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 84u, 0x08934580u, 0x089B9BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 336u, 0x089B9BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934580u) goto L_08934580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934580: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893458Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 85u, 0x0893458Cu, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893458Cu) goto L_0893458C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893458C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08934598u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 86u, 0x08934598u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934598u) goto L_08934598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934598: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1949,8 +2285,8 @@ L_08934598: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089345B0: @@ -1998,8 +2334,21 @@ L_08934608: L_08934614: aot_gpr_31 = (0x0893461Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 92u, 0x0893461Cu, 0x0890C798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 128u, 0x0890C798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893461Cu) goto L_0893461C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893461C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2011,8 +2360,21 @@ L_08934624: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08934630u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 94u, 0x08934630u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934630u) goto L_08934630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934630: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -2070,8 +2432,21 @@ L_0893468C: L_08934698: aot_gpr_31 = (0x089346A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 101u, 0x089346A0u, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089346A0u) goto L_089346A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089346A0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2083,8 +2458,21 @@ L_089346A8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089346B4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 103u, 0x089346B4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089346B4u) goto L_089346B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089346B4: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -2119,8 +2507,21 @@ L_089346EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089346FCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 107u, 0x089346FCu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089346FCu) goto L_089346FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089346FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2144,14 +2545,14 @@ L_0893470C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893472C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934734: @@ -2191,8 +2592,8 @@ L_08934784: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934794: @@ -2264,8 +2665,8 @@ L_08934814: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934828: @@ -2273,15 +2674,41 @@ L_08934828: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0893483Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 127u, 0x0893483Cu, 0x08871430u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 367u, 0x08871430u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893483Cu) goto L_0893483C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893483C: aot_gpr_31 = (0x08934844u); goto L_08934414; L_08934844: aot_gpr_31 = (0x0893484Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 129u, 0x0893484Cu, 0x08871438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 368u, 0x08871438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893484Cu) goto L_0893484C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893484C: aot_gpr_31 = (0x08934854u); goto L_08934404; @@ -2293,8 +2720,21 @@ L_0893485C: goto L_08934A1C; L_08934864: aot_gpr_31 = (0x0893486Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 133u, 0x0893486Cu, 0x0898B354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 819u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 819u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 819u, 0x0898B354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893486Cu) goto L_0893486C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893486C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7872))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2309,8 +2749,21 @@ L_08934878: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x08934888u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 135u, 0x08934888u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934888u) goto L_08934888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934888: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7864), 0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-1039), static_cast(0u)); @@ -2333,8 +2786,21 @@ L_089348AC: L_089348B0: aot_gpr_31 = (0x089348B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 139u, 0x089348B8u, 0x089C6D70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 630u, 0x089C6D70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089348B8u) goto L_089348B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089348B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2353,14 +2819,40 @@ L_089348CC: L_089348D0: aot_gpr_31 = (0x089348D8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 143u, 0x089348D8u, 0x089C6F58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 678u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 678u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 678u, 0x089C6F58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089348D8u) goto L_089348D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089348D8: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x089348E4u); aot_gpr_4 = (aot_gpr_4 + static_cast(14560)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 144u, 0x089348E4u, 0x088301F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 30u, 0x088301F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089348E4u) goto L_089348E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089348E4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-1040), static_cast(ctx.gpr[16])); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-1038), static_cast(0u)); @@ -2368,8 +2860,8 @@ L_089348E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089348FC: @@ -2381,8 +2873,21 @@ L_089348FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0893491Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(20160)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 146u, 0x0893491Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893491Cu) goto L_0893491C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893491C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2394,8 +2899,21 @@ L_0893491C: L_08934928: aot_gpr_31 = (0x08934930u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 148u, 0x08934930u, 0x08AFDA60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 315u, 0x08AFDA60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934930u) goto L_08934930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934930: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08934934; @@ -2407,8 +2925,21 @@ L_08934934: aot_gpr_5 = (aot_gpr_5 + static_cast(-11272)); aot_gpr_31 = (0x08934950u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-31072)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 150u, 0x08934950u, 0x08AFDEA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 376u, 0x08AFDEA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934950u) goto L_08934950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934950: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -2416,19 +2947,58 @@ L_08934950: ctx.gpr[7] = (0u + static_cast(-1)); aot_gpr_31 = (0x08934968u); aot_gpr_5 = (aot_gpr_5 + static_cast(-11220)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 151u, 0x08934968u, 0x08AFDEA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 376u, 0x08AFDEA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934968u) goto L_08934968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934968: aot_gpr_31 = (0x08934970u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 152u, 0x08934970u, 0x08AFDBC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 328u, 0x08AFDBC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934970u) goto L_08934970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934970: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0893497Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 153u, 0x0893497Cu, 0x08AFDA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 317u, 0x08AFDA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893497Cu) goto L_0893497C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893497C: aot_gpr_31 = (0x08934984u); ctx.pc = 0x08B7347Cu; @@ -2449,8 +3019,8 @@ L_08934990: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089349A8: @@ -2464,8 +3034,8 @@ L_089349BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089349C8: @@ -2515,14 +3085,14 @@ L_08934A10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934A1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934A24: @@ -2539,8 +3109,21 @@ L_08934A24: ctx.gpr[16] = (ctx.gpr[17] << 16u); ctx.gpr[16] = (static_cast(static_cast(ctx.gpr[16]) >> 16u)); aot_gpr_31 = (0x08934A78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 167u, 0x08934A78u, 0x08975D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 438u, 0x08975D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934A78u) goto L_08934A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934A78: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(ctx.gpr[23])); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1), static_cast(ctx.gpr[22])); @@ -2572,18 +3155,57 @@ L_08934A78: aot_fpr_12 = widen_horizontal_extent(aot_fpr_12); aot_gpr_31 = (0x08934AE4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 168u, 0x08934AE4u, 0x0893A7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 586u, 0x0893A7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934AE4u) goto L_08934AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934AE4: aot_gpr_31 = (0x08934AECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 169u, 0x08934AECu, 0x08946158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 394u, 0x08946158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934AECu) goto L_08934AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934AEC: aot_gpr_31 = (0x08934AF4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 170u, 0x08934AF4u, 0x089E1640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 276u, 0x089E1640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934AF4u) goto L_08934AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934AF4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2596,12 +3218,38 @@ L_08934AFC: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08934B0Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 172u, 0x08934B0Cu, 0x088908D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 130u, 0x088908D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934B0Cu) goto L_08934B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934B0C: aot_gpr_31 = (0x08934B14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 173u, 0x08934B14u, 0x08AF431Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 36u, 0x08AF431Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934B14u) goto L_08934B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934B14: { const bool branch_taken = ctx.gpr[16] != 0u; if (branch_taken) { @@ -2644,8 +3292,21 @@ L_08934B54: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08934B6Cu); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 178u, 0x08934B6Cu, 0x08AF5328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 138u, 0x08AF5328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934B6Cu) goto L_08934B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934B6C: aot_gpr_2 = (0u | 1u); goto L_08934B70; @@ -2664,8 +3325,8 @@ L_08934B70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934B9C: @@ -2703,8 +3364,21 @@ L_08934B9C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[20] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08934C44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 181u, 0x08934C44u, 0x08975D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 438u, 0x08975D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934C44u) goto L_08934C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934C44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_5 = (16355u << 16u); @@ -2714,18 +3388,57 @@ L_08934C44: aot_gpr_31 = (0x08934C60u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_fpr_12 = widen_horizontal_extent(aot_fpr_12); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 182u, 0x08934C60u, 0x0893A7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 586u, 0x0893A7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934C60u) goto L_08934C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934C60: aot_gpr_31 = (0x08934C68u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 183u, 0x08934C68u, 0x08946158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 394u, 0x08946158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934C68u) goto L_08934C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934C68: aot_gpr_31 = (0x08934C70u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 184u, 0x08934C70u, 0x089E1640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 276u, 0x089E1640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934C70u) goto L_08934C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934C70: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[17] = (2236u << 16u); @@ -2771,8 +3484,21 @@ L_08934CB8: } L_08934CC0: aot_gpr_31 = (0x08934CC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 189u, 0x08934CC8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934CC8u) goto L_08934CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934CC8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2782,8 +3508,21 @@ L_08934CC8: } L_08934CD0: aot_gpr_31 = (0x08934CD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 191u, 0x08934CD8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934CD8u) goto L_08934CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934CD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); aot_gpr_5 = (0u | 4u); @@ -2816,8 +3555,21 @@ L_08934CFC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08934D08u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 196u, 0x08934D08u, 0x088908D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 130u, 0x088908D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934D08u) goto L_08934D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934D08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2829,13 +3581,39 @@ L_08934D10: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08934D1Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 198u, 0x08934D1Cu, 0x088908D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 130u, 0x088908D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934D1Cu) goto L_08934D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934D1C: aot_gpr_31 = (0x08934D24u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 199u, 0x08934D24u, 0x08A1D628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 270u, 0x08A1D628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934D24u) goto L_08934D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934D24: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1360))); aot_gpr_31 = (0x08934D30u); @@ -2857,8 +3635,21 @@ L_08934D3C: ctx.gpr[9] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08934D5Cu); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 202u, 0x08934D5Cu, 0x0888DF50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 374u, 0x0888DF50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934D5Cu) goto L_08934D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934D5C: aot_gpr_2 = (0u | 1u); goto L_08934D60; @@ -2879,22 +3670,35 @@ L_08934D60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934D94: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08934DA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 205u, 0x08934DA4u, 0x0888CE54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 251u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 251u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 251u, 0x0888CE54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934DA4u) goto L_08934DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934DA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934DB0: @@ -2902,8 +3706,21 @@ L_08934DB0: { const std::uint32_t aot_run_words[3]{ctx.gpr[16], ctx.gpr[17], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08934DC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 207u, 0x08934DC8u, 0x08A071F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 744u, 0x08A071F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934DC8u) goto L_08934DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934DC8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2948,8 +3765,21 @@ L_08934E04: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08934E10u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 213u, 0x08934E10u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934E10u) goto L_08934E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934E10: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2972,8 +3802,21 @@ L_08934E28: L_08934E2C: aot_gpr_31 = (0x08934E34u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 218u, 0x08934E34u, 0x089F6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 411u, 0x089F6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934E34u) goto L_08934E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934E34: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2994,8 +3837,21 @@ L_08934E48: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08934E54u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 221u, 0x08934E54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934E54u) goto L_08934E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934E54: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3019,8 +3875,21 @@ L_08934E6C: L_08934E74: aot_gpr_31 = (0x08934E7Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 226u, 0x08934E7Cu, 0x089F64FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 441u, 0x089F64FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934E7Cu) goto L_08934E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934E7C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3054,8 +3923,21 @@ L_08934EA4: } L_08934EAC: aot_gpr_31 = (0x08934EB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 231u, 0x08934EB4u, 0x08939298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 302u, 0x08939298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934EB4u) goto L_08934EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934EB4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3082,12 +3964,38 @@ L_08934EDC: } L_08934EE4: aot_gpr_31 = (0x08934EECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 235u, 0x08934EECu, 0x08AF431Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 36u, 0x08AF431Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934EECu) goto L_08934EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934EEC: aot_gpr_31 = (0x08934EF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 236u, 0x08934EF4u, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934EF4u) goto L_08934EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934EF4: aot_gpr_31 = (0x08934EFCu); goto L_08936F58; @@ -3114,8 +4022,8 @@ L_08934F14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08934F28: @@ -3134,8 +4042,21 @@ L_08934F40: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08934F4Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 243u, 0x08934F4Cu, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934F4Cu) goto L_08934F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934F4C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3189,8 +4110,21 @@ L_08934FBC: goto L_08934FC0; L_08934FC0: aot_gpr_31 = (0x08934FC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 250u, 0x08934FC8u, 0x08932C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 590u, 0x08932C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08934FC8u) goto L_08934FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08934FC8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3226,8 +4160,21 @@ L_08934FF8: L_08935000: aot_gpr_31 = (0x08935008u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 255u, 0x08935008u, 0x08954778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 121u, 0x08954778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935008u) goto L_08935008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935008: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); @@ -3255,35 +4202,74 @@ L_08935024: goto L_08935034; L_08935034: aot_gpr_31 = (0x0893503Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 259u, 0x0893503Cu, 0x08890618u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 97u, 0x08890618u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893503Cu) goto L_0893503C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893503C: aot_gpr_31 = (0x08935044u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 260u, 0x08935044u, 0x089E1620u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 274u, 0x089E1620u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935044u) goto L_08935044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935044: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935054: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893505C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0893506Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 263u, 0x0893506Cu, 0x089E17DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 312u, 0x089E17DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893506Cu) goto L_0893506C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893506C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3293,8 +4279,21 @@ L_0893506C: } L_08935074: aot_gpr_31 = (0x0893507Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 265u, 0x0893507Cu, 0x08AC2FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 710u, 0x08AC2FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893507Cu) goto L_0893507C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893507C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3309,15 +4308,15 @@ L_08935088: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935094: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19682))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893509C: @@ -3340,8 +4339,21 @@ L_089350C4: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-19592)); aot_gpr_31 = (0x089350D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 271u, 0x089350D8u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089350D8u) goto L_089350D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089350D8: ctx.gpr[20] = (2237u << 16u); ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -3371,8 +4383,21 @@ L_089350F4: L_089350FC: aot_gpr_31 = (0x08935104u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 275u, 0x08935104u, 0x08AAEBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 571u, 0x08AAEBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935104u) goto L_08935104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935104: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08935108; @@ -3440,8 +4465,21 @@ L_08935164: L_0893516C: aot_gpr_31 = (0x08935174u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 285u, 0x08935174u, 0x08A65A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 359u, 0x08A65A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935174u) goto L_08935174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935174: aot_gpr_5 = (aot_gpr_2 | 0u); goto L_08935178; @@ -3489,8 +4527,21 @@ L_089351C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x089351D4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 293u, 0x089351D4u, 0x08AAF4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 725u, 0x08AAF4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089351D4u) goto L_089351D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089351D4: if (static_cast(ctx.gpr[19]) < 0) { ctx.gpr[19] = (0u | 0u); @@ -3545,21 +4596,60 @@ L_0893521C: L_08935230: aot_gpr_31 = (0x08935238u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 301u, 0x08935238u, 0x08A6598Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 351u, 0x08A6598Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935238u) goto L_08935238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935238: aot_gpr_31 = (0x08935240u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 302u, 0x08935240u, 0x08A65B34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 377u, 0x08A65B34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935240u) goto L_08935240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935240: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-19652), aot_gpr_2); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08935254u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 303u, 0x08935254u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935254u) goto L_08935254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935254: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); { const bool branch_taken = ctx.gpr[16] == ctx.gpr[18]; @@ -3588,8 +4678,21 @@ L_08935278: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08935284u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 307u, 0x08935284u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935284u) goto L_08935284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935284: aot_gpr_31 = (0x0893528Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -3616,8 +4719,21 @@ L_089352A4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x089352B0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 311u, 0x089352B0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089352B0u) goto L_089352B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089352B0: aot_gpr_31 = (0x089352B8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -3626,8 +4742,21 @@ L_089352B0: L_089352B8: aot_gpr_31 = (0x089352C0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 313u, 0x089352C0u, 0x0882E9E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 616u, 0x0882E9E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089352C0u) goto L_089352C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089352C0: aot_gpr_2 = (ctx.gpr[17] | 0u); goto L_089352C4; @@ -3643,8 +4772,8 @@ L_089352C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089352E4: @@ -3654,8 +4783,21 @@ L_089352E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089352FCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19592)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 316u, 0x089352FCu, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089352FCu) goto L_089352FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089352FC: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -3727,27 +4869,66 @@ L_08935368: } L_08935370: aot_gpr_31 = (0x08935378u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 326u, 0x08935378u, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935378u) goto L_08935378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935378: aot_gpr_4 = (ctx.gpr[28] + static_cast(-19652)); aot_gpr_31 = (0x08935384u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 327u, 0x08935384u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935384u) goto L_08935384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935384: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-19652), 0u); aot_gpr_31 = (0x08935390u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 328u, 0x08935390u, 0x08AAEEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 621u, 0x08AAEEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935390u) goto L_08935390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935390: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089353A0: @@ -3832,8 +5013,8 @@ L_08935460: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935474: @@ -3841,16 +5022,16 @@ L_08935474: aot_gpr_4 = (aot_gpr_4 + static_cast(-9176)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935484: aot_fpr_12 = std::bit_cast(0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-19668), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935490: @@ -3906,8 +5087,21 @@ L_08935548: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08935558u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 344u, 0x08935558u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935558u) goto L_08935558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935558: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3947,8 +5141,21 @@ L_089355C8: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089355D8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 347u, 0x089355D8u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089355D8u) goto L_089355D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089355D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3991,8 +5198,21 @@ L_08935654: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08935664u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 350u, 0x08935664u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935664u) goto L_08935664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935664: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4029,8 +5249,21 @@ L_089356C8: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089356D8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 353u, 0x089356D8u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089356D8u) goto L_089356D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089356D8: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -4046,15 +5279,15 @@ L_089356D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935704: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-19648), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893570C: @@ -4112,8 +5345,21 @@ L_08935778: aot_gpr_5 = (ctx.gpr[28] + static_cast(-19520)); aot_gpr_31 = (0x08935784u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 362u, 0x08935784u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935784u) goto L_08935784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935784: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4151,12 +5397,38 @@ L_089357BC: L_089357C4: aot_gpr_31 = (0x089357CCu); ctx.gpr[21] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 368u, 0x089357CCu, 0x08AF431Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 36u, 0x08AF431Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089357CCu) goto L_089357CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089357CC: aot_gpr_31 = (0x089357D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 369u, 0x089357D4u, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089357D4u) goto L_089357D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089357D4: aot_gpr_5 = (17392u << 16u); ctx.fpr[20] = std::bit_cast(0u); @@ -4221,8 +5493,21 @@ L_08935854: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08935864u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 377u, 0x08935864u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935864u) goto L_08935864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935864: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-19648))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4267,8 +5552,21 @@ L_089358A4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089358B0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 384u, 0x089358B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089358B0u) goto L_089358B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089358B0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4292,8 +5590,21 @@ L_089358C8: L_089358D0: aot_gpr_31 = (0x089358D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 389u, 0x089358D8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089358D8u) goto L_089358D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089358D8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -4328,8 +5639,21 @@ L_08935904: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08935910u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 394u, 0x08935910u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935910u) goto L_08935910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935910: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4353,8 +5677,21 @@ L_08935928: L_08935930: aot_gpr_31 = (0x08935938u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 399u, 0x08935938u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935938u) goto L_08935938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935938: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -4390,8 +5727,21 @@ L_08935968: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08935974u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 404u, 0x08935974u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935974u) goto L_08935974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935974: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4415,8 +5765,21 @@ L_0893598C: L_08935994: aot_gpr_31 = (0x0893599Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 409u, 0x0893599Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893599Cu) goto L_0893599C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893599C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -4437,8 +5800,21 @@ L_089359B8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089359C4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 412u, 0x089359C4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089359C4u) goto L_089359C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089359C4: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4462,8 +5838,21 @@ L_089359DC: L_089359E4: aot_gpr_31 = (0x089359ECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 417u, 0x089359ECu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089359ECu) goto L_089359EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089359EC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -4552,8 +5941,8 @@ L_08935A7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935AA4: @@ -4574,8 +5963,21 @@ L_08935AC8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08935AE0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 433u, 0x08935AE0u, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935AE0u) goto L_08935AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935AE0: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4590,13 +5992,39 @@ L_08935AEC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08935B00u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 435u, 0x08935B00u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935B00u) goto L_08935B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935B00: aot_gpr_31 = (0x08935B08u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 436u, 0x08935B08u, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935B08u) goto L_08935B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935B08: aot_gpr_31 = (0x08935B10u); ctx.pc = 0x08B73224u; @@ -4620,20 +6048,59 @@ L_08935B30: } L_08935B38: aot_gpr_31 = (0x08935B40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 440u, 0x08935B40u, 0x08AF431Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 36u, 0x08AF431Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935B40u) goto L_08935B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935B40: aot_gpr_31 = (0x08935B48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 441u, 0x08935B48u, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935B48u) goto L_08935B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935B48: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (16256u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08935B5Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 442u, 0x08935B5Cu, 0x08B217D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 283u, 0x08B217D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935B5Cu) goto L_08935B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935B5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); @@ -4673,20 +6140,59 @@ L_08935B5C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08935BF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 443u, 0x08935BF4u, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935BF4u) goto L_08935BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935BF4: aot_gpr_31 = (0x08935BFCu); aot_gpr_4 = (0u | 0u); goto L_08934F28; L_08935BFC: aot_gpr_31 = (0x08935C04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 445u, 0x08935C04u, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935C04u) goto L_08935C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935C04: aot_gpr_31 = (0x08935C0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 446u, 0x08935C0Cu, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935C0Cu) goto L_08935C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935C0C: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -4713,13 +6219,39 @@ L_08935C24: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08935C34u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 450u, 0x08935C34u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935C34u) goto L_08935C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935C34: aot_gpr_31 = (0x08935C3Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 451u, 0x08935C3Cu, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935C3Cu) goto L_08935C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935C3C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4730,14 +6262,14 @@ L_08935C3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935C54: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935C5C: @@ -4834,25 +6366,77 @@ L_08935CFC: } L_08935D04: aot_gpr_31 = (0x08935D0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 467u, 0x08935D0Cu, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935D0Cu) goto L_08935D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935D0C: ctx.gpr[16] = (0u | 0u); goto L_08935D10; L_08935D10: aot_gpr_31 = (0x08935D18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 469u, 0x08935D18u, 0x0898B448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 829u, 0x0898B448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935D18u) goto L_08935D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935D18: aot_gpr_31 = (0x08935D20u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 470u, 0x08935D20u, 0x08890F48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 157u, 0x08890F48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935D20u) goto L_08935D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935D20: aot_gpr_31 = (0x08935D28u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 471u, 0x08935D28u, 0x08890618u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 97u, 0x08890618u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935D28u) goto L_08935D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935D28: aot_gpr_31 = (0x08935D30u); aot_gpr_4 = (0u | 1u); @@ -4980,14 +6564,14 @@ L_08935E0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935E20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08935E28: @@ -4996,8 +6580,21 @@ L_08935E28: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08935E4Cu); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19672), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 490u, 0x08935E4Cu, 0x08AB5FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 536u, 0x08AB5FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935E4Cu) goto L_08935E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935E4C: ctx.gpr[18] = (0u | 1u); ctx.gpr[17] = (0u | 1u); @@ -5022,8 +6619,21 @@ L_08935E64: goto L_0893570C; L_08935E7C: aot_gpr_31 = (0x08935E84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 494u, 0x08935E84u, 0x08AB5F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 525u, 0x08AB5F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935E84u) goto L_08935E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935E84: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19672))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5086,8 +6696,21 @@ L_08935EE8: } L_08935F04: aot_gpr_31 = (0x08935F0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 503u, 0x08935F0Cu, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935F0Cu) goto L_08935F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935F0C: aot_gpr_31 = (0x08935F14u); aot_gpr_4 = (0u | 1000u); @@ -5117,14 +6740,40 @@ L_08935F3C: goto L_08935704; L_08935F44: aot_gpr_31 = (0x08935F4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 508u, 0x08935F4Cu, 0x08A11120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 113u, 0x08A11120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935F4Cu) goto L_08935F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935F4C: aot_gpr_4 = (2232u << 16u); aot_gpr_31 = (0x08935F58u); aot_gpr_4 = (aot_gpr_4 + static_cast(-11116)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 509u, 0x08935F58u, 0x08AC3E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 1044u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 1044u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 1044u, 0x08AC3E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935F58u) goto L_08935F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935F58: aot_gpr_4 = (ctx.gpr[28] + static_cast(-19420)); aot_gpr_5 = (0u | 0u); @@ -5153,13 +6802,39 @@ L_08935F88: goto L_0893509C; L_08935F90: aot_gpr_31 = (0x08935F98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 515u, 0x08935F98u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935F98u) goto L_08935F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935F98: aot_gpr_31 = (0x08935FA0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 516u, 0x08935FA0u, 0x08809E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 405u, 0x08809E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935FA0u) goto L_08935FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935FA0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); goto L_08935FA4; @@ -5222,26 +6897,91 @@ L_08935FEC: } L_08935FF4: aot_gpr_31 = (0x08935FFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 528u, 0x08935FFCu, 0x0898B7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 888u, 0x0898B7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08935FFCu) goto L_08935FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08935FFC: aot_gpr_31 = (0x08936004u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 529u, 0x08936004u, 0x0898B4F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 844u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 844u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 844u, 0x0898B4F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936004u) goto L_08936004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936004: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08936010u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 530u, 0x08936010u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936010u) goto L_08936010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936010: aot_gpr_31 = (0x08936018u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 531u, 0x08936018u, 0x08AC3168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 746u, 0x08AC3168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936018u) goto L_08936018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936018: aot_gpr_31 = (0x08936020u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 532u, 0x08936020u, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936020u) goto L_08936020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936020: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4212))); { const bool branch_taken = aot_gpr_5 == ctx.gpr[18]; @@ -5271,15 +7011,41 @@ L_0893603C: goto L_08936044; L_08936044: aot_gpr_31 = (0x0893604Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 537u, 0x0893604Cu, 0x08AC327Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 772u, 0x08AC327Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893604Cu) goto L_0893604C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893604C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4212), static_cast(0u)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0893605Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 538u, 0x0893605Cu, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893605Cu) goto L_0893605C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893605C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); @@ -5291,8 +7057,21 @@ L_0893605C: L_08936064: aot_gpr_31 = (0x0893606Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 540u, 0x0893606Cu, 0x08A05EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 493u, 0x08A05EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893606Cu) goto L_0893606C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893606C: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5305,16 +7084,29 @@ L_0893606C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893608C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0893609Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 542u, 0x0893609Cu, 0x0888D05Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 260u, 0x0888D05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893609Cu) goto L_0893609C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893609C: aot_gpr_31 = (0x089360A4u); goto L_08934D94; @@ -5335,16 +7127,55 @@ L_089360B8: goto L_089360BC; L_089360BC: aot_gpr_31 = (0x089360C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 547u, 0x089360C4u, 0x08805D18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 200u, 0x08805D18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089360C4u) goto L_089360C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089360C4: aot_gpr_31 = (0x089360CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 548u, 0x089360CCu, 0x08805310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 158u, 0x08805310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089360CCu) goto L_089360CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089360CC: aot_gpr_31 = (0x089360D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 549u, 0x089360D4u, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089360D4u) goto L_089360D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089360D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5362,12 +7193,38 @@ L_089360E8: goto L_089360EC; L_089360EC: aot_gpr_31 = (0x089360F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 553u, 0x089360F4u, 0x08805630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 199u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 199u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 199u, 0x08805630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089360F4u) goto L_089360F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089360F4: aot_gpr_31 = (0x089360FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 554u, 0x089360FCu, 0x08A7A300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 450u, 0x08A7A300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089360FCu) goto L_089360FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089360FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5385,56 +7242,173 @@ L_08936110: goto L_08936114; L_08936114: aot_gpr_31 = (0x0893611Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 558u, 0x0893611Cu, 0x08805F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 215u, 0x08805F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893611Cu) goto L_0893611C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893611C: aot_gpr_31 = (0x08936124u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 559u, 0x08936124u, 0x08944FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 136u, 0x08944FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936124u) goto L_08936124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936124: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08936130: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08936138: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08936148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 562u, 0x08936148u, 0x088277C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 520u, 0x088277C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936148u) goto L_08936148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936148: aot_gpr_31 = (0x08936150u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 563u, 0x08936150u, 0x08A96B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 410u, 0x08A96B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936150u) goto L_08936150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936150: aot_gpr_31 = (0x08936158u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 564u, 0x08936158u, 0x08A7BB14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 793u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 793u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 793u, 0x08A7BB14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936158u) goto L_08936158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936158: aot_gpr_31 = (0x08936160u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 565u, 0x08936160u, 0x08A98334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 35u, 0x08A98334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936160u) goto L_08936160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936160: aot_gpr_31 = (0x08936168u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 566u, 0x08936168u, 0x08B201E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 29u, 0x08B201E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936168u) goto L_08936168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936168: aot_gpr_31 = (0x08936170u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 567u, 0x08936170u, 0x08A9100Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 134u, 0x08A9100Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936170u) goto L_08936170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936170: aot_gpr_31 = (0x08936178u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 568u, 0x08936178u, 0x08A7A94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 540u, 0x08A7A94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936178u) goto L_08936178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936178: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); if (aot_gpr_4 != 0u) { @@ -5452,8 +7426,21 @@ L_0893618C: L_08936190: aot_gpr_31 = (0x08936198u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 572u, 0x08936198u, 0x08958D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 127u, 0x08958D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936198u) goto L_08936198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936198: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5469,24 +7456,89 @@ L_089361A4: L_089361AC: aot_gpr_31 = (0x089361B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 575u, 0x089361B4u, 0x08805630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 199u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 199u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 199u, 0x08805630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089361B4u) goto L_089361B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089361B4: aot_gpr_31 = (0x089361BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 576u, 0x089361BCu, 0x08A7ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 592u, 0x08A7ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089361BCu) goto L_089361BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089361BC: aot_gpr_31 = (0x089361C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 577u, 0x089361C4u, 0x08944FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 136u, 0x08944FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089361C4u) goto L_089361C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089361C4: aot_gpr_31 = (0x089361CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 578u, 0x089361CCu, 0x08AFD054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 193u, 0x08AFD054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089361CCu) goto L_089361CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089361CC: aot_gpr_31 = (0x089361D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 579u, 0x089361D4u, 0x089832B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 605u, 0x089832B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089361D4u) goto L_089361D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089361D4: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(29552))); @@ -5498,50 +7550,180 @@ L_089361D4: aot_gpr_5 = (aot_gpr_6 + static_cast(4)); aot_gpr_31 = (0x089361FCu); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(29552), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 580u, 0x089361FCu, 0x08A8626Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 332u, 0x08A8626Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089361FCu) goto L_089361FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089361FC: aot_gpr_31 = (0x08936204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 581u, 0x08936204u, 0x089CF240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 567u, 0x089CF240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936204u) goto L_08936204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936204: aot_gpr_31 = (0x0893620Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 582u, 0x0893620Cu, 0x088ABE04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 608u, 0x088ABE04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893620Cu) goto L_0893620C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893620C: aot_gpr_31 = (0x08936214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 583u, 0x08936214u, 0x0893FA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 823u, 0x0893FA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936214u) goto L_08936214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936214: aot_gpr_31 = (0x0893621Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 584u, 0x0893621Cu, 0x0898231Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 470u, 0x0898231Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893621Cu) goto L_0893621C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893621C: aot_gpr_31 = (0x08936224u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 585u, 0x08936224u, 0x089023F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 426u, 0x089023F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936224u) goto L_08936224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936224: aot_gpr_31 = (0x0893622Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 586u, 0x0893622Cu, 0x08A17A18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 607u, 0x08A17A18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893622Cu) goto L_0893622C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893622C: aot_gpr_31 = (0x08936234u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 587u, 0x08936234u, 0x08B261A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 448u, 0x08B261A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936234u) goto L_08936234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936234: aot_gpr_31 = (0x0893623Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 588u, 0x0893623Cu, 0x0895CF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 120u, 0x0895CF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893623Cu) goto L_0893623C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893623C: aot_gpr_31 = (0x08936244u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 589u, 0x08936244u, 0x08A7A5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 484u, 0x08A7A5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936244u) goto L_08936244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936244: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08936250: @@ -5590,12 +7772,38 @@ L_089362B0: } L_089362C0: aot_gpr_31 = (0x089362C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 597u, 0x089362C8u, 0x088B01E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 19u, 0x088B01E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089362C8u) goto L_089362C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089362C8: aot_gpr_31 = (0x089362D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 598u, 0x089362D0u, 0x088F6E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 600u, 0x088F6E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089362D0u) goto L_089362D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089362D0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(2052))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5607,8 +7815,21 @@ L_089362D0: L_089362DC: aot_gpr_31 = (0x089362E4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 600u, 0x089362E4u, 0x08A1BF34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 616u, 0x08A1BF34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089362E4u) goto L_089362E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089362E4: ctx.gpr[18] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089362F0u); @@ -5786,8 +8007,21 @@ L_08936418: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08936428u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 623u, 0x08936428u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936428u) goto L_08936428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936428: aot_gpr_5 = (17305u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -5803,8 +8037,21 @@ L_08936444: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08936454u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 625u, 0x08936454u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936454u) goto L_08936454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936454: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5828,8 +8075,21 @@ L_0893647C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0893648Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 628u, 0x0893648Cu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893648Cu) goto L_0893648C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893648C: aot_gpr_5 = (17325u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -5845,8 +8105,21 @@ L_089364A8: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089364B8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 630u, 0x089364B8u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089364B8u) goto L_089364B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089364B8: aot_gpr_5 = (16880u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -5862,8 +8135,21 @@ L_089364D4: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089364E4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 632u, 0x089364E4u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089364E4u) goto L_089364E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089364E4: aot_gpr_5 = (17377u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -5879,14 +8165,40 @@ L_08936500: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08936510u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 634u, 0x08936510u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936510u) goto L_08936510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936510: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x0893651Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 635u, 0x0893651Cu, 0x0888AC84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 748u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 748u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 748u, 0x0888AC84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893651Cu) goto L_0893651C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893651C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5902,8 +8214,21 @@ L_08936528: L_08936530: aot_gpr_31 = (0x08936538u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 638u, 0x08936538u, 0x0886DADCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 275u, 0x0886DADCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936538u) goto L_08936538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936538: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5921,8 +8246,21 @@ L_0893654C: goto L_08936550; L_08936550: aot_gpr_31 = (0x08936558u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 642u, 0x08936558u, 0x089BA6ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 480u, 0x089BA6ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936558u) goto L_08936558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936558: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-24904))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5933,30 +8271,108 @@ L_08936558: } L_08936564: aot_gpr_31 = (0x0893656Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 644u, 0x0893656Cu, 0x088B01E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 19u, 0x088B01E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893656Cu) goto L_0893656C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893656C: aot_gpr_4 = (2240u << 16u); aot_gpr_31 = (0x08936578u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 645u, 0x08936578u, 0x08AA3A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 891u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 891u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 891u, 0x08AA3A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936578u) goto L_08936578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936578: aot_gpr_31 = (0x08936580u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 646u, 0x08936580u, 0x08AB8E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 187u, 0x08AB8E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936580u) goto L_08936580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936580: aot_gpr_31 = (0x08936588u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 647u, 0x08936588u, 0x08A367F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 643u, 0x08A367F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936588u) goto L_08936588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936588: aot_gpr_31 = (0x08936590u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 648u, 0x08936590u, 0x0896D128u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 294u, 0x0896D128u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936590u) goto L_08936590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936590: aot_gpr_31 = (0x08936598u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 649u, 0x08936598u, 0x0898B4F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 845u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 845u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 845u, 0x0898B4F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936598u) goto L_08936598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936598: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(52), aot_run_words); @@ -5970,8 +8386,8 @@ L_08936598: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089365BC: @@ -5992,8 +8408,21 @@ L_089365D8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x089365E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 652u, 0x089365E8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089365E8u) goto L_089365E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089365E8: aot_gpr_31 = (0x089365F0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -6002,8 +8431,21 @@ L_089365E8: L_089365F0: aot_gpr_31 = (0x089365F8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 654u, 0x089365F8u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089365F8u) goto L_089365F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089365F8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6024,8 +8466,21 @@ L_0893660C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08936618u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 657u, 0x08936618u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936618u) goto L_08936618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936618: aot_gpr_31 = (0x08936620u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -6034,8 +8489,21 @@ L_08936618: L_08936620: aot_gpr_31 = (0x08936628u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 659u, 0x08936628u, 0x0882E518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 524u, 0x0882E518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936628u) goto L_08936628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936628: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6051,8 +8519,21 @@ L_08936634: L_0893663C: aot_gpr_31 = (0x08936644u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 662u, 0x08936644u, 0x089C6D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 631u, 0x089C6D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936644u) goto L_08936644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936644: aot_gpr_4 = (aot_gpr_2 + static_cast(-128)); aot_gpr_4 = (aot_gpr_4 >> 1u); @@ -6103,15 +8584,28 @@ L_089366B8: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089366C8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 667u, 0x089366C8u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089366C8u) goto L_089366C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089366C8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089366D8: @@ -6139,8 +8633,21 @@ L_089366F8: L_08936700: aot_gpr_31 = (0x08936708u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 672u, 0x08936708u, 0x089BDF2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 403u, 0x089BDF2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936708u) goto L_08936708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936708: aot_gpr_31 = (0x08936710u); goto L_089372C0; @@ -6148,8 +8655,8 @@ L_08936710: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893671C: @@ -6168,18 +8675,44 @@ L_08936730: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-11072))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08936748: aot_gpr_31 = (0x08936750u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 677u, 0x08936750u, 0x08AC2FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 708u, 0x08AC2FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936750u) goto L_08936750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936750: aot_gpr_31 = (0x08936758u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 678u, 0x08936758u, 0x089E18E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 339u, 0x089E18E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936758u) goto L_08936758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936758: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6225,8 +8758,21 @@ L_08936770: aot_gpr_31 = (0x089367B8u); aot_fpr_13 = get_effective_aspect_ratio(std::bit_cast(aot_gpr_6)); aot_fpr_12 = widen_horizontal_extent(aot_fpr_12); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 682u, 0x089367B8u, 0x0893A7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 586u, 0x0893A7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089367B8u) goto L_089367B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089367B8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -6296,16 +8842,16 @@ L_08936804: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08936810: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19660), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19681), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893681C: @@ -6336,15 +8882,15 @@ L_08936850: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893685C: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08936864: @@ -6354,8 +8900,8 @@ L_08936864: { const float fs = aot_fpr_14; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[0] = std::bit_cast(0x7FC00000u); else ctx.fpr[0] = fs * ft; } ctx.fpr[0] = aot_fpr_12 - ctx.fpr[0]; jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08936880: @@ -6363,8 +8909,21 @@ L_08936880: { const std::uint32_t aot_run_words[3]{ctx.gpr[16], ctx.gpr[17], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(768), aot_run_words); } aot_gpr_31 = (0x08936898u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 701u, 0x08936898u, 0x08B3AE5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 815u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 815u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 815u, 0x08B3AE5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936898u) goto L_08936898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936898: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(3688), static_cast(0u)); ctx.gpr[8] = (ctx.fcr31); @@ -6448,8 +9007,21 @@ L_08936918: AOT_REGCACHE_SYNC_OUT(); return; L_08936920: aot_gpr_31 = (0x08936928u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 715u, 0x08936928u, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936928u) goto L_08936928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936928: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6484,8 +9056,21 @@ L_08936948: AOT_REGCACHE_SYNC_OUT(); return; L_0893695C: aot_gpr_31 = (0x08936964u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 721u, 0x08936964u, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936964u) goto L_08936964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936964: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6511,8 +9096,21 @@ L_08936980: AOT_REGCACHE_SYNC_OUT(); return; L_08936988: aot_gpr_31 = (0x08936990u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 726u, 0x08936990u, 0x08B60838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 96u, 0x08B60838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936990u) goto L_08936990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936990: aot_gpr_4 = (2236u << 16u); ctx.gpr[16] = (aot_gpr_4 + static_cast(25856)); @@ -6520,132 +9118,366 @@ L_08936990: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x089369A8u); aot_gpr_6 = (0u | 8192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 727u, 0x089369A8u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089369A8u) goto L_089369A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089369A8: aot_gpr_6 = (1u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x089369BCu); aot_gpr_6 = (aot_gpr_6 + static_cast(1024)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 728u, 0x089369BCu, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089369BCu) goto L_089369BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089369BC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 12u); aot_gpr_31 = (0x089369CCu); aot_gpr_6 = (0u | 6144u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 729u, 0x089369CCu, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089369CCu) goto L_089369CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089369CC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x089369DCu); aot_gpr_6 = (0u | 6144u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 730u, 0x089369DCu, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089369DCu) goto L_089369DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089369DC: aot_gpr_6 = (2u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 24u); aot_gpr_31 = (0x089369F0u); aot_gpr_6 = (aot_gpr_6 + static_cast(-11264)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 731u, 0x089369F0u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089369F0u) goto L_089369F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089369F0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 32u); aot_gpr_31 = (0x08936A00u); aot_gpr_6 = (0u | 11264u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 732u, 0x08936A00u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A00u) goto L_08936A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A00: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 40u); aot_gpr_31 = (0x08936A10u); aot_gpr_6 = (0u | 1024u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 733u, 0x08936A10u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A10u) goto L_08936A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A10: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 48u); aot_gpr_31 = (0x08936A20u); aot_gpr_6 = (0u | 3072u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 734u, 0x08936A20u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A20u) goto L_08936A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A20: aot_gpr_6 = (0u | 46080u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08936A30u); aot_gpr_5 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 735u, 0x08936A30u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A30u) goto L_08936A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A30: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 64u); aot_gpr_31 = (0x08936A40u); aot_gpr_6 = (0u | 1024u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 736u, 0x08936A40u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A40u) goto L_08936A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A40: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 80u); aot_gpr_31 = (0x08936A50u); aot_gpr_6 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 737u, 0x08936A50u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A50u) goto L_08936A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 96u); aot_gpr_31 = (0x08936A60u); aot_gpr_6 = (0u | 2048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 738u, 0x08936A60u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A60u) goto L_08936A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A60: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 112u); aot_gpr_31 = (0x08936A70u); aot_gpr_6 = (0u | 30720u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 739u, 0x08936A70u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A70u) goto L_08936A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A70: aot_gpr_6 = (3u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 176u); aot_gpr_31 = (0x08936A84u); aot_gpr_6 = (aot_gpr_6 + static_cast(8192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 740u, 0x08936A84u, 0x08ABF268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 681u, 0x08ABF268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A84u) goto L_08936A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A84: aot_gpr_4 = (2236u << 16u); ctx.gpr[17] = (aot_gpr_4 + static_cast(29232)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08936A98u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 741u, 0x08936A98u, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936A98u) goto L_08936A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936A98: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (2195u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); aot_gpr_31 = (0x08936AACu); aot_gpr_5 = (aot_gpr_5 + static_cast(17596)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 742u, 0x08936AACu, 0x08ABF324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 690u, 0x08ABF324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936AACu) goto L_08936AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936AAC: aot_gpr_5 = (2195u << 16u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08936ABCu); aot_gpr_5 = (aot_gpr_5 + static_cast(17744)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 743u, 0x08936ABCu, 0x08ABF324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 690u, 0x08ABF324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936ABCu) goto L_08936ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936ABC: aot_gpr_5 = (2195u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08936ACCu); aot_gpr_5 = (aot_gpr_5 + static_cast(17840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 744u, 0x08936ACCu, 0x08ABF324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 690u, 0x08ABF324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936ACCu) goto L_08936ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936ACC: aot_gpr_31 = (0x08936AD4u); ctx.pc = 0x08B73494u; @@ -6653,12 +9485,38 @@ L_08936ACC: L_08936AD4: aot_gpr_31 = (0x08936ADCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 746u, 0x08936ADCu, 0x08B2090Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 107u, 0x08B2090Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936ADCu) goto L_08936ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936ADC: aot_gpr_31 = (0x08936AE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 747u, 0x08936AE4u, 0x08939238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 294u, 0x08939238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936AE4u) goto L_08936AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936AE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6674,8 +9532,21 @@ L_08936AF0: L_08936AF8: aot_gpr_31 = (0x08936B00u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 750u, 0x08936B00u, 0x08953E60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 874u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 874u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 874u, 0x08953E60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936B00u) goto L_08936B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936B00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6701,8 +9572,21 @@ L_08936B1C: } L_08936B28: aot_gpr_31 = (0x08936B30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 755u, 0x08936B30u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936B30u) goto L_08936B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936B30: aot_gpr_31 = (0x08936B38u); goto L_089343D8; @@ -6714,8 +9598,21 @@ L_08936B40: aot_gpr_4 = (0u | 20u); aot_gpr_31 = (0x08936B4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 758u, 0x08936B4Cu, 0x089E16B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 285u, 0x089E16B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936B4Cu) goto L_08936B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936B4C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6739,8 +9636,21 @@ L_08936B5C: aot_gpr_4 = (aot_gpr_4 + static_cast(-32)); aot_gpr_31 = (0x08936B78u); aot_gpr_5 = (aot_gpr_5 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 761u, 0x08936B78u, 0x08AB5E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 502u, 0x08AB5E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936B78u) goto L_08936B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936B78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8888))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6802,8 +9712,21 @@ L_08936BCC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08936BD8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 771u, 0x08936BD8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936BD8u) goto L_08936BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936BD8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6826,8 +9749,21 @@ L_08936BF0: L_08936BF4: aot_gpr_31 = (0x08936BFCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 776u, 0x08936BFCu, 0x089F656Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 447u, 0x089F656Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936BFCu) goto L_08936BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936BFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8888))); aot_gpr_5 = (0u | 1u); @@ -6848,8 +9784,21 @@ L_08936C18: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08936C24u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 779u, 0x08936C24u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936C24u) goto L_08936C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936C24: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6875,8 +9824,21 @@ L_08936C44: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08936C54u); ctx.gpr[7] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 784u, 0x08936C54u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936C54u) goto L_08936C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936C54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6890,8 +9852,21 @@ L_08936C60: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08936C6Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 786u, 0x08936C6Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936C6Cu) goto L_08936C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936C6C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6918,8 +9893,21 @@ L_08936C8C: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08936CA0u); ctx.gpr[7] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 791u, 0x08936CA0u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936CA0u) goto L_08936CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936CA0: aot_gpr_4 = (2247u << 16u); ctx.gpr[7] = (2247u << 16u); @@ -6959,8 +9947,21 @@ L_08936CE4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08936CF0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 796u, 0x08936CF0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936CF0u) goto L_08936CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936CF0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6986,8 +9987,21 @@ L_08936D10: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08936D20u); ctx.gpr[7] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 801u, 0x08936D20u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936D20u) goto L_08936D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936D20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7001,8 +10015,21 @@ L_08936D2C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08936D38u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 803u, 0x08936D38u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936D38u) goto L_08936D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936D38: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7029,8 +10056,21 @@ L_08936D58: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08936D6Cu); ctx.gpr[7] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 808u, 0x08936D6Cu, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936D6Cu) goto L_08936D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936D6C: aot_gpr_4 = (2247u << 16u); ctx.gpr[7] = (2247u << 16u); @@ -7065,12 +10105,38 @@ L_08936DA0: L_08936DA8: aot_gpr_31 = (0x08936DB0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 813u, 0x08936DB0u, 0x08860C08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 149u, 0x08860C08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936DB0u) goto L_08936DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936DB0: aot_gpr_31 = (0x08936DB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 814u, 0x08936DB8u, 0x08A06D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 704u, 0x08A06D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936DB8u) goto L_08936DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936DB8: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29552)); @@ -7080,19 +10146,58 @@ L_08936DB8: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08936DD8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 815u, 0x08936DD8u, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936DD8u) goto L_08936DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936DD8: aot_gpr_31 = (0x08936DE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 816u, 0x08936DE0u, 0x08A06FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 723u, 0x08A06FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936DE0u) goto L_08936DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936DE0: aot_gpr_5 = (2247u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-544)); aot_gpr_31 = (0x08936DF0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 817u, 0x08936DF0u, 0x08AB650Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 636u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 636u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 636u, 0x08AB650Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936DF0u) goto L_08936DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936DF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2236))); aot_gpr_5 = (32768u << 16u); @@ -7105,8 +10210,21 @@ L_08936DF0: } L_08936E04: aot_gpr_31 = (0x08936E0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 819u, 0x08936E0Cu, 0x08A06D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 704u, 0x08A06D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936E0Cu) goto L_08936E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936E0C: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29552)); @@ -7116,20 +10234,59 @@ L_08936E0C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08936E2Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 820u, 0x08936E2Cu, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936E2Cu) goto L_08936E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936E2C: aot_gpr_4 = (15477u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-8728), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08936E44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 821u, 0x08936E44u, 0x08A06FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 723u, 0x08A06FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936E44u) goto L_08936E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936E44: aot_gpr_31 = (0x08936E4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 822u, 0x08936E4Cu, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936E4Cu) goto L_08936E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936E4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2236))); aot_gpr_5 = (32768u << 16u); @@ -7142,8 +10299,21 @@ L_08936E4C: } L_08936E60: aot_gpr_31 = (0x08936E68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 824u, 0x08936E68u, 0x08A06CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 691u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 691u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 691u, 0x08A06CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936E68u) goto L_08936E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936E68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7156,8 +10326,21 @@ L_08936E74: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08936E80u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 826u, 0x08936E80u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936E80u) goto L_08936E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936E80: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7180,15 +10363,41 @@ L_08936E98: L_08936E9C: aot_gpr_31 = (0x08936EA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 831u, 0x08936EA4u, 0x089F6324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 412u, 0x089F6324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936EA4u) goto L_08936EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936EA4: ctx.gpr[16] = (0u | 0u); goto L_08936EA8; L_08936EA8: aot_gpr_31 = (0x08936EB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 833u, 0x08936EB0u, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936EB0u) goto L_08936EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936EB0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7238,8 +10447,21 @@ L_08936EEC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08936EFCu); aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 840u, 0x08936EFCu, 0x089B9BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 336u, 0x089B9BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936EFCu) goto L_08936EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936EFC: aot_gpr_31 = (0x08936F04u); goto L_089349A8; @@ -7255,22 +10477,61 @@ L_08936F0C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08936F1Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 843u, 0x08936F1Cu, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936F1Cu) goto L_08936F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936F1C: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08936F28u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 844u, 0x08936F28u, 0x0887F14Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 659u, 0x0887F14Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936F28u) goto L_08936F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936F28: aot_gpr_31 = (0x08936F30u); aot_gpr_4 = (0u | 0u); goto L_089349C8; L_08936F30: aot_gpr_31 = (0x08936F38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 846u, 0x08936F38u, 0x08AC30B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 731u, 0x08AC30B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936F38u) goto L_08936F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936F38: aot_gpr_31 = (0x08936F40u); goto L_08935E28; @@ -7286,8 +10547,8 @@ L_08936F44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(784)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08936F58: @@ -7311,8 +10572,21 @@ L_08936F90: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08936FA0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 851u, 0x08936FA0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936FA0u) goto L_08936FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936FA0: aot_gpr_31 = (0x08936FA8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -7321,8 +10595,21 @@ L_08936FA0: L_08936FA8: aot_gpr_31 = (0x08936FB0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 853u, 0x08936FB0u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936FB0u) goto L_08936FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936FB0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7343,8 +10630,21 @@ L_08936FC4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08936FD0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 856u, 0x08936FD0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08936FD0u) goto L_08936FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08936FD0: aot_gpr_31 = (0x08936FD8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -7400,8 +10700,21 @@ L_08937018: goto L_0893701C; L_0893701C: aot_gpr_31 = (0x08937024u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 865u, 0x08937024u, 0x089C6D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 631u, 0x089C6D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937024u) goto L_08937024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937024: aot_gpr_4 = (aot_gpr_2 < static_cast(256) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7420,8 +10733,21 @@ L_08937038: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0893704Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 868u, 0x0893704Cu, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893704Cu) goto L_0893704C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893704C: aot_gpr_4 = (17392u << 16u); ctx.fpr[20] = std::bit_cast(0u); @@ -7448,8 +10774,21 @@ L_0893707C: L_08937080: aot_gpr_31 = (0x08937088u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 872u, 0x08937088u, 0x089C6D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 631u, 0x089C6D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937088u) goto L_08937088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937088: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_4 = (0u | 256u); @@ -7584,8 +10923,21 @@ L_089371E8: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08937228u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 883u, 0x08937228u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937228u) goto L_08937228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937228: ctx.gpr[18] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-16965))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7624,8 +10976,21 @@ L_0893726C: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08937288u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 887u, 0x08937288u, 0x08AF46A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 76u, 0x08AF46A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937288u) goto L_08937288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937288: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7651,8 +11016,8 @@ L_08937294: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089372C0: @@ -7673,8 +11038,21 @@ L_089372F8: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08937304u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 892u, 0x08937304u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937304u) goto L_08937304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937304: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7697,8 +11075,21 @@ L_0893731C: L_08937320: aot_gpr_31 = (0x08937328u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 897u, 0x08937328u, 0x089F6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 411u, 0x089F6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937328u) goto L_08937328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937328: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7719,8 +11110,21 @@ L_0893733C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08937348u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 900u, 0x08937348u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937348u) goto L_08937348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937348: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7744,8 +11148,21 @@ L_08937364: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08937370u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 905u, 0x08937370u, 0x089F64FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 441u, 0x089F64FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937370u) goto L_08937370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937370: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7755,8 +11172,21 @@ L_08937370: } L_08937378: aot_gpr_31 = (0x08937380u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 907u, 0x08937380u, 0x08939298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 302u, 0x08939298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937380u) goto L_08937380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937380: ctx.gpr[18] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19332))); ctx.fpr[20] = std::bit_cast(0u); @@ -7828,8 +11258,21 @@ L_089373F0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08937400u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 916u, 0x08937400u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937400u) goto L_08937400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937400: aot_gpr_31 = (0x08937408u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -7838,8 +11281,21 @@ L_08937400: L_08937408: aot_gpr_31 = (0x08937410u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 918u, 0x08937410u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937410u) goto L_08937410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937410: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8038,8 +11494,21 @@ L_089375AC: L_089375B0: aot_gpr_31 = (0x089375B8u); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 944u, 0x089375B8u, 0x08939298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 302u, 0x08939298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089375B8u) goto L_089375B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089375B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8206,8 +11675,21 @@ L_0893771C: AOT_REGCACHE_SYNC_OUT(); return; L_08937724: aot_gpr_31 = (0x0893772Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 965u, 0x0893772Cu, 0x089392C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 306u, 0x089392C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893772Cu) goto L_0893772C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893772C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8236,8 +11718,21 @@ L_0893774C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08937758u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 969u, 0x08937758u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937758u) goto L_08937758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937758: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8261,8 +11756,21 @@ L_08937774: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08937780u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 974u, 0x08937780u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937780u) goto L_08937780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937780: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -8290,8 +11798,21 @@ L_089377A4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089377B0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 978u, 0x089377B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089377B0u) goto L_089377B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089377B0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8315,8 +11836,21 @@ L_089377C8: L_089377D0: aot_gpr_31 = (0x089377D8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 983u, 0x089377D8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089377D8u) goto L_089377D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089377D8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -8338,8 +11872,21 @@ L_089377F4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08937804u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 986u, 0x08937804u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937804u) goto L_08937804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937804: aot_gpr_31 = (0x0893780Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -8351,8 +11898,21 @@ L_0893780C: L_08937810: aot_gpr_31 = (0x08937818u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 989u, 0x08937818u, 0x0882E9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 615u, 0x0882E9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937818u) goto L_08937818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937818: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-19336))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[20])) && aot_fpr_12 == ctx.fpr[20])) ? 0x00800000u : 0u); @@ -8429,8 +11989,21 @@ L_089378B4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089378C0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 998u, 0x089378C0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089378C0u) goto L_089378C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089378C0: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8454,8 +12027,21 @@ L_089378D8: L_089378E0: aot_gpr_31 = (0x089378E8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1003u, 0x089378E8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089378E8u) goto L_089378E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089378E8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -8485,8 +12071,21 @@ L_08937910: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08937920u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1007u, 0x08937920u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937920u) goto L_08937920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937920: aot_gpr_31 = (0x08937928u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -8495,8 +12094,21 @@ L_08937920: L_08937928: aot_gpr_31 = (0x08937930u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1009u, 0x08937930u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937930u) goto L_08937930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937930: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8517,8 +12129,21 @@ L_08937944: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08937950u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1012u, 0x08937950u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937950u) goto L_08937950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937950: aot_gpr_31 = (0x08937958u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -8544,8 +12169,21 @@ L_08937970: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08937980u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1016u, 0x08937980u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937980u) goto L_08937980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937980: aot_gpr_31 = (0x08937988u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -8575,8 +12213,21 @@ L_089379A0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x089379B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1021u, 0x089379B0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089379B0u) goto L_089379B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089379B0: aot_gpr_31 = (0x089379B8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -8588,8 +12239,21 @@ L_089379B8: L_089379BC: aot_gpr_31 = (0x089379C4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1024u, 0x089379C4u, 0x0882E9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 615u, 0x0882E9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089379C4u) goto L_089379C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089379C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8610,8 +12274,21 @@ L_089379D4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x089379E4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1027u, 0x089379E4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089379E4u) goto L_089379E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089379E4: aot_gpr_31 = (0x089379ECu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -8623,8 +12300,21 @@ L_089379EC: L_089379F0: aot_gpr_31 = (0x089379F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1030u, 0x089379F8u, 0x0882E9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 615u, 0x0882E9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089379F8u) goto L_089379F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089379F8: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(52), aot_run_words); @@ -8641,8 +12331,8 @@ L_089379F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08937A28: @@ -8652,14 +12342,40 @@ L_08937A28: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08937A58u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1032u, 0x08937A58u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937A58u) goto L_08937A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937A58: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08937A64u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1033u, 0x08937A64u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937A64u) goto L_08937A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937A64: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); @@ -8676,8 +12392,21 @@ L_08937A64: } L_08937A84: aot_gpr_31 = (0x08937A8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1035u, 0x08937A8Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937A8Cu) goto L_08937A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937A8C: aot_gpr_31 = (0x08937A94u); ctx.pc = 0x08B73114u; @@ -8692,8 +12421,21 @@ L_08937A94: } L_08937AA0: aot_gpr_31 = (0x08937AA8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1038u, 0x08937AA8u, 0x08939268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 298u, 0x08939268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937AA8u) goto L_08937AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937AA8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8712,8 +12454,21 @@ L_08937AC4: aot_gpr_5 = (ctx.gpr[16] & 255u); aot_gpr_31 = (0x08937AD0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1041u, 0x08937AD0u, 0x088CA2F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 425u, 0x088CA2F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937AD0u) goto L_08937AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937AD0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8725,8 +12480,21 @@ L_08937AD8: aot_gpr_5 = (ctx.gpr[16] + static_cast(22)); aot_gpr_31 = (0x08937AE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1043u, 0x08937AE4u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937AE4u) goto L_08937AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937AE4: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 5 ? 1u : 0u); @@ -8740,13 +12508,39 @@ L_08937AF4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08937B00u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1045u, 0x08937B00u, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937B00u) goto L_08937B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937B00: aot_gpr_31 = (0x08937B08u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1046u, 0x08937B08u, 0x08A05EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 495u, 0x08A05EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937B08u) goto L_08937B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937B08: aot_gpr_31 = (0x08937B10u); aot_gpr_4 = (0u | 1u); @@ -8785,8 +12579,21 @@ L_08937B4C: goto L_08937B50; L_08937B50: aot_gpr_31 = (0x08937B58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1053u, 0x08937B58u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937B58u) goto L_08937B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937B58: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x08937B64u); @@ -8831,8 +12638,21 @@ L_08937B90: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08937B9Cu); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1061u, 0x08937B9Cu, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937B9Cu) goto L_08937B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937B9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); if (aot_gpr_4 != 0u) { @@ -8886,17 +12706,56 @@ L_08937BE0: } L_08937BEC: aot_gpr_31 = (0x08937BF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1070u, 0x08937BF4u, 0x08A30754u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 65u, 0x08A30754u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937BF4u) goto L_08937BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937BF4: aot_gpr_31 = (0x08937BFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1071u, 0x08937BFCu, 0x08AF431Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 36u, 0x08AF431Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937BFCu) goto L_08937BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937BFC: aot_gpr_31 = (0x08937C04u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7908), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1072u, 0x08937C04u, 0x08AC4318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 71u, 0x08AC4318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937C04u) goto L_08937C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937C04: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8907,8 +12766,21 @@ L_08937C04: } L_08937C10: aot_gpr_31 = (0x08937C18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1074u, 0x08937C18u, 0x08A30774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 67u, 0x08A30774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937C18u) goto L_08937C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937C18: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-32480))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8928,12 +12800,38 @@ L_08937C24: L_08937C30: aot_gpr_31 = (0x08937C38u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1077u, 0x08937C38u, 0x08A05EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 495u, 0x08A05EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937C38u) goto L_08937C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937C38: aot_gpr_31 = (0x08937C40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1078u, 0x08937C40u, 0x088B81D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 17u, 0x088B81D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937C40u) goto L_08937C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937C40: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19683))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8947,8 +12845,21 @@ L_08937C4C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08937C5Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1080u, 0x08937C5Cu, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937C5Cu) goto L_08937C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937C5C: aot_gpr_31 = (0x08937C64u); goto L_089353A0; @@ -8965,8 +12876,21 @@ L_08937C6C: L_08937C7C: aot_gpr_31 = (0x08937C84u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1084u, 0x08937C84u, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937C84u) goto L_08937C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937C84: { const bool branch_taken = aot_gpr_2 != ctx.gpr[22]; if (branch_taken) { @@ -8976,8 +12900,21 @@ L_08937C84: } L_08937C8C: aot_gpr_31 = (0x08937C94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1086u, 0x08937C94u, 0x08ABAAD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 483u, 0x08ABAAD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937C94u) goto L_08937C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937C94: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19672))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9023,14 +12960,40 @@ L_08937CD4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08937CECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1092u, 0x08937CECu, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937CECu) goto L_08937CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937CEC: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(1948), static_cast(ctx.gpr[21])); aot_gpr_31 = (0x08937CF8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1093u, 0x08937CF8u, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937CF8u) goto L_08937CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937CF8: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 0u); @@ -9061,8 +13024,21 @@ L_08937D24: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08937D34u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1097u, 0x08937D34u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937D34u) goto L_08937D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937D34: aot_gpr_31 = (0x08937D3Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-19644)); @@ -9071,8 +13047,21 @@ L_08937D34: L_08937D3C: aot_gpr_31 = (0x08937D44u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1099u, 0x08937D44u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937D44u) goto L_08937D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937D44: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9083,8 +13072,21 @@ L_08937D44: L_08937D4C: aot_gpr_31 = (0x08937D54u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1101u, 0x08937D54u, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937D54u) goto L_08937D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937D54: { const bool branch_taken = aot_gpr_2 == ctx.gpr[22]; if (branch_taken) { @@ -9119,8 +13121,21 @@ L_08937D78: goto L_08937D84; L_08937D84: aot_gpr_31 = (0x08937D8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1106u, 0x08937D8Cu, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937D8Cu) goto L_08937D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937D8C: if (aot_gpr_2 != 0u) { ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); @@ -9171,22 +13186,61 @@ L_08937DBC: goto L_08934B9C; L_08937E0C: aot_gpr_31 = (0x08937E14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1111u, 0x08937E14u, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937E14u) goto L_08937E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937E14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(11148))); aot_gpr_31 = (0x08937E24u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1112u, 0x08937E24u, 0x088907E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 117u, 0x088907E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937E24u) goto L_08937E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937E24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(11152))); aot_gpr_31 = (0x08937E34u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1113u, 0x08937E34u, 0x08890970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 137u, 0x08890970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937E34u) goto L_08937E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937E34: aot_gpr_31 = (0x08937E3Cu); goto L_0893608C; @@ -9199,8 +13253,21 @@ L_08937E44: L_08937E4C: aot_gpr_31 = (0x08937E54u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1117u, 0x08937E54u, 0x08A1C9E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 107u, 0x08A1C9E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937E54u) goto L_08937E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937E54: aot_gpr_31 = (0x08937E5Cu); goto L_08936250; @@ -9213,8 +13280,21 @@ L_08937E5C: } L_08937E64: aot_gpr_31 = (0x08937E6Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1120u, 0x08937E6Cu, 0x08975D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 438u, 0x08975D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937E6Cu) goto L_08937E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937E6C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16976))); aot_gpr_4 = (15374u << 16u); @@ -9238,25 +13318,77 @@ L_08937E6C: aot_fpr_12 = widen_horizontal_extent(aot_fpr_12); aot_gpr_31 = (0x08937EB8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1121u, 0x08937EB8u, 0x0893A7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 586u, 0x0893A7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937EB8u) goto L_08937EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937EB8: aot_gpr_31 = (0x08937EC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1122u, 0x08937EC0u, 0x08946158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 394u, 0x08946158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937EC0u) goto L_08937EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937EC0: aot_gpr_31 = (0x08937EC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1123u, 0x08937EC8u, 0x089E1640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 276u, 0x089E1640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937EC8u) goto L_08937EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937EC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_5 = (ctx.gpr[28] + static_cast(8892)); aot_gpr_31 = (0x08937ED8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1124u, 0x08937ED8u, 0x088908D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 130u, 0x088908D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937ED8u) goto L_08937ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937ED8: aot_gpr_31 = (0x08937EE0u); goto L_089365BC; @@ -9285,8 +13417,21 @@ L_08937F04: goto L_089366D8; L_08937F0C: aot_gpr_31 = (0x08937F14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1130u, 0x08937F14u, 0x0897EE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 747u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 747u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 747u, 0x0897EE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937F14u) goto L_08937F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937F14: aot_gpr_31 = (0x08937F1Cu); aot_gpr_4 = (0u | 1u); @@ -9312,8 +13457,21 @@ L_08937F2C: } L_08937F34: aot_gpr_31 = (0x08937F3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1135u, 0x08937F3Cu, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937F3Cu) goto L_08937F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937F3C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19683))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9334,8 +13492,21 @@ L_08937F58: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08937F68u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1139u, 0x08937F68u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937F68u) goto L_08937F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937F68: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19683), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(1948), static_cast(ctx.gpr[21])); @@ -9344,8 +13515,21 @@ L_08937F68: goto L_08937F78; L_08937F78: aot_gpr_31 = (0x08937F80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0076->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0076_entry, 1141u, 0x08937F80u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08937F80u) goto L_08937F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08937F80: aot_gpr_31 = (0x08937F88u); goto L_08935E20; @@ -9377,8 +13561,8 @@ L_08937FA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08937FC8: @@ -9397,8 +13581,8 @@ L_08937FE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08937FEC: diff --git a/profiles/vcs/generated/generated_unit_0077.cpp b/profiles/vcs/generated/generated_unit_0077.cpp index cc021d9..a150d78 100644 --- a/profiles/vcs/generated/generated_unit_0077.cpp +++ b/profiles/vcs/generated/generated_unit_0077.cpp @@ -930,6 +930,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08938000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1022,8 +1046,21 @@ L_08938088: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08938094u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 11u, 0x08938094u, 0x089AB5A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 708u, 0x089AB5A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938094u) goto L_08938094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938094: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -1031,14 +1068,40 @@ L_08938094: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089380ACu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 12u, 0x089380ACu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089380ACu) goto L_089380AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089380AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089380B8u); aot_gpr_5 = (0u | 700u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 13u, 0x089380B8u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089380B8u) goto L_089380B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089380B8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1048,8 +1111,8 @@ L_089380B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089380CC: @@ -1089,8 +1152,21 @@ L_08938144: L_0893814C: aot_gpr_31 = (0x08938154u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 17u, 0x08938154u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938154u) goto L_08938154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938154: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1234,8 +1310,21 @@ L_0893823C: L_08938248: aot_gpr_31 = (0x08938250u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 36u, 0x08938250u, 0x08882930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 452u, 0x08882930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938250u) goto L_08938250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938250: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1276,8 +1365,21 @@ L_08938284: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x089382A0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 41u, 0x089382A0u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089382A0u) goto L_089382A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089382A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1337,15 +1439,41 @@ L_089382EC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08938330u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 48u, 0x08938330u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938330u) goto L_08938330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938330: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 118u); aot_gpr_31 = (0x08938340u); aot_gpr_6 = (0u | 1500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 49u, 0x08938340u, 0x0891108Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 294u, 0x0891108Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938340u) goto L_08938340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938340: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1716), ctx.gpr[18]); aot_gpr_5 = (aot_gpr_16 + static_cast(1716)); @@ -1378,8 +1506,21 @@ L_08938364: L_08938374: aot_gpr_31 = (0x0893837Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 54u, 0x0893837Cu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893837Cu) goto L_0893837C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893837C: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[21] = (0u | 6u); @@ -1423,8 +1564,21 @@ L_089383AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089383B8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 60u, 0x089383B8u, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089383B8u) goto L_089383B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089383B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[21]; @@ -1449,8 +1603,21 @@ L_089383D4: aot_gpr_4 = (ctx.gpr[18] + static_cast(2288)); aot_gpr_31 = (0x089383E0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 64u, 0x089383E0u, 0x08AB3DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 988u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 988u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 988u, 0x08AB3DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089383E0u) goto L_089383E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089383E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_4 = (aot_gpr_4 & 4096u); @@ -1511,8 +1678,21 @@ L_08938430: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893846Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 71u, 0x0893846Cu, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893846Cu) goto L_0893846C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893846C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1535,8 +1715,21 @@ L_08938480: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x0893849Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 74u, 0x0893849Cu, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893849Cu) goto L_0893849C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893849C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1569,8 +1762,21 @@ L_089384BC: L_089384C4: aot_gpr_31 = (0x089384CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 80u, 0x089384CCu, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089384CCu) goto L_089384CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089384CC: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[19]; if (branch_taken) { @@ -1630,14 +1836,40 @@ L_08938518: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0893855Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 87u, 0x0893855Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893855Cu) goto L_0893855C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893855C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938568u); aot_gpr_5 = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 88u, 0x08938568u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938568u) goto L_08938568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938568: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1716), ctx.gpr[18]); aot_gpr_5 = (aot_gpr_16 + static_cast(1716)); @@ -1663,8 +1895,21 @@ L_08938590: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893859Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 92u, 0x0893859Cu, 0x089103CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 60u, 0x089103CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893859Cu) goto L_0893859C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893859C: aot_gpr_31 = (0x089385A4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089385A4u) goto L_089385A4; @@ -1798,8 +2043,21 @@ L_089386AC: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x089386F8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 102u, 0x089386F8u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089386F8u) goto L_089386F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089386F8: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[24]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_12)); @@ -1840,8 +2098,21 @@ L_08938720: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08938748u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 105u, 0x08938748u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938748u) goto L_08938748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938748: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -1878,8 +2149,8 @@ L_08938768: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089387AC: @@ -1953,14 +2224,40 @@ L_08938830: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893883Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 116u, 0x0893883Cu, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893883Cu) goto L_0893883C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893883C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938848u); aot_gpr_5 = (0u | 20000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 117u, 0x08938848u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938848u) goto L_08938848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938848: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[20]; @@ -2014,8 +2311,21 @@ L_08938884: L_0893888C: aot_gpr_31 = (0x08938894u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 125u, 0x08938894u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938894u) goto L_08938894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938894: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2111,8 +2421,21 @@ L_08938928: } L_08938934: aot_gpr_31 = (0x0893893Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 137u, 0x0893893Cu, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893893Cu) goto L_0893893C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893893C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_5 = (0u | 2u); @@ -2147,8 +2470,21 @@ L_08938994: L_0893899C: aot_gpr_31 = (0x089389A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 140u, 0x089389A4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089389A4u) goto L_089389A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089389A4: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2276))); @@ -2264,8 +2600,21 @@ L_08938A3C: aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_31 = (0x08938A58u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 157u, 0x08938A58u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938A58u) goto L_08938A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938A58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2284,21 +2633,60 @@ L_08938A60: L_08938A70: aot_gpr_31 = (0x08938A78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 160u, 0x08938A78u, 0x08929C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 396u, 0x08929C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938A78u) goto L_08938A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938A78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08938A88u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 161u, 0x08938A88u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938A88u) goto L_08938A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938A88: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938A94u); aot_gpr_5 = (0u | 20000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 162u, 0x08938A94u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938A94u) goto L_08938A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938A94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2359,8 +2747,21 @@ L_08938AD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938B14u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 169u, 0x08938B14u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938B14u) goto L_08938B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938B14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2386,8 +2787,21 @@ L_08938B3C: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x08938B4Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 172u, 0x08938B4Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938B4Cu) goto L_08938B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938B4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938B58u); @@ -2402,8 +2816,21 @@ L_08938B58: aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_31 = (0x08938B74u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 174u, 0x08938B74u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938B74u) goto L_08938B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938B74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2415,8 +2842,21 @@ L_08938B7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938B88u); aot_gpr_5 = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 176u, 0x08938B88u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938B88u) goto L_08938B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938B88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2462,8 +2902,21 @@ L_08938BC0: L_08938BC8: aot_gpr_31 = (0x08938BD0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 182u, 0x08938BD0u, 0x08906558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 514u, 0x08906558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938BD0u) goto L_08938BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938BD0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2484,8 +2937,21 @@ L_08938BDC: L_08938BE4: aot_gpr_31 = (0x08938BECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 186u, 0x08938BECu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938BECu) goto L_08938BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938BEC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2513,8 +2979,21 @@ L_08938C0C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938C18u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 190u, 0x08938C18u, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938C18u) goto L_08938C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938C18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); goto L_08938C1C; @@ -2615,8 +3094,21 @@ L_08938CA0: aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_31 = (0x08938CBCu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 204u, 0x08938CBCu, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938CBCu) goto L_08938CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938CBC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2632,8 +3124,21 @@ L_08938CC4: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08938CE0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 206u, 0x08938CE0u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938CE0u) goto L_08938CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938CE0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2646,14 +3151,40 @@ L_08938CE8: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08938CF8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 208u, 0x08938CF8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938CF8u) goto L_08938CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938CF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938D04u); aot_gpr_5 = (0u | 20000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 209u, 0x08938D04u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938D04u) goto L_08938D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938D04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2666,8 +3197,21 @@ L_08938D0C: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x08938D1Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 211u, 0x08938D1Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938D1Cu) goto L_08938D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938D1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938D28u); @@ -2686,8 +3230,21 @@ L_08938D30: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x08938D40u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 214u, 0x08938D40u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938D40u) goto L_08938D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938D40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08938D4Cu); @@ -2707,8 +3264,8 @@ L_08938D4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938D70: @@ -2820,8 +3377,8 @@ L_08938E08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938E24: @@ -2837,8 +3394,8 @@ L_08938E40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938E4C: @@ -2853,15 +3410,28 @@ L_08938E4C: } L_08938E60: aot_gpr_31 = (0x08938E68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 236u, 0x08938E68u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938E68u) goto L_08938E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938E68: ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938E78: @@ -2875,8 +3445,8 @@ L_08938E88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938E98: @@ -2953,8 +3523,8 @@ L_08938EF0: L_08938EFC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(0), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938F04: @@ -2971,8 +3541,21 @@ L_08938F04: } L_08938F1C: aot_gpr_31 = (0x08938F24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 252u, 0x08938F24u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938F24u) goto L_08938F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938F24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_31 = (0x08938F30u); @@ -2983,8 +3566,8 @@ L_08938F30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938F40: @@ -3001,8 +3584,21 @@ L_08938F40: } L_08938F58: aot_gpr_31 = (0x08938F60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 256u, 0x08938F60u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938F60u) goto L_08938F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938F60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_31 = (0x08938F6Cu); @@ -3013,8 +3609,8 @@ L_08938F6C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938F7C: @@ -3035,8 +3631,21 @@ L_08938F7C: } L_08938FA4: aot_gpr_31 = (0x08938FACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 260u, 0x08938FACu, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938FACu) goto L_08938FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938FAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -3054,8 +3663,8 @@ L_08938FC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08938FD8: @@ -3072,8 +3681,21 @@ L_08938FD8: } L_08938FF0: aot_gpr_31 = (0x08938FF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 264u, 0x08938FF8u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08938FF8u) goto L_08938FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08938FF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_31 = (0x08939004u); @@ -3084,8 +3706,8 @@ L_08939004: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939014: @@ -3102,8 +3724,21 @@ L_08939014: } L_0893902C: aot_gpr_31 = (0x08939034u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 268u, 0x08939034u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939034u) goto L_08939034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939034: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_31 = (0x08939040u); @@ -3114,8 +3749,8 @@ L_08939040: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939050: @@ -3136,8 +3771,21 @@ L_08939050: } L_08939078: aot_gpr_31 = (0x08939080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 272u, 0x08939080u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939080u) goto L_08939080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939080: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -3155,8 +3803,8 @@ L_08939094: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089390AC: @@ -3181,8 +3829,21 @@ L_089390AC: } L_089390EC: aot_gpr_31 = (0x089390F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 276u, 0x089390F4u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089390F4u) goto L_089390F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089390F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -3206,8 +3867,8 @@ L_08939114: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939138: @@ -3224,8 +3885,21 @@ L_08939138: } L_08939150: aot_gpr_31 = (0x08939158u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 280u, 0x08939158u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939158u) goto L_08939158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939158: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_31 = (0x08939164u); @@ -3236,8 +3910,8 @@ L_08939164: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939174: @@ -3256,8 +3930,21 @@ L_08939174: } L_08939194: aot_gpr_31 = (0x0893919Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 284u, 0x0893919Cu, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893919Cu) goto L_0893919C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893919C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -3273,8 +3960,8 @@ L_089391AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089391C0: @@ -3291,8 +3978,21 @@ L_089391C0: } L_089391D8: aot_gpr_31 = (0x089391E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 288u, 0x089391E0u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089391E0u) goto L_089391E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089391E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_31 = (0x089391ECu); @@ -3303,8 +4003,8 @@ L_089391EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089391FC: @@ -3321,8 +4021,21 @@ L_089391FC: } L_08939214: aot_gpr_31 = (0x0893921Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 292u, 0x0893921Cu, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893921Cu) goto L_0893921C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893921C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_31 = (0x08939228u); @@ -3333,8 +4046,8 @@ L_08939228: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939238: @@ -3349,8 +4062,21 @@ L_08939238: } L_0893924C: aot_gpr_31 = (0x08939254u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 296u, 0x08939254u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939254u) goto L_08939254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939254: aot_gpr_31 = (0x0893925Cu); goto L_08938E4C; @@ -3358,8 +4084,8 @@ L_0893925C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939268: @@ -3374,8 +4100,21 @@ L_08939268: } L_0893927C: aot_gpr_31 = (0x08939284u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 300u, 0x08939284u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939284u) goto L_08939284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939284: aot_gpr_31 = (0x0893928Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); @@ -3384,8 +4123,8 @@ L_0893928C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939298: @@ -3400,8 +4139,21 @@ L_08939298: } L_089392AC: aot_gpr_31 = (0x089392B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 304u, 0x089392B4u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089392B4u) goto L_089392B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089392B4: aot_gpr_31 = (0x089392BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); @@ -3410,8 +4162,8 @@ L_089392BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089392C8: @@ -3426,8 +4178,21 @@ L_089392C8: } L_089392DC: aot_gpr_31 = (0x089392E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 308u, 0x089392E4u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089392E4u) goto L_089392E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089392E4: aot_gpr_31 = (0x089392ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); @@ -3436,8 +4201,8 @@ L_089392EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089392F8: @@ -3452,8 +4217,21 @@ L_089392F8: } L_0893930C: aot_gpr_31 = (0x08939314u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 312u, 0x08939314u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939314u) goto L_08939314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939314: aot_gpr_31 = (0x0893931Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); @@ -3462,8 +4240,8 @@ L_0893931C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939328: @@ -3482,8 +4260,21 @@ L_08939328: } L_08939348: aot_gpr_31 = (0x08939350u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 316u, 0x08939350u, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939350u) goto L_08939350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939350: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -3499,8 +4290,8 @@ L_08939360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939374: @@ -3519,8 +4310,21 @@ L_08939374: } L_08939394: aot_gpr_31 = (0x0893939Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 320u, 0x0893939Cu, 0x08B6B650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 660u, 0x08B6B650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893939Cu) goto L_0893939C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893939C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -3536,16 +4340,16 @@ L_089393AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089393C0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089393CC: @@ -3610,8 +4414,8 @@ L_08939444: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939460: @@ -3639,8 +4443,8 @@ L_08939490: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089394A4: @@ -3696,22 +4500,22 @@ L_089394F0: L_089394F4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089394FC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939504: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893950C: @@ -3772,8 +4576,8 @@ L_0893957C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939590: @@ -3853,8 +4657,21 @@ L_0893963C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0893964Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 361u, 0x0893964Cu, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893964Cu) goto L_0893964C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893964C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(16), ctx.gpr[17]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -3920,8 +4737,8 @@ L_089396DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939704: @@ -4034,8 +4851,8 @@ L_089397B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089397CC: @@ -4091,8 +4908,21 @@ L_08939824: aot_gpr_4 = (ctx.gpr[17] + static_cast(8)); aot_gpr_31 = (0x08939834u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 389u, 0x08939834u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939834u) goto L_08939834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939834: aot_gpr_4 = (ctx.gpr[18] + static_cast(6900)); aot_gpr_4 = (aot_gpr_4 - 0u); @@ -4119,8 +4949,8 @@ L_0893985C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893987C: @@ -4157,12 +4987,38 @@ L_089398C0: } L_089398CC: aot_gpr_31 = (0x089398D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 398u, 0x089398D4u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089398D4u) goto L_089398D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089398D4: aot_gpr_31 = (0x089398DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 399u, 0x089398DCu, 0x08934DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 206u, 0x08934DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089398DCu) goto L_089398DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089398DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -4218,8 +5074,8 @@ L_0893992C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939948: @@ -4247,8 +5103,8 @@ L_08939978: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893998C: @@ -4279,8 +5135,8 @@ L_089399C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089399E0: @@ -4313,21 +5169,21 @@ L_08939A04: L_08939A08: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939A10: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939A18: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(46))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939A20: @@ -4345,8 +5201,8 @@ L_08939A40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939A4C: @@ -4456,8 +5312,8 @@ L_08939B40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939B4C: @@ -4545,8 +5401,8 @@ L_08939BFC: goto L_08939C0C; L_08939C0C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939C14: @@ -4562,8 +5418,8 @@ L_08939C2C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939C38: @@ -4578,8 +5434,8 @@ L_08939C4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939C58: @@ -4645,8 +5501,8 @@ L_08939CCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939CE4: @@ -4666,8 +5522,21 @@ L_08939CE4: aot_gpr_5 = (0u | 128u); aot_gpr_31 = (0x08939D24u); aot_gpr_6 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 455u, 0x08939D24u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08939D24u) goto L_08939D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08939D24: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(6904), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(6900), ctx.gpr[17]); @@ -4851,8 +5720,8 @@ L_08939EE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08939EFC: @@ -5030,8 +5899,8 @@ L_0893A08C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893A0BC: @@ -5075,8 +5944,8 @@ L_0893A100: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893A10C: @@ -5300,8 +6169,21 @@ L_0893A2A0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); aot_gpr_31 = (0x0893A2C0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 530u, 0x0893A2C0u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893A2C0u) goto L_0893A2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893A2C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(6916))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(6920))); @@ -5566,8 +6448,21 @@ L_0893A530: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); aot_gpr_31 = (0x0893A548u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 559u, 0x0893A548u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893A548u) goto L_0893A548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893A548: aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(42), static_cast(0u)); goto L_0893A54C; @@ -5822,8 +6717,8 @@ L_0893A778: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893A7A4: @@ -5862,8 +6757,21 @@ L_0893A7E8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893A7FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 590u, 0x0893A7FCu, 0x088906E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 102u, 0x088906E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893A7FCu) goto L_0893A7FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893A7FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (2247u << 16u); @@ -5877,8 +6785,8 @@ L_0893A814: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893A824: @@ -5886,27 +6794,66 @@ L_0893A824: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0893A838u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 593u, 0x0893A838u, 0x08890624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 98u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 98u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 98u, 0x08890624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893A838u) goto L_0893A838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893A838: aot_gpr_31 = (0x0893A840u); aot_gpr_16 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 594u, 0x0893A840u, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893A840u) goto L_0893A840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893A840: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893A84Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 595u, 0x0893A84Cu, 0x0889078Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 110u, 0x0889078Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893A84Cu) goto L_0893A84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893A84C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893A860: @@ -5933,8 +6880,8 @@ L_0893A894: aot_gpr_5 = (0u | 25u); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893A8A0: @@ -6041,8 +6988,21 @@ L_0893A984: } aot_gpr_31 = (0x0893A9A4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 607u, 0x0893A9A4u, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893A9A4u) goto L_0893A9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893A9A4: aot_gpr_31 = (0x0893A9ACu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6083,8 +7043,21 @@ L_0893A9E4: goto L_0893A9E8; L_0893A9E8: aot_gpr_31 = (0x0893A9F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 614u, 0x0893A9F0u, 0x089BABACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 580u, 0x089BABACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893A9F0u) goto L_0893A9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893A9F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6110,8 +7083,21 @@ L_0893AA0C: L_0893AA10: aot_gpr_31 = (0x0893AA18u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 619u, 0x0893AA18u, 0x089BAA4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 552u, 0x089BAA4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893AA18u) goto L_0893AA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893AA18: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6138,8 +7124,21 @@ L_0893AA38: L_0893AA3C: aot_gpr_31 = (0x0893AA44u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 624u, 0x0893AA44u, 0x089BAA4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 552u, 0x089BAA4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893AA44u) goto L_0893AA44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893AA44: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6182,8 +7181,8 @@ L_0893AA8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893AA9C: @@ -6214,8 +7213,21 @@ L_0893AAC4: } aot_gpr_31 = (0x0893AAE4u); ctx.gpr[11] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 632u, 0x0893AAE4u, 0x08ABAD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893AAE4u) goto L_0893AAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893AAE4: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (0u | 0u); @@ -6312,8 +7324,21 @@ L_0893AB84: L_0893AB8C: aot_gpr_31 = (0x0893AB94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 645u, 0x0893AB94u, 0x089BAFB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 635u, 0x089BAFB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893AB94u) goto L_0893AB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893AB94: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1024), aot_run_words); @@ -6324,8 +7349,8 @@ L_0893AB94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1040)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893ABAC: @@ -6350,8 +7375,8 @@ L_0893ABB0: } L_0893ABE0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893ABE8: @@ -6374,8 +7399,8 @@ L_0893ABF4: goto L_0893AC14; L_0893AC14: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893AC1C: @@ -6391,8 +7416,21 @@ L_0893AC1C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x0893AC64u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 653u, 0x0893AC64u, 0x08AB8A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 144u, 0x08AB8A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893AC64u) goto L_0893AC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893AC64: ctx.gpr[21] = (ctx.gpr[2] | 0u); ctx.gpr[22] = (0u | 0u); @@ -6554,8 +7592,21 @@ L_0893ADF8: } aot_gpr_31 = (0x0893AE1Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 666u, 0x0893AE1Cu, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893AE1Cu) goto L_0893AE1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893AE1C: aot_gpr_4 = (ctx.gpr[22] + static_cast(1)); ctx.gpr[22] = (aot_gpr_4 << 16u); @@ -6582,8 +7633,8 @@ L_0893AE2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893AE5C: @@ -6623,13 +7674,39 @@ L_0893AE5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1088), aot_gpr_31); aot_gpr_31 = (0x0893AEECu); ctx.gpr[11] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 669u, 0x0893AEECu, 0x08ABAD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893AEECu) goto L_0893AEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893AEEC: aot_gpr_31 = (0x0893AEF4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 670u, 0x0893AEF4u, 0x08AB8A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 144u, 0x08AB8A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893AEF4u) goto L_0893AEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893AEF4: ctx.gpr[17] = (0u | 0u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(1036), static_cast(ctx.gpr[2])); @@ -6803,8 +7880,21 @@ L_0893B0B8: } aot_gpr_31 = (0x0893B0DCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 683u, 0x0893B0DCu, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B0DCu) goto L_0893B0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B0DC: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (aot_gpr_4 << 16u); @@ -6831,8 +7921,8 @@ L_0893B0EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1104)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B11C: @@ -6868,8 +7958,21 @@ L_0893B164: aot_gpr_5 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x0893B170u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 688u, 0x0893B170u, 0x089FCC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 163u, 0x089FCC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B170u) goto L_0893B170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B170: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(12), ctx.gpr[2]); goto L_0893B174; @@ -6878,8 +7981,8 @@ L_0893B174: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B184: @@ -6889,16 +7992,29 @@ L_0893B184: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0893B19Cu); aot_gpr_5 = (aot_gpr_16 + static_cast(24)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 691u, 0x0893B19Cu, 0x089FCC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 163u, 0x089FCC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B19Cu) goto L_0893B19C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B19C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(20), ctx.gpr[2]); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B1B0: @@ -6911,21 +8027,60 @@ L_0893B1B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0893B1D4u); ctx.gpr[18] = (ctx.gpr[28] + static_cast(-18440)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 693u, 0x0893B1D4u, 0x089FB820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 552u, 0x089FB820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B1D4u) goto L_0893B1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B1D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893B1E4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 694u, 0x0893B1E4u, 0x088B98ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 337u, 0x088B98ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B1E4u) goto L_0893B1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B1E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893B1F0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 695u, 0x0893B1F0u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B1F0u) goto L_0893B1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B1F0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6936,8 +8091,8 @@ L_0893B1F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B208: @@ -6968,8 +8123,8 @@ L_0893B230: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B23C: @@ -7002,8 +8157,8 @@ L_0893B26C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B280: @@ -7052,15 +8207,41 @@ L_0893B2DC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893B2F4u); ctx.gpr[18] = (aot_gpr_6 + static_cast(-10732)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 711u, 0x0893B2F4u, 0x089FB820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 552u, 0x089FB820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B2F4u) goto L_0893B2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B2F4: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893B304u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 712u, 0x0893B304u, 0x089FB820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 552u, 0x089FB820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B304u) goto L_0893B304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B304: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -7068,14 +8249,40 @@ L_0893B304: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0893B31Cu); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 713u, 0x0893B31Cu, 0x088B98ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 337u, 0x088B98ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B31Cu) goto L_0893B31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B31C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893B328u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 714u, 0x0893B328u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B328u) goto L_0893B328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B328: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7089,8 +8296,8 @@ L_0893B328: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B34C: @@ -7109,8 +8316,21 @@ L_0893B368: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x0893B374u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-18424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 717u, 0x0893B374u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B374u) goto L_0893B374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B374: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_0893B378; @@ -7124,8 +8344,8 @@ L_0893B380: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B394: @@ -7135,8 +8355,8 @@ L_0893B394: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B3AC: @@ -7147,8 +8367,21 @@ L_0893B3AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0893B3C8u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 722u, 0x0893B3C8u, 0x08ABCF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 212u, 0x08ABCF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B3C8u) goto L_0893B3C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B3C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 4u); @@ -7160,8 +8393,8 @@ L_0893B3D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B3E8: @@ -7188,8 +8421,8 @@ L_0893B414: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B428: @@ -7220,8 +8453,21 @@ L_0893B460: ctx.gpr[7] = (0u | 12u); aot_gpr_31 = (0x0893B47Cu); ctx.gpr[8] = (ctx.gpr[8] + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 729u, 0x0893B47Cu, 0x08A9D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 139u, 0x08A9D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B47Cu) goto L_0893B47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B47C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(24), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7246,8 +8492,8 @@ L_0893B484: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B4C4: @@ -7268,8 +8514,21 @@ L_0893B4C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0893B508u); aot_gpr_6 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 732u, 0x0893B508u, 0x089FB6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 533u, 0x089FB6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B508u) goto L_0893B508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B508: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893B514u); @@ -7293,8 +8552,8 @@ L_0893B514: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B54C: @@ -7331,8 +8590,8 @@ L_0893B560: } L_0893B59C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B5A4: @@ -7372,8 +8631,8 @@ L_0893B5BC: } L_0893B5FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B604: @@ -7396,8 +8655,21 @@ L_0893B634: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893B644u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 743u, 0x0893B644u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B644u) goto L_0893B644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B644: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7415,8 +8687,8 @@ L_0893B654: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B670: @@ -7437,8 +8709,8 @@ L_0893B694: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B6A4: @@ -7512,8 +8784,21 @@ L_0893B720: ctx.gpr[7] = (ctx.gpr[28] + static_cast(-18388)); aot_gpr_31 = (0x0893B734u); aot_gpr_6 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 756u, 0x0893B734u, 0x089FB6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 533u, 0x089FB6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B734u) goto L_0893B734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B734: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(68))); @@ -7537,8 +8822,21 @@ L_0893B750: ctx.gpr[7] = (0u | 4u); aot_gpr_31 = (0x0893B774u); ctx.gpr[8] = (ctx.gpr[8] + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 758u, 0x0893B774u, 0x08A9D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 139u, 0x08A9D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B774u) goto L_0893B774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B774: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), ctx.gpr[2]); @@ -7581,8 +8879,8 @@ L_0893B7E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B800: @@ -7632,8 +8930,8 @@ L_0893B84C: } L_0893B854: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B85C: @@ -7676,8 +8974,8 @@ L_0893B888: goto L_0893B890; L_0893B890: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B898: @@ -7775,8 +9073,21 @@ L_0893B950: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893B95Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 787u, 0x0893B95Cu, 0x08ABCF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 212u, 0x08ABCF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893B95Cu) goto L_0893B95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893B95C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); @@ -7808,8 +9119,8 @@ L_0893B980: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893B9A0: @@ -7843,8 +9154,8 @@ L_0893B9E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BA00: @@ -7884,15 +9195,41 @@ L_0893BA40: aot_gpr_5 = (ctx.gpr[17] + static_cast(-1)); aot_gpr_31 = (0x0893BA4Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 798u, 0x0893BA4Cu, 0x08ABCDC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 194u, 0x08ABCDC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BA4Cu) goto L_0893BA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BA4C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893BA5Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 799u, 0x0893BA5Cu, 0x08ABD018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 218u, 0x08ABD018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BA5Cu) goto L_0893BA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BA5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7911,8 +9248,21 @@ L_0893BA6C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893BA78u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 802u, 0x0893BA78u, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BA78u) goto L_0893BA78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BA78: { const bool branch_taken = static_cast(ctx.gpr[17]) <= 0; if (branch_taken) { @@ -7925,15 +9275,41 @@ L_0893BA80: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893BA90u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 804u, 0x0893BA90u, 0x08ABCDC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 194u, 0x08ABCDC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BA90u) goto L_0893BA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BA90: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893BAA0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 805u, 0x0893BAA0u, 0x08ABC74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 112u, 0x08ABC74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BAA0u) goto L_0893BAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BAA0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7944,8 +9320,8 @@ L_0893BAA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BAB8: @@ -7965,8 +9341,21 @@ L_0893BADC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893BAF0u); aot_gpr_6 = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 808u, 0x0893BAF0u, 0x089FB6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 533u, 0x089FB6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BAF0u) goto L_0893BAF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BAF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(52))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -7988,8 +9377,21 @@ L_0893BB14: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(52))); aot_gpr_31 = (0x0893BB20u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 811u, 0x0893BB20u, 0x08ABCDC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 194u, 0x08ABCDC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BB20u) goto L_0893BB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BB20: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8000,8 +9402,8 @@ L_0893BB20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BB38: @@ -8015,8 +9417,8 @@ L_0893BB38: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BB60: @@ -8048,16 +9450,42 @@ L_0893BB9C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0893BBB4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 816u, 0x0893BBB4u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BBB4u) goto L_0893BBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BBB4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(36), aot_gpr_5); aot_gpr_31 = (0x0893BBC8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 817u, 0x0893BBC8u, 0x08ABCC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 176u, 0x08ABCC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BBC8u) goto L_0893BBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BBC8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8067,8 +9495,8 @@ L_0893BBC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BBDC: @@ -8106,8 +9534,21 @@ L_0893BC24: ctx.gpr[8] = (ctx.gpr[8] + static_cast(-1)); aot_gpr_31 = (0x0893BC4Cu); ctx.gpr[9] = (ctx.gpr[9] + static_cast(-10688)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 820u, 0x0893BC4Cu, 0x08A9D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 139u, 0x08A9D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BC4Cu) goto L_0893BC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BC4C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(16), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -8127,8 +9568,21 @@ L_0893BC54: aot_gpr_5 = (0u | 34u); aot_gpr_31 = (0x0893BC8Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 822u, 0x0893BC8Cu, 0x08ABE004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 436u, 0x08ABE004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BC8Cu) goto L_0893BC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BC8C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 10u); @@ -8165,8 +9619,21 @@ L_0893BCC8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0893BCE0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 827u, 0x0893BCE0u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BCE0u) goto L_0893BCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BCE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -8191,8 +9658,8 @@ L_0893BCF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BD18: @@ -8205,8 +9672,21 @@ L_0893BD18: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x0893BD3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 830u, 0x0893BD3Cu, 0x08AB0668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 74u, 0x08AB0668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BD3Cu) goto L_0893BD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BD3C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[18]); @@ -8224,8 +9704,21 @@ L_0893BD3C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0893BD84u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 831u, 0x0893BD84u, 0x08A93C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 588u, 0x08A93C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BD84u) goto L_0893BD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BD84: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); { const std::uint32_t aot_run_words[3]{0u, 0u, 0u}; @@ -8244,8 +9737,8 @@ L_0893BD84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BDC0: @@ -8269,8 +9762,21 @@ L_0893BDF0: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x0893BE08u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 834u, 0x0893BE08u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BE08u) goto L_0893BE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BE08: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(44))); @@ -8279,8 +9785,21 @@ L_0893BE08: ctx.gpr[7] = (aot_gpr_4 << 2u); aot_gpr_31 = (0x0893BE24u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 835u, 0x0893BE24u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BE24u) goto L_0893BE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BE24: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(12), ctx.gpr[2]); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); @@ -8291,8 +9810,21 @@ L_0893BE24: aot_gpr_6 = (aot_gpr_6 << 2u); aot_gpr_31 = (0x0893BE48u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 836u, 0x0893BE48u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BE48u) goto L_0893BE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BE48: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); @@ -8304,8 +9836,21 @@ L_0893BE48: ctx.gpr[7] = (ctx.gpr[7] << 3u); aot_gpr_31 = (0x0893BE70u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 837u, 0x0893BE70u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BE70u) goto L_0893BE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BE70: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); @@ -8317,8 +9862,21 @@ L_0893BE70: ctx.gpr[7] = (ctx.gpr[7] << 2u); aot_gpr_31 = (0x0893BE98u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 838u, 0x0893BE98u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BE98u) goto L_0893BE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BE98: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(16), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(44))); @@ -8334,8 +9892,21 @@ L_0893BE98: ctx.gpr[7] = (ctx.gpr[7] << 2u); aot_gpr_31 = (0x0893BED0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 839u, 0x0893BED0u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BED0u) goto L_0893BED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BED0: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(24), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); @@ -8347,8 +9918,21 @@ L_0893BED0: ctx.gpr[7] = (ctx.gpr[7] << 2u); aot_gpr_31 = (0x0893BEF8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 840u, 0x0893BEF8u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BEF8u) goto L_0893BEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BEF8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(68))); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(28), ctx.gpr[2]); @@ -8365,8 +9949,8 @@ L_0893BEF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BF28: @@ -8389,16 +9973,42 @@ L_0893BF58: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893BF68u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 843u, 0x0893BF68u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BF68u) goto L_0893BF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BF68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893BF7Cu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 844u, 0x0893BF7Cu, 0x089FB95Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 569u, 0x089FB95Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BF7Cu) goto L_0893BF7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BF7C: aot_gpr_5 = (aot_gpr_29 + static_cast(52)); aot_gpr_31 = (0x0893BF88u); @@ -8411,8 +10021,21 @@ L_0893BF88: L_0893BF90: aot_gpr_31 = (0x0893BF98u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 847u, 0x0893BF98u, 0x0893DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 508u, 0x0893DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BF98u) goto L_0893BF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BF98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_5 = (0u | 288u); @@ -8426,8 +10049,21 @@ L_0893BF98: L_0893BFA8: aot_gpr_31 = (0x0893BFB0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 849u, 0x0893BFB0u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BFB0u) goto L_0893BFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BFB0: aot_gpr_31 = (0x0893BFB8u); aot_gpr_4 = (aot_gpr_29 | 0u); @@ -8443,8 +10079,8 @@ L_0893BFB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1568)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893BFD4: @@ -8458,8 +10094,21 @@ L_0893BFD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0893BFFCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0077->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0077_entry, 852u, 0x0893BFFCu, 0x08ABD558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 280u, 0x08ABD558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893BFFCu) goto L_0893BFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893BFFC: aot_gpr_31 = (0x0893C004u); aot_gpr_4 = (aot_gpr_16 | 0u); diff --git a/profiles/vcs/generated/generated_unit_0078.cpp b/profiles/vcs/generated/generated_unit_0078.cpp index d5af614..7537fb5 100644 --- a/profiles/vcs/generated/generated_unit_0078.cpp +++ b/profiles/vcs/generated/generated_unit_0078.cpp @@ -942,6 +942,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0893C004u; + if (local_delta_v813 >= 16240u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -959,15 +983,41 @@ L_0893C004: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C010u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 2u, 0x0893C010u, 0x0893B3E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 724u, 0x0893B3E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C010u) goto L_0893C010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C010: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C020u); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 3u, 0x0893C020u, 0x08ABDC24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 387u, 0x08ABDC24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C020u) goto L_0893C020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C020: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -978,8 +1028,8 @@ L_0893C020: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C038: @@ -990,8 +1040,21 @@ L_0893C038: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0893C054u); aot_gpr_17 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 5u, 0x0893C054u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C054u) goto L_0893C054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C054: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C060u); @@ -1001,14 +1064,40 @@ L_0893C060: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_31 = (0x0893C06Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 7u, 0x0893C06Cu, 0x08ABD5E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 290u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 290u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 290u, 0x08ABD5E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C06Cu) goto L_0893C06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C06C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C078u); aot_gpr_5 = (0u | 93u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 8u, 0x0893C078u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C078u) goto L_0893C078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C078: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1018,8 +1107,8 @@ L_0893C078: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C08C: @@ -1050,8 +1139,21 @@ L_0893C0C4: ctx.gpr[6] = (ctx.gpr[6] + static_cast(-3)); aot_gpr_31 = (0x0893C0E0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-10664)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 11u, 0x0893C0E0u, 0x089FB6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 533u, 0x089FB6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C0E0u) goto L_0893C0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C0E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1059,8 +1161,21 @@ L_0893C0E0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x0893C0F8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 12u, 0x0893C0F8u, 0x0893B3E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 724u, 0x0893B3E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C0F8u) goto L_0893C0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C0F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1077,14 +1192,40 @@ L_0893C10C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C118u); aot_gpr_5 = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 15u, 0x0893C118u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C118u) goto L_0893C118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C118: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893C124u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 16u, 0x0893C124u, 0x08ABD63Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 295u, 0x08ABD63Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C124u) goto L_0893C124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C124: ctx.gpr[20] = (aot_gpr_29 + static_cast(20)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1097,15 +1238,41 @@ L_0893C134: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_gpr_31 = (0x0893C148u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 18u, 0x0893C148u, 0x08ABD63Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 295u, 0x08ABD63Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C148u) goto L_0893C148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C148: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893C158u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 19u, 0x0893C158u, 0x08ABD63Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 295u, 0x08ABD63Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C158u) goto L_0893C158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C158: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 9u); @@ -1113,8 +1280,21 @@ L_0893C158: ctx.gpr[7] = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C170u); ctx.gpr[8] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 20u, 0x0893C170u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C170u) goto L_0893C170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C170: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(36), ctx.gpr[18]); { std::uint32_t aot_run_words[6]{}; @@ -1128,8 +1308,8 @@ L_0893C170: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C194: @@ -1150,8 +1330,21 @@ L_0893C1B4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C1C0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 23u, 0x0893C1C0u, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C1C0u) goto L_0893C1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C1C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); @@ -1184,8 +1377,21 @@ L_0893C1E4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C200u); aot_gpr_5 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 27u, 0x0893C200u, 0x08ABE004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 436u, 0x08ABE004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C200u) goto L_0893C200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C200: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(32), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -1202,8 +1408,8 @@ L_0893C214: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C228: @@ -1234,8 +1440,21 @@ L_0893C258: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C268u); ctx.gpr[6] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 32u, 0x0893C268u, 0x08ABD018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 218u, 0x08ABD018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C268u) goto L_0893C268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C268: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -1244,8 +1463,21 @@ L_0893C268: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C284u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 33u, 0x0893C284u, 0x08ABE004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 436u, 0x08ABE004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C284u) goto L_0893C284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C284: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -1274,8 +1506,21 @@ L_0893C2A4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C2B0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 37u, 0x0893C2B0u, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C2B0u) goto L_0893C2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C2B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -1284,8 +1529,21 @@ L_0893C2B0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C2CCu); aot_gpr_5 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 38u, 0x0893C2CCu, 0x08ABE004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 436u, 0x08ABE004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C2CCu) goto L_0893C2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C2CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -1303,8 +1561,8 @@ L_0893C2DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C2F0: @@ -1324,8 +1582,21 @@ L_0893C30C: ctx.gpr[6] = (ctx.gpr[6] + static_cast(-1)); aot_gpr_31 = (0x0893C328u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-10664)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 43u, 0x0893C328u, 0x089FB6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 533u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 533u, 0x089FB6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C328u) goto L_0893C328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C328: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); @@ -1341,8 +1612,8 @@ L_0893C328: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C354: @@ -1388,16 +1659,42 @@ L_0893C3A4: L_0893C3B0: aot_gpr_31 = (0x0893C3B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 49u, 0x0893C3B8u, 0x0893B34Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 715u, 0x0893B34Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C3B8u) goto L_0893C3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C3B8: ctx.gpr[6] = (ctx.gpr[20] | 0u); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C3CCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 50u, 0x0893C3CCu, 0x0893B4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 731u, 0x0893B4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C3CCu) goto L_0893C3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C3CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1416,8 +1713,21 @@ L_0893C3DC: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x0893C3E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 53u, 0x0893C3E8u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C3E8u) goto L_0893C3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C3E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1429,8 +1739,21 @@ L_0893C3F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C3FCu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 55u, 0x0893C3FCu, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C3FCu) goto L_0893C3FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C3FC: { const bool branch_taken = ctx.gpr[19] != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1442,8 +1765,21 @@ L_0893C3FC: L_0893C404: aot_gpr_31 = (0x0893C40Cu); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 57u, 0x0893C40Cu, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C40Cu) goto L_0893C40C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C40C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1456,8 +1792,21 @@ L_0893C414: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0893C424u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 59u, 0x0893C424u, 0x0893BAB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 806u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 806u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 806u, 0x0893BAB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C424u) goto L_0893C424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C424: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1470,8 +1819,8 @@ L_0893C424: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C444: @@ -1485,16 +1834,42 @@ L_0893C444: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1512), aot_gpr_31); aot_gpr_31 = (0x0893C474u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 61u, 0x0893C474u, 0x0893BD18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 829u, 0x0893BD18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C474u) goto L_0893C474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C474: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(60), aot_gpr_16); aot_gpr_31 = (0x0893C488u); aot_gpr_5 = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 62u, 0x0893C488u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C488u) goto L_0893C488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C488: { const bool branch_taken = ctx.gpr[19] == 0u; if (branch_taken) { @@ -1506,8 +1881,21 @@ L_0893C490: aot_gpr_5 = (ctx.gpr[28] + static_cast(-18344)); aot_gpr_31 = (0x0893C49Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 64u, 0x0893C49Cu, 0x0893B670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 745u, 0x0893B670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C49Cu) goto L_0893C49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C49C: aot_gpr_31 = (0x0893C4A4u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1516,8 +1904,21 @@ L_0893C4A4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893C4B0u); aot_gpr_5 = (0u | 41u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 66u, 0x0893C4B0u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C4B0u) goto L_0893C4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C4B0: aot_gpr_31 = (0x0893C4B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1528,20 +1929,59 @@ L_0893C4B8: ctx.gpr[6] = (0u | 265u); aot_gpr_31 = (0x0893C4CCu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 68u, 0x0893C4CCu, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C4CCu) goto L_0893C4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C4CC: aot_gpr_31 = (0x0893C4D4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 69u, 0x0893C4D4u, 0x0893BDC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 832u, 0x0893BDC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C4D4u) goto L_0893C4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C4D4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893C4E4u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 70u, 0x0893C4E4u, 0x0893BBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 818u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 818u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 818u, 0x0893BBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C4E4u) goto L_0893C4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C4E4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1496), aot_run_words); @@ -1553,8 +1993,8 @@ L_0893C4E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1520)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C500: @@ -1572,8 +2012,21 @@ L_0893C524: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C530u); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 73u, 0x0893C530u, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C530u) goto L_0893C530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C530: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1585,8 +2038,21 @@ L_0893C538: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(28))); aot_gpr_31 = (0x0893C544u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 75u, 0x0893C544u, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C544u) goto L_0893C544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C544: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C550u); @@ -1611,8 +2077,8 @@ L_0893C558: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C574: @@ -1666,13 +2132,39 @@ L_0893C5D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C5E4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-10612)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 83u, 0x0893C5E4u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C5E4u) goto L_0893C5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C5E4: aot_gpr_31 = (0x0893C5ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 84u, 0x0893C5ECu, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C5ECu) goto L_0893C5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C5EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -1699,16 +2191,42 @@ L_0893C60C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893C61Cu); ctx.gpr[6] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 88u, 0x0893C61Cu, 0x08ABD018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 218u, 0x08ABD018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C61Cu) goto L_0893C61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C61C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 41u); ctx.gpr[6] = (0u | 40u); aot_gpr_31 = (0x0893C630u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 89u, 0x0893C630u, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C630u) goto L_0893C630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C630: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = 0u == 0u; @@ -1738,13 +2256,39 @@ L_0893C658: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C668u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 93u, 0x0893C668u, 0x0893B3ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 721u, 0x0893B3ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C668u) goto L_0893C668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C668: aot_gpr_31 = (0x0893C670u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 94u, 0x0893C670u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C670u) goto L_0893C670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C670: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); @@ -1760,8 +2304,21 @@ L_0893C680: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C690u); aot_gpr_5 = (aot_gpr_5 + static_cast(-10560)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 96u, 0x0893C690u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C690u) goto L_0893C690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C690: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1795,8 +2352,21 @@ L_0893C6B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893C6BCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 101u, 0x0893C6BCu, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C6BCu) goto L_0893C6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C6BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(36))); aot_gpr_4 = (aot_gpr_4 - aot_gpr_16); @@ -1810,21 +2380,60 @@ L_0893C6CC: ctx.gpr[6] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C6E4u); ctx.gpr[8] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 103u, 0x0893C6E4u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C6E4u) goto L_0893C6E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C6E4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 12u); aot_gpr_31 = (0x0893C6F4u); ctx.gpr[6] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 104u, 0x0893C6F4u, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C6F4u) goto L_0893C6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C6F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893C700u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 105u, 0x0893C700u, 0x08ABDEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 425u, 0x08ABDEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C700u) goto L_0893C700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C700: aot_gpr_4 = (aot_gpr_16 + static_cast(1)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(36), aot_gpr_4); @@ -1842,8 +2451,8 @@ L_0893C708: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C72C: @@ -1876,8 +2485,21 @@ L_0893C764: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C774u); aot_gpr_5 = (aot_gpr_5 + static_cast(-10532)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 110u, 0x0893C774u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C774u) goto L_0893C774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C774: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1897,8 +2519,21 @@ L_0893C784: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C794u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 113u, 0x0893C794u, 0x0893B9A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 791u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 791u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 791u, 0x0893B9A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C794u) goto L_0893C794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C794: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1910,8 +2545,21 @@ L_0893C79C: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_31 = (0x0893C7A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 115u, 0x0893C7A8u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C7A8u) goto L_0893C7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C7A8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C7B4u); @@ -1923,14 +2571,40 @@ L_0893C7B4: ctx.gpr[6] = (0u | 40u); aot_gpr_31 = (0x0893C7C8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 117u, 0x0893C7C8u, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C7C8u) goto L_0893C7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C7C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(28))); aot_gpr_31 = (0x0893C7D4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 118u, 0x0893C7D4u, 0x08ABD094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 222u, 0x08ABD094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C7D4u) goto L_0893C7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C7D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1948,8 +2622,8 @@ L_0893C7DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C7F4: @@ -1996,8 +2670,8 @@ L_0893C840: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-10408))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C858: @@ -2056,8 +2730,21 @@ L_0893C898: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C8A4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 133u, 0x0893C8A4u, 0x0893BFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 851u, 0x0893BFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C8A4u) goto L_0893C8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C8A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2069,8 +2756,21 @@ L_0893C8AC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893C8B8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 135u, 0x0893C8B8u, 0x08ABD558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 280u, 0x08ABD558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C8B8u) goto L_0893C8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C8B8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C8C4u); @@ -2081,8 +2781,21 @@ L_0893C8C4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C8D4u); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 137u, 0x0893C8D4u, 0x08ABDC24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 387u, 0x08ABDC24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C8D4u) goto L_0893C8D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C8D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2093,22 +2806,61 @@ L_0893C8D4: L_0893C8DC: aot_gpr_31 = (0x0893C8E4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 139u, 0x0893C8E4u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C8E4u) goto L_0893C8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C8E4: ctx.gpr[19] = (aot_gpr_29 + static_cast(20)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C8F4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 140u, 0x0893C8F4u, 0x0893B3E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 724u, 0x0893B3E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C8F4u) goto L_0893C8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C8F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893C904u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 141u, 0x0893C904u, 0x08ABD828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 330u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 330u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 330u, 0x08ABD828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C904u) goto L_0893C904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C904: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C910u); @@ -2125,8 +2877,21 @@ L_0893C918: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893C924u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 144u, 0x0893C924u, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C924u) goto L_0893C924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C924: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C930u); @@ -2150,8 +2915,8 @@ L_0893C938: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C954: @@ -2204,28 +2969,67 @@ L_0893C9A4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-10328))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893C9BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(28))); aot_gpr_31 = (0x0893C9C8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 154u, 0x0893C9C8u, 0x08ABCFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 214u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 214u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 214u, 0x08ABCFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C9C8u) goto L_0893C9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C9C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0893C9D8u); ctx.gpr[6] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 155u, 0x0893C9D8u, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C9D8u) goto L_0893C9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C9D8: aot_gpr_31 = (0x0893C9E0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 156u, 0x0893C9E0u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C9E0u) goto L_0893C9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C9E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2238,13 +3042,39 @@ L_0893C9E8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893C9F8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 158u, 0x0893C9F8u, 0x0893B3ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 721u, 0x0893B3ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893C9F8u) goto L_0893C9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893C9F8: aot_gpr_31 = (0x0893CA00u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 159u, 0x0893CA00u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CA00u) goto L_0893CA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CA00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2257,13 +3087,39 @@ L_0893CA08: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0893CA18u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 161u, 0x0893CA18u, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CA18u) goto L_0893CA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CA18: aot_gpr_31 = (0x0893CA20u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 162u, 0x0893CA20u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CA20u) goto L_0893CA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CA20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2276,13 +3132,39 @@ L_0893CA28: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x0893CA38u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 164u, 0x0893CA38u, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CA38u) goto L_0893CA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CA38: aot_gpr_31 = (0x0893CA40u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 165u, 0x0893CA40u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CA40u) goto L_0893CA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CA40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2295,13 +3177,39 @@ L_0893CA48: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x0893CA58u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 167u, 0x0893CA58u, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CA58u) goto L_0893CA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CA58: aot_gpr_31 = (0x0893CA60u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 168u, 0x0893CA60u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CA60u) goto L_0893CA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CA60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2312,8 +3220,21 @@ L_0893CA60: L_0893CA68: aot_gpr_31 = (0x0893CA70u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 170u, 0x0893CA70u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CA70u) goto L_0893CA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CA70: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2342,8 +3263,8 @@ L_0893CA98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CAAC: @@ -2391,8 +3312,8 @@ L_0893CADC: goto L_0893CAE0; L_0893CAE0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CAE8: @@ -2428,8 +3349,8 @@ L_0893CB0C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-10224))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CB24: @@ -2469,8 +3390,8 @@ L_0893CB44: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-10136))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CB5C: @@ -2574,8 +3495,8 @@ L_0893CBBC: goto L_0893CBC0; L_0893CBC0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CBC8: @@ -2606,8 +3527,21 @@ L_0893CC14: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893CC24u); aot_gpr_5 = (aot_gpr_5 + static_cast(-10512)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 206u, 0x0893CC24u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CC24u) goto L_0893CC24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CC24: aot_gpr_31 = (0x0893CC2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); @@ -2624,8 +3558,21 @@ L_0893CC2C: L_0893CC3C: aot_gpr_31 = (0x0893CC44u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 209u, 0x0893CC44u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CC44u) goto L_0893CC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CC44: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -2637,8 +3584,21 @@ L_0893CC54: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0893CC64u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 211u, 0x0893CC64u, 0x08ABDC58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 389u, 0x08ABDC58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CC64u) goto L_0893CC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CC64: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); @@ -2684,15 +3644,41 @@ L_0893CC94: L_0893CCA8: aot_gpr_31 = (0x0893CCB0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 219u, 0x0893CCB0u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CCB0u) goto L_0893CCB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CCB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(28))); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0893CCC0u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 220u, 0x0893CCC0u, 0x08ABDD2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 401u, 0x08ABDD2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CCC0u) goto L_0893CCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CCC0: ctx.gpr[6] = (aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(1))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2706,8 +3692,21 @@ L_0893CCD0: ctx.gpr[6] = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893CCE8u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 222u, 0x0893CCE8u, 0x08ABE034u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 438u, 0x08ABE034u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CCE8u) goto L_0893CCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CCE8: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (ctx.gpr[22] | 0u); @@ -2734,8 +3733,8 @@ L_0893CCF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CD28: @@ -2748,8 +3747,8 @@ L_0893CD38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CD44: @@ -2767,8 +3766,8 @@ L_0893CD54: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-10016))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CD6C: @@ -2784,8 +3783,8 @@ L_0893CD74: goto L_0893CD78; L_0893CD78: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CD80: @@ -2799,8 +3798,21 @@ L_0893CD80: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x0893CDA8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 232u, 0x0893CDA8u, 0x0893BB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 812u, 0x0893BB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CDA8u) goto L_0893CDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CDA8: aot_gpr_31 = (0x0893CDB0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2808,8 +3820,21 @@ L_0893CDA8: L_0893CDB0: aot_gpr_31 = (0x0893CDB8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 234u, 0x0893CDB8u, 0x0893BB60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 813u, 0x0893BB60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CDB8u) goto L_0893CDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CDB8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -2819,8 +3844,8 @@ L_0893CDB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CDCC: @@ -2896,21 +3921,47 @@ L_0893CE40: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0893CE58u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 245u, 0x0893CE58u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CE58u) goto L_0893CE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CE58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893CE64u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 246u, 0x0893CE64u, 0x08ABCDC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 194u, 0x08ABCDC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CE64u) goto L_0893CE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CE64: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CE74: @@ -2945,14 +3996,40 @@ L_0893CEB8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-18336)); aot_gpr_31 = (0x0893CEC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 250u, 0x0893CEC4u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CEC4u) goto L_0893CEC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CEC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893CED0u); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 251u, 0x0893CED0u, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CED0u) goto L_0893CED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CED0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3002,8 +4079,21 @@ L_0893CF2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893CF38u); aot_gpr_5 = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 258u, 0x0893CF38u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CF38u) goto L_0893CF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CF38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893CF44u); @@ -3023,8 +4113,21 @@ L_0893CF50: ctx.gpr[6] = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893CF64u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 261u, 0x0893CF64u, 0x0893BA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 794u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 794u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 794u, 0x0893BA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CF64u) goto L_0893CF64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CF64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); ctx.gpr[6] = (static_cast(ctx.gpr[18]) < static_cast(aot_gpr_17) ? 1u : 0u); @@ -3052,15 +4155,41 @@ L_0893CF8C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893CF9Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 264u, 0x0893CF9Cu, 0x08ABD018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 218u, 0x08ABD018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CF9Cu) goto L_0893CF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CF9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0893CFACu); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 265u, 0x0893CFACu, 0x08ABD704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 310u, 0x08ABD704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CFACu) goto L_0893CFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CFAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3076,15 +4205,41 @@ L_0893CFB8: aot_gpr_5 = (0u | 11u); aot_gpr_31 = (0x0893CFC8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 268u, 0x0893CFC8u, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CFC8u) goto L_0893CFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CFC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0893CFD8u); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 269u, 0x0893CFD8u, 0x08ABD704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 310u, 0x08ABD704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893CFD8u) goto L_0893CFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893CFD8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(44), aot_run_words); @@ -3097,8 +4252,8 @@ L_0893CFD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893CFF8: @@ -3127,14 +4282,40 @@ L_0893D02C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(28))); aot_gpr_31 = (0x0893D038u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 274u, 0x0893D038u, 0x08ABD9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 347u, 0x08ABD9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D038u) goto L_0893D038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D038: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(28))); aot_gpr_31 = (0x0893D044u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 275u, 0x0893D044u, 0x08ABCC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 176u, 0x08ABCC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D044u) goto L_0893D044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D044: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3144,8 +4325,8 @@ L_0893D044: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D058: @@ -3158,19 +4339,58 @@ L_0893D058: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(468), aot_run_words); } aot_gpr_31 = (0x0893D094u); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 277u, 0x0893D094u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D094u) goto L_0893D094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D094: aot_gpr_31 = (0x0893D09Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 278u, 0x0893D09Cu, 0x08ABC824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 121u, 0x08ABC824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D09Cu) goto L_0893D09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D09C: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0893D0A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 279u, 0x0893D0A8u, 0x08ABC95Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 132u, 0x08ABC95Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D0A8u) goto L_0893D0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D0A8: ctx.gpr[21] = (aot_gpr_29 + static_cast(420)); ctx.gpr[20] = (ctx.gpr[2] | 0u); @@ -3197,15 +4417,41 @@ L_0893D0D4: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x0893D0E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 283u, 0x0893D0E4u, 0x08ABDA94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 361u, 0x08ABDA94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D0E4u) goto L_0893D0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D0E4: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(32))); aot_gpr_5 = (aot_gpr_29 + static_cast(436)); aot_gpr_31 = (0x0893D0F4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 284u, 0x0893D0F4u, 0x08ABCCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 179u, 0x08ABCCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D0F4u) goto L_0893D0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D0F4: ctx.gpr[23] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); ctx.gpr[23] = (ctx.gpr[23] - ctx.gpr[20]); @@ -3222,8 +4468,21 @@ L_0893D108: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D118u); aot_gpr_5 = (aot_gpr_5 + static_cast(-10488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 286u, 0x0893D118u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D118u) goto L_0893D118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D118: ctx.gpr[6] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[6]) < static_cast(ctx.gpr[23]) ? 1u : 0u); @@ -3260,19 +4519,58 @@ L_0893D154: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D16Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 290u, 0x0893D16Cu, 0x0893BB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 812u, 0x0893BB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D16Cu) goto L_0893D16C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D16C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D178u); aot_gpr_5 = (0u | 259u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 291u, 0x0893D178u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D178u) goto L_0893D178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D178: aot_gpr_31 = (0x0893D180u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 292u, 0x0893D180u, 0x08ABC95Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 132u, 0x08ABC95Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D180u) goto L_0893D180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D180: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0893D18Cu); @@ -3282,8 +4580,21 @@ L_0893D18C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D198u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 294u, 0x0893D198u, 0x08ABCC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 176u, 0x08ABCC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D198u) goto L_0893D198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D198: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(432))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[22]; @@ -3327,8 +4638,21 @@ L_0893D1DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D1ECu); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 300u, 0x0893D1ECu, 0x08ABDECCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 426u, 0x08ABDECCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D1ECu) goto L_0893D1EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D1EC: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[23]) ? 1u : 0u); @@ -3345,26 +4669,78 @@ L_0893D1FC: ctx.gpr[6] = (0u | 277u); aot_gpr_31 = (0x0893D210u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 302u, 0x0893D210u, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D210u) goto L_0893D210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D210: aot_gpr_31 = (0x0893D218u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 303u, 0x0893D218u, 0x0893BB60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 813u, 0x0893BB60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D218u) goto L_0893D218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D218: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(432))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D228u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 304u, 0x0893D228u, 0x08ABCC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 171u, 0x08ABCC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D228u) goto L_0893D228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D228: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(436))); aot_gpr_31 = (0x0893D234u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 305u, 0x0893D234u, 0x08ABCC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 176u, 0x08ABCC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D234u) goto L_0893D234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D234: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(460), aot_run_words); @@ -3381,8 +4757,8 @@ L_0893D234: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(512)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D264: @@ -3397,21 +4773,60 @@ L_0893D264: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x0893D290u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 307u, 0x0893D290u, 0x08ABC95Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 132u, 0x08ABC95Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D290u) goto L_0893D290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D290: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(20)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D2A4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 308u, 0x0893D2A4u, 0x0893BB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 812u, 0x0893BB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D2A4u) goto L_0893D2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D2A4: aot_gpr_31 = (0x0893D2ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 309u, 0x0893D2ACu, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D2ACu) goto L_0893D2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D2AC: aot_gpr_31 = (0x0893D2B4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3422,8 +4837,21 @@ L_0893D2B4: ctx.gpr[6] = (0u | 272u); aot_gpr_31 = (0x0893D2C8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 311u, 0x0893D2C8u, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D2C8u) goto L_0893D2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D2C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D2D4u); @@ -3434,13 +4862,39 @@ L_0893D2D4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D2E4u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 313u, 0x0893D2E4u, 0x08ABCC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 171u, 0x08ABCC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D2E4u) goto L_0893D2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D2E4: aot_gpr_31 = (0x0893D2ECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 314u, 0x0893D2ECu, 0x0893BB60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 813u, 0x0893BB60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D2ECu) goto L_0893D2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D2EC: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(40), aot_run_words); @@ -3452,8 +4906,8 @@ L_0893D2EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D308: @@ -3469,16 +4923,29 @@ L_0893D320: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0893D330u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 317u, 0x0893D330u, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D330u) goto L_0893D330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D330: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D344: @@ -3498,26 +4965,78 @@ L_0893D344: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x0893D388u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 319u, 0x0893D388u, 0x0893B54Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 734u, 0x0893B54Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D388u) goto L_0893D388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D388: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0893D394u); aot_gpr_5 = (0u | 259u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 320u, 0x0893D394u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D394u) goto L_0893D394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D394: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893D3A4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 321u, 0x0893D3A4u, 0x0893BB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 812u, 0x0893BB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D3A4u) goto L_0893D3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D3A4: aot_gpr_31 = (0x0893D3ACu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 322u, 0x0893D3ACu, 0x08ABC95Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 132u, 0x08ABC95Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D3ACu) goto L_0893D3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D3AC: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0893D3B8u); @@ -3527,8 +5046,21 @@ L_0893D3B8: aot_gpr_5 = (ctx.gpr[19] + static_cast(-1)); aot_gpr_31 = (0x0893D3C4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 324u, 0x0893D3C4u, 0x08ABCC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 176u, 0x08ABCC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D3C4u) goto L_0893D3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D3C4: { const bool branch_taken = aot_gpr_16 == 0u; ctx.gpr[8] = (ctx.gpr[18] + static_cast(-3)); @@ -3544,8 +5076,21 @@ L_0893D3CC: ctx.gpr[6] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0893D3E4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 326u, 0x0893D3E4u, 0x08ABE004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 436u, 0x08ABE004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D3E4u) goto L_0893D3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D3E4: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -3560,8 +5105,21 @@ L_0893D3EC: ctx.gpr[6] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0893D400u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 328u, 0x0893D400u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D400u) goto L_0893D400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D400: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_0893D404; @@ -3569,8 +5127,21 @@ L_0893D404: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0893D410u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 330u, 0x0893D410u, 0x08ABDEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 425u, 0x08ABDEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D410u) goto L_0893D410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D410: { const bool branch_taken = aot_gpr_16 != 0u; aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -3582,8 +5153,21 @@ L_0893D410: L_0893D418: aot_gpr_31 = (0x0893D420u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 332u, 0x0893D420u, 0x08ABC824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 121u, 0x08ABC824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D420u) goto L_0893D420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D420: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -3592,13 +5176,39 @@ L_0893D428: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D434u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 334u, 0x0893D434u, 0x08ABCC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 171u, 0x08ABCC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D434u) goto L_0893D434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D434: aot_gpr_31 = (0x0893D43Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 335u, 0x0893D43Cu, 0x0893BB60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 813u, 0x0893BB60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D43Cu) goto L_0893D43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D43C: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -3613,8 +5223,8 @@ L_0893D43C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D464: @@ -3631,28 +5241,80 @@ L_0893D464: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x0893D498u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 337u, 0x0893D498u, 0x0893B4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 731u, 0x0893B4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D498u) goto L_0893D498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D498: aot_gpr_5 = (ctx.gpr[28] + static_cast(-18320)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D4A8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 338u, 0x0893D4A8u, 0x0893B604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 741u, 0x0893B604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D4A8u) goto L_0893D4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D4A8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-18308)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D4B8u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 339u, 0x0893D4B8u, 0x0893B604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 741u, 0x0893B604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D4B8u) goto L_0893D4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D4B8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D4C4u); aot_gpr_5 = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 340u, 0x0893D4C4u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D4C4u) goto L_0893D4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D4C4: aot_gpr_31 = (0x0893D4CCu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3661,8 +5323,21 @@ L_0893D4CC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D4D8u); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 342u, 0x0893D4D8u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D4D8u) goto L_0893D4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D4D8: aot_gpr_31 = (0x0893D4E0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3671,8 +5346,21 @@ L_0893D4E0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D4ECu); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 344u, 0x0893D4ECu, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D4ECu) goto L_0893D4EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D4EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3700,22 +5388,61 @@ L_0893D50C: aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x0893D520u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 348u, 0x0893D520u, 0x08ABCFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 214u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 214u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 214u, 0x08ABCFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D520u) goto L_0893D520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D520: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 1u); ctx.gpr[6] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0893D534u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 349u, 0x0893D534u, 0x08ABE004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 436u, 0x08ABE004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D534u) goto L_0893D534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D534: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893D540u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 350u, 0x0893D540u, 0x08ABCDC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 194u, 0x08ABCDC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D540u) goto L_0893D540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D540: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); aot_gpr_5 = (aot_gpr_4 + static_cast(-3)); @@ -3728,13 +5455,39 @@ L_0893D54C: aot_gpr_5 = (0u | 13u); aot_gpr_31 = (0x0893D564u); ctx.gpr[6] = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 352u, 0x0893D564u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D564u) goto L_0893D564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D564: aot_gpr_31 = (0x0893D56Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 353u, 0x0893D56Cu, 0x08ABC824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 121u, 0x08ABC824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D56Cu) goto L_0893D56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D56C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -3755,8 +5508,8 @@ L_0893D584: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D5A4: @@ -3774,31 +5527,83 @@ L_0893D5A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x0893D5DCu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 356u, 0x0893D5DCu, 0x0893B604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 741u, 0x0893B604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D5DCu) goto L_0893D5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D5DC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-18280)); ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x0893D5ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 357u, 0x0893D5ECu, 0x0893B604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 741u, 0x0893B604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D5ECu) goto L_0893D5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D5EC: ctx.gpr[6] = (0u | 2u); ctx.gpr[18] = (0u | 3u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D600u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 358u, 0x0893D600u, 0x0893B4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 731u, 0x0893B4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D600u) goto L_0893D600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D600: aot_gpr_4 = (aot_gpr_16 | 0u); goto L_0893D604; L_0893D604: aot_gpr_31 = (0x0893D60Cu); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 360u, 0x0893D60Cu, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D60Cu) goto L_0893D60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D60C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3809,16 +5614,42 @@ L_0893D60C: L_0893D614: aot_gpr_31 = (0x0893D61Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 362u, 0x0893D61Cu, 0x0893B34Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 715u, 0x0893B34Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D61Cu) goto L_0893D61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D61C: ctx.gpr[6] = (ctx.gpr[18] | 0u); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D630u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 363u, 0x0893D630u, 0x0893B4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 731u, 0x0893B4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D630u) goto L_0893D630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D630: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3831,8 +5662,21 @@ L_0893D638: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D644u); aot_gpr_5 = (0u | 267u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 365u, 0x0893D644u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D644u) goto L_0893D644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D644: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3845,14 +5689,40 @@ L_0893D654: ctx.gpr[6] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0893D668u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 367u, 0x0893D668u, 0x0893BA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 794u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 794u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 794u, 0x0893BA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D668u) goto L_0893D668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D668: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893D674u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 368u, 0x0893D674u, 0x08ABCD5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 188u, 0x08ABCD5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D674u) goto L_0893D674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D674: ctx.gpr[7] = (2u << 16u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -3860,8 +5730,21 @@ L_0893D674: ctx.gpr[6] = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D68Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 369u, 0x0893D68Cu, 0x08ABE004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 436u, 0x08ABE004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D68Cu) goto L_0893D68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D68C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -3882,8 +5765,8 @@ L_0893D6A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D6C4: @@ -3899,18 +5782,57 @@ L_0893D6C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0893D6F4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 372u, 0x0893D6F4u, 0x0893BB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 812u, 0x0893BB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D6F4u) goto L_0893D6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D6F4: aot_gpr_31 = (0x0893D6FCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 373u, 0x0893D6FCu, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D6FCu) goto L_0893D6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D6FC: aot_gpr_31 = (0x0893D704u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 374u, 0x0893D704u, 0x0893B34Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 715u, 0x0893B34Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D704u) goto L_0893D704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D704: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(12))); ctx.gpr[6] = (0u | 267u); @@ -3965,21 +5887,60 @@ L_0893D74C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D75Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-10456)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 382u, 0x0893D75Cu, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D75Cu) goto L_0893D75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D75C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 262u); ctx.gpr[6] = (0u | 264u); aot_gpr_31 = (0x0893D770u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 383u, 0x0893D770u, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D770u) goto L_0893D770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D770: aot_gpr_31 = (0x0893D778u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 384u, 0x0893D778u, 0x0893BB60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 813u, 0x0893BB60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D778u) goto L_0893D778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D778: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -3990,8 +5951,8 @@ L_0893D778: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D790: @@ -4002,8 +5963,21 @@ L_0893D790: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0893D7ACu); aot_gpr_17 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 386u, 0x0893D7ACu, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D7ACu) goto L_0893D7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D7AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D7B8u); @@ -4013,8 +5987,21 @@ L_0893D7B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D7C4u); aot_gpr_5 = (0u | 274u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 388u, 0x0893D7C4u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D7C4u) goto L_0893D7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D7C4: aot_gpr_31 = (0x0893D7CCu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4028,8 +6015,8 @@ L_0893D7CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D7E0: @@ -4062,21 +6049,60 @@ L_0893D81C: L_0893D82C: aot_gpr_31 = (0x0893D834u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 393u, 0x0893D834u, 0x08ABC824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 121u, 0x08ABC824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D834u) goto L_0893D834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D834: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D844u); ctx.gpr[6] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 394u, 0x0893D844u, 0x08ABCCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 179u, 0x08ABCCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D844u) goto L_0893D844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D844: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x0893D850u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 395u, 0x0893D850u, 0x08ABCC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 176u, 0x08ABCC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D850u) goto L_0893D850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D850: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D85Cu); @@ -4101,26 +6127,78 @@ L_0893D868: L_0893D874: aot_gpr_31 = (0x0893D87Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 399u, 0x0893D87Cu, 0x08ABC824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 121u, 0x08ABC824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D87Cu) goto L_0893D87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D87C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893D88Cu); ctx.gpr[6] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 400u, 0x0893D88Cu, 0x08ABCCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 179u, 0x08ABCCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D88Cu) goto L_0893D88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D88C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x0893D898u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 401u, 0x0893D898u, 0x08ABCC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 176u, 0x08ABCC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D898u) goto L_0893D898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D898: aot_gpr_31 = (0x0893D8A0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 402u, 0x0893D8A0u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D8A0u) goto L_0893D8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D8A0: aot_gpr_31 = (0x0893D8A8u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -4138,8 +6216,21 @@ L_0893D8B0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893D8C0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 405u, 0x0893D8C0u, 0x08ABCCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 179u, 0x08ABCCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D8C0u) goto L_0893D8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D8C0: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); goto L_0893D8C4; @@ -4147,16 +6238,42 @@ L_0893D8C4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0893D8D0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 407u, 0x0893D8D0u, 0x08ABCC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 176u, 0x08ABCC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D8D0u) goto L_0893D8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D8D0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 262u); ctx.gpr[6] = (0u | 266u); aot_gpr_31 = (0x0893D8E4u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 408u, 0x0893D8E4u, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D8E4u) goto L_0893D8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D8E4: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -4169,8 +6286,8 @@ L_0893D8E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D904: @@ -4181,34 +6298,99 @@ L_0893D904: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(44), aot_run_words); } aot_gpr_31 = (0x0893D924u); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 410u, 0x0893D924u, 0x0893B34Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 715u, 0x0893B34Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D924u) goto L_0893D924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D924: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0893D934u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 411u, 0x0893D934u, 0x0893B4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 731u, 0x0893B4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D934u) goto L_0893D934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D934: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(36))); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893D944u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 412u, 0x0893D944u, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D944u) goto L_0893D944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D944: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893D950u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 413u, 0x0893D950u, 0x08ABCDC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 194u, 0x08ABCDC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D950u) goto L_0893D950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D950: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893D95Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 414u, 0x0893D95Cu, 0x0893B54Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 734u, 0x0893B54Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D95Cu) goto L_0893D95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D95C: ctx.gpr[18] = (aot_gpr_29 + static_cast(20)); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -4222,8 +6404,21 @@ L_0893D974: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893D984u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 416u, 0x0893D984u, 0x08ABD704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 310u, 0x08ABD704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D984u) goto L_0893D984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D984: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(52))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(0))); @@ -4246,8 +6441,8 @@ L_0893D984: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893D9CC: @@ -4261,22 +6456,61 @@ L_0893D9CC: L_0893D9E4: aot_gpr_31 = (0x0893D9ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 419u, 0x0893D9ECu, 0x0893B34Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 715u, 0x0893B34Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893D9ECu) goto L_0893D9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893D9EC: ctx.gpr[6] = (aot_gpr_17 | 0u); aot_gpr_17 = (aot_gpr_17 + static_cast(1)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DA00u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 420u, 0x0893DA00u, 0x0893B4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 731u, 0x0893B4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DA00u) goto L_0893DA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DA00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DA0Cu); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 421u, 0x0893DA0Cu, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DA0Cu) goto L_0893DA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DA0C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4288,8 +6522,21 @@ L_0893DA14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DA20u); aot_gpr_5 = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 423u, 0x0893DA20u, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DA20u) goto L_0893DA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DA20: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4320,14 +6567,40 @@ L_0893DA44: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893DA58u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 428u, 0x0893DA58u, 0x0893BA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 794u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 794u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 794u, 0x0893BA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DA58u) goto L_0893DA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DA58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DA64u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 429u, 0x0893DA64u, 0x0893B54Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 734u, 0x0893B54Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DA64u) goto L_0893DA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DA64: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -4337,8 +6610,8 @@ L_0893DA64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DA78: @@ -4353,8 +6626,21 @@ L_0893DA78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0893DAA4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 431u, 0x0893DAA4u, 0x0893B9A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 791u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 791u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 791u, 0x0893B9A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DAA4u) goto L_0893DAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DAA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(12))); ctx.gpr[18] = (0u | 46u); @@ -4368,8 +6654,21 @@ L_0893DAB4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893DAC0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 433u, 0x0893DAC0u, 0x0893BFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 851u, 0x0893BFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DAC0u) goto L_0893DAC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DAC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[18]; @@ -4391,8 +6690,21 @@ L_0893DAD8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893DAE8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 436u, 0x0893DAE8u, 0x0893BFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 851u, 0x0893BFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DAE8u) goto L_0893DAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DAE8: ctx.gpr[2] = (ctx.gpr[19] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -4405,8 +6717,8 @@ L_0893DAE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DB08: @@ -4417,8 +6729,21 @@ L_0893DB08: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(44), aot_run_words); } aot_gpr_31 = (0x0893DB28u); aot_gpr_17 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 438u, 0x0893DB28u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DB28u) goto L_0893DB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DB28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DB34u); @@ -4437,14 +6762,40 @@ L_0893DB4C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893DB5Cu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 441u, 0x0893DB5Cu, 0x08ABD704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 310u, 0x08ABD704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DB5Cu) goto L_0893DB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DB5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_31 = (0x0893DB68u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 442u, 0x0893DB68u, 0x08ABDEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 425u, 0x08ABDEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DB68u) goto L_0893DB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DB68: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(40), aot_run_words); @@ -4455,8 +6806,8 @@ L_0893DB68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DB80: @@ -4485,8 +6836,21 @@ L_0893DBB8: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893DBC8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 446u, 0x0893DBC8u, 0x08ABD018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 218u, 0x08ABD018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DBC8u) goto L_0893DBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DBC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4511,8 +6875,8 @@ L_0893DBE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DBFC: @@ -4524,8 +6888,21 @@ L_0893DBFC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0893DC1Cu); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 450u, 0x0893DC1Cu, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DC1Cu) goto L_0893DC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DC1C: aot_gpr_31 = (0x0893DC24u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); @@ -4576,8 +6953,21 @@ L_0893DC68: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0893DC78u); ctx.gpr[6] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 457u, 0x0893DC78u, 0x08ABD018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 218u, 0x08ABD018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DC78u) goto L_0893DC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DC78: { const bool branch_taken = ctx.gpr[18] != aot_gpr_17; if (branch_taken) { @@ -4619,8 +7009,21 @@ L_0893DCC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DCCCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 462u, 0x0893DCCCu, 0x08ABD558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 280u, 0x08ABD558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DCCCu) goto L_0893DCCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DCCC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -4633,8 +7036,21 @@ L_0893DCD4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DCE0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 464u, 0x0893DCE0u, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DCE0u) goto L_0893DCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DCE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); goto L_0893DCE4; @@ -4645,8 +7061,21 @@ L_0893DCE4: ctx.gpr[7] = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0893DCFCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 466u, 0x0893DCFCu, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DCFCu) goto L_0893DCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DCFC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -4657,8 +7086,8 @@ L_0893DCFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DD14: @@ -4673,8 +7102,21 @@ L_0893DD14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0893DD40u); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 468u, 0x0893DD40u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DD40u) goto L_0893DD40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DD40: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -4712,8 +7154,21 @@ L_0893DD6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DD7Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-10432)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 473u, 0x0893DD7Cu, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DD7Cu) goto L_0893DD7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DD7C: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -4728,21 +7183,60 @@ L_0893DD84: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0893DD9Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 475u, 0x0893DD9Cu, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DD9Cu) goto L_0893DD9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DD9C: aot_gpr_16 = (ctx.gpr[18] + static_cast(4)); aot_gpr_31 = (0x0893DDA8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 476u, 0x0893DDA8u, 0x08ABC824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 121u, 0x08ABC824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DDA8u) goto L_0893DDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DDA8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DDB8u); ctx.gpr[6] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 477u, 0x0893DDB8u, 0x08ABCCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 179u, 0x08ABCCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DDB8u) goto L_0893DDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DDB8: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4754,8 +7248,8 @@ L_0893DDB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DDD4: @@ -4780,8 +7274,8 @@ L_0893DDFC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-9896))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DE14: @@ -4813,8 +7307,21 @@ L_0893DE34: L_0893DE3C: aot_gpr_31 = (0x0893DE44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 485u, 0x0893DE44u, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DE44u) goto L_0893DE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DE44: aot_gpr_31 = (0x0893DE4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4825,8 +7332,21 @@ L_0893DE4C: ctx.gpr[6] = (0u | 259u); aot_gpr_31 = (0x0893DE60u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 487u, 0x0893DE60u, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DE60u) goto L_0893DE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DE60: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -4877,14 +7397,40 @@ L_0893DE9C: L_0893DEA4: aot_gpr_31 = (0x0893DEACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 495u, 0x0893DEACu, 0x0893B11Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 685u, 0x0893B11Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DEACu) goto L_0893DEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DEAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DEB8u); aot_gpr_5 = (0u | 265u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 496u, 0x0893DEB8u, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DEB8u) goto L_0893DEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DEB8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4955,8 +7501,8 @@ L_0893DF0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DF20: @@ -4981,8 +7527,21 @@ L_0893DF4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DF5Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-10512)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 510u, 0x0893DF5Cu, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DF5Cu) goto L_0893DF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DF5C: { const bool branch_taken = aot_gpr_17 != 0u; if (branch_taken) { @@ -5010,8 +7569,21 @@ L_0893DF7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893DF8Cu); aot_gpr_5 = (0u | 59u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 515u, 0x0893DF8Cu, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893DF8Cu) goto L_0893DF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893DF8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(52))); @@ -5034,8 +7606,8 @@ L_0893DF9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893DFBC: @@ -5057,8 +7629,21 @@ L_0893DFBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_31); aot_gpr_31 = (0x0893E008u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 518u, 0x0893E008u, 0x08ABDFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 434u, 0x08ABDFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E008u) goto L_0893E008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E008: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), 0u); @@ -5069,27 +7654,79 @@ L_0893E008: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x0893E02Cu); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 519u, 0x0893E02Cu, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E02Cu) goto L_0893E02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E02C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0893E03Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 520u, 0x0893E03Cu, 0x0893B394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 720u, 0x0893B394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E03Cu) goto L_0893E03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E03C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_31 = (0x0893E048u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 521u, 0x0893E048u, 0x08ABD4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 275u, 0x08ABD4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E048u) goto L_0893E048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E048: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893E054u); aot_gpr_5 = (0u | 123u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 522u, 0x0893E054u, 0x0893B23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 701u, 0x0893B23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E054u) goto L_0893E054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E054: ctx.gpr[19] = (0u | 125u); ctx.gpr[18] = (0u | 278u); @@ -5099,8 +7736,21 @@ L_0893E060: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893E06Cu); aot_gpr_5 = (0u | 59u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 524u, 0x0893E06Cu, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E06Cu) goto L_0893E06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E06C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -5160,8 +7810,21 @@ L_0893E0BC: L_0893E0C4: aot_gpr_31 = (0x0893E0CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 533u, 0x0893E0CCu, 0x0893B184u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 690u, 0x0893B184u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E0CCu) goto L_0893E0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E0CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); { const bool branch_taken = aot_gpr_4 == aot_gpr_17; @@ -5203,8 +7866,21 @@ L_0893E10C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893E118u); aot_gpr_5 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 540u, 0x0893E118u, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E118u) goto L_0893E118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E118: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5216,8 +7892,21 @@ L_0893E118: L_0893E120: aot_gpr_31 = (0x0893E128u); aot_gpr_5 = (0u | 59u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 542u, 0x0893E128u, 0x0893B208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 696u, 0x0893B208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E128u) goto L_0893E128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E128: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5231,8 +7920,21 @@ L_0893E130: ctx.gpr[6] = (0u | 123u); aot_gpr_31 = (0x0893E144u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 544u, 0x0893E144u, 0x0893B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 705u, 0x0893B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E144u) goto L_0893E144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E144: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0893E150u); @@ -5250,8 +7952,21 @@ L_0893E150: aot_gpr_17 = (aot_gpr_4 & ctx.gpr[6]); aot_gpr_31 = (0x0893E17Cu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 546u, 0x0893E17Cu, 0x088B9600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 292u, 0x088B9600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E17Cu) goto L_0893E17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E17C: aot_gpr_5 = (256u << 16u); aot_gpr_4 = (ctx.gpr[2] << 15u); @@ -5271,8 +7986,21 @@ L_0893E17C: aot_gpr_4 = (ctx.gpr[6] | 0u); aot_gpr_31 = (0x0893E1C4u); aot_gpr_17 = (ctx.gpr[7] & aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 547u, 0x0893E1C4u, 0x088B962Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 295u, 0x088B962Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E1C4u) goto L_0893E1C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E1C4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_4 = (ctx.gpr[2] + static_cast(1)); @@ -5295,15 +8023,15 @@ L_0893E1C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893E20C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893E214: @@ -5373,8 +8101,21 @@ L_0893E278: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0893E300u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 552u, 0x0893E300u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E300u) goto L_0893E300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E300: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(28))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -5398,8 +8139,21 @@ L_0893E31C: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0893E338u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 555u, 0x0893E338u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E338u) goto L_0893E338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E338: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5413,8 +8167,8 @@ L_0893E338: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893E35C: @@ -5570,8 +8324,21 @@ L_0893E474: L_0893E480: aot_gpr_31 = (0x0893E488u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 578u, 0x0893E488u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E488u) goto L_0893E488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E488: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -5602,8 +8369,21 @@ L_0893E4A4: } L_0893E4AC: aot_gpr_31 = (0x0893E4B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 583u, 0x0893E4B4u, 0x0888FEB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 620u, 0x0888FEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E4B4u) goto L_0893E4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E4B4: { const bool branch_taken = ctx.gpr[22] != 0u; if (branch_taken) { @@ -5654,8 +8434,21 @@ L_0893E4F0: L_0893E508: aot_gpr_31 = (0x0893E510u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 590u, 0x0893E510u, 0x088E25C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 197u, 0x088E25C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E510u) goto L_0893E510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E510: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); goto L_0893E514; @@ -5704,8 +8497,21 @@ L_0893E550: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x0893E578u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 596u, 0x0893E578u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E578u) goto L_0893E578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E578: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(28))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -5719,8 +8525,21 @@ L_0893E58C: aot_gpr_4 = (aot_gpr_17 + static_cast(32)); aot_gpr_31 = (0x0893E598u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 598u, 0x0893E598u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E598u) goto L_0893E598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E598: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(32))); @@ -5746,8 +8565,8 @@ L_0893E5A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893E5E0: @@ -5787,8 +8606,8 @@ L_0893E60C: goto L_0893E610; L_0893E610: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893E618: @@ -5919,8 +8738,21 @@ L_0893E730: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0893E73Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 619u, 0x0893E73Cu, 0x0886D308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 171u, 0x0886D308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E73Cu) goto L_0893E73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E73C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_5 = (aot_gpr_4 + ctx.gpr[21]); @@ -5939,8 +8771,21 @@ L_0893E73C: aot_gpr_4 = (ctx.gpr[6] | 0u); aot_gpr_31 = (0x0893E780u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 620u, 0x0893E780u, 0x088E23CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 165u, 0x088E23CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E780u) goto L_0893E780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E780: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_16 = (0u | 0u); @@ -5969,8 +8814,21 @@ L_0893E7A8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x0893E7D0u); aot_gpr_5 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 623u, 0x0893E7D0u, 0x088E2798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 231u, 0x088E2798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E7D0u) goto L_0893E7D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E7D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_17); @@ -6001,8 +8859,21 @@ L_0893E7D0: L_0893E824: aot_gpr_31 = (0x0893E82Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 625u, 0x0893E82Cu, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E82Cu) goto L_0893E82C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E82C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6015,13 +8886,39 @@ L_0893E834: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0893E844u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 627u, 0x0893E844u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E844u) goto L_0893E844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E844: aot_gpr_31 = (0x0893E84Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 628u, 0x0893E84Cu, 0x089D868Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 74u, 0x089D868Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E84Cu) goto L_0893E84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E84C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); ctx.gpr[20] = (aot_gpr_4 + ctx.gpr[23]); @@ -6054,8 +8951,8 @@ L_0893E86C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893E89C: @@ -6071,14 +8968,27 @@ L_0893E89C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0893E8CCu); aot_gpr_5 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 632u, 0x0893E8CCu, 0x088E2810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 234u, 0x088E2810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E8CCu) goto L_0893E8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E8CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893E8D8: @@ -6094,14 +9004,27 @@ L_0893E8D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0893E908u); aot_gpr_5 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 634u, 0x0893E908u, 0x088E2798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 231u, 0x088E2798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E908u) goto L_0893E908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E908: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893E914: @@ -6174,8 +9097,21 @@ L_0893E998: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0893E9A4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 643u, 0x0893E9A4u, 0x0889057Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 89u, 0x0889057Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E9A4u) goto L_0893E9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E9A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -6190,8 +9126,21 @@ L_0893E9B4: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0893E9C0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 645u, 0x0893E9C0u, 0x088905CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 93u, 0x088905CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E9C0u) goto L_0893E9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E9C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6203,8 +9152,21 @@ L_0893E9C8: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0893E9D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 647u, 0x0893E9D4u, 0x088905CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 93u, 0x088905CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893E9D4u) goto L_0893E9D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893E9D4: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(64), static_cast(aot_gpr_4)); @@ -6232,8 +9194,8 @@ L_0893E9F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EA14: @@ -6489,8 +9451,21 @@ L_0893EC2C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0893EC38u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 678u, 0x0893EC38u, 0x088905CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 93u, 0x088905CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893EC38u) goto L_0893EC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893EC38: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_0893EC3C; @@ -6511,8 +9486,8 @@ L_0893EC3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EC70: @@ -6523,8 +9498,8 @@ L_0893EC70: aot_gpr_4 = (aot_gpr_4 - ctx.gpr[6]); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EC8C: @@ -6560,8 +9535,21 @@ L_0893ECD8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0893ECECu); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 684u, 0x0893ECECu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893ECECu) goto L_0893ECEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893ECEC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); @@ -6615,8 +9603,8 @@ L_0893ED28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893ED4C: @@ -6655,8 +9643,8 @@ L_0893ED90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EDA0: @@ -6673,8 +9661,8 @@ L_0893EDA0: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(22), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EDD4: @@ -6702,14 +9690,27 @@ L_0893EDD4: } L_0893EE1C: aot_gpr_31 = (0x0893EE24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 698u, 0x0893EE24u, 0x08AD3464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 570u, 0x08AD3464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893EE24u) goto L_0893EE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893EE24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EE30: @@ -6726,8 +9727,8 @@ L_0893EE30: aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(22), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EE64: @@ -6742,8 +9743,8 @@ L_0893EE64: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(22)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EE90: @@ -6776,8 +9777,21 @@ L_0893EEE8: aot_gpr_4 = (ctx.gpr[19] + static_cast(4)); aot_gpr_31 = (0x0893EEF4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 703u, 0x0893EEF4u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893EEF4u) goto L_0893EEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893EEF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6825,8 +9839,8 @@ L_0893EF24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EF40: @@ -6865,8 +9879,21 @@ L_0893EF8C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0893EF98u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 713u, 0x0893EF98u, 0x0889057Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 89u, 0x0889057Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893EF98u) goto L_0893EF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893EF98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -6882,8 +9909,21 @@ L_0893EFAC: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0893EFB8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 715u, 0x0893EFB8u, 0x088905CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 93u, 0x088905CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893EFB8u) goto L_0893EFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893EFB8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(0))); goto L_0893EFBC; @@ -6914,8 +9954,8 @@ L_0893EFCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893EFFC: @@ -6971,8 +10011,8 @@ L_0893EFFC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F024: @@ -6980,8 +10020,8 @@ L_0893F024: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1048), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F034: @@ -7160,8 +10200,21 @@ L_0893F1B8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(24), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0893F1D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 731u, 0x0893F1D8u, 0x08940198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 21u, 0x08940198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F1D8u) goto L_0893F1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F1D8: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); @@ -7355,8 +10408,21 @@ L_0893F290: L_0893F2A4: aot_gpr_31 = (0x0893F2ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 734u, 0x0893F2ACu, 0x08940668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 73u, 0x08940668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F2ACu) goto L_0893F2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F2AC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(5))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7401,8 +10467,8 @@ L_0893F2D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F318: @@ -7545,8 +10611,21 @@ L_0893F404: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x0893F418u); ctx.gpr[7] = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 749u, 0x0893F418u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F418u) goto L_0893F418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F418: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7560,19 +10639,45 @@ L_0893F420: aot_gpr_4 = (0u | 2u); aot_gpr_31 = (0x0893F434u); ctx.gpr[6] = (0u | 62u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 751u, 0x0893F434u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F434u) goto L_0893F434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F434: aot_gpr_31 = (0x0893F43Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 752u, 0x0893F43Cu, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F43Cu) goto L_0893F43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F43C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F44C: @@ -7669,8 +10774,21 @@ L_0893F4FC: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x0893F508u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 764u, 0x0893F508u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F508u) goto L_0893F508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F508: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -7684,8 +10802,21 @@ L_0893F514: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0893F520u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 766u, 0x0893F520u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F520u) goto L_0893F520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F520: ctx.gpr[20] = (ctx.gpr[21] | 0u); goto L_0893F524; @@ -7730,8 +10861,21 @@ L_0893F53C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); aot_gpr_31 = (0x0893F590u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1044))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 771u, 0x0893F590u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F590u) goto L_0893F590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F590: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1044))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -7739,8 +10883,21 @@ L_0893F590: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); aot_gpr_31 = (0x0893F5A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1044))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 772u, 0x0893F5A8u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F5A8u) goto L_0893F5A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F5A8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1048), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1052), 0u); @@ -7759,8 +10916,8 @@ L_0893F5B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F5D8: @@ -7792,8 +10949,8 @@ L_0893F5D8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1056), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F620: @@ -7824,8 +10981,21 @@ L_0893F644: L_0893F650: aot_gpr_31 = (0x0893F658u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 779u, 0x0893F658u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F658u) goto L_0893F658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F658: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1044))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7855,8 +11025,8 @@ L_0893F684: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F698: @@ -7985,8 +11155,21 @@ L_0893F774: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0893F78Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 797u, 0x0893F78Cu, 0x08940150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 19u, 0x08940150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F78Cu) goto L_0893F78C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F78C: aot_fpr_12 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(ctx.fpr[0])}; @@ -8130,8 +11313,21 @@ L_0893F854: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1048))); aot_gpr_31 = (0x0893F864u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 803u, 0x0893F864u, 0x08940150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 19u, 0x08940150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F864u) goto L_0893F864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F864: ctx.fpr[22] = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[0])}; @@ -8172,8 +11368,21 @@ L_0893F884: L_0893F8DC: aot_gpr_31 = (0x0893F8E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 806u, 0x0893F8E4u, 0x08940198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 21u, 0x08940198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893F8E4u) goto L_0893F8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893F8E4: aot_gpr_4 = (15616u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8233,8 +11442,8 @@ L_0893F948: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F970: @@ -8263,8 +11472,8 @@ L_0893F994: aot_gpr_5 = (0u | 60u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1052), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F9B8: @@ -8285,8 +11494,8 @@ L_0893F9C4: } L_0893F9D8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893F9E0: @@ -8328,8 +11537,8 @@ L_0893FA20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893FA34: @@ -8371,8 +11580,8 @@ L_0893FA74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893FA88: @@ -8614,8 +11823,21 @@ L_0893FC98: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x0893FCC4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0078->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0078_entry, 843u, 0x0893FCC4u, 0x08940198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 21u, 0x08940198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0893FCC4u) goto L_0893FCC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0893FCC4: aot_gpr_4 = (15616u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8827,8 +12049,8 @@ L_0893FE58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893FE6C: @@ -8892,8 +12114,8 @@ L_0893FEB8: goto L_0893FEC8; L_0893FEC8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0893FED0: diff --git a/profiles/vcs/generated/generated_unit_0079.cpp b/profiles/vcs/generated/generated_unit_0079.cpp index 8404567..dd2c6fc 100644 --- a/profiles/vcs/generated/generated_unit_0079.cpp +++ b/profiles/vcs/generated/generated_unit_0079.cpp @@ -625,6 +625,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08940000u; + if (local_delta_v813 >= 16336u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -704,8 +728,8 @@ L_08940040: L_08940044: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894004C: @@ -715,8 +739,21 @@ L_0894004C: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08940068u); aot_gpr_4 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 6u, 0x08940068u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940068u) goto L_08940068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940068: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -746,8 +783,21 @@ L_08940070: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x08940098u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 8u, 0x08940098u, 0x0893FA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 828u, 0x0893FA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940098u) goto L_08940098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940098: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -762,8 +812,21 @@ L_089400A0: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089400B8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 10u, 0x089400B8u, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089400B8u) goto L_089400B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089400B8: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); @@ -820,8 +883,21 @@ L_08940110: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08940128u); aot_gpr_7 = (0u | 167u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 17u, 0x08940128u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940128u) goto L_08940128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940128: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-18208))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -838,8 +914,8 @@ L_0894013C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08940150: @@ -852,8 +928,8 @@ L_08940150: aot_gpr_4 = (aot_gpr_4 + static_cast(32)); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08940174: @@ -866,8 +942,8 @@ L_08940174: aot_gpr_4 = (aot_gpr_4 + static_cast(16)); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08940198: @@ -877,8 +953,8 @@ L_08940198: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089401B0: @@ -923,8 +999,8 @@ L_089401E8: goto L_089401EC; L_089401EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089401F4: @@ -1110,8 +1186,21 @@ L_0894031C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1044))); aot_gpr_31 = (0x0894033Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 43u, 0x0894033Cu, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894033Cu) goto L_0894033C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894033C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(116), std::bit_cast(aot_fpr_20)); @@ -1257,8 +1346,21 @@ L_089403F8: aot_gpr_4 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x0894041Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 50u, 0x0894041Cu, 0x0893EFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 719u, 0x0893EFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894041Cu) goto L_0894041C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894041C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -1320,8 +1422,21 @@ L_0894048C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); aot_gpr_31 = (0x089404B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1048))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 55u, 0x089404B8u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089404B8u) goto L_089404B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089404B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1048))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -1340,8 +1455,21 @@ L_089404B8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); aot_gpr_31 = (0x089404FCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 56u, 0x089404FCu, 0x0882BBD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 435u, 0x0882BBD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089404FCu) goto L_089404FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089404FC: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -1487,8 +1615,21 @@ L_089405E4: L_089405F0: aot_gpr_31 = (0x089405F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 67u, 0x089405F8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089405F8u) goto L_089405F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089405F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1516,8 +1657,21 @@ L_08940610: L_0894061C: aot_gpr_31 = (0x08940624u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 71u, 0x08940624u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940624u) goto L_08940624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940624: aot_gpr_4 = (ctx.gpr[19] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1545,8 +1699,8 @@ L_08940630: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08940668: @@ -1682,8 +1836,21 @@ L_089407C8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089407ECu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 84u, 0x089407ECu, 0x0893EFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 719u, 0x0893EFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089407ECu) goto L_089407EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089407EC: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1950,8 +2117,21 @@ L_08940818: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08940918u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 88u, 0x08940918u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940918u) goto L_08940918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940918: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2046,8 +2226,21 @@ L_08940974: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08940994u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 90u, 0x08940994u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940994u) goto L_08940994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940994: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089409A0u); @@ -2125,8 +2318,21 @@ L_089409A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089409F4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 92u, 0x089409F4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089409F4u) goto L_089409F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089409F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1040))); aot_gpr_5 = (std::bit_cast(ctx.fpr[22])); @@ -2171,8 +2377,21 @@ L_089409F4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08940A28u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 93u, 0x08940A28u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940A28u) goto L_08940A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940A28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1048))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2185,8 +2404,21 @@ L_08940A34: aot_gpr_4 = (aot_gpr_29 + static_cast(256)); aot_gpr_31 = (0x08940A40u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 95u, 0x08940A40u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940A40u) goto L_08940A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940A40: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2246,8 +2478,21 @@ L_08940A40: aot_gpr_4 = (aot_gpr_29 + static_cast(336)); aot_gpr_31 = (0x08940B04u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 96u, 0x08940B04u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940B04u) goto L_08940B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940B04: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -2320,8 +2565,21 @@ L_08940BEC: L_08940BF8: aot_gpr_31 = (0x08940C00u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(400))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 99u, 0x08940C00u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940C00u) goto L_08940C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940C00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(328))); goto L_08940C04; @@ -2344,8 +2602,21 @@ L_08940C10: L_08940C1C: aot_gpr_31 = (0x08940C24u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(320))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 103u, 0x08940C24u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940C24u) goto L_08940C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940C24: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2413,8 +2684,21 @@ L_08940C2C: L_08940CE4: aot_gpr_31 = (0x08940CECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 106u, 0x08940CECu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940CECu) goto L_08940CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940CEC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -2453,8 +2737,21 @@ L_08940D1C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08940D34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 111u, 0x08940D34u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940D34u) goto L_08940D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940D34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1048))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2468,15 +2765,41 @@ L_08940D40: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1048))); aot_gpr_31 = (0x08940D50u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 113u, 0x08940D50u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940D50u) goto L_08940D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940D50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1044))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1048))); aot_gpr_31 = (0x08940D60u); aot_gpr_5 = (aot_gpr_5 + static_cast(320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 114u, 0x08940D60u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940D60u) goto L_08940D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940D60: ctx.gpr[17] = (aot_gpr_29 + static_cast(432)); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1048))); @@ -2497,8 +2820,21 @@ L_08940D7C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08940DA0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 117u, 0x08940DA0u, 0x0893EFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 719u, 0x0893EFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940DA0u) goto L_08940DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940DA0: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2517,8 +2853,21 @@ L_08940DA0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1044))); aot_gpr_31 = (0x08940DB8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 118u, 0x08940DB8u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940DB8u) goto L_08940DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940DB8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(536))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2539,8 +2888,21 @@ L_08940DC8: L_08940DD4: aot_gpr_31 = (0x08940DDCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(528))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 121u, 0x08940DDCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940DDCu) goto L_08940DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940DDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1044))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2589,8 +2951,21 @@ L_08940E1C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); aot_gpr_31 = (0x08940E38u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1044))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 127u, 0x08940E38u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940E38u) goto L_08940E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940E38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1048))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2615,8 +2990,21 @@ L_08940E44: L_08940E64: aot_gpr_31 = (0x08940E6Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 130u, 0x08940E6Cu, 0x0893F970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 812u, 0x0893F970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940E6Cu) goto L_08940E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940E6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1048))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2638,8 +3026,21 @@ L_08940E78: L_08940E8C: aot_gpr_31 = (0x08940E94u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 133u, 0x08940E94u, 0x0893F970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 812u, 0x0893F970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940E94u) goto L_08940E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940E94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1048))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2682,8 +3083,21 @@ L_08940ED4: L_08940EE0: aot_gpr_31 = (0x08940EE8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 138u, 0x08940EE8u, 0x0893F970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 812u, 0x0893F970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940EE8u) goto L_08940EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940EE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2712,8 +3126,21 @@ L_08940EFC: L_08940F0C: aot_gpr_31 = (0x08940F14u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 142u, 0x08940F14u, 0x0893F698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 783u, 0x0893F698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08940F14u) goto L_08940F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08940F14: aot_gpr_31 = (0x08940F1Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -2737,8 +3164,8 @@ L_08940F1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(992)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08940F58: @@ -3744,8 +4171,8 @@ L_0894146C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(864)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941488: @@ -3758,14 +4185,27 @@ L_08941488: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x089414ACu); aot_gpr_6 = (0u | 1072u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 168u, 0x089414ACu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089414ACu) goto L_089414AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089414AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089414B8: @@ -3774,14 +4214,14 @@ L_089414B8: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(4), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089414D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089414D8: @@ -3806,8 +4246,21 @@ L_089414D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x08941530u); aot_gpr_4 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 172u, 0x08941530u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08941530u) goto L_08941530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08941530: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -3906,8 +4359,21 @@ L_089415D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x089415ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 184u, 0x089415ECu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089415ECu) goto L_089415EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089415EC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -3951,8 +4417,21 @@ L_08941624: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08941638u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 190u, 0x08941638u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08941638u) goto L_08941638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08941638: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[19]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -4011,8 +4490,8 @@ L_08941680: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089416B0: @@ -4066,8 +4545,21 @@ L_08941708: aot_gpr_6 = (aot_gpr_4 - aot_gpr_5); aot_gpr_31 = (0x08941718u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 203u, 0x08941718u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08941718u) goto L_08941718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08941718: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); goto L_0894171C; @@ -4097,8 +4589,8 @@ L_08941734: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941748: @@ -4146,8 +4638,8 @@ L_08941790: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089417B0: @@ -4187,8 +4679,8 @@ L_089417F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941804: @@ -4248,8 +4740,21 @@ L_0894186C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); aot_gpr_31 = (0x08941878u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 218u, 0x08941878u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08941878u) goto L_08941878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08941878: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(24), std::bit_cast(ctx.fpr[0])); goto L_0894187C; @@ -4259,8 +4764,8 @@ L_0894187C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941890: @@ -4297,21 +4802,34 @@ L_089418B0: ctx.gpr[11] = (0u | 128u); aot_gpr_31 = (0x08941900u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 222u, 0x08941900u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08941900u) goto L_08941900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08941900: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941910: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941918: @@ -4327,8 +4845,8 @@ L_08941918: aot_fpr_12 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7632), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941948: @@ -4346,8 +4864,8 @@ L_08941948: aot_gpr_4 = (ctx.hi); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7649), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941988: @@ -4376,8 +4894,8 @@ L_089419C4: L_089419C8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 - aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089419D0: @@ -4533,8 +5051,8 @@ L_08941AEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941AF8: @@ -4554,8 +5072,8 @@ L_08941AF8: { const float fs = aot_fpr_12; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7632), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941B38: @@ -4621,8 +5139,8 @@ L_08941B80: goto L_08941B84; L_08941B84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941B8C: @@ -4635,8 +5153,8 @@ L_08941B8C: aot_gpr_4 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8908), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941BB0: @@ -4647,8 +5165,8 @@ L_08941BB0: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7649), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(7650), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941BCC: @@ -4657,8 +5175,21 @@ L_08941BCC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08941BE0u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 260u, 0x08941BE0u, 0x08AAF864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 783u, 0x08AAF864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08941BE0u) goto L_08941BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08941BE0: aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(140), static_cast(0u)); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(142), static_cast(0u)); @@ -4670,8 +5201,8 @@ L_08941BE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941C08: @@ -4722,8 +5253,21 @@ L_08941C44: goto L_08941C50; L_08941C50: aot_gpr_31 = (0x08941C58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 267u, 0x08941C58u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08941C58u) goto L_08941C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08941C58: aot_gpr_4 = (ctx.gpr[16] & 1u); goto L_08941C5C; @@ -4748,8 +5292,8 @@ L_08941C6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941C80: @@ -4818,8 +5362,8 @@ L_08941CE0: } L_08941CFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941D04: @@ -4844,8 +5388,8 @@ L_08941D44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941D50: @@ -4926,8 +5470,8 @@ L_08941DC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941DD8: @@ -5013,8 +5557,8 @@ L_08941E98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941EA8: @@ -5084,8 +5628,8 @@ L_08941F10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941F28: @@ -5184,8 +5728,8 @@ L_08941FC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08941FE4: @@ -5251,8 +5795,8 @@ L_08942040: goto L_08942044; L_08942044: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894204C: @@ -5261,8 +5805,8 @@ L_0894204C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08942060: @@ -5291,8 +5835,21 @@ L_08942098: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x089420ACu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 337u, 0x089420ACu, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089420ACu) goto L_089420AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089420AC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -5316,8 +5873,21 @@ L_089420C0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089420D4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 340u, 0x089420D4u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089420D4u) goto L_089420D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089420D4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[16]); { const bool branch_taken = 0u == 0u; @@ -5351,8 +5921,8 @@ L_089420F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08942110: @@ -5382,8 +5952,21 @@ L_08942150: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x0894215Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 347u, 0x0894215Cu, 0x08A05F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 499u, 0x08A05F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894215Cu) goto L_0894215C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894215C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), ctx.gpr[17]); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), 0u); @@ -5410,8 +5993,8 @@ L_08942174: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08942194: @@ -5426,14 +6009,27 @@ L_08942194: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089421C0u); aot_gpr_7 = (aot_gpr_7 + static_cast(7176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 351u, 0x089421C0u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089421C0u) goto L_089421C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089421C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089421CC: @@ -5563,8 +6159,8 @@ L_089422C4: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[22]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-9800))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089422DC: @@ -5987,8 +6583,8 @@ L_08942660: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894268C: @@ -6169,8 +6765,8 @@ L_08942818: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-9712))); jump_target = ctx.gpr[1]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1152), ctx.gpr[23]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08942830: @@ -6221,8 +6817,21 @@ L_0894287C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089428B4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 410u, 0x089428B4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089428B4u) goto L_089428B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089428B4: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6287,8 +6896,21 @@ L_08942924: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08942964u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 414u, 0x08942964u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08942964u) goto L_08942964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08942964: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6350,8 +6972,21 @@ L_089429C4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08942A08u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 417u, 0x08942A08u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08942A08u) goto L_08942A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08942A08: ctx.gpr[17] = (0u | 0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(96)); @@ -6421,8 +7056,21 @@ L_08942A8C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08942ACCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 422u, 0x08942ACCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08942ACCu) goto L_08942ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08942ACC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -6495,8 +7143,21 @@ L_08942AF4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08942B4Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 426u, 0x08942B4Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08942B4Cu) goto L_08942B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08942B4C: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(88), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -6629,8 +7290,21 @@ L_08942C44: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08942C70u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 434u, 0x08942C70u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08942C70u) goto L_08942C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08942C70: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(146))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -6697,8 +7371,21 @@ L_08942C9C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08942CDCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 438u, 0x08942CDCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08942CDCu) goto L_08942CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08942CDC: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(88), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -6781,8 +7468,21 @@ L_08942D4C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08942D74u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 441u, 0x08942D74u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08942D74u) goto L_08942D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08942D74: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(146))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -6939,8 +7639,21 @@ L_08942EA0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08942EECu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 457u, 0x08942EECu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08942EECu) goto L_08942EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08942EEC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[30] + static_cast(146))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -7117,8 +7830,21 @@ L_08943060: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089430A8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 464u, 0x089430A8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089430A8u) goto L_089430A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089430A8: aot_gpr_31 = (0x089430B0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089430B0u) goto L_089430B0; @@ -7141,8 +7867,21 @@ L_089430B0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089430F4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 466u, 0x089430F4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089430F4u) goto L_089430F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089430F4: aot_gpr_31 = (0x089430FCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089430FCu) goto L_089430FC; @@ -7222,8 +7961,21 @@ L_08943170: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089431B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 470u, 0x089431B8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089431B8u) goto L_089431B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089431B8: aot_gpr_31 = (0x089431C0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089431C0u) goto L_089431C0; @@ -7244,8 +7996,21 @@ L_089431C0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089431FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 472u, 0x089431FCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089431FCu) goto L_089431FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089431FC: aot_gpr_31 = (0x08943204u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943204u) goto L_08943204; @@ -7324,8 +8089,21 @@ L_08943274: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089432BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 476u, 0x089432BCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089432BCu) goto L_089432BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089432BC: aot_gpr_31 = (0x089432C4u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089432C4u) goto L_089432C4; @@ -7345,8 +8123,21 @@ L_089432C4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089432FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 478u, 0x089432FCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089432FCu) goto L_089432FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089432FC: aot_gpr_31 = (0x08943304u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943304u) goto L_08943304; @@ -7422,8 +8213,21 @@ L_0894336C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089433B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 482u, 0x089433B0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089433B0u) goto L_089433B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089433B0: aot_gpr_31 = (0x089433B8u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089433B8u) goto L_089433B8; @@ -7442,8 +8246,21 @@ L_089433B8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089433ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 484u, 0x089433ECu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089433ECu) goto L_089433EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089433EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1144))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -7586,8 +8403,21 @@ L_08943514: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0894355Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 491u, 0x0894355Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894355Cu) goto L_0894355C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894355C: aot_gpr_31 = (0x08943564u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943564u) goto L_08943564; @@ -7688,8 +8518,21 @@ L_08943604: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943648u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 496u, 0x08943648u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943648u) goto L_08943648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943648: aot_gpr_31 = (0x08943650u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943650u) goto L_08943650; @@ -7790,8 +8633,21 @@ L_089436F0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943734u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 501u, 0x08943734u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943734u) goto L_08943734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943734: aot_gpr_31 = (0x0894373Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894373Cu) goto L_0894373C; @@ -7890,8 +8746,21 @@ L_089437D4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943818u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 506u, 0x08943818u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943818u) goto L_08943818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943818: ctx.gpr[30] = (ctx.gpr[30] + static_cast(1)); ctx.gpr[23] = (ctx.gpr[23] + static_cast(720)); @@ -8083,8 +8952,21 @@ L_089439A4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089439F4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 515u, 0x089439F4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089439F4u) goto L_089439F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089439F4: aot_gpr_4 = (0u | 44u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -8098,8 +8980,21 @@ L_089439F4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943A24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 516u, 0x08943A24u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943A24u) goto L_08943A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943A24: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8186,8 +9081,21 @@ L_08943AB0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943AF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 521u, 0x08943AF4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943AF4u) goto L_08943AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943AF4: aot_gpr_4 = (0u | 44u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -8201,8 +9109,21 @@ L_08943AF4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943B24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 522u, 0x08943B24u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943B24u) goto L_08943B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943B24: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8290,8 +9211,21 @@ L_08943BB0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943BF8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 527u, 0x08943BF8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943BF8u) goto L_08943BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943BF8: aot_gpr_4 = (0u | 44u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -8305,8 +9239,21 @@ L_08943BF8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943C28u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 528u, 0x08943C28u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943C28u) goto L_08943C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943C28: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8392,8 +9339,21 @@ L_08943CB0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943CF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 533u, 0x08943CF4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943CF4u) goto L_08943CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943CF4: aot_gpr_4 = (0u | 44u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -8407,8 +9367,21 @@ L_08943CF4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943D24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 534u, 0x08943D24u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943D24u) goto L_08943D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943D24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1140))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -8540,8 +9513,21 @@ L_08943E2C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943E74u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 540u, 0x08943E74u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943E74u) goto L_08943E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943E74: aot_fpr_28 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1196))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(544), std::bit_cast(aot_fpr_28)); @@ -8633,8 +9619,21 @@ L_08943EFC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08943F44u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0079->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0079_entry, 544u, 0x08943F44u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08943F44u) goto L_08943F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08943F44: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1196))); aot_fpr_28 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); diff --git a/profiles/vcs/generated/generated_unit_0080.cpp b/profiles/vcs/generated/generated_unit_0080.cpp index ba14c56..9d4d5a0 100644 --- a/profiles/vcs/generated/generated_unit_0080.cpp +++ b/profiles/vcs/generated/generated_unit_0080.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0080[64] = { 373u, 386u, 400u, 405u, 410u, 426u, 435u, 453u, 467u, 483u, 498u, 517u, 528u, 550u, 566u, 573u, 587u, 600u, 614u, 627u, 647u, 666u, 687u, 712u, 727u, 741u, 758u, 770u, 785u, 806u, 826u, 847u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0080[4096] = { + 1u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 8u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 12u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 0u, 14u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 15u, 0u, 16u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 17u, 0u, 0u, 0u, 18u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 22u, 0u, + 0u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 27u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 30u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 40u, 0u, 0u, 0u, 0u, 41u, 0u, 42u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 49u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 53u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 54u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 57u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 61u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 0u, 0u, 64u, 0u, + 65u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 0u, 67u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, + 0u, 71u, 0u, 0u, 0u, 0u, 72u, 0u, 0u, 73u, 0u, 0u, 0u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 78u, 0u, 0u, 0u, 0u, 79u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 0u, 84u, 85u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, 90u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 92u, 0u, 93u, 0u, 0u, 0u, 0u, + 0u, 0u, 94u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 0u, 0u, 0u, 0u, 0u, 97u, 0u, 98u, 0u, 0u, + 99u, 0u, 0u, 0u, 100u, 0u, 0u, 101u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 102u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 0u, 0u, 0u, + 0u, 0u, 0u, 104u, 0u, 0u, 0u, 0u, 0u, 0u, 105u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 107u, 0u, 0u, 108u, 0u, 0u, 109u, 0u, 0u, 110u, 0u, 0u, 111u, 0u, + 0u, 112u, 0u, 0u, 113u, 0u, 0u, 114u, 0u, 0u, 115u, 0u, 0u, 116u, 0u, 0u, 117u, 0u, 0u, 118u, 0u, 0u, 119u, 0u, 0u, 120u, 0u, 0u, 121u, 0u, 0u, 122u, + 0u, 0u, 123u, 0u, 0u, 124u, 0u, 0u, 0u, 0u, 0u, 125u, 0u, 0u, 0u, 0u, 126u, 0u, 0u, 127u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 129u, 0u, 0u, 0u, 0u, + 130u, 0u, 0u, 131u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 134u, 0u, 0u, 135u, 0u, 0u, 0u, 0u, 136u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 137u, 138u, 0u, 0u, 0u, 0u, 139u, 0u, 140u, 0u, 0u, 141u, 0u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, 143u, 0u, 0u, 144u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 145u, 146u, 0u, 0u, 0u, 147u, 0u, 0u, 0u, 0u, 148u, 0u, 0u, 0u, 149u, 0u, 0u, 150u, 0u, 0u, 0u, 151u, 0u, 0u, 152u, 0u, + 0u, 153u, 0u, 0u, 154u, 0u, 0u, 0u, 155u, 0u, 0u, 156u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 161u, 0u, 162u, 0u, 0u, 0u, 0u, 0u, 163u, 164u, 0u, 0u, 165u, 0u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, + 0u, 167u, 0u, 168u, 0u, 169u, 0u, 0u, 0u, 170u, 171u, 0u, 0u, 172u, 0u, 173u, 0u, 0u, 174u, 0u, 0u, 0u, 175u, 0u, 176u, 0u, 0u, 0u, 177u, 0u, 0u, 178u, + 179u, 0u, 180u, 0u, 0u, 0u, 181u, 0u, 0u, 0u, 182u, 0u, 183u, 0u, 184u, 0u, 0u, 0u, 185u, 0u, 186u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 188u, 0u, 189u, + 0u, 190u, 0u, 191u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 194u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 195u, 0u, 196u, 0u, 197u, 0u, 0u, 0u, 198u, 0u, 199u, 0u, 200u, 201u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, + 0u, 204u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, + 0u, 210u, 0u, 0u, 0u, 0u, 0u, 0u, 211u, 0u, 0u, 212u, 0u, 0u, 213u, 0u, 0u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 217u, 0u, 218u, 0u, 219u, 220u, 0u, 0u, 0u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 223u, + 0u, 0u, 224u, 0u, 0u, 225u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 0u, 228u, 0u, 0u, 0u, 0u, 0u, 0u, 229u, 0u, 0u, 0u, 0u, 230u, 0u, + 231u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, 233u, 0u, 234u, 0u, 235u, 0u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 237u, 0u, 238u, 0u, 239u, 0u, 0u, 0u, + 240u, 0u, 241u, 0u, 242u, 243u, 0u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, + 0u, 247u, 0u, 0u, 248u, 0u, 0u, 0u, 0u, 0u, 0u, 249u, 0u, 0u, 250u, 0u, 0u, 251u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 253u, 0u, 254u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 256u, 0u, 257u, 258u, 0u, 0u, 0u, 0u, 0u, 0u, 259u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 0u, + 0u, 0u, 261u, 0u, 0u, 262u, 0u, 0u, 263u, 0u, 0u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 266u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, + 0u, 268u, 0u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 271u, 0u, 272u, 0u, 273u, 0u, 0u, 0u, 274u, 0u, 275u, 0u, 276u, 0u, 277u, 0u, 0u, 0u, + 278u, 0u, 279u, 0u, 280u, 281u, 0u, 0u, 0u, 0u, 0u, 0u, 282u, 0u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, 284u, 0u, 0u, 285u, 0u, 0u, 0u, 286u, 0u, 0u, 0u, + 287u, 0u, 288u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, 291u, 0u, 0u, 292u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 293u, 0u, 294u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 296u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 297u, 0u, 0u, 0u, 0u, 298u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 301u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 304u, 0u, 305u, 0u, 0u, 0u, 0u, 306u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 307u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 0u, 0u, 309u, 0u, 310u, 0u, + 0u, 311u, 0u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 0u, 313u, 0u, 0u, 314u, 0u, 0u, 315u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 317u, 0u, 318u, 0u, 319u, 320u, + 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 323u, 0u, 324u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, + 0u, 326u, 0u, 0u, 327u, 0u, 0u, 328u, 0u, 0u, 329u, 0u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 331u, 0u, 332u, 0u, 333u, 334u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 338u, 0u, 0u, 339u, 0u, 0u, 340u, 0u, 0u, 0u, 341u, 0u, 0u, + 0u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 343u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 346u, 0u, 347u, 0u, 348u, 0u, 349u, 0u, 350u, 351u, 0u, + 0u, 0u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 0u, 354u, 0u, 0u, 355u, 0u, 0u, 356u, 0u, 0u, 0u, 357u, + 0u, 0u, 0u, 0u, 0u, 358u, 0u, 0u, 359u, 0u, 0u, 0u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, + 0u, 0u, 364u, 0u, 365u, 0u, 366u, 0u, 367u, 0u, 368u, 369u, 0u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 371u, 0u, 372u, 0u, 0u, 0u, + 0u, 373u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 374u, 0u, 375u, 0u, 0u, 376u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 378u, 0u, 379u, 0u, 0u, + 0u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 381u, 0u, 382u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 0u, 0u, + 0u, 386u, 0u, 387u, 0u, 0u, 388u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 390u, 0u, 391u, 0u, 392u, 0u, 393u, 0u, 394u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 397u, 0u, 0u, 0u, 0u, 398u, 0u, 0u, 0u, 399u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 400u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 401u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 402u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 403u, 0u, 404u, 0u, 0u, 0u, + 0u, 405u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 406u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 0u, 409u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 410u, 411u, 0u, 0u, 412u, 413u, 0u, 0u, 414u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 416u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 420u, 421u, 0u, 0u, 0u, 422u, 0u, 0u, 0u, 423u, 424u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 427u, 0u, 0u, 0u, 428u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, + 0u, 435u, 0u, 436u, 0u, 0u, 0u, 0u, 437u, 0u, 438u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 441u, 0u, 0u, 0u, 442u, 0u, 0u, 0u, 443u, 0u, + 444u, 0u, 445u, 0u, 0u, 446u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 448u, 0u, 0u, 0u, 449u, 450u, 0u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, + 0u, 0u, 0u, 453u, 0u, 0u, 454u, 0u, 0u, 455u, 0u, 456u, 457u, 0u, 0u, 458u, 0u, 0u, 459u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, 464u, 0u, 0u, 465u, 0u, 466u, + 0u, 0u, 467u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 469u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 471u, 0u, 472u, 0u, 0u, 473u, 0u, 474u, 0u, 0u, 0u, 0u, 475u, + 0u, 0u, 476u, 0u, 477u, 0u, 478u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, 0u, 0u, 0u, 482u, + 0u, 0u, 483u, 0u, 0u, 0u, 484u, 0u, 485u, 486u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 488u, 0u, 0u, 489u, 0u, 0u, 0u, 490u, + 0u, 491u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 492u, 0u, 493u, 494u, 0u, 0u, 0u, 0u, 495u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 496u, 0u, 0u, 497u, 0u, 0u, + 0u, 498u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 501u, 502u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, 0u, 0u, 504u, 0u, 0u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, + 506u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 509u, 0u, 0u, 0u, 0u, 510u, 0u, 511u, 0u, 512u, 0u, 0u, 513u, 0u, 0u, 514u, 0u, 515u, 0u, 516u, + 0u, 0u, 517u, 0u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 519u, 0u, 0u, 0u, 520u, 0u, 0u, 521u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, 0u, 0u, 523u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 0u, 0u, 525u, 0u, 0u, 526u, 0u, 527u, 0u, + 528u, 0u, 529u, 0u, 0u, 530u, 0u, 531u, 532u, 0u, 533u, 0u, 534u, 0u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 537u, 0u, 0u, 538u, 0u, 539u, 0u, 540u, 0u, + 541u, 0u, 0u, 0u, 542u, 0u, 543u, 0u, 0u, 0u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 546u, 0u, 0u, 547u, 0u, 0u, 548u, 0u, 549u, 0u, 0u, 0u, + 0u, 0u, 0u, 550u, 0u, 0u, 551u, 0u, 552u, 0u, 553u, 0u, 554u, 0u, 0u, 555u, 0u, 556u, 0u, 557u, 0u, 558u, 0u, 0u, 559u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 561u, 0u, 0u, 562u, 563u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 564u, 0u, 0u, 0u, 0u, 565u, + 0u, 566u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 567u, 0u, 0u, 0u, 0u, 568u, 0u, 0u, 0u, 0u, 0u, 0u, 569u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 570u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 573u, 0u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, 575u, 0u, 0u, 576u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 0u, 579u, 0u, 0u, 580u, 0u, 0u, 581u, 0u, 0u, 582u, 0u, 0u, 583u, 0u, 584u, 585u, 0u, 0u, 586u, 0u, 0u, + 0u, 0u, 0u, 0u, 587u, 0u, 588u, 0u, 589u, 0u, 0u, 0u, 590u, 0u, 591u, 0u, 592u, 0u, 593u, 0u, 0u, 0u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 595u, + 0u, 0u, 0u, 596u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 597u, 0u, 0u, 0u, 598u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 599u, 0u, 0u, 0u, + 600u, 0u, 0u, 0u, 0u, 601u, 0u, 0u, 0u, 0u, 0u, 0u, 602u, 0u, 603u, 0u, 604u, 0u, 0u, 0u, 0u, 605u, 0u, 0u, 606u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 607u, 608u, 609u, 0u, 610u, 0u, 0u, 0u, 0u, 0u, 0u, 611u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 612u, 0u, 0u, 613u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 614u, 0u, 0u, 615u, 0u, 616u, 0u, 617u, 0u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 620u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 623u, 0u, 624u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 625u, 0u, 0u, 0u, 626u, + 0u, 0u, 627u, 0u, 0u, 0u, 0u, 628u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 631u, 0u, 632u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 633u, 0u, 634u, 0u, 635u, 0u, 636u, 0u, 637u, 0u, 638u, 0u, 639u, 0u, 640u, 0u, 0u, 0u, 641u, 0u, 642u, 0u, 643u, 0u, 644u, 645u, 0u, 646u, + 0u, 647u, 648u, 0u, 0u, 0u, 0u, 0u, 649u, 0u, 650u, 0u, 0u, 0u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, 653u, 0u, 0u, 654u, 0u, 655u, 0u, 0u, 0u, + 656u, 0u, 0u, 657u, 0u, 0u, 0u, 658u, 0u, 0u, 659u, 0u, 0u, 0u, 660u, 0u, 0u, 661u, 0u, 0u, 0u, 0u, 662u, 0u, 663u, 664u, 0u, 665u, 0u, 0u, 0u, 0u, + 0u, 666u, 0u, 0u, 667u, 0u, 0u, 668u, 0u, 0u, 0u, 0u, 0u, 669u, 0u, 0u, 670u, 0u, 671u, 0u, 672u, 0u, 0u, 673u, 0u, 674u, 0u, 675u, 0u, 676u, 0u, 0u, + 0u, 677u, 0u, 0u, 678u, 0u, 0u, 0u, 679u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 682u, 0u, 683u, 0u, 684u, 0u, 685u, 0u, 686u, 0u, + 687u, 0u, 688u, 0u, 689u, 0u, 690u, 0u, 691u, 0u, 692u, 693u, 0u, 694u, 0u, 695u, 0u, 0u, 0u, 0u, 696u, 0u, 697u, 0u, 698u, 0u, 699u, 0u, 700u, 0u, 701u, 0u, + 702u, 0u, 703u, 0u, 0u, 0u, 0u, 0u, 704u, 0u, 705u, 706u, 0u, 0u, 0u, 707u, 0u, 0u, 708u, 0u, 0u, 0u, 709u, 0u, 0u, 0u, 710u, 0u, 0u, 0u, 711u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 713u, 0u, 714u, 0u, 0u, 0u, 715u, 0u, 0u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 717u, 0u, 718u, 0u, 719u, + 0u, 0u, 0u, 0u, 0u, 720u, 0u, 0u, 0u, 0u, 721u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 722u, 0u, 723u, 0u, 724u, 0u, 0u, 0u, 725u, 0u, 0u, 0u, 0u, 726u, + 0u, 0u, 727u, 0u, 0u, 728u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 0u, 730u, 0u, 0u, 0u, 731u, 0u, 0u, 0u, 732u, 0u, 733u, 0u, 0u, 734u, + 0u, 0u, 735u, 0u, 736u, 0u, 0u, 737u, 0u, 0u, 0u, 738u, 0u, 739u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 740u, 0u, 0u, 0u, 0u, 0u, + 741u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 742u, 0u, 743u, 0u, 0u, 0u, 0u, 744u, 0u, 745u, 0u, 0u, 0u, 0u, 0u, 746u, 0u, 0u, 747u, 0u, 0u, 0u, 748u, 0u, + 749u, 750u, 0u, 0u, 751u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 752u, 0u, 0u, 0u, 0u, 0u, 753u, 0u, 754u, 0u, 755u, 0u, 756u, 0u, 757u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 758u, 0u, 0u, 759u, 0u, 760u, 0u, 761u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 762u, 0u, 0u, 763u, 0u, 764u, 0u, 765u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 766u, 0u, 0u, 767u, 0u, 768u, 0u, 769u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 770u, 771u, 0u, 0u, 772u, 0u, 0u, 773u, 0u, 774u, 775u, 0u, 0u, 0u, 0u, 776u, 0u, 0u, 777u, 0u, 778u, 0u, 0u, + 0u, 0u, 0u, 0u, 779u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 780u, 0u, 0u, 781u, 0u, 0u, 0u, 782u, 0u, 783u, 0u, 0u, 0u, 0u, 784u, + 0u, 785u, 0u, 786u, 0u, 787u, 0u, 0u, 788u, 0u, 0u, 0u, 789u, 0u, 0u, 0u, 790u, 0u, 0u, 0u, 791u, 0u, 0u, 792u, 0u, 0u, 0u, 793u, 0u, 0u, 794u, 0u, + 0u, 0u, 0u, 0u, 795u, 0u, 796u, 0u, 797u, 0u, 798u, 0u, 0u, 799u, 0u, 800u, 0u, 0u, 801u, 0u, 802u, 0u, 803u, 0u, 0u, 0u, 804u, 0u, 0u, 0u, 805u, 0u, + 0u, 0u, 0u, 0u, 806u, 0u, 807u, 0u, 0u, 808u, 0u, 809u, 0u, 810u, 0u, 811u, 0u, 0u, 0u, 812u, 0u, 0u, 0u, 0u, 813u, 0u, 0u, 0u, 0u, 814u, 0u, 815u, + 0u, 0u, 0u, 816u, 0u, 0u, 0u, 817u, 0u, 0u, 818u, 0u, 819u, 0u, 0u, 820u, 821u, 0u, 822u, 0u, 0u, 823u, 0u, 0u, 0u, 824u, 0u, 0u, 0u, 0u, 825u, 0u, + 826u, 0u, 0u, 827u, 0u, 0u, 828u, 829u, 0u, 830u, 0u, 0u, 831u, 0u, 0u, 0u, 832u, 0u, 0u, 0u, 0u, 833u, 0u, 834u, 0u, 0u, 0u, 0u, 835u, 0u, 0u, 836u, + 0u, 0u, 837u, 0u, 838u, 0u, 839u, 0u, 0u, 840u, 0u, 0u, 841u, 0u, 842u, 0u, 843u, 0u, 844u, 0u, 0u, 0u, 845u, 0u, 0u, 0u, 0u, 846u, 0u, 0u, 0u, 0u, + 847u, 0u, 848u, 0u, 0u, 0u, 849u, 0u, 0u, 0u, 850u, 0u, 0u, 851u, 0u, 852u, 0u, 0u, 853u, 854u, 0u, 855u, 0u, 0u, 856u, 0u, 0u, 0u, 857u, 0u, 0u, 0u, + 0u, 858u, 0u, 859u, 0u, 0u, 860u, 0u, 0u, 861u, 862u, 0u, 863u, 0u, 0u, 864u, 0u, 0u, 0u, 865u, 0u, 0u, 0u, 0u, 866u, 0u, 867u, 0u, 0u, 0u, 0u, 868u, +}; void recomp_unit_0080_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,29,5,31,6,2 fprs=12,13,14,0 gpr_occ=3745 fpr_occ=954 gpr_total=5345 fpr_total=1354 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08944000u; - entry_id = 0u; - if (entry_delta < 16384u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0080[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0080[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16384u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0080[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08944000; @@ -946,6 +1069,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08944000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -965,8 +1112,21 @@ L_08944000: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08944014u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 2u, 0x08944014u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944014u) goto L_08944014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944014: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1216))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(544), std::bit_cast(aot_fpr_12)); @@ -1056,8 +1216,21 @@ L_08944094: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089440DCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 6u, 0x089440DCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089440DCu) goto L_089440DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089440DC: ctx.gpr[30] = (ctx.gpr[30] + static_cast(1)); ctx.gpr[23] = (ctx.gpr[23] + static_cast(720)); @@ -1178,8 +1351,21 @@ L_089441B0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089441E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 15u, 0x089441E8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089441E8u) goto L_089441E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089441E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1202,8 +1388,21 @@ L_089441F0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08944228u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 17u, 0x08944228u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944228u) goto L_08944228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944228: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -1412,8 +1611,21 @@ L_089443A8: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089443E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 25u, 0x089443E4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089443E4u) goto L_089443E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089443E4: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1481,8 +1693,21 @@ L_08944440: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08944478u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 29u, 0x08944478u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944478u) goto L_08944478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944478: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1550,8 +1775,21 @@ L_089444D4: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0894450Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 33u, 0x0894450Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894450Cu) goto L_0894450C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894450C: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1617,8 +1855,21 @@ L_08944564: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08944598u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 37u, 0x08944598u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944598u) goto L_08944598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944598: ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); ctx.gpr[21] = (ctx.gpr[21] + static_cast(720)); @@ -1658,8 +1909,21 @@ L_089445D4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08944600u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 40u, 0x08944600u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944600u) goto L_08944600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944600: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(146))); ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); @@ -1828,8 +2092,21 @@ L_08944764: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089447A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 47u, 0x089447A0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089447A0u) goto L_089447A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089447A0: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1907,8 +2184,21 @@ L_08944824: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0894485Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 51u, 0x0894485Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894485Cu) goto L_0894485C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894485C: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1986,8 +2276,21 @@ L_089448E0: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08944918u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 55u, 0x08944918u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944918u) goto L_08944918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944918: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2061,8 +2364,21 @@ L_08944990: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089449C4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 59u, 0x089449C4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089449C4u) goto L_089449C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089449C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1136))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -2162,8 +2478,21 @@ L_08944A2C: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08944A68u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 63u, 0x08944A68u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944A68u) goto L_08944A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944A68: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 3 ? 1u : 0u); @@ -2303,8 +2632,21 @@ L_08944B74: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08944BA0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 78u, 0x08944BA0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944BA0u) goto L_08944BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944BA0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(146))); ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); @@ -2351,8 +2693,21 @@ L_08944BE4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08944C10u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 83u, 0x08944C10u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944C10u) goto L_08944C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944C10: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(146))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -2389,8 +2744,21 @@ L_08944C48: aot_gpr_5 = (ctx.gpr[28] + static_cast(-18152)); aot_gpr_31 = (0x08944C58u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 88u, 0x08944C58u, 0x08941FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 324u, 0x08941FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944C58u) goto L_08944C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944C58: aot_gpr_4 = (0u | 3u); aot_mem.aot_direct_store16(ctx.gpr[23] + static_cast(142), static_cast(aot_gpr_4)); @@ -2405,8 +2773,21 @@ L_08944C58: L_08944C70: aot_gpr_31 = (0x08944C78u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 90u, 0x08944C78u, 0x08942110u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 344u, 0x08942110u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944C78u) goto L_08944C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944C78: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1228), aot_run_words); @@ -2429,8 +2810,8 @@ L_08944C78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1296)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944CC0: @@ -2443,8 +2824,21 @@ L_08944CC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08944CE4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(7116)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 92u, 0x08944CE4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944CE4u) goto L_08944CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944CE4: aot_gpr_31 = (0x08944CECu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-18120)); @@ -2458,14 +2852,27 @@ L_08944CEC: aot_gpr_4 = (aot_gpr_4 + static_cast(2224)); aot_gpr_31 = (0x08944D08u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(8268)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 94u, 0x08944D08u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944D08u) goto L_08944D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944D08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944D14: @@ -2484,8 +2891,8 @@ L_08944D14: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944D50: @@ -2502,14 +2909,27 @@ L_08944D50: } L_08944D6C: aot_gpr_31 = (0x08944D74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 98u, 0x08944D74u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944D74u) goto L_08944D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944D74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944D80: @@ -2517,16 +2937,16 @@ L_08944D80: aot_gpr_2 = (0u | 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944D90: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944D9C: @@ -2540,8 +2960,21 @@ L_08944D9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08944DC4u); aot_gpr_5 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 102u, 0x08944DC4u, 0x08B6B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 667u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 667u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 667u, 0x08B6B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944DC4u) goto L_08944DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944DC4: aot_gpr_4 = (19646u << 16u); ctx.fpr[20] = std::bit_cast(0u); @@ -2554,8 +2987,21 @@ L_08944DC4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08944DF0u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 103u, 0x08944DF0u, 0x08B6B8C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 694u, 0x08B6B8C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944DF0u) goto L_08944DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944DF0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), std::bit_cast(ctx.fpr[20])); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(24), std::bit_cast(ctx.fpr[22])); @@ -2564,8 +3010,21 @@ L_08944DF0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08944E0Cu); aot_gpr_5 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 104u, 0x08944E0Cu, 0x08B6B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 667u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 667u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 667u, 0x08B6B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E0Cu) goto L_08944E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E0C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), std::bit_cast(ctx.fpr[20])); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(20), std::bit_cast(ctx.fpr[22])); @@ -2574,124 +3033,384 @@ L_08944E0C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08944E28u); aot_gpr_5 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 105u, 0x08944E28u, 0x08B6B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 667u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 667u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 667u, 0x08B6B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E28u) goto L_08944E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E28: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), std::bit_cast(ctx.fpr[20])); aot_gpr_4 = (2198u << 16u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(20), std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08944E3Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-17500)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 106u, 0x08944E3Cu, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E3Cu) goto L_08944E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E3C: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944E48u); aot_gpr_4 = (aot_gpr_4 + static_cast(21468)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 107u, 0x08944E48u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E48u) goto L_08944E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E48: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944E54u); aot_gpr_4 = (aot_gpr_4 + static_cast(21540)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 108u, 0x08944E54u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E54u) goto L_08944E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E54: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944E60u); aot_gpr_4 = (aot_gpr_4 + static_cast(21820)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 109u, 0x08944E60u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E60u) goto L_08944E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E60: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944E6Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(22192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 110u, 0x08944E6Cu, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E6Cu) goto L_08944E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E6C: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944E78u); aot_gpr_4 = (aot_gpr_4 + static_cast(22472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 111u, 0x08944E78u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E78u) goto L_08944E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E78: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944E84u); aot_gpr_4 = (aot_gpr_4 + static_cast(22832)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 112u, 0x08944E84u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E84u) goto L_08944E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E84: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944E90u); aot_gpr_4 = (aot_gpr_4 + static_cast(22940)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 113u, 0x08944E90u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E90u) goto L_08944E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E90: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944E9Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(23164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 114u, 0x08944E9Cu, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944E9Cu) goto L_08944E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944E9C: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944EA8u); aot_gpr_4 = (aot_gpr_4 + static_cast(23392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 115u, 0x08944EA8u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944EA8u) goto L_08944EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944EA8: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944EB4u); aot_gpr_4 = (aot_gpr_4 + static_cast(23452)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 116u, 0x08944EB4u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944EB4u) goto L_08944EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944EB4: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944EC0u); aot_gpr_4 = (aot_gpr_4 + static_cast(23700)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 117u, 0x08944EC0u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944EC0u) goto L_08944EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944EC0: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944ECCu); aot_gpr_4 = (aot_gpr_4 + static_cast(23928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 118u, 0x08944ECCu, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944ECCu) goto L_08944ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944ECC: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944ED8u); aot_gpr_4 = (aot_gpr_4 + static_cast(24212)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 119u, 0x08944ED8u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944ED8u) goto L_08944ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944ED8: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944EE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(24520)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 120u, 0x08944EE4u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944EE4u) goto L_08944EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944EE4: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944EF0u); aot_gpr_4 = (aot_gpr_4 + static_cast(24580)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 121u, 0x08944EF0u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944EF0u) goto L_08944EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944EF0: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944EFCu); aot_gpr_4 = (aot_gpr_4 + static_cast(24652)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 122u, 0x08944EFCu, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944EFCu) goto L_08944EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944EFC: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944F08u); aot_gpr_4 = (aot_gpr_4 + static_cast(24712)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 123u, 0x08944F08u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944F08u) goto L_08944F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944F08: aot_gpr_4 = (2196u << 16u); aot_gpr_31 = (0x08944F14u); aot_gpr_4 = (aot_gpr_4 + static_cast(24784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 124u, 0x08944F14u, 0x08A31530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 306u, 0x08A31530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944F14u) goto L_08944F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944F14: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2702,8 +3421,8 @@ L_08944F14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944F2C: @@ -2712,14 +3431,27 @@ L_08944F2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08944F40u); aot_gpr_4 = (aot_gpr_4 + static_cast(8736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 126u, 0x08944F40u, 0x08B6B74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 673u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 673u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 673u, 0x08B6B74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944F40u) goto L_08944F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944F40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944F4C: @@ -2728,14 +3460,27 @@ L_08944F4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08944F60u); aot_gpr_4 = (aot_gpr_4 + static_cast(8808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 128u, 0x08944F60u, 0x08B6B970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 700u, 0x08B6B970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944F60u) goto L_08944F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944F60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944F6C: @@ -2744,20 +3489,46 @@ L_08944F6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08944F80u); aot_gpr_4 = (aot_gpr_4 + static_cast(17440)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 130u, 0x08944F80u, 0x08B6B74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 673u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 673u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 673u, 0x08B6B74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944F80u) goto L_08944F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944F80: aot_gpr_4 = (2247u << 16u); aot_gpr_31 = (0x08944F8Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(8896)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 131u, 0x08944F8Cu, 0x08B6B74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 673u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 673u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 673u, 0x08B6B74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944F8Cu) goto L_08944F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944F8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944F98: @@ -2777,8 +3548,21 @@ L_08944F98: L_08944FBC: aot_gpr_31 = (0x08944FC4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 134u, 0x08944FC4u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08944FC4u) goto L_08944FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08944FC4: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); { const bool branch_taken = ctx.gpr[16] != ctx.gpr[17]; @@ -2796,8 +3580,8 @@ L_08944FD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08944FE4: @@ -2825,13 +3609,39 @@ L_08945010: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_31 = (0x08945024u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 139u, 0x08945024u, 0x0881DCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 248u, 0x0881DCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945024u) goto L_08945024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945024: aot_gpr_31 = (0x0894502Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 140u, 0x0894502Cu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894502Cu) goto L_0894502C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894502C: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = ctx.gpr[17] != ctx.gpr[18]; @@ -2850,8 +3660,8 @@ L_08945038: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945050: @@ -2865,8 +3675,8 @@ L_08945064: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945070: @@ -2940,8 +3750,21 @@ L_089450F8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08945104u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 153u, 0x08945104u, 0x08A7A664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 496u, 0x08A7A664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945104u) goto L_08945104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945104: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(16))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -2985,8 +3808,8 @@ L_08945138: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945158: @@ -3009,8 +3832,21 @@ L_0894516C: aot_gpr_6 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08945190u); aot_gpr_5 = (aot_gpr_5 + static_cast(19840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 160u, 0x08945190u, 0x0881DCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 248u, 0x0881DCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945190u) goto L_08945190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945190: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (aot_gpr_29 + static_cast(8)); @@ -3018,8 +3854,21 @@ L_08945190: aot_gpr_4 = (2247u << 16u); aot_gpr_31 = (0x089451A8u); aot_gpr_4 = (aot_gpr_4 + static_cast(8808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 161u, 0x089451A8u, 0x08B6B9C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 704u, 0x08B6B9C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089451A8u) goto L_089451A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089451A8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); @@ -3035,8 +3884,21 @@ L_089451B0: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089451C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(8736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 163u, 0x089451C8u, 0x08B6B79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 677u, 0x08B6B79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089451C8u) goto L_089451C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089451C8: aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); goto L_089451CC; @@ -3044,8 +3906,8 @@ L_089451CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089451D8: @@ -3066,8 +3928,21 @@ L_089451F4: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08945204u); aot_gpr_4 = (aot_gpr_4 + static_cast(8896)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 167u, 0x08945204u, 0x08B6B79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 677u, 0x08B6B79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945204u) goto L_08945204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945204: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3088,8 +3963,21 @@ L_08945214: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08945224u); aot_gpr_4 = (aot_gpr_4 + static_cast(17440)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 170u, 0x08945224u, 0x08B6B79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 677u, 0x08B6B79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945224u) goto L_08945224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945224: aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); goto L_08945228; @@ -3097,8 +3985,8 @@ L_08945228: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945234: @@ -3152,8 +4040,8 @@ L_0894527C: goto L_08945280; L_08945280: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945288: @@ -3198,8 +4086,8 @@ L_089452B8: goto L_089452C8; L_089452C8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089452D0: @@ -3207,8 +4095,8 @@ L_089452D0: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(42), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089452E0: @@ -3217,36 +4105,36 @@ L_089452E0: aot_gpr_5 = (aot_gpr_6 & aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(42), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089452F4: jump_target = aot_gpr_31; aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(42)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089452FC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(172))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945304: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894530C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945314: @@ -3318,8 +4206,21 @@ L_089453A8: L_089453B8: aot_gpr_31 = (0x089453C0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 199u, 0x089453C0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089453C0u) goto L_089453C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089453C0: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -3336,8 +4237,8 @@ L_089453CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089453DC: @@ -3369,8 +4270,8 @@ L_08945410: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945424: @@ -3429,14 +4330,40 @@ L_089454A0: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x089454ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 212u, 0x089454ACu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089454ACu) goto L_089454AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089454AC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(80)); aot_gpr_31 = (0x089454B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 213u, 0x089454B8u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089454B8u) goto L_089454B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089454B8: aot_gpr_5 = (ctx.gpr[18] + static_cast(80)); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -3486,8 +4413,21 @@ L_0894550C: L_08945514: aot_gpr_31 = (0x0894551Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 219u, 0x0894551Cu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894551Cu) goto L_0894551C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894551C: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_08945520; @@ -3502,8 +4442,8 @@ L_08945520: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894553C: @@ -3527,8 +4467,21 @@ L_08945568: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x0894557Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 223u, 0x0894557Cu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894557Cu) goto L_0894557C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894557C: ctx.gpr[19] = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x08945588u); @@ -3538,8 +4491,21 @@ L_08945588: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08945594u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 225u, 0x08945594u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945594u) goto L_08945594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945594: aot_gpr_5 = (ctx.gpr[18] + static_cast(80)); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -3649,8 +4615,21 @@ L_08945658: L_08945660: aot_gpr_31 = (0x08945668u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 238u, 0x08945668u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945668u) goto L_08945668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945668: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[16] | 0u); @@ -3675,8 +4654,21 @@ L_08945680: L_08945688: aot_gpr_31 = (0x08945690u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 242u, 0x08945690u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945690u) goto L_08945690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945690: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_08945694; @@ -3691,8 +4683,8 @@ L_08945694: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089456B0: @@ -3751,14 +4743,40 @@ L_0894572C: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08945738u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 250u, 0x08945738u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945738u) goto L_08945738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945738: ctx.gpr[19] = (ctx.gpr[19] + static_cast(80)); aot_gpr_31 = (0x08945744u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 251u, 0x08945744u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945744u) goto L_08945744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945744: aot_gpr_5 = (ctx.gpr[18] + static_cast(80)); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -3808,8 +4826,21 @@ L_08945798: L_089457A0: aot_gpr_31 = (0x089457A8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 257u, 0x089457A8u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089457A8u) goto L_089457A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089457A8: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_089457AC; @@ -3824,8 +4855,8 @@ L_089457AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089457C8: @@ -3849,8 +4880,21 @@ L_089457F4: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08945808u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 261u, 0x08945808u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945808u) goto L_08945808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945808: ctx.gpr[19] = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x08945814u); @@ -3860,8 +4904,21 @@ L_08945814: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08945820u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 263u, 0x08945820u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945820u) goto L_08945820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945820: aot_gpr_5 = (ctx.gpr[18] + static_cast(80)); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -3968,8 +5025,21 @@ L_089458D8: L_089458E0: aot_gpr_31 = (0x089458E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 276u, 0x089458E8u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089458E8u) goto L_089458E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089458E8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[16] | 0u); @@ -3994,8 +5064,21 @@ L_08945900: L_08945908: aot_gpr_31 = (0x08945910u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 280u, 0x08945910u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945910u) goto L_08945910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945910: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_08945914; @@ -4010,8 +5093,8 @@ L_08945914: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945930: @@ -4026,8 +5109,21 @@ L_08945944: aot_fpr_12 = std::sqrt(aot_fpr_12); aot_gpr_31 = (0x08945954u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 284u, 0x08945954u, 0x08AAE058u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 384u, 0x08AAE058u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945954u) goto L_08945954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945954: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4050,21 +5146,47 @@ L_08945970: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08945980u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 287u, 0x08945980u, 0x0895B470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 455u, 0x0895B470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945980u) goto L_08945980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945980: aot_gpr_31 = (0x08945988u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 288u, 0x08945988u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945988u) goto L_08945988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945988: aot_gpr_2 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894599C: @@ -4088,14 +5210,40 @@ L_089459C4: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x089459D8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 291u, 0x089459D8u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089459D8u) goto L_089459D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089459D8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x089459E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 292u, 0x089459E4u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089459E4u) goto L_089459E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089459E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-18092))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); @@ -4135,8 +5283,21 @@ L_08945A50: L_08945A58: aot_gpr_31 = (0x08945A60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 295u, 0x08945A60u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945A60u) goto L_08945A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945A60: aot_gpr_2 = (ctx.gpr[16] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4148,8 +5309,8 @@ L_08945A60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945A7C: @@ -4173,14 +5334,40 @@ L_08945AA4: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08945AB8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 298u, 0x08945AB8u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945AB8u) goto L_08945AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945AB8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x08945AC4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 299u, 0x08945AC4u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945AC4u) goto L_08945AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945AC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-18092))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); @@ -4220,8 +5407,21 @@ L_08945B34: L_08945B3C: aot_gpr_31 = (0x08945B44u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 302u, 0x08945B44u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945B44u) goto L_08945B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945B44: aot_gpr_2 = (ctx.gpr[16] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4233,8 +5433,8 @@ L_08945B44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945B60: @@ -4254,16 +5454,29 @@ L_08945B60: L_08945B80: aot_gpr_31 = (0x08945B88u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 305u, 0x08945B88u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945B88u) goto L_08945B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945B88: aot_gpr_2 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945B9C: @@ -4329,14 +5542,40 @@ L_08945C20: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08945C2Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 313u, 0x08945C2Cu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945C2Cu) goto L_08945C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945C2C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(80)); aot_gpr_31 = (0x08945C38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 314u, 0x08945C38u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945C38u) goto L_08945C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945C38: ctx.gpr[17] = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x08945C44u); @@ -4368,8 +5607,21 @@ L_08945C68: L_08945C70: aot_gpr_31 = (0x08945C78u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 319u, 0x08945C78u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945C78u) goto L_08945C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945C78: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_08945C7C; @@ -4383,8 +5635,8 @@ L_08945C7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945C94: @@ -4441,14 +5693,40 @@ L_08945D04: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08945D10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 327u, 0x08945D10u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945D10u) goto L_08945D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945D10: ctx.gpr[18] = (ctx.gpr[18] + static_cast(80)); aot_gpr_31 = (0x08945D1Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 328u, 0x08945D1Cu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945D1Cu) goto L_08945D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945D1C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x08945D28u); @@ -4480,8 +5758,21 @@ L_08945D4C: L_08945D54: aot_gpr_31 = (0x08945D5Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 333u, 0x08945D5Cu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945D5Cu) goto L_08945D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945D5C: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_08945D60; @@ -4495,8 +5786,8 @@ L_08945D60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945D78: @@ -4529,8 +5820,21 @@ L_08945DB8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08945DCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 338u, 0x08945DCCu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945DCCu) goto L_08945DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945DCC: ctx.gpr[19] = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x08945DD8u); @@ -4540,8 +5844,21 @@ L_08945DD8: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08945DE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 340u, 0x08945DE4u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945DE4u) goto L_08945DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945DE4: aot_gpr_5 = (ctx.gpr[18] + static_cast(80)); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -4619,8 +5936,21 @@ L_08945E64: L_08945E6C: aot_gpr_31 = (0x08945E74u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 350u, 0x08945E74u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945E74u) goto L_08945E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945E74: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_08945E78; @@ -4635,8 +5965,8 @@ L_08945E78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945E94: @@ -4660,8 +5990,21 @@ L_08945EC0: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08945ED4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 354u, 0x08945ED4u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945ED4u) goto L_08945ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945ED4: ctx.gpr[19] = (ctx.gpr[17] + static_cast(80)); aot_gpr_31 = (0x08945EE0u); @@ -4671,8 +6014,21 @@ L_08945EE0: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08945EECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 356u, 0x08945EECu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945EECu) goto L_08945EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945EEC: aot_gpr_5 = (ctx.gpr[18] + static_cast(80)); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -4771,8 +6127,21 @@ L_08945F98: L_08945FA0: aot_gpr_31 = (0x08945FA8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 368u, 0x08945FA8u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945FA8u) goto L_08945FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945FA8: aot_gpr_2 = (ctx.gpr[16] | 0u); goto L_08945FAC; @@ -4787,8 +6156,8 @@ L_08945FAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08945FC8: @@ -4808,16 +6177,29 @@ L_08945FC8: L_08945FE8: aot_gpr_31 = (0x08945FF0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 372u, 0x08945FF0u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08945FF0u) goto L_08945FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08945FF0: aot_gpr_2 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946004: @@ -4849,8 +6231,8 @@ L_08946038: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894604C: @@ -4870,16 +6252,29 @@ L_0894604C: L_0894606C: aot_gpr_31 = (0x08946074u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 379u, 0x08946074u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946074u) goto L_08946074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946074: aot_gpr_2 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946088: @@ -4911,8 +6306,8 @@ L_089460BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089460D0: @@ -4953,8 +6348,8 @@ L_08946118: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946130: @@ -4982,8 +6377,8 @@ L_08946148: L_08946150: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946158: @@ -4991,8 +6386,21 @@ L_08946158: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08946168u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-18096), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 395u, 0x08946168u, 0x08890828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 121u, 0x08890828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946168u) goto L_08946168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946168: aot_gpr_5 = (2236u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(32304)); @@ -5070,8 +6478,8 @@ L_089461D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894624C: @@ -5091,8 +6499,8 @@ L_0894624C: aot_fpr_12 = aot_fpr_12 + aot_fpr_14; jump_target = aot_gpr_31; aot_fpr_0 = aot_fpr_12 + aot_fpr_0; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894628C: @@ -5108,8 +6516,21 @@ L_0894628C: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x089462BCu); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(29552), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 402u, 0x089462BCu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089462BCu) goto L_089462BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089462BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29552))); aot_gpr_5 = (23808u << 16u); @@ -5122,15 +6543,15 @@ L_089462BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089462E8: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089462F0: @@ -5139,8 +6560,21 @@ L_089462F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08946304u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 405u, 0x08946304u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946304u) goto L_08946304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946304: aot_gpr_4 = (ctx.gpr[16] + static_cast(128)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-18092))); @@ -5162,8 +6596,8 @@ L_08946304: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946354: @@ -5344,8 +6778,8 @@ L_089464DC: L_089464E0: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089464E8: @@ -5362,8 +6796,8 @@ L_089464E8: aot_gpr_4 = (aot_gpr_4 + static_cast(8896)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(64), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894651C: @@ -5375,21 +6809,60 @@ L_0894651C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0894653Cu); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 427u, 0x0894653Cu, 0x088079D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 555u, 0x088079D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894653Cu) goto L_0894653C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894653C: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(0), ctx.gpr[16]); aot_gpr_5 = (ctx.gpr[28] + static_cast(-18004)); aot_gpr_31 = (0x0894654Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 428u, 0x0894654Cu, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894654Cu) goto L_0894654C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894654C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08946558u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 429u, 0x08946558u, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946558u) goto L_08946558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946558: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5399,8 +6872,8 @@ L_08946558: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894656C: @@ -5425,8 +6898,21 @@ L_0894659C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089465C0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 432u, 0x089465C0u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089465C0u) goto L_089465C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089465C0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_4 = (49864u << 16u); @@ -5470,8 +6956,21 @@ L_0894660C: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08946620u); aot_gpr_6 = (aot_gpr_6 + static_cast(-9496)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 437u, 0x08946620u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946620u) goto L_08946620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946620: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5607,8 +7106,21 @@ L_089466DC: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x089466FCu); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 452u, 0x089466FCu, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089466FCu) goto L_089466FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089466FC: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5619,8 +7131,21 @@ L_0894670C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08946718u); aot_gpr_4 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 454u, 0x08946718u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946718u) goto L_08946718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946718: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -5633,8 +7158,21 @@ L_08946718: L_08946724: aot_gpr_31 = (0x0894672Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 456u, 0x0894672Cu, 0x08A0A1DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 314u, 0x08A0A1DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894672Cu) goto L_0894672C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894672C: ctx.gpr[16] = (ctx.gpr[20] | 0u); goto L_08946730; @@ -5642,14 +7180,40 @@ L_08946730: aot_gpr_4 = (ctx.gpr[19] + static_cast(116)); aot_gpr_31 = (0x0894673Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 458u, 0x0894673Cu, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894673Cu) goto L_0894673C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894673C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08946748u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 459u, 0x08946748u, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946748u) goto L_08946748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946748: aot_gpr_2 = (ctx.gpr[17] | 0u); goto L_0894674C; @@ -5666,8 +7230,8 @@ L_0894674C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946770: @@ -5714,8 +7278,21 @@ L_089467E8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089467F4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 465u, 0x089467F4u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089467F4u) goto L_089467F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089467F4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5727,8 +7304,21 @@ L_089467FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08946808u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 467u, 0x08946808u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946808u) goto L_08946808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946808: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(96))); @@ -5742,8 +7332,21 @@ L_08946818: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08946828u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 469u, 0x08946828u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946828u) goto L_08946828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946828: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -5837,8 +7440,8 @@ L_089468B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089468E0: @@ -5848,8 +7451,21 @@ L_089468E0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089468FCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 482u, 0x089468FCu, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089468FCu) goto L_089468FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089468FC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5869,8 +7485,21 @@ L_08946908: } L_08946918: aot_gpr_31 = (0x08946920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 485u, 0x08946920u, 0x088F2DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 608u, 0x088F2DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946920u) goto L_08946920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946920: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[16]); goto L_08946924; @@ -5884,8 +7513,8 @@ L_08946924: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894693C: @@ -5898,8 +7527,21 @@ L_0894693C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08946960u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 488u, 0x08946960u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946960u) goto L_08946960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946960: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5919,8 +7561,21 @@ L_0894696C: } L_0894697C: aot_gpr_31 = (0x08946984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 491u, 0x08946984u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946984u) goto L_08946984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946984: aot_gpr_5 = (2246u << 16u); aot_gpr_4 = (aot_gpr_2 << 6u); @@ -5952,8 +7607,8 @@ L_089469B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089469C4: @@ -5966,8 +7621,21 @@ L_089469C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089469E8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 496u, 0x089469E8u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089469E8u) goto L_089469E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089469E8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5987,8 +7655,21 @@ L_089469F4: } L_08946A04: aot_gpr_31 = (0x08946A0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 499u, 0x08946A0Cu, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946A0Cu) goto L_08946A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946A0C: aot_gpr_4 = (2246u << 16u); aot_gpr_5 = (aot_gpr_2 << 6u); @@ -5996,8 +7677,21 @@ L_08946A0C: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08946A24u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 500u, 0x08946A24u, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946A24u) goto L_08946A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946A24: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[17] | 0u); @@ -6018,8 +7712,8 @@ L_08946A30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946A44: @@ -6028,15 +7722,28 @@ L_08946A44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08946A58u); aot_gpr_4 = (aot_gpr_4 + static_cast(-11072)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 504u, 0x08946A58u, 0x088F3420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 644u, 0x088F3420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946A58u) goto L_08946A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946A58: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946A68: @@ -6046,30 +7753,56 @@ L_08946A68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08946A80u); aot_gpr_5 = (aot_gpr_5 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 506u, 0x08946A80u, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946A80u) goto L_08946A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946A80: aot_gpr_2 = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946A90: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08946AA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 508u, 0x08946AA0u, 0x088F3AC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 733u, 0x088F3AC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946AA0u) goto L_08946AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946AA0: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946AB0: @@ -6095,8 +7828,21 @@ L_08946AD4: aot_gpr_6 = (ctx.gpr[28] + static_cast(-18004)); aot_gpr_31 = (0x08946AE0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-9648)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 513u, 0x08946AE0u, 0x08885284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 270u, 0x08885284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946AE0u) goto L_08946AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946AE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6118,14 +7864,27 @@ L_08946AFC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08946B08u); aot_gpr_5 = (aot_gpr_5 + static_cast(-9552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 517u, 0x08946B08u, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946B08u) goto L_08946B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946B08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946B14: @@ -6181,8 +7940,8 @@ L_08946B14: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946B3C: @@ -6196,8 +7955,8 @@ L_08946B4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946B58: @@ -6241,8 +8000,8 @@ L_08946B58: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946B9C: @@ -6250,8 +8009,8 @@ L_08946B9C: aot_gpr_2 = (aot_gpr_4 & 2u); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946BAC: @@ -6273,8 +8032,21 @@ L_08946BD0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(92), aot_gpr_4); aot_gpr_31 = (0x08946BE4u); aot_gpr_4 = (ctx.gpr[16] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 525u, 0x08946BE4u, 0x08AB4074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 13u, 0x08AB4074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946BE4u) goto L_08946BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946BE4: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(3292))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6300,8 +8072,21 @@ L_08946BF8: goto L_08946C00; L_08946C00: aot_gpr_31 = (0x08946C08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 529u, 0x08946C08u, 0x08B6BAECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 721u, 0x08B6BAECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946C08u) goto L_08946C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946C08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(6000))); if (aot_gpr_4 == 0u) { @@ -6319,8 +8104,21 @@ L_08946C1C: L_08946C20: aot_gpr_31 = (0x08946C28u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 533u, 0x08946C28u, 0x088876BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 771u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 771u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 771u, 0x088876BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946C28u) goto L_08946C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946C28: { const bool branch_taken = ctx.gpr[19] == 0u; aot_gpr_4 = (2234u << 16u); @@ -6393,8 +8191,21 @@ L_08946C80: L_08946C90: aot_gpr_31 = (0x08946C98u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 543u, 0x08946C98u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946C98u) goto L_08946C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946C98: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-17613), static_cast(aot_gpr_4)); @@ -6425,8 +8236,21 @@ L_08946CD0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08946CDCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 547u, 0x08946CDCu, 0x08905FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 416u, 0x08905FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946CDCu) goto L_08946CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946CDC: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6438,8 +8262,21 @@ L_08946CDC: L_08946CE8: aot_gpr_31 = (0x08946CF0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 549u, 0x08946CF0u, 0x08906308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 477u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 477u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 477u, 0x08906308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946CF0u) goto L_08946CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946CF0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -6451,8 +8288,8 @@ L_08946CF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946D0C: @@ -6477,8 +8314,8 @@ L_08946D20: goto L_08946D28; L_08946D28: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946D30: @@ -6503,16 +8340,16 @@ L_08946D44: goto L_08946D4C; L_08946D4C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946D54: aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(3292))); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 + static_cast(152)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946D60: @@ -6526,8 +8363,21 @@ L_08946D60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08946D8Cu); aot_gpr_4 = (0u | 3344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 560u, 0x08946D8Cu, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946D8Cu) goto L_08946D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946D8C: aot_gpr_4 = (ctx.gpr[16] + ctx.gpr[16]); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); @@ -6548,8 +8398,21 @@ L_08946DB4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08946DC0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 562u, 0x08946DC0u, 0x08949E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 420u, 0x08949E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946DC0u) goto L_08946DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946DC0: ctx.gpr[17] = (ctx.gpr[19] | 0u); goto L_08946DC4; @@ -6574,8 +8437,21 @@ L_08946DC4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08946DE8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 564u, 0x08946DE8u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946DE8u) goto L_08946DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946DE8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6585,13 +8461,39 @@ L_08946DE8: } aot_gpr_31 = (0x08946DFCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 565u, 0x08946DFCu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946DFCu) goto L_08946DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946DFC: aot_gpr_31 = (0x08946E04u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 566u, 0x08946E04u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946E04u) goto L_08946E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946E04: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (17096u << 16u); @@ -6610,8 +8512,21 @@ L_08946E28: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1934), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08946E3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 568u, 0x08946E3Cu, 0x08949CA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 400u, 0x08949CA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946E3Cu) goto L_08946E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946E3C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -6623,8 +8538,8 @@ L_08946E3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946E58: @@ -6645,14 +8560,27 @@ L_08946E58: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08946E9Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 570u, 0x08946E9Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946E9Cu) goto L_08946E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946E9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946EA8: @@ -6669,8 +8597,21 @@ L_08946EA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08946EDCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 572u, 0x08946EDCu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946EDCu) goto L_08946EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946EDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(3262)))))); @@ -6681,8 +8622,8 @@ L_08946EDC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946F00: @@ -6700,20 +8641,33 @@ L_08946F14: aot_gpr_4 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x08946F24u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 575u, 0x08946F24u, 0x08A39C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 427u, 0x08A39C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946F24u) goto L_08946F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946F24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946F30: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08946F38: @@ -6745,8 +8699,21 @@ L_08946F9C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08946FACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 579u, 0x08946FACu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946FACu) goto L_08946FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946FAC: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6789,8 +8756,21 @@ L_08946FE8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(776))); aot_gpr_31 = (0x08946FF4u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 586u, 0x08946FF4u, 0x0893E8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 633u, 0x0893E8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08946FF4u) goto L_08946FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08946FF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(32))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(32))); @@ -6859,8 +8839,21 @@ L_08947048: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x0894705Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 594u, 0x0894705Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894705Cu) goto L_0894705C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894705C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(36))); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(36), std::bit_cast(aot_fpr_12)); @@ -6894,8 +8887,8 @@ L_0894708C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089470B0: @@ -7009,8 +9002,8 @@ L_0894718C: goto L_08947190; L_08947190: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947198: @@ -7041,8 +9034,8 @@ L_089471D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089471E4: @@ -7075,19 +9068,58 @@ L_08947218: L_08947224: aot_gpr_31 = (0x0894722Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 616u, 0x0894722Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894722Cu) goto L_0894722C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894722C: aot_gpr_31 = (0x08947234u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 617u, 0x08947234u, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947234u) goto L_08947234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947234: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08947240u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 618u, 0x08947240u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947240u) goto L_08947240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947240: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -7136,8 +9168,21 @@ L_089472B4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089472C0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 623u, 0x089472C0u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089472C0u) goto L_089472C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089472C0: aot_gpr_31 = (0x089472C8u); aot_gpr_4 = (0u | 30u); @@ -7161,8 +9206,21 @@ L_089472EC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089472FCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 626u, 0x089472FCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089472FCu) goto L_089472FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089472FC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7181,8 +9239,21 @@ L_08947308: L_0894731C: aot_gpr_31 = (0x08947324u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 629u, 0x08947324u, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947324u) goto L_08947324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947324: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -7194,8 +9265,8 @@ L_08947324: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947340: @@ -7343,8 +9414,8 @@ L_08947408: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947420: @@ -7390,8 +9461,8 @@ L_0894745C: } L_08947468: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947470: @@ -7399,14 +9470,27 @@ L_08947470: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08947480u); aot_gpr_4 = (aot_gpr_4 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 656u, 0x08947480u, 0x08AB3C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 965u, 0x08AB3C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947480u) goto L_08947480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947480: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894748C: @@ -7414,14 +9498,27 @@ L_0894748C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0894749Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 658u, 0x0894749Cu, 0x08AB3D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 982u, 0x08AB3D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894749Cu) goto L_0894749C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894749C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089474A8: @@ -7429,14 +9526,27 @@ L_089474A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089474B8u); aot_gpr_4 = (aot_gpr_4 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 660u, 0x089474B8u, 0x08AB3DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 988u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 988u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 988u, 0x08AB3DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089474B8u) goto L_089474B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089474B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089474C4: @@ -7462,8 +9572,8 @@ L_089474E0: goto L_089474E4; L_089474E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089474EC: @@ -7481,14 +9591,27 @@ L_08947504: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08947510u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 667u, 0x08947510u, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947510u) goto L_08947510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947510: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894751C: @@ -7549,8 +9672,8 @@ L_08947564: goto L_0894756C; L_0894756C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947574: @@ -7578,8 +9701,8 @@ L_08947590: goto L_089475A0; L_089475A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089475A8: @@ -7688,15 +9811,15 @@ L_08947628: goto L_0894762C; L_0894762C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947634: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(3330)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894763C: @@ -7737,8 +9860,21 @@ L_08947670: } L_08947678: aot_gpr_31 = (0x08947680u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 702u, 0x08947680u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947680u) goto L_08947680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947680: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7773,16 +9909,16 @@ L_089476AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089476BC: aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(3330))); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 & 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089476C8: @@ -7790,8 +9926,8 @@ L_089476C8: aot_gpr_2 = (aot_gpr_4 & 4u); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089476D8: @@ -7799,8 +9935,8 @@ L_089476D8: aot_gpr_2 = (aot_gpr_4 & 2u); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089476E8: @@ -7808,8 +9944,8 @@ L_089476E8: aot_gpr_2 = (aot_gpr_4 & 32u); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089476F8: @@ -7852,8 +9988,8 @@ L_08947738: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894774C: @@ -7898,8 +10034,8 @@ L_08947794: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089477A8: @@ -7942,8 +10078,8 @@ L_089477E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089477FC: @@ -8003,8 +10139,8 @@ L_08947858: goto L_08947868; L_08947868: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947870: @@ -8022,8 +10158,8 @@ L_0894787C: goto L_08947888; L_08947888: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947890: @@ -8042,8 +10178,8 @@ L_0894789C: goto L_089478AC; L_089478AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089478B4: @@ -8089,8 +10225,8 @@ L_08947900: L_08947920: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(3296), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947928: @@ -8104,8 +10240,8 @@ L_08947928: goto L_0894793C; L_0894793C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947944: @@ -8152,8 +10288,8 @@ L_08947984: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3330), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(3296), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947990: @@ -8242,8 +10378,21 @@ L_089479FC: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08947A34u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 758u, 0x08947A34u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947A34u) goto L_08947A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947A34: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8289,8 +10438,21 @@ L_08947A50: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08947A88u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 762u, 0x08947A88u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947A88u) goto L_08947A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947A88: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8336,8 +10498,21 @@ L_08947AA4: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08947ADCu); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 766u, 0x08947ADCu, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947ADCu) goto L_08947ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947ADC: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8380,8 +10555,21 @@ L_08947AF8: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08947B24u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 770u, 0x08947B24u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947B24u) goto L_08947B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947B24: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08947B28; @@ -8389,8 +10577,21 @@ L_08947B28: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08947B34u); aot_gpr_4 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 772u, 0x08947B34u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947B34u) goto L_08947B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947B34: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8403,8 +10604,21 @@ L_08947B34: L_08947B40: aot_gpr_31 = (0x08947B48u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 774u, 0x08947B48u, 0x08A0A1DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 314u, 0x08A0A1DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947B48u) goto L_08947B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947B48: ctx.gpr[18] = (ctx.gpr[17] | 0u); goto L_08947B4C; @@ -8414,14 +10628,40 @@ L_08947B4C: aot_gpr_4 = (aot_gpr_4 + static_cast(116)); aot_gpr_31 = (0x08947B60u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 776u, 0x08947B60u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947B60u) goto L_08947B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947B60: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08947B6Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 777u, 0x08947B6Cu, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947B6Cu) goto L_08947B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947B6C: aot_gpr_31 = (0x08947B74u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8437,8 +10677,8 @@ L_08947B74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08947B90: @@ -8469,8 +10709,21 @@ L_08947BD0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08947BE0u); ctx.gpr[19] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 782u, 0x08947BE0u, 0x08ADD768u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 395u, 0x08ADD768u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947BE0u) goto L_08947BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947BE0: { const bool branch_taken = ctx.gpr[19] == aot_gpr_2; if (branch_taken) { @@ -8484,8 +10737,21 @@ L_08947BE8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08947BFCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 784u, 0x08947BFCu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947BFCu) goto L_08947BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947BFC: if (aot_gpr_2 != 0u) { aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); @@ -8511,8 +10777,21 @@ L_08947C14: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08947C20u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 788u, 0x08947C20u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947C20u) goto L_08947C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947C20: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(96))); @@ -8526,8 +10805,21 @@ L_08947C30: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08947C40u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 790u, 0x08947C40u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947C40u) goto L_08947C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947C40: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -8547,8 +10839,21 @@ L_08947C5C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08947C6Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 793u, 0x08947C6Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947C6Cu) goto L_08947C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947C6C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8586,14 +10891,40 @@ L_08947C98: L_08947CA0: aot_gpr_31 = (0x08947CA8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 798u, 0x08947CA8u, 0x089D3458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 597u, 0x089D3458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947CA8u) goto L_08947CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947CA8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08947CB4u); ctx.gpr[16] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 799u, 0x08947CB4u, 0x0890EF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 696u, 0x0890EF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947CB4u) goto L_08947CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947CB4: { const bool branch_taken = ctx.gpr[16] == aot_gpr_2; if (branch_taken) { @@ -8630,8 +10961,21 @@ L_08947CD8: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08947CE8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 804u, 0x08947CE8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947CE8u) goto L_08947CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947CE8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -8687,8 +11031,21 @@ L_08947D3C: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08947D4Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 812u, 0x08947D4Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947D4Cu) goto L_08947D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947D4C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -8719,8 +11076,21 @@ L_08947D7C: aot_gpr_6 = (aot_gpr_29 + static_cast(19)); aot_gpr_31 = (0x08947D8Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 816u, 0x08947D8Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947D8Cu) goto L_08947D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947D8C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(19))); @@ -8748,8 +11118,21 @@ L_08947DB0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_31 = (0x08947DBCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 820u, 0x08947DBCu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947DBCu) goto L_08947DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947DBC: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_08947DC0; @@ -8772,8 +11155,21 @@ L_08947DD4: aot_gpr_6 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08947DE4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 824u, 0x08947DE4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947DE4u) goto L_08947DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947DE4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(20))); @@ -8802,8 +11198,21 @@ L_08947E0C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_31 = (0x08947E18u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 828u, 0x08947E18u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947E18u) goto L_08947E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947E18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(112))); goto L_08947E1C; @@ -8826,8 +11235,21 @@ L_08947E30: aot_gpr_6 = (aot_gpr_29 + static_cast(21)); aot_gpr_31 = (0x08947E40u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 832u, 0x08947E40u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947E40u) goto L_08947E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947E40: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(21))); @@ -8858,8 +11280,21 @@ L_08947E70: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_31 = (0x08947E7Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 836u, 0x08947E7Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947E7Cu) goto L_08947E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947E7C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(112))); aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(60))); @@ -8922,8 +11357,21 @@ L_08947EC8: aot_gpr_6 = (aot_gpr_29 + static_cast(22)); aot_gpr_31 = (0x08947ED8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 845u, 0x08947ED8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947ED8u) goto L_08947ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947ED8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(22))); @@ -8954,8 +11402,21 @@ L_08947F08: aot_gpr_6 = (aot_gpr_29 + static_cast(23)); aot_gpr_31 = (0x08947F18u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 849u, 0x08947F18u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947F18u) goto L_08947F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947F18: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(23))); @@ -8983,8 +11444,21 @@ L_08947F3C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_31 = (0x08947F48u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 853u, 0x08947F48u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947F48u) goto L_08947F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947F48: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_08947F4C; @@ -9007,8 +11481,21 @@ L_08947F60: aot_gpr_6 = (aot_gpr_29 + static_cast(24)); aot_gpr_31 = (0x08947F70u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 857u, 0x08947F70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947F70u) goto L_08947F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947F70: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24))); @@ -9037,8 +11524,21 @@ L_08947F98: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_31 = (0x08947FA4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 861u, 0x08947FA4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947FA4u) goto L_08947FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947FA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(112))); goto L_08947FA8; @@ -9061,8 +11561,21 @@ L_08947FBC: aot_gpr_6 = (aot_gpr_29 + static_cast(25)); aot_gpr_31 = (0x08947FCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0080->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0080_entry, 865u, 0x08947FCCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08947FCCu) goto L_08947FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08947FCC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(25))); diff --git a/profiles/vcs/generated/generated_unit_0081.cpp b/profiles/vcs/generated/generated_unit_0081.cpp index 863869c..a5b0d74 100644 --- a/profiles/vcs/generated/generated_unit_0081.cpp +++ b/profiles/vcs/generated/generated_unit_0081.cpp @@ -993,6 +993,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08948000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1009,8 +1033,21 @@ LOCAL_SCHED_BOUNDARY: L_08948000: aot_gpr_31 = (0x08948008u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 2u, 0x08948008u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948008u) goto L_08948008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948008: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(112))); ctx.gpr[18] = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(62))); @@ -1038,15 +1075,15 @@ L_08948020: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948040: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(3304))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948048: @@ -1111,8 +1148,21 @@ L_089480C0: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x089480DCu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(29552), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 13u, 0x089480DCu, 0x08926088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 518u, 0x08926088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089480DCu) goto L_089480DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089480DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29552))); aot_gpr_5 = (7168u << 16u); @@ -1139,8 +1189,8 @@ L_08948104: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948114: @@ -1220,17 +1270,56 @@ L_089481BC: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x089481C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 23u, 0x089481C8u, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089481C8u) goto L_089481C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089481C8: aot_gpr_31 = (0x089481D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 24u, 0x089481D0u, 0x08A17A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 606u, 0x08A17A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089481D0u) goto L_089481D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089481D0: aot_gpr_31 = (0x089481D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 25u, 0x089481D8u, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089481D8u) goto L_089481D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089481D8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3262)))))); aot_gpr_5 = (0u + static_cast(-9)); @@ -1269,8 +1358,8 @@ L_08948210: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948224: @@ -1366,8 +1455,8 @@ L_089482AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089482C4: @@ -1383,8 +1472,21 @@ L_089482C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x089482F8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 43u, 0x089482F8u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089482F8u) goto L_089482F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089482F8: aot_gpr_5 = (2234u << 16u); ctx.gpr[19] = (ctx.gpr[19] << 5u); @@ -1435,8 +1537,21 @@ L_08948358: L_0894835C: aot_gpr_31 = (0x08948364u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 49u, 0x08948364u, 0x0898D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 434u, 0x0898D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948364u) goto L_08948364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948364: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1473,8 +1588,21 @@ L_08948394: L_0894839C: aot_gpr_31 = (0x089483A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 54u, 0x089483A4u, 0x0898D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 543u, 0x0898D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089483A4u) goto L_089483A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089483A4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1272))); @@ -1583,8 +1711,21 @@ L_08948464: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08948474u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 68u, 0x08948474u, 0x089470B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 597u, 0x089470B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948474u) goto L_08948474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948474: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1630,8 +1771,8 @@ L_089484A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089484D0: @@ -1689,8 +1830,8 @@ L_08948538: } L_08948544: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894854C: @@ -1703,16 +1844,16 @@ L_0894854C: } L_08948554: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894855C: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(3292))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948568: @@ -1721,8 +1862,8 @@ L_08948568: aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3262), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894857C: @@ -1749,8 +1890,21 @@ L_089485B0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089485C0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 86u, 0x089485C0u, 0x08A1D018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 167u, 0x08A1D018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089485C0u) goto L_089485C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089485C0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1782,8 +1936,21 @@ L_089485E8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089485F8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 90u, 0x089485F8u, 0x08A1D018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 167u, 0x08A1D018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089485F8u) goto L_089485F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089485F8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1806,8 +1973,21 @@ L_08948610: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08948620u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 93u, 0x08948620u, 0x08A1D018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 167u, 0x08A1D018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948620u) goto L_08948620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948620: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1830,8 +2010,21 @@ L_08948638: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08948648u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 96u, 0x08948648u, 0x08A1D018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 167u, 0x08A1D018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948648u) goto L_08948648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948648: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1845,8 +2038,21 @@ L_08948650: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08948660u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 98u, 0x08948660u, 0x08A1D018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 167u, 0x08A1D018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948660u) goto L_08948660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948660: ctx.gpr[2] = (0u | 0u); goto L_08948664; @@ -1854,8 +2060,8 @@ L_08948664: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948670: @@ -1866,8 +2072,21 @@ L_08948670: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0894868Cu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 101u, 0x0894868Cu, 0x08907B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 846u, 0x08907B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894868Cu) goto L_0894868C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894868C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1919,8 +2138,8 @@ L_089486C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089486DC: @@ -1954,8 +2173,21 @@ L_089486F0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08948714u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 110u, 0x08948714u, 0x08804E00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 121u, 0x08804E00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948714u) goto L_08948714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948714: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1986,15 +2218,15 @@ L_08948730: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894873C: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(3340))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948744: @@ -2050,8 +2282,8 @@ L_08948794: goto L_08948798; L_08948798: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089487A0: @@ -2154,8 +2386,8 @@ L_08948880: goto L_08948890; L_08948890: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948898: @@ -2195,8 +2427,8 @@ L_089488D0: goto L_089488EC; L_089488EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089488F4: @@ -2210,15 +2442,41 @@ L_089488F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), aot_gpr_31); aot_gpr_31 = (0x08948920u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 139u, 0x08948920u, 0x0898C4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 114u, 0x0898C4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948920u) goto L_08948920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948920: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08948930u); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 140u, 0x08948930u, 0x0898C578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 124u, 0x0898C578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948930u) goto L_08948930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948930: aot_fpr_13 = std::bit_cast(ctx.gpr[2]); ctx.fpr[22] = static_cast(static_cast(std::bit_cast(aot_fpr_13))); @@ -2228,8 +2486,21 @@ L_08948930: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08948950u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 141u, 0x08948950u, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948950u) goto L_08948950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948950: { const float fs = aot_fpr_20; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } @@ -2260,8 +2531,21 @@ L_0894897C: aot_fpr_12 = aot_fpr_12 - ctx.fpr[15]; aot_gpr_31 = (0x089489B0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 143u, 0x089489B0u, 0x0898D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 543u, 0x0898D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089489B0u) goto L_089489B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089489B0: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (17008u << 16u); @@ -2353,8 +2637,21 @@ L_08948A58: L_08948A70: aot_gpr_31 = (0x08948A78u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 153u, 0x08948A78u, 0x0898D640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 508u, 0x0898D640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948A78u) goto L_08948A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948A78: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2383,8 +2680,21 @@ L_08948A98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08948AA8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 157u, 0x08948AA8u, 0x0891ECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 550u, 0x0891ECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948AA8u) goto L_08948AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948AA8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(3257), static_cast(0u)); { const bool branch_taken = 0u == 0u; @@ -2408,8 +2718,21 @@ L_08948AC4: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08948AD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 160u, 0x08948AD0u, 0x0892FCA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 765u, 0x0892FCA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948AD0u) goto L_08948AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948AD0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2431,8 +2754,21 @@ L_08948AE0: L_08948AE8: aot_gpr_31 = (0x08948AF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 164u, 0x08948AF0u, 0x0890E2FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 513u, 0x0890E2FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948AF0u) goto L_08948AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948AF0: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -2445,8 +2781,8 @@ L_08948AF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948B10: @@ -2465,15 +2801,41 @@ L_08948B10: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } aot_gpr_31 = (0x08948B54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 166u, 0x08948B54u, 0x0898C4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 114u, 0x0898C4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948B54u) goto L_08948B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948B54: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08948B64u); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 167u, 0x08948B64u, 0x0898C578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 124u, 0x0898C578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948B64u) goto L_08948B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948B64: aot_fpr_13 = std::bit_cast(ctx.gpr[2]); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); @@ -2496,8 +2858,21 @@ L_08948B64: L_08948BA0: aot_gpr_31 = (0x08948BA8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 169u, 0x08948BA8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948BA8u) goto L_08948BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948BA8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2260), std::bit_cast(ctx.fpr[0])); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -2722,8 +3097,21 @@ L_08948D04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08948DA4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 190u, 0x08948DA4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948DA4u) goto L_08948DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948DA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2761,8 +3149,21 @@ L_08948DDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_31 = (0x08948DE8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 196u, 0x08948DE8u, 0x0881DF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 302u, 0x0881DF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948DE8u) goto L_08948DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948DE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2778,8 +3179,21 @@ L_08948DF8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08948E04u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 199u, 0x08948E04u, 0x0894ECE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 548u, 0x0894ECE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948E04u) goto L_08948E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948E04: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -2794,8 +3208,8 @@ L_08948E04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08948E2C: @@ -2899,8 +3313,21 @@ L_08948EFC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08948F2Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 210u, 0x08948F2Cu, 0x0898BB24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 952u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 952u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 952u, 0x0898BB24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948F2Cu) goto L_08948F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948F2C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -2970,8 +3397,21 @@ L_08948F88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17984))); aot_gpr_31 = (0x08948F94u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 219u, 0x08948F94u, 0x08AD3328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 556u, 0x08AD3328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948F94u) goto L_08948F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948F94: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(20))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2983,8 +3423,21 @@ L_08948F94: L_08948FA0: aot_gpr_31 = (0x08948FA8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 221u, 0x08948FA8u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08948FA8u) goto L_08948FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08948FA8: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -3152,8 +3605,21 @@ L_089490BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089490E8u); aot_fpr_12 = std::bit_cast(ctx.gpr[8]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 242u, 0x089490E8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089490E8u) goto L_089490E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089490E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 512u); @@ -3179,8 +3645,21 @@ L_08949100: L_0894910C: aot_gpr_31 = (0x08949114u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 246u, 0x08949114u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949114u) goto L_08949114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949114: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3226,8 +3705,21 @@ L_08949150: L_08949158: aot_gpr_31 = (0x08949160u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 253u, 0x08949160u, 0x08AD3464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 570u, 0x08AD3464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949160u) goto L_08949160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949160: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3253,8 +3745,8 @@ L_0894916C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949198: @@ -3312,8 +3804,8 @@ L_08949210: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-9448))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949228: @@ -3401,8 +3893,21 @@ L_089492B4: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089492C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 270u, 0x089492C0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089492C0u) goto L_089492C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089492C0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3478,8 +3983,21 @@ L_0894933C: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0894934Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 279u, 0x0894934Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894934Cu) goto L_0894934C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894934C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3559,8 +4077,21 @@ L_089493D0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089493E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 288u, 0x089493E0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089493E0u) goto L_089493E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089493E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3619,8 +4150,8 @@ L_0894942C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949440: @@ -3650,8 +4181,21 @@ L_08949478: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08949488u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 298u, 0x08949488u, 0x089068C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 571u, 0x089068C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949488u) goto L_08949488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949488: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3683,8 +4227,21 @@ L_08949490: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089494C0u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 300u, 0x089494C0u, 0x08A17F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 670u, 0x08A17F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089494C0u) goto L_089494C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089494C0: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1914))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -3707,8 +4264,8 @@ L_089494D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089494F0: @@ -3723,8 +4280,21 @@ L_089494F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0894951Cu); aot_gpr_6 = (0u | 141u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 303u, 0x0894951Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894951Cu) goto L_0894951C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894951C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3764,8 +4334,21 @@ L_0894955C: L_08949564: aot_gpr_31 = (0x0894956Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 308u, 0x0894956Cu, 0x0898C4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 114u, 0x0898C4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894956Cu) goto L_0894956C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894956C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3779,8 +4362,21 @@ L_0894956C: L_08949584: aot_gpr_31 = (0x0894958Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 310u, 0x0894958Cu, 0x0898C578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 124u, 0x0898C578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894958Cu) goto L_0894958C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894958C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3797,8 +4393,21 @@ L_089495A4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089495B8u); ctx.gpr[7] = (0u | 138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 312u, 0x089495B8u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089495B8u) goto L_089495B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089495B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -3810,8 +4419,21 @@ L_089495B8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(8), aot_gpr_5); aot_gpr_31 = (0x089495E0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 313u, 0x089495E0u, 0x0889057Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 89u, 0x0889057Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089495E0u) goto L_089495E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089495E0: aot_gpr_5 = (2193u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -3859,8 +4481,21 @@ L_08949630: L_08949638: aot_gpr_31 = (0x08949640u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 319u, 0x08949640u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949640u) goto L_08949640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949640: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3872,8 +4507,8 @@ L_08949640: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894965C: @@ -4038,8 +4673,8 @@ L_08949774: goto L_089497A8; L_089497A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089497B0: @@ -4119,8 +4754,21 @@ L_08949830: L_08949840: aot_gpr_31 = (0x08949848u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 343u, 0x08949848u, 0x0891241Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 575u, 0x0891241Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949848u) goto L_08949848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949848: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08949854u); @@ -4135,8 +4783,21 @@ L_0894985C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08949868u); aot_gpr_5 = (0u | 51u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 346u, 0x08949868u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949868u) goto L_08949868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949868: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08949874u); @@ -4147,8 +4808,21 @@ L_08949874: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08949880u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 348u, 0x08949880u, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949880u) goto L_08949880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949880: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4174,8 +4848,21 @@ L_089498A4: aot_gpr_5 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x089498B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 352u, 0x089498B0u, 0x08911F98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 529u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 529u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 529u, 0x08911F98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089498B0u) goto L_089498B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089498B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4191,15 +4878,28 @@ L_089498C0: aot_gpr_5 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x089498CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 355u, 0x089498CCu, 0x08930380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 20u, 0x08930380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089498CCu) goto L_089498CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089498CC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089498DC: @@ -4283,14 +4983,40 @@ L_08949978: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089499ACu); aot_fpr_13 = aot_fpr_14 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 363u, 0x089499ACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089499ACu) goto L_089499AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089499AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_gpr_31 = (0x089499B8u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 364u, 0x089499B8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089499B8u) goto L_089499B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089499B8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); @@ -4348,8 +5074,8 @@ L_08949A24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949A38: @@ -4419,8 +5145,8 @@ L_08949AB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949AC0: @@ -4515,8 +5241,8 @@ L_08949B44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949B54: @@ -4544,14 +5270,40 @@ L_08949B80: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x08949B9Cu); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 387u, 0x08949B9Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949B9Cu) goto L_08949B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949B9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2256))); aot_gpr_31 = (0x08949BA8u); aot_fpr_12 = ctx.fpr[0] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 388u, 0x08949BA8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949BA8u) goto L_08949BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949BA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08949BB4u); @@ -4664,8 +5416,8 @@ L_08949C8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949CA8: @@ -4677,21 +5429,47 @@ L_08949CA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08949CC8u); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 401u, 0x08949CC8u, 0x08A39C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 427u, 0x08A39C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949CC8u) goto L_08949CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949CC8: aot_gpr_4 = (aot_gpr_16 + static_cast(2016)); aot_gpr_31 = (0x08949CD4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 402u, 0x08949CD4u, 0x08AD99CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 455u, 0x08AD99CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949CD4u) goto L_08949CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949CD4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949CE4: @@ -4736,8 +5514,21 @@ L_08949CFC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08949D24u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 405u, 0x08949D24u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949D24u) goto L_08949D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949D24: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_14 = std::bit_cast(0u); @@ -4773,8 +5564,8 @@ L_08949D70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949D80: @@ -4808,8 +5599,21 @@ L_08949DB8: L_08949DD0: aot_gpr_31 = (0x08949DD8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 413u, 0x08949DD8u, 0x0898D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 543u, 0x0898D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949DD8u) goto L_08949DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949DD8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4866,8 +5670,8 @@ L_08949E20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08949E34: @@ -4881,8 +5685,21 @@ L_08949E34: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(56), aot_run_words); } aot_gpr_31 = (0x08949E74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 421u, 0x08949E74u, 0x08913670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 838u, 0x08913670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949E74u) goto L_08949E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949E74: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3262)))))); ctx.gpr[20] = (0u + static_cast(-3)); @@ -4925,8 +5742,21 @@ L_08949E74: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x08949F1Cu); aot_gpr_4 = (0u | 6320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 422u, 0x08949F1Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949F1Cu) goto L_08949F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949F1C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4941,28 +5771,80 @@ L_08949F28: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); aot_gpr_31 = (0x08949F38u); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 424u, 0x08949F38u, 0x08A39E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 448u, 0x08A39E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949F38u) goto L_08949F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949F38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_31 = (0x08949F44u); aot_gpr_4 = (aot_gpr_4 + static_cast(152)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 425u, 0x08949F44u, 0x08887688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 768u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 768u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 768u, 0x08887688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949F44u) goto L_08949F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949F44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_31 = (0x08949F50u); aot_gpr_4 = (aot_gpr_4 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 426u, 0x08949F50u, 0x089F2360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 387u, 0x089F2360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949F50u) goto L_08949F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949F50: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_4 = (0u | 36u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(6000), 0u); aot_gpr_31 = (0x08949F64u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 427u, 0x08949F64u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949F64u) goto L_08949F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949F64: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); ctx.gpr[23] = (ctx.gpr[2] | 0u); @@ -4994,8 +5876,21 @@ L_08949F98: aot_gpr_4 = (ctx.gpr[23] + static_cast(176)); aot_gpr_31 = (0x08949FA8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 432u, 0x08949FA8u, 0x089F23ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 390u, 0x089F23ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949FA8u) goto L_08949FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949FA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -5020,8 +5915,21 @@ L_08949FC4: L_08949FE0: aot_gpr_31 = (0x08949FE8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 435u, 0x08949FE8u, 0x08AB36D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 890u, 0x08AB36D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08949FE8u) goto L_08949FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08949FE8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(3152), 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1929), static_cast(0u)); @@ -5038,8 +5946,21 @@ L_0894A010: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894A01Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 437u, 0x0894A01Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A01Cu) goto L_0894A01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A01C: aot_gpr_4 = (17174u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5163,8 +6084,21 @@ L_0894A150: L_0894A154: aot_gpr_31 = (0x0894A15Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-17904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 447u, 0x0894A15Cu, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A15Cu) goto L_0894A15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A15C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-17984), ctx.gpr[2]); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; @@ -5188,8 +6122,21 @@ L_0894A15C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(3260), static_cast(0u)); aot_gpr_31 = (0x0894A18Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 448u, 0x0894A18Cu, 0x08946D54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 558u, 0x08946D54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A18Cu) goto L_0894A18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A18C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(48)); @@ -5209,8 +6156,21 @@ L_0894A1A8: L_0894A1B0: aot_gpr_31 = (0x0894A1B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 451u, 0x0894A1B8u, 0x08B141E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 14u, 0x08B141E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A1B8u) goto L_0894A1B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A1B8: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[11]{}; @@ -5229,8 +6189,8 @@ L_0894A1B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894A1F0: @@ -5250,8 +6210,21 @@ L_0894A214: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x0894A238u); aot_gpr_4 = (aot_gpr_4 + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 454u, 0x0894A238u, 0x088BA728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 517u, 0x088BA728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A238u) goto L_0894A238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A238: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3261)))))); ctx.gpr[18] = (0u + static_cast(-9)); @@ -5265,8 +6238,21 @@ L_0894A238: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7672), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0894A268u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 455u, 0x0894A268u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A268u) goto L_0894A268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A268: aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_20)); @@ -5275,14 +6261,40 @@ L_0894A268: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0894A284u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 456u, 0x0894A284u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A284u) goto L_0894A284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A284: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894A290u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 457u, 0x0894A290u, 0x089103CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 60u, 0x089103CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A290u) goto L_0894A290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A290: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -5291,8 +6303,21 @@ L_0894A290: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0894A2B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 458u, 0x0894A2B0u, 0x089102D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 44u, 0x089102D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A2B0u) goto L_0894A2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A2B0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1368), 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(304)))))); @@ -5307,8 +6332,21 @@ L_0894A2B0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0894A2E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 459u, 0x0894A2E4u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A2E4u) goto L_0894A2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A2E4: aot_gpr_31 = (0x0894A2ECu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5335,19 +6373,58 @@ L_0894A2EC: L_0894A320: aot_gpr_31 = (0x0894A328u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1712))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 462u, 0x0894A328u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A328u) goto L_0894A328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A328: aot_gpr_31 = (0x0894A330u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 463u, 0x0894A330u, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A330u) goto L_0894A330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A330: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894A33Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 464u, 0x0894A33Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A33Cu) goto L_0894A33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A33C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894A348u); @@ -5421,8 +6498,21 @@ L_0894A3EC: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x0894A3F8u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 472u, 0x0894A3F8u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A3F8u) goto L_0894A3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A3F8: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5437,8 +6527,21 @@ L_0894A404: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(134))); aot_gpr_31 = (0x0894A418u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 474u, 0x0894A418u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A418u) goto L_0894A418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A418: ctx.gpr[19] = (ctx.gpr[18] | 0u); goto L_0894A41C; @@ -5448,8 +6551,21 @@ L_0894A41C: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(476), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0894A430u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3304))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 476u, 0x0894A430u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A430u) goto L_0894A430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A430: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -5471,14 +6587,40 @@ L_0894A430: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0894A458u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 477u, 0x0894A458u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A458u) goto L_0894A458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A458: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3304))); aot_gpr_31 = (0x0894A464u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 478u, 0x0894A464u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A464u) goto L_0894A464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A464: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3304))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -5517,8 +6659,21 @@ L_0894A4BC: L_0894A4C8: aot_gpr_31 = (0x0894A4D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 481u, 0x0894A4D0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A4D0u) goto L_0894A4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A4D0: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -5531,8 +6686,8 @@ L_0894A4D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894A4F0: @@ -5562,8 +6717,21 @@ L_0894A53C: L_0894A548: aot_gpr_31 = (0x0894A550u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 485u, 0x0894A550u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A550u) goto L_0894A550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A550: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5575,14 +6743,40 @@ L_0894A550: L_0894A55C: aot_gpr_31 = (0x0894A564u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 487u, 0x0894A564u, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A564u) goto L_0894A564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A564: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3292))); aot_gpr_31 = (0x0894A570u); aot_gpr_4 = (aot_gpr_4 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 488u, 0x0894A570u, 0x089F23B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 391u, 0x089F23B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A570u) goto L_0894A570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A570: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -5655,13 +6849,39 @@ L_0894A5D4: L_0894A5E0: aot_gpr_31 = (0x0894A5E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 499u, 0x0894A5E8u, 0x0894D4DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 295u, 0x0894D4DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A5E8u) goto L_0894A5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A5E8: aot_gpr_31 = (0x0894A5F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 500u, 0x0894A5F0u, 0x08952DF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 653u, 0x08952DF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A5F0u) goto L_0894A5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A5F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1300))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5745,8 +6965,21 @@ L_0894A664: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0894A6A4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 506u, 0x0894A6A4u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A6A4u) goto L_0894A6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A6A4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5804,8 +7037,21 @@ L_0894A700: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(3258), static_cast(0u)); aot_gpr_31 = (0x0894A714u); aot_gpr_4 = (aot_gpr_4 + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 513u, 0x0894A714u, 0x088BA728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 517u, 0x088BA728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A714u) goto L_0894A714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A714: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3261)))))); aot_gpr_5 = (0u + static_cast(-2)); @@ -5841,23 +7087,75 @@ L_0894A740: aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_31 = (0x0894A76Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 517u, 0x0894A76Cu, 0x088BA6F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 514u, 0x088BA6F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A76Cu) goto L_0894A76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A76C: aot_gpr_31 = (0x0894A774u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 518u, 0x0894A774u, 0x0891FD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 832u, 0x0891FD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A774u) goto L_0894A774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A774: aot_gpr_31 = (0x0894A77Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 519u, 0x0894A77Cu, 0x08953184u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 687u, 0x08953184u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A77Cu) goto L_0894A77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A77C: aot_gpr_31 = (0x0894A784u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 520u, 0x0894A784u, 0x0894DF44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 402u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 402u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 402u, 0x0894DF44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A784u) goto L_0894A784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A784: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (2u << 16u); @@ -5873,19 +7171,58 @@ L_0894A784: L_0894A7A0: aot_gpr_31 = (0x0894A7A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 522u, 0x0894A7A8u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A7A8u) goto L_0894A7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A7A8: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0894A7B4u); aot_gpr_4 = (aot_gpr_16 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 523u, 0x0894A7B4u, 0x08AB37C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 897u, 0x08AB37C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A7B4u) goto L_0894A7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A7B4: aot_gpr_31 = (0x0894A7BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 524u, 0x0894A7BCu, 0x08A930F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 450u, 0x08A930F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A7BCu) goto L_0894A7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A7BC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -5947,8 +7284,21 @@ L_0894A83C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894A84Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 530u, 0x0894A84Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A84Cu) goto L_0894A84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A84C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6015,8 +7365,21 @@ L_0894A8DC: L_0894A8E0: aot_gpr_31 = (0x0894A8E8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 537u, 0x0894A8E8u, 0x0898D22Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 412u, 0x0898D22Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A8E8u) goto L_0894A8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A8E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6055,8 +7418,21 @@ L_0894A92C: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0894A944u); aot_gpr_6 = (0u | 191u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 541u, 0x0894A944u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A944u) goto L_0894A944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A944: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6072,8 +7448,21 @@ L_0894A94C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0894A968u); aot_gpr_6 = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 543u, 0x0894A968u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A968u) goto L_0894A968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A968: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6112,8 +7501,21 @@ L_0894A9A8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x0894A9C4u); aot_gpr_6 = (0u | 193u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 547u, 0x0894A9C4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894A9C4u) goto L_0894A9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894A9C4: aot_gpr_4 = (15172u << 16u); goto L_0894A9C8; @@ -6164,8 +7566,21 @@ L_0894AA1C: L_0894AA2C: aot_gpr_31 = (0x0894AA34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 554u, 0x0894AA34u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AA34u) goto L_0894AA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AA34: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6181,8 +7596,21 @@ L_0894AA3C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x0894AA58u); aot_gpr_6 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 556u, 0x0894AA58u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AA58u) goto L_0894AA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AA58: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6194,8 +7622,21 @@ L_0894AA58: L_0894AA64: aot_gpr_31 = (0x0894AA6Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 558u, 0x0894AA6Cu, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AA6Cu) goto L_0894AA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AA6C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6206,13 +7647,39 @@ L_0894AA6C: L_0894AA74: aot_gpr_31 = (0x0894AA7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 560u, 0x0894AA7Cu, 0x089478B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 739u, 0x089478B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AA7Cu) goto L_0894AA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AA7C: aot_gpr_31 = (0x0894AA84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 561u, 0x0894AA84u, 0x08947928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 743u, 0x08947928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AA84u) goto L_0894AA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AA84: { const bool branch_taken = static_cast(ctx.gpr[2]) > 0; if (branch_taken) { @@ -6223,13 +7690,39 @@ L_0894AA84: L_0894AA8C: aot_gpr_31 = (0x0894AA94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 563u, 0x0894AA94u, 0x08947944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 745u, 0x08947944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AA94u) goto L_0894AA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AA94: aot_gpr_31 = (0x0894AA9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 564u, 0x0894AA9Cu, 0x089476D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 709u, 0x089476D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AA9Cu) goto L_0894AA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AA9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6460,8 +7953,21 @@ L_0894AC70: L_0894AC84: aot_gpr_31 = (0x0894AC8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 589u, 0x0894AC8Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AC8Cu) goto L_0894AC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AC8C: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); @@ -6478,8 +7984,21 @@ L_0894AC94: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x0894ACB8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 591u, 0x0894ACB8u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894ACB8u) goto L_0894ACB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894ACB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -6497,8 +8016,21 @@ L_0894ACCC: L_0894ACD0: aot_gpr_31 = (0x0894ACD8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 595u, 0x0894ACD8u, 0x089BB2F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 698u, 0x089BB2F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894ACD8u) goto L_0894ACD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894ACD8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6536,13 +8068,39 @@ L_0894AD14: L_0894AD18: aot_gpr_31 = (0x0894AD20u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 601u, 0x0894AD20u, 0x089BB2F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 698u, 0x089BB2F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AD20u) goto L_0894AD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AD20: aot_gpr_31 = (0x0894AD28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 602u, 0x0894AD28u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AD28u) goto L_0894AD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AD28: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6669,8 +8227,21 @@ L_0894ADEC: L_0894AE04: aot_gpr_31 = (0x0894AE0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 619u, 0x0894AE0Cu, 0x0890B608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 854u, 0x0890B608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AE0Cu) goto L_0894AE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AE0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6729,8 +8300,21 @@ L_0894AE64: aot_gpr_4 = (aot_gpr_4 + static_cast(944)); aot_gpr_31 = (0x0894AE78u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 626u, 0x0894AE78u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AE78u) goto L_0894AE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AE78: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[17]; if (branch_taken) { @@ -6743,8 +8327,21 @@ L_0894AE80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894AE90u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 628u, 0x0894AE90u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AE90u) goto L_0894AE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AE90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(564))); @@ -6768,8 +8365,21 @@ L_0894AEAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894AEBCu); aot_gpr_6 = (0u | 76u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 631u, 0x0894AEBCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AEBCu) goto L_0894AEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AEBC: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -6787,8 +8397,21 @@ L_0894AEC8: L_0894AED0: aot_gpr_31 = (0x0894AED8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 634u, 0x0894AED8u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AED8u) goto L_0894AED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AED8: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6803,8 +8426,21 @@ L_0894AED8: L_0894AEF4: aot_gpr_31 = (0x0894AEFCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 636u, 0x0894AEFCu, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AEFCu) goto L_0894AEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AEFC: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6818,8 +8454,21 @@ L_0894AEFC: L_0894AF14: aot_gpr_31 = (0x0894AF1Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 638u, 0x0894AF1Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AF1Cu) goto L_0894AF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AF1C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6853,8 +8502,21 @@ L_0894AF5C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894AF70u); ctx.gpr[7] = (0u | 76u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 642u, 0x0894AF70u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AF70u) goto L_0894AF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AF70: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6869,8 +8531,21 @@ L_0894AF78: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894AF8Cu); ctx.gpr[7] = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 644u, 0x0894AF8Cu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894AF8Cu) goto L_0894AF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894AF8C: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0894AF90; @@ -6980,8 +8655,21 @@ L_0894B048: L_0894B050: aot_gpr_31 = (0x0894B058u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 659u, 0x0894B058u, 0x0898D270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 419u, 0x0898D270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B058u) goto L_0894B058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B058: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7000,8 +8688,21 @@ L_0894B060: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x0894B088u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 661u, 0x0894B088u, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B088u) goto L_0894B088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B088: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7041,8 +8742,21 @@ L_0894B0BC: aot_gpr_5 = (0u | 59u); aot_gpr_31 = (0x0894B0CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 666u, 0x0894B0CCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B0CCu) goto L_0894B0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B0CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7063,8 +8777,21 @@ L_0894B0E0: aot_gpr_5 = (0u | 60u); aot_gpr_31 = (0x0894B0F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 669u, 0x0894B0F0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B0F0u) goto L_0894B0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B0F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -7087,8 +8814,8 @@ L_0894B104: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-9304))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894B11C: @@ -7120,8 +8847,21 @@ L_0894B144: L_0894B14C: aot_gpr_31 = (0x0894B154u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 676u, 0x0894B154u, 0x089AE7A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 610u, 0x089AE7A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B154u) goto L_0894B154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B154: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7168,8 +8908,21 @@ L_0894B1A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B1B4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 681u, 0x0894B1B4u, 0x0894F970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 726u, 0x0894F970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B1B4u) goto L_0894B1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B1B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7188,13 +8941,39 @@ L_0894B1C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B1D0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 684u, 0x0894B1D0u, 0x0894F578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 671u, 0x0894F578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B1D0u) goto L_0894B1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B1D0: aot_gpr_31 = (0x0894B1D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 685u, 0x0894B1D8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B1D8u) goto L_0894B1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B1D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7213,8 +8992,21 @@ L_0894B1E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B1F4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 688u, 0x0894B1F4u, 0x08950880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 79u, 0x08950880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B1F4u) goto L_0894B1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B1F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7225,19 +9017,58 @@ L_0894B1F4: L_0894B1FC: aot_gpr_31 = (0x0894B204u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 690u, 0x0894B204u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B204u) goto L_0894B204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B204: aot_gpr_31 = (0x0894B20Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 691u, 0x0894B20Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B20Cu) goto L_0894B20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B20C: aot_gpr_5 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x0894B218u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 692u, 0x0894B218u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B218u) goto L_0894B218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B218: aot_gpr_5 = (15820u << 16u); aot_gpr_5 = (aot_gpr_5 | 52429u); @@ -7333,8 +9164,21 @@ L_0894B2B0: L_0894B2B8: aot_gpr_31 = (0x0894B2C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 704u, 0x0894B2C0u, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B2C0u) goto L_0894B2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B2C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7345,8 +9189,21 @@ L_0894B2C0: L_0894B2C8: aot_gpr_31 = (0x0894B2D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 706u, 0x0894B2D0u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B2D0u) goto L_0894B2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B2D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B2DCu); @@ -7364,8 +9221,21 @@ L_0894B2E4: aot_gpr_5 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x0894B2F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 709u, 0x0894B2F0u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B2F0u) goto L_0894B2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B2F0: ctx.gpr[19] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); @@ -7374,8 +9244,21 @@ L_0894B2F0: aot_fpr_20 = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x0894B30Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 710u, 0x0894B30Cu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B30Cu) goto L_0894B30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B30C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -7451,8 +9334,21 @@ L_0894B39C: L_0894B3A8: aot_gpr_31 = (0x0894B3B0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 718u, 0x0894B3B0u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B3B0u) goto L_0894B3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B3B0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7635,8 +9531,21 @@ L_0894B498: L_0894B4A0: aot_gpr_31 = (0x0894B4A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 748u, 0x0894B4A8u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B4A8u) goto L_0894B4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B4A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); aot_gpr_5 = (0u | 17u); @@ -7658,8 +9567,21 @@ L_0894B4B8: L_0894B4C8: aot_gpr_31 = (0x0894B4D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 751u, 0x0894B4D0u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B4D0u) goto L_0894B4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B4D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B4DCu); @@ -7811,13 +9733,39 @@ L_0894B614: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B620u); aot_gpr_5 = (0u | 50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 768u, 0x0894B620u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B620u) goto L_0894B620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B620: aot_gpr_31 = (0x0894B628u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 769u, 0x0894B628u, 0x0894D1B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 261u, 0x0894D1B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B628u) goto L_0894B628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B628: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3262)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -7847,8 +9795,21 @@ L_0894B658: aot_gpr_5 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x0894B668u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 773u, 0x0894B668u, 0x0894E79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 507u, 0x0894E79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B668u) goto L_0894B668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B668: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -7885,8 +9846,21 @@ L_0894B6AC: ctx.gpr[22] = (ctx.gpr[22] + static_cast(32304)); aot_gpr_31 = (0x0894B6BCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 777u, 0x0894B6BCu, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B6BCu) goto L_0894B6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B6BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7905,8 +9879,21 @@ L_0894B6CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B6D8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 780u, 0x0894B6D8u, 0x0894F578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 671u, 0x0894F578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B6D8u) goto L_0894B6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B6D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7917,8 +9904,21 @@ L_0894B6D8: L_0894B6E0: aot_gpr_31 = (0x0894B6E8u); aot_gpr_4 = (ctx.gpr[22] + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 782u, 0x0894B6E8u, 0x08999134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 124u, 0x08999134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B6E8u) goto L_0894B6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B6E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8010,8 +10010,21 @@ L_0894B778: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B784u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 795u, 0x0894B784u, 0x0894F028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 608u, 0x0894F028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B784u) goto L_0894B784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B784: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8129,8 +10142,21 @@ L_0894B858: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B864u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 808u, 0x0894B864u, 0x0894FDDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 778u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 778u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 778u, 0x0894FDDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B864u) goto L_0894B864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B864: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8158,8 +10184,21 @@ L_0894B884: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B890u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 812u, 0x0894B890u, 0x0894F028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 608u, 0x0894F028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B890u) goto L_0894B890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B890: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[20]; @@ -8171,8 +10210,21 @@ L_0894B890: L_0894B89C: aot_gpr_31 = (0x0894B8A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 814u, 0x0894B8A4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B8A4u) goto L_0894B8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B8A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8200,8 +10252,21 @@ L_0894B8C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B8D0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 818u, 0x0894B8D0u, 0x08950880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 79u, 0x08950880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B8D0u) goto L_0894B8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B8D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8225,8 +10290,21 @@ L_0894B8F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B8FCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 821u, 0x0894B8FCu, 0x0894F028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 608u, 0x0894F028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B8FCu) goto L_0894B8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B8FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8245,8 +10323,21 @@ L_0894B90C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B918u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 824u, 0x0894B918u, 0x0894F028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 608u, 0x0894F028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B918u) goto L_0894B918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B918: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 4096u); @@ -8261,8 +10352,21 @@ L_0894B928: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894B938u); aot_gpr_6 = (0u | 136u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 826u, 0x0894B938u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B938u) goto L_0894B938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B938: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8290,8 +10394,21 @@ L_0894B960: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894B97Cu); ctx.gpr[7] = (0u | 140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 829u, 0x0894B97Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B97Cu) goto L_0894B97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B97C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 8192u); @@ -8337,8 +10454,21 @@ L_0894B9C0: L_0894B9C8: aot_gpr_31 = (0x0894B9D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 835u, 0x0894B9D0u, 0x08906E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 627u, 0x08906E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894B9D0u) goto L_0894B9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894B9D0: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); @@ -8369,8 +10499,21 @@ L_0894B9F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894BA04u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 840u, 0x0894BA04u, 0x0895238Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 469u, 0x0895238Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BA04u) goto L_0894BA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BA04: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -8381,13 +10524,39 @@ L_0894BA04: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x0894BA28u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 841u, 0x0894BA28u, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BA28u) goto L_0894BA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BA28: aot_gpr_31 = (0x0894BA30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 842u, 0x0894BA30u, 0x08952994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 581u, 0x08952994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BA30u) goto L_0894BA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BA30: { const bool branch_taken = ctx.gpr[18] == 0u; aot_gpr_4 = (2236u << 16u); @@ -8463,8 +10632,21 @@ L_0894BAE8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0894BAF4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 848u, 0x0894BAF4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BAF4u) goto L_0894BAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BAF4: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -8475,8 +10657,21 @@ L_0894BAF4: } L_0894BAFC: aot_gpr_31 = (0x0894BB04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 850u, 0x0894BB04u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BB04u) goto L_0894BB04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BB04: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -8584,15 +10779,41 @@ L_0894BBDC: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x0894BBECu); aot_fpr_12 = aot_fpr_12 - ctx.fpr[30]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 861u, 0x0894BBECu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BBECu) goto L_0894BBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BBEC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0894BBFCu); aot_fpr_12 = aot_fpr_12 + ctx.fpr[30]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 862u, 0x0894BBFCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BBFCu) goto L_0894BBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BBFC: aot_gpr_4 = (18804u << 16u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1720))); @@ -8641,8 +10862,21 @@ L_0894BC50: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894BC64u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 867u, 0x0894BC64u, 0x08909990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 430u, 0x08909990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BC64u) goto L_0894BC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BC64: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_fpr_12 = aot_fpr_12 / aot_fpr_20; @@ -8720,8 +10954,21 @@ L_0894BD10: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0894BD1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 876u, 0x0894BD1Cu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BD1Cu) goto L_0894BD1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BD1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8758,8 +11005,21 @@ L_0894BD50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894BD5Cu); aot_gpr_5 = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 882u, 0x0894BD5Cu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BD5Cu) goto L_0894BD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BD5C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(320))); goto L_0894BD60; @@ -8864,8 +11124,21 @@ L_0894BE34: L_0894BE3C: aot_gpr_31 = (0x0894BE44u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 894u, 0x0894BE44u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BE44u) goto L_0894BE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BE44: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8924,8 +11197,21 @@ L_0894BE9C: L_0894BEAC: aot_gpr_31 = (0x0894BEB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 902u, 0x0894BEB4u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BEB4u) goto L_0894BEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BEB4: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(152), aot_run_words); @@ -8946,8 +11232,8 @@ L_0894BEB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894BEF4: @@ -9007,40 +11293,105 @@ L_0894BF90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894BFA0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 910u, 0x0894BFA0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BFA0u) goto L_0894BFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BFA0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); ctx.gpr[30] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894BFB4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 911u, 0x0894BFB4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BFB4u) goto L_0894BFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BFB4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); ctx.gpr[23] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894BFC8u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 912u, 0x0894BFC8u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BFC8u) goto L_0894BFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BFC8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); ctx.gpr[22] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894BFDCu); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 913u, 0x0894BFDCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BFDCu) goto L_0894BFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BFDC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894BFF0u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0081->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0081_entry, 914u, 0x0894BFF0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894BFF0u) goto L_0894BFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894BFF0: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; diff --git a/profiles/vcs/generated/generated_unit_0082.cpp b/profiles/vcs/generated/generated_unit_0082.cpp index 2c79a35..0dead03 100644 --- a/profiles/vcs/generated/generated_unit_0082.cpp +++ b/profiles/vcs/generated/generated_unit_0082.cpp @@ -874,6 +874,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0894C000u; + if (local_delta_v813 >= 16364u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -912,8 +936,21 @@ L_0894C01C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C02Cu); aot_gpr_6 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 5u, 0x0894C02Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C02Cu) goto L_0894C02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C02C: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_0894C030; @@ -922,16 +959,42 @@ L_0894C030: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C040u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 7u, 0x0894C040u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C040u) goto L_0894C040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C040: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C054u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 8u, 0x0894C054u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C054u) goto L_0894C054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C054: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (1024u << 16u); @@ -954,8 +1017,21 @@ L_0894C070: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0894C07Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 11u, 0x0894C07Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C07Cu) goto L_0894C07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C07C: { const bool branch_taken = ctx.gpr[23] == 0u; if (branch_taken) { @@ -967,8 +1043,21 @@ L_0894C084: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0894C090u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 13u, 0x0894C090u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C090u) goto L_0894C090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C090: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -980,8 +1069,21 @@ L_0894C098: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x0894C0A4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 15u, 0x0894C0A4u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C0A4u) goto L_0894C0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C0A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (64512u << 16u); @@ -1001,8 +1103,21 @@ L_0894C0C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C0D0u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 18u, 0x0894C0D0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C0D0u) goto L_0894C0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C0D0: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_0894C0D4; @@ -1025,8 +1140,21 @@ L_0894C0E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C0F4u); aot_gpr_6 = (0u | 217u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 22u, 0x0894C0F4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C0F4u) goto L_0894C0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C0F4: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_0894C0F8; @@ -1157,8 +1285,21 @@ L_0894C1E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), ctx.gpr[19]); aot_gpr_31 = (0x0894C1F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 36u, 0x0894C1F0u, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C1F0u) goto L_0894C1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C1F0: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -1216,8 +1357,21 @@ L_0894C224: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0894C264u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 40u, 0x0894C264u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C264u) goto L_0894C264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C264: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1241,8 +1395,21 @@ L_0894C27C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894C294u); ctx.gpr[7] = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 43u, 0x0894C294u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C294u) goto L_0894C294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C294: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -1258,8 +1425,21 @@ L_0894C29C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C2B4u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 45u, 0x0894C2B4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C2B4u) goto L_0894C2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C2B4: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_0894C2B8; @@ -1376,8 +1556,21 @@ L_0894C370: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0894C3B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 56u, 0x0894C3B0u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C3B0u) goto L_0894C3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C3B0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1410,8 +1603,21 @@ L_0894C3D8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894C3F0u); ctx.gpr[7] = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 60u, 0x0894C3F0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C3F0u) goto L_0894C3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C3F0: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -1427,8 +1633,21 @@ L_0894C3F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C410u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 62u, 0x0894C410u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C410u) goto L_0894C410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C410: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_0894C414; @@ -1495,8 +1714,21 @@ L_0894C498: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C4B4u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 70u, 0x0894C4B4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C4B4u) goto L_0894C4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C4B4: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -1569,8 +1801,21 @@ L_0894C500: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0894C540u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 76u, 0x0894C540u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C540u) goto L_0894C540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C540: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1595,8 +1840,21 @@ L_0894C558: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894C574u); ctx.gpr[7] = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 79u, 0x0894C574u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C574u) goto L_0894C574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C574: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -1672,8 +1930,21 @@ L_0894C5E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C604u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 89u, 0x0894C604u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C604u) goto L_0894C604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C604: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_0894C608; @@ -1778,8 +2049,21 @@ L_0894C6B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C6C4u); ctx.gpr[7] = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 103u, 0x0894C6C4u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C6C4u) goto L_0894C6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C6C4: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -1805,8 +2089,21 @@ L_0894C6E4: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0894C6F0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 107u, 0x0894C6F0u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C6F0u) goto L_0894C6F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C6F0: { const bool branch_taken = ctx.gpr[23] == 0u; if (branch_taken) { @@ -1818,20 +2115,59 @@ L_0894C6F8: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0894C704u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 109u, 0x0894C704u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C704u) goto L_0894C704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C704: aot_gpr_31 = (0x0894C70Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 110u, 0x0894C70Cu, 0x0888FEB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 620u, 0x0888FEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C70Cu) goto L_0894C70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C70C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C71Cu); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 111u, 0x0894C71Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C71Cu) goto L_0894C71C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C71C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -1845,8 +2181,21 @@ L_0894C728: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C738u); aot_gpr_6 = (0u | 217u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 113u, 0x0894C738u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C738u) goto L_0894C738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C738: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_0894C73C; @@ -1860,8 +2209,21 @@ L_0894C73C: L_0894C744: aot_gpr_31 = (0x0894C74Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 116u, 0x0894C74Cu, 0x0888FEB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 620u, 0x0888FEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C74Cu) goto L_0894C74C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C74C: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -1873,8 +2235,21 @@ L_0894C754: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0894C760u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 118u, 0x0894C760u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C760u) goto L_0894C760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C760: ctx.gpr[22] = (0u | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1893,13 +2268,39 @@ L_0894C770: L_0894C77C: aot_gpr_31 = (0x0894C784u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 121u, 0x0894C784u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C784u) goto L_0894C784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C784: aot_gpr_31 = (0x0894C78Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 122u, 0x0894C78Cu, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C78Cu) goto L_0894C78C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C78C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1911,13 +2312,39 @@ L_0894C78C: L_0894C798: aot_gpr_31 = (0x0894C7A0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 124u, 0x0894C7A0u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C7A0u) goto L_0894C7A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C7A0: aot_gpr_31 = (0x0894C7A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 125u, 0x0894C7A8u, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C7A8u) goto L_0894C7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C7A8: { const bool branch_taken = ctx.gpr[30] != 0u; if (branch_taken) { @@ -1931,8 +2358,21 @@ L_0894C7B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C7C4u); ctx.gpr[7] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 127u, 0x0894C7C4u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C7C4u) goto L_0894C7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C7C4: ctx.gpr[30] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(16), std::bit_cast(aot_fpr_20)); @@ -1950,8 +2390,21 @@ L_0894C7D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894C7E8u); ctx.gpr[7] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 130u, 0x0894C7E8u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C7E8u) goto L_0894C7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C7E8: ctx.gpr[23] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(16), std::bit_cast(aot_fpr_20)); @@ -1968,8 +2421,21 @@ L_0894C7FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0894C808u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 133u, 0x0894C808u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C808u) goto L_0894C808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C808: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(8))); ctx.gpr[19] = (0u | 0u); @@ -2172,16 +2638,42 @@ L_0894C9B8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894C9CCu); ctx.gpr[7] = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 154u, 0x0894C9CCu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C9CCu) goto L_0894C9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C9CC: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(16), std::bit_cast(aot_fpr_22)); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894C9E0u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 155u, 0x0894C9E0u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C9E0u) goto L_0894C9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C9E0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2264), std::bit_cast(aot_fpr_20)); @@ -2196,16 +2688,42 @@ L_0894C9E8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894C9FCu); ctx.gpr[7] = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 157u, 0x0894C9FCu, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894C9FCu) goto L_0894C9FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894C9FC: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(16), std::bit_cast(aot_fpr_22)); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894CA10u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 158u, 0x0894CA10u, 0x08890604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 96u, 0x08890604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CA10u) goto L_0894CA10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CA10: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2264), std::bit_cast(aot_fpr_20)); goto L_0894CA14; @@ -2308,8 +2826,21 @@ L_0894CADC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894CB08u); ctx.gpr[7] = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 167u, 0x0894CB08u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CB08u) goto L_0894CB08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CB08: { const bool branch_taken = 0u == 0u; ctx.gpr[22] = (ctx.gpr[2] | 0u); @@ -2338,8 +2869,21 @@ L_0894CB24: L_0894CB3C: aot_gpr_31 = (0x0894CB44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 171u, 0x0894CB44u, 0x089487A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 123u, 0x089487A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CB44u) goto L_0894CB44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CB44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2428,8 +2972,21 @@ L_0894CBF8: L_0894CC04: aot_gpr_31 = (0x0894CC0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 181u, 0x0894CC0Cu, 0x089475A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 680u, 0x089475A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CC0Cu) goto L_0894CC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CC0C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2739,8 +3296,8 @@ L_0894CE08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894CE40: @@ -2753,8 +3310,21 @@ L_0894CE40: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(172), aot_run_words); } aot_gpr_31 = (0x0894CE80u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 222u, 0x0894CE80u, 0x08914630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 31u, 0x08914630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CE80u) goto L_0894CE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CE80: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(1914))); aot_gpr_5 = (ctx.gpr[18] + static_cast(48)); @@ -2818,8 +3388,21 @@ L_0894CEEC: L_0894CF00: aot_gpr_31 = (0x0894CF08u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 229u, 0x0894CF08u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CF08u) goto L_0894CF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CF08: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); @@ -2858,13 +3441,39 @@ L_0894CF34: L_0894CF48: aot_gpr_31 = (0x0894CF50u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 234u, 0x0894CF50u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CF50u) goto L_0894CF50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CF50: aot_gpr_31 = (0x0894CF58u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 235u, 0x0894CF58u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CF58u) goto L_0894CF58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CF58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2877,8 +3486,21 @@ L_0894CF60: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0894CF70u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 237u, 0x0894CF70u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CF70u) goto L_0894CF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CF70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(456))); @@ -2926,8 +3548,21 @@ L_0894CFB4: L_0894CFC8: aot_gpr_31 = (0x0894CFD0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 243u, 0x0894CFD0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894CFD0u) goto L_0894CFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894CFD0: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -3010,8 +3645,21 @@ L_0894D008: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x0894D048u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 248u, 0x0894D048u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D048u) goto L_0894D048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D048: aot_gpr_16 = (0u | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); @@ -3167,8 +3815,21 @@ L_0894D150: goto L_0894D164; L_0894D164: aot_gpr_31 = (0x0894D16Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 259u, 0x0894D16Cu, 0x08B458A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 299u, 0x08B458A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D16Cu) goto L_0894D16C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D16C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -3198,8 +3859,8 @@ L_0894D180: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894D1B8: @@ -3241,8 +3902,21 @@ L_0894D1F8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0894D24Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 263u, 0x0894D24Cu, 0x089991D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 137u, 0x089991D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D24Cu) goto L_0894D24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D24C: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3275,8 +3949,21 @@ L_0894D24C: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0894D27Cu); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 264u, 0x0894D27Cu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D27Cu) goto L_0894D27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D27C: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 + static_cast(16)); @@ -3285,13 +3972,39 @@ L_0894D27C: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0894D298u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 265u, 0x0894D298u, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D298u) goto L_0894D298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D298: aot_gpr_31 = (0x0894D2A0u); aot_fpr_12 = aot_fpr_22 - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 266u, 0x0894D2A0u, 0x08A8EF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 563u, 0x08A8EF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D2A0u) goto L_0894D2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D2A0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (49884u << 16u); @@ -3338,8 +4051,21 @@ L_0894D2D0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x0894D300u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 269u, 0x0894D300u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D300u) goto L_0894D300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D300: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); @@ -3373,8 +4099,21 @@ L_0894D308: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x0894D34Cu); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 271u, 0x0894D34Cu, 0x08A17F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 670u, 0x08A17F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D34Cu) goto L_0894D34C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D34C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(240)); @@ -3394,8 +4133,21 @@ L_0894D368: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894D380u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 273u, 0x0894D380u, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D380u) goto L_0894D380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D380: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3262)))))); aot_gpr_4 = (aot_gpr_4 & 8u); @@ -3418,8 +4170,21 @@ L_0894D390: L_0894D39C: aot_gpr_31 = (0x0894D3A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 276u, 0x0894D3A4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D3A4u) goto L_0894D3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D3A4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] & 255u); @@ -3467,8 +4232,21 @@ L_0894D3DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x0894D3E8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 282u, 0x0894D3E8u, 0x0886D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 197u, 0x0886D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D3E8u) goto L_0894D3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D3E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); @@ -3515,8 +4293,21 @@ L_0894D424: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x0894D448u); ctx.gpr[7] = (0u | 242u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 288u, 0x0894D448u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D448u) goto L_0894D448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D448: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3536,8 +4327,21 @@ L_0894D450: aot_gpr_6 = (0u | 59u); aot_gpr_31 = (0x0894D478u); ctx.gpr[7] = (0u | 235u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 290u, 0x0894D478u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D478u) goto L_0894D478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D478: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_0894D47C; @@ -3578,8 +4382,8 @@ L_0894D4C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894D4DC: @@ -3614,8 +4418,21 @@ L_0894D548: aot_gpr_5 = (aot_gpr_5 | 64u); aot_gpr_31 = (0x0894D55Cu); aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(3262), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 298u, 0x0894D55Cu, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D55Cu) goto L_0894D55C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D55C: aot_gpr_4 = (49024u << 16u); ctx.fpr[24] = std::bit_cast(0u); @@ -3759,8 +4576,21 @@ L_0894D66C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x0894D6B4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 309u, 0x0894D6B4u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894D6B4u) goto L_0894D6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894D6B4: aot_gpr_4 = (0u | 0u); ctx.gpr[17] = (0u | 0u); @@ -4436,16 +5266,42 @@ L_0894DA88: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0894DB54u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 363u, 0x0894DB54u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DB54u) goto L_0894DB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DB54: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x0894DB68u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 364u, 0x0894DB68u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DB68u) goto L_0894DB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DB68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4517,8 +5373,21 @@ L_0894DBD8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0894DC10u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 370u, 0x0894DC10u, 0x08977F2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 782u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 782u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 782u, 0x08977F2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DC10u) goto L_0894DC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DC10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(400))); ctx.gpr[19] = (ctx.gpr[2] + static_cast(-1)); @@ -4551,8 +5420,21 @@ L_0894DC50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(160))); aot_gpr_31 = (0x0894DC5Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 374u, 0x0894DC5Cu, 0x08946B58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 521u, 0x08946B58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DC5Cu) goto L_0894DC5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DC5C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4635,8 +5517,21 @@ L_0894DCDC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0894DCE8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 378u, 0x0894DCE8u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DCE8u) goto L_0894DCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DCE8: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -4644,8 +5539,21 @@ L_0894DCE8: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x0894DD00u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 379u, 0x0894DD00u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DD00u) goto L_0894DD00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DD00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4723,8 +5631,21 @@ L_0894DD74: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0894DDA4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 386u, 0x0894DDA4u, 0x08977F2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 782u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 782u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 782u, 0x08977F2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DDA4u) goto L_0894DDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DDA4: ctx.gpr[19] = (ctx.gpr[2] + static_cast(-1)); aot_gpr_4 = (49152u << 16u); @@ -4754,8 +5675,21 @@ L_0894DDD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(160))); aot_gpr_31 = (0x0894DDE4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 390u, 0x0894DDE4u, 0x08946B58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 521u, 0x08946B58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DDE4u) goto L_0894DDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DDE4: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4839,16 +5773,42 @@ L_0894DE68: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0894DE74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 394u, 0x0894DE74u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DE74u) goto L_0894DE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DE74: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x0894DE88u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 395u, 0x0894DE88u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DE88u) goto L_0894DE88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DE88: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4935,8 +5895,8 @@ L_0894DEFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894DF44: @@ -4974,8 +5934,21 @@ L_0894DF78: L_0894DF88: aot_gpr_31 = (0x0894DF90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 406u, 0x0894DF90u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894DF90u) goto L_0894DF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894DF90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5364,8 +6337,8 @@ L_0894E24C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894E260: @@ -5434,8 +6407,21 @@ L_0894E2FC: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x0894E318u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 441u, 0x0894E318u, 0x08A420BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 378u, 0x08A420BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E318u) goto L_0894E318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E318: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5494,8 +6480,21 @@ L_0894E38C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2076))); aot_gpr_31 = (0x0894E398u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 447u, 0x0894E398u, 0x088E4830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 103u, 0x088E4830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E398u) goto L_0894E398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E398: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5521,8 +6520,21 @@ L_0894E3C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894E3D0u); aot_gpr_5 = (0u | 22u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 450u, 0x0894E3D0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E3D0u) goto L_0894E3D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E3D0: ctx.gpr[20] = (0u | 0u); goto L_0894E3D4; @@ -5565,8 +6577,21 @@ L_0894E40C: aot_gpr_5 = (aot_gpr_5 + static_cast(1396)); aot_gpr_31 = (0x0894E430u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 455u, 0x0894E430u, 0x0881E094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 315u, 0x0881E094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E430u) goto L_0894E430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E430: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5578,8 +6603,21 @@ L_0894E438: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894E444u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 457u, 0x0894E444u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E444u) goto L_0894E444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E444: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5679,8 +6717,21 @@ L_0894E4EC: L_0894E510: aot_gpr_31 = (0x0894E518u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 467u, 0x0894E518u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E518u) goto L_0894E518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E518: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5810,15 +6861,41 @@ L_0894E5F4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894E620u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 482u, 0x0894E620u, 0x08AD9658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 413u, 0x08AD9658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E620u) goto L_0894E620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E620: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894E630u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 483u, 0x0894E630u, 0x08821BF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 317u, 0x08821BF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E630u) goto L_0894E630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E630: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5835,15 +6912,41 @@ L_0894E640: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894E650u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 486u, 0x0894E650u, 0x08ADA2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 554u, 0x08ADA2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E650u) goto L_0894E650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E650: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894E660u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 487u, 0x0894E660u, 0x0881EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 465u, 0x0881EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E660u) goto L_0894E660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E660: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3292))); { const bool branch_taken = 0u == 0u; @@ -5888,16 +6991,42 @@ L_0894E6B8: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894E6C8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 492u, 0x0894E6C8u, 0x08A3ADE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 620u, 0x08A3ADE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E6C8u) goto L_0894E6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E6C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3292))); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x0894E6DCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 493u, 0x0894E6DCu, 0x08821BF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 317u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 317u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 317u, 0x08821BF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E6DCu) goto L_0894E6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E6DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3292))); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5905,24 +7034,63 @@ L_0894E6DC: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894E6F4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 494u, 0x0894E6F4u, 0x08A3B508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 734u, 0x08A3B508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E6F4u) goto L_0894E6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E6F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3292))); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x0894E708u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 495u, 0x0894E708u, 0x0881EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 465u, 0x0881EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E708u) goto L_0894E708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E708: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3292))); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); goto L_0894E710; L_0894E710: aot_gpr_31 = (0x0894E718u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 497u, 0x0894E718u, 0x08A39B74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 407u, 0x08A39B74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E718u) goto L_0894E718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E718: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_4 = (aot_gpr_4 + static_cast(28)); @@ -5943,8 +7111,21 @@ L_0894E72C: L_0894E734: aot_gpr_31 = (0x0894E73Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 500u, 0x0894E73Cu, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E73Cu) goto L_0894E73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E73C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5955,8 +7136,21 @@ L_0894E73C: L_0894E744: aot_gpr_31 = (0x0894E74Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 502u, 0x0894E74Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E74Cu) goto L_0894E74C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E74C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5984,8 +7178,21 @@ L_0894E764: L_0894E770: aot_gpr_31 = (0x0894E778u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 506u, 0x0894E778u, 0x08909180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 301u, 0x08909180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E778u) goto L_0894E778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E778: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(60), aot_run_words); @@ -5999,8 +7206,8 @@ L_0894E778: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894E79C: @@ -6045,8 +7252,21 @@ L_0894E7F8: L_0894E804: aot_gpr_31 = (0x0894E80Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 511u, 0x0894E80Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E80Cu) goto L_0894E80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E80C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[18] & 255u); @@ -6316,8 +7536,21 @@ L_0894E944: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894E954u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 524u, 0x0894E954u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894E954u) goto L_0894E954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894E954: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -6504,8 +7737,21 @@ L_0894E998: aot_gpr_5 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x0894EA60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 526u, 0x0894EA60u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EA60u) goto L_0894EA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EA60: aot_gpr_4 = (16373u << 16u); aot_gpr_4 = (aot_gpr_4 | 48651u); @@ -6538,8 +7784,21 @@ L_0894EA98: aot_gpr_6 = (aot_gpr_6 + static_cast(48)); aot_gpr_31 = (0x0894EAC4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 528u, 0x0894EAC4u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EAC4u) goto L_0894EAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EAC4: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6609,8 +7868,21 @@ L_0894EAC4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894EB20u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 529u, 0x0894EB20u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EB20u) goto L_0894EB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EB20: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6644,8 +7916,21 @@ L_0894EB38: L_0894EB44: aot_gpr_31 = (0x0894EB4Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 532u, 0x0894EB4Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EB4Cu) goto L_0894EB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EB4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6699,8 +7984,21 @@ L_0894EB54: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0894EBB0u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 534u, 0x0894EBB0u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EBB0u) goto L_0894EBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EBB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2076))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -6789,8 +8087,21 @@ L_0894EC08: aot_fpr_12 = aot_fpr_12 / ctx.fpr[14]; aot_gpr_31 = (0x0894EC30u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 538u, 0x0894EC30u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EC30u) goto L_0894EC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EC30: ctx.gpr[19] = (aot_gpr_29 + static_cast(352)); ctx.gpr[20] = (aot_gpr_29 + static_cast(160)); @@ -6798,8 +8109,21 @@ L_0894EC30: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0894EC48u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 539u, 0x0894EC48u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EC48u) goto L_0894EC48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EC48: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6856,8 +8180,21 @@ L_0894EC84: L_0894EC90: aot_gpr_31 = (0x0894EC98u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(432))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 543u, 0x0894EC98u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EC98u) goto L_0894EC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EC98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6878,8 +8215,21 @@ L_0894ECA8: L_0894ECB4: aot_gpr_31 = (0x0894ECBCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 546u, 0x0894ECBCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894ECBCu) goto L_0894ECBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894ECBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6900,8 +8250,8 @@ L_0894ECC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(704)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894ECE8: @@ -6972,8 +8322,21 @@ L_0894ED58: L_0894ED60: aot_gpr_31 = (0x0894ED68u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 556u, 0x0894ED68u, 0x0898D6F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 526u, 0x0898D6F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894ED68u) goto L_0894ED68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894ED68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 4096u); @@ -7073,14 +8436,40 @@ L_0894EE04: L_0894EE10: aot_gpr_31 = (0x0894EE18u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 568u, 0x0894EE18u, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EE18u) goto L_0894EE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EE18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894EE24u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 569u, 0x0894EE24u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EE24u) goto L_0894EE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EE24: aot_gpr_31 = (0x0894EE2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7089,19 +8478,58 @@ L_0894EE24: L_0894EE2C: aot_gpr_31 = (0x0894EE34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 571u, 0x0894EE34u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EE34u) goto L_0894EE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EE34: aot_gpr_31 = (0x0894EE3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 572u, 0x0894EE3Cu, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EE3Cu) goto L_0894EE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EE3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894EE48u); aot_gpr_5 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 573u, 0x0894EE48u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EE48u) goto L_0894EE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EE48: ctx.gpr[8] = (16640u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); @@ -7110,8 +8538,21 @@ L_0894EE48: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0894EE64u); ctx.gpr[7] = (0u | 147u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 574u, 0x0894EE64u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EE64u) goto L_0894EE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EE64: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (2193u << 16u); @@ -7152,8 +8593,21 @@ L_0894EEA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894EEB4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 579u, 0x0894EEB4u, 0x0891ECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 550u, 0x0891ECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EEB4u) goto L_0894EEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EEB4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(3257), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(3172), 0u); @@ -7167,14 +8621,40 @@ L_0894EEB4: L_0894EEC8: aot_gpr_31 = (0x0894EED0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 581u, 0x0894EED0u, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EED0u) goto L_0894EED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EED0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894EEDCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 582u, 0x0894EEDCu, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EEDCu) goto L_0894EEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EEDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7185,8 +8665,21 @@ L_0894EEDC: L_0894EEE4: aot_gpr_31 = (0x0894EEECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 584u, 0x0894EEECu, 0x0890E2FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 513u, 0x0890E2FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EEECu) goto L_0894EEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EEEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7239,8 +8732,21 @@ L_0894EF3C: L_0894EF54: aot_gpr_31 = (0x0894EF5Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 590u, 0x0894EF5Cu, 0x0898D640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 508u, 0x0898D640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EF5Cu) goto L_0894EF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EF5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7281,14 +8787,40 @@ L_0894EF88: L_0894EF90: aot_gpr_31 = (0x0894EF98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 596u, 0x0894EF98u, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EF98u) goto L_0894EF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EF98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894EFA4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 597u, 0x0894EFA4u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EFA4u) goto L_0894EFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EFA4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3257))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -7310,8 +8842,21 @@ L_0894EFBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894EFCCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 600u, 0x0894EFCCu, 0x0891ECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 550u, 0x0891ECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EFCCu) goto L_0894EFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EFCC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(3257), static_cast(0u)); { const bool branch_taken = 0u == 0u; @@ -7333,8 +8878,21 @@ L_0894EFE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894EFECu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 603u, 0x0894EFECu, 0x0892FCA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 765u, 0x0892FCA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894EFECu) goto L_0894EFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894EFEC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7356,8 +8914,21 @@ L_0894EFFC: L_0894F004: aot_gpr_31 = (0x0894F00Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 607u, 0x0894F00Cu, 0x0890E2FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 513u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 513u, 0x0890E2FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F00Cu) goto L_0894F00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F00C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -7369,8 +8940,8 @@ L_0894F00C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894F028: @@ -7383,8 +8954,21 @@ L_0894F028: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(76), aot_run_words); } aot_gpr_31 = (0x0894F06Cu); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 609u, 0x0894F06Cu, 0x08949198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 256u, 0x08949198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F06Cu) goto L_0894F06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F06C: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -7393,22 +8977,61 @@ L_0894F06C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0894F088u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 610u, 0x0894F088u, 0x0898C4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 114u, 0x0898C4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F088u) goto L_0894F088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F088: ctx.fpr[24] = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894F098u); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(ctx.fpr[24]))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 611u, 0x0894F098u, 0x0898C578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 124u, 0x0898C578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F098u) goto L_0894F098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F098: ctx.fpr[26] = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894F0A8u); ctx.fpr[26] = static_cast(static_cast(std::bit_cast(ctx.fpr[26]))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 612u, 0x0894F0A8u, 0x08949A38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 370u, 0x08949A38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F0A8u) goto L_0894F0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F0A8: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.fpr[28] = std::bit_cast(0u); @@ -7491,13 +9114,39 @@ L_0894F140: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24]) ^ 0x80000000u); aot_gpr_31 = (0x0894F14Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26]) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 623u, 0x0894F14Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F14Cu) goto L_0894F14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F14C: aot_gpr_31 = (0x0894F154u); aot_fpr_12 = ctx.fpr[0] - aot_fpr_22; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 624u, 0x0894F154u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F154u) goto L_0894F154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F154: aot_gpr_4 = (0u | 43u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= ctx.fpr[28])) ? 0x00800000u : 0u); @@ -7765,8 +9414,21 @@ L_0894F30C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(ctx.fpr[14])); aot_gpr_31 = (0x0894F3ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 649u, 0x0894F3ACu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F3ACu) goto L_0894F3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F3AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7798,13 +9460,39 @@ L_0894F3D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894F3E0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 654u, 0x0894F3E0u, 0x08949D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 410u, 0x08949D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F3E0u) goto L_0894F3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F3E0: aot_gpr_31 = (0x0894F3E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 655u, 0x0894F3E8u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F3E8u) goto L_0894F3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F3E8: aot_gpr_4 = (48163u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -7830,8 +9518,21 @@ L_0894F40C: L_0894F414: aot_gpr_31 = (0x0894F41Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 658u, 0x0894F41Cu, 0x0894BEF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 903u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 903u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 903u, 0x0894BEF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F41Cu) goto L_0894F41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F41C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7843,8 +9544,21 @@ L_0894F424: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_31 = (0x0894F430u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 660u, 0x0894F430u, 0x0881DF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 302u, 0x0881DF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F430u) goto L_0894F430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F430: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7855,8 +9569,21 @@ L_0894F430: L_0894F438: aot_gpr_31 = (0x0894F440u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 662u, 0x0894F440u, 0x0894BEF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 903u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 903u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 903u, 0x0894BEF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F440u) goto L_0894F440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F440: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894F44Cu); @@ -7939,8 +9666,21 @@ L_0894F510: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894F520u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 668u, 0x0894F520u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F520u) goto L_0894F520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F520: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 1u); @@ -7954,8 +9694,21 @@ L_0894F530: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894F53Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 670u, 0x0894F53Cu, 0x08948E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 200u, 0x08948E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F53Cu) goto L_0894F53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F53C: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -7975,8 +9728,8 @@ L_0894F53C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894F578: @@ -7987,13 +9740,39 @@ L_0894F578: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(36), aot_run_words); } aot_gpr_31 = (0x0894F598u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 672u, 0x0894F598u, 0x0895238Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 469u, 0x0895238Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F598u) goto L_0894F598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F598: aot_gpr_31 = (0x0894F5A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 673u, 0x0894F5A0u, 0x0898D638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 507u, 0x0898D638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F5A0u) goto L_0894F5A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F5A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8027,8 +9806,21 @@ L_0894F5C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894F5E4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 677u, 0x0894F5E4u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F5E4u) goto L_0894F5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F5E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8048,8 +9840,21 @@ L_0894F5EC: L_0894F5FC: aot_gpr_31 = (0x0894F604u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 680u, 0x0894F604u, 0x0898D638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 507u, 0x0898D638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F604u) goto L_0894F604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F604: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8070,8 +9875,21 @@ L_0894F61C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894F628u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 683u, 0x0894F628u, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F628u) goto L_0894F628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F628: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -8089,8 +9907,21 @@ L_0894F638: L_0894F644: aot_gpr_31 = (0x0894F64Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 686u, 0x0894F64Cu, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F64Cu) goto L_0894F64C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F64C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8101,14 +9932,40 @@ L_0894F64C: L_0894F654: aot_gpr_31 = (0x0894F65Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 688u, 0x0894F65Cu, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F65Cu) goto L_0894F65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F65C: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x0894F668u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 689u, 0x0894F668u, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F668u) goto L_0894F668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F668: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8119,8 +9976,21 @@ L_0894F668: L_0894F670: aot_gpr_31 = (0x0894F678u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 691u, 0x0894F678u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F678u) goto L_0894F678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F678: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(1929)))))); @@ -8193,14 +10063,40 @@ L_0894F6F4: L_0894F6FC: aot_gpr_31 = (0x0894F704u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 700u, 0x0894F704u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F704u) goto L_0894F704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F704: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x0894F710u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 701u, 0x0894F710u, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F710u) goto L_0894F710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F710: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8214,8 +10110,21 @@ L_0894F718: L_0894F71C: aot_gpr_31 = (0x0894F724u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 704u, 0x0894F724u, 0x0898D270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 419u, 0x0898D270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F724u) goto L_0894F724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F724: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8247,8 +10156,21 @@ L_0894F758: aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); aot_gpr_31 = (0x0894F774u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 707u, 0x0894F774u, 0x08A417DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 283u, 0x08A417DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F774u) goto L_0894F774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F774: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8269,8 +10191,21 @@ L_0894F77C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894F7ACu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 709u, 0x0894F7ACu, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F7ACu) goto L_0894F7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F7AC: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8294,8 +10229,21 @@ L_0894F7AC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0894F7D8u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 710u, 0x0894F7D8u, 0x08A45338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 206u, 0x08A45338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F7D8u) goto L_0894F7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F7D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(3252), aot_gpr_4); @@ -8381,8 +10329,21 @@ L_0894F880: aot_gpr_6 = (0u | 57u); aot_gpr_31 = (0x0894F8BCu); aot_fpr_13 = std::bit_cast(ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 717u, 0x0894F8BCu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F8BCu) goto L_0894F8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F8BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8393,8 +10354,21 @@ L_0894F8BC: L_0894F8C4: aot_gpr_31 = (0x0894F8CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 719u, 0x0894F8CCu, 0x0898D270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 419u, 0x0898D270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F8CCu) goto L_0894F8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F8CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8426,8 +10400,21 @@ L_0894F900: aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); aot_gpr_31 = (0x0894F91Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 722u, 0x0894F91Cu, 0x08A417DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 283u, 0x08A417DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F91Cu) goto L_0894F91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F91C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8440,8 +10427,21 @@ L_0894F924: aot_gpr_5 = (0u | 59u); aot_gpr_31 = (0x0894F934u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 724u, 0x0894F934u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F934u) goto L_0894F934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F934: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(1929)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(96))); @@ -8452,8 +10452,21 @@ L_0894F934: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x0894F958u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 725u, 0x0894F958u, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F958u) goto L_0894F958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F958: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -8464,8 +10477,8 @@ L_0894F958: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894F970: @@ -8476,13 +10489,39 @@ L_0894F970: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x0894F98Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 727u, 0x0894F98Cu, 0x0895238Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 469u, 0x0895238Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F98Cu) goto L_0894F98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F98C: aot_gpr_31 = (0x0894F994u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 728u, 0x0894F994u, 0x0898D638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 507u, 0x0898D638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F994u) goto L_0894F994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F994: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8516,8 +10555,21 @@ L_0894F9BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894F9D8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 732u, 0x0894F9D8u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F9D8u) goto L_0894F9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F9D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8537,8 +10589,21 @@ L_0894F9E0: L_0894F9F0: aot_gpr_31 = (0x0894F9F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 735u, 0x0894F9F8u, 0x0898D638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 507u, 0x0898D638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894F9F8u) goto L_0894F9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894F9F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8559,8 +10624,21 @@ L_0894FA10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894FA1Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 738u, 0x0894FA1Cu, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FA1Cu) goto L_0894FA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FA1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -8570,8 +10648,21 @@ L_0894FA1C: L_0894FA2C: aot_gpr_31 = (0x0894FA34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 740u, 0x0894FA34u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FA34u) goto L_0894FA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FA34: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); @@ -8596,14 +10687,40 @@ L_0894FA48: L_0894FA58: aot_gpr_31 = (0x0894FA60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 744u, 0x0894FA60u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FA60u) goto L_0894FA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FA60: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x0894FA6Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 745u, 0x0894FA6Cu, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FA6Cu) goto L_0894FA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FA6C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); goto L_0894FA70; @@ -8624,8 +10741,21 @@ L_0894FA70: L_0894FA94: aot_gpr_31 = (0x0894FA9Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 748u, 0x0894FA9Cu, 0x0898D22Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 412u, 0x0898D22Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FA9Cu) goto L_0894FA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FA9C: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); @@ -8712,8 +10842,21 @@ L_0894FB34: L_0894FB4C: aot_gpr_31 = (0x0894FB54u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 757u, 0x0894FB54u, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FB54u) goto L_0894FB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FB54: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8781,8 +10924,21 @@ L_0894FBD4: aot_gpr_5 = (0u | 59u); aot_gpr_31 = (0x0894FBE4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 764u, 0x0894FBE4u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FBE4u) goto L_0894FBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FBE4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -8818,8 +10974,21 @@ L_0894FC18: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894FC48u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 767u, 0x0894FC48u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FC48u) goto L_0894FC48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FC48: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8843,8 +11012,21 @@ L_0894FC48: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0894FC74u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 768u, 0x0894FC74u, 0x08A45338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 206u, 0x08A45338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FC74u) goto L_0894FC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FC74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(3252), aot_gpr_4); @@ -8956,8 +11138,21 @@ L_0894FD68: aot_gpr_6 = (0u | 57u); aot_gpr_31 = (0x0894FDA4u); aot_fpr_13 = std::bit_cast(ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 776u, 0x0894FDA4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FDA4u) goto L_0894FDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FDA4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -8968,8 +11163,21 @@ L_0894FDA4: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x0894FDC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 777u, 0x0894FDC8u, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FDC8u) goto L_0894FDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FDC8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -8979,8 +11187,8 @@ L_0894FDC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0894FDDC: @@ -8995,16 +11203,42 @@ L_0894FDDC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(828), aot_run_words); } aot_gpr_31 = (0x0894FE30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 779u, 0x0894FE30u, 0x0898DE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 686u, 0x0898DE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FE30u) goto L_0894FE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FE30: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x0894FE44u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(788), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 780u, 0x0894FE44u, 0x0898DF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 703u, 0x0898DF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FE44u) goto L_0894FE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FE44: aot_gpr_5 = (16968u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_5); @@ -9042,8 +11276,21 @@ L_0894FE90: L_0894FE9C: aot_gpr_31 = (0x0894FEA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0082->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0082_entry, 783u, 0x0894FEA4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0894FEA4u) goto L_0894FEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0894FEA4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[20] & 255u); diff --git a/profiles/vcs/generated/generated_unit_0083.cpp b/profiles/vcs/generated/generated_unit_0083.cpp index 40d2ec2..6fcbcec 100644 --- a/profiles/vcs/generated/generated_unit_0083.cpp +++ b/profiles/vcs/generated/generated_unit_0083.cpp @@ -967,6 +967,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08950000u; + if (local_delta_v813 >= 16344u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1009,8 +1033,21 @@ L_0895000C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08950068u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 3u, 0x08950068u, 0x089991D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 137u, 0x089991D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950068u) goto L_08950068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950068: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -1048,8 +1085,21 @@ L_08950068: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089500ACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 4u, 0x089500ACu, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089500ACu) goto L_089500AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089500AC: ctx.gpr[20] = (ctx.gpr[2] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1060,14 +1110,40 @@ L_089500AC: } aot_gpr_31 = (0x089500C4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 5u, 0x089500C4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089500C4u) goto L_089500C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089500C4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089500D0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 6u, 0x089500D0u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089500D0u) goto L_089500D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089500D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3304))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -1091,8 +1167,21 @@ L_089500D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089500FCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 7u, 0x089500FCu, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089500FCu) goto L_089500FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089500FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3304))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -1114,8 +1203,21 @@ L_089500FC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08950120u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 8u, 0x08950120u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950120u) goto L_08950120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950120: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1256,8 +1358,21 @@ L_089501FC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08950244u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 10u, 0x08950244u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950244u) goto L_08950244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950244: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1422,8 +1537,21 @@ L_0895036C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08950380u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 19u, 0x08950380u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950380u) goto L_08950380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950380: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1505,8 +1633,21 @@ L_089503C8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08950400u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 21u, 0x08950400u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950400u) goto L_08950400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950400: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(788))); aot_gpr_4 = (14749u << 16u); @@ -1519,15 +1660,41 @@ L_08950400: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08950430u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 22u, 0x08950430u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950430u) goto L_08950430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950430: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08950440u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 23u, 0x08950440u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950440u) goto L_08950440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950440: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1562,8 +1729,21 @@ L_08950440: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0895046Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 24u, 0x0895046Cu, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895046Cu) goto L_0895046C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895046C: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1627,8 +1807,21 @@ L_0895046C: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x089504BCu); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 25u, 0x089504BCu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089504BCu) goto L_089504BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089504BC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(640))); @@ -1636,13 +1829,39 @@ L_089504BC: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x089504D4u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 26u, 0x089504D4u, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089504D4u) goto L_089504D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089504D4: aot_gpr_31 = (0x089504DCu); aot_fpr_12 = aot_fpr_20 - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 27u, 0x089504DCu, 0x08A8EF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 563u, 0x08A8EF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089504DCu) goto L_089504DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089504DC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3262)))))); @@ -1666,8 +1885,21 @@ L_089504F0: L_089504FC: aot_gpr_31 = (0x08950504u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 30u, 0x08950504u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950504u) goto L_08950504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950504: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] & 255u); @@ -1771,8 +2003,21 @@ L_089505AC: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089505ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 44u, 0x089505ECu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089505ECu) goto L_089505EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089505EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1811,8 +2056,21 @@ L_08950610: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08950640u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 48u, 0x08950640u, 0x08946B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 518u, 0x08946B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950640u) goto L_08950640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950640: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1935,8 +2193,21 @@ L_08950718: L_08950724: aot_gpr_31 = (0x0895072Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 54u, 0x0895072Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895072Cu) goto L_0895072C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895072C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] & 255u); @@ -2044,8 +2315,21 @@ L_089507B8: L_089507C4: aot_gpr_31 = (0x089507CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(400))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 66u, 0x089507CCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089507CCu) goto L_089507CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089507CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); goto L_089507D0; @@ -2066,8 +2350,21 @@ L_089507DC: L_089507E8: aot_gpr_31 = (0x089507F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 70u, 0x089507F0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089507F0u) goto L_089507F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089507F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(280))); goto L_089507F4; @@ -2088,8 +2385,21 @@ L_08950800: L_0895080C: aot_gpr_31 = (0x08950814u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 74u, 0x08950814u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950814u) goto L_08950814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950814: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(200))); goto L_08950818; @@ -2112,8 +2422,21 @@ L_08950824: L_08950830: aot_gpr_31 = (0x08950838u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 78u, 0x08950838u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950838u) goto L_08950838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950838: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(796), aot_run_words); @@ -2136,8 +2459,8 @@ L_08950838: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(864)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08950880: @@ -2153,8 +2476,21 @@ L_08950880: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(524), aot_run_words); } aot_gpr_31 = (0x089508C0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 80u, 0x089508C0u, 0x0898D5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 496u, 0x0898D5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089508C0u) goto L_089508C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089508C0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3260))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -2177,8 +2513,21 @@ L_089508CC: L_089508E4: aot_gpr_31 = (0x089508ECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 83u, 0x089508ECu, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089508ECu) goto L_089508EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089508EC: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); @@ -2245,22 +2594,74 @@ L_08950960: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x0895096Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 93u, 0x0895096Cu, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895096Cu) goto L_0895096C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895096C: aot_gpr_31 = (0x08950974u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 94u, 0x08950974u, 0x08A17A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 606u, 0x08A17A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950974u) goto L_08950974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950974: aot_gpr_31 = (0x0895097Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 95u, 0x0895097Cu, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895097Cu) goto L_0895097C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895097C: aot_gpr_31 = (0x08950984u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 96u, 0x08950984u, 0x0898D638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 507u, 0x0898D638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950984u) goto L_08950984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950984: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2294,8 +2695,21 @@ L_089509AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089509C8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 100u, 0x089509C8u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089509C8u) goto L_089509C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089509C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2315,8 +2729,21 @@ L_089509D0: L_089509E0: aot_gpr_31 = (0x089509E8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 103u, 0x089509E8u, 0x0898D638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 507u, 0x0898D638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089509E8u) goto L_089509E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089509E8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2336,8 +2763,21 @@ L_089509F0: L_08950A00: aot_gpr_31 = (0x08950A08u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 106u, 0x08950A08u, 0x0898D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 543u, 0x0898D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950A08u) goto L_08950A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950A08: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2348,8 +2788,21 @@ L_08950A08: L_08950A10: aot_gpr_31 = (0x08950A18u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 108u, 0x08950A18u, 0x0898D640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 508u, 0x0898D640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950A18u) goto L_08950A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950A18: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2360,8 +2813,21 @@ L_08950A18: L_08950A20: aot_gpr_31 = (0x08950A28u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 110u, 0x08950A28u, 0x0898D1B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 400u, 0x0898D1B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950A28u) goto L_08950A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950A28: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2373,8 +2839,21 @@ L_08950A30: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08950A3Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 112u, 0x08950A3Cu, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950A3Cu) goto L_08950A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950A3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -2385,8 +2864,21 @@ L_08950A4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08950A58u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 114u, 0x08950A58u, 0x0894E260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 436u, 0x0894E260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950A58u) goto L_08950A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950A58: if (ctx.gpr[18] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3262)))))); @@ -2407,8 +2899,21 @@ L_08950A60: L_08950A78: aot_gpr_31 = (0x08950A80u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 117u, 0x08950A80u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950A80u) goto L_08950A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950A80: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2447,8 +2952,21 @@ L_08950AA8: L_08950AB4: aot_gpr_31 = (0x08950ABCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 122u, 0x08950ABCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950ABCu) goto L_08950ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950ABC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[18] & 255u); @@ -2502,8 +3020,21 @@ L_08950AF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08950B28u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 129u, 0x08950B28u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950B28u) goto L_08950B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950B28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2553,8 +3084,21 @@ L_08950B88: L_08950B94: aot_gpr_31 = (0x08950B9Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 135u, 0x08950B9Cu, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950B9Cu) goto L_08950B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950B9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2667,8 +3211,21 @@ L_08950C6C: L_08950C94: aot_gpr_31 = (0x08950C9Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 146u, 0x08950C9Cu, 0x0898D5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 496u, 0x0898D5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950C9Cu) goto L_08950C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950C9C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (2236u << 16u); @@ -2700,8 +3257,21 @@ L_08950CB4: L_08950CC4: aot_gpr_31 = (0x08950CCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 151u, 0x08950CCCu, 0x0894857Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 84u, 0x0894857Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950CCCu) goto L_08950CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950CCC: aot_fpr_12 = std::bit_cast(0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); @@ -2712,8 +3282,21 @@ L_08950CCC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08950CF0u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 152u, 0x08950CF0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950CF0u) goto L_08950CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950CF0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2727,8 +3310,21 @@ L_08950CFC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08950D0Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 154u, 0x08950D0Cu, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950D0Cu) goto L_08950D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950D0C: aot_gpr_4 = (2236u << 16u); { const bool branch_taken = 0u == 0u; @@ -2742,8 +3338,21 @@ L_08950D18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08950D24u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 156u, 0x08950D24u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950D24u) goto L_08950D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950D24: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2753,8 +3362,21 @@ L_08950D24: } L_08950D2C: aot_gpr_31 = (0x08950D34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 158u, 0x08950D34u, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950D34u) goto L_08950D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950D34: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2900,8 +3522,21 @@ L_08950E4C: L_08950E74: aot_gpr_31 = (0x08950E7Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 172u, 0x08950E7Cu, 0x0898D22Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 412u, 0x0898D22Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950E7Cu) goto L_08950E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950E7C: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); @@ -2990,8 +3625,21 @@ L_08950F0C: L_08950F1C: aot_gpr_31 = (0x08950F24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 182u, 0x08950F24u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950F24u) goto L_08950F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950F24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 4u); @@ -3062,8 +3710,21 @@ L_08950FB0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2076))); aot_gpr_31 = (0x08950FBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 190u, 0x08950FBCu, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950FBCu) goto L_08950FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950FBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3082,8 +3743,21 @@ L_08950FC4: L_08950FD0: aot_gpr_31 = (0x08950FD8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 193u, 0x08950FD8u, 0x0898D270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 419u, 0x0898D270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08950FD8u) goto L_08950FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08950FD8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3181,8 +3855,21 @@ L_08951094: L_089510A0: aot_gpr_31 = (0x089510A8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 204u, 0x089510A8u, 0x0898D270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 419u, 0x0898D270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089510A8u) goto L_089510A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089510A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3194,8 +3881,21 @@ L_089510B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089510BCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 206u, 0x089510BCu, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089510BCu) goto L_089510BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089510BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3235,8 +3935,21 @@ L_089510E8: L_08951110: aot_gpr_31 = (0x08951118u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 210u, 0x08951118u, 0x0898D270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 419u, 0x0898D270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951118u) goto L_08951118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951118: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3248,8 +3961,21 @@ L_08951120: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0895112Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 212u, 0x0895112Cu, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895112Cu) goto L_0895112C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895112C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3289,8 +4015,21 @@ L_08951154: L_0895117C: aot_gpr_31 = (0x08951184u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 216u, 0x08951184u, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951184u) goto L_08951184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951184: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3303,8 +4042,21 @@ L_0895118C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x0895119Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 218u, 0x0895119Cu, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895119Cu) goto L_0895119C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895119C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2076))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3363,13 +4115,39 @@ L_08951214: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08951220u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 224u, 0x08951220u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951220u) goto L_08951220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951220: aot_gpr_31 = (0x08951228u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 225u, 0x08951228u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951228u) goto L_08951228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951228: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3256)))))); @@ -3437,8 +4215,21 @@ L_0895128C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(32304)); aot_gpr_31 = (0x08951298u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 235u, 0x08951298u, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951298u) goto L_08951298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951298: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3485,8 +4276,21 @@ L_089512D4: L_089512E0: aot_gpr_31 = (0x089512E8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 241u, 0x089512E8u, 0x0898C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 28u, 0x0898C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089512E8u) goto L_089512E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089512E8: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3262)))))); @@ -3525,8 +4329,21 @@ L_08951308: L_08951314: aot_gpr_31 = (0x0895131Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 247u, 0x0895131Cu, 0x08908C50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 219u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 219u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 219u, 0x08908C50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895131Cu) goto L_0895131C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895131C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3573,8 +4390,21 @@ L_08951360: L_08951378: aot_gpr_31 = (0x08951380u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 252u, 0x08951380u, 0x0894D1B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 261u, 0x0894D1B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951380u) goto L_08951380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951380: { const bool branch_taken = 0u == 0u; ctx.gpr[22] = (0u + static_cast(-2)); @@ -3669,8 +4499,21 @@ L_08951404: L_0895140C: aot_gpr_31 = (0x08951414u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 265u, 0x08951414u, 0x08B14BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 113u, 0x08B14BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951414u) goto L_08951414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951414: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3681,8 +4524,21 @@ L_08951414: L_0895141C: aot_gpr_31 = (0x08951424u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 267u, 0x08951424u, 0x08B143A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 23u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 23u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 23u, 0x08B143A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951424u) goto L_08951424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951424: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -3700,8 +4556,21 @@ L_08951424: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08951464u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 268u, 0x08951464u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951464u) goto L_08951464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951464: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17860))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17864))); @@ -3725,8 +4594,21 @@ L_08951484: L_0895148C: aot_gpr_31 = (0x08951494u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 271u, 0x08951494u, 0x08949CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 403u, 0x08949CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951494u) goto L_08951494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951494: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -3763,8 +4645,21 @@ L_089514BC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089514E4u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 275u, 0x089514E4u, 0x08A17F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 670u, 0x08A17F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089514E4u) goto L_089514E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089514E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3791,8 +4686,21 @@ L_089514F8: L_08951504: aot_gpr_31 = (0x0895150Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 279u, 0x0895150Cu, 0x08B14BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 113u, 0x08B14BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895150Cu) goto L_0895150C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895150C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3803,8 +4711,21 @@ L_0895150C: L_08951514: aot_gpr_31 = (0x0895151Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 281u, 0x0895151Cu, 0x08B143A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 23u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 23u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 23u, 0x08B143A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895151Cu) goto L_0895151C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895151C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -3822,8 +4743,21 @@ L_0895151C: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0895155Cu); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 282u, 0x0895155Cu, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895155Cu) goto L_0895155C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895155C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17860))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17864))); @@ -3847,8 +4781,21 @@ L_0895157C: L_08951584: aot_gpr_31 = (0x0895158Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 285u, 0x0895158Cu, 0x08949CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 403u, 0x08949CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895158Cu) goto L_0895158C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895158C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3945,8 +4892,21 @@ L_08951624: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08951630u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 298u, 0x08951630u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951630u) goto L_08951630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951630: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3969,8 +4929,21 @@ L_08951638: L_08951654: aot_gpr_31 = (0x0895165Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2076))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 301u, 0x0895165Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895165Cu) goto L_0895165C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895165C: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); @@ -4047,8 +5020,21 @@ L_089516DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089516E8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 311u, 0x089516E8u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089516E8u) goto L_089516E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089516E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4080,8 +5066,21 @@ L_089516F0: aot_gpr_6 = (aot_gpr_6 + static_cast(1396)); aot_gpr_31 = (0x08951720u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 313u, 0x08951720u, 0x08949AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 378u, 0x08949AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951720u) goto L_08951720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951720: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4138,8 +5137,21 @@ L_08951788: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08951794u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 319u, 0x08951794u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951794u) goto L_08951794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951794: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4158,8 +5170,21 @@ L_0895179C: L_089517A8: aot_gpr_31 = (0x089517B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 322u, 0x089517B0u, 0x089498DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 356u, 0x089498DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089517B0u) goto L_089517B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089517B0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2076))); aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); @@ -4210,8 +5235,21 @@ L_089517EC: L_089517FC: aot_gpr_31 = (0x08951804u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 329u, 0x08951804u, 0x0898D8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 561u, 0x0898D8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951804u) goto L_08951804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951804: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4223,8 +5261,21 @@ L_0895180C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08951818u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 331u, 0x08951818u, 0x08B15190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 215u, 0x08B15190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951818u) goto L_08951818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951818: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -4241,8 +5292,21 @@ L_08951818: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08951854u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 332u, 0x08951854u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951854u) goto L_08951854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951854: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17860))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17864))); @@ -4266,13 +5330,39 @@ L_08951874: L_0895187C: aot_gpr_31 = (0x08951884u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 335u, 0x08951884u, 0x08949CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 403u, 0x08949CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951884u) goto L_08951884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951884: aot_gpr_31 = (0x0895188Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 336u, 0x0895188Cu, 0x0898D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 569u, 0x0898D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895188Cu) goto L_0895188C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895188C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4284,8 +5374,21 @@ L_08951894: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089518A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 338u, 0x089518A0u, 0x08B15190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 215u, 0x08B15190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089518A0u) goto L_089518A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089518A0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -4302,8 +5405,21 @@ L_089518A0: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089518DCu); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 339u, 0x089518DCu, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089518DCu) goto L_089518DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089518DC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17860))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17864))); @@ -4327,8 +5443,21 @@ L_089518FC: L_08951904: aot_gpr_31 = (0x0895190Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 342u, 0x0895190Cu, 0x08949CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 403u, 0x08949CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895190Cu) goto L_0895190C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895190C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7580))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4343,8 +5472,21 @@ L_08951918: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0895192Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 344u, 0x0895192Cu, 0x08A1D018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 167u, 0x08A1D018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895192Cu) goto L_0895192C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895192C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4598,8 +5740,21 @@ L_08951B88: aot_gpr_6 = (aot_gpr_29 + static_cast(320)); aot_gpr_31 = (0x08951B98u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 367u, 0x08951B98u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951B98u) goto L_08951B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951B98: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(320))); @@ -4633,8 +5788,21 @@ L_08951BC4: aot_gpr_6 = (aot_gpr_29 + static_cast(321)); aot_gpr_31 = (0x08951BD4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 370u, 0x08951BD4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951BD4u) goto L_08951BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951BD4: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(321))); @@ -4762,8 +5930,21 @@ L_08951CD0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08951CE0u); aot_gpr_5 = (aot_gpr_5 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 379u, 0x08951CE0u, 0x08A1D614u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 269u, 0x08A1D614u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951CE0u) goto L_08951CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951CE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4825,8 +6006,21 @@ L_08951D40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08951D4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 387u, 0x08951D4Cu, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951D4Cu) goto L_08951D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951D4C: aot_gpr_4 = (0u | 6u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(3260), static_cast(aot_gpr_4)); @@ -4868,8 +6062,21 @@ L_08951DAC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08951DC0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 391u, 0x08951DC0u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951DC0u) goto L_08951DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951DC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2076))); aot_gpr_4 = (aot_gpr_4 + static_cast(320)); @@ -4927,8 +6134,21 @@ L_08951DF8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[23] + static_cast(0)))))); aot_gpr_31 = (0x08951E20u); ctx.gpr[30] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 394u, 0x08951E20u, 0x089D273Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 419u, 0x089D273Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951E20u) goto L_08951E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951E20: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(4))); aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -4958,8 +6178,21 @@ L_08951E48: aot_gpr_6 = (aot_gpr_29 + static_cast(352)); aot_gpr_31 = (0x08951E58u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 398u, 0x08951E58u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951E58u) goto L_08951E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951E58: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(352))); @@ -4991,8 +6224,21 @@ L_08951E8C: aot_gpr_6 = (aot_gpr_29 + static_cast(353)); aot_gpr_31 = (0x08951E9Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 402u, 0x08951E9Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951E9Cu) goto L_08951E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951E9C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(353))); @@ -5019,8 +6265,21 @@ L_08951EC0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08951ED0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 406u, 0x08951ED0u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951ED0u) goto L_08951ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951ED0: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08951ED4; @@ -5043,8 +6302,21 @@ L_08951EE8: aot_gpr_6 = (aot_gpr_29 + static_cast(354)); aot_gpr_31 = (0x08951EF8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 410u, 0x08951EF8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951EF8u) goto L_08951EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951EF8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(354))); @@ -5071,8 +6343,21 @@ L_08951F1C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08951F2Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 414u, 0x08951F2Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951F2Cu) goto L_08951F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951F2C: ctx.gpr[20] = (ctx.gpr[2] | 0u); goto L_08951F30; @@ -5088,8 +6373,21 @@ L_08951F3C: aot_gpr_6 = (aot_gpr_29 + static_cast(355)); aot_gpr_31 = (0x08951F4Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 417u, 0x08951F4Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951F4Cu) goto L_08951F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951F4C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(355))); @@ -5129,8 +6427,21 @@ L_08951F7C: aot_gpr_6 = (aot_gpr_29 + static_cast(356)); aot_gpr_31 = (0x08951F8Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 421u, 0x08951F8Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951F8Cu) goto L_08951F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951F8C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(356))); @@ -5173,8 +6484,21 @@ L_08951FC0: aot_gpr_6 = (aot_gpr_29 + static_cast(357)); aot_gpr_31 = (0x08951FD0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 426u, 0x08951FD0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08951FD0u) goto L_08951FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08951FD0: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(357))); @@ -5392,8 +6716,21 @@ L_089520E8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0895210Cu); ctx.gpr[8] = (0u | 225u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 435u, 0x0895210Cu, 0x08A17F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 670u, 0x08A17F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895210Cu) goto L_0895210C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895210C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5422,8 +6759,21 @@ L_08952114: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08952138u); ctx.gpr[8] = (0u | 225u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 437u, 0x08952138u, 0x08A17F78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 670u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 670u, 0x08A17F78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952138u) goto L_08952138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952138: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5511,8 +6861,21 @@ L_089521B8: aot_gpr_6 = (aot_gpr_29 + static_cast(448)); aot_gpr_31 = (0x089521C8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 447u, 0x089521C8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089521C8u) goto L_089521C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089521C8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(448))); @@ -5533,8 +6896,21 @@ L_089521EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089521F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 450u, 0x089521F8u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089521F8u) goto L_089521F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089521F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 & 128u); @@ -5707,8 +7083,21 @@ L_089522C4: L_089522EC: aot_gpr_31 = (0x089522F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 461u, 0x089522F4u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089522F4u) goto L_089522F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089522F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5737,8 +7126,21 @@ L_08952314: } L_08952324: aot_gpr_31 = (0x0895232Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 465u, 0x0895232Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895232Cu) goto L_0895232C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895232C: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -5777,8 +7179,8 @@ L_08952358: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(560)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895238C: @@ -5790,8 +7192,21 @@ L_0895238C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x089523ACu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 470u, 0x089523ACu, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089523ACu) goto L_089523AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089523AC: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2120))); @@ -5800,8 +7215,21 @@ L_089523AC: goto L_089523B4; L_089523B4: aot_gpr_31 = (0x089523BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 472u, 0x089523BCu, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089523BCu) goto L_089523BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089523BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5864,8 +7292,21 @@ L_08952424: L_08952434: aot_gpr_31 = (0x0895243Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 480u, 0x0895243Cu, 0x0898D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 482u, 0x0898D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895243Cu) goto L_0895243C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895243C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5875,8 +7316,21 @@ L_0895243C: } L_08952444: aot_gpr_31 = (0x0895244Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 482u, 0x0895244Cu, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895244Cu) goto L_0895244C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895244C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5988,8 +7442,21 @@ L_089524C8: L_089524E8: aot_gpr_31 = (0x089524F0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 496u, 0x089524F0u, 0x08A417DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 283u, 0x08A417DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089524F0u) goto L_089524F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089524F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6020,8 +7487,21 @@ L_08952500: L_08952518: aot_gpr_31 = (0x08952520u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 500u, 0x08952520u, 0x0898D4B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 475u, 0x0898D4B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952520u) goto L_08952520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952520: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); @@ -6030,8 +7510,21 @@ L_08952520: goto L_08952528; L_08952528: aot_gpr_31 = (0x08952530u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 502u, 0x08952530u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952530u) goto L_08952530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952530: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); @@ -6128,8 +7621,21 @@ L_089525A4: } L_089525C4: aot_gpr_31 = (0x089525CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 515u, 0x089525CCu, 0x08A417DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 283u, 0x08A417DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089525CCu) goto L_089525CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089525CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6194,8 +7700,21 @@ L_08952624: L_08952630: aot_gpr_31 = (0x08952638u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 524u, 0x08952638u, 0x0898D22Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 412u, 0x0898D22Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952638u) goto L_08952638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952638: ctx.gpr[17] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); aot_gpr_4 = (ctx.gpr[17] << 5u); @@ -6659,14 +8178,40 @@ L_0895295C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08952970u); aot_fpr_12 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 579u, 0x08952970u, 0x088E4294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 15u, 0x088E4294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952970u) goto L_08952970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952970: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3256)))))); aot_gpr_31 = (0x0895297Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 580u, 0x0895297Cu, 0x08947198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 610u, 0x08947198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895297Cu) goto L_0895297C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895297C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -6677,8 +8222,8 @@ L_0895297C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08952994: @@ -6698,8 +8243,21 @@ L_08952994: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089529D4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 582u, 0x089529D4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089529D4u) goto L_089529D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089529D4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089529E0u); @@ -6709,8 +8267,21 @@ L_089529D4: L_089529E0: aot_gpr_31 = (0x089529E8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 584u, 0x089529E8u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089529E8u) goto L_089529E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089529E8: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6722,16 +8293,42 @@ L_089529E8: L_089529FC: aot_gpr_31 = (0x08952A04u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 586u, 0x08952A04u, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952A04u) goto L_08952A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952A04: aot_fpr_13 = std::bit_cast(ctx.gpr[2]); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08952A18u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 587u, 0x08952A18u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952A18u) goto L_08952A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952A18: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6819,8 +8416,21 @@ L_08952AB8: L_08952AC0: aot_gpr_31 = (0x08952AC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 597u, 0x08952AC8u, 0x08906FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 668u, 0x08906FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952AC8u) goto L_08952AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952AC8: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1929)))))); @@ -6836,8 +8446,21 @@ L_08952AD0: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x08952AF0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 599u, 0x08952AF0u, 0x08A41764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 268u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 268u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 268u, 0x08A41764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952AF0u) goto L_08952AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952AF0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6874,8 +8497,21 @@ L_08952B2C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), aot_gpr_4); aot_gpr_31 = (0x08952B38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 604u, 0x08952B38u, 0x08946F38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 577u, 0x08946F38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952B38u) goto L_08952B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952B38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6985,8 +8621,21 @@ L_08952BEC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), ctx.gpr[17]); aot_gpr_31 = (0x08952BF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 617u, 0x08952BF8u, 0x08946F38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 577u, 0x08946F38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952BF8u) goto L_08952BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952BF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7034,8 +8683,21 @@ L_08952C40: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), aot_gpr_4); aot_gpr_31 = (0x08952C4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 623u, 0x08952C4Cu, 0x08946F38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 577u, 0x08946F38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952C4Cu) goto L_08952C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952C4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7045,8 +8707,21 @@ L_08952C4C: } L_08952C54: aot_gpr_31 = (0x08952C5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 625u, 0x08952C5Cu, 0x08A40D58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 161u, 0x08A40D58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952C5Cu) goto L_08952C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952C5C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(776))); @@ -7066,8 +8741,21 @@ L_08952C6C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), ctx.gpr[17]); aot_gpr_31 = (0x08952C78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 628u, 0x08952C78u, 0x08946F38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 577u, 0x08946F38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952C78u) goto L_08952C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952C78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7088,8 +8776,21 @@ L_08952C90: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), aot_gpr_4); aot_gpr_31 = (0x08952C9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 631u, 0x08952C9Cu, 0x08946F38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 577u, 0x08946F38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952C9Cu) goto L_08952C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952C9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7163,8 +8864,21 @@ L_08952D2C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), aot_gpr_4); aot_gpr_31 = (0x08952D38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 639u, 0x08952D38u, 0x08946F38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 577u, 0x08946F38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952D38u) goto L_08952D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952D38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7217,8 +8931,21 @@ L_08952D88: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), aot_gpr_4); aot_gpr_31 = (0x08952D94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 646u, 0x08952D94u, 0x08946F38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 577u, 0x08946F38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952D94u) goto L_08952D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952D94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7259,8 +8986,21 @@ L_08952DC8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), aot_gpr_4); aot_gpr_31 = (0x08952DD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 652u, 0x08952DD4u, 0x08946F38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 577u, 0x08946F38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952DD4u) goto L_08952DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952DD4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7272,8 +9012,8 @@ L_08952DD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08952DF0: @@ -7315,8 +9055,21 @@ L_08952E60: aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 24u)); aot_gpr_31 = (0x08952E7Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 655u, 0x08952E7Cu, 0x0894965Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 320u, 0x0894965Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952E7Cu) goto L_08952E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952E7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7329,8 +9082,21 @@ L_08952E7C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08952EA8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 656u, 0x08952EA8u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952EA8u) goto L_08952EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952EA8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7370,8 +9136,21 @@ L_08952EB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08952F00u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 658u, 0x08952F00u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08952F00u) goto L_08952F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08952F00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7540,8 +9319,21 @@ L_0895305C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08953074u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 675u, 0x08953074u, 0x0894965Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 320u, 0x0894965Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953074u) goto L_08953074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953074: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7690,8 +9482,8 @@ L_0895314C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953184: @@ -7762,8 +9554,21 @@ L_08953218: } L_0895322C: aot_gpr_31 = (0x08953234u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 695u, 0x08953234u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953234u) goto L_08953234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953234: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7775,8 +9580,21 @@ L_0895323C: aot_gpr_16 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(86)))))); aot_gpr_31 = (0x08953248u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 697u, 0x08953248u, 0x089C914Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 293u, 0x089C914Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953248u) goto L_08953248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953248: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8008,8 +9826,21 @@ L_08953360: aot_gpr_5 = (0u | 51u); aot_gpr_31 = (0x08953370u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 707u, 0x08953370u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953370u) goto L_08953370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953370: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -8017,8 +9848,21 @@ L_08953370: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(1756), aot_gpr_5); aot_gpr_31 = (0x08953388u); aot_gpr_5 = (0u | 147u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 708u, 0x08953388u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953388u) goto L_08953388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953388: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8029,8 +9873,21 @@ L_08953388: L_08953390: aot_gpr_31 = (0x08953398u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 710u, 0x08953398u, 0x089C9154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 294u, 0x089C9154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953398u) goto L_08953398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953398: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8041,8 +9898,21 @@ L_08953398: L_089533A0: aot_gpr_31 = (0x089533A8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 712u, 0x089533A8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089533A8u) goto L_089533A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089533A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8061,8 +9931,21 @@ L_089533B0: L_089533BC: aot_gpr_31 = (0x089533C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 715u, 0x089533C4u, 0x08B01AA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 439u, 0x08B01AA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089533C4u) goto L_089533C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089533C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8159,8 +10042,21 @@ L_08953450: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08953460u); aot_gpr_5 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 722u, 0x08953460u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953460u) goto L_08953460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953460: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(1914))); ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); @@ -8190,8 +10086,8 @@ L_08953474: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089534AC: @@ -8207,8 +10103,8 @@ L_089534C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089534D4: @@ -8216,8 +10112,8 @@ L_089534D4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(8), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089534E4: @@ -8236,8 +10132,21 @@ L_089534E4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08953528u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 728u, 0x08953528u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953528u) goto L_08953528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953528: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8258,8 +10167,21 @@ L_08953528: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08953548u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 729u, 0x08953548u, 0x08A8E3D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 445u, 0x08A8E3D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953548u) goto L_08953548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953548: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); @@ -8267,8 +10189,21 @@ L_08953548: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08953560u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 730u, 0x08953560u, 0x08A8E3D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 445u, 0x08A8E3D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953560u) goto L_08953560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953560: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -8379,8 +10314,8 @@ L_089535FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953614: @@ -8406,8 +10341,21 @@ L_08953638: L_0895363C: aot_gpr_31 = (0x08953644u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 749u, 0x08953644u, 0x089BABBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 582u, 0x089BABBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953644u) goto L_08953644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953644: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8444,14 +10392,40 @@ L_08953670: L_08953678: aot_gpr_31 = (0x08953680u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 756u, 0x08953680u, 0x089BABBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 582u, 0x089BABBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953680u) goto L_08953680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953680: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0895368Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 757u, 0x0895368Cu, 0x089BB278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 685u, 0x089BB278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895368Cu) goto L_0895368C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895368C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8469,8 +10443,21 @@ L_08953694: } L_089536A0: aot_gpr_31 = (0x089536A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 760u, 0x089536A8u, 0x08A8D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 292u, 0x08A8D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089536A8u) goto L_089536A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089536A8: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -8490,8 +10477,21 @@ L_089536B0: L_089536BC: aot_gpr_31 = (0x089536C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 763u, 0x089536C4u, 0x08A8D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 292u, 0x08A8D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089536C4u) goto L_089536C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089536C4: aot_gpr_16 = (ctx.gpr[2] | 0u); goto L_089536C8; @@ -8515,8 +10515,21 @@ L_089536DC: L_089536E4: aot_gpr_31 = (0x089536ECu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 768u, 0x089536ECu, 0x089BB278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 685u, 0x089BB278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089536ECu) goto L_089536EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089536EC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8526,8 +10539,8 @@ L_089536EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953700: @@ -8543,15 +10556,15 @@ L_08953714: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953728: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953730: @@ -8571,8 +10584,21 @@ L_08953730: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08953770u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 773u, 0x08953770u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953770u) goto L_08953770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953770: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8606,8 +10632,8 @@ L_08953794: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089537A8: @@ -8660,8 +10686,21 @@ L_08953804: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08953810u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 784u, 0x08953810u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953810u) goto L_08953810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953810: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8685,8 +10724,21 @@ L_0895382C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08953838u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 789u, 0x08953838u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953838u) goto L_08953838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953838: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8706,8 +10758,21 @@ L_0895384C: L_08953850: aot_gpr_31 = (0x08953858u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 793u, 0x08953858u, 0x089BB260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 682u, 0x089BB260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953858u) goto L_08953858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953858: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8733,8 +10798,21 @@ L_08953874: L_08953878: aot_gpr_31 = (0x08953880u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 798u, 0x08953880u, 0x089BB260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 682u, 0x089BB260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953880u) goto L_08953880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953880: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8745,8 +10823,8 @@ L_08953880: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953898: @@ -8759,14 +10837,40 @@ L_089538A8: aot_gpr_4 = (2240u << 16u); aot_gpr_31 = (0x089538B4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 801u, 0x089538B4u, 0x08AA3900u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 881u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 881u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 881u, 0x08AA3900u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089538B4u) goto L_089538B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089538B4: aot_gpr_4 = (2247u << 16u); aot_gpr_31 = (0x089538C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(8968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 802u, 0x089538C0u, 0x0893A860u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 596u, 0x0893A860u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089538C0u) goto L_089538C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089538C0: aot_gpr_31 = (0x089538C8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8964)); @@ -8775,8 +10879,8 @@ L_089538C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089538D4: @@ -8789,14 +10893,40 @@ L_089538E4: aot_gpr_4 = (2240u << 16u); aot_gpr_31 = (0x089538F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 806u, 0x089538F0u, 0x08AA3B90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 909u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 909u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 909u, 0x08AA3B90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089538F0u) goto L_089538F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089538F0: aot_gpr_4 = (2247u << 16u); aot_gpr_31 = (0x089538FCu); aot_gpr_4 = (aot_gpr_4 + static_cast(8968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 807u, 0x089538FCu, 0x0893A8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 599u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 599u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 599u, 0x0893A8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089538FCu) goto L_089538FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089538FC: aot_gpr_31 = (0x08953904u); aot_gpr_4 = (ctx.gpr[28] + static_cast(8964)); @@ -8805,8 +10935,8 @@ L_08953904: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953910: @@ -8823,8 +10953,8 @@ L_08953928: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953934: @@ -8870,8 +11000,8 @@ L_08953934: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953954: @@ -8927,8 +11057,8 @@ L_08953954: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895397C: @@ -8947,8 +11077,8 @@ L_0895397C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953990: @@ -8971,15 +11101,28 @@ L_089539B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x089539BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 818u, 0x089539BCu, 0x089563C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 435u, 0x089563C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089539BCu) goto L_089539BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089539BC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089539CC: @@ -9002,15 +11145,28 @@ L_089539EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x089539F8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 822u, 0x089539F8u, 0x089563C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 435u, 0x089563C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089539F8u) goto L_089539F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089539F8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953A08: @@ -9111,8 +11267,8 @@ L_08953AAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953B30: @@ -9147,8 +11303,8 @@ L_08953B30: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953BD4: @@ -9204,8 +11360,21 @@ L_08953C48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x08953C60u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 836u, 0x08953C60u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953C60u) goto L_08953C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953C60: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -9492,8 +11661,8 @@ L_08953E28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953E60: @@ -9516,8 +11685,21 @@ L_08953E74: aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); aot_gpr_31 = (0x08953E98u); aot_gpr_5 = (aot_gpr_5 + static_cast(12144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 876u, 0x08953E98u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953E98u) goto L_08953E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953E98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (59u << 16u); @@ -9560,14 +11742,27 @@ L_08953EEC: L_08953F08: aot_gpr_31 = (0x08953F10u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 880u, 0x08953F10u, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953F10u) goto L_08953F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953F10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953F1C: @@ -9577,13 +11772,39 @@ L_08953F1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08953F34u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 882u, 0x08953F34u, 0x08956594u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 468u, 0x08956594u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953F34u) goto L_08953F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953F34: aot_gpr_31 = (0x08953F3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 883u, 0x08953F3Cu, 0x08956E7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 607u, 0x08956E7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953F3Cu) goto L_08953F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953F3C: aot_gpr_6 = (aot_gpr_16 + static_cast(1040)); aot_gpr_4 = (aot_gpr_16 + static_cast(1440)); @@ -9619,8 +11840,8 @@ L_08953F5C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08953F94: @@ -9643,8 +11864,21 @@ L_08953FC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08953FD4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0083->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0083_entry, 889u, 0x08953FD4u, 0x089579B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 753u, 0x089579B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08953FD4u) goto L_08953FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08953FD4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (50426u << 16u); diff --git a/profiles/vcs/generated/generated_unit_0084.cpp b/profiles/vcs/generated/generated_unit_0084.cpp index cced9a2..cef4ab6 100644 --- a/profiles/vcs/generated/generated_unit_0084.cpp +++ b/profiles/vcs/generated/generated_unit_0084.cpp @@ -33,6 +33,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0084[64] = { 389u, 399u, 415u, 424u, 438u, 457u, 477u, 494u, 510u, 529u, 544u, 559u, 578u, 588u, 603u, 614u, 630u, 652u, 678u, 683u, 693u, 710u, 713u, 721u, 731u, 745u, 756u, 771u, 786u, 797u, 806u, 826u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0084[4096] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, + 5u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 10u, 0u, 11u, 0u, 0u, 0u, 12u, 0u, 13u, 0u, 14u, 0u, 0u, 15u, + 0u, 16u, 0u, 17u, 0u, 0u, 18u, 0u, 0u, 19u, 0u, 20u, 0u, 21u, 0u, 22u, 0u, 0u, 0u, 23u, 0u, 0u, 24u, 25u, 26u, 0u, 27u, 0u, 0u, 28u, 0u, 29u, + 0u, 30u, 0u, 31u, 0u, 32u, 0u, 0u, 0u, 0u, 0u, 33u, 0u, 0u, 0u, 34u, 0u, 0u, 35u, 36u, 37u, 0u, 38u, 0u, 0u, 39u, 0u, 40u, 0u, 0u, 0u, 41u, + 0u, 0u, 42u, 43u, 44u, 0u, 45u, 0u, 0u, 46u, 0u, 0u, 47u, 0u, 48u, 0u, 49u, 0u, 0u, 50u, 51u, 0u, 0u, 52u, 0u, 53u, 54u, 0u, 0u, 55u, 0u, 56u, + 0u, 57u, 0u, 58u, 0u, 59u, 0u, 60u, 0u, 0u, 61u, 0u, 62u, 0u, 0u, 0u, 63u, 0u, 0u, 64u, 65u, 66u, 0u, 67u, 0u, 0u, 68u, 0u, 69u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 0u, 0u, 0u, 72u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 73u, 0u, 74u, 0u, + 75u, 76u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 78u, 0u, 0u, 0u, 0u, 0u, 79u, 80u, 0u, 0u, 0u, + 0u, 81u, 0u, 0u, 82u, 0u, 83u, 0u, 0u, 0u, 84u, 0u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 86u, 0u, 0u, 87u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, + 0u, 89u, 0u, 0u, 0u, 90u, 0u, 91u, 0u, 0u, 0u, 92u, 0u, 93u, 0u, 94u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 96u, 0u, 0u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 0u, 0u, 98u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 102u, 0u, 103u, 0u, 0u, 0u, 0u, 0u, 0u, 104u, 0u, 0u, 0u, 0u, 0u, 0u, 105u, 0u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 107u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 108u, 0u, 0u, 0u, 0u, 0u, 109u, 0u, 110u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 111u, 0u, 112u, 0u, 0u, 0u, + 0u, 113u, 0u, 0u, 0u, 0u, 0u, 114u, 0u, 0u, 115u, 0u, 116u, 0u, 0u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, 118u, 0u, 119u, 120u, 0u, 0u, 0u, 0u, 121u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 122u, 0u, 123u, 0u, 0u, 124u, 125u, 0u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 132u, 0u, 0u, 133u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 135u, 0u, 0u, 0u, 136u, 0u, 137u, 0u, 0u, 0u, 138u, 0u, 139u, 0u, 0u, 0u, 140u, 0u, 141u, 0u, 0u, 0u, 142u, 0u, 143u, 0u, 0u, 0u, 144u, 0u, + 145u, 0u, 0u, 0u, 146u, 0u, 147u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 0u, 149u, 150u, 0u, 151u, 0u, 152u, 0u, 0u, 0u, 153u, 0u, 0u, 0u, 0u, 154u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 155u, 0u, 0u, 0u, 156u, 0u, 157u, 0u, 158u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 0u, 160u, 0u, 161u, 0u, 0u, 162u, 0u, 163u, + 0u, 0u, 0u, 164u, 0u, 165u, 166u, 0u, 0u, 0u, 167u, 168u, 0u, 0u, 169u, 0u, 170u, 0u, 0u, 0u, 171u, 172u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, 0u, 0u, + 0u, 174u, 0u, 0u, 0u, 175u, 176u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 177u, 0u, 0u, 0u, 178u, 179u, 0u, 180u, 0u, 0u, 0u, 181u, 182u, 0u, 183u, 0u, + 0u, 184u, 0u, 0u, 185u, 186u, 0u, 187u, 0u, 0u, 0u, 188u, 189u, 0u, 0u, 190u, 0u, 191u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 192u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 194u, 0u, 195u, 0u, 196u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 198u, 0u, 0u, 0u, 199u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, + 202u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 204u, 0u, 205u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 209u, 0u, 210u, 0u, 211u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 213u, 0u, 214u, + 0u, 0u, 0u, 0u, 0u, 215u, 0u, 216u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 218u, 0u, 219u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 0u, 0u, 0u, 0u, 0u, + 221u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 223u, 0u, 224u, 0u, 225u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 227u, 0u, 228u, 229u, 0u, 0u, + 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 233u, 0u, 0u, 0u, 0u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 0u, 0u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 239u, 240u, 0u, 0u, 241u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 244u, 0u, + 0u, 245u, 246u, 0u, 247u, 0u, 0u, 248u, 0u, 0u, 0u, 249u, 0u, 250u, 0u, 251u, 0u, 0u, 252u, 0u, 253u, 0u, 0u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 255u, 0u, 256u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 259u, 0u, 260u, 0u, 0u, 0u, 261u, 0u, 262u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 264u, 0u, 0u, 0u, 0u, 0u, 265u, 266u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 268u, 0u, 269u, 0u, 0u, 0u, 0u, 270u, 0u, 271u, 0u, 0u, 0u, 272u, 0u, 0u, + 0u, 0u, 0u, 0u, 273u, 0u, 274u, 0u, 0u, 275u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 0u, 0u, 0u, 0u, 0u, 278u, 0u, 0u, 279u, 0u, 280u, + 0u, 281u, 0u, 0u, 0u, 282u, 283u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 284u, 0u, 285u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 286u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 287u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 293u, 0u, 294u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 296u, 0u, 0u, 297u, + 0u, 0u, 298u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 301u, + 0u, 302u, 303u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, + 0u, 305u, 0u, 306u, 0u, 0u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 0u, 0u, 0u, 309u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 311u, 0u, 0u, 312u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, 315u, 0u, 316u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 318u, 0u, 0u, 319u, 0u, 0u, + 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 323u, 0u, 324u, 0u, + 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 326u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 329u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 335u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 338u, 0u, 0u, 0u, 0u, 0u, 0u, 339u, 0u, 340u, 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 342u, 0u, + 343u, 0u, 0u, 0u, 344u, 0u, 345u, 0u, 346u, 0u, 347u, 0u, 0u, 0u, 348u, 0u, 349u, 0u, 0u, 350u, 0u, 0u, 0u, 0u, 0u, 0u, 351u, 0u, 0u, 352u, 0u, 353u, + 0u, 0u, 354u, 0u, 355u, 0u, 356u, 0u, 357u, 0u, 0u, 358u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 359u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 360u, + 0u, 0u, 0u, 361u, 0u, 0u, 362u, 0u, 0u, 363u, 0u, 364u, 0u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 367u, 0u, + 0u, 0u, 368u, 0u, 369u, 0u, 370u, 0u, 0u, 0u, 371u, 0u, 372u, 373u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 376u, 0u, 377u, 0u, + 0u, 0u, 378u, 0u, 379u, 0u, 380u, 0u, 0u, 381u, 0u, 382u, 0u, 383u, 0u, 0u, 0u, 384u, 0u, 0u, 385u, 0u, 386u, 0u, 0u, 0u, 387u, 0u, 0u, 0u, 388u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 390u, 0u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 392u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 393u, 0u, 394u, 0u, 395u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 397u, 0u, 398u, 0u, 0u, 0u, + 0u, 0u, 399u, 0u, 400u, 0u, 0u, 0u, 0u, 0u, 401u, 0u, 402u, 0u, 0u, 403u, 404u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 405u, 0u, 0u, 0u, 0u, 0u, 0u, 406u, + 0u, 0u, 407u, 0u, 0u, 408u, 0u, 409u, 0u, 410u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, 412u, 0u, 413u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 414u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 416u, 0u, 0u, 417u, 0u, 0u, + 418u, 0u, 419u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 422u, 0u, 423u, 0u, 0u, + 0u, 424u, 0u, 425u, 0u, 0u, 426u, 0u, 0u, 0u, 427u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 429u, 430u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 432u, 0u, 0u, 0u, 433u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 0u, 437u, 0u, + 438u, 0u, 439u, 0u, 0u, 0u, 0u, 0u, 440u, 0u, 441u, 0u, 442u, 0u, 0u, 0u, 0u, 443u, 444u, 0u, 0u, 0u, 445u, 0u, 446u, 0u, 447u, 0u, 448u, 0u, 449u, 0u, + 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, 453u, 0u, 454u, 0u, 455u, 0u, 456u, 0u, + 457u, 0u, 458u, 0u, 459u, 0u, 0u, 460u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, 464u, 0u, 465u, 0u, 466u, 0u, + 467u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, 0u, 469u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, 471u, 0u, 472u, 0u, 0u, 473u, 0u, 474u, 0u, 475u, 0u, 476u, 0u, + 477u, 0u, 0u, 0u, 478u, 0u, 479u, 0u, 480u, 0u, 481u, 0u, 482u, 0u, 483u, 0u, 0u, 484u, 485u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, + 487u, 0u, 0u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 489u, 0u, 0u, 0u, 0u, 490u, 0u, 491u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, + 0u, 494u, 0u, 495u, 0u, 0u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 0u, 498u, 0u, 499u, 500u, 0u, 0u, 501u, 0u, + 0u, 502u, 503u, 504u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 509u, + 0u, 0u, 510u, 0u, 0u, 511u, 0u, 0u, 0u, 512u, 0u, 513u, 0u, 514u, 0u, 0u, 515u, 0u, 516u, 0u, 517u, 0u, 0u, 0u, 0u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, + 519u, 0u, 0u, 0u, 0u, 0u, 520u, 0u, 0u, 0u, 0u, 0u, 521u, 0u, 0u, 522u, 523u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 525u, 0u, 526u, 0u, 527u, 0u, 528u, 0u, + 0u, 529u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, 0u, 0u, 0u, 532u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 0u, 534u, 0u, 0u, 535u, 0u, 0u, 536u, + 0u, 0u, 0u, 0u, 0u, 537u, 0u, 0u, 538u, 0u, 0u, 0u, 0u, 539u, 0u, 0u, 540u, 0u, 0u, 0u, 0u, 541u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 543u, 0u, 0u, + 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 0u, 0u, 546u, 0u, 547u, 0u, 0u, 548u, 0u, 0u, 0u, 549u, 0u, 550u, 0u, 0u, 0u, + 551u, 0u, 552u, 0u, 553u, 0u, 0u, 0u, 554u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 0u, 556u, 0u, 0u, 557u, 0u, 558u, 0u, + 559u, 0u, 560u, 0u, 561u, 0u, 562u, 0u, 0u, 0u, 0u, 563u, 0u, 0u, 564u, 0u, 0u, 565u, 0u, 0u, 566u, 0u, 567u, 0u, 0u, 0u, 568u, 569u, 0u, 570u, 0u, 0u, + 571u, 0u, 0u, 0u, 0u, 0u, 572u, 573u, 0u, 0u, 0u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 576u, 0u, 0u, 0u, 577u, 0u, 0u, + 0u, 578u, 0u, 0u, 0u, 579u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 582u, 0u, 0u, 583u, 0u, 0u, 0u, 584u, 0u, 0u, 0u, 585u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 0u, + 0u, 0u, 588u, 0u, 0u, 589u, 0u, 0u, 590u, 0u, 0u, 0u, 0u, 591u, 0u, 0u, 592u, 0u, 593u, 0u, 0u, 0u, 0u, 0u, 594u, 0u, 595u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 596u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 597u, 598u, 0u, 0u, 599u, 0u, 0u, 0u, 600u, 0u, 601u, 602u, 0u, 0u, + 0u, 0u, 0u, 603u, 0u, 0u, 0u, 0u, 0u, 604u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 606u, 0u, 0u, 0u, 607u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 608u, 0u, 0u, 0u, 0u, 0u, 609u, 0u, 0u, 0u, 0u, 610u, 0u, 0u, 0u, 611u, 0u, 0u, 0u, 0u, 0u, 612u, 613u, 0u, 0u, + 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 616u, 0u, 617u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 618u, 0u, + 0u, 619u, 620u, 621u, 0u, 622u, 0u, 0u, 623u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 624u, 0u, 625u, 0u, 0u, 0u, 626u, 0u, 627u, 0u, 628u, 0u, 629u, 0u, 0u, + 630u, 0u, 631u, 0u, 632u, 0u, 0u, 633u, 0u, 634u, 0u, 635u, 0u, 0u, 0u, 636u, 0u, 637u, 0u, 638u, 0u, 639u, 0u, 0u, 640u, 0u, 641u, 0u, 642u, 0u, 0u, 643u, + 644u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 646u, 0u, 0u, 647u, 0u, 648u, 0u, 649u, 0u, 650u, 0u, 0u, 0u, 0u, 651u, 0u, + 0u, 652u, 0u, 0u, 653u, 0u, 0u, 654u, 0u, 655u, 0u, 0u, 0u, 656u, 657u, 0u, 658u, 0u, 0u, 0u, 659u, 0u, 660u, 0u, 661u, 0u, 0u, 662u, 0u, 663u, 0u, 664u, + 0u, 0u, 0u, 665u, 0u, 666u, 0u, 667u, 0u, 0u, 668u, 0u, 669u, 0u, 670u, 0u, 671u, 0u, 672u, 0u, 0u, 0u, 673u, 0u, 674u, 0u, 675u, 0u, 676u, 0u, 0u, 677u, + 0u, 678u, 0u, 679u, 680u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 682u, 0u, 0u, 0u, 0u, 0u, + 683u, 0u, 0u, 0u, 0u, 0u, 0u, 684u, 685u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 686u, 0u, 0u, 687u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 688u, 0u, 0u, 0u, 0u, 689u, 0u, 0u, 690u, 0u, 691u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 692u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 693u, 0u, 694u, 0u, 0u, 0u, 695u, 0u, 0u, 0u, 0u, 696u, 0u, 697u, 0u, 0u, 698u, 0u, 699u, 0u, 0u, + 700u, 0u, 0u, 0u, 0u, 0u, 0u, 701u, 0u, 0u, 0u, 702u, 0u, 703u, 0u, 704u, 0u, 705u, 706u, 0u, 707u, 0u, 708u, 0u, 0u, 0u, 0u, 709u, 0u, 0u, 0u, 0u, + 710u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 713u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 714u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 715u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 717u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 0u, 719u, 0u, 0u, 720u, + 0u, 0u, 0u, 0u, 721u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, 723u, 0u, 724u, 0u, 0u, 0u, 0u, 0u, 725u, 0u, 0u, 0u, 0u, + 726u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 727u, 0u, 0u, 728u, 0u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 0u, 730u, 0u, 0u, 0u, 0u, + 731u, 732u, 0u, 0u, 0u, 0u, 733u, 0u, 734u, 0u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 0u, 736u, 0u, 0u, 0u, 737u, 0u, 0u, 0u, 0u, 0u, 738u, 0u, 0u, 0u, + 0u, 739u, 0u, 0u, 740u, 0u, 741u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 742u, 0u, 0u, 743u, 0u, 0u, 0u, 0u, 744u, 0u, + 745u, 0u, 0u, 0u, 0u, 746u, 0u, 747u, 0u, 0u, 0u, 0u, 0u, 748u, 0u, 0u, 0u, 749u, 0u, 0u, 0u, 0u, 750u, 0u, 0u, 0u, 0u, 0u, 751u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 752u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 753u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 754u, 0u, 0u, 755u, + 0u, 0u, 0u, 0u, 0u, 756u, 0u, 757u, 0u, 0u, 0u, 0u, 0u, 758u, 0u, 0u, 759u, 0u, 760u, 0u, 0u, 0u, 0u, 0u, 761u, 0u, 0u, 0u, 0u, 0u, 762u, 0u, + 763u, 0u, 0u, 764u, 0u, 0u, 0u, 0u, 0u, 765u, 0u, 766u, 0u, 0u, 0u, 0u, 767u, 0u, 0u, 768u, 769u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 770u, 0u, 0u, + 771u, 0u, 772u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 0u, 0u, 0u, 774u, 0u, 775u, 0u, 0u, 0u, 776u, 0u, 777u, 0u, 0u, 0u, 0u, 778u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 779u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 780u, 0u, 0u, 781u, 0u, 0u, 0u, 0u, 0u, 0u, 782u, 783u, 0u, 784u, 0u, 0u, 785u, 0u, 0u, 0u, 0u, + 786u, 0u, 0u, 0u, 0u, 787u, 788u, 789u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 790u, 0u, 791u, 0u, 0u, 0u, 0u, 0u, 0u, 792u, 0u, 0u, 793u, 0u, 0u, 0u, 0u, 0u, 0u, 794u, 0u, 795u, 0u, 0u, 0u, 0u, 796u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 797u, 0u, 0u, 0u, 798u, 0u, 0u, 0u, 0u, 799u, 0u, 0u, 0u, 0u, 800u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 801u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 802u, 0u, 803u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 804u, 0u, 0u, 0u, 0u, 0u, 805u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 806u, 0u, 0u, 807u, 0u, 808u, 0u, 809u, 0u, 810u, 0u, 0u, 0u, 0u, 811u, 0u, 0u, 0u, 0u, 812u, 0u, 0u, 0u, + 0u, 813u, 0u, 0u, 814u, 0u, 0u, 0u, 815u, 816u, 0u, 817u, 0u, 0u, 0u, 818u, 0u, 0u, 819u, 820u, 821u, 0u, 822u, 0u, 823u, 0u, 824u, 0u, 0u, 0u, 825u, 0u, + 0u, 826u, 827u, 828u, 0u, 829u, 0u, 0u, 0u, 830u, 0u, 0u, 0u, 0u, 0u, 831u, 0u, 0u, 0u, 832u, 0u, 833u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 834u, 0u, 0u, + 0u, 0u, 0u, 835u, 0u, 0u, 0u, 836u, 0u, 0u, 837u, 0u, 0u, 838u, 0u, 0u, 839u, 0u, 840u, 0u, 841u, 0u, 0u, 842u, 0u, 0u, 0u, 0u, 843u, 0u, 0u, 844u, +}; void recomp_unit_0084_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,6,29,16,31 fprs=12,13,20,15 gpr_occ=4722 fpr_occ=150 gpr_total=6322 fpr_total=155 @@ -59,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08954000u; - entry_id = 0u; - if (entry_delta < 16384u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0084[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0084[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16384u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0084[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08954000; @@ -923,6 +1046,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08954000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1409,8 +1556,8 @@ L_089542F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954310: @@ -1468,8 +1615,8 @@ L_08954384: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895439C: @@ -1541,8 +1688,21 @@ L_08954428: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_31 = (0x08954440u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 85u, 0x08954440u, 0x08A3CC2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 164u, 0x08A3CC2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954440u) goto L_08954440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954440: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.gpr[19] = (ctx.gpr[22] | 0u); @@ -1574,8 +1734,21 @@ L_0895446C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x08954484u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 89u, 0x08954484u, 0x08A3CC2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 164u, 0x08A3CC2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954484u) goto L_08954484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954484: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.gpr[19] = (ctx.gpr[22] | 0u); @@ -1625,8 +1798,8 @@ L_089544BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089544E4: @@ -1731,8 +1904,21 @@ L_08954594: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08954600u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 102u, 0x08954600u, 0x08953954u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 813u, 0x08953954u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954600u) goto L_08954600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954600: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1756,8 +1942,8 @@ L_08954608: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954624: @@ -1838,8 +2024,21 @@ L_089546C0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x089546E8u); aot_gpr_4 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 111u, 0x089546E8u, 0x08B6BC84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 748u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 748u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 748u, 0x08B6BC84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089546E8u) goto L_089546E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089546E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1853,8 +2052,8 @@ L_089546F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954704: @@ -1908,8 +2107,8 @@ L_08954764: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954778: @@ -1949,8 +2148,8 @@ L_089547B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089547C8: @@ -1972,8 +2171,21 @@ L_089547C8: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x08954810u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 127u, 0x08954810u, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954810u) goto L_08954810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954810: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2016,16 +2228,42 @@ L_08954810: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0895485Cu); aot_gpr_6 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 128u, 0x0895485Cu, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895485Cu) goto L_0895485C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895485C: ctx.gpr[21] = (aot_gpr_29 + static_cast(80)); aot_gpr_5 = (2246u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(1408)); aot_gpr_31 = (0x08954870u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 129u, 0x08954870u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954870u) goto L_08954870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954870: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2088,8 +2326,21 @@ L_08954870: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (0x089548ACu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 130u, 0x089548ACu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089548ACu) goto L_089548AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089548AC: aot_gpr_4 = (15360u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); @@ -2101,8 +2352,21 @@ L_089548AC: aot_gpr_5 = (0u | 61u); aot_gpr_31 = (0x089548D4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 131u, 0x089548D4u, 0x08953B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 830u, 0x08953B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089548D4u) goto L_089548D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089548D4: aot_gpr_4 = (2816u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); @@ -2150,8 +2414,21 @@ L_08954950: L_0895495C: aot_gpr_31 = (0x08954964u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 134u, 0x08954964u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954964u) goto L_08954964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954964: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); @@ -2162,8 +2439,8 @@ L_08954964: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(232))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954988: @@ -2246,8 +2523,8 @@ L_08954A10: goto L_08954A18; L_08954A18: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954A20: @@ -2257,8 +2534,21 @@ L_08954A20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08954A3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 149u, 0x08954A3Cu, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954A3Cu) goto L_08954A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954A3C: ctx.gpr[17] = (0u | 0u); goto L_08954A40; @@ -2285,8 +2575,8 @@ L_08954A60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954A74: @@ -2436,8 +2726,8 @@ L_08954B68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954B84: @@ -2529,8 +2819,8 @@ L_08954C10: goto L_08954C14; L_08954C14: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954C1C: @@ -2556,8 +2846,8 @@ L_08954C30: L_08954C3C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8144), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954C44: @@ -2603,8 +2893,21 @@ L_08954C70: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08954CD4u); ctx.gpr[8] = (0u | 59u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 193u, 0x08954CD4u, 0x0895BAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 527u, 0x0895BAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954CD4u) goto L_08954CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954CD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_5 = (2816u << 16u); @@ -2723,8 +3026,8 @@ L_08954DD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954DE8: @@ -2767,8 +3070,8 @@ L_08954E3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954E4C: @@ -2818,8 +3121,8 @@ L_08954EBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954ED0: @@ -2894,8 +3197,8 @@ L_08954F64: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08954F80: @@ -2958,8 +3261,21 @@ L_08954FD4: L_08954FE8: aot_gpr_31 = (0x08954FF0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 228u, 0x08954FF0u, 0x08A3CC80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 167u, 0x08A3CC80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08954FF0u) goto L_08954FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08954FF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); goto L_08954FF4; @@ -2981,8 +3297,8 @@ L_08955008: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955020: @@ -2998,8 +3314,8 @@ L_08955020: aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1456), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955050: @@ -3016,8 +3332,8 @@ L_08955050: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(193), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955084: @@ -3028,8 +3344,8 @@ L_08955084: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089550A0: @@ -3041,8 +3357,8 @@ L_089550A0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089550C0: @@ -3068,8 +3384,21 @@ L_089550C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x08955118u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(20640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 236u, 0x08955118u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955118u) goto L_08955118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955118: ctx.gpr[18] = (aot_gpr_16 + static_cast(520)); ctx.gpr[7] = (2197u << 16u); @@ -3078,8 +3407,21 @@ L_08955118: aot_gpr_6 = (0u | 20u); aot_gpr_31 = (0x08955134u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(20612)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 237u, 0x08955134u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955134u) goto L_08955134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955134: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(604), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(608), 0u); @@ -3092,8 +3434,21 @@ L_08955134: aot_gpr_6 = (0u | 208u); aot_gpr_31 = (0x08955160u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(20560)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 238u, 0x08955160u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955160u) goto L_08955160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955160: aot_gpr_4 = (0u | 8192u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1460), aot_gpr_4); @@ -3144,8 +3499,21 @@ L_089551A0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089551ECu); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 243u, 0x089551ECu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089551ECu) goto L_089551EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089551EC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3159,8 +3527,21 @@ L_089551F8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08955204u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 245u, 0x08955204u, 0x08B6BCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 749u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 749u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 749u, 0x08B6BCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955204u) goto L_08955204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955204: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_08955208; @@ -3231,8 +3612,21 @@ L_08955260: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08955280u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 255u, 0x08955280u, 0x08953BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 831u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 831u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 831u, 0x08953BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955280u) goto L_08955280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955280: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); ctx.gpr[20] = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(301))); @@ -3284,8 +3678,21 @@ L_089552C8: L_089552D0: aot_gpr_31 = (0x089552D8u); aot_gpr_4 = (0u | 12288u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 263u, 0x089552D8u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089552D8u) goto L_089552D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089552D8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(11764), ctx.gpr[2]); ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -3297,8 +3704,8 @@ L_089552D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955300: @@ -3382,8 +3789,8 @@ L_08955374: } L_08955390: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955398: @@ -3472,8 +3879,8 @@ L_08955418: } L_0895543C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955444: @@ -3515,8 +3922,8 @@ L_08955474: goto L_089554A0; L_089554A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089554A8: @@ -3664,8 +4071,21 @@ L_08955594: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089555F4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 300u, 0x089555F4u, 0x0895A760u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 362u, 0x0895A760u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089555F4u) goto L_089555F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089555F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3719,8 +4139,21 @@ L_08955674: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08955684u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 305u, 0x08955684u, 0x0895A760u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 362u, 0x0895A760u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955684u) goto L_08955684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955684: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3778,8 +4211,21 @@ L_089556D4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_31 = (0x08955700u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 311u, 0x08955700u, 0x0895A760u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 362u, 0x0895A760u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955700u) goto L_08955700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955700: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3804,16 +4250,42 @@ L_0895570C: aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); aot_gpr_31 = (0x08955744u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 313u, 0x08955744u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955744u) goto L_08955744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955744: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08955758u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 314u, 0x08955758u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955758u) goto L_08955758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955758: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), aot_gpr_4); @@ -3860,8 +4332,8 @@ L_089557B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089557E8: @@ -3878,8 +4350,8 @@ L_089557F4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8760))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895580C: @@ -4095,8 +4567,8 @@ L_08955A58: goto L_08955AC4; L_08955AC4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955ACC: @@ -4113,8 +4585,8 @@ L_08955AD8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8728))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955AF0: @@ -4306,8 +4778,8 @@ L_08955D2C: goto L_08955D48; L_08955D48: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955D50: @@ -4381,8 +4853,8 @@ L_08955DC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955DCC: @@ -4456,8 +4928,21 @@ L_08955E2C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(644))); aot_gpr_31 = (0x08955E58u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 359u, 0x08955E58u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955E58u) goto L_08955E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955E58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(624))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(600))); @@ -4468,15 +4953,41 @@ L_08955E58: ctx.gpr[7] = (0u | 500u); aot_gpr_31 = (0x08955E7Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 360u, 0x08955E7Cu, 0x089390ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 274u, 0x089390ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955E7Cu) goto L_08955E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955E7C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(628), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[28] + static_cast(-17760)); aot_gpr_31 = (0x08955E8Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 361u, 0x08955E8Cu, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955E8Cu) goto L_08955E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955E8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(616))); aot_gpr_31 = (0x08955E98u); @@ -4499,8 +5010,8 @@ L_08955EAC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08955EC0: @@ -4554,8 +5065,21 @@ L_08955F18: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08955F28u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 371u, 0x08955F28u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955F28u) goto L_08955F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955F28: aot_gpr_31 = (0x08955F30u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-17788)); @@ -4567,8 +5091,21 @@ L_08955F30: L_08955F34: aot_gpr_31 = (0x08955F3Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 374u, 0x08955F3Cu, 0x0882DFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 424u, 0x0882DFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08955F3Cu) goto L_08955F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08955F3C: aot_gpr_4 = (0u | 3u); { const std::int32_t dividend = static_cast(ctx.gpr[17]); const std::int32_t divisor = static_cast(aot_gpr_4); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } @@ -4851,8 +5388,8 @@ L_08956140: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956160: @@ -4930,8 +5467,21 @@ L_089561D0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(644))); aot_gpr_31 = (0x089561FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 414u, 0x089561FCu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089561FCu) goto L_089561FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089561FC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(632))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(596))); @@ -4956,15 +5506,41 @@ L_089561FC: ctx.gpr[7] = (0u | 500u); aot_gpr_31 = (0x08956258u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 415u, 0x08956258u, 0x089390ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 274u, 0x089390ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956258u) goto L_08956258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956258: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(628), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[28] + static_cast(-17748)); aot_gpr_31 = (0x08956268u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 416u, 0x08956268u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956268u) goto L_08956268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956268: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(616))); aot_gpr_31 = (0x08956274u); @@ -4987,8 +5563,8 @@ L_08956288: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895629C: @@ -5053,8 +5629,21 @@ L_08956318: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x08956328u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 427u, 0x08956328u, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956328u) goto L_08956328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956328: aot_gpr_6 = (ctx.gpr[2] | 0u); { const bool branch_taken = 0u == 0u; @@ -5121,8 +5710,8 @@ L_0895639C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089563C0: @@ -5137,8 +5726,21 @@ L_089563C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089563ECu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 436u, 0x089563ECu, 0x08939174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 282u, 0x08939174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089563ECu) goto L_089563EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089563EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(628))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -5252,8 +5854,21 @@ L_08956488: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089564BCu); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 451u, 0x089564BCu, 0x08A313ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 291u, 0x08A313ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089564BCu) goto L_089564BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089564BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -5371,8 +5986,8 @@ L_08956580: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956594: @@ -5441,16 +6056,42 @@ L_08956600: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(613), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08956610u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(628))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 478u, 0x08956610u, 0x08939138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 278u, 0x08939138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956610u) goto L_08956610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956610: aot_gpr_31 = (0x08956618u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_089569A0; L_08956618: aot_gpr_31 = (0x08956620u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 480u, 0x08956620u, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956620u) goto L_08956620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956620: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5460,8 +6101,21 @@ L_08956620: } L_08956628: aot_gpr_31 = (0x08956630u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 482u, 0x08956630u, 0x089392F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 310u, 0x089392F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956630u) goto L_08956630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956630: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(600))); @@ -5502,8 +6156,8 @@ L_08956680: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956690: @@ -5653,14 +6307,14 @@ L_08956794: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089567B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089567C0: @@ -5728,16 +6382,55 @@ L_0895682C: L_08956834: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-8707), static_cast(0u)); aot_gpr_31 = (0x08956840u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 515u, 0x08956840u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956840u) goto L_08956840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956840: aot_gpr_31 = (0x08956848u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 516u, 0x08956848u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956848u) goto L_08956848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956848: aot_gpr_31 = (0x08956850u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 517u, 0x08956850u, 0x08934DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 206u, 0x08934DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956850u) goto L_08956850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956850: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(596))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -5846,8 +6539,8 @@ L_0895690C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956924: @@ -5888,8 +6581,8 @@ L_08956970: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895697C: @@ -5905,8 +6598,8 @@ L_08956994: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089569A0: @@ -5921,8 +6614,8 @@ L_089569B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089569C0: @@ -5937,8 +6630,8 @@ L_089569D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089569E0: @@ -5953,8 +6646,8 @@ L_089569F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956A00: @@ -5981,8 +6674,21 @@ L_08956A34: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08956A44u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 546u, 0x08956A44u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956A44u) goto L_08956A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956A44: aot_gpr_31 = (0x08956A4Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-17788)); @@ -5992,8 +6698,21 @@ L_08956A4C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08956A58u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 548u, 0x08956A58u, 0x0882DFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 424u, 0x0882DFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956A58u) goto L_08956A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956A58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -6202,8 +6921,8 @@ L_08956B9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956BB8: @@ -6244,8 +6963,8 @@ L_08956C04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956C14: @@ -6273,8 +6992,8 @@ L_08956C3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956C6C: @@ -6315,8 +7034,8 @@ L_08956CB8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956CC8: @@ -6399,8 +7118,8 @@ L_08956D68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956D88: @@ -6479,8 +7198,8 @@ L_08956E24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956E48: @@ -6493,15 +7212,28 @@ L_08956E48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08956E6Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 606u, 0x08956E6Cu, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956E6Cu) goto L_08956E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956E6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956E7C: @@ -6548,8 +7280,21 @@ L_08956ED8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_31 = (0x08956EF0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 612u, 0x08956EF0u, 0x08A3CC2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 164u, 0x08A3CC2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08956EF0u) goto L_08956EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08956EF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); goto L_08956EF4; @@ -6571,8 +7316,8 @@ L_08956F08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956F20: @@ -6583,15 +7328,15 @@ L_08956F20: aot_gpr_4 = (aot_gpr_4 << 2u); ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956F40: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08956F48: @@ -6803,8 +7548,8 @@ L_08957080: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08957098: @@ -7080,8 +7825,8 @@ L_08957210: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08957228: @@ -7176,8 +7921,21 @@ L_08957320: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08957344u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 686u, 0x08957344u, 0x0895A760u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 362u, 0x0895A760u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957344u) goto L_08957344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957344: aot_gpr_5 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -7202,16 +7960,42 @@ L_08957350: aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); aot_gpr_31 = (0x08957388u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 688u, 0x08957388u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957388u) goto L_08957388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957388: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0895739Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 689u, 0x0895739Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895739Cu) goto L_0895739C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895739C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), aot_gpr_4); @@ -7258,14 +8042,14 @@ L_089573F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895742C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08957434: @@ -7309,8 +8093,8 @@ L_08957474: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08957480: @@ -7371,8 +8155,8 @@ L_089574D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089574EC: @@ -7381,8 +8165,8 @@ L_089574EC: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08957500: @@ -7583,22 +8367,22 @@ L_089576B8: L_089576E4: ctx.gpr[2] = (0u + static_cast(2)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089576F0: ctx.gpr[2] = (0u + static_cast(0)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089576FC: ctx.gpr[2] = (0u + static_cast(1)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08957710: @@ -7637,8 +8421,21 @@ L_08957754: aot_gpr_5 = (aot_gpr_5 + static_cast(15808)); aot_gpr_31 = (0x0895776Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 725u, 0x0895776Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895776Cu) goto L_0895776C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895776C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(36), ctx.gpr[2]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(580))); @@ -7700,8 +8497,21 @@ L_089577EC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08957800u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 731u, 0x08957800u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957800u) goto L_08957800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957800: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(580))); goto L_08957804; @@ -7729,8 +8539,21 @@ L_08957820: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08957838u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 735u, 0x08957838u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957838u) goto L_08957838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957838: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 0u); @@ -7743,8 +8566,21 @@ L_08957848: aot_gpr_5 = (aot_gpr_4 << 2u); aot_gpr_31 = (0x08957858u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 737u, 0x08957858u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957858u) goto L_08957858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957858: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1440), ctx.gpr[2]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1460))); @@ -7810,8 +8646,21 @@ L_089578E4: aot_gpr_6 = (aot_gpr_6 + static_cast(-12432)); aot_gpr_31 = (0x089578F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 744u, 0x089578F8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089578F8u) goto L_089578F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089578F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7860,8 +8709,21 @@ L_08957944: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08957958u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 750u, 0x08957958u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957958u) goto L_08957958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957958: aot_gpr_5 = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); @@ -7898,8 +8760,8 @@ L_08957994: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089579B4: @@ -8061,13 +8923,39 @@ L_08957AF4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24), 0u); aot_gpr_31 = (0x08957B00u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(624))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 771u, 0x08957B00u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B00u) goto L_08957B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B00: aot_gpr_31 = (0x08957B08u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 772u, 0x08957B08u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B08u) goto L_08957B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B08: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -8075,8 +8963,21 @@ L_08957B08: ctx.gpr[21] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08957B20u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 773u, 0x08957B20u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B20u) goto L_08957B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B20: aot_gpr_4 = (ctx.gpr[2] + static_cast(15)); aot_gpr_5 = (0u + static_cast(-16)); @@ -8084,33 +8985,98 @@ L_08957B20: ctx.gpr[21] = (ctx.gpr[21] - aot_gpr_4); aot_gpr_31 = (0x08957B38u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 774u, 0x08957B38u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B38u) goto L_08957B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B38: aot_gpr_31 = (0x08957B40u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 775u, 0x08957B40u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B40u) goto L_08957B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B40: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08957B50u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 776u, 0x08957B50u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B50u) goto L_08957B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B50: aot_gpr_31 = (0x08957B58u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 777u, 0x08957B58u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B58u) goto L_08957B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); ctx.gpr[7] = (aot_gpr_16 + static_cast(8)); aot_gpr_31 = (0x08957B6Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 778u, 0x08957B6Cu, 0x0893681Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 694u, 0x0893681Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B6Cu) goto L_08957B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B6C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_6 = (0u | 0u); @@ -8120,8 +9086,21 @@ L_08957B6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08957B8Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 779u, 0x08957B8Cu, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957B8Cu) goto L_08957B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957B8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24), ctx.gpr[2]); @@ -8157,8 +9136,21 @@ L_08957BD4: L_08957BD8: aot_gpr_31 = (0x08957BE0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 784u, 0x08957BE0u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957BE0u) goto L_08957BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957BE0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(624), ctx.gpr[2]); aot_gpr_31 = (0x08957BECu); @@ -8234,14 +9226,40 @@ L_08957C88: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x08957CA4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 792u, 0x08957CA4u, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957CA4u) goto L_08957CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957CA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08957CB0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 793u, 0x08957CB0u, 0x08953F94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 887u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 887u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 887u, 0x08953F94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957CB0u) goto L_08957CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957CB0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(12), 0u); aot_gpr_5 = (0u | 0u); @@ -8321,8 +9339,8 @@ L_08957D48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08957D74: @@ -8340,8 +9358,21 @@ L_08957D74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(260), aot_gpr_31); ctx.gpr[21] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08957DB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 802u, 0x08957DB0u, 0x08A0721Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 747u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 747u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 747u, 0x08A0721Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957DB0u) goto L_08957DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957DB0: aot_gpr_31 = (0x08957DB8u); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -8356,8 +9387,21 @@ L_08957DB8: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x08957DDCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 804u, 0x08957DDCu, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957DDCu) goto L_08957DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957DDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(580))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(588))); @@ -8627,8 +9671,21 @@ L_08957FA8: aot_gpr_16 = (aot_gpr_16 + static_cast(32304)); aot_gpr_31 = (0x08957FB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 838u, 0x08957FB4u, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957FB4u) goto L_08957FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957FB4: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -8640,8 +9697,21 @@ L_08957FB4: L_08957FC0: aot_gpr_31 = (0x08957FC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0084->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0084_entry, 840u, 0x08957FC8u, 0x08A1C650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 55u, 0x08A1C650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08957FC8u) goto L_08957FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08957FC8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0085.cpp b/profiles/vcs/generated/generated_unit_0085.cpp index 36de0a3..e5ebd09 100644 --- a/profiles/vcs/generated/generated_unit_0085.cpp +++ b/profiles/vcs/generated/generated_unit_0085.cpp @@ -33,6 +33,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0085[64] = { 312u, 325u, 332u, 336u, 341u, 354u, 359u, 359u, 364u, 367u, 378u, 391u, 400u, 402u, 410u, 416u, 424u, 429u, 436u, 445u, 453u, 465u, 477u, 490u, 501u, 516u, 527u, 528u, 529u, 548u, 561u, 576u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0085[4079] = { + 1u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 0u, 0u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 12u, 13u, 0u, 0u, 14u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 15u, 0u, 0u, 0u, 0u, + 16u, 0u, 0u, 0u, 0u, 0u, 0u, 17u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 20u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 22u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 23u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 25u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 27u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 30u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 31u, 0u, 0u, 32u, + 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 35u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 38u, 0u, 39u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 41u, 0u, 42u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 0u, 0u, 44u, 0u, 45u, + 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 51u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 53u, 0u, 0u, 54u, 0u, 0u, 0u, 55u, 0u, 0u, 56u, + 0u, 57u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 59u, 0u, 60u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 63u, 0u, 0u, 0u, 64u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 66u, 0u, 67u, 0u, 68u, 0u, 0u, + 69u, 0u, 70u, 0u, 0u, 71u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 72u, 0u, 0u, 0u, 0u, 73u, 0u, 0u, 74u, 0u, 0u, 75u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 77u, 0u, 78u, 0u, 79u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 84u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 85u, 0u, 86u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, + 0u, 0u, 90u, 0u, 91u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 93u, 0u, 94u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 0u, 97u, 0u, 0u, 0u, 0u, 98u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 100u, 0u, 0u, 0u, 101u, + 0u, 102u, 0u, 0u, 0u, 103u, 0u, 0u, 104u, 0u, 105u, 0u, 106u, 0u, 0u, 0u, 0u, 107u, 0u, 0u, 0u, 108u, 0u, 0u, 0u, 109u, 0u, 0u, 0u, 110u, 0u, 0u, + 111u, 0u, 112u, 0u, 113u, 0u, 114u, 0u, 115u, 0u, 116u, 0u, 0u, 117u, 0u, 118u, 0u, 119u, 0u, 120u, 0u, 121u, 0u, 122u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 123u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 124u, 0u, 125u, 0u, 126u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 128u, 129u, 0u, 130u, 0u, + 0u, 131u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 0u, 136u, 0u, 0u, + 0u, 0u, 0u, 137u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 138u, 0u, 139u, 0u, 140u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 141u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 143u, 0u, 0u, 0u, 0u, 144u, 0u, 145u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 147u, + 0u, 148u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, 0u, 150u, 151u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 153u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 154u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 155u, 0u, 156u, 0u, 0u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 158u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 161u, 0u, 0u, 0u, + 0u, 162u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 164u, 0u, 0u, 165u, 0u, 166u, 0u, 0u, 167u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 168u, + 0u, 0u, 169u, 0u, 0u, 170u, 0u, 0u, 171u, 0u, 172u, 0u, 173u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 174u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 175u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 177u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 179u, + 0u, 0u, 0u, 0u, 180u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 181u, 0u, 182u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 183u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 184u, 0u, 0u, 0u, 0u, 185u, 0u, 0u, 186u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 188u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 189u, 0u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 0u, 191u, 0u, 192u, 0u, 0u, 0u, 193u, 0u, 194u, 0u, + 0u, 0u, 0u, 0u, 0u, 195u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 198u, 0u, 0u, 0u, 199u, 0u, 200u, 201u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 202u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 204u, 0u, 205u, 0u, 206u, 0u, + 207u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, 0u, 0u, 210u, 0u, 0u, 211u, 0u, 212u, 0u, 213u, 0u, 214u, 0u, 0u, 0u, + 0u, 0u, 0u, 215u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 218u, 0u, 219u, 0u, 220u, 0u, 0u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, + 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 224u, 0u, 0u, 0u, 0u, 0u, 225u, 0u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 227u, 0u, 228u, 0u, 229u, 0u, + 0u, 0u, 0u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, 233u, 0u, 0u, 234u, 0u, 235u, 0u, 236u, + 0u, 0u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 239u, 0u, 0u, 240u, 0u, 241u, 0u, 0u, 0u, 0u, 0u, + 242u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 0u, 244u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 247u, 0u, 248u, 0u, 249u, 0u, 250u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 253u, + 0u, 0u, 0u, 0u, 0u, 254u, 0u, 0u, 255u, 0u, 256u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 0u, 0u, 0u, 259u, 0u, 0u, 0u, 0u, 0u, 260u, + 0u, 0u, 261u, 0u, 262u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 0u, 0u, 0u, 266u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, + 268u, 0u, 0u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 270u, 0u, 271u, 0u, 272u, 0u, 0u, 0u, 0u, 0u, 0u, 273u, 0u, 0u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 276u, 0u, 0u, 277u, 0u, 278u, 0u, 279u, 0u, 0u, 0u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, 0u, 0u, 281u, 0u, 0u, 0u, + 0u, 0u, 282u, 0u, 0u, 283u, 0u, 284u, 0u, 285u, 0u, 0u, 0u, 0u, 0u, 286u, 0u, 0u, 0u, 0u, 0u, 287u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 288u, + 0u, 0u, 289u, 0u, 290u, 0u, 0u, 0u, 0u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 0u, 0u, 293u, 0u, 294u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 296u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 297u, 0u, 298u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, + 0u, 0u, 0u, 300u, 0u, 0u, 301u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 305u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 306u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 307u, 0u, 0u, 308u, 0u, 0u, 0u, 309u, 0u, 310u, 311u, + 0u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 315u, 0u, 0u, 316u, 0u, 0u, 317u, 0u, + 318u, 0u, 319u, 0u, 0u, 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 322u, 0u, 323u, 0u, 0u, 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 326u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 329u, + 0u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 338u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 340u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 341u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, 345u, 0u, 0u, 346u, 0u, + 0u, 347u, 0u, 0u, 0u, 0u, 348u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 0u, 351u, 0u, 0u, 352u, 0u, 353u, 0u, 0u, 0u, 0u, + 0u, 354u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 357u, 0u, 0u, 0u, 358u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 359u, 0u, 0u, 360u, 0u, 361u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 367u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 371u, 0u, 0u, 372u, 0u, + 0u, 0u, 0u, 0u, 0u, 373u, 0u, 0u, 374u, 0u, 0u, 375u, 0u, 0u, 376u, 0u, 0u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 378u, 0u, 379u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, 0u, 381u, + 382u, 0u, 383u, 384u, 0u, 0u, 385u, 0u, 0u, 0u, 0u, 0u, 0u, 386u, 0u, 387u, 0u, 0u, 0u, 0u, 0u, 0u, 388u, 0u, 0u, 389u, 0u, 390u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 393u, 0u, 0u, 0u, 394u, 395u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 396u, 397u, 0u, 0u, 398u, 0u, 0u, 0u, 399u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 400u, 0u, 0u, 0u, 401u, + 0u, 0u, 402u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 405u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 406u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 0u, 409u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 410u, 0u, 0u, 0u, 0u, 411u, 412u, 0u, 0u, 0u, 0u, 413u, 0u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 416u, 0u, 0u, 0u, 0u, 0u, 417u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 422u, 0u, 0u, 0u, 0u, 423u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 426u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 427u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 431u, 0u, 0u, 432u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, + 0u, 0u, 0u, 0u, 436u, 0u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 441u, 0u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 443u, 0u, 0u, 444u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 446u, 0u, 0u, 0u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 0u, 448u, 0u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 452u, + 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 0u, 0u, 0u, 454u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 456u, 0u, 457u, 0u, 458u, 459u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 462u, 463u, 0u, 0u, 0u, 0u, 0u, 464u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 465u, 0u, 0u, 0u, 0u, 466u, 0u, 467u, 0u, 468u, 0u, 469u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 472u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 474u, 0u, 0u, 475u, 0u, 0u, 0u, 0u, 0u, 476u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 477u, 0u, 478u, 0u, 0u, 0u, 479u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, + 0u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 485u, 0u, 486u, 0u, 487u, 0u, 488u, 489u, 0u, 0u, 0u, 0u, + 0u, 490u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 493u, 0u, 494u, 0u, 495u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 0u, 0u, 498u, 0u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, + 0u, 0u, 501u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, 504u, 0u, 0u, 0u, 0u, 0u, 505u, 0u, 506u, 0u, 0u, 507u, 0u, 0u, 508u, 0u, 0u, + 0u, 509u, 0u, 0u, 0u, 0u, 0u, 510u, 0u, 0u, 511u, 0u, 0u, 0u, 512u, 0u, 0u, 513u, 0u, 0u, 0u, 514u, 0u, 0u, 515u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 516u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 517u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 518u, 0u, + 0u, 0u, 0u, 0u, 519u, 0u, 0u, 0u, 520u, 0u, 521u, 0u, 522u, 0u, 0u, 0u, 0u, 523u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 0u, 0u, 525u, 0u, 0u, 0u, 526u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 527u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 529u, 0u, 0u, 0u, 530u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, 532u, 0u, 0u, 533u, 0u, 0u, 0u, 534u, 0u, 0u, 0u, 535u, 536u, 0u, 537u, 0u, 0u, 0u, 0u, + 0u, 538u, 539u, 0u, 0u, 0u, 540u, 0u, 0u, 0u, 0u, 0u, 541u, 0u, 0u, 0u, 0u, 542u, 0u, 0u, 543u, 0u, 0u, 0u, 544u, 0u, 545u, 0u, 0u, 546u, 0u, 547u, + 0u, 0u, 0u, 548u, 0u, 0u, 0u, 549u, 0u, 550u, 0u, 551u, 0u, 552u, 0u, 0u, 553u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 554u, 0u, 555u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 557u, 0u, 0u, 558u, 0u, 0u, 0u, 559u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 0u, + 0u, 0u, 0u, 561u, 0u, 0u, 562u, 0u, 563u, 0u, 0u, 0u, 564u, 0u, 565u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 566u, 0u, 0u, 0u, 0u, 0u, 567u, 0u, 0u, + 568u, 0u, 569u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 573u, 574u, 0u, 575u, 0u, 0u, + 576u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, + 0u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, +}; void recomp_unit_0085_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,6,29,16,31 fprs=12,13,14,20 gpr_occ=4737 fpr_occ=408 gpr_total=6232 fpr_total=474 @@ -59,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08958004u; - entry_id = 0u; - if (entry_delta < 16316u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0085[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0085[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16316u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0085[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08958004; @@ -660,6 +783,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08958004u; + if (local_delta_v813 >= 16316u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -806,8 +953,21 @@ L_08958134: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08958140u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 12u, 0x08958140u, 0x08955020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 231u, 0x08955020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958140u) goto L_08958140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958140: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), 0u); goto L_08958144; @@ -850,8 +1010,21 @@ L_08958184: aot_gpr_6 = (aot_gpr_6 | ctx.gpr[23]); aot_gpr_31 = (0x089581A0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 17u, 0x089581A0u, 0x08956D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 596u, 0x08956D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089581A0u) goto L_089581A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089581A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(584))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_16)); @@ -975,8 +1148,21 @@ L_089582A4: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x089582B4u); aot_gpr_5 = (aot_gpr_5 & 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 29u, 0x089582B4u, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089582B4u) goto L_089582B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089582B4: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 65535u); @@ -1099,8 +1285,21 @@ L_08958398: L_089583B8: aot_gpr_31 = (0x089583C0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 42u, 0x089583C0u, 0x0895742Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 693u, 0x0895742Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089583C0u) goto L_089583C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089583C0: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (16256u << 16u); @@ -1358,8 +1557,21 @@ L_08958474: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089585ECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 50u, 0x089585ECu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089585ECu) goto L_089585EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089585EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); @@ -1369,8 +1581,21 @@ L_089585EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0895860Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 51u, 0x0895860Cu, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895860Cu) goto L_0895860C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895860C: ctx.gpr[23] = (aot_gpr_16 + static_cast(80)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(4))); @@ -1411,8 +1636,21 @@ L_0895860C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089586A8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 52u, 0x089586A8u, 0x08953954u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 813u, 0x08953954u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089586A8u) goto L_089586A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089586A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -1435,8 +1673,21 @@ L_089586D8: aot_gpr_4 = (aot_gpr_16 + static_cast(112)); aot_gpr_31 = (0x089586E4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 54u, 0x089586E4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089586E4u) goto L_089586E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089586E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1457,8 +1708,21 @@ L_089586F4: L_08958700: aot_gpr_31 = (0x08958708u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 57u, 0x08958708u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958708u) goto L_08958708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958708: ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -1480,8 +1744,21 @@ L_08958714: } L_08958728: aot_gpr_31 = (0x08958730u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 60u, 0x08958730u, 0x08A07240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 749u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 749u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 749u, 0x08A07240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958730u) goto L_08958730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958730: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(220))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); @@ -1496,8 +1773,8 @@ L_08958730: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08958764: @@ -1514,8 +1791,21 @@ L_08958764: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(308), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0895879Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 62u, 0x0895879Cu, 0x0895742Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 693u, 0x0895742Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895879Cu) goto L_0895879C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895879C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1529,8 +1819,21 @@ L_089587A8: ctx.gpr[20] = (ctx.gpr[20] + static_cast(29232)); aot_gpr_31 = (0x089587B8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 64u, 0x089587B8u, 0x08ABF2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 685u, 0x08ABF2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089587B8u) goto L_089587B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089587B8: aot_gpr_4 = (1u << 16u); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -1564,8 +1867,21 @@ L_089587E8: L_089587F0: aot_gpr_31 = (0x089587F8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 68u, 0x089587F8u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089587F8u) goto L_089587F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089587F8: aot_gpr_4 = (ctx.gpr[2] < static_cast(512) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1577,8 +1893,21 @@ L_089587F8: L_08958804: aot_gpr_31 = (0x0895880Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 70u, 0x0895880Cu, 0x08954ED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 212u, 0x08954ED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895880Cu) goto L_0895880C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895880C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(608))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1647,8 +1976,21 @@ L_08958880: L_089588A0: aot_gpr_31 = (0x089588A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 77u, 0x089588A8u, 0x08956690u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 488u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 488u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 488u, 0x08956690u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089588A8u) goto L_089588A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089588A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1659,8 +2001,21 @@ L_089588A8: L_089588B0: aot_gpr_31 = (0x089588B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 79u, 0x089588B8u, 0x08954A74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 154u, 0x08954A74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089588B8u) goto L_089588B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089588B8: aot_gpr_4 = (ctx.gpr[19] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1690,8 +2045,21 @@ L_089588DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089588E8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 81u, 0x089588E8u, 0x08953F94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 887u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 887u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 887u, 0x08953F94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089588E8u) goto L_089588E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089588E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(580))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -1702,8 +2070,21 @@ L_089588E8: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x0895890Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 82u, 0x0895890Cu, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895890Cu) goto L_0895890C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895890C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1772,8 +2153,21 @@ L_0895895C: aot_gpr_6 = (ctx.lo); aot_gpr_31 = (0x08958988u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 85u, 0x08958988u, 0x08957098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 645u, 0x08957098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958988u) goto L_08958988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958988: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1792,8 +2186,21 @@ L_08958990: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x089589B8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 87u, 0x089589B8u, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089589B8u) goto L_089589B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089589B8: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1857,8 +2264,21 @@ L_089589FC: L_08958A0C: aot_gpr_31 = (0x08958A14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 91u, 0x08958A14u, 0x08954778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 121u, 0x08954778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958A14u) goto L_08958A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958A14: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1877,8 +2297,21 @@ L_08958A1C: aot_gpr_6 = (ctx.lo); aot_gpr_31 = (0x08958A48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 93u, 0x08958A48u, 0x08957098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 645u, 0x08957098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958A48u) goto L_08958A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958A48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1897,8 +2330,21 @@ L_08958A50: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x08958A78u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 95u, 0x08958A78u, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958A78u) goto L_08958A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958A78: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1987,8 +2433,21 @@ L_08958AF0: L_08958B00: aot_gpr_31 = (0x08958B08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 102u, 0x08958B08u, 0x08957D74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 801u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 801u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 801u, 0x08957D74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958B08u) goto L_08958B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958B08: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2066,8 +2525,21 @@ L_08958B78: L_08958B84: aot_gpr_31 = (0x08958B8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 112u, 0x08958B8Cu, 0x08954778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 121u, 0x08954778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958B8Cu) goto L_08958B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958B8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2097,13 +2569,39 @@ L_08958BAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08958BB8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 117u, 0x08958BB8u, 0x089567C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 507u, 0x089567C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958BB8u) goto L_08958BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958BB8: aot_gpr_31 = (0x08958BC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 118u, 0x08958BC0u, 0x0895742Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 693u, 0x0895742Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958BC0u) goto L_08958BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958BC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2187,8 +2685,21 @@ L_08958BE0: ctx.gpr[18] = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08958C40u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 123u, 0x08958C40u, 0x0896093Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 105u, 0x0896093Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958C40u) goto L_08958C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958C40: aot_gpr_4 = (17174u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2262,18 +2773,57 @@ L_08958C40: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08958CE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 124u, 0x08958CE8u, 0x08955EC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 365u, 0x08955EC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958CE8u) goto L_08958CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958CE8: aot_gpr_31 = (0x08958CF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 125u, 0x08958CF0u, 0x089567B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 506u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 506u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 506u, 0x089567B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958CF0u) goto L_08958CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958CF0: aot_gpr_31 = (0x08958CF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 126u, 0x08958CF8u, 0x0895742Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 693u, 0x0895742Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958CF8u) goto L_08958CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958CF8: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(272))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(276))); @@ -2287,8 +2837,8 @@ L_08958CF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(308))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08958D28: @@ -2328,8 +2878,21 @@ L_08958D70: L_08958D74: aot_gpr_31 = (0x08958D7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 130u, 0x08958D7Cu, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958D7Cu) goto L_08958D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958D7C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(301))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2550,8 +3113,21 @@ L_08958F34: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x08958F60u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 152u, 0x08958F60u, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08958F60u) goto L_08958F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08958F60: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2638,8 +3214,21 @@ L_08959010: ctx.gpr[19] = (aot_gpr_16 + static_cast(112)); aot_gpr_31 = (0x08959024u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 159u, 0x08959024u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959024u) goto L_08959024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959024: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(24))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); @@ -2660,8 +3249,21 @@ L_08959024: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(572), ctx.gpr[19]); aot_gpr_31 = (0x08959070u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 160u, 0x08959070u, 0x08953954u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 813u, 0x08953954u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959070u) goto L_08959070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959070: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2740,23 +3342,62 @@ L_08959070: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_gpr_31 = (0x089590F4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 161u, 0x089590F4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089590F4u) goto L_089590F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089590F4: aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(568))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08959108u); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 162u, 0x08959108u, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959108u) goto L_08959108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959108: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 59u); aot_gpr_31 = (0x08959118u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 163u, 0x08959118u, 0x08953B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 830u, 0x08953B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959118u) goto L_08959118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959118: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(256), std::bit_cast(aot_fpr_12)); @@ -2860,8 +3501,21 @@ L_089591BC: L_089591C8: aot_gpr_31 = (0x089591D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 166u, 0x089591D0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089591D0u) goto L_089591D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089591D0: ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -2922,8 +3576,21 @@ L_08959234: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x08959258u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 174u, 0x08959258u, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959258u) goto L_08959258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959258: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3084,8 +3751,21 @@ L_089593F0: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x08959414u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 183u, 0x08959414u, 0x08953A08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 823u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 823u, 0x08953A08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959414u) goto L_08959414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959414: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3107,30 +3787,82 @@ L_08959414: aot_gpr_5 = (aot_gpr_5 + static_cast(1408)); aot_gpr_31 = (0x08959438u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 184u, 0x08959438u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959438u) goto L_08959438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959438: ctx.gpr[18] = (aot_gpr_29 + static_cast(80)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0895944Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 185u, 0x0895944Cu, 0x08953934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 812u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 812u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 812u, 0x08953934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895944Cu) goto L_0895944C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895944C: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08959458u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 186u, 0x08959458u, 0x0895397Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 814u, 0x0895397Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959458u) goto L_08959458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959458: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_31 = (0x0895946Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 187u, 0x0895946Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895946Cu) goto L_0895946C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895946C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(508))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -3145,8 +3877,21 @@ L_0895946C: aot_gpr_5 = (0u | 61u); aot_gpr_31 = (0x089594A0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 188u, 0x089594A0u, 0x08953B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 830u, 0x08953B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089594A0u) goto L_089594A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089594A0: aot_gpr_4 = (2816u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -3364,8 +4109,21 @@ L_0895963C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0895964Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 199u, 0x0895964Cu, 0x089557E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 318u, 0x089557E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895964Cu) goto L_0895964C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895964C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3495,8 +4253,21 @@ L_08959738: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08959750u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 210u, 0x08959750u, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959750u) goto L_08959750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959750: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -3556,8 +4327,21 @@ L_089597A8: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x089597C0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 217u, 0x089597C0u, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089597C0u) goto L_089597C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089597C0: ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -3609,8 +4393,21 @@ L_0895980C: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x08959824u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 223u, 0x08959824u, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959824u) goto L_08959824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959824: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3636,8 +4433,21 @@ L_08959844: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0895985Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 226u, 0x0895985Cu, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895985Cu) goto L_0895985C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895985C: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); @@ -3703,8 +4513,21 @@ L_089598D8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089598E4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 233u, 0x089598E4u, 0x089554A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 288u, 0x089554A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089598E4u) goto L_089598E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089598E4: ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -3768,8 +4591,21 @@ L_08959958: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08959964u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 240u, 0x08959964u, 0x089554A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 288u, 0x089554A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959964u) goto L_08959964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959964: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3795,8 +4631,21 @@ L_08959984: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0895999Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 243u, 0x0895999Cu, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895999Cu) goto L_0895999C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895999C: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); @@ -3922,8 +4771,21 @@ L_08959A80: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x08959A98u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 254u, 0x08959A98u, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959A98u) goto L_08959A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959A98: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -3976,8 +4838,21 @@ L_08959AE8: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08959B00u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 260u, 0x08959B00u, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959B00u) goto L_08959B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959B00: ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -4029,8 +4904,21 @@ L_08959B4C: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x08959B64u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 266u, 0x08959B64u, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959B64u) goto L_08959B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959B64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4056,8 +4944,21 @@ L_08959B84: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08959B9Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 269u, 0x08959B9Cu, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959B9Cu) goto L_08959B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959B9C: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); @@ -4123,8 +5024,21 @@ L_08959C18: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08959C24u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 276u, 0x08959C24u, 0x089554A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 288u, 0x089554A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959C24u) goto L_08959C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959C24: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -4177,8 +5091,21 @@ L_08959C74: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08959C8Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 282u, 0x08959C8Cu, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959C8Cu) goto L_08959C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959C8C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); { const bool branch_taken = 0u == 0u; @@ -4242,8 +5169,21 @@ L_08959D00: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08959D0Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 289u, 0x08959D0Cu, 0x089554A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 288u, 0x089554A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959D0Cu) goto L_08959D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959D0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4269,8 +5209,21 @@ L_08959D2C: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08959D44u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 292u, 0x08959D44u, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959D44u) goto L_08959D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959D44: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); @@ -4359,8 +5312,21 @@ L_08959DF4: aot_gpr_5 = (ctx.gpr[18] + static_cast(8148)); aot_gpr_31 = (0x08959E10u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 300u, 0x08959E10u, 0x08957228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 681u, 0x08957228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959E10u) goto L_08959E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959E10: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(8152)))))); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -4374,8 +5340,21 @@ L_08959E1C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08959E2Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 302u, 0x08959E2Cu, 0x08955ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 329u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 329u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 329u, 0x08955ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959E2Cu) goto L_08959E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959E2C: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(540))); @@ -4464,8 +5443,21 @@ L_08959E54: L_08959F54: aot_gpr_31 = (0x08959F5Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 305u, 0x08959F5Cu, 0x0895742Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 693u, 0x0895742Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959F5Cu) goto L_08959F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959F5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(564))); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4581,8 +5573,21 @@ L_08959FE4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08959FF4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 309u, 0x08959FF4u, 0x089557E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 318u, 0x089557E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08959FF4u) goto L_08959FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08959FF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4650,8 +5655,21 @@ L_0895A064: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0895A070u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 316u, 0x0895A070u, 0x089554A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 288u, 0x089554A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A070u) goto L_0895A070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A070: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); { const bool branch_taken = aot_gpr_16 != ctx.gpr[17]; @@ -4692,8 +5710,21 @@ L_0895A0A4: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x0895A0BCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 321u, 0x0895A0BCu, 0x08955444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 285u, 0x08955444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A0BCu) goto L_0895A0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A0BC: aot_gpr_16 = (aot_gpr_16 + static_cast(68)); { const bool branch_taken = aot_gpr_16 != ctx.gpr[17]; @@ -4771,8 +5802,21 @@ L_0895A158: aot_gpr_5 = (ctx.gpr[17] + static_cast(8148)); aot_gpr_31 = (0x0895A174u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 328u, 0x0895A174u, 0x08957228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 681u, 0x08957228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A174u) goto L_0895A174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A174: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(8152)))))); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -4786,8 +5830,21 @@ L_0895A180: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0895A190u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 330u, 0x0895A190u, 0x08955ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 329u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 329u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 329u, 0x08955ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A190u) goto L_0895A190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A190: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(524))); @@ -4890,8 +5947,21 @@ L_0895A2D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(11764))); aot_gpr_31 = (0x0895A2E0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(11768))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 335u, 0x0895A2E0u, 0x08B6BD34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 754u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 754u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 754u, 0x08B6BD34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A2E0u) goto L_0895A2E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A2E0: ctx.gpr[17] = (0u + static_cast(-1)); ctx.gpr[18] = (0u | 255u); @@ -5136,16 +6206,42 @@ L_0895A47C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0895A488u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 347u, 0x0895A488u, 0x08955ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 329u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 329u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 329u, 0x08955ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A488u) goto L_0895A488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A488: ctx.gpr[17] = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(508))); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0895A49Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 348u, 0x0895A49Cu, 0x089557E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 318u, 0x089557E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A49Cu) goto L_0895A49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A49C: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[23]; if (branch_taken) { @@ -5178,8 +6274,21 @@ L_0895A4DC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x0895A4E8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 352u, 0x0895A4E8u, 0x08957228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 681u, 0x08957228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A4E8u) goto L_0895A4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A4E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5194,8 +6303,21 @@ L_0895A4F0: ctx.execute_vfpu_vh2f_ct<21u, 12u, 2u>(); aot_gpr_31 = (0x0895A508u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 354u, 0x0895A508u, 0x089554A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 288u, 0x089554A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A508u) goto L_0895A508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A508: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[23]; if (branch_taken) { @@ -5224,8 +6346,21 @@ L_0895A510: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0895A560u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 356u, 0x0895A560u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A560u) goto L_0895A560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A560: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[30]); @@ -5370,8 +6505,21 @@ L_0895A718: L_0895A724: aot_gpr_31 = (0x0895A72Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 361u, 0x0895A72Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A72Cu) goto L_0895A72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A72C: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(576))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(580))); @@ -5386,8 +6534,8 @@ L_0895A72C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(616))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(624)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895A760: @@ -5593,14 +6741,40 @@ L_0895A9A4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0895A9B0u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 375u, 0x0895A9B0u, 0x08956F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 615u, 0x08956F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A9B0u) goto L_0895A9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A9B0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x0895A9BCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 376u, 0x0895A9BCu, 0x08956F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 616u, 0x08956F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895A9BCu) goto L_0895A9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895A9BC: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); @@ -5836,8 +7010,21 @@ L_0895ABEC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x0895ABFCu); aot_gpr_6 = (0u | 1024u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 399u, 0x0895ABFCu, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895ABFCu) goto L_0895ABFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895ABFC: aot_gpr_4 = (7680u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -6043,16 +7230,42 @@ L_0895AE00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_31 = (0x0895AE88u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 410u, 0x0895AE88u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895AE88u) goto L_0895AE88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895AE88: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(4), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0895AE9Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 411u, 0x0895AE9Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895AE9Cu) goto L_0895AE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895AE9C: aot_gpr_4 = (3840u << 16u); goto L_0895AEA0; @@ -6321,8 +7534,21 @@ L_0895B168: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0895B174u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 432u, 0x0895B174u, 0x08A09B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 246u, 0x08A09B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B174u) goto L_0895B174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B174: aot_gpr_4 = (39680u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -6507,8 +7733,8 @@ L_0895B33C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B38C: @@ -6533,8 +7759,8 @@ L_0895B3BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B3C8: @@ -6544,8 +7770,21 @@ L_0895B3C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0895B3E0u); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 450u, 0x0895B3E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B3E0u) goto L_0895B3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B3E0: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -6570,8 +7809,21 @@ L_0895B400: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0895B41Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 453u, 0x0895B41Cu, 0x08945234u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 172u, 0x08945234u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B41Cu) goto L_0895B41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B41C: aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2), static_cast(aot_gpr_4)); @@ -6596,8 +7848,8 @@ L_0895B430: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B470: @@ -6624,8 +7876,21 @@ L_0895B490: L_0895B498: aot_gpr_31 = (0x0895B4A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 458u, 0x0895B4A0u, 0x0881DD70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 256u, 0x0881DD70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B4A0u) goto L_0895B4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B4A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); goto L_0895B4A4; @@ -6650,8 +7915,21 @@ L_0895B4AC: } L_0895B4C8: aot_gpr_31 = (0x0895B4D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 462u, 0x0895B4D0u, 0x0881DC84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 244u, 0x0881DC84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B4D0u) goto L_0895B4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B4D0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(20), aot_gpr_16); goto L_0895B4D4; @@ -6662,8 +7940,8 @@ L_0895B4D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B4EC: @@ -6675,8 +7953,21 @@ L_0895B4EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0895B50Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 465u, 0x0895B50Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B50Cu) goto L_0895B50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B50C: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6688,8 +7979,21 @@ L_0895B50C: L_0895B520: aot_gpr_31 = (0x0895B528u); aot_gpr_4 = (aot_gpr_16 + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 467u, 0x0895B528u, 0x08B3E13Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 508u, 0x08B3E13Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B528u) goto L_0895B528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B528: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6721,8 +8025,8 @@ L_0895B558: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B56C: @@ -6742,8 +8046,21 @@ L_0895B56C: L_0895B58C: aot_gpr_31 = (0x0895B594u); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 473u, 0x0895B594u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B594u) goto L_0895B594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B594: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(12), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -6775,8 +8092,8 @@ L_0895B5D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B5F0: @@ -6789,8 +8106,21 @@ L_0895B5F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0895B614u); aot_gpr_4 = (aot_gpr_5 << 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 477u, 0x0895B614u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B614u) goto L_0895B614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B614: { const bool branch_taken = aot_gpr_16 == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(12), ctx.gpr[2]); @@ -6886,8 +8216,8 @@ L_0895B674: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B68C: @@ -6900,8 +8230,21 @@ L_0895B68C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(268), aot_gpr_31); aot_gpr_31 = (0x0895B6B0u); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 483u, 0x0895B6B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B6B0u) goto L_0895B6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B6B0: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6946,8 +8289,8 @@ L_0895B6F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(268))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B708: @@ -7031,14 +8374,40 @@ L_0895B7C4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0895B7D8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 498u, 0x0895B7D8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B7D8u) goto L_0895B7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B7D8: ctx.gpr[21] = (ctx.gpr[18] + static_cast(12)); aot_gpr_31 = (0x0895B7E4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 499u, 0x0895B7E4u, 0x08B3E13Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 508u, 0x08B3E13Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B7E4u) goto L_0895B7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B7E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); ctx.gpr[20] = (0u | 0u); @@ -7056,16 +8425,42 @@ L_0895B7FC: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); aot_gpr_31 = (0x0895B80Cu); ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 501u, 0x0895B80Cu, 0x08B3DF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 484u, 0x08B3DF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B80Cu) goto L_0895B80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B80C: ctx.gpr[23] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0895B820u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 502u, 0x0895B820u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B820u) goto L_0895B820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B820: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -7077,8 +8472,21 @@ L_0895B834: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0895B840u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 504u, 0x0895B840u, 0x08B3E150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 509u, 0x08B3E150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B840u) goto L_0895B840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B840: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -7093,8 +8501,21 @@ L_0895B840: } L_0895B858: aot_gpr_31 = (0x0895B860u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 506u, 0x0895B860u, 0x08968F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 226u, 0x08968F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B860u) goto L_0895B860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B860: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7113,8 +8534,21 @@ L_0895B878: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0895B888u); aot_gpr_4 = (aot_gpr_4 << 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 509u, 0x0895B888u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B888u) goto L_0895B888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B888: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(12), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); @@ -7122,14 +8556,40 @@ L_0895B888: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0895B8A0u); aot_gpr_6 = (aot_gpr_6 << 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 510u, 0x0895B8A0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B8A0u) goto L_0895B8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B8A0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0895B8ACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 511u, 0x0895B8ACu, 0x08968F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 227u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 227u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 227u, 0x08968F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B8ACu) goto L_0895B8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B8AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -7155,8 +8615,21 @@ L_0895B8D8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0895B8E4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 515u, 0x0895B8E4u, 0x0887F368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 698u, 0x0887F368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B8E4u) goto L_0895B8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B8E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(36), aot_gpr_4); @@ -7180,8 +8653,8 @@ L_0895B908: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B934: @@ -7290,8 +8763,8 @@ L_0895B934: ctx.write_vfpu_matrix_ct<20u, 4u>(vfpu_d); ctx.eat_vfpu_prefixes(); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B97C: @@ -7301,8 +8774,21 @@ L_0895B97C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0895B994u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 519u, 0x0895B994u, 0x0887F3C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 702u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 702u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 702u, 0x0887F3C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B994u) goto L_0895B994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B994: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); @@ -7312,8 +8798,21 @@ L_0895B994: L_0895B9A4: aot_gpr_31 = (0x0895B9ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 521u, 0x0895B9ACu, 0x089731E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 676u, 0x089731E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B9ACu) goto L_0895B9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B9AC: aot_gpr_31 = (0x0895B9B4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7325,8 +8824,8 @@ L_0895B9B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B9C8: @@ -7335,16 +8834,29 @@ L_0895B9C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0895B9DCu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 524u, 0x0895B9DCu, 0x0897317Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 671u, 0x0897317Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895B9DCu) goto L_0895B9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895B9DC: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895B9F0: @@ -7352,8 +8864,8 @@ L_0895B9F0: ctx.gpr[2] = (aot_gpr_4 + static_cast(32)); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895BA00: @@ -7398,8 +8910,8 @@ L_0895BA00: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895BAA4: @@ -7521,8 +9033,8 @@ L_0895BAA4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), ctx.gpr[13]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), ctx.gpr[14]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895BBA4: @@ -7607,8 +9119,21 @@ L_0895BC64: L_0895BC68: aot_gpr_31 = (0x0895BC70u); aot_gpr_4 = (ctx.gpr[22] + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 537u, 0x0895BC70u, 0x0887F7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 744u, 0x0887F7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BC70u) goto L_0895BC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BC70: aot_gpr_16 = (0u | 0u); ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(20))); @@ -7629,8 +9154,21 @@ L_0895BC8C: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x0895BC9Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 540u, 0x0895BC9Cu, 0x0887F7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 744u, 0x0887F7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BC9Cu) goto L_0895BC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BC9C: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(20))); @@ -7649,14 +9187,40 @@ L_0895BCB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(92), ctx.gpr[22]); aot_gpr_31 = (0x0895BCC8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 542u, 0x0895BCC8u, 0x08968F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 226u, 0x08968F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BCC8u) goto L_0895BCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BCC8: ctx.gpr[22] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0895BCD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 543u, 0x0895BCD4u, 0x08945288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 180u, 0x08945288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BCD4u) goto L_0895BCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BCD4: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[23] = (ctx.gpr[18] + static_cast(32)); @@ -7669,8 +9233,21 @@ L_0895BCD4: } L_0895BCE4: aot_gpr_31 = (0x0895BCECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 545u, 0x0895BCECu, 0x08A07430u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 779u, 0x08A07430u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BCECu) goto L_0895BCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BCEC: ctx.gpr[30] = (0u | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -7682,14 +9259,40 @@ L_0895BCEC: L_0895BCF8: aot_gpr_31 = (0x0895BD00u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 547u, 0x0895BD00u, 0x089694F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 284u, 0x089694F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BD00u) goto L_0895BD00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BD00: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_gpr_31 = (0x0895BD10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 548u, 0x0895BD10u, 0x0896950Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 287u, 0x0896950Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BD10u) goto L_0895BD10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BD10: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); @@ -7739,8 +9342,21 @@ L_0895BD44: L_0895BD70: aot_gpr_31 = (0x0895BD78u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 555u, 0x0895BD78u, 0x08968F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 228u, 0x08968F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BD78u) goto L_0895BD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BD78: aot_gpr_4 = (ctx.gpr[2] << 4u); aot_gpr_5 = (ctx.gpr[2] + aot_gpr_4); @@ -7763,8 +9379,21 @@ L_0895BD78: L_0895BDBC: aot_gpr_31 = (0x0895BDC4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 557u, 0x0895BDC4u, 0x08968F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 228u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 228u, 0x08968F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BDC4u) goto L_0895BDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BDC4: aot_gpr_4 = (ctx.gpr[20] < ctx.gpr[2] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7778,8 +9407,21 @@ L_0895BDD0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0895BDE0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 559u, 0x0895BDE0u, 0x0885FEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 935u, 0x0885FEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BDE0u) goto L_0895BDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BDE0: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(124))); @@ -7809,8 +9451,21 @@ L_0895BE10: } L_0895BE1C: aot_gpr_31 = (0x0895BE24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 563u, 0x0895BE24u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BE24u) goto L_0895BE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BE24: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] + static_cast(64)); @@ -7838,8 +9493,21 @@ L_0895BE3C: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x0895BE60u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 566u, 0x0895BE60u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BE60u) goto L_0895BE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BE60: aot_gpr_5 = (ctx.gpr[18] + static_cast(80)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7872,8 +9540,21 @@ L_0895BE8C: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x0895BEB4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0085->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0085_entry, 570u, 0x0895BEB4u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895BEB4u) goto L_0895BEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895BEB4: aot_gpr_5 = (ctx.gpr[18] + static_cast(80)); aot_gpr_4 = (aot_gpr_16 | 0u); diff --git a/profiles/vcs/generated/generated_unit_0086.cpp b/profiles/vcs/generated/generated_unit_0086.cpp index d2410ab..11ab2e4 100644 --- a/profiles/vcs/generated/generated_unit_0086.cpp +++ b/profiles/vcs/generated/generated_unit_0086.cpp @@ -683,6 +683,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0895C000u; + if (local_delta_v813 >= 16348u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -745,14 +769,40 @@ L_0895C04C: ctx.gpr[21] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0895C058u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 5u, 0x0895C058u, 0x08B3E084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 498u, 0x08B3E084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C058u) goto L_0895C058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C058: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x0895C064u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 6u, 0x0895C064u, 0x08B3E08Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 499u, 0x08B3E08Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C064u) goto L_0895C064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C064: aot_gpr_5 = (ctx.gpr[2] & 2u); aot_gpr_4 = (0u | 1u); @@ -875,8 +925,21 @@ L_0895C118: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0895C1B4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 14u, 0x0895C1B4u, 0x08B217D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 283u, 0x08B217D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C1B4u) goto L_0895C1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C1B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); ctx.gpr[19] = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(4))); @@ -895,8 +958,21 @@ L_0895C1D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0895C1E0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 16u, 0x0895C1E0u, 0x08B217D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 283u, 0x08B217D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C1E0u) goto L_0895C1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C1E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); ctx.gpr[19] = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(4))); @@ -917,8 +993,21 @@ L_0895C208: aot_gpr_4 = (ctx.gpr[7] | 0u); aot_gpr_31 = (0x0895C214u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 19u, 0x0895C214u, 0x08A09B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 246u, 0x08A09B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C214u) goto L_0895C214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C214: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); { const bool branch_taken = 0u == 0u; @@ -1024,8 +1113,21 @@ L_0895C318: aot_gpr_4 = (0u | 11u); aot_gpr_31 = (0x0895C324u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 27u, 0x0895C324u, 0x088614B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 179u, 0x088614B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C324u) goto L_0895C324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C324: aot_gpr_16 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_4 = (8704u << 16u); @@ -1281,8 +1383,21 @@ L_0895C694: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0895C6B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 35u, 0x0895C6B8u, 0x08B3E08Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 499u, 0x08B3E08Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C6B8u) goto L_0895C6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C6B8: aot_gpr_4 = (ctx.gpr[2] & 2u); if (aot_gpr_4 == 0u) { @@ -1308,8 +1423,21 @@ L_0895C6D0: L_0895C6DC: aot_gpr_31 = (0x0895C6E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 39u, 0x0895C6E4u, 0x08B3E260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 524u, 0x08B3E260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C6E4u) goto L_0895C6E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C6E4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1331,13 +1459,39 @@ L_0895C6FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0895C708u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 42u, 0x0895C708u, 0x08B217D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 283u, 0x08B217D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C708u) goto L_0895C708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C708: aot_gpr_31 = (0x0895C710u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 43u, 0x0895C710u, 0x08B3E254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 523u, 0x08B3E254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C710u) goto L_0895C710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C710: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7632))); @@ -1464,12 +1618,38 @@ L_0895C878: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0895C884u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 53u, 0x0895C884u, 0x08B217D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 283u, 0x08B217D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C884u) goto L_0895C884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C884: aot_gpr_31 = (0x0895C88Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 54u, 0x0895C88Cu, 0x088615BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 200u, 0x088615BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895C88Cu) goto L_0895C88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895C88C: aot_gpr_4 = (6144u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29552))); @@ -1540,8 +1720,8 @@ L_0895C934: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(188))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895C978: @@ -1557,8 +1737,8 @@ L_0895C978: aot_fpr_12 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-17640), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895C9A8: @@ -1584,8 +1764,8 @@ L_0895C9A8: aot_gpr_4 = (aot_gpr_4 + static_cast(48)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(16), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CA18: @@ -1599,8 +1779,8 @@ L_0895CA18: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CA3C: @@ -1614,8 +1794,8 @@ L_0895CA3C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CA60: @@ -1626,8 +1806,8 @@ L_0895CA60: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CA7C: @@ -1637,8 +1817,8 @@ L_0895CA7C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CA94: @@ -1658,8 +1838,21 @@ L_0895CA94: } L_0895CABC: aot_gpr_31 = (0x0895CAC4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 66u, 0x0895CAC4u, 0x08B25C08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 400u, 0x08B25C08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895CAC4u) goto L_0895CAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895CAC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1683,8 +1876,21 @@ L_0895CAF0: goto L_0895DDBC; L_0895CAF8: aot_gpr_31 = (0x0895CB00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 70u, 0x0895CB00u, 0x08B25C08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 400u, 0x08B25C08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895CB00u) goto L_0895CB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895CB00: aot_gpr_4 = (2247u << 16u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(9008), static_cast(0u)); @@ -1836,8 +2042,8 @@ L_0895CC50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CC70: @@ -1867,8 +2073,8 @@ L_0895CCA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CCB4: @@ -1972,8 +2178,8 @@ L_0895CD98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CDA4: @@ -2156,8 +2362,8 @@ L_0895CF20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CF40: @@ -2214,16 +2420,29 @@ L_0895CF9C: goto L_0895DE0C; L_0895CFA4: aot_gpr_31 = (0x0895CFACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 129u, 0x0895CFACu, 0x0897053Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 102u, 0x0897053Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895CFACu) goto L_0895CFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895CFAC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895CFC0: @@ -2308,16 +2527,16 @@ L_0895D040: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D04C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(101), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D058: @@ -2415,8 +2634,8 @@ L_0895D0D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D180: @@ -2458,8 +2677,8 @@ L_0895D1C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D1DC: @@ -2560,8 +2779,8 @@ L_0895D2A0: goto L_0895D2F8; L_0895D2F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D300: @@ -2595,8 +2814,8 @@ L_0895D33C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D350: @@ -2630,8 +2849,8 @@ L_0895D38C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D3A0: @@ -2650,8 +2869,8 @@ L_0895D3A4: } L_0895D3B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D3C0: @@ -2847,8 +3066,21 @@ L_0895D53C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0895D550u); ctx.gpr[7] = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 184u, 0x0895D550u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895D550u) goto L_0895D550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895D550: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2863,19 +3095,45 @@ L_0895D558: aot_gpr_6 = (aot_gpr_6 + static_cast(-2)); aot_gpr_31 = (0x0895D570u); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 186u, 0x0895D570u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895D570u) goto L_0895D570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895D570: aot_gpr_31 = (0x0895D578u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 187u, 0x0895D578u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895D578u) goto L_0895D578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895D578: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D588: @@ -2968,15 +3226,15 @@ L_0895D610: goto L_0895D618; L_0895D618: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D620: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D628: @@ -3010,8 +3268,8 @@ L_0895D664: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D678: @@ -3192,8 +3450,8 @@ L_0895D7E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895D800: @@ -3368,8 +3626,21 @@ L_0895D938: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); aot_gpr_31 = (0x0895D980u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 236u, 0x0895D980u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895D980u) goto L_0895D980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895D980: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3384,8 +3655,21 @@ L_0895D988: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0895D9A0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 238u, 0x0895D9A0u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895D9A0u) goto L_0895D9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895D9A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 & aot_gpr_16); @@ -3518,8 +3802,21 @@ L_0895DA74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); aot_gpr_31 = (0x0895DABCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 249u, 0x0895DABCu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895DABCu) goto L_0895DABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895DABC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3534,8 +3831,21 @@ L_0895DAC4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0895DADCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 251u, 0x0895DADCu, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895DADCu) goto L_0895DADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895DADC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 & aot_gpr_16); @@ -3670,8 +3980,21 @@ L_0895DBB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); aot_gpr_31 = (0x0895DC00u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 262u, 0x0895DC00u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895DC00u) goto L_0895DC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895DC00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3683,8 +4006,21 @@ L_0895DC08: aot_gpr_4 = (0u | 103u); aot_gpr_31 = (0x0895DC14u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 264u, 0x0895DC14u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895DC14u) goto L_0895DC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895DC14: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -3695,8 +4031,8 @@ L_0895DC14: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DC38: @@ -3739,8 +4075,8 @@ L_0895DC5C: L_0895DC80: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DC88: @@ -3934,15 +4270,15 @@ L_0895DD98: L_0895DDAC: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DDB4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DDBC: @@ -3976,8 +4312,8 @@ L_0895DDF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DE0C: @@ -4031,8 +4367,8 @@ L_0895DE60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DE74: @@ -4086,8 +4422,8 @@ L_0895DEC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DEDC: @@ -4121,8 +4457,21 @@ L_0895DF0C: L_0895DF18: aot_gpr_31 = (0x0895DF20u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 299u, 0x0895DF20u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895DF20u) goto L_0895DF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895DF20: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-17613), static_cast(ctx.gpr[17])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(180))); @@ -4169,8 +4518,8 @@ L_0895DF68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DF84: @@ -4216,8 +4565,8 @@ L_0895DFC4: } L_0895DFD8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895DFE0: @@ -4257,8 +4606,8 @@ L_0895E024: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895E038: @@ -4298,8 +4647,8 @@ L_0895E07C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895E090: @@ -4627,8 +4976,21 @@ L_0895E2B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); aot_gpr_31 = (0x0895E33Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 333u, 0x0895E33Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895E33Cu) goto L_0895E33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895E33C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4739,8 +5101,21 @@ L_0895E440: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x0895E458u); aot_gpr_4 = (aot_gpr_4 + static_cast(2016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 344u, 0x0895E458u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895E458u) goto L_0895E458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895E458: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); if (aot_gpr_4 != 0u) { @@ -4785,8 +5160,21 @@ L_0895E498: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x0895E4B0u); aot_gpr_4 = (aot_gpr_4 + static_cast(2224)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 352u, 0x0895E4B0u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895E4B0u) goto L_0895E4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895E4B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4940,8 +5328,21 @@ L_0895E5E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x0895E5F8u); aot_gpr_4 = (aot_gpr_4 + static_cast(2432)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 369u, 0x0895E5F8u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895E5F8u) goto L_0895E5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895E5F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4993,8 +5394,21 @@ L_0895E640: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x0895E658u); aot_gpr_4 = (aot_gpr_4 + static_cast(2640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 378u, 0x0895E658u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895E658u) goto L_0895E658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895E658: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5046,8 +5460,21 @@ L_0895E6A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x0895E6B8u); aot_gpr_4 = (aot_gpr_4 + static_cast(2848)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 387u, 0x0895E6B8u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895E6B8u) goto L_0895E6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895E6B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5216,13 +5643,39 @@ L_0895E7AC: L_0895E89C: aot_gpr_31 = (0x0895E8A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 396u, 0x0895E8A4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895E8A4u) goto L_0895E8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895E8A4: aot_gpr_31 = (0x0895E8ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 397u, 0x0895E8ACu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895E8ACu) goto L_0895E8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895E8AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -5293,8 +5746,8 @@ L_0895E944: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895E958: @@ -5717,8 +6170,8 @@ L_0895EC40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895EC70: @@ -5892,8 +6345,21 @@ L_0895EDAC: } L_0895EDB4: aot_gpr_31 = (0x0895EDBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 463u, 0x0895EDBCu, 0x08AA8BC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 58u, 0x08AA8BC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895EDBCu) goto L_0895EDBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895EDBC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(102))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6062,8 +6528,21 @@ L_0895EF68: ctx.gpr[7] = (aot_gpr_29 + static_cast(68)); aot_gpr_31 = (0x0895EF80u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 475u, 0x0895EF80u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895EF80u) goto L_0895EF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895EF80: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6087,8 +6566,21 @@ L_0895EF88: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x0895EFC4u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 477u, 0x0895EFC4u, 0x08AA9B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 141u, 0x08AA9B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895EFC4u) goto L_0895EFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895EFC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6112,8 +6604,21 @@ L_0895EFDC: ctx.gpr[7] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0895EFF4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 480u, 0x0895EFF4u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895EFF4u) goto L_0895EFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895EFF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6139,8 +6644,21 @@ L_0895EFFC: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x0895F040u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 482u, 0x0895F040u, 0x08AA9B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 141u, 0x08AA9B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F040u) goto L_0895F040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F040: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 5 ? 1u : 0u); @@ -6164,8 +6682,21 @@ L_0895F050: } L_0895F064: aot_gpr_31 = (0x0895F06Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 485u, 0x0895F06Cu, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F06Cu) goto L_0895F06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F06C: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(140))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); @@ -6183,8 +6714,8 @@ L_0895F06C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895F0AC: @@ -6533,8 +7064,21 @@ L_0895F2FC: aot_gpr_4 = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x0895F308u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 504u, 0x0895F308u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F308u) goto L_0895F308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F308: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -6628,13 +7172,39 @@ L_0895F308: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0895F3D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 505u, 0x0895F3D4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F3D4u) goto L_0895F3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F3D4: aot_gpr_31 = (0x0895F3DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 506u, 0x0895F3DCu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F3DCu) goto L_0895F3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F3DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -6650,8 +7220,21 @@ L_0895F3F0: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x0895F400u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 508u, 0x0895F400u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F400u) goto L_0895F400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F400: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6662,18 +7245,57 @@ L_0895F400: L_0895F408: aot_gpr_31 = (0x0895F410u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 510u, 0x0895F410u, 0x08A69104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 161u, 0x08A69104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F410u) goto L_0895F410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F410: aot_gpr_31 = (0x0895F418u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 511u, 0x0895F418u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F418u) goto L_0895F418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F418: aot_gpr_31 = (0x0895F420u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 512u, 0x0895F420u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F420u) goto L_0895F420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F420: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -6722,8 +7344,21 @@ L_0895F420: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_31 = (0x0895F484u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 513u, 0x0895F484u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F484u) goto L_0895F484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F484: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); @@ -6759,8 +7394,21 @@ L_0895F4C0: L_0895F4C4: aot_gpr_31 = (0x0895F4CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 518u, 0x0895F4CCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F4CCu) goto L_0895F4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F4CC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0895F4D0; @@ -6793,16 +7441,42 @@ L_0895F4F8: } L_0895F500: aot_gpr_31 = (0x0895F508u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 523u, 0x0895F508u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F508u) goto L_0895F508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F508: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0895F50C; L_0895F50C: aot_gpr_31 = (0x0895F514u); aot_fpr_12 = ctx.fpr[24] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 525u, 0x0895F514u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F514u) goto L_0895F514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F514: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(256), std::bit_cast(ctx.fpr[20])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(260), std::bit_cast(ctx.fpr[20])); @@ -6879,8 +7553,21 @@ L_0895F580: L_0895F58C: aot_gpr_31 = (0x0895F594u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 528u, 0x0895F594u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895F594u) goto L_0895F594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895F594: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 6 ? 1u : 0u); @@ -6907,8 +7594,8 @@ L_0895F5A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(432)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895F5E0: @@ -7339,8 +8026,21 @@ L_0895FA30: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0895FA44u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 551u, 0x0895FA44u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FA44u) goto L_0895FA44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FA44: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7353,12 +8053,38 @@ L_0895FA4C: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x0895FA5Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 553u, 0x0895FA5Cu, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FA5Cu) goto L_0895FA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FA5C: aot_gpr_31 = (0x0895FA64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 554u, 0x0895FA64u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FA64u) goto L_0895FA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FA64: aot_gpr_4 = (0u | 6u); aot_gpr_31 = (0x0895FA70u); @@ -7393,8 +8119,8 @@ L_0895FA9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0895FAB0: @@ -7546,8 +8272,21 @@ L_0895FB88: L_0895FB90: aot_gpr_31 = (0x0895FB98u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 566u, 0x0895FB98u, 0x08B6A2E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 337u, 0x08B6A2E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FB98u) goto L_0895FB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FB98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(148))); aot_gpr_4 = (aot_gpr_4 + static_cast(10)); @@ -7565,8 +8304,21 @@ L_0895FBAC: L_0895FBB4: aot_gpr_31 = (0x0895FBBCu); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(274))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 569u, 0x0895FBBCu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FBBCu) goto L_0895FBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FBBC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7580,12 +8332,38 @@ L_0895FBC4: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0895FBD8u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 571u, 0x0895FBD8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FBD8u) goto L_0895FBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FBD8: aot_gpr_31 = (0x0895FBE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 572u, 0x0895FBE0u, 0x08AD35ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 596u, 0x08AD35ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FBE0u) goto L_0895FBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FBE0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); @@ -7611,8 +8389,21 @@ L_0895FC04: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0895FC10u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 575u, 0x0895FC10u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FC10u) goto L_0895FC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FC10: ctx.gpr[18] = (ctx.gpr[2] | 0u); if (ctx.gpr[18] == 0u) { @@ -7626,8 +8417,21 @@ L_0895FC1C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0895FC30u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 577u, 0x0895FC30u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FC30u) goto L_0895FC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FC30: aot_gpr_16 = (ctx.gpr[18] | 0u); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(180), aot_gpr_16); @@ -7649,8 +8453,21 @@ L_0895FC40: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x0895FC64u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(180))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 580u, 0x0895FC64u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FC64u) goto L_0895FC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FC64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(180))); aot_gpr_5 = (0u | 5u); @@ -7787,8 +8604,21 @@ L_0895FD64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(180))); aot_gpr_31 = (0x0895FD98u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(492))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 593u, 0x0895FD98u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FD98u) goto L_0895FD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FD98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(152))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(480))); @@ -8126,18 +8956,57 @@ L_0895FF38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(180))); aot_gpr_31 = (0x0895FF64u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 600u, 0x0895FF64u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FF64u) goto L_0895FF64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FF64: aot_gpr_31 = (0x0895FF6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(180))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 601u, 0x0895FF6Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FF6Cu) goto L_0895FF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FF6C: aot_gpr_31 = (0x0895FF74u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(180))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0086->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0086_entry, 602u, 0x0895FF74u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0895FF74u) goto L_0895FF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0895FF74: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(148))); diff --git a/profiles/vcs/generated/generated_unit_0087.cpp b/profiles/vcs/generated/generated_unit_0087.cpp index 86f4790..d2afd1c 100644 --- a/profiles/vcs/generated/generated_unit_0087.cpp +++ b/profiles/vcs/generated/generated_unit_0087.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0087[64] = { 372u, 385u, 394u, 407u, 419u, 431u, 439u, 452u, 465u, 485u, 503u, 518u, 531u, 543u, 556u, 566u, 577u, 588u, 604u, 621u, 637u, 653u, 671u, 687u, 713u, 738u, 752u, 769u, 784u, 790u, 806u, 821u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0087[4095] = { + 1u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 3u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 11u, 0u, 0u, 0u, 0u, 0u, 12u, 0u, 0u, 0u, 13u, 0u, 14u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 17u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 20u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 0u, 22u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 23u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 25u, 0u, 0u, 26u, 27u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 29u, 0u, 30u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, 33u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 37u, 0u, 38u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 40u, 0u, 41u, 0u, 42u, 0u, 0u, + 0u, 43u, 0u, 44u, 0u, 45u, 46u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 50u, 0u, 51u, 0u, 52u, 0u, 53u, 0u, 54u, 0u, 55u, 0u, 0u, 0u, 56u, 0u, 57u, 0u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 61u, 0u, 62u, 0u, 63u, 0u, 64u, 0u, 65u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 67u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 71u, 0u, + 72u, 0u, 73u, 0u, 74u, 0u, 75u, 0u, 76u, 0u, 77u, 0u, 0u, 0u, 0u, 0u, 78u, 0u, 0u, 0u, 79u, 0u, 80u, 0u, 81u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 84u, 0u, 85u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 89u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 90u, 0u, 0u, 91u, 0u, 0u, 92u, 0u, + 93u, 0u, 94u, 95u, 0u, 96u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 98u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 0u, 100u, 0u, 101u, 0u, 0u, 0u, 0u, 102u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 103u, 0u, 104u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 105u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 106u, 0u, 107u, 0u, 0u, 0u, 108u, 0u, 0u, + 0u, 0u, 0u, 0u, 109u, 0u, 0u, 0u, 110u, 0u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 112u, 0u, 113u, 0u, 0u, 0u, 114u, 0u, 0u, 0u, 0u, + 0u, 0u, 115u, 0u, 0u, 0u, 116u, 0u, 0u, 0u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 118u, 0u, 0u, 0u, 119u, 0u, 0u, 120u, + 0u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 123u, 0u, 0u, 124u, 0u, 125u, 0u, 126u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 128u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 132u, 0u, 0u, 0u, 133u, 0u, 134u, 0u, 0u, 135u, 0u, 136u, 0u, 137u, + 0u, 138u, 0u, 139u, 0u, 0u, 0u, 140u, 0u, 0u, 0u, 141u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, 0u, 143u, 0u, + 0u, 144u, 0u, 145u, 0u, 146u, 0u, 147u, 0u, 148u, 0u, 0u, 0u, 149u, 0u, 0u, 150u, 0u, 0u, 0u, 151u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 153u, 0u, 154u, 0u, + 155u, 0u, 156u, 0u, 157u, 0u, 0u, 0u, 158u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 160u, 0u, 161u, 0u, 162u, 0u, 0u, 163u, 0u, 0u, 0u, 164u, 0u, 0u, 0u, 165u, + 0u, 0u, 166u, 0u, 0u, 167u, 0u, 168u, 0u, 169u, 0u, 0u, 0u, 170u, 0u, 0u, 0u, 171u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 173u, 0u, 174u, 0u, 175u, 0u, 0u, + 0u, 176u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 0u, 179u, 0u, 180u, 181u, 0u, 182u, 0u, 0u, 0u, 183u, 0u, 184u, 185u, 0u, 186u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 188u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 189u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 191u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 194u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 195u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 196u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 0u, 0u, 0u, 204u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 207u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 210u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 215u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 224u, 0u, 225u, 226u, 0u, 227u, 0u, 0u, 228u, 0u, + 0u, 0u, 0u, 229u, 0u, 0u, 230u, 0u, 0u, 231u, 0u, 0u, 232u, 0u, 233u, 234u, 0u, 235u, 0u, 236u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 238u, 0u, 0u, 239u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 240u, 0u, 0u, 0u, 0u, 241u, 0u, 0u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 243u, 0u, 244u, 245u, 0u, 246u, 0u, 0u, 247u, 0u, 0u, + 0u, 0u, 0u, 248u, 0u, 0u, 249u, 0u, 0u, 250u, 0u, 0u, 251u, 0u, 252u, 253u, 0u, 254u, 0u, 255u, 0u, 256u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 258u, 0u, 0u, + 259u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 0u, 0u, 0u, 261u, 0u, 0u, 0u, 0u, 262u, 0u, 0u, 0u, 0u, 263u, 0u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, + 265u, 0u, 0u, 266u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 268u, 0u, 269u, 270u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 272u, 0u, 273u, 0u, 0u, 0u, 274u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 276u, 0u, 0u, 277u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 279u, 0u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, 0u, 281u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 282u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 284u, 0u, 285u, 0u, 0u, 0u, 0u, 0u, 286u, 0u, 0u, 0u, 0u, 0u, 287u, 0u, 0u, + 0u, 0u, 0u, 288u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 290u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 293u, 0u, 0u, 0u, 0u, 294u, 0u, 295u, 296u, 0u, 297u, + 0u, 298u, 0u, 299u, 0u, 300u, 0u, 0u, 0u, 301u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 304u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 306u, 0u, 0u, 307u, 308u, 0u, 0u, 0u, 0u, 0u, 309u, 0u, 0u, 0u, 0u, 0u, 310u, 0u, + 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, + 0u, 0u, 315u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 318u, 0u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 322u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 0u, 0u, 325u, 0u, 0u, + 326u, 0u, 0u, 0u, 327u, 0u, 328u, 0u, 0u, 329u, 0u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, 332u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 333u, 0u, 0u, 334u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 337u, 0u, 0u, + 0u, 0u, 0u, 338u, 0u, 339u, 0u, 0u, 0u, 340u, 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, + 0u, 344u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 346u, 0u, 0u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 349u, 0u, 0u, 350u, 0u, 0u, 0u, 0u, 0u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 354u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 357u, 0u, 0u, 358u, 0u, 0u, 0u, 359u, 0u, 360u, 0u, 0u, + 361u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 365u, 0u, + 0u, 366u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 371u, 0u, 0u, 0u, + 372u, 0u, 0u, 373u, 0u, 0u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 376u, 0u, 0u, 0u, 0u, 0u, 377u, 0u, 378u, 0u, + 0u, 379u, 0u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, 381u, 0u, 0u, 0u, 0u, 0u, 382u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 0u, 384u, 0u, + 0u, 0u, 0u, 0u, 385u, 0u, 0u, 0u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 0u, 387u, 388u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, + 0u, 0u, 0u, 0u, 390u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, 393u, 0u, 0u, 0u, 0u, 0u, 0u, + 394u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 396u, 0u, 397u, 0u, 0u, 0u, 398u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 399u, + 0u, 0u, 0u, 400u, 0u, 0u, 401u, 0u, 0u, 0u, 402u, 0u, 403u, 0u, 0u, 404u, 0u, 0u, 0u, 405u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 406u, + 0u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 0u, 409u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 411u, 0u, 0u, + 412u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 414u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, 0u, 416u, 0u, 417u, 0u, 0u, 0u, 418u, + 0u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 421u, 0u, 0u, 422u, 0u, 0u, 0u, 423u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 424u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 426u, 0u, 427u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, + 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 434u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 436u, 0u, 0u, 0u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 439u, 0u, 440u, 0u, 0u, 0u, 441u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 442u, 0u, 0u, 0u, 443u, 0u, 0u, 444u, 0u, 0u, 0u, 445u, 0u, 446u, 0u, 0u, + 447u, 0u, 0u, 0u, 448u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, + 0u, 452u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 0u, 0u, 454u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 456u, 0u, 0u, 0u, 0u, 0u, + 457u, 0u, 458u, 0u, 0u, 459u, 0u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 463u, 0u, 0u, 0u, 0u, 0u, 464u, 0u, 0u, + 0u, 0u, 465u, 0u, 466u, 0u, 0u, 467u, 0u, 468u, 0u, 0u, 469u, 0u, 470u, 0u, 0u, 471u, 0u, 472u, 473u, 0u, 474u, 0u, 0u, 0u, 475u, 0u, 0u, 476u, 477u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, 0u, 0u, 480u, 0u, 481u, 0u, 482u, 0u, 483u, 0u, 484u, + 0u, 485u, 0u, 486u, 0u, 487u, 488u, 0u, 0u, 489u, 0u, 0u, 0u, 490u, 0u, 491u, 0u, 0u, 0u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, 0u, 0u, + 0u, 494u, 0u, 0u, 0u, 0u, 0u, 495u, 0u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 497u, 0u, 498u, 0u, 499u, 0u, 500u, 0u, 501u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, + 0u, 503u, 0u, 0u, 0u, 504u, 0u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 506u, 507u, 0u, 508u, 0u, 0u, 509u, 0u, 0u, 0u, 0u, 0u, 510u, 511u, 0u, 512u, 0u, 0u, + 513u, 0u, 0u, 0u, 0u, 0u, 514u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 516u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 517u, 0u, 0u, + 518u, 0u, 0u, 0u, 519u, 0u, 520u, 0u, 0u, 521u, 0u, 0u, 0u, 0u, 522u, 0u, 0u, 0u, 0u, 0u, 0u, 523u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, + 0u, 0u, 0u, 525u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 527u, 0u, 0u, 0u, 528u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 530u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, 532u, 0u, 533u, 0u, 0u, 0u, 0u, 534u, 0u, 0u, 0u, 0u, 535u, 0u, + 536u, 0u, 0u, 0u, 537u, 0u, 538u, 0u, 539u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 540u, 0u, 0u, 0u, 541u, 0u, 542u, 0u, 0u, + 0u, 0u, 0u, 543u, 0u, 0u, 0u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 546u, 0u, 547u, 0u, 548u, 0u, 549u, 0u, 0u, 550u, 551u, + 0u, 0u, 0u, 0u, 552u, 0u, 0u, 0u, 0u, 0u, 553u, 0u, 0u, 0u, 0u, 0u, 554u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 556u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, 0u, 0u, 558u, 0u, 0u, 0u, 0u, 559u, 560u, 0u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 562u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 563u, 0u, 0u, 564u, 0u, 565u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 566u, 0u, 0u, 567u, 0u, 0u, 0u, 0u, 568u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 569u, 0u, 0u, + 570u, 0u, 0u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 573u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 576u, + 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 0u, 579u, 0u, 580u, 0u, 581u, 0u, 0u, 0u, 582u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 0u, 0u, 584u, + 0u, 0u, 585u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 588u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, 0u, 590u, 0u, 591u, 0u, 0u, 592u, 0u, 0u, 593u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 594u, + 0u, 0u, 0u, 0u, 595u, 596u, 0u, 0u, 0u, 0u, 597u, 598u, 0u, 0u, 0u, 0u, 599u, 600u, 0u, 0u, 0u, 0u, 0u, 601u, 602u, 0u, 0u, 0u, 603u, 0u, 0u, 0u, + 604u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 606u, 0u, 0u, 0u, 607u, 0u, 0u, 0u, 608u, 609u, 0u, 610u, 0u, 0u, 611u, 0u, 612u, 0u, 0u, 0u, 0u, 0u, 613u, + 0u, 0u, 0u, 614u, 0u, 615u, 0u, 0u, 0u, 616u, 0u, 0u, 0u, 0u, 617u, 0u, 0u, 0u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 620u, 0u, + 0u, 0u, 0u, 0u, 0u, 621u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 623u, 0u, 624u, 0u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 0u, 0u, 627u, 0u, + 628u, 629u, 0u, 630u, 0u, 0u, 0u, 0u, 631u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 632u, 0u, 633u, 0u, 0u, 0u, 634u, 0u, 0u, 635u, 0u, 636u, 0u, 0u, 0u, + 0u, 0u, 637u, 0u, 0u, 0u, 0u, 638u, 0u, 0u, 639u, 0u, 0u, 0u, 0u, 0u, 0u, 640u, 0u, 0u, 641u, 0u, 0u, 642u, 0u, 0u, 643u, 0u, 0u, 0u, 0u, 0u, + 0u, 644u, 0u, 0u, 0u, 645u, 0u, 0u, 646u, 0u, 0u, 0u, 647u, 0u, 0u, 648u, 0u, 0u, 0u, 0u, 649u, 0u, 0u, 0u, 0u, 650u, 0u, 0u, 0u, 651u, 0u, 652u, + 0u, 653u, 0u, 654u, 0u, 655u, 0u, 656u, 657u, 658u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 659u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 660u, 0u, 661u, 0u, 662u, 0u, 663u, 0u, 0u, 0u, 664u, 0u, 0u, 0u, 665u, 0u, 666u, 0u, 667u, 0u, 668u, 0u, 669u, 0u, 670u, 0u, + 0u, 0u, 0u, 0u, 671u, 0u, 672u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 673u, 0u, 674u, 0u, 0u, 675u, 0u, 676u, 0u, 0u, 0u, 677u, 0u, + 678u, 0u, 0u, 0u, 679u, 0u, 680u, 0u, 0u, 0u, 681u, 0u, 682u, 0u, 0u, 0u, 0u, 0u, 0u, 683u, 0u, 0u, 0u, 684u, 0u, 0u, 0u, 685u, 686u, 0u, 0u, 0u, + 687u, 0u, 688u, 0u, 0u, 0u, 689u, 0u, 0u, 690u, 0u, 0u, 0u, 0u, 0u, 691u, 0u, 692u, 0u, 693u, 0u, 0u, 694u, 0u, 695u, 0u, 0u, 696u, 0u, 697u, 698u, 0u, + 699u, 0u, 700u, 0u, 701u, 0u, 702u, 0u, 703u, 0u, 0u, 0u, 704u, 0u, 705u, 0u, 0u, 706u, 0u, 707u, 0u, 708u, 0u, 0u, 709u, 710u, 0u, 711u, 0u, 712u, 0u, 0u, + 0u, 713u, 0u, 714u, 0u, 715u, 0u, 0u, 0u, 716u, 0u, 717u, 0u, 718u, 0u, 0u, 719u, 0u, 720u, 0u, 0u, 0u, 721u, 0u, 722u, 0u, 723u, 0u, 724u, 0u, 725u, 0u, + 0u, 0u, 726u, 0u, 727u, 0u, 728u, 0u, 0u, 729u, 0u, 730u, 0u, 0u, 0u, 731u, 0u, 732u, 0u, 733u, 0u, 734u, 0u, 735u, 0u, 0u, 0u, 0u, 736u, 0u, 737u, 0u, + 0u, 0u, 738u, 0u, 739u, 0u, 0u, 0u, 0u, 740u, 0u, 741u, 0u, 0u, 0u, 742u, 0u, 0u, 743u, 0u, 0u, 0u, 744u, 0u, 745u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 746u, 0u, 0u, 747u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 748u, 0u, 749u, 750u, 0u, 751u, 0u, 0u, + 0u, 0u, 752u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 753u, 0u, 754u, 0u, 755u, 756u, 0u, 0u, 0u, 0u, 0u, 757u, 0u, 0u, 758u, 0u, 759u, 0u, 760u, + 0u, 761u, 0u, 762u, 0u, 0u, 763u, 0u, 0u, 764u, 0u, 0u, 765u, 0u, 0u, 766u, 0u, 0u, 767u, 0u, 0u, 768u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 769u, 0u, 0u, 770u, 0u, 0u, 771u, 0u, 772u, 0u, 773u, 0u, 774u, 0u, 775u, 0u, 0u, 776u, 0u, 0u, 777u, 0u, 0u, 0u, 0u, 0u, 778u, 0u, 779u, 780u, 0u, + 0u, 0u, 0u, 0u, 781u, 0u, 0u, 0u, 0u, 0u, 0u, 782u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 783u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 784u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 785u, 0u, 0u, 0u, 786u, 0u, 0u, 0u, 0u, 787u, 0u, 0u, 0u, 0u, 0u, 788u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 789u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 790u, 0u, 0u, 0u, 791u, 0u, 0u, 0u, 792u, 0u, 0u, 0u, 793u, 0u, 0u, 0u, 0u, 794u, 0u, 0u, 795u, 0u, 0u, 0u, 0u, 796u, 0u, 0u, 0u, 0u, + 797u, 0u, 798u, 0u, 0u, 0u, 0u, 0u, 0u, 799u, 0u, 0u, 0u, 0u, 0u, 800u, 0u, 0u, 801u, 802u, 0u, 0u, 0u, 0u, 0u, 803u, 0u, 0u, 804u, 0u, 805u, 0u, + 0u, 0u, 0u, 0u, 0u, 806u, 0u, 0u, 807u, 808u, 0u, 0u, 0u, 0u, 0u, 0u, 809u, 0u, 0u, 810u, 811u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 812u, 0u, 813u, + 0u, 0u, 0u, 0u, 0u, 0u, 814u, 0u, 0u, 0u, 0u, 0u, 0u, 815u, 0u, 0u, 816u, 817u, 0u, 0u, 818u, 0u, 0u, 0u, 0u, 0u, 0u, 819u, 0u, 0u, 0u, 820u, + 0u, 0u, 821u, 0u, 0u, 0u, 0u, 0u, 822u, 0u, 0u, 0u, 0u, 0u, 0u, 823u, 0u, 0u, 0u, 0u, 0u, 824u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 825u, 0u, + 0u, 0u, 0u, 0u, 826u, 0u, 0u, 0u, 827u, 0u, 0u, 0u, 828u, 0u, 0u, 0u, 829u, 0u, 0u, 0u, 0u, 0u, 830u, 831u, 0u, 0u, 0u, 832u, 0u, 0u, 833u, +}; void recomp_unit_0087_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,6,31,16,23 fprs=12,13,15,14 gpr_occ=4163 fpr_occ=988 gpr_total=5230 fpr_total=1279 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08960000u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0087[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0087[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0087[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08960000; @@ -911,6 +1034,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08960000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -950,8 +1097,21 @@ L_08960020: L_08960028: aot_gpr_31 = (0x08960030u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 5u, 0x08960030u, 0x0895DEDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 295u, 0x0895DEDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960030u) goto L_08960030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960030: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(500), aot_run_words); @@ -971,8 +1131,8 @@ L_08960030: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(560)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896006C: @@ -985,8 +1145,21 @@ L_0896006C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08960090u); aot_gpr_6 = (0u | 112u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 7u, 0x08960090u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960090u) goto L_08960090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960090: aot_gpr_4 = (2247u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(11888)); @@ -995,8 +1168,21 @@ L_08960090: aot_gpr_5 = (0u | 6u); aot_gpr_31 = (0x089600ACu); aot_gpr_6 = (0u | 320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 8u, 0x089600ACu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089600ACu) goto L_089600AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089600AC: aot_gpr_4 = (2247u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(13808)); @@ -1005,14 +1191,27 @@ L_089600AC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x089600C8u); aot_gpr_6 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 9u, 0x089600C8u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089600C8u) goto L_089600C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089600C8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089600D4: @@ -1038,8 +1237,21 @@ L_08960104: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x0896011Cu); ctx.gpr[18] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 12u, 0x0896011Cu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896011Cu) goto L_0896011C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896011C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1070,8 +1282,8 @@ L_08960138: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960154: @@ -1091,8 +1303,21 @@ L_08960154: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08960194u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 17u, 0x08960194u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960194u) goto L_08960194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960194: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1179,8 +1404,8 @@ L_0896022C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960240: @@ -1198,8 +1423,21 @@ L_08960240: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08960278u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 23u, 0x08960278u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960278u) goto L_08960278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960278: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -1240,8 +1478,8 @@ L_089602B8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089602C8: @@ -1266,8 +1504,21 @@ L_089602C8: } L_08960304: aot_gpr_31 = (0x0896030Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 30u, 0x0896030Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896030Cu) goto L_0896030C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896030C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1299,8 +1550,8 @@ L_08960340: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960350: @@ -1318,8 +1569,21 @@ L_08960350: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08960388u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 35u, 0x08960388u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960388u) goto L_08960388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960388: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); @@ -1357,8 +1621,8 @@ L_089603C4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089603D4: @@ -1402,8 +1666,8 @@ L_08960418: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960424: @@ -1418,8 +1682,8 @@ L_08960424: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960450: @@ -1497,8 +1761,8 @@ L_089604D0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089604E0: @@ -1582,8 +1846,8 @@ L_08960580: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960590: @@ -1637,8 +1901,21 @@ L_089605F8: } L_08960600: aot_gpr_31 = (0x08960608u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 73u, 0x08960608u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960608u) goto L_08960608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960608: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1687,8 +1964,21 @@ L_08960650: } L_08960658: aot_gpr_31 = (0x08960660u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 81u, 0x08960660u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960660u) goto L_08960660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960660: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1732,8 +2022,21 @@ L_089606AC: } L_089606B4: aot_gpr_31 = (0x089606BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 86u, 0x089606BCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089606BCu) goto L_089606BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089606BC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -1743,8 +2046,8 @@ L_089606BC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089606D0: @@ -1807,8 +2110,8 @@ L_089606FC: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(341), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(328), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089607E0: @@ -1848,8 +2151,8 @@ L_08960808: goto L_0896080C; L_0896080C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960814: @@ -1870,8 +2173,21 @@ L_08960814: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x0896085Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 97u, 0x0896085Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896085Cu) goto L_0896085C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896085C: aot_gpr_4 = (16585u << 16u); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1894,8 +2210,21 @@ L_08960880: aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_gpr_31 = (0x089608A4u); aot_fpr_12 = aot_fpr_14 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 99u, 0x089608A4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089608A4u) goto L_089608A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089608A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -1907,8 +2236,21 @@ L_089608A4: L_089608B8: aot_gpr_31 = (0x089608C0u); aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 101u, 0x089608C0u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089608C0u) goto L_089608C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089608C0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -1953,8 +2295,8 @@ L_08960910: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896093C: @@ -1966,8 +2308,21 @@ L_0896093C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0896095Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 106u, 0x0896095Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896095Cu) goto L_0896095C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896095C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2033,8 +2388,8 @@ L_089609A0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089609B4: @@ -2046,8 +2401,21 @@ L_089609B4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089609D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 112u, 0x089609D4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089609D4u) goto L_089609D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089609D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2113,8 +2481,8 @@ L_08960A18: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960A2C: @@ -2139,8 +2507,21 @@ L_08960A60: aot_gpr_6 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08960A70u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 119u, 0x08960A70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960A70u) goto L_08960A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960A70: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(32))); @@ -2204,8 +2585,21 @@ L_08960AD4: aot_gpr_6 = (ctx.gpr[29] + static_cast(33)); aot_gpr_31 = (0x08960AE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 127u, 0x08960AE4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960AE4u) goto L_08960AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960AE4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(33))); @@ -2240,8 +2634,21 @@ L_08960B28: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960B3Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 131u, 0x08960B3Cu, 0x089A8CF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 118u, 0x089A8CF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960B3Cu) goto L_08960B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960B3C: aot_gpr_4 = (0u | 10u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -2255,8 +2662,21 @@ L_08960B48: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960B58u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 133u, 0x08960B58u, 0x089ABCECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 817u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 817u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 817u, 0x089ABCECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960B58u) goto L_08960B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960B58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2306,8 +2726,21 @@ L_08960B8C: aot_gpr_6 = (ctx.gpr[29] + static_cast(34)); aot_gpr_31 = (0x08960B9Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 140u, 0x08960B9Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960B9Cu) goto L_08960B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960B9C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(34))); @@ -2379,8 +2812,21 @@ L_08960C14: L_08960C1C: aot_gpr_31 = (0x08960C24u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 148u, 0x08960C24u, 0x0890EF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 696u, 0x0890EF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960C24u) goto L_08960C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960C24: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u | 1u); @@ -2402,8 +2848,21 @@ L_08960C40: aot_gpr_6 = (ctx.gpr[29] + static_cast(35)); aot_gpr_31 = (0x08960C50u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 151u, 0x08960C50u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960C50u) goto L_08960C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960C50: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(35))); @@ -2450,8 +2909,21 @@ L_08960C90: aot_gpr_6 = (ctx.gpr[29] + static_cast(36)); aot_gpr_31 = (0x08960CA0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 158u, 0x08960CA0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960CA0u) goto L_08960CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960CA0: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(36))); @@ -2493,8 +2965,21 @@ L_08960CDC: aot_gpr_6 = (ctx.gpr[29] + static_cast(37)); aot_gpr_31 = (0x08960CECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 164u, 0x08960CECu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960CECu) goto L_08960CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960CEC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(37))); @@ -2537,8 +3022,21 @@ L_08960D24: aot_gpr_6 = (ctx.gpr[29] + static_cast(38)); aot_gpr_31 = (0x08960D34u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 170u, 0x08960D34u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960D34u) goto L_08960D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960D34: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(38))); @@ -2582,8 +3080,21 @@ L_08960D74: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_31 = (0x08960D84u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 176u, 0x08960D84u, 0x08ADCEC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 266u, 0x08ADCEC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960D84u) goto L_08960D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960D84: aot_gpr_4 = (0u | 20u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(324), static_cast(aot_gpr_4)); @@ -2601,8 +3112,8 @@ L_08960D8C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960DB0: @@ -2627,8 +3138,8 @@ L_08960DC8: goto L_08960DCC; L_08960DCC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960DD4: @@ -2653,8 +3164,8 @@ L_08960DEC: goto L_08960DF0; L_08960DF0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08960DF8: @@ -2678,8 +3189,21 @@ L_08960DF8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08960E48u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 187u, 0x08960E48u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960E48u) goto L_08960E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960E48: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2693,8 +3217,21 @@ L_08960E48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960E78u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 188u, 0x08960E78u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960E78u) goto L_08960E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960E78: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2708,8 +3245,21 @@ L_08960E78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960EA8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 189u, 0x08960EA8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960EA8u) goto L_08960EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960EA8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2723,8 +3273,21 @@ L_08960EA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960ED8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 190u, 0x08960ED8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960ED8u) goto L_08960ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960ED8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2738,8 +3301,21 @@ L_08960ED8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960F08u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 191u, 0x08960F08u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960F08u) goto L_08960F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960F08: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2753,8 +3329,21 @@ L_08960F08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960F38u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 192u, 0x08960F38u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960F38u) goto L_08960F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960F38: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2768,8 +3357,21 @@ L_08960F38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960F68u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 193u, 0x08960F68u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960F68u) goto L_08960F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960F68: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2783,8 +3385,21 @@ L_08960F68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960F98u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 194u, 0x08960F98u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960F98u) goto L_08960F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960F98: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2798,8 +3413,21 @@ L_08960F98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960FC8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 195u, 0x08960FC8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960FC8u) goto L_08960FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960FC8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2813,8 +3441,21 @@ L_08960FC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08960FF8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 196u, 0x08960FF8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08960FF8u) goto L_08960FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08960FF8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2828,8 +3469,21 @@ L_08960FF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961028u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 197u, 0x08961028u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961028u) goto L_08961028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961028: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2843,8 +3497,21 @@ L_08961028: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961058u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 198u, 0x08961058u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961058u) goto L_08961058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961058: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2858,8 +3525,21 @@ L_08961058: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961088u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 199u, 0x08961088u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961088u) goto L_08961088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961088: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2873,8 +3553,21 @@ L_08961088: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089610B8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 200u, 0x089610B8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089610B8u) goto L_089610B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089610B8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2888,8 +3581,21 @@ L_089610B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089610E8u); aot_gpr_6 = (0u | 70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 201u, 0x089610E8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089610E8u) goto L_089610E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089610E8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2903,8 +3609,21 @@ L_089610E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961118u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 202u, 0x08961118u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961118u) goto L_08961118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961118: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_6 = (aot_gpr_5 + aot_gpr_5); @@ -2917,8 +3636,21 @@ L_08961118: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_gpr_31 = (0x08961144u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 203u, 0x08961144u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961144u) goto L_08961144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961144: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -2928,8 +3660,8 @@ L_08961144: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08961158: @@ -2951,8 +3683,21 @@ L_08961158: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089611A0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 205u, 0x089611A0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089611A0u) goto L_089611A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089611A0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2966,8 +3711,21 @@ L_089611A0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089611D0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 206u, 0x089611D0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089611D0u) goto L_089611D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089611D0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2981,8 +3739,21 @@ L_089611D0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961200u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 207u, 0x08961200u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961200u) goto L_08961200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961200: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2996,8 +3767,21 @@ L_08961200: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961230u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 208u, 0x08961230u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961230u) goto L_08961230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961230: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3011,8 +3795,21 @@ L_08961230: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961260u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 209u, 0x08961260u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961260u) goto L_08961260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961260: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3026,8 +3823,21 @@ L_08961260: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961290u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 210u, 0x08961290u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961290u) goto L_08961290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961290: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3041,8 +3851,21 @@ L_08961290: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089612C0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 211u, 0x089612C0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089612C0u) goto L_089612C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089612C0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3056,8 +3879,21 @@ L_089612C0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089612F0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 212u, 0x089612F0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089612F0u) goto L_089612F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089612F0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3071,8 +3907,21 @@ L_089612F0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961320u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 213u, 0x08961320u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961320u) goto L_08961320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961320: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3086,8 +3935,21 @@ L_08961320: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961350u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 214u, 0x08961350u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961350u) goto L_08961350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961350: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3101,8 +3963,21 @@ L_08961350: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961380u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 215u, 0x08961380u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961380u) goto L_08961380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961380: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3116,8 +3991,21 @@ L_08961380: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089613B0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 216u, 0x089613B0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089613B0u) goto L_089613B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089613B0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3131,8 +4019,21 @@ L_089613B0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089613E0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 217u, 0x089613E0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089613E0u) goto L_089613E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089613E0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3146,8 +4047,21 @@ L_089613E0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961410u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 218u, 0x08961410u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961410u) goto L_08961410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961410: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3161,8 +4075,21 @@ L_08961410: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961440u); aot_gpr_6 = (0u | 70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 219u, 0x08961440u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961440u) goto L_08961440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961440: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -3176,8 +4103,21 @@ L_08961440: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08961470u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 220u, 0x08961470u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961470u) goto L_08961470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961470: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); @@ -3190,8 +4130,21 @@ L_08961470: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); aot_gpr_31 = (0x0896149Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 221u, 0x0896149Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896149Cu) goto L_0896149C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896149C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -3201,8 +4154,8 @@ L_0896149C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089614B0: @@ -3234,8 +4187,21 @@ L_089614E0: L_089614E4: aot_gpr_31 = (0x089614ECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 227u, 0x089614ECu, 0x089BAA4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 552u, 0x089BAA4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089614ECu) goto L_089614EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089614EC: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3250,8 +4216,21 @@ L_089614F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x0896150Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(212), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 229u, 0x0896150Cu, 0x08A363D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 563u, 0x08A363D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896150Cu) goto L_0896150C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896150C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -3263,8 +4242,21 @@ L_08961518: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08961524u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 231u, 0x08961524u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961524u) goto L_08961524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961524: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3288,15 +4280,41 @@ L_0896153C: L_08961544: aot_gpr_31 = (0x0896154Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-17580)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 236u, 0x0896154Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896154Cu) goto L_0896154C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896154C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 4000u); aot_gpr_31 = (0x0896155Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 237u, 0x0896155Cu, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896155Cu) goto L_0896155C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896155C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9032))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -3330,8 +4348,8 @@ L_08961598: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089615AC: @@ -3363,8 +4381,21 @@ L_089615DC: L_089615E0: aot_gpr_31 = (0x089615E8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 246u, 0x089615E8u, 0x089BAA4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 552u, 0x089BAA4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089615E8u) goto L_089615E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089615E8: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3380,8 +4411,21 @@ L_089615F4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(341), static_cast(0u)); aot_gpr_31 = (0x0896160Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(212), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 248u, 0x0896160Cu, 0x08A363D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 563u, 0x08A363D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896160Cu) goto L_0896160C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896160C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -3393,8 +4437,21 @@ L_08961618: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08961624u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 250u, 0x08961624u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961624u) goto L_08961624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961624: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3418,20 +4475,59 @@ L_0896163C: L_08961644: aot_gpr_31 = (0x0896164Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-17572)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 255u, 0x0896164Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896164Cu) goto L_0896164C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896164C: aot_gpr_31 = (0x08961654u); aot_gpr_16 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 256u, 0x08961654u, 0x08A17A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 606u, 0x08A17A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961654u) goto L_08961654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961654: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 5000u); aot_gpr_31 = (0x08961664u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 257u, 0x08961664u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961664u) goto L_08961664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961664: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9036))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -3465,8 +4561,8 @@ L_089616A0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089616B4: @@ -3485,14 +4581,27 @@ L_089616C8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x089616DCu); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(212), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 263u, 0x089616DCu, 0x08A363D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 563u, 0x08A363D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089616DCu) goto L_089616DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089616DC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089616E8: @@ -3537,8 +4646,21 @@ L_08961720: } L_08961730: aot_gpr_31 = (0x08961738u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 269u, 0x08961738u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961738u) goto L_08961738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961738: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); goto L_0896173C; @@ -3562,15 +4684,28 @@ L_0896174C: } L_0896175C: aot_gpr_31 = (0x08961764u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 273u, 0x08961764u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08961764u) goto L_08961764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08961764: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08961774: @@ -3600,8 +4735,21 @@ L_089617A4: ctx.gpr[17] = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089617B0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 277u, 0x089617B0u, 0x0897FD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 962u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 962u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 962u, 0x0897FD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089617B0u) goto L_089617B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089617B0: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -3636,8 +4784,8 @@ L_089617E4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089617F8: @@ -3707,8 +4855,8 @@ L_089617F8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08961854: @@ -3736,8 +4884,21 @@ L_08961854: L_089618B4: aot_gpr_31 = (0x089618BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 284u, 0x089618BCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089618BCu) goto L_089618BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089618BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3792,8 +4953,21 @@ L_08961920: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_31 = (0x0896192Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 290u, 0x0896192Cu, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896192Cu) goto L_0896192C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896192C: { const bool branch_taken = static_cast(ctx.gpr[2]) <= 0; if (branch_taken) { @@ -3848,8 +5022,21 @@ L_0896197C: L_08961984: aot_gpr_31 = (0x0896198Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 299u, 0x0896198Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896198Cu) goto L_0896198C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896198C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5603,8 +6790,21 @@ L_089628C4: L_089628DC: aot_gpr_31 = (0x089628E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 481u, 0x089628E4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089628E4u) goto L_089628E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089628E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5620,8 +6820,21 @@ L_089628EC: L_089628F4: aot_gpr_31 = (0x089628FCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 484u, 0x089628FCu, 0x0898D1B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 400u, 0x0898D1B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089628FCu) goto L_089628FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089628FC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5638,8 +6851,21 @@ L_08962904: L_0896290C: aot_gpr_31 = (0x08962914u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 487u, 0x08962914u, 0x0898D168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 392u, 0x0898D168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08962914u) goto L_08962914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08962914: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08962918; @@ -5743,8 +6969,21 @@ L_089629C8: L_089629D0: aot_gpr_31 = (0x089629D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 500u, 0x089629D8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089629D8u) goto L_089629D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089629D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5901,8 +7140,21 @@ L_08962AF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_31 = (0x08962B00u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 518u, 0x08962B00u, 0x089AD800u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 408u, 0x089AD800u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08962B00u) goto L_08962B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08962B00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(464))); @@ -5920,8 +7172,21 @@ L_08962B18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_31 = (0x08962B24u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 521u, 0x08962B24u, 0x089AD800u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 408u, 0x089AD800u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08962B24u) goto L_08962B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08962B24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(464))); @@ -6052,8 +7317,21 @@ L_08962C38: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08962C48u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 532u, 0x08962C48u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08962C48u) goto L_08962C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08962C48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6093,8 +7371,21 @@ L_08962C80: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08962C90u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 537u, 0x08962C90u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08962C90u) goto L_08962C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08962C90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6140,8 +7431,21 @@ L_08962CDC: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08962CECu); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 541u, 0x08962CECu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08962CECu) goto L_08962CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08962CEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6198,8 +7502,21 @@ L_08962D54: L_08962D5C: aot_gpr_31 = (0x08962D64u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 548u, 0x08962D64u, 0x0898D1B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 400u, 0x0898D1B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08962D64u) goto L_08962D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08962D64: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); @@ -6354,8 +7671,21 @@ L_08962EAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_31 = (0x08962EB8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 564u, 0x08962EB8u, 0x089A9810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 277u, 0x089A9810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08962EB8u) goto L_08962EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08962EB8: { const bool branch_taken = aot_gpr_16 != 0u; aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(180), aot_gpr_16); @@ -6517,8 +7847,21 @@ L_08963020: } L_08963030: aot_gpr_31 = (0x08963038u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 580u, 0x08963038u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963038u) goto L_08963038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963038: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -6721,8 +8064,21 @@ L_089631F0: aot_gpr_6 = (ctx.gpr[29] + static_cast(128)); aot_gpr_31 = (0x08963200u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 604u, 0x08963200u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963200u) goto L_08963200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963200: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(128))); @@ -6795,8 +8151,21 @@ L_0896327C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); aot_gpr_31 = (0x0896328Cu); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 614u, 0x0896328Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896328Cu) goto L_0896328C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896328C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6881,8 +8250,21 @@ L_08963324: aot_gpr_16 = (0u | 1u); aot_gpr_31 = (0x08963334u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 623u, 0x08963334u, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963334u) goto L_08963334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963334: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6895,8 +8277,21 @@ L_0896333C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); aot_gpr_31 = (0x0896334Cu); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 625u, 0x0896334Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896334Cu) goto L_0896334C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896334C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_5 = (0u | 2u); @@ -6904,16 +8299,42 @@ L_0896334C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_31 = (0x08963364u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 626u, 0x08963364u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963364u) goto L_08963364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963364: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(2274))); aot_gpr_31 = (0x08963378u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 627u, 0x08963378u, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963378u) goto L_08963378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963378: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6951,8 +8372,21 @@ L_089633A0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); aot_gpr_31 = (0x089633C4u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 632u, 0x089633C4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089633C4u) goto L_089633C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089633C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6973,8 +8407,21 @@ L_089633DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); aot_gpr_31 = (0x089633E8u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 635u, 0x089633E8u, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089633E8u) goto L_089633E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089633E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6989,16 +8436,42 @@ L_089633F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_31 = (0x08963408u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 637u, 0x08963408u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963408u) goto L_08963408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963408: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(60))); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(2274))); aot_gpr_31 = (0x0896341Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 638u, 0x0896341Cu, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896341Cu) goto L_0896341C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896341C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(216))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7052,15 +8525,41 @@ L_08963468: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08963484u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 644u, 0x08963484u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963484u) goto L_08963484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963484: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08963494u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 645u, 0x08963494u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963494u) goto L_08963494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963494: aot_gpr_4 = (aot_gpr_16 < static_cast(2001) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7092,45 +8591,149 @@ L_089634BC: aot_gpr_16 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x089634D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 649u, 0x089634D0u, 0x08A1CC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 125u, 0x08A1CC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089634D0u) goto L_089634D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089634D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089634E4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 650u, 0x089634E4u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089634E4u) goto L_089634E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089634E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x089634F4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 651u, 0x089634F4u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089634F4u) goto L_089634F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089634F4: aot_gpr_31 = (0x089634FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 652u, 0x089634FCu, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089634FCu) goto L_089634FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089634FC: aot_gpr_31 = (0x08963504u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 653u, 0x08963504u, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963504u) goto L_08963504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963504: aot_gpr_31 = (0x0896350Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 654u, 0x0896350Cu, 0x08A7C6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 11u, 0x08A7C6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896350Cu) goto L_0896350C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896350C: aot_gpr_31 = (0x08963514u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 655u, 0x08963514u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963514u) goto L_08963514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963514: aot_gpr_31 = (0x0896351Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 656u, 0x0896351Cu, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896351Cu) goto L_0896351C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896351C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(184))); goto L_08963520; @@ -7214,8 +8817,21 @@ L_089635D8: L_089635E0: aot_gpr_31 = (0x089635E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 668u, 0x089635E8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089635E8u) goto L_089635E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089635E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7405,8 +9021,21 @@ L_08963760: aot_gpr_4 = (ctx.gpr[2] + static_cast(944)); aot_gpr_31 = (0x0896376Cu); aot_gpr_5 = (0u | 225u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 696u, 0x0896376Cu, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896376Cu) goto L_0896376C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896376C: aot_gpr_31 = (0x08963774u); goto L_089602C8; @@ -7787,8 +9416,21 @@ L_08963A08: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08963A34u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 753u, 0x08963A34u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963A34u) goto L_08963A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963A34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7946,8 +9588,21 @@ L_08963B10: } L_08963B1C: aot_gpr_31 = (0x08963B24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 772u, 0x08963B24u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963B24u) goto L_08963B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963B24: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7957,8 +9612,21 @@ L_08963B24: } L_08963B2C: aot_gpr_31 = (0x08963B34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 774u, 0x08963B34u, 0x08AAE97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 530u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 530u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 530u, 0x08AAE97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963B34u) goto L_08963B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963B34: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8042,8 +9710,8 @@ L_08963BAC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08963BF4: @@ -8151,8 +9819,21 @@ L_08963D18: aot_gpr_6 = (ctx.gpr[29] + static_cast(180)); aot_gpr_31 = (0x08963D28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 792u, 0x08963D28u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963D28u) goto L_08963D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963D28: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(180))); @@ -8458,8 +10139,21 @@ L_08963FA0: aot_gpr_6 = (ctx.gpr[29] + static_cast(181)); aot_gpr_31 = (0x08963FB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0087->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0087_entry, 828u, 0x08963FB0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08963FB0u) goto L_08963FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08963FB0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(181))); diff --git a/profiles/vcs/generated/generated_unit_0088.cpp b/profiles/vcs/generated/generated_unit_0088.cpp index d278372..26fdbc6 100644 --- a/profiles/vcs/generated/generated_unit_0088.cpp +++ b/profiles/vcs/generated/generated_unit_0088.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0088[64] = { 272u, 283u, 300u, 320u, 333u, 340u, 347u, 351u, 367u, 388u, 409u, 422u, 439u, 446u, 459u, 473u, 487u, 504u, 517u, 528u, 537u, 554u, 572u, 588u, 609u, 625u, 643u, 665u, 685u, 702u, 717u, 734u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0088[4095] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 2u, 0u, 3u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 0u, 10u, 0u, 11u, 0u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 14u, 0u, + 0u, 0u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 17u, 0u, 0u, 18u, 0u, 19u, 0u, 20u, 0u, 0u, 21u, 0u, 0u, 22u, 0u, 23u, 0u, 0u, 0u, 0u, + 24u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 27u, 0u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 30u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 32u, 0u, 33u, 0u, 0u, 34u, 0u, 0u, 35u, 0u, 0u, 36u, 0u, 0u, 37u, 0u, 0u, 0u, 38u, 0u, + 0u, 39u, 0u, 0u, 0u, 40u, 0u, 0u, 41u, 42u, 43u, 0u, 44u, 0u, 0u, 45u, 46u, 0u, 0u, 0u, 0u, 47u, 0u, 48u, 49u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 52u, 0u, 0u, 0u, 53u, 0u, 0u, 0u, 0u, 54u, 0u, 0u, 55u, 56u, 0u, 0u, 0u, 0u, 0u, 57u, 0u, 58u, 0u, 0u, + 0u, 59u, 60u, 0u, 0u, 0u, 0u, 61u, 0u, 0u, 62u, 0u, 63u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 64u, 0u, 0u, 65u, 0u, 66u, 0u, 0u, 0u, + 0u, 67u, 0u, 0u, 68u, 0u, 69u, 0u, 0u, 0u, 0u, 70u, 0u, 71u, 0u, 0u, 0u, 0u, 72u, 0u, 73u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 78u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 79u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 84u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 89u, 0u, 0u, + 0u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 93u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 0u, 96u, 0u, 0u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 98u, + 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 100u, 0u, 0u, 0u, 0u, 0u, 101u, 102u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 0u, 104u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 105u, 0u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 107u, 108u, 109u, 0u, 110u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 112u, 0u, 0u, + 0u, 0u, 0u, 113u, 0u, 0u, 0u, 0u, 0u, 114u, 115u, 116u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 0u, 119u, 120u, 121u, 0u, 122u, 0u, 0u, + 0u, 123u, 0u, 0u, 0u, 124u, 0u, 125u, 126u, 127u, 0u, 128u, 0u, 0u, 0u, 129u, 130u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 132u, 0u, 0u, 0u, 133u, + 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 136u, 0u, 137u, 0u, 138u, 0u, 139u, 0u, 0u, 0u, 0u, 140u, 141u, 142u, 0u, 143u, 144u, 0u, 0u, 0u, + 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 0u, 147u, 0u, 0u, 148u, 0u, 0u, 149u, 0u, 150u, 0u, 0u, 0u, 0u, 151u, 0u, 152u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 153u, 0u, 0u, 154u, 0u, 155u, 156u, 0u, 0u, 0u, 157u, 0u, 0u, 0u, 158u, 0u, 0u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 160u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 161u, 0u, 0u, 162u, 0u, 0u, 163u, 0u, 0u, 0u, 0u, 0u, 0u, 164u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 165u, 0u, 0u, 0u, 0u, 166u, + 0u, 0u, 0u, 0u, 167u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 170u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 171u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, 0u, 0u, 174u, 0u, 0u, 0u, 0u, 0u, 175u, 176u, 0u, 0u, 0u, + 177u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 0u, 0u, 0u, 0u, 181u, 0u, 0u, 0u, 182u, 0u, 0u, 0u, 0u, + 183u, 0u, 0u, 184u, 0u, 0u, 185u, 0u, 186u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 188u, 0u, 0u, 0u, 189u, 0u, 0u, 190u, 0u, 0u, 0u, + 0u, 191u, 0u, 0u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 0u, 194u, 0u, 0u, 195u, 0u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 198u, 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 0u, 0u, 0u, + 0u, 204u, 0u, 0u, 0u, 205u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 209u, 0u, 0u, 210u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 213u, 0u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 217u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 0u, 0u, 221u, 0u, + 0u, 222u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 225u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 0u, + 0u, 0u, 0u, 228u, 0u, 0u, 0u, 229u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, 0u, 233u, 0u, 0u, 234u, + 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 0u, 0u, 237u, 0u, 0u, 238u, 0u, 0u, 0u, 0u, 0u, 239u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 240u, 0u, 0u, 0u, 241u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 245u, 0u, 0u, 246u, 0u, 0u, 0u, + 0u, 0u, 247u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 249u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, + 0u, 0u, 0u, 0u, 251u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 253u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 256u, + 0u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 259u, 0u, 0u, 260u, 0u, 0u, 261u, 0u, 0u, 262u, 0u, 0u, 263u, 0u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 266u, 0u, 0u, 267u, 0u, 0u, 268u, 0u, 0u, 269u, 0u, 0u, 270u, 0u, 0u, 0u, 0u, 271u, 0u, 0u, + 272u, 0u, 0u, 0u, 0u, 273u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 278u, 0u, 0u, 279u, 0u, 280u, 0u, 281u, 0u, 282u, 0u, 0u, + 0u, 0u, 283u, 0u, 0u, 284u, 0u, 285u, 0u, 286u, 0u, 0u, 0u, 287u, 0u, 0u, 288u, 0u, 289u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 291u, 0u, 0u, 0u, 292u, 0u, 0u, 0u, 293u, 0u, 294u, 295u, 296u, 0u, 0u, 0u, 297u, 0u, 0u, 298u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, + 300u, 301u, 302u, 0u, 0u, 0u, 303u, 0u, 0u, 304u, 0u, 0u, 0u, 305u, 0u, 0u, 306u, 0u, 0u, 0u, 0u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 308u, 309u, 310u, 0u, + 0u, 0u, 311u, 0u, 0u, 312u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 314u, 315u, 316u, 0u, 0u, 0u, 317u, 0u, 0u, 318u, 0u, 0u, 0u, 319u, 0u, + 0u, 320u, 0u, 0u, 0u, 321u, 0u, 0u, 322u, 0u, 0u, 0u, 323u, 0u, 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 328u, 0u, 0u, 329u, 0u, 0u, 0u, 0u, 0u, 0u, 330u, 0u, 331u, 332u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 335u, 0u, 0u, 336u, 0u, 0u, 337u, 0u, 0u, 338u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 340u, 0u, 0u, 341u, 0u, 0u, 342u, 0u, 0u, 343u, 0u, 0u, 344u, 0u, 0u, 345u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 346u, 0u, 0u, + 347u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 0u, 0u, + 0u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 353u, 0u, 0u, 354u, 0u, 0u, 0u, 355u, 0u, 0u, + 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 358u, 0u, 0u, 359u, 0u, 0u, 360u, 0u, 361u, 0u, 362u, 0u, 363u, 0u, 364u, 0u, 365u, 0u, 0u, 366u, + 0u, 367u, 0u, 368u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 0u, 370u, 0u, 0u, 371u, 0u, 0u, 372u, 0u, 373u, 0u, 374u, 375u, 0u, 0u, 376u, 0u, 377u, 0u, 0u, 378u, + 0u, 0u, 379u, 0u, 0u, 380u, 381u, 0u, 0u, 0u, 382u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 0u, 384u, 0u, 385u, 0u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 387u, 0u, + 0u, 0u, 388u, 0u, 0u, 389u, 0u, 0u, 390u, 0u, 0u, 391u, 0u, 0u, 392u, 0u, 0u, 393u, 0u, 394u, 0u, 395u, 0u, 396u, 0u, 0u, 0u, 0u, 0u, 397u, 0u, 0u, + 398u, 0u, 399u, 0u, 0u, 400u, 0u, 0u, 401u, 0u, 402u, 0u, 0u, 0u, 403u, 0u, 0u, 404u, 0u, 405u, 0u, 0u, 0u, 406u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 408u, + 0u, 0u, 409u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, 412u, 0u, 0u, 413u, 0u, 414u, 0u, 0u, 415u, 0u, 0u, 416u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 419u, 0u, 0u, 420u, 0u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 0u, 0u, + 422u, 0u, 0u, 423u, 0u, 424u, 0u, 425u, 0u, 0u, 426u, 0u, 0u, 0u, 427u, 0u, 428u, 0u, 429u, 0u, 0u, 430u, 0u, 431u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, + 433u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 0u, 438u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 0u, 0u, 0u, 441u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 442u, 0u, 443u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 446u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 449u, 450u, 0u, 451u, + 0u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 453u, 0u, 0u, 454u, 0u, 0u, 0u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, 0u, 456u, 0u, 0u, 0u, 0u, 457u, 0u, 458u, + 0u, 459u, 0u, 460u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 463u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 464u, + 0u, 0u, 0u, 465u, 0u, 0u, 466u, 467u, 0u, 0u, 0u, 468u, 469u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, + 473u, 0u, 0u, 474u, 0u, 475u, 476u, 0u, 0u, 477u, 478u, 0u, 0u, 479u, 0u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 482u, 0u, 483u, 0u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 486u, 0u, 0u, + 0u, 0u, 0u, 0u, 487u, 0u, 0u, 488u, 0u, 489u, 490u, 0u, 0u, 491u, 0u, 0u, 0u, 492u, 493u, 0u, 0u, 0u, 0u, 494u, 0u, 0u, 0u, 0u, 495u, 0u, 0u, 496u, + 0u, 0u, 0u, 497u, 0u, 0u, 0u, 498u, 0u, 0u, 0u, 499u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 501u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 503u, 0u, + 504u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 507u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 510u, 0u, 511u, 0u, 0u, 0u, + 0u, 512u, 0u, 0u, 0u, 0u, 513u, 0u, 0u, 514u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 516u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 517u, 0u, 0u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 519u, 0u, 520u, 0u, 0u, 0u, 521u, 0u, 0u, 0u, 522u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 523u, 0u, 524u, 0u, 0u, 0u, 0u, 0u, 0u, 525u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 527u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 0u, 0u, 529u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 532u, 0u, 0u, + 0u, 0u, 533u, 0u, 0u, 0u, 0u, 0u, 534u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 535u, 536u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 537u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, 539u, 540u, 0u, 0u, 541u, 0u, 0u, 542u, 0u, 543u, 0u, 544u, 0u, 545u, 0u, + 0u, 546u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 547u, 0u, 0u, 548u, 0u, 549u, 0u, 550u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 553u, + 0u, 554u, 0u, 0u, 0u, 0u, 555u, 0u, 556u, 0u, 557u, 0u, 558u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 559u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 0u, 0u, 561u, + 0u, 0u, 0u, 0u, 562u, 0u, 563u, 0u, 564u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 565u, 0u, 566u, 0u, 0u, 0u, 0u, 567u, 0u, 568u, 0u, 569u, 0u, 570u, 0u, 571u, + 0u, 0u, 0u, 572u, 0u, 0u, 0u, 0u, 573u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 577u, + 0u, 578u, 0u, 579u, 0u, 580u, 0u, 0u, 581u, 0u, 0u, 0u, 0u, 582u, 0u, 0u, 583u, 0u, 584u, 585u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 587u, 0u, + 0u, 588u, 0u, 589u, 590u, 0u, 0u, 0u, 0u, 0u, 0u, 591u, 0u, 592u, 0u, 0u, 0u, 0u, 593u, 0u, 0u, 0u, 594u, 0u, 0u, 595u, 0u, 596u, 597u, 0u, 0u, 0u, + 0u, 0u, 598u, 0u, 0u, 0u, 0u, 0u, 599u, 0u, 600u, 0u, 0u, 601u, 0u, 602u, 0u, 603u, 0u, 0u, 604u, 0u, 605u, 0u, 0u, 606u, 0u, 607u, 0u, 0u, 608u, 0u, + 609u, 0u, 0u, 0u, 610u, 0u, 0u, 0u, 0u, 0u, 611u, 0u, 612u, 0u, 613u, 0u, 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 616u, 0u, + 617u, 0u, 618u, 0u, 619u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 620u, 0u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 623u, 0u, 624u, 0u, + 625u, 0u, 0u, 626u, 0u, 627u, 0u, 0u, 0u, 0u, 628u, 0u, 0u, 0u, 0u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 631u, 0u, 632u, 0u, 0u, 633u, + 0u, 0u, 0u, 0u, 0u, 0u, 634u, 0u, 0u, 635u, 0u, 636u, 0u, 0u, 637u, 0u, 0u, 0u, 638u, 0u, 639u, 0u, 640u, 0u, 641u, 0u, 0u, 0u, 0u, 0u, 0u, 642u, + 0u, 643u, 0u, 644u, 0u, 645u, 0u, 646u, 0u, 647u, 0u, 648u, 0u, 649u, 0u, 650u, 0u, 651u, 0u, 652u, 653u, 0u, 0u, 654u, 0u, 655u, 0u, 0u, 0u, 0u, 656u, 0u, + 657u, 0u, 658u, 0u, 659u, 0u, 660u, 0u, 0u, 0u, 661u, 0u, 0u, 0u, 0u, 662u, 0u, 0u, 0u, 663u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 664u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 665u, 0u, 0u, 666u, 0u, 667u, 0u, 668u, 0u, 669u, 0u, 0u, 0u, 670u, 0u, 0u, 0u, 0u, 671u, 0u, 0u, 0u, 0u, 0u, 672u, 0u, 0u, 0u, 673u, + 0u, 0u, 0u, 0u, 0u, 674u, 0u, 675u, 0u, 676u, 0u, 677u, 0u, 0u, 678u, 0u, 679u, 0u, 680u, 0u, 0u, 681u, 0u, 0u, 0u, 682u, 0u, 683u, 0u, 0u, 684u, 0u, + 685u, 0u, 0u, 686u, 0u, 0u, 0u, 687u, 0u, 0u, 0u, 0u, 0u, 0u, 688u, 0u, 0u, 0u, 0u, 689u, 0u, 690u, 0u, 691u, 0u, 692u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 693u, 0u, 0u, 694u, 0u, 0u, 0u, 0u, 0u, 0u, 695u, 0u, 0u, 0u, 0u, 696u, 0u, 697u, 0u, 698u, 0u, 699u, 0u, 0u, 700u, 0u, 0u, 0u, 701u, 0u, + 0u, 0u, 0u, 702u, 0u, 0u, 0u, 703u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 704u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 705u, 0u, 0u, 706u, 0u, 707u, 0u, 708u, 0u, + 709u, 0u, 0u, 0u, 710u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 713u, 0u, 714u, 0u, 715u, 0u, 0u, 716u, 0u, + 717u, 0u, 718u, 0u, 0u, 719u, 0u, 0u, 0u, 720u, 0u, 721u, 0u, 0u, 722u, 0u, 723u, 0u, 0u, 724u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 725u, 0u, 0u, 0u, 0u, + 726u, 0u, 727u, 0u, 728u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 0u, 0u, 0u, 730u, 0u, 731u, 0u, 732u, 0u, 0u, 0u, 0u, 733u, 0u, + 734u, 0u, 735u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 736u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 737u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 738u, 0u, 0u, 739u, 0u, 0u, 0u, 740u, 0u, 741u, +}; void recomp_unit_0088_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,6,29,31,7 fprs=12,13,14,15 gpr_occ=4488 fpr_occ=373 gpr_total=6378 fpr_total=489 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08964000u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0088[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0088[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0088[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08964000; @@ -819,6 +942,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08964000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -907,8 +1054,21 @@ L_08964000: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08964084u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 2u, 0x08964084u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964084u) goto L_08964084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964084: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -919,8 +1079,21 @@ L_08964084: L_0896408C: aot_gpr_31 = (0x08964094u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 4u, 0x08964094u, 0x08970464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 82u, 0x08970464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964094u) goto L_08964094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964094: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -936,8 +1109,21 @@ L_0896409C: ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(228))); aot_gpr_31 = (0x089640B8u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 6u, 0x089640B8u, 0x08960814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 96u, 0x08960814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089640B8u) goto L_089640B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089640B8: { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { @@ -967,8 +1153,8 @@ L_089640C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964108: @@ -993,8 +1179,21 @@ L_08964138: aot_gpr_4 = (aot_gpr_4 | 2u); aot_gpr_31 = (0x08964144u); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(2318), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 10u, 0x08964144u, 0x08895340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 249u, 0x08895340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964144u) goto L_08964144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964144: aot_gpr_31 = (0x0896414Cu); aot_gpr_4 = (0u | 0u); @@ -1005,8 +1204,21 @@ L_0896414C: aot_gpr_4 = (aot_gpr_4 | 32u); aot_gpr_31 = (0x0896415Cu); aot_mem.aot_direct_store16(ctx.gpr[2] + static_cast(154), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 12u, 0x0896415Cu, 0x0898B4F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 844u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 844u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 844u, 0x0898B4F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896415Cu) goto L_0896415C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896415C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (16384u << 16u); @@ -1044,22 +1256,61 @@ L_0896415C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3261), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089641ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 13u, 0x089641ECu, 0x08947574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 676u, 0x08947574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089641ECu) goto L_089641EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089641EC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089641F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 14u, 0x089641F8u, 0x089616E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 264u, 0x089616E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089641F8u) goto L_089641F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089641F8: aot_gpr_6 = (2238u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0896420Cu); ctx.gpr[17] = (aot_gpr_6 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 15u, 0x0896420Cu, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896420Cu) goto L_0896420C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896420C: aot_gpr_6 = (17786u << 16u); ctx.fpr[20] = std::bit_cast(aot_gpr_6); @@ -1067,41 +1318,132 @@ L_0896420C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08964224u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 16u, 0x08964224u, 0x089D0284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 32u, 0x089D0284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964224u) goto L_08964224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964224: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08964230u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 17u, 0x08964230u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964230u) goto L_08964230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964230: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0896423Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 18u, 0x0896423Cu, 0x089E94F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 262u, 0x089E94F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896423Cu) goto L_0896423C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896423C: aot_gpr_31 = (0x08964244u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 19u, 0x08964244u, 0x088807A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 66u, 0x088807A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964244u) goto L_08964244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964244: aot_gpr_31 = (0x0896424Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 20u, 0x0896424Cu, 0x08894CA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 165u, 0x08894CA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896424Cu) goto L_0896424C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896424C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08964258u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 21u, 0x08964258u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964258u) goto L_08964258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964258: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08964264u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 22u, 0x08964264u, 0x08894D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 177u, 0x08894D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964264u) goto L_08964264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964264: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1165,8 +1507,21 @@ L_08964280: aot_gpr_6 = (aot_gpr_6 | 16u); aot_gpr_31 = (0x0896433Cu); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(3261), static_cast(aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 25u, 0x0896433Cu, 0x08894CA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 165u, 0x08894CA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896433Cu) goto L_0896433C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896433C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -1177,8 +1532,8 @@ L_0896433C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089644F8: @@ -1208,8 +1563,8 @@ L_08964534: ctx.gpr[8] = (ctx.vfpu_scalar_bits_ct<0u>()); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(ctx.gpr[8]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964540: @@ -1288,8 +1643,8 @@ L_089645D0: ctx.gpr[8] = (ctx.vfpu_scalar_bits_ct<0u>()); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(ctx.gpr[8]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089645DC: @@ -1652,8 +2007,8 @@ L_089647B4: } L_089647C8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089647D0: @@ -1802,8 +2157,8 @@ L_089647D0: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1), static_cast(ctx.gpr[1])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964A14: @@ -1904,8 +2259,8 @@ L_08964A14: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1), static_cast(ctx.gpr[1])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964B98: @@ -1953,8 +2308,8 @@ L_08964BD8: } L_08964C1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964C24: @@ -1999,8 +2354,8 @@ L_08964C24: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1), static_cast(ctx.gpr[1])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_7 + static_cast(0), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964CC8: @@ -2084,8 +2439,8 @@ L_08964CC8: aot_fpr_12 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964E08: @@ -2143,8 +2498,8 @@ L_08964E08: aot_fpr_12 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964EE0: @@ -2197,8 +2552,8 @@ L_08964F54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964F68: @@ -2224,8 +2579,8 @@ L_08964F68: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_6 + static_cast(0))); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(3), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964FC0: @@ -2234,8 +2589,8 @@ L_08964FC0: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964FD4: @@ -2244,14 +2599,27 @@ L_08964FD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08964FE8u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 88u, 0x08964FE8u, 0x08A9AC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08964FE8u) goto L_08964FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08964FE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08964FF4: @@ -2260,8 +2628,21 @@ L_08964FF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08965008u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 90u, 0x08965008u, 0x089E7E00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 844u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 844u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 844u, 0x089E7E00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965008u) goto L_08965008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965008: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27076)); @@ -2274,8 +2655,8 @@ L_08965008: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965034: @@ -2294,8 +2675,21 @@ L_08965034: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08965070u); aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 92u, 0x08965070u, 0x089E7E64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 846u, 0x089E7E64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965070u) goto L_08965070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965070: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27076)); @@ -2332,8 +2726,8 @@ L_08965070: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089650F8: @@ -2430,8 +2824,8 @@ L_089651C0: L_089651DC: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089651E4: @@ -2637,16 +3031,16 @@ L_08965340: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965360: ctx.gpr[2] = (2198u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(21344)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896536C: @@ -2658,8 +3052,8 @@ L_0896537C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965388: @@ -2680,8 +3074,21 @@ L_089653A8: L_089653B0: aot_gpr_31 = (0x089653B8u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 137u, 0x089653B8u, 0x089E7F48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 849u, 0x089E7F48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089653B8u) goto L_089653B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089653B8: if (ctx.gpr[2] == ctx.gpr[16]) { ctx.gpr[17] = (0u | 1u); @@ -2690,8 +3097,21 @@ L_089653B8: goto L_089653C0; L_089653C0: aot_gpr_31 = (0x089653C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 139u, 0x089653C8u, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089653C8u) goto L_089653C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089653C8: aot_gpr_4 = (ctx.gpr[2] ^ ctx.gpr[16]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -2730,8 +3150,8 @@ L_089653F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896540C: @@ -2753,14 +3173,40 @@ L_08965428: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x0896543Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 147u, 0x0896543Cu, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896543Cu) goto L_0896543C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896543C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08965448u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 148u, 0x08965448u, 0x089E815Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 24u, 0x089E815Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965448u) goto L_08965448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965448: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2783,15 +3229,15 @@ L_0896545C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965470: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 6u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965478: @@ -2804,8 +3250,21 @@ L_08965478: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0896549Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 153u, 0x0896549Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896549Cu) goto L_0896549C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896549C: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2827,8 +3286,8 @@ L_089654B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089654C4: @@ -2857,8 +3316,8 @@ L_089654F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089654FC: @@ -2873,8 +3332,21 @@ L_089654FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08965528u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 161u, 0x08965528u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965528u) goto L_08965528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965528: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2888,8 +3360,21 @@ L_08965534: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08965540u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 163u, 0x08965540u, 0x089E7EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 848u, 0x089E7EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965540u) goto L_08965540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965540: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-27076)); @@ -2946,8 +3431,8 @@ L_089655E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089655FC: @@ -2961,8 +3446,8 @@ L_08965610: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896561C: @@ -2971,8 +3456,21 @@ L_0896561C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08965630u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 169u, 0x08965630u, 0x089E7FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 858u, 0x089E7FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965630u) goto L_08965630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965630: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(23640)); @@ -2982,8 +3480,8 @@ L_08965630: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965650: @@ -2998,8 +3496,21 @@ L_08965650: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(44), aot_run_words); } aot_gpr_31 = (0x08965680u); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 171u, 0x08965680u, 0x089E7FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 858u, 0x089E7FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965680u) goto L_08965680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965680: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(23640)); @@ -3021,8 +3532,21 @@ L_089656A0: aot_gpr_5 = (0u | 84u); aot_gpr_31 = (0x089656BCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 173u, 0x089656BCu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089656BCu) goto L_089656BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089656BC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -3054,22 +3578,61 @@ L_089656F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08965700u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 177u, 0x08965700u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965700u) goto L_08965700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965700: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_4 = (aot_gpr_4 + static_cast(116)); aot_gpr_31 = (0x08965714u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 178u, 0x08965714u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965714u) goto L_08965714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965714: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08965720u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 179u, 0x08965720u, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965720u) goto L_08965720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965720: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -3082,8 +3645,8 @@ L_08965720: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965740: @@ -3115,14 +3678,40 @@ L_0896576C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08965780u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 183u, 0x08965780u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965780u) goto L_08965780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965780: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896578Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 184u, 0x0896578Cu, 0x089E815Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 24u, 0x089E815Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896578Cu) goto L_0896578C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896578C: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3145,8 +3734,8 @@ L_089657A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089657B4: @@ -3168,8 +3757,21 @@ L_089657D4: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089657E4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 189u, 0x089657E4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089657E4u) goto L_089657E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089657E4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); @@ -3192,8 +3794,8 @@ L_08965804: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965818: @@ -3213,8 +3815,21 @@ L_08965830: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965840u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 194u, 0x08965840u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965840u) goto L_08965840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965840: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3227,8 +3842,8 @@ L_0896584C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965864: @@ -3254,8 +3869,21 @@ L_0896589C: aot_gpr_6 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x089658ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 198u, 0x089658ACu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089658ACu) goto L_089658AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089658AC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(64))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3356,8 +3984,8 @@ L_089659CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089659EC: @@ -3377,8 +4005,21 @@ L_08965A04: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965A14u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 205u, 0x08965A14u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965A14u) goto L_08965A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965A14: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3391,8 +4032,8 @@ L_08965A20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965A38: @@ -3416,8 +4057,21 @@ L_08965A60: aot_gpr_6 = (aot_gpr_29 + static_cast(24)); aot_gpr_31 = (0x08965A70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 209u, 0x08965A70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965A70u) goto L_08965A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965A70: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3439,8 +4093,8 @@ L_08965A7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965AAC: @@ -3460,8 +4114,21 @@ L_08965AC4: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965AD4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 213u, 0x08965AD4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965AD4u) goto L_08965AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965AD4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3474,8 +4141,8 @@ L_08965AE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965AF8: @@ -3497,8 +4164,21 @@ L_08965B18: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965B28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 217u, 0x08965B28u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965B28u) goto L_08965B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965B28: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); @@ -3515,8 +4195,8 @@ L_08965B34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965B50: @@ -3536,8 +4216,21 @@ L_08965B68: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965B78u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 221u, 0x08965B78u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965B78u) goto L_08965B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965B78: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3550,8 +4243,8 @@ L_08965B84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965B9C: @@ -3573,8 +4266,21 @@ L_08965BBC: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965BCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 225u, 0x08965BCCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965BCCu) goto L_08965BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965BCC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); @@ -3591,8 +4297,8 @@ L_08965BD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965BF4: @@ -3612,8 +4318,21 @@ L_08965C0C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965C1Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 229u, 0x08965C1Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965C1Cu) goto L_08965C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965C1C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3626,8 +4345,8 @@ L_08965C28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965C40: @@ -3649,8 +4368,21 @@ L_08965C60: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965C70u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 233u, 0x08965C70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965C70u) goto L_08965C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965C70: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); @@ -3667,8 +4399,8 @@ L_08965C7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965C98: @@ -3688,8 +4420,21 @@ L_08965CB0: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965CC0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 237u, 0x08965CC0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965CC0u) goto L_08965CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965CC0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3702,8 +4447,8 @@ L_08965CCC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965CE4: @@ -3725,8 +4470,21 @@ L_08965D04: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965D14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 241u, 0x08965D14u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965D14u) goto L_08965D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965D14: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); @@ -3743,8 +4501,8 @@ L_08965D20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965D3C: @@ -3764,8 +4522,21 @@ L_08965D54: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08965D64u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 245u, 0x08965D64u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965D64u) goto L_08965D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965D64: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -3778,8 +4549,8 @@ L_08965D70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965D88: @@ -3793,8 +4564,8 @@ L_08965D9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965DA8: @@ -3830,8 +4601,21 @@ L_08965DF8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(24)))))); aot_gpr_31 = (0x08965E10u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 251u, 0x08965E10u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965E10u) goto L_08965E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965E10: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); @@ -3865,8 +4649,21 @@ L_08965E4C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(26)))))); aot_gpr_31 = (0x08965E64u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 255u, 0x08965E64u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965E64u) goto L_08965E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965E64: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(68)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -3874,8 +4671,21 @@ L_08965E64: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(28)))))); aot_gpr_31 = (0x08965E7Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 256u, 0x08965E7Cu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965E7Cu) goto L_08965E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965E7C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -3893,8 +4703,8 @@ L_08965E90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08965EA8: @@ -3921,8 +4731,21 @@ L_08965EA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08965F04u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 259u, 0x08965F04u, 0x089E825Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 40u, 0x089E825Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08965F04u) goto L_08965F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08965F04: aot_gpr_4 = (ctx.gpr[17] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4086,8 +4909,8 @@ L_08966084: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089660A0: @@ -4101,8 +4924,21 @@ L_089660A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089660C8u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 277u, 0x089660C8u, 0x08ADC0B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 8u, 0x08ADC0B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089660C8u) goto L_089660C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089660C8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4135,8 +4971,21 @@ L_089660E4: L_089660EC: aot_gpr_31 = (0x089660F4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 282u, 0x089660F4u, 0x089E8590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 65u, 0x089E8590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089660F4u) goto L_089660F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089660F4: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -4173,8 +5022,21 @@ L_08966124: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08966134u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 287u, 0x08966134u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966134u) goto L_08966134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966134: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -4189,8 +5051,8 @@ L_08966148: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966158: @@ -4204,8 +5066,21 @@ L_08966158: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08966184u); aot_gpr_7 = (aot_gpr_7 + static_cast(2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 291u, 0x08966184u, 0x089E85DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 69u, 0x089E85DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966184u) goto L_08966184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966184: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); @@ -4444,8 +5319,8 @@ L_0896633C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966358: @@ -4522,8 +5397,8 @@ L_089663EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896640C: @@ -4560,8 +5435,21 @@ L_0896640C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08966498u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 334u, 0x08966498u, 0x089E87C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 103u, 0x089E87C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966498u) goto L_08966498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966498: aot_gpr_4 = (ctx.gpr[18] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4778,8 +5666,8 @@ L_089666F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966708: @@ -4804,8 +5692,21 @@ L_08966758: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08966764u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 354u, 0x08966764u, 0x08B6C9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 103u, 0x08B6C9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966764u) goto L_08966764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966764: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); ctx.gpr[22] = (ctx.gpr[28] + static_cast(5824)); @@ -4848,8 +5749,21 @@ L_089667B0: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089667BCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 359u, 0x089667BCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089667BCu) goto L_089667BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089667BC: ctx.gpr[17] = (ctx.gpr[2] | 0u); if (ctx.gpr[17] == 0u) { @@ -4873,13 +5787,39 @@ L_089667D8: L_089667E0: aot_gpr_31 = (0x089667E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 364u, 0x089667E8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089667E8u) goto L_089667E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089667E8: aot_gpr_31 = (0x089667F0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 365u, 0x089667F0u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089667F0u) goto L_089667F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089667F0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089667FCu); @@ -4907,8 +5847,21 @@ L_0896680C: aot_gpr_7 = (aot_gpr_29 + static_cast(56)); aot_gpr_31 = (0x08966824u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 369u, 0x08966824u, 0x08B6CA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 116u, 0x08B6CA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966824u) goto L_08966824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966824: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); if (ctx.gpr[17] != 0u) { @@ -4920,8 +5873,21 @@ L_08966830: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0896683Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 371u, 0x0896683Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896683Cu) goto L_0896683C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896683C: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -4945,13 +5911,39 @@ L_0896685C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x08966868u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 376u, 0x08966868u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966868u) goto L_08966868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966868: aot_gpr_31 = (0x08966870u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 377u, 0x08966870u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966870u) goto L_08966870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966870: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0896687Cu); @@ -5030,8 +6022,21 @@ L_089668F8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08966908u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 388u, 0x08966908u, 0x08B6CA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 105u, 0x08B6CA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966908u) goto L_08966908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966908: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[22]; @@ -5058,8 +6063,21 @@ L_0896692C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08966938u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 392u, 0x08966938u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966938u) goto L_08966938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966938: ctx.gpr[16] = (ctx.gpr[2] | 0u); if (ctx.gpr[16] == 0u) { @@ -5087,19 +6105,58 @@ L_0896695C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08966974u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 397u, 0x08966974u, 0x08B6CA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 116u, 0x08B6CA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966974u) goto L_08966974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966974: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_31 = (0x08966980u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 398u, 0x08966980u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966980u) goto L_08966980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966980: aot_gpr_31 = (0x08966988u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 399u, 0x08966988u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966988u) goto L_08966988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966988: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08966994u); @@ -5165,8 +6222,21 @@ L_089669EC: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089669FCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 408u, 0x089669FCu, 0x08B6CA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 105u, 0x08B6CA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089669FCu) goto L_089669FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089669FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[22]; @@ -5189,8 +6259,21 @@ L_08966A14: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08966A2Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 411u, 0x08966A2Cu, 0x08B6CA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 116u, 0x08B6CA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966A2Cu) goto L_08966A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966A2C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_gpr_31 = (0x08966A38u); @@ -5240,8 +6323,8 @@ L_08966A64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966A94: @@ -5274,8 +6357,21 @@ L_08966AD4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_4); aot_gpr_31 = (0x08966AE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 421u, 0x08966AE4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966AE4u) goto L_08966AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966AE4: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5290,8 +6386,21 @@ L_08966B00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08966B0Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 423u, 0x08966B0Cu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966B0Cu) goto L_08966B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966B0C: aot_gpr_31 = (0x08966B14u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(40))); @@ -5305,8 +6414,21 @@ L_08966B1C: ctx.gpr[17] = (aot_gpr_29 + static_cast(12)); aot_gpr_31 = (0x08966B28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 426u, 0x08966B28u, 0x088733D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 731u, 0x088733D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966B28u) goto L_08966B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966B28: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(56))); aot_gpr_5 = (17288u << 16u); @@ -5506,8 +6628,21 @@ L_08966CD0: L_08966D04: aot_gpr_31 = (0x08966D0Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 447u, 0x08966D0Cu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966D0Cu) goto L_08966D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966D0C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(12))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -5532,8 +6667,21 @@ L_08966D0C: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08966D68u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 448u, 0x08966D68u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966D68u) goto L_08966D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966D68: aot_gpr_31 = (0x08966D70u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -5584,8 +6732,8 @@ L_08966DAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966DC8: @@ -5595,8 +6743,8 @@ L_08966DC8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8968), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9160), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966DE0: @@ -5605,25 +6753,90 @@ L_08966DE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08966DF4u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 457u, 0x08966DF4u, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966DF4u) goto L_08966DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966DF4: aot_gpr_31 = (0x08966DFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 458u, 0x08966DFCu, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966DFCu) goto L_08966DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966DFC: aot_gpr_31 = (0x08966E04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 459u, 0x08966E04u, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966E04u) goto L_08966E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966E04: aot_gpr_31 = (0x08966E0Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 460u, 0x08966E0Cu, 0x08AD35A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 591u, 0x08AD35A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966E0Cu) goto L_08966E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966E0C: aot_gpr_31 = (0x08966E14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 461u, 0x08966E14u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966E14u) goto L_08966E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966E14: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); @@ -5638,15 +6851,28 @@ L_08966E14: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08966E48u); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 462u, 0x08966E48u, 0x08809600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 257u, 0x08809600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966E48u) goto L_08966E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966E48: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966E58: @@ -5702,8 +6928,21 @@ L_08966EB0: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x08966EBCu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 470u, 0x08966EBCu, 0x08941948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 225u, 0x08941948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966EBCu) goto L_08966EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966EBC: aot_gpr_4 = (ctx.gpr[16] << 3u); aot_gpr_5 = (0u + aot_gpr_4); @@ -5712,15 +6951,28 @@ L_08966EBC: aot_gpr_4 = (aot_gpr_4 << 5u); aot_gpr_31 = (0x08966ED8u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 471u, 0x08966ED8u, 0x088F3420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 644u, 0x088F3420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966ED8u) goto L_08966ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966ED8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966EE8: @@ -5770,14 +7022,27 @@ L_08966F28: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x08966F34u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 479u, 0x08966F34u, 0x08941948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 225u, 0x08941948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966F34u) goto L_08966F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966F34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966F40: @@ -5827,13 +7092,39 @@ L_08966F70: aot_gpr_4 = (0u | 183u); aot_gpr_31 = (0x08966FA8u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 482u, 0x08966FA8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966FA8u) goto L_08966FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966FA8: aot_gpr_31 = (0x08966FB0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 483u, 0x08966FB0u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08966FB0u) goto L_08966FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08966FB0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -5845,8 +7136,8 @@ L_08966FB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08966FCC: @@ -5897,15 +7188,41 @@ L_08967028: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_31 = (0x08967034u); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 491u, 0x08967034u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967034u) goto L_08967034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967034: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08967044u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 492u, 0x08967044u, 0x0880DD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 422u, 0x0880DD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967044u) goto L_08967044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967044: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8968), 0u); goto L_08967048; @@ -5915,8 +7232,8 @@ L_08967048: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896705C: @@ -6029,8 +7346,21 @@ L_08967108: aot_gpr_6 = (aot_gpr_6 + static_cast(-6992)); aot_gpr_31 = (0x08967130u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 506u, 0x08967130u, 0x089616E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 264u, 0x089616E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967130u) goto L_08967130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967130: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); goto L_08967134; @@ -6052,8 +7382,21 @@ L_08967140: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(151), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08967160u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 509u, 0x08967160u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967160u) goto L_08967160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967160: aot_gpr_31 = (0x08967168u); goto L_08966FCC; @@ -6081,8 +7424,8 @@ L_08967198: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089671A4: @@ -6100,8 +7443,21 @@ L_089671BC: ctx.gpr[16] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089671C8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 516u, 0x089671C8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089671C8u) goto L_089671C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089671C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -6170,8 +7526,21 @@ L_0896721C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(151), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08967244u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 519u, 0x08967244u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967244u) goto L_08967244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967244: aot_gpr_31 = (0x0896724Cu); goto L_08966FCC; @@ -6180,8 +7549,8 @@ L_0896724C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896725C: @@ -6223,8 +7592,8 @@ L_0896726C: goto L_089672A8; L_089672A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089672B0: @@ -6246,15 +7615,15 @@ L_089672B0: aot_gpr_4 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9188), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089672CC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9188), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089672D4: @@ -6292,8 +7661,21 @@ L_0896731C: L_08967330: aot_gpr_31 = (0x08967338u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 530u, 0x08967338u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967338u) goto L_08967338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967338: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6420,8 +7802,8 @@ L_089673EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896740C: @@ -6474,8 +7856,21 @@ L_08967468: } L_08967470: aot_gpr_31 = (0x08967478u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 545u, 0x08967478u, 0x08968588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 96u, 0x08968588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967478u) goto L_08967478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967478: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6549,13 +7944,39 @@ L_089674DC: L_089674F4: aot_gpr_31 = (0x089674FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 553u, 0x089674FCu, 0x08947574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 676u, 0x08947574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089674FCu) goto L_089674FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089674FC: aot_gpr_31 = (0x08967504u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 554u, 0x08967504u, 0x089614B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 222u, 0x089614B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967504u) goto L_08967504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967504: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(2228)); @@ -6569,13 +7990,39 @@ L_08967504: L_08967518: aot_gpr_31 = (0x08967520u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 556u, 0x08967520u, 0x08947574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 676u, 0x08947574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967520u) goto L_08967520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967520: aot_gpr_31 = (0x08967528u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 557u, 0x08967528u, 0x089615ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 241u, 0x089615ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967528u) goto L_08967528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967528: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6614,16 +8061,42 @@ L_08967560: aot_gpr_6 = (0u | 200u); aot_gpr_31 = (0x0896757Cu); aot_gpr_7 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 561u, 0x0896757Cu, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896757Cu) goto L_0896757C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896757C: aot_gpr_6 = (16384u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08967590u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 562u, 0x08967590u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967590u) goto L_08967590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967590: { const bool branch_taken = ctx.gpr[16] != 0u; aot_gpr_4 = (ctx.gpr[17] < static_cast(4097) ? 1u : 0u); @@ -6673,18 +8146,57 @@ L_089675C8: L_089675DC: aot_gpr_31 = (0x089675E4u); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(172), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 568u, 0x089675E4u, 0x08863530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 622u, 0x08863530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089675E4u) goto L_089675E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089675E4: aot_gpr_31 = (0x089675ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 569u, 0x089675ECu, 0x0890849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089675ECu) goto L_089675EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089675EC: aot_gpr_31 = (0x089675F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 570u, 0x089675F4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089675F4u) goto L_089675F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089675F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6716,8 +8228,21 @@ L_08967620: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08967630u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 574u, 0x08967630u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967630u) goto L_08967630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967630: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (0u | 5u); @@ -6749,34 +8274,112 @@ L_08967670: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_31 = (0x0896767Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 577u, 0x0896767Cu, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896767Cu) goto L_0896767C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896767C: aot_gpr_31 = (0x08967684u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 578u, 0x08967684u, 0x0897FE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 969u, 0x0897FE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967684u) goto L_08967684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967684: aot_gpr_31 = (0x0896768Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 579u, 0x0896768Cu, 0x08AB92E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 231u, 0x08AB92E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896768Cu) goto L_0896768C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896768C: aot_gpr_31 = (0x08967694u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 580u, 0x08967694u, 0x08B41628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 366u, 0x08B41628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967694u) goto L_08967694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967694: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089676A0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 581u, 0x089676A0u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089676A0u) goto L_089676A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089676A0: aot_gpr_6 = (17786u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089676B4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 582u, 0x089676B4u, 0x0889B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 595u, 0x0889B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089676B4u) goto L_089676B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089676B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -6811,8 +8414,21 @@ L_089676CC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089676F0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 586u, 0x089676F0u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089676F0u) goto L_089676F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089676F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6853,8 +8469,21 @@ L_08967710: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0896772Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 591u, 0x0896772Cu, 0x08A943CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 42u, 0x08A943CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896772Cu) goto L_0896772C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896772C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6868,8 +8497,21 @@ L_08967734: aot_gpr_4 = (aot_gpr_4 + static_cast(48)); aot_gpr_31 = (0x08967748u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 593u, 0x08967748u, 0x08A943CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 42u, 0x08A943CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967748u) goto L_08967748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967748: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9189), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9190), static_cast(0u)); @@ -6897,8 +8539,21 @@ L_08967770: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5432), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08967788u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 598u, 0x08967788u, 0x08A90840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 64u, 0x08A90840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967788u) goto L_08967788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967788: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); @@ -6921,8 +8576,21 @@ L_08967788: L_089677A0: aot_gpr_31 = (0x089677A8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 600u, 0x089677A8u, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089677A8u) goto L_089677A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089677A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6938,8 +8606,21 @@ L_089677B4: L_089677BC: aot_gpr_31 = (0x089677C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 603u, 0x089677C4u, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089677C4u) goto L_089677C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089677C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_31 = (0x089677D0u); @@ -6952,12 +8633,38 @@ L_089677D8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(1936), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x089677E4u); aot_gpr_4 = (ctx.gpr[20] + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 606u, 0x089677E4u, 0x088BA740u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 518u, 0x088BA740u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089677E4u) goto L_089677E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089677E4: aot_gpr_31 = (0x089677ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 607u, 0x089677ECu, 0x08A92D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 376u, 0x08A92D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089677ECu) goto L_089677EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089677EC: aot_gpr_4 = (0u | 10u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(5464), static_cast(aot_gpr_4)); @@ -6993,8 +8700,21 @@ L_08967810: L_08967828: aot_gpr_31 = (0x08967830u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 612u, 0x08967830u, 0x08946F00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 573u, 0x08946F00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967830u) goto L_08967830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967830: aot_gpr_31 = (0x08967838u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -7017,16 +8737,42 @@ L_08967848: aot_gpr_6 = (0u | 200u); aot_gpr_31 = (0x08967864u); aot_gpr_7 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 615u, 0x08967864u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967864u) goto L_08967864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967864: aot_gpr_6 = (16448u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08967878u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 616u, 0x08967878u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967878u) goto L_08967878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967878: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7076,20 +8822,59 @@ L_089678C0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089678DCu); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 622u, 0x089678DCu, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089678DCu) goto L_089678DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089678DC: aot_gpr_6 = (16384u << 16u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089678F0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 623u, 0x089678F0u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089678F0u) goto L_089678F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089678F0: aot_gpr_31 = (0x089678F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 624u, 0x089678F8u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089678F8u) goto L_089678F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089678F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7344,18 +9129,57 @@ L_08967A64: L_08967A78: aot_gpr_31 = (0x08967A80u); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(172), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 657u, 0x08967A80u, 0x08863530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 622u, 0x08863530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967A80u) goto L_08967A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967A80: aot_gpr_31 = (0x08967A88u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 658u, 0x08967A88u, 0x0890849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967A88u) goto L_08967A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967A88: aot_gpr_31 = (0x08967A90u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 659u, 0x08967A90u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967A90u) goto L_08967A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967A90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7387,8 +9211,21 @@ L_08967ABC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08967ACCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 663u, 0x08967ACCu, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967ACCu) goto L_08967ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967ACC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (0u | 5u); @@ -7420,35 +9257,113 @@ L_08967B0C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_31 = (0x08967B18u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 666u, 0x08967B18u, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967B18u) goto L_08967B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967B18: aot_gpr_31 = (0x08967B20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 667u, 0x08967B20u, 0x0897FE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 969u, 0x0897FE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967B20u) goto L_08967B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967B20: aot_gpr_31 = (0x08967B28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 668u, 0x08967B28u, 0x08AB92E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 231u, 0x08AB92E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967B28u) goto L_08967B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967B28: aot_gpr_31 = (0x08967B30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 669u, 0x08967B30u, 0x08B41628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 366u, 0x08B41628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967B30u) goto L_08967B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967B30: ctx.gpr[18] = (aot_gpr_29 + static_cast(112)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08967B40u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 670u, 0x08967B40u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967B40u) goto L_08967B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967B40: aot_gpr_4 = (17786u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08967B54u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 671u, 0x08967B54u, 0x0889B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 595u, 0x0889B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967B54u) goto L_08967B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967B54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -7456,8 +9371,21 @@ L_08967B54: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08967B6Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 672u, 0x08967B6Cu, 0x08A946ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 71u, 0x08A946ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967B6Cu) goto L_08967B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967B6C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9189), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9190), static_cast(0u)); @@ -7486,16 +9414,42 @@ L_08967B7C: L_08967B94: aot_gpr_31 = (0x08967B9Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 675u, 0x08967B9Cu, 0x0890849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967B9Cu) goto L_08967B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967B9C: aot_gpr_31 = (0x08967BA4u); goto L_089672D4; L_08967BA4: aot_gpr_31 = (0x08967BACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 677u, 0x08967BACu, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967BACu) goto L_08967BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967BAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7511,8 +9465,21 @@ L_08967BB8: L_08967BC0: aot_gpr_31 = (0x08967BC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 680u, 0x08967BC8u, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967BC8u) goto L_08967BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967BC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_31 = (0x08967BD4u); @@ -7523,12 +9490,38 @@ L_08967BD4: aot_gpr_4 = (ctx.gpr[16] + static_cast(2856)); aot_gpr_31 = (0x08967BE4u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1936), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 682u, 0x08967BE4u, 0x088BA740u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 518u, 0x088BA740u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967BE4u) goto L_08967BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967BE4: aot_gpr_31 = (0x08967BECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 683u, 0x08967BECu, 0x08A92D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 376u, 0x08A92D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967BECu) goto L_08967BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967BEC: aot_gpr_4 = (0u | 10u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(5464), static_cast(aot_gpr_4)); @@ -7564,16 +9557,42 @@ L_08967C1C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08967C38u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 688u, 0x08967C38u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967C38u) goto L_08967C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967C38: aot_gpr_6 = (16448u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08967C4Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 689u, 0x08967C4Cu, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967C4Cu) goto L_08967C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967C4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7623,16 +9642,42 @@ L_08967C94: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08967CB0u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 695u, 0x08967CB0u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967CB0u) goto L_08967CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967CB0: aot_gpr_6 = (16384u << 16u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08967CC4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 696u, 0x08967CC4u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967CC4u) goto L_08967CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967CC4: { const bool branch_taken = ctx.gpr[17] != 0u; aot_gpr_4 = (ctx.gpr[16] < static_cast(4097) ? 1u : 0u); @@ -7651,8 +9696,21 @@ L_08967CCC: L_08967CD4: aot_gpr_31 = (0x08967CDCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 699u, 0x08967CDCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967CDCu) goto L_08967CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967CDC: ctx.gpr[16] = (2236u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -7686,8 +9744,21 @@ L_08967D0C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08967D1Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 703u, 0x08967D1Cu, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967D1Cu) goto L_08967D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967D1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_5 = (0u | 5u); @@ -7719,35 +9790,113 @@ L_08967D5C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_31 = (0x08967D68u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 706u, 0x08967D68u, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967D68u) goto L_08967D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967D68: aot_gpr_31 = (0x08967D70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 707u, 0x08967D70u, 0x0897FE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 969u, 0x0897FE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967D70u) goto L_08967D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967D70: aot_gpr_31 = (0x08967D78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 708u, 0x08967D78u, 0x08AB92E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 231u, 0x08AB92E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967D78u) goto L_08967D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967D78: aot_gpr_31 = (0x08967D80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 709u, 0x08967D80u, 0x08B41628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 366u, 0x08B41628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967D80u) goto L_08967D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967D80: ctx.gpr[17] = (aot_gpr_29 + static_cast(160)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08967D90u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 710u, 0x08967D90u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967D90u) goto L_08967D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967D90: aot_gpr_4 = (17786u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08967DA4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 711u, 0x08967DA4u, 0x0889B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 595u, 0x0889B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967DA4u) goto L_08967DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967DA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -7755,8 +9904,21 @@ L_08967DA4: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08967DBCu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 712u, 0x08967DBCu, 0x08A946ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 71u, 0x08A946ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967DBCu) goto L_08967DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967DBC: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9189), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9190), static_cast(0u)); @@ -7784,8 +9946,21 @@ L_08967DDC: L_08967DE4: aot_gpr_31 = (0x08967DECu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 715u, 0x08967DECu, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967DECu) goto L_08967DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967DEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7801,8 +9976,21 @@ L_08967DF8: L_08967E00: aot_gpr_31 = (0x08967E08u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 718u, 0x08967E08u, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967E08u) goto L_08967E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967E08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); aot_gpr_31 = (0x08967E14u); @@ -7813,12 +10001,38 @@ L_08967E14: aot_gpr_4 = (ctx.gpr[16] + static_cast(2856)); aot_gpr_31 = (0x08967E24u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1936), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 720u, 0x08967E24u, 0x088BA740u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 518u, 0x088BA740u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967E24u) goto L_08967E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967E24: aot_gpr_31 = (0x08967E2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 721u, 0x08967E2Cu, 0x08A92D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 376u, 0x08A92D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967E2Cu) goto L_08967E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967E2C: aot_gpr_4 = (0u | 10u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(5464), static_cast(aot_gpr_4)); @@ -7846,16 +10060,42 @@ L_08967E4C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08967E6Cu); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 725u, 0x08967E6Cu, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967E6Cu) goto L_08967E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967E6C: aot_gpr_6 = (16448u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08967E80u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 726u, 0x08967E80u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967E80u) goto L_08967E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967E80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7901,13 +10141,39 @@ L_08967EBC: L_08967ED4: aot_gpr_31 = (0x08967EDCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 731u, 0x08967EDCu, 0x08947574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 676u, 0x08947574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967EDCu) goto L_08967EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967EDC: aot_gpr_31 = (0x08967EE4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 732u, 0x08967EE4u, 0x089614B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 222u, 0x089614B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967EE4u) goto L_08967EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967EE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(2228)); @@ -7921,13 +10187,39 @@ L_08967EE4: L_08967EF8: aot_gpr_31 = (0x08967F00u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 734u, 0x08967F00u, 0x08947574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 676u, 0x08947574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967F00u) goto L_08967F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967F00: aot_gpr_31 = (0x08967F08u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 735u, 0x08967F08u, 0x089615ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 241u, 0x089615ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967F08u) goto L_08967F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967F08: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(192), aot_run_words); @@ -7942,8 +10234,8 @@ L_08967F08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08967F30: @@ -7987,14 +10279,40 @@ L_08967F64: ctx.gpr[18] = (ctx.gpr[18] + static_cast(32304)); aot_gpr_31 = (0x08967FD4u); aot_gpr_4 = (ctx.gpr[18] + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 738u, 0x08967FD4u, 0x088BA728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 517u, 0x088BA728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967FD4u) goto L_08967FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967FD4: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(3259), static_cast(0u)); aot_gpr_31 = (0x08967FE0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 739u, 0x08967FE0u, 0x08947574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 676u, 0x08947574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967FE0u) goto L_08967FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967FE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(3160))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1712))); @@ -8008,8 +10326,21 @@ L_08967FE0: L_08967FF0: aot_gpr_31 = (0x08967FF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1712))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0088->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0088_entry, 741u, 0x08967FF8u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08967FF8u) goto L_08967FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08967FF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2196))); aot_gpr_5 = (0u | 17u); diff --git a/profiles/vcs/generated/generated_unit_0089.cpp b/profiles/vcs/generated/generated_unit_0089.cpp index 0c2801c..1353328 100644 --- a/profiles/vcs/generated/generated_unit_0089.cpp +++ b/profiles/vcs/generated/generated_unit_0089.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0089[64] = { 389u, 400u, 417u, 428u, 439u, 455u, 466u, 482u, 491u, 497u, 512u, 529u, 545u, 561u, 576u, 589u, 602u, 614u, 625u, 638u, 653u, 670u, 685u, 691u, 703u, 718u, 723u, 734u, 746u, 761u, 776u, 788u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0089[4090] = { + 1u, 0u, 2u, 0u, 0u, 0u, 3u, 0u, 4u, 0u, 0u, 5u, 0u, 0u, 0u, 6u, 0u, 0u, 7u, 0u, 0u, 8u, 0u, 0u, 9u, 0u, 10u, 0u, 11u, 0u, 12u, 0u, + 0u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 14u, 0u, 15u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 17u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 20u, 0u, 0u, 0u, 0u, 21u, 0u, 22u, 0u, 0u, + 23u, 0u, 24u, 0u, 25u, 0u, 26u, 0u, 27u, 0u, 28u, 0u, 0u, 29u, 0u, 30u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 33u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 35u, 0u, 0u, 36u, 0u, 37u, 0u, 38u, 0u, 0u, 39u, 0u, 40u, 41u, 0u, 42u, 0u, 43u, 0u, 0u, 44u, 0u, + 45u, 46u, 0u, 47u, 0u, 48u, 0u, 49u, 0u, 0u, 50u, 0u, 0u, 51u, 0u, 52u, 53u, 0u, 54u, 0u, 55u, 56u, 0u, 57u, 0u, 58u, 0u, 0u, 59u, 0u, 60u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 63u, 0u, 64u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 66u, 0u, 67u, 68u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 70u, 0u, 71u, 0u, 0u, 72u, 0u, 0u, 0u, 73u, + 0u, 0u, 0u, 74u, 0u, 0u, 0u, 75u, 0u, 0u, 76u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 79u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 82u, 0u, + 83u, 0u, 0u, 0u, 0u, 0u, 0u, 84u, 0u, 85u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, + 87u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 88u, 0u, 89u, 0u, 0u, 90u, 0u, 91u, 0u, 0u, 92u, 0u, 93u, 0u, 94u, 0u, 95u, 0u, 0u, 0u, 0u, + 0u, 0u, 96u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 0u, 0u, 98u, 0u, 99u, 0u, 100u, 0u, 101u, 0u, 0u, 102u, 0u, 0u, 103u, 0u, 0u, 0u, + 104u, 105u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 107u, 0u, 108u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 109u, 0u, 110u, 0u, 111u, 0u, 0u, 0u, 0u, 0u, 112u, 0u, 113u, 114u, 0u, 0u, 115u, 0u, + 0u, 0u, 0u, 0u, 116u, 0u, 117u, 0u, 0u, 0u, 118u, 0u, 119u, 0u, 120u, 0u, 121u, 0u, 0u, 0u, 122u, 0u, 123u, 0u, 0u, 0u, 124u, 0u, 125u, 0u, 0u, 0u, + 126u, 0u, 127u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 129u, 0u, 130u, 0u, 0u, 0u, 0u, 131u, 0u, 132u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 134u, + 0u, 0u, 0u, 135u, 0u, 0u, 0u, 136u, 0u, 0u, 0u, 137u, 0u, 138u, 0u, 139u, 0u, 140u, 0u, 0u, 141u, 0u, 142u, 0u, 143u, 0u, 0u, 144u, 0u, 145u, 0u, 146u, + 0u, 0u, 147u, 0u, 148u, 0u, 149u, 150u, 0u, 0u, 151u, 0u, 152u, 0u, 153u, 0u, 0u, 0u, 0u, 0u, 0u, 154u, 0u, 155u, 0u, 0u, 0u, 156u, 0u, 157u, 0u, 158u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 161u, 0u, 0u, 162u, 0u, 0u, + 163u, 0u, 164u, 165u, 0u, 166u, 0u, 167u, 0u, 0u, 0u, 168u, 0u, 0u, 169u, 0u, 170u, 171u, 0u, 0u, 172u, 0u, 0u, 0u, 173u, 0u, 174u, 0u, 175u, 0u, 176u, 0u, + 0u, 0u, 0u, 177u, 0u, 178u, 0u, 0u, 179u, 0u, 180u, 0u, 181u, 0u, 0u, 0u, 182u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 183u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 184u, 0u, 185u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 186u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 188u, 0u, 189u, 190u, 0u, + 0u, 191u, 0u, 0u, 0u, 0u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 194u, 0u, 195u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 199u, 0u, 200u, 0u, 0u, 201u, 0u, 0u, 202u, 0u, 0u, 0u, 0u, 0u, + 203u, 0u, 0u, 0u, 0u, 204u, 0u, 205u, 0u, 0u, 206u, 0u, 207u, 0u, 208u, 0u, 0u, 209u, 0u, 210u, 0u, 211u, 0u, 0u, 212u, 0u, 213u, 0u, 214u, 0u, 215u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 220u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 225u, + 0u, 0u, 226u, 0u, 227u, 0u, 0u, 228u, 0u, 229u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 231u, 0u, + 0u, 0u, 0u, 232u, 0u, 233u, 0u, 234u, 235u, 0u, 236u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 0u, 0u, 239u, 0u, 0u, 0u, 240u, + 0u, 241u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, 0u, 247u, 0u, 248u, 0u, 249u, 0u, + 0u, 0u, 0u, 250u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 253u, 0u, 0u, 254u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 256u, 257u, 0u, 258u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 259u, 0u, 0u, 260u, 0u, 0u, 261u, 0u, 262u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 266u, 0u, 267u, 0u, 0u, 0u, 0u, 268u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 269u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 273u, 0u, 0u, 0u, 274u, 0u, 275u, 0u, 276u, 0u, 277u, 0u, 278u, 0u, 0u, 0u, 279u, 0u, 0u, + 280u, 0u, 0u, 0u, 0u, 0u, 0u, 281u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 282u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, 284u, 0u, 285u, 0u, + 286u, 0u, 0u, 287u, 0u, 288u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 293u, 0u, 294u, 0u, + 295u, 0u, 296u, 0u, 297u, 0u, 298u, 0u, 299u, 0u, 300u, 0u, 301u, 0u, 302u, 0u, 303u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 306u, 0u, 0u, 0u, 307u, + 0u, 0u, 308u, 309u, 0u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 312u, + 0u, 0u, 313u, 314u, 0u, 315u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, + 0u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, 318u, 0u, 0u, 319u, 0u, 320u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 323u, 0u, 0u, 0u, 324u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, + 329u, 330u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 332u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 335u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, + 0u, 338u, 0u, 339u, 0u, 340u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 342u, 0u, 343u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, + 0u, 0u, 0u, 346u, 0u, 347u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 349u, 0u, 0u, 350u, 0u, 0u, 0u, 0u, 351u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 354u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 358u, 0u, 359u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 360u, 0u, 361u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, + 0u, 0u, 0u, 364u, 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, 368u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 371u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 373u, 0u, 0u, 0u, 374u, 0u, 375u, + 0u, 0u, 376u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 378u, 0u, 0u, 0u, 0u, 379u, 0u, 0u, 0u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 381u, 0u, 382u, 0u, 0u, 0u, 0u, 0u, 383u, 384u, 0u, 0u, 0u, 0u, 385u, 0u, 386u, 0u, 0u, 0u, 0u, 0u, 387u, 0u, 388u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 390u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 392u, 0u, + 0u, 0u, 0u, 393u, 0u, 394u, 0u, 0u, 0u, 0u, 395u, 0u, 396u, 0u, 0u, 0u, 0u, 397u, 0u, 0u, 0u, 0u, 0u, 398u, 0u, 399u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 400u, 0u, 0u, 0u, 0u, 401u, 0u, 0u, 402u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 0u, 405u, 0u, 406u, + 0u, 0u, 0u, 0u, 407u, 0u, 408u, 0u, 409u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 412u, 413u, 0u, 414u, 0u, 0u, 0u, 415u, 0u, 416u, 0u, + 417u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 422u, 0u, 423u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 424u, 0u, 425u, 0u, 426u, 0u, 427u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 430u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, + 0u, 433u, 0u, 0u, 0u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, 436u, 437u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 439u, 0u, 0u, 0u, 440u, 0u, 0u, 441u, 0u, 442u, 0u, 0u, 443u, 0u, 0u, 0u, 0u, 444u, 0u, 0u, 445u, 0u, 446u, 0u, 447u, 0u, 0u, 0u, 448u, + 449u, 0u, 0u, 450u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 454u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, 0u, 456u, 0u, 457u, 0u, 0u, 0u, 458u, 459u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 460u, 0u, 0u, + 0u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 463u, 0u, 0u, 0u, 464u, 0u, 0u, 465u, 0u, + 0u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 467u, 468u, 0u, 0u, 0u, 469u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 472u, 473u, 0u, 474u, + 0u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 476u, 477u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, + 0u, 0u, 0u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, 486u, 0u, 487u, 0u, 0u, 0u, + 0u, 0u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, 0u, 489u, 0u, 0u, 0u, 0u, 490u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 492u, 0u, 0u, 0u, 0u, 493u, 494u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 495u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 497u, 0u, 498u, 0u, 499u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 0u, 502u, 0u, 503u, 0u, 0u, 0u, 0u, 504u, 0u, 505u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 507u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 0u, 0u, 510u, 0u, 0u, 0u, 511u, + 0u, 0u, 0u, 512u, 0u, 0u, 0u, 513u, 0u, 0u, 0u, 514u, 0u, 0u, 515u, 0u, 0u, 516u, 517u, 0u, 518u, 0u, 0u, 519u, 520u, 0u, 0u, 0u, 0u, 521u, 0u, 522u, + 523u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 0u, 0u, 525u, 0u, 0u, 0u, 0u, 526u, 0u, 527u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 0u, + 529u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, 0u, 0u, 532u, 0u, 0u, 533u, 0u, 534u, 535u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 537u, 0u, 0u, + 0u, 538u, 0u, 0u, 0u, 0u, 539u, 0u, 0u, 0u, 0u, 0u, 540u, 0u, 0u, 0u, 0u, 0u, 541u, 0u, 0u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 543u, 0u, 544u, 0u, + 0u, 0u, 0u, 0u, 0u, 545u, 0u, 0u, 0u, 0u, 546u, 0u, 0u, 547u, 0u, 548u, 549u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, 551u, 0u, 0u, 0u, 0u, 552u, 0u, 553u, + 0u, 0u, 0u, 0u, 0u, 0u, 554u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, 556u, 0u, 557u, 558u, 0u, 0u, 0u, 0u, 0u, 559u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, 0u, 562u, 0u, 0u, 0u, 0u, 563u, 0u, 0u, 0u, 0u, 564u, 0u, 0u, 0u, 0u, 565u, 566u, 0u, 567u, 0u, 0u, 0u, + 0u, 0u, 0u, 568u, 0u, 569u, 0u, 0u, 0u, 0u, 0u, 0u, 570u, 0u, 571u, 0u, 572u, 0u, 0u, 0u, 0u, 0u, 0u, 573u, 0u, 574u, 0u, 575u, 0u, 0u, 0u, 0u, + 0u, 0u, 576u, 577u, 0u, 0u, 0u, 578u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, 0u, 580u, 0u, 0u, 0u, 0u, 581u, 0u, 582u, 0u, 0u, 0u, 0u, 0u, 0u, + 583u, 0u, 584u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 587u, 588u, 0u, 0u, + 0u, 0u, 0u, 0u, 589u, 0u, 590u, 0u, 591u, 0u, 0u, 0u, 0u, 0u, 592u, 0u, 0u, 0u, 0u, 593u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 0u, 0u, 0u, + 596u, 0u, 597u, 0u, 0u, 0u, 0u, 0u, 0u, 598u, 0u, 599u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 600u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 601u, 0u, 0u, 0u, 0u, + 0u, 602u, 0u, 0u, 603u, 0u, 604u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 606u, 0u, 607u, 0u, 608u, 0u, 0u, 0u, 0u, 0u, 0u, 609u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 610u, 0u, 611u, 0u, 0u, 0u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 613u, + 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 616u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 617u, 0u, 618u, 0u, 619u, 0u, 620u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 623u, 0u, 0u, 0u, 0u, 0u, 624u, 0u, 0u, + 0u, 0u, 625u, 0u, 0u, 0u, 0u, 626u, 627u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 628u, 0u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 0u, + 631u, 0u, 0u, 0u, 0u, 632u, 0u, 0u, 0u, 0u, 633u, 0u, 0u, 0u, 0u, 634u, 635u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 636u, 0u, 0u, 637u, 0u, + 0u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 639u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 640u, 0u, 0u, 641u, 642u, 0u, + 0u, 0u, 643u, 0u, 0u, 644u, 0u, 645u, 0u, 646u, 0u, 647u, 0u, 0u, 648u, 0u, 0u, 649u, 0u, 0u, 650u, 0u, 0u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, + 653u, 654u, 0u, 0u, 0u, 0u, 0u, 0u, 655u, 0u, 0u, 0u, 656u, 0u, 0u, 0u, 0u, 657u, 0u, 0u, 0u, 658u, 0u, 0u, 659u, 0u, 660u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 661u, 0u, 662u, 0u, 663u, 0u, 664u, 0u, 665u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 666u, 667u, 0u, 0u, 0u, 0u, 668u, 0u, 669u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 670u, 0u, 671u, 0u, 672u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 673u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 0u, 675u, 0u, 676u, 0u, 0u, 0u, 0u, + 0u, 0u, 677u, 0u, 0u, 0u, 0u, 0u, 0u, 678u, 0u, 0u, 0u, 0u, 679u, 0u, 0u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 681u, 0u, 682u, 0u, 683u, 0u, 684u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 685u, 0u, 0u, 0u, 0u, 0u, 0u, 686u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 687u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 688u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 689u, 0u, 0u, 0u, 0u, 690u, + 0u, 0u, 691u, 0u, 0u, 0u, 0u, 692u, 0u, 0u, 693u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 694u, 0u, 0u, 0u, 0u, 695u, 0u, 0u, + 696u, 0u, 0u, 0u, 0u, 697u, 0u, 0u, 698u, 0u, 0u, 0u, 0u, 699u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 701u, 0u, 0u, 0u, 0u, 702u, 0u, 0u, 0u, 0u, + 703u, 0u, 0u, 0u, 0u, 0u, 0u, 704u, 0u, 705u, 0u, 0u, 0u, 0u, 0u, 706u, 0u, 0u, 0u, 0u, 0u, 707u, 0u, 708u, 0u, 0u, 0u, 0u, 0u, 709u, 0u, 710u, + 0u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 713u, 0u, 0u, 0u, 0u, 0u, 714u, 0u, 0u, 0u, 715u, 0u, 0u, 716u, 0u, 0u, 717u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 720u, 0u, 0u, 0u, 0u, 721u, 722u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 723u, 0u, 724u, 725u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 726u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 727u, 0u, 0u, 0u, 0u, + 0u, 728u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 0u, 0u, 730u, 731u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 732u, 0u, 733u, + 734u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 736u, 0u, 0u, 0u, 0u, 0u, 737u, 0u, 0u, 738u, 0u, 0u, 0u, + 739u, 0u, 0u, 0u, 740u, 0u, 741u, 742u, 0u, 0u, 0u, 0u, 0u, 743u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 744u, 0u, 745u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 746u, 0u, 0u, 0u, 0u, 747u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 748u, 0u, 0u, 749u, 0u, 750u, 0u, + 751u, 0u, 0u, 752u, 0u, 0u, 0u, 0u, 753u, 0u, 754u, 0u, 0u, 755u, 0u, 0u, 756u, 0u, 0u, 0u, 757u, 0u, 758u, 759u, 0u, 0u, 0u, 0u, 0u, 760u, 0u, 0u, + 0u, 0u, 0u, 0u, 761u, 0u, 0u, 0u, 0u, 762u, 0u, 763u, 0u, 0u, 764u, 0u, 0u, 0u, 0u, 765u, 0u, 766u, 0u, 0u, 0u, 0u, 767u, 0u, 768u, 0u, 0u, 0u, + 769u, 0u, 0u, 770u, 0u, 771u, 0u, 0u, 772u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 0u, 774u, 0u, 775u, + 776u, 0u, 0u, 0u, 0u, 0u, 777u, 0u, 0u, 0u, 0u, 0u, 0u, 778u, 0u, 0u, 0u, 0u, 779u, 0u, 780u, 0u, 0u, 781u, 0u, 0u, 0u, 782u, 0u, 783u, 784u, 0u, + 0u, 0u, 0u, 0u, 785u, 0u, 0u, 0u, 0u, 786u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 787u, 0u, 0u, + 0u, 788u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 789u, 0u, 790u, 0u, 0u, 791u, 0u, 0u, 0u, 0u, 792u, 0u, 793u, 0u, 0u, 794u, + 0u, 0u, 0u, 795u, 0u, 796u, 797u, 0u, 0u, 0u, 0u, 0u, 798u, 0u, 0u, 0u, 0u, 799u, 0u, 0u, 800u, 0u, 801u, 0u, 0u, 802u, +}; void recomp_unit_0089_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,16,31,29,2 fprs=12,13,14,15 gpr_occ=3397 fpr_occ=1409 gpr_total=4476 fpr_total=1820 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08968000u; - entry_id = 0u; - if (entry_delta < 16360u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0089[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0089[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16360u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0089[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08968000; @@ -880,6 +1003,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08968000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -912,14 +1059,40 @@ L_08968008: L_08968018: aot_gpr_31 = (0x08968020u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 4u, 0x08968020u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968020u) goto L_08968020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968020: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896802Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 5u, 0x0896802Cu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896802Cu) goto L_0896802C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896802C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 55u); @@ -933,14 +1106,40 @@ L_0896803C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968048u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 7u, 0x08968048u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968048u) goto L_08968048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968048: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968054u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 8u, 0x08968054u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968054u) goto L_08968054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968054: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968060u); @@ -950,13 +1149,39 @@ L_08968054: L_08968060: aot_gpr_31 = (0x08968068u); aot_gpr_4 = (aot_gpr_16 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 10u, 0x08968068u, 0x08AB379Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 894u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 894u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 894u, 0x08AB379Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968068u) goto L_08968068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968068: aot_gpr_31 = (0x08968070u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 11u, 0x08968070u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968070u) goto L_08968070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968070: aot_gpr_31 = (0x08968078u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -967,8 +1192,21 @@ L_08968078: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08968088u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 13u, 0x08968088u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968088u) goto L_08968088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968088: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(336))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -980,17 +1218,56 @@ L_08968088: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089680B0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 14u, 0x089680B0u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089680B0u) goto L_089680B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089680B0: aot_gpr_31 = (0x089680B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 15u, 0x089680B8u, 0x0894A1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 452u, 0x0894A1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089680B8u) goto L_089680B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089680B8: aot_gpr_31 = (0x089680C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 16u, 0x089680C0u, 0x08B41628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 366u, 0x08B41628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089680C0u) goto L_089680C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089680C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); ctx.gpr[6] = (aot_gpr_4 + static_cast(112)); @@ -1038,8 +1315,21 @@ L_08968108: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0896811Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 18u, 0x0896811Cu, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896811Cu) goto L_0896811C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896811C: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -1052,71 +1342,240 @@ L_0896811C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08968148u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 19u, 0x08968148u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968148u) goto L_08968148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968148: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968158u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 20u, 0x08968158u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968158u) goto L_08968158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968158: aot_gpr_4 = (17786u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896816Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 21u, 0x0896816Cu, 0x0889B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 595u, 0x0889B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896816Cu) goto L_0896816C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896816C: aot_gpr_31 = (0x08968174u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 22u, 0x08968174u, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968174u) goto L_08968174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968174: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-1044), 0u); aot_gpr_31 = (0x08968180u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 23u, 0x08968180u, 0x08AD35C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 593u, 0x08AD35C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968180u) goto L_08968180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968180: aot_gpr_31 = (0x08968188u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 24u, 0x08968188u, 0x08A1CE7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 141u, 0x08A1CE7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968188u) goto L_08968188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968188: aot_gpr_31 = (0x08968190u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 25u, 0x08968190u, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968190u) goto L_08968190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968190: aot_gpr_31 = (0x08968198u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 26u, 0x08968198u, 0x08A92D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 376u, 0x08A92D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968198u) goto L_08968198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968198: aot_gpr_31 = (0x089681A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 27u, 0x089681A0u, 0x0896DA24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 421u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 421u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 421u, 0x0896DA24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089681A0u) goto L_089681A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089681A0: aot_gpr_31 = (0x089681A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 28u, 0x089681A8u, 0x089910E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 233u, 0x089910E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089681A8u) goto L_089681A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089681A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089681B4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 29u, 0x089681B4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089681B4u) goto L_089681B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089681B4: aot_gpr_31 = (0x089681BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 30u, 0x089681BCu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089681BCu) goto L_089681BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089681BC: aot_gpr_31 = (0x089681C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 31u, 0x089681C4u, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089681C4u) goto L_089681C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089681C4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); @@ -1130,13 +1589,39 @@ L_089681C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x089681F4u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-17536)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 32u, 0x089681F4u, 0x0890EE04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 671u, 0x0890EE04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089681F4u) goto L_089681F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089681F4: aot_gpr_31 = (0x089681FCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 33u, 0x089681FCu, 0x08AD3578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 587u, 0x08AD3578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089681FCu) goto L_089681FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089681FC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); @@ -1147,12 +1632,38 @@ L_089681FC: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08968220u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 34u, 0x08968220u, 0x0890EF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 688u, 0x0890EF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968220u) goto L_08968220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968220: aot_gpr_31 = (0x08968228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 35u, 0x08968228u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968228u) goto L_08968228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968228: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1168,8 +1679,21 @@ L_08968234: L_0896823C: aot_gpr_31 = (0x08968244u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 38u, 0x08968244u, 0x089BAE90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 616u, 0x089BAE90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968244u) goto L_08968244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968244: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -1187,13 +1711,39 @@ L_08968258: L_0896825C: aot_gpr_31 = (0x08968264u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 42u, 0x08968264u, 0x089BB290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 688u, 0x089BB290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968264u) goto L_08968264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968264: aot_gpr_31 = (0x0896826Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(8952)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 43u, 0x0896826Cu, 0x08953614u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 745u, 0x08953614u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896826Cu) goto L_0896826C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896826C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -1222,14 +1772,40 @@ L_0896828C: L_08968294: aot_gpr_31 = (0x0896829Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 49u, 0x0896829Cu, 0x089BABB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 581u, 0x089BABB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896829Cu) goto L_0896829C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896829C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089682A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 50u, 0x089682A8u, 0x089BB288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 687u, 0x089BB288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089682A8u) goto L_089682A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089682A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -1262,24 +1838,76 @@ L_089682D0: L_089682D4: aot_gpr_31 = (0x089682DCu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 57u, 0x089682DCu, 0x089BB280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 686u, 0x089BB280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089682DCu) goto L_089682DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089682DC: aot_gpr_31 = (0x089682E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 58u, 0x089682E4u, 0x088603F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 11u, 0x088603F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089682E4u) goto L_089682E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089682E4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x089682F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 59u, 0x089682F0u, 0x0888A9E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 725u, 0x0888A9E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089682F0u) goto L_089682F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089682F0: aot_gpr_31 = (0x089682F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 60u, 0x089682F8u, 0x08AD3650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 602u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 602u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 602u, 0x08AD3650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089682F8u) goto L_089682F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089682F8: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); @@ -1294,8 +1922,8 @@ L_089682F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08968320: @@ -1319,13 +1947,39 @@ L_08968320: L_08968350: aot_gpr_31 = (0x08968358u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 63u, 0x08968358u, 0x08A93058u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 437u, 0x08A93058u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968358u) goto L_08968358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968358: aot_gpr_31 = (0x08968360u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 64u, 0x08968360u, 0x08A93058u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 437u, 0x08A93058u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968360u) goto L_08968360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968360: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1342,8 +1996,21 @@ L_08968360: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(472), aot_gpr_4); aot_gpr_31 = (0x0896839Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 65u, 0x0896839Cu, 0x08947574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 676u, 0x08947574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896839Cu) goto L_0896839C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896839C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(3160))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1712))); @@ -1357,8 +2024,21 @@ L_0896839C: L_089683AC: aot_gpr_31 = (0x089683B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1712))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 67u, 0x089683B4u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089683B4u) goto L_089683B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089683B4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1712), 0u); goto L_089683B8; @@ -1383,14 +2063,40 @@ L_089683C8: L_089683D8: aot_gpr_31 = (0x089683E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 71u, 0x089683E0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089683E0u) goto L_089683E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089683E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089683ECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 72u, 0x089683ECu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089683ECu) goto L_089683EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089683EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 55u); @@ -1422,14 +2128,40 @@ L_0896841C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968428u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 76u, 0x08968428u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968428u) goto L_08968428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968428: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968434u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 77u, 0x08968434u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968434u) goto L_08968434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968434: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968440u); @@ -1439,13 +2171,39 @@ L_08968434: L_08968440: aot_gpr_31 = (0x08968448u); aot_gpr_4 = (aot_gpr_16 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 79u, 0x08968448u, 0x08AB379Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 894u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 894u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 894u, 0x08AB379Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968448u) goto L_08968448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968448: aot_gpr_31 = (0x08968450u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 80u, 0x08968450u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968450u) goto L_08968450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968450: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (65504u << 16u); @@ -1460,13 +2218,39 @@ L_0896846C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08968478u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 82u, 0x08968478u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968478u) goto L_08968478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968478: aot_gpr_31 = (0x08968480u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 83u, 0x08968480u, 0x0890849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968480u) goto L_08968480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968480: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_5 = (0u + static_cast(-2)); @@ -1475,13 +2259,39 @@ L_08968480: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896849Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 84u, 0x0896849Cu, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896849Cu) goto L_0896849C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896849C: aot_gpr_31 = (0x089684A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 85u, 0x089684A4u, 0x0894A1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 452u, 0x0894A1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089684A4u) goto L_089684A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089684A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); ctx.gpr[6] = (aot_gpr_4 + static_cast(112)); @@ -1529,8 +2339,21 @@ L_089684EC: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08968500u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 87u, 0x08968500u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968500u) goto L_08968500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968500: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -1543,24 +2366,76 @@ L_08968500: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0896852Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 88u, 0x0896852Cu, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896852Cu) goto L_0896852C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896852C: aot_gpr_31 = (0x08968534u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 89u, 0x08968534u, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968534u) goto L_08968534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968534: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968540u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 90u, 0x08968540u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968540u) goto L_08968540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968540: aot_gpr_31 = (0x08968548u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 91u, 0x08968548u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968548u) goto L_08968548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968548: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1576,12 +2451,38 @@ L_08968554: L_0896855C: aot_gpr_31 = (0x08968564u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 94u, 0x08968564u, 0x089BAE90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 616u, 0x089BAE90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968564u) goto L_08968564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968564: aot_gpr_31 = (0x0896856Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 95u, 0x0896856Cu, 0x08AB92E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 231u, 0x08AB92E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896856Cu) goto L_0896856C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896856C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); @@ -1593,8 +2494,8 @@ L_0896856C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08968588: @@ -1616,8 +2517,8 @@ L_089685A8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8608))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089685C0: @@ -1630,8 +2531,21 @@ L_089685C0: L_089685C8: aot_gpr_31 = (0x089685D0u); aot_gpr_4 = (0u | 183u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 100u, 0x089685D0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089685D0u) goto L_089685D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089685D0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1643,8 +2557,21 @@ L_089685D8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089685E4u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 102u, 0x089685E4u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089685E4u) goto L_089685E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089685E4: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1659,8 +2586,21 @@ L_089685F0: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08968600u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 104u, 0x08968600u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968600u) goto L_08968600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968600: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08968604; @@ -1693,13 +2633,39 @@ L_0896860C: aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x08968650u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 107u, 0x08968650u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968650u) goto L_08968650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968650: aot_gpr_31 = (0x08968658u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 108u, 0x08968658u, 0x08848E78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 155u, 0x08848E78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968658u) goto L_08968658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968658: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_5 = (0u + static_cast(-497)); @@ -1725,18 +2691,57 @@ L_08968658: aot_gpr_4 = (ctx.gpr[28] + static_cast(9104)); aot_gpr_31 = (0x089686B8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 109u, 0x089686B8u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089686B8u) goto L_089686B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089686B8: aot_gpr_31 = (0x089686C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 110u, 0x089686C0u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089686C0u) goto L_089686C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089686C0: aot_gpr_31 = (0x089686C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 111u, 0x089686C8u, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089686C8u) goto L_089686C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089686C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_16 = (0u | 2u); @@ -1758,8 +2763,21 @@ L_089686EC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_31 = (0x089686F8u); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 115u, 0x089686F8u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089686F8u) goto L_089686F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089686F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1u); @@ -1767,8 +2785,21 @@ L_089686F8: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08968710u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 116u, 0x08968710u, 0x0880DF30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 438u, 0x0880DF30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968710u) goto L_08968710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968710: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9093), static_cast(aot_gpr_16)); @@ -1782,13 +2813,39 @@ L_08968718: aot_gpr_4 = (0u | 183u); aot_gpr_31 = (0x08968728u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 118u, 0x08968728u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968728u) goto L_08968728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968728: aot_gpr_31 = (0x08968730u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 119u, 0x08968730u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968730u) goto L_08968730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968730: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1855,8 +2912,21 @@ L_089687A8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089687B8u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 129u, 0x089687B8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089687B8u) goto L_089687B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089687B8: aot_gpr_31 = (0x089687C0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089687C0u) goto L_089687C0; @@ -1915,12 +2985,38 @@ L_0896881C: goto L_0896882C; L_0896882C: aot_gpr_31 = (0x08968834u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 138u, 0x08968834u, 0x0896705Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 494u, 0x0896705Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968834u) goto L_08968834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968834: aot_gpr_31 = (0x0896883Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 139u, 0x0896883Cu, 0x089671A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 514u, 0x089671A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896883Cu) goto L_0896883C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896883C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2020,12 +3116,38 @@ L_089688DC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089688ECu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 156u, 0x089688ECu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089688ECu) goto L_089688EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089688EC: aot_gpr_31 = (0x089688F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 157u, 0x089688F4u, 0x0896705Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 494u, 0x0896705Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089688F4u) goto L_089688F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089688F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2048,16 +3170,42 @@ L_089688FC: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08968934u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 159u, 0x08968934u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968934u) goto L_08968934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968934: ctx.gpr[6] = (16416u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08968948u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 160u, 0x08968948u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968948u) goto L_08968948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968948: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (0u | 4u); @@ -2074,8 +3222,21 @@ L_08968968: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08968974u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 162u, 0x08968974u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968974u) goto L_08968974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968974: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2099,15 +3260,41 @@ L_0896898C: L_08968994: aot_gpr_31 = (0x0896899Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-17448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 167u, 0x0896899Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896899Cu) goto L_0896899C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896899C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 4500u); aot_gpr_31 = (0x089689ACu); ctx.gpr[6] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 168u, 0x089689ACu, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089689ACu) goto L_089689AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089689AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2126,15 +3313,41 @@ L_089689C4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_31 = (0x089689D0u); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 172u, 0x089689D0u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089689D0u) goto L_089689D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089689D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089689E0u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 173u, 0x089689E0u, 0x0880DD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 422u, 0x0880DD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089689E0u) goto L_089689E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089689E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2144,8 +3357,21 @@ L_089689E0: } L_089689E8: aot_gpr_31 = (0x089689F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 175u, 0x089689F0u, 0x0896705Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 494u, 0x0896705Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089689F0u) goto L_089689F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089689F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2165,31 +3391,96 @@ L_089689F8: } L_08968A0C: aot_gpr_31 = (0x08968A14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 178u, 0x08968A14u, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968A14u) goto L_08968A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968A14: aot_gpr_16 = (ctx.gpr[28] + static_cast(9136)); aot_gpr_31 = (0x08968A20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 179u, 0x08968A20u, 0x0880988Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 308u, 0x0880988Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968A20u) goto L_08968A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968A20: aot_gpr_31 = (0x08968A28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 180u, 0x08968A28u, 0x08AD3578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 587u, 0x08AD3578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968A28u) goto L_08968A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968A28: aot_gpr_31 = (0x08968A30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 181u, 0x08968A30u, 0x08AD3558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 585u, 0x08AD3558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968A30u) goto L_08968A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968A30: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08968A40u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 182u, 0x08968A40u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968A40u) goto L_08968A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968A40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(92))); @@ -2227,13 +3518,39 @@ L_08968A68: aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x08968A90u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 184u, 0x08968A90u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968A90u) goto L_08968A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968A90: aot_gpr_31 = (0x08968A98u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 185u, 0x08968A98u, 0x08848E78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 155u, 0x08848E78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968A98u) goto L_08968A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968A98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_5 = (16076u << 16u); @@ -2259,15 +3576,41 @@ L_08968A98: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08968ACCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 186u, 0x08968ACCu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968ACCu) goto L_08968ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968ACC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(500)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9156), aot_gpr_4); aot_gpr_31 = (0x08968AE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 187u, 0x08968AE0u, 0x08AB93D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 241u, 0x08AB93D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968AE0u) goto L_08968AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968AE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -2286,8 +3629,21 @@ L_08968AF8: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08968B04u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 191u, 0x08968B04u, 0x089BA604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 468u, 0x089BA604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968B04u) goto L_08968B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968B04: aot_gpr_4 = (2236u << 16u); aot_gpr_16 = (aot_gpr_4 + static_cast(32304)); @@ -2296,22 +3652,61 @@ L_08968B04: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08968B20u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 192u, 0x08968B20u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968B20u) goto L_08968B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968B20: ctx.gpr[6] = (16320u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08968B34u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 193u, 0x08968B34u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968B34u) goto L_08968B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968B34: aot_gpr_4 = (0u | 5u); aot_gpr_31 = (0x08968B40u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9093), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 194u, 0x08968B40u, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968B40u) goto L_08968B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968B40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2364,8 +3759,21 @@ L_08968BB8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08968BC8u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 199u, 0x08968BC8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968BC8u) goto L_08968BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968BC8: aot_gpr_31 = (0x08968BD0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968BD0u) goto L_08968BD0; @@ -2374,8 +3782,21 @@ L_08968BD0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_31 = (0x08968BDCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 201u, 0x08968BDCu, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968BDCu) goto L_08968BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968BDC: aot_gpr_4 = (0u | 6u); aot_gpr_31 = (0x08968BE8u); @@ -2479,8 +3900,21 @@ L_08968C78: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(151), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08968CB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 216u, 0x08968CB0u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968CB0u) goto L_08968CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968CB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8968))); aot_gpr_5 = (0u | 1u); @@ -2503,8 +3937,8 @@ L_08968CDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08968CF0: @@ -2520,14 +3954,27 @@ L_08968CF0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08968D20u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 219u, 0x08968D20u, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968D20u) goto L_08968D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968D20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08968D2C: @@ -2713,30 +4160,30 @@ L_08968F7C: aot_gpr_2 = (aot_gpr_4 | 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08968F88: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08968F90: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08968F9C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08968FA4: @@ -2756,8 +4203,21 @@ L_08968FA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08968FE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(56)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 230u, 0x08968FE4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08968FE4u) goto L_08968FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08968FE4: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -2780,8 +4240,21 @@ L_08968FF8: L_0896900C: aot_gpr_31 = (0x08969014u); aot_gpr_4 = (aot_gpr_16 << 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 233u, 0x08969014u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969014u) goto L_08969014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969014: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(40), aot_gpr_2); @@ -2796,8 +4269,21 @@ L_0896901C: L_08969020: aot_gpr_31 = (0x08969028u); aot_gpr_4 = (aot_gpr_16 << 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 236u, 0x08969028u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969028u) goto L_08969028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969028: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -2880,8 +4366,8 @@ L_089690CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089690F0: @@ -2898,8 +4384,21 @@ L_089690F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08969124u); aot_gpr_4 = (aot_gpr_4 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 245u, 0x08969124u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969124u) goto L_08969124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969124: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(4), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(12), std::bit_cast(ctx.fpr[20])); @@ -2915,8 +4414,8 @@ L_08969124: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969150: @@ -2944,15 +4443,15 @@ L_08969178: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896918C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969194: @@ -3007,8 +4506,8 @@ L_089691E8: goto L_089691EC; L_089691EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089691F4: @@ -3039,8 +4538,21 @@ L_0896923C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x08969248u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 261u, 0x08969248u, 0x089736F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 724u, 0x089736F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969248u) goto L_08969248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969248: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3051,8 +4563,21 @@ L_08969248: L_08969250: aot_gpr_31 = (0x08969258u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 263u, 0x08969258u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969258u) goto L_08969258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969258: aot_gpr_4 = (ctx.gpr[18] + static_cast(80)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3710,8 +5235,8 @@ L_0896949C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089694D0: @@ -3725,45 +5250,45 @@ L_089694E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089694F0: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089694F8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(164))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969500: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896950C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969514: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969520: @@ -3777,8 +5302,8 @@ L_08969520: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969544: @@ -3792,8 +5317,8 @@ L_08969544: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969568: @@ -3907,89 +5432,89 @@ L_08969568: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089695E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089695F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089695F8: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969600: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969608: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1348))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969610: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969618: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969620: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969628: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969630: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1508))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969638: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1072))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969640: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(1508)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969648: @@ -3999,8 +5524,21 @@ L_08969648: aot_gpr_16 = (aot_gpr_4 | 0u); ctx.gpr[6] = (ctx.gpr[6] & 255u); aot_gpr_31 = (0x08969670u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 305u, 0x08969670u, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969670u) goto L_08969670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969670: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(23816)); @@ -4082,8 +5620,21 @@ L_089696EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089696FCu); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 307u, 0x089696FCu, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089696FCu) goto L_089696FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089696FC: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); { const bool branch_taken = ctx.gpr[19] != ctx.gpr[18]; @@ -4189,8 +5740,21 @@ L_0896976C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896977Cu); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 312u, 0x0896977Cu, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896977Cu) goto L_0896977C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896977C: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); { const bool branch_taken = ctx.gpr[19] != ctx.gpr[18]; @@ -4247,8 +5811,8 @@ L_08969794: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089697F0: @@ -4271,8 +5835,21 @@ L_0896980C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08969824u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 318u, 0x08969824u, 0x08A58BC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 186u, 0x08A58BC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969824u) goto L_08969824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969824: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4284,8 +5861,21 @@ L_08969824: L_08969830: aot_gpr_31 = (0x08969838u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 320u, 0x08969838u, 0x08AFF2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 734u, 0x08AFF2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969838u) goto L_08969838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969838: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4295,8 +5885,8 @@ L_08969838: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896984C: @@ -4305,8 +5895,21 @@ L_0896984C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08969860u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 322u, 0x08969860u, 0x08A5B780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 723u, 0x08A5B780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969860u) goto L_08969860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969860: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4354,8 +5957,8 @@ L_089698B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089698C8: @@ -4440,14 +6043,27 @@ L_0896994C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x0896998Cu); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 335u, 0x0896998Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896998Cu) goto L_0896998C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896998C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969998: @@ -4490,8 +6106,21 @@ L_089699F4: L_08969A04: aot_gpr_31 = (0x08969A0Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 339u, 0x08969A0Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969A0Cu) goto L_08969A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969A0C: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4506,8 +6135,8 @@ L_08969A14: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969A28: @@ -4515,21 +6144,21 @@ L_08969A28: aot_gpr_4 = (aot_gpr_4 | 23593u); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969A38: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969A40: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969A48: @@ -4602,8 +6231,21 @@ L_08969A94: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08969AD4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 348u, 0x08969AD4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969AD4u) goto L_08969AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969AD4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(636), std::bit_cast(ctx.fpr[20])); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(1280)))))); @@ -4664,14 +6306,40 @@ L_08969AD4: } aot_gpr_31 = (0x08969B50u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 349u, 0x08969B50u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969B50u) goto L_08969B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969B50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08969B5Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 350u, 0x08969B5Cu, 0x08AFFAC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 877u, 0x08AFFAC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969B5Cu) goto L_08969B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969B5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -4691,8 +6359,8 @@ L_08969B70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969B90: @@ -4751,8 +6419,8 @@ L_08969C2C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8576))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08969C44: @@ -4950,8 +6618,21 @@ L_08969D60: } aot_gpr_31 = (0x08969DE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 367u, 0x08969DE4u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969DE4u) goto L_08969DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969DE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5078,13 +6759,39 @@ L_08969E68: } aot_gpr_31 = (0x08969EDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 372u, 0x08969EDCu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969EDCu) goto L_08969EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969EDC: aot_gpr_31 = (0x08969EE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 373u, 0x08969EE4u, 0x08A930F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 450u, 0x08A930F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969EE4u) goto L_08969EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969EE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); @@ -5097,14 +6804,40 @@ L_08969EE4: L_08969EF4: aot_gpr_31 = (0x08969EFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 375u, 0x08969EFCu, 0x08A42760u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 448u, 0x08A42760u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969EFCu) goto L_08969EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969EFC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08969F08u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 376u, 0x08969F08u, 0x08A597ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 334u, 0x08A597ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969F08u) goto L_08969F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969F08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1216))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[22])) && aot_fpr_12 == ctx.fpr[22])) ? 0x00800000u : 0u); @@ -5175,8 +6908,21 @@ L_08969F58: L_08969F88: aot_gpr_31 = (0x08969F90u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 382u, 0x08969F90u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969F90u) goto L_08969F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969F90: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5202,8 +6948,21 @@ L_08969FAC: L_08969FC0: aot_gpr_31 = (0x08969FC8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 386u, 0x08969FC8u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969FC8u) goto L_08969FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969FC8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5217,8 +6976,21 @@ L_08969FC8: L_08969FE0: aot_gpr_31 = (0x08969FE8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 388u, 0x08969FE8u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08969FE8u) goto L_08969FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08969FE8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5263,8 +7035,21 @@ L_08969FE8: } aot_gpr_31 = (0x0896A050u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 389u, 0x0896A050u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A050u) goto L_0896A050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A050: aot_gpr_31 = (0x0896A058u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5281,8 +7066,21 @@ L_0896A068: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0896A078u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 392u, 0x0896A078u, 0x089482C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 42u, 0x089482C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A078u) goto L_0896A078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A078: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17416))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -5296,8 +7094,21 @@ L_0896A078: L_0896A08C: aot_gpr_31 = (0x0896A094u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 394u, 0x0896A094u, 0x089484D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 74u, 0x089484D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A094u) goto L_0896A094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A094: aot_gpr_4 = (16128u << 16u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -5339,8 +7150,21 @@ L_0896A0C4: L_0896A0DC: aot_gpr_31 = (0x0896A0E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 399u, 0x0896A0E4u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A0E4u) goto L_0896A0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A0E4: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (17279u << 16u); @@ -5361,14 +7185,40 @@ L_0896A110: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x0896A124u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 401u, 0x0896A124u, 0x089470B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 597u, 0x089470B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A124u) goto L_0896A124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A124: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0896A130u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 402u, 0x0896A130u, 0x089484D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 74u, 0x089484D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A130u) goto L_0896A130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A130: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -5419,8 +7269,21 @@ L_0896A17C: L_0896A190: aot_gpr_31 = (0x0896A198u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 408u, 0x0896A198u, 0x0898D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 434u, 0x0898D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A198u) goto L_0896A198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A198: if (aot_gpr_2 == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1588))); @@ -5478,19 +7341,58 @@ L_0896A1E0: L_0896A1F0: aot_gpr_31 = (0x0896A1F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 416u, 0x0896A1F8u, 0x08B0EBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 658u, 0x08B0EBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A1F8u) goto L_0896A1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A1F8: aot_gpr_31 = (0x0896A200u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 417u, 0x0896A200u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A200u) goto L_0896A200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A200: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896A20Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 418u, 0x0896A20Cu, 0x08B41F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 466u, 0x08B41F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A20Cu) goto L_0896A20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A20C: aot_gpr_4 = (0u | 2u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1494))); @@ -5505,8 +7407,21 @@ L_0896A20C: aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_31 = (0x0896A240u); aot_gpr_4 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 419u, 0x0896A240u, 0x088DBBACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 658u, 0x088DBBACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A240u) goto L_0896A240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A240: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(88))); ctx.gpr[7] = (16128u << 16u); @@ -5518,8 +7433,21 @@ L_0896A240: ctx.fpr[20] = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x0896A268u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 420u, 0x0896A268u, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A268u) goto L_0896A268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A268: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1284))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -5530,21 +7458,60 @@ L_0896A268: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(92))); aot_gpr_31 = (0x0896A28Cu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 421u, 0x0896A28Cu, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A28Cu) goto L_0896A28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A28C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1288))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; aot_gpr_31 = (0x0896A2A0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1288), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 422u, 0x0896A2A0u, 0x08A58A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 163u, 0x08A58A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A2A0u) goto L_0896A2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A2A0: aot_gpr_31 = (0x0896A2A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 423u, 0x0896A2A8u, 0x08A58A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 160u, 0x08A58A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A2A8u) goto L_0896A2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A2A8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(616)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -5567,18 +7534,57 @@ L_0896A2A8: L_0896A2DC: aot_gpr_31 = (0x0896A2E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 425u, 0x0896A2E4u, 0x08B0EBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 658u, 0x08B0EBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A2E4u) goto L_0896A2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A2E4: aot_gpr_31 = (0x0896A2ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 426u, 0x0896A2ECu, 0x08B461ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 442u, 0x08B461ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A2ECu) goto L_0896A2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A2EC: aot_gpr_31 = (0x0896A2F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 427u, 0x0896A2F4u, 0x08A58A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 163u, 0x08A58A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A2F4u) goto L_0896A2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A2F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); ctx.fpr[20] = std::bit_cast(0u); @@ -5604,8 +7610,21 @@ L_0896A324: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(608), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0896A340u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 429u, 0x0896A340u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A340u) goto L_0896A340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A340: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5715,8 +7734,21 @@ L_0896A41C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896A428u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 441u, 0x0896A428u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A428u) goto L_0896A428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A428: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5728,8 +7760,21 @@ L_0896A430: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896A43Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 443u, 0x0896A43Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A43Cu) goto L_0896A43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A43C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(604), std::bit_cast(ctx.fpr[20])); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(700), 0u); @@ -5808,8 +7853,21 @@ L_0896A4C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(608), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0896A4DCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 453u, 0x0896A4DCu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A4DCu) goto L_0896A4DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A4DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5849,8 +7907,21 @@ L_0896A514: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896A52Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(608), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 456u, 0x0896A52Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A52Cu) goto L_0896A52C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A52C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(600), std::bit_cast(ctx.fpr[20])); @@ -5864,8 +7935,21 @@ L_0896A534: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896A544u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 458u, 0x0896A544u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A544u) goto L_0896A544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A544: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(600), std::bit_cast(ctx.fpr[20])); goto L_0896A548; @@ -5894,8 +7978,21 @@ L_0896A574: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896A590u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(608), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 461u, 0x0896A590u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A590u) goto L_0896A590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A590: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1280)))))); aot_fpr_12 = std::bit_cast(0u); @@ -6252,8 +8349,21 @@ L_0896A838: } aot_gpr_31 = (0x0896A88Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 495u, 0x0896A88Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896A88Cu) goto L_0896A88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896A88C: aot_gpr_2 = (ctx.gpr[22] | 0u); { std::uint32_t aot_run_words[11]{}; @@ -6272,8 +8382,8 @@ L_0896A88C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896A8C4: @@ -6608,8 +8718,21 @@ L_0896AB54: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x0896AB6Cu); ctx.gpr[7] = (0u | 207u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 536u, 0x0896AB6Cu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896AB6Cu) goto L_0896AB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896AB6C: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u | 1u); @@ -6724,8 +8847,21 @@ L_0896AC40: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x0896AC58u); ctx.gpr[7] = (0u | 206u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 550u, 0x0896AC58u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896AC58u) goto L_0896AC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896AC58: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u | 1u); @@ -6787,8 +8923,21 @@ L_0896ACC4: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x0896ACDCu); ctx.gpr[7] = (0u | 206u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 559u, 0x0896ACDCu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896ACDCu) goto L_0896ACDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896ACDC: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u | 1u); @@ -6972,8 +9121,21 @@ L_0896AE48: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(32))); aot_gpr_31 = (0x0896AE5Cu); { const float fs = ctx.fpr[20]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 581u, 0x0896AE5Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896AE5Cu) goto L_0896AE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896AE5C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1596), std::bit_cast(ctx.fpr[20])); @@ -7157,8 +9319,21 @@ L_0896AFEC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896B004u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0151. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 602u, 0x0896B004u, 0x08A63FD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0151_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0151_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0151_entry, 151u, 671u, 0x08A63FD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B004u) goto L_0896B004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B004: aot_gpr_4 = (ctx.gpr[18] | ctx.gpr[17]); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7516,8 +9691,8 @@ L_0896B308: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896B340: @@ -7581,8 +9756,21 @@ L_0896B3AC: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0896B3B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 648u, 0x0896B3B8u, 0x0898BD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 998u, 0x0898BD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B3B8u) goto L_0896B3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B3B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1584))); { const bool branch_taken = aot_gpr_2 == 0u; @@ -7633,15 +9821,41 @@ L_0896B404: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1508))); aot_gpr_31 = (0x0896B420u); ctx.gpr[7] = (0u | 205u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 655u, 0x0896B420u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B420u) goto L_0896B420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B420: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0896B430u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 656u, 0x0896B430u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B430u) goto L_0896B430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B430: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-2)); @@ -7706,8 +9920,21 @@ L_0896B494: L_0896B49C: aot_gpr_31 = (0x0896B4A4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 664u, 0x0896B4A4u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B4A4u) goto L_0896B4A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B4A4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7737,8 +9964,21 @@ L_0896B4D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896B4E8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 668u, 0x0896B4E8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B4E8u) goto L_0896B4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B4E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7893,8 +10133,8 @@ L_0896B618: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896B634: @@ -7903,8 +10143,21 @@ L_0896B634: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(436), aot_run_words); } aot_gpr_31 = (0x0896B678u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 687u, 0x0896B678u, 0x08AFEF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 662u, 0x08AFEF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B678u) goto L_0896B678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B678: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); @@ -8189,14 +10442,40 @@ L_0896B8DC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(944), static_cast(0u)); aot_gpr_31 = (0x0896B8E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 716u, 0x0896B8E8u, 0x08A595C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 312u, 0x08A595C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B8E8u) goto L_0896B8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B8E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896B8F4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 717u, 0x0896B8F4u, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896B8F4u) goto L_0896B8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896B8F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), 0u); @@ -8385,8 +10664,21 @@ L_0896BA48: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0896BA6Cu); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 727u, 0x0896BA6Cu, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BA6Cu) goto L_0896BA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BA6C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1292), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -8482,8 +10774,21 @@ L_0896BB2C: aot_gpr_5 = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x0896BB4Cu); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 736u, 0x0896BB4Cu, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BB4Cu) goto L_0896BB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BB4C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1296), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -8523,8 +10828,21 @@ L_0896BB80: L_0896BB90: aot_gpr_31 = (0x0896BB98u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 741u, 0x0896BB98u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BB98u) goto L_0896BB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BB98: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); goto L_0896BB9C; @@ -8535,8 +10853,21 @@ L_0896BB9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896BBB4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 743u, 0x0896BBB4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BBB4u) goto L_0896BBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BBB4: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8558,13 +10889,39 @@ L_0896BBB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(288), aot_gpr_4); aot_gpr_31 = (0x0896BBD8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 744u, 0x0896BBD8u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BBD8u) goto L_0896BBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BBD8: aot_gpr_31 = (0x0896BBE0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 745u, 0x0896BBE0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BBE0u) goto L_0896BBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BBE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(340))); aot_gpr_4 = (16457u << 16u); @@ -8613,30 +10970,95 @@ L_0896BC1C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0896BC64u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 748u, 0x0896BC64u, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BC64u) goto L_0896BC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BC64: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(288))); aot_gpr_31 = (0x0896BC70u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 749u, 0x0896BC70u, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BC70u) goto L_0896BC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BC70: aot_gpr_31 = (0x0896BC78u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 750u, 0x0896BC78u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BC78u) goto L_0896BC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BC78: aot_gpr_31 = (0x0896BC80u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 751u, 0x0896BC80u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BC80u) goto L_0896BC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BC80: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0896BC8Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 752u, 0x0896BC8Cu, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BC8Cu) goto L_0896BC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BC8C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -8646,13 +11068,39 @@ L_0896BC8C: } aot_gpr_31 = (0x0896BCA0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 753u, 0x0896BCA0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BCA0u) goto L_0896BCA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BCA0: aot_gpr_31 = (0x0896BCA8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 754u, 0x0896BCA8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BCA8u) goto L_0896BCA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BCA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1560))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8683,8 +11131,21 @@ L_0896BCC0: L_0896BCD0: aot_gpr_31 = (0x0896BCD8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 758u, 0x0896BCD8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BCD8u) goto L_0896BCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BCD8: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); goto L_0896BCDC; @@ -8695,8 +11156,21 @@ L_0896BCDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896BCF4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 760u, 0x0896BCF4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BCF4u) goto L_0896BCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BCF4: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8733,14 +11207,40 @@ L_0896BD10: L_0896BD24: aot_gpr_31 = (0x0896BD2Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 763u, 0x0896BD2Cu, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BD2Cu) goto L_0896BD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BD2C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0896BD38u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 764u, 0x0896BD38u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BD38u) goto L_0896BD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BD38: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -8750,8 +11250,21 @@ L_0896BD38: } aot_gpr_31 = (0x0896BD4Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 765u, 0x0896BD4Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BD4Cu) goto L_0896BD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BD4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8768,13 +11281,39 @@ L_0896BD54: } aot_gpr_31 = (0x0896BD68u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 767u, 0x0896BD68u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BD68u) goto L_0896BD68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BD68: aot_gpr_31 = (0x0896BD70u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 768u, 0x0896BD70u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BD70u) goto L_0896BD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BD70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(296))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8795,8 +11334,21 @@ L_0896BD80: L_0896BD8C: aot_gpr_31 = (0x0896BD94u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 771u, 0x0896BD94u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BD94u) goto L_0896BD94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BD94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1548))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8843,8 +11395,21 @@ L_0896BDE4: L_0896BDF4: aot_gpr_31 = (0x0896BDFCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 775u, 0x0896BDFCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BDFCu) goto L_0896BDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BDFC: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_0896BE00; @@ -8855,8 +11420,21 @@ L_0896BE00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896BE18u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 777u, 0x0896BE18u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BE18u) goto L_0896BE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BE18: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8876,8 +11454,21 @@ L_0896BE18: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0896BE34u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 778u, 0x0896BE34u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BE34u) goto L_0896BE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BE34: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -8887,13 +11478,39 @@ L_0896BE34: } aot_gpr_31 = (0x0896BE48u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 779u, 0x0896BE48u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BE48u) goto L_0896BE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BE48: aot_gpr_31 = (0x0896BE50u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 780u, 0x0896BE50u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BE50u) goto L_0896BE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BE50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8916,8 +11533,21 @@ L_0896BE5C: L_0896BE6C: aot_gpr_31 = (0x0896BE74u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 783u, 0x0896BE74u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BE74u) goto L_0896BE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BE74: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_0896BE78; @@ -8928,8 +11558,21 @@ L_0896BE78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896BE90u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 785u, 0x0896BE90u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BE90u) goto L_0896BE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BE90: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9000,8 +11643,21 @@ L_0896BF04: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0896BF40u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 789u, 0x0896BF40u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BF40u) goto L_0896BF40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BF40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9013,8 +11669,21 @@ L_0896BF48: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1284))); aot_gpr_31 = (0x0896BF54u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 791u, 0x0896BF54u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BF54u) goto L_0896BF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BF54: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -9024,13 +11693,39 @@ L_0896BF54: } aot_gpr_31 = (0x0896BF68u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 792u, 0x0896BF68u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BF68u) goto L_0896BF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BF68: aot_gpr_31 = (0x0896BF70u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 793u, 0x0896BF70u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BF70u) goto L_0896BF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BF70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9053,8 +11748,21 @@ L_0896BF7C: L_0896BF8C: aot_gpr_31 = (0x0896BF94u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 796u, 0x0896BF94u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BF94u) goto L_0896BF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BF94: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_0896BF98; @@ -9065,8 +11773,21 @@ L_0896BF98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896BFB0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0089->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0089_entry, 798u, 0x0896BFB0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896BFB0u) goto L_0896BFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896BFB0: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; diff --git a/profiles/vcs/generated/generated_unit_0090.cpp b/profiles/vcs/generated/generated_unit_0090.cpp index 44390a9..f4b1487 100644 --- a/profiles/vcs/generated/generated_unit_0090.cpp +++ b/profiles/vcs/generated/generated_unit_0090.cpp @@ -973,6 +973,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0896C000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -995,8 +1019,21 @@ L_0896C000: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0896C020u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 2u, 0x0896C020u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C020u) goto L_0896C020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C020: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1008,8 +1045,21 @@ L_0896C028: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1288))); aot_gpr_31 = (0x0896C034u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 4u, 0x0896C034u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C034u) goto L_0896C034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C034: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -1019,13 +1069,39 @@ L_0896C034: } aot_gpr_31 = (0x0896C048u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 5u, 0x0896C048u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C048u) goto L_0896C048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C048: aot_gpr_31 = (0x0896C050u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 6u, 0x0896C050u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C050u) goto L_0896C050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C050: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1540))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1049,8 +1125,21 @@ L_0896C070: aot_gpr_6 = (aot_gpr_29 + static_cast(404)); aot_gpr_31 = (0x0896C080u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 9u, 0x0896C080u, 0x08969998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 336u, 0x08969998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C080u) goto L_0896C080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C080: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1073,8 +1162,21 @@ L_0896C08C: L_0896C09C: aot_gpr_31 = (0x0896C0A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 12u, 0x0896C0A4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C0A4u) goto L_0896C0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C0A4: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_0896C0A8; @@ -1085,8 +1187,21 @@ L_0896C0A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896C0C0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 14u, 0x0896C0C0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C0C0u) goto L_0896C0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C0C0: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1126,16 +1241,42 @@ L_0896C0C0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0896C124u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 15u, 0x0896C124u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C124u) goto L_0896C124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C124: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1516))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1592))); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_gpr_31 = (0x0896C138u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 16u, 0x0896C138u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C138u) goto L_0896C138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C138: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -1145,13 +1286,39 @@ L_0896C138: } aot_gpr_31 = (0x0896C14Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 17u, 0x0896C14Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C14Cu) goto L_0896C14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C14C: aot_gpr_31 = (0x0896C154u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 18u, 0x0896C154u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C154u) goto L_0896C154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C154: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1564))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1182,8 +1349,21 @@ L_0896C16C: L_0896C17C: aot_gpr_31 = (0x0896C184u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 22u, 0x0896C184u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C184u) goto L_0896C184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C184: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_0896C188; @@ -1194,8 +1374,21 @@ L_0896C188: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896C1A0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 24u, 0x0896C1A0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C1A0u) goto L_0896C1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C1A0: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1215,8 +1408,21 @@ L_0896C1A0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0896C1BCu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 25u, 0x0896C1BCu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C1BCu) goto L_0896C1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C1BC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -1226,13 +1432,39 @@ L_0896C1BC: } aot_gpr_31 = (0x0896C1D0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 26u, 0x0896C1D0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C1D0u) goto L_0896C1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C1D0: aot_gpr_31 = (0x0896C1D8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 27u, 0x0896C1D8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C1D8u) goto L_0896C1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C1D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1568))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1263,8 +1495,21 @@ L_0896C1F0: L_0896C200: aot_gpr_31 = (0x0896C208u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 31u, 0x0896C208u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C208u) goto L_0896C208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C208: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_0896C20C; @@ -1275,8 +1520,21 @@ L_0896C20C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896C224u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 33u, 0x0896C224u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C224u) goto L_0896C224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C224: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1296,8 +1554,21 @@ L_0896C224: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0896C240u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 34u, 0x0896C240u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C240u) goto L_0896C240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C240: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -1307,13 +1578,39 @@ L_0896C240: } aot_gpr_31 = (0x0896C254u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 35u, 0x0896C254u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C254u) goto L_0896C254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C254: aot_gpr_31 = (0x0896C25Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 36u, 0x0896C25Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C25Cu) goto L_0896C25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C25C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1572))); if (aot_gpr_4 == 0u) { @@ -1343,8 +1640,21 @@ L_0896C274: L_0896C284: aot_gpr_31 = (0x0896C28Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 40u, 0x0896C28Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C28Cu) goto L_0896C28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C28C: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_0896C290; @@ -1355,8 +1665,21 @@ L_0896C290: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x0896C2A8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 42u, 0x0896C2A8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C2A8u) goto L_0896C2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C2A8: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1376,8 +1699,21 @@ L_0896C2A8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0896C2C4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 43u, 0x0896C2C4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C2C4u) goto L_0896C2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C2C4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -1387,13 +1723,39 @@ L_0896C2C4: } aot_gpr_31 = (0x0896C2D8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 44u, 0x0896C2D8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C2D8u) goto L_0896C2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C2D8: aot_gpr_31 = (0x0896C2E0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 45u, 0x0896C2E0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C2E0u) goto L_0896C2E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C2E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); goto L_0896C2E4; @@ -1416,8 +1778,21 @@ L_0896C2F0: L_0896C2FC: aot_gpr_31 = (0x0896C304u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 49u, 0x0896C304u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C304u) goto L_0896C304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C304: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(436), aot_run_words); @@ -1438,8 +1813,8 @@ L_0896C304: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(496)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896C344: @@ -1507,8 +1882,21 @@ L_0896C3CC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896C3DCu); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 58u, 0x0896C3DCu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C3DCu) goto L_0896C3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C3DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C3E8u); @@ -1541,8 +1929,21 @@ L_0896C408: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896C418u); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 64u, 0x0896C418u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C418u) goto L_0896C418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C418: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C424u); @@ -1604,8 +2005,21 @@ L_0896C47C: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x0896C498u); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 72u, 0x0896C498u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C498u) goto L_0896C498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C498: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C4A4u); @@ -1705,16 +2119,42 @@ L_0896C54C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896C560u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 85u, 0x0896C560u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C560u) goto L_0896C560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C560: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0896C574u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 86u, 0x0896C574u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C574u) goto L_0896C574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C574: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C580u); @@ -1748,16 +2188,42 @@ L_0896C5A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896C5B4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 92u, 0x0896C5B4u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C5B4u) goto L_0896C5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C5B4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0896C5C8u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 93u, 0x0896C5C8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C5C8u) goto L_0896C5C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C5C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C5D4u); @@ -1829,8 +2295,21 @@ L_0896C638: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896C648u); ctx.gpr[7] = (0u | 114u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 104u, 0x0896C648u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C648u) goto L_0896C648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C648: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C654u); @@ -1863,8 +2342,21 @@ L_0896C674: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896C684u); ctx.gpr[7] = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 110u, 0x0896C684u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C684u) goto L_0896C684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C684: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C690u); @@ -1906,8 +2398,21 @@ L_0896C6C4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896C6D4u); ctx.gpr[7] = (0u | 115u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 117u, 0x0896C6D4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C6D4u) goto L_0896C6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C6D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C6E0u); @@ -1940,8 +2445,21 @@ L_0896C700: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896C710u); ctx.gpr[7] = (0u | 117u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 123u, 0x0896C710u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C710u) goto L_0896C710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C710: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C71Cu); @@ -2029,8 +2547,21 @@ L_0896C7A4: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x0896C7C0u); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 134u, 0x0896C7C0u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C7C0u) goto L_0896C7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C7C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(780), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -2050,8 +2581,21 @@ L_0896C7D4: L_0896C7DC: aot_gpr_31 = (0x0896C7E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 137u, 0x0896C7E4u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C7E4u) goto L_0896C7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C7E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2081,8 +2625,21 @@ L_0896C804: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x0896C820u); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 141u, 0x0896C820u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C820u) goto L_0896C820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C820: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C82Cu); @@ -2163,8 +2720,21 @@ L_0896C874: L_0896C8A8: aot_gpr_31 = (0x0896C8B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 150u, 0x0896C8B0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C8B0u) goto L_0896C8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C8B0: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); aot_gpr_5 = (0u | 10u); @@ -2189,8 +2759,21 @@ L_0896C8D0: aot_gpr_6 = (0u | 31u); aot_gpr_31 = (0x0896C8E4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 153u, 0x0896C8E4u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C8E4u) goto L_0896C8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C8E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2204,8 +2787,21 @@ L_0896C8EC: aot_gpr_6 = (0u | 29u); aot_gpr_31 = (0x0896C900u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 155u, 0x0896C900u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C900u) goto L_0896C900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C900: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2264,8 +2860,21 @@ L_0896C960: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896C970u); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 163u, 0x0896C970u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C970u) goto L_0896C970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C970: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C97Cu); @@ -2298,8 +2907,21 @@ L_0896C99C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896C9ACu); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 169u, 0x0896C9ACu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C9ACu) goto L_0896C9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C9AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896C9B8u); @@ -2331,8 +2953,21 @@ L_0896C9D0: L_0896C9E0: aot_gpr_31 = (0x0896C9E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 174u, 0x0896C9E8u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896C9E8u) goto L_0896C9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896C9E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2369,16 +3004,42 @@ L_0896CA14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896CA28u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 180u, 0x0896CA28u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CA28u) goto L_0896CA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CA28: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0896CA3Cu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 181u, 0x0896CA3Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CA3Cu) goto L_0896CA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CA3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896CA48u); @@ -2412,16 +3073,42 @@ L_0896CA68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896CA7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 187u, 0x0896CA7Cu, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CA7Cu) goto L_0896CA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CA7C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0896CA90u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 188u, 0x0896CA90u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CA90u) goto L_0896CA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CA90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896CA9Cu); @@ -2488,8 +3175,21 @@ L_0896CAD0: L_0896CB04: aot_gpr_31 = (0x0896CB0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 196u, 0x0896CB0Cu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CB0Cu) goto L_0896CB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CB0C: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); aot_gpr_5 = (0u | 10u); @@ -2514,8 +3214,21 @@ L_0896CB2C: aot_gpr_6 = (0u | 31u); aot_gpr_31 = (0x0896CB40u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 199u, 0x0896CB40u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CB40u) goto L_0896CB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CB40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2529,8 +3242,21 @@ L_0896CB48: aot_gpr_6 = (0u | 29u); aot_gpr_31 = (0x0896CB5Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 201u, 0x0896CB5Cu, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CB5Cu) goto L_0896CB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CB5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2600,8 +3326,21 @@ L_0896CBCC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896CBDCu); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 211u, 0x0896CBDCu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CBDCu) goto L_0896CBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CBDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896CBE8u); @@ -2634,8 +3373,21 @@ L_0896CC08: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x0896CC18u); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 217u, 0x0896CC18u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CC18u) goto L_0896CC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CC18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896CC24u); @@ -2673,8 +3425,21 @@ L_0896CC48: L_0896CC58: aot_gpr_31 = (0x0896CC60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 223u, 0x0896CC60u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CC60u) goto L_0896CC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CC60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2712,16 +3477,42 @@ L_0896CC90: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896CCA4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 229u, 0x0896CCA4u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CCA4u) goto L_0896CCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CCA4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0896CCB8u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 230u, 0x0896CCB8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CCB8u) goto L_0896CCB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CCB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896CCC4u); @@ -2755,16 +3546,42 @@ L_0896CCE4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896CCF8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 236u, 0x0896CCF8u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CCF8u) goto L_0896CCF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CCF8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0896CD0Cu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 237u, 0x0896CD0Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CD0Cu) goto L_0896CD0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CD0C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896CD18u); @@ -2801,13 +3618,39 @@ L_0896CD44: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896CD58u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 243u, 0x0896CD58u, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CD58u) goto L_0896CD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CD58: aot_gpr_31 = (0x0896CD60u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 244u, 0x0896CD60u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CD60u) goto L_0896CD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CD60: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[19] = (0u | 6u); @@ -2820,8 +3663,21 @@ L_0896CD68: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0896CD74u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 246u, 0x0896CD74u, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CD74u) goto L_0896CD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CD74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -2886,8 +3742,21 @@ L_0896CDCC: aot_gpr_6 = (0u | 11u); aot_gpr_31 = (0x0896CDE0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 256u, 0x0896CDE0u, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CDE0u) goto L_0896CDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CDE0: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2902,8 +3771,8 @@ L_0896CDE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896CE08: @@ -2959,8 +3828,8 @@ L_0896CE08: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896CE30: @@ -3015,8 +3884,21 @@ L_0896CEC0: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x0896CED0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 263u, 0x0896CED0u, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CED0u) goto L_0896CED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CED0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -3031,15 +3913,28 @@ L_0896CEDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896CEECu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 265u, 0x0896CEECu, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CEECu) goto L_0896CEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CEEC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896CEFC: @@ -3057,8 +3952,21 @@ L_0896CF14: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0896CF20u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 268u, 0x0896CF20u, 0x08A05F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 499u, 0x08A05F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CF20u) goto L_0896CF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CF20: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-17344), aot_gpr_4); @@ -3067,8 +3975,8 @@ L_0896CF28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896CF34: @@ -3099,8 +4007,21 @@ L_0896CF70: L_0896CF7C: aot_gpr_31 = (0x0896CF84u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 273u, 0x0896CF84u, 0x08B36790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 583u, 0x08B36790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896CF84u) goto L_0896CF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896CF84: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 32 ? 1u : 0u); @@ -3194,8 +4115,21 @@ L_0896D040: L_0896D050: aot_gpr_31 = (0x0896D058u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 283u, 0x0896D058u, 0x08B3507Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 233u, 0x08B3507Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D058u) goto L_0896D058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D058: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3206,8 +4140,21 @@ L_0896D058: L_0896D060: aot_gpr_31 = (0x0896D068u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 285u, 0x0896D068u, 0x08B35218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 255u, 0x08B35218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D068u) goto L_0896D068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D068: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -3219,8 +4166,8 @@ L_0896D068: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D084: @@ -3276,8 +4223,8 @@ L_0896D0DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D0F0: @@ -3295,8 +4242,8 @@ L_0896D0F0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(68), aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(62), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D128: @@ -3381,8 +4328,21 @@ L_0896D1C4: L_0896D1EC: aot_gpr_31 = (0x0896D1F4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 304u, 0x0896D1F4u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D1F4u) goto L_0896D1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D1F4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9212))); { const bool branch_taken = static_cast(aot_gpr_5) < 0; @@ -3405,8 +4365,21 @@ L_0896D20C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0896D218u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 307u, 0x0896D218u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D218u) goto L_0896D218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D218: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -3430,8 +4403,21 @@ L_0896D230: L_0896D238: aot_gpr_31 = (0x0896D240u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 312u, 0x0896D240u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D240u) goto L_0896D240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D240: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9208))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9212))); @@ -3442,8 +4428,21 @@ L_0896D240: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x0896D264u); ctx.gpr[11] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 313u, 0x0896D264u, 0x08ABAD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D264u) goto L_0896D264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D264: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); @@ -3479,8 +4478,21 @@ L_0896D294: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0896D2A0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 318u, 0x0896D2A0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D2A0u) goto L_0896D2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D2A0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -3504,8 +4516,21 @@ L_0896D2B8: L_0896D2C0: aot_gpr_31 = (0x0896D2C8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 323u, 0x0896D2C8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D2C8u) goto L_0896D2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D2C8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9208))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3516,8 +4541,21 @@ L_0896D2C8: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x0896D2ECu); ctx.gpr[11] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 324u, 0x0896D2ECu, 0x08ABAD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D2ECu) goto L_0896D2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D2EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); @@ -3543,8 +4581,21 @@ L_0896D30C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0896D318u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 328u, 0x0896D318u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D318u) goto L_0896D318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D318: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3568,8 +4619,21 @@ L_0896D330: L_0896D338: aot_gpr_31 = (0x0896D340u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 333u, 0x0896D340u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D340u) goto L_0896D340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D340: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); @@ -3588,8 +4652,8 @@ L_0896D350: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D36C: @@ -3646,8 +4710,8 @@ L_0896D3D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D3E8: @@ -3663,8 +4727,8 @@ L_0896D3E8: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(169))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D418: @@ -3682,8 +4746,8 @@ L_0896D418: ctx.gpr[2] = (aot_gpr_4 ^ 5u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D450: @@ -3816,8 +4880,8 @@ L_0896D52C: } L_0896D534: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D53C: @@ -3860,8 +4924,8 @@ L_0896D584: goto L_0896D588; L_0896D588: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D590: @@ -3895,8 +4959,8 @@ L_0896D5CC: goto L_0896D5D0; L_0896D5D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D5D8: @@ -3913,8 +4977,8 @@ L_0896D5D8: ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(65))); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(65), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D60C: @@ -3974,14 +5038,27 @@ L_0896D6A0: L_0896D6A8: aot_gpr_31 = (0x0896D6B0u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(140), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 374u, 0x0896D6B0u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D6B0u) goto L_0896D6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D6B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D6BC: @@ -3998,8 +5075,8 @@ L_0896D6BC: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(78), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D6F0: @@ -4017,14 +5094,27 @@ L_0896D6F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0896D728u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 377u, 0x0896D728u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D728u) goto L_0896D728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D728: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D734: @@ -4048,8 +5138,8 @@ L_0896D748: goto L_0896D74C; L_0896D74C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D754: @@ -4091,8 +5181,8 @@ L_0896D7A8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8520))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D7C0: @@ -4128,8 +5218,21 @@ L_0896D7C8: aot_gpr_6 = (16128u << 16u); aot_gpr_31 = (0x0896D800u); aot_fpr_12 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 388u, 0x0896D800u, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D800u) goto L_0896D800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D800: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4178,8 +5281,21 @@ L_0896D818: aot_gpr_6 = (16128u << 16u); aot_gpr_31 = (0x0896D850u); aot_fpr_12 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 392u, 0x0896D850u, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D850u) goto L_0896D850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D850: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4224,15 +5340,15 @@ L_0896D87C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D890: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(9216))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896D898: @@ -4278,8 +5394,21 @@ L_0896D900: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896D910u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 403u, 0x0896D910u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D910u) goto L_0896D910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D910: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4331,8 +5460,21 @@ L_0896D954: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x0896D960u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 410u, 0x0896D960u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D960u) goto L_0896D960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D960: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -4356,8 +5498,21 @@ L_0896D978: L_0896D980: aot_gpr_31 = (0x0896D988u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 415u, 0x0896D988u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D988u) goto L_0896D988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D988: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -4368,14 +5523,40 @@ L_0896D988: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x0896D9ACu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 416u, 0x0896D9ACu, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D9ACu) goto L_0896D9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D9AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896D9B8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 417u, 0x0896D9B8u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896D9B8u) goto L_0896D9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896D9B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9208), ctx.gpr[20]); @@ -4420,8 +5601,8 @@ L_0896D9FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896DA24: @@ -4444,8 +5625,21 @@ L_0896DA40: L_0896DA4C: aot_gpr_31 = (0x0896DA54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 424u, 0x0896DA54u, 0x08B36EECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 694u, 0x08B36EECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896DA54u) goto L_0896DA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896DA54: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 32 ? 1u : 0u); @@ -4467,8 +5661,8 @@ L_0896DA64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896DA80: @@ -4685,8 +5879,8 @@ L_0896DBB4: goto L_0896DBB8; L_0896DBB8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896DBC0: @@ -4730,8 +5924,8 @@ L_0896DC18: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8432))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896DC30: @@ -4758,8 +5952,21 @@ L_0896DC30: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0896DC60u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 459u, 0x0896DC60u, 0x08B35604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 300u, 0x08B35604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896DC60u) goto L_0896DC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896DC60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4804,8 +6011,8 @@ L_0896DC8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896DCA0: @@ -4864,8 +6071,21 @@ L_0896DCF0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0896DD20u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 469u, 0x0896DD20u, 0x08B35604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 300u, 0x08B35604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896DD20u) goto L_0896DD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896DD20: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4910,8 +6130,8 @@ L_0896DD4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896DD60: @@ -5079,8 +6299,21 @@ L_0896DF24: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0896DF34u); aot_gpr_6 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 488u, 0x0896DF34u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896DF34u) goto L_0896DF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896DF34: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_16 = (aot_gpr_16 + static_cast(176)); @@ -5102,8 +6335,8 @@ L_0896DF48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896DF60: @@ -5265,8 +6498,21 @@ L_0896E118: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896E128u); aot_gpr_6 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 503u, 0x0896E128u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E128u) goto L_0896E128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E128: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), 0u); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), 0u); @@ -5276,8 +6522,21 @@ L_0896E128: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0896E148u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 504u, 0x0896E148u, 0x08B346D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 80u, 0x08B346D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E148u) goto L_0896E148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E148: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(61))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -5289,8 +6548,21 @@ L_0896E148: L_0896E154: aot_gpr_31 = (0x0896E15Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 506u, 0x0896E15Cu, 0x08B34680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 75u, 0x08B34680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E15Cu) goto L_0896E15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E15C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5301,8 +6573,21 @@ L_0896E15C: L_0896E164: aot_gpr_31 = (0x0896E16Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 508u, 0x0896E16Cu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E16Cu) goto L_0896E16C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E16C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 32 ? 1u : 0u); @@ -5331,8 +6616,21 @@ L_0896E198: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x0896E1ACu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 511u, 0x0896E1ACu, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E1ACu) goto L_0896E1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E1AC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -5347,8 +6645,21 @@ L_0896E1B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896E1C8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 513u, 0x0896E1C8u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E1C8u) goto L_0896E1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E1C8: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5361,8 +6672,8 @@ L_0896E1C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E1E8: @@ -5394,8 +6705,21 @@ L_0896E228: aot_gpr_5 = (aot_gpr_5 + static_cast(2000)); aot_gpr_31 = (0x0896E244u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(156), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 516u, 0x0896E244u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E244u) goto L_0896E244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E244: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5411,8 +6735,8 @@ L_0896E254: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E260: @@ -5451,8 +6775,8 @@ L_0896E298: } L_0896E2A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E2B0: @@ -5523,8 +6847,8 @@ L_0896E328: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E338: @@ -5645,8 +6969,21 @@ L_0896E404: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x0896E414u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 546u, 0x0896E414u, 0x08B3312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 650u, 0x08B3312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E414u) goto L_0896E414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E414: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -5658,8 +6995,21 @@ L_0896E414: L_0896E424: aot_gpr_31 = (0x0896E42Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 548u, 0x0896E42Cu, 0x08B330A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 641u, 0x08B330A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E42Cu) goto L_0896E42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E42C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 32 ? 1u : 0u); @@ -5687,8 +7037,8 @@ L_0896E43C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E470: @@ -5767,8 +7117,8 @@ L_0896E4CC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8360))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E4E4: @@ -5791,8 +7141,8 @@ L_0896E4F4: goto L_0896E4F8; L_0896E4F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E500: @@ -5815,8 +7165,21 @@ L_0896E524: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x0896E53Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 567u, 0x0896E53Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E53Cu) goto L_0896E53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E53C: aot_gpr_4 = (ctx.gpr[17] << 5u); aot_gpr_5 = (ctx.gpr[17] << 2u); @@ -5846,8 +7209,8 @@ L_0896E570: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E584: @@ -5866,8 +7229,8 @@ L_0896E584: aot_fpr_14 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; ctx.fpr[0] = ctx.fpr[0] - aot_fpr_14; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E5C0: @@ -6000,19 +7363,58 @@ L_0896E69C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0896E6B8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 587u, 0x0896E6B8u, 0x08B34D54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 189u, 0x08B34D54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E6B8u) goto L_0896E6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E6B8: aot_gpr_31 = (0x0896E6C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 588u, 0x0896E6C0u, 0x08B3430Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 39u, 0x08B3430Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E6C0u) goto L_0896E6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E6C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(140), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0896E6CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 589u, 0x0896E6CCu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896E6CCu) goto L_0896E6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896E6CC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 32 ? 1u : 0u); @@ -6040,8 +7442,8 @@ L_0896E6DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E710: @@ -6100,8 +7502,8 @@ L_0896E780: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E7A4: @@ -6119,8 +7521,8 @@ L_0896E7B4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8136))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E7CC: @@ -6224,8 +7626,8 @@ L_0896E82C: goto L_0896E830; L_0896E830: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896E838: @@ -6432,8 +7834,8 @@ L_0896EA8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896EACC: @@ -6468,8 +7870,21 @@ L_0896EB0C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0896EB18u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 631u, 0x0896EB18u, 0x08B346D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 80u, 0x08B346D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EB18u) goto L_0896EB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EB18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6503,8 +7918,21 @@ L_0896EB64: aot_gpr_5 = (aot_gpr_4 + static_cast(352)); aot_gpr_31 = (0x0896EB70u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 634u, 0x0896EB70u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EB70u) goto L_0896EB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EB70: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(148))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -6512,8 +7940,21 @@ L_0896EB70: aot_gpr_4 = (aot_gpr_4 + static_cast(352)); aot_gpr_31 = (0x0896EB88u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 635u, 0x0896EB88u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EB88u) goto L_0896EB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EB88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6533,8 +7974,21 @@ L_0896EB98: } L_0896EBA4: aot_gpr_31 = (0x0896EBACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 638u, 0x0896EBACu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EBACu) goto L_0896EBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EBAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); goto L_0896EBB0; @@ -6551,20 +8005,59 @@ L_0896EBBC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0896EBCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 641u, 0x0896EBCCu, 0x08B345C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 74u, 0x08B345C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EBCCu) goto L_0896EBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EBCC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); goto L_0896EBD0; L_0896EBD0: aot_gpr_31 = (0x0896EBD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 643u, 0x0896EBD8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EBD8u) goto L_0896EBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EBD8: aot_gpr_31 = (0x0896EBE0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 644u, 0x0896EBE0u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EBE0u) goto L_0896EBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EBE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6598,8 +8091,21 @@ L_0896EC2C: aot_gpr_5 = (aot_gpr_4 + static_cast(352)); aot_gpr_31 = (0x0896EC38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 647u, 0x0896EC38u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EC38u) goto L_0896EC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EC38: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(152))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -6607,8 +8113,21 @@ L_0896EC38: aot_gpr_4 = (aot_gpr_4 + static_cast(352)); aot_gpr_31 = (0x0896EC50u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 648u, 0x0896EC50u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EC50u) goto L_0896EC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EC50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6628,8 +8147,21 @@ L_0896EC60: } L_0896EC6C: aot_gpr_31 = (0x0896EC74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 651u, 0x0896EC74u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EC74u) goto L_0896EC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EC74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); goto L_0896EC78; @@ -6646,20 +8178,59 @@ L_0896EC84: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0896EC94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 654u, 0x0896EC94u, 0x08B345C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 74u, 0x08B345C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EC94u) goto L_0896EC94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EC94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); goto L_0896EC98; L_0896EC98: aot_gpr_31 = (0x0896ECA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 656u, 0x0896ECA0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896ECA0u) goto L_0896ECA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896ECA0: aot_gpr_31 = (0x0896ECA8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 657u, 0x0896ECA8u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896ECA8u) goto L_0896ECA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896ECA8: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 32 ? 1u : 0u); @@ -6681,8 +8252,8 @@ L_0896ECB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896ECD4: @@ -6704,8 +8275,21 @@ L_0896ECD4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(320), aot_run_words); } aot_gpr_31 = (0x0896ED38u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 660u, 0x0896ED38u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896ED38u) goto L_0896ED38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896ED38: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -6716,22 +8300,61 @@ L_0896ED38: aot_fpr_12 = aot_fpr_20 / ctx.fpr[22]; aot_gpr_31 = (0x0896ED5Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 661u, 0x0896ED5Cu, 0x0885F93Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 916u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 916u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 916u, 0x0885F93Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896ED5Cu) goto L_0896ED5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896ED5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (0u | 4u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(294))); aot_gpr_31 = (0x0896ED70u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 662u, 0x0896ED70u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896ED70u) goto L_0896ED70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896ED70: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0896ED7Cu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 663u, 0x0896ED7Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896ED7Cu) goto L_0896ED7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896ED7C: aot_gpr_4 = (16549u << 16u); ctx.gpr[23] = (65532u << 16u); @@ -6754,8 +8377,21 @@ L_0896EDA4: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(294))); aot_gpr_31 = (0x0896EDB8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 665u, 0x0896EDB8u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EDB8u) goto L_0896EDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EDB8: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_0896EDBC; @@ -6790,8 +8426,21 @@ L_0896EDBC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0896EE00u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 667u, 0x0896EE00u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EE00u) goto L_0896EE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EE00: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(192), aot_run_words); @@ -6801,18 +8450,57 @@ L_0896EE00: } aot_gpr_31 = (0x0896EE14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 668u, 0x0896EE14u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EE14u) goto L_0896EE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EE14: aot_gpr_31 = (0x0896EE1Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 669u, 0x0896EE1Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EE1Cu) goto L_0896EE1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EE1C: aot_gpr_31 = (0x0896EE24u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 670u, 0x0896EE24u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EE24u) goto L_0896EE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EE24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]); @@ -6831,14 +8519,40 @@ L_0896EE24: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0896EE68u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 671u, 0x0896EE68u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EE68u) goto L_0896EE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EE68: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0896EE74u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 672u, 0x0896EE74u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EE74u) goto L_0896EE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EE74: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6853,8 +8567,21 @@ L_0896EE80: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(296))); aot_gpr_31 = (0x0896EE94u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 674u, 0x0896EE94u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EE94u) goto L_0896EE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EE94: aot_gpr_16 = (ctx.gpr[18] | 0u); goto L_0896EE98; @@ -6938,8 +8665,21 @@ L_0896EEC4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0896EF20u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 677u, 0x0896EF20u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EF20u) goto L_0896EF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EF20: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(224), aot_run_words); @@ -6949,18 +8689,57 @@ L_0896EF20: } aot_gpr_31 = (0x0896EF34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 678u, 0x0896EF34u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EF34u) goto L_0896EF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EF34: aot_gpr_31 = (0x0896EF3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 679u, 0x0896EF3Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EF3Cu) goto L_0896EF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EF3C: aot_gpr_31 = (0x0896EF44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 680u, 0x0896EF44u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EF44u) goto L_0896EF44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EF44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]); @@ -6981,14 +8760,40 @@ L_0896EF44: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x0896EF90u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 681u, 0x0896EF90u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EF90u) goto L_0896EF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EF90: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x0896EF9Cu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 682u, 0x0896EF9Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EF9Cu) goto L_0896EF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EF9C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7003,8 +8808,21 @@ L_0896EFA8: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(298))); aot_gpr_31 = (0x0896EFBCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 684u, 0x0896EFBCu, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896EFBCu) goto L_0896EFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896EFBC: ctx.gpr[22] = (ctx.gpr[18] | 0u); goto L_0896EFC0; @@ -7088,8 +8906,21 @@ L_0896EFEC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0896F048u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 687u, 0x0896F048u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F048u) goto L_0896F048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F048: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(256), aot_run_words); @@ -7099,21 +8930,60 @@ L_0896F048: } aot_gpr_31 = (0x0896F05Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 688u, 0x0896F05Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F05Cu) goto L_0896F05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F05C: aot_gpr_31 = (0x0896F064u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 689u, 0x0896F064u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F064u) goto L_0896F064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 | 8u); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x0896F078u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 690u, 0x0896F078u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F078u) goto L_0896F078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F078: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]); @@ -7127,18 +8997,57 @@ L_0896F078: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x0896F0A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 691u, 0x0896F0A8u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F0A8u) goto L_0896F0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F0A8: aot_gpr_31 = (0x0896F0B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 692u, 0x0896F0B0u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F0B0u) goto L_0896F0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F0B0: aot_gpr_31 = (0x0896F0B8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 693u, 0x0896F0B8u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F0B8u) goto L_0896F0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F0B8: aot_gpr_4 = (49216u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7304,8 +9213,21 @@ L_0896F208: L_0896F214: aot_gpr_31 = (0x0896F21Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 704u, 0x0896F21Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F21Cu) goto L_0896F21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F21C: ctx.gpr[2] = (ctx.gpr[21] | 0u); { std::uint32_t aot_run_words[14]{}; @@ -7327,8 +9249,8 @@ L_0896F21C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896F260: @@ -7351,8 +9273,21 @@ L_0896F260: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0896F2ACu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 706u, 0x0896F2ACu, 0x08B346D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 80u, 0x08B346D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F2ACu) goto L_0896F2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F2AC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_fpr_20 = std::bit_cast(0u); @@ -7433,8 +9368,8 @@ L_0896F340: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-8064))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896F358: @@ -7478,8 +9413,21 @@ L_0896F388: L_0896F394: aot_gpr_31 = (0x0896F39Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 721u, 0x0896F39Cu, 0x08B34680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 75u, 0x08B34680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F39Cu) goto L_0896F39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F39C: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(144))); @@ -7491,8 +9439,21 @@ L_0896F39C: L_0896F3A4: aot_gpr_31 = (0x0896F3ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 723u, 0x0896F3ACu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F3ACu) goto L_0896F3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F3AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(144))); goto L_0896F3B0; @@ -7516,8 +9477,8 @@ L_0896F3C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896F3E4: @@ -7530,14 +9491,27 @@ L_0896F3E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0896F408u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(11684)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 727u, 0x0896F408u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F408u) goto L_0896F408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F408: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896F414: @@ -7569,8 +9543,21 @@ L_0896F440: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); aot_gpr_31 = (0x0896F458u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 731u, 0x0896F458u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F458u) goto L_0896F458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F458: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -7682,8 +9669,21 @@ L_0896F560: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); aot_gpr_31 = (0x0896F56Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 743u, 0x0896F56Cu, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F56Cu) goto L_0896F56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F56C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7695,8 +9695,21 @@ L_0896F574: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); aot_gpr_31 = (0x0896F580u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 745u, 0x0896F580u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F580u) goto L_0896F580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F580: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -7721,8 +9734,8 @@ L_0896F594: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896F5A4: @@ -7945,8 +9958,21 @@ L_0896F768: L_0896F774: aot_gpr_31 = (0x0896F77Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 774u, 0x0896F77Cu, 0x08970150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 16u, 0x08970150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896F77Cu) goto L_0896F77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896F77C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8068,8 +10094,8 @@ L_0896F82C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896F868: @@ -8261,8 +10287,8 @@ L_0896F930: goto L_0896F934; L_0896F934: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896F93C: @@ -8521,8 +10547,8 @@ L_0896FB68: goto L_0896FB6C; L_0896FB6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896FB74: @@ -8585,8 +10611,8 @@ L_0896FBEC: goto L_0896FBF0; L_0896FBF0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896FBF8: @@ -8614,8 +10640,21 @@ L_0896FBF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x0896FC58u); aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 853u, 0x0896FC58u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896FC58u) goto L_0896FC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896FC58: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -8666,8 +10705,8 @@ L_0896FC7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896FCF4: @@ -8705,15 +10744,15 @@ L_0896FCF4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[7] + static_cast(0), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896FD6C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896FD74: @@ -8747,8 +10786,21 @@ L_0896FDA0: } L_0896FDB0: aot_gpr_31 = (0x0896FDB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 862u, 0x0896FDB8u, 0x0897084Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 129u, 0x0897084Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896FDB8u) goto L_0896FDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896FDB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8758,8 +10810,21 @@ L_0896FDB8: } L_0896FDC0: aot_gpr_31 = (0x0896FDC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 864u, 0x0896FDC8u, 0x089707FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 125u, 0x089707FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896FDC8u) goto L_0896FDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896FDC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8940,8 +11005,8 @@ L_0896FF00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0896FF18: @@ -8950,8 +11015,21 @@ L_0896FF18: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0896FF30u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0090->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0090_entry, 886u, 0x0896FF30u, 0x0885FF98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 941u, 0x0885FF98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0896FF30u) goto L_0896FF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0896FF30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17264))); aot_gpr_5 = (static_cast(aot_gpr_4) < 11 ? 1u : 0u); diff --git a/profiles/vcs/generated/generated_unit_0091.cpp b/profiles/vcs/generated/generated_unit_0091.cpp index 316690b..23863f9 100644 --- a/profiles/vcs/generated/generated_unit_0091.cpp +++ b/profiles/vcs/generated/generated_unit_0091.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0091[64] = { 381u, 400u, 422u, 440u, 456u, 473u, 484u, 503u, 520u, 541u, 555u, 570u, 589u, 614u, 626u, 635u, 648u, 662u, 678u, 695u, 702u, 702u, 712u, 725u, 737u, 753u, 763u, 775u, 790u, 798u, 813u, 828u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0091[4095] = { + 1u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 4u, 0u, 5u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 0u, + 0u, 0u, 8u, 0u, 0u, 9u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 12u, 0u, 0u, + 0u, 0u, 0u, 0u, 13u, 0u, 14u, 0u, 0u, 0u, 0u, 0u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 17u, 0u, 0u, 18u, 0u, 19u, 0u, 20u, 0u, + 21u, 0u, 22u, 0u, 23u, 0u, 24u, 0u, 25u, 0u, 26u, 0u, 0u, 0u, 27u, 0u, 28u, 0u, 29u, 0u, 0u, 0u, 30u, 0u, 31u, 0u, 32u, 0u, 0u, 0u, 33u, 0u, + 34u, 0u, 35u, 0u, 0u, 0u, 36u, 0u, 37u, 0u, 38u, 0u, 0u, 0u, 39u, 0u, 40u, 0u, 41u, 0u, 0u, 0u, 42u, 0u, 43u, 0u, 44u, 0u, 0u, 0u, 45u, 0u, + 46u, 47u, 0u, 48u, 0u, 0u, 49u, 0u, 0u, 50u, 0u, 0u, 0u, 51u, 0u, 52u, 0u, 53u, 0u, 54u, 0u, 55u, 0u, 56u, 0u, 57u, 0u, 58u, 0u, 0u, 0u, 59u, + 0u, 0u, 0u, 60u, 0u, 0u, 0u, 61u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 63u, 0u, 0u, 64u, 65u, 0u, 66u, 0u, 0u, 0u, 0u, 67u, 0u, 68u, 69u, 0u, 70u, + 0u, 0u, 71u, 0u, 0u, 0u, 0u, 72u, 0u, 73u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 79u, 80u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 82u, 0u, 0u, 83u, 0u, 0u, 0u, + 0u, 84u, 0u, 85u, 0u, 86u, 0u, 0u, 87u, 0u, 0u, 0u, 88u, 0u, 89u, 0u, 0u, 0u, 90u, 0u, 91u, 92u, 0u, 93u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 95u, + 0u, 96u, 0u, 97u, 0u, 0u, 98u, 0u, 0u, 0u, 99u, 0u, 100u, 101u, 0u, 102u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 0u, + 104u, 0u, 0u, 105u, 0u, 0u, 106u, 0u, 0u, 107u, 0u, 0u, 108u, 0u, 0u, 109u, 0u, 0u, 110u, 0u, 0u, 111u, 0u, 0u, 0u, 0u, 112u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 113u, 0u, 0u, 114u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 116u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 119u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 120u, 0u, 121u, 0u, 0u, 122u, 0u, 123u, 0u, 0u, 0u, 0u, 124u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 125u, + 0u, 0u, 0u, 0u, 126u, 0u, 127u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 128u, 0u, 129u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 130u, 131u, 0u, 0u, + 0u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 0u, + 0u, 136u, 0u, 0u, 0u, 137u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 138u, 0u, 0u, 0u, 139u, 0u, 140u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 141u, 0u, 0u, 0u, 142u, 143u, 0u, 144u, 0u, 0u, 0u, 145u, 0u, 146u, 0u, 147u, 0u, 148u, 0u, 149u, 0u, 150u, 0u, 0u, 151u, 0u, 152u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 153u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 154u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 155u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 156u, 0u, 0u, 0u, 157u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 0u, 159u, 160u, 0u, 0u, 0u, 161u, 0u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 163u, 0u, 0u, 0u, 164u, 0u, 0u, 0u, + 0u, 0u, 165u, 0u, 0u, 166u, 0u, 0u, 0u, 167u, 0u, 168u, 0u, 0u, 0u, 0u, 169u, 0u, 170u, 0u, 0u, 0u, 171u, 0u, 0u, 172u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, 0u, 0u, 0u, 174u, 0u, 175u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 177u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 181u, 0u, 0u, 182u, 0u, 0u, 183u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 184u, 0u, 185u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 186u, 0u, 0u, 187u, 188u, 0u, 0u, 0u, 0u, 189u, 0u, 190u, 0u, 0u, 0u, 0u, 191u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 192u, 0u, 0u, 0u, 193u, 0u, + 194u, 0u, 195u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 200u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 0u, 203u, 0u, 0u, 204u, 0u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 0u, + 206u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, 210u, 0u, 211u, 0u, 212u, 0u, 0u, 213u, 0u, 0u, 214u, 0u, 215u, 0u, + 0u, 0u, 0u, 0u, 216u, 0u, 217u, 0u, 218u, 0u, 0u, 219u, 0u, 0u, 0u, 220u, 0u, 221u, 0u, 222u, 0u, 223u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 0u, + 0u, 225u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 228u, 0u, 229u, 0u, 0u, 230u, 0u, 0u, 0u, 231u, 0u, 232u, 0u, 233u, 0u, 234u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 235u, 0u, 236u, 0u, 237u, 0u, 0u, 238u, 0u, 239u, 0u, 0u, 0u, 0u, 0u, 0u, 240u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 241u, 0u, 0u, + 0u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, 244u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, 247u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 249u, 0u, 250u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 252u, 0u, 0u, 253u, 0u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 255u, 256u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 259u, 0u, 0u, 0u, 0u, 260u, + 0u, 0u, 261u, 0u, 262u, 0u, 0u, 263u, 0u, 264u, 0u, 0u, 0u, 265u, 0u, 266u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 268u, 0u, 269u, 0u, 0u, 270u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 272u, 0u, 273u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, + 0u, 0u, 276u, 0u, 0u, 277u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 279u, 0u, 0u, 280u, 0u, 0u, 0u, 0u, 281u, 0u, 282u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 284u, 0u, 285u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 286u, 0u, 0u, 0u, 0u, 0u, 0u, 287u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 288u, 0u, 0u, 0u, 0u, 289u, 0u, 290u, 0u, 291u, 0u, 292u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 296u, 0u, + 297u, 0u, 0u, 0u, 298u, 0u, 299u, 0u, 300u, 0u, 0u, 0u, 301u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 303u, 0u, 0u, 0u, 304u, 0u, 305u, 0u, 0u, 0u, 306u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 307u, + 0u, 0u, 308u, 309u, 0u, 0u, 0u, 310u, 0u, 0u, 0u, 311u, 0u, 312u, 0u, 0u, 0u, 313u, 0u, 0u, 314u, 315u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 316u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 318u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 319u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 323u, 0u, 0u, 324u, 0u, 325u, + 0u, 0u, 0u, 0u, 326u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 329u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 331u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 333u, 0u, 334u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 337u, 0u, 0u, 0u, + 0u, 338u, 0u, 0u, 0u, 339u, 0u, 340u, 0u, 341u, 0u, 0u, 342u, 0u, 343u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 346u, 0u, + 0u, 0u, 0u, 347u, 0u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 349u, 0u, 0u, 0u, 350u, 0u, 351u, 0u, 0u, 0u, 0u, 352u, 353u, 0u, 0u, 0u, 0u, + 354u, 0u, 355u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, 358u, 0u, 0u, 359u, 0u, 0u, 0u, 360u, 0u, 361u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, 364u, 0u, 0u, 0u, 365u, 0u, 0u, 366u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 367u, 0u, 368u, 0u, 369u, 0u, 370u, 0u, 371u, 0u, 0u, 0u, 0u, 372u, 373u, 374u, 0u, 375u, 376u, 0u, 0u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, + 0u, 0u, 378u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 379u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 380u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 381u, 382u, 0u, 383u, 0u, 0u, 0u, 384u, 0u, 385u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 387u, 0u, 388u, + 0u, 0u, 0u, 389u, 0u, 0u, 0u, 390u, 0u, 0u, 391u, 392u, 0u, 0u, 0u, 393u, 0u, 0u, 0u, 0u, 394u, 395u, 0u, 0u, 396u, 397u, 0u, 0u, 0u, 398u, 0u, 399u, + 0u, 400u, 0u, 401u, 0u, 402u, 403u, 0u, 404u, 0u, 405u, 0u, 0u, 0u, 406u, 0u, 407u, 0u, 408u, 0u, 409u, 0u, 410u, 411u, 0u, 412u, 0u, 413u, 0u, 0u, 414u, 0u, + 415u, 0u, 416u, 417u, 0u, 418u, 0u, 0u, 419u, 0u, 420u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 422u, 0u, 0u, 423u, 424u, 0u, 425u, 0u, 0u, 426u, 0u, 0u, 0u, 427u, 0u, 0u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 429u, 0u, 0u, 430u, 0u, 431u, 0u, 0u, 432u, + 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 434u, 0u, 435u, 0u, 436u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 438u, 0u, 439u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 440u, 0u, 441u, 0u, 0u, 0u, 442u, 0u, 443u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 446u, 0u, 0u, 447u, 0u, + 0u, 448u, 0u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 451u, 0u, 0u, 0u, 452u, 0u, 0u, 453u, 0u, 454u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 456u, 0u, 0u, 0u, 0u, 0u, 457u, 0u, 458u, 0u, 459u, 0u, 0u, 460u, 0u, 461u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 463u, + 0u, 464u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 466u, 0u, 0u, 467u, 468u, 0u, 0u, 0u, 469u, 0u, 0u, 0u, 0u, 0u, 470u, 471u, 0u, 0u, 0u, 0u, 0u, 472u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 474u, 0u, 0u, 475u, 0u, 476u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, 480u, 0u, 0u, 0u, 481u, 0u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, + 0u, 0u, 0u, 0u, 484u, 0u, 485u, 0u, 0u, 0u, 486u, 0u, 0u, 487u, 0u, 0u, 0u, 0u, 488u, 0u, 489u, 0u, 0u, 490u, 0u, 491u, 0u, 0u, 492u, 0u, 0u, 0u, + 0u, 0u, 0u, 493u, 0u, 0u, 0u, 0u, 494u, 0u, 495u, 496u, 0u, 497u, 0u, 0u, 0u, 498u, 0u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 501u, 0u, 502u, + 503u, 0u, 0u, 0u, 504u, 0u, 505u, 0u, 506u, 0u, 507u, 0u, 508u, 509u, 0u, 510u, 511u, 0u, 512u, 0u, 513u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 514u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 516u, 0u, 0u, 0u, 517u, 0u, 0u, 518u, 0u, 0u, 519u, 0u, + 520u, 0u, 521u, 0u, 522u, 0u, 523u, 0u, 0u, 0u, 524u, 0u, 0u, 525u, 0u, 526u, 0u, 0u, 527u, 0u, 528u, 0u, 0u, 0u, 529u, 0u, 0u, 530u, 0u, 0u, 531u, 0u, + 532u, 0u, 533u, 0u, 0u, 0u, 0u, 534u, 0u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, 536u, 0u, 0u, 537u, 0u, 0u, 538u, 0u, 0u, 0u, 539u, 0u, 0u, 0u, 540u, 0u, + 0u, 541u, 0u, 0u, 542u, 0u, 543u, 0u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 546u, 0u, 547u, 0u, 548u, 0u, 0u, 0u, 0u, 549u, 550u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 553u, 0u, 0u, 0u, 554u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 0u, 556u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, + 0u, 0u, 0u, 0u, 0u, 558u, 0u, 0u, 0u, 0u, 559u, 0u, 560u, 561u, 562u, 0u, 563u, 0u, 0u, 564u, 0u, 0u, 565u, 0u, 0u, 566u, 0u, 567u, 568u, 569u, 0u, 0u, + 570u, 0u, 0u, 571u, 0u, 572u, 573u, 0u, 0u, 0u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 576u, 0u, 577u, 0u, 0u, 578u, 0u, 0u, 579u, 0u, + 580u, 581u, 0u, 582u, 0u, 583u, 0u, 0u, 0u, 0u, 0u, 0u, 584u, 585u, 0u, 586u, 0u, 587u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 588u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 589u, 0u, 0u, 590u, 0u, 591u, 0u, 592u, 0u, 0u, 0u, 593u, 0u, 0u, 0u, 594u, 0u, 595u, 0u, 596u, 0u, 597u, 0u, 0u, 598u, 0u, 599u, 600u, 0u, + 601u, 0u, 602u, 0u, 0u, 603u, 0u, 604u, 605u, 0u, 606u, 0u, 607u, 0u, 0u, 608u, 0u, 0u, 0u, 609u, 0u, 0u, 610u, 0u, 0u, 611u, 612u, 0u, 0u, 0u, 613u, 0u, + 0u, 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 616u, 0u, 617u, 0u, 618u, 0u, 619u, 620u, 0u, 0u, 0u, 0u, 0u, 0u, + 621u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 0u, 623u, 0u, 0u, 624u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 627u, 628u, 0u, 0u, 0u, 629u, 0u, 630u, 0u, 631u, 0u, 632u, 633u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 634u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 635u, 0u, 0u, 636u, 0u, 0u, 637u, 0u, 0u, 0u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 639u, 0u, 640u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 641u, 0u, 0u, 0u, 0u, 0u, 642u, 0u, 0u, 0u, 0u, 0u, 643u, 0u, 644u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 0u, 0u, 646u, 0u, 647u, 0u, 0u, + 0u, 0u, 648u, 0u, 0u, 0u, 0u, 0u, 649u, 0u, 650u, 0u, 0u, 0u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, 653u, 0u, 0u, 654u, 0u, 0u, 0u, + 655u, 656u, 0u, 0u, 0u, 0u, 657u, 0u, 0u, 0u, 0u, 658u, 0u, 0u, 0u, 0u, 0u, 659u, 0u, 0u, 0u, 0u, 660u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 661u, 0u, + 0u, 662u, 0u, 663u, 0u, 0u, 664u, 0u, 665u, 0u, 0u, 666u, 0u, 0u, 0u, 667u, 0u, 0u, 0u, 668u, 0u, 0u, 0u, 0u, 669u, 0u, 670u, 0u, 0u, 0u, 0u, 671u, + 0u, 0u, 0u, 0u, 0u, 0u, 672u, 0u, 0u, 0u, 0u, 673u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 675u, 0u, 0u, 676u, 0u, 0u, 677u, 0u, 0u, 0u, + 0u, 678u, 0u, 679u, 0u, 0u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 682u, 0u, 0u, 683u, 0u, 684u, 0u, 0u, 685u, 0u, 0u, + 0u, 0u, 686u, 0u, 687u, 0u, 0u, 0u, 688u, 0u, 0u, 0u, 0u, 0u, 689u, 0u, 0u, 690u, 0u, 691u, 0u, 0u, 692u, 0u, 693u, 0u, 0u, 0u, 0u, 694u, 0u, 0u, + 0u, 695u, 0u, 0u, 0u, 696u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 697u, 0u, 0u, 698u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 699u, 0u, 700u, 701u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 702u, 0u, 0u, 703u, 0u, 0u, 704u, 0u, 705u, 0u, 706u, 0u, 0u, 0u, 0u, + 0u, 0u, 707u, 708u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 709u, 0u, 0u, 0u, 0u, 0u, 710u, 0u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 713u, 714u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 715u, 0u, 0u, 0u, + 0u, 716u, 0u, 0u, 717u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 720u, 0u, 721u, 0u, 722u, 0u, 723u, 0u, 0u, 724u, 0u, 0u, + 0u, 725u, 0u, 0u, 0u, 0u, 0u, 726u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 727u, 0u, 728u, 729u, 0u, 730u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 731u, 0u, 0u, 732u, 0u, 733u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 734u, 0u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 0u, 0u, 736u, 0u, + 0u, 0u, 0u, 0u, 737u, 0u, 0u, 738u, 0u, 0u, 0u, 0u, 0u, 0u, 739u, 0u, 740u, 0u, 0u, 741u, 0u, 0u, 0u, 742u, 0u, 743u, 0u, 744u, 0u, 745u, 0u, 746u, + 0u, 747u, 0u, 748u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 749u, 0u, 0u, 750u, 0u, 751u, 0u, 752u, + 0u, 0u, 753u, 0u, 754u, 0u, 0u, 0u, 0u, 755u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 756u, 0u, 0u, 0u, 0u, 0u, 0u, 757u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 758u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 759u, 0u, 0u, 0u, 0u, 760u, 0u, 0u, 761u, 0u, 0u, 0u, 0u, 0u, 0u, 762u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 763u, 0u, 0u, 0u, 0u, 0u, 764u, 0u, 0u, 0u, 0u, 0u, 765u, 0u, 0u, 0u, 0u, 0u, 766u, 0u, 767u, 0u, 768u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 769u, 0u, 0u, 0u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 0u, 0u, 0u, 0u, 772u, 0u, 773u, 0u, 774u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 775u, 0u, 0u, 0u, 0u, 0u, 776u, 0u, 0u, 0u, 0u, 0u, 777u, 0u, 0u, 0u, 0u, 0u, 778u, 0u, 779u, 0u, 780u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 781u, + 0u, 0u, 0u, 0u, 0u, 782u, 0u, 0u, 0u, 0u, 0u, 783u, 0u, 0u, 0u, 0u, 0u, 784u, 0u, 785u, 0u, 786u, 0u, 0u, 0u, 0u, 787u, 0u, 788u, 0u, 789u, 0u, + 790u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 791u, 0u, 792u, 0u, 0u, 793u, 0u, 794u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 795u, 796u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 797u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 798u, 0u, 799u, 0u, 800u, 0u, 0u, 801u, 0u, 0u, 0u, 0u, 0u, 0u, 802u, 0u, 803u, 804u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 805u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 806u, 0u, 807u, 0u, 808u, 0u, 0u, 809u, 0u, 0u, 0u, 0u, 0u, 0u, 810u, 0u, 811u, 812u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 813u, 0u, 0u, 0u, 814u, 0u, 0u, 0u, 815u, 0u, 816u, 817u, 0u, 818u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 819u, 0u, 0u, 0u, 0u, 0u, 820u, + 0u, 821u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 822u, 0u, 823u, 0u, 824u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 825u, 0u, 826u, 0u, 0u, 827u, + 0u, 828u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 829u, 0u, 830u, 0u, 831u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 832u, 0u, 833u, + 0u, 834u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 835u, 0u, 836u, 0u, 837u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 838u, 0u, 839u, +}; void recomp_unit_0091_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,16,31,6 fprs=12,13,14,15 gpr_occ=3986 fpr_occ=744 gpr_total=5540 fpr_total=993 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08970000u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0091[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0091[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0091[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08970000; @@ -917,6 +1040,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08970000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -939,8 +1086,8 @@ L_08970000: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08970014: @@ -1079,8 +1226,8 @@ L_08970134: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08970150: @@ -1328,8 +1475,8 @@ L_08970280: goto L_08970284; L_08970284: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897028C: @@ -1474,8 +1621,8 @@ L_08970348: goto L_0897034C; L_0897034C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08970354: @@ -1501,8 +1648,8 @@ L_08970370: goto L_08970374; L_08970374: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897037C: @@ -1614,8 +1761,8 @@ L_08970444: } L_0897045C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08970464: @@ -1701,8 +1848,8 @@ L_089704D0: goto L_089704D4; L_089704D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089704DC: @@ -1771,8 +1918,8 @@ L_08970530: goto L_08970534; L_08970534: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897053C: @@ -2041,8 +2188,21 @@ L_08970754: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08970798u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 120u, 0x08970798u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970798u) goto L_08970798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970798: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2054,12 +2214,38 @@ L_089707A0: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089707ACu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 122u, 0x089707ACu, 0x08AEE7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 527u, 0x08AEE7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089707ACu) goto L_089707AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089707AC: aot_gpr_31 = (0x089707B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 123u, 0x089707B4u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089707B4u) goto L_089707B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089707B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17264))); ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); @@ -2088,8 +2274,8 @@ L_089707C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089707FC: @@ -2126,8 +2312,8 @@ L_08970818: } L_08970844: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897084C: @@ -2154,8 +2340,21 @@ L_08970874: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(117), static_cast(aot_gpr_5)); aot_gpr_31 = (0x0897088Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 132u, 0x0897088Cu, 0x0896FD6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 857u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 857u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 857u, 0x0896FD6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897088Cu) goto L_0897088C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897088C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17264))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -2176,8 +2375,8 @@ L_089708A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089708B4: @@ -2206,8 +2405,21 @@ L_08970904: ctx.gpr[17] = (ctx.gpr[17] + static_cast(32304)); aot_gpr_31 = (0x08970914u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 137u, 0x08970914u, 0x08A1C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 54u, 0x08A1C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970914u) goto L_08970914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970914: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); ctx.fpr[22] = std::bit_cast(0u); @@ -2233,8 +2445,21 @@ L_08970944: L_08970954: aot_gpr_31 = (0x0897095Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 140u, 0x0897095Cu, 0x08A1C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 54u, 0x08A1C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897095Cu) goto L_0897095C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897095C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); @@ -2526,8 +2751,21 @@ L_08970B64: ctx.gpr[7] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08970BB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 173u, 0x08970BB4u, 0x0896FBF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 852u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 852u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 852u, 0x0896FBF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970BB4u) goto L_08970BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970BB4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); @@ -2536,8 +2774,21 @@ L_08970BB4: aot_fpr_15 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08970BD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 174u, 0x08970BD0u, 0x0896F93Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 814u, 0x0896F93Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970BD0u) goto L_08970BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970BD0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2625,8 +2876,21 @@ L_08970CD0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08970CE0u); aot_gpr_5 = (aot_gpr_5 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 179u, 0x08970CE0u, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970CE0u) goto L_08970CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970CE0: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); @@ -2647,8 +2911,21 @@ L_08970CF4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08970D18u); aot_gpr_5 = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 181u, 0x08970D18u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970D18u) goto L_08970D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970D18: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[18]) <= 0; @@ -2674,8 +2951,21 @@ L_08970D30: ctx.gpr[11] = (0u | 35u); aot_gpr_31 = (0x08970D58u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 184u, 0x08970D58u, 0x089B8320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 35u, 0x089B8320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970D58u) goto L_08970D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970D58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2715,8 +3005,21 @@ L_08970D90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08970DA4u); aot_fpr_15 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 189u, 0x08970DA4u, 0x0896F93Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 814u, 0x0896F93Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970DA4u) goto L_08970DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970DA4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2762,8 +3065,21 @@ L_08970DE8: } L_08970DF8: aot_gpr_31 = (0x08970E00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 194u, 0x08970E00u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970E00u) goto L_08970E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970E00: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -2881,16 +3197,42 @@ L_08970F00: aot_gpr_5 = (aot_gpr_5 + ctx.gpr[22]); aot_gpr_31 = (0x08970F14u); aot_gpr_5 = (aot_gpr_5 + static_cast(28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 207u, 0x08970F14u, 0x0896F5A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 749u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 749u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 749u, 0x0896F5A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970F14u) goto L_08970F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970F14: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-25496))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_5 + ctx.gpr[22]); aot_gpr_31 = (0x08970F28u); aot_gpr_5 = (aot_gpr_5 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 208u, 0x08970F28u, 0x0896F5A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 749u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 749u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 749u, 0x0896F5A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970F28u) goto L_08970F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970F28: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (ctx.gpr[19] < ctx.gpr[21] ? 1u : 0u); @@ -2920,8 +3262,21 @@ L_08970F48: L_08970F50: aot_gpr_31 = (0x08970F58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 212u, 0x08970F58u, 0x0896F414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 728u, 0x0896F414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970F58u) goto L_08970F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970F58: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(119))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2951,8 +3306,21 @@ L_08970F78: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08970F90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 216u, 0x08970F90u, 0x0896FB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 844u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 844u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 844u, 0x0896FB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970F90u) goto L_08970F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970F90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2995,8 +3363,21 @@ L_08970FC4: L_08970FCC: aot_gpr_31 = (0x08970FD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 223u, 0x08970FD4u, 0x0896F414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 728u, 0x0896F414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08970FD4u) goto L_08970FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08970FD4: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(119))); @@ -3034,8 +3415,21 @@ L_0897100C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0897102Cu); aot_fpr_15 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 227u, 0x0897102Cu, 0x0896F93Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 814u, 0x0896F93Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897102Cu) goto L_0897102C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897102C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3078,8 +3472,21 @@ L_08971060: L_08971068: aot_gpr_31 = (0x08971070u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 234u, 0x08971070u, 0x0896F414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 728u, 0x0896F414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971070u) goto L_08971070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971070: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); aot_gpr_5 = (16025u << 16u); @@ -3090,8 +3497,21 @@ L_08971070: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(60))); aot_gpr_31 = (0x08971094u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 235u, 0x08971094u, 0x0896F93Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 814u, 0x0896F93Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971094u) goto L_08971094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971094: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3117,8 +3537,21 @@ L_089710A4: L_089710B0: aot_gpr_31 = (0x089710B8u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 239u, 0x089710B8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089710B8u) goto L_089710B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089710B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); @@ -3127,8 +3560,21 @@ L_089710B8: aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x089710D4u); ctx.fpr[20] = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 240u, 0x089710D4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089710D4u) goto L_089710D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089710D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); @@ -3138,8 +3584,21 @@ L_089710D4: aot_fpr_12 = aot_fpr_14 - aot_fpr_15; aot_gpr_31 = (0x089710F4u); { const float fs = ctx.fpr[20]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 241u, 0x089710F4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089710F4u) goto L_089710F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089710F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); @@ -3148,8 +3607,21 @@ L_089710F4: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08971110u); ctx.fpr[22] = aot_fpr_13 - ctx.fpr[16]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 242u, 0x08971110u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971110u) goto L_08971110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971110: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); @@ -3246,14 +3718,40 @@ L_089711BC: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08971200u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 252u, 0x08971200u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971200u) goto L_08971200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971200: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); aot_gpr_31 = (0x0897120Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 253u, 0x0897120Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897120Cu) goto L_0897120C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897120C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3329,8 +3827,21 @@ L_08971290: aot_fpr_14 = aot_fpr_14 + ctx.fpr[16]; aot_gpr_31 = (0x0897129Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 263u, 0x0897129Cu, 0x0896F93Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 814u, 0x0896F93Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897129Cu) goto L_0897129C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897129C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3357,8 +3868,21 @@ L_089712BC: ctx.gpr[7] = (aot_gpr_29 + static_cast(44)); aot_gpr_31 = (0x089712D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 267u, 0x089712D0u, 0x0896FCF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 856u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 856u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 856u, 0x0896FCF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089712D0u) goto L_089712D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089712D0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(88))); @@ -3456,8 +3980,21 @@ L_089713B4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08971408u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 271u, 0x08971408u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971408u) goto L_08971408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971408: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(88))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -3695,8 +4232,21 @@ L_089715DC: ctx.gpr[7] = (aot_gpr_16 + static_cast(96)); aot_gpr_31 = (0x089715F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 281u, 0x089715F0u, 0x0896FCF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 856u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 856u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 856u, 0x0896FCF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089715F0u) goto L_089715F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089715F0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), std::bit_cast(ctx.fpr[20])); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(100), std::bit_cast(ctx.fpr[20])); @@ -3732,13 +4282,39 @@ L_089715F8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08971660u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 283u, 0x08971660u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971660u) goto L_08971660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971660: aot_gpr_31 = (0x08971668u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 284u, 0x08971668u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971668u) goto L_08971668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971668: aot_gpr_31 = (0x08971670u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3760,8 +4336,8 @@ L_08971670: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089716A4: @@ -3948,8 +4524,21 @@ L_089716C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08971818u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 288u, 0x08971818u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971818u) goto L_08971818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971818: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -3959,23 +4548,75 @@ L_08971818: } aot_gpr_31 = (0x0897182Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 289u, 0x0897182Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897182Cu) goto L_0897182C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897182C: aot_gpr_31 = (0x08971834u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 290u, 0x08971834u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971834u) goto L_08971834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971834: aot_gpr_31 = (0x0897183Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 291u, 0x0897183Cu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897183Cu) goto L_0897183C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897183C: aot_gpr_31 = (0x08971844u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 292u, 0x08971844u, 0x08A69104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 161u, 0x08A69104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971844u) goto L_08971844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971844: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -3985,8 +4626,8 @@ L_08971844: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971858: @@ -4199,8 +4840,21 @@ L_08971A44: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08971A50u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 314u, 0x08971A50u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971A50u) goto L_08971A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971A50: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08971A54; @@ -4216,8 +4870,21 @@ L_08971A54: ctx.gpr[7] = (ctx.gpr[17] + ctx.gpr[7]); aot_gpr_31 = (0x08971A80u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 316u, 0x08971A80u, 0x0896FBF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 852u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 852u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 852u, 0x0896FBF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971A80u) goto L_08971A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971A80: aot_gpr_5 = (aot_gpr_16 + static_cast(44)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -4230,8 +4897,21 @@ L_08971A80: ctx.gpr[7] = (ctx.gpr[17] + ctx.gpr[7]); aot_gpr_31 = (0x08971AACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 317u, 0x08971AACu, 0x0896FBF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 852u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 852u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 852u, 0x0896FBF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971AACu) goto L_08971AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971AAC: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4247,8 +4927,8 @@ L_08971AAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971AD8: @@ -4261,8 +4941,21 @@ L_08971AD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08971AFCu); ctx.gpr[18] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 319u, 0x08971AFCu, 0x0882B4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 349u, 0x0882B4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971AFCu) goto L_08971AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971AFC: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4318,8 +5011,8 @@ L_08971B90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971BB4: @@ -4342,8 +5035,21 @@ L_08971BD0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08971BE8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 323u, 0x08971BE8u, 0x0882B854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 368u, 0x0882B854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971BE8u) goto L_08971BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971BE8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4355,8 +5061,21 @@ L_08971BE8: L_08971BF4: aot_gpr_31 = (0x08971BFCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 325u, 0x08971BFCu, 0x0882B9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 396u, 0x0882B9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971BFCu) goto L_08971BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971BFC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4366,15 +5085,15 @@ L_08971BFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971C10: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971C18: @@ -4386,20 +5105,20 @@ L_08971C18: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(14), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971C38: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971C40: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971C48: @@ -4500,8 +5219,21 @@ L_08971D14: L_08971D1C: aot_gpr_31 = (0x08971D24u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 341u, 0x08971D24u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971D24u) goto L_08971D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971D24: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -4547,8 +5279,21 @@ L_08971D78: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08971D8Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 347u, 0x08971D8Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971D8Cu) goto L_08971D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971D8C: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[20]); @@ -4593,8 +5338,21 @@ L_08971DD4: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08971DE8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 352u, 0x08971DE8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971DE8u) goto L_08971DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971DE8: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); goto L_08971DEC; @@ -4659,8 +5417,21 @@ L_08971E60: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08971E70u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 360u, 0x08971E70u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971E70u) goto L_08971E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971E70: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[19]); @@ -4691,16 +5462,16 @@ L_08971E98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971EC8: ctx.gpr[2] = (2199u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(7880)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971ED4: @@ -4712,8 +5483,8 @@ L_08971EE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971EF0: @@ -4734,8 +5505,21 @@ L_08971F10: L_08971F18: aot_gpr_31 = (0x08971F20u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 369u, 0x08971F20u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971F20u) goto L_08971F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971F20: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -4744,8 +5528,21 @@ L_08971F20: goto L_08971F28; L_08971F28: aot_gpr_31 = (0x08971F30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 371u, 0x08971F30u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971F30u) goto L_08971F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971F30: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -4784,8 +5581,8 @@ L_08971F58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971F74: @@ -4794,8 +5591,21 @@ L_08971F74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08971F88u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 378u, 0x08971F88u, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08971F88u) goto L_08971F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08971F88: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(24488)); @@ -4810,8 +5620,8 @@ L_08971F88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08971FC0: @@ -4918,8 +5728,21 @@ L_0897209C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089720A8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 391u, 0x089720A8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089720A8u) goto L_089720A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089720A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); goto L_089720AC; @@ -5082,8 +5905,21 @@ L_08972188: L_0897218C: aot_gpr_31 = (0x08972194u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 418u, 0x08972194u, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972194u) goto L_08972194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972194: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5113,8 +5949,8 @@ L_089721A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089721D8: @@ -5153,15 +5989,28 @@ L_08972218: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(197))); aot_gpr_31 = (0x08972224u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 426u, 0x08972224u, 0x08AC61E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 571u, 0x08AC61E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972224u) goto L_08972224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972224: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972234: @@ -5199,15 +6048,28 @@ L_08972270: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(197))); aot_gpr_31 = (0x0897227Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 432u, 0x0897227Cu, 0x08AC61E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 571u, 0x08AC61E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897227Cu) goto L_0897227C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897227C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897228C: @@ -5216,13 +6078,39 @@ L_0897228C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089722A0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 434u, 0x089722A0u, 0x08AC5C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 507u, 0x08AC5C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089722A0u) goto L_089722A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089722A0: aot_gpr_31 = (0x089722A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 435u, 0x089722A8u, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089722A8u) goto L_089722A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089722A8: aot_gpr_31 = (0x089722B0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5232,8 +6120,8 @@ L_089722B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089722C0: @@ -5242,13 +6130,39 @@ L_089722C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089722D4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 438u, 0x089722D4u, 0x08AC5CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 511u, 0x08AC5CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089722D4u) goto L_089722D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089722D4: aot_gpr_31 = (0x089722DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 439u, 0x089722DCu, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089722DCu) goto L_089722DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089722DC: aot_gpr_4 = (aot_gpr_16 + static_cast(76)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -5278,20 +6192,20 @@ L_08972328: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972338: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972340: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972348: @@ -5317,8 +6231,21 @@ L_0897236C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); aot_gpr_31 = (0x08972378u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 447u, 0x08972378u, 0x08AC6238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 577u, 0x08AC6238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972378u) goto L_08972378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972378: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = 0u == 0u; @@ -5349,8 +6276,21 @@ L_089723A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x089723B4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 451u, 0x089723B4u, 0x08AC6238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 577u, 0x08AC6238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089723B4u) goto L_089723B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089723B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_6 = (aot_gpr_16 | 0u); @@ -5374,8 +6314,8 @@ L_089723D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089723E8: @@ -5483,8 +6423,21 @@ L_089724A4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089724B0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 467u, 0x089724B0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089724B0u) goto L_089724B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089724B0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); goto L_089724B4; @@ -5519,8 +6472,8 @@ L_089724E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089724F8: @@ -5577,8 +6530,21 @@ L_08972568: aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_31 = (0x08972588u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 477u, 0x08972588u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972588u) goto L_08972588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972588: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -5630,8 +6596,21 @@ L_089725E0: aot_gpr_4 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x089725FCu); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 483u, 0x089725FCu, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089725FCu) goto L_089725FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089725FC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -5670,8 +6649,21 @@ L_08972634: aot_gpr_4 = (ctx.gpr[7] | 0u); aot_gpr_31 = (0x08972648u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 488u, 0x08972648u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972648u) goto L_08972648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972648: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); @@ -5708,8 +6700,21 @@ L_08972670: aot_gpr_4 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x0897268Cu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 493u, 0x0897268Cu, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897268Cu) goto L_0897268C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897268C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -5759,8 +6764,21 @@ L_089726D0: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089726E8u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 500u, 0x089726E8u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089726E8u) goto L_089726E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089726E8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -5855,8 +6873,8 @@ L_08972750: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972790: @@ -5868,8 +6886,21 @@ L_08972790: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), aot_gpr_31); aot_gpr_31 = (0x089727C8u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 515u, 0x089727C8u, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089727C8u) goto L_089727C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089727C8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5882,14 +6913,40 @@ L_089727D0: aot_gpr_5 = (0u | 156u); aot_gpr_31 = (0x089727E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 517u, 0x089727E0u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089727E0u) goto L_089727E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089727E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089727ECu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 518u, 0x089727ECu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089727ECu) goto L_089727EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089727EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5930,14 +6987,40 @@ L_08972818: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08972828u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 524u, 0x08972828u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972828u) goto L_08972828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972828: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x08972834u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 525u, 0x08972834u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972834u) goto L_08972834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972834: aot_gpr_31 = (0x0897283Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5962,14 +7045,40 @@ L_08972850: aot_gpr_5 = (0u | 157u); aot_gpr_31 = (0x08972860u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 529u, 0x08972860u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972860u) goto L_08972860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972860: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x0897286Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 530u, 0x0897286Cu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897286Cu) goto L_0897286C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897286C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6019,8 +7128,21 @@ L_089728C0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089728CCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 537u, 0x089728CCu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089728CCu) goto L_089728CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089728CC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6057,8 +7179,21 @@ L_08972904: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08972910u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 542u, 0x08972910u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972910u) goto L_08972910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972910: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(188))); aot_gpr_4 = (aot_gpr_5 + static_cast(12)); @@ -6125,8 +7260,8 @@ L_0897296C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897299C: @@ -6143,8 +7278,21 @@ L_0897299C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(40), aot_run_words); } aot_gpr_31 = (0x089729E4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 552u, 0x089729E4u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089729E4u) goto L_089729E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089729E4: aot_gpr_31 = (0x089729ECu); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(96))); @@ -6179,8 +7327,21 @@ L_089729FC: AOT_REGCACHE_SYNC_OUT(); return; L_08972A40: aot_gpr_31 = (0x08972A48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 556u, 0x08972A48u, 0x08B0C4CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 63u, 0x08B0C4CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972A48u) goto L_08972A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972A48: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(28), static_cast(aot_gpr_4)); @@ -6252,8 +7413,21 @@ L_08972ACC: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08972AD8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 565u, 0x08972AD8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972AD8u) goto L_08972AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972AD8: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -6284,8 +7458,21 @@ L_08972B00: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08972B0Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 571u, 0x08972B0Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972B0Cu) goto L_08972B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972B0C: aot_gpr_31 = (0x08972B14u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-17216)); @@ -6302,8 +7489,21 @@ L_08972B18: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08972B34u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 574u, 0x08972B34u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972B34u) goto L_08972B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972B34: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -6312,8 +7512,21 @@ L_08972B34: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08972B50u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 575u, 0x08972B50u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972B50u) goto L_08972B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972B50: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -6332,8 +7545,21 @@ L_08972B60: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08972B6Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 578u, 0x08972B6Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972B6Cu) goto L_08972B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972B6C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6357,8 +7583,21 @@ L_08972B84: L_08972B8C: aot_gpr_31 = (0x08972B94u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 583u, 0x08972B94u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972B94u) goto L_08972B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972B94: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -6367,8 +7606,21 @@ L_08972B94: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08972BB0u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 584u, 0x08972BB0u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972BB0u) goto L_08972BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972BB0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_08972BB4; @@ -6398,8 +7650,8 @@ L_08972BC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972BEC: @@ -6483,8 +7735,21 @@ L_08972C60: } L_08972C6C: aot_gpr_31 = (0x08972C74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 599u, 0x08972C74u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972C74u) goto L_08972C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972C74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08972C78; @@ -6509,8 +7774,21 @@ L_08972C88: } L_08972C94: aot_gpr_31 = (0x08972C9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 604u, 0x08972C9Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972C9Cu) goto L_08972C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972C9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08972CA0; @@ -6568,8 +7846,8 @@ L_08972CE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972CF8: @@ -6578,8 +7856,8 @@ L_08972CF8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972D0C: @@ -6644,8 +7922,8 @@ L_08972D64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972D80: @@ -6658,8 +7936,8 @@ L_08972D80: aot_gpr_5 = (aot_gpr_5 | 2u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972DA4: @@ -6669,8 +7947,21 @@ L_08972DA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08972DBCu); aot_gpr_4 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 623u, 0x08972DBCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972DBCu) goto L_08972DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972DBC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6745,8 +8036,8 @@ L_08972DE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972E68: @@ -6819,8 +8110,8 @@ L_08972ED0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972EF4: @@ -6859,8 +8150,8 @@ L_08972F2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972F40: @@ -6901,8 +8192,8 @@ L_08972F88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972FA0: @@ -6912,8 +8203,21 @@ L_08972FA0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08972FB8u); aot_gpr_4 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 643u, 0x08972FB8u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972FB8u) goto L_08972FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972FB8: aot_gpr_31 = (0x08972FC0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6924,8 +8228,8 @@ L_08972FC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08972FD4: @@ -6935,8 +8239,21 @@ L_08972FD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08972FECu); aot_gpr_4 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 646u, 0x08972FECu, 0x089D8A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 131u, 0x089D8A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08972FECu) goto L_08972FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08972FEC: aot_gpr_31 = (0x08972FF4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6947,8 +8264,8 @@ L_08972FF4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973008: @@ -6958,8 +8275,21 @@ L_08973008: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08973020u); aot_gpr_4 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 649u, 0x08973020u, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973020u) goto L_08973020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973020: aot_gpr_31 = (0x08973028u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6970,8 +8300,8 @@ L_08973028: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897303C: @@ -7029,8 +8359,8 @@ L_08973098: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089730AC: @@ -7081,8 +8411,21 @@ L_089730F8: L_08973104: aot_gpr_31 = (0x0897310Cu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 663u, 0x0897310Cu, 0x08969150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 246u, 0x08969150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897310Cu) goto L_0897310C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897310C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7143,8 +8486,8 @@ L_08973168: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897317C: @@ -7190,8 +8533,8 @@ L_089731D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089731E4: @@ -7211,8 +8554,8 @@ L_089731F0: goto L_08973204; L_08973204: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897320C: @@ -7261,14 +8604,27 @@ L_08973254: L_08973260: aot_gpr_31 = (0x08973268u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 684u, 0x08973268u, 0x08969150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 246u, 0x08969150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973268u) goto L_08973268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973268: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973274: @@ -7288,8 +8644,8 @@ L_08973290: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089732A0: @@ -7336,8 +8692,8 @@ L_089732E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089732F4: @@ -7350,8 +8706,8 @@ L_08973304: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973314: @@ -7365,8 +8721,21 @@ L_08973314: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x08973344u); aot_gpr_4 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 697u, 0x08973344u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973344u) goto L_08973344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973344: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7637,8 +9006,21 @@ L_089735AC: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x089735C4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 710u, 0x089735C4u, 0x08968FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 229u, 0x08968FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089735C4u) goto L_089735C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089735C4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -7702,8 +9084,8 @@ L_08973650: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973670: @@ -7735,8 +9117,8 @@ L_089736A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089736BC: @@ -7768,8 +9150,8 @@ L_089736E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089736F4: @@ -7777,8 +9159,8 @@ L_089736F4: ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(3))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] & 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973704: @@ -7865,8 +9247,8 @@ L_08973758: goto L_0897375C; L_0897375C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973764: @@ -7954,8 +9336,8 @@ L_08973798: } L_089737A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089737AC: @@ -8029,14 +9411,27 @@ L_089737F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08973810u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7856), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 737u, 0x08973810u, 0x088091ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 192u, 0x088091ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973810u) goto L_08973810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973810: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897381C: @@ -8047,19 +9442,45 @@ L_0897381C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08973838u); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 739u, 0x08973838u, 0x08809600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 257u, 0x08809600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973838u) goto L_08973838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973838: aot_gpr_31 = (0x08973840u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 740u, 0x08973840u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973840u) goto L_08973840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973840: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897384C: @@ -8067,50 +9488,50 @@ L_0897384C: aot_gpr_4 = (aot_gpr_4 + static_cast(3440)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(808), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897385C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973864: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897386C: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(24), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973874: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(24)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897387C: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(26), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973884: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(26)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897388C: @@ -8137,8 +9558,21 @@ L_089738E0: ctx.fpr[20] = std::bit_cast(0u); aot_gpr_31 = (0x089738ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 750u, 0x089738ECu, 0x0897414Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 18u, 0x0897414Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089738ECu) goto L_089738EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089738EC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8149,8 +9583,21 @@ L_089738EC: L_089738F4: aot_gpr_31 = (0x089738FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 752u, 0x089738FCu, 0x0897413Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 16u, 0x0897413Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089738FCu) goto L_089738FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089738FC: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08973908u); @@ -8159,16 +9606,42 @@ L_089738FC: L_08973908: aot_gpr_31 = (0x08973910u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 754u, 0x08973910u, 0x08AFD778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 262u, 0x08AFD778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973910u) goto L_08973910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973910: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x08973924u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 755u, 0x08973924u, 0x0897413Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 16u, 0x0897413Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973924u) goto L_08973924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973924: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2)))))); aot_fpr_13 = std::bit_cast(aot_gpr_4); @@ -8187,8 +9660,21 @@ L_08973944: ctx.fpr[28] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x08973960u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 757u, 0x08973960u, 0x0897413Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 16u, 0x0897413Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973960u) goto L_08973960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973960: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); ctx.fpr[22] = std::bit_cast(ctx.gpr[22]); @@ -8200,8 +9686,21 @@ L_08973960: ctx.fpr[20] = ctx.fpr[28] - aot_fpr_12; aot_gpr_31 = (0x08973988u); ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 758u, 0x08973988u, 0x0897413Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 16u, 0x0897413Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973988u) goto L_08973988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973988: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(4)))))); @@ -8215,8 +9714,21 @@ L_08973988: aot_fpr_12 = ctx.fpr[28] + aot_fpr_12; aot_gpr_31 = (0x089739B8u); ctx.fpr[24] = aot_fpr_12 + ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 759u, 0x089739B8u, 0x0897413Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 16u, 0x0897413Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089739B8u) goto L_089739B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089739B8: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(6))); aot_fpr_13 = std::bit_cast(aot_gpr_4); @@ -8485,13 +9997,39 @@ L_08973BD4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08973BE8u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 787u, 0x08973BE8u, 0x08AC26C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 591u, 0x08AC26C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973BE8u) goto L_08973BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973BE8: aot_gpr_31 = (0x08973BF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 788u, 0x08973BF0u, 0x0897414Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 18u, 0x0897414Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973BF0u) goto L_08973BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973BF0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8502,8 +10040,21 @@ L_08973BF0: L_08973BF8: aot_gpr_31 = (0x08973C00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 790u, 0x08973C00u, 0x0897413Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 16u, 0x0897413Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973C00u) goto L_08973C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973C00: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2)))))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8527,8 +10078,21 @@ L_08973C00: L_08973C38: aot_gpr_31 = (0x08973C40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 792u, 0x08973C40u, 0x0897413Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 16u, 0x0897413Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973C40u) goto L_08973C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973C40: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08973C4Cu); @@ -8537,8 +10101,21 @@ L_08973C40: L_08973C4C: aot_gpr_31 = (0x08973C54u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 794u, 0x08973C54u, 0x08AFD778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 262u, 0x08AFD778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973C54u) goto L_08973C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973C54: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -8580,8 +10157,8 @@ L_08973C8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973CC8: @@ -8613,8 +10190,21 @@ L_08973D14: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08973D20u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 801u, 0x08973D20u, 0x08AFD788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 264u, 0x08AFD788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973D20u) goto L_08973D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973D20: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -8647,8 +10237,8 @@ L_08973D48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973D6C: @@ -8680,8 +10270,21 @@ L_08973DB8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08973DC4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 809u, 0x08973DC4u, 0x08AFD854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 275u, 0x08AFD854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973DC4u) goto L_08973DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973DC4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -8714,8 +10317,8 @@ L_08973DEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973E10: @@ -8748,8 +10351,8 @@ L_08973E38: goto L_08973E3C; L_08973E3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973E44: @@ -8771,15 +10374,28 @@ L_08973E64: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-7936))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08973E7C: aot_gpr_31 = (0x08973E84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 821u, 0x08973E84u, 0x0897412Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 14u, 0x0897412Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973E84u) goto L_08973E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973E84: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3))); aot_gpr_5 = (0u | 255u); @@ -8791,8 +10407,21 @@ L_08973E84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08973EACu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 822u, 0x08973EACu, 0x08974104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 13u, 0x08974104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973EACu) goto L_08973EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973EAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8803,8 +10432,21 @@ L_08973EAC: L_08973EB4: aot_gpr_31 = (0x08973EBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 824u, 0x08973EBCu, 0x0897412Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 14u, 0x0897412Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973EBCu) goto L_08973EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973EBC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3))); aot_gpr_5 = (0u | 30u); @@ -8817,8 +10459,21 @@ L_08973EBC: aot_gpr_5 = (aot_gpr_29 + static_cast(4)); aot_gpr_31 = (0x08973EE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 825u, 0x08973EE8u, 0x08974104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 13u, 0x08974104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973EE8u) goto L_08973EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973EE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8837,8 +10492,21 @@ L_08973EF0: L_08973EFC: aot_gpr_31 = (0x08973F04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 828u, 0x08973F04u, 0x0897412Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 14u, 0x0897412Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973F04u) goto L_08973F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973F04: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3))); aot_gpr_5 = (0u | 237u); @@ -8852,8 +10520,21 @@ L_08973F04: aot_gpr_5 = (aot_gpr_29 + static_cast(8)); aot_gpr_31 = (0x08973F34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 829u, 0x08973F34u, 0x08974104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 13u, 0x08974104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973F34u) goto L_08973F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973F34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8864,8 +10545,21 @@ L_08973F34: L_08973F3C: aot_gpr_31 = (0x08973F44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 831u, 0x08973F44u, 0x0897412Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 14u, 0x0897412Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973F44u) goto L_08973F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973F44: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3))); aot_gpr_5 = (0u | 174u); @@ -8879,8 +10573,21 @@ L_08973F44: aot_gpr_5 = (aot_gpr_29 + static_cast(12)); aot_gpr_31 = (0x08973F74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 832u, 0x08973F74u, 0x08974104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 13u, 0x08974104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973F74u) goto L_08973F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973F74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8891,8 +10598,21 @@ L_08973F74: L_08973F7C: aot_gpr_31 = (0x08973F84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 834u, 0x08973F84u, 0x0897412Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 14u, 0x0897412Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973F84u) goto L_08973F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973F84: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3))); aot_gpr_5 = (0u | 75u); @@ -8905,8 +10625,21 @@ L_08973F84: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08973FB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 835u, 0x08973FB0u, 0x08974104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 13u, 0x08974104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973FB0u) goto L_08973FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973FB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8917,8 +10650,21 @@ L_08973FB0: L_08973FB8: aot_gpr_31 = (0x08973FC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 837u, 0x08973FC0u, 0x0897412Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 14u, 0x0897412Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973FC0u) goto L_08973FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973FC0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3))); aot_gpr_5 = (0u | 77u); @@ -8932,8 +10678,21 @@ L_08973FC0: aot_gpr_5 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08973FF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0091->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0091_entry, 838u, 0x08973FF0u, 0x08974104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 13u, 0x08974104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08973FF0u) goto L_08973FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08973FF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0092.cpp b/profiles/vcs/generated/generated_unit_0092.cpp index ecb4e59..e5c8d55 100644 --- a/profiles/vcs/generated/generated_unit_0092.cpp +++ b/profiles/vcs/generated/generated_unit_0092.cpp @@ -41,6 +41,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0092[64] = { 472u, 480u, 490u, 501u, 514u, 525u, 539u, 556u, 563u, 577u, 588u, 591u, 604u, 608u, 627u, 644u, 651u, 658u, 666u, 676u, 695u, 699u, 707u, 717u, 728u, 735u, 739u, 744u, 754u, 764u, 771u, 782u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0092[4093] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 3u, 0u, 4u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 5u, 0u, 6u, 0u, + 7u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 9u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 12u, 0u, 0u, + 0u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 14u, 0u, 15u, 0u, 16u, 0u, 17u, 0u, 18u, 0u, 19u, 0u, 20u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 22u, 23u, 0u, 24u, 0u, 25u, 0u, 26u, 0u, 0u, 27u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, + 30u, 0u, 31u, 0u, 32u, 0u, 0u, 33u, 0u, 34u, 35u, 0u, 36u, 0u, 37u, 0u, 0u, 38u, 0u, 0u, 39u, 0u, 40u, 0u, 0u, 41u, 0u, 42u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 43u, 0u, 44u, 0u, 0u, 45u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 48u, 0u, 0u, 0u, 49u, 0u, + 50u, 0u, 0u, 51u, 0u, 0u, 52u, 0u, 53u, 0u, 0u, 54u, 0u, 55u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 56u, 0u, 57u, 0u, 0u, 58u, 0u, + 59u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 61u, 0u, 0u, 62u, 0u, 63u, 64u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 66u, 67u, 0u, 0u, 68u, 0u, 0u, 0u, 69u, 0u, 0u, 70u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 72u, 0u, 73u, 0u, 74u, 0u, 0u, 75u, 0u, 76u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 0u, 0u, 79u, 0u, + 80u, 0u, 81u, 0u, 0u, 82u, 0u, 83u, 0u, 0u, 84u, 0u, 0u, 85u, 0u, 86u, 0u, 0u, 87u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 89u, 0u, 90u, 0u, 0u, 91u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 93u, 0u, 94u, 0u, 0u, 95u, 0u, 0u, 96u, 0u, 0u, 0u, 97u, 0u, 98u, + 0u, 0u, 99u, 0u, 0u, 100u, 0u, 101u, 0u, 0u, 102u, 0u, 103u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 104u, 0u, 105u, 0u, 0u, 106u, 0u, 107u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 108u, 0u, 0u, 0u, 109u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 110u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 111u, 0u, 0u, 112u, 0u, 0u, 0u, 0u, 0u, 0u, 113u, 0u, 114u, + 0u, 115u, 0u, 0u, 0u, 0u, 0u, 116u, 0u, 0u, 117u, 0u, 0u, 0u, 0u, 118u, 0u, 119u, 0u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 121u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 122u, 0u, 123u, 0u, 0u, 124u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 125u, 0u, 0u, 0u, 0u, + 0u, 0u, 126u, 0u, 127u, 0u, 128u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 129u, 0u, 130u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 131u, 0u, 132u, 0u, 133u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 134u, 0u, 135u, 0u, 136u, 0u, 137u, 0u, 138u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 139u, 0u, 0u, 140u, 0u, 141u, 0u, 142u, 0u, 0u, 0u, 0u, 143u, 0u, + 144u, 0u, 145u, 0u, 146u, 0u, 0u, 0u, 0u, 147u, 0u, 0u, 148u, 0u, 149u, 0u, 0u, 150u, 0u, 0u, 0u, 151u, 0u, 0u, 152u, 0u, 0u, 0u, 153u, 0u, 154u, 0u, + 0u, 155u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 156u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 157u, 0u, 158u, 0u, 0u, 159u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 161u, 162u, 0u, 0u, 0u, 0u, 0u, 163u, 0u, 0u, 164u, 0u, 0u, 165u, 0u, 0u, 0u, + 166u, 0u, 167u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 170u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 172u, 0u, 173u, 0u, 0u, 174u, 0u, 0u, 175u, 0u, 0u, 176u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 179u, + 180u, 0u, 0u, 0u, 181u, 0u, 0u, 0u, 182u, 0u, 0u, 0u, 183u, 0u, 0u, 0u, 0u, 0u, 184u, 0u, 0u, 185u, 0u, 0u, 186u, 0u, 187u, 0u, 188u, 0u, 0u, 0u, + 189u, 0u, 0u, 0u, 190u, 0u, 191u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 194u, 0u, 195u, 0u, 0u, 196u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 0u, 198u, 199u, 0u, 200u, 0u, 0u, 201u, 0u, 202u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 204u, 0u, 0u, 205u, 0u, 206u, 0u, 207u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, + 209u, 0u, 210u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 213u, 0u, 214u, 0u, 215u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 217u, 0u, 218u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 220u, 0u, 221u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 225u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 0u, 0u, 0u, 0u, 228u, 229u, 0u, 230u, + 0u, 0u, 231u, 0u, 232u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 233u, 0u, 0u, 234u, 0u, 235u, 0u, 236u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 239u, 0u, 0u, 0u, 0u, 240u, 0u, 0u, 241u, 0u, 0u, 242u, 0u, 243u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 247u, 0u, 248u, 0u, 249u, 0u, 250u, + 0u, 251u, 0u, 252u, 0u, 253u, 0u, 0u, 0u, 254u, 0u, 0u, 0u, 255u, 0u, 256u, 0u, 257u, 0u, 0u, 0u, 258u, 0u, 0u, 0u, 259u, 0u, 260u, 0u, 261u, 0u, 0u, + 0u, 262u, 0u, 0u, 0u, 263u, 0u, 264u, 0u, 265u, 0u, 0u, 0u, 266u, 0u, 0u, 0u, 267u, 0u, 268u, 0u, 269u, 0u, 0u, 0u, 270u, 0u, 0u, 0u, 271u, 0u, 272u, + 0u, 273u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 275u, 276u, 0u, 0u, 0u, 0u, 277u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 0u, + 279u, 0u, 280u, 0u, 0u, 0u, 0u, 281u, 0u, 0u, 282u, 0u, 283u, 0u, 0u, 284u, 0u, 285u, 0u, 286u, 0u, 287u, 0u, 288u, 0u, 0u, 289u, 0u, 0u, 290u, 0u, 0u, + 291u, 0u, 292u, 0u, 0u, 293u, 0u, 0u, 294u, 0u, 295u, 0u, 0u, 0u, 0u, 296u, 0u, 0u, 297u, 0u, 0u, 298u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 0u, 0u, 0u, 301u, 0u, 0u, 302u, 0u, 0u, 303u, 0u, 0u, 304u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 0u, 306u, 0u, + 0u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 0u, 309u, 0u, 310u, 0u, 0u, 311u, 0u, 312u, 0u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, + 314u, 0u, 0u, 0u, 315u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 318u, 0u, 0u, 319u, 0u, 0u, 0u, 0u, 0u, 0u, 320u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 322u, 0u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 326u, 0u, 0u, 0u, + 0u, 327u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, 0u, 329u, 0u, 0u, 0u, 0u, 0u, 330u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 0u, 333u, 0u, + 0u, 0u, 0u, 334u, 0u, 335u, 0u, 336u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 338u, 0u, 339u, 0u, 340u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, + 0u, 0u, 343u, 0u, 344u, 0u, 345u, 0u, 346u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 351u, 0u, 0u, 0u, + 352u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 354u, 0u, 0u, 0u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 358u, 0u, 0u, 0u, 359u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 361u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 363u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, + 0u, 0u, 0u, 368u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 0u, 371u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 0u, 373u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 0u, + 376u, 0u, 377u, 0u, 378u, 0u, 379u, 0u, 380u, 0u, 381u, 0u, 382u, 0u, 383u, 0u, 384u, 0u, 385u, 0u, 386u, 0u, 387u, 0u, 388u, 0u, 389u, 0u, 0u, 390u, 0u, 391u, + 0u, 0u, 0u, 0u, 392u, 0u, 0u, 0u, 0u, 393u, 0u, 0u, 394u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 397u, 0u, 0u, 398u, 0u, 0u, 0u, 0u, 399u, + 0u, 0u, 400u, 0u, 0u, 0u, 401u, 0u, 0u, 0u, 0u, 402u, 0u, 0u, 403u, 0u, 0u, 404u, 0u, 0u, 0u, 0u, 405u, 0u, 0u, 406u, 0u, 0u, 0u, 407u, 0u, 0u, + 0u, 0u, 408u, 0u, 0u, 409u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, 412u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 0u, 414u, 0u, 0u, 415u, 0u, 0u, 0u, + 416u, 0u, 0u, 0u, 0u, 417u, 0u, 0u, 418u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 421u, 0u, 0u, 0u, 422u, 0u, 0u, 0u, 0u, 423u, 0u, 0u, + 424u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, 427u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 429u, 0u, 0u, 430u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 432u, + 0u, 0u, 433u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 436u, 0u, 0u, 0u, 437u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 440u, 0u, + 441u, 0u, 442u, 0u, 443u, 0u, 0u, 0u, 0u, 444u, 0u, 0u, 0u, 0u, 445u, 0u, 446u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 448u, 0u, 0u, 0u, 449u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, 0u, 452u, 0u, 453u, 454u, 0u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, 0u, 456u, + 0u, 0u, 0u, 0u, 457u, 0u, 458u, 0u, 459u, 0u, 0u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 462u, 0u, 463u, 464u, 0u, 0u, 0u, + 465u, 0u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 468u, 0u, 469u, 470u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 0u, 0u, + 472u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 474u, 0u, 475u, + 476u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 480u, 0u, 481u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 0u, 0u, + 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 486u, 0u, 487u, 0u, 488u, 0u, 0u, 0u, 0u, 489u, 0u, + 0u, 490u, 0u, 491u, 492u, 0u, 0u, 493u, 0u, 0u, 0u, 494u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 495u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 497u, 0u, 0u, 0u, + 0u, 498u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, + 501u, 0u, 502u, 0u, 503u, 0u, 0u, 0u, 0u, 504u, 0u, 0u, 505u, 0u, 506u, 507u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 509u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 510u, 0u, 0u, 0u, 511u, 0u, 0u, 0u, 512u, 0u, 0u, 0u, 0u, 513u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 514u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 516u, 0u, 517u, 518u, 0u, 519u, 0u, 0u, 0u, 0u, 520u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 521u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, 523u, 524u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 525u, 0u, 0u, 0u, 0u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 527u, 0u, 0u, 528u, 0u, 529u, 530u, 0u, 0u, 531u, 0u, 0u, 0u, 0u, 0u, + 532u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 0u, 534u, 0u, 535u, 536u, 0u, 0u, 537u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 539u, 0u, 0u, 540u, 0u, 541u, 542u, 0u, 0u, 543u, 0u, 0u, 0u, 0u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 0u, 546u, + 0u, 547u, 548u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 552u, 0u, 553u, 554u, 0u, 555u, 0u, 0u, 0u, + 0u, 556u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 558u, 0u, + 559u, 560u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, 562u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 563u, 0u, 0u, 0u, 564u, 0u, 565u, 0u, 566u, 0u, 0u, 0u, 0u, 567u, 0u, 0u, 568u, 0u, 569u, 570u, 0u, 0u, 571u, 0u, 0u, 0u, 572u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 573u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 579u, 0u, 580u, 581u, 0u, 0u, 0u, 582u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 584u, 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 587u, 0u, 0u, + 588u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 590u, 0u, 0u, + 591u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 592u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 593u, 0u, 0u, 0u, 594u, + 0u, 0u, 595u, 0u, 0u, 596u, 0u, 597u, 0u, 0u, 598u, 0u, 0u, 599u, 0u, 0u, 600u, 0u, 601u, 0u, 0u, 0u, 0u, 0u, 602u, 0u, 0u, 0u, 603u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 604u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 606u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 607u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 608u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 609u, 0u, 0u, 610u, 611u, 0u, 612u, 0u, 613u, 0u, 0u, 0u, 614u, 0u, 615u, 0u, 616u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 617u, 618u, 0u, 619u, 0u, 620u, 0u, 0u, 0u, 621u, 0u, 622u, 0u, 623u, 0u, 624u, 0u, 625u, 0u, 626u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 627u, 0u, 0u, 0u, 0u, 628u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 631u, 632u, 0u, + 633u, 0u, 634u, 0u, 0u, 0u, 635u, 0u, 636u, 0u, 0u, 0u, 637u, 0u, 638u, 0u, 0u, 0u, 639u, 0u, 640u, 0u, 0u, 0u, 641u, 0u, 642u, 0u, 0u, 643u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 644u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 646u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 647u, 0u, 648u, 0u, 0u, + 649u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 650u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, + 0u, 0u, 653u, 0u, 654u, 0u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 656u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 657u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 658u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 659u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 660u, 0u, 0u, 661u, 0u, 0u, 0u, 0u, 662u, 0u, 0u, 0u, 0u, 663u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 664u, 0u, 0u, 665u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 666u, 0u, 0u, 667u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 668u, 0u, 669u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 670u, 671u, 0u, 672u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 673u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 675u, 0u, 0u, 0u, 0u, + 676u, 0u, 0u, 677u, 0u, 0u, 0u, 0u, 678u, 0u, 0u, 0u, 679u, 680u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 0u, 682u, 0u, 683u, 0u, 0u, 684u, 0u, 685u, 0u, + 686u, 0u, 687u, 0u, 0u, 0u, 688u, 0u, 0u, 0u, 689u, 0u, 0u, 690u, 0u, 691u, 0u, 0u, 0u, 0u, 692u, 693u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 694u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 695u, 696u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 697u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 698u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 699u, 0u, 0u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 701u, 0u, 702u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 703u, 0u, 0u, 0u, 0u, 0u, 0u, 704u, 0u, 0u, 705u, 0u, 0u, 0u, 0u, 706u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 707u, 0u, 0u, 708u, 709u, 0u, 0u, 0u, 0u, + 710u, 0u, 0u, 0u, 711u, 712u, 0u, 0u, 0u, 0u, 713u, 0u, 0u, 0u, 0u, 714u, 0u, 715u, 0u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 717u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 720u, 0u, 721u, 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 723u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 724u, 0u, 0u, 725u, 0u, 726u, 0u, 0u, 0u, 0u, 0u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 728u, 0u, 0u, 729u, 0u, 0u, 0u, 730u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 731u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 732u, 0u, 0u, 0u, 733u, 0u, 0u, 0u, 734u, 0u, 0u, + 0u, 0u, 735u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 736u, 0u, 0u, 737u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 738u, 0u, 0u, + 0u, 0u, 0u, 739u, 0u, 0u, 0u, 0u, 0u, 740u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 741u, 0u, 742u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 743u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 744u, 0u, 0u, 0u, 0u, 745u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 746u, 0u, 747u, 0u, 748u, 0u, 0u, 0u, 749u, 0u, 750u, 0u, 0u, 751u, 752u, 0u, 0u, 0u, 753u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 754u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 755u, 0u, 756u, 0u, 0u, 757u, + 0u, 0u, 758u, 0u, 0u, 759u, 0u, 0u, 0u, 760u, 0u, 0u, 761u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 762u, 0u, 763u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 764u, 0u, 0u, 765u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 766u, 0u, 767u, 0u, 0u, 768u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 769u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 771u, 772u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 0u, 0u, 774u, 0u, 0u, + 0u, 0u, 775u, 0u, 0u, 0u, 0u, 776u, 0u, 0u, 0u, 0u, 777u, 0u, 0u, 0u, 0u, 778u, 0u, 0u, 0u, 0u, 0u, 779u, 0u, 0u, 780u, 0u, 0u, 0u, 0u, 781u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 782u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 783u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 784u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 785u, +}; void recomp_unit_0092_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,29,31,5,6,16 fprs=12,13,20,22 gpr_occ=3709 fpr_occ=977 gpr_total=5548 fpr_total=1212 @@ -67,18 +200,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08974000u; - entry_id = 0u; - if (entry_delta < 16372u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0092[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0092[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16372u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0092[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08974000; @@ -872,6 +995,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08974000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -985,8 +1132,8 @@ L_089740F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974104: @@ -1000,57 +1147,57 @@ L_08974104: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(ctx.gpr[8])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897412C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(28)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974134: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897413C: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974144: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(36), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897414C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(36))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974154: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897415C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974164: @@ -1098,8 +1245,21 @@ L_089741BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089741C8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 27u, 0x089741C8u, 0x08973E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 813u, 0x08973E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089741C8u) goto L_089741C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089741C8: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[21] & 65535u); @@ -1125,8 +1285,8 @@ L_089741E8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-7800))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974200: @@ -1169,14 +1329,40 @@ L_08974228: L_08974230: aot_gpr_31 = (0x08974238u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 37u, 0x08974238u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974238u) goto L_08974238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974238: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08974244u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 38u, 0x08974244u, 0x08AFD854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 275u, 0x08AFD854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974244u) goto L_08974244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974244: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -1228,13 +1414,39 @@ L_089742A4: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089742B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 45u, 0x089742B0u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089742B0u) goto L_089742B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089742B0: aot_gpr_31 = (0x089742B8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 46u, 0x089742B8u, 0x08AFD778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 262u, 0x08AFD778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089742B8u) goto L_089742B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089742B8: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -1267,14 +1479,40 @@ L_089742E8: L_089742F8: aot_gpr_31 = (0x08974300u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 50u, 0x08974300u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974300u) goto L_08974300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974300: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x0897430Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 51u, 0x0897430Cu, 0x08AFD788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 264u, 0x08AFD788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897430Cu) goto L_0897430C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897430C: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -1326,13 +1564,39 @@ L_0897436C: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08974378u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 58u, 0x08974378u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974378u) goto L_08974378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974378: aot_gpr_31 = (0x08974380u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 59u, 0x08974380u, 0x08AFD778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 262u, 0x08AFD778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974380u) goto L_08974380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974380: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -1384,8 +1648,8 @@ L_089743C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089743F4: @@ -1507,8 +1771,21 @@ L_089744E8: aot_gpr_5 = (ctx.gpr[17] + static_cast(-6)); aot_gpr_31 = (0x089744F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 79u, 0x089744F8u, 0x08973E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 813u, 0x08973E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089744F8u) goto L_089744F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089744F8: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[22]; if (branch_taken) { @@ -1534,14 +1811,40 @@ L_08974508: L_08974514: aot_gpr_31 = (0x0897451Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 83u, 0x0897451Cu, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897451Cu) goto L_0897451C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897451C: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08974528u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 84u, 0x08974528u, 0x08AFD788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 264u, 0x08AFD788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974528u) goto L_08974528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974528: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1593,13 +1896,39 @@ L_08974588: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08974594u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 91u, 0x08974594u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974594u) goto L_08974594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974594: aot_gpr_31 = (0x0897459Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 92u, 0x0897459Cu, 0x08AFD778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 262u, 0x08AFD778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897459Cu) goto L_0897459C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897459C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -1645,14 +1974,40 @@ L_089745E4: L_089745F4: aot_gpr_31 = (0x089745FCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 98u, 0x089745FCu, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089745FCu) goto L_089745FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089745FC: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08974608u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 99u, 0x08974608u, 0x08AFD788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 264u, 0x08AFD788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974608u) goto L_08974608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974608: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1704,13 +2059,39 @@ L_08974668: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08974674u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 106u, 0x08974674u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974674u) goto L_08974674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974674: aot_gpr_31 = (0x0897467Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 107u, 0x0897467Cu, 0x08AFD778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 262u, 0x08AFD778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897467Cu) goto L_0897467C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897467C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -1751,8 +2132,8 @@ L_089746B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089746F0: @@ -1947,15 +2328,15 @@ L_08974898: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089748D0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(44)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089748D8: @@ -1970,22 +2351,22 @@ L_089748D8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(ctx.gpr[8])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974904: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(59))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897490C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(60)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974914: @@ -2000,36 +2381,36 @@ L_08974914: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(ctx.gpr[8])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974940: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(64))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974948: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(65)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974950: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974958: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974960: @@ -2080,8 +2461,21 @@ L_089749E4: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089749F8u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 143u, 0x089749F8u, 0x08AC2974u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 621u, 0x08AC2974u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089749F8u) goto L_089749F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089749F8: aot_gpr_31 = (0x08974A00u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -2103,19 +2497,58 @@ L_08974A10: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08974A24u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 147u, 0x08974A24u, 0x08AC29F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 625u, 0x08AC29F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974A24u) goto L_08974A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974A24: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08974A30u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 148u, 0x08974A30u, 0x08AC25E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 587u, 0x08AC25E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974A30u) goto L_08974A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974A30: aot_gpr_31 = (0x08974A38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 149u, 0x08974A38u, 0x08AC24F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 572u, 0x08AC24F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974A38u) goto L_08974A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974A38: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08974A44u); @@ -2286,13 +2719,39 @@ L_08974BB4: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08974BC0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 170u, 0x08974BC0u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974BC0u) goto L_08974BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974BC0: aot_gpr_31 = (0x08974BC8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 171u, 0x08974BC8u, 0x08AFD780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 263u, 0x08AFD780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974BC8u) goto L_08974BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974BC8: aot_fpr_13 = std::bit_cast(ctx.gpr[2]); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); @@ -2336,13 +2795,39 @@ L_08974C28: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08974C34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 176u, 0x08974C34u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974C34u) goto L_08974C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974C34: aot_gpr_31 = (0x08974C3Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 177u, 0x08974C3Cu, 0x08AFD780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 263u, 0x08AFD780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974C3Cu) goto L_08974C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974C3C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2375,8 +2860,21 @@ L_08974C80: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08974C90u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 181u, 0x08974C90u, 0x08973E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 813u, 0x08973E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974C90u) goto L_08974C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974C90: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 & 65535u); @@ -2402,8 +2900,8 @@ L_08974CB0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-7664))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08974CC8: @@ -2418,8 +2916,21 @@ L_08974CD4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08974CE0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 186u, 0x08974CE0u, 0x08973E44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 818u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 818u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 818u, 0x08973E44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974CE0u) goto L_08974CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974CE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2541,13 +3052,39 @@ L_08974DE0: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08974DECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 201u, 0x08974DECu, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974DECu) goto L_08974DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974DEC: aot_gpr_31 = (0x08974DF4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 202u, 0x08974DF4u, 0x08AFD780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 263u, 0x08AFD780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974DF4u) goto L_08974DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974DF4: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2568,14 +3105,40 @@ L_08974DF4: L_08974E20: aot_gpr_31 = (0x08974E28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 204u, 0x08974E28u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974E28u) goto L_08974E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974E28: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08974E34u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 205u, 0x08974E34u, 0x08AFD854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 275u, 0x08AFD854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974E34u) goto L_08974E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974E34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2602,8 +3165,21 @@ L_08974E44: ctx.gpr[7] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08974E7Cu); ctx.gpr[9] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 208u, 0x08974E7Cu, 0x08973D6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 805u, 0x08973D6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974E7Cu) goto L_08974E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974E7C: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_08974E80; @@ -2627,8 +3203,21 @@ L_08974E94: ctx.gpr[8] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08974EB0u); ctx.gpr[9] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 212u, 0x08974EB0u, 0x08973CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 797u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 797u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 797u, 0x08973CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08974EB0u) goto L_08974EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08974EB0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0))); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -2783,13 +3372,39 @@ L_08974FFC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08975008u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 231u, 0x08975008u, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975008u) goto L_08975008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975008: aot_gpr_31 = (0x08975010u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 232u, 0x08975010u, 0x08AFD780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 263u, 0x08AFD780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975010u) goto L_08975010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975010: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2813,18 +3428,57 @@ L_08975038: L_08975044: aot_gpr_31 = (0x0897504Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 235u, 0x0897504Cu, 0x08AC2958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 619u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 619u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 619u, 0x08AC2958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897504Cu) goto L_0897504C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897504C: aot_gpr_31 = (0x08975054u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 236u, 0x08975054u, 0x08AC25D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 586u, 0x08AC25D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975054u) goto L_08975054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975054: aot_gpr_31 = (0x0897505Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 237u, 0x0897505Cu, 0x08AC269Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 589u, 0x08AC269Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897505Cu) goto L_0897505C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897505C: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -2845,8 +3499,8 @@ L_0897505C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897509C: @@ -2890,8 +3544,8 @@ L_089750E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089750EC: @@ -2915,8 +3569,8 @@ L_089750EC: aot_gpr_5 = (aot_gpr_5 + static_cast(-31072)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897513C: @@ -3157,8 +3811,8 @@ L_089752A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089752BC: @@ -3241,8 +3895,21 @@ L_08975344: L_0897534C: aot_gpr_31 = (0x08975354u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 287u, 0x08975354u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975354u) goto L_08975354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975354: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3254,8 +3921,21 @@ L_0897535C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08975368u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 289u, 0x08975368u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975368u) goto L_08975368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975368: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08975374u); @@ -3326,8 +4006,8 @@ L_089753D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089753F4: @@ -3349,20 +4029,59 @@ L_0897541C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08975430u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 301u, 0x08975430u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975430u) goto L_08975430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975430: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0897543Cu); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 302u, 0x0897543Cu, 0x08807148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 456u, 0x08807148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897543Cu) goto L_0897543C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897543C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08975448u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 303u, 0x08975448u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975448u) goto L_08975448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975448: aot_gpr_4 = (0u + static_cast(-1)); if (ctx.gpr[19] != 0u) { @@ -3376,15 +4095,41 @@ L_08975454: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975468u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 305u, 0x08975468u, 0x0880768Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 512u, 0x0880768Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975468u) goto L_08975468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975468: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08975478u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 306u, 0x08975478u, 0x088066C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 310u, 0x088066C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975478u) goto L_08975478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975478: aot_gpr_6 = (ctx.gpr[18] + static_cast(-1)); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -3402,8 +4147,8 @@ L_08975488: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089754A4: @@ -3411,8 +4156,21 @@ L_089754A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089754B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 309u, 0x089754B8u, 0x088703C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 39u, 0x088703C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089754B8u) goto L_089754B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089754B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3440,8 +4198,21 @@ L_089754D4: aot_gpr_5 = (aot_gpr_5 + static_cast(22832)); aot_gpr_31 = (0x089754F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 313u, 0x089754F0u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089754F0u) goto L_089754F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089754F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); @@ -3453,8 +4224,8 @@ L_08975500: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975510: @@ -3467,8 +4238,21 @@ L_08975510: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08975534u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 316u, 0x08975534u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975534u) goto L_08975534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975534: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (0u | 22u); @@ -3476,13 +4260,39 @@ L_08975534: ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0897554Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 317u, 0x0897554Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897554Cu) goto L_0897554C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897554C: aot_gpr_31 = (0x08975554u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 318u, 0x08975554u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975554u) goto L_08975554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975554: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975560u); @@ -3500,8 +4310,8 @@ L_08975560: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897557C: @@ -3513,14 +4323,40 @@ L_0897557C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0897559Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 321u, 0x0897559Cu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897559Cu) goto L_0897559C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897559C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_31 = (0x089755A8u); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 322u, 0x089755A8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089755A8u) goto L_089755A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089755A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089755B4u); @@ -3537,8 +4373,8 @@ L_089755B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089755CC: @@ -3563,14 +4399,40 @@ L_089755F0: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08975604u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 327u, 0x08975604u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975604u) goto L_08975604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975604: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08975610u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 328u, 0x08975610u, 0x0884C928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 96u, 0x0884C928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975610u) goto L_08975610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975610: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3581,8 +4443,8 @@ L_08975610: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975628: @@ -3617,8 +4479,8 @@ L_08975664: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975678: @@ -3638,15 +4500,28 @@ L_0897568C: L_08975694: aot_gpr_31 = (0x0897569Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 336u, 0x0897569Cu, 0x08B3B948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 992u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 992u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 992u, 0x08B3B948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897569Cu) goto L_0897569C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897569C: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089756AC: @@ -3668,8 +4543,21 @@ L_089756C4: L_089756CC: aot_gpr_31 = (0x089756D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 340u, 0x089756D4u, 0x08B3B824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 977u, 0x08B3B824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089756D4u) goto L_089756D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089756D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089756E0u); @@ -3682,8 +4570,8 @@ L_089756E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089756F4: @@ -3703,34 +4591,73 @@ L_08975708: L_08975710: aot_gpr_31 = (0x08975718u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 345u, 0x08975718u, 0x0884C8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 93u, 0x0884C8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975718u) goto L_08975718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975718: aot_gpr_31 = (0x08975720u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 346u, 0x08975720u, 0x088633B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 595u, 0x088633B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975720u) goto L_08975720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975720: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975730: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08975740u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 348u, 0x08975740u, 0x08936810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 693u, 0x08936810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975740u) goto L_08975740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975740: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975750: @@ -3740,19 +4667,45 @@ L_08975750: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08975768u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 350u, 0x08975768u, 0x088690ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 260u, 0x088690ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975768u) goto L_08975768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975768: aot_gpr_31 = (0x08975770u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 351u, 0x08975770u, 0x088634DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 615u, 0x088634DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975770u) goto L_08975770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975770: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975780: @@ -3761,8 +4714,21 @@ L_08975780: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08975794u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 353u, 0x08975794u, 0x088697ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 356u, 0x088697ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975794u) goto L_08975794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975794: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-29156))); aot_gpr_31 = (0x089757A0u); @@ -3775,8 +4741,8 @@ L_089757A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089757B4: @@ -3787,8 +4753,21 @@ L_089757B4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089757D0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 356u, 0x089757D0u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089757D0u) goto L_089757D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089757D0: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3808,8 +4787,8 @@ L_089757D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089757EC: @@ -3852,8 +4831,21 @@ L_08975848: ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0897585Cu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 362u, 0x0897585Cu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897585Cu) goto L_0897585C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897585C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975868u); @@ -3873,8 +4865,8 @@ L_08975868: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897588C: @@ -3888,8 +4880,21 @@ L_0897588C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089758BCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 365u, 0x089758BCu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089758BCu) goto L_089758BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089758BC: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -3897,8 +4902,21 @@ L_089758BC: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089758D4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 366u, 0x089758D4u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089758D4u) goto L_089758D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089758D4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3926,8 +4944,21 @@ L_089758D4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089758F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 367u, 0x089758F0u, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089758F0u) goto L_089758F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089758F0: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3939,8 +4970,8 @@ L_089758F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897590C: @@ -3954,8 +4985,21 @@ L_0897590C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08975938u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 369u, 0x08975938u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975938u) goto L_08975938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975938: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3980,8 +5024,21 @@ L_08975938: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975964u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 370u, 0x08975964u, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975964u) goto L_08975964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975964: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3992,8 +5049,8 @@ L_08975964: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897597C: @@ -4007,8 +5064,21 @@ L_0897597C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089759A8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 372u, 0x089759A8u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089759A8u) goto L_089759A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089759A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089759B4u); @@ -4035,8 +5105,21 @@ L_089759B4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089759D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 374u, 0x089759D4u, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089759D4u) goto L_089759D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089759D4: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4047,8 +5130,8 @@ L_089759D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089759EC: @@ -4056,12 +5139,38 @@ L_089759EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08975A00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 376u, 0x08975A00u, 0x08932308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 436u, 0x08932308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A00u) goto L_08975A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A00: aot_gpr_31 = (0x08975A08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 377u, 0x08975A08u, 0x08B1124Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 282u, 0x08B1124Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A08u) goto L_08975A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A08: aot_gpr_31 = (0x08975A10u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0197_entry, 197u, 247u, 0x08B18F24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A10u) goto L_08975A10; @@ -4072,44 +5181,174 @@ L_08975A10: AOT_REGCACHE_SYNC_OUT(); return; L_08975A18: aot_gpr_31 = (0x08975A20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 380u, 0x08975A20u, 0x08B255CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 288u, 0x08B255CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A20u) goto L_08975A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A20: aot_gpr_31 = (0x08975A28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 381u, 0x08975A28u, 0x08B0D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 303u, 0x08B0D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A28u) goto L_08975A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A28: aot_gpr_31 = (0x08975A30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 382u, 0x08975A30u, 0x08A354ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 308u, 0x08A354ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A30u) goto L_08975A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A30: aot_gpr_31 = (0x08975A38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 383u, 0x08975A38u, 0x08A57790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 796u, 0x08A57790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A38u) goto L_08975A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A38: aot_gpr_31 = (0x08975A40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 384u, 0x08975A40u, 0x08A57A1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 834u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 834u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 834u, 0x08A57A1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A40u) goto L_08975A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A40: aot_gpr_31 = (0x08975A48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 385u, 0x08975A48u, 0x08946AB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 509u, 0x08946AB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A48u) goto L_08975A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A48: aot_gpr_31 = (0x08975A50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 386u, 0x08975A50u, 0x088BA598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 489u, 0x088BA598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A50u) goto L_08975A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A50: aot_gpr_31 = (0x08975A58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 387u, 0x08975A58u, 0x088FD6D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 311u, 0x088FD6D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A58u) goto L_08975A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A58: aot_gpr_31 = (0x08975A60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 388u, 0x08975A60u, 0x089E5ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 331u, 0x089E5ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A60u) goto L_08975A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A60: aot_gpr_31 = (0x08975A68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 389u, 0x08975A68u, 0x08932C2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 580u, 0x08932C2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A68u) goto L_08975A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4128,16 +5367,42 @@ L_08975A7C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x08975A90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 392u, 0x08975A90u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975A90u) goto L_08975A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975A90: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975AA4u); aot_gpr_5 = (aot_gpr_5 + static_cast(21776)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 393u, 0x08975AA4u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975AA4u) goto L_08975AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975AA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975AB0u); @@ -4148,16 +5413,42 @@ L_08975AB0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-17092)); aot_gpr_31 = (0x08975ABCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 395u, 0x08975ABCu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975ABCu) goto L_08975ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975ABC: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975AD0u); aot_gpr_5 = (aot_gpr_5 + static_cast(21884)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 396u, 0x08975AD0u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975AD0u) goto L_08975AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975AD0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975ADCu); @@ -4168,16 +5459,42 @@ L_08975ADC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-17076)); aot_gpr_31 = (0x08975AE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 398u, 0x08975AE8u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975AE8u) goto L_08975AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975AE8: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975AFCu); aot_gpr_5 = (aot_gpr_5 + static_cast(21964)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 399u, 0x08975AFCu, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975AFCu) goto L_08975AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975AFC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975B08u); @@ -4189,16 +5506,42 @@ L_08975B08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975B18u); aot_gpr_5 = (aot_gpr_5 + static_cast(-7176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 401u, 0x08975B18u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975B18u) goto L_08975B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975B18: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975B2Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(22056)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 402u, 0x08975B2Cu, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975B2Cu) goto L_08975B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975B2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975B38u); @@ -4209,16 +5552,42 @@ L_08975B38: aot_gpr_5 = (ctx.gpr[28] + static_cast(-17060)); aot_gpr_31 = (0x08975B44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 404u, 0x08975B44u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975B44u) goto L_08975B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975B44: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975B58u); aot_gpr_5 = (aot_gpr_5 + static_cast(22136)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 405u, 0x08975B58u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975B58u) goto L_08975B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975B58: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975B64u); @@ -4230,16 +5599,42 @@ L_08975B64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975B74u); aot_gpr_5 = (aot_gpr_5 + static_cast(-7156)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 407u, 0x08975B74u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975B74u) goto L_08975B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975B74: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975B88u); aot_gpr_5 = (aot_gpr_5 + static_cast(22188)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 408u, 0x08975B88u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975B88u) goto L_08975B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975B88: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975B94u); @@ -4250,16 +5645,42 @@ L_08975B94: aot_gpr_5 = (ctx.gpr[28] + static_cast(-17044)); aot_gpr_31 = (0x08975BA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 410u, 0x08975BA0u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975BA0u) goto L_08975BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975BA0: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975BB4u); aot_gpr_5 = (aot_gpr_5 + static_cast(22260)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 411u, 0x08975BB4u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975BB4u) goto L_08975BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975BB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975BC0u); @@ -4271,16 +5692,42 @@ L_08975BC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975BD0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-7132)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 413u, 0x08975BD0u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975BD0u) goto L_08975BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975BD0: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975BE4u); aot_gpr_5 = (aot_gpr_5 + static_cast(22320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 414u, 0x08975BE4u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975BE4u) goto L_08975BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975BE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975BF0u); @@ -4292,16 +5739,42 @@ L_08975BF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975C00u); aot_gpr_5 = (aot_gpr_5 + static_cast(-7112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 416u, 0x08975C00u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975C00u) goto L_08975C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975C00: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975C14u); aot_gpr_5 = (aot_gpr_5 + static_cast(22352)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 417u, 0x08975C14u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975C14u) goto L_08975C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975C14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975C20u); @@ -4313,16 +5786,42 @@ L_08975C20: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975C30u); aot_gpr_5 = (aot_gpr_5 + static_cast(-7092)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 419u, 0x08975C30u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975C30u) goto L_08975C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975C30: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975C44u); aot_gpr_5 = (aot_gpr_5 + static_cast(22400)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 420u, 0x08975C44u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975C44u) goto L_08975C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975C44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975C50u); @@ -4334,16 +5833,42 @@ L_08975C50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975C60u); aot_gpr_5 = (aot_gpr_5 + static_cast(-7068)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 422u, 0x08975C60u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975C60u) goto L_08975C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975C60: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975C74u); aot_gpr_5 = (aot_gpr_5 + static_cast(22452)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 423u, 0x08975C74u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975C74u) goto L_08975C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975C74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975C80u); @@ -4355,16 +5880,42 @@ L_08975C80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975C90u); aot_gpr_5 = (aot_gpr_5 + static_cast(-7036)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 425u, 0x08975C90u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975C90u) goto L_08975C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975C90: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975CA4u); aot_gpr_5 = (aot_gpr_5 + static_cast(22508)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 426u, 0x08975CA4u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975CA4u) goto L_08975CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975CA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975CB0u); @@ -4375,16 +5926,42 @@ L_08975CB0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-17028)); aot_gpr_31 = (0x08975CBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 428u, 0x08975CBCu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975CBCu) goto L_08975CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975CBC: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975CD0u); aot_gpr_5 = (aot_gpr_5 + static_cast(22668)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 429u, 0x08975CD0u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975CD0u) goto L_08975CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975CD0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975CDCu); @@ -4395,16 +5972,42 @@ L_08975CDC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-17012)); aot_gpr_31 = (0x08975CE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 431u, 0x08975CE8u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975CE8u) goto L_08975CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975CE8: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975CFCu); aot_gpr_5 = (aot_gpr_5 + static_cast(22796)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 432u, 0x08975CFCu, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975CFCu) goto L_08975CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975CFC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975D08u); @@ -4415,16 +6018,42 @@ L_08975D08: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16996)); aot_gpr_31 = (0x08975D14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 434u, 0x08975D14u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975D14u) goto L_08975D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975D14: aot_gpr_5 = (2199u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08975D28u); aot_gpr_5 = (aot_gpr_5 + static_cast(22908)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 435u, 0x08975D28u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975D28u) goto L_08975D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975D28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08975D34u); @@ -4436,15 +6065,15 @@ L_08975D34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975D44: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-16976), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975D4C: @@ -4469,8 +6098,21 @@ L_08975D70: L_08975D78: aot_gpr_31 = (0x08975D80u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 441u, 0x08975D80u, 0x089C6F50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 677u, 0x089C6F50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975D80u) goto L_08975D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975D80: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_16 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(2052))); @@ -4536,8 +6178,8 @@ L_08975DE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975DF0: @@ -4556,8 +6198,8 @@ L_08975DF0: aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast(4), aot_run_words); } jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(60), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975E90: @@ -4571,8 +6213,21 @@ L_08975E90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08975EB8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 451u, 0x08975EB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975EB8u) goto L_08975EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975EB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -4593,8 +6248,21 @@ L_08975ED0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08975EE4u); aot_gpr_6 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 455u, 0x08975EE4u, 0x0886E068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 328u, 0x0886E068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975EE4u) goto L_08975EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975EE4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4605,8 +6273,8 @@ L_08975EE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975EFC: @@ -4626,15 +6294,28 @@ L_08975F10: L_08975F18: aot_gpr_31 = (0x08975F20u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 459u, 0x08975F20u, 0x0886DB9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 284u, 0x0886DB9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975F20u) goto L_08975F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975F20: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975F30: @@ -4648,8 +6329,21 @@ L_08975F30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08975F58u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 461u, 0x08975F58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975F58u) goto L_08975F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975F58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -4669,8 +6363,21 @@ L_08975F70: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08975F80u); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 465u, 0x08975F80u, 0x0886DE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 308u, 0x0886DE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975F80u) goto L_08975F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975F80: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4681,8 +6388,8 @@ L_08975F80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08975F98: @@ -4696,8 +6403,21 @@ L_08975F98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08975FC0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 467u, 0x08975FC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975FC0u) goto L_08975FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975FC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -4717,8 +6437,21 @@ L_08975FD8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08975FE8u); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 471u, 0x08975FE8u, 0x0886DEB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 313u, 0x0886DEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08975FE8u) goto L_08975FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08975FE8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4729,8 +6462,8 @@ L_08975FE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976000: @@ -4744,8 +6477,21 @@ L_08976000: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08976028u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 473u, 0x08976028u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976028u) goto L_08976028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976028: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -4788,8 +6534,21 @@ L_08976080: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(3), static_cast(ctx.gpr[7])); aot_gpr_31 = (0x089760ACu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 477u, 0x089760ACu, 0x0886DF38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 318u, 0x0886DF38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089760ACu) goto L_089760AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089760AC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4800,8 +6559,8 @@ L_089760AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089760C4: @@ -4815,8 +6574,21 @@ L_089760C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089760ECu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 479u, 0x089760ECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089760ECu) goto L_089760EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089760EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -4859,8 +6631,21 @@ L_08976144: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(3), static_cast(ctx.gpr[7])); aot_gpr_31 = (0x08976170u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 483u, 0x08976170u, 0x0886DFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 323u, 0x0886DFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976170u) goto L_08976170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976170: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4871,8 +6656,8 @@ L_08976170: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976188: @@ -4889,8 +6674,21 @@ L_08976188: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x089761C4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 485u, 0x089761C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089761C4u) goto L_089761C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089761C4: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[18] = (2236u << 16u); @@ -4919,8 +6717,21 @@ L_089761E4: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x089761F8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 489u, 0x089761F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089761F8u) goto L_089761F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089761F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -4958,8 +6769,21 @@ L_0897622C: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x08976250u); ctx.gpr[11] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 495u, 0x08976250u, 0x0886E0E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 333u, 0x0886E0E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976250u) goto L_08976250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976250: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -5000,8 +6824,8 @@ L_08976284: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089762B0: @@ -5018,8 +6842,21 @@ L_089762B0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(48), aot_run_words); } aot_gpr_31 = (0x089762F0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 500u, 0x089762F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089762F0u) goto L_089762F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089762F0: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); ctx.gpr[18] = (2236u << 16u); @@ -5048,8 +6885,21 @@ L_08976310: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08976324u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 504u, 0x08976324u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976324u) goto L_08976324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976324: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5098,8 +6948,21 @@ L_0897635C: aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089763A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[13]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 510u, 0x089763A0u, 0x0886E380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 350u, 0x0886E380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089763A0u) goto L_089763A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089763A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -5141,8 +7004,8 @@ L_089763D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976404: @@ -5154,8 +7017,21 @@ L_08976404: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08976424u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 515u, 0x08976424u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976424u) goto L_08976424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976424: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5173,16 +7049,29 @@ L_08976438: L_0897643C: aot_gpr_31 = (0x08976444u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 519u, 0x08976444u, 0x0886E664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 367u, 0x0886E664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976444u) goto L_08976444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976444: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976458: @@ -5196,8 +7085,21 @@ L_08976458: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08976480u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 521u, 0x08976480u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976480u) goto L_08976480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976480: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -5240,8 +7142,21 @@ L_089764D8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(3), static_cast(ctx.gpr[7])); aot_gpr_31 = (0x08976504u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 525u, 0x08976504u, 0x0886E864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 385u, 0x0886E864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976504u) goto L_08976504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976504: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5252,8 +7167,8 @@ L_08976504: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897651C: @@ -5267,8 +7182,21 @@ L_0897651C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08976544u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 527u, 0x08976544u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976544u) goto L_08976544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976544: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5287,8 +7215,21 @@ L_0897655C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08976568u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 531u, 0x08976568u, 0x0886E8BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 387u, 0x0886E8BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976568u) goto L_08976568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976568: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5299,8 +7240,8 @@ L_08976568: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976580: @@ -5314,8 +7255,21 @@ L_08976580: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089765A8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 533u, 0x089765A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089765A8u) goto L_089765A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089765A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5334,8 +7288,21 @@ L_089765C0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x089765CCu); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 537u, 0x089765CCu, 0x0886E8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 389u, 0x0886E8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089765CCu) goto L_089765CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089765CC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5346,8 +7313,8 @@ L_089765CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089765E4: @@ -5361,8 +7328,21 @@ L_089765E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0897660Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 539u, 0x0897660Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897660Cu) goto L_0897660C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897660C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5381,8 +7361,21 @@ L_08976624: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08976630u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 543u, 0x08976630u, 0x0886E92Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 391u, 0x0886E92Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976630u) goto L_08976630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976630: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5393,8 +7386,8 @@ L_08976630: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976648: @@ -5408,8 +7401,21 @@ L_08976648: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08976670u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 545u, 0x08976670u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976670u) goto L_08976670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976670: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5429,8 +7435,21 @@ L_08976688: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08976698u); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 549u, 0x08976698u, 0x0886E964u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 393u, 0x0886E964u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976698u) goto L_08976698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976698: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5441,8 +7460,8 @@ L_08976698: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089766B0: @@ -5454,8 +7473,21 @@ L_089766B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089766D0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 551u, 0x089766D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089766D0u) goto L_089766D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089766D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5473,16 +7505,29 @@ L_089766E4: L_089766E8: aot_gpr_31 = (0x089766F0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 555u, 0x089766F0u, 0x0886E9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 397u, 0x0886E9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089766F0u) goto L_089766F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089766F0: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976704: @@ -5496,8 +7541,21 @@ L_08976704: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x0897672Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 557u, 0x0897672Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897672Cu) goto L_0897672C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897672C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -5544,8 +7602,21 @@ L_08976784: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(3), static_cast(ctx.gpr[8])); aot_gpr_31 = (0x089767C0u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 561u, 0x089767C0u, 0x0886EBE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 414u, 0x0886EBE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089767C0u) goto L_089767C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089767C0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5556,8 +7627,8 @@ L_089767C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089767D8: @@ -5574,8 +7645,21 @@ L_089767D8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x08976814u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 563u, 0x08976814u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976814u) goto L_08976814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976814: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[18] = (2236u << 16u); @@ -5604,8 +7688,21 @@ L_08976834: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08976848u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 567u, 0x08976848u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976848u) goto L_08976848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976848: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5646,8 +7743,21 @@ L_0897687C: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089768A0u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 573u, 0x089768A0u, 0x0886E0E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 333u, 0x0886E0E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089768A0u) goto L_089768A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089768A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -5688,8 +7798,8 @@ L_089768D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976900: @@ -5703,8 +7813,21 @@ L_08976900: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08976928u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 578u, 0x08976928u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976928u) goto L_08976928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976928: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); if (aot_gpr_4 != 0u) { @@ -5724,8 +7847,21 @@ L_08976940: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08976950u); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 582u, 0x08976950u, 0x0886E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 395u, 0x0886E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976950u) goto L_08976950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976950: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5736,8 +7872,8 @@ L_08976950: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976968: @@ -5781,8 +7917,8 @@ L_08976968: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089769AC: @@ -5793,8 +7929,21 @@ L_089769AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089769C8u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 585u, 0x089769C8u, 0x08978E60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 117u, 0x08978E60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089769C8u) goto L_089769C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089769C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); @@ -5822,8 +7971,8 @@ L_089769F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976A00: @@ -5837,8 +7986,21 @@ L_08976A00: ctx.gpr[7] = (aot_gpr_29 + static_cast(4)); aot_gpr_31 = (0x08976A2Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 589u, 0x08976A2Cu, 0x08978E60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 117u, 0x08978E60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976A2Cu) goto L_08976A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976A2C: ctx.gpr[10] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); ctx.gpr[8] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[10] + static_cast(0)))))); @@ -5986,8 +8148,8 @@ L_08976B00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976B48: @@ -6075,8 +8237,8 @@ L_08976BE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976BF0: @@ -6089,8 +8251,21 @@ L_08976BF0: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08976C1Cu); ctx.gpr[7] = (aot_gpr_29 + static_cast(52)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 604u, 0x08976C1Cu, 0x08978E60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 117u, 0x08978E60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976C1Cu) goto L_08976C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976C1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); @@ -6154,8 +8329,8 @@ L_08976C3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976C80: @@ -6360,8 +8535,21 @@ L_08976DF8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08976E18u); ctx.gpr[8] = (0u | 300u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 627u, 0x08976E18u, 0x08971C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 327u, 0x08971C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976E18u) goto L_08976E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976E18: ctx.gpr[19] = (aot_gpr_29 + static_cast(8200)); aot_gpr_5 = (aot_gpr_29 + static_cast(8924)); @@ -6374,8 +8562,21 @@ L_08976E2C: ctx.gpr[22] = (aot_gpr_29 + static_cast(8204)); aot_gpr_31 = (0x08976E38u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 629u, 0x08976E38u, 0x08B3E8BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 557u, 0x08B3E8BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976E38u) goto L_08976E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976E38: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(8208)))))); aot_gpr_5 = (ctx.gpr[21] & 255u); @@ -6389,22 +8590,61 @@ L_08976E38: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08976E68u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 630u, 0x08976E68u, 0x08819DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 353u, 0x08819DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976E68u) goto L_08976E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976E68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08976E74u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 631u, 0x08976E74u, 0x08819E24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 356u, 0x08819E24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976E74u) goto L_08976E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976E74: aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08976E78; L_08976E78: aot_gpr_31 = (0x08976E80u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 633u, 0x08976E80u, 0x0881A128u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 393u, 0x0881A128u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976E80u) goto L_08976E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976E80: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6477,8 +8717,21 @@ L_08976EE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08976EF4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 643u, 0x08976EF4u, 0x08819F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 367u, 0x08819F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08976EF4u) goto L_08976EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08976EF4: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(8226))); aot_fpr_13 = std::bit_cast(ctx.gpr[30]); @@ -6557,8 +8810,8 @@ L_08976F80: ctx.gpr[1] = (ctx.gpr[1] + static_cast(8928)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + ctx.gpr[1]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08976FBC: @@ -6644,8 +8897,21 @@ L_08977090: ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089770A0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 655u, 0x089770A0u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089770A0u) goto L_089770A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089770A0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6666,8 +8932,21 @@ L_089770A0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x089770C0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 656u, 0x089770C0u, 0x08978F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 124u, 0x08978F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089770C0u) goto L_089770C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089770C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -6917,8 +9196,21 @@ L_08977290: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089772ECu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 675u, 0x089772ECu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089772ECu) goto L_089772EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089772EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_22)) ? 0x00800000u : 0u); @@ -6991,8 +9283,21 @@ L_08977364: L_08977370: aot_gpr_31 = (0x08977378u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 685u, 0x08977378u, 0x089C89A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 174u, 0x089C89A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08977378u) goto L_08977378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08977378: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7110,8 +9415,8 @@ L_08977430: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08977474: @@ -7139,8 +9444,21 @@ L_08977474: ctx.fpr[24] = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x089774E8u); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 698u, 0x089774E8u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089774E8u) goto L_089774E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089774E8: aot_gpr_4 = (17096u << 16u); aot_fpr_20 = std::bit_cast(0u); @@ -7175,8 +9493,21 @@ L_0897751C: ctx.gpr[7] = (aot_gpr_29 + static_cast(4)); aot_gpr_31 = (0x08977538u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 700u, 0x08977538u, 0x08978F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 124u, 0x08978F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08977538u) goto L_08977538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08977538: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -7527,8 +9858,8 @@ L_089777E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08977830: @@ -7829,8 +10160,8 @@ L_08977A24: L_08977AAC: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08977AB4: @@ -7988,8 +10319,21 @@ L_08977BD8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08977BE4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[14])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 751u, 0x08977BE4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08977BE4u) goto L_08977BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08977BE4: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_22 = std::bit_cast(0x7FC00000u); else aot_fpr_22 = fs * ft; } goto L_08977BE8; @@ -8011,8 +10355,8 @@ L_08977BF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08977C18: @@ -8214,8 +10558,8 @@ L_08977D7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08977DAC: @@ -8356,8 +10700,21 @@ L_08977EDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08977EE8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 780u, 0x08977EE8u, 0x089795BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 184u, 0x089795BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08977EE8u) goto L_08977EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08977EE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -8385,8 +10742,8 @@ L_08977EFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08977F2C: @@ -8417,8 +10774,21 @@ L_08977F2C: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08977FA8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 783u, 0x08977FA8u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08977FA8u) goto L_08977FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08977FA8: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8439,8 +10809,21 @@ L_08977FA8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08977FC8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0092->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0092_entry, 784u, 0x08977FC8u, 0x08978F54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 124u, 0x08978F54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08977FC8u) goto L_08977FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08977FC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); diff --git a/profiles/vcs/generated/generated_unit_0093.cpp b/profiles/vcs/generated/generated_unit_0093.cpp index f9b6f7b..16b5872 100644 --- a/profiles/vcs/generated/generated_unit_0093.cpp +++ b/profiles/vcs/generated/generated_unit_0093.cpp @@ -686,6 +686,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08978000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1042,8 +1066,8 @@ L_08978270: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089782A8: @@ -1144,8 +1168,8 @@ L_0897837C: L_089783A4: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089783AC: @@ -1319,8 +1343,8 @@ L_0897850C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08978540: @@ -1496,8 +1520,8 @@ L_089786A8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089786DC: @@ -1570,8 +1594,21 @@ L_0897879C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x089787B0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 66u, 0x089787B0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089787B0u) goto L_089787B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089787B0: aot_gpr_4 = (16329u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -1849,8 +1886,21 @@ L_08978A3C: aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08978A4Cu); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[16]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 81u, 0x08978A4Cu, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08978A4Cu) goto L_08978A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08978A4C: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); @@ -1859,8 +1909,21 @@ L_08978A4C: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08978A68u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[16]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 82u, 0x08978A68u, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08978A68u) goto L_08978A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08978A68: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -1965,8 +2028,8 @@ L_08978B30: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08978B78: @@ -2052,8 +2115,8 @@ L_08978C2C: L_08978C48: jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(0), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08978C50: @@ -2126,8 +2189,8 @@ L_08978C50: aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08978D08: @@ -2210,8 +2273,8 @@ L_08978DA8: goto L_08978DAC; L_08978DAC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08978DB4: @@ -2294,8 +2357,8 @@ L_08978E54: goto L_08978E58; L_08978E58: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08978E60: @@ -2384,8 +2447,8 @@ L_08978F18: goto L_08978F4C; L_08978F4C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08978F54: @@ -2524,8 +2587,8 @@ L_0897907C: aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(8), std::bit_cast(aot_fpr_14)); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089790B0: @@ -2553,8 +2616,21 @@ L_089790B0: ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); ctx.gpr[31] = (0x08979120u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 138u, 0x08979120u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08979120u) goto L_08979120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08979120: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2997,8 +3073,8 @@ L_0897946C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089794A0: @@ -3107,8 +3183,8 @@ L_089795A0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089795BC: @@ -3208,8 +3284,8 @@ L_0897969C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089796B4: @@ -3432,8 +3508,8 @@ L_08979870: goto L_08979874; L_08979874: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897987C: @@ -3462,8 +3538,8 @@ L_089798A8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089798CC: @@ -3498,8 +3574,21 @@ L_08979940: ctx.gpr[30] = (aot_gpr_29 + static_cast(48)); ctx.gpr[31] = (0x08979958u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 222u, 0x08979958u, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08979958u) goto L_08979958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08979958: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3575,8 +3664,21 @@ L_08979998: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089799D0u); ctx.gpr[11] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 225u, 0x089799D0u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089799D0u) goto L_089799D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089799D0: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -3744,8 +3846,21 @@ L_08979B38: ctx.gpr[20] = (aot_gpr_29 + static_cast(128)); ctx.gpr[31] = (0x08979B98u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 235u, 0x08979B98u, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08979B98u) goto L_08979B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08979B98: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3774,8 +3889,21 @@ L_08979B98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); ctx.gpr[31] = (0x08979BD8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 236u, 0x08979BD8u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08979BD8u) goto L_08979BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08979BD8: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); @@ -3876,8 +4004,21 @@ L_08979C5C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x08979CD8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 239u, 0x08979CD8u, 0x089C89A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 174u, 0x089C89A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08979CD8u) goto L_08979CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08979CD8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4158,8 +4299,8 @@ L_08979EE0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08979F28: @@ -4189,8 +4330,21 @@ L_08979F28: ctx.gpr[22] = (aot_gpr_29 + static_cast(48)); ctx.gpr[31] = (0x08979FC8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 268u, 0x08979FC8u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08979FC8u) goto L_08979FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08979FC8: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4648,8 +4802,21 @@ L_0897A39C: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); ctx.gpr[31] = (0x0897A3ACu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 305u, 0x0897A3ACu, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897A3ACu) goto L_0897A3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897A3AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (ctx.gpr[16] << 3u); @@ -4658,8 +4825,21 @@ L_0897A3AC: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); ctx.gpr[31] = (0x0897A3C8u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 306u, 0x0897A3C8u, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897A3C8u) goto L_0897A3C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897A3C8: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4810,8 +4990,21 @@ L_0897A4E0: ctx.gpr[17] = (aot_gpr_29 + static_cast(160)); ctx.gpr[31] = (0x0897A518u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 318u, 0x0897A518u, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897A518u) goto L_0897A518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897A518: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (ctx.gpr[16] << 3u); @@ -4821,8 +5014,21 @@ L_0897A518: ctx.gpr[16] = (aot_gpr_29 + static_cast(176)); ctx.gpr[31] = (0x0897A538u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 319u, 0x0897A538u, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897A538u) goto L_0897A538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897A538: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4913,8 +5119,21 @@ L_0897A5AC: } L_0897A5B4: ctx.gpr[31] = (0x0897A5BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 323u, 0x0897A5BCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897A5BCu) goto L_0897A5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897A5BC: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } goto L_0897A5C0; @@ -4962,8 +5181,8 @@ L_0897A5FC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897A644: @@ -5115,8 +5334,21 @@ L_0897A7D0: aot_gpr_6 = (2200u << 16u); ctx.gpr[31] = (0x0897A7F0u); aot_gpr_6 = (aot_gpr_6 + static_cast(-26500)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 341u, 0x0897A7F0u, 0x08B6CD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 156u, 0x08B6CD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897A7F0u) goto L_0897A7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897A7F0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(30052), 0u); { const bool branch_taken = 0u == 0u; @@ -5472,8 +5704,21 @@ L_0897AB70: ctx.gpr[19] = (aot_gpr_29 + static_cast(160)); ctx.gpr[31] = (0x0897ABA0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 368u, 0x0897ABA0u, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897ABA0u) goto L_0897ABA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897ABA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (16256u << 16u); @@ -5505,8 +5750,21 @@ L_0897ABA0: ctx.gpr[18] = (aot_gpr_29 + static_cast(192)); ctx.gpr[31] = (0x0897ABECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 369u, 0x0897ABECu, 0x08976968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 583u, 0x08976968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897ABECu) goto L_0897ABEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897ABEC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -5689,8 +5947,8 @@ L_0897AD04: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897AD4C: @@ -5769,8 +6027,21 @@ L_0897AE30: aot_gpr_6 = (aot_gpr_6 + static_cast(-26500)); ctx.gpr[31] = (0x0897AE50u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 385u, 0x0897AE50u, 0x08B6CD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 156u, 0x08B6CD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897AE50u) goto L_0897AE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897AE50: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(30560), 0u); { const bool branch_taken = 0u == 0u; @@ -6258,8 +6529,21 @@ L_0897B2B8: aot_gpr_7 = (16384u << 16u); ctx.gpr[31] = (0x0897B2D0u); aot_fpr_12 = std::bit_cast(aot_gpr_7); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 407u, 0x0897B2D0u, 0x08A1C7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 80u, 0x08A1C7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B2D0u) goto L_0897B2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B2D0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6433,8 +6717,21 @@ L_0897B398: aot_fpr_14 = aot_fpr_14 + aot_fpr_15; ctx.gpr[31] = (0x0897B3D4u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 421u, 0x0897B3D4u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B3D4u) goto L_0897B3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B3D4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -6532,22 +6829,22 @@ L_0897B460: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B4A8: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B4B0: aot_gpr_2 = (2200u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-19280)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B4BC: @@ -6559,8 +6856,8 @@ L_0897B4CC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B4D8: @@ -6581,8 +6878,21 @@ L_0897B4F8: L_0897B500: ctx.gpr[31] = (0x0897B508u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 438u, 0x0897B508u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B508u) goto L_0897B508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B508: if (aot_gpr_2 == ctx.gpr[16]) { ctx.gpr[17] = (0u | 1u); @@ -6591,8 +6901,21 @@ L_0897B508: goto L_0897B510; L_0897B510: ctx.gpr[31] = (0x0897B518u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 440u, 0x0897B518u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B518u) goto L_0897B518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B518: aot_gpr_4 = (aot_gpr_2 ^ ctx.gpr[16]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -6631,8 +6954,8 @@ L_0897B540: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B55C: @@ -6641,8 +6964,21 @@ L_0897B55C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[31] = (0x0897B574u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 447u, 0x0897B574u, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B574u) goto L_0897B574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B574: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(24608)); @@ -6699,8 +7035,21 @@ L_0897B614: goto L_0897B618; L_0897B618: ctx.gpr[31] = (0x0897B620u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 452u, 0x0897B620u, 0x089C718Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 729u, 0x089C718Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B620u) goto L_0897B620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B620: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(0), ctx.gpr[17]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6719,8 +7068,21 @@ L_0897B638: goto L_0897B63C; L_0897B63C: ctx.gpr[31] = (0x0897B644u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 456u, 0x0897B644u, 0x089C718Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 729u, 0x089C718Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B644u) goto L_0897B644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B644: aot_gpr_4 = (0u | 48u); aot_mem.aot_direct_store16(aot_gpr_2 + static_cast(4), static_cast(aot_gpr_4)); @@ -6741,8 +7103,21 @@ L_0897B660: goto L_0897B664; L_0897B664: ctx.gpr[31] = (0x0897B66Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 460u, 0x0897B66Cu, 0x089C718Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 729u, 0x089C718Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B66Cu) goto L_0897B66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B66C: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(8), ctx.gpr[17]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6761,8 +7136,21 @@ L_0897B684: goto L_0897B688; L_0897B688: ctx.gpr[31] = (0x0897B690u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 464u, 0x0897B690u, 0x089C718Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 729u, 0x089C718Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B690u) goto L_0897B690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B690: aot_gpr_4 = (0u | 49u); aot_mem.aot_direct_store16(aot_gpr_2 + static_cast(12), static_cast(aot_gpr_4)); @@ -6783,8 +7171,21 @@ L_0897B6AC: goto L_0897B6B0; L_0897B6B0: ctx.gpr[31] = (0x0897B6B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 468u, 0x0897B6B8u, 0x089C718Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 729u, 0x089C718Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B6B8u) goto L_0897B6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B6B8: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(16), ctx.gpr[17]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6803,8 +7204,21 @@ L_0897B6D0: goto L_0897B6D4; L_0897B6D4: ctx.gpr[31] = (0x0897B6DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 472u, 0x0897B6DCu, 0x089C718Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 729u, 0x089C718Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B6DCu) goto L_0897B6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B6DC: aot_gpr_4 = (0u | 50u); aot_mem.aot_direct_store16(aot_gpr_2 + static_cast(20), static_cast(aot_gpr_4)); @@ -6817,8 +7231,8 @@ L_0897B6DC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B6FC: @@ -6842,16 +7256,42 @@ L_0897B71C: ctx.gpr[18] = (ctx.gpr[17] + static_cast(188)); ctx.gpr[31] = (0x0897B734u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 475u, 0x0897B734u, 0x08AF44D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 50u, 0x08AF44D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B734u) goto L_0897B734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B734: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); aot_gpr_4 = (0u | 0u); ctx.gpr[31] = (0x0897B748u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 476u, 0x0897B748u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B748u) goto L_0897B748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B748: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x0897B754u); @@ -6862,8 +7302,21 @@ L_0897B754: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0897B760u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 478u, 0x0897B760u, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B760u) goto L_0897B760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B760: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6887,8 +7340,8 @@ L_0897B774: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B78C: @@ -6900,8 +7353,8 @@ L_0897B79C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B7A8: @@ -6913,16 +7366,29 @@ L_0897B7B8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B7C4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x0897B7D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 486u, 0x0897B7D4u, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B7D4u) goto L_0897B7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B7D4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6945,26 +7411,26 @@ L_0897B7E8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B7F4: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B7FC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B804: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B80C: @@ -6976,8 +7442,8 @@ L_0897B81C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B828: @@ -7012,8 +7478,8 @@ L_0897B828: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(228), std::bit_cast(aot_fpr_12)); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(234), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B8A4: @@ -7022,18 +7488,57 @@ L_0897B8A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x0897B8B8u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 497u, 0x0897B8B8u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B8B8u) goto L_0897B8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B8B8: ctx.gpr[31] = (0x0897B8C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 498u, 0x0897B8C0u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B8C0u) goto L_0897B8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B8C0: ctx.gpr[31] = (0x0897B8C8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 499u, 0x0897B8C8u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B8C8u) goto L_0897B8C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B8C8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16896))); ctx.gpr[31] = (0x0897B8D4u); @@ -7042,15 +7547,28 @@ L_0897B8C8: AOT_REGCACHE_SYNC_OUT(); return; L_0897B8D4: ctx.gpr[31] = (0x0897B8DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 501u, 0x0897B8DCu, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B8DCu) goto L_0897B8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B8DC: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897B8EC: @@ -7077,8 +7595,21 @@ L_0897B8EC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(40), aot_run_words); } ctx.gpr[31] = (0x0897B940u); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 503u, 0x0897B940u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B940u) goto L_0897B940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B940: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -7097,8 +7628,21 @@ L_0897B954: L_0897B958: ctx.gpr[31] = (0x0897B960u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 507u, 0x0897B960u, 0x0880D0D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 289u, 0x0880D0D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897B960u) goto L_0897B960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897B960: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (ctx.gpr[17] != 0u) { @@ -7174,8 +7718,21 @@ L_0897BA04: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x0897BA14u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 518u, 0x0897BA14u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BA14u) goto L_0897BA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BA14: ctx.gpr[31] = (0x0897BA1Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7183,8 +7740,21 @@ L_0897BA14: L_0897BA1C: ctx.gpr[31] = (0x0897BA24u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 520u, 0x0897BA24u, 0x08AC6170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 563u, 0x08AC6170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BA24u) goto L_0897BA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BA24: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -7231,8 +7801,21 @@ L_0897BA78: goto L_0897BA7C; L_0897BA7C: ctx.gpr[31] = (0x0897BA84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 528u, 0x0897BA84u, 0x089C71A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 732u, 0x089C71A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BA84u) goto L_0897BA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BA84: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -7272,8 +7855,21 @@ L_0897BABC: goto L_0897BAC0; L_0897BAC0: ctx.gpr[31] = (0x0897BAC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 536u, 0x0897BAC8u, 0x089C71A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 732u, 0x089C71A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BAC8u) goto L_0897BAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BAC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7292,8 +7888,21 @@ L_0897BADC: goto L_0897BAE0; L_0897BAE0: ctx.gpr[31] = (0x0897BAE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 540u, 0x0897BAE8u, 0x089C718Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 729u, 0x089C718Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BAE8u) goto L_0897BAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BAE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7312,8 +7921,21 @@ L_0897BAFC: goto L_0897BB00; L_0897BB00: ctx.gpr[31] = (0x0897BB08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 544u, 0x0897BB08u, 0x089C71A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 732u, 0x089C71A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BB08u) goto L_0897BB08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BB08: aot_gpr_4 = (aot_gpr_2 << 3u); aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); @@ -7321,8 +7943,21 @@ L_0897BB08: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0897BB20u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 545u, 0x0897BB20u, 0x0880D928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 378u, 0x0880D928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BB20u) goto L_0897BB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BB20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7340,8 +7975,21 @@ L_0897BB34: goto L_0897BB38; L_0897BB38: ctx.gpr[31] = (0x0897BB40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 549u, 0x0897BB40u, 0x089C7194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 730u, 0x089C7194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BB40u) goto L_0897BB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BB40: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7397,8 +8045,21 @@ L_0897BB7C: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x0897BBBCu); ctx.gpr[10] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 555u, 0x0897BBBCu, 0x08813B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 989u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 989u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 989u, 0x08813B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BBBCu) goto L_0897BBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BBBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7415,8 +8076,21 @@ L_0897BBC4: } ctx.gpr[31] = (0x0897BBD8u); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 557u, 0x0897BBD8u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BBD8u) goto L_0897BBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BBD8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -7435,13 +8109,39 @@ L_0897BBEC: L_0897BBF0: ctx.gpr[31] = (0x0897BBF8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 561u, 0x0897BBF8u, 0x08810A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 151u, 0x08810A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BBF8u) goto L_0897BBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BBF8: ctx.gpr[31] = (0x0897BC00u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 562u, 0x0897BC00u, 0x0897DF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 532u, 0x0897DF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BC00u) goto L_0897BC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BC00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7459,8 +8159,21 @@ L_0897BC14: goto L_0897BC18; L_0897BC18: ctx.gpr[31] = (0x0897BC20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 566u, 0x0897BC20u, 0x089C6DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 642u, 0x089C6DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BC20u) goto L_0897BC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BC20: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7471,8 +8184,21 @@ L_0897BC20: L_0897BC28: ctx.gpr[31] = (0x0897BC30u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 568u, 0x0897BC30u, 0x0897E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 624u, 0x0897E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BC30u) goto L_0897BC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BC30: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -7491,8 +8217,21 @@ L_0897BC44: L_0897BC48: ctx.gpr[31] = (0x0897BC50u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 572u, 0x0897BC50u, 0x0880D228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 299u, 0x0880D228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BC50u) goto L_0897BC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BC50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29552))); aot_gpr_5 = (50944u << 16u); @@ -7511,8 +8250,8 @@ L_0897BC50: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897BC88: @@ -7530,14 +8269,14 @@ L_0897BC88: aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; jump_target = ctx.gpr[31]; ctx.fpr[0] = ctx.fpr[0] - aot_fpr_12; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897BCC0: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897BCC8: @@ -7594,8 +8333,21 @@ L_0897BD74: aot_gpr_5 = (aot_gpr_2 | 0u); ctx.gpr[31] = (0x0897BD84u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 578u, 0x0897BD84u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BD84u) goto L_0897BD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BD84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 1u)); @@ -7639,8 +8391,21 @@ L_0897BE04: aot_gpr_5 = (aot_gpr_2 | 0u); ctx.gpr[31] = (0x0897BE14u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 581u, 0x0897BE14u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BE14u) goto L_0897BE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BE14: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -7652,8 +8417,8 @@ L_0897BE14: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897BE30: @@ -7662,8 +8427,21 @@ L_0897BE30: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(476), aot_run_words); } ctx.gpr[31] = (0x0897BE7Cu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 583u, 0x0897BE7Cu, 0x08AC6170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 563u, 0x08AC6170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BE7Cu) goto L_0897BE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BE7C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7693,8 +8471,21 @@ L_0897BEA8: L_0897BEB0: ctx.gpr[31] = (0x0897BEB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 587u, 0x0897BEB8u, 0x0880D0D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 289u, 0x0880D0D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BEB8u) goto L_0897BEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BEB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -7808,8 +8599,21 @@ L_0897BF60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x0897BFC4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 603u, 0x0897BFC4u, 0x0880ED24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 605u, 0x0880ED24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BFC4u) goto L_0897BFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BFC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -7829,8 +8633,21 @@ L_0897BFDC: aot_gpr_5 = (ctx.gpr[28] + static_cast(6612)); ctx.gpr[31] = (0x0897BFECu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0093->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0093_entry, 607u, 0x0897BFECu, 0x0880EE6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 610u, 0x0880EE6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897BFECu) goto L_0897BFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897BFEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { diff --git a/profiles/vcs/generated/generated_unit_0094.cpp b/profiles/vcs/generated/generated_unit_0094.cpp index 8c648c4..ae5fb32 100644 --- a/profiles/vcs/generated/generated_unit_0094.cpp +++ b/profiles/vcs/generated/generated_unit_0094.cpp @@ -1070,6 +1070,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0897C000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1106,8 +1130,21 @@ L_0897C004: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x0897C028u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 3u, 0x0897C028u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C028u) goto L_0897C028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C028: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1117,8 +1154,21 @@ L_0897C028: } L_0897C030: aot_gpr_31 = (0x0897C038u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 5u, 0x0897C038u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C038u) goto L_0897C038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C038: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1219,8 +1269,21 @@ L_0897C0A0: aot_gpr_6 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x0897C0C4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 15u, 0x0897C0C4u, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C0C4u) goto L_0897C0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C0C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -1239,8 +1302,21 @@ L_0897C0DC: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0897C0E8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 19u, 0x0897C0E8u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C0E8u) goto L_0897C0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C0E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_26)); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_26)); @@ -1293,8 +1369,21 @@ L_0897C154: aot_fpr_12 = ctx.fpr[20] / aot_fpr_12; aot_gpr_31 = (0x0897C168u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 24u, 0x0897C168u, 0x0897BC88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 573u, 0x0897BC88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C168u) goto L_0897C168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C168: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -1365,8 +1454,21 @@ L_0897C1B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(144), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0897C218u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(148), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 32u, 0x0897C218u, 0x0880ED24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 605u, 0x0880ED24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C218u) goto L_0897C218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C218: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -1386,8 +1488,21 @@ L_0897C230: aot_gpr_5 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x0897C240u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 36u, 0x0897C240u, 0x0880EE6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 610u, 0x0880EE6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C240u) goto L_0897C240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C240: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -1464,8 +1579,21 @@ L_0897C338: aot_gpr_6 = (aot_gpr_29 + static_cast(184)); aot_gpr_31 = (0x0897C34Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 39u, 0x0897C34Cu, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C34Cu) goto L_0897C34C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C34C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -1484,8 +1612,21 @@ L_0897C364: aot_gpr_5 = (aot_gpr_29 + static_cast(200)); aot_gpr_31 = (0x0897C370u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 43u, 0x0897C370u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C370u) goto L_0897C370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C370: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 1u)); @@ -1545,8 +1686,21 @@ L_0897C434: L_0897C43C: aot_gpr_31 = (0x0897C444u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 46u, 0x0897C444u, 0x0898BE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1028u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1028u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1028u, 0x0898BE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C444u) goto L_0897C444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C444: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1571,8 +1725,21 @@ L_0897C460: L_0897C464: aot_gpr_31 = (0x0897C46Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 51u, 0x0897C46Cu, 0x089C6DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 641u, 0x089C6DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C46Cu) goto L_0897C46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C46C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -1590,8 +1757,21 @@ L_0897C480: L_0897C484: aot_gpr_31 = (0x0897C48Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 55u, 0x0897C48Cu, 0x089C6DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 643u, 0x089C6DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C48Cu) goto L_0897C48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C48C: aot_gpr_31 = (0x0897C494u); aot_gpr_4 = (0u | 0u); @@ -1644,8 +1824,21 @@ L_0897C4CC: L_0897C4D4: aot_gpr_31 = (0x0897C4DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 64u, 0x0897C4DCu, 0x089C6DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 642u, 0x089C6DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C4DCu) goto L_0897C4DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C4DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1689,15 +1882,41 @@ L_0897C510: L_0897C518: aot_gpr_31 = (0x0897C520u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 72u, 0x0897C520u, 0x089C6DCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 640u, 0x089C6DCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C520u) goto L_0897C520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C520: aot_gpr_5 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x0897C530u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 73u, 0x0897C530u, 0x089C6DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 641u, 0x089C6DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C530u) goto L_0897C530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C530: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1722,8 +1941,21 @@ L_0897C54C: L_0897C550: aot_gpr_31 = (0x0897C558u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 78u, 0x0897C558u, 0x089C6DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 643u, 0x089C6DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C558u) goto L_0897C558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C558: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1739,8 +1971,21 @@ L_0897C564: L_0897C56C: aot_gpr_31 = (0x0897C574u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 81u, 0x0897C574u, 0x089C6DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 642u, 0x089C6DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C574u) goto L_0897C574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C574: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1756,8 +2001,21 @@ L_0897C57C: L_0897C584: aot_gpr_31 = (0x0897C58Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 84u, 0x0897C58Cu, 0x0898DA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 591u, 0x0898DA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C58Cu) goto L_0897C58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C58C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1773,8 +2031,21 @@ L_0897C594: L_0897C59C: aot_gpr_31 = (0x0897C5A4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 87u, 0x0897C5A4u, 0x0898BD7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1008u, 0x0898BD7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C5A4u) goto L_0897C5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C5A4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1790,8 +2061,21 @@ L_0897C5AC: L_0897C5B4: aot_gpr_31 = (0x0897C5BCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 90u, 0x0897C5BCu, 0x0898DA58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 598u, 0x0898DA58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C5BCu) goto L_0897C5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C5BC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1807,8 +2091,21 @@ L_0897C5C4: L_0897C5CC: aot_gpr_31 = (0x0897C5D4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 93u, 0x0897C5D4u, 0x0898BDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1018u, 0x0898BDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C5D4u) goto L_0897C5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C5D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1853,15 +2150,41 @@ L_0897C60C: L_0897C614: aot_gpr_31 = (0x0897C61Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 101u, 0x0897C61Cu, 0x089C7194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 730u, 0x089C7194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C61Cu) goto L_0897C61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C61C: aot_gpr_5 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x0897C62Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 102u, 0x0897C62Cu, 0x089C71A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 731u, 0x089C71A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C62Cu) goto L_0897C62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C62C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1884,8 +2207,21 @@ L_0897C640: L_0897C648: aot_gpr_31 = (0x0897C650u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 106u, 0x0897C650u, 0x089C71A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 732u, 0x089C71A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C650u) goto L_0897C650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C650: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0897C65Cu); @@ -1895,8 +2231,21 @@ L_0897C650: L_0897C65C: aot_gpr_31 = (0x0897C664u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 108u, 0x0897C664u, 0x0898DA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 591u, 0x0898DA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C664u) goto L_0897C664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C664: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1912,8 +2261,21 @@ L_0897C66C: L_0897C674: aot_gpr_31 = (0x0897C67Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 111u, 0x0897C67Cu, 0x0898BD7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1008u, 0x0898BD7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C67Cu) goto L_0897C67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C67C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1953,8 +2315,21 @@ L_0897C6B4: L_0897C6B8: aot_gpr_31 = (0x0897C6C0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 118u, 0x0897C6C0u, 0x089C71B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 733u, 0x089C71B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C6C0u) goto L_0897C6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C6C0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-10001))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1971,8 +2346,21 @@ L_0897C6CC: L_0897C6D4: aot_gpr_31 = (0x0897C6DCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 121u, 0x0897C6DCu, 0x0898D9A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 584u, 0x0898D9A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C6DCu) goto L_0897C6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C6DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1988,8 +2376,21 @@ L_0897C6E4: L_0897C6EC: aot_gpr_31 = (0x0897C6F4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 124u, 0x0897C6F4u, 0x0898BD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 998u, 0x0898BD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C6F4u) goto L_0897C6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C6F4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2005,8 +2406,21 @@ L_0897C6FC: L_0897C704: aot_gpr_31 = (0x0897C70Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 127u, 0x0897C70Cu, 0x0898D950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 577u, 0x0898D950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C70Cu) goto L_0897C70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C70C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2022,8 +2436,21 @@ L_0897C714: L_0897C71C: aot_gpr_31 = (0x0897C724u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 130u, 0x0897C724u, 0x0898BCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 988u, 0x0898BCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C724u) goto L_0897C724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C724: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2087,8 +2514,21 @@ L_0897C778: aot_gpr_5 = (0u | 170u); aot_gpr_31 = (0x0897C788u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 140u, 0x0897C788u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C788u) goto L_0897C788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C788: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2104,8 +2544,21 @@ L_0897C794: L_0897C79C: aot_gpr_31 = (0x0897C7A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 143u, 0x0897C7A4u, 0x089C6DECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 644u, 0x089C6DECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C7A4u) goto L_0897C7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C7A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2130,8 +2583,21 @@ L_0897C7C0: L_0897C7C4: aot_gpr_31 = (0x0897C7CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 148u, 0x0897C7CCu, 0x089C6DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 645u, 0x089C6DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C7CCu) goto L_0897C7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C7CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2161,14 +2627,40 @@ L_0897C7EC: L_0897C7F4: aot_gpr_31 = (0x0897C7FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 154u, 0x0897C7FCu, 0x089C7164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 724u, 0x089C7164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C7FCu) goto L_0897C7FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C7FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0897C808u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 155u, 0x0897C808u, 0x0880DC1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 412u, 0x0880DC1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C808u) goto L_0897C808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C808: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -2186,8 +2678,21 @@ L_0897C81C: L_0897C820: aot_gpr_31 = (0x0897C828u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 159u, 0x0897C828u, 0x089C716Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 725u, 0x089C716Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C828u) goto L_0897C828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C828: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2236,8 +2741,21 @@ L_0897C848: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(240), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0897C8B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(244), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 163u, 0x0897C8B0u, 0x0880ED24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 605u, 0x0880ED24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C8B0u) goto L_0897C8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C8B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2257,8 +2775,21 @@ L_0897C8C8: aot_gpr_5 = (aot_gpr_29 + static_cast(280)); aot_gpr_31 = (0x0897C8D8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 167u, 0x0897C8D8u, 0x0880EE6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 610u, 0x0880EE6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C8D8u) goto L_0897C8D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C8D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -2280,8 +2811,21 @@ L_0897C8F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(244), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0897C908u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 171u, 0x0897C908u, 0x089C7150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 723u, 0x089C7150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C908u) goto L_0897C908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C908: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -2316,14 +2860,40 @@ L_0897C930: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(256), aot_run_words); } aot_gpr_31 = (0x0897C950u); aot_gpr_5 = (aot_gpr_29 + static_cast(256)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 177u, 0x0897C950u, 0x0880DE38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 429u, 0x0880DE38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C950u) goto L_0897C950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C950: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0897C95Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 178u, 0x0897C95Cu, 0x089C716Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 725u, 0x089C716Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C95Cu) goto L_0897C95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C95C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2339,8 +2909,21 @@ L_0897C968: L_0897C970: aot_gpr_31 = (0x0897C978u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 181u, 0x0897C978u, 0x089C7164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 724u, 0x089C7164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C978u) goto L_0897C978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C978: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2365,8 +2948,21 @@ L_0897C994: L_0897C998: aot_gpr_31 = (0x0897C9A0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 186u, 0x0897C9A0u, 0x089C6DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 645u, 0x089C6DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897C9A0u) goto L_0897C9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897C9A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(472), std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0897C9ACu); @@ -2475,8 +3071,21 @@ L_0897CA2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(288), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0897CA94u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(292), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 198u, 0x0897CA94u, 0x0880ED24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 605u, 0x0880ED24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897CA94u) goto L_0897CA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897CA94: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); @@ -2620,8 +3229,21 @@ L_0897CBB8: aot_gpr_5 = (aot_gpr_29 + static_cast(308)); aot_gpr_31 = (0x0897CBC4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 216u, 0x0897CBC4u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897CBC4u) goto L_0897CBC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897CBC4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_5 = (16128u << 16u); @@ -3024,8 +3646,21 @@ L_0897CED0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(316), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0897CF38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(320), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 261u, 0x0897CF38u, 0x0880ED24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 605u, 0x0880ED24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897CF38u) goto L_0897CF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897CF38: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); @@ -3309,8 +3944,21 @@ L_0897D17C: aot_gpr_5 = (aot_gpr_29 + static_cast(336)); aot_gpr_31 = (0x0897D188u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 295u, 0x0897D188u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D188u) goto L_0897D188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D188: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_5 = (16128u << 16u); @@ -3615,8 +4263,21 @@ L_0897D40C: L_0897D418: aot_gpr_31 = (0x0897D420u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 330u, 0x0897D420u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D420u) goto L_0897D420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D420: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -3631,8 +4292,21 @@ L_0897D428: L_0897D430: aot_gpr_31 = (0x0897D438u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 333u, 0x0897D438u, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D438u) goto L_0897D438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D438: if (static_cast(ctx.gpr[2]) >= 0) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); @@ -3656,8 +4330,21 @@ L_0897D44C: L_0897D454: aot_gpr_31 = (0x0897D45Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 338u, 0x0897D45Cu, 0x089C6DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 642u, 0x089C6DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D45Cu) goto L_0897D45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D45C: if (ctx.gpr[2] != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); @@ -3710,8 +4397,21 @@ L_0897D4AC: L_0897D4B4: aot_gpr_31 = (0x0897D4BCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 346u, 0x0897D4BCu, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D4BCu) goto L_0897D4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D4BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3730,8 +4430,21 @@ L_0897D4C8: L_0897D4D0: aot_gpr_31 = (0x0897D4D8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 350u, 0x0897D4D8u, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D4D8u) goto L_0897D4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D4D8: if (static_cast(ctx.gpr[2]) >= 0) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); @@ -3746,8 +4459,21 @@ L_0897D4E0: L_0897D4E8: aot_gpr_31 = (0x0897D4F0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 353u, 0x0897D4F0u, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D4F0u) goto L_0897D4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D4F0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (15360u << 16u); @@ -3903,8 +4629,21 @@ L_0897D634: L_0897D63C: aot_gpr_31 = (0x0897D644u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 371u, 0x0897D644u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D644u) goto L_0897D644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D644: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -3919,8 +4658,21 @@ L_0897D64C: L_0897D654: aot_gpr_31 = (0x0897D65Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 374u, 0x0897D65Cu, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D65Cu) goto L_0897D65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D65C: if (static_cast(ctx.gpr[2]) <= 0) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); @@ -3944,8 +4696,21 @@ L_0897D670: L_0897D678: aot_gpr_31 = (0x0897D680u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 379u, 0x0897D680u, 0x089C6DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 642u, 0x089C6DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D680u) goto L_0897D680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D680: if (ctx.gpr[2] != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); @@ -3997,8 +4762,21 @@ L_0897D6CC: L_0897D6D4: aot_gpr_31 = (0x0897D6DCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 387u, 0x0897D6DCu, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D6DCu) goto L_0897D6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D6DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4017,8 +4795,21 @@ L_0897D6E8: L_0897D6F0: aot_gpr_31 = (0x0897D6F8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 391u, 0x0897D6F8u, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D6F8u) goto L_0897D6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D6F8: if (static_cast(ctx.gpr[2]) <= 0) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); @@ -4033,8 +4824,21 @@ L_0897D700: L_0897D708: aot_gpr_31 = (0x0897D710u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 394u, 0x0897D710u, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D710u) goto L_0897D710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D710: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (15360u << 16u); @@ -4186,8 +4990,21 @@ L_0897D844: L_0897D84C: aot_gpr_31 = (0x0897D854u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 412u, 0x0897D854u, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D854u) goto L_0897D854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D854: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -4202,8 +5019,21 @@ L_0897D85C: L_0897D864: aot_gpr_31 = (0x0897D86Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 415u, 0x0897D86Cu, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D86Cu) goto L_0897D86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D86C: if (static_cast(ctx.gpr[2]) >= 0) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -4227,8 +5057,21 @@ L_0897D880: L_0897D888: aot_gpr_31 = (0x0897D890u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 420u, 0x0897D890u, 0x089C6DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 642u, 0x089C6DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D890u) goto L_0897D890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D890: if (ctx.gpr[2] != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -4281,8 +5124,21 @@ L_0897D8E0: L_0897D8E8: aot_gpr_31 = (0x0897D8F0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 428u, 0x0897D8F0u, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D8F0u) goto L_0897D8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D8F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4301,8 +5157,21 @@ L_0897D8FC: L_0897D904: aot_gpr_31 = (0x0897D90Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 432u, 0x0897D90Cu, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D90Cu) goto L_0897D90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D90C: if (static_cast(ctx.gpr[2]) >= 0) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); @@ -4317,8 +5186,21 @@ L_0897D914: L_0897D91C: aot_gpr_31 = (0x0897D924u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 435u, 0x0897D924u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897D924u) goto L_0897D924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897D924: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (15360u << 16u); @@ -4474,8 +5356,21 @@ L_0897DA68: L_0897DA70: aot_gpr_31 = (0x0897DA78u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 453u, 0x0897DA78u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DA78u) goto L_0897DA78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DA78: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -4490,8 +5385,21 @@ L_0897DA80: L_0897DA88: aot_gpr_31 = (0x0897DA90u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 456u, 0x0897DA90u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DA90u) goto L_0897DA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DA90: if (static_cast(ctx.gpr[2]) <= 0) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -4515,8 +5423,21 @@ L_0897DAA4: L_0897DAAC: aot_gpr_31 = (0x0897DAB4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 461u, 0x0897DAB4u, 0x089C6DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 642u, 0x089C6DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DAB4u) goto L_0897DAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DAB4: if (ctx.gpr[2] != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -4568,8 +5489,21 @@ L_0897DB00: L_0897DB08: aot_gpr_31 = (0x0897DB10u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 469u, 0x0897DB10u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DB10u) goto L_0897DB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DB10: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4588,8 +5522,21 @@ L_0897DB1C: L_0897DB24: aot_gpr_31 = (0x0897DB2Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 473u, 0x0897DB2Cu, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DB2Cu) goto L_0897DB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DB2C: if (static_cast(ctx.gpr[2]) <= 0) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); @@ -4604,8 +5551,21 @@ L_0897DB34: L_0897DB3C: aot_gpr_31 = (0x0897DB44u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 476u, 0x0897DB44u, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DB44u) goto L_0897DB44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DB44: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (15360u << 16u); @@ -4779,8 +5739,21 @@ L_0897DC98: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x0897DCC4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 496u, 0x0897DCC4u, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DCC4u) goto L_0897DCC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DCC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4802,8 +5775,21 @@ L_0897DCDC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0897DCECu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 500u, 0x0897DCECu, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DCECu) goto L_0897DCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DCEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); @@ -4888,8 +5874,21 @@ L_0897DDAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x0897DDDCu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 508u, 0x0897DDDCu, 0x0880EDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 606u, 0x0880EDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DDDCu) goto L_0897DDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DDDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -4908,8 +5907,21 @@ L_0897DDF4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0897DE00u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 512u, 0x0897DE00u, 0x0880EB64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 577u, 0x0880EB64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DE00u) goto L_0897DE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DE00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); @@ -4983,8 +5995,21 @@ L_0897DEAC: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x0897DEC0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 519u, 0x0897DEC0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DEC0u) goto L_0897DEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DEC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5011,8 +6036,21 @@ L_0897DEDC: L_0897DEE4: aot_gpr_31 = (0x0897DEECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 524u, 0x0897DEECu, 0x0880D228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 299u, 0x0880D228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DEECu) goto L_0897DEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DEEC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(234))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5054,8 +6092,21 @@ L_0897DF20: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0897DF34u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 531u, 0x0897DF34u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DF34u) goto L_0897DF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DF34: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(476), aot_run_words); @@ -5078,8 +6129,8 @@ L_0897DF34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897DF7C: @@ -5114,8 +6165,21 @@ L_0897DFE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x0897DFF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(636), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 535u, 0x0897DFF4u, 0x089C6DCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 640u, 0x089C6DCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897DFF4u) goto L_0897DFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897DFF4: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -5191,8 +6255,21 @@ L_0897E08C: aot_gpr_4 = (aot_gpr_4 | 39322u); aot_gpr_31 = (0x0897E09Cu); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 544u, 0x0897E09Cu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E09Cu) goto L_0897E09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E09C: aot_gpr_4 = (ctx.gpr[17] + static_cast(76)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -5215,8 +6292,21 @@ L_0897E09C: AOT_REGCACHE_SYNC_OUT(); return; L_0897E0E0: aot_gpr_31 = (0x0897E0E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 546u, 0x0897E0E8u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E0E8u) goto L_0897E0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E0E8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5230,8 +6320,21 @@ L_0897E0F4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0897E100u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 548u, 0x0897E100u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E100u) goto L_0897E100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E100: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5255,8 +6358,21 @@ L_0897E11C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(640))); aot_gpr_31 = (0x0897E128u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 553u, 0x0897E128u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E128u) goto L_0897E128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E128: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -5275,8 +6391,21 @@ L_0897E14C: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0897E160u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 555u, 0x0897E160u, 0x08B0C6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 93u, 0x08B0C6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E160u) goto L_0897E160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E160: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5311,8 +6440,21 @@ L_0897E1BC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0897E1CCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 558u, 0x0897E1CCu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E1CCu) goto L_0897E1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E1CC: ctx.gpr[22] = (0u | 43u); ctx.gpr[19] = (0u | 59u); @@ -5384,8 +6526,21 @@ L_0897E23C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0897E268u); ctx.gpr[7] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 570u, 0x0897E268u, 0x088115B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 334u, 0x088115B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E268u) goto L_0897E268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E268: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -5471,8 +6626,21 @@ L_0897E2E8: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0897E2F4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 583u, 0x0897E2F4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E2F4u) goto L_0897E2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E2F4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5496,8 +6664,21 @@ L_0897E30C: L_0897E314: aot_gpr_31 = (0x0897E31Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 588u, 0x0897E31Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E31Cu) goto L_0897E31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E31C: aot_fpr_12 = ctx.fpr[20] - ctx.fpr[24]; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5553,8 +6734,21 @@ L_0897E358: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0897E3C0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 594u, 0x0897E3C0u, 0x0880ED24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 605u, 0x0880ED24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E3C0u) goto L_0897E3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E3C0: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -5577,8 +6771,21 @@ L_0897E3DC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0897E3ECu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 598u, 0x0897E3ECu, 0x0880EE6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 610u, 0x0880EE6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E3ECu) goto L_0897E3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E3EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -5593,8 +6800,21 @@ L_0897E3EC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_31 = (0x0897E420u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 599u, 0x0897E420u, 0x08A8DAA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 313u, 0x08A8DAA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E420u) goto L_0897E420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E420: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5608,8 +6828,21 @@ L_0897E428: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x0897E43Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 601u, 0x0897E43Cu, 0x08A8E3D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 445u, 0x08A8E3D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E43Cu) goto L_0897E43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E43C: aot_gpr_16 = (ctx.gpr[2] | 0u); goto L_0897E440; @@ -5623,14 +6856,40 @@ L_0897E440: L_0897E448: aot_gpr_31 = (0x0897E450u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 604u, 0x0897E450u, 0x08A8D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 292u, 0x08A8D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E450u) goto L_0897E450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E450: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0897E45Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 605u, 0x0897E45Cu, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E45Cu) goto L_0897E45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E45C: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(96))); @@ -5652,8 +6911,21 @@ L_0897E470: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0897E47Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 608u, 0x0897E47Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E47Cu) goto L_0897E47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E47C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5677,14 +6949,40 @@ L_0897E494: L_0897E49C: aot_gpr_31 = (0x0897E4A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 613u, 0x0897E4A4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E4A4u) goto L_0897E4A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E4A4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0897E4B0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 614u, 0x0897E4B0u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E4B0u) goto L_0897E4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E4B0: aot_gpr_16 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(96))); goto L_0897E4B4; @@ -5700,8 +6998,21 @@ L_0897E4BC: L_0897E4C4: aot_gpr_31 = (0x0897E4CCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(84))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 618u, 0x0897E4CCu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E4CCu) goto L_0897E4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E4CC: aot_gpr_31 = (0x0897E4D4u); aot_gpr_4 = (0u | 1u); @@ -5736,8 +7047,21 @@ L_0897E4D4: AOT_REGCACHE_SYNC_OUT(); return; L_0897E534: aot_gpr_31 = (0x0897E53Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 621u, 0x0897E53Cu, 0x08B0C4CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 63u, 0x08B0C4CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E53Cu) goto L_0897E53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E53C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[20])); @@ -5750,8 +7074,21 @@ L_0897E53C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3))); aot_gpr_31 = (0x0897E568u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(579), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 622u, 0x0897E568u, 0x08B0C55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 72u, 0x08B0C55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E568u) goto L_0897E568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E568: aot_fpr_13 = std::bit_cast(ctx.gpr[2]); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); @@ -5765,8 +7102,21 @@ L_0897E568: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_31 = (0x0897E598u); aot_gpr_6 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 623u, 0x0897E598u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E598u) goto L_0897E598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E598: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(644), aot_run_words); @@ -5789,8 +7139,8 @@ L_0897E598: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897E5E0: @@ -5836,8 +7186,21 @@ L_0897E678: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0897E688u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 627u, 0x0897E688u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E688u) goto L_0897E688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E688: ctx.gpr[17] = (0u | 1u); aot_gpr_31 = (0x0897E694u); @@ -5853,8 +7216,21 @@ L_0897E69C: aot_gpr_4 = (aot_gpr_4 | 39322u); aot_gpr_31 = (0x0897E6ACu); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 630u, 0x0897E6ACu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E6ACu) goto L_0897E6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E6AC: ctx.gpr[18] = (aot_gpr_16 + static_cast(76)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -5963,8 +7339,21 @@ L_0897E7D8: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x0897E7E4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 638u, 0x0897E7E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E7E4u) goto L_0897E7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E7E4: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -5988,8 +7377,21 @@ L_0897E7FC: L_0897E804: aot_gpr_31 = (0x0897E80Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 643u, 0x0897E80Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E80Cu) goto L_0897E80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E80C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -6015,8 +7417,21 @@ L_0897E830: L_0897E834: aot_gpr_31 = (0x0897E83Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 648u, 0x0897E83Cu, 0x089C71A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 732u, 0x089C71A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E83Cu) goto L_0897E83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E83C: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -6038,8 +7453,21 @@ L_0897E850: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x0897E85Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 651u, 0x0897E85Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E85Cu) goto L_0897E85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E85C: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -6063,8 +7491,21 @@ L_0897E878: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0897E884u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 656u, 0x0897E884u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E884u) goto L_0897E884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E884: aot_gpr_5 = (0u | 313u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6090,8 +7531,21 @@ L_0897E8A4: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x0897E8B0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 660u, 0x0897E8B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E8B0u) goto L_0897E8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E8B0: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -6129,8 +7583,21 @@ L_0897E8E0: L_0897E8E4: aot_gpr_31 = (0x0897E8ECu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 668u, 0x0897E8ECu, 0x089C718Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 729u, 0x089C718Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E8ECu) goto L_0897E8EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E8EC: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = ctx.gpr[22] != 0u; @@ -6150,16 +7617,42 @@ L_0897E900: L_0897E904: aot_gpr_31 = (0x0897E90Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 672u, 0x0897E90Cu, 0x089C71A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 732u, 0x089C71A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E90Cu) goto L_0897E90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E90C: aot_gpr_4 = (ctx.gpr[2] << 3u); aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x0897E920u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 673u, 0x0897E920u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897E920u) goto L_0897E920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897E920: aot_gpr_5 = (0u | 313u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6264,8 +7757,21 @@ L_0897EA1C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0897EA28u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 683u, 0x0897EA28u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EA28u) goto L_0897EA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EA28: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6289,8 +7795,21 @@ L_0897EA40: L_0897EA48: aot_gpr_31 = (0x0897EA50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 688u, 0x0897EA50u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EA50u) goto L_0897EA50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EA50: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -6316,8 +7835,21 @@ L_0897EA74: L_0897EA78: aot_gpr_31 = (0x0897EA80u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 693u, 0x0897EA80u, 0x089C7194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 730u, 0x089C7194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EA80u) goto L_0897EA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EA80: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); @@ -6338,8 +7870,21 @@ L_0897EA90: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0897EA9Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 696u, 0x0897EA9Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EA9Cu) goto L_0897EA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EA9C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6364,8 +7909,21 @@ L_0897EAB4: L_0897EAC0: aot_gpr_31 = (0x0897EAC8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 701u, 0x0897EAC8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EAC8u) goto L_0897EAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EAC8: aot_gpr_5 = (0u | 313u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6392,8 +7950,21 @@ L_0897EAE8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0897EAF4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 705u, 0x0897EAF4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EAF4u) goto L_0897EAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EAF4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6417,8 +7988,21 @@ L_0897EB10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0897EB1Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 710u, 0x0897EB1Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EB1Cu) goto L_0897EB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EB1C: aot_gpr_5 = (0u | 313u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6441,8 +8025,8 @@ L_0897EB2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897EB58: @@ -6516,8 +8100,8 @@ L_0897EBC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897EBD8: @@ -6525,14 +8109,27 @@ L_0897EBD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0897EBE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 723u, 0x0897EBE8u, 0x08B6CE28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 162u, 0x08B6CE28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EBE8u) goto L_0897EBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EBE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897EBF4: @@ -6541,14 +8138,27 @@ L_0897EBF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0897EC08u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 725u, 0x0897EC08u, 0x08B6CEE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 170u, 0x08B6CEE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EC08u) goto L_0897EC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EC08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897EC14: @@ -6564,8 +8174,21 @@ L_0897EC14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0897EC44u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 727u, 0x0897EC44u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EC44u) goto L_0897EC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EC44: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -6593,8 +8216,21 @@ L_0897EC7C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0897EC88u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 730u, 0x0897EC88u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EC88u) goto L_0897EC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EC88: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0897EC8C; @@ -6606,8 +8242,21 @@ L_0897EC8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0897ECA8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 732u, 0x0897ECA8u, 0x08A94308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 39u, 0x08A94308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897ECA8u) goto L_0897ECA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897ECA8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -6620,8 +8269,8 @@ L_0897ECA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897ECC8: @@ -6637,8 +8286,21 @@ L_0897ECC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0897ECF8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 734u, 0x0897ECF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897ECF8u) goto L_0897ECF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897ECF8: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -6666,8 +8328,21 @@ L_0897ED30: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0897ED3Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 737u, 0x0897ED3Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897ED3Cu) goto L_0897ED3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897ED3C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0897ED40; @@ -6679,8 +8354,21 @@ L_0897ED40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0897ED5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 739u, 0x0897ED5Cu, 0x08A94348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 40u, 0x08A94348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897ED5Cu) goto L_0897ED5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897ED5C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -6693,8 +8381,8 @@ L_0897ED5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897ED7C: @@ -6710,8 +8398,21 @@ L_0897ED7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0897EDACu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 741u, 0x0897EDACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EDACu) goto L_0897EDAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EDAC: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -6739,8 +8440,21 @@ L_0897EDE4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0897EDF0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 744u, 0x0897EDF0u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EDF0u) goto L_0897EDF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EDF0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0897EDF4; @@ -6752,8 +8466,21 @@ L_0897EDF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x0897EE10u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 746u, 0x0897EE10u, 0x08A94984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 99u, 0x08A94984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EE10u) goto L_0897EE10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EE10: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -6766,8 +8493,8 @@ L_0897EE10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897EE30: @@ -6796,8 +8523,21 @@ L_0897EE6C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0897EE7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 750u, 0x0897EE7Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EE7Cu) goto L_0897EE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EE7C: aot_gpr_31 = (0x0897EE84u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-16744)); @@ -6806,8 +8546,21 @@ L_0897EE7C: L_0897EE84: aot_gpr_31 = (0x0897EE8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 752u, 0x0897EE8Cu, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EE8Cu) goto L_0897EE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EE8C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6819,8 +8572,21 @@ L_0897EE94: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x0897EEA0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-8752), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 754u, 0x0897EEA0u, 0x0898B448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 829u, 0x0898B448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EEA0u) goto L_0897EEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EEA0: aot_gpr_31 = (0x0897EEA8u); aot_gpr_4 = (0u | 0u); @@ -6860,8 +8626,21 @@ L_0897EECC: } L_0897EED4: aot_gpr_31 = (0x0897EEDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 761u, 0x0897EEDCu, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EEDCu) goto L_0897EEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EEDC: aot_gpr_31 = (0x0897EEE4u); aot_gpr_4 = (0u | 0u); @@ -6930,8 +8709,21 @@ L_0897EF34: L_0897EF58: aot_gpr_31 = (0x0897EF60u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 772u, 0x0897EF60u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EF60u) goto L_0897EF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EF60: aot_gpr_5 = (16153u << 16u); aot_gpr_5 = (aot_gpr_5 | 39322u); @@ -6950,8 +8742,21 @@ L_0897EF80: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0897EF8Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 775u, 0x0897EF8Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897EF8Cu) goto L_0897EF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897EF8C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -7014,8 +8819,21 @@ L_0897EFF4: L_0897F000: aot_gpr_31 = (0x0897F008u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 784u, 0x0897F008u, 0x08A1BF34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 616u, 0x08A1BF34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F008u) goto L_0897F008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F008: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); goto L_0897F00C; @@ -7029,8 +8847,21 @@ L_0897F014: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0897F020u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 787u, 0x0897F020u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F020u) goto L_0897F020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F020: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7085,8 +8916,8 @@ L_0897F07C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F0A0: @@ -7153,8 +8984,21 @@ L_0897F138: L_0897F148: aot_gpr_31 = (0x0897F150u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 800u, 0x0897F150u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F150u) goto L_0897F150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F150: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[24])); aot_gpr_4 = (0u | 220u); @@ -7207,8 +9051,8 @@ L_0897F1BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F1D8: @@ -7264,8 +9108,21 @@ L_0897F244: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x0897F25Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 810u, 0x0897F25Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F25Cu) goto L_0897F25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F25C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -7478,8 +9335,8 @@ L_0897F39C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F3CC: @@ -7509,8 +9366,21 @@ L_0897F42C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x0897F438u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 841u, 0x0897F438u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F438u) goto L_0897F438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F438: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7534,8 +9404,21 @@ L_0897F450: L_0897F458: aot_gpr_31 = (0x0897F460u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 846u, 0x0897F460u, 0x089F6818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 492u, 0x089F6818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F460u) goto L_0897F460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F460: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9236))); aot_gpr_5 = (0u | 48u); @@ -7623,8 +9506,21 @@ L_0897F524: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0897F530u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 855u, 0x0897F530u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F530u) goto L_0897F530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F530: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7677,8 +9573,21 @@ L_0897F588: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0897F594u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 863u, 0x0897F594u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F594u) goto L_0897F594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F594: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7702,8 +9611,21 @@ L_0897F5AC: L_0897F5B4: aot_gpr_31 = (0x0897F5BCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 868u, 0x0897F5BCu, 0x089F64FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 441u, 0x089F64FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F5BCu) goto L_0897F5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F5BC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7729,12 +9651,38 @@ L_0897F5E0: L_0897F5E8: aot_gpr_31 = (0x0897F5F0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 872u, 0x0897F5F0u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F5F0u) goto L_0897F5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F5F0: aot_gpr_31 = (0x0897F5F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 873u, 0x0897F5F8u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F5F8u) goto L_0897F5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F5F8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -7748,8 +9696,21 @@ L_0897F604: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0897F610u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 875u, 0x0897F610u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F610u) goto L_0897F610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F610: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7773,8 +9734,21 @@ L_0897F62C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0897F638u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 880u, 0x0897F638u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F638u) goto L_0897F638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F638: aot_gpr_4 = (aot_gpr_29 + static_cast(12)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -7791,8 +9765,21 @@ L_0897F654: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x0897F668u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 882u, 0x0897F668u, 0x08B0C6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 93u, 0x08B0C6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F668u) goto L_0897F668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F668: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -7811,8 +9798,21 @@ L_0897F688: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0897F694u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 884u, 0x0897F694u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F694u) goto L_0897F694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F694: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7836,8 +9836,21 @@ L_0897F6B0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0897F6BCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 889u, 0x0897F6BCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897F6BCu) goto L_0897F6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897F6BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), ctx.gpr[2]); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9236))); @@ -7917,8 +9930,8 @@ L_0897F730: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F774: @@ -7981,16 +9994,16 @@ L_0897F7E4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9236), aot_gpr_6); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F7F0: ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-16752))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F7FC: @@ -8002,8 +10015,8 @@ L_0897F80C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F818: @@ -8087,8 +10100,8 @@ L_0897F888: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F89C: @@ -8104,8 +10117,8 @@ L_0897F8B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F8C4: @@ -8124,8 +10137,8 @@ L_0897F8D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F8F8: @@ -8153,8 +10166,8 @@ L_0897F918: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F924: @@ -8202,8 +10215,8 @@ L_0897F960: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897F9B0: @@ -8247,8 +10260,21 @@ L_0897F9F4: aot_gpr_4 = (ctx.gpr[18] - aot_gpr_4); aot_gpr_31 = (0x0897FA30u); aot_gpr_5 = (ctx.gpr[7] - aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 935u, 0x0897FA30u, 0x08B60EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 183u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 183u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 183u, 0x08B60EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FA30u) goto L_0897FA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FA30: aot_gpr_4 = (13702u << 16u); aot_gpr_4 = (aot_gpr_4 | 14269u); @@ -8290,8 +10316,8 @@ L_0897FA60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897FAA8: @@ -8312,8 +10338,21 @@ L_0897FAA8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0897FAFCu); ctx.fpr[20] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 939u, 0x0897FAFCu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FAFCu) goto L_0897FAFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FAFC: ctx.gpr[20] = (2238u << 16u); ctx.gpr[21] = (2236u << 16u); @@ -8333,8 +10372,21 @@ L_0897FB18: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x0897FB2Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 941u, 0x0897FB2Cu, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FB2Cu) goto L_0897FB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FB2C: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_0897FB30; @@ -8347,21 +10399,60 @@ L_0897FB30: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0897FB50u); aot_fpr_14 = ctx.fpr[24] + aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 943u, 0x0897FB50u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FB50u) goto L_0897FB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FB50: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0897FB5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 944u, 0x0897FB5Cu, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FB5Cu) goto L_0897FB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FB5C: ctx.fpr[28] = ctx.fpr[28] + ctx.fpr[0]; aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0897FB6Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_26)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 945u, 0x0897FB6Cu, 0x0885F93Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 916u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 916u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 916u, 0x0885F93Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FB6Cu) goto L_0897FB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FB6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[28])}; @@ -8374,8 +10465,21 @@ L_0897FB6C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(613), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0897FB9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 946u, 0x0897FB9Cu, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FB9Cu) goto L_0897FB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FB9C: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_4)); @@ -8397,12 +10501,38 @@ L_0897FB9C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(613), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0897FBECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 947u, 0x0897FBECu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FBECu) goto L_0897FBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FBEC: aot_gpr_31 = (0x0897FBF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 948u, 0x0897FBF4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FBF4u) goto L_0897FBF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FBF4: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -8411,8 +10541,21 @@ L_0897FBF4: goto L_0897FBFC; L_0897FBFC: aot_gpr_31 = (0x0897FC04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 950u, 0x0897FC04u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FC04u) goto L_0897FC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FC04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[19]); @@ -8482,14 +10625,40 @@ L_0897FC90: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x0897FCA8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 958u, 0x0897FCA8u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FCA8u) goto L_0897FCA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FCA8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x0897FCB4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 959u, 0x0897FCB4u, 0x08A1D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 223u, 0x08A1D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FCB4u) goto L_0897FCB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FCB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8504,8 +10673,21 @@ L_0897FCBC: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x0897FCD4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0094->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0094_entry, 961u, 0x0897FCD4u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0897FCD4u) goto L_0897FCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0897FCD4: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[12]{}; @@ -8525,8 +10707,8 @@ L_0897FCD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897FD10: @@ -8610,8 +10792,8 @@ L_0897FDD4: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(217), static_cast(ctx.gpr[7])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(218), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897FE18: @@ -8623,8 +10805,8 @@ L_0897FE18: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9256), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9260), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897FE38: @@ -8633,8 +10815,8 @@ L_0897FE38: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897FE60: @@ -8683,8 +10865,8 @@ L_0897FEC0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9264), 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897FECC: @@ -8748,8 +10930,8 @@ L_0897FF28: } L_0897FF38: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0897FF40: diff --git a/profiles/vcs/generated/generated_unit_0095.cpp b/profiles/vcs/generated/generated_unit_0095.cpp index d6063e6..1bde8f2 100644 --- a/profiles/vcs/generated/generated_unit_0095.cpp +++ b/profiles/vcs/generated/generated_unit_0095.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0095[64] = { 458u, 465u, 467u, 470u, 475u, 483u, 495u, 505u, 520u, 524u, 536u, 541u, 553u, 555u, 562u, 574u, 586u, 595u, 597u, 606u, 609u, 610u, 610u, 610u, 610u, 614u, 614u, 628u, 635u, 649u, 661u, 670u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0095[4090] = { + 1u, 2u, 0u, 3u, 0u, 0u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 7u, 8u, 0u, + 9u, 0u, 0u, 10u, 0u, 0u, 11u, 0u, 0u, 0u, 12u, 0u, 13u, 0u, 14u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, + 17u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 20u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 22u, 0u, 23u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 26u, 0u, 27u, 0u, + 28u, 0u, 0u, 29u, 0u, 30u, 0u, 31u, 0u, 32u, 0u, 33u, 0u, 34u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 36u, 0u, 37u, 0u, 38u, 0u, 0u, 39u, 0u, 0u, 40u, + 0u, 0u, 41u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 43u, 0u, 44u, 0u, 0u, 0u, 45u, 0u, 0u, 46u, 0u, 0u, 47u, 0u, 48u, 0u, 0u, 0u, 49u, 0u, 50u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 53u, 0u, 0u, 54u, 0u, 0u, 55u, 56u, + 0u, 57u, 0u, 58u, 0u, 0u, 59u, 0u, 0u, 0u, 60u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 64u, 0u, 65u, 0u, 66u, 0u, 67u, 0u, 68u, 0u, 69u, 0u, 70u, 0u, 71u, 0u, 72u, 0u, 73u, 0u, 74u, 0u, + 75u, 0u, 76u, 0u, 77u, 0u, 78u, 79u, 0u, 80u, 0u, 0u, 81u, 0u, 82u, 0u, 83u, 0u, 0u, 84u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 86u, + 0u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, 90u, 0u, 91u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, + 93u, 0u, 0u, 0u, 94u, 0u, 95u, 0u, 96u, 0u, 97u, 0u, 98u, 0u, 99u, 0u, 0u, 100u, 0u, 101u, 0u, 0u, 0u, 0u, 0u, 102u, 0u, 103u, 0u, 0u, 104u, 0u, + 105u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 107u, 0u, 0u, 108u, 0u, 109u, 0u, 0u, 110u, 0u, 0u, 111u, 0u, 112u, 0u, 113u, 0u, 0u, 114u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 115u, 0u, 0u, 116u, 0u, 0u, 0u, 117u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 119u, 0u, 0u, 0u, 0u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 121u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 0u, 0u, 0u, 123u, 0u, 0u, 0u, 124u, 0u, 125u, 0u, 126u, + 0u, 127u, 128u, 0u, 129u, 0u, 130u, 0u, 0u, 0u, 0u, 131u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 136u, 137u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 138u, 0u, 0u, 139u, 0u, 0u, 0u, 0u, 140u, 0u, 0u, 0u, + 141u, 0u, 142u, 0u, 143u, 0u, 0u, 144u, 0u, 145u, 146u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 147u, 0u, 0u, 0u, 148u, 0u, 0u, 0u, 0u, 149u, 0u, + 150u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 151u, 0u, 0u, 0u, 152u, 0u, 153u, 0u, 0u, 0u, 0u, 154u, 155u, 0u, 0u, 0u, 0u, 156u, 0u, 157u, 0u, 0u, + 0u, 0u, 158u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 160u, 0u, 0u, 161u, 0u, 0u, 0u, 162u, 0u, 163u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 164u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 165u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, 167u, 0u, 0u, 168u, + 0u, 169u, 0u, 0u, 0u, 170u, 0u, 171u, 0u, 0u, 0u, 172u, 0u, 0u, 173u, 0u, 0u, 0u, 174u, 0u, 175u, 0u, 0u, 176u, 0u, 0u, 0u, 0u, 177u, 0u, 178u, 0u, + 0u, 0u, 179u, 0u, 0u, 0u, 180u, 0u, 0u, 181u, 182u, 0u, 0u, 0u, 183u, 0u, 0u, 0u, 0u, 184u, 185u, 0u, 186u, 0u, 187u, 0u, 0u, 0u, 188u, 0u, 0u, 189u, + 0u, 0u, 190u, 0u, 191u, 0u, 0u, 192u, 0u, 193u, 0u, 0u, 0u, 194u, 0u, 195u, 0u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 197u, 0u, 0u, 198u, 0u, 199u, 0u, 200u, + 0u, 0u, 0u, 201u, 0u, 0u, 202u, 0u, 203u, 0u, 0u, 204u, 0u, 205u, 0u, 0u, 206u, 0u, 0u, 0u, 207u, 0u, 0u, 208u, 0u, 0u, 209u, 0u, 210u, 0u, 0u, 0u, + 211u, 0u, 0u, 212u, 0u, 213u, 0u, 0u, 214u, 0u, 215u, 0u, 0u, 0u, 216u, 0u, 0u, 217u, 0u, 218u, 0u, 0u, 219u, 0u, 220u, 0u, 0u, 0u, 0u, 0u, 221u, 0u, + 0u, 222u, 0u, 0u, 223u, 0u, 224u, 0u, 225u, 0u, 0u, 226u, 0u, 0u, 227u, 0u, 228u, 0u, 229u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, + 0u, 0u, 0u, 232u, 233u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 234u, 0u, 235u, 0u, 0u, 0u, 0u, 236u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 237u, 0u, 0u, + 0u, 0u, 0u, 0u, 238u, 239u, 0u, 0u, 240u, 0u, 0u, 241u, 0u, 0u, 0u, 242u, 243u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, + 245u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, 247u, 248u, 249u, 0u, 250u, 0u, 0u, 0u, 0u, 0u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, + 253u, 0u, 0u, 0u, 0u, 254u, 255u, 256u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 259u, 260u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 261u, 0u, 0u, 0u, 262u, 0u, 0u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 264u, 0u, 0u, 0u, 265u, 0u, 0u, 0u, 266u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 268u, 269u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 272u, 0u, 0u, 273u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 275u, 276u, 0u, 0u, 277u, 0u, 0u, 278u, + 0u, 279u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 281u, 0u, 0u, 0u, 282u, 283u, 0u, 0u, 284u, 285u, 0u, 0u, 286u, 287u, 0u, 288u, 0u, 289u, 290u, 0u, 0u, 291u, 0u, 0u, 292u, 0u, 0u, + 0u, 0u, 293u, 294u, 0u, 295u, 0u, 0u, 296u, 0u, 297u, 0u, 0u, 0u, 298u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 301u, 0u, 302u, + 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, 305u, 306u, 0u, 0u, 0u, 0u, 307u, 0u, 308u, 0u, 0u, 309u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 312u, 0u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, 0u, 315u, 0u, 316u, 0u, + 317u, 0u, 0u, 0u, 0u, 0u, 318u, 0u, 0u, 0u, 319u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 322u, 0u, 323u, 324u, 0u, 325u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 327u, 328u, 0u, 0u, 329u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 332u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 338u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, 340u, 0u, 341u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 0u, 346u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, 348u, 0u, 349u, 0u, 350u, 0u, 351u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 354u, 0u, 0u, 0u, 0u, + 0u, 355u, 0u, 0u, 356u, 0u, 357u, 0u, 358u, 0u, 359u, 0u, 360u, 0u, 0u, 0u, 0u, 361u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, + 363u, 0u, 364u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 366u, 367u, 0u, 368u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 370u, 371u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 372u, 373u, 0u, 374u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 376u, 0u, 0u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 378u, 0u, + 379u, 380u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 381u, 382u, 0u, 383u, 0u, 0u, 0u, 0u, 0u, 384u, 385u, 0u, 386u, 0u, 0u, 0u, 387u, 0u, 0u, 0u, 388u, + 0u, 0u, 0u, 0u, 0u, 389u, 390u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 392u, 393u, 0u, 394u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 396u, 0u, 0u, 0u, 0u, 0u, 397u, + 398u, 0u, 399u, 0u, 0u, 0u, 0u, 0u, 400u, 401u, 0u, 402u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 0u, 0u, 405u, 406u, 0u, 407u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 408u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 409u, 0u, 410u, 411u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 412u, 0u, 413u, 414u, 0u, + 415u, 0u, 0u, 0u, 416u, 0u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 420u, 421u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 422u, 0u, 423u, 424u, 0u, 425u, 0u, 426u, 0u, 427u, 0u, 0u, 0u, 428u, 0u, 429u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 431u, 0u, + 432u, 0u, 433u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 434u, 0u, 435u, 0u, 436u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 439u, 0u, + 0u, 440u, 0u, 0u, 441u, 0u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 443u, 0u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 445u, 0u, + 446u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, + 0u, 449u, 0u, 0u, 0u, 450u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 0u, 0u, 0u, 0u, 454u, 0u, 455u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 456u, 457u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 458u, 0u, 459u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 462u, 0u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, 0u, 0u, 464u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, + 0u, 0u, 467u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, 469u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 472u, 0u, 0u, 473u, 0u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 0u, 0u, 476u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 477u, 0u, 478u, 0u, 0u, 479u, 0u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 483u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, 486u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, 489u, 0u, + 0u, 0u, 0u, 490u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 492u, 0u, 0u, 493u, 0u, 494u, 0u, + 0u, 0u, 0u, 495u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 496u, 0u, 497u, 0u, 0u, 0u, 0u, 498u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 499u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 501u, 502u, 0u, 503u, 0u, 0u, 0u, 0u, 0u, 504u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 507u, 0u, 0u, 508u, 0u, 509u, 0u, 0u, 510u, 0u, 511u, 0u, 0u, 512u, + 0u, 0u, 513u, 0u, 514u, 515u, 0u, 516u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 517u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 518u, 0u, 519u, 0u, 0u, 0u, 0u, 0u, + 520u, 0u, 0u, 521u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 523u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 525u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 526u, 0u, 0u, 527u, 0u, 0u, 528u, 0u, 529u, 0u, 0u, 530u, 0u, 531u, 0u, 0u, 532u, 533u, 0u, 534u, 0u, 0u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 0u, 0u, 537u, 0u, 538u, 0u, 0u, 0u, 0u, 539u, 0u, 0u, 0u, 0u, 0u, 540u, + 0u, 0u, 541u, 0u, 0u, 542u, 0u, 0u, 543u, 0u, 0u, 544u, 0u, 0u, 545u, 0u, 0u, 546u, 0u, 0u, 0u, 0u, 0u, 547u, 0u, 0u, 0u, 0u, 0u, 0u, 548u, 0u, + 0u, 0u, 549u, 550u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 552u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 553u, 0u, 0u, 0u, 0u, 0u, 554u, + 0u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, 556u, 0u, 0u, 557u, 0u, 0u, 558u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 559u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 562u, 0u, 563u, 0u, 0u, 564u, 0u, 0u, 565u, 0u, 0u, 566u, 0u, 0u, 567u, 0u, 0u, 568u, 0u, 0u, 569u, 0u, 0u, 0u, 0u, 0u, + 570u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 573u, + 0u, 0u, 574u, 0u, 0u, 575u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 579u, 0u, 0u, 0u, + 0u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, 582u, 0u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 0u, 584u, 0u, 0u, 0u, 0u, 585u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 588u, 0u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, + 0u, 0u, 590u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 591u, 0u, 592u, 0u, 0u, 0u, 0u, 0u, 0u, 593u, 0u, 0u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 596u, 0u, 0u, + 0u, 0u, 597u, 0u, 0u, 0u, 0u, 0u, 0u, 598u, 0u, 599u, 0u, 0u, 600u, 0u, 0u, 601u, 0u, 0u, 602u, 0u, 0u, 603u, 0u, 0u, 604u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 606u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 607u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 608u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 609u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 610u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 611u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 612u, 0u, 613u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 614u, 0u, 0u, 615u, 0u, 0u, 616u, 0u, 0u, 617u, 0u, 0u, + 618u, 0u, 0u, 619u, 0u, 0u, 620u, 0u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 623u, 0u, 624u, 0u, 0u, 0u, 625u, 0u, 626u, 0u, 0u, 627u, + 0u, 0u, 628u, 0u, 0u, 629u, 0u, 0u, 630u, 0u, 0u, 631u, 0u, 0u, 632u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 633u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 634u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 635u, 0u, 636u, 0u, 637u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 639u, 0u, 0u, 0u, 0u, 0u, 640u, + 0u, 641u, 0u, 642u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 643u, 0u, 0u, 0u, 0u, 644u, 0u, 645u, 0u, 0u, 0u, 0u, 0u, 646u, 0u, 0u, 0u, 647u, 0u, 648u, + 0u, 649u, 0u, 0u, 650u, 0u, 651u, 0u, 652u, 0u, 0u, 0u, 0u, 0u, 653u, 0u, 0u, 0u, 654u, 0u, 655u, 0u, 656u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 657u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 658u, 0u, 659u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 660u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 661u, 0u, 0u, 0u, 0u, 662u, 0u, 663u, 0u, 664u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 665u, 0u, 0u, 666u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 667u, 0u, 0u, 668u, 0u, 669u, + 0u, 0u, 670u, 0u, 0u, 671u, 0u, 672u, 673u, 0u, 0u, 0u, 0u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 675u, 0u, 676u, 0u, 0u, 677u, 0u, 0u, 0u, 0u, 678u, 0u, 0u, 679u, 0u, 0u, 680u, +}; void recomp_unit_0095_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,6,31,2 fprs=12,13,14,15 gpr_occ=3289 fpr_occ=898 gpr_total=5546 fpr_total=1440 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08980000u; - entry_id = 0u; - if (entry_delta < 16360u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0095[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0095[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16360u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0095[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08980000; @@ -758,6 +881,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08980000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -845,8 +992,8 @@ L_08980074: goto L_08980078; L_08980078: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980080: @@ -886,8 +1033,8 @@ L_089800B0: goto L_089800B8; L_089800B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089800C0: @@ -989,8 +1136,8 @@ L_08980148: L_0898015C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980164: @@ -1014,8 +1161,8 @@ L_0898018C: goto L_08980194; L_08980194: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898019C: @@ -1052,8 +1199,21 @@ L_089801E8: L_089801F0: aot_gpr_31 = (0x089801F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 27u, 0x089801F8u, 0x089902B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 52u, 0x089902B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089801F8u) goto L_089801F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089801F8: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_gpr_2 | 0u); @@ -1081,8 +1241,21 @@ L_0898020C: L_08980214: aot_gpr_31 = (0x0898021Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 31u, 0x0898021Cu, 0x08990334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 60u, 0x08990334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898021Cu) goto L_0898021C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898021C: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_gpr_2 | 0u); @@ -1094,8 +1267,21 @@ L_0898021C: L_08980224: aot_gpr_31 = (0x0898022Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 33u, 0x0898022Cu, 0x089902F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 56u, 0x089902F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898022Cu) goto L_0898022C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898022C: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_gpr_2 | 0u); @@ -1109,8 +1295,21 @@ L_08980234: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x08980244u); aot_gpr_4 = (aot_gpr_4 + static_cast(-6992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 35u, 0x08980244u, 0x0897FE38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 968u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 968u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 968u, 0x0897FE38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980244u) goto L_08980244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980244: ctx.gpr[7] = (0u | 0u); aot_gpr_4 = (0u | 0u); @@ -1336,8 +1535,8 @@ L_089803A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089803D0: @@ -1365,8 +1564,8 @@ L_08980408: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-6936))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980420: @@ -1503,8 +1702,21 @@ L_089804A4: ctx.gpr[20] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089804B0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 81u, 0x089804B0u, 0x089051ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 241u, 0x089051ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089804B0u) goto L_089804B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089804B0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1561,8 +1773,21 @@ L_0898050C: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08980520u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 88u, 0x08980520u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980520u) goto L_08980520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980520: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (2238u << 16u); @@ -1613,15 +1838,41 @@ L_08980568: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08980580u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 93u, 0x08980580u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980580u) goto L_08980580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980580: aot_gpr_4 = (16736u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08980590u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 94u, 0x08980590u, 0x08AB437Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 62u, 0x08AB437Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980590u) goto L_08980590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980590: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (0u | 4u); @@ -1680,8 +1931,21 @@ L_089805CC: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089805E4u); ctx.gpr[8] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 102u, 0x089805E4u, 0x08AB3BE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 958u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 958u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 958u, 0x08AB3BE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089805E4u) goto L_089805E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089805E4: aot_gpr_31 = (0x089805ECu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089805ECu) goto L_089805EC; @@ -1690,8 +1954,21 @@ L_089805EC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089805F8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 104u, 0x089805F8u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089805F8u) goto L_089805F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089805F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1710,8 +1987,21 @@ L_08980608: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08980620u); ctx.gpr[8] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 107u, 0x08980620u, 0x08AB3B88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 954u, 0x08AB3B88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980620u) goto L_08980620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980620: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[17] != aot_gpr_4; @@ -1728,8 +2018,21 @@ L_08980634: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08980640u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 110u, 0x08980640u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980640u) goto L_08980640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980640: aot_gpr_4 = (0u | 12u); { const bool branch_taken = ctx.gpr[17] == aot_gpr_4; @@ -1754,8 +2057,21 @@ L_0898065C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08980668u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 114u, 0x08980668u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980668u) goto L_08980668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980668: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -1768,16 +2084,16 @@ L_08980668: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980688: aot_gpr_2 = (2200u << 16u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 + static_cast(1672)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980694: @@ -1789,8 +2105,8 @@ L_089806A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089806B0: @@ -1807,8 +2123,8 @@ L_089806C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089806DC: @@ -1839,8 +2155,8 @@ L_08980708: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980740: @@ -1908,14 +2224,14 @@ L_08980798: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089807AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089807B4: @@ -2016,8 +2332,21 @@ L_08980880: L_08980888: aot_gpr_31 = (0x08980890u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 143u, 0x08980890u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980890u) goto L_08980890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980890: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -2063,8 +2392,21 @@ L_089808E4: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089808F8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 149u, 0x089808F8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089808F8u) goto L_089808F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089808F8: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_2 + ctx.gpr[20]); @@ -2109,8 +2451,21 @@ L_08980940: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08980954u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 154u, 0x08980954u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980954u) goto L_08980954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980954: ctx.gpr[17] = (aot_gpr_2 + ctx.gpr[17]); goto L_08980958; @@ -2175,8 +2530,21 @@ L_089809CC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089809DCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 162u, 0x089809DCu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089809DCu) goto L_089809DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089809DC: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[19]); @@ -2207,8 +2575,8 @@ L_08980A04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980A34: @@ -2223,14 +2591,40 @@ L_08980A34: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(40), aot_run_words); } aot_gpr_31 = (0x08980A64u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 166u, 0x08980A64u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980A64u) goto L_08980A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980A64: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08980A70u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 167u, 0x08980A70u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980A70u) goto L_08980A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980A70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2336,8 +2730,21 @@ L_08980B18: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08980B24u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 181u, 0x08980B24u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980B24u) goto L_08980B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980B24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); goto L_08980B28; @@ -2377,14 +2784,40 @@ L_08980B60: aot_gpr_5 = (0u | 137u); aot_gpr_31 = (0x08980B70u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 188u, 0x08980B70u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980B70u) goto L_08980B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980B70: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08980B7Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 189u, 0x08980B7Cu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980B7Cu) goto L_08980B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980B7C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2402,8 +2835,21 @@ L_08980B90: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16636)); aot_gpr_31 = (0x08980B9Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 192u, 0x08980B9Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980B9Cu) goto L_08980B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980B9C: aot_gpr_31 = (0x08980BA4u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2414,8 +2860,21 @@ L_08980BA4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16632)); aot_gpr_31 = (0x08980BB4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 194u, 0x08980BB4u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980BB4u) goto L_08980BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980BB4: aot_gpr_31 = (0x08980BBCu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2428,14 +2887,40 @@ L_08980BBC: aot_gpr_5 = (0u | 138u); aot_gpr_31 = (0x08980BD4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 196u, 0x08980BD4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980BD4u) goto L_08980BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980BD4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08980BE0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 197u, 0x08980BE0u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980BE0u) goto L_08980BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980BE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2461,14 +2946,40 @@ L_08980BFC: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08980C0Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 201u, 0x08980C0Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980C0Cu) goto L_08980C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980C0C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08980C18u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 202u, 0x08980C18u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980C18u) goto L_08980C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980C18: aot_gpr_31 = (0x08980C20u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2497,14 +3008,40 @@ L_08980C40: aot_gpr_5 = (0u | 139u); aot_gpr_31 = (0x08980C50u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 207u, 0x08980C50u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980C50u) goto L_08980C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980C50: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08980C5Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 208u, 0x08980C5Cu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980C5Cu) goto L_08980C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980C5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2523,14 +3060,40 @@ L_08980C70: aot_gpr_5 = (0u | 175u); aot_gpr_31 = (0x08980C80u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 211u, 0x08980C80u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980C80u) goto L_08980C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980C80: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08980C8Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 212u, 0x08980C8Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980C8Cu) goto L_08980C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980C8C: aot_gpr_31 = (0x08980C94u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2554,14 +3117,40 @@ L_08980CA8: aot_gpr_5 = (0u | 176u); aot_gpr_31 = (0x08980CB8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 216u, 0x08980CB8u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980CB8u) goto L_08980CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980CB8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08980CC4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 217u, 0x08980CC4u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980CC4u) goto L_08980CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980CC4: aot_gpr_31 = (0x08980CCCu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2587,14 +3176,40 @@ L_08980CE0: aot_gpr_5 = (0u | 140u); aot_gpr_31 = (0x08980CF8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 221u, 0x08980CF8u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980CF8u) goto L_08980CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980CF8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08980D04u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 222u, 0x08980D04u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980D04u) goto L_08980D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980D04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2684,14 +3299,14 @@ L_08980D90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980DB0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980DB8: @@ -2700,8 +3315,8 @@ L_08980DB8: aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980DCC: @@ -2757,8 +3372,8 @@ L_08980DCC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08980DF4: @@ -2931,8 +3546,21 @@ L_08980F24: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08980F4Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 258u, 0x08980F4Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08980F4Cu) goto L_08980F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08980F4C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3137,8 +3765,8 @@ L_08981104: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08981124: @@ -3211,8 +3839,21 @@ L_089811C4: L_089811C8: aot_gpr_31 = (0x089811D0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 288u, 0x089811D0u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089811D0u) goto L_089811D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089811D0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3287,8 +3928,8 @@ L_08981238: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898124C: @@ -3296,18 +3937,57 @@ L_0898124C: { const std::uint32_t aot_run_words[5]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0898126Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 300u, 0x0898126Cu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898126Cu) goto L_0898126C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898126C: aot_gpr_31 = (0x08981274u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-16572)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 301u, 0x08981274u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08981274u) goto L_08981274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08981274: aot_gpr_31 = (0x0898127Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 302u, 0x0898127Cu, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898127Cu) goto L_0898127C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898127C: ctx.gpr[18] = (2234u << 16u); ctx.gpr[16] = (2234u << 16u); @@ -3330,8 +4010,21 @@ L_089812A4: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[16]); aot_gpr_31 = (0x089812B4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 305u, 0x089812B4u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089812B4u) goto L_089812B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089812B4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), aot_gpr_2); goto L_089812B8; @@ -3347,8 +4040,21 @@ L_089812B8: } L_089812CC: aot_gpr_31 = (0x089812D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 308u, 0x089812D4u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089812D4u) goto L_089812D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089812D4: aot_gpr_4 = (2247u << 16u); aot_gpr_5 = (0u | 0u); @@ -3380,8 +4086,8 @@ L_08981308: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08981324: @@ -3416,8 +4122,8 @@ L_0898138C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08981398: @@ -3536,8 +4242,8 @@ L_08981464: goto L_08981468; L_08981468: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08981470: @@ -3755,8 +4461,21 @@ L_089816AC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089816C4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 340u, 0x089816C4u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089816C4u) goto L_089816C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089816C4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3796,8 +4515,8 @@ L_089816F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898171C: @@ -3980,8 +4699,8 @@ L_08981868: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-6864))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08981880: @@ -4706,8 +5425,21 @@ L_08981D9C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08981E2Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 443u, 0x08981E2Cu, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08981E2Cu) goto L_08981E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08981E2C: ctx.gpr[22] = (0u | 1u); { const bool branch_taken = 0u == 0u; @@ -4743,8 +5475,21 @@ L_08981E38: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08981E78u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 445u, 0x08981E78u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08981E78u) goto L_08981E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08981E78: { const bool branch_taken = ctx.gpr[22] != 0u; if (branch_taken) { @@ -4799,8 +5544,21 @@ L_08981E90: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08981EFCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 448u, 0x08981EFCu, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08981EFCu) goto L_08981EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08981EFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4872,8 +5630,21 @@ L_08981F34: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08981FA0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 453u, 0x08981FA0u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08981FA0u) goto L_08981FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08981FA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); aot_fpr_13 = std::bit_cast(0u); @@ -4928,8 +5699,21 @@ L_08981FE4: ctx.gpr[8] = (0u | 128u); aot_gpr_31 = (0x0898203Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 458u, 0x0898203Cu, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898203Cu) goto L_0898203C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898203C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4968,8 +5752,21 @@ L_0898204C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089820A8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 461u, 0x089820A8u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089820A8u) goto L_089820A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089820A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5268,8 +6065,8 @@ L_089822EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898231C: @@ -5418,8 +6215,21 @@ L_089824C4: ctx.gpr[7] = (aot_gpr_29 + static_cast(36)); aot_gpr_31 = (0x089824DCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 481u, 0x089824DCu, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089824DCu) goto L_089824DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089824DC: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(56)))))); @@ -5524,8 +6334,21 @@ L_0898258C: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089825DCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 491u, 0x089825DCu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089825DCu) goto L_089825DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089825DC: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(56)))))); @@ -5776,8 +6599,21 @@ L_089827C0: L_089827E0: aot_gpr_31 = (0x089827E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 519u, 0x089827E8u, 0x088907E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 116u, 0x088907E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089827E8u) goto L_089827E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089827E8: aot_gpr_4 = (16243u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -5875,8 +6711,21 @@ L_089828E8: aot_gpr_6 = (std::bit_cast(ctx.fpr[2])); aot_gpr_31 = (0x08982930u); aot_gpr_6 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 524u, 0x08982930u, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08982930u) goto L_08982930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08982930: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5906,8 +6755,21 @@ L_08982938: aot_gpr_6 = (aot_gpr_6 & 255u); aot_gpr_31 = (0x0898298Cu); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 526u, 0x0898298Cu, 0x08AA9084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 81u, 0x08AA9084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898298Cu) goto L_0898298C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898298C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(54))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6019,8 +6881,21 @@ L_089829F0: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[17])); aot_gpr_31 = (0x08982AB8u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 536u, 0x08982AB8u, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08982AB8u) goto L_08982AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08982AB8: ctx.gpr[16] = (ctx.gpr[16] + static_cast(20)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(16)))))); @@ -6211,8 +7086,21 @@ L_08982BAC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08982CE4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 553u, 0x08982CE4u, 0x08AEDF88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 477u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 477u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 477u, 0x08AEDF88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08982CE4u) goto L_08982CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08982CE4: aot_gpr_4 = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (aot_gpr_4 << 16u); @@ -6275,8 +7163,8 @@ L_08982D38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08982D80: @@ -6466,8 +7354,21 @@ L_08982F38: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08982F68u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 578u, 0x08982F68u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08982F68u) goto L_08982F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08982F68: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6499,8 +7400,21 @@ L_08982F84: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08982FB4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 581u, 0x08982FB4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08982FB4u) goto L_08982FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08982FB4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6573,8 +7487,21 @@ L_0898301C: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08983054u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 587u, 0x08983054u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08983054u) goto L_08983054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08983054: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6689,8 +7616,21 @@ L_089830DC: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 8u)); aot_gpr_31 = (0x089831BCu); ctx.gpr[23] = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 595u, 0x089831BCu, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089831BCu) goto L_089831BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089831BC: aot_gpr_4 = (18303u << 16u); ctx.fpr[17] = ctx.fpr[22] / ctx.fpr[0]; @@ -6706,8 +7646,21 @@ L_089831BC: aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089831F4u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 596u, 0x089831F4u, 0x08AA9B20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 141u, 0x08AA9B20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089831F4u) goto L_089831F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089831F4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -6733,8 +7686,21 @@ L_08983208: } L_08983224: aot_gpr_31 = (0x0898322Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 599u, 0x0898322Cu, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898322Cu) goto L_0898322C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898322C: aot_gpr_4 = (0u | 8u); aot_gpr_31 = (0x08983238u); @@ -6787,8 +7753,8 @@ L_08983268: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089832B0: @@ -7401,8 +8367,21 @@ L_08983ABC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08983AD0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 623u, 0x08983AD0u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08983AD0u) goto L_08983AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08983AD0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7415,12 +8394,38 @@ L_08983AD8: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x08983AE8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 625u, 0x08983AE8u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08983AE8u) goto L_08983AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08983AE8: aot_gpr_31 = (0x08983AF0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 626u, 0x08983AF0u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08983AF0u) goto L_08983AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08983AF0: aot_gpr_4 = (0u | 6u); aot_gpr_31 = (0x08983AFCu); @@ -7488,8 +8493,8 @@ L_08983B70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08983B9C: @@ -7880,8 +8885,8 @@ L_08983EB8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08983EC4: @@ -7916,8 +8921,21 @@ L_08983EFC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08983F08u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0095->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0095_entry, 670u, 0x08983F08u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08983F08u) goto L_08983F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08983F08: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (ctx.gpr[16] == 0u) { @@ -7940,8 +8958,8 @@ L_08983F20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08983F38: diff --git a/profiles/vcs/generated/generated_unit_0096.cpp b/profiles/vcs/generated/generated_unit_0096.cpp index bf20683..534f4bb 100644 --- a/profiles/vcs/generated/generated_unit_0096.cpp +++ b/profiles/vcs/generated/generated_unit_0096.cpp @@ -1043,6 +1043,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08984004u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1196,8 +1220,21 @@ L_089840E8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089840F4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 21u, 0x089840F4u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089840F4u) goto L_089840F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089840F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); @@ -1264,8 +1301,21 @@ L_0898415C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(-4560))); aot_gpr_31 = (0x08984170u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 30u, 0x08984170u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984170u) goto L_08984170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984170: ctx.gpr[16] = (ctx.gpr[21] | 0u); { const bool branch_taken = 0u == 0u; @@ -1288,8 +1338,21 @@ L_08984188: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(12))); aot_gpr_31 = (0x08984198u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 33u, 0x08984198u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984198u) goto L_08984198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984198: ctx.gpr[16] = (ctx.gpr[21] | 0u); { const bool branch_taken = 0u == 0u; @@ -1312,8 +1375,21 @@ L_089841B0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(24))); aot_gpr_31 = (0x089841C0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 36u, 0x089841C0u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089841C0u) goto L_089841C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089841C0: ctx.gpr[16] = (ctx.gpr[21] | 0u); { const bool branch_taken = 0u == 0u; @@ -1336,8 +1412,21 @@ L_089841D8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(36))); aot_gpr_31 = (0x089841E8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 39u, 0x089841E8u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089841E8u) goto L_089841E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089841E8: ctx.gpr[16] = (ctx.gpr[21] | 0u); { const bool branch_taken = 0u == 0u; @@ -1360,8 +1449,21 @@ L_08984200: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(48))); aot_gpr_31 = (0x08984210u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 42u, 0x08984210u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984210u) goto L_08984210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984210: ctx.gpr[16] = (ctx.gpr[21] | 0u); { const bool branch_taken = 0u == 0u; @@ -1396,8 +1498,21 @@ L_08984240: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08984250u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 47u, 0x08984250u, 0x089E8FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 188u, 0x089E8FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984250u) goto L_08984250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984250: ctx.gpr[16] = (ctx.gpr[21] | 0u); { const bool branch_taken = 0u == 0u; @@ -1452,8 +1567,21 @@ L_089842B0: aot_gpr_5 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089842C4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 52u, 0x089842C4u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089842C4u) goto L_089842C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089842C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); goto L_089842C8; @@ -1484,8 +1612,8 @@ L_089842D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984304: @@ -1509,8 +1637,21 @@ L_08984328: goto L_08984330; L_08984330: aot_gpr_31 = (0x08984338u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 59u, 0x08984338u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984338u) goto L_08984338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984338: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1538,8 +1679,21 @@ L_08984350: L_08984358: aot_gpr_31 = (0x08984360u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 63u, 0x08984360u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984360u) goto L_08984360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984360: ctx.gpr[2] = (aot_gpr_17 | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1550,8 +1704,8 @@ L_08984360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984378: @@ -1594,8 +1748,8 @@ L_089843B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089843C4: @@ -1713,8 +1867,8 @@ L_0898447C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984494: @@ -1769,8 +1923,8 @@ L_089844E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089844FC: @@ -1792,14 +1946,40 @@ L_0898451C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0898452Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 91u, 0x0898452Cu, 0x089E8C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 134u, 0x089E8C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898452Cu) goto L_0898452C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898452C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08984538u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 92u, 0x08984538u, 0x089E8EACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 169u, 0x089E8EACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984538u) goto L_08984538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984538: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1852,8 +2032,8 @@ L_08984574: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898458C: @@ -1883,8 +2063,8 @@ L_089845B4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089845C0: @@ -1906,14 +2086,40 @@ L_089845E0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089845F0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 105u, 0x089845F0u, 0x089E8C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 134u, 0x089E8C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089845F0u) goto L_089845F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089845F0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089845FCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 106u, 0x089845FCu, 0x089E8EACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 169u, 0x089E8EACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089845FCu) goto L_089845FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089845FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1966,8 +2172,8 @@ L_08984638: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984650: @@ -2062,8 +2268,8 @@ L_089846CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089846E0: @@ -2140,15 +2346,15 @@ L_08984738: goto L_0898473C; L_0898473C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984744: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898474C: @@ -2223,8 +2429,8 @@ L_089847A0: goto L_089847A4; L_089847A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089847AC: @@ -2244,8 +2450,8 @@ L_089847AC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089847F4: @@ -2277,8 +2483,21 @@ L_08984820: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0898482Cu); aot_gpr_4 = (ctx.gpr[16] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 157u, 0x0898482Cu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898482Cu) goto L_0898482C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898482C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), aot_gpr_4); @@ -2290,8 +2509,8 @@ L_0898482C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984848: @@ -2349,8 +2568,8 @@ L_08984890: } L_08984898: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089848A0: @@ -2366,8 +2585,21 @@ L_089848A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089848D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 167u, 0x089848D0u, 0x089E8F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 179u, 0x089E8F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089848D0u) goto L_089848D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089848D0: aot_gpr_4 = (aot_gpr_17 + static_cast(20)); aot_gpr_5 = (0u + static_cast(-1)); @@ -2381,33 +2613,98 @@ L_089848D0: L_089848E0: aot_gpr_31 = (0x089848E8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 169u, 0x089848E8u, 0x08983EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 666u, 0x08983EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089848E8u) goto L_089848E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089848E8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089848F4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 170u, 0x089848F4u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089848F4u) goto L_089848F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089848F4: aot_gpr_17 = (ctx.gpr[28] + static_cast(-16516)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08984904u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 171u, 0x08984904u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984904u) goto L_08984904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984904: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08984910u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 172u, 0x08984910u, 0x08983EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 666u, 0x08983EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984910u) goto L_08984910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984910: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898491Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 173u, 0x0898491Cu, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898491Cu) goto L_0898491C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898491C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2418,33 +2715,98 @@ L_0898491C: L_08984924: aot_gpr_31 = (0x0898492Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 175u, 0x0898492Cu, 0x08983EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 666u, 0x08983EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898492Cu) goto L_0898492C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898492C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08984938u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 176u, 0x08984938u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984938u) goto L_08984938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984938: aot_gpr_17 = (ctx.gpr[28] + static_cast(-16512)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08984948u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 177u, 0x08984948u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984948u) goto L_08984948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984948: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08984954u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 178u, 0x08984954u, 0x08983EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 666u, 0x08983EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984954u) goto L_08984954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984954: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08984960u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 179u, 0x08984960u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984960u) goto L_08984960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984960: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2455,8 +2817,8 @@ L_08984960: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984978: @@ -2478,8 +2840,8 @@ L_08984978: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), aot_gpr_4); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089849C0: @@ -2628,8 +2990,8 @@ L_08984AB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984AC4: @@ -2692,8 +3054,8 @@ L_08984B18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984B40: @@ -2749,8 +3111,8 @@ L_08984B9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984BA8: @@ -2774,14 +3136,40 @@ L_08984BD0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08984BE0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 218u, 0x08984BE0u, 0x089E8C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 134u, 0x089E8C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984BE0u) goto L_08984BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984BE0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08984BECu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 219u, 0x08984BECu, 0x089E8EACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 169u, 0x089E8EACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984BECu) goto L_08984BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984BEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2835,8 +3223,8 @@ L_08984C28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984C44: @@ -2862,8 +3250,21 @@ L_08984C78: aot_gpr_4 = (aot_gpr_17 + static_cast(32)); aot_gpr_31 = (0x08984C8Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 229u, 0x08984C8Cu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984C8Cu) goto L_08984C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984C8C: ctx.gpr[2] = (aot_gpr_17 | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2874,8 +3275,8 @@ L_08984C8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984CA4: @@ -2930,8 +3331,8 @@ L_08984D00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984D14: @@ -2979,8 +3380,8 @@ L_08984D50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984D5C: @@ -3009,8 +3410,21 @@ L_08984DA0: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08984DACu); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 247u, 0x08984DACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984DACu) goto L_08984DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984DAC: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -3031,8 +3445,21 @@ L_08984DC0: aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_gpr_31 = (0x08984DCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 250u, 0x08984DCCu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984DCCu) goto L_08984DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984DCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3060,14 +3487,40 @@ L_08984DD4: ctx.gpr[20] = (ctx.gpr[21] + static_cast(32)); aot_gpr_31 = (0x08984E20u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 252u, 0x08984E20u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984E20u) goto L_08984E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984E20: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08984E2Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 253u, 0x08984E2Cu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984E2Cu) goto L_08984E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984E2C: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(16), 0u); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(48), 0u); @@ -3112,8 +3565,21 @@ L_08984E6C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08984E84u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0061. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 260u, 0x08984E84u, 0x088FA418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0061_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0061_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0061_entry, 61u, 548u, 0x088FA418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984E84u) goto L_08984E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984E84: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3127,8 +3593,8 @@ L_08984E84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984EA8: @@ -3141,8 +3607,21 @@ L_08984EA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08984ECCu); aot_gpr_4 = (0u | 104u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 262u, 0x08984ECCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08984ECCu) goto L_08984ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08984ECC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3210,8 +3689,8 @@ L_08984F20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08984F38: @@ -3334,8 +3813,8 @@ L_08984FFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985018: @@ -3414,8 +3893,8 @@ L_0898509C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089850B8: @@ -3429,8 +3908,21 @@ L_089850B8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x089850E4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 298u, 0x089850E4u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089850E4u) goto L_089850E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089850E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3452,8 +3944,21 @@ L_089850F8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08985104u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 301u, 0x08985104u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985104u) goto L_08985104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985104: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(100))); ctx.gpr[18] = (0u | 0u); @@ -3475,8 +3980,21 @@ L_08985120: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0898512Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 304u, 0x0898512Cu, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898512Cu) goto L_0898512C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898512C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -3514,8 +4032,21 @@ L_08985168: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08985178u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 309u, 0x08985178u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985178u) goto L_08985178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985178: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -3548,8 +4079,21 @@ L_089851AC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16480)); aot_gpr_31 = (0x089851B8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 313u, 0x089851B8u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089851B8u) goto L_089851B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089851B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); if (aot_gpr_4 == 0u) { @@ -3569,14 +4113,40 @@ L_089851CC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089851D8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 316u, 0x089851D8u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089851D8u) goto L_089851D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089851D8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089851E4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 317u, 0x089851E4u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089851E4u) goto L_089851E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089851E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3588,8 +4158,21 @@ L_089851EC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16476)); aot_gpr_31 = (0x089851F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 319u, 0x089851F8u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089851F8u) goto L_089851F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089851F8: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3601,8 +4184,8 @@ L_089851F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985214: @@ -3648,8 +4231,8 @@ L_0898525C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985270: @@ -3662,8 +4245,21 @@ L_08985270: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08985294u); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 326u, 0x08985294u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985294u) goto L_08985294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985294: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3717,8 +4313,8 @@ L_089852DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089852F4: @@ -3730,8 +4326,8 @@ L_08985304: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985310: @@ -3744,8 +4340,21 @@ L_08985310: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08985334u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 337u, 0x08985334u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985334u) goto L_08985334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985334: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(36))); if (aot_gpr_4 == 0u) { @@ -3765,14 +4374,40 @@ L_08985348: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08985354u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 340u, 0x08985354u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985354u) goto L_08985354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985354: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16464)); aot_gpr_31 = (0x08985360u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 341u, 0x08985360u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985360u) goto L_08985360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985360: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3782,8 +4417,8 @@ L_08985360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985374: @@ -3796,8 +4431,21 @@ L_08985374: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08985398u); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 343u, 0x08985398u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985398u) goto L_08985398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985398: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3818,8 +4466,21 @@ L_089853AC: aot_gpr_4 = (ctx.gpr[18] + static_cast(32)); aot_gpr_31 = (0x089853C4u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-16548)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 346u, 0x089853C4u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089853C4u) goto L_089853C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089853C4: aot_gpr_17 = (ctx.gpr[18] | 0u); goto L_089853C8; @@ -3857,8 +4518,8 @@ L_089853EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985404: @@ -3870,8 +4531,8 @@ L_08985414: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985420: @@ -3879,14 +4540,27 @@ L_08985420: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08985430u); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 355u, 0x08985430u, 0x08983EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 666u, 0x08983EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985430u) goto L_08985430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985430: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898543C: @@ -4013,8 +4687,8 @@ L_08985508: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898551C: @@ -4027,8 +4701,21 @@ L_0898551C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08985540u); aot_gpr_4 = (0u | 88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 377u, 0x08985540u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985540u) goto L_08985540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985540: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4091,8 +4778,8 @@ L_089855AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089855C4: @@ -4108,20 +4795,59 @@ L_089855E0: aot_gpr_4 = (ctx.gpr[16] + static_cast(52)); aot_gpr_31 = (0x089855ECu); aot_gpr_5 = (aot_gpr_17 + static_cast(52)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 387u, 0x089855ECu, 0x089E8DC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 152u, 0x089E8DC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089855ECu) goto L_089855EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089855EC: aot_gpr_4 = (ctx.gpr[16] + static_cast(64)); aot_gpr_31 = (0x089855F8u); aot_gpr_5 = (aot_gpr_17 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 388u, 0x089855F8u, 0x089E8DC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 152u, 0x089E8DC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089855F8u) goto L_089855F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089855F8: aot_gpr_4 = (ctx.gpr[16] + static_cast(76)); aot_gpr_31 = (0x08985604u); aot_gpr_5 = (aot_gpr_17 + static_cast(76)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 389u, 0x08985604u, 0x089E8DC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 152u, 0x089E8DC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985604u) goto L_08985604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985604: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4131,8 +4857,8 @@ L_08985604: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985618: @@ -4145,8 +4871,21 @@ L_08985618: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0898563Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 391u, 0x0898563Cu, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898563Cu) goto L_0898563C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898563C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(56))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -4173,20 +4912,59 @@ L_08985660: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16452)); aot_gpr_31 = (0x0898566Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 395u, 0x0898566Cu, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898566Cu) goto L_0898566C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898566C: aot_gpr_4 = (aot_gpr_17 + static_cast(52)); aot_gpr_31 = (0x08985678u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 396u, 0x08985678u, 0x08983EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 666u, 0x08983EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985678u) goto L_08985678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985678: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16440)); aot_gpr_31 = (0x08985684u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 397u, 0x08985684u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985684u) goto L_08985684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985684: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(68))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -4213,20 +4991,59 @@ L_089856A8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16436)); aot_gpr_31 = (0x089856B4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 401u, 0x089856B4u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089856B4u) goto L_089856B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089856B4: aot_gpr_4 = (aot_gpr_17 + static_cast(64)); aot_gpr_31 = (0x089856C0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 402u, 0x089856C0u, 0x08983EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 666u, 0x08983EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089856C0u) goto L_089856C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089856C0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16440)); aot_gpr_31 = (0x089856CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 403u, 0x089856CCu, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089856CCu) goto L_089856CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089856CC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(80))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -4253,26 +5070,78 @@ L_089856F0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16424)); aot_gpr_31 = (0x089856FCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 407u, 0x089856FCu, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089856FCu) goto L_089856FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089856FC: aot_gpr_4 = (aot_gpr_17 + static_cast(76)); aot_gpr_31 = (0x08985708u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 408u, 0x08985708u, 0x08983EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 666u, 0x08983EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985708u) goto L_08985708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985708: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16440)); aot_gpr_31 = (0x08985714u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 409u, 0x08985714u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985714u) goto L_08985714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985714: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16408)); aot_gpr_31 = (0x08985720u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 410u, 0x08985720u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985720u) goto L_08985720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985720: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4282,8 +5151,8 @@ L_08985720: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985734: @@ -4329,8 +5198,8 @@ L_0898577C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985790: @@ -4343,8 +5212,21 @@ L_08985790: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089857B4u); aot_gpr_4 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 417u, 0x089857B4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089857B4u) goto L_089857B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089857B4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4398,8 +5280,8 @@ L_089857FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985814: @@ -4411,8 +5293,8 @@ L_08985824: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985830: @@ -4425,8 +5307,21 @@ L_08985830: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08985854u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 428u, 0x08985854u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985854u) goto L_08985854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985854: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(36))); if (aot_gpr_4 == 0u) { @@ -4446,14 +5341,40 @@ L_08985868: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08985874u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 431u, 0x08985874u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985874u) goto L_08985874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985874: aot_gpr_5 = (ctx.gpr[28] + static_cast(-16484)); aot_gpr_31 = (0x08985880u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 432u, 0x08985880u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985880u) goto L_08985880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985880: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4463,8 +5384,8 @@ L_08985880: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985894: @@ -4492,8 +5413,21 @@ L_089858AC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(56), 0u); aot_gpr_31 = (0x089858ECu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-16548)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 435u, 0x089858ECu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089858ECu) goto L_089858EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089858EC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(80), 0u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(76), 0u); @@ -4502,8 +5436,8 @@ L_089858EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985908: @@ -4533,16 +5467,42 @@ L_0898592C: aot_gpr_4 = (aot_gpr_17 + static_cast(32)); aot_gpr_31 = (0x08985968u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 438u, 0x08985968u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985968u) goto L_08985968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985968: aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(52), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(56), 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-16548)); aot_gpr_31 = (0x0898597Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 439u, 0x0898597Cu, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898597Cu) goto L_0898597C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898597C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(80), 0u); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(76), 0u); @@ -4556,8 +5516,8 @@ L_0898597C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089859A0: @@ -4622,8 +5582,8 @@ L_08985A08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985A1C: @@ -4644,8 +5604,21 @@ L_08985A48: aot_gpr_4 = (aot_gpr_17 + static_cast(32)); aot_gpr_31 = (0x08985A60u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 451u, 0x08985A60u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985A60u) goto L_08985A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985A60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4666,8 +5639,21 @@ L_08985A6C: L_08985A74: aot_gpr_31 = (0x08985A7Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 454u, 0x08985A7Cu, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985A7Cu) goto L_08985A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985A7C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4679,8 +5665,21 @@ L_08985A7C: L_08985A88: aot_gpr_31 = (0x08985A90u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 456u, 0x08985A90u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985A90u) goto L_08985A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985A90: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4711,8 +5710,21 @@ L_08985AB0: L_08985AB8: aot_gpr_31 = (0x08985AC0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 460u, 0x08985AC0u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985AC0u) goto L_08985AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985AC0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -4742,8 +5754,21 @@ L_08985AE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[20]); aot_gpr_31 = (0x08985AECu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 465u, 0x08985AECu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985AECu) goto L_08985AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985AEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(0), static_cast(0u)); @@ -4752,24 +5777,63 @@ L_08985AEC: L_08985AF8: aot_gpr_31 = (0x08985B00u); aot_gpr_4 = (ctx.gpr[19] + static_cast(2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 467u, 0x08985B00u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985B00u) goto L_08985B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985B00: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08985B14u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 468u, 0x08985B14u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985B14u) goto L_08985B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985B14: aot_gpr_4 = (ctx.gpr[20] + ctx.gpr[19]); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1), static_cast(0u)); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08985B28u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 469u, 0x08985B28u, 0x089E9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 215u, 0x089E9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985B28u) goto L_08985B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985B28: aot_gpr_31 = (0x08985B30u); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4778,8 +5842,21 @@ L_08985B28: L_08985B30: aot_gpr_31 = (0x08985B38u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 471u, 0x08985B38u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985B38u) goto L_08985B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985B38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -4889,8 +5966,8 @@ L_08985BEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985C0C: @@ -4973,8 +6050,8 @@ L_08985C80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985C98: @@ -4987,8 +6064,21 @@ L_08985C98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08985CBCu); aot_gpr_4 = (0u | 84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 498u, 0x08985CBCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985CBCu) goto L_08985CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985CBC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5038,8 +6128,8 @@ L_08985CF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985D10: @@ -5075,8 +6165,21 @@ L_08985D48: goto L_08985D4C; L_08985D4C: aot_gpr_31 = (0x08985D54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 511u, 0x08985D54u, 0x089E8D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 141u, 0x089E8D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985D54u) goto L_08985D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985D54: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(24))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -5118,8 +6221,8 @@ L_08985D90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985DA4: @@ -5145,8 +6248,8 @@ L_08985DB8: } L_08985DDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985DE4: @@ -5192,8 +6295,8 @@ L_08985E2C: } L_08985E50: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985E58: @@ -5234,22 +6337,35 @@ L_08985E9C: aot_gpr_6 = (aot_gpr_6 + static_cast(20)); aot_gpr_31 = (0x08985EE0u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(72), static_cast(aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 526u, 0x08985EE0u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08985EE0u) goto L_08985EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08985EE0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985EF0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-16399))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08985EF8: @@ -5461,8 +6577,8 @@ L_08986048: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986064: @@ -5490,8 +6606,21 @@ L_0898608C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08986098u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 551u, 0x08986098u, 0x0880A5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 542u, 0x0880A5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986098u) goto L_08986098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986098: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5503,8 +6632,21 @@ L_089860A0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089860ACu); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 553u, 0x089860ACu, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089860ACu) goto L_089860AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089860AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5516,8 +6658,21 @@ L_089860B4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089860C0u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 555u, 0x089860C0u, 0x0880A5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 542u, 0x0880A5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089860C0u) goto L_089860C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089860C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5529,8 +6684,21 @@ L_089860C8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089860D4u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 557u, 0x089860D4u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089860D4u) goto L_089860D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089860D4: aot_gpr_31 = (0x089860DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5552,8 +6720,8 @@ L_089860F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986108: @@ -5628,8 +6796,21 @@ L_08986170: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08986194u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 566u, 0x08986194u, 0x08A8EAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 518u, 0x08A8EAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986194u) goto L_08986194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986194: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -6103,8 +7284,8 @@ L_08986648: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986660: @@ -6114,8 +7295,8 @@ L_08986660: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9276), aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9280), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986678: @@ -6134,8 +7315,8 @@ L_0898668C: goto L_08986690; L_08986690: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986698: @@ -6175,8 +7356,8 @@ L_089866C4: } L_08986704: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898670C: @@ -6194,8 +7375,21 @@ L_0898670C: L_08986734: aot_gpr_31 = (0x0898673Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 616u, 0x0898673Cu, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898673Cu) goto L_0898673C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898673C: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -6207,16 +7401,42 @@ L_0898673C: L_08986748: aot_gpr_31 = (0x08986750u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 618u, 0x08986750u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986750u) goto L_08986750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986750: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[16] >> 2u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-16352), aot_gpr_4); aot_gpr_31 = (0x08986764u); aot_gpr_4 = (aot_gpr_4 << 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 619u, 0x08986764u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986764u) goto L_08986764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986764: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6231,8 +7451,21 @@ L_08986770: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08986780u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 621u, 0x08986780u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986780u) goto L_08986780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986780: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[16]; if (branch_taken) { @@ -6267,8 +7500,21 @@ L_08986798: L_089867A0: aot_gpr_31 = (0x089867A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 626u, 0x089867A8u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089867A8u) goto L_089867A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089867A8: ctx.gpr[2] = (0u | 1u); goto L_089867AC; @@ -6281,8 +7527,8 @@ L_089867AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089867C0: @@ -6303,8 +7549,8 @@ L_089867CC: } L_089867D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089867DC: @@ -6317,8 +7563,8 @@ L_089867EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089867F8: @@ -6435,8 +7681,8 @@ L_08986880: } L_08986888: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986890: @@ -6537,8 +7783,8 @@ L_08986940: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898694C: @@ -6549,8 +7795,8 @@ L_0898694C: ctx.gpr[2] = (aot_gpr_4 << 24u); jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(ctx.gpr[2]) >> 24u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986968: @@ -6774,8 +8020,8 @@ L_08986A98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986AA4: @@ -6819,15 +8065,15 @@ L_08986B14: ctx.gpr[2] = (aot_gpr_6 + static_cast(64)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986B24: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986B2C: @@ -6836,8 +8082,8 @@ L_08986B2C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08986B50: @@ -6870,8 +8116,21 @@ L_08986BB0: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08986BBCu); aot_gpr_5 = (0u | 99u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 699u, 0x08986BBCu, 0x0888A1F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 598u, 0x0888A1F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986BBCu) goto L_08986BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986BBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -6947,8 +8206,21 @@ L_08986C5C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08986C70u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 707u, 0x08986C70u, 0x08871440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 369u, 0x08871440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986C70u) goto L_08986C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986C70: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6967,8 +8239,21 @@ L_08986C78: L_08986C8C: aot_gpr_31 = (0x08986C94u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 710u, 0x08986C94u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986C94u) goto L_08986C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986C94: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(-16276), ctx.gpr[2]); goto L_08986C98; @@ -7046,14 +8331,40 @@ L_08986D1C: L_08986D30: aot_gpr_31 = (0x08986D38u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 719u, 0x08986D38u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986D38u) goto L_08986D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986D38: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08986D44u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 720u, 0x08986D44u, 0x0888A1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 593u, 0x0888A1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986D44u) goto L_08986D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986D44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); aot_gpr_5 = (aot_gpr_4 << 2u); @@ -7068,8 +8379,21 @@ L_08986D44: L_08986D58: aot_gpr_31 = (0x08986D60u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 722u, 0x08986D60u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986D60u) goto L_08986D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986D60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); ctx.gpr[16] = (ctx.gpr[2] | 0u); @@ -7105,8 +8429,21 @@ L_08986DB4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08986DC4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 726u, 0x08986DC4u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986DC4u) goto L_08986DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986DC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16316))); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); @@ -7169,25 +8506,77 @@ L_08986E24: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08986E40u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 733u, 0x08986E40u, 0x089390ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 274u, 0x089390ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986E40u) goto L_08986E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986E40: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-16224)); aot_gpr_31 = (0x08986E50u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 734u, 0x08986E50u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986E50u) goto L_08986E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986E50: aot_gpr_31 = (0x08986E58u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 735u, 0x08986E58u, 0x089391C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 286u, 0x089391C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986E58u) goto L_08986E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986E58: aot_gpr_31 = (0x08986E60u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 736u, 0x08986E60u, 0x0888A1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 593u, 0x0888A1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986E60u) goto L_08986E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986E60: { const bool branch_taken = 0u == 0u; aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); @@ -7225,8 +8614,21 @@ L_08986EAC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08986EBCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 740u, 0x08986EBCu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986EBCu) goto L_08986EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986EBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16316))); @@ -7245,20 +8647,59 @@ L_08986EBC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08986F00u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 741u, 0x08986F00u, 0x089390ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 274u, 0x089390ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986F00u) goto L_08986F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986F00: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-16224)); aot_gpr_31 = (0x08986F10u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 742u, 0x08986F10u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986F10u) goto L_08986F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986F10: aot_gpr_31 = (0x08986F18u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 743u, 0x08986F18u, 0x089391C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 286u, 0x089391C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986F18u) goto L_08986F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986F18: { const bool branch_taken = 0u == 0u; aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); @@ -7272,8 +8713,21 @@ L_08986F20: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08986F30u); ctx.gpr[18] = (aot_gpr_5 + static_cast(-5532)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 745u, 0x08986F30u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986F30u) goto L_08986F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986F30: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -7316,8 +8770,21 @@ L_08986F74: L_08986F78: aot_gpr_31 = (0x08986F80u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 751u, 0x08986F80u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986F80u) goto L_08986F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986F80: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -7326,18 +8793,57 @@ L_08986F80: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08986F9Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 752u, 0x08986F9Cu, 0x089390ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 274u, 0x089390ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986F9Cu) goto L_08986F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986F9C: aot_gpr_31 = (0x08986FA4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 753u, 0x08986FA4u, 0x089391C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 286u, 0x089391C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986FA4u) goto L_08986FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986FA4: aot_gpr_31 = (0x08986FACu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 754u, 0x08986FACu, 0x0888A1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 593u, 0x0888A1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986FACu) goto L_08986FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986FAC: aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); goto L_08986FB0; @@ -7351,8 +8857,21 @@ L_08986FB0: L_08986FB8: aot_gpr_31 = (0x08986FC0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 757u, 0x08986FC0u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08986FC0u) goto L_08986FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08986FC0: aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); goto L_08986FC4; @@ -7463,8 +8982,8 @@ L_08987074: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 2u)); jump_target = ctx.gpr[1]; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16320))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987090: @@ -7576,8 +9095,21 @@ L_08987134: L_0898713C: aot_gpr_31 = (0x08987144u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 785u, 0x08987144u, 0x0888A1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 593u, 0x0888A1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08987144u) goto L_08987144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08987144: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16336))); aot_gpr_5 = (2279u << 16u); @@ -7600,8 +9132,21 @@ L_08987170: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08987184u); aot_gpr_5 = (0u | 99u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 787u, 0x08987184u, 0x0888A200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 599u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 599u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 599u, 0x0888A200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08987184u) goto L_08987184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08987184: aot_gpr_31 = (0x0898718Cu); aot_gpr_4 = (0u | 0u); @@ -7622,8 +9167,21 @@ L_0898719C: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x089871A8u); aot_gpr_5 = (0u | 99u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 791u, 0x089871A8u, 0x0888A200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 599u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 599u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 599u, 0x0888A200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089871A8u) goto L_089871A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089871A8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[10]{}; @@ -7641,8 +9199,8 @@ L_089871A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089871DC: @@ -8113,8 +9671,8 @@ L_0898755C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898757C: @@ -8462,8 +10020,8 @@ L_08987948: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987958: @@ -8953,8 +10511,8 @@ L_08987BF8: goto L_08987BFC; L_08987BFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987C04: @@ -8974,8 +10532,8 @@ L_08987C1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987C88: @@ -9084,8 +10642,8 @@ L_08987D58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987D6C: @@ -9114,8 +10672,8 @@ L_08987D6C: aot_gpr_5 = (ctx.vfpu_scalar_bits_ct<64u>()); aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987DD0: @@ -9131,8 +10689,8 @@ L_08987DD0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987DF4: @@ -9153,8 +10711,8 @@ L_08987DFC: ctx.execute_vfpu_unary_ct<99u, 92u, 1u, 0u>(); ctx.execute_vfpu_unary_ct<99u, 99u, 1u, 2u>(); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987E28: @@ -9178,8 +10736,8 @@ L_08987E3C: goto L_08987E58; L_08987E58: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987E60: @@ -9209,8 +10767,21 @@ L_08987EB4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(28))); aot_gpr_31 = (0x08987EC0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 954u, 0x08987EC0u, 0x08988000u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1u, 0x08988000u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08987EC0u) goto L_08987EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08987EC0: ctx.gpr[2] = (aot_gpr_17 | 0u); { std::uint32_t aot_run_words[3]{}; @@ -9221,8 +10792,8 @@ L_08987EC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987ED8: @@ -9235,8 +10806,8 @@ L_08987ED8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987EFC: @@ -9263,8 +10834,21 @@ L_08987F34: aot_gpr_4 = (ctx.gpr[16] + static_cast(20)); aot_gpr_31 = (0x08987F40u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 958u, 0x08987F40u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08987F40u) goto L_08987F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08987F40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(28))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(12))); @@ -9281,8 +10865,21 @@ L_08987F5C: aot_gpr_4 = (ctx.gpr[16] + static_cast(28)); aot_gpr_31 = (0x08987F68u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 960u, 0x08987F68u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08987F68u) goto L_08987F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08987F68: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -9293,8 +10890,8 @@ L_08987F68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08987F80: @@ -9323,21 +10920,60 @@ L_08987FC0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08987FCCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 963u, 0x08987FCCu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08987FCCu) goto L_08987FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08987FCC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(20), ctx.gpr[16]); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08987FE0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 964u, 0x08987FE0u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08987FE0u) goto L_08987FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08987FE0: aot_gpr_31 = (0x08987FE8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0096->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0096_entry, 965u, 0x08987FE8u, 0x0887F7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 744u, 0x0887F7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08987FE8u) goto L_08987FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08987FE8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -9348,8 +10984,8 @@ L_08987FE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; } diff --git a/profiles/vcs/generated/generated_unit_0097.cpp b/profiles/vcs/generated/generated_unit_0097.cpp index 17e977c..ea07d2a 100644 --- a/profiles/vcs/generated/generated_unit_0097.cpp +++ b/profiles/vcs/generated/generated_unit_0097.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0097[64] = { 478u, 497u, 510u, 527u, 543u, 563u, 581u, 599u, 619u, 632u, 653u, 667u, 684u, 703u, 717u, 734u, 754u, 772u, 794u, 817u, 827u, 846u, 861u, 874u, 890u, 907u, 936u, 952u, 966u, 994u, 1023u, 1046u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0097[4094] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, + 6u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 8u, 0u, 9u, 0u, 10u, 11u, 0u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, + 0u, 0u, 14u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 15u, 0u, 16u, 0u, 17u, 0u, 18u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 21u, 0u, + 0u, 0u, 0u, 0u, 0u, 22u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, + 0u, 26u, 0u, 27u, 0u, 28u, 0u, 29u, 0u, 0u, 0u, 30u, 0u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 32u, 33u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 36u, 37u, 0u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 43u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 44u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 48u, 49u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 0u, 0u, 0u, 52u, 53u, 0u, 0u, 0u, 0u, 0u, 54u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 56u, + 0u, 0u, 0u, 0u, 57u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 0u, 60u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 61u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 63u, 0u, 0u, 0u, 64u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 67u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 71u, 0u, 0u, + 0u, 0u, 72u, 0u, 73u, 0u, 0u, 0u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 77u, 0u, 0u, 0u, 0u, 78u, 0u, 0u, 0u, 79u, 0u, 80u, 81u, 0u, 0u, 0u, 82u, 0u, 0u, 83u, 0u, 0u, 84u, 0u, 0u, 0u, 85u, 0u, + 86u, 0u, 0u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 89u, + 90u, 0u, 91u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, 93u, 0u, 94u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 0u, 96u, 97u, 0u, 0u, 98u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 100u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 102u, 0u, 103u, 0u, 0u, 0u, 104u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 105u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 0u, 107u, 0u, 108u, 109u, 0u, 0u, 0u, 110u, 0u, 0u, 111u, 0u, 0u, 112u, 0u, 0u, 0u, 113u, 0u, 114u, 0u, + 0u, 0u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 116u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 117u, 118u, 0u, + 119u, 0u, 0u, 0u, 120u, 0u, 0u, 0u, 121u, 0u, 122u, 0u, 0u, 123u, 0u, 0u, 0u, 0u, 0u, 0u, 124u, 125u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, 130u, 0u, 131u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 135u, 0u, + 0u, 136u, 0u, 137u, 0u, 0u, 0u, 138u, 0u, 139u, 0u, 0u, 0u, 0u, 140u, 0u, 141u, 142u, 0u, 143u, 0u, 0u, 0u, 0u, 0u, 0u, 144u, 0u, 0u, 0u, 0u, 145u, + 0u, 146u, 0u, 0u, 0u, 0u, 0u, 0u, 147u, 0u, 148u, 0u, 0u, 149u, 0u, 150u, 0u, 151u, 0u, 152u, 153u, 0u, 154u, 0u, 0u, 155u, 0u, 0u, 156u, 0u, 157u, 158u, + 159u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 0u, 161u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 164u, 0u, 0u, 0u, 165u, 0u, 0u, 0u, 166u, 0u, + 0u, 0u, 167u, 0u, 0u, 0u, 168u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 170u, 0u, 171u, 0u, 172u, 0u, 0u, 0u, 0u, 173u, 0u, 174u, 0u, 0u, 0u, 0u, 175u, 0u, + 176u, 0u, 0u, 0u, 0u, 177u, 0u, 178u, 0u, 0u, 0u, 0u, 179u, 0u, 180u, 0u, 0u, 0u, 0u, 181u, 0u, 182u, 0u, 0u, 0u, 0u, 183u, 0u, 184u, 0u, 0u, 0u, + 0u, 185u, 0u, 186u, 0u, 0u, 0u, 0u, 187u, 0u, 188u, 0u, 0u, 0u, 0u, 189u, 0u, 190u, 0u, 191u, 0u, 192u, 0u, 193u, 0u, 194u, 0u, 195u, 0u, 196u, 0u, 197u, + 0u, 198u, 0u, 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 202u, 0u, 0u, 203u, 0u, 204u, 0u, 205u, 0u, 206u, 207u, 0u, + 208u, 0u, 0u, 209u, 0u, 0u, 210u, 0u, 211u, 212u, 213u, 0u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, + 218u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 220u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 223u, 0u, 0u, 0u, 224u, 0u, 225u, 0u, 226u, 0u, 0u, 0u, + 0u, 227u, 0u, 228u, 0u, 0u, 0u, 0u, 229u, 0u, 230u, 0u, 0u, 0u, 0u, 231u, 0u, 232u, 0u, 0u, 0u, 0u, 233u, 0u, 234u, 0u, 0u, 0u, 0u, 235u, 0u, 236u, + 0u, 0u, 0u, 0u, 237u, 0u, 238u, 0u, 0u, 0u, 0u, 239u, 0u, 240u, 0u, 0u, 0u, 0u, 241u, 0u, 242u, 0u, 243u, 0u, 244u, 0u, 245u, 0u, 246u, 0u, 247u, 0u, + 248u, 0u, 249u, 0u, 250u, 0u, 0u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 0u, 253u, 0u, 254u, 0u, 0u, 255u, 0u, 256u, 0u, 257u, 0u, + 258u, 259u, 0u, 260u, 0u, 0u, 261u, 0u, 0u, 262u, 0u, 263u, 264u, 265u, 0u, 0u, 266u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 268u, 0u, 0u, 0u, 269u, + 0u, 0u, 0u, 270u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 272u, 0u, 0u, 0u, 273u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 276u, 0u, 277u, 0u, 278u, + 0u, 0u, 0u, 0u, 279u, 0u, 280u, 0u, 0u, 0u, 0u, 281u, 0u, 282u, 0u, 0u, 0u, 0u, 283u, 0u, 284u, 0u, 0u, 0u, 0u, 285u, 0u, 286u, 0u, 0u, 0u, 0u, + 287u, 0u, 288u, 0u, 0u, 0u, 0u, 289u, 0u, 290u, 0u, 0u, 0u, 0u, 291u, 0u, 292u, 0u, 0u, 0u, 0u, 293u, 0u, 294u, 0u, 295u, 0u, 296u, 0u, 297u, 0u, 298u, + 0u, 299u, 0u, 300u, 0u, 301u, 0u, 302u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 306u, 307u, 0u, 308u, 0u, + 0u, 309u, 0u, 0u, 310u, 0u, 311u, 312u, 313u, 0u, 0u, 314u, 0u, 0u, 0u, 0u, 0u, 0u, 315u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 316u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 318u, 0u, 319u, 320u, 0u, 321u, 0u, 0u, 322u, 0u, 0u, 323u, 0u, 324u, 325u, 326u, 0u, 0u, 327u, 0u, 0u, + 0u, 0u, 0u, 328u, 329u, 0u, 0u, 0u, 0u, 330u, 0u, 331u, 0u, 332u, 0u, 333u, 0u, 334u, 0u, 335u, 0u, 0u, 336u, 0u, 337u, 0u, 0u, 338u, 0u, 339u, 0u, 0u, + 0u, 340u, 0u, 341u, 0u, 0u, 0u, 342u, 0u, 343u, 0u, 0u, 0u, 344u, 0u, 345u, 0u, 0u, 0u, 346u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 347u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 348u, 0u, 349u, 0u, 0u, 350u, 0u, 0u, 351u, 0u, 0u, 352u, 0u, 353u, 354u, 355u, 0u, 0u, 356u, 0u, 0u, + 0u, 0u, 0u, 357u, 0u, 358u, 0u, 0u, 0u, 0u, 359u, 0u, 360u, 0u, 361u, 0u, 362u, 0u, 0u, 363u, 0u, 364u, 365u, 0u, 366u, 0u, 0u, 367u, 0u, 0u, 368u, 0u, + 369u, 370u, 371u, 0u, 0u, 372u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 0u, 374u, 0u, 375u, 0u, 376u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 378u, 0u, 0u, 379u, 0u, 0u, 380u, 0u, 0u, 381u, 0u, 0u, 0u, 382u, 383u, 0u, 384u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 0u, 0u, 0u, 386u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 387u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 388u, 0u, 0u, 0u, 389u, 0u, 0u, 390u, 0u, 0u, + 0u, 391u, 0u, 0u, 392u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 393u, 0u, 394u, 395u, 0u, 396u, 0u, 0u, 397u, 0u, 0u, 398u, 0u, 399u, 400u, 401u, 0u, 0u, 402u, + 0u, 0u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 405u, 0u, 406u, 0u, 0u, 0u, 407u, 0u, 408u, 0u, 0u, 0u, 0u, 409u, 0u, 410u, 411u, 0u, + 0u, 412u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 416u, 0u, 417u, 0u, 0u, 418u, 0u, 0u, 419u, 0u, 0u, 420u, 0u, 421u, 422u, 423u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, + 0u, 427u, 0u, 428u, 429u, 0u, 0u, 0u, 430u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 434u, + 435u, 0u, 436u, 0u, 0u, 437u, 0u, 0u, 438u, 0u, 439u, 440u, 441u, 0u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, 443u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 445u, 0u, 446u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 449u, 450u, 0u, 451u, 0u, 0u, 452u, 0u, + 0u, 453u, 0u, 454u, 455u, 456u, 0u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, 0u, 458u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 459u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 460u, 0u, 461u, 462u, 0u, 463u, 0u, 0u, 464u, 0u, 0u, 465u, 0u, 466u, 467u, 468u, 0u, 0u, 469u, 0u, 0u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, + 0u, 0u, 0u, 471u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 474u, 0u, 475u, 476u, 0u, 477u, + 0u, 0u, 478u, 0u, 0u, 479u, 0u, 480u, 481u, 482u, 0u, 0u, 483u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 486u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 488u, 0u, 489u, 490u, 0u, 491u, 0u, 0u, 492u, 0u, 0u, 493u, 0u, 494u, 495u, 496u, + 0u, 0u, 497u, 0u, 0u, 0u, 0u, 0u, 0u, 498u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 501u, 502u, 0u, 503u, 0u, 0u, 504u, 0u, 0u, 505u, 0u, 506u, 507u, 508u, 0u, 0u, 509u, 0u, 0u, 0u, + 0u, 0u, 0u, 510u, 0u, 0u, 0u, 0u, 0u, 511u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 512u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 513u, 0u, 514u, + 515u, 0u, 516u, 0u, 0u, 517u, 0u, 0u, 518u, 0u, 519u, 520u, 521u, 0u, 0u, 522u, 0u, 0u, 0u, 0u, 0u, 523u, 0u, 524u, 0u, 525u, 0u, 0u, 0u, 0u, 0u, 526u, + 0u, 0u, 527u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 530u, 531u, 0u, 532u, 0u, 0u, 533u, 0u, 0u, + 534u, 0u, 535u, 536u, 537u, 0u, 0u, 538u, 0u, 0u, 0u, 0u, 0u, 0u, 539u, 0u, 540u, 0u, 0u, 541u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 542u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 543u, 0u, 544u, 545u, 0u, 546u, 0u, 0u, 547u, 0u, 0u, 548u, 0u, 549u, 550u, 551u, 0u, 0u, 552u, 0u, 0u, 0u, 0u, 0u, 0u, 553u, 0u, + 554u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 557u, 558u, 0u, 559u, 0u, 0u, 560u, 0u, 0u, 561u, 0u, 562u, + 563u, 564u, 0u, 0u, 565u, 0u, 0u, 0u, 0u, 0u, 0u, 566u, 0u, 567u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 568u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 569u, + 0u, 570u, 571u, 0u, 572u, 0u, 0u, 573u, 0u, 0u, 574u, 0u, 575u, 576u, 577u, 0u, 0u, 578u, 0u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, 580u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 581u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 582u, 0u, 583u, 584u, 0u, 585u, 0u, 0u, 586u, 0u, 0u, 587u, 0u, 588u, 589u, 590u, 0u, 0u, 591u, 0u, + 0u, 0u, 0u, 0u, 0u, 592u, 0u, 593u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 596u, 597u, 0u, 598u, 0u, + 0u, 599u, 0u, 0u, 600u, 0u, 601u, 602u, 603u, 0u, 0u, 604u, 0u, 0u, 0u, 0u, 0u, 0u, 605u, 0u, 606u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 607u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 608u, 0u, 609u, 610u, 0u, 611u, 0u, 0u, 612u, 0u, 0u, 613u, 0u, 614u, 615u, 616u, 0u, 0u, 617u, 0u, 0u, 0u, 0u, 0u, 0u, 618u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 620u, 0u, 621u, 622u, 0u, 623u, 0u, 0u, 624u, 0u, 0u, 625u, + 0u, 626u, 627u, 628u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 631u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 632u, 0u, 633u, 634u, 0u, 635u, 0u, 0u, 636u, 0u, 0u, 637u, 0u, 638u, 639u, 640u, 0u, 0u, 641u, 0u, 0u, 0u, 0u, 0u, 0u, 642u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 643u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 644u, 0u, 645u, 646u, 0u, 647u, 0u, 0u, 648u, 0u, 0u, 649u, 0u, 650u, 651u, 652u, + 0u, 0u, 653u, 0u, 0u, 0u, 0u, 0u, 0u, 654u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 656u, 0u, + 657u, 658u, 0u, 659u, 0u, 0u, 660u, 0u, 0u, 661u, 0u, 662u, 663u, 664u, 0u, 0u, 665u, 0u, 0u, 0u, 0u, 0u, 0u, 666u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 667u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 668u, 0u, 669u, 670u, 0u, 671u, 0u, 0u, 672u, 0u, 0u, 673u, 0u, 674u, 675u, 676u, 0u, 0u, 677u, 0u, + 0u, 0u, 0u, 0u, 0u, 678u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 679u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 680u, 0u, 681u, 682u, 0u, 683u, + 0u, 0u, 684u, 0u, 0u, 685u, 0u, 686u, 687u, 688u, 0u, 0u, 689u, 0u, 0u, 0u, 0u, 0u, 0u, 690u, 0u, 691u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 692u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 693u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 694u, 0u, 695u, 696u, 0u, 697u, 0u, 0u, 698u, 0u, 0u, 699u, 0u, 700u, 701u, 702u, + 0u, 0u, 703u, 0u, 0u, 0u, 0u, 0u, 0u, 704u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 705u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 706u, 0u, 707u, 708u, + 0u, 709u, 0u, 0u, 710u, 0u, 0u, 711u, 0u, 712u, 713u, 714u, 0u, 0u, 715u, 0u, 0u, 0u, 0u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 717u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 719u, 720u, 0u, 721u, 0u, 0u, 722u, 0u, 0u, 723u, 0u, 724u, 725u, 726u, 0u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, + 0u, 728u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 730u, 0u, 731u, 0u, 732u, 0u, 0u, 733u, 0u, + 734u, 0u, 0u, 735u, 0u, 736u, 0u, 737u, 0u, 0u, 738u, 0u, 739u, 0u, 740u, 0u, 0u, 741u, 0u, 0u, 0u, 742u, 0u, 0u, 0u, 0u, 0u, 0u, 743u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 744u, 0u, 0u, 745u, 0u, 0u, 0u, 746u, 0u, 0u, 747u, 0u, 748u, 749u, 0u, 750u, 0u, 0u, 751u, 0u, 0u, 752u, 0u, 753u, + 754u, 755u, 0u, 0u, 756u, 0u, 0u, 0u, 0u, 0u, 757u, 0u, 0u, 0u, 758u, 0u, 0u, 0u, 0u, 759u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 760u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 761u, 0u, 762u, 763u, 0u, 764u, 0u, 0u, 765u, 0u, 0u, 766u, 0u, 767u, 768u, 769u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 772u, 0u, 773u, 0u, 774u, 0u, 0u, 775u, 0u, 0u, 0u, 0u, 0u, 0u, 776u, 0u, 777u, 0u, 0u, 778u, 779u, 0u, 0u, 780u, + 0u, 781u, 0u, 0u, 782u, 0u, 783u, 0u, 784u, 0u, 0u, 785u, 0u, 786u, 0u, 787u, 0u, 0u, 788u, 0u, 789u, 0u, 790u, 0u, 0u, 791u, 0u, 792u, 0u, 793u, 0u, 0u, + 794u, 0u, 795u, 0u, 796u, 0u, 0u, 797u, 0u, 798u, 0u, 799u, 0u, 0u, 800u, 0u, 801u, 0u, 802u, 0u, 0u, 803u, 0u, 804u, 0u, 805u, 0u, 0u, 806u, 0u, 807u, 0u, + 808u, 0u, 0u, 809u, 0u, 810u, 0u, 811u, 0u, 0u, 812u, 0u, 813u, 0u, 814u, 815u, 0u, 816u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 817u, 0u, 0u, 0u, 0u, 0u, 818u, 0u, 0u, 0u, 0u, 819u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 820u, + 0u, 821u, 0u, 822u, 0u, 0u, 0u, 823u, 0u, 0u, 824u, 0u, 0u, 0u, 0u, 0u, 0u, 825u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 826u, 0u, 0u, 0u, + 0u, 0u, 827u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 828u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 829u, 0u, 0u, 0u, 830u, 0u, 0u, 831u, 0u, 832u, 0u, 833u, 0u, 834u, + 0u, 835u, 0u, 0u, 836u, 0u, 0u, 0u, 837u, 0u, 0u, 838u, 0u, 0u, 839u, 0u, 0u, 0u, 840u, 0u, 0u, 841u, 0u, 842u, 0u, 843u, 0u, 0u, 844u, 0u, 845u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 846u, 0u, 0u, 847u, 0u, 848u, 0u, 849u, 0u, 850u, 0u, 0u, 0u, 851u, 0u, 0u, 0u, 852u, 0u, 853u, 0u, 854u, 0u, 855u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 856u, 0u, 0u, 0u, 0u, 0u, 0u, 857u, 0u, 0u, 0u, 858u, 0u, 859u, 0u, 860u, 0u, + 861u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 862u, 0u, 0u, 863u, 0u, 0u, 864u, 0u, 0u, 865u, 0u, 866u, 867u, 0u, 868u, 0u, 869u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 870u, 0u, 871u, 0u, 0u, 872u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 873u, 0u, 0u, 0u, 0u, + 0u, 0u, 874u, 0u, 0u, 0u, 875u, 0u, 876u, 0u, 877u, 0u, 878u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 879u, 0u, 0u, 880u, 0u, 0u, 881u, 0u, 0u, 882u, 0u, 883u, + 884u, 0u, 885u, 0u, 886u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 887u, 0u, 0u, 0u, 0u, 888u, 0u, 0u, 0u, 889u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 890u, 0u, 0u, 0u, 0u, 0u, 891u, 0u, 0u, 892u, 0u, + 893u, 0u, 894u, 0u, 0u, 895u, 0u, 896u, 0u, 897u, 0u, 0u, 898u, 0u, 0u, 899u, 0u, 0u, 900u, 901u, 902u, 0u, 903u, 0u, 0u, 904u, 0u, 0u, 905u, 0u, 0u, 906u, + 907u, 908u, 0u, 909u, 0u, 0u, 910u, 0u, 0u, 911u, 0u, 0u, 912u, 913u, 914u, 0u, 915u, 0u, 0u, 916u, 0u, 917u, 0u, 918u, 0u, 0u, 919u, 0u, 920u, 0u, 921u, 0u, + 0u, 922u, 0u, 923u, 0u, 924u, 0u, 0u, 925u, 0u, 926u, 0u, 927u, 0u, 0u, 928u, 0u, 0u, 929u, 0u, 0u, 930u, 931u, 932u, 0u, 933u, 0u, 0u, 934u, 0u, 0u, 935u, + 0u, 0u, 936u, 937u, 938u, 0u, 939u, 0u, 0u, 940u, 0u, 0u, 0u, 941u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 942u, 0u, 943u, 0u, 0u, 0u, 0u, 944u, 0u, 0u, + 0u, 0u, 0u, 945u, 0u, 946u, 947u, 0u, 0u, 948u, 0u, 0u, 0u, 0u, 0u, 0u, 949u, 0u, 0u, 950u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 951u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 952u, 0u, 0u, 0u, 953u, 0u, 954u, 0u, 955u, 0u, 956u, 0u, 0u, 957u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 958u, 959u, 0u, 960u, 0u, 0u, 961u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 962u, 963u, 0u, 964u, 0u, 0u, 965u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 966u, 967u, 0u, 968u, 0u, 0u, 969u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 970u, 971u, 0u, 972u, 0u, 0u, 973u, 0u, 974u, 975u, 0u, 976u, 0u, 0u, 977u, 0u, + 978u, 979u, 0u, 980u, 0u, 0u, 981u, 0u, 982u, 983u, 0u, 984u, 0u, 0u, 985u, 0u, 986u, 987u, 0u, 988u, 0u, 0u, 989u, 0u, 0u, 990u, 0u, 0u, 991u, 992u, 0u, 993u, + 0u, 0u, 994u, 0u, 0u, 995u, 996u, 997u, 0u, 998u, 0u, 0u, 999u, 0u, 0u, 1000u, 0u, 0u, 1001u, 1002u, 0u, 1003u, 0u, 0u, 1004u, 0u, 0u, 1005u, 1006u, 1007u, 0u, 1008u, + 0u, 0u, 1009u, 0u, 0u, 1010u, 0u, 0u, 1011u, 1012u, 0u, 1013u, 0u, 0u, 1014u, 0u, 0u, 1015u, 1016u, 1017u, 0u, 1018u, 0u, 0u, 1019u, 0u, 0u, 1020u, 0u, 0u, 1021u, 1022u, + 0u, 1023u, 0u, 0u, 1024u, 0u, 0u, 1025u, 1026u, 1027u, 0u, 1028u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1029u, 0u, 0u, 0u, 1030u, 0u, 1031u, 0u, 1032u, 0u, 1033u, 0u, + 0u, 0u, 1034u, 0u, 0u, 0u, 1035u, 0u, 1036u, 0u, 1037u, 0u, 1038u, 1039u, 0u, 0u, 0u, 0u, 1040u, 0u, 0u, 0u, 0u, 1041u, 0u, 1042u, 0u, 1043u, 0u, 1044u, 0u, 1045u, + 1046u, 0u, 0u, 0u, 1047u, 0u, 0u, 0u, 0u, 1048u, 0u, 1049u, 0u, 1050u, 0u, 1051u, 0u, 1052u, 1053u, 0u, 0u, 0u, 1054u, 0u, 0u, 0u, 0u, 1055u, 0u, 1056u, 0u, 1057u, + 0u, 1058u, 0u, 1059u, 1060u, 0u, 0u, 0u, 1061u, 0u, 0u, 0u, 0u, 1062u, 0u, 1063u, 0u, 1064u, 0u, 1065u, 0u, 1066u, 1067u, 0u, 0u, 0u, 1068u, 0u, 0u, 1069u, +}; void recomp_unit_0097_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,31,5,6,2,28 fprs=12,20,13,14 gpr_occ=3610 fpr_occ=159 gpr_total=5718 fpr_total=195 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08988000u; - entry_id = 0u; - if (entry_delta < 16376u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0097[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0097[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16376u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0097[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08988000; @@ -1147,6 +1270,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08988000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1186,21 +1333,60 @@ L_08988040: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0898804Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 3u, 0x0898804Cu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898804Cu) goto L_0898804C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898804C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(28), ctx.gpr[16]); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08988060u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 4u, 0x08988060u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988060u) goto L_08988060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988060: aot_gpr_31 = (0x08988068u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 5u, 0x08988068u, 0x0887F7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 744u, 0x0887F7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988068u) goto L_08988068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988068: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -1211,8 +1397,8 @@ L_08988068: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08988080: @@ -1234,8 +1420,21 @@ L_08988080: L_089880AC: aot_gpr_31 = (0x089880B4u); aot_gpr_4 = (ctx.gpr[16] + static_cast(28)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 8u, 0x089880B4u, 0x0887F7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 744u, 0x0887F7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089880B4u) goto L_089880B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089880B4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(28))); @@ -1247,8 +1446,21 @@ L_089880B4: L_089880BC: aot_gpr_31 = (0x089880C4u); aot_gpr_4 = (ctx.gpr[16] + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 10u, 0x089880C4u, 0x0887F7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 744u, 0x0887F7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089880C4u) goto L_089880C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089880C4: aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); goto L_089880C8; @@ -1257,8 +1469,8 @@ L_089880C8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089880D8: @@ -1468,8 +1680,8 @@ L_08988284: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08988298: @@ -1567,8 +1779,21 @@ L_0898836C: aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08988378u); aot_gpr_5 = (aot_gpr_5 + static_cast(10)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 43u, 0x08988378u, 0x08987DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 946u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 946u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 946u, 0x08987DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988378u) goto L_08988378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988378: aot_gpr_4 = (std::bit_cast(ctx.fpr[22])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1627,8 +1852,8 @@ L_089883C0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089883DC: @@ -1723,24 +1948,63 @@ L_089884D0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089884E8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 55u, 0x089884E8u, 0x08987D6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 945u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 945u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 945u, 0x08987D6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089884E8u) goto L_089884E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089884E8: ctx.gpr[23] = (ctx.gpr[29] + static_cast(82)); aot_gpr_5 = (ctx.gpr[18] + static_cast(12)); aot_gpr_6 = (ctx.gpr[19] + static_cast(12)); aot_gpr_31 = (0x089884FCu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 56u, 0x089884FCu, 0x08987D6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 945u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 945u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 945u, 0x08987D6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089884FCu) goto L_089884FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089884FC: ctx.gpr[30] = (ctx.gpr[29] + static_cast(84)); aot_gpr_5 = (ctx.gpr[18] + static_cast(14)); aot_gpr_6 = (ctx.gpr[19] + static_cast(14)); aot_gpr_31 = (0x08988510u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 57u, 0x08988510u, 0x08987D6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 945u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 945u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 945u, 0x08987D6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988510u) goto L_08988510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988510: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(0))); aot_mem.aot_direct_store16(ctx.gpr[29] + static_cast(0), static_cast(aot_gpr_4)); @@ -1762,8 +2026,21 @@ L_08988510: aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08988554u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 58u, 0x08988554u, 0x08987DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 946u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 946u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 946u, 0x08987DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988554u) goto L_08988554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988554: aot_gpr_4 = (std::bit_cast(ctx.fpr[22])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1869,8 +2146,8 @@ L_089885C4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089885FC: @@ -1925,8 +2202,8 @@ L_0898866C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08988678: @@ -1965,24 +2242,63 @@ L_089886C4: ctx.gpr[17] = (aot_gpr_5 + ctx.gpr[7]); aot_gpr_31 = (0x089886E0u); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 70u, 0x089886E0u, 0x089FB44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 514u, 0x089FB44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089886E0u) goto L_089886E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089886E0: ctx.gpr[18] = (ctx.gpr[29] + static_cast(16)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(28))); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089886F4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 71u, 0x089886F4u, 0x089FB44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 514u, 0x089FB44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089886F4u) goto L_089886F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089886F4: ctx.gpr[7] = (ctx.gpr[16] + static_cast(4)); aot_gpr_4 = (ctx.gpr[29] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08988708u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 72u, 0x08988708u, 0x08987C88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 936u, 0x08987C88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988708u) goto L_08988708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988708: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2064,8 +2380,21 @@ L_08988728: ctx.gpr[7] = (ctx.gpr[16] + static_cast(4)); aot_gpr_31 = (0x08988830u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 75u, 0x08988830u, 0x08987C88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 936u, 0x08987C88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988830u) goto L_08988830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988830: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(64), aot_run_words); @@ -2076,8 +2405,8 @@ L_08988830: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08988848: @@ -2355,8 +2684,8 @@ L_08988AA8: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08988AB8: @@ -2612,8 +2941,21 @@ L_08988CE0: ctx.execute_vfpu_unary_ct<3u, 1u, 4u, 0u>(); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08988CF0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 130u, 0x08988CF0u, 0x08987DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 947u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 947u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 947u, 0x08987DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988CF0u) goto L_08988CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988CF0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(8))); ctx.execute_vfpu_unary_ct<1u, 3u, 4u, 0u>(); @@ -2629,8 +2971,21 @@ L_08988CF8: ctx.execute_vfpu_unary_ct<3u, 2u, 4u, 0u>(); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08988D24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 132u, 0x08988D24u, 0x08987DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 947u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 947u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 947u, 0x08987DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988D24u) goto L_08988D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988D24: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(8))); ctx.execute_vfpu_unary_ct<2u, 3u, 4u, 0u>(); @@ -2653,8 +3008,8 @@ L_08988D54: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08988D64: @@ -2745,8 +3100,8 @@ L_08988DE8: } L_08988DFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08988E04: @@ -2754,8 +3109,21 @@ L_08988E04: { const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08988E20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 147u, 0x08988E20u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988E20u) goto L_08988E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988E20: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2805,8 +3173,21 @@ L_08988E58: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08988E64u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 155u, 0x08988E64u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988E64u) goto L_08988E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988E64: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2830,8 +3211,21 @@ L_08988E80: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08988E8Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-16112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 160u, 0x08988E8Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988E8Cu) goto L_08988E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988E8C: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -2840,76 +3234,219 @@ L_08988E8C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08988EA8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 161u, 0x08988EA8u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988EA8u) goto L_08988EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988EA8: aot_gpr_4 = (0u | 331u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988EB8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 162u, 0x08988EB8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988EB8u) goto L_08988EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988EB8: aot_gpr_4 = (0u | 335u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988EC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 163u, 0x08988EC8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988EC8u) goto L_08988EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988EC8: aot_gpr_4 = (0u | 344u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988ED8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 164u, 0x08988ED8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988ED8u) goto L_08988ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988ED8: aot_gpr_4 = (0u | 346u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988EE8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 165u, 0x08988EE8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988EE8u) goto L_08988EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988EE8: aot_gpr_4 = (0u | 349u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988EF8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 166u, 0x08988EF8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988EF8u) goto L_08988EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988EF8: aot_gpr_4 = (0u | 353u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988F08u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 167u, 0x08988F08u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F08u) goto L_08988F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988F08: aot_gpr_4 = (0u | 348u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988F18u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 168u, 0x08988F18u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F18u) goto L_08988F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988F18: aot_gpr_4 = (0u | 357u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988F28u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 169u, 0x08988F28u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F28u) goto L_08988F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988F28: aot_gpr_4 = (0u | 360u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08988F38u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 170u, 0x08988F38u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F38u) goto L_08988F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988F38: aot_gpr_31 = (0x08988F40u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 171u, 0x08988F40u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F40u) goto L_08988F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988F40: aot_gpr_31 = (0x08988F48u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F48u) goto L_08988F48; @@ -2920,8 +3457,21 @@ L_08988F48: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08988F5Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 173u, 0x08988F5Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F5Cu) goto L_08988F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988F5C: aot_gpr_31 = (0x08988F64u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F64u) goto L_08988F64; @@ -2932,8 +3482,21 @@ L_08988F64: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08988F78u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 175u, 0x08988F78u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F78u) goto L_08988F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988F78: aot_gpr_31 = (0x08988F80u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F80u) goto L_08988F80; @@ -2944,8 +3507,21 @@ L_08988F80: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08988F94u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 177u, 0x08988F94u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F94u) goto L_08988F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988F94: aot_gpr_31 = (0x08988F9Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988F9Cu) goto L_08988F9C; @@ -2956,8 +3532,21 @@ L_08988F9C: aot_gpr_6 = (0u | 100u); aot_gpr_31 = (0x08988FB0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 179u, 0x08988FB0u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988FB0u) goto L_08988FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988FB0: aot_gpr_31 = (0x08988FB8u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988FB8u) goto L_08988FB8; @@ -2968,8 +3557,21 @@ L_08988FB8: aot_gpr_6 = (0u | 50u); aot_gpr_31 = (0x08988FCCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 181u, 0x08988FCCu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988FCCu) goto L_08988FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988FCC: aot_gpr_31 = (0x08988FD4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988FD4u) goto L_08988FD4; @@ -2980,8 +3582,21 @@ L_08988FD4: aot_gpr_6 = (0u | 150u); aot_gpr_31 = (0x08988FE8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 183u, 0x08988FE8u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988FE8u) goto L_08988FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08988FE8: aot_gpr_31 = (0x08988FF0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08988FF0u) goto L_08988FF0; @@ -2992,8 +3607,21 @@ L_08988FF0: aot_gpr_6 = (0u | 120u); aot_gpr_31 = (0x08989004u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 185u, 0x08989004u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989004u) goto L_08989004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989004: aot_gpr_31 = (0x0898900Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898900Cu) goto L_0898900C; @@ -3004,8 +3632,21 @@ L_0898900C: aot_gpr_6 = (0u | 25u); aot_gpr_31 = (0x08989020u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 187u, 0x08989020u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989020u) goto L_08989020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989020: aot_gpr_31 = (0x08989028u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989028u) goto L_08989028; @@ -3016,53 +3657,183 @@ L_08989028: aot_gpr_6 = (0u | 250u); aot_gpr_31 = (0x0898903Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 189u, 0x0898903Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898903Cu) goto L_0898903C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898903C: aot_gpr_31 = (0x08989044u); aot_gpr_4 = (0u | 331u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 190u, 0x08989044u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989044u) goto L_08989044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989044: aot_gpr_31 = (0x0898904Cu); aot_gpr_4 = (0u | 346u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 191u, 0x0898904Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898904Cu) goto L_0898904C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898904C: aot_gpr_31 = (0x08989054u); aot_gpr_4 = (0u | 353u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 192u, 0x08989054u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989054u) goto L_08989054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989054: aot_gpr_31 = (0x0898905Cu); aot_gpr_4 = (0u | 335u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 193u, 0x0898905Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898905Cu) goto L_0898905C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898905C: aot_gpr_31 = (0x08989064u); aot_gpr_4 = (0u | 344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 194u, 0x08989064u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989064u) goto L_08989064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989064: aot_gpr_31 = (0x0898906Cu); aot_gpr_4 = (0u | 349u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 195u, 0x0898906Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898906Cu) goto L_0898906C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898906C: aot_gpr_31 = (0x08989074u); aot_gpr_4 = (0u | 348u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 196u, 0x08989074u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989074u) goto L_08989074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989074: aot_gpr_31 = (0x0898907Cu); aot_gpr_4 = (0u | 357u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 197u, 0x0898907Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898907Cu) goto L_0898907C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898907C: aot_gpr_31 = (0x08989084u); aot_gpr_4 = (0u | 360u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 198u, 0x08989084u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989084u) goto L_08989084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989084: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -3079,8 +3850,8 @@ L_08989094: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089890AC: @@ -3088,8 +3859,21 @@ L_089890AC: { const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089890C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 201u, 0x089890C8u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089890C8u) goto L_089890C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089890C8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3139,8 +3923,21 @@ L_08989100: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898910Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 209u, 0x0898910Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898910Cu) goto L_0898910C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898910C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3164,8 +3961,21 @@ L_08989128: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08989134u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 214u, 0x08989134u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989134u) goto L_08989134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989134: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -3174,76 +3984,219 @@ L_08989134: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08989150u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 215u, 0x08989150u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989150u) goto L_08989150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989150: aot_gpr_4 = (0u | 340u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08989160u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 216u, 0x08989160u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989160u) goto L_08989160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989160: aot_gpr_4 = (0u | 342u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08989170u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 217u, 0x08989170u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989170u) goto L_08989170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989170: aot_gpr_4 = (0u | 363u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08989180u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 218u, 0x08989180u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989180u) goto L_08989180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989180: aot_gpr_4 = (0u | 347u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08989190u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 219u, 0x08989190u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989190u) goto L_08989190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989190: aot_gpr_4 = (0u | 351u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089891A0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 220u, 0x089891A0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089891A0u) goto L_089891A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089891A0: aot_gpr_4 = (0u | 355u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089891B0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 221u, 0x089891B0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089891B0u) goto L_089891B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089891B0: aot_gpr_4 = (0u | 352u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089891C0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 222u, 0x089891C0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089891C0u) goto L_089891C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089891C0: aot_gpr_4 = (0u | 358u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089891D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 223u, 0x089891D0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089891D0u) goto L_089891D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089891D0: aot_gpr_4 = (0u | 359u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089891E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 224u, 0x089891E0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089891E0u) goto L_089891E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089891E0: aot_gpr_31 = (0x089891E8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 225u, 0x089891E8u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089891E8u) goto L_089891E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089891E8: aot_gpr_31 = (0x089891F0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089891F0u) goto L_089891F0; @@ -3254,8 +4207,21 @@ L_089891F0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08989204u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 227u, 0x08989204u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989204u) goto L_08989204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989204: aot_gpr_31 = (0x0898920Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898920Cu) goto L_0898920C; @@ -3266,8 +4232,21 @@ L_0898920C: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08989220u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 229u, 0x08989220u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989220u) goto L_08989220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989220: aot_gpr_31 = (0x08989228u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989228u) goto L_08989228; @@ -3278,8 +4257,21 @@ L_08989228: aot_gpr_6 = (0u | 40u); aot_gpr_31 = (0x0898923Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 231u, 0x0898923Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898923Cu) goto L_0898923C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898923C: aot_gpr_31 = (0x08989244u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989244u) goto L_08989244; @@ -3290,8 +4282,21 @@ L_08989244: aot_gpr_6 = (0u | 25u); aot_gpr_31 = (0x08989258u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 233u, 0x08989258u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989258u) goto L_08989258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989258: aot_gpr_31 = (0x08989260u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989260u) goto L_08989260; @@ -3302,8 +4307,21 @@ L_08989260: aot_gpr_6 = (0u | 100u); aot_gpr_31 = (0x08989274u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 235u, 0x08989274u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989274u) goto L_08989274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989274: aot_gpr_31 = (0x0898927Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898927Cu) goto L_0898927C; @@ -3314,8 +4332,21 @@ L_0898927C: aot_gpr_6 = (0u | 150u); aot_gpr_31 = (0x08989290u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 237u, 0x08989290u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989290u) goto L_08989290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989290: aot_gpr_31 = (0x08989298u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989298u) goto L_08989298; @@ -3326,8 +4357,21 @@ L_08989298: aot_gpr_6 = (0u | 21u); aot_gpr_31 = (0x089892ACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 239u, 0x089892ACu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892ACu) goto L_089892AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089892AC: aot_gpr_31 = (0x089892B4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892B4u) goto L_089892B4; @@ -3338,53 +4382,183 @@ L_089892B4: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x089892C8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 241u, 0x089892C8u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892C8u) goto L_089892C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089892C8: aot_gpr_31 = (0x089892D0u); aot_gpr_4 = (0u | 340u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 242u, 0x089892D0u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892D0u) goto L_089892D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089892D0: aot_gpr_31 = (0x089892D8u); aot_gpr_4 = (0u | 342u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 243u, 0x089892D8u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892D8u) goto L_089892D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089892D8: aot_gpr_31 = (0x089892E0u); aot_gpr_4 = (0u | 363u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 244u, 0x089892E0u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892E0u) goto L_089892E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089892E0: aot_gpr_31 = (0x089892E8u); aot_gpr_4 = (0u | 347u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 245u, 0x089892E8u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892E8u) goto L_089892E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089892E8: aot_gpr_31 = (0x089892F0u); aot_gpr_4 = (0u | 351u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 246u, 0x089892F0u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892F0u) goto L_089892F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089892F0: aot_gpr_31 = (0x089892F8u); aot_gpr_4 = (0u | 355u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 247u, 0x089892F8u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089892F8u) goto L_089892F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089892F8: aot_gpr_31 = (0x08989300u); aot_gpr_4 = (0u | 352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 248u, 0x08989300u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989300u) goto L_08989300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989300: aot_gpr_31 = (0x08989308u); aot_gpr_4 = (0u | 358u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 249u, 0x08989308u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989308u) goto L_08989308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989308: aot_gpr_31 = (0x08989310u); aot_gpr_4 = (0u | 359u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 250u, 0x08989310u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989310u) goto L_08989310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989310: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -3401,8 +4575,8 @@ L_08989320: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989338: @@ -3410,8 +4584,21 @@ L_08989338: { const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], aot_gpr_31}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08989354u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 253u, 0x08989354u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989354u) goto L_08989354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989354: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3461,8 +4648,21 @@ L_0898938C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08989398u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 261u, 0x08989398u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989398u) goto L_08989398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989398: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3486,8 +4686,21 @@ L_089893B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x089893C0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 266u, 0x089893C0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089893C0u) goto L_089893C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089893C0: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -3496,76 +4709,219 @@ L_089893C0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089893DCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 267u, 0x089893DCu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089893DCu) goto L_089893DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089893DC: aot_gpr_4 = (0u | 341u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089893ECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 268u, 0x089893ECu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089893ECu) goto L_089893EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089893EC: aot_gpr_4 = (0u | 342u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089893FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 269u, 0x089893FCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089893FCu) goto L_089893FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089893FC: aot_gpr_4 = (0u | 347u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0898940Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 270u, 0x0898940Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898940Cu) goto L_0898940C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898940C: aot_gpr_4 = (0u | 350u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0898941Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 271u, 0x0898941Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898941Cu) goto L_0898941C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898941C: aot_gpr_4 = (0u | 356u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0898942Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 272u, 0x0898942Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898942Cu) goto L_0898942C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898942C: aot_gpr_4 = (0u | 352u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0898943Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 273u, 0x0898943Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898943Cu) goto L_0898943C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898943C: aot_gpr_4 = (0u | 358u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0898944Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 274u, 0x0898944Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898944Cu) goto L_0898944C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898944C: aot_gpr_4 = (0u | 362u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0898945Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 275u, 0x0898945Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898945Cu) goto L_0898945C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898945C: aot_gpr_4 = (0u | 366u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0898946Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 276u, 0x0898946Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898946Cu) goto L_0898946C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898946C: aot_gpr_31 = (0x08989474u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 277u, 0x08989474u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989474u) goto L_08989474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989474: aot_gpr_31 = (0x0898947Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898947Cu) goto L_0898947C; @@ -3576,8 +4932,21 @@ L_0898947C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08989490u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 279u, 0x08989490u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989490u) goto L_08989490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989490: aot_gpr_31 = (0x08989498u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989498u) goto L_08989498; @@ -3588,8 +4957,21 @@ L_08989498: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x089894ACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 281u, 0x089894ACu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089894ACu) goto L_089894AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089894AC: aot_gpr_31 = (0x089894B4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089894B4u) goto L_089894B4; @@ -3600,8 +4982,21 @@ L_089894B4: aot_gpr_6 = (0u | 40u); aot_gpr_31 = (0x089894C8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 283u, 0x089894C8u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089894C8u) goto L_089894C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089894C8: aot_gpr_31 = (0x089894D0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089894D0u) goto L_089894D0; @@ -3612,8 +5007,21 @@ L_089894D0: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x089894E4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 285u, 0x089894E4u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089894E4u) goto L_089894E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089894E4: aot_gpr_31 = (0x089894ECu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089894ECu) goto L_089894EC; @@ -3624,8 +5032,21 @@ L_089894EC: aot_gpr_6 = (0u | 100u); aot_gpr_31 = (0x08989500u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 287u, 0x08989500u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989500u) goto L_08989500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989500: aot_gpr_31 = (0x08989508u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989508u) goto L_08989508; @@ -3636,8 +5057,21 @@ L_08989508: aot_gpr_6 = (0u | 150u); aot_gpr_31 = (0x0898951Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 289u, 0x0898951Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898951Cu) goto L_0898951C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898951C: aot_gpr_31 = (0x08989524u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989524u) goto L_08989524; @@ -3648,8 +5082,21 @@ L_08989524: aot_gpr_6 = (0u | 21u); aot_gpr_31 = (0x08989538u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 291u, 0x08989538u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989538u) goto L_08989538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989538: aot_gpr_31 = (0x08989540u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989540u) goto L_08989540; @@ -3660,53 +5107,183 @@ L_08989540: aot_gpr_6 = (0u | 500u); aot_gpr_31 = (0x08989554u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 293u, 0x08989554u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989554u) goto L_08989554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989554: aot_gpr_31 = (0x0898955Cu); aot_gpr_4 = (0u | 341u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 294u, 0x0898955Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898955Cu) goto L_0898955C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898955C: aot_gpr_31 = (0x08989564u); aot_gpr_4 = (0u | 342u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 295u, 0x08989564u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989564u) goto L_08989564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989564: aot_gpr_31 = (0x0898956Cu); aot_gpr_4 = (0u | 347u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 296u, 0x0898956Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898956Cu) goto L_0898956C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898956C: aot_gpr_31 = (0x08989574u); aot_gpr_4 = (0u | 350u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 297u, 0x08989574u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989574u) goto L_08989574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989574: aot_gpr_31 = (0x0898957Cu); aot_gpr_4 = (0u | 356u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 298u, 0x0898957Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898957Cu) goto L_0898957C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898957C: aot_gpr_31 = (0x08989584u); aot_gpr_4 = (0u | 352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 299u, 0x08989584u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989584u) goto L_08989584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989584: aot_gpr_31 = (0x0898958Cu); aot_gpr_4 = (0u | 358u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 300u, 0x0898958Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898958Cu) goto L_0898958C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898958C: aot_gpr_31 = (0x08989594u); aot_gpr_4 = (0u | 362u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 301u, 0x08989594u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989594u) goto L_08989594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989594: aot_gpr_31 = (0x0898959Cu); aot_gpr_4 = (0u | 366u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 302u, 0x0898959Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898959Cu) goto L_0898959C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898959C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -3723,8 +5300,8 @@ L_089895AC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089895C4: @@ -3756,8 +5333,21 @@ L_089895F8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08989604u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 309u, 0x08989604u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989604u) goto L_08989604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989604: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3781,8 +5371,21 @@ L_08989620: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898962Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 314u, 0x0898962Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898962Cu) goto L_0898962C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898962C: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -3791,8 +5394,21 @@ L_0898962C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08989648u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 315u, 0x08989648u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989648u) goto L_08989648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989648: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-17674))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -3810,8 +5426,8 @@ L_08989648: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898967C: @@ -3852,8 +5468,21 @@ L_089896C0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089896CCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 322u, 0x089896CCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089896CCu) goto L_089896CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089896CC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3877,8 +5506,21 @@ L_089896E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x089896F4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16096)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 327u, 0x089896F4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089896F4u) goto L_089896F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089896F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -3886,8 +5528,21 @@ L_089896F4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898970Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 328u, 0x0898970Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898970Cu) goto L_0898970C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898970C: aot_gpr_4 = (2238u << 16u); goto L_08989710; @@ -3902,8 +5557,21 @@ L_08989710: L_08989724: aot_gpr_31 = (0x0898972Cu); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(1252), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 331u, 0x0898972Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898972Cu) goto L_0898972C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898972C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3913,18 +5581,57 @@ L_0898972C: } L_08989734: aot_gpr_31 = (0x0898973Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 333u, 0x0898973Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898973Cu) goto L_0898973C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898973C: aot_gpr_31 = (0x08989744u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(632))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 334u, 0x08989744u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989744u) goto L_08989744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989744: aot_gpr_31 = (0x0898974Cu); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(636), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 335u, 0x0898974Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898974Cu) goto L_0898974C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898974C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3935,58 +5642,188 @@ L_0898974C: } L_08989758: aot_gpr_31 = (0x08989760u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 337u, 0x08989760u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989760u) goto L_08989760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989760: aot_gpr_4 = (aot_gpr_2 + static_cast(944)); aot_gpr_31 = (0x0898976Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 338u, 0x0898976Cu, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898976Cu) goto L_0898976C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898976C: aot_gpr_31 = (0x08989774u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 339u, 0x08989774u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989774u) goto L_08989774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989774: aot_gpr_4 = (aot_gpr_2 + static_cast(944)); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08989784u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 340u, 0x08989784u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989784u) goto L_08989784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989784: aot_gpr_31 = (0x0898978Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 341u, 0x0898978Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898978Cu) goto L_0898978C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898978C: aot_gpr_4 = (aot_gpr_2 + static_cast(944)); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x0898979Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 342u, 0x0898979Cu, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898979Cu) goto L_0898979C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898979C: aot_gpr_31 = (0x089897A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 343u, 0x089897A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089897A4u) goto L_089897A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089897A4: aot_gpr_4 = (aot_gpr_2 + static_cast(944)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089897B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 344u, 0x089897B4u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089897B4u) goto L_089897B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089897B4: aot_gpr_31 = (0x089897BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 345u, 0x089897BCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089897BCu) goto L_089897BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089897BC: aot_gpr_4 = (aot_gpr_2 + static_cast(944)); aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x089897CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 346u, 0x089897CCu, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089897CCu) goto L_089897CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089897CC: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -4003,8 +5840,8 @@ L_089897CC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089897FC: @@ -4040,8 +5877,21 @@ L_08989840: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898984Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 351u, 0x0898984Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898984Cu) goto L_0898984C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898984C: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4065,8 +5915,21 @@ L_08989868: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08989874u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 356u, 0x08989874u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989874u) goto L_08989874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989874: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4074,31 +5937,96 @@ L_08989874: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898988Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 357u, 0x0898988Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898988Cu) goto L_0898988C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898988C: aot_gpr_31 = (0x08989894u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 358u, 0x08989894u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989894u) goto L_08989894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989894: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089898A8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 359u, 0x089898A8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089898A8u) goto L_089898A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089898A8: aot_gpr_31 = (0x089898B0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 360u, 0x089898B0u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089898B0u) goto L_089898B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089898B0: aot_gpr_31 = (0x089898B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 361u, 0x089898B8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089898B8u) goto L_089898B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089898B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4132,8 +6060,21 @@ L_089898E0: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x089898ECu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 367u, 0x089898ECu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089898ECu) goto L_089898EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089898EC: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -4157,8 +6098,21 @@ L_08989908: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08989914u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 372u, 0x08989914u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989914u) goto L_08989914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989914: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4166,8 +6120,21 @@ L_08989914: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898992Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 373u, 0x0898992Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898992Cu) goto L_0898992C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898992C: aot_gpr_4 = (ctx.gpr[19] & 1u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4179,19 +6146,58 @@ L_0898992C: L_08989938: aot_gpr_31 = (0x08989940u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 375u, 0x08989940u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989940u) goto L_08989940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989940: aot_gpr_31 = (0x08989948u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 376u, 0x08989948u, 0x08AD37A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 623u, 0x08AD37A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989948u) goto L_08989948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989948: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-16928))); aot_gpr_31 = (0x08989954u); aot_gpr_4 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 377u, 0x08989954u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989954u) goto L_08989954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989954: aot_gpr_2 = (17096u << 16u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -4204,8 +6210,21 @@ L_08989954: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08989980u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 378u, 0x08989980u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989980u) goto L_08989980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989980: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; @@ -4218,8 +6237,21 @@ L_0898998C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08989998u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 380u, 0x08989998u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989998u) goto L_08989998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989998: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4234,8 +6266,21 @@ L_089899A4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089899B4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 382u, 0x089899B4u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089899B4u) goto L_089899B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089899B4: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_089899B8; @@ -4326,8 +6371,21 @@ L_089899C0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08989A68u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 385u, 0x08989A68u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989A68u) goto L_08989A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989A68: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(32), aot_run_words); @@ -4337,8 +6395,21 @@ L_08989A68: } aot_gpr_31 = (0x08989A7Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 386u, 0x08989A7Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989A7Cu) goto L_08989A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989A7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -4349,8 +6420,21 @@ L_08989A7C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(680), aot_gpr_4); aot_gpr_31 = (0x08989AA0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 387u, 0x08989AA0u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989AA0u) goto L_08989AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989AA0: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -4369,8 +6453,8 @@ L_08989AA0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989AD8: @@ -4383,8 +6467,8 @@ L_08989AE8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989AF4: @@ -4397,8 +6481,8 @@ L_08989B04: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989B10: @@ -4430,8 +6514,21 @@ L_08989B48: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08989B54u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 397u, 0x08989B54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989B54u) goto L_08989B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989B54: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4455,8 +6552,21 @@ L_08989B70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08989B7Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 402u, 0x08989B7Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989B7Cu) goto L_08989B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989B7C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4464,8 +6574,21 @@ L_08989B7C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08989B94u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 403u, 0x08989B94u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989B94u) goto L_08989B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989B94: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-15972))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -4570,8 +6693,8 @@ L_08989C3C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989C58: @@ -4605,8 +6728,21 @@ L_08989C94: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08989CA0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 419u, 0x08989CA0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989CA0u) goto L_08989CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989CA0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4630,8 +6766,21 @@ L_08989CBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08989CC8u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 424u, 0x08989CC8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989CC8u) goto L_08989CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989CC8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4639,8 +6788,21 @@ L_08989CC8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08989CE0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 425u, 0x08989CE0u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989CE0u) goto L_08989CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989CE0: aot_gpr_4 = (16u << 16u); aot_gpr_5 = (0u | 4u); @@ -4697,8 +6859,8 @@ L_08989D28: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989D54: @@ -4730,8 +6892,21 @@ L_08989D88: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08989D94u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 437u, 0x08989D94u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989D94u) goto L_08989D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989D94: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4755,8 +6930,21 @@ L_08989DB0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08989DBCu); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 442u, 0x08989DBCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989DBCu) goto L_08989DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989DBC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4764,8 +6952,21 @@ L_08989DBC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08989DD4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 443u, 0x08989DD4u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989DD4u) goto L_08989DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989DD4: aot_gpr_4 = (0u | 4u); ctx.gpr[16] = (0u | 16u); @@ -4804,8 +7005,8 @@ L_08989E0C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989E38: @@ -4837,8 +7038,21 @@ L_08989E6C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08989E78u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 452u, 0x08989E78u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989E78u) goto L_08989E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989E78: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4862,8 +7076,21 @@ L_08989E94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08989EA0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 457u, 0x08989EA0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989EA0u) goto L_08989EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989EA0: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -4872,8 +7099,21 @@ L_08989EA0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08989EBCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 458u, 0x08989EBCu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989EBCu) goto L_08989EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989EBC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-11828))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -4891,8 +7131,8 @@ L_08989EBC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989EF0: @@ -4924,8 +7164,21 @@ L_08989F24: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08989F30u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 464u, 0x08989F30u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989F30u) goto L_08989F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989F30: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4949,8 +7202,21 @@ L_08989F4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08989F58u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 469u, 0x08989F58u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989F58u) goto L_08989F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989F58: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4958,8 +7224,21 @@ L_08989F58: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08989F70u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 470u, 0x08989F70u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08989F70u) goto L_08989F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08989F70: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7672))); aot_gpr_4 = (16512u << 16u); @@ -4992,8 +7271,8 @@ L_08989F9C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08989FC8: @@ -5025,8 +7304,21 @@ L_08989FFC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A008u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 478u, 0x0898A008u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A008u) goto L_0898A008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A008: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5050,8 +7342,21 @@ L_0898A024: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A030u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 483u, 0x0898A030u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A030u) goto L_0898A030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A030: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -5059,8 +7364,21 @@ L_0898A030: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A048u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 484u, 0x0898A048u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A048u) goto L_0898A048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A048: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7672))); aot_gpr_4 = (16000u << 16u); @@ -5093,8 +7411,8 @@ L_0898A074: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A0A0: @@ -5126,8 +7444,21 @@ L_0898A0D4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A0E0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 492u, 0x0898A0E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A0E0u) goto L_0898A0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A0E0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5151,8 +7482,21 @@ L_0898A0FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A108u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16072)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 497u, 0x0898A108u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A108u) goto L_0898A108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A108: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -5161,8 +7505,21 @@ L_0898A108: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A124u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 498u, 0x0898A124u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A124u) goto L_0898A124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A124: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(7800))); aot_gpr_5 = (2238u << 16u); @@ -5191,8 +7548,8 @@ L_0898A124: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A184: @@ -5224,8 +7581,21 @@ L_0898A1BC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A1C8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 504u, 0x0898A1C8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A1C8u) goto L_0898A1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A1C8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5249,8 +7619,21 @@ L_0898A1E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A1F0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16064)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 509u, 0x0898A1F0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A1F0u) goto L_0898A1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A1F0: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -5259,8 +7642,21 @@ L_0898A1F0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A20Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 510u, 0x0898A20Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A20Cu) goto L_0898A20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A20C: aot_gpr_4 = (2238u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-6992)); @@ -5286,8 +7682,8 @@ L_0898A224: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A254: @@ -5319,8 +7715,21 @@ L_0898A288: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0898A294u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 517u, 0x0898A294u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A294u) goto L_0898A294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A294: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5344,8 +7753,21 @@ L_0898A2B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A2BCu); aot_gpr_5 = (aot_gpr_28 + static_cast(-16056)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 522u, 0x0898A2BCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A2BCu) goto L_0898A2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A2BC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -5353,8 +7775,21 @@ L_0898A2BC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A2D4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 523u, 0x0898A2D4u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A2D4u) goto L_0898A2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A2D4: aot_gpr_31 = (0x0898A2DCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A2DCu) goto L_0898A2DC; @@ -5378,8 +7813,21 @@ L_0898A2FC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x0898A308u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 527u, 0x0898A308u, 0x0894748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 657u, 0x0894748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A308u) goto L_0898A308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A308: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -5395,8 +7843,8 @@ L_0898A308: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A334: @@ -5428,8 +7876,21 @@ L_0898A368: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A374u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 533u, 0x0898A374u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A374u) goto L_0898A374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A374: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5453,8 +7914,21 @@ L_0898A390: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A39Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-16056)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 538u, 0x0898A39Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A39Cu) goto L_0898A39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A39C: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -5463,8 +7937,21 @@ L_0898A39C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A3B8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 539u, 0x0898A3B8u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A3B8u) goto L_0898A3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A3B8: aot_gpr_31 = (0x0898A3C0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A3C0u) goto L_0898A3C0; @@ -5473,8 +7960,21 @@ L_0898A3C0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0898A3CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 541u, 0x0898A3CCu, 0x0894748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 657u, 0x0894748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A3CCu) goto L_0898A3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A3CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -5489,8 +7989,8 @@ L_0898A3CC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A3F4: @@ -5522,8 +8022,21 @@ L_0898A428: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A434u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 547u, 0x0898A434u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A434u) goto L_0898A434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A434: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5547,8 +8060,21 @@ L_0898A450: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A45Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-16048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 552u, 0x0898A45Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A45Cu) goto L_0898A45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A45C: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -5557,13 +8083,39 @@ L_0898A45C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A478u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 553u, 0x0898A478u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A478u) goto L_0898A478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A478: aot_gpr_31 = (0x0898A480u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 554u, 0x0898A480u, 0x08AFB4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 474u, 0x08AFB4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A480u) goto L_0898A480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A480: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -5578,8 +8130,8 @@ L_0898A480: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A4A8: @@ -5611,8 +8163,21 @@ L_0898A4DC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A4E8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 560u, 0x0898A4E8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A4E8u) goto L_0898A4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A4E8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5636,8 +8201,21 @@ L_0898A504: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A510u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 565u, 0x0898A510u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A510u) goto L_0898A510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A510: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -5646,13 +8224,39 @@ L_0898A510: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A52Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 566u, 0x0898A52Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A52Cu) goto L_0898A52C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A52C: aot_gpr_31 = (0x0898A534u); aot_gpr_4 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 567u, 0x0898A534u, 0x08AFB4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 474u, 0x08AFB4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A534u) goto L_0898A534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A534: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -5667,8 +8271,8 @@ L_0898A534: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A55C: @@ -5700,8 +8304,21 @@ L_0898A590: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A59Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 573u, 0x0898A59Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A59Cu) goto L_0898A59C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A59C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5725,8 +8342,21 @@ L_0898A5B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A5C4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 578u, 0x0898A5C4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A5C4u) goto L_0898A5C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A5C4: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -5735,13 +8365,39 @@ L_0898A5C4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A5E0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 579u, 0x0898A5E0u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A5E0u) goto L_0898A5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A5E0: aot_gpr_31 = (0x0898A5E8u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 580u, 0x0898A5E8u, 0x08AFB4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 474u, 0x08AFB4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A5E8u) goto L_0898A5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A5E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -5756,8 +8412,8 @@ L_0898A5E8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A610: @@ -5789,8 +8445,21 @@ L_0898A644: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A650u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 586u, 0x0898A650u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A650u) goto L_0898A650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A650: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5814,8 +8483,21 @@ L_0898A66C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A678u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 591u, 0x0898A678u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A678u) goto L_0898A678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A678: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -5824,13 +8506,39 @@ L_0898A678: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A694u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 592u, 0x0898A694u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A694u) goto L_0898A694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A694: aot_gpr_31 = (0x0898A69Cu); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 593u, 0x0898A69Cu, 0x08AFB4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 474u, 0x08AFB4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A69Cu) goto L_0898A69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A69C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -5845,8 +8553,8 @@ L_0898A69C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A6C4: @@ -5878,8 +8586,21 @@ L_0898A6F8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A704u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 599u, 0x0898A704u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A704u) goto L_0898A704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A704: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5903,8 +8624,21 @@ L_0898A720: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A72Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-16048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 604u, 0x0898A72Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A72Cu) goto L_0898A72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A72C: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -5913,13 +8647,39 @@ L_0898A72C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A748u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 605u, 0x0898A748u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A748u) goto L_0898A748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A748: aot_gpr_31 = (0x0898A750u); aot_gpr_4 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 606u, 0x0898A750u, 0x08AFB4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 474u, 0x08AFB4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A750u) goto L_0898A750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A750: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -5934,8 +8694,8 @@ L_0898A750: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A778: @@ -5967,8 +8727,21 @@ L_0898A7AC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A7B8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 612u, 0x0898A7B8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A7B8u) goto L_0898A7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A7B8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5992,8 +8765,21 @@ L_0898A7D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A7E0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 617u, 0x0898A7E0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A7E0u) goto L_0898A7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A7E0: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6002,8 +8788,21 @@ L_0898A7E0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A7FCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 618u, 0x0898A7FCu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A7FCu) goto L_0898A7FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A7FC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(4180))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -6021,8 +8820,8 @@ L_0898A7FC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A830: @@ -6054,8 +8853,21 @@ L_0898A864: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A870u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 624u, 0x0898A870u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A870u) goto L_0898A870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A870: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6079,8 +8891,21 @@ L_0898A88C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A898u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 629u, 0x0898A898u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A898u) goto L_0898A898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A898: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6089,8 +8914,21 @@ L_0898A898: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A8B4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 630u, 0x0898A8B4u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A8B4u) goto L_0898A8B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A8B4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(1778))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -6108,8 +8946,8 @@ L_0898A8B4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A8E8: @@ -6141,8 +8979,21 @@ L_0898A91C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A928u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 636u, 0x0898A928u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A928u) goto L_0898A928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A928: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6166,8 +9017,21 @@ L_0898A944: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898A950u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 641u, 0x0898A950u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A950u) goto L_0898A950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A950: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6176,8 +9040,21 @@ L_0898A950: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898A96Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 642u, 0x0898A96Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A96Cu) goto L_0898A96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A96C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-9200))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -6195,8 +9072,8 @@ L_0898A96C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898A9A0: @@ -6228,8 +9105,21 @@ L_0898A9D4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898A9E0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 648u, 0x0898A9E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898A9E0u) goto L_0898A9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898A9E0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6253,8 +9143,21 @@ L_0898A9FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898AA08u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 653u, 0x0898AA08u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AA08u) goto L_0898AA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AA08: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6263,8 +9166,21 @@ L_0898AA08: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898AA24u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 654u, 0x0898AA24u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AA24u) goto L_0898AA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AA24: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-9199))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -6282,8 +9198,8 @@ L_0898AA24: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898AA58: @@ -6315,8 +9231,21 @@ L_0898AA8C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898AA98u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 660u, 0x0898AA98u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AA98u) goto L_0898AA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AA98: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6340,8 +9269,21 @@ L_0898AAB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898AAC0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 665u, 0x0898AAC0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AAC0u) goto L_0898AAC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AAC0: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6350,8 +9292,21 @@ L_0898AAC0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898AADCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 666u, 0x0898AADCu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AADCu) goto L_0898AADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AADC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-9198))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -6369,8 +9324,8 @@ L_0898AADC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898AB10: @@ -6402,8 +9357,21 @@ L_0898AB44: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898AB50u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 672u, 0x0898AB50u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AB50u) goto L_0898AB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AB50: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6427,8 +9395,21 @@ L_0898AB6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898AB78u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 677u, 0x0898AB78u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AB78u) goto L_0898AB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AB78: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6437,8 +9418,21 @@ L_0898AB78: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898AB94u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 678u, 0x0898AB94u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AB94u) goto L_0898AB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AB94: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-9197))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -6456,8 +9450,8 @@ L_0898AB94: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898ABC8: @@ -6489,8 +9483,21 @@ L_0898ABFC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898AC08u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 684u, 0x0898AC08u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AC08u) goto L_0898AC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AC08: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6514,8 +9521,21 @@ L_0898AC24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898AC30u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 689u, 0x0898AC30u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AC30u) goto L_0898AC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AC30: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6524,8 +9544,21 @@ L_0898AC30: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898AC4Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 690u, 0x0898AC4Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AC4Cu) goto L_0898AC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AC4C: aot_gpr_31 = (0x0898AC54u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AC54u) goto L_0898AC54; @@ -6540,8 +9573,21 @@ L_0898AC54: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x0898AC78u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 692u, 0x0898AC78u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AC78u) goto L_0898AC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AC78: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-16130), static_cast(ctx.gpr[16])); @@ -6556,8 +9602,8 @@ L_0898AC78: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898ACA0: @@ -6589,8 +9635,21 @@ L_0898ACD4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898ACE0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 698u, 0x0898ACE0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ACE0u) goto L_0898ACE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ACE0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6614,8 +9673,21 @@ L_0898ACFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898AD08u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 703u, 0x0898AD08u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AD08u) goto L_0898AD08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AD08: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6624,8 +9696,21 @@ L_0898AD08: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898AD24u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 704u, 0x0898AD24u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AD24u) goto L_0898AD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AD24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-8160), static_cast(ctx.gpr[16])); @@ -6641,8 +9726,8 @@ L_0898AD24: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898AD50: @@ -6674,8 +9759,21 @@ L_0898AD84: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898AD90u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 710u, 0x0898AD90u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AD90u) goto L_0898AD90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AD90: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6699,8 +9797,21 @@ L_0898ADAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898ADB8u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 715u, 0x0898ADB8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ADB8u) goto L_0898ADB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ADB8: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6709,8 +9820,21 @@ L_0898ADB8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898ADD4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 716u, 0x0898ADD4u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ADD4u) goto L_0898ADD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ADD4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(5480), static_cast(ctx.gpr[16])); @@ -6726,8 +9850,8 @@ L_0898ADD4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898AE00: @@ -6759,8 +9883,21 @@ L_0898AE34: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898AE40u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 722u, 0x0898AE40u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AE40u) goto L_0898AE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AE40: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6784,8 +9921,21 @@ L_0898AE5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898AE68u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 727u, 0x0898AE68u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AE68u) goto L_0898AE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AE68: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -6794,8 +9944,21 @@ L_0898AE68: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898AE84u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 728u, 0x0898AE84u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AE84u) goto L_0898AE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AE84: aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-3212), static_cast(ctx.gpr[16])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -6812,8 +9975,8 @@ L_0898AE84: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898AEB4: @@ -6821,8 +9984,21 @@ L_0898AEB4: { const std::uint32_t aot_run_words[7]{std::bit_cast(aot_fpr_20), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_31}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(32), aot_run_words); } aot_gpr_31 = (0x0898AEDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 730u, 0x0898AEDCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AEDCu) goto L_0898AEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AEDC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6832,8 +10008,21 @@ L_0898AEDC: } L_0898AEE4: aot_gpr_31 = (0x0898AEECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 732u, 0x0898AEECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AEECu) goto L_0898AEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AEEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6845,8 +10034,21 @@ L_0898AEEC: } L_0898AEF8: aot_gpr_31 = (0x0898AF00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 734u, 0x0898AF00u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AF00u) goto L_0898AF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AF00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; @@ -6858,13 +10060,39 @@ L_0898AF00: L_0898AF0C: aot_gpr_31 = (0x0898AF14u); ctx.gpr[17] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 736u, 0x0898AF14u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AF14u) goto L_0898AF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AF14: aot_gpr_31 = (0x0898AF1Cu); ctx.gpr[16] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 737u, 0x0898AF1Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AF1Cu) goto L_0898AF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AF1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -6897,8 +10125,21 @@ L_0898AF44: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x0898AF54u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 742u, 0x0898AF54u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AF54u) goto L_0898AF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AF54: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6933,8 +10174,21 @@ L_0898AF70: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_gpr_31 = (0x0898AFA0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 744u, 0x0898AFA0u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AFA0u) goto L_0898AFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AFA0: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6978,8 +10232,21 @@ L_0898AFDC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0898AFE8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 751u, 0x0898AFE8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898AFE8u) goto L_0898AFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898AFE8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7003,8 +10270,21 @@ L_0898B004: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898B010u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 756u, 0x0898B010u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B010u) goto L_0898B010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B010: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -7012,15 +10292,41 @@ L_0898B010: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898B028u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 757u, 0x0898B028u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B028u) goto L_0898B028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B028: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (0u | 17u); aot_gpr_31 = (0x0898B038u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 758u, 0x0898B038u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B038u) goto L_0898B038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B038: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); @@ -7041,8 +10347,8 @@ L_0898B04C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B070: @@ -7074,8 +10380,21 @@ L_0898B0A4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0898B0B0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 765u, 0x0898B0B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B0B0u) goto L_0898B0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B0B0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7099,8 +10418,21 @@ L_0898B0CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0898B0D8u); aot_gpr_5 = (aot_gpr_28 + static_cast(-16104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 770u, 0x0898B0D8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B0D8u) goto L_0898B0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B0D8: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[16] = (0u | 1u); @@ -7109,8 +10441,21 @@ L_0898B0D8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898B0F4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 771u, 0x0898B0F4u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B0F4u) goto L_0898B0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B0F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9288))); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-20331), static_cast(ctx.gpr[16])); @@ -7126,8 +10471,8 @@ L_0898B0F4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B120: @@ -7158,8 +10503,8 @@ L_0898B13C: ctx.gpr[7] = (static_cast(static_cast(ctx.gpr[7]) >> 2u)); jump_target = ctx.gpr[1]; ctx.gpr[8] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(0)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B158: @@ -7467,8 +10812,8 @@ L_0898B2B8: goto L_0898B2BC; L_0898B2BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B2C4: @@ -7497,8 +10842,8 @@ L_0898B2C4: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(26), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(24), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B328: @@ -7515,8 +10860,8 @@ L_0898B340: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B354: @@ -7537,13 +10882,39 @@ L_0898B354: } L_0898B37C: aot_gpr_31 = (0x0898B384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 821u, 0x0898B384u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B384u) goto L_0898B384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B384: aot_gpr_31 = (0x0898B38Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 822u, 0x0898B38Cu, 0x0889E57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 541u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 541u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 541u, 0x0889E57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B38Cu) goto L_0898B38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B38C: aot_gpr_4 = (0u | 0u); ctx.gpr[18] = (0u | 0u); @@ -7601,8 +10972,8 @@ L_0898B408: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B428: @@ -7614,8 +10985,8 @@ L_0898B428: aot_gpr_4 = (aot_gpr_4 + static_cast(-6640)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B448: @@ -7628,8 +10999,21 @@ L_0898B458: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0898B464u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 831u, 0x0898B464u, 0x0898E288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 761u, 0x0898E288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B464u) goto L_0898B464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B464: aot_gpr_31 = (0x0898B46Cu); aot_gpr_4 = (0u | 1u); @@ -7650,8 +11034,8 @@ L_0898B484: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B490: @@ -7669,8 +11053,8 @@ L_0898B4AC: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B4B8: @@ -7698,14 +11082,14 @@ L_0898B4E4: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B4F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B4F8: @@ -7764,8 +11148,21 @@ L_0898B550: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0898B560u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 852u, 0x0898B560u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B560u) goto L_0898B560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B560: aot_gpr_31 = (0x0898B568u); aot_gpr_4 = (aot_gpr_28 + static_cast(-16124)); @@ -7774,8 +11171,21 @@ L_0898B560: L_0898B568: aot_gpr_31 = (0x0898B570u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 854u, 0x0898B570u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B570u) goto L_0898B570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B570: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7818,8 +11228,21 @@ L_0898B5D8: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0898B5E8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 858u, 0x0898B5E8u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B5E8u) goto L_0898B5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B5E8: aot_gpr_31 = (0x0898B5F0u); aot_gpr_4 = (0u | 1u); @@ -7858,8 +11281,21 @@ L_0898B62C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0898B638u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 864u, 0x0898B638u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B638u) goto L_0898B638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B638: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7883,8 +11319,21 @@ L_0898B650: L_0898B658: aot_gpr_31 = (0x0898B660u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 869u, 0x0898B660u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B660u) goto L_0898B660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B660: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-8744))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-8740))); @@ -7951,8 +11400,21 @@ L_0898B708: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0898B718u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 875u, 0x0898B718u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B718u) goto L_0898B718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B718: aot_gpr_31 = (0x0898B720u); aot_gpr_4 = (0u | 1u); @@ -7991,8 +11453,21 @@ L_0898B75C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0898B768u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 881u, 0x0898B768u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B768u) goto L_0898B768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B768: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8016,8 +11491,21 @@ L_0898B780: L_0898B788: aot_gpr_31 = (0x0898B790u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 886u, 0x0898B790u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B790u) goto L_0898B790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B790: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-8744))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-8740))); @@ -8043,16 +11531,29 @@ L_0898B7C4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B7D8: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-16)); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0898B7E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 889u, 0x0898B7E8u, 0x08AFB4F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 475u, 0x08AFB4F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B7E8u) goto L_0898B7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B7E8: aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(4180), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_28 + static_cast(-11828), static_cast(0u)); @@ -8081,8 +11582,8 @@ L_0898B7E8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898B854: @@ -8145,8 +11646,21 @@ L_0898B8A4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B8B0u); aot_gpr_5 = (0u | 84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 898u, 0x0898B8B0u, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B8B0u) goto L_0898B8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B8B0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(44)))))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -8182,8 +11696,21 @@ L_0898B8D8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B8E4u); aot_gpr_5 = (0u | 67u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 904u, 0x0898B8E4u, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B8E4u) goto L_0898B8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B8E4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(42)))))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -8219,8 +11746,21 @@ L_0898B90C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B918u); aot_gpr_5 = (0u | 88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 910u, 0x0898B918u, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B918u) goto L_0898B918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B918: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(38)))))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -8256,8 +11796,21 @@ L_0898B940: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B94Cu); aot_gpr_5 = (0u | 83u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 916u, 0x0898B94Cu, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B94Cu) goto L_0898B94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B94C: aot_gpr_31 = (0x0898B954u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8273,8 +11826,21 @@ L_0898B95C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B968u); aot_gpr_5 = (0u | 85u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 919u, 0x0898B968u, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B968u) goto L_0898B968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B968: aot_gpr_31 = (0x0898B970u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8290,8 +11856,21 @@ L_0898B978: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B984u); aot_gpr_5 = (0u | 68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 922u, 0x0898B984u, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B984u) goto L_0898B984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B984: aot_gpr_31 = (0x0898B98Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8307,8 +11886,21 @@ L_0898B994: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B9A0u); aot_gpr_5 = (0u | 76u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 925u, 0x0898B9A0u, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B9A0u) goto L_0898B9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B9A0: aot_gpr_31 = (0x0898B9A8u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8324,8 +11916,21 @@ L_0898B9B0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B9BCu); aot_gpr_5 = (0u | 82u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 928u, 0x0898B9BCu, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B9BCu) goto L_0898B9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B9BC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(10)))))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -8361,8 +11966,21 @@ L_0898B9E4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898B9F0u); aot_gpr_5 = (0u | 49u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 934u, 0x0898B9F0u, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898B9F0u) goto L_0898B9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898B9F0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(14)))))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -8398,15 +12016,28 @@ L_0898BA18: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x0898BA24u); aot_gpr_5 = (0u | 50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 940u, 0x0898BA24u, 0x0898EBBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 915u, 0x0898EBBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898BA24u) goto L_0898BA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898BA24: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BA34: @@ -8507,8 +12138,8 @@ L_0898BAEC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BB24: @@ -8516,27 +12147,27 @@ L_0898BB24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7660))); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 - aot_gpr_2); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BB34: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(144), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BB3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BB44: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BB4C: @@ -8568,8 +12199,8 @@ L_0898BB80: goto L_0898BB84; L_0898BB84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BB8C: @@ -8601,8 +12232,8 @@ L_0898BBC0: goto L_0898BBC4; L_0898BBC4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BBCC: @@ -8634,8 +12265,8 @@ L_0898BC00: goto L_0898BC04; L_0898BC04: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BC0C: @@ -8667,8 +12298,8 @@ L_0898BC40: goto L_0898BC44; L_0898BC44: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BC4C: @@ -8692,8 +12323,8 @@ L_0898BC60: goto L_0898BC64; L_0898BC64: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BC6C: @@ -8717,8 +12348,8 @@ L_0898BC80: goto L_0898BC84; L_0898BC84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BC8C: @@ -8742,8 +12373,8 @@ L_0898BCA0: goto L_0898BCA4; L_0898BCA4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BCAC: @@ -8767,8 +12398,8 @@ L_0898BCC0: goto L_0898BCC4; L_0898BCC4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BCCC: @@ -8832,8 +12463,8 @@ L_0898BD18: goto L_0898BD1C; L_0898BD1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BD24: @@ -8897,8 +12528,8 @@ L_0898BD70: goto L_0898BD74; L_0898BD74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BD7C: @@ -8962,8 +12593,8 @@ L_0898BDC8: goto L_0898BDCC; L_0898BDCC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BDD4: @@ -9027,8 +12658,8 @@ L_0898BE20: goto L_0898BE24; L_0898BE24: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BE2C: @@ -9051,8 +12682,21 @@ L_0898BE50: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0898BE60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 1030u, 0x0898BE60u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898BE60u) goto L_0898BE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898BE60: aot_gpr_31 = (0x0898BE68u); aot_gpr_4 = (aot_gpr_28 + static_cast(-16124)); @@ -9061,8 +12705,21 @@ L_0898BE60: L_0898BE68: aot_gpr_31 = (0x0898BE70u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 1032u, 0x0898BE70u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898BE70u) goto L_0898BE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898BE70: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); @@ -9122,8 +12779,8 @@ L_0898BEB4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BEC8: @@ -9132,8 +12789,21 @@ L_0898BEC8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898BEDCu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 1041u, 0x0898BEDCu, 0x0898DA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 591u, 0x0898DA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898BEDCu) goto L_0898BEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898BEDC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9168,8 +12838,8 @@ L_0898BF00: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BF10: @@ -9178,8 +12848,21 @@ L_0898BF10: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898BF24u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 1048u, 0x0898BF24u, 0x0898DA58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 598u, 0x0898DA58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898BF24u) goto L_0898BF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898BF24: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9214,8 +12897,8 @@ L_0898BF48: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BF58: @@ -9224,8 +12907,21 @@ L_0898BF58: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898BF6Cu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 1055u, 0x0898BF6Cu, 0x0898D950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 577u, 0x0898D950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898BF6Cu) goto L_0898BF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898BF6C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9260,8 +12956,8 @@ L_0898BF90: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BFA0: @@ -9270,8 +12966,21 @@ L_0898BFA0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898BFB4u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0097->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0097_entry, 1062u, 0x0898BFB4u, 0x0898D9A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 584u, 0x0898D9A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898BFB4u) goto L_0898BFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898BFB4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9306,16 +13015,16 @@ L_0898BFD8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BFE8: aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(42)))))); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898BFF4: diff --git a/profiles/vcs/generated/generated_unit_0098.cpp b/profiles/vcs/generated/generated_unit_0098.cpp index 620a299..0f8e935 100644 --- a/profiles/vcs/generated/generated_unit_0098.cpp +++ b/profiles/vcs/generated/generated_unit_0098.cpp @@ -1314,6 +1314,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0898C000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1330,8 +1354,8 @@ LOCAL_SCHED_BOUNDARY: L_0898C000: jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C008: @@ -1384,8 +1408,8 @@ L_0898C044: aot_gpr_2 = (aot_gpr_5 | aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C054: @@ -1411,8 +1435,8 @@ L_0898C06C: L_0898C070: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C078: @@ -1465,8 +1489,8 @@ L_0898C0B4: aot_gpr_2 = (aot_gpr_5 | aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C0C4: @@ -1492,8 +1516,8 @@ L_0898C0DC: L_0898C0E0: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C0E8: @@ -1545,8 +1569,21 @@ L_0898C120: } L_0898C128: aot_gpr_31 = (0x0898C130u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 35u, 0x0898C130u, 0x0898BD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 998u, 0x0898BD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C130u) goto L_0898C130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C130: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1563,8 +1600,21 @@ L_0898C138: } L_0898C140: aot_gpr_31 = (0x0898C148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 38u, 0x0898C148u, 0x0898BCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 988u, 0x0898BCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C148u) goto L_0898C148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C148: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1579,8 +1629,8 @@ L_0898C154: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C160: @@ -1611,8 +1661,21 @@ L_0898C180: } L_0898C188: aot_gpr_31 = (0x0898C190u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 45u, 0x0898C190u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C190u) goto L_0898C190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C190: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); @@ -1638,8 +1701,21 @@ L_0898C1A0: } L_0898C1A8: aot_gpr_31 = (0x0898C1B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 49u, 0x0898C1B0u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C1B0u) goto L_0898C1B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C1B0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); @@ -1655,8 +1731,8 @@ L_0898C1BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C1C8: @@ -1700,8 +1776,21 @@ L_0898C208: L_0898C210: aot_gpr_31 = (0x0898C218u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 57u, 0x0898C218u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C218u) goto L_0898C218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C218: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1726,8 +1815,21 @@ L_0898C228: } L_0898C230: aot_gpr_31 = (0x0898C238u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 61u, 0x0898C238u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C238u) goto L_0898C238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C238: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1780,8 +1882,21 @@ L_0898C278: L_0898C280: aot_gpr_31 = (0x0898C288u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 69u, 0x0898C288u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C288u) goto L_0898C288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C288: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1792,8 +1907,21 @@ L_0898C288: L_0898C290: aot_gpr_31 = (0x0898C298u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 71u, 0x0898C298u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C298u) goto L_0898C298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C298: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1810,8 +1938,8 @@ L_0898C2A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C2B4: @@ -1832,8 +1960,21 @@ L_0898C2B4: } L_0898C2DC: aot_gpr_31 = (0x0898C2E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 75u, 0x0898C2E4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C2E4u) goto L_0898C2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C2E4: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1894,14 +2035,40 @@ L_0898C328: L_0898C330: aot_gpr_31 = (0x0898C338u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 84u, 0x0898C338u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C338u) goto L_0898C338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C338: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898C344u); aot_gpr_16 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 85u, 0x0898C344u, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C344u) goto L_0898C344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C344: aot_gpr_4 = (aot_gpr_16 - aot_gpr_2); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 1u)); @@ -1919,8 +2086,21 @@ L_0898C344: L_0898C364: aot_gpr_31 = (0x0898C36Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 87u, 0x0898C36Cu, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C36Cu) goto L_0898C36C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C36C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1947,8 +2127,8 @@ L_0898C394: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C3A8: @@ -2019,15 +2199,28 @@ L_0898C400: L_0898C408: aot_gpr_31 = (0x0898C410u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 99u, 0x0898C410u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C410u) goto L_0898C410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C410: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C420: @@ -2055,20 +2248,59 @@ L_0898C448: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898C454u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 103u, 0x0898C454u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C454u) goto L_0898C454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C454: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0898C460u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 104u, 0x0898C460u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C460u) goto L_0898C460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C460: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0898C46Cu); ctx.gpr[17] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 105u, 0x0898C46Cu, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C46Cu) goto L_0898C46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C46C: aot_gpr_4 = (ctx.gpr[17] - aot_gpr_2); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 1u)); @@ -2147,8 +2379,8 @@ L_0898C4D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C4EC: @@ -2217,8 +2449,21 @@ L_0898C544: L_0898C54C: aot_gpr_31 = (0x0898C554u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 122u, 0x0898C554u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C554u) goto L_0898C554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C554: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(102), static_cast(aot_gpr_2)); @@ -2231,8 +2476,8 @@ L_0898C568: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C578: @@ -2301,8 +2546,21 @@ L_0898C5D0: L_0898C5D8: aot_gpr_31 = (0x0898C5E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 132u, 0x0898C5E0u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C5E0u) goto L_0898C5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C5E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(144))); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(122), static_cast(aot_gpr_2)); @@ -2315,8 +2573,8 @@ L_0898C5F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C604: @@ -2344,20 +2602,59 @@ L_0898C62C: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898C638u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 137u, 0x0898C638u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C638u) goto L_0898C638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C638: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x0898C644u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 138u, 0x0898C644u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C644u) goto L_0898C644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C644: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0898C650u); ctx.gpr[17] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 139u, 0x0898C650u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C650u) goto L_0898C650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C650: aot_gpr_4 = (ctx.gpr[17] - aot_gpr_2); aot_gpr_5 = (static_cast(static_cast(aot_gpr_4) >> 1u)); @@ -2436,8 +2733,8 @@ L_0898C6BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C6D0: @@ -2508,8 +2805,21 @@ L_0898C738: } L_0898C76C: aot_gpr_31 = (0x0898C774u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 154u, 0x0898C774u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C774u) goto L_0898C774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C774: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -2820,8 +3130,21 @@ L_0898C8FC: L_0898C904: aot_gpr_31 = (0x0898C90Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 198u, 0x0898C90Cu, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C90Cu) goto L_0898C90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C90C: aot_gpr_2 = (static_cast(aot_gpr_2) < -10 ? 1u : 0u); goto L_0898C910; @@ -2834,8 +3157,8 @@ L_0898C910: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898C924: @@ -2906,8 +3229,21 @@ L_0898C98C: } L_0898C9C0: aot_gpr_31 = (0x0898C9C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 206u, 0x0898C9C8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898C9C8u) goto L_0898C9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898C9C8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -3218,8 +3554,21 @@ L_0898CB50: L_0898CB58: aot_gpr_31 = (0x0898CB60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 250u, 0x0898CB60u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898CB60u) goto L_0898CB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898CB60: aot_gpr_2 = (static_cast(aot_gpr_2) < 11 ? 1u : 0u); aot_gpr_2 = (aot_gpr_2 ^ 1u); @@ -3233,8 +3582,8 @@ L_0898CB68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898CB7C: @@ -3447,8 +3796,21 @@ L_0898CCC4: } L_0898CCD8: aot_gpr_31 = (0x0898CCE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 279u, 0x0898CCE0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898CCE0u) goto L_0898CCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898CCE0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3601,8 +3963,21 @@ L_0898CDAC: L_0898CDB8: aot_gpr_31 = (0x0898CDC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 302u, 0x0898CDC0u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898CDC0u) goto L_0898CDC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898CDC0: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -3632,8 +4007,21 @@ L_0898CDD4: L_0898CDE8: aot_gpr_31 = (0x0898CDF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 306u, 0x0898CDF0u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898CDF0u) goto L_0898CDF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898CDF0: aot_gpr_2 = (static_cast(aot_gpr_2) < 11 ? 1u : 0u); { const bool branch_taken = 0u == 0u; @@ -3655,8 +4043,8 @@ L_0898CE00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898CE14: @@ -3725,8 +4113,8 @@ L_0898CE68: goto L_0898CE6C; L_0898CE6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898CE74: @@ -3782,8 +4170,21 @@ L_0898CEB8: } L_0898CEC0: aot_gpr_31 = (0x0898CEC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 326u, 0x0898CEC8u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898CEC8u) goto L_0898CEC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898CEC8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); @@ -3809,8 +4210,21 @@ L_0898CED8: } L_0898CEE0: aot_gpr_31 = (0x0898CEE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 330u, 0x0898CEE8u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898CEE8u) goto L_0898CEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898CEE8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); @@ -3826,8 +4240,8 @@ L_0898CEF4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898CF00: @@ -3883,8 +4297,21 @@ L_0898CF44: } L_0898CF4C: aot_gpr_31 = (0x0898CF54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 340u, 0x0898CF54u, 0x0898BD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 998u, 0x0898BD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898CF54u) goto L_0898CF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898CF54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3909,8 +4336,21 @@ L_0898CF64: } L_0898CF6C: aot_gpr_31 = (0x0898CF74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 344u, 0x0898CF74u, 0x0898BCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 988u, 0x0898BCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898CF74u) goto L_0898CF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898CF74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3925,8 +4365,8 @@ L_0898CF80: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898CF8C: @@ -3953,8 +4393,8 @@ L_0898CFA8: goto L_0898CFB0; L_0898CFB0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898CFB8: @@ -4007,8 +4447,8 @@ L_0898CFF8: goto L_0898CFFC; L_0898CFFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D004: @@ -4061,8 +4501,8 @@ L_0898D044: goto L_0898D048; L_0898D048: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D050: @@ -4128,8 +4568,21 @@ L_0898D0A8: } L_0898D0B0: aot_gpr_31 = (0x0898D0B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 375u, 0x0898D0B8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D0B8u) goto L_0898D0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D0B8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4227,8 +4680,8 @@ L_0898D130: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D140: @@ -4263,8 +4716,8 @@ L_0898D15C: goto L_0898D160; L_0898D160: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D168: @@ -4313,16 +4766,16 @@ L_0898D19C: goto L_0898D1A4; L_0898D1A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D1AC: aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(40)))))); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D1B8: @@ -4407,8 +4860,8 @@ L_0898D220: goto L_0898D224; L_0898D224: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D22C: @@ -4458,8 +4911,8 @@ L_0898D264: goto L_0898D268; L_0898D268: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D270: @@ -4536,8 +4989,8 @@ L_0898D2CC: goto L_0898D2D0; L_0898D2D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D2D8: @@ -4572,8 +5025,8 @@ L_0898D2F4: goto L_0898D2F8; L_0898D2F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D300: @@ -4630,8 +5083,8 @@ L_0898D344: goto L_0898D34C; L_0898D34C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D354: @@ -4640,8 +5093,21 @@ L_0898D354: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898D368u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 443u, 0x0898D368u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D368u) goto L_0898D368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D368: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4652,8 +5118,21 @@ L_0898D368: L_0898D370: aot_gpr_31 = (0x0898D378u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 445u, 0x0898D378u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D378u) goto L_0898D378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D378: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4664,8 +5143,21 @@ L_0898D378: L_0898D380: aot_gpr_31 = (0x0898D388u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 447u, 0x0898D388u, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D388u) goto L_0898D388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D388: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4676,8 +5168,21 @@ L_0898D388: L_0898D390: aot_gpr_31 = (0x0898D398u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 449u, 0x0898D398u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D398u) goto L_0898D398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D398: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4746,8 +5251,8 @@ L_0898D3E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D3F4: @@ -4759,8 +5264,8 @@ L_0898D404: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D410: @@ -4809,14 +5314,27 @@ L_0898D448: } L_0898D450: aot_gpr_31 = (0x0898D458u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 467u, 0x0898D458u, 0x0898BDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1018u, 0x0898BDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D458u) goto L_0898D458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D458: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D464: @@ -4865,14 +5383,27 @@ L_0898D49C: } L_0898D4A4: aot_gpr_31 = (0x0898D4ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 474u, 0x0898D4ACu, 0x0898BD7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1008u, 0x0898BD7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D4ACu) goto L_0898D4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D4AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D4B8: @@ -4921,14 +5452,27 @@ L_0898D4F0: } L_0898D4F8: aot_gpr_31 = (0x0898D500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 481u, 0x0898D500u, 0x0898BD7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1008u, 0x0898BD7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D500u) goto L_0898D500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D500: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D50C: @@ -4977,14 +5521,27 @@ L_0898D544: } L_0898D54C: aot_gpr_31 = (0x0898D554u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 488u, 0x0898D554u, 0x0898BDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1018u, 0x0898BDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D554u) goto L_0898D554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D554: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D560: @@ -5037,8 +5594,8 @@ L_0898D5AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D5BC: @@ -5117,15 +5674,15 @@ L_0898D628: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D638: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D640: @@ -5202,8 +5759,8 @@ L_0898D69C: goto L_0898D6A0; L_0898D6A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D6A8: @@ -5254,8 +5811,8 @@ L_0898D6E0: goto L_0898D6E8; L_0898D6E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D6F0: @@ -5387,8 +5944,8 @@ L_0898D7B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D7C0: @@ -5528,8 +6085,8 @@ L_0898D88C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D8A0: @@ -5554,8 +6111,21 @@ L_0898D8BC: } L_0898D8C8: aot_gpr_31 = (0x0898D8D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 564u, 0x0898D8D0u, 0x0898BD7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1008u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1008u, 0x0898BD7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D8D0u) goto L_0898D8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D8D0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5586,8 +6156,8 @@ L_0898D8EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D8F8: @@ -5612,8 +6182,21 @@ L_0898D914: } L_0898D920: aot_gpr_31 = (0x0898D928u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 572u, 0x0898D928u, 0x0898BDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1018u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1018u, 0x0898BDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D928u) goto L_0898D928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D928: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5644,8 +6227,8 @@ L_0898D944: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D950: @@ -5658,8 +6241,21 @@ L_0898D950: L_0898D960: aot_gpr_31 = (0x0898D968u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 579u, 0x0898D968u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D968u) goto L_0898D968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D968: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < -15 ? 1u : 0u); @@ -5695,8 +6291,8 @@ L_0898D99C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898D9A8: @@ -5709,8 +6305,21 @@ L_0898D9A8: L_0898D9B8: aot_gpr_31 = (0x0898D9C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 586u, 0x0898D9C0u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898D9C0u) goto L_0898D9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898D9C0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 16 ? 1u : 0u); @@ -5746,8 +6355,8 @@ L_0898D9F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DA00: @@ -5760,8 +6369,21 @@ L_0898DA00: L_0898DA10: aot_gpr_31 = (0x0898DA18u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 593u, 0x0898DA18u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DA18u) goto L_0898DA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DA18: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < -25 ? 1u : 0u); @@ -5797,8 +6419,8 @@ L_0898DA4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DA58: @@ -5811,8 +6433,21 @@ L_0898DA58: L_0898DA68: aot_gpr_31 = (0x0898DA70u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 600u, 0x0898DA70u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DA70u) goto L_0898DA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DA70: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 26 ? 1u : 0u); @@ -5848,8 +6483,8 @@ L_0898DAA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DAB0: @@ -5902,8 +6537,8 @@ L_0898DAF0: goto L_0898DAF4; L_0898DAF4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DAFC: @@ -5994,8 +6629,21 @@ L_0898DB90: L_0898DB98: aot_gpr_31 = (0x0898DBA0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 626u, 0x0898DBA0u, 0x08908C50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 219u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 219u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 219u, 0x08908C50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DBA0u) goto L_0898DBA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DBA0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6171,8 +6819,8 @@ L_0898DC94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DCA4: @@ -6192,8 +6840,21 @@ L_0898DCA4: } L_0898DCCC: aot_gpr_31 = (0x0898DCD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 651u, 0x0898DCD4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DCD4u) goto L_0898DCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DCD4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -6269,8 +6930,21 @@ L_0898DD30: L_0898DD38: aot_gpr_31 = (0x0898DD40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 662u, 0x0898DD40u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DD40u) goto L_0898DD40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DD40: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); @@ -6313,8 +6987,21 @@ L_0898DD60: L_0898DD6C: aot_gpr_31 = (0x0898DD74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 668u, 0x0898DD74u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DD74u) goto L_0898DD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DD74: aot_gpr_4 = (static_cast(aot_gpr_2) < 10 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6338,8 +7025,8 @@ L_0898DD88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DD9C: @@ -6390,8 +7077,8 @@ L_0898DDD4: goto L_0898DDDC; L_0898DDDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DDE4: @@ -6442,8 +7129,8 @@ L_0898DE1C: goto L_0898DE24; L_0898DE24: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DE2C: @@ -6504,8 +7191,21 @@ L_0898DE7C: L_0898DE90: aot_gpr_31 = (0x0898DE98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 693u, 0x0898DE98u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DE98u) goto L_0898DE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DE98: // Gun aim X: ThirteenAG's aimX, which prefers the stick the player is // already holding and falls back to the second one. The call above is that @@ -6529,8 +7229,21 @@ L_0898DE98: L_0898DEBC: aot_gpr_31 = (0x0898DEC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 695u, 0x0898DEC4u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DEC4u) goto L_0898DEC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DEC4: // Gun aim X: ThirteenAG's aimX, which prefers the stick the player is // already holding and falls back to the second one. The call above is that @@ -6546,8 +7259,21 @@ L_0898DEC4: L_0898DECC: aot_gpr_31 = (0x0898DED4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 697u, 0x0898DED4u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DED4u) goto L_0898DED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DED4: // Gun aim X: ThirteenAG's aimX, which prefers the stick the player is // already holding and falls back to the second one. The call above is that @@ -6613,8 +7339,8 @@ L_0898DF48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898DF58: @@ -6658,8 +7384,21 @@ L_0898DF90: L_0898DF98: aot_gpr_31 = (0x0898DFA0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 709u, 0x0898DFA0u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898DFA0u) goto L_0898DFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898DFA0: // Gun aim Y; the mirror of the X sites above. if (vcs::vcs_camera_hook_enabled() && aot_gpr_2 == 0u) @@ -6714,8 +7453,21 @@ L_0898DFE8: L_0898DFFC: aot_gpr_31 = (0x0898E004u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 715u, 0x0898E004u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E004u) goto L_0898E004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E004: // Gun aim Y; the mirror of the X sites above. if (vcs::vcs_camera_hook_enabled() && aot_gpr_2 == 0u) @@ -6779,8 +7531,8 @@ L_0898E070: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898E080: @@ -6906,8 +7658,21 @@ L_0898E124: } aot_gpr_31 = (0x0898E12Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 736u, 0x0898E12Cu, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E12Cu) goto L_0898E12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E12C: aot_fpr_12 = std::bit_cast(aot_gpr_2); { const bool branch_taken = 0u == 0u; @@ -6956,8 +7721,8 @@ L_0898E178: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898E188: @@ -7027,8 +7792,21 @@ L_0898E1DC: } aot_gpr_31 = (0x0898E1E4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 750u, 0x0898E1E4u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E1E4u) goto L_0898E1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E1E4: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-16129))); @@ -7089,8 +7867,8 @@ L_0898E240: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898E250: @@ -7108,15 +7886,15 @@ L_0898E264: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898E280: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7664))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898E288: @@ -7197,15 +7975,41 @@ L_0898E324: } L_0898E32C: aot_gpr_31 = (0x0898E334u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 770u, 0x0898E334u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E334u) goto L_0898E334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E334: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E338; L_0898E338: aot_gpr_31 = (0x0898E340u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 772u, 0x0898E340u, 0x0889E620u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 553u, 0x0889E620u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E340u) goto L_0898E340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E340: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); if (aot_gpr_4 != 0u) { @@ -7215,8 +8019,21 @@ L_0898E340: goto L_0898E34C; L_0898E34C: aot_gpr_31 = (0x0898E354u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 774u, 0x0898E354u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E354u) goto L_0898E354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E354: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -7240,8 +8057,21 @@ L_0898E35C: } L_0898E388: aot_gpr_31 = (0x0898E390u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 777u, 0x0898E390u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E390u) goto L_0898E390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E390: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E394; @@ -7293,8 +8123,21 @@ L_0898E3F4: } L_0898E3FC: aot_gpr_31 = (0x0898E404u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 784u, 0x0898E404u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E404u) goto L_0898E404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E404: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E408; @@ -7433,8 +8276,21 @@ L_0898E54C: goto L_0898E560; L_0898E560: aot_gpr_31 = (0x0898E568u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 798u, 0x0898E568u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E568u) goto L_0898E568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E568: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -7462,8 +8318,21 @@ L_0898E570: goto L_0898E5B4; L_0898E5B4: aot_gpr_31 = (0x0898E5BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 801u, 0x0898E5BCu, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E5BCu) goto L_0898E5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E5BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -7531,8 +8400,21 @@ L_0898E650: } L_0898E660: aot_gpr_31 = (0x0898E668u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 808u, 0x0898E668u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E668u) goto L_0898E668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E668: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E66C; @@ -7559,8 +8441,21 @@ L_0898E688: } L_0898E698: aot_gpr_31 = (0x0898E6A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 812u, 0x0898E6A0u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E6A0u) goto L_0898E6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E6A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E6A4; @@ -7589,8 +8484,21 @@ L_0898E6C0: } L_0898E6D8: aot_gpr_31 = (0x0898E6E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 816u, 0x0898E6E0u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E6E0u) goto L_0898E6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E6E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E6E4; @@ -7617,8 +8525,21 @@ L_0898E700: } L_0898E710: aot_gpr_31 = (0x0898E718u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 820u, 0x0898E718u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E718u) goto L_0898E718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E718: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E71C; @@ -7645,8 +8566,21 @@ L_0898E738: } L_0898E748: aot_gpr_31 = (0x0898E750u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 824u, 0x0898E750u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E750u) goto L_0898E750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E750: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E754; @@ -7673,8 +8607,21 @@ L_0898E770: } L_0898E780: aot_gpr_31 = (0x0898E788u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 828u, 0x0898E788u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E788u) goto L_0898E788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E788: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E78C; @@ -7701,8 +8648,21 @@ L_0898E7A8: } L_0898E7B8: aot_gpr_31 = (0x0898E7C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 832u, 0x0898E7C0u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E7C0u) goto L_0898E7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E7C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E7C4; @@ -7729,8 +8689,21 @@ L_0898E7E0: } L_0898E7F0: aot_gpr_31 = (0x0898E7F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 836u, 0x0898E7F8u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E7F8u) goto L_0898E7F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E7F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E7FC; @@ -7756,8 +8729,21 @@ L_0898E814: } L_0898E824: aot_gpr_31 = (0x0898E82Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 840u, 0x0898E82Cu, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E82Cu) goto L_0898E82C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E82C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E830; @@ -7784,8 +8770,21 @@ L_0898E84C: } L_0898E85C: aot_gpr_31 = (0x0898E864u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 844u, 0x0898E864u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E864u) goto L_0898E864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E864: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E868; @@ -7812,8 +8811,21 @@ L_0898E884: } L_0898E894: aot_gpr_31 = (0x0898E89Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 848u, 0x0898E89Cu, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E89Cu) goto L_0898E89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E89C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E8A0; @@ -7840,8 +8852,21 @@ L_0898E8BC: } L_0898E8CC: aot_gpr_31 = (0x0898E8D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 852u, 0x0898E8D4u, 0x08B6833Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 46u, 0x08B6833Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E8D4u) goto L_0898E8D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E8D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); goto L_0898E8D8; @@ -7903,8 +8928,21 @@ L_0898E930: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x0898E940u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 861u, 0x0898E940u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E940u) goto L_0898E940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E940: aot_gpr_31 = (0x0898E948u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-16124)); @@ -7913,8 +8951,21 @@ L_0898E940: L_0898E948: aot_gpr_31 = (0x0898E950u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 863u, 0x0898E950u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898E950u) goto L_0898E950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898E950: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[17] = (2201u << 16u); @@ -8298,8 +9349,8 @@ L_0898EB98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898EBBC: @@ -8355,8 +9406,21 @@ L_0898EC28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EC3Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-22016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 922u, 0x0898EC3Cu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EC3Cu) goto L_0898EC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EC3C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8368,8 +9432,21 @@ L_0898EC44: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EC50u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 924u, 0x0898EC50u, 0x08988E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 146u, 0x08988E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EC50u) goto L_0898EC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EC50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8389,8 +9466,21 @@ L_0898EC60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EC70u); aot_gpr_5 = (aot_gpr_5 + static_cast(-22007)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 927u, 0x0898EC70u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EC70u) goto L_0898EC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EC70: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8402,8 +9492,21 @@ L_0898EC78: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EC84u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 929u, 0x0898EC84u, 0x089890ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 200u, 0x089890ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EC84u) goto L_0898EC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EC84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8416,8 +9519,21 @@ L_0898EC8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EC9Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21998)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 931u, 0x0898EC9Cu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EC9Cu) goto L_0898EC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EC9C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8429,8 +9545,21 @@ L_0898ECA4: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898ECB0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 933u, 0x0898ECB0u, 0x08989338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 252u, 0x08989338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ECB0u) goto L_0898ECB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ECB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8443,8 +9572,21 @@ L_0898ECB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898ECC8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21989)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 935u, 0x0898ECC8u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ECC8u) goto L_0898ECC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ECC8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8456,8 +9598,21 @@ L_0898ECD0: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898ECDCu); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 937u, 0x0898ECDCu, 0x0898A0A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 487u, 0x0898A0A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ECDCu) goto L_0898ECDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ECDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8470,8 +9625,21 @@ L_0898ECE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898ECF4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21980)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 939u, 0x0898ECF4u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ECF4u) goto L_0898ECF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ECF4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8483,8 +9651,21 @@ L_0898ECFC: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898ED08u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 941u, 0x0898ED08u, 0x0898A184u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 499u, 0x0898A184u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ED08u) goto L_0898ED08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ED08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8497,8 +9678,21 @@ L_0898ED10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898ED20u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21971)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 943u, 0x0898ED20u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ED20u) goto L_0898ED20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ED20: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8511,8 +9705,21 @@ L_0898ED28: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); aot_gpr_31 = (0x0898ED38u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 945u, 0x0898ED38u, 0x0898967Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 316u, 0x0898967Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ED38u) goto L_0898ED38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ED38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8525,8 +9732,21 @@ L_0898ED40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898ED50u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21962)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 947u, 0x0898ED50u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ED50u) goto L_0898ED50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ED50: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8538,8 +9758,21 @@ L_0898ED58: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898ED64u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 949u, 0x0898ED64u, 0x0898A254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 512u, 0x0898A254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ED64u) goto L_0898ED64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ED64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8552,8 +9785,21 @@ L_0898ED6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898ED7Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21953)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 951u, 0x0898ED7Cu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ED7Cu) goto L_0898ED7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ED7C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8565,8 +9811,21 @@ L_0898ED84: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898ED90u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 953u, 0x0898ED90u, 0x0898A334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 528u, 0x0898A334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898ED90u) goto L_0898ED90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898ED90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8579,8 +9838,21 @@ L_0898ED98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EDA8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 955u, 0x0898EDA8u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EDA8u) goto L_0898EDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EDA8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8592,8 +9864,21 @@ L_0898EDB0: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EDBCu); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 957u, 0x0898EDBCu, 0x0898A3F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 542u, 0x0898A3F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EDBCu) goto L_0898EDBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EDBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8606,8 +9891,21 @@ L_0898EDC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EDD4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21935)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 959u, 0x0898EDD4u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EDD4u) goto L_0898EDD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EDD4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8619,8 +9917,21 @@ L_0898EDDC: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EDE8u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 961u, 0x0898EDE8u, 0x0898A4A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 555u, 0x0898A4A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EDE8u) goto L_0898EDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EDE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8633,8 +9944,21 @@ L_0898EDF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EE00u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21926)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 963u, 0x0898EE00u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EE00u) goto L_0898EE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EE00: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8646,8 +9970,21 @@ L_0898EE08: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EE14u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 965u, 0x0898EE14u, 0x0898A55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 568u, 0x0898A55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EE14u) goto L_0898EE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EE14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8660,8 +9997,21 @@ L_0898EE1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EE2Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21917)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 967u, 0x0898EE2Cu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EE2Cu) goto L_0898EE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EE2C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8673,8 +10023,21 @@ L_0898EE34: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EE40u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 969u, 0x0898EE40u, 0x0898A610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 581u, 0x0898A610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EE40u) goto L_0898EE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EE40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8687,8 +10050,21 @@ L_0898EE48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EE58u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21908)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 971u, 0x0898EE58u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EE58u) goto L_0898EE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EE58: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8700,8 +10076,21 @@ L_0898EE60: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EE6Cu); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 973u, 0x0898EE6Cu, 0x0898A6C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 594u, 0x0898A6C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EE6Cu) goto L_0898EE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EE6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8714,8 +10103,21 @@ L_0898EE74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EE84u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21899)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 975u, 0x0898EE84u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EE84u) goto L_0898EE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EE84: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8727,8 +10129,21 @@ L_0898EE8C: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EE98u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 977u, 0x0898EE98u, 0x08989AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 388u, 0x08989AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EE98u) goto L_0898EE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EE98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8741,8 +10156,21 @@ L_0898EEA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EEB0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21890)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 979u, 0x0898EEB0u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EEB0u) goto L_0898EEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EEB0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8754,8 +10182,21 @@ L_0898EEB8: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EEC4u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 981u, 0x0898EEC4u, 0x0898A778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 607u, 0x0898A778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EEC4u) goto L_0898EEC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EEC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8768,8 +10209,21 @@ L_0898EECC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EEDCu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21881)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 983u, 0x0898EEDCu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EEDCu) goto L_0898EEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EEDC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8781,8 +10235,21 @@ L_0898EEE4: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EEF0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 985u, 0x0898EEF0u, 0x08989B10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 392u, 0x08989B10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EEF0u) goto L_0898EEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EEF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8795,8 +10262,21 @@ L_0898EEF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EF08u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21872)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 987u, 0x0898EF08u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EF08u) goto L_0898EF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EF08: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8808,8 +10288,21 @@ L_0898EF10: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EF1Cu); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 989u, 0x0898EF1Cu, 0x08989C58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 415u, 0x08989C58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EF1Cu) goto L_0898EF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EF1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8822,8 +10315,21 @@ L_0898EF24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EF34u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21863)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 991u, 0x0898EF34u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EF34u) goto L_0898EF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EF34: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8835,8 +10341,21 @@ L_0898EF3C: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EF48u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 993u, 0x0898EF48u, 0x08989D54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 432u, 0x08989D54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EF48u) goto L_0898EF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EF48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8849,8 +10368,21 @@ L_0898EF50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EF60u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21854)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 995u, 0x0898EF60u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EF60u) goto L_0898EF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EF60: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8862,8 +10394,21 @@ L_0898EF68: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EF74u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 997u, 0x0898EF74u, 0x08989E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 447u, 0x08989E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EF74u) goto L_0898EF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EF74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8876,8 +10421,21 @@ L_0898EF7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EF8Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21845)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 999u, 0x0898EF8Cu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EF8Cu) goto L_0898EF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EF8C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8889,8 +10447,21 @@ L_0898EF94: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EFA0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1001u, 0x0898EFA0u, 0x08989EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 459u, 0x08989EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EFA0u) goto L_0898EFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EFA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8903,8 +10474,21 @@ L_0898EFA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EFB8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21836)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1003u, 0x0898EFB8u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EFB8u) goto L_0898EFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EFB8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8916,8 +10500,21 @@ L_0898EFC0: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EFCCu); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1005u, 0x0898EFCCu, 0x08989FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 473u, 0x08989FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EFCCu) goto L_0898EFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EFCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8930,8 +10527,21 @@ L_0898EFD4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898EFE4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21827)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1007u, 0x0898EFE4u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EFE4u) goto L_0898EFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EFE4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8943,8 +10553,21 @@ L_0898EFEC: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898EFF8u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1009u, 0x0898EFF8u, 0x0898A830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 619u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 619u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 619u, 0x0898A830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898EFF8u) goto L_0898EFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898EFF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8957,8 +10580,21 @@ L_0898F000: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F010u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21818)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1011u, 0x0898F010u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F010u) goto L_0898F010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F010: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8970,8 +10606,21 @@ L_0898F018: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F024u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1013u, 0x0898F024u, 0x0898ABC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 679u, 0x0898ABC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F024u) goto L_0898F024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F024: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8984,8 +10633,21 @@ L_0898F02C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F03Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21809)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1015u, 0x0898F03Cu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F03Cu) goto L_0898F03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F03C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8997,8 +10659,21 @@ L_0898F044: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F050u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1017u, 0x0898F050u, 0x0898ACA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 693u, 0x0898ACA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F050u) goto L_0898F050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F050: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9011,8 +10686,21 @@ L_0898F058: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F068u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21800)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1019u, 0x0898F068u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F068u) goto L_0898F068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F068: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9024,8 +10712,21 @@ L_0898F070: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F07Cu); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1021u, 0x0898F07Cu, 0x0898AD50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 705u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 705u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 705u, 0x0898AD50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F07Cu) goto L_0898F07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F07C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9038,8 +10739,21 @@ L_0898F084: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F094u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21791)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1023u, 0x0898F094u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F094u) goto L_0898F094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F094: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9051,8 +10765,21 @@ L_0898F09C: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F0A8u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1025u, 0x0898F0A8u, 0x0898AE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 717u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 717u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 717u, 0x0898AE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F0A8u) goto L_0898F0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F0A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9065,8 +10792,21 @@ L_0898F0B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F0C0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21782)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1027u, 0x0898F0C0u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F0C0u) goto L_0898F0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F0C0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9078,8 +10818,21 @@ L_0898F0C8: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F0D4u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1029u, 0x0898F0D4u, 0x08989AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 390u, 0x08989AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F0D4u) goto L_0898F0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F0D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9092,8 +10845,21 @@ L_0898F0DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F0ECu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21755)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1031u, 0x0898F0ECu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F0ECu) goto L_0898F0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F0EC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9135,8 +10901,21 @@ L_0898F12C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0898F138u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1037u, 0x0898F138u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F138u) goto L_0898F138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F138: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -9160,8 +10939,21 @@ L_0898F150: L_0898F158: aot_gpr_31 = (0x0898F160u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1042u, 0x0898F160u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F160u) goto L_0898F160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F160: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -9169,8 +10961,21 @@ L_0898F160: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898F178u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1043u, 0x0898F178u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F178u) goto L_0898F178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F178: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9183,8 +10988,21 @@ L_0898F180: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F190u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21746)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1045u, 0x0898F190u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F190u) goto L_0898F190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F190: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9226,8 +11044,21 @@ L_0898F1D0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x0898F1DCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1051u, 0x0898F1DCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F1DCu) goto L_0898F1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F1DC: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -9251,8 +11082,21 @@ L_0898F1F4: L_0898F1FC: aot_gpr_31 = (0x0898F204u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1056u, 0x0898F204u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F204u) goto L_0898F204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F204: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -9260,8 +11104,21 @@ L_0898F204: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x0898F21Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1057u, 0x0898F21Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F21Cu) goto L_0898F21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F21C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9274,8 +11131,21 @@ L_0898F224: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F234u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21773)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1059u, 0x0898F234u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F234u) goto L_0898F234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F234: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9287,8 +11157,21 @@ L_0898F23C: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F248u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1061u, 0x0898F248u, 0x0898AEB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 729u, 0x0898AEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F248u) goto L_0898F248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F248: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9301,8 +11184,21 @@ L_0898F250: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F260u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21764)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1063u, 0x0898F260u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F260u) goto L_0898F260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F260: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9314,8 +11210,21 @@ L_0898F268: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F274u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1065u, 0x0898F274u, 0x0898B070u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 760u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 760u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 760u, 0x0898B070u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F274u) goto L_0898F274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F274: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9328,8 +11237,21 @@ L_0898F27C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F28Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21737)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1067u, 0x0898F28Cu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F28Cu) goto L_0898F28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F28C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9341,8 +11263,21 @@ L_0898F294: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F2A0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1069u, 0x0898F2A0u, 0x0898A8E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 631u, 0x0898A8E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F2A0u) goto L_0898F2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F2A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9355,8 +11290,21 @@ L_0898F2A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F2B8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21728)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1071u, 0x0898F2B8u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F2B8u) goto L_0898F2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F2B8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9368,8 +11316,21 @@ L_0898F2C0: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F2CCu); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1073u, 0x0898F2CCu, 0x0898A9A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 643u, 0x0898A9A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F2CCu) goto L_0898F2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F2CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9382,8 +11343,21 @@ L_0898F2D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F2E4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21719)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1075u, 0x0898F2E4u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F2E4u) goto L_0898F2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F2E4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9395,8 +11369,21 @@ L_0898F2EC: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F2F8u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1077u, 0x0898F2F8u, 0x0898AA58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 655u, 0x0898AA58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F2F8u) goto L_0898F2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F2F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9409,8 +11396,21 @@ L_0898F300: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F310u); aot_gpr_5 = (aot_gpr_5 + static_cast(-21710)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1079u, 0x0898F310u, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F310u) goto L_0898F310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F310: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9422,8 +11422,21 @@ L_0898F318: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F324u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1081u, 0x0898F324u, 0x0898AB10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 667u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 667u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 667u, 0x0898AB10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F324u) goto L_0898F324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F324: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9436,8 +11449,21 @@ L_0898F32C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0898F33Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-21701)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1083u, 0x0898F33Cu, 0x0898B120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 772u, 0x0898B120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F33Cu) goto L_0898F33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F33C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9449,8 +11475,21 @@ L_0898F344: aot_gpr_4 = (0u | 32u); aot_gpr_31 = (0x0898F350u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(169), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1085u, 0x0898F350u, 0x089895C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 304u, 0x089895C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F350u) goto L_0898F350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F350: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -9462,8 +11501,8 @@ L_0898F350: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F36C: @@ -9472,8 +11511,21 @@ L_0898F36C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x0898F384u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1087u, 0x0898F384u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F384u) goto L_0898F384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F384: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-24920))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9614,8 +11666,21 @@ L_0898F468: } L_0898F47C: aot_gpr_31 = (0x0898F484u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1104u, 0x0898F484u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F484u) goto L_0898F484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F484: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9714,8 +11779,21 @@ L_0898F50C: L_0898F514: aot_gpr_31 = (0x0898F51Cu); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(102), static_cast(ctx.gpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1117u, 0x0898F51Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F51Cu) goto L_0898F51C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F51C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -9808,8 +11886,8 @@ L_0898F5B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F5C8: @@ -9822,14 +11900,27 @@ L_0898F5C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0898F5ECu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-19672)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1129u, 0x0898F5ECu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F5ECu) goto L_0898F5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F5EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F5F8: @@ -9841,8 +11932,21 @@ L_0898F5F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898F618u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1131u, 0x0898F618u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F618u) goto L_0898F618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F618: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9854,16 +11958,29 @@ L_0898F618: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x0898F640u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1132u, 0x0898F640u, 0x08A1A8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 391u, 0x08A1A8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F640u) goto L_0898F640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F640: aot_gpr_2 = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F654: @@ -9876,8 +11993,21 @@ L_0898F654: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898F678u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1134u, 0x0898F678u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F678u) goto L_0898F678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F678: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -9890,16 +12020,29 @@ L_0898F678: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x0898F6A4u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1135u, 0x0898F6A4u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F6A4u) goto L_0898F6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F6A4: aot_gpr_2 = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F6B8: @@ -9913,8 +12056,21 @@ L_0898F6B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0898F6E0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1137u, 0x0898F6E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F6E0u) goto L_0898F6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F6E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x0898F6ECu); @@ -9941,8 +12097,21 @@ L_0898F6F8: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x0898F724u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1140u, 0x0898F724u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F724u) goto L_0898F724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F724: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -9953,8 +12122,8 @@ L_0898F724: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F73C: @@ -9968,8 +12137,21 @@ L_0898F73C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0898F764u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1142u, 0x0898F764u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F764u) goto L_0898F764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F764: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x0898F770u); @@ -9996,8 +12178,21 @@ L_0898F77C: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x0898F7A8u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1145u, 0x0898F7A8u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F7A8u) goto L_0898F7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F7A8: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -10008,8 +12203,8 @@ L_0898F7A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F7C0: @@ -10018,15 +12213,28 @@ L_0898F7C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0898F7D4u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1147u, 0x0898F7D4u, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F7D4u) goto L_0898F7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F7D4: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F7E4: @@ -10040,8 +12248,21 @@ L_0898F7E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x0898F80Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1149u, 0x0898F80Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F80Cu) goto L_0898F80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F80C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -10060,8 +12281,21 @@ L_0898F80C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x0898F850u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1150u, 0x0898F850u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F850u) goto L_0898F850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F850: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -10072,8 +12306,8 @@ L_0898F850: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F868: @@ -10089,8 +12323,21 @@ L_0898F868: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x0898F898u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1152u, 0x0898F898u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F898u) goto L_0898F898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F898: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -10118,8 +12365,21 @@ L_0898F8D0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x0898F8DCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1155u, 0x0898F8DCu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F8DCu) goto L_0898F8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F8DC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0898F8E0; @@ -10135,8 +12395,21 @@ L_0898F8E0: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x0898F90Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1157u, 0x0898F90Cu, 0x08A1D580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 261u, 0x08A1D580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F90Cu) goto L_0898F90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F90C: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -10149,8 +12422,8 @@ L_0898F90C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F92C: @@ -10164,8 +12437,21 @@ L_0898F92C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0898F954u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1159u, 0x0898F954u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F954u) goto L_0898F954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F954: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -10176,8 +12462,21 @@ L_0898F954: ctx.gpr[7] = (ctx.gpr[7] & 255u); aot_gpr_31 = (0x0898F978u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1160u, 0x0898F978u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F978u) goto L_0898F978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F978: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -10188,8 +12487,8 @@ L_0898F978: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898F990: @@ -10203,8 +12502,21 @@ L_0898F990: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x0898F9B8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1162u, 0x0898F9B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898F9B8u) goto L_0898F9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898F9B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (16384u << 16u); @@ -10238,8 +12550,21 @@ L_0898F9F0: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x0898FA08u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1166u, 0x0898FA08u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FA08u) goto L_0898FA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FA08: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -10250,8 +12575,8 @@ L_0898FA08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FA20: @@ -10262,8 +12587,21 @@ L_0898FA20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898FA3Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1168u, 0x0898FA3Cu, 0x08A1C640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 53u, 0x08A1C640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FA3Cu) goto L_0898FA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FA3C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -10346,8 +12684,8 @@ L_0898FABC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FAD0: @@ -10356,15 +12694,28 @@ L_0898FAD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0898FAE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1179u, 0x0898FAE4u, 0x08A1CC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 125u, 0x08A1CC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FAE4u) goto L_0898FAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FAE4: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FAF4: @@ -10376,8 +12727,21 @@ L_0898FAF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898FB14u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1181u, 0x0898FB14u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FB14u) goto L_0898FB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FB14: aot_gpr_5 = (2236u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(32304)); @@ -10403,8 +12767,21 @@ L_0898FB4C: aot_gpr_5 = (ctx.gpr[6] << 16u); aot_gpr_31 = (0x0898FB60u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1183u, 0x0898FB60u, 0x08A1D3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 236u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 236u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 236u, 0x08A1D3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FB60u) goto L_0898FB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FB60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10426,16 +12803,29 @@ L_0898FB74: aot_gpr_5 = (ctx.gpr[6] << 16u); aot_gpr_31 = (0x0898FB88u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1186u, 0x0898FB88u, 0x08A1D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 223u, 0x08A1D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FB88u) goto L_0898FB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FB88: aot_gpr_2 = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FB9C: @@ -10444,15 +12834,28 @@ L_0898FB9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0898FBB0u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1188u, 0x0898FBB0u, 0x08A1CE7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 141u, 0x08A1CE7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FBB0u) goto L_0898FBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FBB0: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FBC0: @@ -10461,15 +12864,28 @@ L_0898FBC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x0898FBD4u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1190u, 0x0898FBD4u, 0x08A1CEECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 148u, 0x08A1CEECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FBD4u) goto L_0898FBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FBD4: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FBE4: @@ -10481,8 +12897,21 @@ L_0898FBE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898FC04u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1192u, 0x0898FC04u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FC04u) goto L_0898FC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FC04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -10509,8 +12938,8 @@ L_0898FC20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FC34: @@ -10522,23 +12951,49 @@ L_0898FC34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898FC54u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1197u, 0x0898FC54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FC54u) goto L_0898FC54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FC54: aot_gpr_4 = (2236u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x0898FC64u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1198u, 0x0898FC64u, 0x08A1D008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 166u, 0x08A1D008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FC64u) goto L_0898FC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FC64: aot_gpr_2 = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FC78: @@ -10552,8 +13007,21 @@ L_0898FC78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0898FCA0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1200u, 0x0898FCA0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FCA0u) goto L_0898FCA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FCA0: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); @@ -10563,8 +13031,21 @@ L_0898FCA0: aot_fpr_13 = aot_fpr_13 - aot_fpr_12; aot_gpr_31 = (0x0898FCC0u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1201u, 0x0898FCC0u, 0x08A1D150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 193u, 0x08A1D150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FCC0u) goto L_0898FCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FCC0: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -10575,8 +13056,8 @@ L_0898FCC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FCD8: @@ -10627,8 +13108,8 @@ L_0898FD44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FD54: @@ -10643,8 +13124,21 @@ L_0898FD54: ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); aot_gpr_31 = (0x0898FD80u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1208u, 0x0898FD80u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FD80u) goto L_0898FD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FD80: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -10678,8 +13172,8 @@ L_0898FDC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FDD8: @@ -10712,8 +13206,8 @@ L_0898FE24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FE34: @@ -10750,8 +13244,8 @@ L_0898FE9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FEAC: @@ -10765,8 +13259,21 @@ L_0898FEAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x0898FED4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1216u, 0x0898FED4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FED4u) goto L_0898FED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FED4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_16 = (2236u << 16u); @@ -10825,8 +13332,21 @@ L_0898FF28: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2054), static_cast(0u)); aot_gpr_31 = (0x0898FF38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1225u, 0x0898FF38u, 0x08A1CC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 125u, 0x08A1CC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FF38u) goto L_0898FF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FF38: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -10837,8 +13357,8 @@ L_0898FF38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FF50: @@ -10889,8 +13409,8 @@ L_0898FFBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0898FFCC: @@ -10902,8 +13422,21 @@ L_0898FFCC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x0898FFECu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0098->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0098_entry, 1232u, 0x0898FFECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0898FFECu) goto L_0898FFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0898FFEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_gpr_4); diff --git a/profiles/vcs/generated/generated_unit_0099.cpp b/profiles/vcs/generated/generated_unit_0099.cpp index 56ccc6e..3db1ee3 100644 --- a/profiles/vcs/generated/generated_unit_0099.cpp +++ b/profiles/vcs/generated/generated_unit_0099.cpp @@ -1016,6 +1016,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08990000u; + if (local_delta_v813 >= 16356u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1036,8 +1060,8 @@ L_08990000: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990018: @@ -1119,8 +1143,21 @@ L_089900A8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089900B4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 11u, 0x089900B4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089900B4u) goto L_089900B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089900B4: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -1151,8 +1188,21 @@ L_089900E0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089900ECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 15u, 0x089900ECu, 0x0888081Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 71u, 0x0888081Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089900ECu) goto L_089900EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089900EC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1164,8 +1214,21 @@ L_089900F4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08990100u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 17u, 0x08990100u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990100u) goto L_08990100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990100: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1179,8 +1242,21 @@ L_0899010C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0899011Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 19u, 0x0899011Cu, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899011Cu) goto L_0899011C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899011C: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_08990120; @@ -1188,8 +1264,21 @@ L_08990120: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899012Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 21u, 0x0899012Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899012Cu) goto L_0899012C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899012C: aot_gpr_31 = (0x08990134u); goto L_08990374; @@ -1198,13 +1287,39 @@ L_08990134: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08990144u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 23u, 0x08990144u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990144u) goto L_08990144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990144: aot_gpr_31 = (0x0899014Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 24u, 0x0899014Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899014Cu) goto L_0899014C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899014C: { const bool branch_taken = aot_gpr_16 == 0u; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(80), 0u); @@ -1239,8 +1354,8 @@ L_08990174: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990190: @@ -1251,8 +1366,21 @@ L_08990190: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089901ACu); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 29u, 0x089901ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089901ACu) goto L_089901AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089901AC: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1266,8 +1394,21 @@ L_089901B8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089901C4u); aot_gpr_5 = (0u | 70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 31u, 0x089901C4u, 0x08B6CF28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 173u, 0x08B6CF28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089901C4u) goto L_089901C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089901C4: aot_gpr_16 = (aot_gpr_17 | 0u); goto L_089901C8; @@ -1276,8 +1417,21 @@ L_089901C8: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089901D8u); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 33u, 0x089901D8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089901D8u) goto L_089901D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089901D8: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1291,8 +1445,21 @@ L_089901E4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089901F0u); aot_gpr_5 = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 35u, 0x089901F0u, 0x08B6CFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 179u, 0x08B6CFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089901F0u) goto L_089901F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089901F0: aot_gpr_16 = (aot_gpr_17 | 0u); goto L_089901F4; @@ -1301,8 +1468,21 @@ L_089901F4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08990204u); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 37u, 0x08990204u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990204u) goto L_08990204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990204: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1316,8 +1496,21 @@ L_08990210: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899021Cu); aot_gpr_5 = (0u | 475u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 39u, 0x0899021Cu, 0x08B6D078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 185u, 0x08B6D078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899021Cu) goto L_0899021C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899021C: aot_gpr_16 = (aot_gpr_17 | 0u); goto L_08990220; @@ -1326,8 +1519,21 @@ L_08990220: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08990230u); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 41u, 0x08990230u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990230u) goto L_08990230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990230: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1341,8 +1547,21 @@ L_0899023C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08990248u); aot_gpr_5 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 43u, 0x08990248u, 0x08B6D120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 191u, 0x08B6D120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990248u) goto L_08990248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990248: aot_gpr_16 = (aot_gpr_17 | 0u); goto L_0899024C; @@ -1351,8 +1570,21 @@ L_0899024C: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x0899025Cu); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 45u, 0x0899025Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899025Cu) goto L_0899025C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899025C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1366,8 +1598,21 @@ L_08990268: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08990274u); aot_gpr_5 = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 47u, 0x08990274u, 0x08B6D1CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 197u, 0x08B6D1CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990274u) goto L_08990274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990274: aot_gpr_17 = (aot_gpr_16 | 0u); goto L_08990278; @@ -1381,8 +1626,8 @@ L_08990278: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990290: @@ -1390,19 +1635,45 @@ L_08990290: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089902A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 50u, 0x089902A0u, 0x08B6B464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 624u, 0x08B6B464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089902A0u) goto L_089902A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089902A0: aot_gpr_31 = (0x089902A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 51u, 0x089902A8u, 0x08B6B4B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 630u, 0x08B6B4B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089902A8u) goto L_089902A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089902A8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089902B4: @@ -1417,8 +1688,8 @@ L_089902C8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089902D4: @@ -1433,8 +1704,8 @@ L_089902E8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089902F4: @@ -1443,14 +1714,27 @@ L_089902F4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08990308u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 57u, 0x08990308u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990308u) goto L_08990308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990308: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990314: @@ -1465,8 +1749,8 @@ L_08990328: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990334: @@ -1481,8 +1765,8 @@ L_08990348: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990354: @@ -1497,15 +1781,15 @@ L_08990368: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990374: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 544u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899037C: @@ -1514,8 +1798,8 @@ L_0899037C: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(4), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990390: @@ -1527,8 +1811,8 @@ L_08990390: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(12), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089903B0: @@ -1548,8 +1832,21 @@ L_089903B0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(44), aot_gpr_31); aot_gpr_31 = (0x089903F0u); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 68u, 0x089903F0u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089903F0u) goto L_089903F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089903F0: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(0), aot_run_words); } @@ -1559,8 +1856,21 @@ L_089903F0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08990418u); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 69u, 0x08990418u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990418u) goto L_08990418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990418: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(54), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(68), 0u); @@ -1584,8 +1894,8 @@ L_08990418: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990464: @@ -1627,8 +1937,8 @@ L_0899049C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089904B0: @@ -1642,8 +1952,8 @@ L_089904B0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(76), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089904DC: @@ -1717,8 +2027,21 @@ L_08990558: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08990574u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 79u, 0x08990574u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990574u) goto L_08990574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990574: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(68), 0u); @@ -1754,8 +2077,21 @@ L_0899059C: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x089905B8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 83u, 0x089905B8u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089905B8u) goto L_089905B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089905B8: ctx.gpr[7] = (2201u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(54))); @@ -1763,8 +2099,21 @@ L_089905B8: aot_gpr_6 = (0u | 16u); aot_gpr_31 = (0x089905D0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(912)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 84u, 0x089905D0u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089905D0u) goto L_089905D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089905D0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(68), ctx.gpr[2]); goto L_089905D4; @@ -1869,8 +2218,21 @@ L_089906A8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(52))); aot_gpr_31 = (0x089906B4u); aot_gpr_4 = (aot_gpr_4 << 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 96u, 0x089906B4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089906B4u) goto L_089906B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089906B4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(56), ctx.gpr[2]); goto L_089906B8; @@ -1944,8 +2306,21 @@ L_08990754: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08990770u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 103u, 0x08990770u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990770u) goto L_08990770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990770: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(60), 0u); @@ -1981,16 +2356,42 @@ L_08990798: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x089907B4u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 107u, 0x089907B4u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089907B4u) goto L_089907B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089907B4: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(53))); aot_gpr_4 = (0u | 0u); aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x089907C8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 108u, 0x089907C8u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089907C8u) goto L_089907C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089907C8: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(60), ctx.gpr[2]); goto L_089907CC; @@ -2073,8 +2474,21 @@ L_08990840: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x0899085Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 114u, 0x0899085Cu, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899085Cu) goto L_0899085C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899085C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(64), 0u); @@ -2110,16 +2524,42 @@ L_08990884: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x089908A0u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 118u, 0x089908A0u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089908A0u) goto L_089908A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089908A0: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(48))); aot_gpr_4 = (0u | 0u); aot_gpr_6 = (0u | 48u); aot_gpr_31 = (0x089908B4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 119u, 0x089908B4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089908B4u) goto L_089908B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089908B4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(64), ctx.gpr[2]); goto L_089908B8; @@ -2142,8 +2582,21 @@ L_089908CC: aot_gpr_4 = (aot_gpr_5 + aot_gpr_6); aot_gpr_31 = (0x089908ECu); aot_gpr_5 = (ctx.gpr[7] + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 122u, 0x089908ECu, 0x088B9CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 390u, 0x088B9CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089908ECu) goto L_089908EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089908EC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(48))); @@ -2194,8 +2647,21 @@ L_08990938: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08990954u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 128u, 0x08990954u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990954u) goto L_08990954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990954: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(72), 0u); @@ -2292,8 +2758,21 @@ L_08990A04: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08990A20u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 139u, 0x08990A20u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990A20u) goto L_08990A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990A20: { const bool branch_taken = static_cast(ctx.gpr[18]) <= 0; if (branch_taken) { @@ -2308,8 +2787,21 @@ L_08990A28: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08990A40u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(892)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 141u, 0x08990A40u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990A40u) goto L_08990A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990A40: ctx.gpr[19] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -2374,8 +2866,21 @@ L_08990AC0: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(50))); aot_gpr_31 = (0x08990ACCu); aot_gpr_4 = (aot_gpr_4 << 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 148u, 0x08990ACCu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08990ACCu) goto L_08990ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08990ACC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(76), ctx.gpr[2]); goto L_08990AD0; @@ -2426,46 +2931,46 @@ L_08990B30: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990B50: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(9296), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990B58: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990B60: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7892), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990B68: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990B70: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990B78: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990B80: @@ -2482,8 +2987,8 @@ L_08990B80: L_08990B9C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(9404), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990BA4: @@ -2491,8 +2996,8 @@ L_08990BA4: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9348), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990BB4: @@ -2500,8 +3005,8 @@ L_08990BB4: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9352), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990BC4: @@ -2509,8 +3014,8 @@ L_08990BC4: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9356), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990BD4: @@ -2525,8 +3030,8 @@ L_08990BD4: L_08990BE8: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9360), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990BF0: @@ -2541,8 +3046,8 @@ L_08990BF0: L_08990C04: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9364), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990C0C: @@ -2557,8 +3062,8 @@ L_08990C0C: L_08990C20: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9368), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990C28: @@ -2926,8 +3431,8 @@ L_08990EA8: goto L_08990EAC; L_08990EAC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08990EB4: @@ -3068,8 +3573,8 @@ L_0899100C: goto L_08991034; L_08991034: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899103C: @@ -3106,8 +3611,8 @@ L_0899106C: goto L_08991080; L_08991080: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991088: @@ -3115,15 +3620,15 @@ L_08991088: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9376), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991098: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9380), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089910A0: @@ -3131,8 +3636,8 @@ L_089910A0: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9384), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089910B0: @@ -3142,8 +3647,8 @@ L_089910B0: aot_fpr_12 = aot_fpr_13 + aot_fpr_12; jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9392), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089910C8: @@ -3153,15 +3658,15 @@ L_089910C8: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9412), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089910E0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9408), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089910E8: @@ -3179,8 +3684,8 @@ L_089910E8: L_08991108: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991110: @@ -3217,8 +3722,8 @@ L_08991148: goto L_0899114C; L_0899114C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991154: @@ -3255,8 +3760,8 @@ L_0899118C: goto L_08991190; L_08991190: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991198: @@ -3293,8 +3798,8 @@ L_089911D0: goto L_089911D4; L_089911D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089911DC: @@ -3331,8 +3836,8 @@ L_08991214: goto L_08991218; L_08991218: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991220: @@ -3369,8 +3874,8 @@ L_08991258: goto L_0899125C; L_0899125C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991264: @@ -3407,8 +3912,8 @@ L_0899129C: goto L_089912A0; L_089912A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089912A8: @@ -3444,8 +3949,8 @@ L_089912DC: goto L_089912E0; L_089912E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089912E8: @@ -3481,8 +3986,8 @@ L_0899131C: goto L_08991320; L_08991320: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991328: @@ -3519,8 +4024,8 @@ L_08991360: goto L_08991364; L_08991364: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899136C: @@ -3557,8 +4062,8 @@ L_089913A4: goto L_089913A8; L_089913A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089913B0: @@ -3572,8 +4077,21 @@ L_089913B0: aot_gpr_16 = (0u | 1u); aot_gpr_31 = (0x089913D8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 287u, 0x089913D8u, 0x08A06454u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 573u, 0x08A06454u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089913D8u) goto L_089913D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089913D8: aot_gpr_6 = (0u | 0u); aot_fpr_12 = std::bit_cast(0u); @@ -3614,8 +4132,8 @@ L_08991414: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899142C: @@ -3625,8 +4143,8 @@ L_0899142C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991444: @@ -3662,8 +4180,8 @@ L_08991478: } L_08991488: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991490: @@ -3699,8 +4217,8 @@ L_089914C4: } L_089914D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089914DC: @@ -3729,8 +4247,8 @@ L_08991504: goto L_0899150C; L_0899150C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991514: @@ -3760,8 +4278,8 @@ L_0899153C: goto L_08991548; L_08991548: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991550: @@ -3785,8 +4303,8 @@ L_0899155C: } L_0899156C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991574: @@ -3819,8 +4337,8 @@ L_08991598: L_0899159C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089915A4: @@ -3877,8 +4395,21 @@ L_08991610: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x0899161Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 325u, 0x0899161Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899161Cu) goto L_0899161C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899161C: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -3902,14 +4433,40 @@ L_08991634: L_0899163C: aot_gpr_31 = (0x08991644u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 330u, 0x08991644u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08991644u) goto L_08991644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08991644: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08991650u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 331u, 0x08991650u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08991650u) goto L_08991650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08991650: { const bool branch_taken = static_cast(ctx.gpr[18]) <= 0; aot_gpr_4 = (static_cast(ctx.gpr[18]) < 256 ? 1u : 0u); @@ -3931,8 +4488,21 @@ L_08991660: aot_gpr_4 = (ctx.gpr[28] + static_cast(-15696)); aot_gpr_31 = (0x08991674u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 334u, 0x08991674u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08991674u) goto L_08991674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08991674: ctx.gpr[19] = (0u | 1u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -3946,8 +4516,21 @@ L_08991684: aot_gpr_4 = (ctx.gpr[29] | 0u); aot_gpr_31 = (0x08991690u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 336u, 0x08991690u, 0x08887B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 846u, 0x08887B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08991690u) goto L_08991690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08991690: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -3961,8 +4544,21 @@ L_089916A0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089916ACu); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 338u, 0x089916ACu, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089916ACu) goto L_089916AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089916AC: aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_17 != 0u; @@ -3976,8 +4572,21 @@ L_089916B8: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x089916C4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 340u, 0x089916C4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089916C4u) goto L_089916C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089916C4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4001,19 +4610,58 @@ L_089916DC: L_089916E4: aot_gpr_31 = (0x089916ECu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 345u, 0x089916ECu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089916ECu) goto L_089916EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089916EC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089916F8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 346u, 0x089916F8u, 0x08887B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 846u, 0x08887B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089916F8u) goto L_089916F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089916F8: aot_gpr_31 = (0x08991700u); aot_gpr_4 = (ctx.gpr[22] + static_cast(-8144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 347u, 0x08991700u, 0x089F5C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 340u, 0x089F5C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08991700u) goto L_08991700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08991700: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4034,8 +4682,21 @@ L_08991714: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08991720u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 350u, 0x08991720u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08991720u) goto L_08991720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08991720: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4059,19 +4720,58 @@ L_08991738: L_08991740: aot_gpr_31 = (0x08991748u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 355u, 0x08991748u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08991748u) goto L_08991748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08991748: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08991754u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 356u, 0x08991754u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08991754u) goto L_08991754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08991754: aot_gpr_31 = (0x0899175Cu); aot_gpr_4 = (ctx.gpr[22] + static_cast(-8144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 357u, 0x0899175Cu, 0x089F5C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 340u, 0x089F5C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899175Cu) goto L_0899175C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899175C: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(516), aot_run_words); @@ -4087,8 +4787,8 @@ L_0899175C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(560)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991788: @@ -4444,8 +5144,8 @@ L_08991ACC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08991B5C: @@ -5993,8 +6693,8 @@ L_0899252C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(64))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899253C: @@ -6083,48 +6783,126 @@ L_08992584: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899266Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 604u, 0x0899266Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899266Cu) goto L_0899266C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899266C: aot_gpr_16 = (aot_gpr_17 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9304)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992680u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 605u, 0x08992680u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992680u) goto L_08992680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992680: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9308)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992694u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 606u, 0x08992694u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992694u) goto L_08992694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992694: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9312)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089926A8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 607u, 0x089926A8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089926A8u) goto L_089926A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089926A8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(7880)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089926BCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 608u, 0x089926BCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089926BCu) goto L_089926BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089926BC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9316)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089926D0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 609u, 0x089926D0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089926D0u) goto L_089926D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089926D0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (2279u << 16u); @@ -6132,536 +6910,1407 @@ L_089926D0: aot_gpr_6 = (0u | 92u); aot_gpr_31 = (0x089926E8u); aot_gpr_5 = (aot_gpr_5 + static_cast(17488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 610u, 0x089926E8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089926E8u) goto L_089926E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089926E8: aot_gpr_16 = (aot_gpr_16 + static_cast(92)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9320)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089926FCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 611u, 0x089926FCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089926FCu) goto L_089926FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089926FC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8080)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992710u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 612u, 0x08992710u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992710u) goto L_08992710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992710: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8084)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992724u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 613u, 0x08992724u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992724u) goto L_08992724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992724: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9324)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992738u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 614u, 0x08992738u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992738u) goto L_08992738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992738: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9328)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899274Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 615u, 0x0899274Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899274Cu) goto L_0899274C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899274C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8676)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992760u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 616u, 0x08992760u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992760u) goto L_08992760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992760: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9332)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992774u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 617u, 0x08992774u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992774u) goto L_08992774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992774: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9336)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992788u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 618u, 0x08992788u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992788u) goto L_08992788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992788: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9036)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899279Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 619u, 0x0899279Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899279Cu) goto L_0899279C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899279C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9032)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089927B0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 620u, 0x089927B0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089927B0u) goto L_089927B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089927B0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8912)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089927C4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 621u, 0x089927C4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089927C4u) goto L_089927C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089927C4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9340)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089927D8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 622u, 0x089927D8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089927D8u) goto L_089927D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089927D8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9344)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089927ECu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 623u, 0x089927ECu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089927ECu) goto L_089927EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089927EC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8088)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992800u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 624u, 0x08992800u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992800u) goto L_08992800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992800: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8092)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992814u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 625u, 0x08992814u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992814u) goto L_08992814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992814: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8096)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992828u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 626u, 0x08992828u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992828u) goto L_08992828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992828: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8100)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899283Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 627u, 0x0899283Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899283Cu) goto L_0899283C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899283C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8104)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992850u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 628u, 0x08992850u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992850u) goto L_08992850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992850: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8108)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992864u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 629u, 0x08992864u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992864u) goto L_08992864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992864: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8112)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992878u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 630u, 0x08992878u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992878u) goto L_08992878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992878: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8124)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899288Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 631u, 0x0899288Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899288Cu) goto L_0899288C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899288C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8116)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089928A0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 632u, 0x089928A0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089928A0u) goto L_089928A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089928A0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8120)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089928B4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 633u, 0x089928B4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089928B4u) goto L_089928B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089928B4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8284)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089928C8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 634u, 0x089928C8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089928C8u) goto L_089928C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089928C8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8288)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089928DCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 635u, 0x089928DCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089928DCu) goto L_089928DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089928DC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8292)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089928F0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 636u, 0x089928F0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089928F0u) goto L_089928F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089928F0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8076)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992904u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 637u, 0x08992904u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992904u) goto L_08992904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992904: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9084)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992918u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 638u, 0x08992918u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992918u) goto L_08992918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992918: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9080)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899292Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 639u, 0x0899292Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899292Cu) goto L_0899292C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899292C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9068)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992940u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 640u, 0x08992940u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992940u) goto L_08992940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992940: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9072)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992954u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 641u, 0x08992954u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992954u) goto L_08992954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992954: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9076)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992968u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 642u, 0x08992968u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992968u) goto L_08992968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992968: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9064)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899297Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 643u, 0x0899297Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899297Cu) goto L_0899297C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899297C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9348)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992990u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 644u, 0x08992990u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992990u) goto L_08992990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992990: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9352)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089929A4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 645u, 0x089929A4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089929A4u) goto L_089929A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089929A4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9356)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089929B8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 646u, 0x089929B8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089929B8u) goto L_089929B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089929B8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9360)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089929CCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 647u, 0x089929CCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089929CCu) goto L_089929CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089929CC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9364)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089929E0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 648u, 0x089929E0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089929E0u) goto L_089929E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089929E0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9368)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089929F4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 649u, 0x089929F4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089929F4u) goto L_089929F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089929F4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9372)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992A08u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 650u, 0x08992A08u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992A08u) goto L_08992A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992A08: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9376)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992A1Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 651u, 0x08992A1Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992A1Cu) goto L_08992A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992A1C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9380)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992A30u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 652u, 0x08992A30u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992A30u) goto L_08992A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992A30: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9384)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992A44u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 653u, 0x08992A44u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992A44u) goto L_08992A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992A44: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8684)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992A58u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 654u, 0x08992A58u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992A58u) goto L_08992A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992A58: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9388)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992A6Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 655u, 0x08992A6Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992A6Cu) goto L_08992A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992A6C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9392)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992A80u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 656u, 0x08992A80u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992A80u) goto L_08992A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992A80: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9048)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992A94u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 657u, 0x08992A94u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992A94u) goto L_08992A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992A94: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9056)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992AA8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 658u, 0x08992AA8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992AA8u) goto L_08992AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992AA8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9040)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992ABCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 659u, 0x08992ABCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992ABCu) goto L_08992ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992ABC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9052)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992AD0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 660u, 0x08992AD0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992AD0u) goto L_08992AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992AD0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9060)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992AE4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 661u, 0x08992AE4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992AE4u) goto L_08992AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992AE4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9044)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992AF8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 662u, 0x08992AF8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992AF8u) goto L_08992AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992AF8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8144)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992B0Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 663u, 0x08992B0Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992B0Cu) goto L_08992B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992B0C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9396)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992B20u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 664u, 0x08992B20u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992B20u) goto L_08992B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992B20: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(7904)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992B34u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 665u, 0x08992B34u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992B34u) goto L_08992B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992B34: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9400)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992B48u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 666u, 0x08992B48u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992B48u) goto L_08992B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992B48: aot_gpr_16 = (aot_gpr_16 + static_cast(2)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9088)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992B5Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 667u, 0x08992B5Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992B5Cu) goto L_08992B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992B5C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9404)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992B70u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 668u, 0x08992B70u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992B70u) goto L_08992B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992B70: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9408)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992B84u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 669u, 0x08992B84u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992B84u) goto L_08992B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992B84: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9412)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992B98u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 670u, 0x08992B98u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992B98u) goto L_08992B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992B98: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8128)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992BACu); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 671u, 0x08992BACu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992BACu) goto L_08992BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992BAC: aot_gpr_16 = (aot_gpr_16 + static_cast(8)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9288)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992BC0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 672u, 0x08992BC0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992BC0u) goto L_08992BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992BC0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8260)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992BD4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 673u, 0x08992BD4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992BD4u) goto L_08992BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992BD4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8264)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992BE8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 674u, 0x08992BE8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992BE8u) goto L_08992BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992BE8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8268)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992BFCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 675u, 0x08992BFCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992BFCu) goto L_08992BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992BFC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8140)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992C10u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 676u, 0x08992C10u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992C10u) goto L_08992C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992C10: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (2279u << 16u); @@ -6669,8 +8318,21 @@ L_08992C10: aot_gpr_6 = (0u | 36u); aot_gpr_31 = (0x08992C28u); aot_gpr_5 = (aot_gpr_5 + static_cast(17624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 677u, 0x08992C28u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992C28u) goto L_08992C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992C28: aot_gpr_16 = (aot_gpr_16 + static_cast(36)); aot_gpr_5 = (2279u << 16u); @@ -6678,8 +8340,21 @@ L_08992C28: aot_gpr_6 = (0u | 36u); aot_gpr_31 = (0x08992C40u); aot_gpr_5 = (aot_gpr_5 + static_cast(17664)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 678u, 0x08992C40u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992C40u) goto L_08992C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992C40: aot_gpr_16 = (aot_gpr_16 + static_cast(36)); aot_gpr_5 = (2279u << 16u); @@ -6687,8 +8362,21 @@ L_08992C40: aot_gpr_6 = (0u | 36u); aot_gpr_31 = (0x08992C58u); aot_gpr_5 = (aot_gpr_5 + static_cast(17704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 679u, 0x08992C58u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992C58u) goto L_08992C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992C58: aot_gpr_16 = (aot_gpr_16 + static_cast(36)); aot_gpr_5 = (2279u << 16u); @@ -6696,8 +8384,21 @@ L_08992C58: aot_gpr_6 = (0u | 48u); aot_gpr_31 = (0x08992C70u); aot_gpr_5 = (aot_gpr_5 + static_cast(17744)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 680u, 0x08992C70u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992C70u) goto L_08992C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992C70: aot_gpr_16 = (aot_gpr_16 + static_cast(48)); aot_gpr_5 = (2279u << 16u); @@ -6705,8 +8406,21 @@ L_08992C70: aot_gpr_6 = (0u | 48u); aot_gpr_31 = (0x08992C88u); aot_gpr_5 = (aot_gpr_5 + static_cast(17792)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 681u, 0x08992C88u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992C88u) goto L_08992C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992C88: aot_gpr_16 = (aot_gpr_16 + static_cast(48)); aot_gpr_5 = (2279u << 16u); @@ -6714,8 +8428,21 @@ L_08992C88: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08992CA0u); aot_gpr_5 = (aot_gpr_5 + static_cast(17840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 682u, 0x08992CA0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992CA0u) goto L_08992CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992CA0: aot_gpr_16 = (aot_gpr_16 + static_cast(32)); aot_gpr_5 = (2279u << 16u); @@ -6723,24 +8450,63 @@ L_08992CA0: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08992CB8u); aot_gpr_5 = (aot_gpr_5 + static_cast(17872)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 683u, 0x08992CB8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992CB8u) goto L_08992CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992CB8: aot_gpr_16 = (aot_gpr_16 + static_cast(32)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9416)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992CCCu); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 684u, 0x08992CCCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992CCCu) goto L_08992CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992CCC: aot_gpr_16 = (aot_gpr_16 + static_cast(16)); aot_gpr_5 = (ctx.gpr[28] + static_cast(9432)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992CE0u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 685u, 0x08992CE0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992CE0u) goto L_08992CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992CE0: aot_gpr_16 = (aot_gpr_16 + static_cast(16)); aot_gpr_5 = (2279u << 16u); @@ -6748,8 +8514,21 @@ L_08992CE0: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08992CF8u); aot_gpr_5 = (aot_gpr_5 + static_cast(17904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 686u, 0x08992CF8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992CF8u) goto L_08992CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992CF8: aot_gpr_16 = (aot_gpr_16 + static_cast(32)); aot_gpr_5 = (2279u << 16u); @@ -6757,8 +8536,21 @@ L_08992CF8: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08992D10u); aot_gpr_5 = (aot_gpr_5 + static_cast(17936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 687u, 0x08992D10u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992D10u) goto L_08992D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992D10: aot_gpr_16 = (aot_gpr_16 + static_cast(32)); aot_gpr_5 = (2240u << 16u); @@ -6766,248 +8558,651 @@ L_08992D10: aot_gpr_6 = (0u | 24u); aot_gpr_31 = (0x08992D28u); aot_gpr_5 = (aot_gpr_5 + static_cast(-23472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 688u, 0x08992D28u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992D28u) goto L_08992D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992D28: aot_gpr_16 = (aot_gpr_16 + static_cast(24)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8180)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992D3Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 689u, 0x08992D3Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992D3Cu) goto L_08992D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992D3C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8184)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992D50u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 690u, 0x08992D50u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992D50u) goto L_08992D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992D50: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8188)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992D64u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 691u, 0x08992D64u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992D64u) goto L_08992D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992D64: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8192)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992D78u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 692u, 0x08992D78u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992D78u) goto L_08992D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992D78: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8296)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992D8Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 693u, 0x08992D8Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992D8Cu) goto L_08992D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992D8C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8300)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992DA0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 694u, 0x08992DA0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992DA0u) goto L_08992DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992DA0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8304)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992DB4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 695u, 0x08992DB4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992DB4u) goto L_08992DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992DB4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8308)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992DC8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 696u, 0x08992DC8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992DC8u) goto L_08992DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992DC8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8168)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992DDCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 697u, 0x08992DDCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992DDCu) goto L_08992DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992DDC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8212)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992DF0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 698u, 0x08992DF0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992DF0u) goto L_08992DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992DF0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8216)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992E04u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 699u, 0x08992E04u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992E04u) goto L_08992E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992E04: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8196)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992E18u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 700u, 0x08992E18u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992E18u) goto L_08992E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992E18: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8200)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992E2Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 701u, 0x08992E2Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992E2Cu) goto L_08992E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992E2C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8204)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992E40u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 702u, 0x08992E40u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992E40u) goto L_08992E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992E40: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8208)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992E54u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 703u, 0x08992E54u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992E54u) goto L_08992E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992E54: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8220)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992E68u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 704u, 0x08992E68u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992E68u) goto L_08992E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992E68: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8224)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992E7Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 705u, 0x08992E7Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992E7Cu) goto L_08992E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992E7C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8228)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992E90u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 706u, 0x08992E90u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992E90u) goto L_08992E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992E90: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8232)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992EA4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 707u, 0x08992EA4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992EA4u) goto L_08992EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992EA4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8236)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992EB8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 708u, 0x08992EB8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992EB8u) goto L_08992EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992EB8: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8240)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992ECCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 709u, 0x08992ECCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992ECCu) goto L_08992ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992ECC: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8244)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992EE0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 710u, 0x08992EE0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992EE0u) goto L_08992EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992EE0: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8248)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992EF4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 711u, 0x08992EF4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992EF4u) goto L_08992EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992EF4: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8252)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992F08u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 712u, 0x08992F08u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992F08u) goto L_08992F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992F08: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8256)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992F1Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 713u, 0x08992F1Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992F1Cu) goto L_08992F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992F1C: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8172)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992F30u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 714u, 0x08992F30u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992F30u) goto L_08992F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992F30: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8176)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992F44u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 715u, 0x08992F44u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992F44u) goto L_08992F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992F44: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8272)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992F58u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 716u, 0x08992F58u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992F58u) goto L_08992F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992F58: aot_gpr_16 = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8280)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08992F6Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 717u, 0x08992F6Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992F6Cu) goto L_08992F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992F6C: ctx.gpr[18] = (aot_gpr_16 + static_cast(4)); aot_gpr_5 = (ctx.gpr[28] + static_cast(8276)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08992F80u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 718u, 0x08992F80u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992F80u) goto L_08992F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992F80: aot_gpr_31 = (0x08992F88u); ctx.gpr[18] = (ctx.gpr[18] + static_cast(4)); @@ -7022,8 +9217,21 @@ L_08992F94: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08992FA4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 721u, 0x08992FA4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08992FA4u) goto L_08992FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08992FA4: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(4)); @@ -7046,8 +9254,8 @@ L_08992FB8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08992FD4: @@ -7063,48 +9271,126 @@ L_08992FD4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08993004u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 724u, 0x08993004u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993004u) goto L_08993004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993004: aot_gpr_17 = (ctx.gpr[18] + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9304)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993018u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 725u, 0x08993018u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993018u) goto L_08993018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993018: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9308)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899302Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 726u, 0x0899302Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899302Cu) goto L_0899302C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899302C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9312)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993040u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 727u, 0x08993040u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993040u) goto L_08993040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993040: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(7880)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993054u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 728u, 0x08993054u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993054u) goto L_08993054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993054: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9316)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993068u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 729u, 0x08993068u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993068u) goto L_08993068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993068: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (2279u << 16u); @@ -7112,536 +9398,1407 @@ L_08993068: aot_gpr_6 = (0u | 92u); aot_gpr_31 = (0x08993080u); aot_gpr_4 = (aot_gpr_4 + static_cast(17488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 730u, 0x08993080u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993080u) goto L_08993080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993080: aot_gpr_17 = (aot_gpr_17 + static_cast(92)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9320)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993094u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 731u, 0x08993094u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993094u) goto L_08993094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993094: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8080)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089930A8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 732u, 0x089930A8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089930A8u) goto L_089930A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089930A8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8084)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089930BCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 733u, 0x089930BCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089930BCu) goto L_089930BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089930BC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9324)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089930D0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 734u, 0x089930D0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089930D0u) goto L_089930D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089930D0: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9328)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089930E4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 735u, 0x089930E4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089930E4u) goto L_089930E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089930E4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8676)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089930F8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 736u, 0x089930F8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089930F8u) goto L_089930F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089930F8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9332)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899310Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 737u, 0x0899310Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899310Cu) goto L_0899310C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899310C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9336)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993120u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 738u, 0x08993120u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993120u) goto L_08993120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993120: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9036)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993134u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 739u, 0x08993134u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993134u) goto L_08993134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993134: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9032)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993148u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 740u, 0x08993148u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993148u) goto L_08993148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993148: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8912)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899315Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 741u, 0x0899315Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899315Cu) goto L_0899315C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899315C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9340)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993170u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 742u, 0x08993170u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993170u) goto L_08993170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993170: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9344)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993184u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 743u, 0x08993184u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993184u) goto L_08993184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993184: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8088)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993198u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 744u, 0x08993198u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993198u) goto L_08993198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993198: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8092)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089931ACu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 745u, 0x089931ACu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089931ACu) goto L_089931AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089931AC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8096)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089931C0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 746u, 0x089931C0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089931C0u) goto L_089931C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089931C0: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8100)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089931D4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 747u, 0x089931D4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089931D4u) goto L_089931D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089931D4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8104)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089931E8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 748u, 0x089931E8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089931E8u) goto L_089931E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089931E8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8108)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089931FCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 749u, 0x089931FCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089931FCu) goto L_089931FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089931FC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8112)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993210u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 750u, 0x08993210u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993210u) goto L_08993210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993210: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8124)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993224u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 751u, 0x08993224u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993224u) goto L_08993224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993224: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8116)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993238u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 752u, 0x08993238u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993238u) goto L_08993238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993238: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8120)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899324Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 753u, 0x0899324Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899324Cu) goto L_0899324C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899324C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8284)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993260u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 754u, 0x08993260u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993260u) goto L_08993260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993260: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8288)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993274u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 755u, 0x08993274u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993274u) goto L_08993274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993274: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8292)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993288u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 756u, 0x08993288u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993288u) goto L_08993288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993288: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8076)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899329Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 757u, 0x0899329Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899329Cu) goto L_0899329C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899329C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9084)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089932B0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 758u, 0x089932B0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089932B0u) goto L_089932B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089932B0: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9080)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089932C4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 759u, 0x089932C4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089932C4u) goto L_089932C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089932C4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9068)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089932D8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 760u, 0x089932D8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089932D8u) goto L_089932D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089932D8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9072)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089932ECu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 761u, 0x089932ECu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089932ECu) goto L_089932EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089932EC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9076)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993300u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 762u, 0x08993300u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993300u) goto L_08993300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993300: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9064)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993314u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 763u, 0x08993314u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993314u) goto L_08993314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993314: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9348)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993328u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 764u, 0x08993328u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993328u) goto L_08993328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993328: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9352)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899333Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 765u, 0x0899333Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899333Cu) goto L_0899333C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899333C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9356)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993350u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 766u, 0x08993350u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993350u) goto L_08993350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993350: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9360)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993364u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 767u, 0x08993364u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993364u) goto L_08993364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993364: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9364)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993378u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 768u, 0x08993378u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993378u) goto L_08993378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993378: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9368)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899338Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 769u, 0x0899338Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899338Cu) goto L_0899338C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899338C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9372)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089933A0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 770u, 0x089933A0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089933A0u) goto L_089933A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089933A0: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9376)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089933B4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 771u, 0x089933B4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089933B4u) goto L_089933B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089933B4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9380)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089933C8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 772u, 0x089933C8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089933C8u) goto L_089933C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089933C8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9384)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089933DCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 773u, 0x089933DCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089933DCu) goto L_089933DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089933DC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8684)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089933F0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 774u, 0x089933F0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089933F0u) goto L_089933F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089933F0: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9388)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993404u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 775u, 0x08993404u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993404u) goto L_08993404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993404: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9392)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993418u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 776u, 0x08993418u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993418u) goto L_08993418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993418: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9048)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899342Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 777u, 0x0899342Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899342Cu) goto L_0899342C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899342C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9056)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993440u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 778u, 0x08993440u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993440u) goto L_08993440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993440: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9040)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993454u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 779u, 0x08993454u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993454u) goto L_08993454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993454: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9052)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993468u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 780u, 0x08993468u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993468u) goto L_08993468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993468: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9060)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899347Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 781u, 0x0899347Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899347Cu) goto L_0899347C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899347C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9044)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993490u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 782u, 0x08993490u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993490u) goto L_08993490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993490: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8144)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089934A4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 783u, 0x089934A4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089934A4u) goto L_089934A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089934A4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9396)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089934B8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 784u, 0x089934B8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089934B8u) goto L_089934B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089934B8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(7904)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089934CCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 785u, 0x089934CCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089934CCu) goto L_089934CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089934CC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9400)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089934E0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 786u, 0x089934E0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089934E0u) goto L_089934E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089934E0: aot_gpr_17 = (aot_gpr_17 + static_cast(2)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9088)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089934F4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 787u, 0x089934F4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089934F4u) goto L_089934F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089934F4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9404)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993508u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 788u, 0x08993508u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993508u) goto L_08993508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993508: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9408)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899351Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 789u, 0x0899351Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899351Cu) goto L_0899351C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899351C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9412)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993530u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 790u, 0x08993530u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993530u) goto L_08993530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993530: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8128)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993544u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 791u, 0x08993544u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993544u) goto L_08993544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993544: aot_gpr_17 = (aot_gpr_17 + static_cast(8)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9288)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993558u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 792u, 0x08993558u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993558u) goto L_08993558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993558: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8260)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899356Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 793u, 0x0899356Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899356Cu) goto L_0899356C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899356C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8264)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993580u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 794u, 0x08993580u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993580u) goto L_08993580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993580: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8268)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993594u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 795u, 0x08993594u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993594u) goto L_08993594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993594: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8140)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089935A8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 796u, 0x089935A8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089935A8u) goto L_089935A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089935A8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (2279u << 16u); @@ -7649,8 +10806,21 @@ L_089935A8: aot_gpr_6 = (0u | 36u); aot_gpr_31 = (0x089935C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(17624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 797u, 0x089935C0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089935C0u) goto L_089935C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089935C0: aot_gpr_17 = (aot_gpr_17 + static_cast(36)); aot_gpr_4 = (2279u << 16u); @@ -7658,8 +10828,21 @@ L_089935C0: aot_gpr_6 = (0u | 36u); aot_gpr_31 = (0x089935D8u); aot_gpr_4 = (aot_gpr_4 + static_cast(17664)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 798u, 0x089935D8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089935D8u) goto L_089935D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089935D8: aot_gpr_17 = (aot_gpr_17 + static_cast(36)); aot_gpr_4 = (2279u << 16u); @@ -7667,8 +10850,21 @@ L_089935D8: aot_gpr_6 = (0u | 36u); aot_gpr_31 = (0x089935F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(17704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 799u, 0x089935F0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089935F0u) goto L_089935F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089935F0: aot_gpr_17 = (aot_gpr_17 + static_cast(36)); aot_gpr_4 = (2279u << 16u); @@ -7676,8 +10872,21 @@ L_089935F0: aot_gpr_6 = (0u | 48u); aot_gpr_31 = (0x08993608u); aot_gpr_4 = (aot_gpr_4 + static_cast(17744)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 800u, 0x08993608u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993608u) goto L_08993608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993608: aot_gpr_17 = (aot_gpr_17 + static_cast(48)); aot_gpr_4 = (2279u << 16u); @@ -7685,8 +10894,21 @@ L_08993608: aot_gpr_6 = (0u | 48u); aot_gpr_31 = (0x08993620u); aot_gpr_4 = (aot_gpr_4 + static_cast(17792)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 801u, 0x08993620u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993620u) goto L_08993620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993620: aot_gpr_17 = (aot_gpr_17 + static_cast(48)); aot_gpr_4 = (2279u << 16u); @@ -7694,8 +10916,21 @@ L_08993620: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08993638u); aot_gpr_4 = (aot_gpr_4 + static_cast(17840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 802u, 0x08993638u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993638u) goto L_08993638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993638: aot_gpr_17 = (aot_gpr_17 + static_cast(32)); aot_gpr_4 = (2279u << 16u); @@ -7703,24 +10938,63 @@ L_08993638: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08993650u); aot_gpr_4 = (aot_gpr_4 + static_cast(17872)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 803u, 0x08993650u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993650u) goto L_08993650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993650: aot_gpr_17 = (aot_gpr_17 + static_cast(32)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9416)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993664u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 804u, 0x08993664u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993664u) goto L_08993664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993664: aot_gpr_17 = (aot_gpr_17 + static_cast(16)); aot_gpr_4 = (ctx.gpr[28] + static_cast(9432)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993678u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 805u, 0x08993678u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993678u) goto L_08993678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993678: aot_gpr_17 = (aot_gpr_17 + static_cast(16)); aot_gpr_4 = (2279u << 16u); @@ -7728,8 +11002,21 @@ L_08993678: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08993690u); aot_gpr_4 = (aot_gpr_4 + static_cast(17904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 806u, 0x08993690u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993690u) goto L_08993690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993690: aot_gpr_17 = (aot_gpr_17 + static_cast(32)); aot_gpr_4 = (2279u << 16u); @@ -7737,8 +11024,21 @@ L_08993690: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x089936A8u); aot_gpr_4 = (aot_gpr_4 + static_cast(17936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 807u, 0x089936A8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089936A8u) goto L_089936A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089936A8: aot_gpr_17 = (aot_gpr_17 + static_cast(32)); aot_gpr_4 = (2240u << 16u); @@ -7746,248 +11046,651 @@ L_089936A8: aot_gpr_6 = (0u | 24u); aot_gpr_31 = (0x089936C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-23472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 808u, 0x089936C0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089936C0u) goto L_089936C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089936C0: aot_gpr_17 = (aot_gpr_17 + static_cast(24)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8180)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089936D4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 809u, 0x089936D4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089936D4u) goto L_089936D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089936D4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8184)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089936E8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 810u, 0x089936E8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089936E8u) goto L_089936E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089936E8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8188)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089936FCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 811u, 0x089936FCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089936FCu) goto L_089936FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089936FC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8192)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993710u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 812u, 0x08993710u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993710u) goto L_08993710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993710: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8296)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993724u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 813u, 0x08993724u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993724u) goto L_08993724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993724: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8300)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993738u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 814u, 0x08993738u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993738u) goto L_08993738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993738: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8304)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899374Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 815u, 0x0899374Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899374Cu) goto L_0899374C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899374C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8308)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993760u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 816u, 0x08993760u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993760u) goto L_08993760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993760: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8168)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993774u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 817u, 0x08993774u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993774u) goto L_08993774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993774: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8212)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993788u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 818u, 0x08993788u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993788u) goto L_08993788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993788: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8216)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899379Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 819u, 0x0899379Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899379Cu) goto L_0899379C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899379C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8196)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089937B0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 820u, 0x089937B0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089937B0u) goto L_089937B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089937B0: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8200)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089937C4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 821u, 0x089937C4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089937C4u) goto L_089937C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089937C4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8204)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089937D8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 822u, 0x089937D8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089937D8u) goto L_089937D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089937D8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8208)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089937ECu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 823u, 0x089937ECu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089937ECu) goto L_089937EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089937EC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8220)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993800u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 824u, 0x08993800u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993800u) goto L_08993800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993800: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8224)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993814u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 825u, 0x08993814u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993814u) goto L_08993814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993814: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8228)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993828u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 826u, 0x08993828u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993828u) goto L_08993828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993828: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8232)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899383Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 827u, 0x0899383Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899383Cu) goto L_0899383C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899383C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8236)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993850u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 828u, 0x08993850u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993850u) goto L_08993850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993850: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8240)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993864u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 829u, 0x08993864u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993864u) goto L_08993864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993864: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8244)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993878u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 830u, 0x08993878u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993878u) goto L_08993878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993878: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8248)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x0899388Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 831u, 0x0899388Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899388Cu) goto L_0899388C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899388C: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8252)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089938A0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 832u, 0x089938A0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089938A0u) goto L_089938A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089938A0: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8256)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089938B4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 833u, 0x089938B4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089938B4u) goto L_089938B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089938B4: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8172)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089938C8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 834u, 0x089938C8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089938C8u) goto L_089938C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089938C8: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8176)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089938DCu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 835u, 0x089938DCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089938DCu) goto L_089938DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089938DC: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8272)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089938F0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 836u, 0x089938F0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089938F0u) goto L_089938F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089938F0: aot_gpr_17 = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8280)); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08993904u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 837u, 0x08993904u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993904u) goto L_08993904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993904: ctx.gpr[18] = (aot_gpr_17 + static_cast(4)); aot_gpr_4 = (ctx.gpr[28] + static_cast(8276)); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08993918u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 838u, 0x08993918u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993918u) goto L_08993918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993918: aot_gpr_4 = (0u | 0u); ctx.gpr[18] = (ctx.gpr[18] + static_cast(4)); @@ -7999,8 +11702,21 @@ L_08993928: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08993938u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 840u, 0x08993938u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993938u) goto L_08993938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993938: aot_gpr_17 = (aot_gpr_17 + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(4)); @@ -8022,8 +11738,8 @@ L_0899394C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08993964: @@ -8074,8 +11790,21 @@ L_089939C0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[9]); aot_gpr_31 = (0x089939E8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 847u, 0x089939E8u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089939E8u) goto L_089939E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089939E8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8108,8 +11837,21 @@ L_08993A00: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993A20u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 851u, 0x08993A20u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993A20u) goto L_08993A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993A20: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8160,8 +11902,21 @@ L_08993A78: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993A9Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 856u, 0x08993A9Cu, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993A9Cu) goto L_08993A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993A9C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8180,8 +11935,21 @@ L_08993AA4: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08993AC8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 858u, 0x08993AC8u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993AC8u) goto L_08993AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993AC8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8233,8 +12001,21 @@ L_08993B28: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08993B4Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 863u, 0x08993B4Cu, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993B4Cu) goto L_08993B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993B4C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8253,8 +12034,21 @@ L_08993B54: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993B78u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 865u, 0x08993B78u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993B78u) goto L_08993B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993B78: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8297,8 +12091,21 @@ L_08993BA0: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993BC4u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 870u, 0x08993BC4u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993BC4u) goto L_08993BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993BC4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8338,8 +12145,21 @@ L_08993BE8: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993C00u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 875u, 0x08993C00u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993C00u) goto L_08993C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993C00: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8379,8 +12199,21 @@ L_08993C2C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993C4Cu); ctx.gpr[9] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 880u, 0x08993C4Cu, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993C4Cu) goto L_08993C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993C4C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8431,8 +12264,21 @@ L_08993C88: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993CA8u); ctx.gpr[9] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 887u, 0x08993CA8u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993CA8u) goto L_08993CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993CA8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8483,8 +12329,21 @@ L_08993CE4: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993D04u); ctx.gpr[9] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 894u, 0x08993D04u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993D04u) goto L_08993D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993D04: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8535,8 +12394,21 @@ L_08993D40: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993D60u); ctx.gpr[9] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 901u, 0x08993D60u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993D60u) goto L_08993D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993D60: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8596,8 +12468,21 @@ L_08993DA4: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08993DC8u); ctx.gpr[9] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 909u, 0x08993DC8u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993DC8u) goto L_08993DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993DC8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8644,8 +12529,21 @@ L_08993DEC: ctx.gpr[10] = (ctx.lo); aot_gpr_31 = (0x08993E28u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(60), ctx.gpr[10]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 914u, 0x08993E28u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993E28u) goto L_08993E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993E28: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8692,8 +12590,21 @@ L_08993E4C: ctx.gpr[10] = (ctx.lo); aot_gpr_31 = (0x08993E88u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(64), ctx.gpr[10]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 919u, 0x08993E88u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993E88u) goto L_08993E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993E88: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8740,8 +12651,21 @@ L_08993EAC: ctx.gpr[10] = (ctx.lo); aot_gpr_31 = (0x08993EE8u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(68), ctx.gpr[10]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 924u, 0x08993EE8u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993EE8u) goto L_08993EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993EE8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8788,8 +12712,21 @@ L_08993F0C: ctx.gpr[10] = (ctx.lo); aot_gpr_31 = (0x08993F48u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(72), ctx.gpr[10]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 929u, 0x08993F48u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993F48u) goto L_08993F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993F48: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8839,8 +12776,21 @@ L_08993F74: ctx.gpr[10] = (ctx.lo); aot_gpr_31 = (0x08993FB4u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(76), ctx.gpr[10]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0099->0100. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0099_entry, 934u, 0x08993FB4u, 0x08996D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); +#else + recomp_unit_0100_entry(rt, ctx, 796u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0100_entry, 100u, 796u, 0x08996D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08993FB4u) goto L_08993FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08993FB4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); diff --git a/profiles/vcs/generated/generated_unit_0100.cpp b/profiles/vcs/generated/generated_unit_0100.cpp index 904c258..cdd49f6 100644 --- a/profiles/vcs/generated/generated_unit_0100.cpp +++ b/profiles/vcs/generated/generated_unit_0100.cpp @@ -1091,6 +1091,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08994000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1204,8 +1228,21 @@ L_089940AC: aot_gpr_5 = (aot_gpr_29 + static_cast(92)); aot_gpr_31 = (0x089940BCu); ctx.gpr[6] = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 14u, 0x089940BCu, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089940BCu) goto L_089940BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089940BC: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -1891,8 +1928,8 @@ L_089945D8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4944))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089945F0: @@ -1900,8 +1937,21 @@ L_089945F0: aot_gpr_5 = (aot_gpr_28 + static_cast(-14892)); aot_gpr_31 = (0x08994600u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 93u, 0x08994600u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994600u) goto L_08994600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994600: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1914,8 +1964,21 @@ L_08994608: aot_gpr_5 = (aot_gpr_28 + static_cast(-14884)); aot_gpr_31 = (0x08994618u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 95u, 0x08994618u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994618u) goto L_08994618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994618: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1928,8 +1991,21 @@ L_08994620: aot_gpr_5 = (aot_gpr_28 + static_cast(-14876)); aot_gpr_31 = (0x08994630u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 97u, 0x08994630u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994630u) goto L_08994630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994630: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1942,8 +2018,21 @@ L_08994638: aot_gpr_5 = (aot_gpr_28 + static_cast(-14868)); aot_gpr_31 = (0x08994648u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 99u, 0x08994648u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994648u) goto L_08994648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994648: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1956,8 +2045,21 @@ L_08994650: aot_gpr_5 = (aot_gpr_28 + static_cast(-14860)); aot_gpr_31 = (0x08994660u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 101u, 0x08994660u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994660u) goto L_08994660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994660: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1970,8 +2072,21 @@ L_08994668: aot_gpr_5 = (aot_gpr_28 + static_cast(-14852)); aot_gpr_31 = (0x08994678u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 103u, 0x08994678u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994678u) goto L_08994678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994678: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1984,8 +2099,21 @@ L_08994680: aot_gpr_5 = (aot_gpr_28 + static_cast(-14844)); aot_gpr_31 = (0x08994690u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 105u, 0x08994690u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994690u) goto L_08994690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994690: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1998,8 +2126,21 @@ L_08994698: aot_gpr_5 = (aot_gpr_28 + static_cast(-14836)); aot_gpr_31 = (0x089946A8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 107u, 0x089946A8u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089946A8u) goto L_089946A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089946A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2012,8 +2153,21 @@ L_089946B0: aot_gpr_5 = (aot_gpr_28 + static_cast(-14828)); aot_gpr_31 = (0x089946C0u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 109u, 0x089946C0u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089946C0u) goto L_089946C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089946C0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -2251,8 +2405,21 @@ L_08994890: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x089948A0u); aot_gpr_4 = (aot_gpr_28 + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 136u, 0x089948A0u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089948A0u) goto L_089948A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089948A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7868))); aot_gpr_5 = (aot_gpr_4 < static_cast(5) ? 1u : 0u); @@ -2962,8 +3129,8 @@ L_08994E54: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4904))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08994E74: @@ -3005,8 +3172,21 @@ L_08994EB0: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08994EBCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 220u, 0x08994EBCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994EBCu) goto L_08994EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994EBC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3030,14 +3210,40 @@ L_08994ED8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08994EE4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14620)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 225u, 0x08994EE4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994EE4u) goto L_08994EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994EE4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08994EF0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 226u, 0x08994EF0u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994EF0u) goto L_08994EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994EF0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3077,8 +3283,21 @@ L_08994F1C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08994F28u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 231u, 0x08994F28u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994F28u) goto L_08994F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994F28: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3102,14 +3321,40 @@ L_08994F44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08994F50u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14612)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 236u, 0x08994F50u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994F50u) goto L_08994F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994F50: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08994F5Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 237u, 0x08994F5Cu, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994F5Cu) goto L_08994F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994F5C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3149,8 +3394,21 @@ L_08994F88: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08994F94u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 242u, 0x08994F94u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994F94u) goto L_08994F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994F94: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3174,14 +3432,40 @@ L_08994FB0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08994FBCu); aot_gpr_5 = (aot_gpr_28 + static_cast(-14604)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 247u, 0x08994FBCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994FBCu) goto L_08994FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994FBC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08994FC8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 248u, 0x08994FC8u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08994FC8u) goto L_08994FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08994FC8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3221,8 +3505,21 @@ L_08994FF4: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08995000u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 253u, 0x08995000u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995000u) goto L_08995000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995000: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3246,14 +3543,40 @@ L_0899501C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08995028u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14596)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 258u, 0x08995028u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995028u) goto L_08995028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995028: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08995034u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 259u, 0x08995034u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995034u) goto L_08995034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995034: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3293,8 +3616,21 @@ L_08995060: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0899506Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 264u, 0x0899506Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899506Cu) goto L_0899506C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899506C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3318,14 +3654,40 @@ L_08995088: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08995094u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14588)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 269u, 0x08995094u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995094u) goto L_08995094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995094: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089950A0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 270u, 0x089950A0u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089950A0u) goto L_089950A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089950A0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3365,8 +3727,21 @@ L_089950CC: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089950D8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 275u, 0x089950D8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089950D8u) goto L_089950D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089950D8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3390,14 +3765,40 @@ L_089950F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08995100u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14580)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 280u, 0x08995100u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995100u) goto L_08995100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995100: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x0899510Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 281u, 0x0899510Cu, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899510Cu) goto L_0899510C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899510C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3437,8 +3838,21 @@ L_08995138: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08995144u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 286u, 0x08995144u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995144u) goto L_08995144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995144: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3462,14 +3876,40 @@ L_08995160: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0899516Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-14572)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 291u, 0x0899516Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899516Cu) goto L_0899516C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899516C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08995178u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 292u, 0x08995178u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995178u) goto L_08995178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995178: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3509,8 +3949,21 @@ L_089951A4: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089951B0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 297u, 0x089951B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089951B0u) goto L_089951B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089951B0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3534,14 +3987,40 @@ L_089951CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x089951D8u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14564)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 302u, 0x089951D8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089951D8u) goto L_089951D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089951D8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089951E4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 303u, 0x089951E4u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089951E4u) goto L_089951E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089951E4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3581,8 +4060,21 @@ L_08995210: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x0899521Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 308u, 0x0899521Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899521Cu) goto L_0899521C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899521C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3606,14 +4098,40 @@ L_08995238: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08995244u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14556)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 313u, 0x08995244u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995244u) goto L_08995244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995244: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08995250u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 314u, 0x08995250u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995250u) goto L_08995250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995250: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3653,8 +4171,21 @@ L_0899527C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08995288u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 319u, 0x08995288u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995288u) goto L_08995288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995288: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3678,14 +4209,40 @@ L_089952A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x089952B0u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14548)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 324u, 0x089952B0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089952B0u) goto L_089952B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089952B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089952BCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 325u, 0x089952BCu, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089952BCu) goto L_089952BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089952BC: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3725,8 +4282,21 @@ L_089952E8: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089952F4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 330u, 0x089952F4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089952F4u) goto L_089952F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089952F4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3750,14 +4320,40 @@ L_08995310: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x0899531Cu); aot_gpr_5 = (aot_gpr_28 + static_cast(-14540)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 335u, 0x0899531Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899531Cu) goto L_0899531C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899531C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08995328u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 336u, 0x08995328u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995328u) goto L_08995328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995328: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3797,8 +4393,21 @@ L_08995354: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08995360u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 341u, 0x08995360u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995360u) goto L_08995360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995360: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3822,14 +4431,40 @@ L_0899537C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x08995388u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14532)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 346u, 0x08995388u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995388u) goto L_08995388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995388: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08995394u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 347u, 0x08995394u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995394u) goto L_08995394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995394: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3869,8 +4504,21 @@ L_089953C0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089953CCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 352u, 0x089953CCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089953CCu) goto L_089953CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089953CC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3894,14 +4542,40 @@ L_089953E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); aot_gpr_31 = (0x089953F4u); aot_gpr_5 = (aot_gpr_28 + static_cast(-14524)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 357u, 0x089953F4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089953F4u) goto L_089953F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089953F4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08995400u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 358u, 0x08995400u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995400u) goto L_08995400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995400: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -4610,14 +5284,40 @@ L_089958F0: L_089958F8: aot_gpr_31 = (0x08995900u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8200))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 442u, 0x08995900u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995900u) goto L_08995900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995900: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8200))); aot_gpr_31 = (0x0899590Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(348), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 443u, 0x0899590Cu, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899590Cu) goto L_0899590C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899590C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(352), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14372)); @@ -4665,14 +5365,40 @@ L_08995954: L_0899595C: aot_gpr_31 = (0x08995964u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8204))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 449u, 0x08995964u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995964u) goto L_08995964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995964: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8204))); aot_gpr_31 = (0x08995970u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(356), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 450u, 0x08995970u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995970u) goto L_08995970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995970: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(360), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14364)); @@ -4720,14 +5446,40 @@ L_089959B8: L_089959C0: aot_gpr_31 = (0x089959C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8208))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 456u, 0x089959C8u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089959C8u) goto L_089959C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089959C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8208))); aot_gpr_31 = (0x089959D4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(364), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 457u, 0x089959D4u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089959D4u) goto L_089959D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089959D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(368), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14356)); @@ -5111,14 +5863,40 @@ L_08995C60: L_08995C68: aot_gpr_31 = (0x08995C70u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8240))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 503u, 0x08995C70u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995C70u) goto L_08995C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995C70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8240))); aot_gpr_31 = (0x08995C7Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(404), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 504u, 0x08995C7Cu, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995C7Cu) goto L_08995C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995C7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(408), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14284)); @@ -5166,14 +5944,40 @@ L_08995CC4: L_08995CCC: aot_gpr_31 = (0x08995CD4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8244))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 510u, 0x08995CD4u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995CD4u) goto L_08995CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995CD4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8244))); aot_gpr_31 = (0x08995CE0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(412), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 511u, 0x08995CE0u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995CE0u) goto L_08995CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995CE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(416), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14276)); @@ -5221,14 +6025,40 @@ L_08995D28: L_08995D30: aot_gpr_31 = (0x08995D38u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8248))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 517u, 0x08995D38u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995D38u) goto L_08995D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995D38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8248))); aot_gpr_31 = (0x08995D44u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(420), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 518u, 0x08995D44u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995D44u) goto L_08995D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995D44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(424), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14268)); @@ -5276,14 +6106,40 @@ L_08995D8C: L_08995D94: aot_gpr_31 = (0x08995D9Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8252))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 524u, 0x08995D9Cu, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995D9Cu) goto L_08995D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995D9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8252))); aot_gpr_31 = (0x08995DA8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(428), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 525u, 0x08995DA8u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995DA8u) goto L_08995DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995DA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(432), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14260)); @@ -5331,14 +6187,40 @@ L_08995DF0: L_08995DF8: aot_gpr_31 = (0x08995E00u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 531u, 0x08995E00u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995E00u) goto L_08995E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995E00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8256))); aot_gpr_31 = (0x08995E0Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(436), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 532u, 0x08995E0Cu, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995E0Cu) goto L_08995E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995E0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(440), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14252)); @@ -5478,14 +6360,40 @@ L_08995F00: L_08995F08: aot_gpr_31 = (0x08995F10u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 549u, 0x08995F10u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995F10u) goto L_08995F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995F10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8272))); aot_gpr_31 = (0x08995F1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(456), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 550u, 0x08995F1Cu, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08995F1Cu) goto L_08995F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08995F1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(460), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14220)); @@ -5661,14 +6569,40 @@ L_08996060: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08996078u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 570u, 0x08996078u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996078u) goto L_08996078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996078: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x08996084u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(492), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 571u, 0x08996084u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996084u) goto L_08996084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996084: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(496), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14184)); @@ -5694,14 +6628,40 @@ L_089960AC: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x089960C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 574u, 0x089960C4u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089960C4u) goto L_089960C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089960C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x089960D0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(500), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 575u, 0x089960D0u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089960D0u) goto L_089960D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089960D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(504), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14176)); @@ -5847,14 +6807,40 @@ L_089961C4: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x089961DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 593u, 0x089961DCu, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089961DCu) goto L_089961DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089961DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x089961E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(528), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 594u, 0x089961E8u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089961E8u) goto L_089961E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089961E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(532), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14184)); @@ -5896,14 +6882,40 @@ L_08996224: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x0899623Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 599u, 0x0899623Cu, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899623Cu) goto L_0899623C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899623C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x08996248u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(536), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 600u, 0x08996248u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996248u) goto L_08996248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996248: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(540), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14176)); @@ -6048,14 +7060,40 @@ L_08996340: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08996358u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 617u, 0x08996358u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996358u) goto L_08996358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996358: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x08996364u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(564), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 618u, 0x08996364u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996364u) goto L_08996364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996364: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(568), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14184)); @@ -6097,14 +7135,40 @@ L_089963A0: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x089963B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 623u, 0x089963B8u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089963B8u) goto L_089963B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089963B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x089963C4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(572), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 624u, 0x089963C4u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089963C4u) goto L_089963C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089963C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(576), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14176)); @@ -6300,14 +7364,40 @@ L_08996518: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08996530u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 647u, 0x08996530u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996530u) goto L_08996530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996530: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x0899653Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(604), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 648u, 0x0899653Cu, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899653Cu) goto L_0899653C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899653C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(608), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14184)); @@ -6349,14 +7439,40 @@ L_08996578: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08996590u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 653u, 0x08996590u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996590u) goto L_08996590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996590: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x0899659Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(612), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 654u, 0x0899659Cu, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899659Cu) goto L_0899659C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899659C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(616), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14176)); @@ -6548,14 +7664,40 @@ L_089966E8: ctx.gpr[16] = (aot_gpr_28 + aot_gpr_4); aot_gpr_31 = (0x089966F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(9432))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 677u, 0x089966F8u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089966F8u) goto L_089966F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089966F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(9432))); aot_gpr_31 = (0x08996704u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(644), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 678u, 0x08996704u, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996704u) goto L_08996704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996704: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(648), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14184)); @@ -6595,14 +7737,40 @@ L_08996740: ctx.gpr[16] = (aot_gpr_28 + aot_gpr_4); aot_gpr_31 = (0x08996750u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(9416))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 683u, 0x08996750u, 0x08991550u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 311u, 0x08991550u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996750u) goto L_08996750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996750: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(9416))); aot_gpr_31 = (0x0899675Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(652), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 684u, 0x0899675Cu, 0x08991574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 314u, 0x08991574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899675Cu) goto L_0899675C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899675C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(656), aot_gpr_2); aot_gpr_4 = (aot_gpr_28 + static_cast(-14176)); @@ -6843,8 +8011,21 @@ L_089968FC: } L_08996904: aot_gpr_31 = (0x0899690Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 713u, 0x0899690Cu, 0x089913B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 286u, 0x089913B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899690Cu) goto L_0899690C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899690C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6861,8 +8042,21 @@ L_08996914: } L_0899691C: aot_gpr_31 = (0x08996924u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 716u, 0x08996924u, 0x08991444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 293u, 0x08991444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996924u) goto L_08996924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996924: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_4 < static_cast(8) ? 1u : 0u); @@ -6878,8 +8072,8 @@ L_08996934: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4856))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899694C: @@ -6887,8 +8081,21 @@ L_0899694C: aot_gpr_5 = (aot_gpr_28 + static_cast(-14076)); aot_gpr_31 = (0x0899695Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 719u, 0x0899695Cu, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899695Cu) goto L_0899695C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899695C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6901,8 +8108,21 @@ L_08996964: aot_gpr_5 = (aot_gpr_28 + static_cast(-14068)); aot_gpr_31 = (0x08996974u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 721u, 0x08996974u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996974u) goto L_08996974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996974: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6915,8 +8135,21 @@ L_0899697C: aot_gpr_5 = (aot_gpr_28 + static_cast(-14060)); aot_gpr_31 = (0x0899698Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 723u, 0x0899698Cu, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899698Cu) goto L_0899698C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899698C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6929,8 +8162,21 @@ L_08996994: aot_gpr_5 = (aot_gpr_28 + static_cast(-14052)); aot_gpr_31 = (0x089969A4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 725u, 0x089969A4u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089969A4u) goto L_089969A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089969A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6943,8 +8189,21 @@ L_089969AC: aot_gpr_5 = (aot_gpr_28 + static_cast(-14044)); aot_gpr_31 = (0x089969BCu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 727u, 0x089969BCu, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089969BCu) goto L_089969BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089969BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6957,8 +8216,21 @@ L_089969C4: aot_gpr_5 = (aot_gpr_28 + static_cast(-14036)); aot_gpr_31 = (0x089969D4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 729u, 0x089969D4u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089969D4u) goto L_089969D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089969D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6971,8 +8243,21 @@ L_089969DC: aot_gpr_5 = (aot_gpr_28 + static_cast(-14028)); aot_gpr_31 = (0x089969ECu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 731u, 0x089969ECu, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089969ECu) goto L_089969EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089969EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6985,8 +8270,21 @@ L_089969F4: aot_gpr_5 = (aot_gpr_28 + static_cast(-14020)); aot_gpr_31 = (0x08996A04u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 733u, 0x08996A04u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996A04u) goto L_08996A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996A04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6999,8 +8297,21 @@ L_08996A0C: aot_gpr_5 = (aot_gpr_28 + static_cast(-14012)); aot_gpr_31 = (0x08996A1Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 735u, 0x08996A1Cu, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996A1Cu) goto L_08996A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996A1C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -7019,8 +8330,21 @@ L_08996A24: } L_08996A30: aot_gpr_31 = (0x08996A38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 738u, 0x08996A38u, 0x08991490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 298u, 0x08991490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996A38u) goto L_08996A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996A38: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_4 < static_cast(8) ? 1u : 0u); @@ -7036,8 +8360,8 @@ L_08996A48: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4824))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08996A60: @@ -7045,8 +8369,21 @@ L_08996A60: aot_gpr_5 = (aot_gpr_28 + static_cast(-14076)); aot_gpr_31 = (0x08996A70u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 741u, 0x08996A70u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996A70u) goto L_08996A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996A70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7059,8 +8396,21 @@ L_08996A78: aot_gpr_5 = (aot_gpr_28 + static_cast(-14068)); aot_gpr_31 = (0x08996A88u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 743u, 0x08996A88u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996A88u) goto L_08996A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996A88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7073,8 +8423,21 @@ L_08996A90: aot_gpr_5 = (aot_gpr_28 + static_cast(-14060)); aot_gpr_31 = (0x08996AA0u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 745u, 0x08996AA0u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996AA0u) goto L_08996AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996AA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7087,8 +8450,21 @@ L_08996AA8: aot_gpr_5 = (aot_gpr_28 + static_cast(-14052)); aot_gpr_31 = (0x08996AB8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 747u, 0x08996AB8u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996AB8u) goto L_08996AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996AB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7101,8 +8477,21 @@ L_08996AC0: aot_gpr_5 = (aot_gpr_28 + static_cast(-14044)); aot_gpr_31 = (0x08996AD0u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 749u, 0x08996AD0u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996AD0u) goto L_08996AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996AD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7115,8 +8504,21 @@ L_08996AD8: aot_gpr_5 = (aot_gpr_28 + static_cast(-14036)); aot_gpr_31 = (0x08996AE8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 751u, 0x08996AE8u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996AE8u) goto L_08996AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996AE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7129,8 +8531,21 @@ L_08996AF0: aot_gpr_5 = (aot_gpr_28 + static_cast(-14028)); aot_gpr_31 = (0x08996B00u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 753u, 0x08996B00u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996B00u) goto L_08996B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996B00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7143,8 +8558,21 @@ L_08996B08: aot_gpr_5 = (aot_gpr_28 + static_cast(-14020)); aot_gpr_31 = (0x08996B18u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 755u, 0x08996B18u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996B18u) goto L_08996B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996B18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7157,8 +8585,21 @@ L_08996B20: aot_gpr_5 = (aot_gpr_28 + static_cast(-14012)); aot_gpr_31 = (0x08996B30u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 757u, 0x08996B30u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996B30u) goto L_08996B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996B30: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -7319,15 +8760,41 @@ L_08996C4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(9088))); aot_gpr_31 = (0x08996C58u); ctx.gpr[16] = (aot_gpr_28 + static_cast(-13964)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 777u, 0x08996C58u, 0x08990C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 170u, 0x08990C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996C58u) goto L_08996C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996C58: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08996C68u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 778u, 0x08996C68u, 0x089915A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 319u, 0x089915A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996C68u) goto L_08996C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996C68: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -7479,8 +8946,8 @@ L_08996D58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(736)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08996D78: @@ -7644,8 +9111,21 @@ L_08996E9C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08996EA8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 814u, 0x08996EA8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996EA8u) goto L_08996EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996EA8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7669,13 +9149,39 @@ L_08996EC4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08996ED0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 819u, 0x08996ED0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996ED0u) goto L_08996ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996ED0: aot_gpr_31 = (0x08996ED8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 820u, 0x08996ED8u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996ED8u) goto L_08996ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996ED8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -7713,8 +9219,21 @@ L_08996F18: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08996F24u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 825u, 0x08996F24u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996F24u) goto L_08996F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996F24: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7738,13 +9257,39 @@ L_08996F40: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08996F4Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 830u, 0x08996F4Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996F4Cu) goto L_08996F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996F4C: aot_gpr_31 = (0x08996F54u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 831u, 0x08996F54u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996F54u) goto L_08996F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996F54: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08996F60u); @@ -7784,8 +9329,21 @@ L_08996F9C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08996FA8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 836u, 0x08996FA8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996FA8u) goto L_08996FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996FA8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7809,13 +9367,39 @@ L_08996FC4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08996FD0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 841u, 0x08996FD0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996FD0u) goto L_08996FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996FD0: aot_gpr_31 = (0x08996FD8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 842u, 0x08996FD8u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08996FD8u) goto L_08996FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08996FD8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -7854,8 +9438,21 @@ L_0899701C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08997028u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 847u, 0x08997028u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997028u) goto L_08997028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997028: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7879,13 +9476,39 @@ L_08997044: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08997050u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 852u, 0x08997050u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997050u) goto L_08997050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997050: aot_gpr_31 = (0x08997058u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 853u, 0x08997058u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997058u) goto L_08997058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997058: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08997064u); @@ -7925,8 +9548,21 @@ L_089970A0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089970ACu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 858u, 0x089970ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089970ACu) goto L_089970AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089970AC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7950,13 +9586,39 @@ L_089970C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089970D4u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 863u, 0x089970D4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089970D4u) goto L_089970D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089970D4: aot_gpr_31 = (0x089970DCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 864u, 0x089970DCu, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089970DCu) goto L_089970DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089970DC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -8005,8 +9667,21 @@ L_0899713C: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7872), ctx.gpr[17]); aot_gpr_31 = (0x08997148u); aot_gpr_4 = (aot_gpr_28 + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 870u, 0x08997148u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997148u) goto L_08997148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997148: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7868))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; @@ -8029,8 +9704,21 @@ L_08997160: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x0899716Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 873u, 0x0899716Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899716Cu) goto L_0899716C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899716C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -8054,13 +9742,39 @@ L_08997188: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08997194u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 878u, 0x08997194u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997194u) goto L_08997194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997194: aot_gpr_31 = (0x0899719Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 879u, 0x0899719Cu, 0x089F5A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 300u, 0x089F5A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899719Cu) goto L_0899719C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899719C: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(524))); ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(520))); @@ -8092,8 +9806,21 @@ L_089971D0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089971DCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 883u, 0x089971DCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089971DCu) goto L_089971DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089971DC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -8117,13 +9844,39 @@ L_089971F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08997204u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 888u, 0x08997204u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997204u) goto L_08997204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997204: aot_gpr_31 = (0x0899720Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 889u, 0x0899720Cu, 0x089F5A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 300u, 0x089F5A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899720Cu) goto L_0899720C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899720C: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(524))); ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(520))); @@ -8320,8 +10073,21 @@ L_08997368: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(7872), ctx.gpr[17]); aot_gpr_31 = (0x08997374u); aot_gpr_4 = (aot_gpr_28 + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 913u, 0x08997374u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997374u) goto L_08997374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997374: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7868))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[16]; @@ -8382,8 +10148,21 @@ L_089973D0: aot_gpr_4 = (aot_gpr_28 + static_cast(-15696)); aot_gpr_31 = (0x089973E4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 922u, 0x089973E4u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089973E4u) goto L_089973E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089973E4: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(528))); ctx.gpr[17] = (0u | 1u); @@ -8398,8 +10177,21 @@ L_089973F8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08997404u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 924u, 0x08997404u, 0x08887B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 846u, 0x08887B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997404u) goto L_08997404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997404: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -8413,8 +10205,21 @@ L_08997414: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08997420u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 926u, 0x08997420u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997420u) goto L_08997420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997420: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-9752))); { const bool branch_taken = ctx.gpr[16] != 0u; @@ -8428,8 +10233,21 @@ L_0899742C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08997438u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 928u, 0x08997438u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997438u) goto L_08997438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997438: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8453,25 +10271,77 @@ L_08997450: L_08997458: aot_gpr_31 = (0x08997460u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 933u, 0x08997460u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997460u) goto L_08997460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997460: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0899746Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 934u, 0x0899746Cu, 0x08887B30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 846u, 0x08887B30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899746Cu) goto L_0899746C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899746C: aot_gpr_31 = (0x08997474u); aot_gpr_4 = (ctx.gpr[23] + static_cast(-8144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 935u, 0x08997474u, 0x089F5C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 340u, 0x089F5C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997474u) goto L_08997474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997474: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08997480u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 936u, 0x08997480u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997480u) goto L_08997480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997480: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8492,8 +10362,21 @@ L_08997494: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089974A0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 939u, 0x089974A0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089974A0u) goto L_089974A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089974A0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8517,25 +10400,77 @@ L_089974B8: L_089974C0: aot_gpr_31 = (0x089974C8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 944u, 0x089974C8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089974C8u) goto L_089974C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089974C8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089974D4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 945u, 0x089974D4u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089974D4u) goto L_089974D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089974D4: aot_gpr_31 = (0x089974DCu); aot_gpr_4 = (ctx.gpr[23] + static_cast(-8144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 946u, 0x089974DCu, 0x089F5C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 340u, 0x089F5C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089974DCu) goto L_089974DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089974DC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089974E8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 947u, 0x089974E8u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089974E8u) goto L_089974E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089974E8: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(548), aot_run_words); @@ -8553,8 +10488,8 @@ L_089974E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(592)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899751C: @@ -8693,8 +10628,21 @@ L_089976BC: ctx.gpr[11] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089976E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 959u, 0x089976E4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089976E4u) goto L_089976E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089976E4: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 10 ? 1u : 0u); @@ -8726,8 +10674,8 @@ L_089976F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899773C: @@ -8872,8 +10820,21 @@ L_089978F8: ctx.gpr[11] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08997920u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 972u, 0x08997920u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997920u) goto L_08997920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997920: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 10 ? 1u : 0u); @@ -8888,8 +10849,21 @@ L_08997930: aot_gpr_4 = (0u | 80u); aot_gpr_31 = (0x08997940u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 974u, 0x08997940u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997940u) goto L_08997940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997940: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -8912,8 +10886,8 @@ L_08997940: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08997988: @@ -9058,8 +11032,21 @@ L_08997B44: ctx.gpr[11] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08997B6Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 986u, 0x08997B6Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997B6Cu) goto L_08997B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997B6C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 10 ? 1u : 0u); @@ -9074,8 +11061,21 @@ L_08997B7C: aot_gpr_4 = (0u | 80u); aot_gpr_31 = (0x08997B8Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 988u, 0x08997B8Cu, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997B8Cu) goto L_08997B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997B8C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -9098,8 +11098,8 @@ L_08997B8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08997BD4: @@ -9129,8 +11129,21 @@ L_08997C00: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08997C10u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 991u, 0x08997C10u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997C10u) goto L_08997C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997C10: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -9140,8 +11153,8 @@ L_08997C10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08997C24: @@ -9285,8 +11298,21 @@ L_08997DD8: ctx.gpr[11] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08997E00u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 1003u, 0x08997E00u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997E00u) goto L_08997E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997E00: aot_gpr_4 = (0u | 7u); { const std::int32_t dividend = static_cast(ctx.gpr[17]); const std::int32_t divisor = static_cast(aot_gpr_4); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } @@ -9302,8 +11328,21 @@ L_08997E14: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08997E24u); ctx.gpr[6] = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 1005u, 0x08997E24u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997E24u) goto L_08997E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997E24: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-13800))); aot_gpr_4 = (aot_gpr_4 & 3u); @@ -9349,8 +11388,21 @@ L_08997E24: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08997E7Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 1006u, 0x08997E7Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997E7Cu) goto L_08997E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997E7C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 16 ? 1u : 0u); @@ -9365,8 +11417,21 @@ L_08997E8C: aot_gpr_4 = (0u | 83u); aot_gpr_31 = (0x08997E9Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0100->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0100_entry, 1008u, 0x08997E9Cu, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08997E9Cu) goto L_08997E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08997E9C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(120), aot_run_words); @@ -9389,8 +11454,8 @@ L_08997E9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08997EE4: diff --git a/profiles/vcs/generated/generated_unit_0101.cpp b/profiles/vcs/generated/generated_unit_0101.cpp index 0509a6e..1fa6c92 100644 --- a/profiles/vcs/generated/generated_unit_0101.cpp +++ b/profiles/vcs/generated/generated_unit_0101.cpp @@ -627,6 +627,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08998000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -708,8 +732,21 @@ L_08998088: ctx.gpr[11] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089980B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 8u, 0x089980B0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089980B0u) goto L_089980B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089980B0: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 32 ? 1u : 0u); @@ -724,8 +761,21 @@ L_089980C0: aot_gpr_4 = (0u | 83u); aot_gpr_31 = (0x089980D0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 10u, 0x089980D0u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089980D0u) goto L_089980D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089980D0: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -748,8 +798,8 @@ L_089980D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998118: @@ -904,8 +954,21 @@ L_089982B8: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08998348u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 20u, 0x08998348u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08998348u) goto L_08998348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08998348: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -922,8 +985,21 @@ L_0899835C: aot_gpr_4 = (0u | 81u); aot_gpr_31 = (0x0899836Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 22u, 0x0899836Cu, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899836Cu) goto L_0899836C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899836C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(72), aot_run_words); @@ -946,8 +1022,8 @@ L_0899836C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089983B4: @@ -1102,8 +1178,21 @@ L_08998554: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089985E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 32u, 0x089985E4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089985E4u) goto L_089985E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089985E4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -1120,8 +1209,21 @@ L_089985F8: aot_gpr_4 = (0u | 81u); aot_gpr_31 = (0x08998608u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 34u, 0x08998608u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08998608u) goto L_08998608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08998608: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(72), aot_run_words); @@ -1144,8 +1246,8 @@ L_08998608: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998650: @@ -1288,8 +1390,21 @@ L_089987C0: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08998850u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 44u, 0x08998850u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08998850u) goto L_08998850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08998850: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -1306,8 +1421,21 @@ L_08998864: aot_gpr_4 = (0u | 40u); aot_gpr_31 = (0x08998874u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 46u, 0x08998874u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08998874u) goto L_08998874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08998874: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); @@ -1330,8 +1458,8 @@ L_08998874: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089988BC: @@ -1588,8 +1716,21 @@ L_08998AC4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08998B08u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 52u, 0x08998B08u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08998B08u) goto L_08998B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08998B08: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 12 ? 1u : 0u); @@ -1604,8 +1745,21 @@ L_08998B18: aot_gpr_4 = (0u | 39u); aot_gpr_31 = (0x08998B28u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 54u, 0x08998B28u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08998B28u) goto L_08998B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08998B28: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(252), aot_run_words); @@ -1628,8 +1782,8 @@ L_08998B28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998B70: @@ -1685,8 +1839,8 @@ L_08998B70: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998B98: @@ -1712,8 +1866,8 @@ L_08998B98: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998BB4: @@ -1741,8 +1895,8 @@ L_08998BB4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998BCC: @@ -1770,8 +1924,8 @@ L_08998BCC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998BE4: @@ -1792,8 +1946,8 @@ L_08998BE4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998C00: @@ -1816,8 +1970,8 @@ L_08998C18: } L_08998C20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998C28: @@ -1840,8 +1994,8 @@ L_08998C40: } L_08998C48: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998C50: @@ -2235,8 +2389,8 @@ L_08998F8C: goto L_08998F9C; L_08998F9C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998FA4: @@ -2250,8 +2404,8 @@ L_08998FA4: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998FC8: @@ -2265,8 +2419,8 @@ L_08998FC8: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08998FEC: @@ -2281,8 +2435,8 @@ L_08998FEC: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08999014: @@ -2296,8 +2450,8 @@ L_08999014: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08999040: @@ -2315,8 +2469,8 @@ L_08999040: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899905C: @@ -2335,8 +2489,8 @@ L_0899905C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899906C: @@ -2444,8 +2598,8 @@ L_0899906C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089990E0: @@ -2487,8 +2641,8 @@ L_08999128: goto L_0899912C; L_0899912C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08999134: @@ -2584,8 +2738,8 @@ L_089991C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089991D4: @@ -2613,8 +2767,21 @@ L_089991D4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(264), aot_run_words); } aot_gpr_31 = (0x0899923Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 138u, 0x0899923Cu, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899923Cu) goto L_0899923C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899923C: aot_gpr_4 = (17036u << 16u); ctx.gpr[21] = (aot_gpr_29 + static_cast(80)); @@ -2664,8 +2831,21 @@ L_08999280: goto L_0899928C; L_0899928C: aot_gpr_31 = (0x08999294u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 146u, 0x08999294u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999294u) goto L_08999294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999294: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[20] & 255u); @@ -2871,8 +3051,21 @@ L_089993F0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08999434u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 159u, 0x08999434u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999434u) goto L_08999434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999434: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2945,8 +3138,8 @@ L_0899949C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089994CC: @@ -2976,8 +3169,21 @@ L_089994CC: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0899952Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 163u, 0x0899952Cu, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899952Cu) goto L_0899952C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899952C: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[0] = std::bit_cast(0x7FC00000u); else ctx.fpr[0] = fs * ft; } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-13596))); @@ -2986,8 +3192,8 @@ L_0899952C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08999548: @@ -3002,8 +3208,21 @@ L_08999548: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1984))); aot_gpr_31 = (0x08999588u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 165u, 0x08999588u, 0x08A1C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 54u, 0x08A1C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999588u) goto L_08999588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999588: aot_gpr_4 = (ctx.gpr[19] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3037,14 +3256,40 @@ L_08999588: aot_fpr_12 = std::sqrt(aot_fpr_12); aot_gpr_31 = (0x089995BCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 166u, 0x089995BCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089995BCu) goto L_089995BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089995BC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x089995C8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 167u, 0x089995C8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089995C8u) goto L_089995C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089995C8: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -3139,8 +3384,21 @@ L_08999670: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(1784))); aot_gpr_31 = (0x0899967Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 179u, 0x0899967Cu, 0x08A1C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 54u, 0x08A1C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899967Cu) goto L_0899967C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899967C: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3170,8 +3428,21 @@ L_0899967C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x089996A0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 180u, 0x089996A0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089996A0u) goto L_089996A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089996A0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -3190,8 +3461,21 @@ L_089996B4: L_089996C0: aot_gpr_31 = (0x089996C8u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 183u, 0x089996C8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089996C8u) goto L_089996C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089996C8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0]) & 0x7FFFFFFFu); aot_gpr_4 = (16329u << 16u); @@ -3243,8 +3527,21 @@ L_0899974C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08999758u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 188u, 0x08999758u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999758u) goto L_08999758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999758: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -3258,8 +3555,8 @@ L_08999758: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899977C: @@ -3325,8 +3622,8 @@ L_089997D8: goto L_089997DC; L_089997DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089997E4: @@ -3465,8 +3762,8 @@ L_08999918: L_08999938: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08999940: @@ -3777,8 +4074,21 @@ L_08999A60: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(208), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08999AE0u); aot_gpr_4 = (aot_gpr_16 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 216u, 0x08999AE0u, 0x08A1A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 381u, 0x08A1A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999AE0u) goto L_08999AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999AE0: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); @@ -3787,8 +4097,21 @@ L_08999AE0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(204), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08999AFCu); aot_gpr_4 = (aot_gpr_16 + static_cast(204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 217u, 0x08999AFCu, 0x08A1A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 381u, 0x08A1A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999AFCu) goto L_08999AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999AFC: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3851,8 +4174,8 @@ L_08999AFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08999B60: @@ -3985,8 +4308,21 @@ L_08999C64: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); aot_gpr_31 = (0x08999C7Cu); aot_fpr_12 = aot_fpr_14 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 224u, 0x08999C7Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999C7Cu) goto L_08999C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999C7C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -4082,8 +4418,21 @@ L_08999D28: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08999D8Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 231u, 0x08999D8Cu, 0x089A6CACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 347u, 0x089A6CACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999D8Cu) goto L_08999D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999D8C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4118,8 +4467,21 @@ L_08999D8C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(296))); aot_gpr_31 = (0x08999DB8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 232u, 0x08999DB8u, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999DB8u) goto L_08999DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999DB8: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4161,8 +4523,21 @@ L_08999DB8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(163), static_cast(0u)); aot_gpr_31 = (0x08999DE0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 233u, 0x08999DE0u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999DE0u) goto L_08999DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999DE0: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -4176,8 +4551,8 @@ L_08999DE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08999E04: @@ -4335,8 +4710,21 @@ L_08999EC8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08999F3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 244u, 0x08999F3Cu, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999F3Cu) goto L_08999F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999F3C: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); @@ -4350,8 +4738,8 @@ L_08999F3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08999F60: @@ -4461,8 +4849,21 @@ L_08999F90: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08999FF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 248u, 0x08999FF0u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08999FF0u) goto L_08999FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08999FF0: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); @@ -4602,8 +5003,8 @@ L_0899A020: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899A0B0: @@ -4693,14 +5094,27 @@ L_0899A0B0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0899A138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 251u, 0x0899A138u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899A138u) goto L_0899A138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899A138: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899A144: @@ -4796,8 +5210,21 @@ L_0899A144: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x0899A1C0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(296))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 253u, 0x0899A1C0u, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899A1C0u) goto L_0899A1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899A1C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(200))); @@ -4805,8 +5232,21 @@ L_0899A1C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0899A1D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 254u, 0x0899A1D8u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899A1D8u) goto L_0899A1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899A1D8: ctx.gpr[18] = (aot_gpr_16 + static_cast(96)); aot_gpr_5 = (aot_gpr_16 + static_cast(448)); @@ -4947,8 +5387,8 @@ L_0899A1E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899A298: @@ -5163,8 +5603,21 @@ L_0899A3EC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x0899A438u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 267u, 0x0899A438u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899A438u) goto L_0899A438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899A438: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -5333,8 +5786,21 @@ L_0899A4A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x0899A588u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 272u, 0x0899A588u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899A588u) goto L_0899A588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899A588: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5424,8 +5890,21 @@ L_0899A590: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(163), static_cast(0u)); aot_gpr_31 = (0x0899A630u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 274u, 0x0899A630u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899A630u) goto L_0899A630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899A630: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -5468,8 +5947,8 @@ L_0899A654: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899A67C: @@ -5769,8 +6248,21 @@ L_0899A844: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x0899A868u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 291u, 0x0899A868u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899A868u) goto L_0899A868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899A868: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5907,8 +6399,8 @@ L_0899A8EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899A90C: @@ -6109,8 +6601,21 @@ L_0899A9FC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x0899AA24u); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 300u, 0x0899AA24u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899AA24u) goto L_0899AA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899AA24: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(80))); @@ -6152,8 +6657,8 @@ L_0899AA54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899AA68: @@ -6183,8 +6688,21 @@ L_0899AA68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(248), aot_gpr_31); aot_gpr_31 = (0x0899AAE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 307u, 0x0899AAE8u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899AAE8u) goto L_0899AAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899AAE8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(80)))))); aot_gpr_5 = (17948u << 16u); @@ -6524,8 +7042,21 @@ L_0899AD30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[23]); aot_gpr_31 = (0x0899AD5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 328u, 0x0899AD5Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899AD5Cu) goto L_0899AD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899AD5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6602,8 +7133,8 @@ L_0899ADB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899ADEC: @@ -6656,8 +7187,21 @@ L_0899AE60: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0899AEA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 337u, 0x0899AEA4u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899AEA4u) goto L_0899AEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899AEA4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); @@ -6745,8 +7289,21 @@ L_0899AEC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0899AF34u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 340u, 0x0899AF34u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899AF34u) goto L_0899AF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899AF34: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6765,8 +7322,21 @@ L_0899AF44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x0899AF50u); { const float fs = aot_fpr_20; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 343u, 0x0899AF50u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899AF50u) goto L_0899AF50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899AF50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6793,8 +7363,8 @@ L_0899AF58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899AF94: @@ -6828,8 +7398,21 @@ L_0899AF94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x0899AFE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 346u, 0x0899AFE8u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899AFE8u) goto L_0899AFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899AFE8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6926,8 +7509,21 @@ L_0899B048: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0899B09Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 352u, 0x0899B09Cu, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899B09Cu) goto L_0899B09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899B09C: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6961,14 +7557,14 @@ L_0899B0E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899B0F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899B100: @@ -6998,8 +7594,21 @@ L_0899B124: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(40))); aot_gpr_31 = (0x0899B150u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 358u, 0x0899B150u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899B150u) goto L_0899B150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899B150: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7049,8 +7658,8 @@ L_0899B198: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899B1A8: @@ -7158,8 +7767,8 @@ L_0899B244: goto L_0899B250; L_0899B250: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899B258: @@ -7264,8 +7873,8 @@ L_0899B324: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899B340: @@ -7349,8 +7958,8 @@ L_0899B3B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899B3C4: @@ -7872,8 +8481,8 @@ L_0899B8E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899B8F4: @@ -8039,8 +8648,21 @@ L_0899BA48: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x0899BA58u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 466u, 0x0899BA58u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BA58u) goto L_0899BA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BA58: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(0u); @@ -8200,8 +8822,21 @@ L_0899BBF4: L_0899BBFC: aot_gpr_31 = (0x0899BC04u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 479u, 0x0899BC04u, 0x0898CB7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 252u, 0x0898CB7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BC04u) goto L_0899BC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BC04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8217,8 +8852,21 @@ L_0899BC0C: L_0899BC14: aot_gpr_31 = (0x0899BC1Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 482u, 0x0899BC1Cu, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BC1Cu) goto L_0899BC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BC1C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8234,8 +8882,21 @@ L_0899BC24: L_0899BC2C: aot_gpr_31 = (0x0899BC34u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 485u, 0x0899BC34u, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BC34u) goto L_0899BC34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BC34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8342,8 +9003,21 @@ L_0899BCD8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x0899BCE8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 495u, 0x0899BCE8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BCE8u) goto L_0899BCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BCE8: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(0u); @@ -8431,8 +9105,8 @@ L_0899BD68: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4728))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899BD80: @@ -8471,8 +9145,21 @@ L_0899BDB0: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BDC8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0102. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 508u, 0x0899BDC8u, 0x0899C6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0102_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0102_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0102_entry, 102u, 107u, 0x0899C6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BDC8u) goto L_0899BDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BDC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8487,8 +9174,21 @@ L_0899BDD0: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BDE8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0102. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 510u, 0x0899BDE8u, 0x0899F9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0102_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0102_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0102_entry, 102u, 582u, 0x0899F9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BDE8u) goto L_0899BDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BDE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8503,8 +9203,21 @@ L_0899BDF0: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BE08u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0102. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 512u, 0x0899BE08u, 0x0899DFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0102_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0102_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0102_entry, 102u, 316u, 0x0899DFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BE08u) goto L_0899BE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BE08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8519,8 +9232,21 @@ L_0899BE10: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BE28u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0103. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 514u, 0x0899BE28u, 0x089A341Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0103_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0103_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0103_entry, 103u, 479u, 0x089A341Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BE28u) goto L_0899BE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BE28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8535,8 +9261,21 @@ L_0899BE30: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BE48u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0102. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 516u, 0x0899BE48u, 0x0899F9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0102_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0102_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0102_entry, 102u, 582u, 0x0899F9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BE48u) goto L_0899BE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BE48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8581,8 +9320,21 @@ L_0899BE90: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BEA8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0102. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 522u, 0x0899BEA8u, 0x0899C6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0102_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0102_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0102_entry, 102u, 107u, 0x0899C6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BEA8u) goto L_0899BEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BEA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8612,8 +9364,21 @@ L_0899BED0: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BEE8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 526u, 0x0899BEE8u, 0x089A46F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 46u, 0x089A46F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BEE8u) goto L_0899BEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BEE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8643,8 +9408,21 @@ L_0899BF10: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BF28u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0103. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 530u, 0x0899BF28u, 0x089A1AB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0103_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0103_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0103_entry, 103u, 275u, 0x089A1AB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BF28u) goto L_0899BF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BF28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8659,8 +9437,21 @@ L_0899BF30: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BF48u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0103. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 532u, 0x0899BF48u, 0x089A2AF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0103_entry(rt, ctx, 423u, aot_mem); +#else + recomp_unit_0103_entry(rt, ctx, 423u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0103_entry, 103u, 423u, 0x089A2AF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BF48u) goto L_0899BF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BF48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8675,8 +9466,21 @@ L_0899BF50: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BF68u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0103. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 534u, 0x0899BF68u, 0x089A264Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0103_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0103_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0103_entry, 103u, 382u, 0x089A264Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BF68u) goto L_0899BF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BF68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8687,8 +9491,21 @@ L_0899BF68: L_0899BF70: aot_gpr_31 = (0x0899BF78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 536u, 0x0899BF78u, 0x089A4EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 87u, 0x089A4EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BF78u) goto L_0899BF78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BF78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8703,8 +9520,21 @@ L_0899BF80: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899BF98u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 538u, 0x0899BF98u, 0x089A4314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 26u, 0x089A4314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BF98u) goto L_0899BF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BF98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8715,8 +9545,21 @@ L_0899BF98: L_0899BFA0: aot_gpr_31 = (0x0899BFA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 540u, 0x0899BFA8u, 0x089A5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 214u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 214u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 214u, 0x089A5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BFA8u) goto L_0899BFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BFA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8739,8 +9582,21 @@ L_0899BFC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899BFCCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 544u, 0x0899BFCCu, 0x08A1EC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 496u, 0x08A1EC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BFCCu) goto L_0899BFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BFCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8752,8 +9608,21 @@ L_0899BFD4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899BFE0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 546u, 0x0899BFE0u, 0x08A1F8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 597u, 0x08A1F8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BFE0u) goto L_0899BFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BFE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8765,8 +9634,21 @@ L_0899BFE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899BFF4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0101->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0101_entry, 548u, 0x0899BFF4u, 0x08A20118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 12u, 0x08A20118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899BFF4u) goto L_0899BFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899BFF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0102.cpp b/profiles/vcs/generated/generated_unit_0102.cpp index c88fd8e..724fefa 100644 --- a/profiles/vcs/generated/generated_unit_0102.cpp +++ b/profiles/vcs/generated/generated_unit_0102.cpp @@ -721,6 +721,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x0899C000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -737,8 +761,21 @@ LOCAL_SCHED_BOUNDARY: L_0899C000: aot_gpr_31 = (0x0899C008u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 2u, 0x0899C008u, 0x08A20B34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 91u, 0x08A20B34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C008u) goto L_0899C008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C008: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -750,8 +787,21 @@ L_0899C010: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899C01Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 4u, 0x0899C01Cu, 0x08A1B280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 485u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 485u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 485u, 0x08A1B280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C01Cu) goto L_0899C01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C01C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -763,8 +813,21 @@ L_0899C024: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899C030u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 6u, 0x0899C030u, 0x08A1B294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 486u, 0x08A1B294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C030u) goto L_0899C030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C030: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -776,8 +839,21 @@ L_0899C038: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899C044u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 8u, 0x0899C044u, 0x08A211D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 144u, 0x08A211D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C044u) goto L_0899C044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C044: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -789,8 +865,21 @@ L_0899C04C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899C058u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 10u, 0x0899C058u, 0x08A217FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 195u, 0x08A217FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C058u) goto L_0899C058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C058: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -802,8 +891,21 @@ L_0899C060: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899C06Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 12u, 0x0899C06Cu, 0x08A1B2A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 487u, 0x08A1B2A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C06Cu) goto L_0899C06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C06C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1045,8 +1147,21 @@ L_0899C208: aot_fpr_20 = std::sqrt(aot_fpr_20); aot_gpr_31 = (0x0899C244u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 31u, 0x0899C244u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C244u) goto L_0899C244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C244: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -1069,8 +1184,21 @@ L_0899C268: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(280), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0899C27Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 34u, 0x0899C27Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C27Cu) goto L_0899C27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C27C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(0u); @@ -1107,8 +1235,21 @@ L_0899C2B8: ctx.gpr[10] = (aot_gpr_16 + static_cast(296)); aot_gpr_31 = (0x0899C2D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 38u, 0x0899C2D8u, 0x08999940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 201u, 0x08999940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C2D8u) goto L_0899C2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C2D8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(132), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(133), static_cast(0u)); @@ -1277,8 +1418,21 @@ L_0899C410: L_0899C418: aot_gpr_31 = (0x0899C420u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 57u, 0x0899C420u, 0x0898CB7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 252u, 0x0898CB7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C420u) goto L_0899C420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C420: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1289,8 +1443,21 @@ L_0899C420: L_0899C428: aot_gpr_31 = (0x0899C430u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 59u, 0x0899C430u, 0x089A7200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 404u, 0x089A7200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C430u) goto L_0899C430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C430: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(116))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1353,8 +1520,21 @@ L_0899C48C: L_0899C494: aot_gpr_31 = (0x0899C49Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 68u, 0x0899C49Cu, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C49Cu) goto L_0899C49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C49C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1373,8 +1553,21 @@ L_0899C4AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899C4B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 71u, 0x0899C4B8u, 0x089A788Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 455u, 0x089A788Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C4B8u) goto L_0899C4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C4B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(116))); aot_gpr_5 = (0u | 1u); @@ -1407,8 +1600,21 @@ L_0899C4E4: L_0899C4EC: aot_gpr_31 = (0x0899C4F4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 76u, 0x0899C4F4u, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C4F4u) goto L_0899C4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C4F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1427,8 +1633,21 @@ L_0899C504: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899C510u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 79u, 0x0899C510u, 0x089A788Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 455u, 0x089A788Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C510u) goto L_0899C510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C510: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(116))); aot_gpr_5 = (0u | 2u); @@ -1502,8 +1721,21 @@ L_0899C594: L_0899C59C: aot_gpr_31 = (0x0899C5A4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 89u, 0x0899C5A4u, 0x0898CE14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 309u, 0x0898CE14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C5A4u) goto L_0899C5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C5A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1525,8 +1757,21 @@ L_0899C5AC: L_0899C5C4: aot_gpr_31 = (0x0899C5CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 92u, 0x0899C5CCu, 0x089A7200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 404u, 0x089A7200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C5CCu) goto L_0899C5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C5CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(116))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1619,8 +1864,21 @@ L_0899C658: L_0899C668: aot_gpr_31 = (0x0899C670u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 104u, 0x0899C670u, 0x089990E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 119u, 0x089990E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C670u) goto L_0899C670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C670: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1631,8 +1889,21 @@ L_0899C670: L_0899C678: aot_gpr_31 = (0x0899C680u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 106u, 0x0899C680u, 0x08999548u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 164u, 0x08999548u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C680u) goto L_0899C680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C680: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -1645,8 +1916,8 @@ L_0899C680: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899C6A0: @@ -1719,8 +1990,21 @@ L_0899C758: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x0899C77Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 114u, 0x0899C77Cu, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C77Cu) goto L_0899C77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C77C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1786,8 +2070,21 @@ L_0899C7CC: goto L_0899C7D8; L_0899C7D8: aot_gpr_31 = (0x0899C7E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 125u, 0x0899C7E0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899C7E0u) goto L_0899C7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899C7E0: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[21] & 255u); @@ -2054,8 +2351,21 @@ L_0899CA04: { const float fs = aot_fpr_13; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } aot_gpr_31 = (0x0899CA50u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 153u, 0x0899CA50u, 0x08998FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 114u, 0x08998FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CA50u) goto L_0899CA50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CA50: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } ctx.fpr[16] = std::bit_cast(0u); @@ -2080,8 +2390,21 @@ L_0899CA6C: L_0899CA88: aot_gpr_31 = (0x0899CA90u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 156u, 0x0899CA90u, 0x08B6033Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CA90u) goto L_0899CA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CA90: { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2093,8 +2416,21 @@ L_0899CA90: L_0899CA98: aot_gpr_31 = (0x0899CAA0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 158u, 0x0899CAA0u, 0x089644F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CAA0u) goto L_0899CAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CAA0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0899CAA4; @@ -2110,8 +2446,21 @@ L_0899CAA4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x0899CAD0u); { const float fs = aot_fpr_13; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 160u, 0x0899CAD0u, 0x08998FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 114u, 0x08998FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CAD0u) goto L_0899CAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CAD0: aot_gpr_4 = (16256u << 16u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-16972))); @@ -2141,8 +2490,21 @@ L_0899CB00: L_0899CB1C: aot_gpr_31 = (0x0899CB24u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 163u, 0x0899CB24u, 0x08B6033Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CB24u) goto L_0899CB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CB24: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2154,8 +2516,21 @@ L_0899CB24: L_0899CB2C: aot_gpr_31 = (0x0899CB34u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 165u, 0x0899CB34u, 0x089644F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CB34u) goto L_0899CB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CB34: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0899CB38; @@ -2226,8 +2601,21 @@ L_0899CBA8: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0899CBDCu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 171u, 0x0899CBDCu, 0x089991D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 137u, 0x089991D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CBDCu) goto L_0899CBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CBDC: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2488,8 +2876,21 @@ L_0899CD58: aot_gpr_4 = (aot_gpr_4 + static_cast(816)); aot_gpr_31 = (0x0899CD6Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 185u, 0x0899CD6Cu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CD6Cu) goto L_0899CD6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CD6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2722,8 +3123,21 @@ L_0899CEBC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x0899CF04u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 199u, 0x0899CF04u, 0x08998BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CF04u) goto L_0899CF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CF04: ctx.gpr[30] = (aot_gpr_29 + static_cast(336)); aot_gpr_4 = (16256u << 16u); @@ -2732,15 +3146,41 @@ L_0899CF04: aot_gpr_5 = (aot_gpr_29 + static_cast(224)); aot_gpr_31 = (0x0899CF20u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 200u, 0x0899CF20u, 0x08998BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CF20u) goto L_0899CF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CF20: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x0899CF30u); ctx.gpr[6] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 201u, 0x0899CF30u, 0x08998BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 57u, 0x08998BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CF30u) goto L_0899CF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CF30: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2816,8 +3256,21 @@ L_0899CF8C: L_0899CF90: aot_gpr_31 = (0x0899CF98u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 207u, 0x0899CF98u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899CF98u) goto L_0899CF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899CF98: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0899CF9C; @@ -2867,8 +3320,21 @@ L_0899CFF0: L_0899CFF8: aot_gpr_31 = (0x0899D000u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 212u, 0x0899D000u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899D000u) goto L_0899D000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899D000: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_0899D004; @@ -3201,8 +3667,21 @@ L_0899D28C: L_0899D294: aot_gpr_31 = (0x0899D29Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 245u, 0x0899D29Cu, 0x0898DE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 686u, 0x0898DE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899D29Cu) goto L_0899D29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899D29C: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3214,8 +3693,21 @@ L_0899D29C: L_0899D2B0: aot_gpr_31 = (0x0899D2B8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 247u, 0x0899D2B8u, 0x0898DF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 703u, 0x0898DF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899D2B8u) goto L_0899D2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899D2B8: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3303,8 +3795,21 @@ L_0899D364: L_0899D3D8: aot_gpr_31 = (0x0899D3E0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 252u, 0x0899D3E0u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899D3E0u) goto L_0899D3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899D3E0: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -3635,8 +4140,21 @@ L_0899D5D0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0899D714u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 266u, 0x0899D714u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899D714u) goto L_0899D714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899D714: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3866,8 +4384,21 @@ L_0899D7C0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x0899D874u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 275u, 0x0899D874u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899D874u) goto L_0899D874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899D874: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4498,8 +5029,21 @@ L_0899DC3C: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0899DC98u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 292u, 0x0899DC98u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DC98u) goto L_0899DC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DC98: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (16051u << 16u); @@ -4602,8 +5146,21 @@ L_0899DD28: L_0899DD54: aot_gpr_31 = (0x0899DD5Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 296u, 0x0899DD5Cu, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DD5Cu) goto L_0899DD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DD5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4628,8 +5185,21 @@ L_0899DD64: L_0899DD90: aot_gpr_31 = (0x0899DD98u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 299u, 0x0899DD98u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DD98u) goto L_0899DD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DD98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4687,8 +5257,21 @@ L_0899DDE4: L_0899DE10: aot_gpr_31 = (0x0899DE18u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 303u, 0x0899DE18u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DE18u) goto L_0899DE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DE18: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(656), std::bit_cast(aot_fpr_12)); @@ -4815,8 +5398,21 @@ L_0899DF20: L_0899DF28: aot_gpr_31 = (0x0899DF30u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 308u, 0x0899DF30u, 0x089C6F50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 677u, 0x089C6F50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DF30u) goto L_0899DF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DF30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4839,14 +5435,40 @@ L_0899DF40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899DF5Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 311u, 0x0899DF5Cu, 0x0899B100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 356u, 0x0899B100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DF5Cu) goto L_0899DF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DF5C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-13752))); aot_gpr_31 = (0x0899DF68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 312u, 0x0899DF68u, 0x0899ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 335u, 0x0899ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DF68u) goto L_0899DF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DF68: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4890,13 +5512,39 @@ L_0899DF68: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0899DF98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 313u, 0x0899DF98u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DF98u) goto L_0899DF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DF98: aot_gpr_31 = (0x0899DFA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 314u, 0x0899DFA0u, 0x0899AF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 345u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 345u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 345u, 0x0899AF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899DFA0u) goto L_0899DFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899DFA0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(163), static_cast(0u)); goto L_0899DFA4; @@ -4920,8 +5568,8 @@ L_0899DFA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1264)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899DFE4: @@ -5019,15 +5667,41 @@ L_0899E0D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8896))); aot_gpr_31 = (0x0899E0E8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 325u, 0x0899E0E8u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E0E8u) goto L_0899E0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E0E8: aot_gpr_5 = (17530u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8896))); aot_gpr_31 = (0x0899E0F8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 326u, 0x0899E0F8u, 0x088907E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 117u, 0x088907E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E0F8u) goto L_0899E0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E0F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1112), ctx.gpr[17]); goto L_0899E0FC; @@ -5150,8 +5824,21 @@ L_0899E19C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0899E1E4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 333u, 0x0899E1E4u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E1E4u) goto L_0899E1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E1E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1040))); aot_gpr_4 = (aot_gpr_4 + static_cast(96)); @@ -5239,8 +5926,21 @@ L_0899E1E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x0899E268u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 334u, 0x0899E268u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E268u) goto L_0899E268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E268: aot_gpr_16 = (0u | 0u); ctx.gpr[30] = (0u | 5u); @@ -5265,8 +5965,21 @@ L_0899E28C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x0899E2C4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 336u, 0x0899E2C4u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E2C4u) goto L_0899E2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E2C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5320,8 +6033,21 @@ L_0899E2CC: ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x0899E314u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 338u, 0x0899E314u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E314u) goto L_0899E314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E314: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -5656,8 +6382,21 @@ L_0899E5A4: } aot_gpr_31 = (0x0899E5B8u); aot_gpr_4 = (aot_gpr_29 + static_cast(272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 377u, 0x0899E5B8u, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E5B8u) goto L_0899E5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E5B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5763,8 +6502,21 @@ L_0899E674: } L_0899E67C: aot_gpr_31 = (0x0899E684u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 390u, 0x0899E684u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E684u) goto L_0899E684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E684: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[26]; goto L_0899E688; @@ -5803,34 +6555,99 @@ L_0899E6C8: L_0899E6D0: aot_gpr_31 = (0x0899E6D8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 396u, 0x0899E6D8u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E6D8u) goto L_0899E6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E6D8: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0899E6E4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 397u, 0x0899E6E4u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E6E4u) goto L_0899E6E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E6E4: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[26] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0899E6F4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 398u, 0x0899E6F4u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E6F4u) goto L_0899E6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E6F4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0899E700u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 399u, 0x0899E700u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E700u) goto L_0899E700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E700: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); aot_gpr_31 = (0x0899E710u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 400u, 0x0899E710u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E710u) goto L_0899E710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E710: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(288), aot_run_words); } @@ -6125,8 +6942,21 @@ L_0899E884: } L_0899E88C: aot_gpr_31 = (0x0899E894u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 410u, 0x0899E894u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E894u) goto L_0899E894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E894: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[22]; goto L_0899E898; @@ -6178,8 +7008,21 @@ L_0899E8F0: } L_0899E8F8: aot_gpr_31 = (0x0899E900u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 417u, 0x0899E900u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E900u) goto L_0899E900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E900: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[22]; goto L_0899E904; @@ -6274,8 +7117,21 @@ L_0899E9D4: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x0899E9ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 427u, 0x0899E9ECu, 0x08A40D58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 161u, 0x08A40D58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899E9ECu) goto L_0899E9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899E9EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6291,8 +7147,21 @@ L_0899E9F4: L_0899E9FC: aot_gpr_31 = (0x0899EA04u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 430u, 0x0899EA04u, 0x0898D22Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 412u, 0x0898D22Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899EA04u) goto L_0899EA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899EA04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6311,8 +7180,21 @@ L_0899EA20: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1084))); aot_gpr_31 = (0x0899EA2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 433u, 0x0899EA2Cu, 0x0898DAFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 613u, 0x0898DAFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899EA2Cu) goto L_0899EA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899EA2C: aot_gpr_4 = (16256u << 16u); ctx.fpr[16] = std::bit_cast(0u); @@ -6927,22 +7809,61 @@ L_0899EF30: L_0899EF34: aot_gpr_31 = (0x0899EF3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 493u, 0x0899EF3Cu, 0x0898E080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 722u, 0x0898E080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899EF3Cu) goto L_0899EF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899EF3C: aot_gpr_4 = (0u - ctx.gpr[2]); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x0899EF50u); ctx.fpr[22] = static_cast(static_cast(std::bit_cast(ctx.fpr[22]))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 494u, 0x0899EF50u, 0x0898E188u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 742u, 0x0898E188u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899EF50u) goto L_0899EF50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899EF50: aot_fpr_20 = std::bit_cast(ctx.gpr[2]); aot_gpr_31 = (0x0899EF5Cu); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 495u, 0x0899EF5Cu, 0x089603D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 39u, 0x089603D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899EF5Cu) goto L_0899EF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899EF5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7059,8 +7980,21 @@ L_0899F070: L_0899F078: aot_gpr_31 = (0x0899F080u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 505u, 0x0899F080u, 0x08999134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 124u, 0x08999134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F080u) goto L_0899F080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F080: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7079,8 +8013,21 @@ L_0899F088: L_0899F0A0: aot_gpr_31 = (0x0899F0A8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 508u, 0x0899F0A8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F0A8u) goto L_0899F0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F0A8: aot_fpr_13 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_13)) ? 0x00800000u : 0u); @@ -7244,34 +8191,99 @@ L_0899F200: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(-13468), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x0899F210u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 525u, 0x0899F210u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F210u) goto L_0899F210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F210: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0899F21Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 526u, 0x0899F21Cu, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F21Cu) goto L_0899F21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F21C: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0899F22Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 527u, 0x0899F22Cu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F22Cu) goto L_0899F22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F22C: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0899F238u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 528u, 0x0899F238u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F238u) goto L_0899F238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F238: { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); aot_gpr_31 = (0x0899F248u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 529u, 0x0899F248u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F248u) goto L_0899F248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F248: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } @@ -7290,8 +8302,21 @@ L_0899F248: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0899F264u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 530u, 0x0899F264u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F264u) goto L_0899F264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F264: ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1056))); aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(88), static_cast(0u)); @@ -7355,34 +8380,99 @@ L_0899F264: aot_fpr_20 = aot_fpr_12 + ctx.fpr[24]; aot_gpr_31 = (0x0899F2B8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 531u, 0x0899F2B8u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F2B8u) goto L_0899F2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F2B8: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0899F2C4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 532u, 0x0899F2C4u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F2C4u) goto L_0899F2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F2C4: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0899F2D4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 533u, 0x0899F2D4u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F2D4u) goto L_0899F2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F2D4: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0899F2E0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 534u, 0x0899F2E0u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F2E0u) goto L_0899F2E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F2E0: { const float fs = ctx.fpr[28]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); aot_gpr_31 = (0x0899F2F0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 535u, 0x0899F2F0u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F2F0u) goto L_0899F2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F2F0: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(80), aot_run_words); } @@ -7442,34 +8532,99 @@ L_0899F2F0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0899F338u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 536u, 0x0899F338u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F338u) goto L_0899F338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F338: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0899F344u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 537u, 0x0899F344u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F344u) goto L_0899F344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F344: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x0899F354u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 538u, 0x0899F354u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F354u) goto L_0899F354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F354: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x0899F360u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 539u, 0x0899F360u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F360u) goto L_0899F360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F360: { const float fs = ctx.fpr[28]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); aot_gpr_31 = (0x0899F370u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 540u, 0x0899F370u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F370u) goto L_0899F370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F370: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } @@ -7570,8 +8725,21 @@ L_0899F3D8: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0899F41Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 542u, 0x0899F41Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F41Cu) goto L_0899F41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F41C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7584,8 +8752,21 @@ L_0899F424: aot_mem.aot_direct_store32(aot_gpr_28 + static_cast(-13476), aot_gpr_4); aot_gpr_31 = (0x0899F434u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 544u, 0x0899F434u, 0x089994CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 162u, 0x089994CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F434u) goto L_0899F434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F434: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(400), std::bit_cast(aot_fpr_12)); @@ -7725,8 +8906,21 @@ L_0899F514: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x0899F56Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 548u, 0x0899F56Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F56Cu) goto L_0899F56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F56C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (16051u << 16u); @@ -7898,8 +9092,21 @@ L_0899F65C: L_0899F688: aot_gpr_31 = (0x0899F690u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 553u, 0x0899F690u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F690u) goto L_0899F690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F690: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7924,8 +9131,21 @@ L_0899F698: L_0899F6C4: aot_gpr_31 = (0x0899F6CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 556u, 0x0899F6CCu, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F6CCu) goto L_0899F6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F6CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8054,8 +9274,21 @@ L_0899F780: L_0899F7AC: aot_gpr_31 = (0x0899F7B4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 561u, 0x0899F7B4u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F7B4u) goto L_0899F7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F7B4: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8174,8 +9407,21 @@ L_0899F86C: L_0899F874: aot_gpr_31 = (0x0899F87Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 564u, 0x0899F87Cu, 0x089C6F50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 677u, 0x089C6F50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F87Cu) goto L_0899F87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F87C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8193,14 +9439,40 @@ L_0899F884: L_0899F88C: aot_gpr_31 = (0x0899F894u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 567u, 0x0899F894u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F894u) goto L_0899F894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F894: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1112))); aot_gpr_31 = (0x0899F8A0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 568u, 0x0899F8A0u, 0x0899B100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 356u, 0x0899B100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F8A0u) goto L_0899F8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F8A0: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8240,8 +9512,21 @@ L_0899F8A0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x0899F8C0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 569u, 0x0899F8C0u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F8C0u) goto L_0899F8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F8C0: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8323,15 +9608,41 @@ L_0899F940: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8896))); aot_gpr_31 = (0x0899F954u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 574u, 0x0899F954u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F954u) goto L_0899F954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F954: aot_gpr_5 = (17530u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(8896))); aot_gpr_31 = (0x0899F964u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 575u, 0x0899F964u, 0x088907E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 117u, 0x088907E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F964u) goto L_0899F964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F964: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1108))); aot_gpr_4 = (0u | 1u); @@ -8345,8 +9656,21 @@ L_0899F974: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x0899F984u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 577u, 0x0899F984u, 0x089A8464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 31u, 0x089A8464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F984u) goto L_0899F984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F984: aot_gpr_31 = (0x0899F98Cu); aot_gpr_4 = (0u | 0u); @@ -8355,8 +9679,21 @@ L_0899F984: L_0899F98C: aot_gpr_31 = (0x0899F994u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 579u, 0x0899F994u, 0x0898CE14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 309u, 0x0898CE14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F994u) goto L_0899F994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F994: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8367,8 +9704,21 @@ L_0899F994: L_0899F99C: aot_gpr_31 = (0x0899F9A4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 581u, 0x0899F9A4u, 0x0899AF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 345u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 345u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 345u, 0x0899AF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899F9A4u) goto L_0899F9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899F9A4: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1116), aot_run_words); @@ -8391,8 +9741,8 @@ L_0899F9A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1184)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_0899F9EC: @@ -8624,8 +9974,21 @@ L_0899FBF4: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x0899FC04u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0102->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0102_entry, 603u, 0x0899FC04u, 0x08A1D810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 283u, 0x08A1D810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x0899FC04u) goto L_0899FC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_0899FC04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(932), std::bit_cast(ctx.fpr[24])); diff --git a/profiles/vcs/generated/generated_unit_0103.cpp b/profiles/vcs/generated/generated_unit_0103.cpp index e79d599..3953514 100644 --- a/profiles/vcs/generated/generated_unit_0103.cpp +++ b/profiles/vcs/generated/generated_unit_0103.cpp @@ -694,6 +694,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089A0004u; + if (local_delta_v813 >= 16328u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -724,8 +748,21 @@ L_089A0010: L_089A001C: aot_gpr_31 = (0x089A0024u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 4u, 0x089A0024u, 0x0898DCA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 649u, 0x0898DCA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0024u) goto L_089A0024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0024: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -775,8 +812,21 @@ L_089A0078: } L_089A0080: aot_gpr_31 = (0x089A0088u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 10u, 0x089A0088u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0088u) goto L_089A0088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0088: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[30]; goto L_089A008C; @@ -1124,8 +1174,21 @@ L_089A02B0: } L_089A02B8: aot_gpr_31 = (0x089A02C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 20u, 0x089A02C0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A02C0u) goto L_089A02C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A02C0: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[30]; goto L_089A02C4; @@ -1189,8 +1252,21 @@ L_089A0334: } L_089A033C: aot_gpr_31 = (0x089A0344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 28u, 0x089A0344u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0344u) goto L_089A0344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0344: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[30]; goto L_089A0348; @@ -1254,8 +1330,21 @@ L_089A03A8: } L_089A03B0: aot_gpr_31 = (0x089A03B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 35u, 0x089A03B8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A03B8u) goto L_089A03B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A03B8: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[30]; goto L_089A03BC; @@ -1804,8 +1893,21 @@ L_089A0794: L_089A0798: aot_gpr_31 = (0x089A07A0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 76u, 0x089A07A0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A07A0u) goto L_089A07A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A07A0: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089A07A4; @@ -1840,8 +1942,21 @@ L_089A07D4: } L_089A07DC: aot_gpr_31 = (0x089A07E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 81u, 0x089A07E4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A07E4u) goto L_089A07E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A07E4: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[28]; goto L_089A07E8; @@ -1948,8 +2063,21 @@ L_089A08DC: L_089A08E0: aot_gpr_31 = (0x089A08E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 91u, 0x089A08E8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A08E8u) goto L_089A08E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A08E8: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089A08EC; @@ -1999,8 +2127,21 @@ L_089A0938: } L_089A0940: aot_gpr_31 = (0x089A0948u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 98u, 0x089A0948u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0948u) goto L_089A0948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0948: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[28]; goto L_089A094C; @@ -2057,8 +2198,21 @@ L_089A09A4: } L_089A09B0: aot_gpr_31 = (0x089A09B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 103u, 0x089A09B8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A09B8u) goto L_089A09B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A09B8: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } aot_gpr_4 = (16256u << 16u); @@ -2148,8 +2302,21 @@ L_089A0A4C: } L_089A0A54: aot_gpr_31 = (0x089A0A5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 111u, 0x089A0A5Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0A5Cu) goto L_089A0A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0A5C: aot_fpr_12 = ctx.fpr[0] - ctx.fpr[28]; goto L_089A0A60; @@ -2207,8 +2374,21 @@ L_089A0ABC: } L_089A0AC8: aot_gpr_31 = (0x089A0AD0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 116u, 0x089A0AD0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0AD0u) goto L_089A0AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0AD0: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } aot_gpr_4 = (16256u << 16u); @@ -2305,16 +2485,42 @@ L_089A0BAC: L_089A0BB0: aot_gpr_31 = (0x089A0BB8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 127u, 0x089A0BB8u, 0x0898E080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 722u, 0x0898E080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0BB8u) goto L_089A0BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0BB8: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089A0BCCu); aot_fpr_20 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 128u, 0x089A0BCCu, 0x0898E188u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 742u, 0x0898E188u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0BCCu) goto L_089A0BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0BCC: aot_fpr_13 = std::bit_cast(ctx.gpr[2]); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); @@ -2362,8 +2568,21 @@ L_089A0C40: L_089A0C48: aot_gpr_31 = (0x089A0C50u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 132u, 0x089A0C50u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0C50u) goto L_089A0C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0C50: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2380,8 +2599,21 @@ L_089A0C50: L_089A0C74: aot_gpr_31 = (0x089A0C7Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 134u, 0x089A0C7Cu, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0C7Cu) goto L_089A0C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0C7C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2417,8 +2649,21 @@ L_089A0CAC: L_089A0CC4: aot_gpr_31 = (0x089A0CCCu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 138u, 0x089A0CCCu, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0CCCu) goto L_089A0CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0CCC: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2455,8 +2700,21 @@ L_089A0D18: L_089A0D24: aot_gpr_31 = (0x089A0D2Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 141u, 0x089A0D2Cu, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0D2Cu) goto L_089A0D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0D2C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2473,8 +2731,21 @@ L_089A0D2C: L_089A0D50: aot_gpr_31 = (0x089A0D58u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 143u, 0x089A0D58u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0D58u) goto L_089A0D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0D58: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2491,8 +2762,21 @@ L_089A0D58: L_089A0D7C: aot_gpr_31 = (0x089A0D84u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 145u, 0x089A0D84u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0D84u) goto L_089A0D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0D84: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2530,8 +2814,21 @@ L_089A0DDC: L_089A0DE4: aot_gpr_31 = (0x089A0DECu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 149u, 0x089A0DECu, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0DECu) goto L_089A0DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0DEC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2642,8 +2939,21 @@ L_089A0EEC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_gpr_31 = (0x089A0EF8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 162u, 0x089A0EF8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0EF8u) goto L_089A0EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0EF8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -2670,8 +2980,21 @@ L_089A0F20: L_089A0F30: aot_gpr_31 = (0x089A0F38u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 166u, 0x089A0F38u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A0F38u) goto L_089A0F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A0F38: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2880,8 +3203,21 @@ L_089A10D8: L_089A10E0: aot_gpr_31 = (0x089A10E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 193u, 0x089A10E8u, 0x08AFFE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 937u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 937u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 937u, 0x08AFFE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A10E8u) goto L_089A10E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A10E8: aot_gpr_4 = (16320u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3014,8 +3350,21 @@ L_089A1184: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A124Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 201u, 0x089A124Cu, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A124Cu) goto L_089A124C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A124C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(928))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(88), static_cast(0u)); @@ -3234,21 +3583,60 @@ L_089A124C: { const float fs = aot_fpr_13; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x089A13DCu); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 202u, 0x089A13DCu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A13DCu) goto L_089A13DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A13DC: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A13E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 203u, 0x089A13E8u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A13E8u) goto L_089A13E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A13E8: { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[28] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x089A13F8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 204u, 0x089A13F8u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A13F8u) goto L_089A13F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A13F8: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } @@ -3256,21 +3644,60 @@ L_089A13F8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089A1414u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 205u, 0x089A1414u, 0x08998BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1414u) goto L_089A1414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1414: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089A1424u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 206u, 0x089A1424u, 0x08998BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 58u, 0x08998BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1424u) goto L_089A1424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1424: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(952))); aot_gpr_31 = (0x089A1430u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 207u, 0x089A1430u, 0x0899905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 117u, 0x0899905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1430u) goto L_089A1430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1430: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), 0u); aot_gpr_16 = (0u | 0u); @@ -3279,16 +3706,42 @@ L_089A1430: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089A144Cu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 208u, 0x089A144Cu, 0x08999014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 115u, 0x08999014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A144Cu) goto L_089A144C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A144C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-13432))); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } aot_gpr_31 = (0x089A1460u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 209u, 0x089A1460u, 0x08999040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 116u, 0x08999040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1460u) goto L_089A1460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1460: aot_gpr_4 = (16256u << 16u); ctx.fpr[26] = std::bit_cast(aot_gpr_4); @@ -3325,8 +3778,21 @@ L_089A14A0: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089A14E0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 212u, 0x089A14E0u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A14E0u) goto L_089A14E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A14E0: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (16457u << 16u); @@ -3347,13 +3813,39 @@ L_089A14E8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089A1514u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 214u, 0x089A1514u, 0x08998BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 58u, 0x08998BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1514u) goto L_089A1514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1514: aot_gpr_31 = (0x089A151Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 215u, 0x089A151Cu, 0x08999040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 116u, 0x08999040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A151Cu) goto L_089A151C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A151C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3397,8 +3889,21 @@ L_089A1550: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089A15A4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 218u, 0x089A15A4u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A15A4u) goto L_089A15A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A15A4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (16051u << 16u); @@ -3440,8 +3945,21 @@ L_089A15AC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A15E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 220u, 0x089A15E4u, 0x08999040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 116u, 0x08999040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A15E4u) goto L_089A15E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A15E4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); @@ -3453,8 +3971,21 @@ L_089A15E4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A160Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 221u, 0x089A160Cu, 0x0899905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 117u, 0x0899905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A160Cu) goto L_089A160C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A160C: aot_gpr_4 = (16281u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -3484,8 +4015,21 @@ L_089A1628: L_089A1654: aot_gpr_31 = (0x089A165Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 224u, 0x089A165Cu, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A165Cu) goto L_089A165C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A165C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3510,8 +4054,21 @@ L_089A1664: L_089A1690: aot_gpr_31 = (0x089A1698u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 227u, 0x089A1698u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1698u) goto L_089A1698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1698: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3529,8 +4086,21 @@ L_089A16A0: aot_gpr_5 = (aot_gpr_29 + static_cast(464)); aot_gpr_31 = (0x089A16C4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 229u, 0x089A16C4u, 0x0899905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 117u, 0x0899905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A16C4u) goto L_089A16C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A16C4: aot_gpr_4 = (16281u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -3560,8 +4130,21 @@ L_089A16E0: L_089A170C: aot_gpr_31 = (0x089A1714u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 232u, 0x089A1714u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1714u) goto L_089A1714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1714: aot_gpr_4 = (16457u << 16u); goto L_089A1718; @@ -3579,8 +4162,21 @@ L_089A1718: ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089A174Cu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 234u, 0x089A174Cu, 0x08998FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 114u, 0x08998FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A174Cu) goto L_089A174C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A174C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3597,8 +4193,21 @@ L_089A1758: L_089A1760: aot_gpr_31 = (0x089A1768u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 237u, 0x089A1768u, 0x089C6F50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 677u, 0x089C6F50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1768u) goto L_089A1768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1768: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16972))); @@ -3624,8 +4233,21 @@ L_089A1784: L_089A1790: aot_gpr_31 = (0x089A1798u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 241u, 0x089A1798u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1798u) goto L_089A1798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1798: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), std::bit_cast(ctx.fpr[0])); { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } @@ -3633,15 +4255,41 @@ L_089A1798: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A17B0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 242u, 0x089A17B0u, 0x08998BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A17B0u) goto L_089A17B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A17B0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A17C0u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 243u, 0x089A17C0u, 0x08998BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 57u, 0x08998BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A17C0u) goto L_089A17C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A17C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -3655,8 +4303,21 @@ L_089A17C0: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089A17F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 244u, 0x089A17F0u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A17F0u) goto L_089A17F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A17F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3728,41 +4389,119 @@ L_089A1864: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089A18A0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 247u, 0x089A18A0u, 0x0899905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 117u, 0x0899905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A18A0u) goto L_089A18A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A18A0: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(912))); aot_gpr_31 = (0x089A18B0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 248u, 0x089A18B0u, 0x08998B98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 56u, 0x08998B98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A18B0u) goto L_089A18B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A18B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(552), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A18C4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 249u, 0x089A18C4u, 0x08998BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A18C4u) goto L_089A18C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A18C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089A18D4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 250u, 0x089A18D4u, 0x08998BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 58u, 0x08998BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A18D4u) goto L_089A18D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A18D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089A18E0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 251u, 0x089A18E0u, 0x0899905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 117u, 0x0899905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A18E0u) goto L_089A18E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A18E0: aot_gpr_31 = (0x089A18E8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 252u, 0x089A18E8u, 0x08999040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 116u, 0x08999040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A18E8u) goto L_089A18E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A18E8: aot_fpr_12 = ctx.fpr[0] / ctx.fpr[22]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(552), std::bit_cast(aot_fpr_12)); @@ -3770,15 +4509,41 @@ L_089A18E8: aot_gpr_4 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x089A1900u); aot_gpr_5 = (aot_gpr_29 + static_cast(552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 253u, 0x089A1900u, 0x08998C00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 60u, 0x08998C00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1900u) goto L_089A1900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1900: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(548), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_29 + static_cast(544)); aot_gpr_31 = (0x089A1910u); aot_gpr_5 = (aot_gpr_29 + static_cast(548)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 254u, 0x089A1910u, 0x08998C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 63u, 0x08998C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1910u) goto L_089A1910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1910: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(552), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); @@ -3794,8 +4559,21 @@ L_089A1928: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A1934u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(552))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 256u, 0x089A1934u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1934u) goto L_089A1934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1934: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(552))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[24])) && aot_fpr_12 == ctx.fpr[24])) ? 0x00800000u : 0u); @@ -3810,33 +4588,98 @@ L_089A1948: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x089A1958u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 258u, 0x089A1958u, 0x08998BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 58u, 0x08998BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1958u) goto L_089A1958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1958: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089A1968u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 259u, 0x089A1968u, 0x08998BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1968u) goto L_089A1968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1968: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(904))); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089A1978u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 260u, 0x089A1978u, 0x08998BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 57u, 0x08998BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1978u) goto L_089A1978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1978: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(916))); aot_gpr_31 = (0x089A1984u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 261u, 0x089A1984u, 0x0899905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 117u, 0x0899905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1984u) goto L_089A1984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1984: aot_gpr_31 = (0x089A198Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 262u, 0x089A198Cu, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A198Cu) goto L_089A198C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A198C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(908))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(296))); @@ -3846,23 +4689,62 @@ L_089A198C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A19ACu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 263u, 0x089A19ACu, 0x08998FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 114u, 0x08998FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A19ACu) goto L_089A19AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A19AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(912))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } aot_gpr_31 = (0x089A19C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 264u, 0x089A19C0u, 0x08998BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 59u, 0x08998BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A19C0u) goto L_089A19C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A19C0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(916))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A19D0u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 265u, 0x089A19D0u, 0x08998BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 57u, 0x08998BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A19D0u) goto L_089A19D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A19D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); @@ -3876,8 +4758,21 @@ L_089A19D0: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089A1A00u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 266u, 0x089A1A00u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1A00u) goto L_089A1A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1A00: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3905,33 +4800,98 @@ L_089A1A20: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(908))); aot_gpr_31 = (0x089A1A38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 270u, 0x089A1A38u, 0x0899B0F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 355u, 0x0899B0F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1A38u) goto L_089A1A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1A38: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(960))); aot_gpr_31 = (0x089A1A44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 271u, 0x089A1A44u, 0x0899B100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 356u, 0x0899B100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1A44u) goto L_089A1A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1A44: ctx.gpr[17] = (aot_gpr_29 + static_cast(80)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(916))); aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x089A1A58u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 272u, 0x089A1A58u, 0x08998BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 58u, 0x08998BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1A58u) goto L_089A1A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1A58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(912))); aot_gpr_31 = (0x089A1A64u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 273u, 0x089A1A64u, 0x0899905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 117u, 0x0899905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1A64u) goto L_089A1A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1A64: aot_gpr_31 = (0x089A1A6Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 274u, 0x089A1A6Cu, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1A6Cu) goto L_089A1A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1A6C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(972), aot_run_words); @@ -3954,8 +4914,8 @@ L_089A1A6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1040)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A1AB4: @@ -4118,18 +5078,57 @@ L_089A1C2C: L_089A1C5C: aot_gpr_31 = (0x089A1C64u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 286u, 0x089A1C64u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1C64u) goto L_089A1C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1C64: aot_gpr_31 = (0x089A1C6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 287u, 0x089A1C6Cu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1C6Cu) goto L_089A1C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1C6C: aot_gpr_31 = (0x089A1C74u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 288u, 0x089A1C74u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1C74u) goto L_089A1C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1C74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_4 = (aot_gpr_4 + static_cast(816)); @@ -4137,8 +5136,21 @@ L_089A1C74: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089A1C8Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 289u, 0x089A1C8Cu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1C8Cu) goto L_089A1C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1C8C: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4221,8 +5233,21 @@ L_089A1D58: L_089A1D60: aot_gpr_31 = (0x089A1D68u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 294u, 0x089A1D68u, 0x0898E080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 722u, 0x0898E080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1D68u) goto L_089A1D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1D68: aot_gpr_4 = (0u - ctx.gpr[2]); ctx.fpr[24] = std::bit_cast(aot_gpr_4); @@ -4234,8 +5259,21 @@ L_089A1D68: L_089A1D7C: aot_gpr_31 = (0x089A1D84u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 296u, 0x089A1D84u, 0x0898E188u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 742u, 0x0898E188u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1D84u) goto L_089A1D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1D84: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(ctx.gpr[2]); @@ -4301,8 +5339,21 @@ L_089A1DC8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x089A1E4Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(120), std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 301u, 0x089A1E4Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1E4Cu) goto L_089A1E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1E4C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -4356,32 +5407,97 @@ L_089A1EB4: L_089A1EB8: aot_gpr_31 = (0x089A1EC0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 308u, 0x089A1EC0u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1EC0u) goto L_089A1EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1EC0: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A1ECCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 309u, 0x089A1ECCu, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1ECCu) goto L_089A1ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1ECC: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x089A1ED8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 310u, 0x089A1ED8u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1ED8u) goto L_089A1ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1ED8: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A1EE4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 311u, 0x089A1EE4u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1EE4u) goto L_089A1EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1EE4: { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } aot_gpr_31 = (0x089A1EF0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 312u, 0x089A1EF0u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1EF0u) goto L_089A1EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1EF0: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(64), aot_run_words); } @@ -4537,8 +5653,21 @@ L_089A1F94: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x089A1FC4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 315u, 0x089A1FC4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1FC4u) goto L_089A1FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1FC4: if (ctx.gpr[2] != 0u) { aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(532), std::bit_cast(ctx.fpr[30])); @@ -4549,8 +5678,21 @@ L_089A1FCC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A1FD8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 317u, 0x089A1FD8u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1FD8u) goto L_089A1FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1FD8: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-13404), static_cast(ctx.gpr[17])); @@ -4566,8 +5708,21 @@ L_089A1FE0: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089A1FF8u); aot_fpr_12 = aot_fpr_12 + aot_fpr_20; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 319u, 0x089A1FF8u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A1FF8u) goto L_089A1FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A1FF8: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); @@ -4576,30 +5731,82 @@ L_089A1FF8: ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089A2014u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 320u, 0x089A2014u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2014u) goto L_089A2014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2014: { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); aot_fpr_12 = aot_fpr_12 + aot_fpr_20; aot_gpr_31 = (0x089A2028u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(536), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 321u, 0x089A2028u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2028u) goto L_089A2028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2028: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); aot_gpr_31 = (0x089A2038u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 322u, 0x089A2038u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2038u) goto L_089A2038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2038: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); aot_gpr_31 = (0x089A2048u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 323u, 0x089A2048u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2048u) goto L_089A2048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2048: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[30]), std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(128), aot_run_words); } @@ -4670,8 +5877,21 @@ L_089A2048: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[17]); aot_gpr_31 = (0x089A20BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 324u, 0x089A20BCu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A20BCu) goto L_089A20BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A20BC: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(532))); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -4685,8 +5905,21 @@ L_089A20C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A20D4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 326u, 0x089A20D4u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A20D4u) goto L_089A20D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A20D4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-13404), static_cast(ctx.gpr[17])); @@ -4700,36 +5933,101 @@ L_089A20DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); aot_gpr_31 = (0x089A20ECu); aot_fpr_12 = aot_fpr_12 - aot_fpr_20; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 328u, 0x089A20ECu, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A20ECu) goto L_089A20EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A20EC: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); aot_gpr_31 = (0x089A20FCu); aot_fpr_12 = aot_fpr_12 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 329u, 0x089A20FCu, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A20FCu) goto L_089A20FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A20FC: { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); aot_gpr_31 = (0x089A210Cu); aot_fpr_12 = aot_fpr_12 - aot_fpr_20; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 330u, 0x089A210Cu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A210Cu) goto L_089A210C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A210C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); aot_gpr_31 = (0x089A211Cu); aot_fpr_12 = aot_fpr_12 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 331u, 0x089A211Cu, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A211Cu) goto L_089A211C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A211C: { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); aot_gpr_31 = (0x089A212Cu); aot_fpr_12 = aot_fpr_12 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 332u, 0x089A212Cu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A212Cu) goto L_089A212C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A212C: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[30]), std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(192), aot_run_words); } @@ -4799,8 +6097,21 @@ L_089A212C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[17]); aot_gpr_31 = (0x089A219Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 333u, 0x089A219Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A219Cu) goto L_089A219C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A219C: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(536))); @@ -4813,8 +6124,21 @@ L_089A21A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A21B0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 335u, 0x089A21B0u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A21B0u) goto L_089A21B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A21B0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-13404), static_cast(ctx.gpr[17])); @@ -4838,8 +6162,21 @@ L_089A21C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A21D4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 339u, 0x089A21D4u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A21D4u) goto L_089A21D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A21D4: aot_gpr_4 = (std::bit_cast(ctx.fpr[30])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -4860,19 +6197,58 @@ L_089A21D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A21F4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 340u, 0x089A21F4u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A21F4u) goto L_089A21F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A21F4: aot_gpr_31 = (0x089A21FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 341u, 0x089A21FCu, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A21FCu) goto L_089A21FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A21FC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x089A2208u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 342u, 0x089A2208u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2208u) goto L_089A2208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2208: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -4923,8 +6299,21 @@ L_089A2250: L_089A2264: aot_gpr_31 = (0x089A226Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 348u, 0x089A226Cu, 0x08A595C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 312u, 0x08A595C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A226Cu) goto L_089A226C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A226C: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(960)); @@ -5137,8 +6526,21 @@ L_089A23B0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089A23D8u); aot_gpr_6 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 363u, 0x089A23D8u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A23D8u) goto L_089A23D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A23D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -5173,8 +6575,21 @@ L_089A2404: L_089A2414: aot_gpr_31 = (0x089A241Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 366u, 0x089A241Cu, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A241Cu) goto L_089A241C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A241C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5474,8 +6889,21 @@ L_089A259C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A25D0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 378u, 0x089A25D0u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A25D0u) goto L_089A25D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A25D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(288), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(292), std::bit_cast(ctx.fpr[22])); @@ -5491,13 +6919,39 @@ L_089A25F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-13752))); aot_gpr_31 = (0x089A25FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 380u, 0x089A25FCu, 0x0899ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 335u, 0x0899ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A25FCu) goto L_089A25FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A25FC: aot_gpr_31 = (0x089A2604u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 381u, 0x089A2604u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2604u) goto L_089A2604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2604: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(540), aot_run_words); @@ -5520,8 +6974,8 @@ L_089A2604: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(608)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A264C: @@ -5621,8 +7075,21 @@ L_089A2740: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x089A274Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 385u, 0x089A274Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A274Cu) goto L_089A274C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A274C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -5644,14 +7111,40 @@ L_089A276C: L_089A2770: aot_gpr_31 = (0x089A2778u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 389u, 0x089A2778u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2778u) goto L_089A2778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2778: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); aot_gpr_31 = (0x089A2784u); ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 390u, 0x089A2784u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2784u) goto L_089A2784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2784: aot_gpr_4 = (16457u << 16u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(124), std::bit_cast(ctx.fpr[0])); @@ -5666,15 +7159,41 @@ L_089A2784: ctx.fpr[26] = ctx.fpr[30] + ctx.fpr[26]; aot_gpr_31 = (0x089A27B8u); aot_fpr_12 = ctx.fpr[0] - ctx.fpr[28]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 391u, 0x089A27B8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A27B8u) goto L_089A27B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A27B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A27C8u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 392u, 0x089A27C8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A27C8u) goto L_089A27C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A27C8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(163))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5739,8 +7258,21 @@ L_089A2830: L_089A2838: aot_gpr_31 = (0x089A2840u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 401u, 0x089A2840u, 0x0898D270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 419u, 0x0898D270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2840u) goto L_089A2840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2840: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5791,19 +7323,58 @@ L_089A288C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); aot_gpr_31 = (0x089A28A8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 408u, 0x089A28A8u, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A28A8u) goto L_089A28A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A28A8: aot_gpr_31 = (0x089A28B0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 409u, 0x089A28B0u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A28B0u) goto L_089A28B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A28B0: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A28BCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 410u, 0x089A28BCu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A28BCu) goto L_089A28BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A28BC: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[0]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } @@ -5876,19 +7447,58 @@ L_089A28BC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x089A2938u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 411u, 0x089A2938u, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2938u) goto L_089A2938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2938: aot_gpr_31 = (0x089A2940u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 412u, 0x089A2940u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2940u) goto L_089A2940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2940: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A294Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(212))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 413u, 0x089A294Cu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A294Cu) goto L_089A294C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A294C: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[0]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -5986,8 +7596,21 @@ L_089A29D0: aot_fpr_14 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x089A29F8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 417u, 0x089A29F8u, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A29F8u) goto L_089A29F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A29F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6007,8 +7630,21 @@ L_089A2A00: aot_fpr_14 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x089A2A2Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 419u, 0x089A2A2Cu, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2A2Cu) goto L_089A2A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2A2C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(40))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(220))); @@ -6048,8 +7684,21 @@ L_089A2A2C: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089A2A6Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 420u, 0x089A2A6Cu, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2A6Cu) goto L_089A2A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2A6C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6109,8 +7758,21 @@ L_089A2A6C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A2AACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 421u, 0x089A2AACu, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2AACu) goto L_089A2AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2AAC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(163), static_cast(0u)); goto L_089A2AB0; @@ -6136,8 +7798,8 @@ L_089A2AB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A2AF8: @@ -6397,8 +8059,21 @@ L_089A2D88: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); aot_gpr_31 = (0x089A2DA0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 443u, 0x089A2DA0u, 0x0899B3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 400u, 0x0899B3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2DA0u) goto L_089A2DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2DA0: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_fpr_13 = std::bit_cast(aot_gpr_5); @@ -6446,8 +8121,21 @@ L_089A2E00: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A2E18u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 448u, 0x089A2E18u, 0x0899B3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 400u, 0x0899B3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2E18u) goto L_089A2E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2E18: ctx.gpr[20] = (ctx.gpr[19] | 0u); aot_fpr_13 = std::bit_cast(ctx.gpr[20]); @@ -6495,8 +8183,21 @@ L_089A2E78: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A2E90u); ctx.gpr[7] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 453u, 0x089A2E90u, 0x08998C50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 66u, 0x08998C50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2E90u) goto L_089A2E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2E90: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (16457u << 16u); @@ -6577,8 +8278,21 @@ L_089A2F68: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); aot_gpr_31 = (0x089A2F80u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 458u, 0x089A2F80u, 0x08998C50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 66u, 0x08998C50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A2F80u) goto L_089A2F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A2F80: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6948,8 +8662,21 @@ L_089A3248: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089A3264u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 473u, 0x089A3264u, 0x0899B3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 400u, 0x0899B3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3264u) goto L_089A3264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3264: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2544))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); @@ -6957,8 +8684,21 @@ L_089A3264: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(184))); aot_gpr_31 = (0x089A327Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 474u, 0x089A327Cu, 0x0899B3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 400u, 0x0899B3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A327Cu) goto L_089A327C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A327C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2544))); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); @@ -6966,8 +8706,21 @@ L_089A327C: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); aot_gpr_31 = (0x089A3294u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 475u, 0x089A3294u, 0x08998C50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 66u, 0x08998C50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3294u) goto L_089A3294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3294: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (16457u << 16u); @@ -7009,8 +8762,21 @@ L_089A3294: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A3324u); ctx.gpr[7] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 476u, 0x089A3324u, 0x08998C50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 66u, 0x08998C50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3324u) goto L_089A3324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3324: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2196), std::bit_cast(aot_fpr_20)); { const std::uint32_t aot_run_words[4]{0u, 0u, 0u, 0u}; @@ -7204,8 +8970,8 @@ L_089A33E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A341C: @@ -7265,8 +9031,21 @@ L_089A34B4: L_089A34BC: aot_gpr_31 = (0x089A34C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 484u, 0x089A34C4u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A34C4u) goto L_089A34C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A34C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7279,8 +9058,21 @@ L_089A34CC: aot_gpr_6 = (aot_gpr_29 + static_cast(148)); aot_gpr_31 = (0x089A34DCu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 486u, 0x089A34DCu, 0x0899B258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 379u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 379u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 379u, 0x0899B258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A34DCu) goto L_089A34DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A34DC: aot_gpr_4 = (15820u << 16u); ctx.fpr[22] = std::bit_cast(0u); @@ -7416,8 +9208,21 @@ L_089A35E4: L_089A35EC: aot_gpr_31 = (0x089A35F4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 500u, 0x089A35F4u, 0x0898DDE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 679u, 0x0898DDE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A35F4u) goto L_089A35F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A35F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7454,8 +9259,21 @@ L_089A3638: L_089A3640: aot_gpr_31 = (0x089A3648u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 504u, 0x089A3648u, 0x0898DD9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 672u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 672u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 672u, 0x0898DD9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3648u) goto L_089A3648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3648: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7507,8 +9325,21 @@ L_089A36B4: aot_gpr_5 = (ctx.gpr[23] + static_cast(300)); aot_gpr_31 = (0x089A36D4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 508u, 0x089A36D4u, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A36D4u) goto L_089A36D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A36D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7619,8 +9450,21 @@ L_089A3794: L_089A379C: aot_gpr_31 = (0x089A37A4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 524u, 0x089A37A4u, 0x0898DE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 686u, 0x0898DE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A37A4u) goto L_089A37A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A37A4: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_20 = std::bit_cast(aot_gpr_4); @@ -7632,8 +9476,21 @@ L_089A37A4: L_089A37B8: aot_gpr_31 = (0x089A37C0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 526u, 0x089A37C0u, 0x0898DF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 703u, 0x0898DF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A37C0u) goto L_089A37C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A37C0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7795,8 +9652,21 @@ L_089A38FC: L_089A3988: aot_gpr_31 = (0x089A3990u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 538u, 0x089A3990u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3990u) goto L_089A3990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3990: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -7889,23 +9759,75 @@ L_089A3A34: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(112))); aot_gpr_31 = (0x089A3A70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 548u, 0x089A3A70u, 0x0892CEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 149u, 0x0892CEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3A70u) goto L_089A3A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3A70: aot_gpr_31 = (0x089A3A78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 549u, 0x089A3A78u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3A78u) goto L_089A3A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3A78: aot_gpr_31 = (0x089A3A80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 550u, 0x089A3A80u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3A80u) goto L_089A3A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3A80: aot_gpr_31 = (0x089A3A88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 551u, 0x089A3A88u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3A88u) goto L_089A3A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3A88: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(352), aot_run_words); } @@ -7915,8 +9837,21 @@ L_089A3A88: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089A3AACu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 552u, 0x089A3AACu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3AACu) goto L_089A3AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3AAC: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7977,8 +9912,21 @@ L_089A3AE0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089A3B08u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 554u, 0x089A3B08u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3B08u) goto L_089A3B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3B08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1888))); aot_gpr_4 = (16457u << 16u); @@ -7994,8 +9942,21 @@ L_089A3B08: L_089A3B28: aot_gpr_31 = (0x089A3B30u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 556u, 0x089A3B30u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3B30u) goto L_089A3B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3B30: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(124), std::bit_cast(ctx.fpr[0])); @@ -8101,8 +10062,21 @@ L_089A3C08: L_089A3C0C: aot_gpr_31 = (0x089A3C14u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 567u, 0x089A3C14u, 0x08832D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 652u, 0x08832D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3C14u) goto L_089A3C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3C14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8210,20 +10184,59 @@ L_089A3CF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2120))); aot_gpr_31 = (0x089A3D04u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 578u, 0x089A3D04u, 0x08832D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 652u, 0x08832D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3D04u) goto L_089A3D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3D04: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2120))); aot_gpr_31 = (0x089A3D10u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 579u, 0x089A3D10u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3D10u) goto L_089A3D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3D10: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(120))); aot_gpr_31 = (0x089A3D1Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 580u, 0x089A3D1Cu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3D1Cu) goto L_089A3D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3D1C: aot_gpr_16 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1920))); aot_gpr_4 = (static_cast(aot_gpr_16) < 2 ? 1u : 0u); @@ -8252,8 +10265,21 @@ L_089A3D3C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(124))); aot_gpr_31 = (0x089A3D48u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 584u, 0x089A3D48u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3D48u) goto L_089A3D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3D48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8288,8 +10314,21 @@ L_089A3D68: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A3D78u); aot_fpr_12 = aot_fpr_12 + ctx.fpr[28]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 589u, 0x089A3D78u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3D78u) goto L_089A3D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3D78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8302,8 +10341,21 @@ L_089A3D80: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A3D90u); aot_fpr_12 = aot_fpr_12 + aot_fpr_20; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 591u, 0x089A3D90u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3D90u) goto L_089A3D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3D90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8319,14 +10371,40 @@ L_089A3D98: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A3DB4u); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 593u, 0x089A3DB4u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3DB4u) goto L_089A3DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3DB4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A3DC0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 594u, 0x089A3DC0u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3DC0u) goto L_089A3DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3DC0: aot_gpr_4 = (aot_gpr_29 + static_cast(208)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8415,14 +10493,40 @@ L_089A3DC0: aot_gpr_5 = (aot_gpr_5 | 52429u); aot_gpr_31 = (0x089A3E20u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 595u, 0x089A3E20u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3E20u) goto L_089A3E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3E20: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(16))); aot_gpr_31 = (0x089A3E2Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 596u, 0x089A3E2Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3E2Cu) goto L_089A3E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3E2C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -8461,8 +10565,21 @@ L_089A3E70: L_089A3E7C: aot_gpr_31 = (0x089A3E84u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 601u, 0x089A3E84u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3E84u) goto L_089A3E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3E84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(264))); goto L_089A3E88; @@ -8485,8 +10602,21 @@ L_089A3E94: L_089A3EA0: aot_gpr_31 = (0x089A3EA8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 605u, 0x089A3EA8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3EA8u) goto L_089A3EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3EA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8497,18 +10627,57 @@ L_089A3EA8: L_089A3EB0: aot_gpr_31 = (0x089A3EB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 607u, 0x089A3EB8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3EB8u) goto L_089A3EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3EB8: aot_gpr_31 = (0x089A3EC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 608u, 0x089A3EC0u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3EC0u) goto L_089A3EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3EC0: aot_gpr_31 = (0x089A3EC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 609u, 0x089A3EC8u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3EC8u) goto L_089A3EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3EC8: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(416), aot_run_words); } @@ -8518,8 +10687,21 @@ L_089A3EC8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A3EECu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 610u, 0x089A3EECu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3EECu) goto L_089A3EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3EEC: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8539,32 +10721,97 @@ L_089A3EEC: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089A3F08u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 611u, 0x089A3F08u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3F08u) goto L_089A3F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3F08: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A3F14u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 612u, 0x089A3F14u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3F14u) goto L_089A3F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3F14: { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x089A3F20u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 613u, 0x089A3F20u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3F20u) goto L_089A3F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3F20: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A3F2Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 614u, 0x089A3F2Cu, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3F2Cu) goto L_089A3F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3F2C: { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } aot_gpr_31 = (0x089A3F38u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0103->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0103_entry, 615u, 0x089A3F38u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A3F38u) goto L_089A3F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A3F38: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[30]), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(400), aot_run_words); } diff --git a/profiles/vcs/generated/generated_unit_0104.cpp b/profiles/vcs/generated/generated_unit_0104.cpp index f7c0ed1..5974114 100644 --- a/profiles/vcs/generated/generated_unit_0104.cpp +++ b/profiles/vcs/generated/generated_unit_0104.cpp @@ -614,6 +614,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089A4000u; + if (local_delta_v813 >= 16344u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -660,8 +684,21 @@ L_089A4054: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(16))); aot_gpr_31 = (0x089A4060u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 4u, 0x089A4060u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A4060u) goto L_089A4060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A4060: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -753,8 +790,21 @@ L_089A40F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A410Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 14u, 0x089A410Cu, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A410Cu) goto L_089A410C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A410C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -767,8 +817,21 @@ L_089A4114: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A4124u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 16u, 0x089A4124u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A4124u) goto L_089A4124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A4124: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -808,8 +871,21 @@ L_089A4124: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089A4164u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 17u, 0x089A4164u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A4164u) goto L_089A4164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A4164: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), 0u); aot_gpr_4 = (16672u << 16u); @@ -876,8 +952,21 @@ L_089A41B0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089A41ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 19u, 0x089A41ECu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A41ECu) goto L_089A41EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A41EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -967,8 +1056,21 @@ L_089A4274: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-13752))); aot_gpr_31 = (0x089A4280u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 24u, 0x089A4280u, 0x0899ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 335u, 0x0899ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A4280u) goto L_089A4280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A4280: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1031,8 +1133,21 @@ L_089A4280: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A42CCu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 25u, 0x089A42CCu, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A42CCu) goto L_089A42CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A42CC: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(704), aot_run_words); @@ -1055,8 +1170,8 @@ L_089A42CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(768)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A4314: @@ -1475,8 +1590,21 @@ L_089A456C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A45DCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 41u, 0x089A45DCu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A45DCu) goto L_089A45DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A45DC: aot_gpr_4 = (16988u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1543,8 +1671,21 @@ L_089A4614: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A4628u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 44u, 0x089A4628u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A4628u) goto L_089A4628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A4628: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_20)); @@ -1686,8 +1827,8 @@ L_089A4654: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A46F0: @@ -1858,8 +1999,21 @@ L_089A47E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_31 = (0x089A484Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 50u, 0x089A484Cu, 0x08998B70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 55u, 0x08998B70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A484Cu) goto L_089A484C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A484C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1966,8 +2120,21 @@ L_089A48AC: ctx.gpr[6] = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x089A48ECu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 57u, 0x089A48ECu, 0x08998B70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 55u, 0x08998B70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A48ECu) goto L_089A48EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A48EC: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2167,8 +2334,21 @@ L_089A49EC: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089A4A04u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 63u, 0x089A4A04u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A4A04u) goto L_089A4A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A4A04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -2885,8 +3065,21 @@ L_089A4D54: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089A4E64u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 84u, 0x089A4E64u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A4E64u) goto L_089A4E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A4E64: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2913,8 +3106,8 @@ L_089A4E70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(672)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A4EA0: @@ -2965,8 +3158,21 @@ L_089A4F30: aot_gpr_4 = (aot_gpr_4 + static_cast(816)); aot_gpr_31 = (0x089A4F44u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 90u, 0x089A4F44u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A4F44u) goto L_089A4F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A4F44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3092,8 +3298,21 @@ L_089A5000: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_31 = (0x089A5034u); aot_gpr_4 = (aot_gpr_29 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 97u, 0x089A5034u, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5034u) goto L_089A5034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5034: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3377,8 +3596,21 @@ L_089A5140: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089A51C8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 102u, 0x089A51C8u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A51C8u) goto L_089A51C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A51C8: aot_gpr_4 = (17530u << 16u); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -3643,15 +3875,41 @@ L_089A529C: aot_gpr_17 = (aot_gpr_29 + static_cast(224)); aot_gpr_31 = (0x089A53BCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 108u, 0x089A53BCu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A53BCu) goto L_089A53BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A53BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089A53CCu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 109u, 0x089A53CCu, 0x08998B70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 55u, 0x08998B70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A53CCu) goto L_089A53CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A53CC: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3742,8 +4000,21 @@ L_089A541C: L_089A5428: aot_gpr_31 = (0x089A5430u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 112u, 0x089A5430u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5430u) goto L_089A5430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5430: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3777,8 +4048,21 @@ L_089A5430: ctx.gpr[6] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089A5458u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 113u, 0x089A5458u, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5458u) goto L_089A5458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5458: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(2071), static_cast(0u)); goto L_089A545C; @@ -3800,8 +4084,8 @@ L_089A545C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A5494: @@ -3815,8 +4099,21 @@ L_089A5494: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); aot_gpr_31 = (0x089A54F4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 116u, 0x089A54F4u, 0x08A1C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 54u, 0x08A1C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A54F4u) goto L_089A54F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A54F4: aot_gpr_4 = (ctx.gpr[19] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3851,8 +4148,21 @@ L_089A54F4: aot_fpr_20 = std::sqrt(aot_fpr_20); aot_gpr_31 = (0x089A552Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 117u, 0x089A552Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A552Cu) goto L_089A552C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A552C: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[24] = std::bit_cast(0u); @@ -3985,8 +4295,21 @@ L_089A5648: ctx.fpr[28] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089A5658u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 133u, 0x089A5658u, 0x08A1C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 54u, 0x08A1C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5658u) goto L_089A5658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5658: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4603,14 +4926,40 @@ L_089A5AC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(264), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089A5AF4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 181u, 0x089A5AF4u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5AF4u) goto L_089A5AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5AF4: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089A5B00u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 182u, 0x089A5B00u, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5B00u) goto L_089A5B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5B00: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[30]), std::bit_cast(ctx.fpr[0]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(144), aot_run_words); } @@ -4679,8 +5028,21 @@ L_089A5B00: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089A5B74u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 183u, 0x089A5B74u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5B74u) goto L_089A5B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5B74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4733,8 +5095,21 @@ L_089A5B9C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); aot_gpr_31 = (0x089A5BECu); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 186u, 0x089A5BECu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5BECu) goto L_089A5BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5BEC: ctx.gpr[22] = (0u | 1u); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); @@ -4743,14 +5118,40 @@ L_089A5BF4: ctx.fpr[30] = ctx.fpr[22] + ctx.fpr[28]; aot_gpr_31 = (0x089A5C00u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 188u, 0x089A5C00u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5C00u) goto L_089A5C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5C00: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x089A5C0Cu); ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 189u, 0x089A5C0Cu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5C0Cu) goto L_089A5C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5C0C: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[30]), std::bit_cast(ctx.fpr[0]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(112), aot_run_words); } @@ -4819,8 +5220,21 @@ L_089A5C0C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089A5C80u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 190u, 0x089A5C80u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5C80u) goto L_089A5C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5C80: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4873,8 +5287,21 @@ L_089A5CA8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); aot_gpr_31 = (0x089A5CF8u); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 193u, 0x089A5CF8u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5CF8u) goto L_089A5CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5CF8: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -4905,14 +5332,40 @@ L_089A5D24: ctx.fpr[22] = ctx.fpr[22] - ctx.fpr[28]; aot_gpr_31 = (0x089A5D30u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 198u, 0x089A5D30u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5D30u) goto L_089A5D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5D30: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089A5D3Cu); ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 199u, 0x089A5D3Cu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5D3Cu) goto L_089A5D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5D3C: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[30]), std::bit_cast(ctx.fpr[0]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(112), aot_run_words); } @@ -4981,8 +5434,21 @@ L_089A5D3C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089A5DB0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 200u, 0x089A5DB0u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5DB0u) goto L_089A5DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5DB0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5035,8 +5501,21 @@ L_089A5DD8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); aot_gpr_31 = (0x089A5E28u); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 203u, 0x089A5E28u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5E28u) goto L_089A5E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5E28: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -5135,8 +5614,8 @@ L_089A5EB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A5EF8: @@ -5189,8 +5668,21 @@ L_089A5F84: aot_gpr_4 = (ctx.gpr[18] + static_cast(816)); aot_gpr_31 = (0x089A5FA0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 217u, 0x089A5FA0u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5FA0u) goto L_089A5FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A5FA0: aot_gpr_31 = (0x089A5FA8u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A5FA8u) goto L_089A5FA8; @@ -5320,8 +5812,21 @@ L_089A6090: aot_gpr_4 = (ctx.gpr[18] + static_cast(816)); aot_gpr_31 = (0x089A60A4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 233u, 0x089A60A4u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A60A4u) goto L_089A60A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A60A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5533,8 +6038,21 @@ L_089A61E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A6200u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 259u, 0x089A6200u, 0x0899A67Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 279u, 0x0899A67Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6200u) goto L_089A6200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6200: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-13548), aot_gpr_17); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -5586,8 +6104,21 @@ L_089A624C: ctx.gpr[8] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089A6274u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 264u, 0x089A6274u, 0x0899A67Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 279u, 0x0899A67Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6274u) goto L_089A6274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6274: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_089A6278; @@ -5642,8 +6173,21 @@ L_089A62B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A62D8u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 271u, 0x089A62D8u, 0x0899A90Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 296u, 0x0899A90Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A62D8u) goto L_089A62D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A62D8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-13548), aot_gpr_17); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -5695,8 +6239,21 @@ L_089A6324: ctx.gpr[8] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089A634Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 276u, 0x089A634Cu, 0x0899A90Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 296u, 0x0899A90Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A634Cu) goto L_089A634C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A634C: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_089A6350; @@ -5744,8 +6301,21 @@ L_089A6388: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A63A8u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 282u, 0x089A63A8u, 0x0899AA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 306u, 0x0899AA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A63A8u) goto L_089A63A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A63A8: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_089A63AC; @@ -5935,8 +6505,21 @@ L_089A64B8: ctx.gpr[6] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A64F0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 302u, 0x089A64F0u, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A64F0u) goto L_089A64F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A64F0: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6138,8 +6721,21 @@ L_089A65E0: aot_gpr_4 = (aot_gpr_4 + static_cast(816)); aot_gpr_31 = (0x089A65FCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 307u, 0x089A65FCu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A65FCu) goto L_089A65FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A65FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6196,8 +6792,21 @@ L_089A6658: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x089A6678u); aot_gpr_4 = (aot_gpr_4 + static_cast(816)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 313u, 0x089A6678u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6678u) goto L_089A6678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6678: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6264,8 +6873,21 @@ L_089A66C8: ctx.gpr[8] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089A66E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 319u, 0x089A66E8u, 0x0899A67Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 279u, 0x0899A67Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A66E8u) goto L_089A66E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A66E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-13620))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -6550,8 +7172,21 @@ L_089A6838: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089A68B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 327u, 0x089A68B0u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A68B0u) goto L_089A68B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A68B0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6641,8 +7276,21 @@ L_089A6940: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x089A6958u); aot_gpr_4 = (aot_gpr_29 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 334u, 0x089A6958u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6958u) goto L_089A6958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6958: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(208))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6968,8 +7616,21 @@ L_089A6988: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089A6B0Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 339u, 0x089A6B0Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6B0Cu) goto L_089A6B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6B0C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7064,8 +7725,21 @@ L_089A6B68: ctx.gpr[6] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A6BA0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 343u, 0x089A6BA0u, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6BA0u) goto L_089A6BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6BA0: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7252,8 +7926,21 @@ L_089A6C58: ctx.gpr[6] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089A6C7Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(296))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 345u, 0x089A6C7Cu, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6C7Cu) goto L_089A6C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6C7C: ctx.gpr[2] = (0u | 1u); goto L_089A6C80; @@ -7272,8 +7959,8 @@ L_089A6C80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(768)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A6CAC: @@ -7298,8 +7985,21 @@ L_089A6CAC: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089A6D24u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 348u, 0x089A6D24u, 0x0899906Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 118u, 0x0899906Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6D24u) goto L_089A6D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6D24: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7517,8 +8217,21 @@ L_089A6E84: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_31 = (0x089A6E90u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 355u, 0x089A6E90u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6E90u) goto L_089A6E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6E90: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -7582,8 +8295,21 @@ L_089A6EB0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); aot_gpr_31 = (0x089A6EF4u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 358u, 0x089A6EF4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6EF4u) goto L_089A6EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6EF4: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0]) & 0x7FFFFFFFu); aot_gpr_4 = (16434u << 16u); @@ -7624,8 +8350,21 @@ L_089A6F34: L_089A6F3C: aot_gpr_31 = (0x089A6F44u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 364u, 0x089A6F44u, 0x0898CB7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 252u, 0x0898CB7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6F44u) goto L_089A6F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6F44: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7641,8 +8380,21 @@ L_089A6F4C: L_089A6F54: aot_gpr_31 = (0x089A6F5Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 367u, 0x089A6F5Cu, 0x0898CE14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 309u, 0x0898CE14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6F5Cu) goto L_089A6F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6F5C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7658,8 +8410,21 @@ L_089A6F64: L_089A6F6C: aot_gpr_31 = (0x089A6F74u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 370u, 0x089A6F74u, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6F74u) goto L_089A6F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6F74: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7675,8 +8440,21 @@ L_089A6F7C: L_089A6F84: aot_gpr_31 = (0x089A6F8Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 373u, 0x089A6F8Cu, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A6F8Cu) goto L_089A6F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A6F8C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7807,8 +8585,21 @@ L_089A7050: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x089A706Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 390u, 0x089A706Cu, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A706Cu) goto L_089A706C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A706C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(88))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -7926,8 +8717,21 @@ L_089A7128: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(36), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x089A719Cu); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 400u, 0x089A719Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A719Cu) goto L_089A719C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A719C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0]) & 0x7FFFFFFFu); aot_gpr_4 = (15630u << 16u); @@ -7965,8 +8769,8 @@ L_089A71CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A7200: @@ -7975,8 +8779,21 @@ L_089A7200: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(584), aot_run_words); } aot_gpr_31 = (0x089A723Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 405u, 0x089A723Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A723Cu) goto L_089A723C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A723C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7986,8 +8803,21 @@ L_089A723C: } L_089A7244: aot_gpr_31 = (0x089A724Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 407u, 0x089A724Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A724Cu) goto L_089A724C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A724C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 3u); @@ -8172,8 +9002,21 @@ L_089A7320: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_31 = (0x089A7360u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 419u, 0x089A7360u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7360u) goto L_089A7360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7360: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -8248,8 +9091,21 @@ L_089A7380: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089A7400u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 422u, 0x089A7400u, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7400u) goto L_089A7400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7400: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -8292,8 +9148,21 @@ L_089A7400: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A742Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 423u, 0x089A742Cu, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A742Cu) goto L_089A742C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A742C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(0)))))); aot_gpr_5 = (0u | 16u); @@ -8322,8 +9191,21 @@ L_089A745C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A7478u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 426u, 0x089A7478u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7478u) goto L_089A7478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7478: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); @@ -8480,8 +9362,21 @@ L_089A755C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089A7588u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 434u, 0x089A7588u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7588u) goto L_089A7588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7588: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -8845,8 +9740,21 @@ L_089A7738: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(272))); aot_gpr_31 = (0x089A776Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(276))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 448u, 0x089A776Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A776Cu) goto L_089A776C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A776C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_20 = std::bit_cast(0u); @@ -8872,14 +9780,40 @@ L_089A7798: ctx.fpr[24] = aot_fpr_12 + aot_fpr_13; aot_gpr_31 = (0x089A77B0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 451u, 0x089A77B0u, 0x08998FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 113u, 0x08998FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A77B0u) goto L_089A77B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A77B0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089A77BCu); ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 452u, 0x089A77BCu, 0x08998FA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 112u, 0x08998FA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A77BCu) goto L_089A77BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A77BC: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[0]), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(256), aot_run_words); } @@ -8962,8 +9896,21 @@ L_089A77BC: ctx.gpr[6] = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089A7834u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 453u, 0x089A7834u, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7834u) goto L_089A7834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7834: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9003,8 +9950,21 @@ L_089A7834: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A7854u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 454u, 0x089A7854u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7854u) goto L_089A7854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7854: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(584), aot_run_words); @@ -9023,8 +9983,8 @@ L_089A7854: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(640)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A788C: @@ -9168,8 +10128,21 @@ L_089A7978: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(132), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089A7994u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 469u, 0x089A7994u, 0x0899977Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 189u, 0x0899977Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7994u) goto L_089A7994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7994: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9179,8 +10152,21 @@ L_089A7994: } L_089A799C: aot_gpr_31 = (0x089A79A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 471u, 0x089A79A4u, 0x08AAE934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 522u, 0x08AAE934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A79A4u) goto L_089A79A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A79A4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9245,8 +10231,21 @@ L_089A79CC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_31 = (0x089A7A0Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 476u, 0x089A7A0Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7A0Cu) goto L_089A7A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7A0C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -9403,8 +10402,21 @@ L_089A7B1C: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x089A7B6Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(296))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 486u, 0x089A7B6Cu, 0x08A2456Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 69u, 0x08A2456Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7B6Cu) goto L_089A7B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7B6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(112))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -9632,8 +10644,21 @@ L_089A7CD8: L_089A7CEC: aot_gpr_31 = (0x089A7CF4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 501u, 0x089A7CF4u, 0x089A8094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 6u, 0x089A8094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7CF4u) goto L_089A7CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7CF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9707,8 +10732,21 @@ L_089A7D60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A7D70u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 510u, 0x089A7D70u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7D70u) goto L_089A7D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7D70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(112))); aot_gpr_5 = (0u | 1u); @@ -9746,30 +10784,95 @@ L_089A7DA8: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(900))); aot_gpr_31 = (0x089A7DC8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 514u, 0x089A7DC8u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7DC8u) goto L_089A7DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7DC8: aot_gpr_31 = (0x089A7DD0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 515u, 0x089A7DD0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7DD0u) goto L_089A7DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7DD0: aot_gpr_31 = (0x089A7DD8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 516u, 0x089A7DD8u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7DD8u) goto L_089A7DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7DD8: aot_gpr_31 = (0x089A7DE0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 517u, 0x089A7DE0u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7DE0u) goto L_089A7DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7DE0: aot_gpr_4 = (ctx.gpr[18] + static_cast(816)); aot_gpr_5 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x089A7DF0u); ctx.gpr[6] = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 518u, 0x089A7DF0u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7DF0u) goto L_089A7DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7DF0: aot_gpr_4 = (aot_gpr_16 | 0u); if (static_cast(aot_gpr_4) > 0) { @@ -9949,8 +11052,21 @@ L_089A7EEC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A7F20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0104->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0104_entry, 531u, 0x089A7F20u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A7F20u) goto L_089A7F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A7F20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(112))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); diff --git a/profiles/vcs/generated/generated_unit_0105.cpp b/profiles/vcs/generated/generated_unit_0105.cpp index 5b673e3..0a285eb 100644 --- a/profiles/vcs/generated/generated_unit_0105.cpp +++ b/profiles/vcs/generated/generated_unit_0105.cpp @@ -935,6 +935,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089A8000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1021,8 +1045,21 @@ L_089A8040: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089A8074u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 5u, 0x089A8074u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8074u) goto L_089A8074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8074: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(496), aot_run_words); @@ -1035,8 +1072,8 @@ L_089A8074: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A8094: @@ -1258,14 +1295,40 @@ L_089A8214: ctx.gpr[21] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x089A8238u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 17u, 0x089A8238u, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8238u) goto L_089A8238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8238: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089A8244u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 18u, 0x089A8244u, 0x08B1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 179u, 0x08B1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8244u) goto L_089A8244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8244: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1639,8 +1702,8 @@ L_089A83E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A8464: @@ -1676,8 +1739,21 @@ L_089A8464: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089A8514u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 32u, 0x089A8514u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8514u) goto L_089A8514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8514: aot_gpr_4 = (ctx.gpr[23] + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1717,8 +1793,21 @@ L_089A856C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089A8578u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 34u, 0x089A8578u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8578u) goto L_089A8578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8578: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } @@ -1806,8 +1895,21 @@ L_089A85C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089A85F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 36u, 0x089A85F8u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A85F8u) goto L_089A85F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A85F8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1928,8 +2030,21 @@ L_089A8690: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089A86C8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 44u, 0x089A86C8u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A86C8u) goto L_089A86C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A86C8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1959,8 +2074,21 @@ L_089A86DC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089A8714u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 47u, 0x089A8714u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8714u) goto L_089A8714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8714: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (0u | 1u); @@ -2070,8 +2198,21 @@ L_089A87C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A87CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 54u, 0x089A87CCu, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A87CCu) goto L_089A87CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A87CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2112,8 +2253,21 @@ L_089A87FC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x089A8814u); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 59u, 0x089A8814u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8814u) goto L_089A8814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8814: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2153,8 +2307,21 @@ L_089A882C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x089A884Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 63u, 0x089A884Cu, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A884Cu) goto L_089A884C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A884C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2179,8 +2346,21 @@ L_089A8854: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6856), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089A8868u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 65u, 0x089A8868u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8868u) goto L_089A8868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8868: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6852), std::bit_cast(ctx.fpr[0])); goto L_089A886C; @@ -2485,8 +2665,8 @@ L_089A8980: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A89CC: @@ -2528,8 +2708,8 @@ L_089A8A54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A8A60: @@ -2585,8 +2765,8 @@ L_089A8A60: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A8A88: @@ -2630,8 +2810,8 @@ L_089A8A88: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A8ACC: @@ -2688,8 +2868,8 @@ L_089A8B28: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[18]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4504))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A8B40: @@ -2882,8 +3062,8 @@ L_089A8C7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A8C9C: @@ -2943,8 +3123,8 @@ L_089A8CE8: goto L_089A8CEC; L_089A8CEC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A8CF4: @@ -3020,8 +3200,21 @@ L_089A8D80: ctx.gpr[6] = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x089A8D90u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 124u, 0x089A8D90u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8D90u) goto L_089A8D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8D90: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(144))); @@ -3167,8 +3360,21 @@ L_089A8E4C: ctx.gpr[6] = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x089A8E5Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 132u, 0x089A8E5Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8E5Cu) goto L_089A8E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8E5C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(176))); @@ -3351,8 +3557,21 @@ L_089A8F24: ctx.gpr[6] = (aot_gpr_29 + static_cast(224)); aot_gpr_31 = (0x089A8F34u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 140u, 0x089A8F34u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A8F34u) goto L_089A8F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A8F34: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(224))); @@ -3572,8 +3791,8 @@ L_089A9018: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A9038: @@ -3749,8 +3968,21 @@ L_089A915C: L_089A916C: aot_gpr_31 = (0x089A9174u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 170u, 0x089A9174u, 0x08A42270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 405u, 0x08A42270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9174u) goto L_089A9174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9174: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3977,8 +4209,8 @@ L_089A92D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A92F4: @@ -4004,39 +4236,117 @@ L_089A92F4: L_089A9338: aot_gpr_31 = (0x089A9340u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 201u, 0x089A9340u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9340u) goto L_089A9340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9340: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A934Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 202u, 0x089A934Cu, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A934Cu) goto L_089A934C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A934C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A9358u); aot_gpr_5 = (0u | 59u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 203u, 0x089A9358u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9358u) goto L_089A9358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9358: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(615)))))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_5 | 16u); aot_gpr_31 = (0x089A936Cu); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(615), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 204u, 0x089A936Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A936Cu) goto L_089A936C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A936C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A9378u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 205u, 0x089A9378u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9378u) goto L_089A9378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9378: aot_gpr_31 = (0x089A9380u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 206u, 0x089A9380u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9380u) goto L_089A9380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9380: aot_gpr_4 = (aot_gpr_2 + static_cast(562)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -4053,8 +4363,21 @@ L_089A939C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A93A8u); aot_gpr_5 = (0u | 109u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 208u, 0x089A93A8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A93A8u) goto L_089A93A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A93A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4084,16 +4407,42 @@ L_089A93CC: aot_gpr_5 = (0u | 120u); aot_gpr_31 = (0x089A93DCu); ctx.gpr[6] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 212u, 0x089A93DCu, 0x0891108Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 294u, 0x0891108Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A93DCu) goto L_089A93DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A93DC: ctx.gpr[6] = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(2274))); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089A93F0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 213u, 0x089A93F0u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A93F0u) goto L_089A93F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A93F0: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4218,16 +4567,42 @@ L_089A94B4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089A94CCu); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 221u, 0x089A94CCu, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A94CCu) goto L_089A94CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A94CC: ctx.gpr[6] = (16512u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x089A94E0u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 222u, 0x089A94E0u, 0x08AF565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 188u, 0x08AF565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A94E0u) goto L_089A94E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A94E0: aot_gpr_31 = (0x089A94E8u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -4254,8 +4629,8 @@ L_089A94FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A9520: @@ -4273,8 +4648,21 @@ L_089A9520: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089A9558u); ctx.gpr[6] = (static_cast(static_cast(ctx.gpr[6]) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 226u, 0x089A9558u, 0x08ADCCC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 237u, 0x08ADCCC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9558u) goto L_089A9558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9558: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4301,8 +4689,21 @@ L_089A9584: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089A9594u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 229u, 0x089A9594u, 0x08ADCFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 282u, 0x08ADCFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9594u) goto L_089A9594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9594: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(468))); aot_gpr_5 = (256u << 16u); @@ -4318,8 +4719,8 @@ L_089A95A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A95B8: @@ -4333,8 +4734,21 @@ L_089A95B8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x089A95E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 232u, 0x089A95E8u, 0x08970464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 82u, 0x08970464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A95E8u) goto L_089A95E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A95E8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4351,8 +4765,21 @@ L_089A95F0: L_089A9600: aot_gpr_31 = (0x089A9608u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 235u, 0x089A9608u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9608u) goto L_089A9608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9608: aot_gpr_4 = (aot_gpr_2 | ctx.gpr[18]); if (aot_gpr_4 != 0u) { @@ -4370,13 +4797,39 @@ L_089A9614: L_089A961C: aot_gpr_31 = (0x089A9624u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 238u, 0x089A9624u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9624u) goto L_089A9624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9624: aot_gpr_31 = (0x089A962Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 239u, 0x089A962Cu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A962Cu) goto L_089A962C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A962C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4635,8 +5088,21 @@ L_089A97C4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A97DCu); ctx.gpr[8] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 274u, 0x089A97DCu, 0x089AEAD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 664u, 0x089AEAD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A97DCu) goto L_089A97DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A97DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4662,8 +5128,8 @@ L_089A97F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A9810: @@ -4674,8 +5140,21 @@ L_089A9810: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089A982Cu); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 278u, 0x089A982Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A982Cu) goto L_089A982C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A982C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4703,14 +5182,40 @@ L_089A9844: L_089A9850: aot_gpr_31 = (0x089A9858u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 282u, 0x089A9858u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9858u) goto L_089A9858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9858: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A9864u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 283u, 0x089A9864u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9864u) goto L_089A9864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9864: if (ctx.gpr[17] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); @@ -4760,8 +5265,21 @@ L_089A98A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A98B0u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 290u, 0x089A98B0u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A98B0u) goto L_089A98B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A98B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4774,8 +5292,21 @@ L_089A98B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A98C8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 292u, 0x089A98C8u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A98C8u) goto L_089A98C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A98C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4788,14 +5319,40 @@ L_089A98D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A98E0u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 294u, 0x089A98E0u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A98E0u) goto L_089A98E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A98E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A98ECu); aot_gpr_5 = (0u | 25u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 295u, 0x089A98ECu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A98ECu) goto L_089A98EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A98EC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4805,8 +5362,8 @@ L_089A98EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A9900: @@ -4835,8 +5392,21 @@ L_089A9924: L_089A9930: aot_gpr_31 = (0x089A9938u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 299u, 0x089A9938u, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9938u) goto L_089A9938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9938: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4866,8 +5436,21 @@ L_089A9958: L_089A9960: aot_gpr_31 = (0x089A9968u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 303u, 0x089A9968u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9968u) goto L_089A9968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9968: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4947,8 +5530,21 @@ L_089A99B8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089A99DCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 310u, 0x089A99DCu, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A99DCu) goto L_089A99DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A99DC: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5019,13 +5615,39 @@ L_089A9A14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A9A20u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 313u, 0x089A9A20u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9A20u) goto L_089A9A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9A20: aot_gpr_31 = (0x089A9A28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 314u, 0x089A9A28u, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9A28u) goto L_089A9A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9A28: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); @@ -5061,8 +5683,21 @@ L_089A9A54: L_089A9A60: aot_gpr_31 = (0x089A9A68u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 320u, 0x089A9A68u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9A68u) goto L_089A9A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9A68: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -5074,8 +5709,8 @@ L_089A9A68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A9A84: @@ -5101,8 +5736,21 @@ L_089A9A84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A9AB4u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 322u, 0x089A9AB4u, 0x089AF330u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 784u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 784u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 784u, 0x089AF330u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9AB4u) goto L_089A9AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9AB4: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5122,8 +5770,21 @@ L_089A9AB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A9AD0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 323u, 0x089A9AD0u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9AD0u) goto L_089A9AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9AD0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089A9ADCu); @@ -5139,8 +5800,8 @@ L_089A9ADC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A9AF0: @@ -5175,8 +5836,21 @@ L_089A9B3C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089A9B4Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 328u, 0x089A9B4Cu, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9B4Cu) goto L_089A9B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9B4C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -5323,8 +5997,21 @@ L_089A9BE4: L_089A9BF0: aot_gpr_31 = (0x089A9BF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 333u, 0x089A9BF8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9BF8u) goto L_089A9BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9BF8: aot_gpr_2 = (0u | 1u); { std::uint32_t aot_run_words[6]{}; @@ -5338,8 +6025,8 @@ L_089A9BF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A9C1C: @@ -5397,8 +6084,21 @@ L_089A9C9C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089A9CB0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 338u, 0x089A9CB0u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9CB0u) goto L_089A9CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9CB0: aot_gpr_4 = (16320u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6087,8 +6787,21 @@ L_089A9F78: L_089A9F84: aot_gpr_31 = (0x089A9F8Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 363u, 0x089A9F8Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089A9F8Cu) goto L_089A9F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089A9F8C: aot_gpr_2 = (0u | 1u); { std::uint32_t aot_run_words[12]{}; @@ -6108,8 +6821,8 @@ L_089A9F8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089A9FC8: @@ -6126,8 +6839,21 @@ L_089A9FC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(220), aot_gpr_31); aot_gpr_31 = (0x089AA000u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 365u, 0x089AA000u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA000u) goto L_089AA000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA000: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(624))); aot_gpr_5 = (16256u << 16u); @@ -6206,8 +6932,21 @@ L_089AA06C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AA080u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 373u, 0x089AA080u, 0x08907020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 682u, 0x08907020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA080u) goto L_089AA080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA080: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6427,8 +7166,21 @@ L_089AA1E8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089AA200u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 390u, 0x089AA200u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA200u) goto L_089AA200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA200: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); @@ -6439,8 +7191,21 @@ L_089AA200: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AA224u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 391u, 0x089AA224u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA224u) goto L_089AA224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA224: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6461,8 +7226,21 @@ L_089AA234: L_089AA240: aot_gpr_31 = (0x089AA248u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 394u, 0x089AA248u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA248u) goto L_089AA248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA248: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(192), aot_run_words); @@ -6477,8 +7255,8 @@ L_089AA248: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AA270: @@ -6501,8 +7279,21 @@ L_089AA270: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(280), aot_gpr_31); aot_gpr_31 = (0x089AA2C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 396u, 0x089AA2C0u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA2C0u) goto L_089AA2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA2C0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(852))); ctx.gpr[6] = (0u | 6u); @@ -6628,8 +7419,21 @@ L_089AA378: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089AA384u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 411u, 0x089AA384u, 0x08907020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 682u, 0x08907020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA384u) goto L_089AA384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA384: aot_gpr_4 = (0u | 20u); { const bool branch_taken = ctx.gpr[30] != aot_gpr_4; @@ -6806,8 +7610,21 @@ L_089AA45C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AA46Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 425u, 0x089AA46Cu, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA46Cu) goto L_089AA46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA46C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -6918,8 +7735,21 @@ L_089AA4D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AA4F8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 434u, 0x089AA4F8u, 0x08B01804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 419u, 0x08B01804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA4F8u) goto L_089AA4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA4F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6936,8 +7766,21 @@ L_089AA500: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089AA520u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 436u, 0x089AA520u, 0x089B1C20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 466u, 0x089B1C20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA520u) goto L_089AA520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA520: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7045,8 +7888,21 @@ L_089AA570: L_089AA57C: aot_gpr_31 = (0x089AA584u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 440u, 0x089AA584u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA584u) goto L_089AA584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA584: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(240), aot_run_words); @@ -7064,8 +7920,8 @@ L_089AA584: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AA5B8: @@ -7098,15 +7954,41 @@ L_089AA5E4: L_089AA5F0: aot_gpr_31 = (0x089AA5F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 446u, 0x089AA5F8u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA5F8u) goto L_089AA5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA5F8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AA608u); ctx.gpr[6] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 447u, 0x089AA608u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA608u) goto L_089AA608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA608: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7122,8 +8004,21 @@ L_089AA610: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AA62Cu); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 449u, 0x089AA62Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA62Cu) goto L_089AA62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA62C: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -7196,8 +8091,21 @@ L_089AA68C: L_089AA69C: aot_gpr_31 = (0x089AA6A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 459u, 0x089AA6A4u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA6A4u) goto L_089AA6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA6A4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(852))); ctx.gpr[6] = (0u | 6u); @@ -7284,8 +8192,21 @@ L_089AA748: L_089AA750: aot_gpr_31 = (0x089AA758u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 469u, 0x089AA758u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA758u) goto L_089AA758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA758: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7375,8 +8296,8 @@ L_089AA7E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AA7FC: @@ -7391,8 +8312,21 @@ L_089AA7FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), aot_gpr_31); aot_gpr_31 = (0x089AA828u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 483u, 0x089AA828u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA828u) goto L_089AA828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA828: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(48)))))); aot_gpr_5 = (0u | 64u); @@ -7529,8 +8463,21 @@ L_089AA8F8: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x089AA914u); ctx.gpr[7] = (0u | 120u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 494u, 0x089AA914u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA914u) goto L_089AA914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA914: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AA920u); @@ -7570,8 +8517,21 @@ L_089AA94C: L_089AA958: aot_gpr_31 = (0x089AA960u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 500u, 0x089AA960u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA960u) goto L_089AA960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA960: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7645,8 +8605,21 @@ L_089AA99C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AA9A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 503u, 0x089AA9A8u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA9A8u) goto L_089AA9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA9A8: aot_fpr_12 = std::bit_cast(0u); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12), std::bit_cast(aot_fpr_12)}; @@ -7654,8 +8627,21 @@ L_089AA9A8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AA9C4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 504u, 0x089AA9C4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AA9C4u) goto L_089AA9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AA9C4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -7703,8 +8689,21 @@ L_089AAA18: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AAA28u); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(2256), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 509u, 0x089AAA28u, 0x08907AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 839u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 839u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 839u, 0x08907AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAA28u) goto L_089AAA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAA28: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(48)))))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -7730,8 +8729,21 @@ L_089AAA44: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x089AAA60u); ctx.gpr[7] = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 512u, 0x089AAA60u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAA60u) goto L_089AAA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAA60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7747,8 +8759,21 @@ L_089AAA68: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AAA84u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 514u, 0x089AAA84u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAA84u) goto L_089AAA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAA84: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -7777,19 +8802,58 @@ L_089AAAB0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AAABCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 519u, 0x089AAABCu, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAABCu) goto L_089AAABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAABC: aot_gpr_31 = (0x089AAAC4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 520u, 0x089AAAC4u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAAC4u) goto L_089AAAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAAC4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AAAD0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 521u, 0x089AAAD0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAAD0u) goto L_089AAAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAAD0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AAADCu); @@ -7824,8 +8888,21 @@ L_089AAB0C: L_089AAB18: aot_gpr_31 = (0x089AAB20u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 525u, 0x089AAB20u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAB20u) goto L_089AAB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAB20: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -7837,8 +8914,8 @@ L_089AAB20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AAB3C: @@ -7848,8 +8925,21 @@ L_089AAB3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), aot_gpr_31); aot_gpr_31 = (0x089AAB54u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 527u, 0x089AAB54u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAB54u) goto L_089AAB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAB54: ctx.gpr[8] = (17530u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); @@ -7858,8 +8948,21 @@ L_089AAB54: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x089AAB70u); ctx.gpr[7] = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 528u, 0x089AAB70u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAB70u) goto L_089AAB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAB70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AAB7Cu); @@ -7876,19 +8979,58 @@ L_089AAB88: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AAB94u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 531u, 0x089AAB94u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAB94u) goto L_089AAB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAB94: aot_gpr_31 = (0x089AAB9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 532u, 0x089AAB9Cu, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAB9Cu) goto L_089AAB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAB9C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AABA8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 533u, 0x089AABA8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AABA8u) goto L_089AABA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AABA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AABB4u); @@ -7922,15 +9064,28 @@ L_089AABE4: } L_089AABF0: aot_gpr_31 = (0x089AABF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 537u, 0x089AABF8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AABF8u) goto L_089AABF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AABF8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AAC08: @@ -8114,8 +9269,8 @@ L_089AAD30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AAD48: @@ -8332,8 +9487,21 @@ L_089AAE74: L_089AAE7C: aot_gpr_31 = (0x089AAE84u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 592u, 0x089AAE84u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAE84u) goto L_089AAE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAE84: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8344,8 +9512,21 @@ L_089AAE84: L_089AAE8C: aot_gpr_31 = (0x089AAE94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 594u, 0x089AAE94u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAE94u) goto L_089AAE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAE94: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8356,8 +9537,21 @@ L_089AAE94: L_089AAE9C: aot_gpr_31 = (0x089AAEA4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 596u, 0x089AAEA4u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAEA4u) goto L_089AAEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAEA4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8368,8 +9562,21 @@ L_089AAEA4: L_089AAEAC: aot_gpr_31 = (0x089AAEB4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 598u, 0x089AAEB4u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAEB4u) goto L_089AAEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAEB4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8380,8 +9587,21 @@ L_089AAEB4: L_089AAEBC: aot_gpr_31 = (0x089AAEC4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 600u, 0x089AAEC4u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAEC4u) goto L_089AAEC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAEC4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8392,8 +9612,21 @@ L_089AAEC4: L_089AAECC: aot_gpr_31 = (0x089AAED4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 602u, 0x089AAED4u, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAED4u) goto L_089AAED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAED4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8404,8 +9637,21 @@ L_089AAED4: L_089AAEDC: aot_gpr_31 = (0x089AAEE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 604u, 0x089AAEE4u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAEE4u) goto L_089AAEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAEE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8420,8 +9666,21 @@ L_089AAEEC: L_089AAEF4: aot_gpr_31 = (0x089AAEFCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 607u, 0x089AAEFCu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AAEFCu) goto L_089AAEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AAEFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8471,8 +9730,8 @@ L_089AAF40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AAF58: @@ -8575,8 +9834,21 @@ L_089AB004: aot_gpr_4 = (ctx.gpr[17] + static_cast(944)); aot_gpr_31 = (0x089AB020u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 624u, 0x089AB020u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB020u) goto L_089AB020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB020: { const bool branch_taken = aot_gpr_2 != aot_gpr_16; if (branch_taken) { @@ -8588,8 +9860,21 @@ L_089AB028: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AB034u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 626u, 0x089AB034u, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB034u) goto L_089AB034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB034: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8599,8 +9884,8 @@ L_089AB034: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB048: @@ -8617,8 +9902,21 @@ L_089AB048: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089AB07Cu); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 628u, 0x089AB07Cu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB07Cu) goto L_089AB07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB07C: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -8730,8 +10028,8 @@ L_089AB144: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB158: @@ -8754,8 +10052,21 @@ L_089AB178: L_089AB184: aot_gpr_31 = (0x089AB18Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 645u, 0x089AB18Cu, 0x08A420BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 378u, 0x08A420BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB18Cu) goto L_089AB18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB18C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8784,8 +10095,21 @@ L_089AB1AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB1B8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 649u, 0x089AB1B8u, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB1B8u) goto L_089AB1B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB1B8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -8798,8 +10122,21 @@ L_089AB1C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB1CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 651u, 0x089AB1CCu, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB1CCu) goto L_089AB1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB1CC: aot_gpr_2 = (0u | 0u); goto L_089AB1D0; @@ -8813,15 +10150,15 @@ L_089AB1D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB1E8: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-13368), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB1F0: @@ -8845,8 +10182,21 @@ L_089AB218: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AB228u); ctx.gpr[6] = (0u | 153u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 656u, 0x089AB228u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB228u) goto L_089AB228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB228: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8873,8 +10223,21 @@ L_089AB24C: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x089AB268u); ctx.gpr[7] = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 659u, 0x089AB268u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB268u) goto L_089AB268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB268: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_5 = (0u + static_cast(-9)); @@ -8932,8 +10295,21 @@ L_089AB2C4: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x089AB2DCu); ctx.gpr[7] = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 665u, 0x089AB2DCu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB2DCu) goto L_089AB2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB2DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_5 = (0u + static_cast(-9)); @@ -8955,8 +10331,21 @@ L_089AB308: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AB314u); ctx.gpr[6] = (0u | 153u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 667u, 0x089AB314u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB314u) goto L_089AB314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB314: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8983,8 +10372,21 @@ L_089AB338: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x089AB354u); ctx.gpr[7] = (0u | 153u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 670u, 0x089AB354u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB354u) goto L_089AB354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB354: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_4 = (aot_gpr_4 | 8192u); @@ -9029,8 +10431,8 @@ L_089AB394: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB3AC: @@ -9102,8 +10504,21 @@ L_089AB42C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB440u); ctx.gpr[6] = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 683u, 0x089AB440u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB440u) goto L_089AB440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB440: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9137,8 +10552,21 @@ L_089AB47C: ctx.gpr[6] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089AB488u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 687u, 0x089AB488u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB488u) goto L_089AB488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB488: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089AB48C; @@ -9173,8 +10601,21 @@ L_089AB4BC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089AB4CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 692u, 0x089AB4CCu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB4CCu) goto L_089AB4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB4CC: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089AB4D0; @@ -9200,8 +10641,8 @@ L_089AB4E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB4FC: @@ -9214,8 +10655,21 @@ L_089AB4FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089AB520u); ctx.gpr[6] = (0u | 153u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 697u, 0x089AB520u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB520u) goto L_089AB520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB520: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9229,8 +10683,21 @@ L_089AB52C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB53Cu); ctx.gpr[6] = (0u | 154u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 699u, 0x089AB53Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB53Cu) goto L_089AB53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB53C: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089AB540; @@ -9246,8 +10713,21 @@ L_089AB548: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB558u); ctx.gpr[6] = (0u | 155u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 702u, 0x089AB558u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB558u) goto L_089AB558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB558: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089AB55C; @@ -9289,8 +10769,8 @@ L_089AB594: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB5A8: @@ -9421,14 +10901,40 @@ L_089AB678: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x089AB684u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 723u, 0x089AB684u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB684u) goto L_089AB684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB684: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1784))); aot_gpr_31 = (0x089AB690u); aot_gpr_5 = (0u | 30000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 724u, 0x089AB690u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB690u) goto L_089AB690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB690: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1914))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -9451,8 +10957,8 @@ L_089AB6A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB6C0: @@ -9483,8 +10989,21 @@ L_089AB6F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB704u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 729u, 0x089AB704u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB704u) goto L_089AB704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB704: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 3u); @@ -9617,8 +11136,8 @@ L_089AB7B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB7C8: @@ -9669,8 +11188,21 @@ L_089AB828: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x089AB838u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 747u, 0x089AB838u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB838u) goto L_089AB838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB838: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9689,8 +11221,21 @@ L_089AB850: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB860u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 750u, 0x089AB860u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB860u) goto L_089AB860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB860: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9709,8 +11254,21 @@ L_089AB878: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB888u); ctx.gpr[6] = (0u | 203u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 753u, 0x089AB888u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB888u) goto L_089AB888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB888: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9733,8 +11291,8 @@ L_089AB8A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB8B4: @@ -9744,8 +11302,21 @@ L_089AB8B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089AB8CCu); aot_gpr_5 = (0u | 8192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 757u, 0x089AB8CCu, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB8CCu) goto L_089AB8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB8CC: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9765,8 +11336,21 @@ L_089AB8DC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_gpr_31 = (0x089AB8F4u); aot_gpr_5 = (0u | 8192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 760u, 0x089AB8F4u, 0x0886D53Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 217u, 0x0886D53Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB8F4u) goto L_089AB8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB8F4: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9780,8 +11364,8 @@ L_089AB900: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB910: @@ -9811,8 +11395,8 @@ L_089AB93C: goto L_089AB940; L_089AB940: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AB948: @@ -9833,8 +11417,21 @@ L_089AB96C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AB984u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 768u, 0x089AB984u, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB984u) goto L_089AB984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB984: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_31 = (0x089AB990u); @@ -9870,22 +11467,61 @@ L_089AB9A8: L_089AB9BC: aot_gpr_31 = (0x089AB9C4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 773u, 0x089AB9C4u, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB9C4u) goto L_089AB9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB9C4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AB9D0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 774u, 0x089AB9D0u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB9D0u) goto L_089AB9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB9D0: aot_gpr_4 = (0u | 18u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2196), aot_gpr_4); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089AB9E4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 775u, 0x089AB9E4u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AB9E4u) goto L_089AB9E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AB9E4: aot_gpr_31 = (0x089AB9ECu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -9908,8 +11544,8 @@ L_089ABA00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ABA14: @@ -9997,8 +11633,21 @@ L_089ABAA8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089ABAD0u); ctx.gpr[6] = (0u | 187u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 789u, 0x089ABAD0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABAD0u) goto L_089ABAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABAD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10048,8 +11697,21 @@ L_089ABB18: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089ABB40u); ctx.gpr[6] = (0u | 188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 795u, 0x089ABB40u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABB40u) goto L_089ABB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABB40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10099,8 +11761,21 @@ L_089ABB88: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089ABBB0u); ctx.gpr[6] = (0u | 188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 801u, 0x089ABBB0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABBB0u) goto L_089ABBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABBB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10150,8 +11825,21 @@ L_089ABBF8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089ABC20u); ctx.gpr[6] = (0u | 188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 807u, 0x089ABC20u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABC20u) goto L_089ABC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABC20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10203,8 +11891,21 @@ L_089ABC68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089ABC98u); ctx.gpr[6] = (0u | 207u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 813u, 0x089ABC98u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABC98u) goto L_089ABC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABC98: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -10212,8 +11913,21 @@ L_089ABC98: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089ABCB0u); ctx.gpr[6] = (0u | 33u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 814u, 0x089ABCB0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABCB0u) goto L_089ABCB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABCB0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -10221,14 +11935,40 @@ L_089ABCB0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089ABCC8u); ctx.gpr[6] = (0u | 34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 815u, 0x089ABCC8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABCC8u) goto L_089ABCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABCC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089ABCD4u); aot_gpr_5 = (0u | 138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 816u, 0x089ABCD4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABCD4u) goto L_089ABCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABCD4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -10239,8 +11979,8 @@ L_089ABCD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ABCEC: @@ -10346,8 +12086,21 @@ L_089ABDAC: ctx.gpr[6] = (aot_gpr_29 + static_cast(352)); aot_gpr_31 = (0x089ABDBCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 826u, 0x089ABDBCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABDBCu) goto L_089ABDBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABDBC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(352))); @@ -10445,8 +12198,21 @@ L_089ABE44: ctx.gpr[6] = (aot_gpr_29 + static_cast(384)); aot_gpr_31 = (0x089ABE54u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 833u, 0x089ABE54u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABE54u) goto L_089ABE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABE54: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(384))); @@ -10457,8 +12223,21 @@ L_089ABE60: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089ABE70u); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 835u, 0x089ABE70u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABE70u) goto L_089ABE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABE70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10557,8 +12336,21 @@ L_089ABF00: ctx.gpr[6] = (aot_gpr_29 + static_cast(385)); aot_gpr_31 = (0x089ABF10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 845u, 0x089ABF10u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABF10u) goto L_089ABF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABF10: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(385))); @@ -10656,8 +12448,21 @@ L_089ABF98: ctx.gpr[6] = (aot_gpr_29 + static_cast(416)); aot_gpr_31 = (0x089ABFA8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 852u, 0x089ABFA8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABFA8u) goto L_089ABFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABFA8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(416))); @@ -10668,8 +12473,21 @@ L_089ABFB4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089ABFC4u); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0105->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0105_entry, 854u, 0x089ABFC4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ABFC4u) goto L_089ABFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ABFC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0106.cpp b/profiles/vcs/generated/generated_unit_0106.cpp index 8aa1c5f..6087aa4 100644 --- a/profiles/vcs/generated/generated_unit_0106.cpp +++ b/profiles/vcs/generated/generated_unit_0106.cpp @@ -1018,6 +1018,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089AC000u; + if (local_delta_v813 >= 16328u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1096,8 +1120,21 @@ L_089AC054: aot_gpr_6 = (aot_gpr_29 + static_cast(417)); aot_gpr_31 = (0x089AC064u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 7u, 0x089AC064u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC064u) goto L_089AC064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC064: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(417))); @@ -1110,8 +1147,21 @@ L_089AC070: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AC088u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 9u, 0x089AC088u, 0x089A8A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 76u, 0x089A8A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC088u) goto L_089AC088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC088: ctx.gpr[19] = (aot_gpr_29 + static_cast(256)); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); @@ -1132,8 +1182,21 @@ L_089AC088: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AC0A8u); aot_gpr_6 = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 10u, 0x089AC0A8u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC0A8u) goto L_089AC0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC0A8: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1176,8 +1239,21 @@ L_089AC0A8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AC0D4u); aot_gpr_6 = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 11u, 0x089AC0D4u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC0D4u) goto L_089AC0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC0D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AC0E0u); @@ -1198,8 +1274,21 @@ L_089AC0EC: aot_gpr_6 = (aot_gpr_29 + static_cast(448)); aot_gpr_31 = (0x089AC0FCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 14u, 0x089AC0FCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC0FCu) goto L_089AC0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC0FC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(448))); @@ -1210,8 +1299,21 @@ L_089AC108: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AC118u); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 16u, 0x089AC118u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC118u) goto L_089AC118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC118: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1310,8 +1412,21 @@ L_089AC1A8: aot_gpr_6 = (aot_gpr_29 + static_cast(449)); aot_gpr_31 = (0x089AC1B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 26u, 0x089AC1B8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC1B8u) goto L_089AC1B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC1B8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(449))); @@ -1324,8 +1439,21 @@ L_089AC1C4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AC1DCu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 28u, 0x089AC1DCu, 0x089A8A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 76u, 0x089A8A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC1DCu) goto L_089AC1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC1DC: ctx.gpr[19] = (aot_gpr_29 + static_cast(288)); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); @@ -1346,8 +1474,21 @@ L_089AC1DC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AC1FCu); aot_gpr_6 = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 29u, 0x089AC1FCu, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC1FCu) goto L_089AC1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC1FC: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1390,8 +1531,21 @@ L_089AC1FC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AC228u); aot_gpr_6 = (0u | 120u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 30u, 0x089AC228u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC228u) goto L_089AC228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC228: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AC234u); @@ -1412,8 +1566,21 @@ L_089AC240: aot_gpr_6 = (aot_gpr_29 + static_cast(480)); aot_gpr_31 = (0x089AC250u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 33u, 0x089AC250u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC250u) goto L_089AC250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC250: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(480))); @@ -1424,8 +1591,21 @@ L_089AC25C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AC26Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 35u, 0x089AC26Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC26Cu) goto L_089AC26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC26C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1515,8 +1695,21 @@ L_089AC2EC: aot_gpr_6 = (aot_gpr_29 + static_cast(481)); aot_gpr_31 = (0x089AC2FCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 44u, 0x089AC2FCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC2FCu) goto L_089AC2FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC2FC: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(481))); @@ -1529,8 +1722,21 @@ L_089AC308: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AC320u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 46u, 0x089AC320u, 0x089A8A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 76u, 0x089A8A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC320u) goto L_089AC320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC320: ctx.gpr[18] = (aot_gpr_29 + static_cast(320)); { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); @@ -1551,8 +1757,21 @@ L_089AC320: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AC340u); aot_gpr_6 = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 47u, 0x089AC340u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC340u) goto L_089AC340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC340: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1602,8 +1821,21 @@ L_089AC368: aot_gpr_6 = (aot_gpr_29 + static_cast(512)); aot_gpr_31 = (0x089AC378u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 49u, 0x089AC378u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC378u) goto L_089AC378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC378: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(512))); @@ -1627,8 +1859,21 @@ L_089AC3A4: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AC3B4u); aot_gpr_6 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 52u, 0x089AC3B4u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC3B4u) goto L_089AC3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC3B4: aot_gpr_4 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x089AC3C0u); @@ -1647,8 +1892,21 @@ L_089AC3C8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AC3D8u); aot_gpr_6 = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 55u, 0x089AC3D8u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC3D8u) goto L_089AC3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC3D8: aot_gpr_4 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x089AC3E4u); @@ -1682,8 +1940,21 @@ L_089AC41C: aot_gpr_6 = (aot_gpr_29 + static_cast(513)); aot_gpr_31 = (0x089AC42Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 59u, 0x089AC42Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC42Cu) goto L_089AC42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC42C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(513))); @@ -1694,8 +1965,21 @@ L_089AC438: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AC448u); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 61u, 0x089AC448u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC448u) goto L_089AC448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC448: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1870,8 +2154,21 @@ L_089AC4EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089AC56Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 64u, 0x089AC56Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC56Cu) goto L_089AC56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC56C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1899,8 +2196,21 @@ L_089AC584: L_089AC590: aot_gpr_31 = (0x089AC598u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 68u, 0x089AC598u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC598u) goto L_089AC598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC598: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1937,8 +2247,21 @@ L_089AC5A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089AC5E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 70u, 0x089AC5E4u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC5E4u) goto L_089AC5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC5E4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1966,8 +2289,21 @@ L_089AC5FC: L_089AC608: aot_gpr_31 = (0x089AC610u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 74u, 0x089AC610u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC610u) goto L_089AC610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC610: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -1996,8 +2332,21 @@ L_089AC628: L_089AC634: aot_gpr_31 = (0x089AC63Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 78u, 0x089AC63Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC63Cu) goto L_089AC63C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC63C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -2018,8 +2367,8 @@ L_089AC644: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(640)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AC664: @@ -2082,8 +2431,21 @@ L_089AC6E4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089AC6F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 87u, 0x089AC6F0u, 0x08B012BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 339u, 0x08B012BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC6F0u) goto L_089AC6F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC6F0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2224,8 +2586,21 @@ L_089AC7D0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AC7F0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 105u, 0x089AC7F0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC7F0u) goto L_089AC7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC7F0: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -2526,8 +2901,21 @@ L_089AC990: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AC9A8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 144u, 0x089AC9A8u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AC9A8u) goto L_089AC9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AC9A8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(563))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); @@ -2586,8 +2974,21 @@ L_089AC9F8: L_089ACA00: aot_gpr_31 = (0x089ACA08u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 153u, 0x089ACA08u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACA08u) goto L_089ACA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACA08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2693,8 +3094,21 @@ L_089ACA90: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089ACAA8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 164u, 0x089ACAA8u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACAA8u) goto L_089ACAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACAA8: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3260,8 +3674,21 @@ L_089ACDB8: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089ACDD0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 238u, 0x089ACDD0u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACDD0u) goto L_089ACDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACDD0: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3325,8 +3752,21 @@ L_089ACE24: ctx.gpr[19] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089ACE38u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 245u, 0x089ACE38u, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACE38u) goto L_089ACE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACE38: aot_gpr_4 = (0u | 1u); { const bool branch_taken = 0u == 0u; @@ -3441,8 +3881,21 @@ L_089ACECC: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089ACEE4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 261u, 0x089ACEE4u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACEE4u) goto L_089ACEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACEE4: aot_gpr_31 = (0x089ACEECu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACEECu) goto L_089ACEEC; @@ -3516,8 +3969,21 @@ L_089ACF38: L_089ACF4C: aot_gpr_31 = (0x089ACF54u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 266u, 0x089ACF54u, 0x08B00DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 233u, 0x08B00DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACF54u) goto L_089ACF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACF54: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3529,8 +3995,21 @@ L_089ACF5C: aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast(2274), static_cast(ctx.gpr[19])); aot_gpr_31 = (0x089ACF68u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 268u, 0x089ACF68u, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACF68u) goto L_089ACF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACF68: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(165), static_cast(aot_gpr_4)); @@ -3553,8 +4032,21 @@ L_089ACF88: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089ACF94u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 272u, 0x089ACF94u, 0x0890BE58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 983u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 983u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 983u, 0x0890BE58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACF94u) goto L_089ACF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACF94: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089ACFA0u); @@ -3578,8 +4070,21 @@ L_089ACFB4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089ACFC0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 276u, 0x089ACFC0u, 0x0890BE58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 983u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 983u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 983u, 0x0890BE58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACFC0u) goto L_089ACFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACFC0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089ACFCCu); @@ -3594,30 +4099,82 @@ L_089ACFCC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089ACFE8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 278u, 0x089ACFE8u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACFE8u) goto L_089ACFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACFE8: aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast(2274), static_cast(ctx.gpr[19])); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089ACFF8u); aot_gpr_5 = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 279u, 0x089ACFF8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ACFF8u) goto L_089ACFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ACFF8: aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(2274))); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089AD008u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 280u, 0x089AD008u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD008u) goto L_089AD008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD008: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AD01Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 281u, 0x089AD01Cu, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD01Cu) goto L_089AD01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD01C: aot_gpr_31 = (0x089AD024u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -3659,14 +4216,40 @@ L_089AD054: L_089AD060: aot_gpr_31 = (0x089AD068u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 288u, 0x089AD068u, 0x08911B7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 451u, 0x08911B7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD068u) goto L_089AD068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD068: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AD074u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 289u, 0x089AD074u, 0x089AB8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 756u, 0x089AB8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD074u) goto L_089AD074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD074: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AD080u); @@ -3681,8 +4264,21 @@ L_089AD080: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AD09Cu); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 291u, 0x089AD09Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD09Cu) goto L_089AD09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD09C: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(535), static_cast(aot_gpr_4)); @@ -3697,8 +4293,21 @@ L_089AD0B0: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089AD0BCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 293u, 0x089AD0BCu, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD0BCu) goto L_089AD0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD0BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3749,8 +4358,21 @@ L_089AD114: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089AD120u); aot_gpr_5 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 299u, 0x089AD120u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD120u) goto L_089AD120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD120: aot_gpr_31 = (0x089AD128u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -3767,8 +4389,21 @@ L_089AD128: L_089AD13C: aot_gpr_31 = (0x089AD144u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 302u, 0x089AD144u, 0x0890EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 697u, 0x0890EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD144u) goto L_089AD144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD144: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3779,8 +4414,21 @@ L_089AD144: L_089AD14C: aot_gpr_31 = (0x089AD154u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 304u, 0x089AD154u, 0x08B02090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 542u, 0x08B02090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD154u) goto L_089AD154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD154: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3799,8 +4447,21 @@ L_089AD164: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089AD170u); aot_gpr_5 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 307u, 0x089AD170u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD170u) goto L_089AD170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD170: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3812,8 +4473,21 @@ L_089AD178: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089AD184u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 309u, 0x089AD184u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD184u) goto L_089AD184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD184: { const bool branch_taken = ctx.gpr[30] != 0u; if (branch_taken) { @@ -3914,8 +4588,21 @@ L_089AD234: L_089AD238: aot_gpr_31 = (0x089AD240u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 324u, 0x089AD240u, 0x0890EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 697u, 0x0890EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD240u) goto L_089AD240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD240: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(456))); aot_gpr_5 = (65520u << 16u); @@ -3939,8 +4626,21 @@ L_089AD264: L_089AD274: aot_gpr_31 = (0x089AD27Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 327u, 0x089AD27Cu, 0x08910F00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 264u, 0x08910F00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD27Cu) goto L_089AD27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD27C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); { const bool branch_taken = ctx.gpr[18] != aot_gpr_4; @@ -3996,8 +4696,8 @@ L_089AD2BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AD2F0: @@ -4179,8 +4879,21 @@ L_089AD438: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089AD450u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 355u, 0x089AD450u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD450u) goto L_089AD450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD450: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4297,8 +5010,21 @@ L_089AD518: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x089AD52Cu); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 369u, 0x089AD52Cu, 0x0884A390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 415u, 0x0884A390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD52Cu) goto L_089AD52C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD52C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4312,8 +5038,21 @@ L_089AD534: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x089AD548u); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 371u, 0x089AD548u, 0x0884A390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 415u, 0x0884A390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD548u) goto L_089AD548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD548: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4371,8 +5110,21 @@ L_089AD598: L_089AD5B0: aot_gpr_31 = (0x089AD5B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 379u, 0x089AD5B8u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD5B8u) goto L_089AD5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD5B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4632,8 +5384,21 @@ L_089AD794: L_089AD7B0: aot_gpr_31 = (0x089AD7B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 405u, 0x089AD7B8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD7B8u) goto L_089AD7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD7B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4647,8 +5412,21 @@ L_089AD7C0: aot_gpr_6 = (0u | 28u); aot_gpr_31 = (0x089AD7D4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 407u, 0x089AD7D4u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD7D4u) goto L_089AD7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD7D4: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(84), aot_run_words); @@ -4664,8 +5442,8 @@ L_089AD7D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AD800: @@ -4676,8 +5454,21 @@ L_089AD800: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089AD828u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 409u, 0x089AD828u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD828u) goto L_089AD828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD828: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4701,19 +5492,58 @@ L_089AD828: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AD854u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 410u, 0x089AD854u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD854u) goto L_089AD854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD854: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AD860u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 411u, 0x089AD860u, 0x089AB8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 756u, 0x089AB8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD860u) goto L_089AD860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD860: aot_gpr_31 = (0x089AD868u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 412u, 0x089AD868u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD868u) goto L_089AD868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD868: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4751,8 +5581,21 @@ L_089AD870: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089AD8B8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 414u, 0x089AD8B8u, 0x089A8A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 76u, 0x089A8A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD8B8u) goto L_089AD8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD8B8: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4777,8 +5620,21 @@ L_089AD8B8: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089AD8E8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 415u, 0x089AD8E8u, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD8E8u) goto L_089AD8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD8E8: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4825,8 +5681,21 @@ L_089AD940: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089AD954u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 420u, 0x089AD954u, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AD954u) goto L_089AD954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AD954: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4984,8 +5853,21 @@ L_089AD97C: L_089ADA78: aot_gpr_31 = (0x089ADA80u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 423u, 0x089ADA80u, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADA80u) goto L_089ADA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADA80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4997,19 +5879,58 @@ L_089ADA88: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089ADA94u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 425u, 0x089ADA94u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADA94u) goto L_089ADA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADA94: aot_gpr_31 = (0x089ADA9Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 426u, 0x089ADA9Cu, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADA9Cu) goto L_089ADA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADA9C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089ADAA8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 427u, 0x089ADAA8u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADAA8u) goto L_089ADAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADAA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5030,8 +5951,21 @@ L_089ADAC4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089ADAD8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 430u, 0x089ADAD8u, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADAD8u) goto L_089ADAD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADAD8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_gpr_4 = (0u | 1u); @@ -5070,8 +6004,21 @@ L_089ADB04: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089ADB60u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 432u, 0x089ADB60u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADB60u) goto L_089ADB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADB60: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (16261u << 16u); @@ -5105,8 +6052,21 @@ L_089ADBA0: aot_gpr_5 = (ctx.gpr[16] + static_cast(320)); aot_gpr_31 = (0x089ADBACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 436u, 0x089ADBACu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADBACu) goto L_089ADBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADBAC: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(224), aot_run_words); @@ -5118,8 +6078,8 @@ L_089ADBAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ADBC8: @@ -5144,8 +6104,21 @@ L_089ADBF8: aot_gpr_6 = (aot_gpr_5 << 24u); aot_gpr_31 = (0x089ADC14u); aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 439u, 0x089ADC14u, 0x08ADCCC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 237u, 0x08ADCCC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADC14u) goto L_089ADC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADC14: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5173,8 +6146,21 @@ L_089ADC44: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(104))); aot_gpr_31 = (0x089ADC50u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 442u, 0x089ADC50u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADC50u) goto L_089ADC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADC50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5187,14 +6173,40 @@ L_089ADC5C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADC68u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 444u, 0x089ADC68u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADC68u) goto L_089ADC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADC68: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADC74u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 445u, 0x089ADC74u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADC74u) goto L_089ADC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADC74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); aot_gpr_5 = (0u | 0u); @@ -5210,14 +6222,40 @@ L_089ADC74: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADCACu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 446u, 0x089ADCACu, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADCACu) goto L_089ADCAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADCAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); aot_gpr_31 = (0x089ADCB8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 447u, 0x089ADCB8u, 0x08B04218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 30u, 0x08B04218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADCB8u) goto L_089ADCB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADCB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); aot_gpr_5 = (0u + static_cast(-497)); @@ -5242,8 +6280,21 @@ L_089ADCB8: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x089ADD14u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 448u, 0x089ADD14u, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADD14u) goto L_089ADD14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADD14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5257,16 +6308,42 @@ L_089ADD1C: aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x089ADD30u); aot_gpr_5 = (aot_gpr_5 + static_cast(5984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 450u, 0x089ADD30u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADD30u) goto L_089ADD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADD30: aot_gpr_4 = (2237u << 16u); ctx.gpr[18] = (0u + static_cast(-1)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1927)))))); aot_gpr_31 = (0x089ADD44u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 451u, 0x089ADD44u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADD44u) goto L_089ADD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADD44: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089ADD50u); @@ -5354,8 +6431,21 @@ L_089ADDC4: aot_gpr_4 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x089ADDD0u); aot_gpr_5 = (ctx.gpr[16] + static_cast(512)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 463u, 0x089ADDD0u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADDD0u) goto L_089ADDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADDD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); aot_gpr_5 = (0u + static_cast(-2)); @@ -5410,8 +6500,21 @@ L_089ADE10: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADE28u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 468u, 0x089ADE28u, 0x08907020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 682u, 0x08907020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADE28u) goto L_089ADE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADE28: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -5487,16 +6590,42 @@ L_089ADE28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089ADE98u); aot_gpr_4 = (aot_gpr_29 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 469u, 0x089ADE98u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADE98u) goto L_089ADE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADE98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(592))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(2256), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADEACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 470u, 0x089ADEACu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADEACu) goto L_089ADEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADEAC: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -5533,8 +6662,21 @@ L_089ADEDC: aot_gpr_6 = (aot_gpr_29 + static_cast(384)); aot_gpr_31 = (0x089ADEECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 475u, 0x089ADEECu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADEECu) goto L_089ADEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADEEC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(384))); @@ -5580,8 +6722,21 @@ L_089ADF40: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x089ADF6Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 479u, 0x089ADF6Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADF6Cu) goto L_089ADF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADF6C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADF78u); @@ -5607,8 +6762,21 @@ L_089ADF80: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADFACu); aot_fpr_12 = std::bit_cast(ctx.gpr[8]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 482u, 0x089ADFACu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADFACu) goto L_089ADFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADFAC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADFB8u); @@ -5634,8 +6802,21 @@ L_089ADFD8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089ADFECu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 485u, 0x089ADFECu, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ADFECu) goto L_089ADFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ADFEC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089ADFF8u); @@ -5695,8 +6876,21 @@ L_089AE03C: L_089AE058: aot_gpr_31 = (0x089AE060u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 493u, 0x089AE060u, 0x089A9520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 225u, 0x089A9520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE060u) goto L_089AE060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE060: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5716,8 +6910,21 @@ L_089AE074: aot_gpr_6 = (aot_gpr_29 + static_cast(385)); aot_gpr_31 = (0x089AE084u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 496u, 0x089AE084u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE084u) goto L_089AE084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE084: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(385))); @@ -5755,8 +6962,21 @@ L_089AE0BC: aot_gpr_6 = (aot_gpr_29 + static_cast(386)); aot_gpr_31 = (0x089AE0CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 501u, 0x089AE0CCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE0CCu) goto L_089AE0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE0CC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(386))); @@ -5779,8 +6999,21 @@ L_089AE0F0: aot_gpr_6 = (aot_gpr_29 + static_cast(387)); aot_gpr_31 = (0x089AE100u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 504u, 0x089AE100u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE100u) goto L_089AE100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE100: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(387))); @@ -5825,8 +7058,21 @@ L_089AE138: L_089AE148: aot_gpr_31 = (0x089AE150u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 510u, 0x089AE150u, 0x089A9520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 225u, 0x089A9520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE150u) goto L_089AE150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE150: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5837,8 +7083,21 @@ L_089AE150: L_089AE158: aot_gpr_31 = (0x089AE160u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 512u, 0x089AE160u, 0x089A9520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 225u, 0x089A9520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE160u) goto L_089AE160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE160: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -5857,8 +7116,21 @@ L_089AE170: L_089AE17C: aot_gpr_31 = (0x089AE184u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 515u, 0x089AE184u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE184u) goto L_089AE184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE184: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); goto L_089AE188; @@ -5881,8 +7153,21 @@ L_089AE194: L_089AE1A0: aot_gpr_31 = (0x089AE1A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 519u, 0x089AE1A8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE1A8u) goto L_089AE1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE1A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5898,8 +7183,21 @@ L_089AE1B0: aot_gpr_6 = (aot_gpr_6 << 24u); aot_gpr_31 = (0x089AE1CCu); aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 521u, 0x089AE1CCu, 0x08ADCCC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 237u, 0x08ADCCC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE1CCu) goto L_089AE1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE1CC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5920,8 +7218,21 @@ L_089AE1E4: aot_gpr_6 = (aot_gpr_29 + static_cast(388)); aot_gpr_31 = (0x089AE1F4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 524u, 0x089AE1F4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE1F4u) goto L_089AE1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE1F4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(388))); @@ -5947,21 +7258,60 @@ L_089AE220: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x089AE23Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 527u, 0x089AE23Cu, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE23Cu) goto L_089AE23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE23C: aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AE24Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 528u, 0x089AE24Cu, 0x08ADC994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 183u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 183u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 183u, 0x08ADC994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE24Cu) goto L_089AE24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE24C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089AE258u); aot_gpr_5 = (0u | 58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 529u, 0x089AE258u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE258u) goto L_089AE258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE258: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (2238u << 16u); @@ -5973,8 +7323,21 @@ L_089AE258: aot_gpr_5 = (aot_gpr_5 + static_cast(-6992)); aot_gpr_31 = (0x089AE280u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 530u, 0x089AE280u, 0x089614B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 222u, 0x089614B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE280u) goto L_089AE280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE280: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6024,8 +7387,21 @@ L_089AE2CC: aot_gpr_6 = (aot_gpr_29 + static_cast(389)); aot_gpr_31 = (0x089AE2DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 538u, 0x089AE2DCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE2DCu) goto L_089AE2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE2DC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(389))); @@ -6055,8 +7431,21 @@ L_089AE308: aot_gpr_6 = (aot_gpr_29 + static_cast(390)); aot_gpr_31 = (0x089AE318u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 542u, 0x089AE318u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE318u) goto L_089AE318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE318: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(390))); @@ -6095,8 +7484,21 @@ L_089AE36C: aot_gpr_6 = (aot_gpr_29 + static_cast(391)); aot_gpr_31 = (0x089AE37Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 546u, 0x089AE37Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE37Cu) goto L_089AE37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE37C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(391))); @@ -6118,13 +7520,39 @@ L_089AE3AC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089AE3B8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 549u, 0x089AE3B8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE3B8u) goto L_089AE3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE3B8: aot_gpr_31 = (0x089AE3C0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 550u, 0x089AE3C0u, 0x089A9FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 364u, 0x089A9FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE3C0u) goto L_089AE3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE3C0: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (0u | 1u); @@ -6206,16 +7634,42 @@ L_089AE448: } L_089AE450: aot_gpr_31 = (0x089AE458u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 560u, 0x089AE458u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE458u) goto L_089AE458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE458: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089AE45C; L_089AE45C: aot_gpr_31 = (0x089AE464u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 562u, 0x089AE464u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE464u) goto L_089AE464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE464: ctx.gpr[17] = (aot_gpr_29 + static_cast(256)); aot_gpr_5 = (aot_gpr_29 + static_cast(288)); @@ -6223,8 +7677,21 @@ L_089AE464: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AE47Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 563u, 0x089AE47Cu, 0x089A8A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 76u, 0x089A8A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE47Cu) goto L_089AE47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE47C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6290,8 +7757,21 @@ L_089AE4C0: L_089AE4CC: aot_gpr_31 = (0x089AE4D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 566u, 0x089AE4D4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE4D4u) goto L_089AE4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE4D4: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(416), aot_run_words); @@ -6304,8 +7784,8 @@ L_089AE4D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(448)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AE4F4: @@ -6331,8 +7811,21 @@ L_089AE4F4: L_089AE52C: aot_gpr_31 = (0x089AE534u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 569u, 0x089AE534u, 0x0890EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 697u, 0x0890EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE534u) goto L_089AE534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE534: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_fpr_20 = std::bit_cast(0u); @@ -6344,8 +7837,21 @@ L_089AE534: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AE560u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 570u, 0x089AE560u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE560u) goto L_089AE560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE560: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AE56Cu); @@ -6362,8 +7868,21 @@ L_089AE578: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AE584u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 573u, 0x089AE584u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE584u) goto L_089AE584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE584: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(852))); aot_gpr_5 = (static_cast(aot_gpr_4) < 7 ? 1u : 0u); @@ -6508,8 +8027,21 @@ L_089AE65C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AE668u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 593u, 0x089AE668u, 0x089AB8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 756u, 0x089AB8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE668u) goto L_089AE668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE668: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AE674u); @@ -6570,8 +8102,21 @@ L_089AE6D0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AE6DCu); aot_gpr_5 = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 602u, 0x089AE6DCu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE6DCu) goto L_089AE6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE6DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_gpr_5 = (65520u << 16u); @@ -6604,8 +8149,21 @@ L_089AE6DC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089AE72Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 603u, 0x089AE72Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE72Cu) goto L_089AE72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE72C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -6615,8 +8173,21 @@ L_089AE72C: } aot_gpr_31 = (0x089AE740u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 604u, 0x089AE740u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE740u) goto L_089AE740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE740: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6629,20 +8200,59 @@ L_089AE74C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AE758u); aot_gpr_5 = (0u | 122u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 606u, 0x089AE758u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE758u) goto L_089AE758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE758: aot_gpr_31 = (0x089AE760u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 607u, 0x089AE760u, 0x08910F00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 264u, 0x08910F00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE760u) goto L_089AE760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE760: aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2274))); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089AE770u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 608u, 0x089AE770u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE770u) goto L_089AE770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE770: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(564))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -6661,8 +8271,8 @@ L_089AE780: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AE7A0: @@ -6756,8 +8366,21 @@ L_089AE84C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089AE858u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 623u, 0x089AE858u, 0x08928024u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 2u, 0x08928024u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE858u) goto L_089AE858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE858: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6801,8 +8424,21 @@ L_089AE89C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089AE8B8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 629u, 0x089AE8B8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE8B8u) goto L_089AE8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE8B8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089AE8C4u); @@ -6811,8 +8447,21 @@ L_089AE8B8: L_089AE8C4: aot_gpr_31 = (0x089AE8CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 631u, 0x089AE8CCu, 0x089ABA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 778u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 778u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 778u, 0x089ABA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE8CCu) goto L_089AE8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE8CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2196))); aot_gpr_5 = (0u | 38u); @@ -6869,8 +8518,21 @@ L_089AE92C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089AE94Cu); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 637u, 0x089AE94Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE94Cu) goto L_089AE94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE94C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -6933,8 +8595,21 @@ L_089AE9B4: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089AE9C8u); ctx.gpr[7] = (0u | 197u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 644u, 0x089AE9C8u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE9C8u) goto L_089AE9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE9C8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089AE9D4u); @@ -6952,8 +8627,21 @@ L_089AE9DC: aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(2274))); aot_gpr_31 = (0x089AE9E8u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 647u, 0x089AE9E8u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AE9E8u) goto L_089AE9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AE9E8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); @@ -6961,14 +8649,40 @@ L_089AE9E8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AEA00u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 648u, 0x089AEA00u, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEA00u) goto L_089AEA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEA00: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AEA0Cu); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 649u, 0x089AEA0Cu, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEA0Cu) goto L_089AEA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEA0C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_5 == ctx.gpr[17]; @@ -7077,8 +8791,8 @@ L_089AEABC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AEAD4: @@ -7129,22 +8843,61 @@ L_089AEB60: L_089AEB70: aot_gpr_31 = (0x089AEB78u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 667u, 0x089AEB78u, 0x08A08730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 36u, 0x08A08730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEB78u) goto L_089AEB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEB78: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AEB84u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 668u, 0x089AEB84u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEB84u) goto L_089AEB84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEB84: aot_gpr_4 = (ctx.gpr[17] & 65535u); aot_mem.aot_direct_store16(ctx.gpr[19] + static_cast(2274), static_cast(aot_gpr_4)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AEB98u); aot_gpr_5 = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 669u, 0x089AEB98u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEB98u) goto L_089AEB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEB98: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(2274))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[23]; @@ -7187,19 +8940,58 @@ L_089AEBD0: L_089AEBDC: aot_gpr_31 = (0x089AEBE4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 675u, 0x089AEBE4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEBE4u) goto L_089AEBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEBE4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AEBF0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 676u, 0x089AEBF0u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEBF0u) goto L_089AEBF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEBF0: aot_gpr_31 = (0x089AEBF8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 677u, 0x089AEBF8u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEBF8u) goto L_089AEBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEBF8: aot_gpr_4 = (aot_gpr_2 + static_cast(562)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -7214,8 +9006,21 @@ L_089AEBF8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089AEC2Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 678u, 0x089AEC2Cu, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEC2Cu) goto L_089AEC2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEC2C: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7311,8 +9116,21 @@ L_089AECA0: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089AECACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 684u, 0x089AECACu, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AECACu) goto L_089AECAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AECAC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(563))); aot_gpr_5 = (~(ctx.gpr[16] | 0u)); @@ -7332,8 +9150,21 @@ L_089AECCC: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089AECDCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 686u, 0x089AECDCu, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AECDCu) goto L_089AECDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AECDC: ctx.gpr[16] = (aot_gpr_29 + static_cast(48)); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); @@ -7341,16 +9172,42 @@ L_089AECDC: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AECF4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 687u, 0x089AECF4u, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AECF4u) goto L_089AECF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AECF4: aot_gpr_6 = (16512u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089AED08u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 688u, 0x089AED08u, 0x08AF565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 188u, 0x08AF565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AED08u) goto L_089AED08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AED08: aot_gpr_31 = (0x089AED10u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -7386,8 +9243,21 @@ L_089AED40: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089AED4Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 693u, 0x089AED4Cu, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AED4Cu) goto L_089AED4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AED4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(352))); aot_gpr_5 = (17096u << 16u); @@ -7408,8 +9278,21 @@ L_089AED6C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089AED80u); ctx.gpr[7] = (0u | 97u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 695u, 0x089AED80u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AED80u) goto L_089AED80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AED80: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AED8Cu); @@ -7430,8 +9313,21 @@ L_089AED94: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089AEDA8u); ctx.gpr[7] = (0u | 110u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 698u, 0x089AEDA8u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEDA8u) goto L_089AEDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEDA8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AEDB4u); @@ -7470,8 +9366,21 @@ L_089AEDE4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089AEDF0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 704u, 0x089AEDF0u, 0x089AAC08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 538u, 0x089AAC08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEDF0u) goto L_089AEDF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEDF0: aot_gpr_4 = (0u | 0u); { const bool branch_taken = 0u == 0u; @@ -7494,8 +9403,21 @@ L_089AEE0C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089AEE18u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 707u, 0x089AEE18u, 0x089AAC08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 538u, 0x089AAC08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEE18u) goto L_089AEE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEE18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7508,8 +9430,21 @@ L_089AEE20: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x089AEE30u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 709u, 0x089AEE30u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEE30u) goto L_089AEE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEE30: ctx.gpr[16] = (aot_gpr_29 + static_cast(80)); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); @@ -7517,16 +9452,42 @@ L_089AEE30: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089AEE48u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 710u, 0x089AEE48u, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEE48u) goto L_089AEE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEE48: aot_gpr_6 = (16512u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089AEE5Cu); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 711u, 0x089AEE5Cu, 0x08AF565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 188u, 0x08AF565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEE5Cu) goto L_089AEE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEE5C: aot_gpr_31 = (0x089AEE64u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -7558,8 +9519,8 @@ L_089AEE78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AEEB0: @@ -7665,8 +9626,21 @@ L_089AEF7C: L_089AEF98: aot_gpr_31 = (0x089AEFA0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 726u, 0x089AEFA0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEFA0u) goto L_089AEFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEFA0: ctx.gpr[7] = (16512u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -7675,8 +9649,21 @@ L_089AEFA0: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x089AEFBCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 727u, 0x089AEFBCu, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AEFBCu) goto L_089AEFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AEFBC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7717,8 +9704,21 @@ L_089AEFF4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089AF004u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 733u, 0x089AF004u, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF004u) goto L_089AF004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF004: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7732,8 +9732,21 @@ L_089AF00C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AF020u); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 735u, 0x089AF020u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF020u) goto L_089AF020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF020: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7764,8 +9777,21 @@ L_089AF04C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089AF058u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 737u, 0x089AF058u, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF058u) goto L_089AF058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF058: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8074,8 +10100,21 @@ L_089AF290: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089AF2ACu); aot_gpr_6 = (0u | 188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 777u, 0x089AF2ACu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF2ACu) goto L_089AF2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF2AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8119,8 +10158,21 @@ L_089AF2E4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089AF300u); aot_gpr_6 = (0u | 187u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 783u, 0x089AF300u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF300u) goto L_089AF300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF300: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -8137,8 +10189,8 @@ L_089AF300: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AF330: @@ -8277,8 +10329,21 @@ L_089AF424: L_089AF428: aot_gpr_31 = (0x089AF430u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 795u, 0x089AF430u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF430u) goto L_089AF430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF430: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089AF434; @@ -8313,8 +10378,21 @@ L_089AF464: } L_089AF46C: aot_gpr_31 = (0x089AF474u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 800u, 0x089AF474u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF474u) goto L_089AF474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF474: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089AF478; @@ -8473,8 +10551,21 @@ L_089AF59C: aot_gpr_6 = (0u | 20u); aot_gpr_31 = (0x089AF5BCu); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 820u, 0x089AF5BCu, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF5BCu) goto L_089AF5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF5BC: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8542,8 +10633,21 @@ L_089AF610: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089AF620u); aot_gpr_6 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 827u, 0x089AF620u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF620u) goto L_089AF620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF620: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_089AF624; @@ -8553,8 +10657,21 @@ L_089AF624: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x089AF638u); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 829u, 0x089AF638u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF638u) goto L_089AF638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF638: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8575,8 +10692,21 @@ L_089AF638: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x089AF658u); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 830u, 0x089AF658u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF658u) goto L_089AF658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF658: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8983,8 +11113,8 @@ L_089AF8FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AF91C: @@ -9057,8 +11187,21 @@ L_089AF994: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x089AF9B4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 870u, 0x089AF9B4u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AF9B4u) goto L_089AF9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AF9B4: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9149,8 +11292,21 @@ L_089AFA28: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x089AFA48u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 879u, 0x089AFA48u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AFA48u) goto L_089AFA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AFA48: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9248,8 +11404,21 @@ L_089AFAE8: aot_gpr_6 = (0u | 11u); aot_gpr_31 = (0x089AFB00u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 889u, 0x089AFB00u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AFB00u) goto L_089AFB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AFB00: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9325,8 +11494,21 @@ L_089AFB80: aot_gpr_6 = (0u | 9u); aot_gpr_31 = (0x089AFB98u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 896u, 0x089AFB98u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AFB98u) goto L_089AFB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AFB98: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9429,8 +11611,21 @@ L_089AFC4C: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x089AFC64u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 905u, 0x089AFC64u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AFC64u) goto L_089AFC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AFC64: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9525,8 +11720,21 @@ L_089AFD08: aot_gpr_6 = (0u | 11u); aot_gpr_31 = (0x089AFD20u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 914u, 0x089AFD20u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AFD20u) goto L_089AFD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AFD20: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9602,8 +11810,21 @@ L_089AFDA0: aot_gpr_6 = (0u | 9u); aot_gpr_31 = (0x089AFDB8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 921u, 0x089AFDB8u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AFDB8u) goto L_089AFDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AFDB8: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9640,8 +11861,21 @@ L_089AFDEC: L_089AFDF4: aot_gpr_31 = (0x089AFDFCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0106->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0106_entry, 924u, 0x089AFDFCu, 0x08B05DC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 400u, 0x08B05DC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089AFDFCu) goto L_089AFDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089AFDFC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); @@ -9756,8 +11990,8 @@ L_089AFEDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089AFEFC: diff --git a/profiles/vcs/generated/generated_unit_0107.cpp b/profiles/vcs/generated/generated_unit_0107.cpp index 1e16b12..a7b51cf 100644 --- a/profiles/vcs/generated/generated_unit_0107.cpp +++ b/profiles/vcs/generated/generated_unit_0107.cpp @@ -1112,6 +1112,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089B0000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1182,8 +1206,21 @@ L_089B0058: } L_089B0060: aot_gpr_31 = (0x089B0068u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 5u, 0x089B0068u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0068u) goto L_089B0068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0068: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089B006C; @@ -1268,8 +1305,21 @@ L_089B00E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B00F4u); ctx.gpr[6] = (0u | 187u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 17u, 0x089B00F4u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B00F4u) goto L_089B00F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B00F4: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1283,8 +1333,21 @@ L_089B0100: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B0110u); ctx.gpr[6] = (0u | 204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 19u, 0x089B0110u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0110u) goto L_089B0110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0110: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089B0114; @@ -1298,8 +1361,21 @@ L_089B0114: L_089B011C: aot_gpr_31 = (0x089B0124u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 22u, 0x089B0124u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0124u) goto L_089B0124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0124: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1312,8 +1388,21 @@ L_089B012C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B013Cu); ctx.gpr[6] = (0u | 97u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 24u, 0x089B013Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B013Cu) goto L_089B013C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B013C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1326,8 +1415,21 @@ L_089B0144: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B0154u); ctx.gpr[6] = (0u | 98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 26u, 0x089B0154u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0154u) goto L_089B0154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0154: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1340,8 +1442,21 @@ L_089B015C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B016Cu); ctx.gpr[6] = (0u | 99u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 28u, 0x089B016Cu, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B016Cu) goto L_089B016C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B016C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1354,8 +1469,21 @@ L_089B0174: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B0184u); ctx.gpr[6] = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 30u, 0x089B0184u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0184u) goto L_089B0184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0184: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1366,8 +1494,21 @@ L_089B0184: L_089B018C: aot_gpr_31 = (0x089B0194u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 32u, 0x089B0194u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0194u) goto L_089B0194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0194: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1378,8 +1519,21 @@ L_089B0194: L_089B019C: aot_gpr_31 = (0x089B01A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 34u, 0x089B01A4u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B01A4u) goto L_089B01A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B01A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1390,8 +1544,21 @@ L_089B01A4: L_089B01AC: aot_gpr_31 = (0x089B01B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 36u, 0x089B01B4u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B01B4u) goto L_089B01B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B01B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1402,8 +1569,21 @@ L_089B01B4: L_089B01BC: aot_gpr_31 = (0x089B01C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 38u, 0x089B01C4u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B01C4u) goto L_089B01C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B01C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1428,8 +1608,21 @@ L_089B01DC: L_089B01E8: aot_gpr_31 = (0x089B01F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 42u, 0x089B01F0u, 0x0892892Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 107u, 0x0892892Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B01F0u) goto L_089B01F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B01F0: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1448,8 +1641,21 @@ L_089B01F0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089B0208u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 43u, 0x089B0208u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0208u) goto L_089B0208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0208: aot_gpr_31 = (0x089B0210u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1680,8 +1886,21 @@ L_089B03B8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(64), aot_run_words); } aot_gpr_31 = (0x089B03D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 73u, 0x089B03D4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B03D4u) goto L_089B03D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B03D4: ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (48972u << 16u); @@ -1755,8 +1974,21 @@ L_089B0458: } L_089B0460: aot_gpr_31 = (0x089B0468u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 82u, 0x089B0468u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0468u) goto L_089B0468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0468: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089B046C; @@ -1803,8 +2035,21 @@ L_089B04B4: } L_089B04BC: aot_gpr_31 = (0x089B04C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 88u, 0x089B04C4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B04C4u) goto L_089B04C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B04C4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089B04C8; @@ -1830,8 +2075,21 @@ L_089B04E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B04F0u); ctx.gpr[6] = (0u | 130u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 92u, 0x089B04F0u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B04F0u) goto L_089B04F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B04F0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1870,8 +2128,21 @@ L_089B0528: } L_089B0530: aot_gpr_31 = (0x089B0538u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 97u, 0x089B0538u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0538u) goto L_089B0538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0538: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089B053C; @@ -1932,8 +2203,21 @@ L_089B0594: } L_089B059C: aot_gpr_31 = (0x089B05A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 105u, 0x089B05A4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B05A4u) goto L_089B05A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B05A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089B05A8; @@ -1980,8 +2264,21 @@ L_089B05F0: } L_089B05F8: aot_gpr_31 = (0x089B0600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 111u, 0x089B0600u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0600u) goto L_089B0600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0600: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089B0604; @@ -2039,8 +2336,21 @@ L_089B0660: } L_089B0668: aot_gpr_31 = (0x089B0670u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 119u, 0x089B0670u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0670u) goto L_089B0670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0670: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089B0674; @@ -2087,8 +2397,21 @@ L_089B06BC: } L_089B06C4: aot_gpr_31 = (0x089B06CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 125u, 0x089B06CCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B06CCu) goto L_089B06CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B06CC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089B06D0; @@ -2146,8 +2469,8 @@ L_089B0714: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4448))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B072C: @@ -2172,8 +2495,8 @@ L_089B073C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4160))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B0754: @@ -2580,8 +2903,21 @@ L_089B0A54: L_089B0A5C: aot_gpr_31 = (0x089B0A64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 190u, 0x089B0A64u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0A64u) goto L_089B0A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0A64: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2668,8 +3004,21 @@ L_089B0AD4: L_089B0ADC: aot_gpr_31 = (0x089B0AE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 203u, 0x089B0AE4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0AE4u) goto L_089B0AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0AE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2726,8 +3075,21 @@ L_089B0B1C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089B0B38u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 209u, 0x089B0B38u, 0x089AA270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 395u, 0x089AA270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0B38u) goto L_089B0B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0B38: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2770,8 +3132,21 @@ L_089B0B5C: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089B0B68u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 212u, 0x089B0B68u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0B68u) goto L_089B0B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0B68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2791,8 +3166,21 @@ L_089B0B70: L_089B0B80: aot_gpr_31 = (0x089B0B88u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 215u, 0x089B0B88u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0B88u) goto L_089B0B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0B88: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2819,8 +3207,21 @@ L_089B0BA4: L_089B0BB4: aot_gpr_31 = (0x089B0BBCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 219u, 0x089B0BBCu, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0BBCu) goto L_089B0BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0BBC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2910,8 +3311,21 @@ L_089B0C58: aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x089B0C7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 229u, 0x089B0C7Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0C7Cu) goto L_089B0C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0C7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2938,8 +3352,21 @@ L_089B0C84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089B0CA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 231u, 0x089B0CA0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B0CA0u) goto L_089B0CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B0CA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(192)); @@ -3438,8 +3865,21 @@ L_089B1008: aot_gpr_5 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x089B102Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 297u, 0x089B102Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B102Cu) goto L_089B102C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B102C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3834,8 +4274,21 @@ L_089B12EC: L_089B12F4: aot_gpr_31 = (0x089B12FCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 349u, 0x089B12FCu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B12FCu) goto L_089B12FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B12FC: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4055,8 +4508,21 @@ L_089B1484: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B1494u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 369u, 0x089B1494u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1494u) goto L_089B1494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1494: ctx.gpr[18] = (aot_gpr_29 + static_cast(256)); ctx.gpr[6] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); @@ -4204,8 +4670,21 @@ L_089B1578: aot_gpr_4 = (aot_gpr_29 + static_cast(384)); aot_gpr_31 = (0x089B158Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 376u, 0x089B158Cu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B158Cu) goto L_089B158C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B158C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4246,8 +4725,21 @@ L_089B15C4: aot_gpr_4 = (aot_gpr_29 + static_cast(384)); aot_gpr_31 = (0x089B15D8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 381u, 0x089B15D8u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B15D8u) goto L_089B15D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B15D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4261,14 +4753,40 @@ L_089B15E0: aot_gpr_4 = (aot_gpr_29 + static_cast(384)); aot_gpr_31 = (0x089B15F4u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 383u, 0x089B15F4u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B15F4u) goto L_089B15F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B15F4: aot_gpr_4 = (aot_gpr_29 + static_cast(272)); aot_gpr_31 = (0x089B1600u); aot_gpr_5 = (aot_gpr_29 + static_cast(384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 384u, 0x089B1600u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1600u) goto L_089B1600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1600: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4289,14 +4807,40 @@ L_089B1610: L_089B161C: aot_gpr_31 = (0x089B1624u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(448))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 387u, 0x089B1624u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1624u) goto L_089B1624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1624: aot_gpr_5 = (aot_gpr_29 + static_cast(272)); aot_gpr_31 = (0x089B1630u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 388u, 0x089B1630u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1630u) goto L_089B1630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1630: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(344))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4317,8 +4861,21 @@ L_089B1640: L_089B164C: aot_gpr_31 = (0x089B1654u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 391u, 0x089B1654u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1654u) goto L_089B1654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1654: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4355,8 +4912,21 @@ L_089B165C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B1698u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 393u, 0x089B1698u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1698u) goto L_089B1698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1698: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(528), aot_run_words); @@ -4366,8 +4936,21 @@ L_089B1698: } aot_gpr_31 = (0x089B16ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 394u, 0x089B16ACu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B16ACu) goto L_089B16AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B16AC: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(544), aot_run_words); @@ -4386,8 +4969,8 @@ L_089B16AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(592)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B16E4: @@ -4455,8 +5038,21 @@ L_089B1770: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x089B1780u); ctx.gpr[6] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 402u, 0x089B1780u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1780u) goto L_089B1780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1780: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4526,8 +5122,21 @@ L_089B17C8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B17D4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 408u, 0x089B17D4u, 0x08907020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 682u, 0x08907020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B17D4u) goto L_089B17D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B17D4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4571,8 +5180,21 @@ L_089B17D4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B1804u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 409u, 0x089B1804u, 0x089A8A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 76u, 0x089A8A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1804u) goto L_089B1804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1804: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4610,15 +5232,41 @@ L_089B1830: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B1840u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 412u, 0x089B1840u, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1840u) goto L_089B1840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1840: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089B1850u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 413u, 0x089B1850u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1850u) goto L_089B1850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1850: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4690,8 +5338,21 @@ L_089B1898: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B18A4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 419u, 0x089B18A4u, 0x08907020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 682u, 0x08907020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B18A4u) goto L_089B18A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B18A4: aot_gpr_4 = (0u | 11u); { const bool branch_taken = ctx.gpr[18] == aot_gpr_4; @@ -4778,8 +5439,21 @@ L_089B18E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B190Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 426u, 0x089B190Cu, 0x08B01804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 419u, 0x08B01804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B190Cu) goto L_089B190C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B190C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4818,8 +5492,21 @@ L_089B1934: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089B1948u); ctx.gpr[6] = (0u | 175u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 431u, 0x089B1948u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1948u) goto L_089B1948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1948: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4857,8 +5544,21 @@ L_089B1974: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B1984u); ctx.gpr[6] = (0u | 72u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 434u, 0x089B1984u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1984u) goto L_089B1984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1984: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4883,8 +5583,21 @@ L_089B1984: L_089B1998: aot_gpr_31 = (0x089B19A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 436u, 0x089B19A0u, 0x08B02090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 542u, 0x08B02090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B19A0u) goto L_089B19A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B19A0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4897,8 +5610,21 @@ L_089B19A8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B19B8u); ctx.gpr[6] = (0u | 78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 438u, 0x089B19B8u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B19B8u) goto L_089B19B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B19B8: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4925,8 +5651,21 @@ L_089B19CC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B19DCu); ctx.gpr[6] = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 440u, 0x089B19DCu, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B19DCu) goto L_089B19DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B19DC: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5414,8 +6153,8 @@ L_089B1BF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B1C20: @@ -5516,8 +6255,21 @@ L_089B1CC0: L_089B1CD4: aot_gpr_31 = (0x089B1CDCu); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 475u, 0x089B1CDCu, 0x08907020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 682u, 0x08907020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1CDCu) goto L_089B1CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1CDC: aot_gpr_4 = (0u | 20u); { const bool branch_taken = ctx.gpr[18] != aot_gpr_4; @@ -5531,8 +6283,21 @@ L_089B1CE8: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x089B1CF8u); ctx.gpr[6] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 477u, 0x089B1CF8u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1CF8u) goto L_089B1CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1CF8: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5598,8 +6363,21 @@ L_089B1D2C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B1D40u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 479u, 0x089B1D40u, 0x089A8A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 76u, 0x089A8A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1D40u) goto L_089B1D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1D40: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5639,15 +6417,41 @@ L_089B1D6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B1D7Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 483u, 0x089B1D7Cu, 0x08A59500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 294u, 0x08A59500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1D7Cu) goto L_089B1D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1D7C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089B1D8Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 484u, 0x089B1D8Cu, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1D8Cu) goto L_089B1D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1D8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(352))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); @@ -5760,8 +6564,21 @@ L_089B1E14: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B1E28u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 492u, 0x089B1E28u, 0x089A8A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 76u, 0x089A8A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1E28u) goto L_089B1E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1E28: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5815,8 +6632,21 @@ L_089B1E58: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089B1E6Cu); ctx.gpr[6] = (0u | 175u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 498u, 0x089B1E6Cu, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1E6Cu) goto L_089B1E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1E6C: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5855,8 +6685,21 @@ L_089B1E98: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B1EA8u); ctx.gpr[6] = (0u | 72u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 501u, 0x089B1EA8u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1EA8u) goto L_089B1EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1EA8: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5881,8 +6724,21 @@ L_089B1EA8: L_089B1EBC: aot_gpr_31 = (0x089B1EC4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 503u, 0x089B1EC4u, 0x08B02090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 542u, 0x08B02090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1EC4u) goto L_089B1EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1EC4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5895,8 +6751,21 @@ L_089B1ECC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B1EDCu); ctx.gpr[6] = (0u | 78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 505u, 0x089B1EDCu, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1EDCu) goto L_089B1EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1EDC: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5923,8 +6792,21 @@ L_089B1EF0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B1F00u); ctx.gpr[6] = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 507u, 0x089B1F00u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B1F00u) goto L_089B1F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B1F00: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6272,8 +7154,8 @@ L_089B20C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B20EC: @@ -6289,8 +7171,21 @@ L_089B20EC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(300), aot_run_words); } aot_gpr_31 = (0x089B2134u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 533u, 0x089B2134u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2134u) goto L_089B2134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2134: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); @@ -6300,13 +7195,39 @@ L_089B2134: ctx.gpr[18] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(48)))))); aot_gpr_31 = (0x089B2154u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 534u, 0x089B2154u, 0x0890EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 697u, 0x0890EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2154u) goto L_089B2154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2154: aot_gpr_31 = (0x089B215Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 535u, 0x089B215Cu, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B215Cu) goto L_089B215C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B215C: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1156))); aot_fpr_20 = std::bit_cast(0u); @@ -6363,8 +7284,21 @@ L_089B21C0: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089B21D0u); ctx.gpr[6] = (0u | 197u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 541u, 0x089B21D0u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B21D0u) goto L_089B21D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B21D0: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6398,8 +7332,21 @@ L_089B21EC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B21FCu); ctx.gpr[6] = (0u | 62u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 544u, 0x089B21FCu, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B21FCu) goto L_089B21FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B21FC: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6425,8 +7372,21 @@ L_089B220C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B221Cu); ctx.gpr[6] = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 546u, 0x089B221Cu, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B221Cu) goto L_089B221C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B221C: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6554,16 +7514,42 @@ L_089B22B8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B22C4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 555u, 0x089B22C4u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B22C4u) goto L_089B22C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B22C4: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B22DCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 556u, 0x089B22DCu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B22DCu) goto L_089B22DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B22DC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -6619,13 +7605,39 @@ L_089B2338: L_089B2340: aot_gpr_31 = (0x089B2348u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 562u, 0x089B2348u, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2348u) goto L_089B2348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2348: aot_gpr_31 = (0x089B2350u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 563u, 0x089B2350u, 0x08906F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 655u, 0x08906F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2350u) goto L_089B2350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2350: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6637,8 +7649,21 @@ L_089B2358: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B2364u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 565u, 0x089B2364u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2364u) goto L_089B2364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2364: { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { @@ -6649,13 +7674,39 @@ L_089B2364: L_089B236C: aot_gpr_31 = (0x089B2374u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 567u, 0x089B2374u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2374u) goto L_089B2374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2374: aot_gpr_31 = (0x089B237Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 568u, 0x089B237Cu, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B237Cu) goto L_089B237C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B237C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6676,8 +7727,21 @@ L_089B238C: L_089B2398: aot_gpr_31 = (0x089B23A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 571u, 0x089B23A0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B23A0u) goto L_089B23A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B23A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6700,8 +7764,21 @@ L_089B23B0: L_089B23B8: aot_gpr_31 = (0x089B23C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 575u, 0x089B23C0u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B23C0u) goto L_089B23C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B23C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6743,8 +7820,21 @@ L_089B23D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B2438u); ctx.gpr[6] = (0u | 4000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 578u, 0x089B2438u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2438u) goto L_089B2438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2438: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6784,8 +7874,21 @@ L_089B2470: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x089B2494u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 583u, 0x089B2494u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2494u) goto L_089B2494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2494: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (65535u << 16u); @@ -6820,8 +7923,21 @@ L_089B24C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x089B24ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 586u, 0x089B24ECu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B24ECu) goto L_089B24EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B24EC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6898,8 +8014,21 @@ L_089B2558: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B2564u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 592u, 0x089B2564u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2564u) goto L_089B2564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2564: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6928,8 +8057,21 @@ L_089B2584: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B2594u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 596u, 0x089B2594u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2594u) goto L_089B2594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2594: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6967,8 +8109,21 @@ L_089B25BC: } L_089B25C4: aot_gpr_31 = (0x089B25CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 602u, 0x089B25CCu, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B25CCu) goto L_089B25CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B25CC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6979,15 +8134,41 @@ L_089B25CC: L_089B25D4: aot_gpr_31 = (0x089B25DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 604u, 0x089B25DCu, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B25DCu) goto L_089B25DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B25DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x089B25ECu); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 605u, 0x089B25ECu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B25ECu) goto L_089B25EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B25EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6999,8 +8180,21 @@ L_089B25F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B2600u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 607u, 0x089B2600u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2600u) goto L_089B2600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2600: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B260Cu); @@ -7027,8 +8221,21 @@ L_089B260C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B2658u); ctx.gpr[6] = (0u | 4000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 609u, 0x089B2658u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2658u) goto L_089B2658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2658: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7086,8 +8293,21 @@ L_089B26A8: } L_089B26B0: aot_gpr_31 = (0x089B26B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 617u, 0x089B26B8u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B26B8u) goto L_089B26B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B26B8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7100,8 +8320,21 @@ L_089B26C0: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x089B26D0u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 619u, 0x089B26D0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B26D0u) goto L_089B26D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B26D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7167,8 +8400,21 @@ L_089B272C: } L_089B2738: aot_gpr_31 = (0x089B2740u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 628u, 0x089B2740u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2740u) goto L_089B2740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2740: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7181,8 +8427,21 @@ L_089B2748: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x089B2758u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 630u, 0x089B2758u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2758u) goto L_089B2758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2758: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7194,8 +8453,21 @@ L_089B2760: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B276Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 632u, 0x089B276Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B276Cu) goto L_089B276C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B276C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B2778u); @@ -7222,8 +8494,21 @@ L_089B2778: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B27C4u); ctx.gpr[6] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 634u, 0x089B27C4u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B27C4u) goto L_089B27C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B27C4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7235,8 +8520,21 @@ L_089B27C4: L_089B27D8: aot_gpr_31 = (0x089B27E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 636u, 0x089B27E0u, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B27E0u) goto L_089B27E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B27E0: aot_gpr_4 = (0u | 59u); { const bool branch_taken = ctx.gpr[18] == aot_gpr_4; @@ -7285,8 +8583,21 @@ L_089B2830: } L_089B2838: aot_gpr_31 = (0x089B2840u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 642u, 0x089B2840u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2840u) goto L_089B2840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2840: aot_fpr_20 = ctx.fpr[0] + ctx.fpr[22]; goto L_089B2844; @@ -7294,8 +8605,21 @@ L_089B2844: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B2850u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 644u, 0x089B2850u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2850u) goto L_089B2850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2850: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(aot_fpr_20)); @@ -7320,8 +8644,21 @@ L_089B2868: L_089B2874: aot_gpr_31 = (0x089B287Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 648u, 0x089B287Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B287Cu) goto L_089B287C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B287C: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(280), aot_run_words); @@ -7340,8 +8677,8 @@ L_089B287C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B28B4: @@ -7352,8 +8689,21 @@ L_089B28B4: aot_gpr_16 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089B28F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 650u, 0x089B28F0u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B28F0u) goto L_089B28F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B28F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); @@ -7362,15 +8712,41 @@ L_089B28F0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089B290Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 651u, 0x089B290Cu, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B290Cu) goto L_089B290C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B290C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-13368))); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B291Cu); ctx.gpr[6] = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 652u, 0x089B291Cu, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B291Cu) goto L_089B291C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B291C: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7476,16 +8852,42 @@ L_089B2988: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089B2998u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 657u, 0x089B2998u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2998u) goto L_089B2998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2998: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B29B0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 658u, 0x089B29B0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B29B0u) goto L_089B29B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B29B0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -7537,8 +8939,21 @@ L_089B2A10: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x089B2A1Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 664u, 0x089B2A1Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2A1Cu) goto L_089B2A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2A1C: ctx.fpr[22] = ctx.fpr[0] - aot_fpr_20; goto L_089B2A20; @@ -7548,8 +8963,21 @@ L_089B2A20: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2A34u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2256), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 666u, 0x089B2A34u, 0x08907AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 839u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 839u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 839u, 0x08907AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2A34u) goto L_089B2A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2A34: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -7568,8 +8996,21 @@ L_089B2A3C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089B2A64u); ctx.gpr[6] = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 668u, 0x089B2A64u, 0x089A8C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 110u, 0x089A8C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2A64u) goto L_089B2A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2A64: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -7590,13 +9031,39 @@ L_089B2A78: L_089B2A80: aot_gpr_31 = (0x089B2A88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 671u, 0x089B2A88u, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2A88u) goto L_089B2A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2A88: aot_gpr_31 = (0x089B2A90u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 672u, 0x089B2A90u, 0x08906F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 655u, 0x08906F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2A90u) goto L_089B2A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2A90: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); @@ -7606,8 +9073,21 @@ L_089B2A90: L_089B2A98: aot_gpr_31 = (0x089B2AA0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 674u, 0x089B2AA0u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2AA0u) goto L_089B2AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2AA0: aot_gpr_31 = (0x089B2AA8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7660,8 +9140,21 @@ L_089B2AC8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2B28u); ctx.gpr[6] = (0u | 14000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 679u, 0x089B2B28u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2B28u) goto L_089B2B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2B28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7701,8 +9194,21 @@ L_089B2B60: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x089B2B84u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 684u, 0x089B2B84u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2B84u) goto L_089B2B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2B84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (65535u << 16u); @@ -7737,8 +9243,21 @@ L_089B2BB0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x089B2BDCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 687u, 0x089B2BDCu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2BDCu) goto L_089B2BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2BDC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7815,8 +9334,21 @@ L_089B2C48: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2C54u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 693u, 0x089B2C54u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2C54u) goto L_089B2C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2C54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7838,8 +9370,21 @@ L_089B2C6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2C7Cu); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 696u, 0x089B2C7Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2C7Cu) goto L_089B2C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2C7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7879,8 +9424,21 @@ L_089B2CA4: } L_089B2CAC: aot_gpr_31 = (0x089B2CB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 702u, 0x089B2CB4u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2CB4u) goto L_089B2CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2CB4: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(48)); @@ -7892,15 +9450,41 @@ L_089B2CB4: L_089B2CBC: aot_gpr_31 = (0x089B2CC4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 704u, 0x089B2CC4u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2CC4u) goto L_089B2CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2CC4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x089B2CD4u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 705u, 0x089B2CD4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2CD4u) goto L_089B2CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2CD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7927,8 +9511,21 @@ L_089B2CDC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2D24u); ctx.gpr[6] = (0u | 14000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 707u, 0x089B2D24u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2D24u) goto L_089B2D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2D24: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7941,8 +9538,21 @@ L_089B2D38: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2D44u); aot_gpr_5 = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 709u, 0x089B2D44u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2D44u) goto L_089B2D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2D44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8003,8 +9613,21 @@ L_089B2D94: } L_089B2D9C: aot_gpr_31 = (0x089B2DA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 717u, 0x089B2DA4u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2DA4u) goto L_089B2DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2DA4: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(48)); @@ -8018,8 +9641,21 @@ L_089B2DAC: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x089B2DBCu); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 719u, 0x089B2DBCu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2DBCu) goto L_089B2DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2DBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8046,8 +9682,21 @@ L_089B2DC4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2E0Cu); ctx.gpr[6] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 721u, 0x089B2E0Cu, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2E0Cu) goto L_089B2E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2E0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1032), 0u); @@ -8085,8 +9734,21 @@ L_089B2E50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2E5Cu); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 726u, 0x089B2E5Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2E5Cu) goto L_089B2E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2E5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8098,8 +9760,21 @@ L_089B2E64: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2E70u); aot_gpr_5 = (0u | 142u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 728u, 0x089B2E70u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2E70u) goto L_089B2E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2E70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2232))); aot_gpr_5 = (0u | 1u); @@ -8136,8 +9811,21 @@ L_089B2E9C: L_089B2EA8: aot_gpr_31 = (0x089B2EB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 734u, 0x089B2EB0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2EB0u) goto L_089B2EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2EB0: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(280), aot_run_words); @@ -8154,8 +9842,8 @@ L_089B2EB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B2EE0: @@ -8243,8 +9931,21 @@ L_089B2F68: L_089B2F70: aot_gpr_31 = (0x089B2F78u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 746u, 0x089B2F78u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2F78u) goto L_089B2F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2F78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8257,8 +9958,21 @@ L_089B2F80: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089B2F90u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 748u, 0x089B2F90u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2F90u) goto L_089B2F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2F90: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -8266,8 +9980,21 @@ L_089B2F90: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B2FA8u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 749u, 0x089B2FA8u, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B2FA8u) goto L_089B2FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B2FA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 ^ 3u); @@ -8346,8 +10073,21 @@ L_089B3024: L_089B302C: aot_gpr_31 = (0x089B3034u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 760u, 0x089B3034u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3034u) goto L_089B3034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3034: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (32u << 16u); @@ -8369,8 +10109,21 @@ L_089B3048: L_089B3050: aot_gpr_31 = (0x089B3058u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 763u, 0x089B3058u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3058u) goto L_089B3058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3058: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8416,18 +10169,57 @@ L_089B3098: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089B30A4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 770u, 0x089B30A4u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B30A4u) goto L_089B30A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B30A4: aot_gpr_31 = (0x089B30ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 771u, 0x089B30ACu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B30ACu) goto L_089B30AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B30AC: aot_gpr_31 = (0x089B30B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 772u, 0x089B30B4u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B30B4u) goto L_089B30B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B30B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (65504u << 16u); @@ -8471,8 +10263,21 @@ L_089B30FC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089B3108u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 777u, 0x089B3108u, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3108u) goto L_089B3108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3108: aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8500,8 +10305,21 @@ L_089B3108: L_089B313C: aot_gpr_31 = (0x089B3144u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 779u, 0x089B3144u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3144u) goto L_089B3144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3144: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2274))); aot_gpr_5 = (0u | 10u); @@ -8526,8 +10344,21 @@ L_089B3164: ctx.gpr[6] = (0u | 31u); aot_gpr_31 = (0x089B3178u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 782u, 0x089B3178u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3178u) goto L_089B3178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3178: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8541,8 +10372,21 @@ L_089B3180: ctx.gpr[6] = (0u | 29u); aot_gpr_31 = (0x089B3194u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 784u, 0x089B3194u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3194u) goto L_089B3194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3194: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8592,8 +10436,21 @@ L_089B31E0: L_089B31E8: aot_gpr_31 = (0x089B31F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 790u, 0x089B31F0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B31F0u) goto L_089B31F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B31F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1360))); aot_gpr_5 = (0u | 6u); @@ -8607,8 +10464,21 @@ L_089B3200: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2192))); aot_gpr_31 = (0x089B320Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 792u, 0x089B320Cu, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B320Cu) goto L_089B320C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B320C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[6] = (0u | 2u); @@ -8674,8 +10544,21 @@ L_089B3278: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B3284u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 800u, 0x089B3284u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3284u) goto L_089B3284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3284: aot_gpr_31 = (0x089B328Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8699,8 +10582,21 @@ L_089B32A0: L_089B32A8: aot_gpr_31 = (0x089B32B0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 804u, 0x089B32B0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B32B0u) goto L_089B32B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B32B0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); @@ -8713,8 +10609,21 @@ L_089B32B8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B32C4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 806u, 0x089B32C4u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B32C4u) goto L_089B32C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B32C4: aot_gpr_31 = (0x089B32CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8769,8 +10678,21 @@ L_089B3324: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B3330u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 813u, 0x089B3330u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3330u) goto L_089B3330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3330: aot_gpr_31 = (0x089B3338u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8794,8 +10716,21 @@ L_089B334C: L_089B3354: aot_gpr_31 = (0x089B335Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 817u, 0x089B335Cu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B335Cu) goto L_089B335C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B335C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); @@ -8817,8 +10752,21 @@ L_089B3374: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2192))); aot_gpr_31 = (0x089B3380u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 820u, 0x089B3380u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3380u) goto L_089B3380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3380: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -8856,8 +10804,21 @@ L_089B33BC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B33C8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 825u, 0x089B33C8u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B33C8u) goto L_089B33C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B33C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8868,8 +10829,21 @@ L_089B33C8: L_089B33D0: aot_gpr_31 = (0x089B33D8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 827u, 0x089B33D8u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B33D8u) goto L_089B33D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B33D8: aot_gpr_31 = (0x089B33E0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B33E0u) goto L_089B33E0; @@ -8892,8 +10866,21 @@ L_089B33F4: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x089B3418u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 830u, 0x089B3418u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3418u) goto L_089B3418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3418: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8924,8 +10911,21 @@ L_089B3444: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B3450u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 834u, 0x089B3450u, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3450u) goto L_089B3450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3450: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8937,8 +10937,21 @@ L_089B3458: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B3464u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 836u, 0x089B3464u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3464u) goto L_089B3464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3464: aot_gpr_31 = (0x089B346Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8969,8 +10982,21 @@ L_089B348C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B34ACu); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 840u, 0x089B34ACu, 0x08B03DB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 972u, 0x08B03DB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B34ACu) goto L_089B34AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B34AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8990,8 +11016,21 @@ L_089B34B8: L_089B34C4: aot_gpr_31 = (0x089B34CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 843u, 0x089B34CCu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B34CCu) goto L_089B34CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B34CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -9002,8 +11041,21 @@ L_089B34CC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089B34F0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 844u, 0x089B34F0u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B34F0u) goto L_089B34F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B34F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -9030,13 +11082,39 @@ L_089B3518: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B352Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 847u, 0x089B352Cu, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B352Cu) goto L_089B352C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B352C: aot_gpr_31 = (0x089B3534u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 848u, 0x089B3534u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3534u) goto L_089B3534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3534: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9048,8 +11126,21 @@ L_089B353C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x089B3548u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 850u, 0x089B3548u, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3548u) goto L_089B3548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3548: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9092,8 +11183,21 @@ L_089B3578: L_089B3580: aot_gpr_31 = (0x089B3588u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 856u, 0x089B3588u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3588u) goto L_089B3588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3588: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1360))); aot_gpr_5 = (0u | 6u); @@ -9107,8 +11211,21 @@ L_089B3598: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2192))); aot_gpr_31 = (0x089B35A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 858u, 0x089B35A4u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B35A4u) goto L_089B35A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B35A4: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2274))); aot_gpr_5 = (0u | 10u); @@ -9122,8 +11239,21 @@ L_089B35B4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B35C0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 860u, 0x089B35C0u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B35C0u) goto L_089B35C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B35C0: aot_gpr_31 = (0x089B35C8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -9169,8 +11299,8 @@ L_089B3604: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B3620: @@ -9279,8 +11409,21 @@ L_089B36D0: L_089B36D8: aot_gpr_31 = (0x089B36E0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 878u, 0x089B36E0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B36E0u) goto L_089B36E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B36E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9291,8 +11434,21 @@ L_089B36E0: L_089B36E8: aot_gpr_31 = (0x089B36F0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 880u, 0x089B36F0u, 0x0890850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 84u, 0x0890850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B36F0u) goto L_089B36F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B36F0: aot_gpr_31 = (0x089B36F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -9327,8 +11483,21 @@ L_089B3720: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B372Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 885u, 0x089B372Cu, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B372Cu) goto L_089B372C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B372C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2228))); aot_gpr_31 = (0x089B3738u); @@ -9339,8 +11508,21 @@ L_089B3738: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B3744u); aot_gpr_5 = (0u | 65u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 887u, 0x089B3744u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3744u) goto L_089B3744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3744: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(460))); aot_gpr_5 = (49152u << 16u); @@ -9362,8 +11544,21 @@ L_089B3764: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(563), static_cast(0u)); aot_gpr_31 = (0x089B3780u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 889u, 0x089B3780u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3780u) goto L_089B3780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3780: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); aot_gpr_5 = (0u + static_cast(-497)); @@ -9404,8 +11599,21 @@ L_089B37B0: L_089B37C0: aot_gpr_31 = (0x089B37C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-6640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 895u, 0x089B37C8u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B37C8u) goto L_089B37C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B37C8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (17279u << 16u); @@ -9422,8 +11630,21 @@ L_089B37C8: L_089B37E8: aot_gpr_31 = (0x089B37F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-6640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 897u, 0x089B37F0u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B37F0u) goto L_089B37F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B37F0: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (17279u << 16u); @@ -9472,8 +11693,21 @@ L_089B3840: aot_gpr_4 = (ctx.gpr[17] + static_cast(944)); aot_gpr_31 = (0x089B384Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 903u, 0x089B384Cu, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B384Cu) goto L_089B384C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B384C: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -9486,14 +11720,40 @@ L_089B3858: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B3864u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 905u, 0x089B3864u, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3864u) goto L_089B3864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3864: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B3870u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 906u, 0x089B3870u, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3870u) goto L_089B3870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3870: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9528,16 +11788,42 @@ L_089B389C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089B38ACu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 911u, 0x089B38ACu, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B38ACu) goto L_089B38AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B38AC: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B38C0u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 912u, 0x089B38C0u, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B38C0u) goto L_089B38C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B38C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); ctx.gpr[19] = (0u | 1u); @@ -9568,8 +11854,21 @@ L_089B38EC: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B38F8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 916u, 0x089B38F8u, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B38F8u) goto L_089B38F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B38F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9581,8 +11880,21 @@ L_089B3900: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B390Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 918u, 0x089B390Cu, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B390Cu) goto L_089B390C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B390C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9655,8 +11967,21 @@ L_089B3980: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); aot_gpr_31 = (0x089B398Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 927u, 0x089B398Cu, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B398Cu) goto L_089B398C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B398C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9697,8 +12022,21 @@ L_089B39C8: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x089B39D8u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 932u, 0x089B39D8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B39D8u) goto L_089B39D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B39D8: aot_gpr_31 = (0x089B39E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); @@ -9714,8 +12052,21 @@ L_089B39E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B39F4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 935u, 0x089B39F4u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B39F4u) goto L_089B39F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B39F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -9738,26 +12089,78 @@ L_089B3A0C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B3A40u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 937u, 0x089B3A40u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3A40u) goto L_089B3A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3A40: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B3A4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 938u, 0x089B3A4Cu, 0x08B04218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 30u, 0x08B04218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3A4Cu) goto L_089B3A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3A4C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B3A58u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 939u, 0x089B3A58u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3A58u) goto L_089B3A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3A58: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B3A64u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 940u, 0x089B3A64u, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3A64u) goto L_089B3A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3A64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1360))); aot_gpr_5 = (0u | 6u); @@ -9790,8 +12193,21 @@ L_089B3A94: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x089B3AA4u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 944u, 0x089B3AA4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3AA4u) goto L_089B3AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3AA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(400)); @@ -9911,8 +12327,21 @@ L_089B3B98: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x089B3BA8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 956u, 0x089B3BA8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3BA8u) goto L_089B3BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3BA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); aot_gpr_5 = (0u | 6u); @@ -9943,8 +12372,21 @@ L_089B3BD4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089B3BE0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 961u, 0x089B3BE0u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3BE0u) goto L_089B3BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3BE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10012,8 +12454,21 @@ L_089B3C50: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x089B3C60u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 970u, 0x089B3C60u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3C60u) goto L_089B3C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3C60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -10026,13 +12481,39 @@ L_089B3C6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); aot_gpr_31 = (0x089B3C78u); aot_gpr_5 = (0u | 122u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 972u, 0x089B3C78u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3C78u) goto L_089B3C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3C78: aot_gpr_31 = (0x089B3C80u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 973u, 0x089B3C80u, 0x08910F00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 264u, 0x08910F00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3C80u) goto L_089B3C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3C80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(680))); aot_gpr_5 = (0u | 1u); @@ -10054,8 +12535,21 @@ L_089B3C9C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B3CA8u); aot_gpr_5 = (0u | 120u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 976u, 0x089B3CA8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3CA8u) goto L_089B3CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3CA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -10095,8 +12589,21 @@ L_089B3CE4: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089B3CF0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 981u, 0x089B3CF0u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3CF0u) goto L_089B3CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3CF0: aot_gpr_31 = (0x089B3CF8u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -10133,8 +12640,8 @@ L_089B3D20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B3D3C: @@ -10230,8 +12737,21 @@ L_089B3DD0: L_089B3DD8: aot_gpr_31 = (0x089B3DE0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 997u, 0x089B3DE0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3DE0u) goto L_089B3DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3DE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10244,8 +12764,21 @@ L_089B3DE8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089B3DF8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 999u, 0x089B3DF8u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3DF8u) goto L_089B3DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3DF8: ctx.gpr[20] = (aot_gpr_29 + static_cast(16)); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -10253,8 +12786,21 @@ L_089B3DF8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B3E10u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 1000u, 0x089B3E10u, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3E10u) goto L_089B3E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3E10: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(614)))))); aot_gpr_4 = (0u | 0u); @@ -10271,8 +12817,21 @@ L_089B3E28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_4); aot_gpr_31 = (0x089B3E34u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 1002u, 0x089B3E34u, 0x08B02090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 542u, 0x08B02090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3E34u) goto L_089B3E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3E34: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); @@ -10311,8 +12870,21 @@ L_089B3E74: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089B3E80u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 1007u, 0x089B3E80u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3E80u) goto L_089B3E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3E80: { const bool branch_taken = aot_gpr_2 != ctx.gpr[22]; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -10326,8 +12898,21 @@ L_089B3E88: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089B3E98u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 1009u, 0x089B3E98u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3E98u) goto L_089B3E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3E98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_089B3E9C; @@ -10403,8 +12988,21 @@ L_089B3F10: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B3F1Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 1019u, 0x089B3F1Cu, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3F1Cu) goto L_089B3F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3F1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10484,8 +13082,21 @@ L_089B3F9C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B3FACu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 1029u, 0x089B3FACu, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3FACu) goto L_089B3FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3FAC: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(900))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -10499,8 +13110,21 @@ L_089B3FB8: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x089B3FC8u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0107->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0107_entry, 1031u, 0x089B3FC8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B3FC8u) goto L_089B3FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B3FC8: aot_gpr_31 = (0x089B3FD0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(900))); diff --git a/profiles/vcs/generated/generated_unit_0108.cpp b/profiles/vcs/generated/generated_unit_0108.cpp index 625cb31..85776a4 100644 --- a/profiles/vcs/generated/generated_unit_0108.cpp +++ b/profiles/vcs/generated/generated_unit_0108.cpp @@ -816,6 +816,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089B4000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -869,8 +893,21 @@ L_089B4040: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B404Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 7u, 0x089B404Cu, 0x0892738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 770u, 0x0892738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B404Cu) goto L_089B404C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B404C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -882,8 +919,21 @@ L_089B4054: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089B4060u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 9u, 0x089B4060u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4060u) goto L_089B4060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4060: aot_gpr_31 = (0x089B4068u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -911,8 +961,8 @@ L_089B407C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B40A4: @@ -988,8 +1038,21 @@ L_089B412C: L_089B4134: aot_gpr_31 = (0x089B413Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 20u, 0x089B413Cu, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B413Cu) goto L_089B413C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B413C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1000,8 +1063,21 @@ L_089B413C: L_089B4144: aot_gpr_31 = (0x089B414Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 22u, 0x089B414Cu, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B414Cu) goto L_089B414C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B414C: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -1027,8 +1103,21 @@ L_089B4154: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089B416Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 24u, 0x089B416Cu, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B416Cu) goto L_089B416C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B416C: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[17] != 0u) { @@ -1048,8 +1137,21 @@ L_089B4180: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B418Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 27u, 0x089B418Cu, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B418Cu) goto L_089B418C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B418C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1076,8 +1178,21 @@ L_089B41A0: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089B41B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 30u, 0x089B41B8u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B41B8u) goto L_089B41B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B41B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1119,25 +1234,77 @@ L_089B4208: aot_gpr_4 = (aot_gpr_29 + static_cast(52)); aot_gpr_31 = (0x089B4218u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 35u, 0x089B4218u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4218u) goto L_089B4218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4218: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_gpr_31 = (0x089B4224u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 36u, 0x089B4224u, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4224u) goto L_089B4224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4224: aot_gpr_31 = (0x089B422Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 37u, 0x089B422Cu, 0x08910BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 210u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 210u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 210u, 0x08910BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B422Cu) goto L_089B422C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B422C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B4238u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 38u, 0x089B4238u, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4238u) goto L_089B4238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4238: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1170,20 +1337,59 @@ L_089B426C: aot_gpr_4 = (aot_gpr_29 + static_cast(68)); aot_gpr_31 = (0x089B427Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 42u, 0x089B427Cu, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B427Cu) goto L_089B427C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B427C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_31 = (0x089B4288u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 43u, 0x089B4288u, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4288u) goto L_089B4288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4288: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B4294u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 44u, 0x089B4294u, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4294u) goto L_089B4294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4294: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1226,8 +1432,21 @@ L_089B429C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B42DCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 46u, 0x089B42DCu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B42DCu) goto L_089B42DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B42DC: aot_gpr_4 = (ctx.gpr[17] + static_cast(112)); { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[20])}; @@ -1248,8 +1467,21 @@ L_089B42F4: L_089B4304: aot_gpr_31 = (0x089B430Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 49u, 0x089B430Cu, 0x08B02090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 542u, 0x08B02090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B430Cu) goto L_089B430C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B430C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1284,16 +1516,42 @@ L_089B4344: aot_gpr_4 = (aot_gpr_29 + static_cast(84)); aot_gpr_31 = (0x089B4354u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 53u, 0x089B4354u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4354u) goto L_089B4354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4354: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_gpr_4 = (aot_gpr_29 + static_cast(100)); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B4368u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 54u, 0x089B4368u, 0x08AF5564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 177u, 0x08AF5564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4368u) goto L_089B4368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4368: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -1425,8 +1683,21 @@ L_089B440C: L_089B4418: aot_gpr_31 = (0x089B4420u); aot_gpr_4 = (ctx.gpr[17] + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 73u, 0x089B4420u, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4420u) goto L_089B4420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4420: aot_gpr_4 = (ctx.gpr[2] < static_cast(225) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1456,8 +1727,21 @@ L_089B443C: L_089B444C: aot_gpr_31 = (0x089B4454u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 78u, 0x089B4454u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4454u) goto L_089B4454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4454: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1468,8 +1752,21 @@ L_089B4454: L_089B445C: aot_gpr_31 = (0x089B4464u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 80u, 0x089B4464u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4464u) goto L_089B4464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4464: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1480,8 +1777,21 @@ L_089B4464: L_089B446C: aot_gpr_31 = (0x089B4474u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 82u, 0x089B4474u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4474u) goto L_089B4474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4474: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1492,8 +1802,21 @@ L_089B4474: L_089B447C: aot_gpr_31 = (0x089B4484u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 84u, 0x089B4484u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4484u) goto L_089B4484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4484: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1504,8 +1827,21 @@ L_089B4484: L_089B448C: aot_gpr_31 = (0x089B4494u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 86u, 0x089B4494u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4494u) goto L_089B4494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4494: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1516,8 +1852,21 @@ L_089B4494: L_089B449C: aot_gpr_31 = (0x089B44A4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 88u, 0x089B44A4u, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B44A4u) goto L_089B44A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B44A4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1528,8 +1877,21 @@ L_089B44A4: L_089B44AC: aot_gpr_31 = (0x089B44B4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 90u, 0x089B44B4u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B44B4u) goto L_089B44B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B44B4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1608,8 +1970,21 @@ L_089B4524: aot_gpr_4 = (aot_gpr_29 + static_cast(100)); aot_gpr_31 = (0x089B4530u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 102u, 0x089B4530u, 0x08AF55ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 181u, 0x08AF55ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4530u) goto L_089B4530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4530: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1640,8 +2015,21 @@ L_089B455C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_gpr_31 = (0x089B4568u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 106u, 0x089B4568u, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4568u) goto L_089B4568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4568: aot_gpr_31 = (0x089B4570u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1706,14 +2094,40 @@ L_089B45D0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_gpr_31 = (0x089B45DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 115u, 0x089B45DCu, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B45DCu) goto L_089B45DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B45DC: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B45E8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 116u, 0x089B45E8u, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B45E8u) goto L_089B45E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B45E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1725,8 +2139,21 @@ L_089B45F0: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089B45FCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 118u, 0x089B45FCu, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B45FCu) goto L_089B45FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B45FC: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(148), aot_run_words); @@ -1741,8 +2168,8 @@ L_089B45FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B4624: @@ -1787,8 +2214,21 @@ L_089B4684: } L_089B468C: aot_gpr_31 = (0x089B4694u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 124u, 0x089B4694u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4694u) goto L_089B4694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4694: { const bool branch_taken = ctx.gpr[19] == ctx.gpr[2]; if (branch_taken) { @@ -1959,8 +2399,21 @@ L_089B4784: L_089B478C: aot_gpr_31 = (0x089B4794u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 147u, 0x089B4794u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4794u) goto L_089B4794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4794: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1996,8 +2449,21 @@ L_089B47D4: L_089B47D8: aot_gpr_31 = (0x089B47E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 152u, 0x089B47E0u, 0x08906858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 561u, 0x08906858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B47E0u) goto L_089B47E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B47E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2085,8 +2551,21 @@ L_089B486C: L_089B487C: aot_gpr_31 = (0x089B4884u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 163u, 0x089B4884u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4884u) goto L_089B4884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4884: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2143,8 +2622,21 @@ L_089B48AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089B48F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 168u, 0x089B48F0u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B48F0u) goto L_089B48F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B48F0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_gpr_4 = (static_cast(aot_gpr_4) < 9 ? 1u : 0u); @@ -2225,8 +2717,21 @@ L_089B4974: L_089B4984: aot_gpr_31 = (0x089B498Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 178u, 0x089B498Cu, 0x08B01AA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 439u, 0x08B01AA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B498Cu) goto L_089B498C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B498C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2295,8 +2800,8 @@ L_089B4A00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B4A30: @@ -2348,8 +2853,21 @@ L_089B4AA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B4AB0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 189u, 0x089B4AB0u, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4AB0u) goto L_089B4AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4AB0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -2392,8 +2910,21 @@ L_089B4B00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B4B14u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 193u, 0x089B4B14u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4B14u) goto L_089B4B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4B14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_5 = (ctx.gpr[17] << 5u); @@ -2402,8 +2933,21 @@ L_089B4B14: aot_gpr_5 = (aot_gpr_6 + aot_gpr_5); aot_gpr_31 = (0x089B4B30u); aot_gpr_5 = (aot_gpr_5 + static_cast(6096)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 194u, 0x089B4B30u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4B30u) goto L_089B4B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4B30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2435,8 +2979,21 @@ L_089B4B38: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089B4B68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 196u, 0x089B4B68u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4B68u) goto L_089B4B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4B68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(3292))); @@ -2634,8 +3191,21 @@ L_089B4D10: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089B4D40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 214u, 0x089B4D40u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4D40u) goto L_089B4D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4D40: aot_gpr_4 = (16752u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2643,8 +3213,21 @@ L_089B4D40: ctx.gpr[20] = (0u | 1u); aot_gpr_31 = (0x089B4D58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 215u, 0x089B4D58u, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4D58u) goto L_089B4D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4D58: ctx.gpr[18] = (ctx.gpr[20] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); @@ -2710,8 +3293,21 @@ L_089B4DAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089B4DF0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 219u, 0x089B4DF0u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B4DF0u) goto L_089B4DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B4DF0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); ctx.gpr[17] = (0u | 0u); @@ -3142,8 +3738,21 @@ L_089B50C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B50D0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 239u, 0x089B50D0u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B50D0u) goto L_089B50D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B50D0: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3482,8 +4091,21 @@ L_089B51EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089B522Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 243u, 0x089B522Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B522Cu) goto L_089B522C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B522C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3511,8 +4133,21 @@ L_089B5234: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089B5254u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 245u, 0x089B5254u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5254u) goto L_089B5254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5254: aot_gpr_4 = (16752u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3540,19 +4175,58 @@ L_089B529C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B52A8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 247u, 0x089B52A8u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B52A8u) goto L_089B52A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B52A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B52B4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 248u, 0x089B52B4u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B52B4u) goto L_089B52B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B52B4: aot_gpr_31 = (0x089B52BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 249u, 0x089B52BCu, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B52BCu) goto L_089B52BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B52BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3614,8 +4288,21 @@ L_089B5340: L_089B534C: aot_gpr_31 = (0x089B5354u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 256u, 0x089B5354u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5354u) goto L_089B5354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5354: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3657,8 +4344,21 @@ L_089B5380: L_089B5394: aot_gpr_31 = (0x089B539Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 262u, 0x089B539Cu, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B539Cu) goto L_089B539C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B539C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3680,13 +4380,39 @@ L_089B53A4: aot_gpr_5 = (aot_gpr_29 + static_cast(496)); aot_gpr_31 = (0x089B53DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 264u, 0x089B53DCu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B53DCu) goto L_089B53DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B53DC: aot_gpr_31 = (0x089B53E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 265u, 0x089B53E4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B53E4u) goto L_089B53E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B53E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3697,8 +4423,21 @@ L_089B53E4: L_089B53EC: aot_gpr_31 = (0x089B53F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 267u, 0x089B53F4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B53F4u) goto L_089B53F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B53F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_5 = (0u | 2u); @@ -3713,8 +4452,21 @@ L_089B53F4: L_089B540C: aot_gpr_31 = (0x089B5414u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 269u, 0x089B5414u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5414u) goto L_089B5414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5414: aot_gpr_4 = (ctx.gpr[2] + static_cast(624)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -3724,8 +4476,21 @@ L_089B5414: L_089B5424: aot_gpr_31 = (0x089B542Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 271u, 0x089B542Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B542Cu) goto L_089B542C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B542C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B5438u); @@ -3834,8 +4599,21 @@ L_089B5504: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B5540u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 282u, 0x089B5540u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5540u) goto L_089B5540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5540: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -3903,8 +4681,21 @@ L_089B55A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B55B4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 290u, 0x089B55B4u, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B55B4u) goto L_089B55B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B55B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); goto L_089B55B8; @@ -3948,8 +4739,21 @@ L_089B55F8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1764), aot_gpr_4); aot_gpr_31 = (0x089B563Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 294u, 0x089B563Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B563Cu) goto L_089B563C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B563C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3960,8 +4764,21 @@ L_089B563C: L_089B5644: aot_gpr_31 = (0x089B564Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 296u, 0x089B564Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B564Cu) goto L_089B564C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B564C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(72))); aot_gpr_5 = (0u | 2u); @@ -3976,8 +4793,21 @@ L_089B564C: L_089B5664: aot_gpr_31 = (0x089B566Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 298u, 0x089B566Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B566Cu) goto L_089B566C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B566C: aot_gpr_4 = (ctx.gpr[2] + static_cast(624)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -4034,8 +4864,21 @@ L_089B56C4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2192))); aot_gpr_31 = (0x089B56D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 305u, 0x089B56D0u, 0x08909804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 405u, 0x08909804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B56D0u) goto L_089B56D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B56D0: ctx.gpr[2] = (0u | 0u); goto L_089B56D4; @@ -4053,8 +4896,8 @@ L_089B56D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(704)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B56FC: @@ -4068,8 +4911,21 @@ L_089B56FC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x089B5728u); ctx.gpr[19] = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 308u, 0x089B5728u, 0x0890EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 697u, 0x0890EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5728u) goto L_089B5728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5728: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(852))); aot_gpr_6 = (17096u << 16u); @@ -4152,8 +5008,21 @@ L_089B5798: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089B57B0u); ctx.gpr[7] = (0u | 187u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 318u, 0x089B57B0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B57B0u) goto L_089B57B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B57B0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B57BCu); @@ -4183,8 +5052,21 @@ L_089B57D4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089B57ECu); ctx.gpr[7] = (0u | 98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 322u, 0x089B57ECu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B57ECu) goto L_089B57EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B57EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B57F8u); @@ -4205,8 +5087,21 @@ L_089B5800: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089B5818u); ctx.gpr[7] = (0u | 97u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 325u, 0x089B5818u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5818u) goto L_089B5818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5818: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B5824u); @@ -4246,8 +5141,21 @@ L_089B5850: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089B5868u); ctx.gpr[7] = (0u | 204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 330u, 0x089B5868u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5868u) goto L_089B5868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5868: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B5874u); @@ -4295,8 +5203,21 @@ L_089B58A8: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089B58C0u); ctx.gpr[7] = (0u | 204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 336u, 0x089B58C0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B58C0u) goto L_089B58C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B58C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B58CCu); @@ -4336,8 +5257,21 @@ L_089B58F8: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089B5910u); ctx.gpr[7] = (0u | 204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 341u, 0x089B5910u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5910u) goto L_089B5910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5910: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B591Cu); @@ -4367,8 +5301,21 @@ L_089B5934: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089B594Cu); ctx.gpr[7] = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 345u, 0x089B594Cu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B594Cu) goto L_089B594C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B594C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B5958u); @@ -4389,8 +5336,21 @@ L_089B5960: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089B5978u); ctx.gpr[7] = (0u | 99u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 348u, 0x089B5978u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5978u) goto L_089B5978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5978: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B5984u); @@ -4423,8 +5383,21 @@ L_089B59A8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089B59C0u); ctx.gpr[7] = (0u | 97u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 352u, 0x089B59C0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B59C0u) goto L_089B59C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B59C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B59CCu); @@ -4445,8 +5418,21 @@ L_089B59D4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089B59ECu); ctx.gpr[7] = (0u | 110u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 355u, 0x089B59ECu, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B59ECu) goto L_089B59EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B59EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B59F8u); @@ -4456,8 +5442,21 @@ L_089B59EC: L_089B59F8: aot_gpr_31 = (0x089B5A00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 357u, 0x089B5A00u, 0x0890BDA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 970u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 970u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 970u, 0x0890BDA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5A00u) goto L_089B5A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5A00: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4470,8 +5469,8 @@ L_089B5A00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B5A20: @@ -4484,8 +5483,21 @@ L_089B5A20: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(1540), aot_run_words); } aot_gpr_31 = (0x089B5A70u); aot_gpr_16 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 359u, 0x089B5A70u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5A70u) goto L_089B5A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5A70: { const bool branch_taken = ctx.gpr[2] != 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1488), aot_gpr_16); @@ -4551,31 +5563,83 @@ L_089B5AB8: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x089B5AF8u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 364u, 0x089B5AF8u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5AF8u) goto L_089B5AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5AF8: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B5B08u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 365u, 0x089B5B08u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5B08u) goto L_089B5B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5B08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(128), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B5B1Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 366u, 0x089B5B1Cu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5B1Cu) goto L_089B5B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5B1C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(132), std::bit_cast(aot_fpr_12)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B5B30u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 367u, 0x089B5B30u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5B30u) goto L_089B5B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5B30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_4 = (16256u << 16u); @@ -4593,8 +5657,21 @@ L_089B5B30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089B5B70u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 368u, 0x089B5B70u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5B70u) goto L_089B5B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5B70: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4618,8 +5695,21 @@ L_089B5B98: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B5BA8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 371u, 0x089B5BA8u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5BA8u) goto L_089B5BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5BA8: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4667,8 +5757,21 @@ L_089B5BA8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B5C14u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 372u, 0x089B5C14u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5C14u) goto L_089B5C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5C14: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4714,15 +5817,41 @@ L_089B5C14: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B5C78u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 373u, 0x089B5C78u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5C78u) goto L_089B5C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5C78: ctx.gpr[21] = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B5C88u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 374u, 0x089B5C88u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5C88u) goto L_089B5C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5C88: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4914,15 +6043,41 @@ L_089B5EC8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B5EDCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 380u, 0x089B5EDCu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5EDCu) goto L_089B5EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5EDC: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[21] = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x089B5EECu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 381u, 0x089B5EECu, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5EECu) goto L_089B5EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5EEC: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4987,8 +6142,21 @@ L_089B5F78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B5F88u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 383u, 0x089B5F88u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B5F88u) goto L_089B5F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B5F88: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5053,8 +6221,21 @@ L_089B601C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B6028u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 385u, 0x089B6028u, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6028u) goto L_089B6028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6028: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); @@ -5064,8 +6245,21 @@ L_089B6028: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B6048u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 386u, 0x089B6048u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6048u) goto L_089B6048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6048: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5119,8 +6313,21 @@ L_089B60AC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B60B8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 388u, 0x089B60B8u, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B60B8u) goto L_089B60B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B60B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -5182,16 +6389,42 @@ L_089B613C: ctx.gpr[21] = (aot_gpr_29 + static_cast(352)); aot_gpr_31 = (0x089B615Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 393u, 0x089B615Cu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B615Cu) goto L_089B615C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B615C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1496), ctx.gpr[17]); ctx.gpr[17] = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x089B6170u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 394u, 0x089B6170u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6170u) goto L_089B6170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6170: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5259,8 +6492,21 @@ L_089B61FC: ctx.gpr[17] = (aot_gpr_29 + static_cast(416)); aot_gpr_31 = (0x089B6214u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 396u, 0x089B6214u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6214u) goto L_089B6214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6214: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5327,8 +6573,21 @@ L_089B62A8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B62B8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 398u, 0x089B62B8u, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B62B8u) goto L_089B62B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B62B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); @@ -5338,8 +6597,21 @@ L_089B62B8: ctx.gpr[17] = (aot_gpr_29 + static_cast(464)); aot_gpr_31 = (0x089B62D8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 399u, 0x089B62D8u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B62D8u) goto L_089B62D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B62D8: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5393,8 +6665,21 @@ L_089B633C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B6348u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 401u, 0x089B6348u, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6348u) goto L_089B6348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6348: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -5456,15 +6741,41 @@ L_089B63D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B63E4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 408u, 0x089B63E4u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B63E4u) goto L_089B63E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B63E4: ctx.gpr[17] = (aot_gpr_29 + static_cast(528)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B63F4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 409u, 0x089B63F4u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B63F4u) goto L_089B63F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B63F4: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5528,8 +6839,21 @@ L_089B6480: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B6490u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 411u, 0x089B6490u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6490u) goto L_089B6490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6490: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5594,8 +6918,21 @@ L_089B6524: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1324))); aot_gpr_31 = (0x089B6530u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 413u, 0x089B6530u, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6530u) goto L_089B6530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6530: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); @@ -5605,8 +6942,21 @@ L_089B6530: aot_gpr_16 = (aot_gpr_29 + static_cast(624)); aot_gpr_31 = (0x089B6550u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 414u, 0x089B6550u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6550u) goto L_089B6550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6550: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5660,8 +7010,21 @@ L_089B65B4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1328))); aot_gpr_31 = (0x089B65C0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 416u, 0x089B65C0u, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B65C0u) goto L_089B65C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B65C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -5715,14 +7078,40 @@ L_089B6638: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B6644u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 422u, 0x089B6644u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6644u) goto L_089B6644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6644: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B6650u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 423u, 0x089B6650u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6650u) goto L_089B6650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6650: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5783,8 +7172,21 @@ L_089B66D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B66E0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 425u, 0x089B66E0u, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B66E0u) goto L_089B66E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B66E0: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5849,8 +7251,21 @@ L_089B6774: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1324))); aot_gpr_31 = (0x089B6780u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 427u, 0x089B6780u, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6780u) goto L_089B6780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6780: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); @@ -5859,8 +7274,21 @@ L_089B6780: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B679Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 428u, 0x089B679Cu, 0x089A8A88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 77u, 0x089A8A88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B679Cu) goto L_089B679C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B679C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5910,8 +7338,21 @@ L_089B67F0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1328))); aot_gpr_31 = (0x089B67FCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 430u, 0x089B67FCu, 0x0890FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 849u, 0x0890FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B67FCu) goto L_089B67FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B67FC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -6063,8 +7504,21 @@ L_089B688C: L_089B69F4: aot_gpr_31 = (0x089B69FCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 437u, 0x089B69FCu, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B69FCu) goto L_089B69FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B69FC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6076,8 +7530,21 @@ L_089B6A04: aot_gpr_5 = (aot_gpr_29 + static_cast(808)); aot_gpr_31 = (0x089B6A10u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 439u, 0x089B6A10u, 0x0890FE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 875u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 875u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 875u, 0x0890FE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6A10u) goto L_089B6A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6A10: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(808))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(812))); @@ -6113,8 +7580,21 @@ L_089B6A58: aot_gpr_16 = (0u | 1u); aot_gpr_31 = (0x089B6A68u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 443u, 0x089B6A68u, 0x0890FED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 880u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 880u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 880u, 0x0890FED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6A68u) goto L_089B6A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6A68: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -6148,8 +7628,8 @@ L_089B6A74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1568)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B6ABC: @@ -6160,8 +7640,8 @@ L_089B6ABC: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(32), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B6ADC: @@ -6177,8 +7657,8 @@ L_089B6ADC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B6B10: @@ -6226,8 +7706,21 @@ L_089B6B74: aot_gpr_6 = (0u | 48u); aot_gpr_31 = (0x089B6BA4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(27324)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 451u, 0x089B6BA4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6BA4u) goto L_089B6BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6BA4: aot_gpr_4 = (2203u << 16u); ctx.gpr[18] = (aot_gpr_4 + static_cast(27356)); @@ -6236,16 +7729,42 @@ L_089B6BA4: aot_gpr_6 = (0u | 64u); aot_gpr_31 = (0x089B6BC0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 452u, 0x089B6BC0u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6BC0u) goto L_089B6BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6BC0: aot_gpr_4 = (aot_gpr_16 + static_cast(25168)); aot_gpr_5 = (0u | 14u); aot_gpr_6 = (0u | 64u); aot_gpr_31 = (0x089B6BD4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 453u, 0x089B6BD4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6BD4u) goto L_089B6BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6BD4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(26080), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(26084), 0u); @@ -6301,8 +7820,21 @@ L_089B6C68: L_089B6C70: aot_gpr_31 = (0x089B6C78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 459u, 0x089B6C78u, 0x089B8020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 3u, 0x089B8020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6C78u) goto L_089B6C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6C78: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(5), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(6), static_cast(ctx.gpr[17])); @@ -6381,8 +7913,8 @@ L_089B6D20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B6D40: @@ -6439,8 +7971,8 @@ L_089B6D90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B6DA4: @@ -6458,8 +7990,21 @@ L_089B6DA4: L_089B6DBC: aot_gpr_31 = (0x089B6DC4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 475u, 0x089B6DC4u, 0x08809EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 418u, 0x08809EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6DC4u) goto L_089B6DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6DC4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(0), static_cast(ctx.gpr[2])); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2), static_cast(0u)); @@ -6475,31 +8020,83 @@ L_089B6DD8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(4), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089B6DE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 477u, 0x089B6DE8u, 0x088C60A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 400u, 0x088C60A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6DE8u) goto L_089B6DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6DE8: aot_gpr_31 = (0x089B6DF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 478u, 0x089B6DF0u, 0x08985DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 516u, 0x08985DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6DF0u) goto L_089B6DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6DF0: aot_gpr_31 = (0x089B6DF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 479u, 0x089B6DF8u, 0x08985DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 519u, 0x08985DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6DF8u) goto L_089B6DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6DF8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x089B6E04u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 480u, 0x089B6E04u, 0x0888A310u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 624u, 0x0888A310u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6E04u) goto L_089B6E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6E04: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B6E14: @@ -6518,8 +8115,21 @@ L_089B6E38: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x089B6E44u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 483u, 0x089B6E44u, 0x08887E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 888u, 0x08887E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6E44u) goto L_089B6E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6E44: ctx.gpr[18] = (0u | 0u); aot_gpr_5 = (0u | 250u); @@ -6545,8 +8155,21 @@ L_089B6E74: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(21524), 0u); aot_gpr_31 = (0x089B6E84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 486u, 0x089B6E84u, 0x088C6298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 428u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 428u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 428u, 0x088C6298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6E84u) goto L_089B6E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6E84: ctx.gpr[18] = (0u | 0u); goto L_089B6E88; @@ -6555,8 +8178,21 @@ L_089B6E88: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B6E98u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 488u, 0x089B6E98u, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6E98u) goto L_089B6E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6E98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6568,8 +8204,21 @@ L_089B6EA0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B6EACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 490u, 0x089B6EACu, 0x0880A280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 480u, 0x0880A280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6EACu) goto L_089B6EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6EAC: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (ctx.gpr[18] < static_cast(68) ? 1u : 0u); @@ -6582,14 +8231,40 @@ L_089B6EAC: L_089B6EBC: aot_gpr_31 = (0x089B6EC4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 492u, 0x089B6EC4u, 0x08809FD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 439u, 0x08809FD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6EC4u) goto L_089B6EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6EC4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(0), static_cast(0u)); aot_gpr_31 = (0x089B6ED0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 493u, 0x089B6ED0u, 0x088C63B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 453u, 0x088C63B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6ED0u) goto L_089B6ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6ED0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6601,8 +8276,8 @@ L_089B6ED0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B6EEC: @@ -6611,8 +8286,21 @@ L_089B6EEC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089B6F08u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 495u, 0x089B6F08u, 0x089B8020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 3u, 0x089B8020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6F08u) goto L_089B6F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6F08: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6625,15 +8313,41 @@ L_089B6F14: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x089B6F20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 497u, 0x089B6F20u, 0x088C5E7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 378u, 0x088C5E7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6F20u) goto L_089B6F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6F20: aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x089B6F30u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 498u, 0x089B6F30u, 0x08888408u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 89u, 0x08888408u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6F30u) goto L_089B6F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6F30: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(12), static_cast(0u)); goto L_089B6F34; @@ -6667,8 +8381,21 @@ L_089B6F6C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x089B6F7Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 502u, 0x089B6F7Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6F7Cu) goto L_089B6F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6F7C: aot_gpr_31 = (0x089B6F84u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-13256)); @@ -6677,15 +8404,41 @@ L_089B6F7C: L_089B6F84: aot_gpr_31 = (0x089B6F8Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 504u, 0x089B6F8Cu, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6F8Cu) goto L_089B6F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6F8C: aot_gpr_4 = (ctx.gpr[18] | ctx.gpr[2]); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(26341), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089B6F9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 505u, 0x089B6F9Cu, 0x089B85D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 69u, 0x089B85D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6F9Cu) goto L_089B6F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6F9C: aot_gpr_31 = (0x089B6FA4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6694,8 +8447,21 @@ L_089B6FA4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x089B6FB0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 507u, 0x089B6FB0u, 0x0888A688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 655u, 0x0888A688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B6FB0u) goto L_089B6FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B6FB0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6706,8 +8472,8 @@ L_089B6FB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B6FC8: @@ -6826,8 +8592,8 @@ L_089B7084: goto L_089B7088; L_089B7088: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7090: @@ -6908,8 +8674,21 @@ L_089B7104: aot_gpr_6 = (aot_gpr_6 + static_cast(-4)); aot_gpr_31 = (0x089B712Cu); aot_gpr_4 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 530u, 0x089B712Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B712Cu) goto L_089B712C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B712C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(21256))); goto L_089B7130; @@ -6941,8 +8720,8 @@ L_089B715C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B716C: @@ -6973,8 +8752,21 @@ L_089B71AC: L_089B71B8: aot_gpr_31 = (0x089B71C0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 537u, 0x089B71C0u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B71C0u) goto L_089B71C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B71C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7035,8 +8827,8 @@ L_089B7204: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B722C: @@ -7092,8 +8884,8 @@ L_089B7260: goto L_089B727C; L_089B727C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7284: @@ -7134,8 +8926,8 @@ L_089B72B4: goto L_089B72C4; L_089B72C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B72CC: @@ -7221,8 +9013,8 @@ L_089B733C: goto L_089B7340; L_089B7340: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7348: @@ -7266,8 +9058,8 @@ L_089B7380: goto L_089B7384; L_089B7384: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B738C: @@ -7333,8 +9125,21 @@ L_089B7404: aot_gpr_5 = (ctx.gpr[18] & 255u); aot_gpr_31 = (0x089B7410u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 584u, 0x089B7410u, 0x088CA378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 435u, 0x088CA378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7410u) goto L_089B7410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7410: aot_gpr_4 = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (aot_gpr_4 << 16u); @@ -7351,74 +9156,230 @@ L_089B7428: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B7438u); aot_gpr_5 = (0u | 21u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 586u, 0x089B7438u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7438u) goto L_089B7438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7438: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B7444u); aot_gpr_5 = (0u | 22u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 587u, 0x089B7444u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7444u) goto L_089B7444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7444: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B7450u); aot_gpr_5 = (0u | 23u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 588u, 0x089B7450u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7450u) goto L_089B7450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7450: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B745Cu); aot_gpr_5 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 589u, 0x089B745Cu, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B745Cu) goto L_089B745C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B745C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B7468u); aot_gpr_5 = (0u | 25u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 590u, 0x089B7468u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7468u) goto L_089B7468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7468: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B7474u); aot_gpr_5 = (0u | 26u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 591u, 0x089B7474u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7474u) goto L_089B7474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7474: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B7480u); aot_gpr_5 = (0u | 27u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 592u, 0x089B7480u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7480u) goto L_089B7480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7480: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B748Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 593u, 0x089B748Cu, 0x0880A6ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 556u, 0x0880A6ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B748Cu) goto L_089B748C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B748C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B7498u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 594u, 0x089B7498u, 0x0880A6F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 557u, 0x0880A6F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7498u) goto L_089B7498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7498: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089B74A4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 595u, 0x089B74A4u, 0x0880A6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 558u, 0x0880A6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B74A4u) goto L_089B74A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B74A4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x089B74B0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 596u, 0x089B74B0u, 0x0888A9E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 725u, 0x0888A9E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B74B0u) goto L_089B74B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B74B0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(21528), static_cast(0u)); aot_gpr_31 = (0x089B74BCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 597u, 0x089B74BCu, 0x08809FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 440u, 0x08809FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B74BCu) goto L_089B74BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B74BC: aot_gpr_16 = (0u | 0u); goto L_089B74C0; @@ -7443,8 +9404,8 @@ L_089B74D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B74EC: @@ -7486,16 +9447,29 @@ L_089B7530: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4128))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7548: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(6260))); aot_gpr_31 = (0x089B7554u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 606u, 0x089B7554u, 0x0884C6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 65u, 0x0884C6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7554u) goto L_089B7554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7554: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B7560u); @@ -7524,8 +9498,8 @@ L_089B7574: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B758C: @@ -7534,14 +9508,27 @@ L_089B758C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089B75A0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 611u, 0x089B75A0u, 0x0880A6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 554u, 0x0880A6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B75A0u) goto L_089B75A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B75A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B75AC: @@ -7550,14 +9537,27 @@ L_089B75AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089B75C0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 613u, 0x089B75C0u, 0x0880A6E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 555u, 0x0880A6E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B75C0u) goto L_089B75C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B75C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B75CC: @@ -7566,14 +9566,27 @@ L_089B75CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089B75E0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 615u, 0x089B75E0u, 0x0880A6ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 556u, 0x0880A6ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B75E0u) goto L_089B75E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B75E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B75EC: @@ -7582,14 +9595,27 @@ L_089B75EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089B7600u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 617u, 0x089B7600u, 0x0880A6F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 557u, 0x0880A6F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7600u) goto L_089B7600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7600: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B760C: @@ -7649,8 +9675,21 @@ L_089B7678: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(5), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089B7688u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 625u, 0x089B7688u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7688u) goto L_089B7688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7688: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(5))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -7667,49 +9706,140 @@ L_089B76A0: aot_gpr_5 = (0u | 21u); aot_gpr_31 = (0x089B76B0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 627u, 0x089B76B0u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B76B0u) goto L_089B76B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B76B0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x089B76C0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 628u, 0x089B76C0u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B76C0u) goto L_089B76C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B76C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 23u); aot_gpr_31 = (0x089B76D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 629u, 0x089B76D0u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B76D0u) goto L_089B76D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B76D0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 24u); aot_gpr_31 = (0x089B76E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 630u, 0x089B76E0u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B76E0u) goto L_089B76E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B76E0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 25u); aot_gpr_31 = (0x089B76F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 631u, 0x089B76F0u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B76F0u) goto L_089B76F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B76F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 26u); aot_gpr_31 = (0x089B7700u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 632u, 0x089B7700u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7700u) goto L_089B7700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7700: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B770Cu); aot_gpr_5 = (0u | 27u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 633u, 0x089B770Cu, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B770Cu) goto L_089B770C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B770C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7738,8 +9868,21 @@ L_089B7728: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x089B773Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 638u, 0x089B773Cu, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B773Cu) goto L_089B773C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B773C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -7812,8 +9955,21 @@ L_089B77A8: L_089B77B0: aot_gpr_31 = (0x089B77B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 650u, 0x089B77B8u, 0x088CAD84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 544u, 0x088CAD84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B77B8u) goto L_089B77B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B77B8: aot_gpr_31 = (0x089B77C0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7841,18 +9997,57 @@ L_089B77D4: L_089B77E0: aot_gpr_31 = (0x089B77E8u); aot_gpr_4 = (aot_gpr_16 + static_cast(21552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 655u, 0x089B77E8u, 0x088CA814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 495u, 0x088CA814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B77E8u) goto L_089B77E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B77E8: aot_gpr_31 = (0x089B77F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 656u, 0x089B77F0u, 0x08A0E8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 428u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 428u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 428u, 0x08A0E8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B77F0u) goto L_089B77F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B77F0: aot_gpr_31 = (0x089B77F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 657u, 0x089B77F8u, 0x089B8D4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 126u, 0x089B8D4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B77F8u) goto L_089B77F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B77F8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(26341))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7864,18 +10059,57 @@ L_089B77F8: L_089B7804: aot_gpr_31 = (0x089B780Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 659u, 0x089B780Cu, 0x088CA700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 482u, 0x088CA700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B780Cu) goto L_089B780C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B780C: aot_gpr_31 = (0x089B7814u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 660u, 0x089B7814u, 0x089B901Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 163u, 0x089B901Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7814u) goto L_089B7814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7814: aot_gpr_31 = (0x089B781Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 661u, 0x089B781Cu, 0x08809FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 440u, 0x08809FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B781Cu) goto L_089B781C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B781C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(21524))); ctx.gpr[17] = (0u | 0u); @@ -7896,8 +10130,21 @@ L_089B7830: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(6260))); aot_gpr_31 = (0x089B7850u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 663u, 0x089B7850u, 0x0884C6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 65u, 0x0884C6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7850u) goto L_089B7850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7850: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(21364))); aot_gpr_31 = (0x089B785Cu); @@ -7925,8 +10172,8 @@ L_089B7870: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B788C: @@ -7943,8 +10190,21 @@ L_089B788C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x089B78C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 667u, 0x089B78C8u, 0x08A1C650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 55u, 0x08A1C650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B78C8u) goto L_089B78C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B78C8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8156,8 +10416,8 @@ L_089B7A64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7A84: @@ -8229,8 +10489,8 @@ L_089B7AF8: goto L_089B7AFC; L_089B7AFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7B04: @@ -8254,8 +10514,21 @@ L_089B7B30: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20256))); aot_gpr_31 = (0x089B7B3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 701u, 0x089B7B3Cu, 0x088C642Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 462u, 0x088C642Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7B3Cu) goto L_089B7B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7B3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20256))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -8283,8 +10556,8 @@ L_089B7B68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7B80: @@ -8395,8 +10668,21 @@ L_089B7C80: } L_089B7C88: aot_gpr_31 = (0x089B7C90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 712u, 0x089B7C90u, 0x08AAE9A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 534u, 0x08AAE9A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7C90u) goto L_089B7C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7C90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8542,8 +10828,21 @@ L_089B7DE4: L_089B7DEC: aot_gpr_31 = (0x089B7DF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 724u, 0x089B7DF4u, 0x089B8A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 95u, 0x089B8A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7DF4u) goto L_089B7DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7DF4: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8556,8 +10855,8 @@ L_089B7DF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7E14: @@ -8622,8 +10921,8 @@ L_089B7E4C: } L_089B7ED4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7EDC: @@ -8682,8 +10981,21 @@ L_089B7F6C: aot_gpr_4 = (aot_gpr_4 + static_cast(4193)); aot_gpr_31 = (0x089B7F84u); aot_gpr_6 = (aot_gpr_6 + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0108->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0108_entry, 733u, 0x089B7F84u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B7F84u) goto L_089B7F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B7F84: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(144))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -8720,8 +11032,8 @@ L_089B7FB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B7FD4: diff --git a/profiles/vcs/generated/generated_unit_0109.cpp b/profiles/vcs/generated/generated_unit_0109.cpp index e9e8fea..9e031e9 100644 --- a/profiles/vcs/generated/generated_unit_0109.cpp +++ b/profiles/vcs/generated/generated_unit_0109.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0109[64] = { 395u, 418u, 430u, 438u, 445u, 453u, 468u, 481u, 498u, 522u, 549u, 570u, 586u, 609u, 616u, 620u, 641u, 658u, 675u, 699u, 716u, 727u, 741u, 751u, 769u, 781u, 792u, 805u, 813u, 825u, 831u, 839u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0109[4094] = { + 1u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 8u, 0u, 0u, 0u, 9u, 0u, 0u, 10u, 0u, 11u, 12u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 14u, 0u, 0u, 0u, 0u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 0u, 17u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 20u, + 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 0u, 22u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 23u, 0u, 24u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 27u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 28u, 0u, 29u, 0u, 30u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 0u, + 33u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 36u, 0u, 37u, 0u, 38u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 41u, 0u, + 0u, 42u, 0u, 43u, 0u, 44u, 0u, 45u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 48u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 0u, 52u, 0u, 53u, 0u, 54u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, 0u, 0u, 0u, 57u, 0u, 0u, + 0u, 58u, 0u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 0u, 0u, 0u, 60u, 0u, 0u, 0u, 61u, 62u, 0u, 0u, 0u, 0u, 63u, 0u, 64u, 0u, 65u, 0u, 0u, 0u, 0u, + 66u, 0u, 0u, 67u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 70u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 72u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 73u, 0u, 74u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 77u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 78u, 0u, 79u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 83u, 0u, 84u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 86u, 0u, 87u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 88u, 0u, 89u, + 0u, 0u, 0u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 92u, + 0u, 0u, 0u, 0u, 93u, 94u, 0u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 97u, 0u, 0u, 0u, 0u, 98u, 0u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 101u, 0u, 0u, 102u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 0u, 0u, 104u, 0u, 0u, 0u, 0u, + 105u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 107u, 0u, 108u, 0u, 109u, 0u, 110u, 0u, 0u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 112u, 0u, 0u, 0u, 113u, + 0u, 0u, 0u, 0u, 0u, 114u, 0u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 116u, 0u, 117u, 0u, 118u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 119u, + 0u, 0u, 0u, 120u, 0u, 0u, 121u, 0u, 0u, 0u, 122u, 0u, 0u, 123u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 124u, 0u, 0u, 0u, 0u, 125u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 127u, 0u, 0u, 0u, 128u, 0u, 0u, 129u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 132u, 0u, 133u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 136u, 0u, 0u, 137u, 0u, 0u, 0u, 138u, 0u, 0u, 139u, 0u, 140u, 0u, 0u, 141u, 0u, 0u, 142u, 0u, 0u, 0u, 143u, 0u, 0u, 144u, 0u, 0u, 0u, 145u, + 0u, 0u, 146u, 0u, 147u, 0u, 0u, 148u, 0u, 0u, 149u, 0u, 0u, 150u, 0u, 0u, 0u, 0u, 0u, 0u, 151u, 0u, 152u, 0u, 0u, 0u, 0u, 153u, 0u, 0u, 0u, 0u, + 0u, 0u, 154u, 0u, 155u, 0u, 0u, 156u, 0u, 0u, 0u, 157u, 0u, 158u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 160u, 161u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 164u, 165u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, 0u, 0u, 0u, 0u, 167u, 168u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 170u, 0u, 0u, 0u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, + 174u, 0u, 175u, 0u, 0u, 176u, 0u, 0u, 0u, 177u, 0u, 0u, 178u, 0u, 179u, 0u, 180u, 0u, 0u, 181u, 0u, 182u, 183u, 0u, 184u, 0u, 0u, 185u, 0u, 186u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 188u, 0u, 0u, 189u, 0u, 0u, 190u, 0u, 0u, 191u, 0u, 192u, 0u, 0u, 193u, 0u, 0u, 194u, 0u, + 0u, 195u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 197u, 198u, 0u, 0u, 0u, 0u, 199u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 201u, 0u, 202u, 203u, 0u, 0u, 0u, 0u, 204u, + 0u, 205u, 0u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 207u, 0u, 208u, 0u, 0u, 0u, 209u, 0u, 0u, 210u, 0u, 0u, 0u, 211u, 0u, 212u, 0u, 0u, 0u, 213u, 0u, 214u, + 0u, 215u, 0u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, 218u, 0u, 0u, 219u, 0u, 0u, 0u, 220u, 0u, 221u, 0u, 0u, 0u, 222u, 223u, 224u, + 0u, 0u, 225u, 0u, 0u, 0u, 226u, 0u, 227u, 0u, 0u, 0u, 228u, 229u, 0u, 0u, 230u, 0u, 231u, 0u, 0u, 232u, 233u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 235u, 0u, 236u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 0u, 239u, 0u, 0u, 0u, 240u, 0u, 0u, 0u, + 0u, 241u, 0u, 0u, 242u, 0u, 0u, 243u, 0u, 0u, 0u, 0u, 244u, 0u, 245u, 0u, 0u, 0u, 0u, 246u, 247u, 0u, 0u, 0u, 248u, 249u, 0u, 0u, 0u, 250u, 0u, 251u, + 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 253u, 0u, 0u, 0u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 256u, 0u, + 0u, 257u, 0u, 0u, 0u, 258u, 0u, 0u, 0u, 0u, 0u, 0u, 259u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 0u, 0u, 0u, 0u, 0u, 261u, 262u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 263u, 0u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 266u, 0u, 0u, 0u, 0u, + 0u, 267u, 0u, 268u, 0u, 0u, 0u, 269u, 0u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 0u, 0u, 0u, 273u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 278u, 0u, 279u, 0u, 0u, 0u, 280u, 0u, 0u, 281u, 0u, 0u, 0u, 282u, 0u, + 0u, 0u, 283u, 284u, 0u, 0u, 285u, 0u, 0u, 0u, 0u, 286u, 0u, 0u, 287u, 288u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 290u, 0u, 291u, 0u, 292u, + 0u, 0u, 293u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 0u, 296u, 0u, 0u, 0u, 0u, 0u, 297u, 0u, 0u, 0u, 298u, 0u, 0u, 0u, 299u, + 300u, 0u, 0u, 301u, 0u, 302u, 0u, 0u, 303u, 304u, 0u, 305u, 0u, 0u, 306u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 307u, 0u, 308u, 0u, 0u, + 0u, 309u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 310u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 312u, 0u, 0u, 313u, 0u, 0u, 0u, 314u, 0u, 0u, 315u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 318u, 319u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 321u, 0u, 322u, 0u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 325u, 0u, 0u, 0u, + 0u, 326u, 0u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 328u, 0u, 329u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 0u, 333u, 334u, + 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 338u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 340u, 0u, 341u, + 0u, 0u, 0u, 0u, 0u, 0u, 342u, 343u, 0u, 0u, 344u, 0u, 0u, 345u, 0u, 346u, 0u, 0u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 349u, 0u, 0u, 0u, 0u, 350u, 0u, 351u, 0u, 0u, 352u, 0u, 353u, 0u, 354u, 0u, 0u, 355u, 0u, 0u, 0u, 356u, 0u, 0u, 357u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 358u, 0u, 359u, 0u, 360u, 0u, 361u, 0u, 362u, 0u, 0u, 0u, 0u, 363u, 364u, 365u, 0u, 366u, 367u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 0u, + 0u, 0u, 369u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 0u, 0u, 371u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 0u, 373u, + 0u, 374u, 0u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 378u, 0u, 0u, 379u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 380u, 381u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 382u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 0u, 0u, 386u, 0u, 387u, 0u, 388u, + 0u, 0u, 0u, 0u, 389u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 393u, 0u, 0u, 0u, 394u, + 0u, 0u, 395u, 0u, 0u, 396u, 0u, 397u, 0u, 398u, 0u, 399u, 0u, 400u, 0u, 0u, 0u, 401u, 0u, 0u, 402u, 0u, 403u, 0u, 0u, 404u, 0u, 405u, 0u, 0u, 0u, 406u, + 0u, 0u, 407u, 0u, 0u, 408u, 0u, 409u, 0u, 410u, 0u, 0u, 0u, 411u, 0u, 0u, 412u, 0u, 413u, 0u, 0u, 414u, 0u, 415u, 0u, 0u, 0u, 416u, 0u, 0u, 417u, 0u, + 0u, 418u, 0u, 419u, 0u, 420u, 0u, 0u, 0u, 421u, 0u, 0u, 422u, 0u, 423u, 0u, 0u, 0u, 0u, 424u, 0u, 425u, 426u, 0u, 0u, 0u, 0u, 0u, 427u, 0u, 0u, 0u, + 0u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 0u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, + 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 436u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 441u, 0u, 0u, 0u, 0u, 0u, 442u, 0u, 0u, 0u, 443u, 0u, 444u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 446u, 0u, 0u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 448u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 451u, 0u, 452u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 0u, 0u, 454u, 0u, 0u, 0u, 0u, 455u, 0u, 0u, 456u, 0u, 0u, 457u, 0u, 458u, 0u, 0u, 459u, 0u, 0u, 0u, 0u, + 0u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 462u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, 464u, 465u, 0u, 466u, 0u, 467u, 0u, 0u, 0u, + 0u, 468u, 0u, 0u, 0u, 0u, 469u, 0u, 470u, 0u, 471u, 0u, 472u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 474u, 0u, 475u, 0u, 0u, 0u, 0u, 0u, 0u, 476u, 0u, + 0u, 0u, 0u, 0u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 479u, 0u, 480u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 482u, 0u, 0u, 483u, 0u, 0u, 484u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, 486u, 0u, 487u, + 0u, 0u, 488u, 0u, 489u, 0u, 0u, 490u, 0u, 0u, 0u, 491u, 0u, 492u, 493u, 0u, 494u, 0u, 495u, 0u, 496u, 0u, 497u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 498u, 0u, 0u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 501u, 502u, 0u, 503u, 0u, 504u, 0u, 505u, 0u, 506u, 0u, 507u, + 0u, 508u, 0u, 509u, 0u, 0u, 510u, 0u, 511u, 0u, 512u, 0u, 0u, 513u, 0u, 0u, 514u, 0u, 515u, 516u, 0u, 517u, 0u, 518u, 0u, 519u, 0u, 0u, 0u, 520u, 0u, 521u, + 0u, 522u, 0u, 523u, 0u, 524u, 0u, 0u, 525u, 0u, 526u, 0u, 0u, 527u, 0u, 528u, 0u, 529u, 0u, 0u, 530u, 0u, 531u, 0u, 0u, 532u, 0u, 533u, 0u, 0u, 534u, 0u, + 0u, 535u, 0u, 0u, 536u, 0u, 0u, 537u, 0u, 538u, 0u, 539u, 0u, 0u, 540u, 0u, 541u, 0u, 542u, 0u, 543u, 0u, 544u, 0u, 545u, 0u, 546u, 0u, 547u, 0u, 548u, 0u, + 0u, 549u, 0u, 550u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 0u, 0u, 553u, 0u, 554u, 0u, 555u, 0u, 556u, 0u, + 557u, 0u, 558u, 0u, 0u, 0u, 559u, 0u, 560u, 0u, 561u, 0u, 0u, 562u, 0u, 0u, 563u, 0u, 564u, 0u, 565u, 0u, 0u, 566u, 0u, 0u, 567u, 0u, 0u, 568u, 0u, 569u, + 0u, 0u, 570u, 0u, 0u, 571u, 0u, 0u, 572u, 0u, 573u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 574u, 0u, 575u, 0u, 0u, 0u, 0u, 576u, 0u, 577u, 0u, 0u, 0u, + 0u, 578u, 0u, 0u, 0u, 0u, 579u, 0u, 0u, 0u, 0u, 580u, 0u, 581u, 0u, 582u, 0u, 583u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 584u, 0u, 585u, 0u, + 586u, 0u, 587u, 0u, 0u, 0u, 588u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, 590u, 0u, 0u, 591u, 592u, 0u, 0u, 593u, 0u, 0u, 594u, 595u, 0u, 0u, 596u, 0u, 0u, 597u, + 598u, 0u, 0u, 599u, 0u, 0u, 600u, 601u, 0u, 0u, 602u, 0u, 0u, 603u, 604u, 0u, 605u, 0u, 606u, 0u, 0u, 0u, 0u, 0u, 0u, 607u, 0u, 0u, 608u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 609u, 0u, 0u, 0u, 0u, 610u, 0u, 611u, 0u, 0u, 0u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 0u, 0u, 0u, 613u, 0u, 0u, 0u, + 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 616u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 617u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 620u, 621u, 0u, 622u, 0u, 0u, 623u, 0u, 0u, 624u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 626u, 0u, 627u, 628u, 0u, 629u, 0u, 0u, 630u, 0u, + 0u, 0u, 0u, 0u, 0u, 631u, 0u, 632u, 633u, 0u, 634u, 0u, 635u, 0u, 0u, 0u, 636u, 0u, 637u, 0u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 0u, 639u, 0u, 640u, 0u, + 641u, 0u, 642u, 0u, 643u, 0u, 644u, 0u, 645u, 0u, 646u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 647u, 0u, 648u, 0u, 649u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 650u, 651u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, 0u, 0u, 653u, 0u, 654u, 0u, 0u, 655u, 0u, 0u, 656u, 0u, 657u, 0u, + 658u, 659u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 660u, 0u, 661u, 0u, 0u, 662u, 0u, 663u, 0u, 0u, 0u, 0u, 0u, 664u, 0u, 0u, 0u, 665u, 0u, 666u, 667u, 0u, 668u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 669u, 0u, 0u, 0u, 0u, 0u, 0u, 670u, 0u, 0u, 0u, 0u, 671u, 0u, 0u, 672u, 0u, 0u, 0u, 673u, 0u, 674u, 0u, 0u, 0u, + 675u, 0u, 676u, 0u, 0u, 0u, 0u, 677u, 0u, 678u, 0u, 0u, 679u, 0u, 0u, 0u, 0u, 0u, 0u, 680u, 0u, 0u, 681u, 0u, 682u, 0u, 683u, 0u, 684u, 0u, 685u, 0u, + 686u, 0u, 687u, 0u, 688u, 0u, 689u, 0u, 0u, 0u, 690u, 0u, 691u, 0u, 692u, 0u, 0u, 0u, 693u, 0u, 0u, 694u, 0u, 0u, 695u, 0u, 696u, 697u, 0u, 698u, 0u, 0u, + 0u, 0u, 0u, 0u, 699u, 0u, 0u, 700u, 0u, 0u, 701u, 0u, 702u, 703u, 0u, 704u, 0u, 705u, 0u, 0u, 0u, 706u, 0u, 0u, 0u, 0u, 707u, 0u, 0u, 708u, 0u, 0u, + 709u, 0u, 0u, 0u, 0u, 0u, 710u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 0u, 0u, 0u, 713u, 0u, 714u, 0u, 715u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 716u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 717u, 0u, 0u, 0u, 718u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 719u, 0u, 720u, 0u, 0u, 0u, 721u, 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, 723u, 0u, 724u, 0u, 0u, 0u, 0u, 0u, 0u, 725u, 0u, 0u, 0u, 726u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 727u, 0u, 0u, 0u, 728u, 0u, 729u, 0u, 0u, 0u, 730u, 731u, 0u, 732u, 0u, 733u, 0u, 734u, 735u, 0u, 736u, 0u, 0u, 0u, + 0u, 0u, 0u, 737u, 0u, 738u, 0u, 0u, 0u, 0u, 0u, 0u, 739u, 0u, 0u, 0u, 0u, 0u, 0u, 740u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 741u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 742u, 0u, 0u, 0u, 0u, 743u, 0u, 744u, 0u, 745u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 746u, 0u, 747u, 0u, 0u, 748u, 0u, 0u, 749u, 0u, 750u, + 751u, 752u, 0u, 0u, 753u, 0u, 754u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 755u, 0u, 756u, 0u, 757u, 0u, 0u, 758u, 0u, + 0u, 759u, 0u, 760u, 761u, 762u, 0u, 0u, 763u, 0u, 764u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 765u, 0u, 0u, 766u, 0u, 767u, 0u, 768u, + 0u, 769u, 0u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 772u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 773u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 774u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 775u, 0u, 0u, 776u, 0u, 0u, 777u, 0u, 0u, 778u, 0u, 779u, 780u, + 0u, 781u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 782u, 0u, 0u, 783u, 0u, 0u, 0u, 784u, 0u, 0u, 785u, 0u, 0u, 786u, 0u, 0u, 0u, 0u, 787u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 788u, 0u, 789u, 790u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 791u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 792u, 0u, 0u, 0u, 793u, 0u, 794u, 0u, 795u, 0u, 0u, 0u, 796u, + 0u, 797u, 0u, 798u, 0u, 0u, 0u, 799u, 0u, 0u, 800u, 0u, 801u, 0u, 802u, 0u, 803u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 804u, + 0u, 805u, 0u, 0u, 0u, 0u, 806u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 807u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 808u, 0u, 809u, 0u, 810u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 811u, 0u, 0u, 0u, 812u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 813u, 814u, 0u, 0u, 0u, 0u, 0u, 0u, 815u, 0u, 816u, 0u, 0u, 0u, 817u, 818u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 819u, 0u, 0u, 820u, 0u, 0u, 0u, 821u, 0u, 0u, 822u, 823u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 824u, 0u, 0u, + 0u, 0u, 0u, 0u, 825u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 826u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 827u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 828u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 829u, 0u, 0u, 0u, 0u, 0u, 830u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 831u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 832u, 0u, + 0u, 0u, 0u, 0u, 0u, 833u, 0u, 834u, 0u, 835u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 836u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 837u, 0u, 0u, 838u, 0u, + 0u, 0u, 839u, 0u, 840u, 0u, 0u, 841u, 0u, 0u, 0u, 842u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 843u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 844u, 0u, 0u, 845u, 0u, 0u, 0u, 846u, 0u, 847u, 0u, 848u, 0u, 849u, +}; void recomp_unit_0109_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,31,29,6,16 fprs=12,13,14,20 gpr_occ=4149 fpr_occ=649 gpr_total=5745 fpr_total=861 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x089B8000u; - entry_id = 0u; - if (entry_delta < 16376u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0109[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0109[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16376u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0109[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_089B8000; @@ -927,6 +1050,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089B8000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -954,8 +1101,8 @@ L_089B8014: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(4234), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B8020: @@ -990,8 +1137,8 @@ L_089B8054: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B8068: @@ -1004,8 +1151,21 @@ L_089B8068: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089B808Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 8u, 0x089B808Cu, 0x0880A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 481u, 0x0880A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B808Cu) goto L_089B808C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B808C: aot_gpr_4 = (ctx.gpr[2] << 24u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 24u)); @@ -1019,8 +1179,21 @@ L_089B809C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B80A8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 10u, 0x089B80A8u, 0x0880A244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 475u, 0x0880A244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B80A8u) goto L_089B80A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B80A8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -1041,8 +1214,8 @@ L_089B80B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B80C8: @@ -1127,8 +1300,8 @@ L_089B817C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B8190: @@ -1206,8 +1379,8 @@ L_089B8224: } L_089B822C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B8234: @@ -1263,8 +1436,21 @@ L_089B8234: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089B8294u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 31u, 0x089B8294u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8294u) goto L_089B8294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8294: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1353,8 +1539,21 @@ L_089B82F4: L_089B8300: aot_gpr_31 = (0x089B8308u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 34u, 0x089B8308u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8308u) goto L_089B8308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8308: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -1365,8 +1564,8 @@ L_089B8308: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B8320: @@ -1395,8 +1594,21 @@ L_089B8320: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089B8384u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 36u, 0x089B8384u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8384u) goto L_089B8384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8384: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -1417,8 +1629,21 @@ L_089B8394: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B83A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 39u, 0x089B83A8u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B83A8u) goto L_089B83A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B83A8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1429,8 +1654,8 @@ L_089B83A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B83C0: @@ -1613,23 +1838,62 @@ L_089B8504: aot_gpr_6 = (ctx.gpr[20] + ctx.gpr[20]); aot_gpr_31 = (0x089B8520u); aot_gpr_4 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 59u, 0x089B8520u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8520u) goto L_089B8520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8520: ctx.gpr[20] = (ctx.gpr[20] << 2u); aot_gpr_4 = (ctx.gpr[19] + static_cast(6280)); aot_gpr_5 = (ctx.gpr[19] + static_cast(6276)); aot_gpr_31 = (0x089B8534u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 60u, 0x089B8534u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8534u) goto L_089B8534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8534: aot_gpr_4 = (ctx.gpr[19] + static_cast(6296)); aot_gpr_5 = (ctx.gpr[19] + static_cast(6292)); aot_gpr_31 = (0x089B8544u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 61u, 0x089B8544u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8544u) goto L_089B8544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8544: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(6308))); goto L_089B8548; @@ -1699,8 +1963,8 @@ L_089B85B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B85D8: @@ -1767,8 +2031,21 @@ L_089B8600: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089B8670u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 71u, 0x089B8670u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8670u) goto L_089B8670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8670: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1895,8 +2172,21 @@ L_089B86E4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089B8754u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 76u, 0x089B8754u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8754u) goto L_089B8754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8754: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2023,8 +2313,21 @@ L_089B87C8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089B8838u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 81u, 0x089B8838u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8838u) goto L_089B8838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8838: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2151,8 +2454,21 @@ L_089B88AC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089B891Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 86u, 0x089B891Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B891Cu) goto L_089B891C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B891C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2278,8 +2594,21 @@ L_089B8990: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089B89F4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 91u, 0x089B89F4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B89F4u) goto L_089B89F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B89F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2311,8 +2640,8 @@ L_089B8A14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B8A2C: @@ -2339,8 +2668,21 @@ L_089B8A2C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089B8A98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 96u, 0x089B8A98u, 0x08A11520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 167u, 0x08A11520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8A98u) goto L_089B8A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8A98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2393,8 +2735,21 @@ L_089B8AD0: goto L_089B8B24; L_089B8B24: aot_gpr_31 = (0x089B8B2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 101u, 0x089B8B2Cu, 0x08A11520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 167u, 0x08A11520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8B2Cu) goto L_089B8B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8B2C: ctx.gpr[17] = (ctx.gpr[18] << 2u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -2460,8 +2815,21 @@ L_089B8BAC: } L_089B8BB4: aot_gpr_31 = (0x089B8BBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 109u, 0x089B8BBCu, 0x08A11520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 167u, 0x08A11520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8BBCu) goto L_089B8BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8BBC: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(21344))); @@ -2528,8 +2896,21 @@ L_089B8C28: } L_089B8C48: aot_gpr_31 = (0x089B8C50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 117u, 0x089B8C50u, 0x08A11520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 167u, 0x08A11520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8C50u) goto L_089B8C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8C50: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2603,8 +2984,21 @@ L_089B8CB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B8CE0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 124u, 0x089B8CE0u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8CE0u) goto L_089B8CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8CE0: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] & 255u); @@ -2652,8 +3046,8 @@ L_089B8CF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B8D4C: @@ -2846,14 +3240,40 @@ L_089B8EEC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089B8EFCu); aot_gpr_6 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 145u, 0x089B8EFCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8EFCu) goto L_089B8EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8EFC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B8F08u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 146u, 0x089B8F08u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8F08u) goto L_089B8F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8F08: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(4234))); @@ -2961,14 +3381,40 @@ L_089B8FB4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089B8FC8u); aot_gpr_6 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 159u, 0x089B8FC8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8FC8u) goto L_089B8FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8FC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B8FD4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 160u, 0x089B8FD4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B8FD4u) goto L_089B8FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B8FD4: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(4234))); goto L_089B8FD8; @@ -2999,8 +3445,8 @@ L_089B8FEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B901C: @@ -3213,8 +3659,21 @@ L_089B91E0: aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x089B91ECu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 185u, 0x089B91ECu, 0x0880A5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 542u, 0x0880A5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B91ECu) goto L_089B91EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B91EC: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (0u | 1u); @@ -3271,8 +3730,21 @@ L_089B924C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x089B9258u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 191u, 0x089B9258u, 0x0880A5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 542u, 0x0880A5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9258u) goto L_089B9258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9258: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3333,22 +3805,61 @@ L_089B92A8: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089B92BCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 199u, 0x089B92BCu, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B92BCu) goto L_089B92BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B92BC: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(66))); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089B92CCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 200u, 0x089B92CCu, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B92CCu) goto L_089B92CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B92CC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089B92DCu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 201u, 0x089B92DCu, 0x0880A3C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 507u, 0x0880A3C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B92DCu) goto L_089B92DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B92DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3365,8 +3876,21 @@ L_089B92E8: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B92FCu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 204u, 0x089B92FCu, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B92FCu) goto L_089B92FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B92FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3382,13 +3906,39 @@ L_089B9304: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(20))); aot_gpr_31 = (0x089B9320u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 206u, 0x089B9320u, 0x089B788Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 666u, 0x089B788Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9320u) goto L_089B9320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9320: aot_gpr_31 = (0x089B9328u); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(20), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 207u, 0x089B9328u, 0x08A11520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 167u, 0x08A11520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9328u) goto L_089B9328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9328: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3439,8 +3989,21 @@ L_089B9364: L_089B9374: aot_gpr_31 = (0x089B937Cu); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(20), ctx.gpr[19]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 214u, 0x089B937Cu, 0x08A11520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 167u, 0x08A11520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B937Cu) goto L_089B937C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B937C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3462,8 +4025,21 @@ L_089B93A0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089B93B0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 217u, 0x089B93B0u, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B93B0u) goto L_089B93B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B93B0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(24))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(24))); @@ -3595,8 +4171,21 @@ L_089B9460: aot_gpr_6 = (ctx.lo); aot_gpr_31 = (0x089B9494u); aot_gpr_6 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 235u, 0x089B9494u, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9494u) goto L_089B9494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9494: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3627,8 +4216,21 @@ L_089B94CC: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089B94E0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 239u, 0x089B94E0u, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B94E0u) goto L_089B94E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B94E0: aot_gpr_5 = (ctx.gpr[21] + static_cast(48)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3692,8 +4294,21 @@ L_089B9550: aot_gpr_6 = (ctx.gpr[19] & 255u); aot_gpr_31 = (0x089B9560u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 248u, 0x089B9560u, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9560u) goto L_089B9560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9560: aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(66), static_cast(ctx.gpr[19])); goto L_089B9564; @@ -3702,8 +4317,21 @@ L_089B9564: aot_gpr_6 = (ctx.gpr[19] & 255u); aot_gpr_31 = (0x089B9574u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 250u, 0x089B9574u, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9574u) goto L_089B9574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9574: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3779,8 +4407,21 @@ L_089B9604: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(68), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089B9614u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 258u, 0x089B9614u, 0x0880A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 550u, 0x0880A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9614u) goto L_089B9614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9614: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16352))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -3989,8 +4630,21 @@ L_089B97CC: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089B97DCu); aot_gpr_6 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 280u, 0x089B97DCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B97DCu) goto L_089B97DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B97DC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(13))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4053,8 +4707,21 @@ L_089B983C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089B9860u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 289u, 0x089B9860u, 0x0880A214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 474u, 0x0880A214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9860u) goto L_089B9860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9860: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(13))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4066,8 +4733,21 @@ L_089B9860: } L_089B986C: aot_gpr_31 = (0x089B9874u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 291u, 0x089B9874u, 0x08A11520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 167u, 0x08A11520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9874u) goto L_089B9874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9874: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4125,8 +4805,21 @@ L_089B98DC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089B98ECu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 298u, 0x089B98ECu, 0x0880A5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 539u, 0x0880A5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B98ECu) goto L_089B98EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B98EC: ctx.gpr[23] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[23]) < 5 ? 1u : 0u); @@ -4195,8 +4888,21 @@ L_089B9938: aot_gpr_6 = (ctx.lo); aot_gpr_31 = (0x089B996Cu); aot_gpr_6 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 307u, 0x089B996Cu, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B996Cu) goto L_089B996C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B996C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4227,15 +4933,41 @@ L_089B99A4: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089B99B8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 311u, 0x089B99B8u, 0x0880A438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 516u, 0x0880A438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B99B8u) goto L_089B99B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B99B8: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(66))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x089B99C8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 312u, 0x089B99C8u, 0x0880A584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 536u, 0x0880A584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B99C8u) goto L_089B99C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B99C8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4249,14 +4981,40 @@ L_089B99D4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x089B99E4u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 314u, 0x089B99E4u, 0x0880A5ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 538u, 0x0880A5ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B99E4u) goto L_089B99E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B99E4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); aot_gpr_31 = (0x089B99F0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 315u, 0x089B99F0u, 0x0880A624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 546u, 0x0880A624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B99F0u) goto L_089B99F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B99F0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(72), static_cast(aot_gpr_4)); @@ -4318,8 +5076,8 @@ L_089B9A4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9A94: @@ -4328,8 +5086,21 @@ L_089B9A94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089B9AA8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 321u, 0x089B9AA8u, 0x089B6B10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 448u, 0x089B6B10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9AA8u) goto L_089B9AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9AA8: aot_gpr_31 = (0x089B9AB0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-13220)); @@ -4339,8 +5110,8 @@ L_089B9AB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9ABC: @@ -4370,8 +5141,21 @@ L_089B9AF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089B9B04u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 326u, 0x089B9B04u, 0x08ABE3E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 485u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 485u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 485u, 0x08ABE3E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9B04u) goto L_089B9B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9B04: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(301), static_cast(aot_gpr_4)); @@ -4459,8 +5243,8 @@ L_089B9B88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9BA0: @@ -4471,8 +5255,21 @@ L_089B9BA0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x089B9BC0u); ctx.gpr[18] = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 337u, 0x089B9BC0u, 0x08A07508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 787u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 787u, 0x08A07508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9BC0u) goto L_089B9BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9BC0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(304))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(308))); @@ -4537,8 +5334,21 @@ L_089B9C28: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(301), static_cast(0u)); aot_gpr_31 = (0x089B9C34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 345u, 0x089B9C34u, 0x08ABE564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 500u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 500u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 500u, 0x08ABE564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9C34u) goto L_089B9C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9C34: aot_gpr_31 = (0x089B9C3Cu); aot_gpr_4 = (0u | 0u); @@ -4554,8 +5364,8 @@ L_089B9C3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9C54: @@ -4564,8 +5374,21 @@ L_089B9C54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089B9C68u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 348u, 0x089B9C68u, 0x08ABE3BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 484u, 0x08ABE3BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9C68u) goto L_089B9C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9C68: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(300), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(301), static_cast(0u)); @@ -4576,8 +5399,8 @@ L_089B9C68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9C90: @@ -4596,28 +5419,28 @@ L_089B9CAC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9CB8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9CC0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9CC8: ctx.gpr[2] = (2204u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-25400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9CD4: @@ -4629,8 +5452,8 @@ L_089B9CE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9CF0: @@ -4651,8 +5474,21 @@ L_089B9D10: L_089B9D18: aot_gpr_31 = (0x089B9D20u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 360u, 0x089B9D20u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9D20u) goto L_089B9D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9D20: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -4661,8 +5497,21 @@ L_089B9D20: goto L_089B9D28; L_089B9D28: aot_gpr_31 = (0x089B9D30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 362u, 0x089B9D30u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9D30u) goto L_089B9D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9D30: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -4701,8 +5550,8 @@ L_089B9D58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9D74: @@ -4711,8 +5560,21 @@ L_089B9D74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089B9D88u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 369u, 0x089B9D88u, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9D88u) goto L_089B9D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9D88: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25048)); @@ -4726,8 +5588,8 @@ L_089B9D88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9DBC: @@ -4750,8 +5612,21 @@ L_089B9DD8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089B9DF0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 372u, 0x089B9DF0u, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9DF0u) goto L_089B9DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9DF0: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4774,8 +5649,8 @@ L_089B9E04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9E18: @@ -4816,14 +5691,27 @@ L_089B9E5C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_31 = (0x089B9E90u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 378u, 0x089B9E90u, 0x08AC61E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 571u, 0x08AC61E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9E90u) goto L_089B9E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9E90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9E9C: @@ -4865,14 +5753,27 @@ L_089B9EE4: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); aot_gpr_31 = (0x089B9F18u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 382u, 0x089B9F18u, 0x08AC61E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 571u, 0x08AC61E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9F18u) goto L_089B9F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9F18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9F24: @@ -4881,8 +5782,21 @@ L_089B9F24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089B9F38u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 384u, 0x089B9F38u, 0x08AC5C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 507u, 0x08AC5C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9F38u) goto L_089B9F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9F38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -4899,20 +5813,20 @@ L_089B9F5C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9F6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9F74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9F7C: @@ -4921,8 +5835,21 @@ L_089B9F7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089B9F90u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 389u, 0x089B9F90u, 0x08AC5CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 511u, 0x08AC5CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9F90u) goto L_089B9F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9F90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -4939,8 +5866,8 @@ L_089B9FB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089B9FC4: @@ -4952,8 +5879,21 @@ L_089B9FC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x089B9FE4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 392u, 0x089B9FE4u, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9FE4u) goto L_089B9FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9FE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4966,14 +5906,40 @@ L_089B9FEC: aot_gpr_5 = (0u | 154u); aot_gpr_31 = (0x089B9FFCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 394u, 0x089B9FFCu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089B9FFCu) goto L_089B9FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089B9FFC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089BA008u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 395u, 0x089BA008u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA008u) goto L_089BA008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA008: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5014,14 +5980,40 @@ L_089BA034: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x089BA044u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 401u, 0x089BA044u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA044u) goto L_089BA044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA044: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x089BA050u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 402u, 0x089BA050u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA050u) goto L_089BA050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA050: aot_gpr_31 = (0x089BA058u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5046,14 +6038,40 @@ L_089BA06C: aot_gpr_5 = (0u | 155u); aot_gpr_31 = (0x089BA07Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 406u, 0x089BA07Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA07Cu) goto L_089BA07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA07C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089BA088u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 407u, 0x089BA088u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA088u) goto L_089BA088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA088: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5079,14 +6097,40 @@ L_089BA0A4: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x089BA0B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 411u, 0x089BA0B4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA0B4u) goto L_089BA0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA0B4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x089BA0C0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 412u, 0x089BA0C0u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA0C0u) goto L_089BA0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA0C0: aot_gpr_31 = (0x089BA0C8u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5111,14 +6155,40 @@ L_089BA0DC: aot_gpr_5 = (0u | 153u); aot_gpr_31 = (0x089BA0ECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 416u, 0x089BA0ECu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA0ECu) goto L_089BA0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA0EC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089BA0F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 417u, 0x089BA0F8u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA0F8u) goto L_089BA0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA0F8: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5145,14 +6215,40 @@ L_089BA114: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x089BA124u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 421u, 0x089BA124u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA124u) goto L_089BA124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA124: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_31 = (0x089BA130u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 422u, 0x089BA130u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA130u) goto L_089BA130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA130: aot_gpr_31 = (0x089BA138u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5186,8 +6282,8 @@ L_089BA158: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA170: @@ -5197,8 +6293,21 @@ L_089BA170: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089BA188u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 428u, 0x089BA188u, 0x08AC6238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 577u, 0x08AC6238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA188u) goto L_089BA188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA188: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(188))); aot_fpr_12 = std::bit_cast(ctx.gpr[2]); @@ -5216,8 +6325,8 @@ L_089BA188: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA1C8: @@ -5333,8 +6442,8 @@ L_089BA2D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA310: @@ -5384,8 +6493,21 @@ L_089BA3AC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089BA3BCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 441u, 0x089BA3BCu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA3BCu) goto L_089BA3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA3BC: aot_fpr_12 = ctx.fpr[22] - ctx.fpr[28]; aot_gpr_4 = (aot_gpr_29 | 0u); @@ -5400,8 +6522,21 @@ L_089BA3D4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089BA3E4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 443u, 0x089BA3E4u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA3E4u) goto L_089BA3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA3E4: { const bool branch_taken = ctx.gpr[18] == 0u; ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -5455,8 +6590,21 @@ L_089BA460: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089BA470u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 448u, 0x089BA470u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA470u) goto L_089BA470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA470: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(40), aot_run_words); @@ -5473,8 +6621,8 @@ L_089BA470: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA4A0: @@ -5491,18 +6639,57 @@ L_089BA4A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089BA4D4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(17092)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 450u, 0x089BA4D4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA4D4u) goto L_089BA4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA4D4: aot_gpr_31 = (0x089BA4DCu); aot_gpr_4 = (aot_gpr_16 + static_cast(11212)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 451u, 0x089BA4DCu, 0x08AAFA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 814u, 0x08AAFA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA4DCu) goto L_089BA4DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA4DC: aot_gpr_31 = (0x089BA4E4u); aot_gpr_4 = (aot_gpr_16 + static_cast(11215)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 452u, 0x089BA4E4u, 0x08AAFA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 814u, 0x08AAFA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA4E4u) goto L_089BA4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA4E4: aot_gpr_4 = (0u | 209u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(11221), static_cast(aot_gpr_4)); @@ -5518,8 +6705,8 @@ L_089BA4E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA51C: @@ -5563,8 +6750,8 @@ L_089BA560: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA56C: @@ -5592,8 +6779,21 @@ L_089BA588: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x089BA5B4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(17104)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 461u, 0x089BA5B4u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA5B4u) goto L_089BA5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA5B4: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -5642,8 +6842,8 @@ L_089BA5F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA604: @@ -5694,8 +6894,8 @@ L_089BA644: } L_089BA654: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA65C: @@ -5748,8 +6948,8 @@ L_089BA6D0: } L_089BA6E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BA6EC: @@ -5809,8 +7009,21 @@ L_089BA760: L_089BA774: aot_gpr_31 = (0x089BA77Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0111. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 487u, 0x089BA77Cu, 0x089C0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0111_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0111_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0111_entry, 111u, 48u, 0x089C0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA77Cu) goto L_089BA77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA77C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-24920))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5822,8 +7035,21 @@ L_089BA77C: L_089BA788: aot_gpr_31 = (0x089BA790u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 489u, 0x089BA790u, 0x089C5CFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 432u, 0x089C5CFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA790u) goto L_089BA790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA790: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(9256))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -5851,8 +7077,21 @@ L_089BA7B4: goto L_089BA7B8; L_089BA7B8: aot_gpr_31 = (0x089BA7C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 494u, 0x089BA7C0u, 0x089C6DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 638u, 0x089C6DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA7C0u) goto L_089BA7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA7C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5867,8 +7106,21 @@ L_089BA7C8: L_089BA7D0: aot_gpr_31 = (0x089BA7D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 497u, 0x089BA7D8u, 0x089C4F8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 253u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 253u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 253u, 0x089C4F8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA7D8u) goto L_089BA7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA7D8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -5890,8 +7142,21 @@ L_089BA804: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089BA814u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 499u, 0x089BA814u, 0x089BF18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 612u, 0x089BF18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA814u) goto L_089BA814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA814: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -5914,8 +7179,21 @@ L_089BA840: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089BA850u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 501u, 0x089BA850u, 0x089BF18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 612u, 0x089BF18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA850u) goto L_089BA850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA850: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(10868))); goto L_089BA854; @@ -5933,8 +7211,21 @@ L_089BA85C: L_089BA864: aot_gpr_31 = (0x089BA86Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 505u, 0x089BA86Cu, 0x089BDD20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 375u, 0x089BDD20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA86Cu) goto L_089BA86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA86C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5945,13 +7236,39 @@ L_089BA86C: L_089BA874: aot_gpr_31 = (0x089BA87Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 507u, 0x089BA87Cu, 0x089BF4F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 671u, 0x089BF4F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA87Cu) goto L_089BA87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA87C: aot_gpr_31 = (0x089BA884u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 508u, 0x089BA884u, 0x089BDA30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 342u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 342u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 342u, 0x089BDA30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA884u) goto L_089BA884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA884: aot_gpr_31 = (0x089BA88Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5967,13 +7284,39 @@ L_089BA88C: L_089BA898: aot_gpr_31 = (0x089BA8A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 511u, 0x089BA8A0u, 0x089C57B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 361u, 0x089C57B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA8A0u) goto L_089BA8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA8A0: aot_gpr_31 = (0x089BA8A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 512u, 0x089BA8A8u, 0x089C4B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 195u, 0x089C4B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA8A8u) goto L_089BA8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA8A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(10920))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -5999,8 +7342,21 @@ L_089BA8C8: goto L_089BA8CC; L_089BA8CC: aot_gpr_31 = (0x089BA8D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 517u, 0x089BA8D4u, 0x089C6DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 638u, 0x089C6DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA8D4u) goto L_089BA8D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA8D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6011,30 +7367,95 @@ L_089BA8D4: L_089BA8DC: aot_gpr_31 = (0x089BA8E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 519u, 0x089BA8E4u, 0x089BD59Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 290u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 290u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 290u, 0x089BD59Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA8E4u) goto L_089BA8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA8E4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(11236), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(11237), static_cast(0u)); aot_gpr_31 = (0x089BA8F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 520u, 0x089BA8F4u, 0x089BD108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 222u, 0x089BD108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA8F4u) goto L_089BA8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA8F4: aot_gpr_31 = (0x089BA8FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 521u, 0x089BA8FCu, 0x089C4858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 156u, 0x089C4858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA8FCu) goto L_089BA8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA8FC: aot_gpr_31 = (0x089BA904u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 522u, 0x089BA904u, 0x089BFF80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 804u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 804u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 804u, 0x089BFF80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA904u) goto L_089BA904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA904: aot_gpr_31 = (0x089BA90Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 523u, 0x089BA90Cu, 0x089BD32Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 250u, 0x089BD32Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA90Cu) goto L_089BA90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA90C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6053,8 +7474,21 @@ L_089BA914: L_089BA920: aot_gpr_31 = (0x089BA928u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0111. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 526u, 0x089BA928u, 0x089C0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0111_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0111_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0111_entry, 111u, 48u, 0x089C0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA928u) goto L_089BA928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA928: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(11252))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6085,8 +7519,21 @@ L_089BA944: L_089BA950: aot_gpr_31 = (0x089BA958u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0111. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 531u, 0x089BA958u, 0x089C0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0111_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0111_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0111_entry, 111u, 48u, 0x089C0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA958u) goto L_089BA958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA958: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(11252))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6138,8 +7585,21 @@ L_089BA99C: L_089BA9A4: aot_gpr_31 = (0x089BA9ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 539u, 0x089BA9ACu, 0x088128A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 765u, 0x088128A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA9ACu) goto L_089BA9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA9AC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8360))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6155,38 +7615,129 @@ L_089BA9B8: L_089BA9C0: aot_gpr_31 = (0x089BA9C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 542u, 0x089BA9C8u, 0x089BC530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 65u, 0x089BC530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA9C8u) goto L_089BA9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA9C8: aot_gpr_31 = (0x089BA9D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0111. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 543u, 0x089BA9D0u, 0x089C15C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0111_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0111_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0111_entry, 111u, 209u, 0x089C15C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA9D0u) goto L_089BA9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA9D0: aot_gpr_31 = (0x089BA9D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 544u, 0x089BA9D8u, 0x089BF9F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 720u, 0x089BF9F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA9D8u) goto L_089BA9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA9D8: aot_gpr_31 = (0x089BA9E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 545u, 0x089BA9E0u, 0x089BDC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 365u, 0x089BDC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA9E0u) goto L_089BA9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA9E0: aot_gpr_31 = (0x089BA9E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 546u, 0x089BA9E8u, 0x089BCDB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 168u, 0x089BCDB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA9E8u) goto L_089BA9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA9E8: aot_gpr_31 = (0x089BA9F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 547u, 0x089BA9F0u, 0x089BC1D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 26u, 0x089BC1D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA9F0u) goto L_089BA9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA9F0: aot_gpr_31 = (0x089BA9F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 548u, 0x089BA9F8u, 0x089BC858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 118u, 0x089BC858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BA9F8u) goto L_089BA9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BA9F8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6198,12 +7749,38 @@ L_089BA9F8: L_089BAA04: aot_gpr_31 = (0x089BAA0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0111. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 550u, 0x089BAA0Cu, 0x089C1C78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0111_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0111_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0111_entry, 111u, 283u, 0x089C1C78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BAA0Cu) goto L_089BAA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BAA0C: aot_gpr_31 = (0x089BAA14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 551u, 0x089BAA14u, 0x089E8B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 123u, 0x089E8B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BAA14u) goto L_089BAA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BAA14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(29552))); aot_gpr_5 = (50944u << 16u); @@ -6222,8 +7799,8 @@ L_089BAA14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAA4C: @@ -6232,43 +7809,43 @@ L_089BAA4C: ctx.gpr[2] = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(538)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAA60: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(11224))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAA68: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(11221))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAA70: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(9260)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAA78: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(11228))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAA80: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(11220))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAA88: @@ -6290,8 +7867,8 @@ L_089BAA98: } L_089BAAA0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAAA8: @@ -6317,8 +7894,8 @@ L_089BAAC0: goto L_089BAAC8; L_089BAAC8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAAD0: @@ -6345,8 +7922,8 @@ L_089BAAE8: goto L_089BAAF4; L_089BAAF4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAAFC: @@ -6373,8 +7950,8 @@ L_089BAB14: goto L_089BAB20; L_089BAB20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAB28: @@ -6436,29 +8013,29 @@ L_089BAB98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BABAC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(9256))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BABB4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BABBC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BABC4: @@ -6472,18 +8049,57 @@ L_089BABC4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x089BABF0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-12212)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 584u, 0x089BABF0u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BABF0u) goto L_089BABF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BABF0: aot_gpr_31 = (0x089BABF8u); ctx.gpr[18] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 585u, 0x089BABF8u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BABF8u) goto L_089BABF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BABF8: aot_gpr_31 = (0x089BAC00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 586u, 0x089BAC00u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BAC00u) goto L_089BAC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BAC00: ctx.gpr[19] = (0u | 0u); ctx.gpr[18] = (aot_gpr_16 + static_cast(10924)); @@ -6493,8 +8109,21 @@ L_089BAC08: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x089BAC18u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 588u, 0x089BAC18u, 0x08AF4530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 58u, 0x08AF4530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BAC18u) goto L_089BAC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BAC18: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(4)); @@ -6518,8 +8147,21 @@ L_089BAC38: aot_gpr_4 = (ctx.gpr[28] + static_cast(-12384)); aot_gpr_31 = (0x089BAC44u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 591u, 0x089BAC44u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BAC44u) goto L_089BAC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BAC44: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-13164), ctx.gpr[2]); goto L_089BAC48; @@ -6535,8 +8177,21 @@ L_089BAC54: aot_gpr_4 = (ctx.gpr[28] + static_cast(-12504)); aot_gpr_31 = (0x089BAC60u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 594u, 0x089BAC60u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BAC60u) goto L_089BAC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BAC60: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-13160), ctx.gpr[2]); goto L_089BAC64; @@ -6552,8 +8207,21 @@ L_089BAC70: aot_gpr_4 = (ctx.gpr[28] + static_cast(-12340)); aot_gpr_31 = (0x089BAC7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 597u, 0x089BAC7Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BAC7Cu) goto L_089BAC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BAC7C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-13152), ctx.gpr[2]); goto L_089BAC80; @@ -6569,8 +8237,21 @@ L_089BAC8C: aot_gpr_4 = (ctx.gpr[28] + static_cast(-12316)); aot_gpr_31 = (0x089BAC98u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-12304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 600u, 0x089BAC98u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BAC98u) goto L_089BAC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BAC98: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-13148), ctx.gpr[2]); goto L_089BAC9C; @@ -6586,15 +8267,41 @@ L_089BACA8: aot_gpr_4 = (ctx.gpr[28] + static_cast(-12292)); aot_gpr_31 = (0x089BACB4u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-12276)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 603u, 0x089BACB4u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BACB4u) goto L_089BACB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BACB4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-13156), ctx.gpr[2]); goto L_089BACB8; L_089BACB8: aot_gpr_31 = (0x089BACC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 605u, 0x089BACC0u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BACC0u) goto L_089BACC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BACC0: aot_gpr_31 = (0x089BACC8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6610,16 +8317,16 @@ L_089BACC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BACE4: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(10820))); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BACF0: @@ -6747,8 +8454,8 @@ L_089BADA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAE90: @@ -6760,15 +8467,15 @@ L_089BAE90: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(17968), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(538), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAEB0: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(9257), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAEB8: @@ -6903,8 +8610,8 @@ L_089BAFA0: goto L_089BAFA8; L_089BAFA8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAFB0: @@ -6945,50 +8652,50 @@ L_089BAFD4: L_089BAFF0: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_6 + static_cast(8730), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BAFF8: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(11226), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB000: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(11222), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB008: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(11223), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB010: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(11224), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB018: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(10920), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB020: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(10884), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB028: @@ -7035,8 +8742,21 @@ L_089BB070: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x089BB094u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 650u, 0x089BB094u, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB094u) goto L_089BB094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB094: aot_gpr_4 = (0u | 0u); goto L_089BB098; @@ -7060,13 +8780,39 @@ L_089BB0C0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089BB0D0u); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 653u, 0x089BB0D0u, 0x08AB8A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 147u, 0x08AB8A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB0D0u) goto L_089BB0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB0D0: aot_gpr_31 = (0x089BB0D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 654u, 0x089BB0D8u, 0x08AB9A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 327u, 0x08AB9A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB0D8u) goto L_089BB0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB0D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(10820))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7080,8 +8826,21 @@ L_089BB0E4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089BB0F0u); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 656u, 0x089BB0F0u, 0x08AB8ADCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 155u, 0x08AB8ADCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB0F0u) goto L_089BB0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB0F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7138,15 +8897,41 @@ L_089BB140: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089BB158u); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 664u, 0x089BB158u, 0x08AB8A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 147u, 0x08AB8A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB158u) goto L_089BB158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB158: aot_gpr_4 = (ctx.gpr[17] + static_cast(9788)); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089BB168u); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 665u, 0x089BB168u, 0x08AB8A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 147u, 0x08AB8A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB168u) goto L_089BB168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB168: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7173,8 +8958,8 @@ L_089BB17C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB19C: @@ -7216,8 +9001,8 @@ L_089BB1D8: goto L_089BB1E8; L_089BB1E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB1F0: @@ -7225,15 +9010,15 @@ L_089BB1F0: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(9262), static_cast(aot_gpr_6)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB200: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(11228), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB208: @@ -7276,64 +9061,64 @@ L_089BB24C: aot_mem.aot_direct_store16(aot_gpr_6 + static_cast(24), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(536), static_cast(ctx.gpr[10])); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB258: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(11220), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB260: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(10832), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB268: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(10900), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB270: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(9256), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB278: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB280: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(9252), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB288: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB290: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB298: @@ -7357,14 +9142,27 @@ L_089BB2B8: aot_gpr_4 = (aot_gpr_4 | 10486u); aot_gpr_31 = (0x089BB2C8u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 693u, 0x089BB2C8u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB2C8u) goto L_089BB2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB2C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB2D4: @@ -7388,8 +9186,8 @@ L_089BB2E8: goto L_089BB2EC; L_089BB2EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB2F4: @@ -7406,8 +9204,21 @@ L_089BB310: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089BB31Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 700u, 0x089BB31Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB31Cu) goto L_089BB31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB31C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7431,15 +9242,41 @@ L_089BB334: L_089BB33C: aot_gpr_31 = (0x089BB344u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-12208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 705u, 0x089BB344u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB344u) goto L_089BB344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB344: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 20000u); aot_gpr_31 = (0x089BB354u); aot_gpr_6 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 706u, 0x089BB354u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB354u) goto L_089BB354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB354: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7449,8 +9286,8 @@ L_089BB354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB368: @@ -7517,8 +9354,8 @@ L_089BB3D0: goto L_089BB3D8; L_089BB3D8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB3E0: @@ -7556,8 +9393,21 @@ L_089BB438: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089BB448u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 718u, 0x089BB448u, 0x089BF18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 612u, 0x089BF18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB448u) goto L_089BB448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB448: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -7591,8 +9441,21 @@ L_089BB48C: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089BB49Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 721u, 0x089BB49Cu, 0x089BF18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 612u, 0x089BF18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB49Cu) goto L_089BB49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB49C: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(11221))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -7633,8 +9496,21 @@ L_089BB4E4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x089BB4F4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 726u, 0x089BB4F4u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB4F4u) goto L_089BB4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB4F4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7868))); @@ -7712,8 +9588,21 @@ L_089BB570: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089BB58Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 737u, 0x089BB58Cu, 0x089BD72Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 315u, 0x089BD72Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB58Cu) goto L_089BB58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB58C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7729,8 +9618,21 @@ L_089BB594: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089BB5B0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 739u, 0x089BB5B0u, 0x089BD72Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 315u, 0x089BD72Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB5B0u) goto L_089BB5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB5B0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(200), aot_run_words); @@ -7742,8 +9644,8 @@ L_089BB5B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB5CC: @@ -7792,8 +9694,21 @@ L_089BB650: } L_089BB664: aot_gpr_31 = (0x089BB66Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 744u, 0x089BB66Cu, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB66Cu) goto L_089BB66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB66C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7843,8 +9758,21 @@ L_089BB6DC: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x089BB6E8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 748u, 0x089BB6E8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB6E8u) goto L_089BB6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB6E8: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -7868,13 +9796,39 @@ L_089BB704: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089BB710u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 753u, 0x089BB710u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB710u) goto L_089BB710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB710: aot_gpr_31 = (0x089BB718u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 754u, 0x089BB718u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB718u) goto L_089BB718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB718: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -7914,8 +9868,21 @@ L_089BB76C: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x089BB778u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 758u, 0x089BB778u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB778u) goto L_089BB778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB778: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -7939,13 +9906,39 @@ L_089BB794: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089BB7A0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 763u, 0x089BB7A0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB7A0u) goto L_089BB7A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB7A0: aot_gpr_31 = (0x089BB7A8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 764u, 0x089BB7A8u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB7A8u) goto L_089BB7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB7A8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -7967,8 +9960,21 @@ L_089BB7E0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089BB7ECu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 766u, 0x089BB7ECu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB7ECu) goto L_089BB7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB7EC: aot_gpr_31 = (0x089BB7F4u); aot_gpr_4 = (0u | 2u); @@ -8066,8 +10072,21 @@ L_089BB8D8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089BB8E4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 777u, 0x089BB8E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB8E4u) goto L_089BB8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB8E4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8097,14 +10116,40 @@ L_089BB904: aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); aot_gpr_31 = (0x089BB924u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(320))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 782u, 0x089BB924u, 0x08990C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 170u, 0x08990C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB924u) goto L_089BB924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB924: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089BB930u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 783u, 0x089BB930u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB930u) goto L_089BB930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB930: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6864))); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -8133,8 +10178,21 @@ L_089BB958: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089BB96Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 787u, 0x089BB96Cu, 0x08887BB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 854u, 0x08887BB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BB96Cu) goto L_089BB96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BB96C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8181,8 +10239,8 @@ L_089BB9BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BB9EC: @@ -8285,8 +10343,21 @@ L_089BBAA8: L_089BBAB0: aot_gpr_31 = (0x089BBAB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 802u, 0x089BBAB8u, 0x089C6DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 638u, 0x089C6DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BBAB8u) goto L_089BBAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BBAB8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8314,8 +10385,21 @@ L_089BBAC0: L_089BBAFC: aot_gpr_31 = (0x089BBB04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 805u, 0x089BBB04u, 0x089BCF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 192u, 0x089BCF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BBB04u) goto L_089BBB04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BBB04: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8325,8 +10409,8 @@ L_089BBB04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BBB18: @@ -8541,8 +10625,21 @@ L_089BBD10: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089BBD40u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 826u, 0x089BBD40u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BBD40u) goto L_089BBD40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BBD40: aot_gpr_5 = (17362u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); @@ -8594,8 +10691,21 @@ L_089BBDB4: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x089BBDE4u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 829u, 0x089BBDE4u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BBDE4u) goto L_089BBDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BBDE4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8643,8 +10753,21 @@ L_089BBE48: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x089BBE78u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 832u, 0x089BBE78u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BBE78u) goto L_089BBE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BBE78: aot_gpr_4 = (17096u << 16u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -8695,8 +10818,21 @@ L_089BBEEC: aot_gpr_4 = (16288u << 16u); aot_gpr_31 = (0x089BBEF8u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 838u, 0x089BBEF8u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BBEF8u) goto L_089BBEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BBEF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 362u); @@ -8715,8 +10851,21 @@ L_089BBF10: aot_gpr_4 = (16192u << 16u); aot_gpr_31 = (0x089BBF1Cu); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 841u, 0x089BBF1Cu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BBF1Cu) goto L_089BBF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BBF1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 366u); @@ -8741,8 +10890,8 @@ L_089BBF2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BBF60: @@ -8795,8 +10944,21 @@ L_089BBFE4: L_089BBFEC: aot_gpr_31 = (0x089BBFF4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0109->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0109_entry, 849u, 0x089BBFF4u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BBFF4u) goto L_089BBFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BBFF4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(1))); diff --git a/profiles/vcs/generated/generated_unit_0110.cpp b/profiles/vcs/generated/generated_unit_0110.cpp index 3fb6e4f..63ee0b5 100644 --- a/profiles/vcs/generated/generated_unit_0110.cpp +++ b/profiles/vcs/generated/generated_unit_0110.cpp @@ -883,6 +883,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089BC000u; + if (local_delta_v813 >= 16352u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -977,16 +1001,42 @@ L_089BC088: L_089BC0AC: aot_gpr_31 = (0x089BC0B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 12u, 0x089BC0B4u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC0B4u) goto L_089BC0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC0B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(36)))))); aot_gpr_4 = (aot_gpr_4 & 16u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_31 = (0x089BC0C8u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 13u, 0x089BC0C8u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC0C8u) goto L_089BC0C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC0C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(28))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); @@ -1061,8 +1111,21 @@ L_089BC158: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089BC168u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 21u, 0x089BC168u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC168u) goto L_089BC168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC168: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1082,8 +1145,21 @@ L_089BC180: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BC190u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 24u, 0x089BC190u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC190u) goto L_089BC190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC190: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(24)); @@ -1111,8 +1187,8 @@ L_089BC1A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BC1D4: @@ -1488,8 +1564,8 @@ L_089BC514: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BC530: @@ -1564,8 +1640,21 @@ L_089BC5C4: aot_gpr_4 = (aot_gpr_4 | 10486u); aot_gpr_31 = (0x089BC5D4u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 76u, 0x089BC5D4u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC5D4u) goto L_089BC5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC5D4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1578,8 +1667,21 @@ L_089BC5E0: aot_gpr_4 = (16256u << 16u); aot_gpr_31 = (0x089BC5ECu); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 78u, 0x089BC5ECu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC5ECu) goto L_089BC5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC5EC: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -1609,8 +1711,21 @@ L_089BC618: goto L_089BC61C; L_089BC61C: aot_gpr_31 = (0x089BC624u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 83u, 0x089BC624u, 0x089C6D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 629u, 0x089C6D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC624u) goto L_089BC624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC624: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_5 = (16880u << 16u); @@ -1659,8 +1774,21 @@ L_089BC654: L_089BC678: aot_gpr_31 = (0x089BC680u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 91u, 0x089BC680u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC680u) goto L_089BC680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC680: aot_gpr_4 = (ctx.gpr[16] + static_cast(24)); aot_gpr_5 = (0u | 0u); @@ -1715,8 +1843,21 @@ L_089BC6D0: L_089BC700: aot_gpr_31 = (0x089BC708u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 97u, 0x089BC708u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC708u) goto L_089BC708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC708: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -1735,8 +1876,21 @@ L_089BC728: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BC740u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 99u, 0x089BC740u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC740u) goto L_089BC740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC740: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1755,8 +1909,21 @@ L_089BC754: goto L_089BC758; L_089BC758: aot_gpr_31 = (0x089BC760u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 103u, 0x089BC760u, 0x089C6D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 633u, 0x089C6D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC760u) goto L_089BC760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC760: { const bool branch_taken = aot_gpr_2 == ctx.gpr[17]; if (branch_taken) { @@ -1788,14 +1955,40 @@ L_089BC774: L_089BC798: aot_gpr_31 = (0x089BC7A0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 107u, 0x089BC7A0u, 0x089BAAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 565u, 0x089BAAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC7A0u) goto L_089BC7A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC7A0: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089BC7ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 108u, 0x089BC7ACu, 0x089BAA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 558u, 0x089BAA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC7ACu) goto L_089BC7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC7AC: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[24]; aot_gpr_4 = (aot_gpr_29 + static_cast(32)); @@ -1809,8 +2002,21 @@ L_089BC7AC: L_089BC7C8: aot_gpr_31 = (0x089BC7D0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 110u, 0x089BC7D0u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC7D0u) goto L_089BC7D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC7D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1830,8 +2036,21 @@ L_089BC7D8: L_089BC7F0: aot_gpr_31 = (0x089BC7F8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 113u, 0x089BC7F8u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC7F8u) goto L_089BC7F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC7F8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 0u); @@ -1872,8 +2091,8 @@ L_089BC824: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BC858: @@ -2030,8 +2249,21 @@ L_089BC978: aot_gpr_5 = (0u | 101u); aot_gpr_31 = (0x089BC988u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 138u, 0x089BC988u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BC988u) goto L_089BC988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BC988: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(9524), static_cast(ctx.gpr[17])); @@ -2144,8 +2376,21 @@ L_089BCA78: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BCABCu); ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 148u, 0x089BCABCu, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCABCu) goto L_089BCABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCABC: aot_gpr_31 = (0x089BCAC4u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B0C05C, 194u, 8u, 0x08B0C05Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0194_entry, 194u, 8u, 0x08B0C05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCAC4u) goto L_089BCAC4; @@ -2175,8 +2420,21 @@ L_089BCAD4: aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_14 / aot_fpr_12; aot_gpr_31 = (0x089BCB10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 152u, 0x089BCB10u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCB10u) goto L_089BCB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCB10: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 0u); @@ -2190,8 +2448,21 @@ L_089BCB10: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089BCB40u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 153u, 0x089BCB40u, 0x08B0C7E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 104u, 0x08B0C7E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCB40u) goto L_089BCB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCB40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); @@ -2242,8 +2513,21 @@ L_089BCBDC: ctx.gpr[8] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BCBF8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 155u, 0x089BCBF8u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCBF8u) goto L_089BCBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCBF8: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -2258,8 +2542,8 @@ L_089BCBF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BCC20: @@ -2309,8 +2593,21 @@ L_089BCC44: ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089BCCA8u); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 159u, 0x089BCCA8u, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCCA8u) goto L_089BCCA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCCA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2364,8 +2661,21 @@ L_089BCD00: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089BCD2Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 164u, 0x089BCD2Cu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCD2Cu) goto L_089BCD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCD2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2400,8 +2710,21 @@ L_089BCD34: ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089BCD9Cu); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 166u, 0x089BCD9Cu, 0x08AF5238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 124u, 0x08AF5238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCD9Cu) goto L_089BCD9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCD9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2414,8 +2737,8 @@ L_089BCDA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BCDB4: @@ -2440,8 +2763,21 @@ L_089BCDE0: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089BCDF0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 170u, 0x089BCDF0u, 0x089BA604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 468u, 0x089BA604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCDF0u) goto L_089BCDF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCDF0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (2279u << 16u); @@ -2628,8 +2964,8 @@ L_089BCF74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BCF8C: @@ -2651,8 +2987,21 @@ L_089BCFAC: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BCFB8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 195u, 0x089BCFB8u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCFB8u) goto L_089BCFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCFB8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2663,8 +3012,21 @@ L_089BCFB8: L_089BCFC0: aot_gpr_31 = (0x089BCFC8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 197u, 0x089BCFC8u, 0x089476BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 707u, 0x089476BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCFC8u) goto L_089BCFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCFC8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2696,8 +3058,21 @@ L_089BCFE0: L_089BCFE8: aot_gpr_31 = (0x089BCFF0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 202u, 0x089BCFF0u, 0x08947928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 743u, 0x08947928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BCFF0u) goto L_089BCFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BCFF0: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_29 | 0u); @@ -2712,8 +3087,21 @@ L_089BD00C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089BD018u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 204u, 0x089BD018u, 0x08A356D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 352u, 0x08A356D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD018u) goto L_089BD018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD018: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2724,8 +3112,21 @@ L_089BD018: L_089BD020: aot_gpr_31 = (0x089BD028u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 206u, 0x089BD028u, 0x089476D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 709u, 0x089476D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD028u) goto L_089BD028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD028: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2736,8 +3137,21 @@ L_089BD028: L_089BD030: aot_gpr_31 = (0x089BD038u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 208u, 0x089BD038u, 0x08947928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 743u, 0x08947928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD038u) goto L_089BD038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD038: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); @@ -2752,8 +3166,21 @@ L_089BD054: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089BD060u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 210u, 0x089BD060u, 0x08A356D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 352u, 0x08A356D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD060u) goto L_089BD060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD060: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2764,8 +3191,21 @@ L_089BD060: L_089BD068: aot_gpr_31 = (0x089BD070u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 212u, 0x089BD070u, 0x089476C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 708u, 0x089476C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD070u) goto L_089BD070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD070: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2776,8 +3216,21 @@ L_089BD070: L_089BD078: aot_gpr_31 = (0x089BD080u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 214u, 0x089BD080u, 0x08947928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 743u, 0x08947928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD080u) goto L_089BD080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD080: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(8)); @@ -2792,8 +3245,21 @@ L_089BD09C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089BD0A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 216u, 0x089BD0A8u, 0x08A356D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 352u, 0x08A356D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD0A8u) goto L_089BD0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD0A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2815,8 +3281,21 @@ L_089BD0B0: L_089BD0C8: aot_gpr_31 = (0x089BD0D0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 219u, 0x089BD0D0u, 0x08947928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 743u, 0x08947928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD0D0u) goto L_089BD0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD0D0: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(12)); @@ -2831,15 +3310,28 @@ L_089BD0EC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089BD0F8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 221u, 0x089BD0F8u, 0x08A356D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 352u, 0x08A356D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD0F8u) goto L_089BD0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD0F8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BD108: @@ -2948,8 +3440,21 @@ L_089BD200: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089BD20Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 234u, 0x089BD20Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD20Cu) goto L_089BD20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD20C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2973,14 +3478,40 @@ L_089BD224: L_089BD22C: aot_gpr_31 = (0x089BD234u); aot_gpr_5 = (ctx.gpr[19] + static_cast(18)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 239u, 0x089BD234u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD234u) goto L_089BD234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD234: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BD240u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 240u, 0x089BD240u, 0x089BB298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 689u, 0x089BB298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD240u) goto L_089BD240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD240: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(11221))); aot_gpr_5 = (0u | 255u); @@ -3006,8 +3537,21 @@ L_089BD264: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089BD294u); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 242u, 0x089BD294u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD294u) goto L_089BD294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD294: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -3020,8 +3564,21 @@ L_089BD294: L_089BD2AC: aot_gpr_31 = (0x089BD2B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 244u, 0x089BD2B4u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD2B4u) goto L_089BD2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD2B4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 0u); @@ -3074,8 +3631,8 @@ L_089BD2F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BD32C: @@ -3120,8 +3677,21 @@ L_089BD388: L_089BD390: aot_gpr_31 = (0x089BD398u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 256u, 0x089BD398u, 0x089C6D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 633u, 0x089C6D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD398u) goto L_089BD398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD398: { const bool branch_taken = aot_gpr_2 == ctx.gpr[17]; if (branch_taken) { @@ -3185,8 +3755,21 @@ L_089BD3F4: goto L_089BD3F8; L_089BD3F8: aot_gpr_31 = (0x089BD400u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 266u, 0x089BD400u, 0x0880D548u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 329u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 329u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 329u, 0x0880D548u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD400u) goto L_089BD400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD400: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3216,41 +3799,119 @@ L_089BD42C: ctx.gpr[17] = (ctx.gpr[16] + static_cast(11124)); aot_gpr_31 = (0x089BD438u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 271u, 0x089BD438u, 0x089BAA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 558u, 0x089BAA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD438u) goto L_089BD438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD438: aot_gpr_4 = (16512u << 16u); ctx.fpr[20] = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089BD44Cu); ctx.fpr[22] = ctx.fpr[0] - ctx.fpr[20]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 272u, 0x089BD44Cu, 0x089BAAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 561u, 0x089BAAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD44Cu) goto L_089BD44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD44C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089BD458u); ctx.fpr[24] = ctx.fpr[0] - ctx.fpr[20]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 273u, 0x089BD458u, 0x089BAA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 558u, 0x089BAA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD458u) goto L_089BD458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD458: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089BD464u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 274u, 0x089BD464u, 0x089BAAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 565u, 0x089BAAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD464u) goto L_089BD464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD464: aot_fpr_12 = ctx.fpr[26] + ctx.fpr[0]; aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089BD474u); ctx.fpr[28] = aot_fpr_12 + ctx.fpr[20]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 275u, 0x089BD474u, 0x089BAAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 561u, 0x089BAAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD474u) goto L_089BD474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD474: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089BD480u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 276u, 0x089BD480u, 0x089BAAFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 569u, 0x089BAAFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD480u) goto L_089BD480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD480: aot_fpr_15 = ctx.fpr[30] + ctx.fpr[0]; aot_gpr_4 = (aot_gpr_29 | 0u); @@ -3309,8 +3970,21 @@ L_089BD50C: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089BD528u); ctx.gpr[9] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 282u, 0x089BD528u, 0x08AF46A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 76u, 0x08AF46A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD528u) goto L_089BD528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD528: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3328,8 +4002,21 @@ L_089BD53C: goto L_089BD540; L_089BD540: aot_gpr_31 = (0x089BD548u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 286u, 0x089BD548u, 0x08810A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 151u, 0x08810A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD548u) goto L_089BD548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD548: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -3363,8 +4050,8 @@ L_089BD564: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BD59C: @@ -3546,8 +4233,21 @@ L_089BD6D0: aot_gpr_5 = (0u | 168u); aot_gpr_31 = (0x089BD6E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 312u, 0x089BD6E0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD6E0u) goto L_089BD6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD6E0: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(11253), static_cast(0u)); aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7648))); @@ -3573,8 +4273,8 @@ L_089BD71C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(204))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BD72C: @@ -3830,8 +4530,21 @@ L_089BD968: ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x089BD998u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 338u, 0x089BD998u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BD998u) goto L_089BD998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BD998: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); @@ -3888,8 +4601,8 @@ L_089BD9E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BDA30: @@ -3995,8 +4708,21 @@ L_089BDB2C: L_089BDB34: aot_gpr_31 = (0x089BDB3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 353u, 0x089BDB3Cu, 0x089C6DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 638u, 0x089C6DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BDB3Cu) goto L_089BDB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BDB3C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4113,8 +4839,8 @@ L_089BDC08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BDC34: @@ -4193,8 +4919,21 @@ L_089BDCE8: ctx.gpr[8] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BDD04u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 373u, 0x089BDD04u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BDD04u) goto L_089BDD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BDD04: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-17152), static_cast(0u)); goto L_089BDD08; @@ -4208,8 +4947,8 @@ L_089BDD08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BDD20: @@ -4362,8 +5101,21 @@ L_089BDE2C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089BDE44u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 392u, 0x089BDE44u, 0x08AAFA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 815u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 815u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 815u, 0x08AAFA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BDE44u) goto L_089BDE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BDE44: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(11213))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; @@ -4396,8 +5148,21 @@ L_089BDE5C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089BDE94u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 395u, 0x089BDE94u, 0x08AAFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 835u, 0x08AAFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BDE94u) goto L_089BDE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BDE94: ctx.gpr[21] = (ctx.gpr[19] | 0u); goto L_089BDE98; @@ -4405,8 +5170,21 @@ L_089BDE98: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089BDEA4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 397u, 0x089BDEA4u, 0x08AAFA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 815u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 815u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 815u, 0x08AAFA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BDEA4u) goto L_089BDEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BDEA4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(11216))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; @@ -4440,8 +5218,21 @@ L_089BDEBC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089BDEFCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 400u, 0x089BDEFCu, 0x08AAFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 835u, 0x08AAFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BDEFCu) goto L_089BDEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BDEFC: ctx.gpr[21] = (0u | 1u); goto L_089BDF00; @@ -4462,8 +5253,8 @@ L_089BDF04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BDF2C: @@ -4523,8 +5314,21 @@ L_089BDFA0: L_089BDFA8: aot_gpr_31 = (0x089BDFB0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 411u, 0x089BDFB0u, 0x089C57B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 361u, 0x089C57B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BDFB0u) goto L_089BDFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BDFB0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4600,8 +5404,21 @@ L_089BE024: aot_gpr_4 = (16256u << 16u); aot_gpr_31 = (0x089BE030u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 423u, 0x089BE030u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE030u) goto L_089BE030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE030: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -4629,8 +5446,21 @@ L_089BE058: L_089BE060: aot_gpr_31 = (0x089BE068u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 427u, 0x089BE068u, 0x089C6D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 629u, 0x089C6D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE068u) goto L_089BE068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE068: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4675,8 +5505,21 @@ L_089BE094: L_089BE0B8: aot_gpr_31 = (0x089BE0C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 434u, 0x089BE0C0u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE0C0u) goto L_089BE0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE0C0: aot_gpr_4 = (ctx.gpr[16] + static_cast(24)); aot_gpr_5 = (0u | 0u); @@ -4721,8 +5564,21 @@ L_089BE0E8: L_089BE11C: aot_gpr_31 = (0x089BE124u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 440u, 0x089BE124u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE124u) goto L_089BE124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE124: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -4742,8 +5598,21 @@ L_089BE148: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BE160u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 442u, 0x089BE160u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE160u) goto L_089BE160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE160: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4760,8 +5629,21 @@ L_089BE16C: L_089BE174: aot_gpr_31 = (0x089BE17Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 445u, 0x089BE17Cu, 0x089C6D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 633u, 0x089C6D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE17Cu) goto L_089BE17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE17C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4795,14 +5677,40 @@ L_089BE198: L_089BE1BC: aot_gpr_31 = (0x089BE1C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 449u, 0x089BE1C4u, 0x089BAAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 565u, 0x089BAAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE1C4u) goto L_089BE1C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE1C4: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089BE1D0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 450u, 0x089BE1D0u, 0x089BAA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 558u, 0x089BAA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE1D0u) goto L_089BE1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE1D0: aot_gpr_4 = (16544u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4836,8 +5744,21 @@ L_089BE1D0: L_089BE23C: aot_gpr_31 = (0x089BE244u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 452u, 0x089BE244u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE244u) goto L_089BE244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE244: aot_gpr_4 = (ctx.gpr[16] + static_cast(24)); aot_gpr_5 = (0u | 0u); @@ -4870,8 +5791,21 @@ L_089BE25C: L_089BE28C: aot_gpr_31 = (0x089BE294u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 456u, 0x089BE294u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE294u) goto L_089BE294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE294: aot_gpr_4 = (ctx.gpr[16] + static_cast(24)); aot_gpr_5 = (0u | 0u); @@ -4960,8 +5894,21 @@ L_089BE350: L_089BE358: aot_gpr_31 = (0x089BE360u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 467u, 0x089BE360u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE360u) goto L_089BE360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE360: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(1))); @@ -5077,16 +6024,42 @@ L_089BE424: L_089BE484: aot_gpr_31 = (0x089BE48Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 479u, 0x089BE48Cu, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE48Cu) goto L_089BE48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE48C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(36)))))); aot_gpr_4 = (aot_gpr_4 & 16u); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_31 = (0x089BE4A0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 480u, 0x089BE4A0u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE4A0u) goto L_089BE4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE4A0: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -5107,8 +6080,21 @@ L_089BE4C8: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BE4E0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 482u, 0x089BE4E0u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE4E0u) goto L_089BE4E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE4E0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_4 + ctx.gpr[18]); @@ -5144,8 +6130,21 @@ L_089BE510: L_089BE530: aot_gpr_31 = (0x089BE538u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 486u, 0x089BE538u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE538u) goto L_089BE538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE538: aot_gpr_4 = (ctx.gpr[17] << 6u); aot_gpr_5 = (ctx.gpr[17] << 3u); @@ -5253,8 +6252,21 @@ L_089BE62C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BE640u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 495u, 0x089BE640u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE640u) goto L_089BE640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE640: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5287,8 +6299,21 @@ L_089BE688: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089BE69Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 498u, 0x089BE69Cu, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE69Cu) goto L_089BE69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE69C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 65535u); @@ -5354,8 +6379,21 @@ L_089BE700: L_089BE730: aot_gpr_31 = (0x089BE738u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 506u, 0x089BE738u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE738u) goto L_089BE738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE738: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -5375,8 +6413,21 @@ L_089BE75C: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089BE774u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 508u, 0x089BE774u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE774u) goto L_089BE774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE774: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5393,8 +6444,21 @@ L_089BE780: L_089BE788: aot_gpr_31 = (0x089BE790u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 511u, 0x089BE790u, 0x089C6D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 633u, 0x089C6D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE790u) goto L_089BE790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE790: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5437,14 +6501,40 @@ L_089BE7BC: L_089BE7E0: aot_gpr_31 = (0x089BE7E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 516u, 0x089BE7E8u, 0x089BAAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 565u, 0x089BAAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE7E8u) goto L_089BE7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE7E8: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089BE7F4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 517u, 0x089BE7F4u, 0x089BAA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 558u, 0x089BAA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE7F4u) goto L_089BE7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE7F4: aot_gpr_4 = (16544u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5463,8 +6553,21 @@ L_089BE7F4: L_089BE824: aot_gpr_31 = (0x089BE82Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 519u, 0x089BE82Cu, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE82Cu) goto L_089BE82C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE82C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5487,8 +6590,21 @@ L_089BE834: L_089BE858: aot_gpr_31 = (0x089BE860u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 522u, 0x089BE860u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BE860u) goto L_089BE860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BE860: aot_gpr_4 = (ctx.gpr[16] + static_cast(2074)); aot_gpr_5 = (0u | 0u); @@ -6238,8 +7354,21 @@ L_089BEF60: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x089BEF80u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 592u, 0x089BEF80u, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BEF80u) goto L_089BEF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BEF80: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -6375,8 +7504,21 @@ L_089BF0D0: aot_gpr_4 = (aot_gpr_4 | 39322u); aot_gpr_31 = (0x089BF0E0u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 606u, 0x089BF0E0u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF0E0u) goto L_089BF0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF0E0: aot_gpr_5 = (16800u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -6395,8 +7537,21 @@ L_089BF0E0: L_089BF110: aot_gpr_31 = (0x089BF118u); ctx.gpr[16] = (ctx.gpr[16] + static_cast(1050)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 608u, 0x089BF118u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF118u) goto L_089BF118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF118: aot_gpr_4 = (17286u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6409,8 +7564,21 @@ L_089BF118: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x089BF144u); aot_gpr_6 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 609u, 0x089BF144u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF144u) goto L_089BF144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF144: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6440,8 +7608,8 @@ L_089BF15C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BF18C: @@ -6927,8 +8095,8 @@ L_089BF4E4: goto L_089BF4E8; L_089BF4E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BF4F0: @@ -7017,8 +8185,21 @@ L_089BF5B0: L_089BF5B8: aot_gpr_31 = (0x089BF5C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 682u, 0x089BF5C0u, 0x089C6DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 638u, 0x089C6DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF5C0u) goto L_089BF5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF5C0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7234,8 +8415,21 @@ L_089BF7A0: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x089BF7D0u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 703u, 0x089BF7D0u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF7D0u) goto L_089BF7D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF7D0: aot_gpr_5 = (17362u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); @@ -7287,8 +8481,21 @@ L_089BF844: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x089BF874u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 706u, 0x089BF874u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF874u) goto L_089BF874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF874: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -7336,8 +8543,21 @@ L_089BF8D8: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x089BF908u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 709u, 0x089BF908u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF908u) goto L_089BF908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF908: aot_gpr_4 = (17096u << 16u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -7388,8 +8608,21 @@ L_089BF97C: aot_gpr_4 = (16288u << 16u); aot_gpr_31 = (0x089BF988u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 715u, 0x089BF988u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF988u) goto L_089BF988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF988: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 362u); @@ -7408,8 +8641,21 @@ L_089BF9A0: aot_gpr_4 = (16192u << 16u); aot_gpr_31 = (0x089BF9ACu); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 718u, 0x089BF9ACu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BF9ACu) goto L_089BF9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BF9AC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 366u); @@ -7434,8 +8680,8 @@ L_089BF9BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BF9F0: @@ -7809,8 +9055,21 @@ L_089BFD50: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089BFD5Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 758u, 0x089BFD5Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFD5Cu) goto L_089BFD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFD5C: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7834,19 +9093,58 @@ L_089BFD74: L_089BFD7C: aot_gpr_31 = (0x089BFD84u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 763u, 0x089BFD84u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFD84u) goto L_089BFD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFD84: aot_gpr_31 = (0x089BFD8Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 764u, 0x089BFD8Cu, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFD8Cu) goto L_089BFD8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFD8C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089BFD98u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 765u, 0x089BFD98u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFD98u) goto L_089BFD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFD98: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -7860,8 +9158,21 @@ L_089BFDA4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089BFDB0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 767u, 0x089BFDB0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFDB0u) goto L_089BFDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFDB0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7885,19 +9196,58 @@ L_089BFDC8: L_089BFDD0: aot_gpr_31 = (0x089BFDD8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 772u, 0x089BFDD8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFDD8u) goto L_089BFDD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFDD8: aot_gpr_31 = (0x089BFDE0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 773u, 0x089BFDE0u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFDE0u) goto L_089BFDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFDE0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089BFDECu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 774u, 0x089BFDECu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFDECu) goto L_089BFDEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFDEC: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -7911,8 +9261,21 @@ L_089BFDF8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089BFE04u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 776u, 0x089BFE04u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE04u) goto L_089BFE04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE04: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7936,32 +9299,97 @@ L_089BFE1C: L_089BFE24: aot_gpr_31 = (0x089BFE2Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 781u, 0x089BFE2Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE2Cu) goto L_089BFE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE2C: aot_gpr_31 = (0x089BFE34u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 782u, 0x089BFE34u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE34u) goto L_089BFE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE34: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089BFE40u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 783u, 0x089BFE40u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE40u) goto L_089BFE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE40: aot_gpr_5 = (17159u << 16u); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089BFE50u); ctx.fpr[20] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 784u, 0x089BFE50u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE50u) goto L_089BFE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE50: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089BFE5Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 785u, 0x089BFE5Cu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE5Cu) goto L_089BFE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE5C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7972,14 +9400,40 @@ L_089BFE5C: L_089BFE64: aot_gpr_31 = (0x089BFE6Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 787u, 0x089BFE6Cu, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE6Cu) goto L_089BFE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE6C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089BFE78u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 788u, 0x089BFE78u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE78u) goto L_089BFE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE78: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7990,14 +9444,40 @@ L_089BFE78: L_089BFE80: aot_gpr_31 = (0x089BFE88u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 790u, 0x089BFE88u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE88u) goto L_089BFE88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE88: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089BFE94u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0110->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0110_entry, 791u, 0x089BFE94u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089BFE94u) goto L_089BFE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089BFE94: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8105,8 +9585,8 @@ L_089BFF54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(816)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089BFF80: diff --git a/profiles/vcs/generated/generated_unit_0111.cpp b/profiles/vcs/generated/generated_unit_0111.cpp index 453aa4c..60c2c9d 100644 --- a/profiles/vcs/generated/generated_unit_0111.cpp +++ b/profiles/vcs/generated/generated_unit_0111.cpp @@ -1045,6 +1045,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089C0000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1116,19 +1140,58 @@ L_089C0060: L_089C006C: aot_gpr_31 = (0x089C0074u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 8u, 0x089C0074u, 0x089BB298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 689u, 0x089BB298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0074u) goto L_089C0074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0074: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C0080u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 9u, 0x089C0080u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0080u) goto L_089C0080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0080: aot_gpr_31 = (0x089C0088u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 10u, 0x089C0088u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0088u) goto L_089C0088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0088: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(76))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(77))); @@ -1159,8 +1222,21 @@ L_089C00C0: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089C00F0u); ctx.fpr[20] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 12u, 0x089C00F0u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C00F0u) goto L_089C00F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C00F0: aot_gpr_16 = (ctx.gpr[29] + static_cast(4)); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[30])); @@ -1174,8 +1250,21 @@ L_089C00F0: L_089C010C: aot_gpr_31 = (0x089C0114u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 14u, 0x089C0114u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0114u) goto L_089C0114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0114: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -1194,8 +1283,21 @@ L_089C0134: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C014Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 16u, 0x089C014Cu, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C014Cu) goto L_089C014C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C014C: ctx.fpr[20] = std::bit_cast(aot_gpr_2); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -1270,8 +1372,21 @@ L_089C0218: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C0228u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 22u, 0x089C0228u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0228u) goto L_089C0228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0228: aot_gpr_5 = (17386u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -1297,8 +1412,21 @@ L_089C0260: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C0270u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 25u, 0x089C0270u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0270u) goto L_089C0270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0270: aot_fpr_12 = std::bit_cast(aot_gpr_16); aot_gpr_4 = (17096u << 16u); @@ -1331,8 +1459,21 @@ L_089C02C4: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C02D4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 28u, 0x089C02D4u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C02D4u) goto L_089C02D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C02D4: aot_gpr_16 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(8)))))); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(472))); @@ -1358,8 +1499,21 @@ L_089C02FC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089C0308u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 32u, 0x089C0308u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0308u) goto L_089C0308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0308: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1383,14 +1537,40 @@ L_089C0320: L_089C0328: aot_gpr_31 = (0x089C0330u); aot_gpr_5 = (ctx.gpr[17] + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 37u, 0x089C0330u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0330u) goto L_089C0330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0330: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C033Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 38u, 0x089C033Cu, 0x089BB298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 689u, 0x089BB298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C033Cu) goto L_089C033C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C033C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(76))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(77))); @@ -1435,8 +1615,21 @@ L_089C03B4: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089C03CCu); ctx.fpr[26] = static_cast(static_cast(std::bit_cast(aot_fpr_13))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 41u, 0x089C03CCu, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C03CCu) goto L_089C03CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C03CC: aot_gpr_4 = (ctx.gpr[29] + static_cast(444)); aot_fpr_15 = ctx.fpr[20] + ctx.fpr[0]; @@ -1449,8 +1642,21 @@ L_089C03CC: L_089C03E4: aot_gpr_31 = (0x089C03ECu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 43u, 0x089C03ECu, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C03ECu) goto L_089C03EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C03EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); @@ -1499,8 +1705,8 @@ L_089C0420: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C0468: @@ -1658,8 +1864,21 @@ L_089C061C: aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_31 = (0x089C0638u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 57u, 0x089C0638u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0638u) goto L_089C0638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0638: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1710,8 +1929,21 @@ L_089C0664: L_089C0678: aot_gpr_31 = (0x089C0680u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 65u, 0x089C0680u, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0680u) goto L_089C0680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0680: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1875,8 +2107,21 @@ L_089C0804: ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x089C0838u); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 79u, 0x089C0838u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0838u) goto L_089C0838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0838: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1938,8 +2183,21 @@ L_089C08B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); aot_gpr_31 = (0x089C08C0u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 86u, 0x089C08C0u, 0x08810484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 93u, 0x08810484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C08C0u) goto L_089C08C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C08C0: aot_gpr_5 = (17232u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); @@ -1978,8 +2236,21 @@ L_089C0908: ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x089C093Cu); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 89u, 0x089C093Cu, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C093Cu) goto L_089C093C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C093C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2055,8 +2326,21 @@ L_089C0984: ctx.fpr[16] = std::bit_cast(std::bit_cast(aot_fpr_15)); aot_gpr_31 = (0x089C0A14u); ctx.fpr[17] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 96u, 0x089C0A14u, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0A14u) goto L_089C0A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0A14: aot_gpr_4 = (0u | 10u); aot_gpr_31 = (0x089C0A20u); @@ -2114,8 +2398,21 @@ L_089C0A80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); aot_gpr_31 = (0x089C0A8Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 104u, 0x089C0A8Cu, 0x08810484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 93u, 0x08810484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0A8Cu) goto L_089C0A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0A8C: aot_gpr_5 = (17241u << 16u); aot_gpr_5 = (aot_gpr_5 | 39322u); @@ -2158,8 +2455,21 @@ L_089C0AE4: ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x089C0B18u); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 107u, 0x089C0B18u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0B18u) goto L_089C0B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0B18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2280,8 +2590,21 @@ L_089C0BD0: ctx.fpr[16] = std::bit_cast(std::bit_cast(aot_fpr_15)); aot_gpr_31 = (0x089C0C60u); ctx.fpr[17] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 117u, 0x089C0C60u, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0C60u) goto L_089C0C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0C60: aot_gpr_4 = (0u | 10u); aot_gpr_31 = (0x089C0C6Cu); @@ -2461,8 +2784,21 @@ L_089C0DEC: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089C0E30u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 134u, 0x089C0E30u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0E30u) goto L_089C0E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0E30: aot_fpr_14 = ctx.fpr[22] + ctx.fpr[26]; aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -2499,8 +2835,21 @@ L_089C0E68: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x089C0EA4u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 137u, 0x089C0EA4u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0EA4u) goto L_089C0EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0EA4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(212))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -2535,8 +2884,21 @@ L_089C0EE0: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089C0F10u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 140u, 0x089C0F10u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0F10u) goto L_089C0F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0F10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -2569,8 +2931,21 @@ L_089C0F44: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x089C0F74u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 143u, 0x089C0F74u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0F74u) goto L_089C0F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0F74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2591,8 +2966,21 @@ L_089C0F8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); aot_gpr_31 = (0x089C0F98u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 147u, 0x089C0F98u, 0x08810484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 93u, 0x08810484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0F98u) goto L_089C0F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C0F98: aot_gpr_31 = (0x089C0FA0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C0FA0u) goto L_089C0FA0; @@ -2638,8 +3026,21 @@ L_089C0FF8: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x089C101Cu); aot_gpr_5 = (ctx.gpr[29] + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 151u, 0x089C101Cu, 0x08A41D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 356u, 0x08A41D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C101Cu) goto L_089C101C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C101C: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x089C1028u); @@ -2793,8 +3194,21 @@ L_089C117C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089C11B8u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 163u, 0x089C11B8u, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C11B8u) goto L_089C11B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C11B8: aot_gpr_4 = (0u | 10u); aot_gpr_31 = (0x089C11C4u); @@ -2866,8 +3280,21 @@ L_089C124C: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C125Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 172u, 0x089C125Cu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C125Cu) goto L_089C125C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C125C: aot_gpr_16 = (0u | 0u); aot_gpr_4 = (static_cast(aot_gpr_16) < 41 ? 1u : 0u); @@ -2944,8 +3371,21 @@ L_089C1304: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C1314u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 180u, 0x089C1314u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1314u) goto L_089C1314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1314: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2990,8 +3430,21 @@ L_089C1384: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C1394u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 184u, 0x089C1394u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1394u) goto L_089C1394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1394: aot_gpr_16 = (aot_gpr_16 + static_cast(5)); aot_gpr_4 = (static_cast(aot_gpr_16) < 41 ? 1u : 0u); @@ -3013,8 +3466,21 @@ L_089C13A4: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_14) ^ 0x80000000u); aot_gpr_31 = (0x089C13CCu); aot_fpr_15 = std::bit_cast(std::bit_cast(aot_fpr_15) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 186u, 0x089C13CCu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C13CCu) goto L_089C13CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C13CC: aot_gpr_4 = (17204u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); @@ -3105,8 +3571,21 @@ L_089C14AC: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C14BCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 195u, 0x089C14BCu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C14BCu) goto L_089C14BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C14BC: aot_gpr_4 = (17184u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3161,8 +3640,21 @@ L_089C1500: aot_fpr_13 = std::bit_cast(ctx.gpr[11]); aot_gpr_31 = (0x089C1544u); aot_fpr_12 = aot_fpr_12 + aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 201u, 0x089C1544u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1544u) goto L_089C1544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1544: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3224,8 +3716,8 @@ L_089C158C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C15C4: @@ -3245,8 +3737,21 @@ L_089C15E4: aot_gpr_5 = (aot_gpr_16 + static_cast(9788)); aot_gpr_31 = (0x089C15F4u); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 211u, 0x089C15F4u, 0x08AB8ADCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 155u, 0x08AB8ADCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C15F4u) goto L_089C15F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C15F4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3308,13 +3813,39 @@ L_089C163C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C1660u); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 218u, 0x089C1660u, 0x08AB8A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 147u, 0x08AB8A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1660u) goto L_089C1660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1660: aot_gpr_31 = (0x089C1668u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 219u, 0x089C1668u, 0x08AB8A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 144u, 0x08AB8A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1668u) goto L_089C1668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1668: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (16800u << 16u); @@ -3341,8 +3872,21 @@ L_089C16AC: aot_gpr_5 = (0u | 180u); aot_gpr_31 = (0x089C16BCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 221u, 0x089C16BCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C16BCu) goto L_089C16BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C16BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3386,8 +3930,21 @@ L_089C16F0: aot_gpr_5 = (aot_gpr_16 + static_cast(9276)); aot_gpr_31 = (0x089C1700u); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 227u, 0x089C1700u, 0x08AB8A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 147u, 0x08AB8A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1700u) goto L_089C1700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1700: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(10820))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3713,8 +4270,21 @@ L_089C19D8: aot_gpr_5 = (aot_gpr_16 + static_cast(9788)); aot_gpr_31 = (0x089C19F4u); aot_gpr_6 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 257u, 0x089C19F4u, 0x08AB8A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 147u, 0x08AB8A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C19F4u) goto L_089C19F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C19F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3885,8 +4455,21 @@ L_089C1B70: aot_gpr_4 = (aot_gpr_4 | 10486u); aot_gpr_31 = (0x089C1B80u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 275u, 0x089C1B80u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1B80u) goto L_089C1B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1B80: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 0u); @@ -3899,8 +4482,21 @@ L_089C1B80: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x089C1BACu); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 276u, 0x089C1BACu, 0x08B0C7E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 104u, 0x08B0C7E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1BACu) goto L_089C1BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1BAC: aot_gpr_5 = (16640u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_5); @@ -3924,13 +4520,39 @@ L_089C1BD8: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x089C1BF8u); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 278u, 0x089C1BF8u, 0x08B0C6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 93u, 0x08B0C6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1BF8u) goto L_089C1BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1BF8: aot_gpr_31 = (0x089C1C00u); ctx.gpr[18] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 279u, 0x089C1C00u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1C00u) goto L_089C1C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1C00: aot_fpr_13 = std::bit_cast(ctx.gpr[18]); aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); @@ -3953,8 +4575,21 @@ L_089C1C00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C1C54u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 280u, 0x089C1C54u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1C54u) goto L_089C1C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1C54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3975,8 +4610,8 @@ L_089C1C60: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C1C78: @@ -4011,8 +4646,21 @@ L_089C1CA0: aot_fpr_15 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089C1CD8u); aot_gpr_4 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 286u, 0x089C1CD8u, 0x08AF4574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 63u, 0x08AF4574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1CD8u) goto L_089C1CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1CD8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4204))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4044,8 +4692,21 @@ L_089C1CF0: aot_fpr_15 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089C1D30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 289u, 0x089C1D30u, 0x08AF4574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 63u, 0x08AF4574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1D30u) goto L_089C1D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1D30: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C1D3Cu); @@ -4192,8 +4853,21 @@ L_089C1E0C: ctx.fpr[16] = std::bit_cast(std::bit_cast(aot_fpr_15)); aot_gpr_31 = (0x089C1E54u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 307u, 0x089C1E54u, 0x08AA9084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 81u, 0x08AA9084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1E54u) goto L_089C1E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1E54: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4208))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4292,15 +4966,41 @@ L_089C1EE4: ctx.gpr[17] = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089C1EF4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 321u, 0x089C1EF4u, 0x08ADD7A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 401u, 0x08ADD7A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1EF4u) goto L_089C1EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1EF4: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_31 = (0x089C1F04u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 322u, 0x089C1F04u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1F04u) goto L_089C1F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1F04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -4337,8 +5037,21 @@ L_089C1F54: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C1F64u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 326u, 0x089C1F64u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1F64u) goto L_089C1F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1F64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4380,15 +5093,41 @@ L_089C1FB0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089C1FC4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 332u, 0x089C1FC4u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1FC4u) goto L_089C1FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1FC4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089C1FD4u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 333u, 0x089C1FD4u, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C1FD4u) goto L_089C1FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C1FD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -4423,15 +5162,41 @@ L_089C2018: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089C202Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 338u, 0x089C202Cu, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C202Cu) goto L_089C202C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C202C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089C203Cu); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 339u, 0x089C203Cu, 0x08AF4650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 72u, 0x08AF4650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C203Cu) goto L_089C203C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C203C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4458,8 +5223,21 @@ L_089C2058: L_089C2060: aot_gpr_31 = (0x089C2068u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 344u, 0x089C2068u, 0x089486DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 108u, 0x089486DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2068u) goto L_089C2068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2068: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4474,8 +5252,21 @@ L_089C2070: L_089C2078: aot_gpr_31 = (0x089C2080u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 347u, 0x089C2080u, 0x0894873Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 115u, 0x0894873Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2080u) goto L_089C2080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2080: aot_gpr_4 = (17820u << 16u); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -4500,8 +5291,21 @@ L_089C20C0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089C20CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 349u, 0x089C20CCu, 0x089BB2F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 698u, 0x089BB2F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C20CCu) goto L_089C20CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C20CC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(60), aot_run_words); @@ -4512,8 +5316,8 @@ L_089C20CC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C20E4: @@ -4529,8 +5333,21 @@ L_089C20E4: aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(136), aot_run_words); } aot_gpr_31 = (0x089C2134u); aot_gpr_5 = (aot_gpr_5 + static_cast(6896)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 351u, 0x089C2134u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2134u) goto L_089C2134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2134: aot_gpr_31 = (0x089C213Cu); aot_gpr_4 = (0u | 1u); @@ -4545,8 +5362,21 @@ L_089C2144: aot_gpr_4 = (aot_gpr_4 | 13107u); aot_gpr_31 = (0x089C2154u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 354u, 0x089C2154u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2154u) goto L_089C2154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2154: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-12088))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -4581,8 +5411,21 @@ L_089C2194: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-12076), aot_gpr_4); aot_gpr_31 = (0x089C21A4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 358u, 0x089C21A4u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C21A4u) goto L_089C21A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C21A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-12076))); aot_gpr_6 = (static_cast(aot_gpr_4) < static_cast(aot_gpr_2) ? 1u : 0u); @@ -4631,8 +5474,21 @@ L_089C21DC: L_089C21EC: aot_gpr_31 = (0x089C21F4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 365u, 0x089C21F4u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C21F4u) goto L_089C21F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C21F4: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4647,8 +5503,21 @@ L_089C2200: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_gpr_31 = (0x089C2214u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-12076), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 367u, 0x089C2214u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2214u) goto L_089C2214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2214: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-12076))); aot_gpr_4 = (static_cast(aot_gpr_4) < static_cast(aot_gpr_2) ? 1u : 0u); @@ -4681,8 +5550,8 @@ L_089C2240: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4080))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C2258: @@ -4716,8 +5585,21 @@ L_089C227C: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C22A8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 376u, 0x089C22A8u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C22A8u) goto L_089C22A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C22A8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -4731,8 +5613,21 @@ L_089C22B4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C22C0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 378u, 0x089C22C0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C22C0u) goto L_089C22C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C22C0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4756,8 +5651,21 @@ L_089C22D8: L_089C22E0: aot_gpr_31 = (0x089C22E8u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 383u, 0x089C22E8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C22E8u) goto L_089C22E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C22E8: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -4772,8 +5680,21 @@ L_089C22F8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C2310u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 385u, 0x089C2310u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2310u) goto L_089C2310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2310: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -4787,8 +5708,21 @@ L_089C231C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2328u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 387u, 0x089C2328u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2328u) goto L_089C2328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2328: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4812,8 +5746,21 @@ L_089C2344: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2350u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 392u, 0x089C2350u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2350u) goto L_089C2350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2350: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4828,8 +5775,21 @@ L_089C2360: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C2378u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 394u, 0x089C2378u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2378u) goto L_089C2378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2378: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -4843,8 +5803,21 @@ L_089C2384: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2390u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 396u, 0x089C2390u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2390u) goto L_089C2390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2390: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4868,8 +5841,21 @@ L_089C23AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C23B8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 401u, 0x089C23B8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C23B8u) goto L_089C23B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C23B8: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4887,8 +5873,21 @@ L_089C23C8: aot_gpr_6 = (0u | 161u); aot_gpr_31 = (0x089C23ECu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 403u, 0x089C23ECu, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C23ECu) goto L_089C23EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C23EC: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -4902,8 +5901,21 @@ L_089C23F8: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2404u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 405u, 0x089C2404u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2404u) goto L_089C2404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2404: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4927,8 +5939,21 @@ L_089C241C: L_089C2424: aot_gpr_31 = (0x089C242Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 410u, 0x089C242Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C242Cu) goto L_089C242C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C242C: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (0u | 154u); @@ -4939,8 +5964,21 @@ L_089C242C: L_089C243C: aot_gpr_31 = (0x089C2444u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 412u, 0x089C2444u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2444u) goto L_089C2444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2444: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4971,8 +6009,21 @@ L_089C247C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C248Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 415u, 0x089C248Cu, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C248Cu) goto L_089C248C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C248C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -5000,8 +6051,21 @@ L_089C24A8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C24CCu); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 419u, 0x089C24CCu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C24CCu) goto L_089C24CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C24CC: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5015,8 +6079,21 @@ L_089C24D8: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C24E4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 421u, 0x089C24E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C24E4u) goto L_089C24E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C24E4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5040,8 +6117,21 @@ L_089C24FC: L_089C2504: aot_gpr_31 = (0x089C250Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 426u, 0x089C250Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C250Cu) goto L_089C250C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C250C: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5062,8 +6152,21 @@ L_089C2524: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x089C2538u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 429u, 0x089C2538u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2538u) goto L_089C2538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2538: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[18] = (ctx.gpr[28] + static_cast(-12032)); @@ -5079,8 +6182,21 @@ L_089C2544: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C2550u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 432u, 0x089C2550u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2550u) goto L_089C2550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2550: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -5108,8 +6224,21 @@ L_089C256C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2590u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 436u, 0x089C2590u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2590u) goto L_089C2590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2590: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5123,8 +6252,21 @@ L_089C259C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C25A8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 438u, 0x089C25A8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C25A8u) goto L_089C25A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C25A8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5148,8 +6290,21 @@ L_089C25C0: L_089C25C8: aot_gpr_31 = (0x089C25D0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 443u, 0x089C25D0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C25D0u) goto L_089C25D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C25D0: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5162,14 +6317,40 @@ L_089C25E0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C25F0u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 445u, 0x089C25F0u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C25F0u) goto L_089C25F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C25F0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C25FCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 446u, 0x089C25FCu, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C25FCu) goto L_089C25FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C25FC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(48), static_cast(aot_gpr_4)); @@ -5206,8 +6387,21 @@ L_089C263C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C2660u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 450u, 0x089C2660u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2660u) goto L_089C2660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2660: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5221,8 +6415,21 @@ L_089C266C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2678u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 452u, 0x089C2678u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2678u) goto L_089C2678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2678: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5246,8 +6453,21 @@ L_089C2690: L_089C2698: aot_gpr_31 = (0x089C26A0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 457u, 0x089C26A0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C26A0u) goto L_089C26A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C26A0: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5291,8 +6511,21 @@ L_089C26D0: ctx.gpr[8] = (0u | 130u); aot_gpr_31 = (0x089C2700u); ctx.gpr[9] = (0u | 180u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 463u, 0x089C2700u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2700u) goto L_089C2700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2700: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5306,8 +6539,21 @@ L_089C270C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2718u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 465u, 0x089C2718u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2718u) goto L_089C2718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2718: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5331,8 +6577,21 @@ L_089C2730: L_089C2738: aot_gpr_31 = (0x089C2740u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 470u, 0x089C2740u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2740u) goto L_089C2740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2740: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -5368,8 +6627,21 @@ L_089C2770: ctx.gpr[8] = (0u | 16u); aot_gpr_31 = (0x089C2794u); ctx.gpr[9] = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 475u, 0x089C2794u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2794u) goto L_089C2794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2794: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5383,8 +6655,21 @@ L_089C27A0: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C27ACu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 477u, 0x089C27ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C27ACu) goto L_089C27AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C27AC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5408,8 +6693,21 @@ L_089C27C4: L_089C27CC: aot_gpr_31 = (0x089C27D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 482u, 0x089C27D4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C27D4u) goto L_089C27D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C27D4: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5445,8 +6743,21 @@ L_089C2804: ctx.gpr[8] = (0u | 151u); aot_gpr_31 = (0x089C2828u); ctx.gpr[9] = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 487u, 0x089C2828u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2828u) goto L_089C2828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2828: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5460,8 +6771,21 @@ L_089C2834: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2840u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 489u, 0x089C2840u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2840u) goto L_089C2840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2840: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5485,8 +6809,21 @@ L_089C2858: L_089C2860: aot_gpr_31 = (0x089C2868u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 494u, 0x089C2868u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2868u) goto L_089C2868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2868: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5501,8 +6838,21 @@ L_089C2878: ctx.gpr[8] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(40))); aot_gpr_31 = (0x089C2890u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 496u, 0x089C2890u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2890u) goto L_089C2890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2890: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5516,8 +6866,21 @@ L_089C289C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C28A8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 498u, 0x089C28A8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C28A8u) goto L_089C28A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C28A8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5541,8 +6904,21 @@ L_089C28C0: L_089C28C8: aot_gpr_31 = (0x089C28D0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 503u, 0x089C28D0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C28D0u) goto L_089C28D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C28D0: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (0u | 154u); @@ -5553,8 +6929,21 @@ L_089C28D0: L_089C28E0: aot_gpr_31 = (0x089C28E8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 505u, 0x089C28E8u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C28E8u) goto L_089C28E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C28E8: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5568,8 +6957,21 @@ L_089C28F4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C2904u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 507u, 0x089C2904u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2904u) goto L_089C2904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2904: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -5600,8 +7002,21 @@ L_089C292C: aot_fpr_12 = std::bit_cast(ctx.gpr[10]); aot_gpr_31 = (0x089C2950u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 511u, 0x089C2950u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2950u) goto L_089C2950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2950: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5615,8 +7030,21 @@ L_089C295C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2968u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 513u, 0x089C2968u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2968u) goto L_089C2968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2968: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5640,8 +7068,21 @@ L_089C2980: L_089C2988: aot_gpr_31 = (0x089C2990u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 518u, 0x089C2990u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2990u) goto L_089C2990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2990: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5688,8 +7129,21 @@ L_089C29CC: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C29FCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 524u, 0x089C29FCu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C29FCu) goto L_089C29FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C29FC: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5703,8 +7157,21 @@ L_089C2A08: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2A14u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 526u, 0x089C2A14u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2A14u) goto L_089C2A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2A14: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5728,8 +7195,21 @@ L_089C2A2C: L_089C2A34: aot_gpr_31 = (0x089C2A3Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 531u, 0x089C2A3Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2A3Cu) goto L_089C2A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2A3C: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -5744,8 +7224,21 @@ L_089C2A4C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C2A64u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 533u, 0x089C2A64u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2A64u) goto L_089C2A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2A64: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5759,8 +7252,21 @@ L_089C2A70: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2A7Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 535u, 0x089C2A7Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2A7Cu) goto L_089C2A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2A7C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5784,8 +7290,21 @@ L_089C2A98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2AA4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 540u, 0x089C2AA4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2AA4u) goto L_089C2AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2AA4: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5800,8 +7319,21 @@ L_089C2AB4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C2ACCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 542u, 0x089C2ACCu, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2ACCu) goto L_089C2ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2ACC: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5815,8 +7347,21 @@ L_089C2AD8: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2AE4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 544u, 0x089C2AE4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2AE4u) goto L_089C2AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2AE4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5840,8 +7385,21 @@ L_089C2B00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2B0Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 549u, 0x089C2B0Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2B0Cu) goto L_089C2B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2B0C: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5859,8 +7417,21 @@ L_089C2B1C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C2B40u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 551u, 0x089C2B40u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2B40u) goto L_089C2B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2B40: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5874,8 +7445,21 @@ L_089C2B4C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2B58u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 553u, 0x089C2B58u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2B58u) goto L_089C2B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2B58: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5899,8 +7483,21 @@ L_089C2B74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2B80u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 558u, 0x089C2B80u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2B80u) goto L_089C2B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2B80: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5911,8 +7508,21 @@ L_089C2B80: L_089C2B90: aot_gpr_31 = (0x089C2B98u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 560u, 0x089C2B98u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2B98u) goto L_089C2B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2B98: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5927,8 +7537,21 @@ L_089C2BA4: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x089C2BB8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 562u, 0x089C2BB8u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2BB8u) goto L_089C2BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2BB8: ctx.gpr[21] = (ctx.gpr[28] + static_cast(-12040)); ctx.gpr[20] = (ctx.gpr[28] + static_cast(-12032)); @@ -5946,8 +7569,21 @@ L_089C2BCC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C2BD8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 565u, 0x089C2BD8u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2BD8u) goto L_089C2BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2BD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -5977,8 +7613,21 @@ L_089C2BF4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2C20u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 569u, 0x089C2C20u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2C20u) goto L_089C2C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2C20: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -5992,8 +7641,21 @@ L_089C2C2C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2C38u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 571u, 0x089C2C38u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2C38u) goto L_089C2C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2C38: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6017,8 +7679,21 @@ L_089C2C50: L_089C2C58: aot_gpr_31 = (0x089C2C60u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 576u, 0x089C2C60u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2C60u) goto L_089C2C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2C60: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (0u | 154u); @@ -6029,15 +7704,41 @@ L_089C2C60: L_089C2C70: aot_gpr_31 = (0x089C2C78u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 578u, 0x089C2C78u, 0x08ADD7A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 401u, 0x08ADD7A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2C78u) goto L_089C2C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2C78: aot_gpr_5 = (aot_gpr_2 + static_cast(-1)); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_31 = (0x089C2C88u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 579u, 0x089C2C88u, 0x08ADC7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 155u, 0x08ADC7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2C88u) goto L_089C2C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2C88: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(56), static_cast(aot_gpr_4)); @@ -6073,8 +7774,21 @@ L_089C2CC8: ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(58))); aot_gpr_31 = (0x089C2CE8u); aot_gpr_5 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 583u, 0x089C2CE8u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2CE8u) goto L_089C2CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2CE8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6088,8 +7802,21 @@ L_089C2CF4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2D00u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 585u, 0x089C2D00u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2D00u) goto L_089C2D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2D00: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6113,8 +7840,21 @@ L_089C2D18: L_089C2D20: aot_gpr_31 = (0x089C2D28u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 590u, 0x089C2D28u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2D28u) goto L_089C2D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2D28: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6127,14 +7867,40 @@ L_089C2D38: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C2D48u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 592u, 0x089C2D48u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2D48u) goto L_089C2D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2D48: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C2D54u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 593u, 0x089C2D54u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2D54u) goto L_089C2D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2D54: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(56), static_cast(aot_gpr_4)); @@ -6171,8 +7937,21 @@ L_089C2D94: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C2DB8u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 597u, 0x089C2DB8u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2DB8u) goto L_089C2DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2DB8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6186,8 +7965,21 @@ L_089C2DC4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2DD0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 599u, 0x089C2DD0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2DD0u) goto L_089C2DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2DD0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6211,8 +8003,21 @@ L_089C2DE8: L_089C2DF0: aot_gpr_31 = (0x089C2DF8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 604u, 0x089C2DF8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2DF8u) goto L_089C2DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2DF8: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6259,8 +8064,21 @@ L_089C2E34: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C2E64u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 610u, 0x089C2E64u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2E64u) goto L_089C2E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2E64: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6274,8 +8092,21 @@ L_089C2E70: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2E7Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 612u, 0x089C2E7Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2E7Cu) goto L_089C2E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2E7C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6299,8 +8130,21 @@ L_089C2E94: L_089C2E9C: aot_gpr_31 = (0x089C2EA4u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 617u, 0x089C2EA4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2EA4u) goto L_089C2EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2EA4: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -6315,8 +8159,21 @@ L_089C2EB4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C2ECCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 619u, 0x089C2ECCu, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2ECCu) goto L_089C2ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2ECC: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6330,8 +8187,21 @@ L_089C2ED8: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2EE4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 621u, 0x089C2EE4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2EE4u) goto L_089C2EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2EE4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6355,8 +8225,21 @@ L_089C2F00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2F0Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 626u, 0x089C2F0Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2F0Cu) goto L_089C2F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2F0C: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6371,8 +8254,21 @@ L_089C2F1C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C2F34u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 628u, 0x089C2F34u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2F34u) goto L_089C2F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2F34: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6386,8 +8282,21 @@ L_089C2F40: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2F4Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 630u, 0x089C2F4Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2F4Cu) goto L_089C2F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2F4C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6411,8 +8320,21 @@ L_089C2F68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2F74u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 635u, 0x089C2F74u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2F74u) goto L_089C2F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2F74: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6430,8 +8352,21 @@ L_089C2F84: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C2FA8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 637u, 0x089C2FA8u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2FA8u) goto L_089C2FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2FA8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6445,8 +8380,21 @@ L_089C2FB4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C2FC0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 639u, 0x089C2FC0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2FC0u) goto L_089C2FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2FC0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6470,8 +8418,21 @@ L_089C2FDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C2FE8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 644u, 0x089C2FE8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C2FE8u) goto L_089C2FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C2FE8: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6482,8 +8443,21 @@ L_089C2FE8: L_089C2FF8: aot_gpr_31 = (0x089C3000u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 646u, 0x089C3000u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3000u) goto L_089C3000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3000: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6498,8 +8472,21 @@ L_089C300C: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x089C3020u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 648u, 0x089C3020u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3020u) goto L_089C3020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3020: ctx.gpr[22] = (ctx.gpr[28] + static_cast(-12040)); ctx.gpr[21] = (ctx.gpr[28] + static_cast(-12032)); @@ -6518,8 +8505,21 @@ L_089C3038: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C3044u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 651u, 0x089C3044u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3044u) goto L_089C3044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3044: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -6549,8 +8549,21 @@ L_089C3060: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C308Cu); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 655u, 0x089C308Cu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C308Cu) goto L_089C308C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C308C: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6564,8 +8577,21 @@ L_089C3098: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C30A4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 657u, 0x089C30A4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C30A4u) goto L_089C30A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C30A4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6589,8 +8615,21 @@ L_089C30BC: L_089C30C4: aot_gpr_31 = (0x089C30CCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 662u, 0x089C30CCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C30CCu) goto L_089C30CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C30CC: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (0u | 154u); @@ -6603,14 +8642,40 @@ L_089C30DC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C30ECu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 664u, 0x089C30ECu, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C30ECu) goto L_089C30EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C30EC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C30F8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 665u, 0x089C30F8u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C30F8u) goto L_089C30F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C30F8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(60), static_cast(aot_gpr_4)); @@ -6646,8 +8711,21 @@ L_089C3138: ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(62))); aot_gpr_31 = (0x089C3158u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 669u, 0x089C3158u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3158u) goto L_089C3158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3158: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6661,8 +8739,21 @@ L_089C3164: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3170u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 671u, 0x089C3170u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3170u) goto L_089C3170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3170: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6686,8 +8777,21 @@ L_089C3188: L_089C3190: aot_gpr_31 = (0x089C3198u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 676u, 0x089C3198u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3198u) goto L_089C3198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3198: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6700,14 +8804,40 @@ L_089C31A8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C31B8u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 678u, 0x089C31B8u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C31B8u) goto L_089C31B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C31B8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C31C4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 679u, 0x089C31C4u, 0x08ADC7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 155u, 0x08ADC7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C31C4u) goto L_089C31C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C31C4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(60), static_cast(aot_gpr_4)); @@ -6744,8 +8874,21 @@ L_089C3204: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089C3228u); aot_gpr_5 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 683u, 0x089C3228u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3228u) goto L_089C3228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3228: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6759,8 +8902,21 @@ L_089C3234: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3240u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 685u, 0x089C3240u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3240u) goto L_089C3240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3240: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6784,8 +8940,21 @@ L_089C3258: L_089C3260: aot_gpr_31 = (0x089C3268u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 690u, 0x089C3268u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3268u) goto L_089C3268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3268: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6798,15 +8967,41 @@ L_089C3278: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C3288u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 692u, 0x089C3288u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3288u) goto L_089C3288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3288: aot_gpr_5 = (aot_gpr_2 < static_cast(1) ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_31 = (0x089C3298u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 693u, 0x089C3298u, 0x08ADC7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 155u, 0x08ADC7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3298u) goto L_089C3298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3298: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(60), static_cast(aot_gpr_4)); @@ -6843,8 +9038,21 @@ L_089C32D8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C32FCu); aot_gpr_5 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 697u, 0x089C32FCu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C32FCu) goto L_089C32FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C32FC: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6858,8 +9066,21 @@ L_089C3308: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3314u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 699u, 0x089C3314u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3314u) goto L_089C3314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3314: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6883,8 +9104,21 @@ L_089C332C: L_089C3334: aot_gpr_31 = (0x089C333Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 704u, 0x089C333Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C333Cu) goto L_089C333C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C333C: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6932,8 +9166,21 @@ L_089C3380: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C33ACu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 710u, 0x089C33ACu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C33ACu) goto L_089C33AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C33AC: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -6947,8 +9194,21 @@ L_089C33B8: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C33C4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 712u, 0x089C33C4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C33C4u) goto L_089C33C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C33C4: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6972,8 +9232,21 @@ L_089C33DC: L_089C33E4: aot_gpr_31 = (0x089C33ECu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 717u, 0x089C33ECu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C33ECu) goto L_089C33EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C33EC: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -6988,8 +9261,21 @@ L_089C33FC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C3414u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 719u, 0x089C3414u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3414u) goto L_089C3414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3414: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7003,8 +9289,21 @@ L_089C3420: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C342Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 721u, 0x089C342Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C342Cu) goto L_089C342C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C342C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7028,8 +9327,21 @@ L_089C3448: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C3454u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 726u, 0x089C3454u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3454u) goto L_089C3454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3454: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7044,8 +9356,21 @@ L_089C3464: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C347Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 728u, 0x089C347Cu, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C347Cu) goto L_089C347C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C347C: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7059,8 +9384,21 @@ L_089C3488: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3494u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 730u, 0x089C3494u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3494u) goto L_089C3494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3494: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7084,8 +9422,21 @@ L_089C34B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C34BCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 735u, 0x089C34BCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C34BCu) goto L_089C34BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C34BC: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7103,8 +9454,21 @@ L_089C34CC: aot_gpr_6 = (0u | 161u); aot_gpr_31 = (0x089C34F0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 737u, 0x089C34F0u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C34F0u) goto L_089C34F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C34F0: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7118,8 +9482,21 @@ L_089C34FC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3508u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 739u, 0x089C3508u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3508u) goto L_089C3508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3508: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7143,8 +9520,21 @@ L_089C3520: L_089C3528: aot_gpr_31 = (0x089C3530u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 744u, 0x089C3530u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3530u) goto L_089C3530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3530: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (0u | 154u); @@ -7155,8 +9545,21 @@ L_089C3530: L_089C3540: aot_gpr_31 = (0x089C3548u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 746u, 0x089C3548u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3548u) goto L_089C3548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3548: aot_gpr_5 = (17199u << 16u); aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); @@ -7173,8 +9576,21 @@ L_089C355C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C356Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 748u, 0x089C356Cu, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C356Cu) goto L_089C356C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C356C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -7203,8 +9619,21 @@ L_089C358C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C35B0u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 752u, 0x089C35B0u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C35B0u) goto L_089C35B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C35B0: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7218,8 +9647,21 @@ L_089C35BC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C35C8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 754u, 0x089C35C8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C35C8u) goto L_089C35C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C35C8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7243,8 +9685,21 @@ L_089C35E0: L_089C35E8: aot_gpr_31 = (0x089C35F0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 759u, 0x089C35F0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C35F0u) goto L_089C35F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C35F0: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7296,8 +9751,21 @@ L_089C3638: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C3658u); ctx.gpr[9] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 767u, 0x089C3658u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3658u) goto L_089C3658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3658: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7311,8 +9779,21 @@ L_089C3664: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3670u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 769u, 0x089C3670u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3670u) goto L_089C3670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3670: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7336,8 +9817,21 @@ L_089C3688: L_089C3690: aot_gpr_31 = (0x089C3698u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 774u, 0x089C3698u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3698u) goto L_089C3698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3698: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7377,8 +9871,21 @@ L_089C36C8: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C36E8u); ctx.gpr[9] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 780u, 0x089C36E8u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C36E8u) goto L_089C36E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C36E8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7392,8 +9899,21 @@ L_089C36F4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3700u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 782u, 0x089C3700u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3700u) goto L_089C3700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3700: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7417,8 +9937,21 @@ L_089C3718: L_089C3720: aot_gpr_31 = (0x089C3728u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 787u, 0x089C3728u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3728u) goto L_089C3728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3728: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7464,8 +9997,21 @@ L_089C3764: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C3790u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 793u, 0x089C3790u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3790u) goto L_089C3790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3790: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7479,8 +10025,21 @@ L_089C379C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C37A8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 795u, 0x089C37A8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C37A8u) goto L_089C37A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C37A8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7504,8 +10063,21 @@ L_089C37C0: L_089C37C8: aot_gpr_31 = (0x089C37D0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 800u, 0x089C37D0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C37D0u) goto L_089C37D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C37D0: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -7520,8 +10092,21 @@ L_089C37E0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C37F8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 802u, 0x089C37F8u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C37F8u) goto L_089C37F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C37F8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7535,8 +10120,21 @@ L_089C3804: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3810u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 804u, 0x089C3810u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3810u) goto L_089C3810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3810: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7560,8 +10158,21 @@ L_089C382C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C3838u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 809u, 0x089C3838u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3838u) goto L_089C3838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3838: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7576,8 +10187,21 @@ L_089C3848: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C3860u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 811u, 0x089C3860u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3860u) goto L_089C3860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3860: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7591,8 +10215,21 @@ L_089C386C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3878u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 813u, 0x089C3878u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3878u) goto L_089C3878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3878: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7616,8 +10253,21 @@ L_089C3894: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C38A0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 818u, 0x089C38A0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C38A0u) goto L_089C38A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C38A0: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7635,8 +10285,21 @@ L_089C38B0: aot_gpr_6 = (0u | 161u); aot_gpr_31 = (0x089C38D4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 820u, 0x089C38D4u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C38D4u) goto L_089C38D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C38D4: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7650,8 +10313,21 @@ L_089C38E0: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C38ECu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 822u, 0x089C38ECu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C38ECu) goto L_089C38EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C38EC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7675,8 +10351,21 @@ L_089C3904: L_089C390C: aot_gpr_31 = (0x089C3914u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 827u, 0x089C3914u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3914u) goto L_089C3914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3914: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (0u | 154u); @@ -7687,8 +10376,21 @@ L_089C3914: L_089C3924: aot_gpr_31 = (0x089C392Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 829u, 0x089C392Cu, 0x08ADD768u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 395u, 0x08ADD768u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C392Cu) goto L_089C392C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C392C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(100))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); @@ -7701,14 +10403,40 @@ L_089C392C: L_089C393C: aot_gpr_31 = (0x089C3944u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 831u, 0x089C3944u, 0x08ADD768u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 395u, 0x08ADD768u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3944u) goto L_089C3944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3944: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C3950u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 832u, 0x089C3950u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3950u) goto L_089C3950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3950: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -7740,8 +10468,21 @@ L_089C3978: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x089C39A0u); aot_gpr_5 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 836u, 0x089C39A0u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C39A0u) goto L_089C39A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C39A0: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7755,8 +10496,21 @@ L_089C39AC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C39B8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 838u, 0x089C39B8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C39B8u) goto L_089C39B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C39B8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7780,8 +10534,21 @@ L_089C39D0: L_089C39D8: aot_gpr_31 = (0x089C39E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 843u, 0x089C39E0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C39E0u) goto L_089C39E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C39E0: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7817,8 +10584,21 @@ L_089C3A10: ctx.gpr[8] = (0u | 151u); aot_gpr_31 = (0x089C3A34u); ctx.gpr[9] = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 848u, 0x089C3A34u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3A34u) goto L_089C3A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3A34: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7832,8 +10612,21 @@ L_089C3A40: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3A4Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 850u, 0x089C3A4Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3A4Cu) goto L_089C3A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3A4C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7857,8 +10650,21 @@ L_089C3A64: L_089C3A6C: aot_gpr_31 = (0x089C3A74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 855u, 0x089C3A74u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3A74u) goto L_089C3A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3A74: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7907,8 +10713,21 @@ L_089C3AB8: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C3AE8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 861u, 0x089C3AE8u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3AE8u) goto L_089C3AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3AE8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7922,8 +10741,21 @@ L_089C3AF4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3B00u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 863u, 0x089C3B00u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3B00u) goto L_089C3B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3B00: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7947,8 +10779,21 @@ L_089C3B18: L_089C3B20: aot_gpr_31 = (0x089C3B28u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 868u, 0x089C3B28u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3B28u) goto L_089C3B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3B28: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -7963,8 +10808,21 @@ L_089C3B38: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C3B50u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 870u, 0x089C3B50u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3B50u) goto L_089C3B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3B50: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -7978,8 +10836,21 @@ L_089C3B5C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3B68u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 872u, 0x089C3B68u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3B68u) goto L_089C3B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3B68: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8003,8 +10874,21 @@ L_089C3B84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C3B90u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 877u, 0x089C3B90u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3B90u) goto L_089C3B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3B90: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -8019,8 +10903,21 @@ L_089C3BA0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C3BB8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 879u, 0x089C3BB8u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3BB8u) goto L_089C3BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3BB8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8034,8 +10931,21 @@ L_089C3BC4: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3BD0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 881u, 0x089C3BD0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3BD0u) goto L_089C3BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3BD0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8059,8 +10969,21 @@ L_089C3BEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C3BF8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 886u, 0x089C3BF8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3BF8u) goto L_089C3BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3BF8: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -8078,8 +11001,21 @@ L_089C3C08: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C3C2Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 888u, 0x089C3C2Cu, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3C2Cu) goto L_089C3C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3C2C: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8093,8 +11029,21 @@ L_089C3C38: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3C44u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 890u, 0x089C3C44u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3C44u) goto L_089C3C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3C44: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8118,8 +11067,21 @@ L_089C3C60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C3C6Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 895u, 0x089C3C6Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3C6Cu) goto L_089C3C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3C6C: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -8131,8 +11093,21 @@ L_089C3C7C: ctx.gpr[18] = (0u | 161u); aot_gpr_31 = (0x089C3C88u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 897u, 0x089C3C88u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3C88u) goto L_089C3C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3C88: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8146,8 +11121,21 @@ L_089C3C94: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C3CA4u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 899u, 0x089C3CA4u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3CA4u) goto L_089C3CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3CA4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -8175,8 +11163,21 @@ L_089C3CC4: ctx.gpr[9] = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(74))); aot_gpr_31 = (0x089C3CE4u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 903u, 0x089C3CE4u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3CE4u) goto L_089C3CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3CE4: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8190,8 +11191,21 @@ L_089C3CF0: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3CFCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 905u, 0x089C3CFCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3CFCu) goto L_089C3CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3CFC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8215,8 +11229,21 @@ L_089C3D14: L_089C3D1C: aot_gpr_31 = (0x089C3D24u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 910u, 0x089C3D24u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3D24u) goto L_089C3D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3D24: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (0u | 154u); @@ -8252,8 +11279,21 @@ L_089C3D54: ctx.gpr[8] = (0u | 151u); aot_gpr_31 = (0x089C3D78u); ctx.gpr[9] = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 916u, 0x089C3D78u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3D78u) goto L_089C3D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3D78: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8267,8 +11307,21 @@ L_089C3D84: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3D90u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 918u, 0x089C3D90u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3D90u) goto L_089C3D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3D90: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8292,8 +11345,21 @@ L_089C3DA8: L_089C3DB0: aot_gpr_31 = (0x089C3DB8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 923u, 0x089C3DB8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3DB8u) goto L_089C3DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3DB8: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (ctx.gpr[18] + static_cast(-7)); @@ -8330,8 +11396,21 @@ L_089C3DEC: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C3E10u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 928u, 0x089C3E10u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3E10u) goto L_089C3E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3E10: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8345,8 +11424,21 @@ L_089C3E1C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089C3E28u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 930u, 0x089C3E28u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3E28u) goto L_089C3E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3E28: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8370,8 +11462,21 @@ L_089C3E40: L_089C3E48: aot_gpr_31 = (0x089C3E50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 935u, 0x089C3E50u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3E50u) goto L_089C3E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3E50: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -8423,8 +11528,21 @@ L_089C3EA4: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C3ED0u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 941u, 0x089C3ED0u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3ED0u) goto L_089C3ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3ED0: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8438,8 +11556,21 @@ L_089C3EDC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C3EE8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 943u, 0x089C3EE8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3EE8u) goto L_089C3EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3EE8: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8464,8 +11595,21 @@ L_089C3F00: L_089C3F0C: aot_gpr_31 = (0x089C3F14u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 948u, 0x089C3F14u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3F14u) goto L_089C3F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3F14: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -8480,8 +11624,21 @@ L_089C3F24: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C3F3Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 950u, 0x089C3F3Cu, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3F3Cu) goto L_089C3F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3F3C: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8495,8 +11652,21 @@ L_089C3F48: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C3F54u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 952u, 0x089C3F54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3F54u) goto L_089C3F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3F54: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8521,8 +11691,21 @@ L_089C3F74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C3F80u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 957u, 0x089C3F80u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3F80u) goto L_089C3F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3F80: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -8537,8 +11720,21 @@ L_089C3F90: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C3FA8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 959u, 0x089C3FA8u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3FA8u) goto L_089C3FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3FA8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8552,8 +11748,21 @@ L_089C3FB4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C3FC0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 961u, 0x089C3FC0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3FC0u) goto L_089C3FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3FC0: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8578,8 +11787,21 @@ L_089C3FE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089C3FECu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0111->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0111_entry, 966u, 0x089C3FECu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C3FECu) goto L_089C3FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C3FEC: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); diff --git a/profiles/vcs/generated/generated_unit_0112.cpp b/profiles/vcs/generated/generated_unit_0112.cpp index f663974..a701ea7 100644 --- a/profiles/vcs/generated/generated_unit_0112.cpp +++ b/profiles/vcs/generated/generated_unit_0112.cpp @@ -999,6 +999,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089C4000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1021,8 +1045,21 @@ L_089C4000: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C4020u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 2u, 0x089C4020u, 0x089BCC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 156u, 0x089BCC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4020u) goto L_089C4020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4020: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[16] != 0u; @@ -1036,8 +1073,21 @@ L_089C402C: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089C4038u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 4u, 0x089C4038u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4038u) goto L_089C4038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4038: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1061,8 +1111,21 @@ L_089C4054: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089C4060u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 9u, 0x089C4060u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4060u) goto L_089C4060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4060: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1074,8 +1137,21 @@ L_089C4070: ctx.gpr[30] = (0u | 147u); aot_gpr_31 = (0x089C407Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 11u, 0x089C407Cu, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C407Cu) goto L_089C407C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C407C: aot_gpr_5 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_5 != 0u; @@ -1090,8 +1166,21 @@ L_089C4088: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089C4098u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 13u, 0x089C4098u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4098u) goto L_089C4098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4098: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-12040)); { const bool branch_taken = aot_gpr_2 != 0u; @@ -1108,8 +1197,21 @@ L_089C40A8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C40B4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 16u, 0x089C40B4u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C40B4u) goto L_089C40B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C40B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -1139,8 +1241,21 @@ L_089C40D0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089C40FCu); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 20u, 0x089C40FCu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C40FCu) goto L_089C40FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C40FC: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[16] != 0u; @@ -1154,8 +1269,21 @@ L_089C4108: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089C4114u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 22u, 0x089C4114u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4114u) goto L_089C4114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4114: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1179,8 +1307,21 @@ L_089C412C: L_089C4134: aot_gpr_31 = (0x089C413Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 27u, 0x089C413Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C413Cu) goto L_089C413C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C413C: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (0u | 140u); @@ -1193,14 +1334,40 @@ L_089C414C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C415Cu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 29u, 0x089C415Cu, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C415Cu) goto L_089C415C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C415C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C4168u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 30u, 0x089C4168u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4168u) goto L_089C4168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4168: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(80), static_cast(aot_gpr_4)); @@ -1236,8 +1403,21 @@ L_089C41A8: ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(82))); aot_gpr_31 = (0x089C41C8u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 34u, 0x089C41C8u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C41C8u) goto L_089C41C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C41C8: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[16] != 0u; @@ -1251,8 +1431,21 @@ L_089C41D4: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089C41E0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 36u, 0x089C41E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C41E0u) goto L_089C41E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C41E0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1276,8 +1469,21 @@ L_089C41F8: L_089C4200: aot_gpr_31 = (0x089C4208u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 41u, 0x089C4208u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4208u) goto L_089C4208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4208: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1293,15 +1499,41 @@ L_089C4220: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x089C422Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 44u, 0x089C422Cu, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C422Cu) goto L_089C422C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C422C: aot_gpr_5 = (aot_gpr_2 < static_cast(1) ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_31 = (0x089C423Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 45u, 0x089C423Cu, 0x08ADC7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 155u, 0x08ADC7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C423Cu) goto L_089C423C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C423C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -1329,8 +1561,21 @@ L_089C4258: ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(78))); aot_gpr_31 = (0x089C427Cu); aot_gpr_5 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 49u, 0x089C427Cu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C427Cu) goto L_089C427C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C427C: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); if (ctx.gpr[16] != 0u) { @@ -1342,8 +1587,21 @@ L_089C4288: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089C4294u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 51u, 0x089C4294u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4294u) goto L_089C4294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4294: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1367,8 +1625,21 @@ L_089C42AC: L_089C42B4: aot_gpr_31 = (0x089C42BCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 56u, 0x089C42BCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C42BCu) goto L_089C42BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C42BC: aot_gpr_5 = (0u | 250u); aot_gpr_6 = (ctx.gpr[30] + static_cast(-7)); @@ -1382,14 +1653,40 @@ L_089C42CC: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x089C42E0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 58u, 0x089C42E0u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C42E0u) goto L_089C42E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C42E0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C42ECu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 59u, 0x089C42ECu, 0x08ADC7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 155u, 0x08ADC7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C42ECu) goto L_089C42EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C42EC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); ctx.fpr[22] = std::bit_cast(ctx.gpr[30]); @@ -1425,8 +1722,21 @@ L_089C432C: ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(78))); aot_gpr_31 = (0x089C434Cu); aot_gpr_5 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 63u, 0x089C434Cu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C434Cu) goto L_089C434C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C434C: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); if (ctx.gpr[17] != 0u) { @@ -1438,8 +1748,21 @@ L_089C4358: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C4364u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 65u, 0x089C4364u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4364u) goto L_089C4364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4364: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1463,8 +1786,21 @@ L_089C437C: L_089C4384: aot_gpr_31 = (0x089C438Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 70u, 0x089C438Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C438Cu) goto L_089C438C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C438C: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1477,14 +1813,40 @@ L_089C439C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C43ACu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 72u, 0x089C43ACu, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C43ACu) goto L_089C43AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C43AC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C43B8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 73u, 0x089C43B8u, 0x08ADC7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 155u, 0x08ADC7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C43B8u) goto L_089C43B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C43B8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(76), static_cast(aot_gpr_4)); @@ -1522,8 +1884,21 @@ L_089C43FC: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C4420u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 77u, 0x089C4420u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4420u) goto L_089C4420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4420: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -1537,8 +1912,21 @@ L_089C442C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C4438u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 79u, 0x089C4438u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4438u) goto L_089C4438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4438: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1562,8 +1950,21 @@ L_089C4450: L_089C4458: aot_gpr_31 = (0x089C4460u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 84u, 0x089C4460u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4460u) goto L_089C4460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4460: aot_gpr_5 = (0u | 250u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1581,8 +1982,21 @@ L_089C4470: L_089C4478: aot_gpr_31 = (0x089C4480u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 87u, 0x089C4480u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4480u) goto L_089C4480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4480: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1597,8 +2011,21 @@ L_089C448C: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x089C44A0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 89u, 0x089C44A0u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C44A0u) goto L_089C44A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C44A0: aot_gpr_4 = (17185u << 16u); ctx.gpr[16] = (ctx.gpr[28] + static_cast(-12040)); @@ -1617,8 +2044,21 @@ L_089C44B8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C44C4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 92u, 0x089C44C4u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C44C4u) goto L_089C44C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C44C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -1648,8 +2088,21 @@ L_089C44E0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089C450Cu); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 96u, 0x089C450Cu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C450Cu) goto L_089C450C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C450C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -1663,8 +2116,21 @@ L_089C4518: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089C4524u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 98u, 0x089C4524u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4524u) goto L_089C4524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4524: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -1688,8 +2154,21 @@ L_089C453C: L_089C4544: aot_gpr_31 = (0x089C454Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 103u, 0x089C454Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C454Cu) goto L_089C454C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C454C: aot_gpr_5 = (0u | 130u); aot_gpr_6 = (0u | 154u); @@ -1702,14 +2181,40 @@ L_089C455C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C456Cu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 105u, 0x089C456Cu, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C456Cu) goto L_089C456C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C456C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C4578u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 106u, 0x089C4578u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4578u) goto L_089C4578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4578: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(84), static_cast(aot_gpr_4)); @@ -1745,8 +2250,21 @@ L_089C45B8: ctx.gpr[9] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(86))); aot_gpr_31 = (0x089C45D8u); aot_gpr_5 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 110u, 0x089C45D8u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C45D8u) goto L_089C45D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C45D8: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -1760,8 +2278,21 @@ L_089C45E4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089C45F0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 112u, 0x089C45F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C45F0u) goto L_089C45F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C45F0: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -1785,8 +2316,21 @@ L_089C4608: L_089C4610: aot_gpr_31 = (0x089C4618u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 117u, 0x089C4618u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4618u) goto L_089C4618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4618: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1801,8 +2345,21 @@ L_089C4628: aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); aot_gpr_31 = (0x089C4640u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 119u, 0x089C4640u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4640u) goto L_089C4640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4640: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(84), static_cast(aot_gpr_4)); @@ -1839,8 +2396,21 @@ L_089C4680: aot_gpr_5 = (0u | 20u); aot_gpr_31 = (0x089C46A4u); aot_gpr_6 = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 123u, 0x089C46A4u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C46A4u) goto L_089C46A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C46A4: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -1854,8 +2424,21 @@ L_089C46B0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C46BCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 125u, 0x089C46BCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C46BCu) goto L_089C46BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C46BC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1879,8 +2462,21 @@ L_089C46D4: L_089C46DC: aot_gpr_31 = (0x089C46E4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 130u, 0x089C46E4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C46E4u) goto L_089C46E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C46E4: aot_gpr_5 = (0u | 130u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1914,8 +2510,21 @@ L_089C4710: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x089C4738u); ctx.gpr[9] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 135u, 0x089C4738u, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4738u) goto L_089C4738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4738: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[16] != 0u; @@ -1929,8 +2538,21 @@ L_089C4744: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089C4750u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 137u, 0x089C4750u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4750u) goto L_089C4750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4750: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1954,8 +2576,21 @@ L_089C4768: L_089C4770: aot_gpr_31 = (0x089C4778u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 142u, 0x089C4778u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4778u) goto L_089C4778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4778: aot_gpr_5 = (0u | 245u); aot_gpr_6 = (0u | 154u); @@ -1991,8 +2626,21 @@ L_089C47A8: ctx.gpr[8] = (0u | 130u); aot_gpr_31 = (0x089C47CCu); ctx.gpr[9] = (0u | 180u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 147u, 0x089C47CCu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C47CCu) goto L_089C47CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C47CC: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -2006,8 +2654,21 @@ L_089C47D8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C47E4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 149u, 0x089C47E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C47E4u) goto L_089C47E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C47E4: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2031,8 +2692,21 @@ L_089C47FC: L_089C4804: aot_gpr_31 = (0x089C480Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 154u, 0x089C480Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C480Cu) goto L_089C480C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C480C: aot_gpr_5 = (0u | 245u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2059,8 +2733,8 @@ L_089C481C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C4858: @@ -2146,21 +2820,60 @@ L_089C48F0: L_089C48FC: aot_gpr_31 = (0x089C4904u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 167u, 0x089C4904u, 0x089BB298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 689u, 0x089BB298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4904u) goto L_089C4904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4904: ctx.gpr[19] = (aot_gpr_29 + static_cast(20)); aot_gpr_4 = (ctx.gpr[18] + static_cast(14)); aot_gpr_31 = (0x089C4914u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 168u, 0x089C4914u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4914u) goto L_089C4914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4914: ctx.fpr[20] = std::bit_cast(0u); aot_gpr_31 = (0x089C4920u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 169u, 0x089C4920u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4920u) goto L_089C4920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4920: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(60))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(61))); @@ -2195,8 +2908,21 @@ L_089C4958: aot_gpr_4 = (aot_gpr_4 | 32768u); aot_gpr_31 = (0x089C4998u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 171u, 0x089C4998u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4998u) goto L_089C4998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4998: aot_fpr_15 = ctx.fpr[24] + ctx.fpr[0]; aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -2209,8 +2935,21 @@ L_089C4998: L_089C49B0: aot_gpr_31 = (0x089C49B8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 173u, 0x089C49B8u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C49B8u) goto L_089C49B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C49B8: aot_gpr_5 = (17391u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -2229,8 +2968,21 @@ L_089C49D8: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C49F0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 175u, 0x089C49F0u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C49F0u) goto L_089C49F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C49F0: ctx.fpr[24] = std::bit_cast(aot_gpr_2); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -2262,8 +3014,21 @@ L_089C4A24: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x089C4A30u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 179u, 0x089C4A30u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4A30u) goto L_089C4A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4A30: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2287,14 +3052,40 @@ L_089C4A4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x089C4A58u); aot_gpr_5 = (ctx.gpr[18] + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 184u, 0x089C4A58u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4A58u) goto L_089C4A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4A58: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C4A64u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 185u, 0x089C4A64u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4A64u) goto L_089C4A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4A64: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(60))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(61))); @@ -2338,8 +3129,21 @@ L_089C4ADC: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089C4AF0u); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_13))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 188u, 0x089C4AF0u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4AF0u) goto L_089C4AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4AF0: aot_fpr_15 = ctx.fpr[22] + ctx.fpr[0]; aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -2352,8 +3156,21 @@ L_089C4AF0: L_089C4B08: aot_gpr_31 = (0x089C4B10u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 190u, 0x089C4B10u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4B10u) goto L_089C4B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4B10: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 0u); @@ -2392,8 +3209,8 @@ L_089C4B38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(496)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C4B68: @@ -2862,8 +3679,21 @@ L_089C4EF8: aot_gpr_4 = (aot_gpr_4 | 39322u); aot_gpr_31 = (0x089C4F08u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 249u, 0x089C4F08u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4F08u) goto L_089C4F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4F08: aot_gpr_4 = (0u | 255u); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(10852))); @@ -2878,8 +3708,21 @@ L_089C4F08: aot_gpr_4 = (17234u << 16u); aot_gpr_31 = (0x089C4F3Cu); ctx.fpr[24] = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 250u, 0x089C4F3Cu, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4F3Cu) goto L_089C4F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4F3C: aot_fpr_15 = ctx.fpr[0] + ctx.fpr[24]; aot_gpr_4 = (aot_gpr_29 + static_cast(4)); @@ -2897,8 +3740,21 @@ L_089C4F54: ctx.gpr[8] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C4F70u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 252u, 0x089C4F70u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C4F70u) goto L_089C4F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C4F70: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -2910,8 +3766,8 @@ L_089C4F70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C4F8C: @@ -2956,8 +3812,21 @@ L_089C5020: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x089C5030u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 256u, 0x089C5030u, 0x089BF18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 612u, 0x089BF18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5030u) goto L_089C5030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5030: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1929)))))); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2990,8 +3859,21 @@ L_089C5070: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x089C5080u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0110. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 259u, 0x089C5080u, 0x089BF18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0110_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0110_entry, 110u, 612u, 0x089BF18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5080u) goto L_089C5080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5080: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(11221))); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -3181,8 +4063,21 @@ L_089C51E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); aot_gpr_31 = (0x089C51ECu); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 285u, 0x089C51ECu, 0x08A65AACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 368u, 0x08A65AACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C51ECu) goto L_089C51EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C51EC: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -3211,8 +4106,21 @@ L_089C520C: L_089C521C: aot_gpr_31 = (0x089C5224u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(30)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 289u, 0x089C5224u, 0x08A074BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 785u, 0x08A074BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5224u) goto L_089C5224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5224: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); @@ -3262,8 +4170,21 @@ L_089C5274: ctx.gpr[7] = (0u | 255u); aot_gpr_31 = (0x089C52CCu); ctx.fpr[17] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 292u, 0x089C52CCu, 0x08AA8C8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 68u, 0x08AA8C8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C52CCu) goto L_089C52CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C52CC: aot_gpr_4 = (0u | 6u); aot_gpr_31 = (0x089C52D8u); @@ -3351,8 +4272,21 @@ L_089C5368: ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x089C539Cu); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 303u, 0x089C539Cu, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C539Cu) goto L_089C539C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C539C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(9274))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3375,8 +4309,21 @@ L_089C53B8: aot_gpr_4 = (aot_gpr_4 | 31457u); aot_gpr_31 = (0x089C53C8u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 307u, 0x089C53C8u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C53C8u) goto L_089C53C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C53C8: aot_gpr_31 = (0x089C53D0u); aot_gpr_4 = (0u | 18u); @@ -3425,8 +4372,21 @@ L_089C5414: } L_089C541C: aot_gpr_31 = (0x089C5424u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 314u, 0x089C5424u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5424u) goto L_089C5424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5424: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3653,8 +4613,21 @@ L_089C55FC: L_089C5624: aot_gpr_31 = (0x089C562Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 339u, 0x089C562Cu, 0x08B0C848u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 109u, 0x08B0C848u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C562Cu) goto L_089C562C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C562C: aot_gpr_5 = (17376u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -3673,8 +4646,21 @@ L_089C562C: L_089C565C: aot_gpr_31 = (0x089C5664u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 341u, 0x089C5664u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5664u) goto L_089C5664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5664: aot_gpr_31 = (0x089C566Cu); aot_gpr_4 = (0u | 20u); @@ -3684,8 +4670,21 @@ L_089C566C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089C5678u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 343u, 0x089C5678u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5678u) goto L_089C5678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5678: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (0u | 0u); @@ -3708,8 +4707,21 @@ L_089C5688: L_089C56AC: aot_gpr_31 = (0x089C56B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 346u, 0x089C56B4u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C56B4u) goto L_089C56B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C56B4: aot_gpr_31 = (0x089C56BCu); aot_gpr_4 = (0u | 18u); @@ -3719,8 +4731,21 @@ L_089C56BC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089C56C8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 348u, 0x089C56C8u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C56C8u) goto L_089C56C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C56C8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (0u | 0u); @@ -3740,8 +4765,21 @@ L_089C56D8: L_089C56F0: aot_gpr_31 = (0x089C56F8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 351u, 0x089C56F8u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C56F8u) goto L_089C56F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C56F8: aot_gpr_31 = (0x089C5700u); aot_gpr_4 = (0u | 17u); @@ -3751,8 +4789,21 @@ L_089C5700: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089C570Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 353u, 0x089C570Cu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C570Cu) goto L_089C570C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C570C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (0u | 0u); @@ -3779,8 +4830,21 @@ L_089C5738: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089C5744u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 357u, 0x089C5744u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5744u) goto L_089C5744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5744: aot_gpr_5 = (17363u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -3794,8 +4858,21 @@ L_089C5744: L_089C5760: aot_gpr_31 = (0x089C5768u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 359u, 0x089C5768u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5768u) goto L_089C5768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5768: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (0u | 0u); @@ -3822,8 +4899,8 @@ L_089C5778: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(768)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C57B4: @@ -4391,8 +5468,21 @@ L_089C5C30: aot_gpr_4 = (aot_gpr_4 | 39322u); aot_gpr_31 = (0x089C5C40u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 423u, 0x089C5C40u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5C40u) goto L_089C5C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5C40: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7720))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4425,8 +5515,21 @@ L_089C5C58: aot_gpr_4 = (17258u << 16u); aot_gpr_31 = (0x089C5C94u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 426u, 0x089C5C94u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5C94u) goto L_089C5C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5C94: aot_fpr_15 = ctx.fpr[0] + ctx.fpr[24]; aot_gpr_4 = (aot_gpr_29 + static_cast(4)); @@ -4444,8 +5547,21 @@ L_089C5CAC: ctx.gpr[8] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x089C5CC8u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 428u, 0x089C5CC8u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5CC8u) goto L_089C5CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5CC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4476,8 +5592,8 @@ L_089C5CE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C5CFC: @@ -4560,8 +5676,21 @@ L_089C5DE4: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089C5E34u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 435u, 0x089C5E34u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5E34u) goto L_089C5E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5E34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_6 = (static_cast(static_cast(aot_gpr_4) >> 1u)); @@ -4602,8 +5731,21 @@ L_089C5E94: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089C5EC4u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 437u, 0x089C5EC4u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5EC4u) goto L_089C5EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5EC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); aot_gpr_6 = (aot_gpr_4 + ctx.gpr[18]); @@ -4644,8 +5786,21 @@ L_089C5F20: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089C5F54u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 439u, 0x089C5F54u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5F54u) goto L_089C5F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5F54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); @@ -4689,8 +5844,21 @@ L_089C5FC0: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089C5FF0u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 441u, 0x089C5FF0u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C5FF0u) goto L_089C5FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C5FF0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); ctx.gpr[16] = (0u - ctx.gpr[16]); @@ -4735,8 +5903,21 @@ L_089C6060: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089C6090u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 443u, 0x089C6090u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6090u) goto L_089C6090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6090: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_6 = (static_cast(static_cast(aot_gpr_4) >> 1u)); @@ -4777,8 +5958,21 @@ L_089C60F0: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089C6120u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 445u, 0x089C6120u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6120u) goto L_089C6120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6120: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); aot_gpr_6 = (aot_gpr_4 + ctx.gpr[18]); @@ -4818,8 +6012,21 @@ L_089C617C: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089C61ACu); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 447u, 0x089C61ACu, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C61ACu) goto L_089C61AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C61AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8744))); aot_gpr_6 = (static_cast(static_cast(aot_gpr_4) >> 1u)); @@ -4862,8 +6069,21 @@ L_089C6214: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089C6244u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 449u, 0x089C6244u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6244u) goto L_089C6244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6244: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -4881,8 +6101,8 @@ L_089C6244: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6278: @@ -4929,8 +6149,8 @@ L_089C62B8: L_089C62C0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), ctx.gpr[7]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C62C8: @@ -4977,8 +6197,8 @@ L_089C6308: L_089C6310: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[7]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6318: @@ -4986,8 +6206,8 @@ L_089C6318: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6328: @@ -5007,8 +6227,8 @@ L_089C634C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6360: @@ -5052,8 +6272,8 @@ L_089C63A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C63B0: @@ -5107,8 +6327,8 @@ L_089C6404: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6410: @@ -5210,8 +6430,21 @@ L_089C64DC: L_089C64E4: aot_gpr_31 = (0x089C64ECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 491u, 0x089C64ECu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C64ECu) goto L_089C64EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C64EC: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -5257,8 +6490,21 @@ L_089C6540: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C6554u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 497u, 0x089C6554u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6554u) goto L_089C6554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6554: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_2 + ctx.gpr[20]); @@ -5291,8 +6537,21 @@ L_089C6570: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089C6588u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 501u, 0x089C6588u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6588u) goto L_089C6588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6588: ctx.gpr[17] = (aot_gpr_2 + ctx.gpr[17]); goto L_089C658C; @@ -5345,8 +6604,21 @@ L_089C65D4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089C65E8u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 508u, 0x089C65E8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C65E8u) goto L_089C65E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C65E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); @@ -5377,8 +6649,8 @@ L_089C6610: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6640: @@ -5479,8 +6751,21 @@ L_089C670C: L_089C6714: aot_gpr_31 = (0x089C671Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 522u, 0x089C671Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C671Cu) goto L_089C671C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C671C: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -5526,8 +6811,21 @@ L_089C6770: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C6784u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 528u, 0x089C6784u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6784u) goto L_089C6784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6784: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_2 + ctx.gpr[20]); @@ -5572,8 +6870,21 @@ L_089C67CC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C67E0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 533u, 0x089C67E0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C67E0u) goto L_089C67E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C67E0: ctx.gpr[17] = (aot_gpr_2 + ctx.gpr[17]); goto L_089C67E4; @@ -5638,8 +6949,21 @@ L_089C6858: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089C6868u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 541u, 0x089C6868u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6868u) goto L_089C6868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6868: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[19]); @@ -5670,8 +6994,8 @@ L_089C6890: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C68C0: @@ -5697,8 +7021,8 @@ L_089C68EC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-4040))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6908: @@ -5771,8 +7095,21 @@ L_089C6958: L_089C6960: aot_gpr_31 = (0x089C6968u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 558u, 0x089C6968u, 0x08991B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 392u, 0x08991B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6968u) goto L_089C6968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6968: if (aot_gpr_29 == ctx.gpr[16]) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5841,8 +7178,21 @@ L_089C69D0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C69DCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 567u, 0x089C69DCu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C69DCu) goto L_089C69DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C69DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_5 = (ctx.gpr[18] - ctx.gpr[17]); @@ -5996,8 +7346,21 @@ L_089C6AD4: aot_gpr_5 = (aot_gpr_29 + static_cast(12)); aot_gpr_31 = (0x089C6AE0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 592u, 0x089C6AE0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6AE0u) goto L_089C6AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6AE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); @@ -6023,8 +7386,21 @@ L_089C6B08: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089C6B14u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 595u, 0x089C6B14u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6B14u) goto L_089C6B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6B14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_5 = (ctx.gpr[19] - ctx.gpr[18]); @@ -6049,8 +7425,21 @@ L_089C6B28: L_089C6B38: aot_gpr_31 = (0x089C6B40u); aot_gpr_5 = (aot_gpr_29 + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 598u, 0x089C6B40u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6B40u) goto L_089C6B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6B40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); @@ -6078,8 +7467,8 @@ L_089C6B70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6B8C: @@ -6102,16 +7491,29 @@ L_089C6BAC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3984))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6BC4: aot_gpr_5 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x089C6BD0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 604u, 0x089C6BD0u, 0x08A060BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 520u, 0x08A060BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6BD0u) goto L_089C6BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6BD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6123,8 +7525,21 @@ L_089C6BD8: aot_gpr_5 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x089C6BE4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 606u, 0x089C6BE4u, 0x08A0605Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 512u, 0x08A0605Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6BE4u) goto L_089C6BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6BE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6272,8 +7687,8 @@ L_089C6CF4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6D00: @@ -6301,36 +7716,36 @@ L_089C6D00: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(76), static_cast(aot_gpr_6)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(77), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6D68: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6D70: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(8), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6D78: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6D80: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6D88: @@ -6360,85 +7775,85 @@ L_089C6DA4: } L_089C6DAC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DB4: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(19), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DBC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(24))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DC4: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(24), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DCC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(16))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DD4: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(16), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DDC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(17))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DE4: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(17), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DEC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(18))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DF4: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(18), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6DFC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(25))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6E04: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(25), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6E0C: @@ -6485,8 +7900,8 @@ L_089C6E4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6E58: @@ -6583,29 +7998,29 @@ L_089C6EE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6EF4: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-16129))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6EFC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-16129), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6F04: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-16128))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6F0C: @@ -6625,36 +8040,49 @@ L_089C6F2C: goto L_089C6E58; L_089C6F38: aot_gpr_31 = (0x089C6F40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 676u, 0x089C6F40u, 0x0898B448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 829u, 0x0898B448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6F40u) goto L_089C6F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6F40: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6F50: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(26))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6F58: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(26), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6F60: jump_target = aot_gpr_31; aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(27)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C6F68: @@ -6680,8 +8108,21 @@ L_089C6F98: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x089C6FA8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 682u, 0x089C6FA8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6FA8u) goto L_089C6FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6FA8: aot_gpr_31 = (0x089C6FB0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-11872)); @@ -6690,8 +8131,21 @@ L_089C6FA8: L_089C6FB0: aot_gpr_31 = (0x089C6FB8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 684u, 0x089C6FB8u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6FB8u) goto L_089C6FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6FB8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6713,8 +8167,21 @@ L_089C6FCC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x089C6FDCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 687u, 0x089C6FDCu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6FDCu) goto L_089C6FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6FDC: aot_gpr_31 = (0x089C6FE4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-11872)); @@ -6731,8 +8198,21 @@ L_089C6FEC: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089C6FFCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 691u, 0x089C6FFCu, 0x08A06798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 627u, 0x08A06798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C6FFCu) goto L_089C6FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C6FFC: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5576))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6744,8 +8224,21 @@ L_089C6FFC: L_089C7008: aot_gpr_31 = (0x089C7010u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0211. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 693u, 0x089C7010u, 0x08B50B6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0211_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0211_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0211_entry, 211u, 185u, 0x08B50B6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7010u) goto L_089C7010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7010: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(27)))))); aot_gpr_5 = (0u | 9u); @@ -6765,8 +8258,21 @@ L_089C7020: } L_089C702C: aot_gpr_31 = (0x089C7034u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 696u, 0x089C7034u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7034u) goto L_089C7034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7034: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_089C7038; @@ -6791,8 +8297,21 @@ L_089C7048: } L_089C7054: aot_gpr_31 = (0x089C705Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 701u, 0x089C705Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C705Cu) goto L_089C705C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C705C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_089C7060; @@ -6834,43 +8353,43 @@ L_089C7090: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C70A8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C70B0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C70B8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(28))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C70C0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C70C8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(36))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C70D0: @@ -6936,15 +8455,15 @@ L_089C7138: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7148: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(40)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7150: @@ -6953,72 +8472,72 @@ L_089C7150: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7164: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C716C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7174: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(48))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C717C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(48), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7184: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(49), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C718C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(52)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7194: aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(77))); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C71A0: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(77), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C71A8: jump_target = aot_gpr_31; aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(76)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C71B0: @@ -7053,8 +8572,8 @@ L_089C71D8: L_089C71DC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(76), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C71E4: @@ -7063,8 +8582,8 @@ L_089C71E4: aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C71F8: @@ -7120,8 +8639,8 @@ L_089C71F8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7220: @@ -7130,8 +8649,8 @@ L_089C7220: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7248: @@ -7150,8 +8669,8 @@ L_089C7248: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11836), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11832), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C72B8: @@ -7163,8 +8682,21 @@ L_089C72B8: goto L_089C7458; L_089C72DC: aot_gpr_31 = (0x089C72E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 744u, 0x089C72E4u, 0x089CB2D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 842u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 842u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 842u, 0x089CB2D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C72E4u) goto L_089C72E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C72E4: aot_gpr_31 = (0x089C72ECu); goto L_089C7B40; @@ -7258,8 +8790,21 @@ L_089C73C0: } L_089C73C8: aot_gpr_31 = (0x089C73D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 755u, 0x089C73D0u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C73D0u) goto L_089C73D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C73D0: aot_gpr_4 = (2236u << 16u); ctx.gpr[16] = (aot_gpr_4 + static_cast(32304)); @@ -7269,8 +8814,21 @@ L_089C73D0: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089C73F0u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 756u, 0x089C73F0u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C73F0u) goto L_089C73F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C73F0: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1952))); aot_gpr_4 = (17008u << 16u); @@ -7278,8 +8836,21 @@ L_089C73F0: { const float fs = aot_fpr_14; const float ft = aot_fpr_15; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x089C7408u); { const float fs = aot_fpr_13; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 757u, 0x089C7408u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7408u) goto L_089C7408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7408: aot_gpr_4 = (16840u << 16u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); @@ -7288,16 +8859,42 @@ L_089C7408: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089C7424u); ctx.fpr[26] = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 758u, 0x089C7424u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7424u) goto L_089C7424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7424: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_15 = std::bit_cast(0x7FC00000u); else aot_fpr_15 = fs * ft; } aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089C7438u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 759u, 0x089C7438u, 0x089C9248u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 301u, 0x089C9248u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7438u) goto L_089C7438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7438: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7310,8 +8907,8 @@ L_089C7438: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7458: @@ -7324,8 +8921,8 @@ L_089C7458: } L_089C7460: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7468: @@ -7451,8 +9048,21 @@ L_089C74F4: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089C7528u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 767u, 0x089C7528u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7528u) goto L_089C7528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7528: aot_gpr_4 = (16928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7484,8 +9094,21 @@ L_089C754C: aot_fpr_14 = aot_fpr_14 + ctx.fpr[22]; aot_gpr_31 = (0x089C756Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 770u, 0x089C756Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C756Cu) goto L_089C756C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C756C: ctx.fpr[22] = ctx.fpr[0] + ctx.fpr[22]; aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7648,8 +9271,21 @@ L_089C7688: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089C76B4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 790u, 0x089C76B4u, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C76B4u) goto L_089C76B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C76B4: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (16512u << 16u); @@ -7659,8 +9295,21 @@ L_089C76B4: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x089C76D4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 791u, 0x089C76D4u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C76D4u) goto L_089C76D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C76D4: aot_mem.aot_direct_store16(ctx.gpr[19] + static_cast(1918), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(464))); @@ -7688,8 +9337,21 @@ L_089C76FC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x089C771Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 794u, 0x089C771Cu, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C771Cu) goto L_089C771C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C771C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7789,8 +9451,21 @@ L_089C77C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); aot_gpr_31 = (0x089C77D4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 807u, 0x089C77D4u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C77D4u) goto L_089C77D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C77D4: aot_gpr_2 = (ctx.gpr[19] | 0u); goto L_089C77D8; @@ -7809,8 +9484,8 @@ L_089C77D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1152)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7804: @@ -7932,8 +9607,21 @@ L_089C78E0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C78ECu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 824u, 0x089C78ECu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C78ECu) goto L_089C78EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C78EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -7976,8 +9664,21 @@ L_089C7940: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C7954u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 828u, 0x089C7954u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7954u) goto L_089C7954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7954: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[19] = (ctx.gpr[20] + static_cast(-1)); @@ -7993,8 +9694,21 @@ L_089C7968: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089C7974u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 830u, 0x089C7974u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7974u) goto L_089C7974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7974: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(216)); @@ -8037,19 +9751,58 @@ L_089C79C8: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089C79DCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 834u, 0x089C79DCu, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C79DCu) goto L_089C79DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C79DC: aot_gpr_31 = (0x089C79E4u); aot_gpr_4 = (ctx.gpr[16] + static_cast(864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 835u, 0x089C79E4u, 0x08A9F908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 563u, 0x08A9F908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C79E4u) goto L_089C79E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C79E4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089C79F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 836u, 0x089C79F0u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C79F0u) goto L_089C79F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C79F0: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -8083,8 +9836,8 @@ L_089C7A14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7A3C: @@ -8131,21 +9884,60 @@ L_089C7A68: aot_gpr_4 = (aot_gpr_4 - aot_gpr_5); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9612), aot_gpr_4); aot_gpr_31 = (0x089C7AF0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 841u, 0x089C7AF0u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7AF0u) goto L_089C7AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7AF0: aot_gpr_31 = (0x089C7AF8u); { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 842u, 0x089C7AF8u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7AF8u) goto L_089C7AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7AF8: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_15 = std::bit_cast(0x7FC00000u); else aot_fpr_15 = fs * ft; } aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089C7B0Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 843u, 0x089C7B0Cu, 0x089C9248u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 301u, 0x089C9248u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7B0Cu) goto L_089C7B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7B0C: aot_gpr_4 = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (aot_gpr_4 << 16u); @@ -8168,8 +9960,8 @@ L_089C7B24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7B40: @@ -8189,8 +9981,21 @@ L_089C7B80: ctx.gpr[23] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089C7B8Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 847u, 0x089C7B8Cu, 0x08B6D34Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 221u, 0x08B6D34Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7B8Cu) goto L_089C7B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7B8C: aot_gpr_4 = (static_cast(aot_gpr_2) < 8 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8275,8 +10080,21 @@ L_089C7C10: L_089C7C1C: aot_gpr_31 = (0x089C7C24u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 858u, 0x089C7C24u, 0x0890C798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 128u, 0x0890C798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7C24u) goto L_089C7C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7C24: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8355,8 +10173,21 @@ L_089C7C88: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089C7C94u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 864u, 0x089C7C94u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7C94u) goto L_089C7C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7C94: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -8392,8 +10223,8 @@ L_089C7CB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7CE8: @@ -8470,8 +10301,21 @@ L_089C7D68: L_089C7D70: aot_gpr_31 = (0x089C7D78u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 877u, 0x089C7D78u, 0x0882B9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 398u, 0x0882B9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7D78u) goto L_089C7D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7D78: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8505,8 +10349,8 @@ L_089C7D9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7DB8: @@ -8515,8 +10359,21 @@ L_089C7DB8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089C7DD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 882u, 0x089C7DD8u, 0x089CBF88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 997u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 997u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 997u, 0x089CBF88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7DD8u) goto L_089C7DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7DD8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8528,8 +10385,21 @@ L_089C7DE0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C7DECu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 884u, 0x089C7DECu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7DECu) goto L_089C7DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7DEC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -8556,8 +10426,21 @@ L_089C7E00: L_089C7E08: aot_gpr_31 = (0x089C7E10u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 888u, 0x089C7E10u, 0x0882B73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 358u, 0x0882B73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7E10u) goto L_089C7E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7E10: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_089C7E14; @@ -8572,8 +10455,21 @@ L_089C7E1C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089C7E28u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 891u, 0x089C7E28u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7E28u) goto L_089C7E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7E28: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -8596,8 +10492,21 @@ L_089C7E30: L_089C7E4C: aot_gpr_31 = (0x089C7E54u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 894u, 0x089C7E54u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7E54u) goto L_089C7E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7E54: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -8789,8 +10698,21 @@ L_089C7F6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C7F98u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 917u, 0x089C7F98u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7F98u) goto L_089C7F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7F98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_5 = (1024u << 16u); @@ -8798,8 +10720,21 @@ L_089C7F98: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x089C7FB0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 918u, 0x089C7FB0u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7FB0u) goto L_089C7FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7FB0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8810,8 +10745,8 @@ L_089C7FB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C7FC8: @@ -8822,8 +10757,21 @@ L_089C7FC8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089C7FECu); aot_gpr_4 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0112->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0112_entry, 920u, 0x089C7FECu, 0x08AB0078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 7u, 0x08AB0078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C7FECu) goto L_089C7FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C7FEC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; diff --git a/profiles/vcs/generated/generated_unit_0113.cpp b/profiles/vcs/generated/generated_unit_0113.cpp index 238e993..f0aefec 100644 --- a/profiles/vcs/generated/generated_unit_0113.cpp +++ b/profiles/vcs/generated/generated_unit_0113.cpp @@ -1075,6 +1075,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089C8000u; + if (local_delta_v813 >= 16268u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1095,18 +1119,57 @@ L_089C8004: aot_gpr_5 = (ctx.gpr[16] + static_cast(352)); aot_gpr_31 = (0x089C8010u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 3u, 0x089C8010u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8010u) goto L_089C8010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8010: aot_gpr_31 = (0x089C8018u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 4u, 0x089C8018u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8018u) goto L_089C8018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8018: aot_gpr_31 = (0x089C8020u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 5u, 0x089C8020u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8020u) goto L_089C8020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8020: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7656))); @@ -1220,8 +1283,21 @@ L_089C80D8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089C80E4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 20u, 0x089C80E4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C80E4u) goto L_089C80E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C80E4: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -1244,8 +1320,21 @@ L_089C80EC: L_089C8108: aot_gpr_31 = (0x089C8110u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 23u, 0x089C8110u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8110u) goto L_089C8110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8110: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -1256,8 +1345,8 @@ L_089C8110: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8128: @@ -1298,8 +1387,21 @@ L_089C8128: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_gpr_31 = (0x089C8190u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 25u, 0x089C8190u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8190u) goto L_089C8190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8190: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(32)))))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1324,8 +1426,8 @@ L_089C81A8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(40))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C81B8: @@ -1339,8 +1441,8 @@ L_089C81C8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C81D8: @@ -1400,8 +1502,21 @@ L_089C8234: } L_089C8268: aot_gpr_31 = (0x089C8270u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 37u, 0x089C8270u, 0x08AD3B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 692u, 0x08AD3B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8270u) goto L_089C8270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8270: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1483,8 +1598,8 @@ L_089C82FC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8314: @@ -1520,8 +1635,21 @@ L_089C8354: } L_089C835C: aot_gpr_31 = (0x089C8364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 51u, 0x089C8364u, 0x08AD3B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 692u, 0x08AD3B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8364u) goto L_089C8364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8364: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1623,8 +1751,8 @@ L_089C8414: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C842C: @@ -1663,8 +1791,8 @@ L_089C8460: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C849C: @@ -1673,14 +1801,27 @@ L_089C849C: aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089C84B0u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 68u, 0x089C84B0u, 0x08A87660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 520u, 0x08A87660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C84B0u) goto L_089C84B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C84B0: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C84BC: @@ -1715,8 +1856,21 @@ L_089C851C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C852Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 72u, 0x089C852Cu, 0x089CCB54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 134u, 0x089CCB54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C852Cu) goto L_089C852C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C852C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1729,8 +1883,21 @@ L_089C8534: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C8544u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 74u, 0x089C8544u, 0x089CC370u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 38u, 0x089CC370u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8544u) goto L_089C8544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8544: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -1743,8 +1910,8 @@ L_089C8544: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8564: @@ -2043,8 +2210,8 @@ L_089C8778: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C87A8: @@ -2276,8 +2443,8 @@ L_089C888C: goto L_089C8890; L_089C8890: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8898: @@ -2501,8 +2668,8 @@ L_089C8974: goto L_089C8978; L_089C8978: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8980: @@ -2526,8 +2693,8 @@ L_089C8994: goto L_089C8998; L_089C8998: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C89A0: @@ -2580,8 +2747,21 @@ L_089C89A0: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); aot_gpr_31 = (0x089C8A18u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 175u, 0x089C8A18u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8A18u) goto L_089C8A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8A18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(80))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2625,8 +2805,8 @@ L_089C8A48: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(116))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8A58: @@ -2667,8 +2847,8 @@ L_089C8A84: goto L_089C8A88; L_089C8A88: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8A90: @@ -2686,8 +2866,21 @@ L_089C8A90: L_089C8AC8: aot_gpr_31 = (0x089C8AD0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 190u, 0x089C8AD0u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8AD0u) goto L_089C8AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8AD0: aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(aot_gpr_2) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2709,8 +2902,21 @@ L_089C8AEC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C8AF8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 193u, 0x089C8AF8u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8AF8u) goto L_089C8AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8AF8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2737,8 +2943,21 @@ L_089C8B04: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089C8B1Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 195u, 0x089C8B1Cu, 0x08824354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 38u, 0x08824354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8B1Cu) goto L_089C8B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8B1C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2777,8 +2996,8 @@ L_089C8B38: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8B58: @@ -2837,8 +3056,21 @@ L_089C8BCC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089C8BDCu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 207u, 0x089C8BDCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8BDCu) goto L_089C8BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8BDC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(16))); @@ -2864,8 +3096,21 @@ L_089C8C00: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089C8C10u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 211u, 0x089C8C10u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8C10u) goto L_089C8C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8C10: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(17))); @@ -3014,8 +3259,21 @@ L_089C8CFC: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x089C8D08u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 232u, 0x089C8D08u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8D08u) goto L_089C8D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8D08: aot_gpr_4 = (aot_gpr_2 + aot_gpr_2); aot_gpr_5 = (0u | 15u); @@ -3069,8 +3327,8 @@ L_089C8D40: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8D68: @@ -3097,8 +3355,8 @@ L_089C8D84: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3824))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8D9C: @@ -3272,8 +3530,21 @@ L_089C8EE4: aot_gpr_4 = (2232u << 16u); aot_gpr_31 = (0x089C8EF0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-3928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 259u, 0x089C8EF0u, 0x089C7220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 740u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 740u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 740u, 0x089C7220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C8EF0u) goto L_089C8EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C8EF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3294,8 +3565,8 @@ L_089C8F00: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3728))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C8F18: @@ -3469,14 +3740,27 @@ L_089C9060: aot_gpr_4 = (2232u << 16u); aot_gpr_31 = (0x089C906Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-3928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 280u, 0x089C906Cu, 0x089C7220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 740u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 740u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 740u, 0x089C7220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C906Cu) goto L_089C906C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C906C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C9078: @@ -3484,8 +3768,21 @@ L_089C9078: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), aot_gpr_31}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(8), aot_run_words); } aot_gpr_31 = (0x089C9090u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 282u, 0x089C9090u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9090u) goto L_089C9090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9090: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3495,27 +3792,79 @@ L_089C9090: } L_089C9098: aot_gpr_31 = (0x089C90A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 284u, 0x089C90A0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C90A0u) goto L_089C90A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C90A0: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); aot_gpr_31 = (0x089C90ACu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 285u, 0x089C90ACu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C90ACu) goto L_089C90AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C90AC: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x089C90BCu); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 286u, 0x089C90BCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C90BCu) goto L_089C90BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C90BC: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); aot_gpr_31 = (0x089C90C8u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 287u, 0x089C90C8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C90C8u) goto L_089C90C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C90C8: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -3565,22 +3914,22 @@ L_089C9130: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C9144: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C914C: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C9154: @@ -3620,8 +3969,8 @@ L_089C9178: goto L_089C917C; L_089C917C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C9184: @@ -3685,8 +4034,8 @@ L_089C9184: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(52), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089C9248: @@ -3718,8 +4067,21 @@ L_089C92B4: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x089C92C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 305u, 0x089C92C0u, 0x08ABF2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 685u, 0x08ABF2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C92C0u) goto L_089C92C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C92C0: aot_gpr_4 = (3u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(8192)); @@ -3748,8 +4110,21 @@ L_089C92D4: aot_gpr_5 = (aot_gpr_5 + static_cast(-6992)); ctx.gpr[18] = (ctx.gpr[18] + aot_gpr_5); aot_gpr_31 = (0x089C931Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 307u, 0x089C931Cu, 0x08960450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C931Cu) goto L_089C931C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C931C: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3768,8 +4143,21 @@ L_089C931C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-5336))); aot_gpr_31 = (0x089C9334u); aot_gpr_6 = (ctx.gpr[29] + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 308u, 0x089C9334u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9334u) goto L_089C9334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9334: aot_gpr_31 = (0x089C933Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C933Cu) goto L_089C933C; @@ -3829,8 +4217,21 @@ L_089C9378: } L_089C9388: aot_gpr_31 = (0x089C9390u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 317u, 0x089C9390u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9390u) goto L_089C9390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9390: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3890,8 +4291,21 @@ L_089C93F0: L_089C93F8: aot_gpr_31 = (0x089C9400u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 325u, 0x089C9400u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9400u) goto L_089C9400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9400: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3980,8 +4394,21 @@ L_089C94C0: { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fpr[28] = ctx.fpr[28] + aot_fpr_12; aot_gpr_31 = (0x089C94F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 334u, 0x089C94F0u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C94F0u) goto L_089C94F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C94F0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4004,8 +4431,21 @@ L_089C9500: L_089C950C: aot_gpr_31 = (0x089C9514u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 338u, 0x089C9514u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9514u) goto L_089C9514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9514: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4061,8 +4501,21 @@ L_089C9554: goto L_089C955C; L_089C955C: aot_gpr_31 = (0x089C9564u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 346u, 0x089C9564u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9564u) goto L_089C9564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9564: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4096,8 +4549,21 @@ L_089C9588: L_089C958C: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(4256))); aot_gpr_31 = (0x089C9598u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 352u, 0x089C9598u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9598u) goto L_089C9598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9598: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4606,8 +5072,21 @@ L_089C9908: ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089C993Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 419u, 0x089C993Cu, 0x0897AD4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 379u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 379u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 379u, 0x0897AD4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C993Cu) goto L_089C993C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C993C: aot_gpr_4 = (0u < aot_gpr_2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4628,15 +5107,41 @@ L_089C9954: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-5336))); aot_gpr_31 = (0x089C9960u); aot_gpr_5 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 422u, 0x089C9960u, 0x08A8E2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 433u, 0x08A8E2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9960u) goto L_089C9960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9960: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-5336))); aot_gpr_31 = (0x089C9970u); aot_gpr_5 = (ctx.gpr[29] + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 423u, 0x089C9970u, 0x08A8E2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 433u, 0x08A8E2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9970u) goto L_089C9970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9970: { const bool branch_taken = ctx.gpr[30] == aot_gpr_2; if (branch_taken) { @@ -4656,8 +5161,21 @@ L_089C9980: aot_gpr_5 = (ctx.gpr[29] + static_cast(48)); aot_gpr_31 = (0x089C9990u); aot_gpr_6 = (ctx.gpr[29] + static_cast(198)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 426u, 0x089C9990u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9990u) goto L_089C9990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9990: ctx.gpr[23] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[23]) < 9 ? 1u : 0u); @@ -5001,8 +5519,21 @@ L_089C9C30: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089C9C48u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 467u, 0x089C9C48u, 0x08978B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 91u, 0x08978B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9C48u) goto L_089C9C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9C48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(-1044))); aot_gpr_5 = (0u | 4u); @@ -5060,8 +5591,21 @@ L_089C9CA4: aot_gpr_4 = (ctx.gpr[29] + static_cast(48)); aot_gpr_31 = (0x089C9CB0u); aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(150))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 474u, 0x089C9CB0u, 0x089CD130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 209u, 0x089CD130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9CB0u) goto L_089C9CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9CB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5119,8 +5663,21 @@ L_089C9CE4: } L_089C9D04: aot_gpr_31 = (0x089C9D0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 482u, 0x089C9D0Cu, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9D0Cu) goto L_089C9D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9D0C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5147,15 +5704,41 @@ L_089C9D14: L_089C9D4C: aot_gpr_31 = (0x089C9D54u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 485u, 0x089C9D54u, 0x0894855Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 82u, 0x0894855Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9D54u) goto L_089C9D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9D54: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089C9D64u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 486u, 0x089C9D64u, 0x089F2404u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 394u, 0x089F2404u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9D64u) goto L_089C9D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9D64: aot_gpr_4 = (ctx.gpr[29] + static_cast(272)); ctx.gpr[7] = (2205u << 16u); @@ -5164,8 +5747,21 @@ L_089C9D64: aot_gpr_6 = (0u | 64u); aot_gpr_31 = (0x089C9D80u); ctx.gpr[8] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 487u, 0x089C9D80u, 0x08B6095Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 115u, 0x08B6095Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9D80u) goto L_089C9D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9D80: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1920))); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(2192), aot_gpr_5); @@ -5324,8 +5920,21 @@ L_089C9E74: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x089C9E98u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 499u, 0x089C9E98u, 0x089CD854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 293u, 0x089CD854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9E98u) goto L_089C9E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9E98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5360,8 +5969,21 @@ L_089C9EBC: L_089C9EC4: aot_gpr_31 = (0x089C9ECCu); aot_gpr_4 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 504u, 0x089C9ECCu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9ECCu) goto L_089C9ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9ECC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5409,8 +6031,21 @@ L_089C9F08: L_089C9F14: aot_gpr_31 = (0x089C9F1Cu); aot_gpr_4 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 510u, 0x089C9F1Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9F1Cu) goto L_089C9F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9F1C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5437,8 +6072,21 @@ L_089C9F2C: L_089C9F38: aot_gpr_31 = (0x089C9F40u); aot_gpr_4 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 514u, 0x089C9F40u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9F40u) goto L_089C9F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9F40: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5454,8 +6102,21 @@ L_089C9F48: L_089C9F50: aot_gpr_31 = (0x089C9F58u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 517u, 0x089C9F58u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9F58u) goto L_089C9F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9F58: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5482,8 +6143,21 @@ L_089C9F68: L_089C9F74: aot_gpr_31 = (0x089C9F7Cu); aot_gpr_4 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 521u, 0x089C9F7Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9F7Cu) goto L_089C9F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9F7C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5499,8 +6173,21 @@ L_089C9F84: L_089C9F8C: aot_gpr_31 = (0x089C9F94u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 524u, 0x089C9F94u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9F94u) goto L_089C9F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9F94: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5527,8 +6214,21 @@ L_089C9FA4: L_089C9FB0: aot_gpr_31 = (0x089C9FB8u); aot_gpr_4 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 528u, 0x089C9FB8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9FB8u) goto L_089C9FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9FB8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5544,8 +6244,21 @@ L_089C9FC0: L_089C9FC8: aot_gpr_31 = (0x089C9FD0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 531u, 0x089C9FD0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9FD0u) goto L_089C9FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9FD0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5561,8 +6274,21 @@ L_089C9FD8: L_089C9FE0: aot_gpr_31 = (0x089C9FE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 534u, 0x089C9FE8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089C9FE8u) goto L_089C9FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089C9FE8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5721,8 +6447,21 @@ L_089CA108: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x089CA120u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 556u, 0x089CA120u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA120u) goto L_089CA120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA120: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5767,8 +6506,21 @@ L_089CA148: aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089CA168u); aot_gpr_4 = (ctx.gpr[29] + static_cast(156)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 561u, 0x089CA168u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA168u) goto L_089CA168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA168: aot_gpr_4 = (16179u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -6067,8 +6819,21 @@ L_089CA2F4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); aot_gpr_31 = (0x089CA360u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 585u, 0x089CA360u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA360u) goto L_089CA360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA360: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(2320))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6134,8 +6899,21 @@ L_089CA3C4: aot_gpr_6 = (ctx.gpr[29] + static_cast(2324)); aot_gpr_31 = (0x089CA3ECu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 592u, 0x089CA3ECu, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA3ECu) goto L_089CA3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA3EC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6254,8 +7032,21 @@ L_089CA4C0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CA4D8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 606u, 0x089CA4D8u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA4D8u) goto L_089CA4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA4D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6270,8 +7061,21 @@ L_089CA4E0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CA4F8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 608u, 0x089CA4F8u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA4F8u) goto L_089CA4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA4F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6301,8 +7105,21 @@ L_089CA51C: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x089CA540u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 612u, 0x089CA540u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA540u) goto L_089CA540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA540: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_28 + static_cast(7656))); @@ -6341,8 +7158,21 @@ L_089CA580: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089CA58Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 617u, 0x089CA58Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA58Cu) goto L_089CA58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA58C: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -6425,8 +7255,21 @@ L_089CA60C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089CA618u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 623u, 0x089CA618u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA618u) goto L_089CA618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA618: { const bool branch_taken = ctx.gpr[22] == 0u; if (branch_taken) { @@ -6465,20 +7308,59 @@ L_089CA64C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089CA658u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 628u, 0x089CA658u, 0x0890DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 475u, 0x0890DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA658u) goto L_089CA658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA658: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089CA664u); aot_gpr_5 = (0u | 37u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 629u, 0x089CA664u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA664u) goto L_089CA664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA664: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089CA670u); aot_gpr_5 = (0u | 37u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 630u, 0x089CA670u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA670u) goto L_089CA670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA670: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6493,8 +7375,21 @@ L_089CA67C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(80))); aot_gpr_31 = (0x089CA688u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 633u, 0x089CA688u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA688u) goto L_089CA688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA688: aot_gpr_4 = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(aot_gpr_4) ? 1u : 0u); @@ -6569,8 +7464,8 @@ L_089CA6CC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(2480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CA714: @@ -6585,8 +7480,21 @@ L_089CA714: ctx.gpr[22] = (ctx.gpr[29] + static_cast(96)); aot_gpr_31 = (0x089CA760u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 642u, 0x089CA760u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA760u) goto L_089CA760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA760: ctx.gpr[21] = (0u | 0u); aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); @@ -6607,8 +7515,21 @@ L_089CA760: aot_gpr_6 = (ctx.gpr[29] + static_cast(16)); aot_gpr_31 = (0x089CA780u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 643u, 0x089CA780u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CA780u) goto L_089CA780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CA780: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); aot_gpr_5 = (static_cast(aot_gpr_4) < 195 ? 1u : 0u); @@ -6774,8 +7695,8 @@ L_089CA84C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3632))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CA864: @@ -7072,8 +7993,21 @@ L_089CAA64: L_089CAA6C: aot_gpr_31 = (0x089CAA74u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 700u, 0x089CAA74u, 0x08B00AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 178u, 0x08B00AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAA74u) goto L_089CAA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAA74: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7085,8 +8019,21 @@ L_089CAA74: L_089CAA7C: aot_gpr_31 = (0x089CAA84u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 702u, 0x089CAA84u, 0x08B00B98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 193u, 0x08B00B98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAA84u) goto L_089CAA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAA84: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7282,8 +8229,21 @@ L_089CAC14: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); aot_gpr_31 = (0x089CAC20u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 726u, 0x089CAC20u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAC20u) goto L_089CAC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAC20: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -7314,8 +8274,8 @@ L_089CAC38: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CAC6C: @@ -7342,16 +8302,29 @@ L_089CACAC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3560))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CACC8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089CACD4u); aot_gpr_4 = (0u | 2384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 732u, 0x089CACD4u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CACD4u) goto L_089CACD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CACD4: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -7365,8 +8338,21 @@ L_089CACE0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089CACECu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 734u, 0x089CACECu, 0x089E2490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 453u, 0x089E2490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CACECu) goto L_089CACEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CACEC: ctx.gpr[18] = (ctx.gpr[21] | 0u); goto L_089CACF0; @@ -7398,8 +8384,21 @@ L_089CACF0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089CAD28u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 736u, 0x089CAD28u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAD28u) goto L_089CAD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAD28: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -7409,13 +8408,39 @@ L_089CAD28: } aot_gpr_31 = (0x089CAD3Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 737u, 0x089CAD3Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAD3Cu) goto L_089CAD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAD3C: aot_gpr_31 = (0x089CAD44u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 738u, 0x089CAD44u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAD44u) goto L_089CAD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAD44: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-11828))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7527,8 +8552,21 @@ L_089CADD8: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089CADE8u); aot_gpr_6 = (0u | 25001u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 753u, 0x089CADE8u, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CADE8u) goto L_089CADE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CADE8: aot_gpr_31 = (0x089CADF0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7538,8 +8576,21 @@ L_089CADF0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(104))); aot_gpr_31 = (0x089CADFCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 755u, 0x089CADFCu, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CADFCu) goto L_089CADFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CADFC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7558,8 +8609,21 @@ L_089CAE08: L_089CAE10: aot_gpr_31 = (0x089CAE18u); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 758u, 0x089CAE18u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAE18u) goto L_089CAE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAE18: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7571,8 +8635,21 @@ L_089CAE18: L_089CAE24: aot_gpr_31 = (0x089CAE2Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 760u, 0x089CAE2Cu, 0x089D2B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 483u, 0x089D2B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAE2Cu) goto L_089CAE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAE2C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -7585,8 +8662,21 @@ L_089CAE34: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x089CAE40u); aot_gpr_4 = (0u | 2352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 762u, 0x089CAE40u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAE40u) goto L_089CAE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAE40: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -7600,8 +8690,21 @@ L_089CAE4C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089CAE58u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 764u, 0x089CAE58u, 0x08A31EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 437u, 0x08A31EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAE58u) goto L_089CAE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAE58: ctx.gpr[20] = (ctx.gpr[21] | 0u); goto L_089CAE5C; @@ -7634,8 +8737,21 @@ L_089CAE5C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089CAE98u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 766u, 0x089CAE98u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAE98u) goto L_089CAE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAE98: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(16), aot_run_words); @@ -7645,13 +8761,39 @@ L_089CAE98: } aot_gpr_31 = (0x089CAEACu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 767u, 0x089CAEACu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAEACu) goto L_089CAEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAEAC: aot_gpr_31 = (0x089CAEB4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 768u, 0x089CAEB4u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAEB4u) goto L_089CAEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAEB4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7670,8 +8812,21 @@ L_089CAEC0: L_089CAEC8: aot_gpr_31 = (0x089CAED0u); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 771u, 0x089CAED0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAED0u) goto L_089CAED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAED0: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7683,8 +8838,21 @@ L_089CAED0: L_089CAEDC: aot_gpr_31 = (0x089CAEE4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 773u, 0x089CAEE4u, 0x089D2B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 483u, 0x089D2B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAEE4u) goto L_089CAEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAEE4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[20] | 0u); @@ -7697,8 +8865,21 @@ L_089CAEEC: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x089CAEF8u); aot_gpr_4 = (0u | 2320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 775u, 0x089CAEF8u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAEF8u) goto L_089CAEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAEF8: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7711,8 +8892,21 @@ L_089CAEF8: L_089CAF04: aot_gpr_31 = (0x089CAF0Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 777u, 0x089CAF0Cu, 0x08B219ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 300u, 0x08B219ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAF0Cu) goto L_089CAF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAF0C: ctx.gpr[16] = (ctx.gpr[18] | 0u); goto L_089CAF10; @@ -7745,8 +8939,21 @@ L_089CAF10: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089CAF4Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 779u, 0x089CAF4Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAF4Cu) goto L_089CAF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAF4C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(32), aot_run_words); @@ -7756,13 +8963,39 @@ L_089CAF4C: } aot_gpr_31 = (0x089CAF60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 780u, 0x089CAF60u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAF60u) goto L_089CAF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAF60: aot_gpr_31 = (0x089CAF68u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 781u, 0x089CAF68u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAF68u) goto L_089CAF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAF68: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7781,8 +9014,21 @@ L_089CAF74: L_089CAF7C: aot_gpr_31 = (0x089CAF84u); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 784u, 0x089CAF84u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAF84u) goto L_089CAF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAF84: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7794,8 +9040,21 @@ L_089CAF84: L_089CAF90: aot_gpr_31 = (0x089CAF98u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 786u, 0x089CAF98u, 0x089D2B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 483u, 0x089D2B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAF98u) goto L_089CAF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAF98: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[16] | 0u); @@ -7808,8 +9067,21 @@ L_089CAFA0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089CAFACu); aot_gpr_4 = (0u | 2320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 788u, 0x089CAFACu, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAFACu) goto L_089CAFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAFAC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7822,8 +9094,21 @@ L_089CAFAC: L_089CAFB8: aot_gpr_31 = (0x089CAFC0u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 790u, 0x089CAFC0u, 0x08B219ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 300u, 0x08B219ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CAFC0u) goto L_089CAFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CAFC0: ctx.gpr[18] = (ctx.gpr[16] | 0u); goto L_089CAFC4; @@ -7856,8 +9141,21 @@ L_089CAFC4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089CB000u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 792u, 0x089CB000u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB000u) goto L_089CB000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB000: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(48), aot_run_words); @@ -7867,13 +9165,39 @@ L_089CB000: } aot_gpr_31 = (0x089CB014u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 793u, 0x089CB014u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB014u) goto L_089CB014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB014: aot_gpr_31 = (0x089CB01Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 794u, 0x089CB01Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB01Cu) goto L_089CB01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB01C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7892,8 +9216,21 @@ L_089CB028: L_089CB030: aot_gpr_31 = (0x089CB038u); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 797u, 0x089CB038u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB038u) goto L_089CB038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB038: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7905,8 +9242,21 @@ L_089CB038: L_089CB044: aot_gpr_31 = (0x089CB04Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 799u, 0x089CB04Cu, 0x089D2B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 483u, 0x089D2B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB04Cu) goto L_089CB04C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB04C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -7919,8 +9269,21 @@ L_089CB054: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089CB060u); aot_gpr_4 = (0u | 2384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 801u, 0x089CB060u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB060u) goto L_089CB060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB060: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -7934,8 +9297,21 @@ L_089CB06C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089CB078u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 803u, 0x089CB078u, 0x089E2490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 453u, 0x089E2490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB078u) goto L_089CB078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB078: ctx.gpr[18] = (ctx.gpr[21] | 0u); goto L_089CB07C; @@ -7968,8 +9344,21 @@ L_089CB07C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089CB0B8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 805u, 0x089CB0B8u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB0B8u) goto L_089CB0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB0B8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(64), aot_run_words); @@ -7979,13 +9368,39 @@ L_089CB0B8: } aot_gpr_31 = (0x089CB0CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 806u, 0x089CB0CCu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB0CCu) goto L_089CB0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB0CC: aot_gpr_31 = (0x089CB0D4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 807u, 0x089CB0D4u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB0D4u) goto L_089CB0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB0D4: aot_gpr_31 = (0x089CB0DCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], aot_gpr_28, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB0DCu) goto L_089CB0DC; @@ -8039,8 +9454,21 @@ L_089CB14C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089CB15Cu); aot_gpr_6 = (0u | 25001u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 813u, 0x089CB15Cu, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB15Cu) goto L_089CB15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB15C: aot_gpr_31 = (0x089CB164u); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -8050,8 +9478,21 @@ L_089CB164: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(104))); aot_gpr_31 = (0x089CB170u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 815u, 0x089CB170u, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB170u) goto L_089CB170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB170: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8070,8 +9511,21 @@ L_089CB17C: L_089CB184: aot_gpr_31 = (0x089CB18Cu); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 818u, 0x089CB18Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB18Cu) goto L_089CB18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB18C: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8083,8 +9537,21 @@ L_089CB18C: L_089CB198: aot_gpr_31 = (0x089CB1A0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 820u, 0x089CB1A0u, 0x089D2B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 483u, 0x089D2B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB1A0u) goto L_089CB1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB1A0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -8097,8 +9564,21 @@ L_089CB1A8: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x089CB1B4u); aot_gpr_4 = (0u | 2384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 822u, 0x089CB1B4u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB1B4u) goto L_089CB1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB1B4: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8112,8 +9592,21 @@ L_089CB1C0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089CB1CCu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 824u, 0x089CB1CCu, 0x089E2490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 453u, 0x089E2490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB1CCu) goto L_089CB1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB1CC: ctx.gpr[21] = (ctx.gpr[18] | 0u); goto L_089CB1D0; @@ -8146,8 +9639,21 @@ L_089CB1D0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089CB20Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 826u, 0x089CB20Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB20Cu) goto L_089CB20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB20C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(80), aot_run_words); @@ -8157,13 +9663,39 @@ L_089CB20C: } aot_gpr_31 = (0x089CB220u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 827u, 0x089CB220u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB220u) goto L_089CB220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB220: aot_gpr_31 = (0x089CB228u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 828u, 0x089CB228u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB228u) goto L_089CB228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB228: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-11828))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8185,8 +9717,21 @@ L_089CB23C: aot_gpr_5 = (0u | 19u); aot_gpr_31 = (0x089CB24Cu); aot_gpr_6 = (0u | 25001u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 831u, 0x089CB24Cu, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB24Cu) goto L_089CB24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB24C: aot_gpr_31 = (0x089CB254u); aot_gpr_4 = (0u | 19u); @@ -8196,8 +9741,21 @@ L_089CB254: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(104))); aot_gpr_31 = (0x089CB260u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 833u, 0x089CB260u, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB260u) goto L_089CB260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB260: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8216,8 +9774,21 @@ L_089CB26C: L_089CB274: aot_gpr_31 = (0x089CB27Cu); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 836u, 0x089CB27Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB27Cu) goto L_089CB27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB27C: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8229,8 +9800,21 @@ L_089CB27C: L_089CB288: aot_gpr_31 = (0x089CB290u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 838u, 0x089CB290u, 0x089D2B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 483u, 0x089D2B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB290u) goto L_089CB290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB290: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[21] | 0u); @@ -8244,8 +9828,21 @@ L_089CB298: aot_gpr_4 = (aot_gpr_4 + static_cast(-3876)); aot_gpr_31 = (0x089CB2A8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 840u, 0x089CB2A8u, 0x089C7220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 740u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 740u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 740u, 0x089C7220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB2A8u) goto L_089CB2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB2A8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -8267,8 +9864,8 @@ L_089CB2B0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CB2D4: @@ -8284,8 +9881,21 @@ L_089CB2D4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_28 + static_cast(7800))); aot_gpr_31 = (0x089CB33Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(180), ctx.gpr[16]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 843u, 0x089CB33Cu, 0x08960450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB33Cu) goto L_089CB33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB33C: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8410,8 +10020,21 @@ L_089CB408: L_089CB414: aot_gpr_31 = (0x089CB41Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 853u, 0x089CB41Cu, 0x0882B9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 398u, 0x0882B9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB41Cu) goto L_089CB41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB41C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8578,8 +10201,21 @@ L_089CB4EC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089CB4F8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 861u, 0x089CB4F8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB4F8u) goto L_089CB4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB4F8: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -8624,8 +10260,21 @@ L_089CB534: L_089CB544: aot_gpr_31 = (0x089CB54Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 867u, 0x089CB54Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB54Cu) goto L_089CB54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB54C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8649,8 +10298,21 @@ L_089CB568: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089CB574u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 871u, 0x089CB574u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB574u) goto L_089CB574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB574: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -8716,8 +10378,21 @@ L_089CB5D8: L_089CB5E0: aot_gpr_31 = (0x089CB5E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 880u, 0x089CB5E8u, 0x089C7FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 919u, 0x089C7FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB5E8u) goto L_089CB5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB5E8: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(168))); @@ -8878,8 +10553,21 @@ L_089CB6B0: } L_089CB6F0: aot_gpr_31 = (0x089CB6F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 893u, 0x089CB6F8u, 0x089C7DB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 881u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 881u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 881u, 0x089C7DB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB6F8u) goto L_089CB6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB6F8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[16]) ? 1u : 0u); @@ -8993,8 +10681,21 @@ L_089CB7C4: L_089CB7CC: aot_gpr_31 = (0x089CB7D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 907u, 0x089CB7D4u, 0x0890C798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 128u, 0x0890C798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB7D4u) goto L_089CB7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB7D4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9005,8 +10706,21 @@ L_089CB7D4: L_089CB7DC: aot_gpr_31 = (0x089CB7E4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 909u, 0x089CB7E4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB7E4u) goto L_089CB7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB7E4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9036,8 +10750,21 @@ L_089CB808: } L_089CB810: aot_gpr_31 = (0x089CB818u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 913u, 0x089CB818u, 0x08A363C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 562u, 0x08A363C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB818u) goto L_089CB818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB818: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (static_cast(ctx.gpr[16]) < 15001 ? 1u : 0u); @@ -9070,8 +10797,21 @@ L_089CB834: L_089CB844: aot_gpr_31 = (0x089CB84Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 918u, 0x089CB84Cu, 0x0894530Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 191u, 0x0894530Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB84Cu) goto L_089CB84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB84C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9082,8 +10822,21 @@ L_089CB84C: L_089CB854: aot_gpr_31 = (0x089CB85Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 920u, 0x089CB85Cu, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB85Cu) goto L_089CB85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB85C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9237,8 +10990,21 @@ L_089CB980: L_089CB994: aot_gpr_31 = (0x089CB99Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 938u, 0x089CB99Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CB99Cu) goto L_089CB99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CB99C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9506,8 +11272,21 @@ L_089CBBD8: L_089CBBDC: aot_gpr_31 = (0x089CBBE4u); aot_gpr_5 = (ctx.gpr[16] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 968u, 0x089CBBE4u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CBBE4u) goto L_089CBBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CBBE4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(100))); @@ -9523,8 +11302,21 @@ L_089CBBFC: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x089CBC08u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 970u, 0x089CBC08u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CBC08u) goto L_089CBC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CBC08: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9537,8 +11329,21 @@ L_089CBC14: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CBC20u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 972u, 0x089CBC20u, 0x08824560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 59u, 0x08824560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CBC20u) goto L_089CBC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CBC20: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9688,8 +11493,21 @@ L_089CBCBC: ctx.gpr[11] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089CBD68u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 983u, 0x089CBD68u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CBD68u) goto L_089CBD68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CBD68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9771,8 +11589,21 @@ L_089CBD88: ctx.gpr[11] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089CBE34u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 988u, 0x089CBE34u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CBE34u) goto L_089CBE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CBE34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9832,8 +11663,21 @@ L_089CBE3C: ctx.gpr[11] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089CBEE8u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 990u, 0x089CBEE8u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CBEE8u) goto L_089CBEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CBEE8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_5 = (0u + static_cast(-1)); @@ -9846,8 +11690,21 @@ L_089CBEE8: L_089CBEF8: aot_gpr_31 = (0x089CBF00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 992u, 0x089CBF00u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CBF00u) goto L_089CBF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CBF00: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9868,8 +11725,21 @@ L_089CBF08: L_089CBF18: aot_gpr_31 = (0x089CBF20u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0113->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0113_entry, 995u, 0x089CBF20u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CBF20u) goto L_089CBF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CBF20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(188))); aot_gpr_5 = (ctx.gpr[22] | 0u); @@ -9906,8 +11776,8 @@ L_089CBF40: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CBF88: diff --git a/profiles/vcs/generated/generated_unit_0114.cpp b/profiles/vcs/generated/generated_unit_0114.cpp index 416f97b..403d166 100644 --- a/profiles/vcs/generated/generated_unit_0114.cpp +++ b/profiles/vcs/generated/generated_unit_0114.cpp @@ -796,6 +796,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089CC000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -953,8 +977,21 @@ L_089CC124: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089CC17Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 14u, 0x089CC17Cu, 0x089C71F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 739u, 0x089C71F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC17Cu) goto L_089CC17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC17C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1032,8 +1069,21 @@ L_089CC20C: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089CC218u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 21u, 0x089CC218u, 0x08AD044Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 46u, 0x08AD044Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC218u) goto L_089CC218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC218: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1105,8 +1155,21 @@ L_089CC298: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089CC2A4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 29u, 0x089CC2A4u, 0x08AD044Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 46u, 0x08AD044Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC2A4u) goto L_089CC2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC2A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1200,8 +1263,8 @@ L_089CC33C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CC370: @@ -1376,8 +1439,21 @@ L_089CC494: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089CC4C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 46u, 0x089CC4C8u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC4C8u) goto L_089CC4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC4C8: aot_gpr_4 = (16928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1402,8 +1478,21 @@ L_089CC4EC: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x089CC500u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 49u, 0x089CC500u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC500u) goto L_089CC500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC500: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1415,8 +1504,21 @@ L_089CC508: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x089CC514u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 51u, 0x089CC514u, 0x08910B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 194u, 0x08910B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC514u) goto L_089CC514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC514: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); @@ -1543,8 +1645,21 @@ L_089CC5F0: aot_fpr_14 = aot_fpr_14 + ctx.fpr[30]; aot_gpr_31 = (0x089CC664u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 62u, 0x089CC664u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC664u) goto L_089CC664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC664: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[30]; aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(64))); @@ -1592,8 +1707,21 @@ L_089CC6AC: goto L_089CC6B8; L_089CC6B8: aot_gpr_31 = (0x089CC6C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 67u, 0x089CC6C0u, 0x089C849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 67u, 0x089C849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC6C0u) goto L_089CC6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC6C0: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -1662,8 +1790,21 @@ L_089CC728: aot_gpr_6 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x089CC750u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 75u, 0x089CC750u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC750u) goto L_089CC750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC750: ctx.gpr[19] = (0u | 0u); aot_gpr_6 = (0u | 0u); @@ -1766,8 +1907,21 @@ L_089CC7D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089CC804u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 87u, 0x089CC804u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC804u) goto L_089CC804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC804: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089CC808; @@ -1829,8 +1983,21 @@ L_089CC858: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CC870u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 96u, 0x089CC870u, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC870u) goto L_089CC870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC870: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1850,8 +2017,21 @@ L_089CC87C: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x089CC8A4u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 98u, 0x089CC8A4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC8A4u) goto L_089CC8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC8A4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(140))); @@ -1877,8 +2057,21 @@ L_089CC8E4: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1934), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089CC8F8u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 100u, 0x089CC8F8u, 0x08A87764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 536u, 0x08A87764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC8F8u) goto L_089CC8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC8F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1895,8 +2088,21 @@ L_089CC90C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); aot_gpr_31 = (0x089CC918u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 103u, 0x089CC918u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC918u) goto L_089CC918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC918: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1907,8 +2113,21 @@ L_089CC918: L_089CC920: aot_gpr_31 = (0x089CC928u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 105u, 0x089CC928u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC928u) goto L_089CC928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC928: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -1940,8 +2159,21 @@ L_089CC948: L_089CC958: aot_gpr_31 = (0x089CC960u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 109u, 0x089CC960u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC960u) goto L_089CC960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC960: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -1994,15 +2226,41 @@ L_089CC9BC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_31 = (0x089CC9CCu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 115u, 0x089CC9CCu, 0x0890C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 65u, 0x0890C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC9CCu) goto L_089CC9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC9CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_gpr_31 = (0x089CC9DCu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 116u, 0x089CC9DCu, 0x0890C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 65u, 0x0890C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CC9DCu) goto L_089CC9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CC9DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2041,8 +2299,21 @@ L_089CCA0C: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x089CCA30u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 121u, 0x089CCA30u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCA30u) goto L_089CCA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCA30: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); goto L_089CCA34; @@ -2100,20 +2371,59 @@ L_089CCA60: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x089CCAACu); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 127u, 0x089CCAACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCAACu) goto L_089CCAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCAAC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CCAB8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 128u, 0x089CCAB8u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCAB8u) goto L_089CCAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCAB8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CCAC4u); aot_gpr_5 = (0u | 37u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 129u, 0x089CCAC4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCAC4u) goto L_089CCAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCAC4: { const bool branch_taken = ctx.gpr[30] != 0u; if (branch_taken) { @@ -2140,8 +2450,21 @@ L_089CCAF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_31 = (0x089CCAFCu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 132u, 0x089CCAFCu, 0x0890DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 475u, 0x0890DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCAFCu) goto L_089CCAFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCAFC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(aot_gpr_16) ? 1u : 0u); @@ -2174,8 +2497,8 @@ L_089CCB0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CCB54: @@ -2302,8 +2625,21 @@ L_089CCBFC: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089CCC30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 139u, 0x089CCC30u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCC30u) goto L_089CCC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCC30: aot_gpr_4 = (16928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2328,8 +2664,21 @@ L_089CCC54: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x089CCC68u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 142u, 0x089CCC68u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCC68u) goto L_089CCC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCC68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2349,8 +2698,21 @@ L_089CCC70: aot_fpr_14 = aot_fpr_14 + aot_fpr_20; aot_gpr_31 = (0x089CCC90u); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 144u, 0x089CCC90u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCC90u) goto L_089CCC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCC90: ctx.fpr[22] = ctx.fpr[0] + aot_fpr_20; aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); @@ -2399,8 +2761,21 @@ L_089CCCCC: L_089CCCD4: aot_gpr_31 = (0x089CCCDCu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 151u, 0x089CCCDCu, 0x089C849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 67u, 0x089C849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCCDCu) goto L_089CCCDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCCDC: ctx.gpr[22] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -2447,8 +2822,21 @@ L_089CCD20: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CCD4Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 156u, 0x089CCD4Cu, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCD4Cu) goto L_089CCD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCD4C: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -2461,8 +2849,21 @@ L_089CCD58: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089CCD64u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 158u, 0x089CCD64u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCD64u) goto L_089CCD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCD64: aot_gpr_31 = (0x089CCD6Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCD6Cu) goto L_089CCD6C; @@ -2485,8 +2886,21 @@ L_089CCD80: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x089CCDA4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 161u, 0x089CCDA4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCDA4u) goto L_089CCDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCDA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(460))); aot_gpr_5 = (2u << 16u); @@ -2544,8 +2958,21 @@ L_089CCE20: aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(1934), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089CCE30u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 167u, 0x089CCE30u, 0x08A87764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 536u, 0x08A87764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCE30u) goto L_089CCE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCE30: if (ctx.gpr[2] == 0u) { aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(172), aot_gpr_16); @@ -2577,8 +3004,21 @@ L_089CCE60: L_089CCE68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_gpr_31 = (0x089CCE74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 172u, 0x089CCE74u, 0x089C849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 67u, 0x089C849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCE74u) goto L_089CCE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCE74: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -2632,8 +3072,21 @@ L_089CCEC0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CCEECu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 178u, 0x089CCEECu, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCEECu) goto L_089CCEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCEEC: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2647,14 +3100,40 @@ L_089CCEF8: aot_gpr_5 = (0u | 15u); aot_gpr_31 = (0x089CCF08u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 180u, 0x089CCF08u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCF08u) goto L_089CCF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCF08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CCF14u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 181u, 0x089CCF14u, 0x08AC5410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 391u, 0x08AC5410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCF14u) goto L_089CCF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCF14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(164))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(-183))); @@ -2675,8 +3154,21 @@ L_089CCF3C: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x089CCF54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 183u, 0x089CCF54u, 0x08AC5124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 370u, 0x08AC5124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCF54u) goto L_089CCF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCF54: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -2687,8 +3179,21 @@ L_089CCF54: aot_fpr_14 = aot_fpr_14 + aot_fpr_20; aot_gpr_31 = (0x089CCF6Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 184u, 0x089CCF6Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCF6Cu) goto L_089CCF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCF6C: aot_fpr_12 = ctx.fpr[0] + aot_fpr_20; aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); @@ -2710,8 +3215,21 @@ L_089CCF84: L_089CCF94: aot_gpr_31 = (0x089CCF9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 187u, 0x089CCF9Cu, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCF9Cu) goto L_089CCF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCF9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2733,8 +3251,21 @@ L_089CCFA4: L_089CCFC0: aot_gpr_31 = (0x089CCFC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 190u, 0x089CCFC8u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CCFC8u) goto L_089CCFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CCFC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2758,8 +3289,21 @@ L_089CCFD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089CD010u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 192u, 0x089CD010u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD010u) goto L_089CD010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD010: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2770,8 +3314,21 @@ L_089CD010: L_089CD018: aot_gpr_31 = (0x089CD020u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 194u, 0x089CD020u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD020u) goto L_089CD020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD020: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2789,8 +3346,21 @@ L_089CD028: ctx.gpr[19] = (ctx.gpr[19] + static_cast(4)); aot_gpr_31 = (0x089CD050u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 196u, 0x089CD050u, 0x08A87764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 536u, 0x08A87764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD050u) goto L_089CD050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD050: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2807,8 +3377,21 @@ L_089CD064: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x089CD070u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 199u, 0x089CD070u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD070u) goto L_089CD070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD070: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(172))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -2840,8 +3423,21 @@ L_089CD090: L_089CD0A0: aot_gpr_31 = (0x089CD0A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(40))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 203u, 0x089CD0A8u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD0A8u) goto L_089CD0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD0A8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -2873,8 +3469,21 @@ L_089CD0D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x089CD0DCu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 207u, 0x089CD0DCu, 0x0890DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 475u, 0x0890DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD0DCu) goto L_089CD0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD0DC: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -2906,8 +3515,8 @@ L_089CD0EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CD130: @@ -3106,8 +3715,21 @@ L_089CD2A0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089CD2D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 219u, 0x089CD2D4u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD2D4u) goto L_089CD2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD2D4: aot_gpr_4 = (16928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3132,8 +3754,21 @@ L_089CD2F8: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x089CD30Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 222u, 0x089CD30Cu, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD30Cu) goto L_089CD30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD30C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3228,8 +3863,21 @@ L_089CD380: aot_fpr_14 = aot_fpr_14 + ctx.fpr[26]; aot_gpr_31 = (0x089CD404u); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 230u, 0x089CD404u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD404u) goto L_089CD404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD404: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[26]; aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(80))); @@ -3277,8 +3925,21 @@ L_089CD44C: goto L_089CD458; L_089CD458: aot_gpr_31 = (0x089CD460u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 235u, 0x089CD460u, 0x089C81D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 31u, 0x089C81D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD460u) goto L_089CD460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD460: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -3364,8 +4025,21 @@ L_089CD4EC: aot_gpr_6 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x089CD514u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 245u, 0x089CD514u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD514u) goto L_089CD514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD514: ctx.gpr[20] = (0u | 0u); aot_gpr_6 = (0u | 0u); @@ -3468,8 +4142,21 @@ L_089CD59C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089CD5C8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 257u, 0x089CD5C8u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD5C8u) goto L_089CD5C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD5C8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089CD5CC; @@ -3531,8 +4218,21 @@ L_089CD61C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CD634u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 266u, 0x089CD634u, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD634u) goto L_089CD634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD634: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3552,8 +4252,21 @@ L_089CD640: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x089CD668u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 268u, 0x089CD668u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD668u) goto L_089CD668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD668: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); @@ -3561,8 +4274,21 @@ L_089CD668: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x089CD680u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 269u, 0x089CD680u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD680u) goto L_089CD680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD680: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3573,8 +4299,21 @@ L_089CD680: L_089CD688: aot_gpr_31 = (0x089CD690u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 271u, 0x089CD690u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD690u) goto L_089CD690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD690: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -3606,8 +4345,21 @@ L_089CD6B0: L_089CD6C0: aot_gpr_31 = (0x089CD6C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 275u, 0x089CD6C8u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD6C8u) goto L_089CD6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD6C8: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -3650,15 +4402,41 @@ L_089CD710: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_31 = (0x089CD720u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 280u, 0x089CD720u, 0x0890C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 65u, 0x0890C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD720u) goto L_089CD720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD720: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); aot_gpr_31 = (0x089CD730u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 281u, 0x089CD730u, 0x0890C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 65u, 0x0890C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD730u) goto L_089CD730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD730: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); ctx.gpr[20] = (ctx.gpr[20] + static_cast(4)); @@ -3713,20 +4491,59 @@ L_089CD75C: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x089CD7A8u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 286u, 0x089CD7A8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD7A8u) goto L_089CD7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD7A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CD7B4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 287u, 0x089CD7B4u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD7B4u) goto L_089CD7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD7B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CD7C0u); aot_gpr_5 = (0u | 37u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 288u, 0x089CD7C0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD7C0u) goto L_089CD7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD7C0: aot_gpr_4 = (static_cast(ctx.gpr[17]) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3754,8 +4571,21 @@ L_089CD7F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_31 = (0x089CD7FCu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 291u, 0x089CD7FCu, 0x0890DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 475u, 0x0890DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD7FCu) goto L_089CD7FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD7FC: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -3788,8 +4618,8 @@ L_089CD80C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CD854: @@ -3948,8 +4778,21 @@ L_089CD910: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089CD944u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 302u, 0x089CD944u, 0x089C9078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 281u, 0x089C9078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD944u) goto L_089CD944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD944: aot_gpr_4 = (16928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3979,8 +4822,21 @@ L_089CD968: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x089CD990u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 305u, 0x089CD990u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD990u) goto L_089CD990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD990: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4000,8 +4856,21 @@ L_089CD998: aot_fpr_14 = aot_fpr_14 + aot_fpr_20; aot_gpr_31 = (0x089CD9B8u); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 307u, 0x089CD9B8u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CD9B8u) goto L_089CD9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CD9B8: ctx.fpr[22] = ctx.fpr[0] + aot_fpr_20; aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); @@ -4085,8 +4954,21 @@ L_089CDA30: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CDA5Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 317u, 0x089CDA5Cu, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDA5Cu) goto L_089CDA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDA5C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4099,8 +4981,21 @@ L_089CDA68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CDA74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 319u, 0x089CDA74u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDA74u) goto L_089CDA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDA74: aot_gpr_31 = (0x089CDA7Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDA7Cu) goto L_089CDA7C; @@ -4123,8 +5018,21 @@ L_089CDA90: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x089CDAB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 322u, 0x089CDAB4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDAB4u) goto L_089CDAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDAB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(460))); aot_gpr_5 = (2u << 16u); @@ -4133,8 +5041,21 @@ L_089CDAB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); aot_gpr_31 = (0x089CDAD0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 323u, 0x089CDAD0u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDAD0u) goto L_089CDAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDAD0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_5 = (static_cast(ctx.gpr[19]) < static_cast(aot_gpr_5) ? 1u : 0u); @@ -4202,8 +5123,21 @@ L_089CDB28: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CDB54u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 331u, 0x089CDB54u, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDB54u) goto L_089CDB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDB54: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -4231,21 +5165,60 @@ L_089CDB70: aot_gpr_5 = (0u | 15u); aot_gpr_31 = (0x089CDB80u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 335u, 0x089CDB80u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDB80u) goto L_089CDB80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDB80: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089CDB8Cu); aot_gpr_5 = (0u | 7u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 336u, 0x089CDB8Cu, 0x08AC5410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 391u, 0x08AC5410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDB8Cu) goto L_089CDB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDB8C: aot_gpr_16 = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089CDB9Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 337u, 0x089CDB9Cu, 0x08AC5124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 370u, 0x08AC5124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDB9Cu) goto L_089CDB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDB9C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); @@ -4256,8 +5229,21 @@ L_089CDB9C: aot_fpr_14 = aot_fpr_14 + aot_fpr_20; aot_gpr_31 = (0x089CDBB4u); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 338u, 0x089CDBB4u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDBB4u) goto L_089CDBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDBB4: aot_fpr_20 = ctx.fpr[0] + aot_fpr_20; aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(80))); @@ -4270,13 +5256,39 @@ L_089CDBB4: L_089CDBC4: aot_gpr_31 = (0x089CDBCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 340u, 0x089CDBCCu, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDBCCu) goto L_089CDBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDBCC: aot_gpr_31 = (0x089CDBD4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 341u, 0x089CDBD4u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDBD4u) goto L_089CDBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDBD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4309,8 +5321,21 @@ L_089CDBF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CDC38u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 344u, 0x089CDC38u, 0x08B1FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 708u, 0x08B1FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDC38u) goto L_089CDC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDC38: ctx.gpr[19] = (0u | 0u); aot_gpr_4 = (aot_gpr_29 | 0u); @@ -4347,13 +5372,39 @@ L_089CDC5C: L_089CDC64: aot_gpr_31 = (0x089CDC6Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 350u, 0x089CDC6Cu, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDC6Cu) goto L_089CDC6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDC6C: aot_gpr_31 = (0x089CDC74u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 351u, 0x089CDC74u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDC74u) goto L_089CDC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDC74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4375,8 +5426,21 @@ L_089CDC8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_gpr_31 = (0x089CDC98u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 354u, 0x089CDC98u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDC98u) goto L_089CDC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDC98: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(136), aot_run_words); @@ -4392,8 +5456,8 @@ L_089CDC98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CDCC4: @@ -4402,8 +5466,8 @@ L_089CDCC4: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CDCD8: @@ -4423,8 +5487,21 @@ L_089CDCD8: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x089CDD1Cu); aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 357u, 0x089CDD1Cu, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CDD1Cu) goto L_089CDD1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CDD1C: aot_gpr_4 = (ctx.gpr[17] + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4771,8 +5848,8 @@ L_089CDFEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE0B4: @@ -4799,8 +5876,8 @@ L_089CE0B4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE0E4: @@ -4809,8 +5886,21 @@ L_089CE0E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089CE0F8u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 376u, 0x089CE0F8u, 0x08AAC48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 74u, 0x08AAC48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE0F8u) goto L_089CE0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE0F8: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26788)); @@ -4820,8 +5910,8 @@ L_089CE0F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE118: @@ -4835,8 +5925,21 @@ L_089CE118: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CE144u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 378u, 0x089CE144u, 0x08AAC5E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 101u, 0x08AAC5E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE144u) goto L_089CE144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE144: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26788)); @@ -4872,8 +5975,21 @@ L_089CE1A0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089CE1ACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 381u, 0x089CE1ACu, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE1ACu) goto L_089CE1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE1AC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(32)); aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); @@ -4896,16 +6012,16 @@ L_089CE1BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE1DC: ctx.gpr[2] = (2205u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-7716)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE1E8: @@ -4917,8 +6033,8 @@ L_089CE1F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE204: @@ -4939,8 +6055,21 @@ L_089CE22C: L_089CE234: aot_gpr_31 = (0x089CE23Cu); ctx.gpr[19] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 389u, 0x089CE23Cu, 0x08AACA60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 139u, 0x08AACA60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE23Cu) goto L_089CE23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE23C: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[19] = (0u | 1u); @@ -4950,8 +6079,21 @@ L_089CE23C: L_089CE244: aot_gpr_31 = (0x089CE24Cu); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 391u, 0x089CE24Cu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE24Cu) goto L_089CE24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE24C: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[18] = (0u | 1u); @@ -4961,8 +6103,21 @@ L_089CE24C: L_089CE254: aot_gpr_31 = (0x089CE25Cu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 393u, 0x089CE25Cu, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE25Cu) goto L_089CE25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE25C: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -4971,8 +6126,21 @@ L_089CE25C: goto L_089CE264; L_089CE264: aot_gpr_31 = (0x089CE26Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 395u, 0x089CE26Cu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE26Cu) goto L_089CE26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE26C: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -5041,8 +6209,8 @@ L_089CE2B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE2D8: @@ -5064,14 +6232,40 @@ L_089CE2F4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x089CE308u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 409u, 0x089CE308u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE308u) goto L_089CE308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE308: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CE314u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 410u, 0x089CE314u, 0x08AACB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE314u) goto L_089CE314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE314: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5094,15 +6288,15 @@ L_089CE328: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE33C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 11u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE344: @@ -5115,8 +6309,21 @@ L_089CE344: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089CE368u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 415u, 0x089CE368u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE368u) goto L_089CE368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE368: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -5138,8 +6345,8 @@ L_089CE380: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE390: @@ -5168,8 +6375,8 @@ L_089CE3BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE3C8: @@ -5184,8 +6391,21 @@ L_089CE3C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089CE3F4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 423u, 0x089CE3F4u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE3F4u) goto L_089CE3F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE3F4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5213,8 +6433,21 @@ L_089CE40C: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x089CE43Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-8012)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 426u, 0x089CE43Cu, 0x08B6095Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 115u, 0x08B6095Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE43Cu) goto L_089CE43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE43C: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26788)); @@ -5230,8 +6463,8 @@ L_089CE44C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE460: @@ -5240,14 +6473,27 @@ L_089CE460: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089CE474u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 429u, 0x089CE474u, 0x08A7FA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 660u, 0x08A7FA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE474u) goto L_089CE474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE474: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE480: @@ -5256,8 +6502,21 @@ L_089CE480: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089CE49Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 431u, 0x089CE49Cu, 0x08AACB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 158u, 0x08AACB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE49Cu) goto L_089CE49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE49C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25400)); @@ -5265,8 +6524,21 @@ L_089CE49C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089CE4B4u); aot_gpr_4 = (0u | 384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 432u, 0x089CE4B4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE4B4u) goto L_089CE4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE4B4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5295,8 +6567,8 @@ L_089CE4CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE4EC: @@ -5308,8 +6580,21 @@ L_089CE4EC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x089CE510u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 437u, 0x089CE510u, 0x08AACB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 158u, 0x08AACB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE510u) goto L_089CE510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE510: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25400)); @@ -5319,15 +6604,41 @@ L_089CE510: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CE530u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 438u, 0x089CE530u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE530u) goto L_089CE530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE530: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(104), aot_gpr_16); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089CE540u); aot_gpr_4 = (0u | 384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 439u, 0x089CE540u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE540u) goto L_089CE540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE540: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5357,8 +6668,21 @@ L_089CE564: aot_gpr_5 = (0u | 752u); aot_gpr_31 = (0x089CE580u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 444u, 0x089CE580u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE580u) goto L_089CE580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE580: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5381,13 +6705,39 @@ L_089CE59C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CE5ACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 448u, 0x089CE5ACu, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE5ACu) goto L_089CE5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE5AC: aot_gpr_31 = (0x089CE5B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 449u, 0x089CE5B4u, 0x0888F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 562u, 0x0888F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE5B4u) goto L_089CE5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE5B4: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -5400,22 +6750,35 @@ L_089CE5B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE5D4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089CE5E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 451u, 0x089CE5E4u, 0x08AACBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 166u, 0x08AACBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE5E4u) goto L_089CE5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE5E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE5F0: @@ -5424,14 +6787,27 @@ L_089CE5F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089CE604u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 453u, 0x089CE604u, 0x08AACC08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 169u, 0x08AACC08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE604u) goto L_089CE604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE604: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE610: @@ -5469,8 +6845,21 @@ L_089CE664: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089CE674u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 457u, 0x089CE674u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE674u) goto L_089CE674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE674: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5481,8 +6870,21 @@ L_089CE680: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x089CE690u); aot_gpr_4 = (0u | 1984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 459u, 0x089CE690u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE690u) goto L_089CE690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE690: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -5508,8 +6910,21 @@ L_089CE6B8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CE6C4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 463u, 0x089CE6C4u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE6C4u) goto L_089CE6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE6C4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), ctx.gpr[21]); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); @@ -5518,8 +6933,21 @@ L_089CE6C4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CE6E0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 464u, 0x089CE6E0u, 0x08AACC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 171u, 0x08AACC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE6E0u) goto L_089CE6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE6E0: aot_gpr_4 = (0u | 0u); ctx.gpr[17] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(10)))))); @@ -5528,8 +6956,21 @@ L_089CE6E0: aot_gpr_5 = (0u | 752u); aot_gpr_31 = (0x089CE6FCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 465u, 0x089CE6FCu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE6FCu) goto L_089CE6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE6FC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5552,8 +6993,21 @@ L_089CE718: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CE728u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 469u, 0x089CE728u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE728u) goto L_089CE728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE728: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5567,8 +7021,21 @@ L_089CE730: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CE744u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 471u, 0x089CE744u, 0x08AACC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 171u, 0x08AACC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE744u) goto L_089CE744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE744: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -5583,8 +7050,8 @@ L_089CE744: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE76C: @@ -5634,8 +7101,21 @@ L_089CE7BC: aot_gpr_5 = (0u | 752u); aot_gpr_31 = (0x089CE7D8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 477u, 0x089CE7D8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE7D8u) goto L_089CE7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE7D8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5658,8 +7138,21 @@ L_089CE7F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CE804u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 481u, 0x089CE804u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE804u) goto L_089CE804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE804: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -5670,8 +7163,8 @@ L_089CE804: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE81C: @@ -5707,8 +7200,21 @@ L_089CE870: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(56)))))); aot_gpr_31 = (0x089CE888u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 484u, 0x089CE888u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE888u) goto L_089CE888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE888: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -5740,8 +7246,21 @@ L_089CE8BC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(58)))))); aot_gpr_31 = (0x089CE8D4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 488u, 0x089CE8D4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE8D4u) goto L_089CE8D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE8D4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -5749,8 +7268,21 @@ L_089CE8D4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(60)))))); aot_gpr_31 = (0x089CE8ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 489u, 0x089CE8ECu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE8ECu) goto L_089CE8EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE8EC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); @@ -5778,22 +7310,35 @@ L_089CE924: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE940: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089CE950u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 492u, 0x089CE950u, 0x08AACCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 178u, 0x08AACCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CE950u) goto L_089CE950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CE950: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE95C: @@ -5842,8 +7387,8 @@ L_089CE9C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CE9EC: @@ -5853,8 +7398,21 @@ L_089CE9EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089CEA04u); ctx.gpr[8] = (ctx.gpr[8] + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 498u, 0x089CEA04u, 0x08AACD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 182u, 0x08AACD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEA04u) goto L_089CEA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEA04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -5863,8 +7421,8 @@ L_089CEA04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CEA20: @@ -5938,14 +7496,27 @@ L_089CEB08: aot_gpr_6 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x089CEB20u); ctx.gpr[7] = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 501u, 0x089CEB20u, 0x08AACEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 206u, 0x08AACEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEB20u) goto L_089CEB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEB20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CEB2C: @@ -5991,14 +7562,27 @@ L_089CEBAC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089CEBBCu); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 504u, 0x089CEBBCu, 0x08AAD1E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 217u, 0x08AAD1E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEBBCu) goto L_089CEBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEBBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CEBC8: @@ -6007,8 +7591,21 @@ L_089CEBC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089CEBE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 506u, 0x089CEBE0u, 0x08AAD80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 264u, 0x08AAD80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEBE0u) goto L_089CEBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEBE0: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25184)); @@ -6020,8 +7617,8 @@ L_089CEBE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CEC08: @@ -6043,8 +7640,21 @@ L_089CEC24: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CEC3Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 509u, 0x089CEC3Cu, 0x08AAD844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 266u, 0x08AAD844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEC3Cu) goto L_089CEC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEC3C: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6067,8 +7677,8 @@ L_089CEC50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CEC64: @@ -6077,8 +7687,21 @@ L_089CEC64: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(168), aot_run_words); } ctx.gpr[20] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089CEC98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 513u, 0x089CEC98u, 0x08AAD8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 271u, 0x08AAD8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEC98u) goto L_089CEC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEC98: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(352))); aot_gpr_4 = (aot_gpr_16 + static_cast(10)); @@ -6100,8 +7723,21 @@ L_089CEC98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089CECE8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 514u, 0x089CECE8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CECE8u) goto L_089CECE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CECE8: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(86)))))); @@ -6132,8 +7768,21 @@ L_089CED18: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CED3Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 517u, 0x089CED3Cu, 0x08AAD9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 282u, 0x08AAD9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CED3Cu) goto L_089CED3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CED3C: ctx.gpr[20] = (aot_gpr_29 + static_cast(144)); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -6141,8 +7790,21 @@ L_089CED3C: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089CED54u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 518u, 0x089CED54u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CED54u) goto L_089CED54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CED54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(244))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(252))); @@ -6163,16 +7825,42 @@ L_089CED54: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089CED74u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 519u, 0x089CED74u, 0x08B01EA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 515u, 0x08B01EA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CED74u) goto L_089CED74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CED74: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089CED88u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 520u, 0x089CED88u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CED88u) goto L_089CED88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CED88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(240))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6206,8 +7894,21 @@ L_089CEDAC: L_089CEDBC: aot_gpr_31 = (0x089CEDC4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 524u, 0x089CEDC4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEDC4u) goto L_089CEDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEDC4: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_089CEDC8; @@ -6218,8 +7919,21 @@ L_089CEDC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x089CEDE0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 526u, 0x089CEDE0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEDE0u) goto L_089CEDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEDE0: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6260,8 +7974,21 @@ L_089CEE20: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x089CEE2Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 530u, 0x089CEE2Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEE2Cu) goto L_089CEE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEE2C: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6274,8 +8001,21 @@ L_089CEE34: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089CEE40u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 532u, 0x089CEE40u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEE40u) goto L_089CEE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEE40: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -6285,13 +8025,39 @@ L_089CEE40: } aot_gpr_31 = (0x089CEE54u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 533u, 0x089CEE54u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEE54u) goto L_089CEE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEE54: aot_gpr_31 = (0x089CEE5Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 534u, 0x089CEE5Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEE5Cu) goto L_089CEE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEE5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); if (aot_gpr_4 == 0u) { @@ -6324,8 +8090,21 @@ L_089CEE80: L_089CEE90: aot_gpr_31 = (0x089CEE98u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 538u, 0x089CEE98u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEE98u) goto L_089CEE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEE98: aot_gpr_4 = (ctx.gpr[21] + static_cast(16)); goto L_089CEE9C; @@ -6336,8 +8115,21 @@ L_089CEE9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x089CEEB4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 540u, 0x089CEEB4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEEB4u) goto L_089CEEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEEB4: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6374,8 +8166,21 @@ L_089CEEE0: } L_089CEEF0: aot_gpr_31 = (0x089CEEF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 543u, 0x089CEEF8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEEF8u) goto L_089CEEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEEF8: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6388,8 +8193,21 @@ L_089CEF00: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); aot_gpr_31 = (0x089CEF0Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 545u, 0x089CEF0Cu, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEF0Cu) goto L_089CEF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEF0C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -6399,13 +8217,39 @@ L_089CEF0C: } aot_gpr_31 = (0x089CEF20u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 546u, 0x089CEF20u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEF20u) goto L_089CEF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEF20: aot_gpr_31 = (0x089CEF28u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 547u, 0x089CEF28u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEF28u) goto L_089CEF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEF28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); goto L_089CEF2C; @@ -6428,8 +8272,21 @@ L_089CEF38: L_089CEF44: aot_gpr_31 = (0x089CEF4Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 551u, 0x089CEF4Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEF4Cu) goto L_089CEF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEF4C: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(168), aot_run_words); @@ -6445,22 +8302,35 @@ L_089CEF4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CEF78: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089CEF88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 553u, 0x089CEF88u, 0x08AAD998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 280u, 0x08AAD998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CEF88u) goto L_089CEF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CEF88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CEF94: @@ -6937,15 +8807,15 @@ L_089CF034: L_089CF17C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(416)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF184: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF18C: @@ -6975,8 +8845,8 @@ L_089CF19C: } L_089CF1D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF1D8: @@ -7024,8 +8894,8 @@ L_089CF21C: } L_089CF238: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF240: @@ -7114,8 +8984,21 @@ L_089CF2D0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089CF33Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 576u, 0x089CF33Cu, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CF33Cu) goto L_089CF33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CF33C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7127,12 +9010,38 @@ L_089CF344: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x089CF350u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 578u, 0x089CF350u, 0x08AEE7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 527u, 0x08AEE7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CF350u) goto L_089CF350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CF350: aot_gpr_31 = (0x089CF358u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 579u, 0x089CF358u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CF358u) goto L_089CF358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CF358: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 5 ? 1u : 0u); @@ -7174,8 +9083,8 @@ L_089CF388: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF3B0: @@ -7416,8 +9325,8 @@ L_089CF524: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(124))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF534: @@ -7430,14 +9339,27 @@ L_089CF534: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089CF558u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-3708)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 600u, 0x089CF558u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CF558u) goto L_089CF558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CF558: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF564: @@ -7493,8 +9415,8 @@ L_089CF564: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF58C: @@ -7881,8 +9803,21 @@ L_089CF8A0: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089CF8B0u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 647u, 0x089CF8B0u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CF8B0u) goto L_089CF8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CF8B0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -7892,8 +9827,8 @@ L_089CF8B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF8C4: @@ -7935,8 +9870,8 @@ L_089CF8C4: ctx.gpr[2] = (aot_gpr_4 | 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CF934: @@ -7990,8 +9925,21 @@ L_089CF984: L_089CF99C: aot_gpr_31 = (0x089CF9A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 655u, 0x089CF9A4u, 0x08906F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 655u, 0x08906F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CF9A4u) goto L_089CF9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CF9A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8031,8 +9979,21 @@ L_089CF9CC: L_089CF9D4: aot_gpr_31 = (0x089CF9DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 661u, 0x089CF9DCu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CF9DCu) goto L_089CF9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CF9DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8050,8 +10011,21 @@ L_089CF9F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089CF9FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 664u, 0x089CF9FCu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CF9FCu) goto L_089CF9FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CF9FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 20u); @@ -8059,8 +10033,21 @@ L_089CF9FC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089CFA14u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 665u, 0x089CFA14u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CFA14u) goto L_089CFA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CFA14: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1712), 0u); { const bool branch_taken = 0u == 0u; @@ -8115,8 +10102,8 @@ L_089CFA68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CFA7C: @@ -8144,14 +10131,27 @@ L_089CFA7C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089CFAB0u); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 673u, 0x089CFAB0u, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CFAB0u) goto L_089CFAB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CFAB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CFABC: @@ -8165,8 +10165,21 @@ L_089CFABC: aot_gpr_5 = (0u | 40u); aot_gpr_31 = (0x089CFAE4u); aot_gpr_6 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0114->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0114_entry, 675u, 0x089CFAE4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089CFAE4u) goto L_089CFAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089CFAE4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), 0u); ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -8174,8 +10187,8 @@ L_089CFAE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CFAFC: @@ -8203,8 +10216,8 @@ L_089CFB1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CFB28: @@ -8255,8 +10268,8 @@ L_089CFB64: goto L_089CFB68; L_089CFB68: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CFB70: @@ -8404,8 +10417,8 @@ L_089CFD0C: L_089CFD10: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CFD18: @@ -8566,8 +10579,8 @@ L_089CFEC8: L_089CFECC: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CFED4: @@ -8658,8 +10671,8 @@ L_089CFF98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089CFFB8: diff --git a/profiles/vcs/generated/generated_unit_0115.cpp b/profiles/vcs/generated/generated_unit_0115.cpp index 402f982..e14566b 100644 --- a/profiles/vcs/generated/generated_unit_0115.cpp +++ b/profiles/vcs/generated/generated_unit_0115.cpp @@ -770,6 +770,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089D0000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -802,8 +826,21 @@ L_089D000C: L_089D001C: aot_gpr_31 = (0x089D0024u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1712))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 4u, 0x089D0024u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0024u) goto L_089D0024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0024: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[17] | 0u); @@ -837,8 +874,21 @@ L_089D0048: L_089D0058: aot_gpr_31 = (0x089D0060u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(596))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 8u, 0x089D0060u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0060u) goto L_089D0060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0060: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(852))); if (aot_gpr_4 != 0u) { @@ -850,8 +900,21 @@ L_089D006C: ctx.gpr[20] = (ctx.gpr[20] + static_cast(944)); aot_gpr_31 = (0x089D0078u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 10u, 0x089D0078u, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0078u) goto L_089D0078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0078: aot_gpr_4 = (ctx.gpr[2] < static_cast(225) ? 1u : 0u); if (aot_gpr_4 != 0u) { @@ -863,16 +926,42 @@ L_089D0084: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D0090u); aot_gpr_5 = (0u | 215u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 12u, 0x089D0090u, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0090u) goto L_089D0090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0090: ctx.gpr[20] = (ctx.gpr[17] | 0u); goto L_089D0094; L_089D0094: aot_gpr_31 = (0x089D009Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 14u, 0x089D009Cu, 0x089CFB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 680u, 0x089CFB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D009Cu) goto L_089D009C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D009C: aot_gpr_4 = (ctx.gpr[2] << 6u); ctx.gpr[17] = (ctx.gpr[18] + aot_gpr_4); @@ -971,8 +1060,21 @@ L_089D0144: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089D0190u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 21u, 0x089D0190u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0190u) goto L_089D0190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0190: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(248)); @@ -989,8 +1091,21 @@ L_089D01AC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D01B8u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 23u, 0x089D01B8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D01B8u) goto L_089D01B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D01B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1034,8 +1149,8 @@ L_089D01E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D0224: @@ -1079,8 +1194,8 @@ L_089D026C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D0284: @@ -1126,8 +1241,21 @@ L_089D02C0: L_089D0308: aot_gpr_31 = (0x089D0310u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 36u, 0x089D0310u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0310u) goto L_089D0310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0310: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] + static_cast(64)); @@ -1151,8 +1279,8 @@ L_089D0324: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D0344: @@ -1163,8 +1291,8 @@ L_089D0344: ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(16))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D0360: @@ -1177,16 +1305,29 @@ L_089D0360: ctx.gpr[16] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x089D0384u); aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 40u, 0x089D0384u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0384u) goto L_089D0384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0384: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(17), static_cast(0u)); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D0398: @@ -1208,8 +1349,21 @@ L_089D03B8: L_089D03C4: aot_gpr_31 = (0x089D03CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 44u, 0x089D03CCu, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D03CCu) goto L_089D03CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D03CC: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(17), static_cast(0u)); goto L_089D03D0; @@ -1234,8 +1388,8 @@ L_089D03E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D03FC: @@ -1257,8 +1411,21 @@ L_089D041C: L_089D0428: aot_gpr_31 = (0x089D0430u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 50u, 0x089D0430u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0430u) goto L_089D0430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0430: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] + static_cast(64)); @@ -1280,8 +1447,8 @@ L_089D0444: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D045C: @@ -1300,8 +1467,8 @@ L_089D045C: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_14)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D0498: @@ -1354,8 +1521,21 @@ L_089D0508: aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 16u)); aot_gpr_31 = (0x089D0528u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 57u, 0x089D0528u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0528u) goto L_089D0528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0528: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_089D052C; @@ -1402,8 +1582,21 @@ L_089D0560: aot_gpr_6 = (static_cast(static_cast(aot_gpr_6) >> 16u)); aot_gpr_31 = (0x089D0580u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 63u, 0x089D0580u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0580u) goto L_089D0580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0580: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089D0584; @@ -1483,8 +1676,21 @@ L_089D05DC: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089D0614u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 70u, 0x089D0614u, 0x089CFED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 710u, 0x089CFED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0614u) goto L_089D0614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0614: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -1497,8 +1703,8 @@ L_089D0614: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D0634: @@ -1597,8 +1803,21 @@ L_089D0708: L_089D0710: aot_gpr_31 = (0x089D0718u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 79u, 0x089D0718u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0718u) goto L_089D0718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0718: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1624,8 +1843,21 @@ L_089D0720: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089D0738u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 81u, 0x089D0738u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0738u) goto L_089D0738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0738: aot_gpr_31 = (0x089D0740u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); @@ -1690,8 +1922,21 @@ L_089D079C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D0810u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 85u, 0x089D0810u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0810u) goto L_089D0810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0810: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), std::bit_cast(ctx.fpr[22])); @@ -1711,8 +1956,21 @@ L_089D0810: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D0858u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 86u, 0x089D0858u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0858u) goto L_089D0858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0858: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1730,8 +1988,21 @@ L_089D0860: L_089D0874: aot_gpr_31 = (0x089D087Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 89u, 0x089D087Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D087Cu) goto L_089D087C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D087C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1791,8 +2062,21 @@ L_089D08C4: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089D08F4u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 96u, 0x089D08F4u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D08F4u) goto L_089D08F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D08F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1813,8 +2097,21 @@ L_089D08FC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089D092Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 98u, 0x089D092Cu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D092Cu) goto L_089D092C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D092C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1878,8 +2175,21 @@ L_089D0984: aot_gpr_7 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089D09BCu); aot_gpr_6 = (0u | 33u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 105u, 0x089D09BCu, 0x08B0452Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D09BCu) goto L_089D09BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D09BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1890,8 +2200,21 @@ L_089D09BC: L_089D09C4: aot_gpr_31 = (0x089D09CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 107u, 0x089D09CCu, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D09CCu) goto L_089D09CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D09CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1938,8 +2261,21 @@ L_089D0A10: L_089D0A18: aot_gpr_31 = (0x089D0A20u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 113u, 0x089D0A20u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0A20u) goto L_089D0A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0A20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1965,12 +2301,38 @@ L_089D0A3C: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089D0A58u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 116u, 0x089D0A58u, 0x0882C728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 108u, 0x0882C728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0A58u) goto L_089D0A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0A58: aot_gpr_31 = (0x089D0A60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 117u, 0x089D0A60u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0A60u) goto L_089D0A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0A60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2077,8 +2439,21 @@ L_089D0AF0: L_089D0AF8: aot_gpr_31 = (0x089D0B00u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 126u, 0x089D0B00u, 0x089474ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 665u, 0x089474ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0B00u) goto L_089D0B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0B00: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x089D0B0Cu); @@ -2214,8 +2589,21 @@ L_089D0C04: aot_gpr_6 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x089D0C30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 138u, 0x089D0C30u, 0x089CF564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 601u, 0x089CF564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0C30u) goto L_089D0C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0C30: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2268,8 +2656,21 @@ L_089D0C70: aot_gpr_6 = (aot_gpr_29 + static_cast(240)); aot_gpr_31 = (0x089D0CA8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 141u, 0x089D0CA8u, 0x089CF564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 601u, 0x089CF564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0CA8u) goto L_089D0CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0CA8: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2345,8 +2746,21 @@ L_089D0D0C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D0D30u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 146u, 0x089D0D30u, 0x089CF564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 601u, 0x089CF564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0D30u) goto L_089D0D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0D30: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2397,8 +2811,21 @@ L_089D0D6C: aot_gpr_6 = (aot_gpr_29 + static_cast(288)); aot_gpr_31 = (0x089D0DA0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 149u, 0x089D0DA0u, 0x089CF564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 601u, 0x089CF564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0DA0u) goto L_089D0DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0DA0: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2452,8 +2879,21 @@ L_089D0DF4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D0E30u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 152u, 0x089D0E30u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0E30u) goto L_089D0E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0E30: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2522,8 +2962,21 @@ L_089D0EA0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D0EF4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 156u, 0x089D0EF4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0EF4u) goto L_089D0EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0EF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -2621,8 +3074,21 @@ L_089D0F74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089D0FE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 163u, 0x089D0FE8u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D0FE8u) goto L_089D0FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D0FE8: aot_gpr_4 = (ctx.gpr[16] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2655,8 +3121,21 @@ L_089D0FE8: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089D103Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 164u, 0x089D103Cu, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D103Cu) goto L_089D103C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D103C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2667,8 +3146,21 @@ L_089D103C: L_089D1044: aot_gpr_31 = (0x089D104Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 166u, 0x089D104Cu, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D104Cu) goto L_089D104C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D104C: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(356), aot_run_words); @@ -2683,8 +3175,8 @@ L_089D104C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1074: @@ -2720,8 +3212,21 @@ L_089D10D4: L_089D10E0: aot_gpr_31 = (0x089D10E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 170u, 0x089D10E8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D10E8u) goto L_089D10E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D10E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2732,8 +3237,21 @@ L_089D10E8: L_089D10F0: aot_gpr_31 = (0x089D10F8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 172u, 0x089D10F8u, 0x089CFB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 680u, 0x089CFB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D10F8u) goto L_089D10F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D10F8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -2865,8 +3383,21 @@ L_089D11B0: L_089D11B8: aot_gpr_31 = (0x089D11C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 188u, 0x089D11C0u, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D11C0u) goto L_089D11C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D11C0: aot_gpr_4 = (ctx.gpr[2] < static_cast(225) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2922,8 +3453,8 @@ L_089D121C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3488))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1234: @@ -2987,8 +3518,21 @@ L_089D127C: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089D128Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 202u, 0x089D128Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D128Cu) goto L_089D128C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D128C: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -3021,8 +3565,21 @@ L_089D12C8: aot_gpr_6 = (aot_gpr_29 + static_cast(49)); aot_gpr_31 = (0x089D12D8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 206u, 0x089D12D8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D12D8u) goto L_089D12D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D12D8: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(49))); @@ -3100,8 +3657,21 @@ L_089D1354: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D1364u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 216u, 0x089D1364u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1364u) goto L_089D1364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1364: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3129,26 +3699,78 @@ L_089D136C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D13B8u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 218u, 0x089D13B8u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D13B8u) goto L_089D13B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D13B8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D13C4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 219u, 0x089D13C4u, 0x089103CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 60u, 0x089103CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D13C4u) goto L_089D13C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D13C4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D13D0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 220u, 0x089D13D0u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D13D0u) goto L_089D13D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D13D0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D13DCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 221u, 0x089D13DCu, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D13DCu) goto L_089D13DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D13DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(10000)); @@ -3179,8 +3801,21 @@ L_089D1424: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D1430u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 224u, 0x089D1430u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1430u) goto L_089D1430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1430: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -3204,8 +3839,21 @@ L_089D1448: aot_gpr_7 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D1460u); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 227u, 0x089D1460u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1460u) goto L_089D1460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1460: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3220,8 +3868,21 @@ L_089D1468: aot_gpr_7 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D1480u); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 229u, 0x089D1480u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1480u) goto L_089D1480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1480: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3266,8 +3927,21 @@ L_089D14CC: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(596), ctx.gpr[22]); aot_gpr_31 = (0x089D14DCu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 234u, 0x089D14DCu, 0x08AECC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 217u, 0x08AECC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D14DCu) goto L_089D14DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D14DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3278,8 +3952,21 @@ L_089D14DC: L_089D14E4: aot_gpr_31 = (0x089D14ECu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 236u, 0x089D14ECu, 0x08AECAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 181u, 0x08AECAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D14ECu) goto L_089D14EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D14EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3290,8 +3977,21 @@ L_089D14EC: L_089D14F4: aot_gpr_31 = (0x089D14FCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 238u, 0x089D14FCu, 0x08B0E268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 526u, 0x08B0E268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D14FCu) goto L_089D14FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D14FC: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -3306,8 +4006,21 @@ L_089D1504: aot_gpr_7 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D151Cu); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 240u, 0x089D151Cu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D151Cu) goto L_089D151C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D151C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3542,8 +4255,21 @@ L_089D16C4: L_089D16CC: aot_gpr_31 = (0x089D16D4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 265u, 0x089D16D4u, 0x089CFA7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 672u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 672u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 672u, 0x089CFA7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D16D4u) goto L_089D16D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D16D4: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(48), 0u); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(52), std::bit_cast(aot_fpr_20)); @@ -3566,8 +4292,21 @@ L_089D16F0: L_089D16F8: aot_gpr_31 = (0x089D1700u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 268u, 0x089D1700u, 0x089CF58Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 602u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 602u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 602u, 0x089CF58Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1700u) goto L_089D1700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1700: ctx.gpr[2] = (ctx.gpr[22] | 0u); goto L_089D1704; @@ -3587,8 +4326,8 @@ L_089D1704: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1734: @@ -3738,8 +4477,21 @@ L_089D189C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089D191Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 277u, 0x089D191Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D191Cu) goto L_089D191C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D191C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(ctx.fpr[26])); @@ -3760,8 +4512,21 @@ L_089D191C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089D1968u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 278u, 0x089D1968u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1968u) goto L_089D1968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1968: aot_gpr_31 = (0x089D1970u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); @@ -3819,8 +4584,21 @@ L_089D19C0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089D1A24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 282u, 0x089D1A24u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1A24u) goto L_089D1A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1A24: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(76), static_cast(aot_gpr_4)); @@ -3837,8 +4615,21 @@ L_089D1A40: aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_31 = (0x089D1A50u); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 284u, 0x089D1A50u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1A50u) goto L_089D1A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1A50: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -3877,8 +4668,8 @@ L_089D1A6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1AA4: @@ -3887,8 +4678,21 @@ L_089D1AA4: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x089D1AB8u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 289u, 0x089D1AB8u, 0x089CFABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 674u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 674u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 674u, 0x089CFABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1AB8u) goto L_089D1AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1AB8: aot_gpr_31 = (0x089D1AC0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-11696)); @@ -3906,8 +4710,8 @@ L_089D1AC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1AEC: @@ -3923,8 +4727,8 @@ L_089D1AEC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1B1C: @@ -3934,8 +4738,8 @@ L_089D1B1C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), std::bit_cast(ctx.fpr[15])); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1B34: @@ -3947,14 +4751,27 @@ L_089D1B34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089D1B54u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 294u, 0x089D1B54u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1B54u) goto L_089D1B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1B54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1B60: @@ -3966,8 +4783,21 @@ L_089D1B60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089D1B80u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 296u, 0x089D1B80u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1B80u) goto L_089D1B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1B80: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); @@ -4059,8 +4889,21 @@ L_089D1C24: aot_gpr_5 = (ctx.gpr[11] | 0u); aot_gpr_31 = (0x089D1C44u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 307u, 0x089D1C44u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1C44u) goto L_089D1C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1C44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -4070,8 +4913,8 @@ L_089D1C44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1C64: @@ -4089,8 +4932,21 @@ L_089D1C64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089D1CA0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 309u, 0x089D1CA0u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1CA0u) goto L_089D1CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1CA0: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(12), ctx.gpr[18]); @@ -4104,8 +4960,21 @@ L_089D1CA0: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D1CD0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 310u, 0x089D1CD0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1CD0u) goto L_089D1CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1CD0: aot_gpr_4 = (ctx.gpr[20] + ctx.gpr[18]); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); @@ -4160,8 +5029,8 @@ L_089D1D40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1D64: @@ -4279,8 +5148,8 @@ L_089D1E48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1E68: @@ -4294,8 +5163,21 @@ L_089D1E68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D1E90u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 326u, 0x089D1E90u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D1E90u) goto L_089D1E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D1E90: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(5), static_cast(aot_gpr_4)); @@ -4318,8 +5200,8 @@ L_089D1E90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1ED8: @@ -4335,8 +5217,8 @@ L_089D1ED8: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1F04: @@ -4401,8 +5283,8 @@ L_089D1F58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D1F6C: @@ -4502,8 +5384,8 @@ L_089D2020: L_089D2024: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D202C: @@ -4512,8 +5394,21 @@ L_089D202C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D2040u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 352u, 0x089D2040u, 0x08A8D728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 273u, 0x08A8D728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2040u) goto L_089D2040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2040: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26772)); @@ -4539,8 +5434,8 @@ L_089D2040: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D20A0: @@ -4551,8 +5446,21 @@ L_089D20A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_31); aot_gpr_31 = (0x089D20BCu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 354u, 0x089D20BCu, 0x08A8D7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 275u, 0x08A8D7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D20BCu) goto L_089D20BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D20BC: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26772)); @@ -4582,8 +5490,21 @@ L_089D20BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2260))); aot_gpr_31 = (0x089D212Cu); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(188), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 355u, 0x089D212Cu, 0x08A9D4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 166u, 0x08A9D4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D212Cu) goto L_089D212C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D212C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(456))); aot_gpr_5 = (64u << 16u); @@ -4661,13 +5582,39 @@ L_089D21FC: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x089D2208u); aot_gpr_5 = (ctx.gpr[16] + static_cast(1168)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 362u, 0x089D2208u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2208u) goto L_089D2208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2208: aot_gpr_31 = (0x089D2210u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 363u, 0x089D2210u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2210u) goto L_089D2210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2210: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (2237u << 16u); @@ -4800,8 +5747,8 @@ L_089D22EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2304: @@ -4883,8 +5830,21 @@ L_089D2398: L_089D23A8: aot_gpr_31 = (0x089D23B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 390u, 0x089D23B0u, 0x0888FEECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 625u, 0x0888FEECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D23B0u) goto L_089D23B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D23B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4919,8 +5879,8 @@ L_089D23CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D23E0: @@ -4933,8 +5893,21 @@ L_089D23E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089D2404u); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 396u, 0x089D2404u, 0x08A8D860u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 279u, 0x08A8D860u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2404u) goto L_089D2404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2404: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5101,8 +6074,8 @@ L_089D2520: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D253C: @@ -5122,8 +6095,21 @@ L_089D253C: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x089D2580u); aot_gpr_5 = (ctx.gpr[16] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 416u, 0x089D2580u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2580u) goto L_089D2580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2580: aot_gpr_4 = (ctx.gpr[16] + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5293,16 +6279,16 @@ L_089D26DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D273C: ctx.gpr[2] = (2205u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(10044)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2748: @@ -5314,8 +6300,8 @@ L_089D2758: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2764: @@ -5336,8 +6322,21 @@ L_089D2784: L_089D278C: aot_gpr_31 = (0x089D2794u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 425u, 0x089D2794u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2794u) goto L_089D2794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2794: if (ctx.gpr[2] == ctx.gpr[16]) { ctx.gpr[17] = (0u | 1u); @@ -5346,8 +6345,21 @@ L_089D2794: goto L_089D279C; L_089D279C: aot_gpr_31 = (0x089D27A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 427u, 0x089D27A4u, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D27A4u) goto L_089D27A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D27A4: aot_gpr_4 = (ctx.gpr[2] ^ ctx.gpr[16]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -5386,8 +6398,8 @@ L_089D27CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D27E8: @@ -5409,14 +6421,40 @@ L_089D2804: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x089D2818u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 435u, 0x089D2818u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2818u) goto L_089D2818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2818: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D2824u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 436u, 0x089D2824u, 0x0888E5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 411u, 0x0888E5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2824u) goto L_089D2824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2824: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5439,15 +6477,15 @@ L_089D2838: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D284C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2854: @@ -5460,8 +6498,21 @@ L_089D2854: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D2878u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 441u, 0x089D2878u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2878u) goto L_089D2878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2878: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5483,8 +6534,8 @@ L_089D2890: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D28A0: @@ -5513,8 +6564,8 @@ L_089D28CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D28D8: @@ -5528,8 +6579,21 @@ L_089D28D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089D2900u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 449u, 0x089D2900u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2900u) goto L_089D2900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2900: ctx.gpr[16] = (ctx.gpr[2] | 0u); ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5553,8 +6617,8 @@ L_089D2920: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2930: @@ -5568,8 +6632,8 @@ L_089D2944: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2950: @@ -5578,8 +6642,21 @@ L_089D2950: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x089D2974u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 456u, 0x089D2974u, 0x0888E5A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 409u, 0x0888E5A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2974u) goto L_089D2974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2974: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25592)); @@ -5596,8 +6673,21 @@ L_089D2974: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11672), aot_gpr_4); aot_gpr_31 = (0x089D29B0u); aot_gpr_4 = (0u | 448u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 457u, 0x089D29B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D29B0u) goto L_089D29B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D29B0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5611,8 +6701,21 @@ L_089D29BC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D29C8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 459u, 0x089D29C8u, 0x089D4258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0116_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 41u, 0x089D4258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D29C8u) goto L_089D29C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D29C8: ctx.gpr[17] = (ctx.gpr[18] | 0u); aot_gpr_4 = (17036u << 16u); @@ -5710,8 +6813,21 @@ L_089D2A8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x089D2AA0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 469u, 0x089D2AA0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2AA0u) goto L_089D2AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2AA0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -5755,8 +6871,21 @@ L_089D2AD8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D2AECu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 475u, 0x089D2AECu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2AECu) goto L_089D2AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2AEC: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[20]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -5816,8 +6945,8 @@ L_089D2B44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2B68: @@ -5829,8 +6958,21 @@ L_089D2B68: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x089D2B8Cu); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 484u, 0x089D2B8Cu, 0x0888E5A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 409u, 0x0888E5A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2B8Cu) goto L_089D2B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2B8C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25592)); @@ -5849,15 +6991,41 @@ L_089D2B8C: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089D2BD0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 485u, 0x089D2BD0u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2BD0u) goto L_089D2BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2BD0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(104), ctx.gpr[16]); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089D2BE0u); aot_gpr_4 = (0u | 448u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 486u, 0x089D2BE0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2BE0u) goto L_089D2BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2BE0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5871,8 +7039,21 @@ L_089D2BEC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D2BF8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 488u, 0x089D2BF8u, 0x089D4258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0116_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 41u, 0x089D4258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2BF8u) goto L_089D2BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2BF8: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_gpr_4 = (17036u << 16u); @@ -5928,8 +7109,21 @@ L_089D2C7C: aot_gpr_5 = (0u | 352u); aot_gpr_31 = (0x089D2C98u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 493u, 0x089D2C98u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2C98u) goto L_089D2C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2C98: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5952,8 +7146,21 @@ L_089D2CB4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D2CC4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 497u, 0x089D2CC4u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2CC4u) goto L_089D2CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2CC4: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -5966,8 +7173,8 @@ L_089D2CC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2CE4: @@ -6011,8 +7218,21 @@ L_089D2D44: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D2D5Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 501u, 0x089D2D5Cu, 0x08B6D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 256u, 0x08B6D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2D5Cu) goto L_089D2D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2D5C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -6085,8 +7305,21 @@ L_089D2DC8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089D2DDCu); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 511u, 0x089D2DDCu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2DDCu) goto L_089D2DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2DDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); aot_gpr_4 = (aot_gpr_4 + static_cast(-4)); @@ -6095,8 +7328,21 @@ L_089D2DDC: L_089D2DE8: aot_gpr_31 = (0x089D2DF0u); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 513u, 0x089D2DF0u, 0x08A17AF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 623u, 0x08A17AF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2DF0u) goto L_089D2DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2DF0: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; if (branch_taken) { @@ -6106,13 +7352,39 @@ L_089D2DF0: } L_089D2DF8: aot_gpr_31 = (0x089D2E00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 515u, 0x089D2E00u, 0x08A17A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 606u, 0x08A17A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2E00u) goto L_089D2E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2E00: aot_gpr_31 = (0x089D2E08u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 516u, 0x089D2E08u, 0x0888089Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 79u, 0x0888089Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2E08u) goto L_089D2E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2E08: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_4 = (0u | 0u); @@ -6273,14 +7545,40 @@ L_089D2F2C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x089D2F40u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 535u, 0x089D2F40u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2F40u) goto L_089D2F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2F40: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089D2F4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 536u, 0x089D2F4Cu, 0x0888E5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 411u, 0x0888E5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2F4Cu) goto L_089D2F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2F4C: aot_gpr_4 = (ctx.gpr[17] & 1u); goto L_089D2F50; @@ -6306,8 +7604,8 @@ L_089D2F60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2F78: @@ -6319,8 +7617,21 @@ L_089D2F78: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x089D2F9Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 541u, 0x089D2F9Cu, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2F9Cu) goto L_089D2F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2F9C: aot_gpr_4 = (0u | 0u); ctx.gpr[18] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); @@ -6329,8 +7640,21 @@ L_089D2F9C: aot_gpr_5 = (0u | 352u); aot_gpr_31 = (0x089D2FB8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 542u, 0x089D2FB8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2FB8u) goto L_089D2FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2FB8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6353,8 +7677,21 @@ L_089D2FD4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089D2FE4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 546u, 0x089D2FE4u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D2FE4u) goto L_089D2FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D2FE4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -6365,8 +7702,8 @@ L_089D2FE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D2FFC: @@ -6401,8 +7738,21 @@ L_089D3050: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(32), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089D3064u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 549u, 0x089D3064u, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3064u) goto L_089D3064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3064: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -6418,8 +7768,21 @@ L_089D307C: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D3090u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 551u, 0x089D3090u, 0x089D58F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0116_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 363u, 0x089D58F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3090u) goto L_089D3090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3090: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -6434,8 +7797,21 @@ L_089D3098: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(34), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089D30ACu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(34)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 553u, 0x089D30ACu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D30ACu) goto L_089D30AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D30AC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(68)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -6443,8 +7819,21 @@ L_089D30AC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(36)))))); aot_gpr_31 = (0x089D30C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 554u, 0x089D30C4u, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D30C4u) goto L_089D30C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D30C4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(68)))))); @@ -6472,14 +7861,14 @@ L_089D30FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3118: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3120: @@ -6494,8 +7883,21 @@ L_089D3120: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D314Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 558u, 0x089D314Cu, 0x0888E688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 421u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 421u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 421u, 0x0888E688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D314Cu) goto L_089D314C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D314C: ctx.gpr[8] = (ctx.gpr[17] | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load8(ctx.gpr[8] + static_cast(214))); @@ -6592,8 +7994,8 @@ L_089D31E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D31FC: @@ -6606,8 +8008,21 @@ L_089D31FC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D3220u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 570u, 0x089D3220u, 0x08A9AE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 355u, 0x08A9AE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3220u) goto L_089D3220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3220: aot_fpr_12 = std::bit_cast(ctx.gpr[16]); aot_gpr_4 = (15496u << 16u); @@ -6663,8 +8078,8 @@ L_089D3284: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3298: @@ -6685,8 +8100,21 @@ L_089D3298: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x089D32DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 577u, 0x089D32DCu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D32DCu) goto L_089D32DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D32DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(148))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -6708,8 +8136,21 @@ L_089D32FC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D3314u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 580u, 0x089D3314u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3314u) goto L_089D3314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3314: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6724,8 +8165,21 @@ L_089D3320: aot_gpr_6 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089D3330u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 582u, 0x089D3330u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3330u) goto L_089D3330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3330: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -6766,8 +8220,8 @@ L_089D3368: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3388: @@ -6823,8 +8277,21 @@ L_089D33DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(112))); aot_gpr_31 = (0x089D33E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 591u, 0x089D33E8u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D33E8u) goto L_089D33E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D33E8: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[16] << 2u); @@ -6848,8 +8315,21 @@ L_089D3410: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089D3428u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 594u, 0x089D3428u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3428u) goto L_089D3428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3428: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6877,22 +8357,22 @@ L_089D3434: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3450: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(216), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3458: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(216))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3460: @@ -6907,8 +8387,21 @@ L_089D3460: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089D348Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 599u, 0x089D348Cu, 0x089D5288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0116_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 264u, 0x089D5288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D348Cu) goto L_089D348C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D348C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6923,8 +8416,21 @@ L_089D3498: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089D34ACu); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0116. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 601u, 0x089D34ACu, 0x089D58F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0116_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0116_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0116_entry, 116u, 363u, 0x089D58F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D34ACu) goto L_089D34AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D34AC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -6946,8 +8452,8 @@ L_089D34B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D34D0: @@ -7236,8 +8742,8 @@ L_089D36FC: goto L_089D3700; L_089D3700: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3708: @@ -7624,8 +9130,8 @@ L_089D3BC0: goto L_089D3C20; L_089D3C20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3C28: @@ -7873,8 +9379,8 @@ L_089D3ED4: goto L_089D3F14; L_089D3F14: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D3F1C: @@ -7905,8 +9411,21 @@ L_089D3F50: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089D3F60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 680u, 0x089D3F60u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3F60u) goto L_089D3F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3F60: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7935,8 +9454,21 @@ L_089D3F84: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089D3F94u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 684u, 0x089D3F94u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3F94u) goto L_089D3F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3F94: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089D3F98; @@ -7958,8 +9490,21 @@ L_089D3FAC: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x089D3FBCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 688u, 0x089D3FBCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3FBCu) goto L_089D3FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3FBC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -7990,8 +9535,21 @@ L_089D3FE8: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089D3FF8u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0115->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0115_entry, 692u, 0x089D3FF8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D3FF8u) goto L_089D3FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D3FF8: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(108))); diff --git a/profiles/vcs/generated/generated_unit_0116.cpp b/profiles/vcs/generated/generated_unit_0116.cpp index 8da5385..cb4f0c9 100644 --- a/profiles/vcs/generated/generated_unit_0116.cpp +++ b/profiles/vcs/generated/generated_unit_0116.cpp @@ -806,6 +806,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089D4000u; + if (local_delta_v813 >= 16364u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -852,8 +876,8 @@ L_089D4024: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4040: @@ -875,8 +899,21 @@ L_089D4068: aot_gpr_6 = (ctx.gpr[29] + static_cast(16)); aot_gpr_31 = (0x089D4078u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 8u, 0x089D4078u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4078u) goto L_089D4078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4078: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(16))); @@ -905,8 +942,21 @@ L_089D409C: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089D40ACu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 12u, 0x089D40ACu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D40ACu) goto L_089D40AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D40AC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -929,8 +979,21 @@ L_089D40C4: aot_gpr_6 = (ctx.gpr[29] + static_cast(17)); aot_gpr_31 = (0x089D40D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 16u, 0x089D40D4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D40D4u) goto L_089D40D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D40D4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(17))); @@ -962,8 +1025,21 @@ L_089D4104: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089D4114u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 20u, 0x089D4114u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4114u) goto L_089D4114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4114: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -988,8 +1064,21 @@ L_089D4134: aot_gpr_6 = (ctx.gpr[29] + static_cast(18)); aot_gpr_31 = (0x089D4144u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 24u, 0x089D4144u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4144u) goto L_089D4144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4144: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(18))); @@ -1020,8 +1109,21 @@ L_089D4170: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089D4180u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 28u, 0x089D4180u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4180u) goto L_089D4180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4180: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); @@ -1055,8 +1157,21 @@ L_089D41B0: aot_gpr_6 = (ctx.gpr[29] + static_cast(19)); aot_gpr_31 = (0x089D41C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 33u, 0x089D41C0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D41C0u) goto L_089D41C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D41C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(19))); @@ -1077,14 +1192,40 @@ L_089D41DC: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x089D41ECu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 36u, 0x089D41ECu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D41ECu) goto L_089D41EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D41EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D41F8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 37u, 0x089D41F8u, 0x08A9B950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 448u, 0x08A9B950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D41F8u) goto L_089D41F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D41F8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(20), aot_run_words); @@ -1095,8 +1236,8 @@ L_089D41F8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4210: @@ -1111,21 +1252,47 @@ L_089D4210: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D423Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 39u, 0x089D423Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D423Cu) goto L_089D423C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D423C: aot_gpr_4 = (ctx.gpr[2] + static_cast(192)); aot_gpr_31 = (0x089D4248u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 40u, 0x089D4248u, 0x08A9DE74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 254u, 0x08A9DE74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4248u) goto L_089D4248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4248: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(20))); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(24))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4258: @@ -1134,8 +1301,21 @@ L_089D4258: aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(4), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089D4278u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 42u, 0x089D4278u, 0x0888FA44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 570u, 0x0888FA44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4278u) goto L_089D4278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4278: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25768)); @@ -1161,8 +1341,21 @@ L_089D4278: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089D42E4u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 43u, 0x089D42E4u, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D42E4u) goto L_089D42E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D42E4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -1304,8 +1497,8 @@ L_089D43E0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4418: @@ -1327,14 +1520,40 @@ L_089D4434: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089D444Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 60u, 0x089D444Cu, 0x08A05F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 499u, 0x08A05F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D444Cu) goto L_089D444C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D444C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4458u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 61u, 0x089D4458u, 0x0888FABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 573u, 0x0888FABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4458u) goto L_089D4458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4458: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1357,8 +1576,8 @@ L_089D446C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4480: @@ -1377,8 +1596,21 @@ L_089D4480: L_089D44A0: aot_gpr_31 = (0x089D44A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 66u, 0x089D44A8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D44A8u) goto L_089D44A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D44A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1405,31 +1637,96 @@ L_089D44C0: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x089D44D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 70u, 0x089D44D0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D44D0u) goto L_089D44D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D44D0: aot_gpr_31 = (0x089D44D8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 71u, 0x089D44D8u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D44D8u) goto L_089D44D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D44D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D44E4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 72u, 0x089D44E4u, 0x08ACFA70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1055u, 0x08ACFA70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D44E4u) goto L_089D44E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D44E4: aot_gpr_31 = (0x089D44ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 73u, 0x089D44ECu, 0x0886D308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 171u, 0x0886D308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D44ECu) goto L_089D44EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D44EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_31 = (0x089D44FCu); aot_gpr_5 = (aot_gpr_5 + static_cast(140)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 74u, 0x089D44FCu, 0x0886CFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 140u, 0x0886CFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D44FCu) goto L_089D44FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D44FC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -1481,8 +1778,21 @@ L_089D4570: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(136))); aot_gpr_31 = (0x089D4584u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 80u, 0x089D4584u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4584u) goto L_089D4584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4584: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); @@ -1492,8 +1802,21 @@ L_089D4584: aot_gpr_5 = (aot_gpr_16 + static_cast(424)); aot_gpr_31 = (0x089D45A4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 81u, 0x089D45A4u, 0x089034E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 611u, 0x089034E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D45A4u) goto L_089D45A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D45A4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -1503,8 +1826,8 @@ L_089D45A4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D45B8: @@ -1535,8 +1858,21 @@ L_089D45B8: L_089D4624: aot_gpr_31 = (0x089D462Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 84u, 0x089D462Cu, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D462Cu) goto L_089D462C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D462C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(18)))))); @@ -1544,8 +1880,21 @@ L_089D462C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(86)))))); aot_gpr_31 = (0x089D4644u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 85u, 0x089D4644u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4644u) goto L_089D4644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4644: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(336))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1557,8 +1906,21 @@ L_089D4644: L_089D4650: aot_gpr_31 = (0x089D4658u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 87u, 0x089D4658u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4658u) goto L_089D4658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4658: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); @@ -1584,8 +1946,21 @@ L_089D4680: aot_gpr_5 = (ctx.gpr[29] + static_cast(20)); aot_gpr_31 = (0x089D46A4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 90u, 0x089D46A4u, 0x089D8C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 151u, 0x089D8C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D46A4u) goto L_089D46A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D46A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(18)))))); @@ -1593,8 +1968,21 @@ L_089D46A4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(88)))))); aot_gpr_31 = (0x089D46BCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 91u, 0x089D46BCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D46BCu) goto L_089D46BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D46BC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(336))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1610,8 +1998,21 @@ L_089D46C8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(90)))))); aot_gpr_31 = (0x089D46E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 93u, 0x089D46E0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D46E0u) goto L_089D46E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D46E0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(337))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1640,8 +2041,21 @@ L_089D4700: aot_gpr_17 = (ctx.gpr[29] + static_cast(64)); aot_gpr_31 = (0x089D472Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 96u, 0x089D472Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D472Cu) goto L_089D472C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D472C: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); @@ -1665,8 +2079,21 @@ L_089D4754: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D476Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 99u, 0x089D476Cu, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D476Cu) goto L_089D476C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D476C: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -1715,8 +2142,21 @@ L_089D47A0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089D47C8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 101u, 0x089D47C8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D47C8u) goto L_089D47C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D47C8: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_16 = (aot_gpr_16 & 255u); @@ -1739,8 +2179,8 @@ L_089D47DC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D47FC: @@ -1760,8 +2200,21 @@ L_089D47FC: L_089D4824: aot_gpr_31 = (0x089D482Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 105u, 0x089D482Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D482Cu) goto L_089D482C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D482C: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); @@ -1796,8 +2249,21 @@ L_089D4884: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(22)))))); aot_gpr_31 = (0x089D4894u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 108u, 0x089D4894u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4894u) goto L_089D4894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4894: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(214))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1821,8 +2287,21 @@ L_089D48B4: aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x089D48D0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 111u, 0x089D48D0u, 0x0884CC80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 148u, 0x0884CC80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D48D0u) goto L_089D48D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D48D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1850,8 +2329,21 @@ L_089D48D8: aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x089D4924u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 113u, 0x089D4924u, 0x0884CC80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 148u, 0x0884CC80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4924u) goto L_089D4924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4924: aot_mem.aot_direct_store16(aot_gpr_17 + static_cast(0), static_cast(ctx.gpr[18])); goto L_089D4928; @@ -1865,8 +2357,8 @@ L_089D4928: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4940: @@ -1939,8 +2431,21 @@ L_089D49BC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(372), ctx.gpr[2]); aot_gpr_31 = (0x089D49C8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 124u, 0x089D49C8u, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D49C8u) goto L_089D49C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D49C8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -1950,8 +2455,8 @@ L_089D49C8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D49DC: @@ -1977,8 +2482,21 @@ L_089D49FC: } L_089D4A08: aot_gpr_31 = (0x089D4A10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 128u, 0x089D4A10u, 0x08945288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 180u, 0x08945288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4A10u) goto L_089D4A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4A10: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -2006,24 +2524,76 @@ L_089D4A34: L_089D4A3C: aot_gpr_31 = (0x089D4A44u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(372))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 132u, 0x089D4A44u, 0x08945288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 180u, 0x08945288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4A44u) goto L_089D4A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4A44: aot_gpr_31 = (0x089D4A4Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 133u, 0x089D4A4Cu, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4A4Cu) goto L_089D4A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4A4C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(372))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x089D4A5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 134u, 0x089D4A5Cu, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4A5Cu) goto L_089D4A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4A5C: aot_gpr_31 = (0x089D4A64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 135u, 0x089D4A64u, 0x089730ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 658u, 0x089730ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4A64u) goto L_089D4A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4A64: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(372), 0u); goto L_089D4A68; @@ -2036,8 +2606,8 @@ L_089D4A68: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4A7C: @@ -2072,8 +2642,8 @@ L_089D4AB8: L_089D4ABC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4AC4: @@ -2113,14 +2683,27 @@ L_089D4B00: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089D4B24u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 145u, 0x089D4B24u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4B24u) goto L_089D4B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4B24: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D4B30: @@ -2131,8 +2714,21 @@ L_089D4B30: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(80), aot_gpr_5); aot_gpr_31 = (0x089D4B70u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(80)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 147u, 0x089D4B70u, 0x0888E7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 429u, 0x0888E7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4B70u) goto L_089D4B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4B70: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(3)))))); aot_gpr_5 = (2237u << 16u); @@ -2169,8 +2765,21 @@ L_089D4BC0: aot_gpr_6 = (ctx.gpr[29] + static_cast(16)); aot_gpr_31 = (0x089D4BD0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 151u, 0x089D4BD0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4BD0u) goto L_089D4BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4BD0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(16))); @@ -2199,8 +2808,21 @@ L_089D4BF8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4C08u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 155u, 0x089D4C08u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4C08u) goto L_089D4C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4C08: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(17))); @@ -2229,8 +2851,21 @@ L_089D4C34: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4C44u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 159u, 0x089D4C44u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4C44u) goto L_089D4C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4C44: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(18))); @@ -2273,8 +2908,21 @@ L_089D4C8C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4C9Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 165u, 0x089D4C9Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4C9Cu) goto L_089D4C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4C9C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(19))); @@ -2311,8 +2959,21 @@ L_089D4CDC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4CECu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 170u, 0x089D4CECu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4CECu) goto L_089D4CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4CEC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(20))); @@ -2380,8 +3041,21 @@ L_089D4D48: aot_gpr_6 = (ctx.gpr[29] + static_cast(21)); aot_gpr_31 = (0x089D4D58u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 179u, 0x089D4D58u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4D58u) goto L_089D4D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4D58: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(21))); @@ -2398,8 +3072,21 @@ L_089D4D68: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D4D8Cu); aot_gpr_6 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 181u, 0x089D4D8Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4D8Cu) goto L_089D4D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4D8C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(218), static_cast(aot_gpr_4)); @@ -2444,8 +3131,21 @@ L_089D4DD0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4DE0u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 188u, 0x089D4DE0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4DE0u) goto L_089D4DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4DE0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(22))); @@ -2474,8 +3174,21 @@ L_089D4E08: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4E18u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 192u, 0x089D4E18u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4E18u) goto L_089D4E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4E18: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(23))); @@ -2503,8 +3216,21 @@ L_089D4E44: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4E54u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 196u, 0x089D4E54u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4E54u) goto L_089D4E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4E54: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(24))); @@ -2532,8 +3258,21 @@ L_089D4E80: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4E90u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 200u, 0x089D4E90u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4E90u) goto L_089D4E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4E90: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(25))); @@ -2615,8 +3354,21 @@ L_089D4F00: aot_gpr_6 = (ctx.gpr[29] + static_cast(26)); aot_gpr_31 = (0x089D4F10u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 211u, 0x089D4F10u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4F10u) goto L_089D4F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4F10: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(26))); @@ -2633,8 +3385,21 @@ L_089D4F20: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D4F44u); aot_gpr_6 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 213u, 0x089D4F44u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4F44u) goto L_089D4F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4F44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); goto L_089D4F48; @@ -2652,8 +3417,21 @@ L_089D4F54: aot_gpr_6 = (ctx.gpr[29] + static_cast(27)); aot_gpr_31 = (0x089D4F64u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 217u, 0x089D4F64u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4F64u) goto L_089D4F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4F64: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(27))); @@ -2680,8 +3458,21 @@ L_089D4F8C: aot_gpr_6 = (ctx.gpr[29] + static_cast(28)); aot_gpr_31 = (0x089D4F9Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 221u, 0x089D4F9Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4F9Cu) goto L_089D4F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4F9C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(28))); @@ -2718,8 +3509,21 @@ L_089D4FE4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D4FF4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 226u, 0x089D4FF4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D4FF4u) goto L_089D4FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D4FF4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(29))); @@ -2747,8 +3551,21 @@ L_089D501C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D502Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 230u, 0x089D502Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D502Cu) goto L_089D502C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D502C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(30))); @@ -2790,8 +3607,21 @@ L_089D5068: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D5078u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 236u, 0x089D5078u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D5078u) goto L_089D5078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D5078: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -2804,8 +3634,21 @@ L_089D5084: aot_gpr_6 = (ctx.gpr[29] + static_cast(31)); aot_gpr_31 = (0x089D5094u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 238u, 0x089D5094u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D5094u) goto L_089D5094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D5094: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(31))); @@ -2832,8 +3675,21 @@ L_089D50BC: aot_gpr_6 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x089D50CCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 242u, 0x089D50CCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D50CCu) goto L_089D50CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D50CC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(32))); @@ -2861,8 +3717,21 @@ L_089D50F0: aot_gpr_6 = (ctx.gpr[29] + static_cast(33)); aot_gpr_31 = (0x089D5100u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 246u, 0x089D5100u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D5100u) goto L_089D5100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D5100: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(33))); @@ -2893,8 +3762,21 @@ L_089D513C: aot_gpr_6 = (ctx.gpr[29] + static_cast(34)); aot_gpr_31 = (0x089D514Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 250u, 0x089D514Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D514Cu) goto L_089D514C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D514C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(34))); @@ -2930,8 +3812,21 @@ L_089D519C: aot_gpr_6 = (ctx.gpr[29] + static_cast(35)); aot_gpr_31 = (0x089D51ACu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 254u, 0x089D51ACu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D51ACu) goto L_089D51AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D51AC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(35))); @@ -2957,8 +3852,21 @@ L_089D51D0: aot_gpr_6 = (0u | 54u); aot_gpr_31 = (0x089D51ECu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 257u, 0x089D51ECu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D51ECu) goto L_089D51EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D51EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2973,8 +3881,21 @@ L_089D51F4: aot_gpr_6 = (0u | 53u); aot_gpr_31 = (0x089D520Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 259u, 0x089D520Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D520Cu) goto L_089D520C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D520C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2990,8 +3911,21 @@ L_089D5214: aot_gpr_6 = (0u | 52u); aot_gpr_31 = (0x089D5230u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 261u, 0x089D5230u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D5230u) goto L_089D5230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D5230: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3007,8 +3941,21 @@ L_089D5238: aot_gpr_6 = (0u | 52u); aot_gpr_31 = (0x089D5254u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 263u, 0x089D5254u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D5254u) goto L_089D5254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D5254: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(36), aot_run_words); @@ -3026,8 +3973,8 @@ L_089D5254: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D5288: @@ -3403,8 +4350,21 @@ L_089D55A0: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D55B4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 312u, 0x089D55B4u, 0x089D34D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 604u, 0x089D34D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D55B4u) goto L_089D55B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D55B4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(4), static_cast(ctx.gpr[2])); @@ -3461,8 +4421,21 @@ L_089D5610: aot_gpr_5 = (ctx.gpr[30] + static_cast(192)); aot_gpr_31 = (0x089D5620u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 320u, 0x089D5620u, 0x08A9D5B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 185u, 0x08A9D5B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D5620u) goto L_089D5620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D5620: aot_mem.aot_direct_store8(ctx.gpr[29] + static_cast(9), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(9))); @@ -3812,8 +4785,8 @@ L_089D58A4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D58F0: @@ -4401,8 +5374,21 @@ L_089D6084: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D609Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 390u, 0x089D609Cu, 0x089D3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 643u, 0x089D3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D609Cu) goto L_089D609C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D609C: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(214))); @@ -4448,8 +5434,21 @@ L_089D60F0: ctx.gpr[7] = (0u | 65535u); aot_gpr_31 = (0x089D6104u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 395u, 0x089D6104u, 0x08A9D6DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 210u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 210u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 210u, 0x08A9D6DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6104u) goto L_089D6104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6104: aot_gpr_4 = (1u << 16u); aot_gpr_4 = (ctx.gpr[19] & aot_gpr_4); @@ -4602,8 +5601,21 @@ L_089D6298: aot_gpr_5 = (ctx.gpr[18] + static_cast(96)); aot_gpr_31 = (0x089D62A4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 409u, 0x089D62A4u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D62A4u) goto L_089D62A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D62A4: aot_gpr_4 = (64u << 16u); aot_gpr_4 = (ctx.gpr[19] & aot_gpr_4); @@ -4740,8 +5752,8 @@ L_089D63E8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D6410: @@ -5096,8 +6108,21 @@ L_089D67A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D6838u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 442u, 0x089D6838u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6838u) goto L_089D6838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6838: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(48), aot_run_words); @@ -5107,8 +6132,21 @@ L_089D6838: } aot_gpr_31 = (0x089D684Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 443u, 0x089D684Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D684Cu) goto L_089D684C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D684C: aot_gpr_4 = (ctx.gpr[22] & 32u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5197,8 +6235,21 @@ L_089D6914: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089D6924u); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 452u, 0x089D6924u, 0x089D3C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 660u, 0x089D3C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6924u) goto L_089D6924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6924: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(214))); @@ -5240,8 +6291,21 @@ L_089D6968: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089D6978u); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 457u, 0x089D6978u, 0x089D3C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 660u, 0x089D3C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6978u) goto L_089D6978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6978: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (aot_gpr_16 < static_cast(5) ? 1u : 0u); @@ -5280,8 +6344,21 @@ L_089D69B4: aot_gpr_5 = (ctx.gpr[20] + static_cast(192)); aot_gpr_31 = (0x089D69C0u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 462u, 0x089D69C0u, 0x08A9DBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 231u, 0x08A9DBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D69C0u) goto L_089D69C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D69C0: aot_gpr_4 = (1u << 16u); aot_gpr_4 = (ctx.gpr[22] & aot_gpr_4); @@ -5370,8 +6447,21 @@ L_089D6A60: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(338))); aot_gpr_31 = (0x089D6A98u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 472u, 0x089D6A98u, 0x089D3450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 596u, 0x089D3450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6A98u) goto L_089D6A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6A98: aot_gpr_4 = (16u << 16u); aot_gpr_4 = (ctx.gpr[22] & aot_gpr_4); @@ -5401,8 +6491,21 @@ L_089D6ACC: aot_gpr_5 = (ctx.gpr[20] + static_cast(96)); aot_gpr_31 = (0x089D6AD8u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 476u, 0x089D6AD8u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6AD8u) goto L_089D6AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6AD8: aot_gpr_4 = (64u << 16u); aot_gpr_4 = (ctx.gpr[22] & aot_gpr_4); @@ -5472,8 +6575,21 @@ L_089D6B6C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[30] + static_cast(3)))))); aot_gpr_31 = (0x089D6B80u); aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(176))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 484u, 0x089D6B80u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6B80u) goto L_089D6B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6B80: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -5515,8 +6631,21 @@ L_089D6BBC: aot_gpr_6 = (ctx.gpr[29] + static_cast(64)); aot_gpr_31 = (0x089D6BCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 489u, 0x089D6BCCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6BCCu) goto L_089D6BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6BCC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(64))); @@ -5575,8 +6704,21 @@ L_089D6C3C: } L_089D6C58: aot_gpr_31 = (0x089D6C60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 494u, 0x089D6C60u, 0x08B6033Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6C60u) goto L_089D6C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6C60: { const bool branch_taken = 0u == 0u; aot_fpr_20 = aot_fpr_20 - ctx.fpr[0]; @@ -5587,8 +6729,21 @@ L_089D6C60: } L_089D6C68: aot_gpr_31 = (0x089D6C70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 496u, 0x089D6C70u, 0x089644F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6C70u) goto L_089D6C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6C70: aot_fpr_20 = aot_fpr_20 - ctx.fpr[0]; goto L_089D6C74; @@ -5604,8 +6759,21 @@ L_089D6C80: aot_gpr_6 = (ctx.gpr[29] + static_cast(65)); aot_gpr_31 = (0x089D6C90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 499u, 0x089D6C90u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6C90u) goto L_089D6C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6C90: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(65))); @@ -5633,8 +6801,21 @@ L_089D6CA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D6CC4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 501u, 0x089D6CC4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6CC4u) goto L_089D6CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6CC4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(80), aot_run_words); @@ -5644,8 +6825,21 @@ L_089D6CC4: } aot_gpr_31 = (0x089D6CD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 502u, 0x089D6CD8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6CD8u) goto L_089D6CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6CD8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5690,8 +6884,21 @@ L_089D6D0C: L_089D6D18: aot_gpr_31 = (0x089D6D20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 508u, 0x089D6D20u, 0x089D1ED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 327u, 0x089D1ED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6D20u) goto L_089D6D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6D20: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -5717,8 +6924,21 @@ L_089D6D50: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x089D6D5Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 511u, 0x089D6D5Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6D5Cu) goto L_089D6D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6D5C: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -5748,8 +6968,21 @@ L_089D6D64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D6D88u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 513u, 0x089D6D88u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6D88u) goto L_089D6D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6D88: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(96), aot_run_words); @@ -5759,8 +6992,21 @@ L_089D6D88: } aot_gpr_31 = (0x089D6D9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 514u, 0x089D6D9Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6D9Cu) goto L_089D6D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6D9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5797,8 +7043,21 @@ L_089D6DB0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D6DD4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 517u, 0x089D6DD4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6DD4u) goto L_089D6DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6DD4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(112), aot_run_words); @@ -5808,8 +7067,21 @@ L_089D6DD4: } aot_gpr_31 = (0x089D6DE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 518u, 0x089D6DE8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6DE8u) goto L_089D6DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6DE8: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(214))); @@ -5899,8 +7171,8 @@ L_089D6E98: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D6ED0: @@ -5933,8 +7205,21 @@ L_089D6F20: aot_gpr_6 = (ctx.gpr[29] + static_cast(20)); aot_gpr_31 = (0x089D6F30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 529u, 0x089D6F30u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6F30u) goto L_089D6F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6F30: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(20))); @@ -5969,8 +7254,21 @@ L_089D6F60: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089D6F78u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 534u, 0x089D6F78u, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6F78u) goto L_089D6F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6F78: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (2237u << 16u); @@ -5978,21 +7276,60 @@ L_089D6F78: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D6F90u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 535u, 0x089D6F90u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6F90u) goto L_089D6F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6F90: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), ctx.gpr[20]); aot_gpr_5 = (ctx.gpr[19] + static_cast(16)); aot_gpr_31 = (0x089D6FA0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 536u, 0x089D6FA0u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6FA0u) goto L_089D6FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6FA0: aot_gpr_5 = (ctx.gpr[19] + static_cast(96)); aot_gpr_31 = (0x089D6FACu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 537u, 0x089D6FACu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D6FACu) goto L_089D6FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D6FAC: aot_gpr_4 = (ctx.gpr[19] + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6070,15 +7407,41 @@ L_089D7038: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1360))); aot_gpr_31 = (0x089D7044u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 539u, 0x089D7044u, 0x089C8D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 238u, 0x089C8D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7044u) goto L_089D7044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7044: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(182))); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(1360), aot_gpr_4); aot_gpr_31 = (0x089D7054u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 540u, 0x089D7054u, 0x089C8D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 238u, 0x089C8D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7054u) goto L_089D7054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7054: ctx.gpr[21] = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(180))); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(181))); @@ -6142,8 +7505,21 @@ L_089D7114: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x089D7128u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 543u, 0x089D7128u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7128u) goto L_089D7128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7128: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(176))); aot_gpr_5 = (0u | 65535u); @@ -6160,8 +7536,21 @@ L_089D7138: ctx.gpr[7] = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(176))); aot_gpr_31 = (0x089D7150u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 545u, 0x089D7150u, 0x08ADCB84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 215u, 0x08ADCB84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7150u) goto L_089D7150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7150: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6174,14 +7563,40 @@ L_089D715C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(104))); aot_gpr_31 = (0x089D7168u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 547u, 0x089D7168u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7168u) goto L_089D7168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7168: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D7174u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 548u, 0x089D7174u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7174u) goto L_089D7174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7174: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1152))); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(2116), aot_gpr_4); @@ -6196,27 +7611,79 @@ L_089D7174: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D71A8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 549u, 0x089D71A8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D71A8u) goto L_089D71A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D71A8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1152))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D71B8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 550u, 0x089D71B8u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D71B8u) goto L_089D71B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D71B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1152))); aot_gpr_31 = (0x089D71C4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 551u, 0x089D71C4u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D71C4u) goto L_089D71C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D71C4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D71D0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 552u, 0x089D71D0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D71D0u) goto L_089D71D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D71D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9624))); ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); @@ -6224,8 +7691,21 @@ L_089D71D0: aot_gpr_6 = (ctx.gpr[29] + static_cast(16)); aot_gpr_31 = (0x089D71E8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 553u, 0x089D71E8u, 0x08B6D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 256u, 0x08B6D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D71E8u) goto L_089D71E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D71E8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[21]; @@ -6290,8 +7770,21 @@ L_089D7240: aot_gpr_5 = (ctx.gpr[7] | 0u); aot_gpr_31 = (0x089D7258u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 562u, 0x089D7258u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7258u) goto L_089D7258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7258: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[19]); @@ -6308,8 +7801,21 @@ L_089D7260: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D727Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 564u, 0x089D727Cu, 0x0888EA48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 454u, 0x0888EA48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D727Cu) goto L_089D727C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D727C: aot_gpr_17 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(10)))))); aot_gpr_4 = (0u | 0u); @@ -6318,8 +7824,21 @@ L_089D727C: aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); aot_gpr_31 = (0x089D7298u); aot_gpr_5 = (0u | 352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 565u, 0x089D7298u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7298u) goto L_089D7298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7298: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6333,8 +7852,21 @@ L_089D72A4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089D72B0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 567u, 0x089D72B0u, 0x089D20A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 353u, 0x089D20A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D72B0u) goto L_089D72B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D72B0: aot_gpr_4 = (ctx.gpr[18] | 0u); goto L_089D72B4; @@ -6343,13 +7875,39 @@ L_089D72B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D72C4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 569u, 0x089D72C4u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D72C4u) goto L_089D72C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D72C4: aot_gpr_31 = (0x089D72CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 570u, 0x089D72CCu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D72CCu) goto L_089D72CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D72CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6363,8 +7921,21 @@ L_089D72D4: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D72E8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 572u, 0x089D72E8u, 0x0888EA48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 454u, 0x0888EA48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D72E8u) goto L_089D72E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D72E8: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(32), aot_run_words); @@ -6378,8 +7949,8 @@ L_089D72E8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D730C: @@ -6411,8 +7982,21 @@ L_089D7368: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x089D7384u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 575u, 0x089D7384u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7384u) goto L_089D7384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7384: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[29] + static_cast(16)); @@ -6527,8 +8111,21 @@ L_089D7438: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); aot_gpr_31 = (0x089D7460u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 588u, 0x089D7460u, 0x088905C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 92u, 0x088905C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7460u) goto L_089D7460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7460: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(40))); @@ -6545,8 +8142,21 @@ L_089D7478: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D748Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 590u, 0x089D748Cu, 0x0884D734u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 294u, 0x0884D734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D748Cu) goto L_089D748C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D748C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6557,8 +8167,21 @@ L_089D748C: L_089D7494: aot_gpr_31 = (0x089D749Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 592u, 0x089D749Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D749Cu) goto L_089D749C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D749C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(8), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(20))); @@ -6577,8 +8200,21 @@ L_089D74BC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089D74C8u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 594u, 0x089D74C8u, 0x0888FE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 611u, 0x0888FE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D74C8u) goto L_089D74C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D74C8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(214))); goto L_089D74CC; @@ -6642,22 +8278,61 @@ L_089D7524: ctx.gpr[7] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(18)))))); aot_gpr_31 = (0x089D7530u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 605u, 0x089D7530u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7530u) goto L_089D7530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7530: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_31 = (0x089D7544u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 606u, 0x089D7544u, 0x088905C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 92u, 0x088905C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7544u) goto L_089D7544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7544: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x089D7550u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 607u, 0x089D7550u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7550u) goto L_089D7550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7550: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(8), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(20))); @@ -6693,8 +8368,8 @@ L_089D757C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D75AC: @@ -6802,8 +8477,21 @@ L_089D7678: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(3)))))); aot_gpr_31 = (0x089D7684u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 623u, 0x089D7684u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7684u) goto L_089D7684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7684: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6814,8 +8502,21 @@ L_089D7684: } L_089D7690: aot_gpr_31 = (0x089D7698u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 625u, 0x089D7698u, 0x08824880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 81u, 0x08824880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7698u) goto L_089D7698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7698: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); goto L_089D769C; @@ -6893,8 +8594,21 @@ L_089D7738: L_089D7748: aot_gpr_31 = (0x089D7750u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 634u, 0x089D7750u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7750u) goto L_089D7750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7750: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -6968,8 +8682,21 @@ L_089D77AC: aot_gpr_6 = (ctx.gpr[29] + static_cast(26)); aot_gpr_31 = (0x089D77BCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 644u, 0x089D77BCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D77BCu) goto L_089D77BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D77BC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(26))); @@ -7015,8 +8742,21 @@ L_089D77FC: L_089D7804: aot_gpr_31 = (0x089D780Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 651u, 0x089D780Cu, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D780Cu) goto L_089D780C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D780C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7060,13 +8800,39 @@ L_089D7838: L_089D784C: aot_gpr_31 = (0x089D7854u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 657u, 0x089D7854u, 0x0890380Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 648u, 0x0890380Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7854u) goto L_089D7854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7854: aot_gpr_31 = (0x089D785Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 658u, 0x089D785Cu, 0x0888FB40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 582u, 0x0888FB40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D785Cu) goto L_089D785C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D785C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(18)))))); @@ -7074,8 +8840,21 @@ L_089D785C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(28)))))); aot_gpr_31 = (0x089D7874u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 659u, 0x089D7874u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7874u) goto L_089D7874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7874: aot_gpr_17 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(183))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(368))); @@ -7132,8 +8911,21 @@ L_089D78C0: L_089D78CC: aot_gpr_31 = (0x089D78D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 669u, 0x089D78D4u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D78D4u) goto L_089D78D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D78D4: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); @@ -7200,8 +8992,21 @@ L_089D78FC: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(60), aot_gpr_4); aot_gpr_31 = (0x089D7998u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 672u, 0x089D7998u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7998u) goto L_089D7998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7998: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(372))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); @@ -7238,8 +9043,21 @@ L_089D79BC: L_089D79C4: aot_gpr_31 = (0x089D79CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 677u, 0x089D79CCu, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D79CCu) goto L_089D79CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D79CC: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(32), aot_run_words); @@ -7252,8 +9070,8 @@ L_089D79CC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D79EC: @@ -7370,8 +9188,8 @@ L_089D7B9C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D7BA8: @@ -7389,8 +9207,21 @@ L_089D7BA8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089D7BE0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 681u, 0x089D7BE0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7BE0u) goto L_089D7BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7BE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); { std::uint32_t aot_run_words[8]{}; @@ -7407,8 +9238,21 @@ L_089D7BE0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089D7C10u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 682u, 0x089D7C10u, 0x0896E838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 613u, 0x0896E838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7C10u) goto L_089D7C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7C10: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7429,8 +9273,8 @@ L_089D7C24: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D7C44: @@ -7444,8 +9288,21 @@ L_089D7C44: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D7C6Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 685u, 0x089D7C6Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7C6Cu) goto L_089D7C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7C6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -7460,8 +9317,21 @@ L_089D7C78: aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089D7C8Cu); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 687u, 0x089D7C8Cu, 0x0896E2B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 524u, 0x0896E2B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7C8Cu) goto L_089D7C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7C8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7481,8 +9351,21 @@ L_089D7CA0: aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089D7CB4u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 690u, 0x089D7CB4u, 0x0896E2B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 524u, 0x0896E2B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7CB4u) goto L_089D7CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7CB4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7493,8 +9376,8 @@ L_089D7CB4: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D7CCC: @@ -7508,15 +9391,41 @@ L_089D7CCC: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D7CF4u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 692u, 0x089D7CF4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7CF4u) goto L_089D7CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7CF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089D7D04u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 693u, 0x089D7D04u, 0x0896D418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 342u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 342u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 342u, 0x0896D418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7D04u) goto L_089D7D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7D04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7603,8 +9512,8 @@ L_089D7D84: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D7D9C: @@ -7616,8 +9525,21 @@ L_089D7D9C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D7DBCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 704u, 0x089D7DBCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7DBCu) goto L_089D7DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7DBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7644,8 +9566,8 @@ L_089D7DD8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D7DEC: @@ -7659,8 +9581,21 @@ L_089D7DEC: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D7E14u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 709u, 0x089D7E14u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7E14u) goto L_089D7E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7E14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); @@ -7669,8 +9604,21 @@ L_089D7E14: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x089D7E30u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 710u, 0x089D7E30u, 0x0896D0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 293u, 0x0896D0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7E30u) goto L_089D7E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7E30: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7681,8 +9629,8 @@ L_089D7E30: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D7E48: @@ -7696,8 +9644,21 @@ L_089D7E48: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x089D7E70u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 712u, 0x089D7E70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7E70u) goto L_089D7E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7E70: ctx.fpr[19] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); { std::uint32_t aot_run_words[4]{}; @@ -7756,8 +9717,21 @@ L_089D7EBC: ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[2])); aot_gpr_31 = (0x089D7F14u); ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[3])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 717u, 0x089D7F14u, 0x08971858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 293u, 0x08971858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7F14u) goto L_089D7F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7F14: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7768,8 +9742,8 @@ L_089D7F14: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D7F2C: @@ -7783,16 +9757,42 @@ L_089D7F2C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D7F54u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 719u, 0x089D7F54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7F54u) goto L_089D7F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7F54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_gpr_17 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089D7F68u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0116->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0116_entry, 720u, 0x089D7F68u, 0x0896D5D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 369u, 0x0896D5D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D7F68u) goto L_089D7F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D7F68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7873,8 +9873,8 @@ L_089D7FE8: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; } diff --git a/profiles/vcs/generated/generated_unit_0117.cpp b/profiles/vcs/generated/generated_unit_0117.cpp index 62a6f56..718364f 100644 --- a/profiles/vcs/generated/generated_unit_0117.cpp +++ b/profiles/vcs/generated/generated_unit_0117.cpp @@ -807,6 +807,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089D8000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -829,8 +853,21 @@ L_089D8000: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D8020u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 2u, 0x089D8020u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8020u) goto L_089D8020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8020: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -857,8 +894,8 @@ L_089D803C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8050: @@ -870,8 +907,21 @@ L_089D8050: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D8070u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 7u, 0x089D8070u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8070u) goto L_089D8070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8070: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -883,16 +933,29 @@ L_089D8070: aot_gpr_5 = (aot_gpr_5 + static_cast(17840)); aot_gpr_31 = (0x089D8098u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 8u, 0x089D8098u, 0x08B33054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 632u, 0x08B33054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8098u) goto L_089D8098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8098: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D80AC: @@ -904,8 +967,21 @@ L_089D80AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D80CCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 10u, 0x089D80CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D80CCu) goto L_089D80CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D80CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -917,16 +993,29 @@ L_089D80CC: aot_gpr_5 = (aot_gpr_5 + static_cast(17840)); aot_gpr_31 = (0x089D80F4u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 11u, 0x089D80F4u, 0x08B33080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 637u, 0x08B33080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D80F4u) goto L_089D80F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D80F4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8108: @@ -940,16 +1029,42 @@ L_089D8108: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D8130u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 13u, 0x089D8130u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8130u) goto L_089D8130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8130: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089D8144u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 14u, 0x089D8144u, 0x0896D53Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 360u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 360u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 360u, 0x0896D53Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8144u) goto L_089D8144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8144: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1030,8 +1145,8 @@ L_089D81C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D81DC: @@ -1045,16 +1160,42 @@ L_089D81DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D8204u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 24u, 0x089D8204u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8204u) goto L_089D8204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8204: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089D8218u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 25u, 0x089D8218u, 0x0896D590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 365u, 0x0896D590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8218u) goto L_089D8218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8218: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1135,8 +1276,8 @@ L_089D8298: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D82B0: @@ -1148,23 +1289,49 @@ L_089D82B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D82D0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 35u, 0x089D82D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D82D0u) goto L_089D82D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D82D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089D82E0u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 36u, 0x089D82E0u, 0x0896D60Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 370u, 0x0896D60Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D82E0u) goto L_089D82E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D82E0: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D82F4: @@ -1180,8 +1347,21 @@ L_089D82F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089D8324u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 38u, 0x089D8324u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8324u) goto L_089D8324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8324: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -1190,8 +1370,21 @@ L_089D8324: aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_gpr_31 = (0x089D8340u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 39u, 0x089D8340u, 0x0896D450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 343u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 343u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 343u, 0x0896D450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8340u) goto L_089D8340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8340: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1273,8 +1466,8 @@ L_089D83C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D83DC: @@ -1286,23 +1479,49 @@ L_089D83DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D83FCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 49u, 0x089D83FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D83FCu) goto L_089D83FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D83FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x089D840Cu); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 50u, 0x089D840Cu, 0x0896D6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 375u, 0x0896D6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D840Cu) goto L_089D840C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D840C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8420: @@ -1318,8 +1537,21 @@ L_089D8420: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089D8450u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 52u, 0x089D8450u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8450u) goto L_089D8450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8450: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x089D845Cu); @@ -1333,8 +1565,21 @@ L_089D845C: aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_gpr_31 = (0x089D8474u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 54u, 0x089D8474u, 0x0896D6F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 376u, 0x0896D6F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8474u) goto L_089D8474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8474: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1416,8 +1661,8 @@ L_089D84F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8510: @@ -1431,8 +1676,21 @@ L_089D8510: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D8538u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 64u, 0x089D8538u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8538u) goto L_089D8538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8538: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); @@ -1454,8 +1712,8 @@ L_089D8538: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D857C: @@ -1469,8 +1727,21 @@ L_089D857C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D85A4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 66u, 0x089D85A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D85A4u) goto L_089D85A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D85A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -1479,8 +1750,21 @@ L_089D85A4: aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_gpr_31 = (0x089D85C0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 67u, 0x089D85C0u, 0x0896E1E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 514u, 0x0896E1E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D85C0u) goto L_089D85C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D85C0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1491,8 +1775,8 @@ L_089D85C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D85D8: @@ -1502,8 +1786,21 @@ L_089D85D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D85F0u); aot_gpr_4 = (0u | 28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 69u, 0x089D85F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D85F0u) goto L_089D85F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D85F0: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -1542,8 +1839,8 @@ L_089D861C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8664: @@ -1552,16 +1849,29 @@ L_089D8664: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D8678u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 73u, 0x089D8678u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8678u) goto L_089D8678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8678: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D868C: @@ -1579,8 +1889,21 @@ L_089D868C: L_089D86A4: aot_gpr_31 = (0x089D86ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 76u, 0x089D86ACu, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D86ACu) goto L_089D86AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D86AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_gpr_31 = (0x089D86B8u); @@ -1604,8 +1927,21 @@ L_089D86CC: } L_089D86D8: aot_gpr_31 = (0x089D86E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 80u, 0x089D86E0u, 0x089732F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 694u, 0x089732F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D86E0u) goto L_089D86E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D86E0: aot_gpr_31 = (0x089D86E8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1617,8 +1953,8 @@ L_089D86E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D86FC: @@ -1691,8 +2027,8 @@ L_089D8764: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8788: @@ -1728,8 +2064,21 @@ L_089D87BC: L_089D87D0: aot_gpr_31 = (0x089D87D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 94u, 0x089D87D8u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D87D8u) goto L_089D87D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D87D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(36))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1763,8 +2112,21 @@ L_089D87F4: L_089D87FC: aot_gpr_31 = (0x089D8804u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 99u, 0x089D8804u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8804u) goto L_089D8804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8804: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = ctx.gpr[20] != ctx.gpr[19]; @@ -1785,8 +2147,8 @@ L_089D8810: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8830: @@ -1801,8 +2163,8 @@ L_089D8830: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(24), aot_gpr_4); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D885C: @@ -1814,8 +2176,8 @@ L_089D885C: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), ctx.gpr[7]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(24), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D887C: @@ -1828,8 +2190,21 @@ L_089D887C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089D88A0u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 104u, 0x089D88A0u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D88A0u) goto L_089D88A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D88A0: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1850,8 +2225,21 @@ L_089D88B8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(152))); aot_gpr_31 = (0x089D88C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 107u, 0x089D88C4u, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D88C4u) goto L_089D88C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D88C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x089D88D0u); @@ -1877,8 +2265,21 @@ L_089D88D8: L_089D88E4: aot_gpr_31 = (0x089D88ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 111u, 0x089D88ECu, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D88ECu) goto L_089D88EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D88EC: ctx.gpr[2] = (0u | 0u); goto L_089D88F0; @@ -1892,8 +2293,8 @@ L_089D88F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8908: @@ -1915,8 +2316,21 @@ L_089D8924: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089D8930u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 116u, 0x089D8930u, 0x08973670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 715u, 0x08973670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8930u) goto L_089D8930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8930: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), ctx.gpr[2]); @@ -1942,8 +2356,21 @@ L_089D8968: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x089D8974u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 119u, 0x089D8974u, 0x089736BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 719u, 0x089736BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8974u) goto L_089D8974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8974: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1995,8 +2422,8 @@ L_089D89B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D89C4: @@ -2004,14 +2431,27 @@ L_089D89C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089D89D4u); aot_gpr_4 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 128u, 0x089D89D4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D89D4u) goto L_089D89D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D89D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D89E0: @@ -2025,8 +2465,8 @@ L_089D89F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8A00: @@ -2124,8 +2564,8 @@ L_089D8AF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8B0C: @@ -2559,8 +2999,8 @@ L_089D8C30: ctx.gpr[2] = (aot_gpr_4 | 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8C3C: @@ -2571,16 +3011,29 @@ L_089D8C3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089D8C58u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 150u, 0x089D8C58u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D8C58u) goto L_089D8C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D8C58: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8C6C: @@ -2741,8 +3194,8 @@ L_089D8E00: L_089D8E04: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D8E0C: @@ -3230,8 +3683,8 @@ L_089D9014: ctx.gpr[2] = (aot_gpr_4 | 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9020: @@ -3368,8 +3821,8 @@ L_089D9154: L_089D9158: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9160: @@ -3395,42 +3848,42 @@ L_089D9160: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D917C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9184: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D918C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9194: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D919C: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1704))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D91A4: @@ -3453,8 +3906,21 @@ L_089D91C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D91D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 186u, 0x089D91D8u, 0x08831598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 297u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 297u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 297u, 0x08831598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D91D8u) goto L_089D91D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D91D8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3466,8 +3932,21 @@ L_089D91D8: L_089D91E4: aot_gpr_31 = (0x089D91ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 188u, 0x089D91ECu, 0x08AFF2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 734u, 0x08AFF2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D91ECu) goto L_089D91EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D91EC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3477,8 +3956,8 @@ L_089D91EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9200: @@ -3631,8 +4110,21 @@ L_089D9300: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089D9310u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 210u, 0x089D9310u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9310u) goto L_089D9310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9310: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -3645,8 +4137,21 @@ L_089D9310: L_089D9320: aot_gpr_31 = (0x089D9328u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 212u, 0x089D9328u, 0x08837B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 525u, 0x08837B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9328u) goto L_089D9328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9328: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(716))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3684,8 +4189,21 @@ L_089D9368: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(716))); aot_gpr_31 = (0x089D9374u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 215u, 0x089D9374u, 0x08A77A90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 734u, 0x08A77A90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9374u) goto L_089D9374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9374: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1944))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3762,8 +4280,8 @@ L_089D93F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9410: @@ -3794,20 +4312,46 @@ L_089D9450: aot_gpr_5 = (aot_gpr_16 + static_cast(548)); aot_gpr_31 = (0x089D945Cu); aot_gpr_6 = (aot_gpr_16 + static_cast(552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 227u, 0x089D945Cu, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D945Cu) goto L_089D945C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D945C: aot_gpr_31 = (0x089D9464u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 228u, 0x089D9464u, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9464u) goto L_089D9464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9464: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9474: @@ -3832,8 +4376,8 @@ L_089D9474: { const float fs = aot_fpr_15; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(220), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D94C8: @@ -3853,21 +4397,21 @@ L_089D94C8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(953), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(220), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9508: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9510: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9518: @@ -3915,8 +4459,21 @@ L_089D955C: } L_089D9580: aot_gpr_31 = (0x089D9588u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 238u, 0x089D9588u, 0x08AFFE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 937u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 937u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 937u, 0x08AFFE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9588u) goto L_089D9588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9588: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3958,8 +4515,8 @@ L_089D95BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D95C8: @@ -3971,8 +4528,21 @@ L_089D95C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089D95E8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 245u, 0x089D95E8u, 0x08B0D814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 366u, 0x08B0D814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D95E8u) goto L_089D95E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D95E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); @@ -3990,29 +4560,81 @@ L_089D9604: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089D9614u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 247u, 0x089D9614u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9614u) goto L_089D9614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9614: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x089D9624u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 248u, 0x089D9624u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9624u) goto L_089D9624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9624: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x089D9634u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 249u, 0x089D9634u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9634u) goto L_089D9634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9634: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x089D9644u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 250u, 0x089D9644u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9644u) goto L_089D9644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9644: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(615)))))); aot_gpr_5 = (0u + static_cast(-3)); @@ -4026,8 +4648,8 @@ L_089D9644: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9668: @@ -4036,8 +4658,8 @@ L_089D9668: aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(615), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D967C: @@ -4045,8 +4667,21 @@ L_089D967C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089D968Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 253u, 0x089D968Cu, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D968Cu) goto L_089D968C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D968C: aot_gpr_4 = (ctx.gpr[2] & 255u); aot_gpr_5 = (0u | 3u); @@ -4071,8 +4706,8 @@ L_089D96A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D96B4: @@ -4089,8 +4724,21 @@ L_089D96B4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } aot_gpr_31 = (0x089D96ECu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 258u, 0x089D96ECu, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D96ECu) goto L_089D96EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D96EC: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(25984)); @@ -4173,8 +4821,21 @@ L_089D97D8: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x089D97E4u); aot_gpr_4 = (0u | 388u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 264u, 0x089D97E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D97E4u) goto L_089D97E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D97E4: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -4254,8 +4915,21 @@ L_089D986C: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089D987Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 275u, 0x089D987Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D987Cu) goto L_089D987C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D987C: aot_gpr_6 = (16369u << 16u); aot_gpr_6 = (aot_gpr_6 | 17979u); @@ -4285,8 +4959,21 @@ L_089D98B0: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089D98C0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 278u, 0x089D98C0u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D98C0u) goto L_089D98C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D98C0: aot_gpr_6 = (49174u << 16u); aot_gpr_6 = (aot_gpr_6 | 52196u); @@ -4299,8 +4986,21 @@ L_089D98C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1284))); aot_gpr_31 = (0x089D98ECu); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1113), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 279u, 0x089D98ECu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D98ECu) goto L_089D98EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D98EC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); @@ -4322,8 +5022,21 @@ L_089D9900: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089D9910u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 282u, 0x089D9910u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9910u) goto L_089D9910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9910: aot_gpr_6 = (49056u << 16u); aot_gpr_6 = (aot_gpr_6 | 55676u); @@ -4380,8 +5093,21 @@ L_089D997C: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x089D998Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 288u, 0x089D998Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D998Cu) goto L_089D998C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D998C: aot_gpr_6 = (16369u << 16u); aot_gpr_6 = (aot_gpr_6 | 17979u); @@ -4394,14 +5120,40 @@ L_089D998C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1292))); aot_gpr_31 = (0x089D99B8u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1113), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 289u, 0x089D99B8u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D99B8u) goto L_089D99B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D99B8: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); aot_gpr_31 = (0x089D99C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1280))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 290u, 0x089D99C4u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D99C4u) goto L_089D99C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D99C4: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); goto L_089D99C8; @@ -4416,16 +5168,42 @@ L_089D99D4: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089D99E8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 293u, 0x089D99E8u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D99E8u) goto L_089D99E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D99E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089D99FCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 294u, 0x089D99FCu, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D99FCu) goto L_089D99FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D99FC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1620))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -4462,8 +5240,21 @@ L_089D9A44: goto L_089D9A4C; L_089D9A4C: aot_gpr_31 = (0x089D9A54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 298u, 0x089D9A54u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9A54u) goto L_089D9A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9A54: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4478,8 +5269,21 @@ L_089D9A60: L_089D9A64: aot_gpr_31 = (0x089D9A6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 301u, 0x089D9A6Cu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9A6Cu) goto L_089D9A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9A6C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4494,8 +5298,21 @@ L_089D9A78: L_089D9A7C: aot_gpr_31 = (0x089D9A84u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1292))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 304u, 0x089D9A84u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9A84u) goto L_089D9A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9A84: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4510,8 +5327,21 @@ L_089D9A90: L_089D9A94: aot_gpr_31 = (0x089D9A9Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1280))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 307u, 0x089D9A9Cu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9A9Cu) goto L_089D9A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9A9C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4527,8 +5357,21 @@ L_089D9AAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089D9AB8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 310u, 0x089D9AB8u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9AB8u) goto L_089D9AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9AB8: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[8]{}; @@ -4544,8 +5387,8 @@ L_089D9AB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089D9AE4: @@ -4586,8 +5429,21 @@ L_089D9AE4: L_089D9B48: aot_gpr_31 = (0x089D9B50u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 313u, 0x089D9B50u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9B50u) goto L_089D9B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9B50: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -4634,8 +5490,21 @@ L_089D9BC8: L_089D9BD8: aot_gpr_31 = (0x089D9BE0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 317u, 0x089D9BE0u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9BE0u) goto L_089D9BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9BE0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1924))); @@ -4700,8 +5569,21 @@ L_089D9C70: L_089D9C7C: aot_gpr_31 = (0x089D9C84u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 324u, 0x089D9C84u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9C84u) goto L_089D9C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9C84: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1920))); @@ -4744,8 +5626,21 @@ L_089D9CDC: L_089D9CE4: aot_gpr_31 = (0x089D9CECu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 329u, 0x089D9CECu, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9CECu) goto L_089D9CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9CEC: ctx.fpr[20] = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -4756,8 +5651,21 @@ L_089D9CEC: L_089D9CFC: aot_gpr_31 = (0x089D9D04u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 331u, 0x089D9D04u, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9D04u) goto L_089D9D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9D04: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1920))); @@ -4855,8 +5763,21 @@ L_089D9DF0: L_089D9DF8: aot_gpr_31 = (0x089D9E00u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 342u, 0x089D9E00u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9E00u) goto L_089D9E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9E00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4882,8 +5803,21 @@ L_089D9E28: L_089D9E30: aot_gpr_31 = (0x089D9E38u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 346u, 0x089D9E38u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9E38u) goto L_089D9E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9E38: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089D9E44u); @@ -4893,8 +5827,21 @@ L_089D9E38: L_089D9E44: aot_gpr_31 = (0x089D9E4Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 348u, 0x089D9E4Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089D9E4Cu) goto L_089D9E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089D9E4C: aot_gpr_4 = (ctx.gpr[19] - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5139,8 +6086,21 @@ L_089DA040: L_089DA048: aot_gpr_31 = (0x089DA050u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 376u, 0x089DA050u, 0x0898C3A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 90u, 0x0898C3A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA050u) goto L_089DA050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA050: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5163,8 +6123,21 @@ L_089DA074: L_089DA080: aot_gpr_31 = (0x089DA088u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 379u, 0x089DA088u, 0x0898C3A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 90u, 0x0898C3A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA088u) goto L_089DA088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA088: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11420))); @@ -5203,8 +6176,21 @@ L_089DA0E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DA0F0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 383u, 0x089DA0F0u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA0F0u) goto L_089DA0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA0F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[28])) ? 0x00800000u : 0u); @@ -5223,8 +6209,21 @@ L_089DA104: L_089DA10C: aot_gpr_31 = (0x089DA114u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 386u, 0x089DA114u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA114u) goto L_089DA114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA114: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5252,8 +6251,21 @@ L_089DA13C: L_089DA144: aot_gpr_31 = (0x089DA14Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 390u, 0x089DA14Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA14Cu) goto L_089DA14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA14C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (16128u << 16u); @@ -5276,8 +6288,21 @@ L_089DA16C: L_089DA174: aot_gpr_31 = (0x089DA17Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 393u, 0x089DA17Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA17Cu) goto L_089DA17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA17C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5321,8 +6346,21 @@ L_089DA1C0: L_089DA1C8: aot_gpr_31 = (0x089DA1D0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 397u, 0x089DA1D0u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA1D0u) goto L_089DA1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA1D0: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 10 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5339,8 +6377,21 @@ L_089DA1DC: L_089DA1E4: aot_gpr_31 = (0x089DA1ECu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 400u, 0x089DA1ECu, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA1ECu) goto L_089DA1EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA1EC: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 10 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5380,8 +6431,21 @@ L_089DA220: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DA230u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 406u, 0x089DA230u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA230u) goto L_089DA230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA230: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(604), std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089DA23Cu); @@ -5390,8 +6454,21 @@ L_089DA230: L_089DA23C: aot_gpr_31 = (0x089DA244u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 408u, 0x089DA244u, 0x0894CE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 221u, 0x0894CE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA244u) goto L_089DA244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA244: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5437,8 +6514,21 @@ L_089DA274: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089DA298u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 410u, 0x089DA298u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA298u) goto L_089DA298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA298: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(84), aot_run_words); @@ -5456,8 +6546,8 @@ L_089DA298: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DA2CC: @@ -5654,15 +6744,41 @@ L_089DA4A4: aot_gpr_5 = (0u | 12u); aot_gpr_31 = (0x089DA4B8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 429u, 0x089DA4B8u, 0x08B0DB1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 418u, 0x08B0DB1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA4B8u) goto L_089DA4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA4B8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 13u); aot_gpr_31 = (0x089DA4C8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 430u, 0x089DA4C8u, 0x08B0DB1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 418u, 0x08B0DB1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA4C8u) goto L_089DA4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA4C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (16128u << 16u); @@ -5695,8 +6811,21 @@ L_089DA4FC: } L_089DA504: aot_gpr_31 = (0x089DA50Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 434u, 0x089DA50Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA50Cu) goto L_089DA50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA50C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089DA510; @@ -5746,8 +6875,21 @@ L_089DA564: } L_089DA56C: aot_gpr_31 = (0x089DA574u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 441u, 0x089DA574u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA574u) goto L_089DA574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA574: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089DA578; @@ -5795,8 +6937,21 @@ L_089DA5E0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089DA5ECu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 447u, 0x089DA5ECu, 0x08B0DB54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 419u, 0x08B0DB54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA5ECu) goto L_089DA5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA5EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(1264))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5835,8 +6990,8 @@ L_089DA618: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3416))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DA630: @@ -6170,8 +7325,21 @@ L_089DA964: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_31 = (0x089DA980u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 480u, 0x089DA980u, 0x08B061F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 475u, 0x08B061F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DA980u) goto L_089DA980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DA980: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6313,8 +7481,21 @@ L_089DAA74: aot_gpr_5 = (0u | 6u); aot_gpr_31 = (0x089DAA98u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 495u, 0x089DAA98u, 0x08B061F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 475u, 0x08B061F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DAA98u) goto L_089DAA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DAA98: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(356), ctx.gpr[17]); @@ -6331,8 +7512,21 @@ L_089DAAA0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_31 = (0x089DAABCu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 497u, 0x089DAABCu, 0x08B061F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 475u, 0x08B061F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DAABCu) goto L_089DAABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DAABC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6420,8 +7614,8 @@ L_089DAB50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DAB90: @@ -6482,8 +7676,21 @@ L_089DAC54: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089DAC60u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 508u, 0x089DAC60u, 0x08AFEF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 662u, 0x08AFEF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DAC60u) goto L_089DAC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DAC60: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -6516,13 +7723,39 @@ L_089DAC88: L_089DACA0: aot_gpr_31 = (0x089DACA8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 512u, 0x089DACA8u, 0x08833358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 729u, 0x08833358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DACA8u) goto L_089DACA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DACA8: aot_gpr_31 = (0x089DACB0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 513u, 0x089DACB0u, 0x0884477Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 130u, 0x0884477Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DACB0u) goto L_089DACB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DACB0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -6535,8 +7768,21 @@ L_089DACB0: L_089DACC0: aot_gpr_31 = (0x089DACC8u); aot_gpr_4 = (aot_gpr_29 + static_cast(192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 515u, 0x089DACC8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DACC8u) goto L_089DACC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DACC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16512u << 16u); @@ -6559,8 +7805,21 @@ L_089DACF8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089DAD10u); aot_gpr_5 = (std::bit_cast(aot_fpr_15)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 517u, 0x089DAD10u, 0x08B09D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 371u, 0x08B09D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DAD10u) goto L_089DAD10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DAD10: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(616)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -6599,8 +7858,21 @@ L_089DAD54: ctx.fpr[20] = ctx.fpr[20] / aot_fpr_12; aot_gpr_31 = (0x089DAD88u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 520u, 0x089DAD88u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DAD88u) goto L_089DAD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DAD88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(352))); aot_fpr_14 = std::bit_cast(0u); @@ -6888,8 +8160,21 @@ L_089DAFF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB00Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 549u, 0x089DB00Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB00Cu) goto L_089DB00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB00C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6911,8 +8196,21 @@ L_089DB00C: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089DB030u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 550u, 0x089DB030u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB030u) goto L_089DB030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB030: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -6922,13 +8220,39 @@ L_089DB030: } aot_gpr_31 = (0x089DB044u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 551u, 0x089DB044u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB044u) goto L_089DB044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB044: aot_gpr_31 = (0x089DB04Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 552u, 0x089DB04Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB04Cu) goto L_089DB04C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB04C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -6998,8 +8322,21 @@ L_089DB0BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB0D4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 561u, 0x089DB0D4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB0D4u) goto L_089DB0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB0D4: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7021,8 +8358,21 @@ L_089DB0D4: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089DB0F8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 562u, 0x089DB0F8u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB0F8u) goto L_089DB0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB0F8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -7032,13 +8382,39 @@ L_089DB0F8: } aot_gpr_31 = (0x089DB10Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 563u, 0x089DB10Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB10Cu) goto L_089DB10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB10C: aot_gpr_31 = (0x089DB114u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 564u, 0x089DB114u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB114u) goto L_089DB114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB114: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1340))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7082,8 +8458,21 @@ L_089DB150: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB168u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 570u, 0x089DB168u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB168u) goto L_089DB168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB168: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7110,8 +8499,21 @@ L_089DB168: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089DB1A0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 571u, 0x089DB1A0u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB1A0u) goto L_089DB1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB1A0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -7121,13 +8523,39 @@ L_089DB1A0: } aot_gpr_31 = (0x089DB1B4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 572u, 0x089DB1B4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB1B4u) goto L_089DB1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB1B4: aot_gpr_31 = (0x089DB1BCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 573u, 0x089DB1BCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB1BCu) goto L_089DB1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB1BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1344))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7171,8 +8599,21 @@ L_089DB1F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB210u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 579u, 0x089DB210u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB210u) goto L_089DB210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB210: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7199,8 +8640,21 @@ L_089DB210: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089DB248u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 580u, 0x089DB248u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB248u) goto L_089DB248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB248: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -7210,13 +8664,39 @@ L_089DB248: } aot_gpr_31 = (0x089DB25Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 581u, 0x089DB25Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB25Cu) goto L_089DB25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB25C: aot_gpr_31 = (0x089DB264u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 582u, 0x089DB264u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB264u) goto L_089DB264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB264: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1336))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7260,8 +8740,21 @@ L_089DB2A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB2B8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 588u, 0x089DB2B8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB2B8u) goto L_089DB2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB2B8: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7289,8 +8782,21 @@ L_089DB2B8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x089DB2F4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 589u, 0x089DB2F4u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB2F4u) goto L_089DB2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB2F4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -7300,13 +8806,39 @@ L_089DB2F4: } aot_gpr_31 = (0x089DB308u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 590u, 0x089DB308u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB308u) goto L_089DB308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB308: aot_gpr_31 = (0x089DB310u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 591u, 0x089DB310u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB310u) goto L_089DB310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB310: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1368))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7350,8 +8882,21 @@ L_089DB34C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB364u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 597u, 0x089DB364u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB364u) goto L_089DB364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB364: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7379,8 +8924,21 @@ L_089DB364: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x089DB3A0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 598u, 0x089DB3A0u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB3A0u) goto L_089DB3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB3A0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -7390,13 +8948,39 @@ L_089DB3A0: } aot_gpr_31 = (0x089DB3B4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 599u, 0x089DB3B4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB3B4u) goto L_089DB3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB3B4: aot_gpr_31 = (0x089DB3BCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 600u, 0x089DB3BCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB3BCu) goto L_089DB3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB3BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1332))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7440,8 +9024,21 @@ L_089DB3F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB410u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 606u, 0x089DB410u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB410u) goto L_089DB410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB410: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7468,8 +9065,21 @@ L_089DB410: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089DB448u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 607u, 0x089DB448u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB448u) goto L_089DB448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB448: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -7479,13 +9089,39 @@ L_089DB448: } aot_gpr_31 = (0x089DB45Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 608u, 0x089DB45Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB45Cu) goto L_089DB45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB45C: aot_gpr_31 = (0x089DB464u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 609u, 0x089DB464u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB464u) goto L_089DB464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB464: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1364))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7529,8 +9165,21 @@ L_089DB4A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB4B8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 615u, 0x089DB4B8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB4B8u) goto L_089DB4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB4B8: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7557,8 +9206,21 @@ L_089DB4B8: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089DB4F0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 616u, 0x089DB4F0u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB4F0u) goto L_089DB4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB4F0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -7568,13 +9230,39 @@ L_089DB4F0: } aot_gpr_31 = (0x089DB504u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 617u, 0x089DB504u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB504u) goto L_089DB504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB504: aot_gpr_31 = (0x089DB50Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 618u, 0x089DB50Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB50Cu) goto L_089DB50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB50C: ctx.gpr[23] = (0u | 150u); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -7607,16 +9295,42 @@ L_089DB54C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089DB568u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 621u, 0x089DB568u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB568u) goto L_089DB568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB568: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1264))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(528))); aot_gpr_31 = (0x089DB57Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 622u, 0x089DB57Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB57Cu) goto L_089DB57C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB57C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7630,8 +9344,21 @@ L_089DB588: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089DB598u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 624u, 0x089DB598u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB598u) goto L_089DB598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB598: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1264))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7648,16 +9375,42 @@ L_089DB5A4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089DB5C0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 626u, 0x089DB5C0u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB5C0u) goto L_089DB5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB5C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1264))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(528))); aot_gpr_31 = (0x089DB5D4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 627u, 0x089DB5D4u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB5D4u) goto L_089DB5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB5D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7680,8 +9433,21 @@ L_089DB5F4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089DB604u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 630u, 0x089DB604u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB604u) goto L_089DB604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB604: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[22]; if (branch_taken) { @@ -7733,8 +9499,8 @@ L_089DB658: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3360))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DB670: @@ -7804,8 +9570,21 @@ L_089DB6E0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DB6FCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 643u, 0x089DB6FCu, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB6FCu) goto L_089DB6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB6FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1352))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1988))); @@ -7814,8 +9593,21 @@ L_089DB6FC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DB718u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 644u, 0x089DB718u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB718u) goto L_089DB718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB718: { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; if (branch_taken) { @@ -7831,8 +9623,21 @@ L_089DB720: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089DB73Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 646u, 0x089DB73Cu, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB73Cu) goto L_089DB73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB73C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] <= ctx.fpr[26])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -7849,8 +9654,21 @@ L_089DB74C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089DB768u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 648u, 0x089DB768u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB768u) goto L_089DB768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB768: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(86)))))); ctx.gpr[30] = (0u + static_cast(-977)); @@ -7870,8 +9688,21 @@ L_089DB778: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11388))); aot_gpr_31 = (0x089DB79Cu); { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 650u, 0x089DB79Cu, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB79Cu) goto L_089DB79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB79C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7905,16 +9736,42 @@ L_089DB7B4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089DB7F4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 653u, 0x089DB7F4u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB7F4u) goto L_089DB7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB7F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1276))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089DB808u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 654u, 0x089DB808u, 0x08AFF730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 821u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 821u, 0x08AFF730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB808u) goto L_089DB808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB808: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -7937,8 +9794,21 @@ L_089DB818: L_089DB82C: aot_gpr_31 = (0x089DB834u); aot_gpr_4 = (aot_gpr_29 + static_cast(272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 657u, 0x089DB834u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB834u) goto L_089DB834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB834: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16512u << 16u); @@ -7963,8 +9833,21 @@ L_089DB86C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x089DB884u); aot_gpr_5 = (std::bit_cast(ctx.fpr[16])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 659u, 0x089DB884u, 0x08B09D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 371u, 0x08B09D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB884u) goto L_089DB884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB884: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8037,8 +9920,21 @@ L_089DB90C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089DB924u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 667u, 0x089DB924u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB924u) goto L_089DB924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB924: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8074,8 +9970,21 @@ L_089DB94C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x089DB96Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 672u, 0x089DB96Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DB96Cu) goto L_089DB96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DB96C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11276))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); @@ -8291,8 +10200,21 @@ L_089DBB8C: aot_fpr_12 = aot_fpr_12 + aot_fpr_14; aot_gpr_31 = (0x089DBBA4u); aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(8), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 690u, 0x089DBBA4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DBBA4u) goto L_089DBBA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DBBA4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -8325,8 +10247,21 @@ L_089DBBE0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089DBBECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 694u, 0x089DBBECu, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DBBECu) goto L_089DBBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DBBEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8355,8 +10290,21 @@ L_089DBC10: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089DBC1Cu); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 698u, 0x089DBC1Cu, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DBC1Cu) goto L_089DBC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DBC1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8368,8 +10316,21 @@ L_089DBC24: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089DBC30u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 700u, 0x089DBC30u, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DBC30u) goto L_089DBC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DBC30: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(617)))))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -8640,8 +10601,21 @@ L_089DBCF0: ctx.gpr[9] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089DBDB0u); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 708u, 0x089DBDB0u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DBDB0u) goto L_089DBDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DBDB0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(400))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -8811,8 +10785,21 @@ L_089DBDB0: ctx.gpr[9] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089DBE48u); ctx.gpr[10] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 709u, 0x089DBE48u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DBE48u) goto L_089DBE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DBE48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); goto L_089DBE4C; @@ -8858,8 +10845,8 @@ L_089DBE6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(608)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DBEB4: @@ -8957,8 +10944,21 @@ L_089DBF90: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089DBFACu); ctx.gpr[9] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 722u, 0x089DBFACu, 0x08849214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 171u, 0x08849214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DBFACu) goto L_089DBFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DBFAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8991,8 +10991,21 @@ L_089DBFD0: L_089DBFD8: aot_gpr_31 = (0x089DBFE0u); ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0117->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0117_entry, 727u, 0x089DBFE0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DBFE0u) goto L_089DBFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DBFE0: { const bool branch_taken = ctx.gpr[21] != ctx.gpr[2]; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0118.cpp b/profiles/vcs/generated/generated_unit_0118.cpp index 2b3dd1b..92f1032 100644 --- a/profiles/vcs/generated/generated_unit_0118.cpp +++ b/profiles/vcs/generated/generated_unit_0118.cpp @@ -899,6 +899,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089DC004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1001,8 +1025,21 @@ L_089DC0A8: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(200))); aot_gpr_31 = (0x089DC0BCu); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 11u, 0x089DC0BCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC0BCu) goto L_089DC0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC0BC: { const bool branch_taken = aot_gpr_16 == ctx.gpr[2]; if (branch_taken) { @@ -1031,8 +1068,21 @@ L_089DC0D4: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089DC0ECu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 15u, 0x089DC0ECu, 0x08B00F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 265u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 265u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 265u, 0x08B00F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC0ECu) goto L_089DC0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC0EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1159,8 +1209,21 @@ L_089DC190: L_089DC19C: aot_gpr_31 = (0x089DC1A4u); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 30u, 0x089DC1A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC1A4u) goto L_089DC1A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC1A4: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[2]; aot_gpr_4 = (16000u << 16u); @@ -1554,8 +1617,21 @@ L_089DC408: aot_gpr_5 = (ctx.gpr[18] & 255u); aot_gpr_31 = (0x089DC414u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 63u, 0x089DC414u, 0x08B0D7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 360u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 360u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 360u, 0x08B0D7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC414u) goto L_089DC414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC414: ctx.gpr[21] = (ctx.gpr[18] << 2u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -1569,8 +1645,21 @@ L_089DC420: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089DC42Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 65u, 0x089DC42Cu, 0x08B0DB54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 419u, 0x08B0DB54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC42Cu) goto L_089DC42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC42C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -1598,8 +1687,21 @@ L_089DC448: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089DC454u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 69u, 0x089DC454u, 0x08B0DB54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 419u, 0x08B0DB54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC454u) goto L_089DC454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC454: aot_gpr_4 = (0u | 2u); if (ctx.gpr[2] != aot_gpr_4) { @@ -1612,8 +1714,21 @@ L_089DC460: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DC470u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 71u, 0x089DC470u, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC470u) goto L_089DC470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC470: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); goto L_089DC474; @@ -1622,8 +1737,21 @@ L_089DC474: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DC484u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 73u, 0x089DC484u, 0x08833928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 795u, 0x08833928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC484u) goto L_089DC484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC484: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1264))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(64))); @@ -1666,8 +1794,8 @@ L_089DC4AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DC4E8: @@ -1760,8 +1888,21 @@ L_089DC570: } L_089DC580: aot_gpr_31 = (0x089DC588u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 86u, 0x089DC588u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC588u) goto L_089DC588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC588: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; if (branch_taken) { @@ -1837,8 +1978,21 @@ L_089DC644: aot_gpr_4 = (ctx.gpr[17] + static_cast(944)); aot_gpr_31 = (0x089DC670u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(660), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 92u, 0x089DC670u, 0x08B0DB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 420u, 0x08B0DB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC670u) goto L_089DC670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC670: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; @@ -1853,71 +2007,188 @@ L_089DC67C: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x089DC690u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 94u, 0x089DC690u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC690u) goto L_089DC690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC690: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 13u); aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x089DC6A4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 95u, 0x089DC6A4u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC6A4u) goto L_089DC6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC6A4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 18u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089DC6B8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 96u, 0x089DC6B8u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC6B8u) goto L_089DC6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC6B8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 19u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089DC6CCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 97u, 0x089DC6CCu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC6CCu) goto L_089DC6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC6CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 10u); aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089DC6E0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 98u, 0x089DC6E0u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC6E0u) goto L_089DC6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC6E0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 8u); aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x089DC6F4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 99u, 0x089DC6F4u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC6F4u) goto L_089DC6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC6F4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 11u); aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x089DC708u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 100u, 0x089DC708u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC708u) goto L_089DC708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC708: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 9u); aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x089DC71Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 101u, 0x089DC71Cu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC71Cu) goto L_089DC71C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC71C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x089DC72Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 102u, 0x089DC72Cu, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC72Cu) goto L_089DC72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC72C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1284))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1933,8 +2204,21 @@ L_089DC738: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089DC750u); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 104u, 0x089DC750u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC750u) goto L_089DC750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC750: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1963,8 +2247,21 @@ L_089DC764: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x089DC7A0u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 107u, 0x089DC7A0u, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC7A0u) goto L_089DC7A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC7A0: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1982,8 +2279,21 @@ L_089DC7A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089DC7B4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 108u, 0x089DC7B4u, 0x08AFFAC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 877u, 0x08AFFAC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC7B4u) goto L_089DC7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC7B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(613)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -2005,8 +2315,21 @@ L_089DC7B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089DC804u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 109u, 0x089DC804u, 0x08832988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 604u, 0x08832988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC804u) goto L_089DC804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC804: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -2047,8 +2370,21 @@ L_089DC85C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089DC868u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 114u, 0x089DC868u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC868u) goto L_089DC868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC868: aot_gpr_4 = (16204u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -2060,13 +2396,39 @@ L_089DC868: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x089DC890u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 115u, 0x089DC890u, 0x089D1074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 167u, 0x089D1074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC890u) goto L_089DC890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC890: aot_gpr_31 = (0x089DC898u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 116u, 0x089DC898u, 0x08A362BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 544u, 0x08A362BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC898u) goto L_089DC898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC898: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -2085,8 +2447,21 @@ L_089DC8A4: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089DC8C8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 118u, 0x089DC8C8u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC8C8u) goto L_089DC8C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC8C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2104,8 +2479,21 @@ L_089DC8D0: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089DC8F4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 120u, 0x089DC8F4u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC8F4u) goto L_089DC8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC8F4: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -2118,8 +2506,8 @@ L_089DC8F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DC914: @@ -2131,8 +2519,8 @@ L_089DC914: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9652), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9656), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DC934: @@ -2142,8 +2530,8 @@ L_089DC934: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(5), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DC94C: @@ -2157,8 +2545,21 @@ L_089DC94C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DC974u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-14028)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 124u, 0x089DC974u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DC974u) goto L_089DC974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DC974: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(56), 0u); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(60), static_cast(0u)); @@ -2219,8 +2620,8 @@ L_089DC974: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DCA68: @@ -2291,8 +2692,8 @@ L_089DCB04: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(112), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DCB28: @@ -2325,8 +2726,8 @@ L_089DCB48: } L_089DCB70: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DCB78: @@ -2357,8 +2758,8 @@ L_089DCB78: aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(2), static_cast(ctx.gpr[7])); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(4), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DCBE4: @@ -2379,8 +2780,21 @@ L_089DCBE4: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089DCC30u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 136u, 0x089DCC30u, 0x08B46834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 509u, 0x08B46834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DCC30u) goto L_089DCC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DCC30: aot_gpr_31 = (0x089DCC38u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2435,8 +2849,21 @@ L_089DCC90: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x089DCCA8u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 141u, 0x089DCCA8u, 0x08A17018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 577u, 0x08A17018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DCCA8u) goto L_089DCCA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DCCA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2471,8 +2898,8 @@ L_089DCCC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DCD00: @@ -2501,8 +2928,8 @@ L_089DCD1C: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(112), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DCD44: @@ -2537,8 +2964,21 @@ L_089DCD44: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089DCDC8u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 148u, 0x089DCDC8u, 0x08B46834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 509u, 0x08B46834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DCDC8u) goto L_089DCDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DCDC8: aot_gpr_31 = (0x089DCDD0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2593,8 +3033,21 @@ L_089DCE28: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x089DCE40u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 153u, 0x089DCE40u, 0x08A17018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 577u, 0x08A17018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DCE40u) goto L_089DCE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DCE40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2629,8 +3082,8 @@ L_089DCE60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DCE98: @@ -2708,8 +3161,21 @@ L_089DCF24: ctx.gpr[11] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089DCF54u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 164u, 0x089DCF54u, 0x08A17304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 583u, 0x08A17304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DCF54u) goto L_089DCF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DCF54: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -2723,8 +3189,8 @@ L_089DCF54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DCF78: @@ -2749,8 +3215,21 @@ L_089DCF78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), aot_gpr_31); aot_gpr_31 = (0x089DCFCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 166u, 0x089DCFCCu, 0x08978E60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 117u, 0x08978E60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DCFCCu) goto L_089DCFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DCFCC: aot_gpr_5 = (16384u << 16u); aot_fpr_14 = std::bit_cast(aot_gpr_5); @@ -3067,15 +3546,15 @@ L_089DD21C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD23C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(62), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD244: @@ -3127,8 +3606,8 @@ L_089DD288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD29C: @@ -3147,8 +3626,8 @@ L_089DD29C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD2B0: @@ -3187,8 +3666,21 @@ L_089DD2F8: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089DD31Cu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 192u, 0x089DD31Cu, 0x08A17634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 587u, 0x08A17634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD31Cu) goto L_089DD31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD31C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(132), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); @@ -3319,8 +3811,8 @@ L_089DD31C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD3C4: @@ -3412,8 +3904,8 @@ L_089DD424: L_089DD458: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD460: @@ -3674,8 +4166,8 @@ L_089DD688: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD6A4: @@ -3691,8 +4183,21 @@ L_089DD6A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x089DD6D8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 216u, 0x089DD6D8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD6D8u) goto L_089DD6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD6D8: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3738,8 +4243,8 @@ L_089DD6F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD734: @@ -3751,8 +4256,21 @@ L_089DD734: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DD754u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 220u, 0x089DD754u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD754u) goto L_089DD754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD754: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (2236u << 16u); @@ -3765,8 +4283,21 @@ L_089DD754: } L_089DD764: aot_gpr_31 = (0x089DD76Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 222u, 0x089DD76Cu, 0x08A1D29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 218u, 0x08A1D29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD76Cu) goto L_089DD76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD76C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3778,16 +4309,29 @@ L_089DD774: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089DD780u); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2652), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 224u, 0x089DD780u, 0x08A1D1F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 203u, 0x08A1D1F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD780u) goto L_089DD780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD780: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD794: @@ -3798,8 +4342,21 @@ L_089DD794: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DD7B0u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 226u, 0x089DD7B0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD7B0u) goto L_089DD7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD7B0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_16 != 0u) { @@ -3820,8 +4377,21 @@ L_089DD7C4: goto L_089DD7C8; L_089DD7C8: aot_gpr_31 = (0x089DD7D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 230u, 0x089DD7D0u, 0x088099B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 327u, 0x088099B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD7D0u) goto L_089DD7D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD7D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); if (aot_gpr_4 != 0u) { @@ -3839,16 +4409,29 @@ L_089DD7E4: L_089DD7E8: aot_gpr_31 = (0x089DD7F0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 234u, 0x089DD7F0u, 0x0884C928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 96u, 0x0884C928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD7F0u) goto L_089DD7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD7F0: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD804: @@ -3868,15 +4451,28 @@ L_089DD818: L_089DD820: aot_gpr_31 = (0x089DD828u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 238u, 0x089DD828u, 0x08B3B948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 992u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 992u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 992u, 0x08B3B948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD828u) goto L_089DD828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD828: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD838: @@ -3898,8 +4494,21 @@ L_089DD850: L_089DD858: aot_gpr_31 = (0x089DD860u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 242u, 0x089DD860u, 0x08B3B824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 977u, 0x08B3B824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD860u) goto L_089DD860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD860: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3982,8 +4591,8 @@ L_089DD8E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD8F4: @@ -4003,15 +4612,28 @@ L_089DD908: L_089DD910: aot_gpr_31 = (0x089DD918u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 255u, 0x089DD918u, 0x0884C8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 93u, 0x0884C8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD918u) goto L_089DD918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD918: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD928: @@ -4023,22 +4645,48 @@ L_089DD928: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DD948u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 257u, 0x089DD948u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD948u) goto L_089DD948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD948: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x089DD954u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-1044), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 258u, 0x089DD954u, 0x08AD35C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 593u, 0x08AD35C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD954u) goto L_089DD954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD954: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD968: @@ -4052,8 +4700,21 @@ L_089DD968: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DD990u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 260u, 0x089DD990u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD990u) goto L_089DD990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD990: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); @@ -4070,8 +4731,21 @@ L_089DD9A0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089DD9B4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 262u, 0x089DD9B4u, 0x088DE1A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 346u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 346u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 346u, 0x088DE1A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD9B4u) goto L_089DD9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD9B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4085,8 +4759,21 @@ L_089DD9BC: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089DD9D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 264u, 0x089DD9D0u, 0x088DE1A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 346u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 346u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 346u, 0x088DE1A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DD9D0u) goto L_089DD9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DD9D0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4097,8 +4784,8 @@ L_089DD9D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DD9E8: @@ -4110,8 +4797,21 @@ L_089DD9E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DDA08u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 266u, 0x089DDA08u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDA08u) goto L_089DDA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDA08: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -4124,8 +4824,21 @@ L_089DDA08: L_089DDA14: aot_gpr_31 = (0x089DDA1Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 268u, 0x089DDA1Cu, 0x088DE1D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 350u, 0x088DE1D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDA1Cu) goto L_089DDA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDA1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4136,16 +4849,29 @@ L_089DDA1C: L_089DDA24: aot_gpr_31 = (0x089DDA2Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 270u, 0x089DDA2Cu, 0x088DE1D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 350u, 0x088DE1D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDA2Cu) goto L_089DDA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDA2C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DDA40: @@ -4251,8 +4977,8 @@ L_089DDAFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DDB14: @@ -4265,8 +4991,21 @@ L_089DDB14: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x089DDB3Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 283u, 0x089DDB3Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDB3Cu) goto L_089DDB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDB3C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8576), std::bit_cast(aot_fpr_12)); @@ -4304,8 +5043,8 @@ L_089DDB3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DDB90: @@ -4332,8 +5071,21 @@ L_089DDBB8: L_089DDBC0: aot_gpr_31 = (0x089DDBC8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 288u, 0x089DDBC8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDBC8u) goto L_089DDBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDBC8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4411,8 +5163,21 @@ L_089DDC28: goto L_089DDC34; L_089DDC34: aot_gpr_31 = (0x089DDC3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 299u, 0x089DDC3Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDC3Cu) goto L_089DDC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDC3C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_gpr_16 & 255u); @@ -4468,8 +5233,8 @@ L_089DDC7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DDC8C: @@ -4494,15 +5259,41 @@ L_089DDC8C: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x089DDCE4u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 309u, 0x089DDCE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDCE4u) goto L_089DDCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDCE4: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(-17536)); aot_gpr_31 = (0x089DDCF4u); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 310u, 0x089DDCF4u, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDCF4u) goto L_089DDCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDCF4: aot_gpr_4 = (ctx.gpr[18] + ctx.gpr[18]); ctx.gpr[7] = (ctx.gpr[18] + aot_gpr_4); @@ -4527,8 +5318,21 @@ L_089DDD14: } L_089DDD30: aot_gpr_31 = (0x089DDD38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 313u, 0x089DDD38u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDD38u) goto L_089DDD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDD38: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -4541,13 +5345,39 @@ L_089DDD40: aot_gpr_6 = (ctx.gpr[28] + static_cast(-11204)); aot_gpr_31 = (0x089DDD4Cu); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 315u, 0x089DDD4Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDD4Cu) goto L_089DDD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDD4C: aot_gpr_31 = (0x089DDD54u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 316u, 0x089DDD54u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDD54u) goto L_089DDD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDD54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); goto L_089DDD58; @@ -4555,19 +5385,58 @@ L_089DDD58: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089DDD64u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 318u, 0x089DDD64u, 0x08946D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 559u, 0x08946D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDD64u) goto L_089DDD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDD64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x089DDD70u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 319u, 0x089DDD70u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDD70u) goto L_089DDD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDD70: aot_gpr_31 = (0x089DDD78u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 320u, 0x089DDD78u, 0x08946E58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 569u, 0x08946E58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDD78u) goto L_089DDD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDD78: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); @@ -4595,16 +5464,42 @@ L_089DDDB0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089DDDBCu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 323u, 0x089DDDBCu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDDBCu) goto L_089DDDBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDDBC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089DDDC0; L_089DDDC0: aot_gpr_31 = (0x089DDDC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 325u, 0x089DDDC8u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDDC8u) goto L_089DDDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDDC8: aot_fpr_12 = aot_fpr_20 + ctx.fpr[0]; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -4617,13 +5512,39 @@ L_089DDDC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089DDDF8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 326u, 0x089DDDF8u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDDF8u) goto L_089DDDF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDDF8: aot_gpr_31 = (0x089DDE00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 327u, 0x089DDE00u, 0x08946EA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 571u, 0x08946EA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDE00u) goto L_089DDE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDE00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DDE0Cu); @@ -4655,8 +5576,8 @@ L_089DDE20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DDE54: @@ -4670,8 +5591,21 @@ L_089DDE54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DDE7Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 331u, 0x089DDE7Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDE7Cu) goto L_089DDE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDE7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DDE88u); @@ -4708,8 +5642,8 @@ L_089DDEAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DDEC4: @@ -4725,8 +5659,21 @@ L_089DDEC4: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089DDEF8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 337u, 0x089DDEF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDEF8u) goto L_089DDEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDEF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DDF04u); @@ -4828,8 +5775,8 @@ L_089DDF98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DDFB4: @@ -4845,8 +5792,21 @@ L_089DDFB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DDFE4u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 350u, 0x089DDFE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DDFE4u) goto L_089DDFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DDFE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DDFF0u); @@ -4878,8 +5838,8 @@ L_089DE010: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE02C: @@ -4899,8 +5859,21 @@ L_089DE02C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089DE06Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 355u, 0x089DE06Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE06Cu) goto L_089DE06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE06C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE078u); @@ -4940,8 +5913,21 @@ L_089DE0B8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089DE0C4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 360u, 0x089DE0C4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE0C4u) goto L_089DE0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE0C4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16457u << 16u); @@ -4959,14 +5945,40 @@ L_089DE0CC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089DE0FCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 362u, 0x089DE0FCu, 0x0897FAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 938u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 938u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 938u, 0x0897FAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE0FCu) goto L_089DE0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE0FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x089DE108u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 363u, 0x089DE108u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE108u) goto L_089DE108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE108: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4989,8 +6001,8 @@ L_089DE11C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE144: @@ -5004,8 +6016,21 @@ L_089DE144: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DE16Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 366u, 0x089DE16Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE16Cu) goto L_089DE16C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE16C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE178u); @@ -5021,8 +6046,21 @@ L_089DE180: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x089DE18Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 369u, 0x089DE18Cu, 0x08947470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 655u, 0x08947470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE18Cu) goto L_089DE18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE18C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5033,8 +6071,8 @@ L_089DE18C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE1A4: @@ -5048,8 +6086,21 @@ L_089DE1A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DE1CCu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 371u, 0x089DE1CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE1CCu) goto L_089DE1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE1CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE1D8u); @@ -5065,8 +6116,21 @@ L_089DE1E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x089DE1ECu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 374u, 0x089DE1ECu, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE1ECu) goto L_089DE1EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE1EC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5077,8 +6141,8 @@ L_089DE1EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE204: @@ -5094,8 +6158,21 @@ L_089DE204: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DE234u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 376u, 0x089DE234u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE234u) goto L_089DE234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE234: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE240u); @@ -5198,8 +6275,8 @@ L_089DE2D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE2F4: @@ -5211,8 +6288,21 @@ L_089DE2F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DE314u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 389u, 0x089DE314u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE314u) goto L_089DE314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE314: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE320u); @@ -5228,16 +6318,29 @@ L_089DE328: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x089DE334u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 392u, 0x089DE334u, 0x08947470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 655u, 0x08947470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE334u) goto L_089DE334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE334: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE348: @@ -5251,8 +6354,21 @@ L_089DE348: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DE370u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 394u, 0x089DE370u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE370u) goto L_089DE370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE370: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5283,8 +6399,8 @@ L_089DE38C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE3A4: @@ -5367,8 +6483,8 @@ L_089DE424: L_089DE428: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE430: @@ -5383,8 +6499,21 @@ L_089DE430: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089DE45Cu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 409u, 0x089DE45Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE45Cu) goto L_089DE45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE45C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE468u); @@ -5479,8 +6608,8 @@ L_089DE4F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE510: @@ -5494,8 +6623,21 @@ L_089DE510: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089DE538u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 421u, 0x089DE538u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE538u) goto L_089DE538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE538: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE544u); @@ -5526,8 +6668,21 @@ L_089DE55C: L_089DE564: aot_gpr_31 = (0x089DE56Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 427u, 0x089DE56Cu, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE56Cu) goto L_089DE56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE56C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5560,8 +6715,21 @@ L_089DE594: goto L_089DE5A0; L_089DE5A0: aot_gpr_31 = (0x089DE5A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 432u, 0x089DE5A8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE5A8u) goto L_089DE5A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE5A8: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] & 255u); @@ -5603,8 +6771,21 @@ L_089DE5DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DE5E8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 439u, 0x089DE5E8u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE5E8u) goto L_089DE5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE5E8: aot_gpr_31 = (0x089DE5F0u); goto L_089DDB90; @@ -5636,8 +6817,21 @@ L_089DE614: L_089DE61C: aot_gpr_31 = (0x089DE624u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 445u, 0x089DE624u, 0x08909180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 301u, 0x08909180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE624u) goto L_089DE624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE624: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5669,8 +6863,21 @@ L_089DE648: goto L_089DE654; L_089DE654: aot_gpr_31 = (0x089DE65Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 450u, 0x089DE65Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE65Cu) goto L_089DE65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE65C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] & 255u); @@ -5711,8 +6918,21 @@ L_089DE68C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DE698u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 457u, 0x089DE698u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE698u) goto L_089DE698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE698: aot_gpr_31 = (0x089DE6A0u); goto L_089DDB90; @@ -5730,8 +6950,21 @@ L_089DE6A8: L_089DE6B0: aot_gpr_31 = (0x089DE6B8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 461u, 0x089DE6B8u, 0x08909180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 301u, 0x08909180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE6B8u) goto L_089DE6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE6B8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5742,8 +6975,8 @@ L_089DE6B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE6D0: @@ -5759,8 +6992,21 @@ L_089DE6D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DE700u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 463u, 0x089DE700u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE700u) goto L_089DE700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE700: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE70Cu); @@ -5793,8 +7039,8 @@ L_089DE730: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE74C: @@ -5806,21 +7052,47 @@ L_089DE74C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DE76Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 468u, 0x089DE76Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE76Cu) goto L_089DE76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE76C: aot_gpr_31 = (0x089DE774u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 469u, 0x089DE774u, 0x08AB3E3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 997u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 997u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 997u, 0x08AB3E3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE774u) goto L_089DE774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE774: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE788: @@ -5834,8 +7106,21 @@ L_089DE788: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DE7B0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 471u, 0x089DE7B0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE7B0u) goto L_089DE7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE7B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE7BCu); @@ -5861,8 +7146,21 @@ L_089DE7D4: aot_gpr_4 = (aot_gpr_4 | 1u); aot_gpr_31 = (0x089DE7E0u); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(2318), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 475u, 0x089DE7E0u, 0x08895340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 249u, 0x08895340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE7E0u) goto L_089DE7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE7E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5885,8 +7183,8 @@ L_089DE7F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE80C: @@ -5899,8 +7197,21 @@ L_089DE80C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DE830u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 479u, 0x089DE830u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE830u) goto L_089DE830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE830: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5937,8 +7248,8 @@ L_089DE85C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE870: @@ -5952,8 +7263,21 @@ L_089DE870: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DE898u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 486u, 0x089DE898u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE898u) goto L_089DE898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE898: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE8A4u); @@ -5969,8 +7293,21 @@ L_089DE8AC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089DE8B8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 489u, 0x089DE8B8u, 0x089607E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 90u, 0x089607E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE8B8u) goto L_089DE8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE8B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6051,8 +7388,8 @@ L_089DE938: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DE950: @@ -6068,8 +7405,21 @@ L_089DE950: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x089DE980u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 499u, 0x089DE980u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE980u) goto L_089DE980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE980: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -6097,8 +7447,21 @@ L_089DE9B8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089DE9C4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 502u, 0x089DE9C4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE9C4u) goto L_089DE9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE9C4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089DE9C8; @@ -6110,8 +7473,21 @@ L_089DE9C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089DE9E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 504u, 0x089DE9E4u, 0x08A94984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 99u, 0x08A94984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DE9E4u) goto L_089DE9E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DE9E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DE9F0u); @@ -6126,8 +7502,21 @@ L_089DE9F0: L_089DE9F8: aot_gpr_31 = (0x089DEA00u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 507u, 0x089DEA00u, 0x089616B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 261u, 0x089616B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEA00u) goto L_089DEA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEA00: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -6140,23 +7529,36 @@ L_089DEA00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DEA20: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089DEA30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 509u, 0x089DEA30u, 0x08A36418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 566u, 0x08A36418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEA30u) goto L_089DEA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEA30: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DEA40: @@ -6172,13 +7574,39 @@ L_089DEA40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DEA70u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 511u, 0x089DEA70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEA70u) goto L_089DEA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEA70: aot_gpr_31 = (0x089DEA78u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 512u, 0x089DEA78u, 0x08A36450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 569u, 0x08A36450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEA78u) goto L_089DEA78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEA78: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6198,8 +7626,8 @@ L_089DEA8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DEAA8: @@ -6214,8 +7642,21 @@ L_089DEAA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DEAD4u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 515u, 0x089DEAD4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEAD4u) goto L_089DEAD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEAD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DEAE0u); @@ -6232,8 +7673,21 @@ L_089DEAEC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089DEAF8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 518u, 0x089DEAF8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEAF8u) goto L_089DEAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEAF8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6356,8 +7810,8 @@ L_089DEBAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DEBC8: @@ -6373,16 +7827,42 @@ L_089DEBC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089DEBF8u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 533u, 0x089DEBF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEBF8u) goto L_089DEBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEBF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089DEC0Cu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 534u, 0x089DEC0Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEC0Cu) goto L_089DEC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEC0C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_5 != 0u) { @@ -6457,8 +7937,21 @@ L_089DEC78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DEC88u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 544u, 0x089DEC88u, 0x08AD32D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 552u, 0x08AD32D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEC88u) goto L_089DEC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEC88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6471,8 +7964,21 @@ L_089DEC90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089DECA0u); aot_gpr_6 = (0u | 132u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 546u, 0x089DECA0u, 0x08AD32D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 552u, 0x08AD32D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DECA0u) goto L_089DECA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DECA0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -6484,8 +7990,8 @@ L_089DECA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DECBC: @@ -6498,8 +8004,21 @@ L_089DECBC: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089DECE4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 548u, 0x089DECE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DECE4u) goto L_089DECE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DECE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DECF0u); @@ -6542,8 +8061,8 @@ L_089DED14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DED2C: @@ -6557,8 +8076,21 @@ L_089DED2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DED54u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 555u, 0x089DED54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DED54u) goto L_089DED54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DED54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DED60u); @@ -6601,8 +8133,8 @@ L_089DED84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DED9C: @@ -6616,8 +8148,21 @@ L_089DED9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DEDC4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 562u, 0x089DEDC4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEDC4u) goto L_089DEDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEDC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DEDD0u); @@ -6643,8 +8188,21 @@ L_089DEDE8: aot_gpr_4 = (aot_gpr_4 | 2u); aot_gpr_31 = (0x089DEDF4u); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(2318), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 566u, 0x089DEDF4u, 0x08895340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 249u, 0x08895340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEDF4u) goto L_089DEDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEDF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6667,8 +8225,8 @@ L_089DEE08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DEE20: @@ -6681,8 +8239,21 @@ L_089DEE20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DEE44u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 570u, 0x089DEE44u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEE44u) goto L_089DEE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEE44: aot_gpr_31 = (0x089DEE4Cu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); @@ -6699,8 +8270,8 @@ L_089DEE4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DEE68: @@ -6724,8 +8295,21 @@ L_089DEE84: L_089DEE8C: aot_gpr_31 = (0x089DEE94u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 576u, 0x089DEE94u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEE94u) goto L_089DEE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEE94: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6749,8 +8333,21 @@ L_089DEEB8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089DEED0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 579u, 0x089DEED0u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEED0u) goto L_089DEED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEED0: aot_gpr_31 = (0x089DEED8u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEED8u) goto L_089DEED8; @@ -6779,8 +8376,8 @@ L_089DEEF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DEF04: @@ -6803,8 +8400,21 @@ L_089DEF28: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x089DEF38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 584u, 0x089DEF38u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEF38u) goto L_089DEF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEF38: aot_gpr_31 = (0x089DEF40u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-11216)); @@ -6813,8 +8423,21 @@ L_089DEF38: L_089DEF40: aot_gpr_31 = (0x089DEF48u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 586u, 0x089DEF48u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DEF48u) goto L_089DEF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DEF48: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4214))); aot_gpr_4 = (ctx.gpr[2] | aot_gpr_4); @@ -6903,8 +8526,8 @@ L_089DEFD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DEFE8: @@ -6918,8 +8541,21 @@ L_089DEFE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DF010u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 597u, 0x089DF010u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF010u) goto L_089DF010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF010: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF01Cu); @@ -7103,8 +8739,8 @@ L_089DF128: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF140: @@ -7116,8 +8752,21 @@ L_089DF140: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089DF160u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 622u, 0x089DF160u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF160u) goto L_089DF160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF160: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF16Cu); @@ -7142,8 +8791,21 @@ L_089DF180: aot_mem.aot_direct_store16(ctx.gpr[2] + static_cast(154), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089DF198u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 626u, 0x089DF198u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF198u) goto L_089DF198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF198: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7165,8 +8827,8 @@ L_089DF1AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF1CC: @@ -7180,8 +8842,21 @@ L_089DF1CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DF1F4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 630u, 0x089DF1F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF1F4u) goto L_089DF1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF1F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF200u); @@ -7202,8 +8877,21 @@ L_089DF210: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x089DF21Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 634u, 0x089DF21Cu, 0x0898BB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 953u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 953u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 953u, 0x0898BB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF21Cu) goto L_089DF21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF21C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7214,8 +8902,8 @@ L_089DF21C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF234: @@ -7232,15 +8920,28 @@ L_089DF234: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089DF268u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 636u, 0x089DF268u, 0x08961774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 274u, 0x08961774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF268u) goto L_089DF268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF268: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF278: @@ -7254,8 +8955,21 @@ L_089DF278: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DF2A0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 638u, 0x089DF2A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF2A0u) goto L_089DF2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF2A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF2ACu); @@ -7298,8 +9012,8 @@ L_089DF2D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF2E8: @@ -7313,8 +9027,21 @@ L_089DF2E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DF310u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 645u, 0x089DF310u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF310u) goto L_089DF310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF310: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF31Cu); @@ -7357,8 +9084,8 @@ L_089DF340: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF358: @@ -7376,8 +9103,21 @@ L_089DF358: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089DF390u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 652u, 0x089DF390u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF390u) goto L_089DF390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF390: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF39Cu); @@ -7431,8 +9171,8 @@ L_089DF3E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF400: @@ -7451,8 +9191,8 @@ L_089DF410: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF430: @@ -7468,8 +9208,21 @@ L_089DF430: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089DF460u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 662u, 0x089DF460u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF460u) goto L_089DF460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF460: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF46Cu); @@ -7509,8 +9262,21 @@ L_089DF4AC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089DF4B8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 667u, 0x089DF4B8u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF4B8u) goto L_089DF4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF4B8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16457u << 16u); @@ -7529,8 +9295,21 @@ L_089DF4C0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089DF4F4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 669u, 0x089DF4F4u, 0x0897FAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 938u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 938u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 938u, 0x0897FAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF4F4u) goto L_089DF4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF4F4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -7543,8 +9322,8 @@ L_089DF4F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF514: @@ -7560,8 +9339,21 @@ L_089DF514: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DF544u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 671u, 0x089DF544u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF544u) goto L_089DF544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF544: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -7583,8 +9375,21 @@ L_089DF574: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089DF580u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 673u, 0x089DF580u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF580u) goto L_089DF580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF580: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -7615,8 +9420,8 @@ L_089DF5A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF5BC: @@ -7628,8 +9433,21 @@ L_089DF5BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DF5DCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 678u, 0x089DF5DCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF5DCu) goto L_089DF5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF5DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7656,8 +9474,8 @@ L_089DF5F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF60C: @@ -7672,8 +9490,21 @@ L_089DF60C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DF638u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 683u, 0x089DF638u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF638u) goto L_089DF638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF638: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF644u); @@ -7690,8 +9521,21 @@ L_089DF64C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x089DF65Cu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 686u, 0x089DF65Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF65Cu) goto L_089DF65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF65C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7795,8 +9639,8 @@ L_089DF700: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF71C: @@ -7811,8 +9655,21 @@ L_089DF71C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DF748u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 699u, 0x089DF748u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF748u) goto L_089DF748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF748: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF754u); @@ -7829,8 +9686,21 @@ L_089DF75C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x089DF76Cu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 702u, 0x089DF76Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF76Cu) goto L_089DF76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF76C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7934,8 +9804,8 @@ L_089DF810: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF82C: @@ -7950,8 +9820,21 @@ L_089DF82C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DF858u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 715u, 0x089DF858u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF858u) goto L_089DF858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF858: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF864u); @@ -7968,8 +9851,21 @@ L_089DF86C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x089DF87Cu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 718u, 0x089DF87Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF87Cu) goto L_089DF87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF87C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8073,8 +9969,8 @@ L_089DF920: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF93C: @@ -8086,8 +9982,21 @@ L_089DF93C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DF95Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 731u, 0x089DF95Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF95Cu) goto L_089DF95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF95C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF968u); @@ -8106,8 +10015,8 @@ L_089DF970: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DF988: @@ -8123,8 +10032,21 @@ L_089DF988: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DF9B8u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 735u, 0x089DF9B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DF9B8u) goto L_089DF9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DF9B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DF9C4u); @@ -8156,8 +10078,8 @@ L_089DF9E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFA00: @@ -8172,8 +10094,21 @@ L_089DFA00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089DFA2Cu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 740u, 0x089DFA2Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFA2Cu) goto L_089DFA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFA2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DFA38u); @@ -8190,8 +10125,21 @@ L_089DFA40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x089DFA50u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 743u, 0x089DFA50u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFA50u) goto L_089DFA50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFA50: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8309,8 +10257,8 @@ L_089DFB0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFB28: @@ -8322,8 +10270,21 @@ L_089DFB28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DFB48u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 758u, 0x089DFB48u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFB48u) goto L_089DFB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFB48: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8350,8 +10311,8 @@ L_089DFB64: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFB78: @@ -8368,15 +10329,28 @@ L_089DFB78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089DFBACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 763u, 0x089DFBACu, 0x08961774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 274u, 0x08961774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFBACu) goto L_089DFBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFBAC: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFBBC: @@ -8456,8 +10430,8 @@ L_089DFC44: L_089DFC48: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFC50: @@ -8471,8 +10445,21 @@ L_089DFC50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DFC78u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 774u, 0x089DFC78u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFC78u) goto L_089DFC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFC78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DFC84u); @@ -8490,8 +10477,21 @@ L_089DFC8C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x089DFCA0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 777u, 0x089DFCA0u, 0x08A06800u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 633u, 0x08A06800u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFCA0u) goto L_089DFCA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFCA0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8502,8 +10502,8 @@ L_089DFCA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFCB8: @@ -8520,16 +10520,42 @@ L_089DFCB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x089DFCECu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 779u, 0x089DFCECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFCECu) goto L_089DFCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFCEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089DFD00u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 780u, 0x089DFD00u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFD00u) goto L_089DFD00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFD00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -8624,8 +10650,21 @@ L_089DFD9C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089DFDACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 793u, 0x089DFDACu, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFDACu) goto L_089DFDAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFDAC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); ctx.gpr[18] = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); @@ -8709,8 +10748,8 @@ L_089DFE2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFE4C: @@ -8723,8 +10762,21 @@ L_089DFE4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089DFE70u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 803u, 0x089DFE70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFE70u) goto L_089DFE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFE70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DFE7Cu); @@ -8763,8 +10815,8 @@ L_089DFEA0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFEB4: @@ -8778,8 +10830,21 @@ L_089DFEB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089DFEDCu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 810u, 0x089DFEDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFEDCu) goto L_089DFEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFEDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089DFEE8u); @@ -8813,8 +10878,21 @@ L_089DFF20: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x089DFF30u); aot_gpr_4 = (aot_gpr_4 + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 814u, 0x089DFF30u, 0x088BA728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 517u, 0x088BA728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFF30u) goto L_089DFF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFF30: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8825,8 +10903,8 @@ L_089DFF30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFF48: @@ -8840,8 +10918,21 @@ L_089DFF48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x089DFF70u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 816u, 0x089DFF70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFF70u) goto L_089DFF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFF70: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[7]{}; @@ -8863,8 +10954,21 @@ L_089DFF70: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089DFFB8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 817u, 0x089DFFB8u, 0x08966F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 480u, 0x08966F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFFB8u) goto L_089DFFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFFB8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8875,27 +10979,53 @@ L_089DFFB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFFD0: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089DFFE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 819u, 0x089DFFE0u, 0x08966FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 484u, 0x08966FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFFE0u) goto L_089DFFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFFE0: aot_gpr_31 = (0x089DFFE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0118->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0118_entry, 820u, 0x089DFFE8u, 0x089672CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 525u, 0x089672CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089DFFE8u) goto L_089DFFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089DFFE8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089DFFF8: diff --git a/profiles/vcs/generated/generated_unit_0119.cpp b/profiles/vcs/generated/generated_unit_0119.cpp index f6bd7a6..598a952 100644 --- a/profiles/vcs/generated/generated_unit_0119.cpp +++ b/profiles/vcs/generated/generated_unit_0119.cpp @@ -924,6 +924,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089E0000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -946,8 +970,21 @@ L_089E0000: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E0020u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 2u, 0x089E0020u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0020u) goto L_089E0020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0020: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E002Cu); @@ -985,8 +1022,21 @@ L_089E006C: L_089E0070: aot_gpr_31 = (0x089E0078u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 8u, 0x089E0078u, 0x089BB19Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 669u, 0x089BB19Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0078u) goto L_089E0078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0078: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -997,8 +1047,8 @@ L_089E0078: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0090: @@ -1012,8 +1062,21 @@ L_089E0090: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E00B8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 10u, 0x089E00B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E00B8u) goto L_089E00B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E00B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E00C4u); @@ -1051,8 +1114,21 @@ L_089E0104: L_089E0108: aot_gpr_31 = (0x089E0110u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 16u, 0x089E0110u, 0x089BB19Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 669u, 0x089BB19Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0110u) goto L_089E0110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0110: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1063,8 +1139,8 @@ L_089E0110: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0128: @@ -1154,8 +1230,8 @@ L_089E01D8: L_089E01DC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E01E4: @@ -1167,8 +1243,21 @@ L_089E01E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089E0204u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 27u, 0x089E0204u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0204u) goto L_089E0204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0204: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1195,8 +1284,8 @@ L_089E0220: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0234: @@ -1212,8 +1301,21 @@ L_089E0234: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x089E0264u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 32u, 0x089E0264u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0264u) goto L_089E0264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0264: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E0270u); @@ -1232,8 +1334,21 @@ L_089E0278: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089E0290u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 35u, 0x089E0290u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0290u) goto L_089E0290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0290: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); if (aot_gpr_4 != 0u) { @@ -1261,14 +1376,40 @@ L_089E02AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_6); aot_gpr_31 = (0x089E02C8u); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 39u, 0x089E02C8u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E02C8u) goto L_089E02C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E02C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E02D4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 40u, 0x089E02D4u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E02D4u) goto L_089E02D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E02D4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1286,8 +1427,21 @@ L_089E02D4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089E02E8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 41u, 0x089E02E8u, 0x08A8E2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 433u, 0x08A8E2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E02E8u) goto L_089E02E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E02E8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -1388,8 +1542,8 @@ L_089E0388: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E03A4: @@ -1403,8 +1557,21 @@ L_089E03A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089E03CCu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 53u, 0x089E03CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E03CCu) goto L_089E03CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E03CC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -1419,8 +1586,21 @@ L_089E03CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(ctx.fpr[14])); aot_gpr_31 = (0x089E03F4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 54u, 0x089E03F4u, 0x0896725Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 521u, 0x0896725Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E03F4u) goto L_089E03F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E03F4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1431,8 +1611,8 @@ L_089E03F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E040C: @@ -1446,8 +1626,21 @@ L_089E040C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089E0434u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 56u, 0x089E0434u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0434u) goto L_089E0434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0434: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -1462,8 +1655,21 @@ L_089E0434: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(ctx.fpr[14])); aot_gpr_31 = (0x089E045Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 57u, 0x089E045Cu, 0x089672B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 524u, 0x089672B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E045Cu) goto L_089E045C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E045C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1474,8 +1680,8 @@ L_089E045C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0474: @@ -1490,8 +1696,21 @@ L_089E0474: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089E04A0u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 59u, 0x089E04A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E04A0u) goto L_089E04A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E04A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E04ACu); @@ -1508,8 +1727,21 @@ L_089E04B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x089E04C4u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 62u, 0x089E04C4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E04C4u) goto L_089E04C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E04C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1609,8 +1841,8 @@ L_089E0564: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0580: @@ -1622,8 +1854,21 @@ L_089E0580: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089E05A0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 74u, 0x089E05A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E05A0u) goto L_089E05A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E05A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -1632,8 +1877,8 @@ L_089E05A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E05BC: @@ -1647,8 +1892,21 @@ L_089E05BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E05E4u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 76u, 0x089E05E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E05E4u) goto L_089E05E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E05E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E05F0u); @@ -1665,8 +1923,21 @@ L_089E05F8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089E0608u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 79u, 0x089E0608u, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0608u) goto L_089E0608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0608: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1747,8 +2018,8 @@ L_089E0688: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E06A0: @@ -1774,8 +2045,21 @@ L_089E06A0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089E06F8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 89u, 0x089E06F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E06F8u) goto L_089E06F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E06F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x089E0704u); @@ -1860,8 +2144,21 @@ L_089E07A8: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x089E07C0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 98u, 0x089E07C0u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E07C0u) goto L_089E07C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E07C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1876,14 +2173,40 @@ L_089E07C8: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x089E07E0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 100u, 0x089E07E0u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E07E0u) goto L_089E07E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E07E0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089E07ECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 101u, 0x089E07ECu, 0x08A1D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 223u, 0x08A1D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E07ECu) goto L_089E07EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E07EC: { const bool branch_taken = 0u == 0u; ctx.gpr[22] = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); @@ -1906,8 +2229,21 @@ L_089E07FC: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x089E0814u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 104u, 0x089E0814u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0814u) goto L_089E0814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0814: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1922,8 +2258,21 @@ L_089E081C: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x089E0834u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 106u, 0x089E0834u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0834u) goto L_089E0834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0834: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(948), static_cast(ctx.gpr[20])); ctx.gpr[22] = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); @@ -1943,12 +2292,38 @@ L_089E0844: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089E0860u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 109u, 0x089E0860u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0860u) goto L_089E0860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0860: aot_gpr_31 = (0x089E0868u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 110u, 0x089E0868u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0868u) goto L_089E0868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0868: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1958,8 +2333,21 @@ L_089E0868: } L_089E0870: aot_gpr_31 = (0x089E0878u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 112u, 0x089E0878u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0878u) goto L_089E0878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0878: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(615)))))); aot_gpr_5 = (0u + static_cast(-65)); @@ -1981,16 +2369,29 @@ L_089E0888: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E08B4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089E08C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 115u, 0x089E08C4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E08C4u) goto L_089E08C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E08C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2000,8 +2401,21 @@ L_089E08C4: } L_089E08CC: aot_gpr_31 = (0x089E08D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 117u, 0x089E08D4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E08D4u) goto L_089E08D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E08D4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(615)))))); aot_gpr_5 = (0u + static_cast(-65)); @@ -2012,8 +2426,21 @@ L_089E08D4: L_089E08E8: aot_gpr_31 = (0x089E08F0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 119u, 0x089E08F0u, 0x0897FD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 962u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 962u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 962u, 0x0897FD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E08F0u) goto L_089E08F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E08F0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2029,15 +2456,28 @@ L_089E08F0: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x089E0928u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 120u, 0x089E0928u, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0928u) goto L_089E0928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0928: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0938: @@ -2049,8 +2489,21 @@ L_089E0938: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089E0958u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 122u, 0x089E0958u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0958u) goto L_089E0958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0958: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (2236u << 16u); @@ -2079,8 +2532,8 @@ L_089E0978: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E098C: @@ -2176,8 +2629,8 @@ L_089E0A34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0A4C: @@ -2255,8 +2708,8 @@ L_089E0ACC: L_089E0AD0: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0AD8: @@ -2268,8 +2721,21 @@ L_089E0AD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089E0AF8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 146u, 0x089E0AF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0AF8u) goto L_089E0AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0AF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -2278,8 +2744,8 @@ L_089E0AF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0B14: @@ -2294,8 +2760,21 @@ L_089E0B14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089E0B40u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 148u, 0x089E0B40u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0B40u) goto L_089E0B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0B40: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x089E0B4Cu); @@ -2321,8 +2800,8 @@ L_089E0B5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0B7C: @@ -2332,8 +2811,21 @@ L_089E0B7C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089E0B94u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 152u, 0x089E0B94u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0B94u) goto L_089E0B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0B94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -2373,8 +2865,8 @@ L_089E0BD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0BE0: @@ -2386,8 +2878,21 @@ L_089E0BE0: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x089E0C00u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 159u, 0x089E0C00u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0C00u) goto L_089E0C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0C00: aot_gpr_31 = (0x089E0C08u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0C08u) goto L_089E0C08; @@ -2422,8 +2927,8 @@ L_089E0C38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0C4C: @@ -2439,8 +2944,21 @@ L_089E0C4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089E0C7Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 165u, 0x089E0C7Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0C7Cu) goto L_089E0C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0C7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E0C88u); @@ -2473,8 +2991,8 @@ L_089E0CAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0CC8: @@ -2491,8 +3009,21 @@ L_089E0CC8: aot_gpr_5 = (aot_gpr_4 + static_cast(16)); aot_gpr_31 = (0x089E0D10u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 170u, 0x089E0D10u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0D10u) goto L_089E0D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0D10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E0D1Cu); @@ -2586,8 +3117,21 @@ L_089E0DA0: L_089E0DAC: aot_gpr_31 = (0x089E0DB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 183u, 0x089E0DB4u, 0x089051ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 241u, 0x089051ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0DB4u) goto L_089E0DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0DB4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2643,8 +3187,21 @@ L_089E0DFC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x089E0E0Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 190u, 0x089E0E0Cu, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0E0Cu) goto L_089E0E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0E0C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2695,8 +3252,8 @@ L_089E0E50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0E84: @@ -2710,8 +3267,21 @@ L_089E0E84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E0EACu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 195u, 0x089E0EACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0EACu) goto L_089E0EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0EAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E0EB8u); @@ -2745,8 +3315,8 @@ L_089E0EC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0F08: @@ -2759,8 +3329,21 @@ L_089E0F08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x089E0F2Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 199u, 0x089E0F2Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0F2Cu) goto L_089E0F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0F2C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2785,8 +3368,21 @@ L_089E0F44: L_089E0F4C: aot_gpr_31 = (0x089E0F54u); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 203u, 0x089E0F54u, 0x089604E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 58u, 0x089604E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0F54u) goto L_089E0F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0F54: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2831,8 +3427,21 @@ L_089E0F7C: L_089E0F80: aot_gpr_31 = (0x089E0F88u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 207u, 0x089E0F88u, 0x0880EA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 567u, 0x0880EA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0F88u) goto L_089E0F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0F88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2883,8 +3492,8 @@ L_089E0FC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E0FDC: @@ -2896,8 +3505,21 @@ L_089E0FDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089E0FFCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 214u, 0x089E0FFCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E0FFCu) goto L_089E0FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E0FFC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); @@ -2916,8 +3538,8 @@ L_089E0FFC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1040: @@ -2931,8 +3553,21 @@ L_089E1040: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089E1068u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 216u, 0x089E1068u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1068u) goto L_089E1068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1068: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[4]{}; @@ -2948,8 +3583,21 @@ L_089E1068: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(ctx.fpr[14])); aot_gpr_31 = (0x089E1094u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 217u, 0x089E1094u, 0x08AB663Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 658u, 0x08AB663Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1094u) goto L_089E1094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1094: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2960,8 +3608,8 @@ L_089E1094: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E10AC: @@ -2975,8 +3623,21 @@ L_089E10AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E10D4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 219u, 0x089E10D4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E10D4u) goto L_089E10D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E10D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E10E0u); @@ -3004,8 +3665,21 @@ L_089E10FC: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(3262), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089E110Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 223u, 0x089E110Cu, 0x0894857Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 84u, 0x0894857Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E110Cu) goto L_089E110C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E110C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3016,8 +3690,21 @@ L_089E110C: L_089E1114: aot_gpr_31 = (0x089E111Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 225u, 0x089E111Cu, 0x0894D1B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 261u, 0x0894D1B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E111Cu) goto L_089E111C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E111C: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (0u | 11u); @@ -3025,8 +3712,21 @@ L_089E111C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089E1134u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 226u, 0x089E1134u, 0x08A1D018u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 167u, 0x08A1D018u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1134u) goto L_089E1134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1134: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3040,8 +3740,21 @@ L_089E113C: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(3262), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089E1150u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 228u, 0x089E1150u, 0x08948568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 83u, 0x08948568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1150u) goto L_089E1150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1150: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3052,8 +3765,8 @@ L_089E1150: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1168: @@ -3067,8 +3780,21 @@ L_089E1168: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E1190u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 230u, 0x089E1190u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1190u) goto L_089E1190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1190: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E119Cu); @@ -3190,8 +3916,8 @@ L_089E1270: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1288: @@ -3205,8 +3931,21 @@ L_089E1288: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E12B0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 244u, 0x089E12B0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E12B0u) goto L_089E12B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E12B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E12BCu); @@ -3299,8 +4038,8 @@ L_089E13B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E13CC: @@ -3316,8 +4055,21 @@ L_089E13CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x089E1400u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 250u, 0x089E1400u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1400u) goto L_089E1400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1400: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3363,23 +4115,36 @@ L_089E141C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E145C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089E146Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 254u, 0x089E146Cu, 0x088635ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 629u, 0x088635ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E146Cu) goto L_089E146C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E146C: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E147C: @@ -3392,8 +4157,21 @@ L_089E147C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089E14A4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 256u, 0x089E14A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E14A4u) goto L_089E14A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E14A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x089E14B0u); @@ -3436,8 +4214,8 @@ L_089E14D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E14EC: @@ -3453,8 +4231,21 @@ L_089E14EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x089E1520u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 263u, 0x089E1520u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1520u) goto L_089E1520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1520: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3500,8 +4291,8 @@ L_089E153C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E157C: @@ -3514,8 +4305,21 @@ L_089E157C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E15A0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 267u, 0x089E15A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E15A0u) goto L_089E15A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E15A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3533,8 +4337,21 @@ L_089E15B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); aot_gpr_31 = (0x089E15C0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 270u, 0x089E15C0u, 0x0880EA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 567u, 0x0880EA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E15C0u) goto L_089E15C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E15C0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3545,8 +4362,8 @@ L_089E15C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E15D8: @@ -3567,8 +4384,8 @@ L_089E1600: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1610: @@ -3576,8 +4393,8 @@ L_089E1610: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7592), static_cast(aot_gpr_4)); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1620: @@ -3586,29 +4403,55 @@ L_089E1620: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089E1634u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 275u, 0x089E1634u, 0x08890838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 123u, 0x08890838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1634u) goto L_089E1634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1634: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1640: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089E1650u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 277u, 0x089E1650u, 0x08890F48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 157u, 0x08890F48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1650u) goto L_089E1650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1650: ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1660: @@ -3623,8 +4466,8 @@ L_089E1674: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1684: @@ -3632,8 +4475,21 @@ L_089E1684: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089E1694u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-11168)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 281u, 0x089E1694u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1694u) goto L_089E1694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1694: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3656,8 +4512,8 @@ L_089E16A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E16B4: @@ -3668,8 +4524,21 @@ L_089E16B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E16D0u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 286u, 0x089E16D0u, 0x0893671Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 674u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 674u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 674u, 0x0893671Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E16D0u) goto L_089E16D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E16D0: aot_gpr_5 = (0u | 26u); { const bool branch_taken = ctx.gpr[17] != aot_gpr_5; @@ -3708,8 +4577,8 @@ L_089E1708: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[17]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-3320))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1720: @@ -3821,30 +4690,69 @@ L_089E179C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E17B0: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089E17C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 309u, 0x089E17C0u, 0x0886180Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 227u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 227u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 227u, 0x0886180Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E17C0u) goto L_089E17C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E17C0: aot_gpr_31 = (0x089E17C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 310u, 0x089E17C8u, 0x08861814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 228u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 228u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 228u, 0x08861814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E17C8u) goto L_089E17C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E17C8: aot_gpr_31 = (0x089E17D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 311u, 0x089E17D0u, 0x0886181Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 229u, 0x0886181Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E17D0u) goto L_089E17D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E17D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E17DC: @@ -3855,8 +4763,21 @@ L_089E17DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E17F8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 313u, 0x089E17F8u, 0x0886094Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 102u, 0x0886094Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E17F8u) goto L_089E17F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E17F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3897,8 +4818,21 @@ L_089E1834: ctx.gpr[17] = (0u | 1u); aot_gpr_31 = (0x089E1840u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 320u, 0x089E1840u, 0x08860C08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 149u, 0x08860C08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1840u) goto L_089E1840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1840: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3920,8 +4854,21 @@ L_089E1854: } L_089E185C: aot_gpr_31 = (0x089E1864u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 324u, 0x089E1864u, 0x088614ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 178u, 0x088614ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1864u) goto L_089E1864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1864: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3931,12 +4878,38 @@ L_089E1864: } L_089E186C: aot_gpr_31 = (0x089E1874u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 326u, 0x089E1874u, 0x08861814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 228u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 228u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 228u, 0x08861814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1874u) goto L_089E1874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1874: aot_gpr_31 = (0x089E187Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 327u, 0x089E187Cu, 0x0886181Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 229u, 0x0886181Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E187Cu) goto L_089E187C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E187C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -3947,12 +4920,38 @@ L_089E187C: } L_089E1884: aot_gpr_31 = (0x089E188Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 329u, 0x089E188Cu, 0x08861814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 228u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 228u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 228u, 0x08861814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E188Cu) goto L_089E188C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E188C: aot_gpr_31 = (0x089E1894u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 330u, 0x089E1894u, 0x0886181Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 229u, 0x0886181Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1894u) goto L_089E1894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1894: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -3963,8 +4962,21 @@ L_089E1894: } L_089E189C: aot_gpr_31 = (0x089E18A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 332u, 0x089E18A4u, 0x0886181Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 229u, 0x0886181Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E18A4u) goto L_089E18A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E18A4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -4014,8 +5026,8 @@ L_089E18D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E18E8: @@ -4039,8 +5051,8 @@ L_089E18E8: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(52), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(48), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E193C: @@ -4061,8 +5073,21 @@ L_089E193C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x089E1980u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 341u, 0x089E1980u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1980u) goto L_089E1980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1980: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); { const bool branch_taken = static_cast(ctx.gpr[17]) >= 0; @@ -4108,8 +5133,21 @@ L_089E19E0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x089E19ECu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 346u, 0x089E19ECu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E19ECu) goto L_089E19EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E19EC: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4120,13 +5158,39 @@ L_089E19F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089E1A08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 348u, 0x089E1A08u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1A08u) goto L_089E1A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1A08: aot_gpr_31 = (0x089E1A10u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 349u, 0x089E1A10u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1A10u) goto L_089E1A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1A10: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4149,8 +5213,21 @@ L_089E1A1C: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x089E1A4Cu); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 351u, 0x089E1A4Cu, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1A4Cu) goto L_089E1A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1A4C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4174,8 +5251,8 @@ L_089E1A60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1A8C: @@ -4189,13 +5266,39 @@ L_089E1A8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E1AB4u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 354u, 0x089E1AB4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1AB4u) goto L_089E1AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1AB4: aot_gpr_31 = (0x089E1ABCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 355u, 0x089E1ABCu, 0x088F2D9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 602u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 602u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 602u, 0x088F2D9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1ABCu) goto L_089E1ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1ABC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4282,8 +5385,8 @@ L_089E1B3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1B54: @@ -4295,21 +5398,47 @@ L_089E1B54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089E1B74u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 366u, 0x089E1B74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1B74u) goto L_089E1B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1B74: aot_gpr_31 = (0x089E1B7Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 367u, 0x089E1B7Cu, 0x088F2DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 608u, 0x088F2DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1B7Cu) goto L_089E1B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1B7C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1B90: @@ -4329,8 +5458,21 @@ L_089E1B90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_31); aot_gpr_31 = (0x089E1BD0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 369u, 0x089E1BD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1BD0u) goto L_089E1BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1BD0: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -4358,8 +5500,21 @@ L_089E1C08: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x089E1C14u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 372u, 0x089E1C14u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1C14u) goto L_089E1C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1C14: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4370,13 +5525,39 @@ L_089E1C20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089E1C30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 374u, 0x089E1C30u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1C30u) goto L_089E1C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1C30: aot_gpr_31 = (0x089E1C38u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 375u, 0x089E1C38u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1C38u) goto L_089E1C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1C38: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4399,8 +5580,21 @@ L_089E1C44: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x089E1C74u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 377u, 0x089E1C74u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1C74u) goto L_089E1C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1C74: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4423,8 +5617,8 @@ L_089E1C88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1CB0: @@ -4445,8 +5639,21 @@ L_089E1CB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x089E1CF4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 380u, 0x089E1CF4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1CF4u) goto L_089E1CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1CF4: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); { const bool branch_taken = static_cast(ctx.gpr[17]) >= 0; @@ -4492,8 +5699,21 @@ L_089E1D54: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x089E1D60u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 385u, 0x089E1D60u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1D60u) goto L_089E1D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1D60: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4504,13 +5724,39 @@ L_089E1D6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089E1D7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 387u, 0x089E1D7Cu, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1D7Cu) goto L_089E1D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1D7C: aot_gpr_31 = (0x089E1D84u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 388u, 0x089E1D84u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1D84u) goto L_089E1D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1D84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_5 = (0u + static_cast(-1)); @@ -4533,8 +5779,21 @@ L_089E1D94: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x089E1DC0u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 390u, 0x089E1DC0u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1DC0u) goto L_089E1DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1DC0: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4558,8 +5817,8 @@ L_089E1DD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1E00: @@ -4578,8 +5837,21 @@ L_089E1E00: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x089E1E40u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 393u, 0x089E1E40u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1E40u) goto L_089E1E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1E40: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -4787,8 +6059,8 @@ L_089E1F74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E1F94: @@ -4808,8 +6080,21 @@ L_089E1F94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_31); aot_gpr_31 = (0x089E1FD4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 410u, 0x089E1FD4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E1FD4u) goto L_089E1FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E1FD4: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -4837,8 +6122,21 @@ L_089E200C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x089E2018u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 413u, 0x089E2018u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2018u) goto L_089E2018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2018: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4849,13 +6147,39 @@ L_089E2024: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089E2034u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 415u, 0x089E2034u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2034u) goto L_089E2034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2034: aot_gpr_31 = (0x089E203Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 416u, 0x089E203Cu, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E203Cu) goto L_089E203C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E203C: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4878,8 +6202,21 @@ L_089E2048: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x089E2078u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 418u, 0x089E2078u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2078u) goto L_089E2078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2078: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4902,8 +6239,8 @@ L_089E208C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E20B4: @@ -4929,8 +6266,21 @@ L_089E20B4: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x089E2120u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 421u, 0x089E2120u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2120u) goto L_089E2120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2120: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -5061,8 +6411,21 @@ L_089E21CC: ctx.gpr[20] = (0u | 1u); aot_gpr_31 = (0x089E21DCu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 429u, 0x089E21DCu, 0x088F2D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 589u, 0x088F2D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E21DCu) goto L_089E21DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E21DC: ctx.gpr[23] = (ctx.gpr[2] | 0u); goto L_089E21E0; @@ -5102,22 +6465,22 @@ L_089E2204: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E223C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E2244: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E224C: @@ -5230,8 +6593,8 @@ L_089E2354: goto L_089E2390; L_089E2390: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E2398: @@ -5269,8 +6632,21 @@ L_089E23C4: aot_gpr_4 = (aot_gpr_4 + static_cast(23472)); aot_gpr_31 = (0x089E23E0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 445u, 0x089E23E0u, 0x089F5058u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 173u, 0x089F5058u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E23E0u) goto L_089E23E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E23E0: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -5325,8 +6701,21 @@ L_089E241C: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x089E2450u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 449u, 0x089E2450u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2450u) goto L_089E2450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2450: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(1924), static_cast(ctx.gpr[18])); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1348), aot_gpr_16); @@ -5351,8 +6740,8 @@ L_089E2464: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E2480: @@ -5360,8 +6749,8 @@ L_089E2480: ctx.gpr[2] = (aot_gpr_4 & 2u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E2490: @@ -5376,8 +6765,21 @@ L_089E2490: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x089E24CCu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 454u, 0x089E24CCu, 0x08913670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 838u, 0x08913670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E24CCu) goto L_089E24CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E24CC: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(26440)); @@ -5473,8 +6875,21 @@ L_089E2578: ctx.gpr[20] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089E25A8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 466u, 0x089E25A8u, 0x08AECAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 181u, 0x08AECAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E25A8u) goto L_089E25A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E25A8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5485,8 +6900,21 @@ L_089E25A8: L_089E25B0: aot_gpr_31 = (0x089E25B8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 468u, 0x089E25B8u, 0x08AECC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 217u, 0x08AECC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E25B8u) goto L_089E25B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E25B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5564,8 +6992,8 @@ L_089E261C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E2654: @@ -5587,14 +7015,40 @@ L_089E2670: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(92), aot_gpr_4); aot_gpr_31 = (0x089E2684u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 479u, 0x089E2684u, 0x089086DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 117u, 0x089086DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2684u) goto L_089E2684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2684: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E2690u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 480u, 0x089E2690u, 0x08905FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 416u, 0x08905FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2690u) goto L_089E2690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2690: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5606,8 +7060,21 @@ L_089E2690: L_089E269C: aot_gpr_31 = (0x089E26A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 482u, 0x089E26A4u, 0x08906308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 477u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 477u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 477u, 0x08906308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E26A4u) goto L_089E26A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E26A4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5617,8 +7084,8 @@ L_089E26A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E26B8: @@ -5656,8 +7123,8 @@ L_089E26E4: goto L_089E26E8; L_089E26E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E26F0: @@ -5709,8 +7176,8 @@ L_089E273C: goto L_089E2740; L_089E2740: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E2748: @@ -5719,8 +7186,21 @@ L_089E2748: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(88), aot_run_words); } aot_gpr_31 = (0x089E2788u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 497u, 0x089E2788u, 0x0891FD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 832u, 0x0891FD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2788u) goto L_089E2788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2788: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (2u << 16u); @@ -5761,8 +7241,21 @@ L_089E27C4: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x089E27E8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 501u, 0x089E27E8u, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E27E8u) goto L_089E27E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E27E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_fpr_20 = std::bit_cast(0u); @@ -6009,8 +7502,21 @@ L_089E2960: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089E299Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 529u, 0x089E299Cu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E299Cu) goto L_089E299C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E299C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (aot_gpr_4 + static_cast(320)); @@ -6068,8 +7574,21 @@ L_089E29F0: L_089E2A00: aot_gpr_31 = (0x089E2A08u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 536u, 0x089E2A08u, 0x08B01038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 289u, 0x08B01038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2A08u) goto L_089E2A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2A08: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); @@ -6103,8 +7622,21 @@ L_089E2A2C: { const float fs = ctx.fpr[19]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } aot_gpr_31 = (0x089E2A6Cu); ctx.fpr[17] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 539u, 0x089E2A6Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2A6Cu) goto L_089E2A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2A6C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -6115,21 +7647,60 @@ L_089E2A6C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x089E2A90u); aot_gpr_6 = (0u | 23u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 540u, 0x089E2A90u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2A90u) goto L_089E2A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2A90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_5 = (0u | 127u); aot_gpr_31 = (0x089E2AA0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 541u, 0x089E2AA0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2AA0u) goto L_089E2AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2AA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E2AACu); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 542u, 0x089E2AACu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2AACu) goto L_089E2AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2AAC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -6305,22 +7876,61 @@ L_089E2C7C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(204), 0u); aot_gpr_31 = (0x089E2CB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 554u, 0x089E2CB0u, 0x08882930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 452u, 0x08882930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2CB0u) goto L_089E2CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2CB0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E2CC0u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 555u, 0x089E2CC0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2CC0u) goto L_089E2CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2CC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_5 = (0u | 126u); aot_gpr_31 = (0x089E2CD0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 556u, 0x089E2CD0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2CD0u) goto L_089E2CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2CD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6347,22 +7957,61 @@ L_089E2CD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E2D20u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(1252), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 558u, 0x089E2D20u, 0x08882930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 452u, 0x08882930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2D20u) goto L_089E2D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2D20: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E2D30u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 559u, 0x089E2D30u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2D30u) goto L_089E2D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2D30: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_5 = (0u | 126u); aot_gpr_31 = (0x089E2D40u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 560u, 0x089E2D40u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2D40u) goto L_089E2D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2D40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6453,15 +8102,41 @@ L_089E2DFC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(204), 0u); aot_gpr_31 = (0x089E2E30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 568u, 0x089E2E30u, 0x08882930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 452u, 0x08882930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2E30u) goto L_089E2E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2E30: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E2E40u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 569u, 0x089E2E40u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2E40u) goto L_089E2E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2E40: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); goto L_089E2E44; @@ -6584,8 +8259,21 @@ L_089E2F78: L_089E2F80: aot_gpr_31 = (0x089E2F88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 581u, 0x089E2F88u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2F88u) goto L_089E2F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2F88: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6596,8 +8284,21 @@ L_089E2F88: L_089E2F90: aot_gpr_31 = (0x089E2F98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 583u, 0x089E2F98u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2F98u) goto L_089E2F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2F98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6608,24 +8309,76 @@ L_089E2F98: L_089E2FA0: aot_gpr_31 = (0x089E2FA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 585u, 0x089E2FA8u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2FA8u) goto L_089E2FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2FA8: aot_gpr_31 = (0x089E2FB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 586u, 0x089E2FB0u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2FB0u) goto L_089E2FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2FB0: aot_gpr_5 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x089E2FBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 587u, 0x089E2FBCu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2FBCu) goto L_089E2FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2FBC: aot_gpr_31 = (0x089E2FC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 588u, 0x089E2FC4u, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E2FC4u) goto L_089E2FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E2FC4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6717,8 +8470,21 @@ L_089E304C: L_089E305C: aot_gpr_31 = (0x089E3064u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 599u, 0x089E3064u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3064u) goto L_089E3064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3064: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6768,8 +8534,21 @@ L_089E30A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E30C8u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 605u, 0x089E30C8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E30C8u) goto L_089E30C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E30C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6780,8 +8559,21 @@ L_089E30C8: L_089E30D0: aot_gpr_31 = (0x089E30D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 607u, 0x089E30D8u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E30D8u) goto L_089E30D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E30D8: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = 0u == 0u; @@ -6982,8 +8774,21 @@ L_089E3228: L_089E3238: aot_gpr_31 = (0x089E3240u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 630u, 0x089E3240u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3240u) goto L_089E3240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3240: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6994,8 +8799,21 @@ L_089E3240: L_089E3248: aot_gpr_31 = (0x089E3250u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 632u, 0x089E3250u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3250u) goto L_089E3250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3250: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7006,8 +8824,21 @@ L_089E3250: L_089E3258: aot_gpr_31 = (0x089E3260u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 634u, 0x089E3260u, 0x08AD0598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 51u, 0x08AD0598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3260u) goto L_089E3260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3260: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7018,8 +8849,21 @@ L_089E3260: L_089E3268: aot_gpr_31 = (0x089E3270u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 636u, 0x089E3270u, 0x08918F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 177u, 0x08918F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3270u) goto L_089E3270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3270: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7030,8 +8874,21 @@ L_089E3270: L_089E3278: aot_gpr_31 = (0x089E3280u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 638u, 0x089E3280u, 0x0890B4B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 832u, 0x0890B4B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3280u) goto L_089E3280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3280: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7042,8 +8899,21 @@ L_089E3280: L_089E3288: aot_gpr_31 = (0x089E3290u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 640u, 0x089E3290u, 0x0890BEE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 993u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 993u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 993u, 0x0890BEE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3290u) goto L_089E3290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3290: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7055,8 +8925,21 @@ L_089E3298: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E32A4u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 642u, 0x089E32A4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E32A4u) goto L_089E32A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E32A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7067,8 +8950,21 @@ L_089E32A4: L_089E32AC: aot_gpr_31 = (0x089E32B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 644u, 0x089E32B4u, 0x0890C074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 7u, 0x0890C074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E32B4u) goto L_089E32B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E32B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7107,8 +9003,21 @@ L_089E32F0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089E32FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 650u, 0x089E32FCu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E32FCu) goto L_089E32FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E32FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7119,8 +9028,21 @@ L_089E32FC: L_089E3304: aot_gpr_31 = (0x089E330Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 652u, 0x089E330Cu, 0x0890D9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 395u, 0x0890D9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E330Cu) goto L_089E330C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E330C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7132,8 +9054,21 @@ L_089E3314: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x089E3320u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 654u, 0x089E3320u, 0x0890713Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 701u, 0x0890713Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3320u) goto L_089E3320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3320: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); aot_gpr_4 = (static_cast(aot_gpr_4) < 7 ? 1u : 0u); @@ -7247,8 +9182,21 @@ L_089E33F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(1784))); aot_gpr_31 = (0x089E3400u); aot_gpr_5 = (0u | 37u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 667u, 0x089E3400u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3400u) goto L_089E3400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3400: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(1784))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1360))); @@ -7294,8 +9242,21 @@ L_089E3444: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089E3474u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 672u, 0x089E3474u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3474u) goto L_089E3474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3474: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1914))); ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); @@ -7317,8 +9278,21 @@ L_089E3488: L_089E3490: aot_gpr_31 = (0x089E3498u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 675u, 0x089E3498u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3498u) goto L_089E3498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3498: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7378,13 +9352,39 @@ L_089E3500: L_089E350C: aot_gpr_31 = (0x089E3514u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 682u, 0x089E3514u, 0x089E4378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 71u, 0x089E4378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3514u) goto L_089E3514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3514: aot_gpr_31 = (0x089E351Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 683u, 0x089E351Cu, 0x089E48BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 143u, 0x089E48BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E351Cu) goto L_089E351C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E351C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1388))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -7415,8 +9415,21 @@ L_089E353C: L_089E3560: aot_gpr_31 = (0x089E3568u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 687u, 0x089E3568u, 0x0890748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 753u, 0x0890748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3568u) goto L_089E3568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3568: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(88), aot_run_words); @@ -7436,8 +9449,8 @@ L_089E3568: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E35A4: @@ -7477,13 +9490,39 @@ L_089E35D8: L_089E35EC: aot_gpr_31 = (0x089E35F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 692u, 0x089E35F4u, 0x089079CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 813u, 0x089079CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E35F4u) goto L_089E35F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E35F4: aot_gpr_31 = (0x089E35FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 693u, 0x089E35FCu, 0x08907A54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 824u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 824u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 824u, 0x08907A54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E35FCu) goto L_089E35FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E35FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7622,8 +9661,21 @@ L_089E36E4: aot_gpr_5 = (0u | 10000u); aot_gpr_31 = (0x089E36F4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 710u, 0x089E36F4u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E36F4u) goto L_089E36F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E36F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7663,8 +9715,21 @@ L_089E3734: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E3744u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 715u, 0x089E3744u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3744u) goto L_089E3744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3744: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(468))); @@ -7699,8 +9764,21 @@ L_089E3780: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E3790u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 720u, 0x089E3790u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3790u) goto L_089E3790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3790: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(468))); @@ -7751,8 +9829,21 @@ L_089E37E4: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x089E3800u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 726u, 0x089E3800u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3800u) goto L_089E3800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3800: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7775,8 +9866,21 @@ L_089E3810: L_089E3818: aot_gpr_31 = (0x089E3820u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 730u, 0x089E3820u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3820u) goto L_089E3820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3820: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7803,8 +9907,21 @@ L_089E3840: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x089E3850u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 734u, 0x089E3850u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3850u) goto L_089E3850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3850: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7846,8 +9963,21 @@ L_089E3884: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E3894u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 741u, 0x089E3894u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3894u) goto L_089E3894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3894: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -7903,8 +10033,21 @@ L_089E38F4: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x089E3904u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 749u, 0x089E3904u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3904u) goto L_089E3904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3904: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7922,8 +10065,21 @@ L_089E3914: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E3924u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 752u, 0x089E3924u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3924u) goto L_089E3924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3924: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -8017,8 +10173,21 @@ L_089E39C4: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E39D4u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 765u, 0x089E39D4u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E39D4u) goto L_089E39D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E39D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(468))); @@ -8058,8 +10227,21 @@ L_089E3A14: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089E3A34u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 770u, 0x089E3A34u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3A34u) goto L_089E3A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3A34: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8086,14 +10268,40 @@ L_089E3A5C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089E3A74u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 774u, 0x089E3A74u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3A74u) goto L_089E3A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3A74: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E3A80u); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 775u, 0x089E3A80u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3A80u) goto L_089E3A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3A80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8105,8 +10313,21 @@ L_089E3A88: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E3A94u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 777u, 0x089E3A94u, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3A94u) goto L_089E3A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3A94: ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -8116,8 +10337,21 @@ L_089E3A94: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E3AB4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 778u, 0x089E3AB4u, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3AB4u) goto L_089E3AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3AB4: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8159,8 +10393,21 @@ L_089E3B08: aot_gpr_5 = (0u | 10000u); aot_gpr_31 = (0x089E3B18u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 782u, 0x089E3B18u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3B18u) goto L_089E3B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3B18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8183,8 +10430,21 @@ L_089E3B30: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(468), aot_gpr_5); aot_gpr_31 = (0x089E3B48u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 785u, 0x089E3B48u, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3B48u) goto L_089E3B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3B48: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -8196,21 +10456,60 @@ L_089E3B48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E3B70u); aot_gpr_6 = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 786u, 0x089E3B70u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3B70u) goto L_089E3B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3B70: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089E3B7Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 787u, 0x089E3B7Cu, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3B7Cu) goto L_089E3B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3B7C: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_4 = (aot_gpr_29 + static_cast(56)); aot_gpr_31 = (0x089E3B8Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 788u, 0x089E3B8Cu, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3B8Cu) goto L_089E3B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3B8C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -8218,8 +10517,21 @@ L_089E3B8C: aot_fpr_12 = aot_fpr_12 - aot_fpr_20; aot_gpr_31 = (0x089E3BA4u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[14]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 789u, 0x089E3BA4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3BA4u) goto L_089E3BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3BA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -8227,14 +10539,40 @@ L_089E3BA4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089E3BBCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 790u, 0x089E3BBCu, 0x08909990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 430u, 0x08909990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3BBCu) goto L_089E3BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3BBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E3BC8u); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 791u, 0x089E3BC8u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3BC8u) goto L_089E3BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3BC8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8272,8 +10610,21 @@ L_089E3BF8: L_089E3C00: aot_gpr_31 = (0x089E3C08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 796u, 0x089E3C08u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3C08u) goto L_089E3C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3C08: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8286,8 +10637,21 @@ L_089E3C10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E3C20u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 798u, 0x089E3C20u, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3C20u) goto L_089E3C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3C20: ctx.gpr[8] = (16576u << 16u); aot_fpr_13 = std::bit_cast(0u); @@ -8297,8 +10661,21 @@ L_089E3C20: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E3C40u); ctx.gpr[7] = (0u | 30000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 799u, 0x089E3C40u, 0x088E2F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 350u, 0x088E2F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3C40u) goto L_089E3C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3C40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8318,13 +10695,39 @@ L_089E3C58: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); aot_gpr_31 = (0x089E3C64u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[14])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 802u, 0x089E3C64u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3C64u) goto L_089E3C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3C64: aot_gpr_31 = (0x089E3C6Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 803u, 0x089E3C6Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3C6Cu) goto L_089E3C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3C6C: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(0u); @@ -8356,8 +10759,21 @@ L_089E3C98: aot_gpr_5 = (aot_gpr_5 << 24u); aot_gpr_31 = (0x089E3CD0u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 806u, 0x089E3CD0u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3CD0u) goto L_089E3CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3CD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8428,8 +10844,21 @@ L_089E3D54: aot_gpr_5 = (0u | 10000u); aot_gpr_31 = (0x089E3D64u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 813u, 0x089E3D64u, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3D64u) goto L_089E3D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3D64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8451,8 +10880,21 @@ L_089E3D6C: L_089E3D84: aot_gpr_31 = (0x089E3D8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 816u, 0x089E3D8Cu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3D8Cu) goto L_089E3D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3D8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8473,8 +10915,21 @@ L_089E3D94: L_089E3DA8: aot_gpr_31 = (0x089E3DB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 819u, 0x089E3DB0u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3DB0u) goto L_089E3DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3DB0: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(692))); @@ -8601,8 +11056,21 @@ L_089E3EE4: aot_gpr_5 = (0u | 6u); aot_gpr_31 = (0x089E3F04u); ctx.gpr[7] = (0u | 20000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 830u, 0x089E3F04u, 0x088E2F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 350u, 0x088E2F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3F04u) goto L_089E3F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3F04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8615,8 +11083,21 @@ L_089E3F0C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E3F1Cu); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 832u, 0x089E3F1Cu, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3F1Cu) goto L_089E3F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3F1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -8654,8 +11135,21 @@ L_089E3F60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E3F70u); aot_gpr_6 = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0119->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0119_entry, 837u, 0x089E3F70u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E3F70u) goto L_089E3F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E3F70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (16384u << 16u); diff --git a/profiles/vcs/generated/generated_unit_0120.cpp b/profiles/vcs/generated/generated_unit_0120.cpp index a7d3d97..a1371f7 100644 --- a/profiles/vcs/generated/generated_unit_0120.cpp +++ b/profiles/vcs/generated/generated_unit_0120.cpp @@ -937,6 +937,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089E4000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -987,8 +1011,21 @@ L_089E4030: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E4040u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 7u, 0x089E4040u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4040u) goto L_089E4040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4040: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -1019,8 +1056,21 @@ L_089E406C: aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); aot_gpr_31 = (0x089E4088u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 11u, 0x089E4088u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4088u) goto L_089E4088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4088: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1036,8 +1086,21 @@ L_089E4090: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x089E40ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 13u, 0x089E40ACu, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E40ACu) goto L_089E40AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E40AC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1073,8 +1136,21 @@ L_089E40DC: L_089E40E4: aot_gpr_31 = (0x089E40ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 18u, 0x089E40ECu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E40ECu) goto L_089E40EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E40EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1101,8 +1177,21 @@ L_089E410C: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x089E411Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 22u, 0x089E411Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E411Cu) goto L_089E411C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E411C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1161,8 +1250,21 @@ L_089E4168: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E4178u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 31u, 0x089E4178u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4178u) goto L_089E4178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4178: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -1204,8 +1306,21 @@ L_089E41B4: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x089E41C4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 37u, 0x089E41C4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E41C4u) goto L_089E41C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E41C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1223,8 +1338,21 @@ L_089E41D4: aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x089E41E4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 40u, 0x089E41E4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E41E4u) goto L_089E41E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E41E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1302,13 +1430,39 @@ L_089E4244: L_089E424C: aot_gpr_31 = (0x089E4254u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 51u, 0x089E4254u, 0x089079CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 813u, 0x089079CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4254u) goto L_089E4254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4254: aot_gpr_31 = (0x089E425Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 52u, 0x089E425Cu, 0x08907A54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 824u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 824u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 824u, 0x08907A54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E425Cu) goto L_089E425C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E425C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1394,14 +1548,40 @@ L_089E42D8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089E42F0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 63u, 0x089E42F0u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E42F0u) goto L_089E42F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E42F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E42FCu); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 64u, 0x089E42FCu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E42FCu) goto L_089E42FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E42FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1413,15 +1593,41 @@ L_089E4304: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x089E4310u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 66u, 0x089E4310u, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4310u) goto L_089E4310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4310: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_4 = (aot_gpr_29 + static_cast(120)); aot_gpr_31 = (0x089E4320u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 67u, 0x089E4320u, 0x089101ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 28u, 0x089101ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4320u) goto L_089E4320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4320: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(124))); @@ -1430,8 +1636,21 @@ L_089E4320: aot_fpr_12 = aot_fpr_12 - aot_fpr_20; aot_gpr_31 = (0x089E433Cu); aot_fpr_13 = aot_fpr_13 - aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 68u, 0x089E433Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E433Cu) goto L_089E433C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E433C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1439,14 +1658,40 @@ L_089E433C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089E4354u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 69u, 0x089E4354u, 0x08909990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 430u, 0x08909990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4354u) goto L_089E4354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4354: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E4360u); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 70u, 0x089E4360u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4360u) goto L_089E4360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4360: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(160), aot_run_words); @@ -1457,8 +1702,8 @@ L_089E4360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E4378: @@ -1498,8 +1743,21 @@ L_089E43D4: L_089E43DC: aot_gpr_31 = (0x089E43E4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 76u, 0x089E43E4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E43E4u) goto L_089E43E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E43E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1538,8 +1796,21 @@ L_089E4420: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(2292), 0u); aot_gpr_31 = (0x089E442Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 81u, 0x089E442Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E442Cu) goto L_089E442C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E442C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1848,8 +2119,21 @@ L_089E46C4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_31 = (0x089E46D0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 112u, 0x089E46D0u, 0x089E26B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 483u, 0x089E26B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E46D0u) goto L_089E46D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E46D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1860,8 +2144,21 @@ L_089E46D0: L_089E46D8: aot_gpr_31 = (0x089E46E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 114u, 0x089E46E0u, 0x08B01BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E46E0u) goto L_089E46E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E46E0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1888,8 +2185,21 @@ L_089E46F4: L_089E4700: aot_gpr_31 = (0x089E4708u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 118u, 0x089E4708u, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4708u) goto L_089E4708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4708: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1941,8 +2251,21 @@ L_089E4740: L_089E4754: aot_gpr_31 = (0x089E475Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 125u, 0x089E475Cu, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E475Cu) goto L_089E475C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E475C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1953,8 +2276,21 @@ L_089E475C: L_089E4764: aot_gpr_31 = (0x089E476Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 127u, 0x089E476Cu, 0x08B00DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 233u, 0x08B00DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E476Cu) goto L_089E476C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E476C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1965,8 +2301,21 @@ L_089E476C: L_089E4774: aot_gpr_31 = (0x089E477Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 129u, 0x089E477Cu, 0x08B011C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 327u, 0x08B011C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E477Cu) goto L_089E477C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E477C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2099,21 +2448,60 @@ L_089E4840: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(464), aot_gpr_4); aot_gpr_31 = (0x089E4860u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 140u, 0x089E4860u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4860u) goto L_089E4860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4860: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x089E4870u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 141u, 0x089E4870u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4870u) goto L_089E4870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4870: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089E487Cu); aot_gpr_5 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 142u, 0x089E487Cu, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E487Cu) goto L_089E487C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E487C: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(92), aot_run_words); @@ -2134,8 +2522,8 @@ L_089E487C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E48BC: @@ -2166,8 +2554,21 @@ L_089E490C: L_089E4918: aot_gpr_31 = (0x089E4920u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 146u, 0x089E4920u, 0x0890E818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 589u, 0x0890E818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4920u) goto L_089E4920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4920: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2198,8 +2599,21 @@ L_089E4938: L_089E494C: aot_gpr_31 = (0x089E4954u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 150u, 0x089E4954u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4954u) goto L_089E4954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4954: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2633,8 +3047,21 @@ L_089E4CC0: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(48))); aot_gpr_31 = (0x089E4CCCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 196u, 0x089E4CCCu, 0x089E26F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 489u, 0x089E26F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4CCCu) goto L_089E4CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4CCC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2649,8 +3076,21 @@ L_089E4CD4: aot_gpr_16 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089E4CECu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 198u, 0x089E4CECu, 0x08A036C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 914u, 0x08A036C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4CECu) goto L_089E4CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4CEC: aot_gpr_4 = (ctx.gpr[20] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2699,14 +3139,40 @@ L_089E4CEC: } L_089E4D24: aot_gpr_31 = (0x089E4D2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 200u, 0x089E4D2Cu, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4D2Cu) goto L_089E4D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4D2C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E4D38u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 201u, 0x089E4D38u, 0x08A03590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 886u, 0x08A03590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4D38u) goto L_089E4D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4D38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2720,8 +3186,21 @@ L_089E4D40: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089E4D54u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 203u, 0x089E4D54u, 0x08A03794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 918u, 0x08A03794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4D54u) goto L_089E4D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4D54: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2885,8 +3364,21 @@ L_089E4E6C: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(48))); aot_gpr_31 = (0x089E4E78u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 223u, 0x089E4E78u, 0x089E26F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 489u, 0x089E26F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4E78u) goto L_089E4E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4E78: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2900,8 +3392,21 @@ L_089E4E80: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089E4E94u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 225u, 0x089E4E94u, 0x08A036C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 914u, 0x08A036C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4E94u) goto L_089E4E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4E94: aot_gpr_4 = (ctx.gpr[20] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2949,14 +3454,40 @@ L_089E4E94: } L_089E4ECC: aot_gpr_31 = (0x089E4ED4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 227u, 0x089E4ED4u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4ED4u) goto L_089E4ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4ED4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E4EE0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 228u, 0x089E4EE0u, 0x08A03590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 886u, 0x08A03590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4EE0u) goto L_089E4EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4EE0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2970,8 +3501,21 @@ L_089E4EE8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089E4EFCu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 230u, 0x089E4EFCu, 0x08A03794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 918u, 0x08A03794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4EFCu) goto L_089E4EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4EFC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3033,16 +3577,42 @@ L_089E4F54: L_089E4F60: aot_gpr_31 = (0x089E4F68u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 238u, 0x089E4F68u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4F68u) goto L_089E4F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4F68: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089E4F7Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 239u, 0x089E4F7Cu, 0x08A02D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 720u, 0x08A02D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E4F7Cu) goto L_089E4F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E4F7C: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(152), aot_run_words); @@ -3061,8 +3631,8 @@ L_089E4F7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E4FB4: @@ -3082,8 +3652,8 @@ L_089E4FB4: aot_mem.aot_direct_store_word_right(aot_gpr_6 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E4FF4: @@ -3174,14 +3744,27 @@ L_089E50E8: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x089E5110u); aot_gpr_5 = (aot_gpr_5 & 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 248u, 0x089E5110u, 0x089783ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 36u, 0x089783ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5110u) goto L_089E5110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5110: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E511C: @@ -3220,8 +3803,21 @@ L_089E51A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x089E51ACu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 251u, 0x089E51ACu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E51ACu) goto L_089E51AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E51AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(ctx.fpr[0])); goto L_089E51B0; @@ -3239,8 +3835,21 @@ L_089E51B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089E51E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 253u, 0x089E51E4u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E51E4u) goto L_089E51E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E51E4: aot_gpr_16 = (0u | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); @@ -3282,8 +3891,21 @@ L_089E522C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E5238u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 258u, 0x089E5238u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5238u) goto L_089E5238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5238: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -3326,8 +3948,8 @@ L_089E5270: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5290: @@ -3341,8 +3963,21 @@ L_089E5290: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089E52C0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 263u, 0x089E52C0u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E52C0u) goto L_089E52C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E52C0: ctx.gpr[18] = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -3350,8 +3985,21 @@ L_089E52C0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089E52D8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 264u, 0x089E52D8u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E52D8u) goto L_089E52D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E52D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E52E4u); @@ -3465,8 +4113,21 @@ L_089E5450: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E5464u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 269u, 0x089E5464u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5464u) goto L_089E5464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5464: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3478,8 +4139,8 @@ L_089E5464: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5480: @@ -3493,8 +4154,21 @@ L_089E5480: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089E54ACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 271u, 0x089E54ACu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E54ACu) goto L_089E54AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E54AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E54B8u); @@ -3583,8 +4257,21 @@ L_089E55D8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E55ECu); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 275u, 0x089E55ECu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E55ECu) goto L_089E55EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E55EC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3595,8 +4282,8 @@ L_089E55EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5604: @@ -3612,8 +4299,21 @@ L_089E5604: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089E5650u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 277u, 0x089E5650u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5650u) goto L_089E5650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5650: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E565Cu); @@ -3638,8 +4338,21 @@ L_089E5680: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x089E568Cu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 280u, 0x089E568Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E568Cu) goto L_089E568C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E568C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(ctx.fpr[0])); goto L_089E5690; @@ -3659,8 +4372,21 @@ L_089E5690: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089E56CCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[19]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 282u, 0x089E56CCu, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E56CCu) goto L_089E56CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E56CC: aot_gpr_5 = (0u | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); @@ -3726,8 +4452,21 @@ L_089E5730: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089E5764u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[19]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 289u, 0x089E5764u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5764u) goto L_089E5764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5764: ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); @@ -3746,8 +4485,21 @@ L_089E5778: L_089E5780: aot_gpr_31 = (0x089E5788u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 292u, 0x089E5788u, 0x08AD0600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 58u, 0x08AD0600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5788u) goto L_089E5788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5788: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3817,8 +4569,8 @@ L_089E57E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5810: @@ -3833,8 +4585,21 @@ L_089E5810: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089E5844u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 301u, 0x089E5844u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5844u) goto L_089E5844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5844: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E5850u); @@ -3866,22 +4631,61 @@ L_089E5850: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x089E5884u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 303u, 0x089E5884u, 0x08977C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 754u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 754u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 754u, 0x08977C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5884u) goto L_089E5884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5884: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); ctx.gpr[17] = (aot_gpr_29 + static_cast(32)); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E5898u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 304u, 0x089E5898u, 0x08977830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 728u, 0x08977830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5898u) goto L_089E5898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5898: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E58A4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 305u, 0x089E58A4u, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E58A4u) goto L_089E58A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E58A4: ctx.gpr[2] = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3893,8 +4697,8 @@ L_089E58A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E58C0: @@ -3935,8 +4739,8 @@ L_089E5908: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E591C: @@ -3973,15 +4777,28 @@ L_089E5954: goto L_089E5964; L_089E5964: aot_gpr_31 = (0x089E596Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 316u, 0x089E596Cu, 0x08B42624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 571u, 0x08B42624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E596Cu) goto L_089E596C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E596C: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E597C: @@ -3998,8 +4815,8 @@ L_089E598C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E59A4: @@ -4013,15 +4830,28 @@ L_089E59B4: aot_gpr_4 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_31 = (0x089E59C0u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 321u, 0x089E59C0u, 0x08B4262Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 572u, 0x08B4262Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E59C0u) goto L_089E59C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E59C0: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E59D0: @@ -4030,15 +4860,28 @@ L_089E59D0: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x089E59E4u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 323u, 0x089E59E4u, 0x089D03FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 47u, 0x089D03FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E59E4u) goto L_089E59E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E59E4: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E59F4: @@ -4049,8 +4892,21 @@ L_089E59F4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089E5A10u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 325u, 0x089E5A10u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5A10u) goto L_089E5A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5A10: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 0u); @@ -4061,15 +4917,28 @@ L_089E5A10: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089E5A34u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 326u, 0x089E5A34u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5A34u) goto L_089E5A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5A34: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5A44: @@ -4084,8 +4953,21 @@ L_089E5A44: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089E5A78u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 328u, 0x089E5A78u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5A78u) goto L_089E5A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5A78: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); @@ -4105,8 +4987,21 @@ L_089E5A78: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089E5A94u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 329u, 0x089E5A94u, 0x08804E00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 121u, 0x08804E00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5A94u) goto L_089E5A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5A94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E5AA0u); @@ -4124,8 +5019,8 @@ L_089E5AA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5ABC: @@ -4138,8 +5033,21 @@ L_089E5ABC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089E5AECu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 332u, 0x089E5AECu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5AECu) goto L_089E5AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5AEC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4180,8 +5088,21 @@ L_089E5B38: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E5B48u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 337u, 0x089E5B48u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5B48u) goto L_089E5B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5B48: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4210,8 +5131,21 @@ L_089E5B6C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089E5B7Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 341u, 0x089E5B7Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5B7Cu) goto L_089E5B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5B7C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4251,8 +5185,21 @@ L_089E5BC4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E5BD4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 346u, 0x089E5BD4u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5BD4u) goto L_089E5BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5BD4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4295,8 +5242,21 @@ L_089E5C10: aot_gpr_5 = (aot_gpr_5 + static_cast(-2976)); aot_gpr_31 = (0x089E5C20u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 353u, 0x089E5C20u, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5C20u) goto L_089E5C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5C20: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -4308,8 +5268,8 @@ L_089E5C20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5C3C: @@ -4331,8 +5291,8 @@ L_089E5C3C: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5C84: @@ -4348,8 +5308,8 @@ L_089E5CA0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5CAC: @@ -4385,8 +5345,21 @@ L_089E5CD8: L_089E5CF4: aot_gpr_31 = (0x089E5CFCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 360u, 0x089E5CFCu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5CFCu) goto L_089E5CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5CFC: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_089E5D00; @@ -4412,8 +5385,8 @@ L_089E5D14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5D2C: @@ -4423,8 +5396,21 @@ L_089E5D2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089E5D44u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 365u, 0x089E5D44u, 0x08A953C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 245u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 245u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 245u, 0x08A953C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5D44u) goto L_089E5D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5D44: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4441,8 +5427,8 @@ L_089E5D54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5D64: @@ -4514,8 +5500,8 @@ L_089E5DE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5DFC: @@ -4618,8 +5604,8 @@ L_089E5EB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5EE4: @@ -4655,8 +5641,8 @@ L_089E5F20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5F34: @@ -4671,8 +5657,8 @@ L_089E5F48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5F58: @@ -4687,8 +5673,8 @@ L_089E5F6C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E5F7C: @@ -4719,8 +5705,21 @@ L_089E5FAC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_31 = (0x089E5FBCu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 397u, 0x089E5FBCu, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5FBCu) goto L_089E5FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5FBC: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4733,8 +5732,21 @@ L_089E5FD0: aot_gpr_6 = (ctx.gpr[17] + static_cast(-1)); aot_gpr_31 = (0x089E5FE0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 399u, 0x089E5FE0u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E5FE0u) goto L_089E5FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E5FE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4752,8 +5764,8 @@ L_089E5FE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6000: @@ -4772,8 +5784,21 @@ L_089E6020: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089E6038u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 403u, 0x089E6038u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6038u) goto L_089E6038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6038: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(12), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(44), ctx.gpr[18]); @@ -4793,8 +5818,8 @@ L_089E6054: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E606C: @@ -4816,8 +5841,21 @@ L_089E6094: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089E60B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 407u, 0x089E60B4u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E60B4u) goto L_089E60B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E60B4: ctx.gpr[19] = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24), ctx.gpr[2]); @@ -4875,8 +5913,8 @@ L_089E6118: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6138: @@ -4895,8 +5933,21 @@ L_089E6158: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089E6170u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 416u, 0x089E6170u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6170u) goto L_089E6170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6170: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(20), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(48), ctx.gpr[18]); @@ -4916,8 +5967,8 @@ L_089E618C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E61A4: @@ -4965,8 +6016,21 @@ L_089E6204: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089E6218u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 424u, 0x089E6218u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6218u) goto L_089E6218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6218: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(28), ctx.gpr[2]); ctx.gpr[19] = (0u | 0u); @@ -5010,8 +6074,8 @@ L_089E6254: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6274: @@ -5030,8 +6094,21 @@ L_089E62AC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089E62C4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 431u, 0x089E62C4u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E62C4u) goto L_089E62C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E62C4: ctx.gpr[30] = (0u | 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), ctx.gpr[2]); @@ -5157,8 +6234,21 @@ L_089E6388: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089E63A0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 448u, 0x089E63A0u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E63A0u) goto L_089E63A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E63A0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(16), ctx.gpr[2]); ctx.gpr[18] = (0u | 0u); @@ -5207,8 +6297,8 @@ L_089E63E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6410: @@ -5221,8 +6311,21 @@ L_089E6410: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089E6434u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 454u, 0x089E6434u, 0x08AB0668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 74u, 0x08AB0668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6434u) goto L_089E6434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6434: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089E6440u); @@ -5317,8 +6420,8 @@ L_089E64E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6500: @@ -5381,8 +6484,8 @@ L_089E6560: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6574: @@ -5424,8 +6527,8 @@ L_089E65C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E65DC: @@ -5630,8 +6733,8 @@ L_089E67B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E67C8: @@ -5651,8 +6754,8 @@ L_089E67E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E67F8: @@ -5717,15 +6820,15 @@ L_089E6864: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6870: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6878: @@ -5781,8 +6884,8 @@ L_089E68B4: goto L_089E68DC; L_089E68DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E68E4: @@ -5837,8 +6940,8 @@ L_089E6938: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6948: @@ -5879,8 +6982,8 @@ L_089E6980: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E699C: @@ -5909,29 +7012,29 @@ L_089E69B4: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(50), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E69D0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(60))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E69D8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(48))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E69E0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(52))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E69E8: @@ -6024,8 +7127,8 @@ L_089E6A54: goto L_089E6A68; L_089E6A68: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6A70: @@ -6045,8 +7148,8 @@ L_089E6A80: goto L_089E6A8C; L_089E6A8C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6A94: @@ -6086,8 +7189,21 @@ L_089E6AF0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E6B00u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 567u, 0x089E6B00u, 0x08AB0814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 90u, 0x08AB0814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6B00u) goto L_089E6B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6B00: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6103,8 +7219,21 @@ L_089E6B0C: aot_gpr_5 = (aot_gpr_5 + static_cast(-8)); aot_gpr_31 = (0x089E6B24u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 569u, 0x089E6B24u, 0x08806450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 282u, 0x08806450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6B24u) goto L_089E6B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6B24: ctx.gpr[2] = (ctx.gpr[20] | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6118,8 +7247,8 @@ L_089E6B24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6B48: @@ -6162,8 +7291,21 @@ L_089E6BAC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E6BBCu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 574u, 0x089E6BBCu, 0x08AB0814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 90u, 0x08AB0814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6BBCu) goto L_089E6BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6BBC: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6214,8 +7356,8 @@ L_089E6C0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6C30: @@ -6273,14 +7415,27 @@ L_089E6C94: aot_gpr_4 = (aot_gpr_4 + static_cast(32)); aot_gpr_31 = (0x089E6CA0u); aot_gpr_6 = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 586u, 0x089E6CA0u, 0x088B9930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 339u, 0x088B9930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6CA0u) goto L_089E6CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6CA0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6CAC: @@ -6317,8 +7472,21 @@ L_089E6D00: ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[19]); aot_gpr_31 = (0x089E6D14u); aot_gpr_5 = (ctx.gpr[18] + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 590u, 0x089E6D14u, 0x088B96E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 305u, 0x088B96E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6D14u) goto L_089E6D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6D14: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6371,8 +7539,8 @@ L_089E6D4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6D74: @@ -6395,8 +7563,21 @@ L_089E6D74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E6DC0u); aot_gpr_6 = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 597u, 0x089E6DC0u, 0x088B9930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 339u, 0x088B9930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E6DC0u) goto L_089E6DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E6DC0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -6409,8 +7590,8 @@ L_089E6DC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6DE0: @@ -6455,8 +7636,8 @@ L_089E6E48: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-2304))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6E60: @@ -6603,8 +7784,8 @@ L_089E6F20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E6F54: @@ -6702,8 +7883,21 @@ L_089E7028: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E7034u); aot_gpr_5 = (0u | 102u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 633u, 0x089E7034u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E7034u) goto L_089E7034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E7034: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6726,8 +7920,21 @@ L_089E703C: L_089E7054: aot_gpr_31 = (0x089E705Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 636u, 0x089E705Cu, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E705Cu) goto L_089E705C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E705C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); @@ -6744,8 +7951,8 @@ L_089E7068: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7084: @@ -6799,8 +8006,8 @@ L_089E70D4: goto L_089E70D8; L_089E70D8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E70E0: @@ -6868,8 +8075,8 @@ L_089E713C: goto L_089E7140; L_089E7140: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7148: @@ -6905,8 +8112,8 @@ L_089E7178: goto L_089E717C; L_089E717C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7184: @@ -6920,8 +8127,8 @@ L_089E7198: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E71A4: @@ -6958,8 +8165,8 @@ L_089E71D8: goto L_089E71DC; L_089E71DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E71E4: @@ -6993,8 +8200,21 @@ L_089E722C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089E7240u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 669u, 0x089E7240u, 0x08AB0814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 90u, 0x08AB0814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E7240u) goto L_089E7240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E7240: { const bool branch_taken = ctx.gpr[2] != 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[2]); @@ -7047,8 +8267,8 @@ L_089E7280: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-2160))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7298: @@ -7145,8 +8365,8 @@ L_089E733C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E735C: @@ -7253,8 +8473,8 @@ L_089E740C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7424: @@ -7296,8 +8516,8 @@ L_089E7458: goto L_089E745C; L_089E745C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7464: @@ -7389,8 +8609,8 @@ L_089E7534: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7554: @@ -7415,8 +8635,8 @@ L_089E7578: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7584: @@ -7431,8 +8651,21 @@ L_089E7584: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x089E75B0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 719u, 0x089E75B0u, 0x088C2EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 349u, 0x088C2EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E75B0u) goto L_089E75B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E75B0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7460,8 +8693,8 @@ L_089E75D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E75E8: @@ -7509,8 +8742,8 @@ L_089E7650: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7660: @@ -7545,8 +8778,21 @@ L_089E76A0: aot_gpr_5 = (aot_gpr_5 + static_cast(16)); aot_gpr_31 = (0x089E76B4u); aot_gpr_6 = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 732u, 0x089E76B4u, 0x088B9930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 339u, 0x088B9930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E76B4u) goto L_089E76B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E76B4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-10820)); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7554,8 +8800,21 @@ L_089E76B4: ctx.gpr[7] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089E76CCu); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 733u, 0x089E76CCu, 0x088B98ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 337u, 0x088B98ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E76CCu) goto L_089E76CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E76CC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(60), aot_run_words); @@ -7566,8 +8825,8 @@ L_089E76CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E76E4: @@ -7597,8 +8856,21 @@ L_089E7718: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E7724u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 737u, 0x089E7724u, 0x088719B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 446u, 0x088719B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E7724u) goto L_089E7724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E7724: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); goto L_089E7728; @@ -7634,8 +8906,21 @@ L_089E7728: L_089E7784: aot_gpr_31 = (0x089E778Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 740u, 0x089E778Cu, 0x08871CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 473u, 0x08871CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E778Cu) goto L_089E778C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E778C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7644,14 +8929,40 @@ L_089E778C: aot_gpr_5 = (aot_gpr_5 + static_cast(-16)); aot_gpr_31 = (0x089E77A8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 741u, 0x089E77A8u, 0x088724C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 560u, 0x088724C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E77A8u) goto L_089E77A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E77A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E77B4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 742u, 0x089E77B4u, 0x088719B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 446u, 0x088719B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E77B4u) goto L_089E77B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E77B4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7661,8 +8972,8 @@ L_089E77B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E77C8: @@ -7683,8 +8994,21 @@ L_089E77C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089E780Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 744u, 0x089E780Cu, 0x088B9A78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 360u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 360u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 360u, 0x088B9A78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E780Cu) goto L_089E780C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E780C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089E7818u); @@ -7699,8 +9023,8 @@ L_089E7820: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7830: @@ -8000,8 +9324,8 @@ L_089E7A88: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-2112))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7AA0: @@ -8457,8 +9781,8 @@ L_089E7D68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7D98: @@ -8523,8 +9847,8 @@ L_089E7DEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7E00: @@ -8554,8 +9878,8 @@ L_089E7E38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7E64: @@ -8599,8 +9923,8 @@ L_089E7EBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7EF8: @@ -8624,16 +9948,16 @@ L_089E7EF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(28))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7F48: ctx.gpr[2] = (2206u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(32584)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7F54: @@ -8645,8 +9969,8 @@ L_089E7F64: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7F70: @@ -8666,8 +9990,21 @@ L_089E7F8C: goto L_089E7F94; L_089E7F94: aot_gpr_31 = (0x089E7F9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 855u, 0x089E7F9Cu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E7F9Cu) goto L_089E7F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E7F9C: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -8691,8 +10028,8 @@ L_089E7FB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E7FCC: @@ -8701,8 +10038,21 @@ L_089E7FCC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x089E7FF0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0120->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0120_entry, 859u, 0x089E7FF0u, 0x08A9A720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 300u, 0x08A9A720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E7FF0u) goto L_089E7FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E7FF0: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(26704)); diff --git a/profiles/vcs/generated/generated_unit_0121.cpp b/profiles/vcs/generated/generated_unit_0121.cpp index bae3d6c..b4b5265 100644 --- a/profiles/vcs/generated/generated_unit_0121.cpp +++ b/profiles/vcs/generated/generated_unit_0121.cpp @@ -729,6 +729,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089E8000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -820,8 +844,21 @@ L_089E8080: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x089E8094u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 10u, 0x089E8094u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8094u) goto L_089E8094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8094: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -865,8 +902,21 @@ L_089E80CC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089E80E0u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 16u, 0x089E80E0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E80E0u) goto L_089E80E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E80E0: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[20]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -926,8 +976,8 @@ L_089E8138: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E815C: @@ -953,8 +1003,21 @@ L_089E817C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089E81A0u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 26u, 0x089E81A0u, 0x08B6D670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 281u, 0x08B6D670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E81A0u) goto L_089E81A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E81A0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -1019,8 +1082,21 @@ L_089E81FC: aot_gpr_5 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x089E8214u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 35u, 0x089E8214u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8214u) goto L_089E8214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8214: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); @@ -1035,8 +1111,21 @@ L_089E821C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089E8230u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 37u, 0x089E8230u, 0x08A9A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8230u) goto L_089E8230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8230: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1060,8 +1149,8 @@ L_089E8244: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E825C: @@ -1096,8 +1185,21 @@ L_089E82B8: aot_gpr_5 = (ctx.gpr[19] + static_cast(12)); aot_gpr_31 = (0x089E82C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 42u, 0x089E82C4u, 0x08964E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 80u, 0x08964E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E82C4u) goto L_089E82C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E82C4: aot_gpr_4 = (ctx.gpr[17] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1182,8 +1284,21 @@ L_089E83B8: aot_gpr_5 = (ctx.gpr[19] + static_cast(8)); aot_gpr_31 = (0x089E83C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 48u, 0x089E83C4u, 0x08964F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 85u, 0x08964F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E83C4u) goto L_089E83C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E83C4: aot_gpr_4 = (ctx.gpr[17] & 16u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1231,8 +1346,8 @@ L_089E8438: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8454: @@ -1241,14 +1356,27 @@ L_089E8454: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x089E8468u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 52u, 0x089E8468u, 0x08A9AC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8468u) goto L_089E8468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8468: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8474: @@ -1270,8 +1398,21 @@ L_089E8494: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E84A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 55u, 0x089E84A4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E84A4u) goto L_089E84A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E84A4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); @@ -1296,8 +1437,8 @@ L_089E84B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E84EC: @@ -1317,8 +1458,21 @@ L_089E8504: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E8514u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 59u, 0x089E8514u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8514u) goto L_089E8514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8514: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -1331,8 +1485,8 @@ L_089E8520: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8538: @@ -1354,8 +1508,21 @@ L_089E8558: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E8568u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 63u, 0x089E8568u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8568u) goto L_089E8568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8568: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -1372,8 +1539,8 @@ L_089E8574: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8590: @@ -1393,8 +1560,21 @@ L_089E85A8: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089E85B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 67u, 0x089E85B8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E85B8u) goto L_089E85B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E85B8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -1407,8 +1587,8 @@ L_089E85C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E85DC: @@ -1650,8 +1830,8 @@ L_089E87B0: goto L_089E87BC; L_089E87BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E87C4: @@ -1696,8 +1876,21 @@ L_089E884C: aot_gpr_5 = (ctx.gpr[16] + static_cast(12)); aot_gpr_31 = (0x089E8858u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 105u, 0x089E8858u, 0x08964A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 74u, 0x08964A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8858u) goto L_089E8858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8858: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); goto L_089E885C; @@ -1831,8 +2024,21 @@ L_089E8A08: aot_gpr_5 = (ctx.gpr[16] + static_cast(8)); aot_gpr_31 = (0x089E8A14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 112u, 0x089E8A14u, 0x08964C24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 78u, 0x08964C24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8A14u) goto L_089E8A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8A14: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16))); goto L_089E8A18; @@ -1903,8 +2109,8 @@ L_089E8AE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8AF8: @@ -1969,8 +2175,8 @@ L_089E8B68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8B80: @@ -1982,8 +2188,21 @@ L_089E8B80: aot_gpr_4 = (aot_gpr_29 + static_cast(8)); aot_gpr_31 = (0x089E8BBCu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-10808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 124u, 0x089E8BBCu, 0x08B6D780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 306u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 306u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 306u, 0x08B6D780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8BBCu) goto L_089E8BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8BBC: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); @@ -2056,8 +2275,8 @@ L_089E8C20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8C54: @@ -2073,8 +2292,8 @@ L_089E8C70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8C7C: @@ -2111,16 +2330,42 @@ L_089E8CBC: ctx.gpr[18] = (ctx.gpr[2] + static_cast(1)); aot_gpr_31 = (0x089E8CC8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 138u, 0x089E8CC8u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8CC8u) goto L_089E8CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8CC8: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089E8CDCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 139u, 0x089E8CDCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8CDCu) goto L_089E8CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8CDC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[18]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[19]); @@ -2139,8 +2384,8 @@ L_089E8CF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8D0C: @@ -2189,16 +2434,42 @@ L_089E8D60: ctx.gpr[18] = (ctx.gpr[2] + static_cast(1)); aot_gpr_31 = (0x089E8D6Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 147u, 0x089E8D6Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8D6Cu) goto L_089E8D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8D6C: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089E8D80u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 148u, 0x089E8D80u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8D80u) goto L_089E8D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8D80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2228,8 +2499,8 @@ L_089E8DA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8DC0: @@ -2298,8 +2569,21 @@ L_089E8E34: ctx.gpr[20] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089E8E40u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 161u, 0x089E8E40u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8E40u) goto L_089E8E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8E40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2325,8 +2609,21 @@ L_089E8E58: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E8E68u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 165u, 0x089E8E68u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8E68u) goto L_089E8E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8E68: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2358,8 +2655,8 @@ L_089E8E8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8EAC: @@ -2420,8 +2717,21 @@ L_089E8F10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x089E8F1Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 176u, 0x089E8F1Cu, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E8F1Cu) goto L_089E8F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E8F1C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); @@ -2442,8 +2752,8 @@ L_089E8F28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8F3C: @@ -2511,8 +2821,8 @@ L_089E8F9C: goto L_089E8FA0; L_089E8FA0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E8FA8: @@ -2601,8 +2911,21 @@ L_089E903C: ctx.gpr[20] = (ctx.gpr[19] + ctx.gpr[19]); aot_gpr_31 = (0x089E9048u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 199u, 0x089E9048u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9048u) goto L_089E9048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9048: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(0), static_cast(0u)); @@ -2634,8 +2957,21 @@ L_089E9078: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089E9084u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 203u, 0x089E9084u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9084u) goto L_089E9084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9084: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); goto L_089E9088; @@ -2652,8 +2988,21 @@ L_089E9098: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E90A8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 206u, 0x089E90A8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E90A8u) goto L_089E90A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E90A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2697,8 +3046,21 @@ L_089E90E8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E90F8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 212u, 0x089E90F8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E90F8u) goto L_089E90F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E90F8: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); goto L_089E90FC; @@ -2721,8 +3083,8 @@ L_089E910C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E9130: @@ -2761,8 +3123,21 @@ L_089E918C: ctx.gpr[19] = (ctx.gpr[18] + ctx.gpr[18]); aot_gpr_31 = (0x089E9198u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 219u, 0x089E9198u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9198u) goto L_089E9198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9198: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(0), static_cast(0u)); @@ -2799,8 +3174,21 @@ L_089E91CC: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x089E91D8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 224u, 0x089E91D8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E91D8u) goto L_089E91D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E91D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); goto L_089E91DC; @@ -2823,8 +3211,21 @@ L_089E91F8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089E9208u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 228u, 0x089E9208u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9208u) goto L_089E9208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9208: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2874,8 +3275,21 @@ L_089E9254: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089E9264u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 235u, 0x089E9264u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9264u) goto L_089E9264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9264: aot_gpr_4 = (ctx.gpr[18] + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), aot_gpr_4); @@ -2891,8 +3305,8 @@ L_089E9264: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E9290: @@ -2901,8 +3315,8 @@ L_089E9290: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E92B8: @@ -2964,8 +3378,21 @@ L_089E9348: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089E9358u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 240u, 0x089E9358u, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9358u) goto L_089E9358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9358: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -2980,15 +3407,28 @@ L_089E9364: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x089E9374u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 242u, 0x089E9374u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9374u) goto L_089E9374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9374: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E9384: @@ -3001,8 +3441,8 @@ L_089E9384: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(53))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E93A8: @@ -3015,8 +3455,8 @@ L_089E93A8: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(53), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E93CC: @@ -3029,8 +3469,8 @@ L_089E93CC: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(55))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E93F0: @@ -3043,8 +3483,8 @@ L_089E93F0: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E9414: @@ -3057,8 +3497,8 @@ L_089E9414: aot_gpr_4 = (aot_gpr_4 + static_cast(16)); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E9438: @@ -3163,8 +3603,8 @@ L_089E94E8: goto L_089E94EC; L_089E94EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E94F4: @@ -3218,8 +3658,8 @@ L_089E955C: } L_089E956C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E9574: @@ -3238,8 +3678,8 @@ L_089E9574: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_14)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E95B0: @@ -3275,8 +3715,21 @@ L_089E95F4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089E9618u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 271u, 0x089E9618u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9618u) goto L_089E9618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9618: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -3298,8 +3751,21 @@ L_089E9630: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x089E9640u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 274u, 0x089E9640u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9640u) goto L_089E9640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9640: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -3340,8 +3806,21 @@ L_089E9688: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089E96A4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 279u, 0x089E96A4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E96A4u) goto L_089E96A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E96A4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3372,8 +3851,21 @@ L_089E96CC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089E96E8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 283u, 0x089E96E8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E96E8u) goto L_089E96E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E96E8: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3412,8 +3904,8 @@ L_089E9720: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E974C: @@ -3655,8 +4147,21 @@ L_089E99B4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089E99C4u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 310u, 0x089E99C4u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E99C4u) goto L_089E99C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E99C4: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(0u)); @@ -3735,8 +4240,21 @@ L_089E9A48: ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x089E9AA4u); ctx.gpr[11] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 314u, 0x089E9AA4u, 0x08A961ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 328u, 0x08A961ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9AA4u) goto L_089E9AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9AA4: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(52))); @@ -3891,8 +4409,8 @@ L_089E9B78: ctx.gpr[23] = (static_cast(static_cast(ctx.gpr[23]) >> 2u)); jump_target = ctx.gpr[1]; aot_fpr_20 = std::bit_cast(aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089E9B94: @@ -3948,8 +4466,21 @@ L_089E9BD8: aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089E9C0Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 335u, 0x089E9C0Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9C0Cu) goto L_089E9C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9C0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); @@ -3969,8 +4500,21 @@ L_089E9C0C: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089E9C28u); aot_gpr_6 = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 336u, 0x089E9C28u, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9C28u) goto L_089E9C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9C28: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4072,8 +4616,21 @@ L_089E9C88: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089E9D2Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 340u, 0x089E9D2Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9D2Cu) goto L_089E9D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9D2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4130,8 +4687,21 @@ L_089E9D6C: aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089E9D9Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 344u, 0x089E9D9Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9D9Cu) goto L_089E9D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9D9C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -4153,8 +4723,21 @@ L_089E9DB0: } aot_gpr_31 = (0x089E9DC4u); aot_gpr_4 = (aot_gpr_29 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 347u, 0x089E9DC4u, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9DC4u) goto L_089E9DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9DC4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4223,8 +4806,21 @@ L_089E9E18: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089E9E44u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 353u, 0x089E9E44u, 0x089CFED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 710u, 0x089CFED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9E44u) goto L_089E9E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9E44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4275,8 +4871,21 @@ L_089E9E88: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089E9EA8u); aot_gpr_6 = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 357u, 0x089E9EA8u, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9EA8u) goto L_089E9EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9EA8: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4340,8 +4949,21 @@ L_089E9EEC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089E9F28u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 359u, 0x089E9F28u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089E9F28u) goto L_089E9F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089E9F28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4447,8 +5069,21 @@ L_089E9FF8: aot_gpr_7 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089EA010u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 370u, 0x089EA010u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA010u) goto L_089EA010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA010: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4463,8 +5098,21 @@ L_089EA018: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EA030u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 372u, 0x089EA030u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA030u) goto L_089EA030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA030: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4490,8 +5138,21 @@ L_089EA038: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA050u); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 374u, 0x089EA050u, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA050u) goto L_089EA050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA050: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(44))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4787,8 +5448,21 @@ L_089EA268: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089EA28Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 400u, 0x089EA28Cu, 0x088FF204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 733u, 0x088FF204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA28Cu) goto L_089EA28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA28C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -4940,8 +5614,21 @@ L_089EA3D4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EA40Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 413u, 0x089EA40Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA40Cu) goto L_089EA40C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA40C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5007,8 +5694,21 @@ L_089EA484: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EA4BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 418u, 0x089EA4BCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA4BCu) goto L_089EA4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA4BC: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5067,8 +5767,21 @@ L_089EA534: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(636))); aot_gpr_31 = (0x089EA54Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 423u, 0x089EA54Cu, 0x088FF204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 733u, 0x088FF204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA54Cu) goto L_089EA54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA54C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 10 ? 1u : 0u); @@ -5095,8 +5808,21 @@ L_089EA55C: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA574u); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 425u, 0x089EA574u, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA574u) goto L_089EA574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA574: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5153,8 +5879,21 @@ L_089EA5B0: aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089EA5E4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 429u, 0x089EA5E4u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA5E4u) goto L_089EA5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA5E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(392), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); @@ -5174,8 +5913,21 @@ L_089EA5E4: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA600u); aot_gpr_6 = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 430u, 0x089EA600u, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA600u) goto L_089EA600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA600: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5285,8 +6037,21 @@ L_089EA6EC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EA724u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 439u, 0x089EA724u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA724u) goto L_089EA724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA724: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 6 ? 1u : 0u); @@ -5322,8 +6087,21 @@ L_089EA734: aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089EA760u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 441u, 0x089EA760u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA760u) goto L_089EA760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA760: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(424), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); @@ -5343,8 +6121,21 @@ L_089EA760: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA77Cu); aot_gpr_6 = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 442u, 0x089EA77Cu, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA77Cu) goto L_089EA77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA77C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5401,8 +6192,21 @@ L_089EA7B8: aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089EA7ECu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 446u, 0x089EA7ECu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA7ECu) goto L_089EA7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA7EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(488), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); @@ -5422,8 +6226,21 @@ L_089EA7EC: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA808u); aot_gpr_6 = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 447u, 0x089EA808u, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA808u) goto L_089EA808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA808: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5480,8 +6297,21 @@ L_089EA844: aot_fpr_14 = aot_fpr_14 + ctx.fpr[15]; aot_gpr_31 = (0x089EA878u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 451u, 0x089EA878u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA878u) goto L_089EA878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA878: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(520), std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); @@ -5501,8 +6331,21 @@ L_089EA878: aot_gpr_4 = (0u | 13u); aot_gpr_31 = (0x089EA894u); aot_gpr_6 = (0u | 250u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 452u, 0x089EA894u, 0x0897FF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 981u, 0x0897FF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA894u) goto L_089EA894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA894: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5657,8 +6500,21 @@ L_089EA968: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089EA9C8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 469u, 0x089EA9C8u, 0x08892400u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 340u, 0x08892400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA9C8u) goto L_089EA9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA9C8: { const bool branch_taken = ctx.gpr[23] != ctx.gpr[17]; if (branch_taken) { @@ -5678,8 +6534,21 @@ L_089EA9D0: } aot_gpr_31 = (0x089EA9F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 471u, 0x089EA9F0u, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EA9F0u) goto L_089EA9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EA9F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5699,8 +6568,21 @@ L_089EA9F8: } aot_gpr_31 = (0x089EAA18u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 473u, 0x089EAA18u, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAA18u) goto L_089EAA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EAA18: aot_gpr_31 = (0x089EAA20u); aot_gpr_4 = (0u | 0u); @@ -5717,8 +6599,21 @@ L_089EAA20: aot_gpr_5 = (0u | 300u); aot_gpr_31 = (0x089EAA3Cu); aot_gpr_6 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 475u, 0x089EAA3Cu, 0x0898BB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 955u, 0x0898BB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAA3Cu) goto L_089EAA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EAA3C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -5753,8 +6648,8 @@ L_089EAA4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EAA94: @@ -5884,8 +6779,21 @@ L_089EABB8: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EABD8u); ctx.gpr[8] = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 492u, 0x089EABD8u, 0x08892400u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 340u, 0x08892400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EABD8u) goto L_089EABD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EABD8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5948,8 +6856,8 @@ L_089EAC44: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-1848))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EAC5C: @@ -6011,8 +6919,21 @@ L_089EACA4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EACECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 503u, 0x089EACECu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EACECu) goto L_089EACEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EACEC: aot_gpr_4 = (16128u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); @@ -6061,8 +6982,21 @@ L_089EAD00: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EAD70u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 505u, 0x089EAD70u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAD70u) goto L_089EAD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EAD70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6161,8 +7095,21 @@ L_089EAE1C: aot_fpr_13 = std::bit_cast(0u); aot_gpr_31 = (0x089EAE30u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 517u, 0x089EAE30u, 0x088FF204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 733u, 0x088FF204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAE30u) goto L_089EAE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EAE30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -6247,8 +7194,21 @@ L_089EAEBC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EAEFCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 524u, 0x089EAEFCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAEFCu) goto L_089EAEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EAEFC: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -6298,8 +7258,21 @@ L_089EAF1C: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EAF6Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 527u, 0x089EAF6Cu, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAF6Cu) goto L_089EAF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EAF6C: aot_gpr_4 = (16576u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6321,8 +7294,21 @@ L_089EAF6C: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089EAFC0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 528u, 0x089EAFC0u, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EAFC0u) goto L_089EAFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EAFC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6352,8 +7338,21 @@ L_089EAFC8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089EB020u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 530u, 0x089EB020u, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB020u) goto L_089EB020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB020: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[9] = (aot_gpr_29 + static_cast(32)); @@ -6375,8 +7374,21 @@ L_089EB020: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089EB074u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 531u, 0x089EB074u, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB074u) goto L_089EB074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB074: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6425,8 +7437,21 @@ L_089EB08C: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EB0E0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 534u, 0x089EB0E0u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB0E0u) goto L_089EB0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB0E0: aot_gpr_4 = (16640u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6448,8 +7473,21 @@ L_089EB0E0: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089EB134u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 535u, 0x089EB134u, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB134u) goto L_089EB134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB134: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6479,8 +7517,21 @@ L_089EB13C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089EB194u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 537u, 0x089EB194u, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB194u) goto L_089EB194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB194: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[9] = (aot_gpr_29 + static_cast(32)); @@ -6502,8 +7553,21 @@ L_089EB194: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089EB1E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 538u, 0x089EB1E8u, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB1E8u) goto L_089EB1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB1E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6538,8 +7602,21 @@ L_089EB1F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x089EB220u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 540u, 0x089EB220u, 0x088937CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 577u, 0x088937CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB220u) goto L_089EB220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB220: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(208), aot_run_words); @@ -6550,8 +7627,21 @@ L_089EB220: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x089EB238u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 541u, 0x089EB238u, 0x08893C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 626u, 0x08893C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB238u) goto L_089EB238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB238: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(208), aot_run_words); @@ -6562,8 +7652,21 @@ L_089EB238: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x089EB250u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 542u, 0x089EB250u, 0x08893E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 647u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 647u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 647u, 0x08893E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB250u) goto L_089EB250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB250: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(224), static_cast(aot_gpr_4)); @@ -6622,8 +7725,21 @@ L_089EB288: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089EB2E0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 545u, 0x089EB2E0u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB2E0u) goto L_089EB2E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB2E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6785,8 +7901,21 @@ L_089EB43C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EB4B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 555u, 0x089EB4B0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB4B0u) goto L_089EB4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB4B0: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -6842,8 +7971,21 @@ L_089EB4C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089EB548u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 557u, 0x089EB548u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB548u) goto L_089EB548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB548: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6902,8 +8044,21 @@ L_089EB598: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x089EB5CCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 562u, 0x089EB5CCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB5CCu) goto L_089EB5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB5CC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 4 ? 1u : 0u); @@ -7024,8 +8179,21 @@ L_089EB658: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EB6E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 568u, 0x089EB6E8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB6E8u) goto L_089EB6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB6E8: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 10 ? 1u : 0u); @@ -7046,8 +8214,21 @@ L_089EB6F8: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x089EB720u); ctx.gpr[8] = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 570u, 0x089EB720u, 0x08892400u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 340u, 0x08892400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB720u) goto L_089EB720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB720: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); aot_gpr_4 = (static_cast(aot_gpr_4) < 7 ? 1u : 0u); @@ -7144,8 +8325,21 @@ L_089EB79C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x089EB83Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 574u, 0x089EB83Cu, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EB83Cu) goto L_089EB83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EB83C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7330,8 +8524,21 @@ L_089EB9D4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EBA38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 586u, 0x089EBA38u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBA38u) goto L_089EBA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EBA38: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -7394,8 +8601,8 @@ L_089EBA7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(576)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EBAB0: @@ -7409,8 +8616,8 @@ L_089EBAB0: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EBAD8: @@ -7454,8 +8661,8 @@ L_089EBB1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EBB28: @@ -7478,8 +8685,21 @@ L_089EBB50: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), aot_gpr_4); aot_gpr_31 = (0x089EBB64u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 602u, 0x089EBB64u, 0x089EC3FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 47u, 0x089EC3FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBB64u) goto L_089EBB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EBB64: ctx.gpr[20] = (ctx.gpr[17] + static_cast(12)); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -7504,8 +8724,21 @@ L_089EBB80: L_089EBB84: aot_gpr_31 = (0x089EBB8Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 606u, 0x089EBB8Cu, 0x089EC4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 52u, 0x089EC4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBB8Cu) goto L_089EBB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EBB8C: ctx.gpr[18] = (ctx.gpr[18] + static_cast(64)); { const bool branch_taken = ctx.gpr[18] != ctx.gpr[19]; @@ -7592,8 +8825,8 @@ L_089EBBF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EBC18: @@ -7646,8 +8879,21 @@ L_089EBC8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x089EBCA4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 622u, 0x089EBCA4u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBCA4u) goto L_089EBCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EBCA4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -7968,8 +9214,21 @@ L_089EBF50: L_089EBF54: aot_gpr_31 = (0x089EBF5Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 646u, 0x089EBF5Cu, 0x089EC4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 52u, 0x089EC4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBF5Cu) goto L_089EBF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EBF5C: ctx.gpr[21] = (ctx.gpr[21] + static_cast(64)); { const bool branch_taken = ctx.gpr[21] != ctx.gpr[20]; @@ -8009,8 +9268,8 @@ L_089EBF7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EBFB4: @@ -8023,8 +9282,21 @@ L_089EBFB4: ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089EBFE4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0121->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0121_entry, 651u, 0x089EBFE4u, 0x089EC460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 51u, 0x089EC460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EBFE4u) goto L_089EBFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EBFE4: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; diff --git a/profiles/vcs/generated/generated_unit_0122.cpp b/profiles/vcs/generated/generated_unit_0122.cpp index 7041aae..aa4bd6c 100644 --- a/profiles/vcs/generated/generated_unit_0122.cpp +++ b/profiles/vcs/generated/generated_unit_0122.cpp @@ -721,6 +721,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089EC000u; + if (local_delta_v813 >= 16300u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -831,8 +855,21 @@ L_089EC0C8: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x089EC0E8u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 9u, 0x089EC0E8u, 0x089EBC18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 618u, 0x089EBC18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC0E8u) goto L_089EC0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC0E8: aot_gpr_5 = (aot_gpr_16 + static_cast(8)); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); @@ -854,8 +891,8 @@ L_089EC104: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC124: @@ -876,14 +913,27 @@ L_089EC124: aot_fpr_13 = std::bit_cast(aot_gpr_6); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089EC164u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 12u, 0x089EC164u, 0x089EBFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 650u, 0x089EBFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC164u) goto L_089EC164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC164: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC170: @@ -891,8 +941,8 @@ L_089EC170: aot_gpr_4 = (aot_gpr_5 << 6u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC180: @@ -998,8 +1048,8 @@ L_089EC244: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC260: @@ -1062,8 +1112,21 @@ L_089EC2FC: L_089EC310: aot_gpr_31 = (0x089EC318u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 34u, 0x089EC318u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC318u) goto L_089EC318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC318: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1124,8 +1187,21 @@ L_089EC380: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089EC390u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 42u, 0x089EC390u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC390u) goto L_089EC390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC390: aot_gpr_16 = (0u | 0u); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -1147,8 +1223,21 @@ L_089EC3A0: } L_089EC3B0: aot_gpr_31 = (0x089EC3B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 45u, 0x089EC3B8u, 0x08AD340Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 565u, 0x08AD340Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC3B8u) goto L_089EC3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC3B8: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -1176,8 +1265,8 @@ L_089EC3C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC3FC: @@ -1222,8 +1311,8 @@ L_089EC448: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC460: @@ -1258,8 +1347,8 @@ L_089EC460: ctx.gpr[2] = (aot_gpr_4 | 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC4BC: @@ -1305,8 +1394,8 @@ L_089EC4FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC510: @@ -1383,8 +1472,8 @@ L_089EC574: goto L_089EC58C; L_089EC58C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC594: @@ -1452,8 +1541,8 @@ L_089EC604: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC614: @@ -1574,8 +1663,21 @@ L_089EC6CC: L_089EC6D8: aot_gpr_31 = (0x089EC6E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 83u, 0x089EC6E0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC6E0u) goto L_089EC6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC6E0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1586,8 +1688,21 @@ L_089EC6E0: L_089EC6E8: aot_gpr_31 = (0x089EC6F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 85u, 0x089EC6F0u, 0x08AD340Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 565u, 0x08AD340Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC6F0u) goto L_089EC6F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC6F0: aot_gpr_4 = (0u + static_cast(-1)); ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -1693,8 +1808,8 @@ L_089EC7CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC7E0: @@ -1756,8 +1871,21 @@ L_089EC838: L_089EC844: aot_gpr_31 = (0x089EC84Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 105u, 0x089EC84Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC84Cu) goto L_089EC84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC84C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1772,8 +1900,21 @@ L_089EC854: L_089EC85C: aot_gpr_31 = (0x089EC864u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 108u, 0x089EC864u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC864u) goto L_089EC864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC864: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1793,8 +1934,21 @@ L_089EC878: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089EC884u); aot_gpr_4 = (0u | 352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 111u, 0x089EC884u, 0x0887F0C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 651u, 0x0887F0C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC884u) goto L_089EC884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC884: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1806,8 +1960,21 @@ L_089EC884: L_089EC890: aot_gpr_31 = (0x089EC898u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 113u, 0x089EC898u, 0x0887F024u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 644u, 0x0887F024u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC898u) goto L_089EC898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC898: ctx.gpr[18] = (ctx.gpr[17] | 0u); goto L_089EC89C; @@ -1864,8 +2031,21 @@ L_089EC8CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089EC90Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 117u, 0x089EC90Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC90Cu) goto L_089EC90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC90C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1875,18 +2055,57 @@ L_089EC90C: } aot_gpr_31 = (0x089EC920u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 118u, 0x089EC920u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC920u) goto L_089EC920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC920: aot_gpr_31 = (0x089EC928u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 119u, 0x089EC928u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC928u) goto L_089EC928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC928: aot_gpr_31 = (0x089EC930u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 120u, 0x089EC930u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC930u) goto L_089EC930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC930: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -1920,8 +2139,21 @@ L_089EC97C: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(58), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089EC990u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 123u, 0x089EC990u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC990u) goto L_089EC990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC990: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1942,8 +2174,21 @@ L_089EC9A4: aot_gpr_6 = (ctx.gpr[28] + static_cast(-10000)); aot_gpr_31 = (0x089EC9B4u); aot_gpr_5 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 126u, 0x089EC9B4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC9B4u) goto L_089EC9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC9B4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -1954,8 +2199,8 @@ L_089EC9B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EC9CC: @@ -1973,8 +2218,21 @@ L_089EC9CC: L_089EC9E8: aot_gpr_31 = (0x089EC9F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 129u, 0x089EC9F0u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EC9F0u) goto L_089EC9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EC9F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2003,8 +2261,8 @@ L_089ECA1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ECA2C: @@ -2055,13 +2313,39 @@ L_089ECA80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089ECA90u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 139u, 0x089ECA90u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECA90u) goto L_089ECA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECA90: aot_gpr_31 = (0x089ECA98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 140u, 0x089ECA98u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECA98u) goto L_089ECA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECA98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2081,8 +2365,21 @@ L_089ECAAC: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x089ECAB8u); aot_gpr_4 = (0u | 352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 143u, 0x089ECAB8u, 0x0887F0C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 651u, 0x0887F0C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECAB8u) goto L_089ECAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECAB8: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2094,8 +2391,21 @@ L_089ECAB8: L_089ECAC4: aot_gpr_31 = (0x089ECACCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 145u, 0x089ECACCu, 0x0887F024u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 644u, 0x0887F024u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECACCu) goto L_089ECACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECACC: ctx.gpr[19] = (ctx.gpr[18] | 0u); goto L_089ECAD0; @@ -2150,8 +2460,21 @@ L_089ECAF8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089ECB38u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 149u, 0x089ECB38u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECB38u) goto L_089ECB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECB38: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2161,18 +2484,57 @@ L_089ECB38: } aot_gpr_31 = (0x089ECB4Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 150u, 0x089ECB4Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECB4Cu) goto L_089ECB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECB4C: aot_gpr_31 = (0x089ECB54u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 151u, 0x089ECB54u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECB54u) goto L_089ECB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECB54: aot_gpr_31 = (0x089ECB5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 152u, 0x089ECB5Cu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECB5Cu) goto L_089ECB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECB5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -2205,8 +2567,21 @@ L_089ECBA4: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(58), static_cast(aot_gpr_5)); aot_gpr_31 = (0x089ECBB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 155u, 0x089ECBB8u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECBB8u) goto L_089ECBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECBB8: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -2218,8 +2593,8 @@ L_089ECBB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ECBD4: @@ -2237,8 +2612,21 @@ L_089ECBD4: L_089ECBF0: aot_gpr_31 = (0x089ECBF8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 158u, 0x089ECBF8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECBF8u) goto L_089ECBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECBF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2267,8 +2655,8 @@ L_089ECC24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ECC34: @@ -2319,8 +2707,21 @@ L_089ECCF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x089ECCFCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 166u, 0x089ECCFCu, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECCFCu) goto L_089ECCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECCFC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2441,8 +2842,21 @@ L_089ECDDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x089ECDE8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 181u, 0x089ECDE8u, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECDE8u) goto L_089ECDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECDE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2455,8 +2869,21 @@ L_089ECDF0: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x089ECE00u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 183u, 0x089ECE00u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECE00u) goto L_089ECE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECE00: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_16 = (aot_gpr_16 + static_cast(4)); @@ -2486,8 +2913,21 @@ L_089ECE2C: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(276), ctx.gpr[22]); aot_gpr_31 = (0x089ECE40u); aot_gpr_5 = (aot_gpr_5 + static_cast(276)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 186u, 0x089ECE40u, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ECE40u) goto L_089ECE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ECE40: aot_gpr_4 = (50281u << 16u); aot_gpr_4 = (aot_gpr_4 | 22577u); @@ -2686,8 +3126,21 @@ L_089ED0D4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089ED11Cu); aot_fpr_12 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 194u, 0x089ED11Cu, 0x089EBFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 650u, 0x089EBFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ED11Cu) goto L_089ED11C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ED11C: aot_gpr_4 = (50224u << 16u); aot_gpr_4 = (aot_gpr_4 | 8845u); @@ -2841,8 +3294,21 @@ L_089ED304: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089ED34Cu); aot_fpr_12 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 201u, 0x089ED34Cu, 0x089EBFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 650u, 0x089EBFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ED34Cu) goto L_089ED34C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ED34C: aot_gpr_4 = (17280u << 16u); aot_gpr_4 = (aot_gpr_4 | 7574u); @@ -3106,8 +3572,21 @@ L_089ED6CC: aot_gpr_6 = (aot_gpr_6 | 9332u); aot_gpr_31 = (0x089ED714u); aot_fpr_12 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 212u, 0x089ED714u, 0x089EBFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 650u, 0x089EBFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ED714u) goto L_089ED714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ED714: aot_gpr_6 = (49683u << 16u); aot_gpr_6 = (aot_gpr_6 | 16267u); @@ -3195,8 +3674,21 @@ L_089ED80C: aot_gpr_6 = (aot_gpr_6 | 38273u); aot_gpr_31 = (0x089ED854u); aot_fpr_12 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 216u, 0x089ED854u, 0x089EBFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 650u, 0x089EBFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ED854u) goto L_089ED854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ED854: aot_gpr_16 = (0u | 0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); @@ -3254,8 +3746,8 @@ L_089ED8B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ED8FC: @@ -3311,42 +3803,42 @@ L_089ED8FC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ED924: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ED92C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ED934: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ED93C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ED944: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1704))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089ED94C: @@ -3359,8 +3851,21 @@ L_089ED94C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089ED970u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 227u, 0x089ED970u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089ED970u) goto L_089ED970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089ED970: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(26896)); @@ -3460,8 +3965,8 @@ L_089EDA88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDAB4: @@ -3484,8 +3989,21 @@ L_089EDAD0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089EDAE8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 235u, 0x089EDAE8u, 0x08831598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 297u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 297u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 297u, 0x08831598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDAE8u) goto L_089EDAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDAE8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3497,8 +4015,21 @@ L_089EDAE8: L_089EDAF4: aot_gpr_31 = (0x089EDAFCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 237u, 0x089EDAFCu, 0x08AFF2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 734u, 0x08AFF2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDAFCu) goto L_089EDAFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDAFC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3508,14 +4039,14 @@ L_089EDAFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDB10: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDB18: @@ -3561,8 +4092,21 @@ L_089EDB88: aot_gpr_6 = (aot_gpr_16 + static_cast(552)); aot_gpr_31 = (0x089EDBA4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 242u, 0x089EDBA4u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDBA4u) goto L_089EDBA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDBA4: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1640))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); @@ -3598,8 +4142,21 @@ L_089EDBF4: ctx.gpr[7] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x089EDC08u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 246u, 0x089EDC08u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDC08u) goto L_089EDC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDC08: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9948))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9952))); @@ -3612,8 +4169,21 @@ L_089EDC1C: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x089EDC28u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 248u, 0x089EDC28u, 0x08B626A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 496u, 0x08B626A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDC28u) goto L_089EDC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDC28: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 256 ? 1u : 0u); @@ -3667,8 +4237,21 @@ L_089EDC90: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089EDCA4u); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 255u, 0x089EDCA4u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDCA4u) goto L_089EDCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDCA4: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -3682,8 +4265,21 @@ L_089EDCB0: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089EDCC0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 257u, 0x089EDCC0u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDCC0u) goto L_089EDCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDCC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1320))); @@ -3698,8 +4294,21 @@ L_089EDCD0: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089EDCE0u); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 259u, 0x089EDCE0u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDCE0u) goto L_089EDCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDCE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3713,8 +4322,21 @@ L_089EDCEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089EDCFCu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 261u, 0x089EDCFCu, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDCFCu) goto L_089EDCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDCFC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1316))); @@ -3729,8 +4351,21 @@ L_089EDD0C: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089EDD1Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 263u, 0x089EDD1Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDD1Cu) goto L_089EDD1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDD1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3744,8 +4379,21 @@ L_089EDD28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089EDD38u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 265u, 0x089EDD38u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDD38u) goto L_089EDD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDD38: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1324))); @@ -3760,8 +4408,21 @@ L_089EDD48: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089EDD58u); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 267u, 0x089EDD58u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDD58u) goto L_089EDD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDD58: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -3775,13 +4436,39 @@ L_089EDD64: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089EDD74u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 269u, 0x089EDD74u, 0x08B01DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 502u, 0x08B01DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDD74u) goto L_089EDD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDD74: aot_gpr_31 = (0x089EDD7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 270u, 0x089EDD7Cu, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDD7Cu) goto L_089EDD7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDD7C: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -3799,8 +4486,8 @@ L_089EDD7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDDB0: @@ -3913,21 +4600,21 @@ L_089EDE74: goto L_089EDE84; L_089EDE84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDE8C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDE94: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDE9C: @@ -3937,8 +4624,21 @@ L_089EDE9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089EDEB4u); aot_gpr_4 = (aot_gpr_16 + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 285u, 0x089EDEB4u, 0x08B0D814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 366u, 0x08B0D814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDEB4u) goto L_089EDEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDEB4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(615)))))); aot_gpr_5 = (0u + static_cast(-3)); @@ -3948,8 +4648,8 @@ L_089EDEB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDED4: @@ -3958,8 +4658,8 @@ L_089EDED4: aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(615), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDEE8: @@ -4036,8 +4736,8 @@ L_089EDF60: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-9980), static_cast(aot_gpr_4)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDF74: @@ -4066,8 +4766,8 @@ L_089EDFA0: goto L_089EDFA4; L_089EDFA4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDFAC: @@ -4075,8 +4775,21 @@ L_089EDFAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089EDFBCu); aot_gpr_4 = (aot_gpr_4 + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 297u, 0x089EDFBCu, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EDFBCu) goto L_089EDFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EDFBC: aot_gpr_4 = (ctx.gpr[2] & 255u); aot_gpr_5 = (0u | 3u); @@ -4101,8 +4814,8 @@ L_089EDFD8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EDFE4: @@ -4157,8 +4870,8 @@ L_089EDFE4: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7612), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EE05C: @@ -4314,8 +5027,21 @@ L_089EE154: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089EE194u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 307u, 0x089EE194u, 0x088B1424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 186u, 0x088B1424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE194u) goto L_089EE194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE194: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < ctx.fpr[26])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -4422,8 +5148,8 @@ L_089EE24C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EE290: @@ -4463,8 +5189,8 @@ L_089EE2CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EE2E0: @@ -4586,8 +5312,21 @@ L_089EE3C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_5); aot_gpr_31 = (0x089EE404u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 328u, 0x089EE404u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE404u) goto L_089EE404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE404: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(332))); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4934,8 +5673,21 @@ L_089EE5DC: L_089EE5E8: aot_gpr_31 = (0x089EE5F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 343u, 0x089EE5F0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE5F0u) goto L_089EE5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE5F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(328))); ctx.gpr[23] = (ctx.gpr[23] + static_cast(4)); @@ -4966,8 +5718,8 @@ L_089EE608: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EE640: @@ -5044,8 +5796,21 @@ L_089EE6E0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089EE700u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 350u, 0x089EE700u, 0x088B1424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 186u, 0x088B1424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE700u) goto L_089EE700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE700: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -5360,8 +6125,8 @@ L_089EE8CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EE908: @@ -5370,8 +6135,21 @@ L_089EE908: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(464), aot_run_words); } aot_gpr_31 = (0x089EE950u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 369u, 0x089EE950u, 0x08837B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 525u, 0x08837B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE950u) goto L_089EE950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE950: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); ctx.fpr[22] = std::bit_cast(0u); @@ -5403,8 +6181,21 @@ L_089EE97C: L_089EE984: aot_gpr_31 = (0x089EE98Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 374u, 0x089EE98Cu, 0x0898CF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 333u, 0x0898CF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE98Cu) goto L_089EE98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE98C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5431,8 +6222,21 @@ L_089EE9A0: } L_089EE9B8: aot_gpr_31 = (0x089EE9C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 378u, 0x089EE9C0u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE9C0u) goto L_089EE9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE9C0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5450,8 +6254,21 @@ L_089EE9C8: } L_089EE9D4: aot_gpr_31 = (0x089EE9DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 381u, 0x089EE9DCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE9DCu) goto L_089EE9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE9DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5461,8 +6278,21 @@ L_089EE9DC: } L_089EE9E4: aot_gpr_31 = (0x089EE9ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 383u, 0x089EE9ECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EE9ECu) goto L_089EE9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EE9EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 4u); @@ -5474,8 +6304,21 @@ L_089EE9EC: } L_089EE9FC: aot_gpr_31 = (0x089EEA04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 385u, 0x089EEA04u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EEA04u) goto L_089EEA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EEA04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 5u); @@ -5489,8 +6332,21 @@ L_089EEA14: ctx.gpr[20] = (0u | 1u); aot_gpr_31 = (0x089EEA20u); ctx.gpr[17] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 387u, 0x089EEA20u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EEA20u) goto L_089EEA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EEA20: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -5942,8 +6798,21 @@ L_089EED50: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089EED68u); aot_gpr_6 = (0u | 113u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 418u, 0x089EED68u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EED68u) goto L_089EED68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EED68: aot_gpr_31 = (0x089EED70u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EED70u) goto L_089EED70; @@ -5999,8 +6868,8 @@ L_089EEDC8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-1800))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EEDE0: @@ -6041,8 +6910,21 @@ L_089EEE04: goto L_089EEE08; L_089EEE08: aot_gpr_31 = (0x089EEE10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 432u, 0x089EEE10u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EEE10u) goto L_089EEE10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EEE10: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6177,8 +7059,21 @@ L_089EEEC8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089EEEF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 442u, 0x089EEEF4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EEEF4u) goto L_089EEEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EEEF4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6376,8 +7271,21 @@ L_089EF028: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089EF038u); aot_gpr_6 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 451u, 0x089EF038u, 0x08A43300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 524u, 0x08A43300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF038u) goto L_089EF038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF038: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -6385,8 +7293,21 @@ L_089EF038: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089EF050u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 452u, 0x089EF050u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF050u) goto L_089EF050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF050: aot_gpr_31 = (0x089EF058u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF058u) goto L_089EF058; @@ -6459,8 +7380,21 @@ L_089EF0C0: L_089EF0CC: aot_gpr_31 = (0x089EF0D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 463u, 0x089EF0D4u, 0x089F095Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 115u, 0x089F095Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF0D4u) goto L_089EF0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF0D4: aot_gpr_4 = (15692u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6550,8 +7484,21 @@ L_089EF128: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089EF160u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 467u, 0x089EF160u, 0x0893FA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 828u, 0x0893FA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF160u) goto L_089EF160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF160: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[30] + static_cast(1970))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6641,8 +7588,21 @@ L_089EF17C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089EF1C0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 470u, 0x089EF1C0u, 0x0893FE6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 852u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 852u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 852u, 0x0893FE6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF1C0u) goto L_089EF1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF1C0: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -6685,8 +7645,8 @@ L_089EF1EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EF230: @@ -6719,8 +7679,21 @@ L_089EF268: L_089EF270: aot_gpr_31 = (0x089EF278u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 476u, 0x089EF278u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF278u) goto L_089EF278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF278: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6758,14 +7731,40 @@ L_089EF2AC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089EF2B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 482u, 0x089EF2B8u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF2B8u) goto L_089EF2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF2B8: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089EF2C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 483u, 0x089EF2C4u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF2C4u) goto L_089EF2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF2C4: aot_gpr_4 = (ctx.gpr[18] - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6806,8 +7805,21 @@ L_089EF300: L_089EF314: aot_gpr_31 = (0x089EF31Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 487u, 0x089EF31Cu, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF31Cu) goto L_089EF31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF31C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6815,8 +7827,21 @@ L_089EF31C: { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089EF334u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1928), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 488u, 0x089EF334u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF334u) goto L_089EF334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF334: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6825,16 +7850,42 @@ L_089EF334: { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089EF350u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1932), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 489u, 0x089EF350u, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF350u) goto L_089EF350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF350: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x089EF364u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1924), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 490u, 0x089EF364u, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF364u) goto L_089EF364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF364: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6855,8 +7906,21 @@ L_089EF36C: L_089EF37C: aot_gpr_31 = (0x089EF384u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 493u, 0x089EF384u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF384u) goto L_089EF384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF384: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6864,16 +7928,42 @@ L_089EF384: { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089EF39Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1928), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 494u, 0x089EF39Cu, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF39Cu) goto L_089EF39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF39C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x089EF3B0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1932), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 495u, 0x089EF3B0u, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF3B0u) goto L_089EF3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF3B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6889,8 +7979,21 @@ L_089EF3B8: L_089EF3C4: aot_gpr_31 = (0x089EF3CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 498u, 0x089EF3CCu, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF3CCu) goto L_089EF3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF3CC: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6900,8 +8003,21 @@ L_089EF3CC: L_089EF3DC: aot_gpr_31 = (0x089EF3E4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 500u, 0x089EF3E4u, 0x0898CE74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 319u, 0x0898CE74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF3E4u) goto L_089EF3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF3E4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(32)); @@ -7118,8 +8234,21 @@ L_089EF52C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089EF544u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 508u, 0x089EF544u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF544u) goto L_089EF544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF544: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(154))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7135,8 +8264,21 @@ L_089EF550: L_089EF558: aot_gpr_31 = (0x089EF560u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 511u, 0x089EF560u, 0x0894CE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 221u, 0x0894CE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF560u) goto L_089EF560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF560: aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7183,8 +8325,21 @@ L_089EF594: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089EF5B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 513u, 0x089EF5B8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF5B8u) goto L_089EF5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF5B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(636))); aot_gpr_4 = (17274u << 16u); @@ -7220,8 +8375,8 @@ L_089EF5F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089EF61C: @@ -7566,8 +8721,21 @@ L_089EF8DC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089EF8F8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 553u, 0x089EF8F8u, 0x08B061F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 475u, 0x08B061F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF8F8u) goto L_089EF8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF8F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7646,8 +8814,21 @@ L_089EF984: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089EF9A0u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 562u, 0x089EF9A0u, 0x08B061F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 475u, 0x08B061F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EF9A0u) goto L_089EF9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EF9A0: aot_gpr_4 = (15477u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1640))); @@ -7693,8 +8874,21 @@ L_089EF9EC: L_089EF9FC: aot_gpr_31 = (0x089EFA04u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 567u, 0x089EFA04u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFA04u) goto L_089EFA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFA04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_089EFA08; @@ -7705,8 +8899,21 @@ L_089EFA08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089EFA20u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 569u, 0x089EFA20u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFA20u) goto L_089EFA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFA20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), 0u); aot_gpr_5 = (2179u << 16u); @@ -7714,8 +8921,21 @@ L_089EFA20: aot_gpr_6 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x089EFA38u); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 570u, 0x089EFA38u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFA38u) goto L_089EFA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFA38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7727,8 +8947,21 @@ L_089EFA38: L_089EFA44: aot_gpr_31 = (0x089EFA4Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 572u, 0x089EFA4Cu, 0x0895B9F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 525u, 0x0895B9F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFA4Cu) goto L_089EFA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFA4C: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(12))); goto L_089EFA50; @@ -7855,8 +9088,21 @@ L_089EFB0C: ctx.gpr[7] = (0u + static_cast(-3)); aot_gpr_31 = (0x089EFB30u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 586u, 0x089EFB30u, 0x08B08D74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 236u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 236u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 236u, 0x08B08D74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFB30u) goto L_089EFB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFB30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); @@ -7923,8 +9169,21 @@ L_089EFB74: L_089EFBB0: aot_gpr_31 = (0x089EFBB8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 592u, 0x089EFBB8u, 0x089DD3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 193u, 0x089DD3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFBB8u) goto L_089EFBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFBB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7962,8 +9221,21 @@ L_089EFBD4: aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x089EFBF4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 595u, 0x089EFBF4u, 0x089DD3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 193u, 0x089DD3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFBF4u) goto L_089EFBF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFBF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7984,8 +9256,21 @@ L_089EFC04: L_089EFC10: aot_gpr_31 = (0x089EFC18u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 598u, 0x089EFC18u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFC18u) goto L_089EFC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFC18: aot_gpr_31 = (0x089EFC20u); aot_gpr_4 = (0u | 0u); @@ -7994,8 +9279,21 @@ L_089EFC18: L_089EFC20: aot_gpr_31 = (0x089EFC28u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 600u, 0x089EFC28u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFC28u) goto L_089EFC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFC28: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8011,8 +9309,21 @@ L_089EFC30: L_089EFC38: aot_gpr_31 = (0x089EFC40u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 603u, 0x089EFC40u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFC40u) goto L_089EFC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFC40: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8023,8 +9334,21 @@ L_089EFC40: L_089EFC48: aot_gpr_31 = (0x089EFC50u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 605u, 0x089EFC50u, 0x089F19A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 320u, 0x089F19A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFC50u) goto L_089EFC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFC50: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[20]; @@ -8289,8 +9613,21 @@ L_089EFE50: L_089EFE60: aot_gpr_31 = (0x089EFE68u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 628u, 0x089EFE68u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFE68u) goto L_089EFE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFE68: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); goto L_089EFE6C; @@ -8301,8 +9638,21 @@ L_089EFE6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(280), aot_gpr_4); aot_gpr_31 = (0x089EFE84u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 630u, 0x089EFE84u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFE84u) goto L_089EFE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFE84: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8440,8 +9790,21 @@ L_089EFF1C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x089EFF38u); aot_gpr_6 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 633u, 0x089EFF38u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFF38u) goto L_089EFF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFF38: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(1608))); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(1876), std::bit_cast(aot_fpr_12)); @@ -8464,8 +9827,21 @@ L_089EFF50: L_089EFF5C: aot_gpr_31 = (0x089EFF64u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 637u, 0x089EFF64u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFF64u) goto L_089EFF64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFF64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(280))); goto L_089EFF68; @@ -8488,8 +9864,21 @@ L_089EFF74: L_089EFF80: aot_gpr_31 = (0x089EFF88u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(272))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0122->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0122_entry, 641u, 0x089EFF88u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089EFF88u) goto L_089EFF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089EFF88: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(86)))))); aot_gpr_5 = (0u | 173u); diff --git a/profiles/vcs/generated/generated_unit_0123.cpp b/profiles/vcs/generated/generated_unit_0123.cpp index bdb2624..cebb460 100644 --- a/profiles/vcs/generated/generated_unit_0123.cpp +++ b/profiles/vcs/generated/generated_unit_0123.cpp @@ -740,6 +740,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089F0000u; + if (local_delta_v813 >= 16340u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -766,8 +790,21 @@ L_089F0000: L_089F0010: aot_gpr_31 = (0x089F0018u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 3u, 0x089F0018u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0018u) goto L_089F0018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0018: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -793,8 +830,21 @@ L_089F003C: aot_gpr_5 = (0u | 28u); aot_gpr_31 = (0x089F0050u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 6u, 0x089F0050u, 0x08A40A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 117u, 0x08A40A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0050u) goto L_089F0050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0050: ctx.gpr[30] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(612))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); @@ -837,8 +887,21 @@ L_089F00A0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F00C0u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 8u, 0x089F00C0u, 0x089ED8FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 220u, 0x089ED8FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F00C0u) goto L_089F00C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F00C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -900,8 +963,21 @@ L_089F00C0: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089F010Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 9u, 0x089F010Cu, 0x08A4842Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 46u, 0x08A4842Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F010Cu) goto L_089F010C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F010C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(512), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(516), std::bit_cast(ctx.fpr[22])); @@ -910,8 +986,21 @@ L_089F010C: aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089F0128u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 10u, 0x089F0128u, 0x08A41568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 255u, 0x08A41568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0128u) goto L_089F0128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0128: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(608))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(96))); @@ -919,8 +1008,21 @@ L_089F0128: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089F0140u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 11u, 0x089F0140u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0140u) goto L_089F0140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0140: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(656), aot_gpr_4); @@ -954,8 +1056,8 @@ L_089F015C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(688)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F019C: @@ -964,8 +1066,21 @@ L_089F019C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(192), aot_run_words); } aot_gpr_31 = (0x089F01E4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 14u, 0x089F01E4u, 0x08AFEF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 662u, 0x08AFEF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F01E4u) goto L_089F01E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F01E4: aot_gpr_6 = (49353u << 16u); aot_gpr_6 = (aot_gpr_6 | 4059u); @@ -1016,8 +1131,21 @@ L_089F0258: aot_gpr_4 = (0u | 19u); aot_gpr_31 = (0x089F0264u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 19u, 0x089F0264u, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0264u) goto L_089F0264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0264: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1103,8 +1231,21 @@ L_089F026C: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x089F02ECu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 21u, 0x089F02ECu, 0x089EDFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 301u, 0x089EDFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F02ECu) goto L_089F02EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F02EC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(616)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -1140,8 +1281,21 @@ L_089F0324: ctx.fpr[24] = ctx.fpr[24] / aot_fpr_12; aot_gpr_31 = (0x089F0358u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 24u, 0x089F0358u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0358u) goto L_089F0358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0358: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); @@ -1251,8 +1405,21 @@ L_089F0424: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089F0438u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 37u, 0x089F0438u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0438u) goto L_089F0438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0438: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); @@ -1291,8 +1458,21 @@ L_089F0490: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089F049Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 42u, 0x089F049Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F049Cu) goto L_089F049C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F049C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16512u << 16u); @@ -1317,8 +1497,21 @@ L_089F04D4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089F04ECu); aot_gpr_5 = (std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 44u, 0x089F04ECu, 0x08B09D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 371u, 0x08B09D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F04ECu) goto L_089F04EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F04EC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (0u + static_cast(-995)); @@ -1507,8 +1700,21 @@ L_089F065C: L_089F066C: aot_gpr_31 = (0x089F0674u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 68u, 0x089F0674u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0674u) goto L_089F0674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0674: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_089F0678; @@ -1519,8 +1725,21 @@ L_089F0678: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089F0690u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 70u, 0x089F0690u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0690u) goto L_089F0690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0690: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1538,8 +1757,21 @@ L_089F0690: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1944))); aot_gpr_31 = (0x089F06A4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 71u, 0x089F06A4u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F06A4u) goto L_089F06A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F06A4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -1549,13 +1781,39 @@ L_089F06A4: } aot_gpr_31 = (0x089F06B8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 72u, 0x089F06B8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F06B8u) goto L_089F06B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F06B8: aot_gpr_31 = (0x089F06C0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 73u, 0x089F06C0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F06C0u) goto L_089F06C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F06C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1316))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1588,8 +1846,21 @@ L_089F06E0: L_089F06F0: aot_gpr_31 = (0x089F06F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 77u, 0x089F06F8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F06F8u) goto L_089F06F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F06F8: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_089F06FC; @@ -1600,8 +1871,21 @@ L_089F06FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089F0714u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 79u, 0x089F0714u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0714u) goto L_089F0714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0714: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1619,8 +1903,21 @@ L_089F0714: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1944))); aot_gpr_31 = (0x089F0728u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 80u, 0x089F0728u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0728u) goto L_089F0728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0728: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -1630,13 +1927,39 @@ L_089F0728: } aot_gpr_31 = (0x089F073Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 81u, 0x089F073Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F073Cu) goto L_089F073C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F073C: aot_gpr_31 = (0x089F0744u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 82u, 0x089F0744u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0744u) goto L_089F0744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0744: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1320))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1669,8 +1992,21 @@ L_089F0764: L_089F0774: aot_gpr_31 = (0x089F077Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 86u, 0x089F077Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F077Cu) goto L_089F077C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F077C: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_089F0780; @@ -1681,8 +2017,21 @@ L_089F0780: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089F0798u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 88u, 0x089F0798u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0798u) goto L_089F0798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0798: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1700,8 +2049,21 @@ L_089F0798: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1948))); aot_gpr_31 = (0x089F07ACu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 89u, 0x089F07ACu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F07ACu) goto L_089F07AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F07AC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -1711,13 +2073,39 @@ L_089F07AC: } aot_gpr_31 = (0x089F07C0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 90u, 0x089F07C0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F07C0u) goto L_089F07C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F07C0: aot_gpr_31 = (0x089F07C8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 91u, 0x089F07C8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F07C8u) goto L_089F07C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F07C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1324))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1750,8 +2138,21 @@ L_089F07E8: L_089F07F8: aot_gpr_31 = (0x089F0800u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 95u, 0x089F0800u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0800u) goto L_089F0800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0800: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_089F0804; @@ -1762,8 +2163,21 @@ L_089F0804: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089F081Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 97u, 0x089F081Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F081Cu) goto L_089F081C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F081C: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1781,8 +2195,21 @@ L_089F081C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1948))); aot_gpr_31 = (0x089F0830u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 98u, 0x089F0830u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0830u) goto L_089F0830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0830: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -1792,13 +2219,39 @@ L_089F0830: } aot_gpr_31 = (0x089F0844u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 99u, 0x089F0844u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0844u) goto L_089F0844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0844: aot_gpr_31 = (0x089F084Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 100u, 0x089F084Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F084Cu) goto L_089F084C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F084C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1328))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1831,8 +2284,21 @@ L_089F086C: L_089F087C: aot_gpr_31 = (0x089F0884u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 104u, 0x089F0884u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0884u) goto L_089F0884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0884: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_089F0888; @@ -1843,8 +2309,21 @@ L_089F0888: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089F08A0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 106u, 0x089F08A0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F08A0u) goto L_089F08A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F08A0: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1866,8 +2345,21 @@ L_089F08A0: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x089F08C4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 107u, 0x089F08C4u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F08C4u) goto L_089F08C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F08C4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -1877,24 +2369,76 @@ L_089F08C4: } aot_gpr_31 = (0x089F08D8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 108u, 0x089F08D8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F08D8u) goto L_089F08D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F08D8: aot_gpr_31 = (0x089F08E0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 109u, 0x089F08E0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F08E0u) goto L_089F08E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F08E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F08ECu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 110u, 0x089F08ECu, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F08ECu) goto L_089F08EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F08EC: aot_gpr_31 = (0x089F08F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 111u, 0x089F08F4u, 0x0884477Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 130u, 0x0884477Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F08F4u) goto L_089F08F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F08F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -1915,8 +2459,21 @@ L_089F0904: L_089F0910: aot_gpr_31 = (0x089F0918u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 114u, 0x089F0918u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0918u) goto L_089F0918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0918: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(192), aot_run_words); @@ -1938,8 +2495,8 @@ L_089F0918: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F095C: @@ -1990,8 +2547,21 @@ L_089F09A4: L_089F09B4: aot_gpr_31 = (0x089F09BCu); aot_gpr_4 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 119u, 0x089F09BCu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F09BCu) goto L_089F09BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F09BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2091,8 +2661,21 @@ L_089F0A50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F0A60u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 125u, 0x089F0A60u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0A60u) goto L_089F0A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0A60: ctx.gpr[19] = (aot_gpr_29 + static_cast(16)); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1969))); @@ -2100,8 +2683,21 @@ L_089F0A60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F0A78u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 126u, 0x089F0A78u, 0x089EDDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 271u, 0x089EDDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0A78u) goto L_089F0A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0A78: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2172,8 +2768,21 @@ L_089F0AA8: } aot_gpr_31 = (0x089F0ABCu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 128u, 0x089F0ABCu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0ABCu) goto L_089F0ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0ABC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); @@ -2270,8 +2879,21 @@ L_089F0B34: } aot_gpr_31 = (0x089F0B48u); aot_gpr_4 = (aot_gpr_29 + static_cast(160)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 140u, 0x089F0B48u, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0B48u) goto L_089F0B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0B48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2310,8 +2932,21 @@ L_089F0B64: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089F0B8Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 143u, 0x089F0B8Cu, 0x0893FA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 828u, 0x0893FA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0B8Cu) goto L_089F0B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0B8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2327,8 +2962,21 @@ L_089F0B94: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x089F0BB0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 145u, 0x089F0BB0u, 0x089CAC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 729u, 0x089CAC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0BB0u) goto L_089F0BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0BB0: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -2381,8 +3029,21 @@ L_089F0C20: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089F0C38u); ctx.gpr[7] = (0u | 167u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 151u, 0x089F0C38u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0C38u) goto L_089F0C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0C38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2403,8 +3064,21 @@ L_089F0C48: L_089F0C54: aot_gpr_31 = (0x089F0C5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 154u, 0x089F0C5Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0C5Cu) goto L_089F0C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0C5C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -2433,8 +3107,21 @@ L_089F0C74: L_089F0C80: aot_gpr_31 = (0x089F0C88u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 158u, 0x089F0C88u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0C88u) goto L_089F0C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0C88: ctx.gpr[2] = (0u | 0u); goto L_089F0C8C; @@ -2450,8 +3137,8 @@ L_089F0C8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F0CAC: @@ -2578,8 +3265,21 @@ L_089F0D78: } L_089F0D88: aot_gpr_31 = (0x089F0D90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 175u, 0x089F0D90u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0D90u) goto L_089F0D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0D90: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; if (branch_taken) { @@ -2655,8 +3355,21 @@ L_089F0E4C: aot_gpr_4 = (ctx.gpr[17] + static_cast(944)); aot_gpr_31 = (0x089F0E78u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(660), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 181u, 0x089F0E78u, 0x08B0DB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 420u, 0x08B0DB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0E78u) goto L_089F0E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0E78: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; @@ -2680,71 +3393,188 @@ L_089F0E94: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x089F0EA8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 184u, 0x089F0EA8u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0EA8u) goto L_089F0EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0EA8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 13u); aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x089F0EBCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 185u, 0x089F0EBCu, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0EBCu) goto L_089F0EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0EBC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 18u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089F0ED0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 186u, 0x089F0ED0u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0ED0u) goto L_089F0ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0ED0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 19u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x089F0EE4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 187u, 0x089F0EE4u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0EE4u) goto L_089F0EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0EE4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 10u); aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x089F0EF8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 188u, 0x089F0EF8u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0EF8u) goto L_089F0EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0EF8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 8u); aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x089F0F0Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 189u, 0x089F0F0Cu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0F0Cu) goto L_089F0F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0F0C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 11u); aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x089F0F20u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 190u, 0x089F0F20u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0F20u) goto L_089F0F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0F20: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 9u); aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x089F0F34u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 191u, 0x089F0F34u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0F34u) goto L_089F0F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0F34: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x089F0F44u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0016. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 192u, 0x089F0F44u, 0x08845928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0016_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0016_entry, 16u, 275u, 0x08845928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0F44u) goto L_089F0F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0F44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); aot_gpr_5 = (2179u << 16u); @@ -2752,8 +3582,21 @@ L_089F0F44: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089F0F5Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 193u, 0x089F0F5Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0F5Cu) goto L_089F0F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0F5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2782,8 +3625,21 @@ L_089F0F70: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x089F0FACu); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 196u, 0x089F0FACu, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0FACu) goto L_089F0FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0FAC: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2801,8 +3657,21 @@ L_089F0FAC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F0FC0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 197u, 0x089F0FC0u, 0x08AFFAC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 877u, 0x08AFFAC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F0FC0u) goto L_089F0FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F0FC0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(613)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -2823,8 +3692,21 @@ L_089F0FC0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F100Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 198u, 0x089F100Cu, 0x08832988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 604u, 0x08832988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F100Cu) goto L_089F100C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F100C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -2865,8 +3747,21 @@ L_089F1064: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F1070u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 203u, 0x089F1070u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1070u) goto L_089F1070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1070: aot_gpr_4 = (16204u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -2878,13 +3773,39 @@ L_089F1070: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x089F1098u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 204u, 0x089F1098u, 0x089D1074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 167u, 0x089D1074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1098u) goto L_089F1098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1098: aot_gpr_31 = (0x089F10A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 205u, 0x089F10A0u, 0x08A362BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 544u, 0x08A362BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F10A0u) goto L_089F10A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F10A0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[19]; @@ -2912,8 +3833,21 @@ L_089F10BC: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089F10E0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 208u, 0x089F10E0u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F10E0u) goto L_089F10E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F10E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2931,8 +3865,21 @@ L_089F10E8: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089F110Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 210u, 0x089F110Cu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F110Cu) goto L_089F110C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F110C: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -2945,8 +3892,8 @@ L_089F110C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F112C: @@ -2968,8 +3915,21 @@ L_089F112C: L_089F116C: aot_gpr_31 = (0x089F1174u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 213u, 0x089F1174u, 0x08AB4000u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 1u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 1u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 1u, 0x08AB4000u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1174u) goto L_089F1174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1174: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u | 0u); @@ -3025,8 +3985,21 @@ L_089F11C4: } L_089F11D4: aot_gpr_31 = (0x089F11DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 220u, 0x089F11DCu, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F11DCu) goto L_089F11DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F11DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-1044))); aot_gpr_4 = (ctx.gpr[2] | aot_gpr_4); @@ -3103,8 +4076,21 @@ L_089F124C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089F1258u); aot_gpr_4 = (0u | 261u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 232u, 0x089F1258u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1258u) goto L_089F1258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1258: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3253,8 +4239,21 @@ L_089F1340: L_089F1354: aot_gpr_31 = (0x089F135Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 251u, 0x089F135Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F135Cu) goto L_089F135C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F135C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(9688))); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); @@ -3306,8 +4305,21 @@ L_089F139C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(9688))); aot_gpr_31 = (0x089F13A8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 253u, 0x089F13A8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F13A8u) goto L_089F13A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F13A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(9688))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3412,8 +4424,8 @@ L_089F1450: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F1478: @@ -3599,8 +4611,8 @@ L_089F15EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F1600: @@ -3630,8 +4642,21 @@ L_089F1644: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089F1650u); aot_gpr_4 = (0u | 2080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 285u, 0x089F1650u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1650u) goto L_089F1650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1650: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -3645,8 +4670,21 @@ L_089F165C: aot_gpr_5 = (0u | 260u); aot_gpr_31 = (0x089F1668u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 287u, 0x089F1668u, 0x089ED94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 226u, 0x089ED94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1668u) goto L_089F1668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1668: ctx.gpr[18] = (ctx.gpr[20] | 0u); goto L_089F166C; @@ -3662,8 +4700,21 @@ L_089F1674: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x089F1680u); aot_gpr_4 = (0u | 2080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 290u, 0x089F1680u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1680u) goto L_089F1680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1680: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -3677,8 +4728,21 @@ L_089F168C: aot_gpr_5 = (0u | 261u); aot_gpr_31 = (0x089F1698u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 292u, 0x089F1698u, 0x089ED94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 226u, 0x089ED94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1698u) goto L_089F1698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1698: ctx.gpr[18] = (ctx.gpr[20] | 0u); goto L_089F169C; @@ -3832,8 +4896,21 @@ L_089F1808: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x089F1824u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 301u, 0x089F1824u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1824u) goto L_089F1824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1824: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[22]; ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -3850,8 +4927,21 @@ L_089F1838: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F1854u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 303u, 0x089F1854u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1854u) goto L_089F1854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1854: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -3909,8 +4999,21 @@ L_089F18C0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F18D0u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 310u, 0x089F18D0u, 0x089DD244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 181u, 0x089DD244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F18D0u) goto L_089F18D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F18D0: aot_gpr_4 = (0u | 35u); { const bool branch_taken = 0u == 0u; @@ -3935,8 +5038,21 @@ L_089F18EC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F190Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 313u, 0x089F190Cu, 0x089DD244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 181u, 0x089DD244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F190Cu) goto L_089F190C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F190C: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (16672u << 16u); @@ -3963,13 +5079,39 @@ L_089F1938: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F1950u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(1640), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 316u, 0x089F1950u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1950u) goto L_089F1950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1950: aot_gpr_31 = (0x089F1958u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 317u, 0x089F1958u, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1958u) goto L_089F1958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1958: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4001,8 +5143,8 @@ L_089F197C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F19A8: @@ -4056,8 +5198,21 @@ L_089F1A18: L_089F1A20: aot_gpr_31 = (0x089F1A28u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 326u, 0x089F1A28u, 0x0898CFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 351u, 0x0898CFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1A28u) goto L_089F1A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1A28: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4081,8 +5236,21 @@ L_089F1A48: aot_gpr_5 = (0u | 32u); aot_gpr_31 = (0x089F1A58u); aot_gpr_6 = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 329u, 0x089F1A58u, 0x08A40A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 117u, 0x08A40A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1A58u) goto L_089F1A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1A58: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4101,8 +5269,21 @@ L_089F1A58: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x089F1A70u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 330u, 0x089F1A70u, 0x089ED8FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 220u, 0x089ED8FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1A70u) goto L_089F1A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1A70: aot_fpr_13 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 + static_cast(320)); @@ -4216,8 +5397,21 @@ L_089F1AA0: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089F1B14u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 332u, 0x089F1B14u, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1B14u) goto L_089F1B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1B14: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4239,8 +5433,21 @@ L_089F1B14: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F1B38u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 333u, 0x089F1B38u, 0x089ED8FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 220u, 0x089ED8FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1B38u) goto L_089F1B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1B38: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_4 = (aot_gpr_16 + static_cast(320)); @@ -4352,8 +5559,21 @@ L_089F1B64: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F1BD4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 335u, 0x089F1BD4u, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1BD4u) goto L_089F1BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1BD4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -4362,8 +5582,21 @@ L_089F1BD4: aot_gpr_6 = (0u | 55u); aot_gpr_31 = (0x089F1BF0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 336u, 0x089F1BF0u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1BF0u) goto L_089F1BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1BF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(656), aot_gpr_4); @@ -4382,8 +5615,21 @@ L_089F1C00: L_089F1C08: aot_gpr_31 = (0x089F1C10u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 339u, 0x089F1C10u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1C10u) goto L_089F1C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1C10: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4416,8 +5662,21 @@ L_089F1C3C: aot_gpr_5 = (0u | 35u); aot_gpr_31 = (0x089F1C50u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 343u, 0x089F1C50u, 0x08A40A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 117u, 0x08A40A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1C50u) goto L_089F1C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1C50: aot_gpr_4 = (ctx.gpr[28] + static_cast(7616)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4439,8 +5698,21 @@ L_089F1C50: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F1C74u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 344u, 0x089F1C74u, 0x089ED8FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 220u, 0x089ED8FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1C74u) goto L_089F1C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1C74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -4505,8 +5777,21 @@ L_089F1C74: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089F1CCCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 345u, 0x089F1CCCu, 0x08A4842Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 46u, 0x08A4842Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1CCCu) goto L_089F1CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1CCC: aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), std::bit_cast(aot_fpr_20)); @@ -4521,8 +5806,21 @@ L_089F1CCC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F1D00u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 346u, 0x089F1D00u, 0x08A41568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 255u, 0x08A41568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1D00u) goto L_089F1D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1D00: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -4531,8 +5829,21 @@ L_089F1D00: aot_gpr_6 = (0u | 55u); aot_gpr_31 = (0x089F1D1Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 347u, 0x089F1D1Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1D1Cu) goto L_089F1D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1D1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(656), aot_gpr_4); @@ -4587,8 +5898,21 @@ L_089F1D54: L_089F1D84: aot_gpr_31 = (0x089F1D8Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 353u, 0x089F1D8Cu, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1D8Cu) goto L_089F1D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1D8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4613,8 +5937,21 @@ L_089F1DAC: aot_gpr_5 = (0u | 28u); aot_gpr_31 = (0x089F1DC0u); aot_gpr_6 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 356u, 0x089F1DC0u, 0x08A40A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 117u, 0x08A40A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1DC0u) goto L_089F1DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1DC0: aot_gpr_4 = (aot_gpr_29 + static_cast(256)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4636,8 +5973,21 @@ L_089F1DC0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F1DE4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 357u, 0x089F1DE4u, 0x089ED8FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 220u, 0x089ED8FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1DE4u) goto L_089F1DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1DE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -4702,8 +6052,21 @@ L_089F1DE4: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x089F1E3Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 358u, 0x089F1E3Cu, 0x08A4842Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 46u, 0x08A4842Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1E3Cu) goto L_089F1E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1E3C: aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(320), std::bit_cast(aot_fpr_20)); @@ -4718,8 +6081,21 @@ L_089F1E3C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F1E70u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 359u, 0x089F1E70u, 0x08A41568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 255u, 0x08A41568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1E70u) goto L_089F1E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1E70: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -4728,8 +6104,21 @@ L_089F1E70: aot_gpr_6 = (0u | 55u); aot_gpr_31 = (0x089F1E8Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 360u, 0x089F1E8Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1E8Cu) goto L_089F1E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1E8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(656), aot_gpr_4); @@ -4755,8 +6144,8 @@ L_089F1EA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(576)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F1EC0: @@ -4771,8 +6160,8 @@ L_089F1EC0: aot_fpr_12 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7624), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F1EEC: @@ -4807,8 +6196,8 @@ L_089F1EEC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(88), std::bit_cast(aot_fpr_14)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(92), std::bit_cast(ctx.fpr[16])); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F1F70: @@ -4836,8 +6225,21 @@ L_089F1FA4: L_089F1FA8: aot_gpr_31 = (0x089F1FB0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 368u, 0x089F1FB0u, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F1FB0u) goto L_089F1FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F1FB0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(301))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4897,16 +6299,42 @@ L_089F202C: aot_gpr_5 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x089F2060u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 372u, 0x089F2060u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F2060u) goto L_089F2060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F2060: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), ctx.gpr[2]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x089F2074u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 373u, 0x089F2074u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F2074u) goto L_089F2074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F2074: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -4914,8 +6342,21 @@ L_089F2074: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_gpr_31 = (0x089F208Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 374u, 0x089F208Cu, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F208Cu) goto L_089F208C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F208C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (2816u << 16u); @@ -4936,16 +6377,16 @@ L_089F208C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F20CC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F20D8: @@ -5141,15 +6582,15 @@ L_089F221C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F2358: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F2360: @@ -5162,8 +6603,21 @@ L_089F2360: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089F2384u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(9048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 388u, 0x089F2384u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F2384u) goto L_089F2384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F2384: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(5808), 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5178,15 +6632,15 @@ L_089F2398: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F23AC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(5808), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F23B4: @@ -5214,8 +6668,8 @@ L_089F23F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F2404: @@ -5398,8 +6852,8 @@ L_089F25CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F25F8: @@ -5426,8 +6880,8 @@ L_089F2624: aot_fpr_12 = std::sqrt(aot_fpr_12); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F264C: @@ -5460,8 +6914,8 @@ L_089F264C: L_089F26AC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F26B4: @@ -5546,8 +7000,8 @@ L_089F26F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F2750: @@ -5641,8 +7095,21 @@ L_089F281C: ctx.gpr[17] = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x089F2830u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8468), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 420u, 0x089F2830u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F2830u) goto L_089F2830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F2830: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_fpr_12 = aot_fpr_12 - ctx.fpr[22]; @@ -6345,8 +7812,21 @@ L_089F2E38: L_089F2E50: aot_gpr_31 = (0x089F2E58u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 485u, 0x089F2E58u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F2E58u) goto L_089F2E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F2E58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7199,8 +8679,8 @@ L_089F34E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(8576)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3530: @@ -7596,8 +9076,8 @@ L_089F377C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3790: @@ -7768,8 +9248,8 @@ L_089F38CC: goto L_089F38D4; L_089F38D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F38DC: @@ -7780,8 +9260,8 @@ L_089F38DC: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(4), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3910: @@ -7823,8 +9303,21 @@ L_089F3944: L_089F3970: aot_gpr_31 = (0x089F3978u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 611u, 0x089F3978u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3978u) goto L_089F3978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3978: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_gpr_16 << 2u); @@ -7866,8 +9359,8 @@ L_089F39D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F39EC: @@ -8045,8 +9538,8 @@ L_089F3B50: L_089F3B5C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3B64: @@ -8071,8 +9564,21 @@ L_089F3B94: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x089F3BB0u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 630u, 0x089F3BB0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3BB0u) goto L_089F3BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3BB0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -8092,15 +9598,41 @@ L_089F3BB0: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (0x089F3BF8u); aot_fpr_12 = ctx.fpr[15] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 631u, 0x089F3BF8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3BF8u) goto L_089F3BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3BF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089F3C08u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 632u, 0x089F3C08u, 0x089F4168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 15u, 0x089F4168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3C08u) goto L_089F3C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3C08: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -8111,8 +9643,8 @@ L_089F3C08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3C20: @@ -8226,8 +9758,8 @@ L_089F3D10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3D2C: @@ -8317,8 +9849,21 @@ L_089F3DEC: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x089F3E08u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 651u, 0x089F3E08u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3E08u) goto L_089F3E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3E08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -8335,15 +9880,41 @@ L_089F3E08: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (0x089F3E44u); aot_fpr_12 = ctx.fpr[15] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 652u, 0x089F3E44u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3E44u) goto L_089F3E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3E44: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089F3E54u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 653u, 0x089F3E54u, 0x089F44B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 49u, 0x089F44B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3E54u) goto L_089F3E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3E54: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -8354,8 +9925,8 @@ L_089F3E54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3E6C: @@ -8394,8 +9965,8 @@ L_089F3EBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3EDC: @@ -8422,8 +9993,21 @@ L_089F3EDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x089F3F38u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 658u, 0x089F3F38u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3F38u) goto L_089F3F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3F38: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (ctx.gpr[28] + static_cast(-9848)); @@ -8432,8 +10016,21 @@ L_089F3F38: aot_fpr_12 = aot_fpr_12 / ctx.fpr[22]; aot_gpr_31 = (0x089F3F54u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 659u, 0x089F3F54u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3F54u) goto L_089F3F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3F54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(44))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -8453,8 +10050,8 @@ L_089F3F54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F3F90: @@ -8465,15 +10062,41 @@ L_089F3F90: ctx.gpr[17] = (aot_gpr_6 | 0u); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); aot_gpr_31 = (0x089F3FC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 661u, 0x089F3FC0u, 0x089D89C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 127u, 0x089D89C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3FC0u) goto L_089F3FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3FC0: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] + static_cast(8)); aot_gpr_31 = (0x089F3FD0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0123->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0123_entry, 662u, 0x089F3FD0u, 0x08968CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 218u, 0x08968CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F3FD0u) goto L_089F3FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F3FD0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(32))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); diff --git a/profiles/vcs/generated/generated_unit_0124.cpp b/profiles/vcs/generated/generated_unit_0124.cpp index 6518c7f..0c45575 100644 --- a/profiles/vcs/generated/generated_unit_0124.cpp +++ b/profiles/vcs/generated/generated_unit_0124.cpp @@ -851,6 +851,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089F4000u; + if (local_delta_v813 >= 16284u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1026,8 +1050,21 @@ L_089F4130: L_089F413C: aot_gpr_31 = (0x089F4144u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 14u, 0x089F4144u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4144u) goto L_089F4144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4144: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), std::bit_cast(aot_fpr_20)); { std::uint32_t aot_run_words[6]{}; @@ -1041,8 +1078,8 @@ L_089F4144: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F4168: @@ -1062,8 +1099,21 @@ L_089F4168: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x089F41ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 16u, 0x089F41ACu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F41ACu) goto L_089F41AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F41AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(708))); @@ -1129,8 +1179,21 @@ L_089F4230: } L_089F423C: aot_gpr_31 = (0x089F4244u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 23u, 0x089F4244u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4244u) goto L_089F4244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4244: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -1141,8 +1204,21 @@ L_089F424C: aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089F4264u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 25u, 0x089F4264u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4264u) goto L_089F4264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4264: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(24))); @@ -1197,8 +1273,21 @@ L_089F42D8: } L_089F42E8: aot_gpr_31 = (0x089F42F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 31u, 0x089F42F0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F42F0u) goto L_089F42F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F42F0: { const bool branch_taken = 0u == 0u; aot_fpr_24 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1210,8 +1299,21 @@ L_089F42F0: L_089F42F8: aot_gpr_31 = (0x089F4300u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_24)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 33u, 0x089F4300u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4300u) goto L_089F4300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4300: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -1227,14 +1329,40 @@ L_089F4300: aot_fpr_24 = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_20 - ctx.fpr[0]; aot_gpr_31 = (0x089F4334u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 34u, 0x089F4334u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4334u) goto L_089F4334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4334: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = ctx.fpr[22] - aot_fpr_24; aot_gpr_31 = (0x089F4344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 35u, 0x089F4344u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4344u) goto L_089F4344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4344: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20) & 0x7FFFFFFFu); @@ -1261,8 +1389,21 @@ L_089F435C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F4394u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 37u, 0x089F4394u, 0x089F3790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 586u, 0x089F3790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4394u) goto L_089F4394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4394: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1297,8 +1438,21 @@ L_089F43C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F43DCu); aot_gpr_6 = (aot_gpr_6 + static_cast(7248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 42u, 0x089F43DCu, 0x089F3790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 586u, 0x089F3790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F43DCu) goto L_089F43DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F43DC: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -1325,8 +1479,21 @@ L_089F43EC: aot_fpr_12 = aot_fpr_12 / ctx.fpr[22]; aot_gpr_31 = (0x089F4428u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 45u, 0x089F4428u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4428u) goto L_089F4428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4428: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (ctx.gpr[28] + static_cast(-9872)); @@ -1335,8 +1502,21 @@ L_089F4428: aot_fpr_12 = aot_fpr_12 / ctx.fpr[22]; aot_gpr_31 = (0x089F4444u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 46u, 0x089F4444u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4444u) goto L_089F4444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4444: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -1360,8 +1540,21 @@ L_089F4470: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F4488u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 48u, 0x089F4488u, 0x089F3EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 657u, 0x089F3EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4488u) goto L_089F4488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4488: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[9]{}; @@ -1378,8 +1571,8 @@ L_089F4488: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F44B8: @@ -1428,16 +1621,42 @@ L_089F4520: } L_089F4528: aot_gpr_31 = (0x089F4530u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 53u, 0x089F4530u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4530u) goto L_089F4530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4530: aot_fpr_20 = aot_fpr_20 - ctx.fpr[0]; goto L_089F4534; L_089F4534: aot_gpr_31 = (0x089F453Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 55u, 0x089F453Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F453Cu) goto L_089F453C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F453C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); aot_gpr_5 = (0u + static_cast(-2)); @@ -1466,8 +1685,21 @@ L_089F4570: aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_gpr_31 = (0x089F4588u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 58u, 0x089F4588u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4588u) goto L_089F4588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4588: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089F458C; @@ -1482,8 +1714,21 @@ L_089F4594: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x089F45A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 61u, 0x089F45A0u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F45A0u) goto L_089F45A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F45A0: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -1559,8 +1804,21 @@ L_089F45C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F4600u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 64u, 0x089F4600u, 0x089F39ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 615u, 0x089F39ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4600u) goto L_089F4600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4600: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -1611,8 +1869,21 @@ L_089F4658: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F4674u); aot_gpr_6 = (aot_gpr_6 + static_cast(7248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 70u, 0x089F4674u, 0x089F3790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 586u, 0x089F3790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4674u) goto L_089F4674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4674: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1676,14 +1947,40 @@ L_089F46D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F46ECu); aot_gpr_6 = (aot_gpr_6 + static_cast(7248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 78u, 0x089F46ECu, 0x089F3790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 586u, 0x089F3790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F46ECu) goto L_089F46EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F46EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x089F46F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 79u, 0x089F46F8u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F46F8u) goto L_089F46F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F46F8: aot_gpr_31 = (0x089F4700u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -1721,8 +2018,21 @@ L_089F4734: } L_089F473C: aot_gpr_31 = (0x089F4744u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 84u, 0x089F4744u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4744u) goto L_089F4744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4744: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_089F4748; @@ -1731,8 +2041,21 @@ L_089F4748: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2256))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x089F475Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 86u, 0x089F475Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F475Cu) goto L_089F475C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F475C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_24)); @@ -1773,8 +2096,21 @@ L_089F475C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F47E8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 87u, 0x089F47E8u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F47E8u) goto L_089F47E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F47E8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-9872)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -1783,8 +2119,21 @@ L_089F47E8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F4804u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 88u, 0x089F4804u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4804u) goto L_089F4804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4804: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); aot_gpr_4 = (aot_gpr_4 | 128u); @@ -1807,8 +2156,8 @@ L_089F4804: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F484C: @@ -1832,8 +2181,21 @@ L_089F484C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(92), aot_run_words); } aot_gpr_31 = (0x089F48B4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 90u, 0x089F48B4u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F48B4u) goto L_089F48B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F48B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -1893,8 +2255,21 @@ L_089F4934: } L_089F4940: aot_gpr_31 = (0x089F4948u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 96u, 0x089F4948u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4948u) goto L_089F4948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4948: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -1904,8 +2279,21 @@ L_089F4950: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2256))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x089F4964u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 98u, 0x089F4964u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4964u) goto L_089F4964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4964: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -1924,16 +2312,42 @@ L_089F4964: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9808))); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x089F49C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 99u, 0x089F49C0u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F49C0u) goto L_089F49C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F49C0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = aot_fpr_20 - ctx.fpr[30]; ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9804))); aot_fpr_12 = aot_fpr_12 - ctx.fpr[14]; aot_gpr_31 = (0x089F49D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 100u, 0x089F49D8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F49D8u) goto L_089F49D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F49D8: aot_gpr_5 = (aot_gpr_16 + static_cast(20)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1941,8 +2355,21 @@ L_089F49D8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x089F49F0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 101u, 0x089F49F0u, 0x089F3790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 586u, 0x089F3790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F49F0u) goto L_089F49F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F49F0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] != ctx.gpr[20]; @@ -2023,8 +2450,21 @@ L_089F4A88: { const float fs = aot_fpr_20; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x089F4AACu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 109u, 0x089F4AACu, 0x089F3790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 586u, 0x089F3790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4AACu) goto L_089F4AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4AAC: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -2075,8 +2515,21 @@ L_089F4B14: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_24)); aot_gpr_31 = (0x089F4B2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 114u, 0x089F4B2Cu, 0x089F3790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 586u, 0x089F3790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4B2Cu) goto L_089F4B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4B2C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = 0u == 0u; @@ -2093,8 +2546,21 @@ L_089F4B38: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_24)); aot_gpr_31 = (0x089F4B50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 116u, 0x089F4B50u, 0x089F3790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 586u, 0x089F3790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4B50u) goto L_089F4B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4B50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); goto L_089F4B54; @@ -2114,8 +2580,21 @@ L_089F4B5C: L_089F4B6C: aot_gpr_31 = (0x089F4B74u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 120u, 0x089F4B74u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4B74u) goto L_089F4B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4B74: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -2142,8 +2621,21 @@ L_089F4B88: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F4BCCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 122u, 0x089F4BCCu, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4BCCu) goto L_089F4BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4BCC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2152,8 +2644,21 @@ L_089F4BCC: aot_fpr_12 = aot_fpr_12 / ctx.fpr[30]; aot_gpr_31 = (0x089F4BE8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 123u, 0x089F4BE8u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4BE8u) goto L_089F4BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4BE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(464))); @@ -2174,8 +2679,21 @@ L_089F4C04: ctx.gpr[18] = (aot_gpr_4 + static_cast(8)); aot_gpr_31 = (0x089F4C2Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 125u, 0x089F4C2Cu, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4C2Cu) goto L_089F4C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4C2C: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -2193,8 +2711,21 @@ L_089F4C2C: aot_fpr_12 = aot_fpr_12 / ctx.fpr[30]; aot_gpr_31 = (0x089F4C6Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(40), std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 126u, 0x089F4C6Cu, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4C6Cu) goto L_089F4C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4C6C: aot_gpr_4 = (16329u << 16u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -2207,8 +2738,21 @@ L_089F4C6C: aot_fpr_12 = aot_fpr_12 / ctx.fpr[30]; aot_gpr_31 = (0x089F4C98u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 127u, 0x089F4C98u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4C98u) goto L_089F4C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4C98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(464))); @@ -2222,8 +2766,21 @@ L_089F4C98: aot_gpr_4 = (aot_gpr_4 + static_cast(8)); aot_gpr_31 = (0x089F4CC8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 128u, 0x089F4CC8u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4CC8u) goto L_089F4CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4CC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -2248,8 +2805,8 @@ L_089F4CC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F4D18: @@ -2279,8 +2836,21 @@ L_089F4D60: aot_gpr_5 = (0u | 3000u); aot_gpr_31 = (0x089F4D6Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 132u, 0x089F4D6Cu, 0x08AB8F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 205u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 205u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 205u, 0x08AB8F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4D6Cu) goto L_089F4D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4D6C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(3000)); ctx.gpr[17] = (ctx.gpr[17] & 65535u); @@ -2354,8 +2924,21 @@ L_089F4DF8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(776))); aot_gpr_31 = (0x089F4E0Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 142u, 0x089F4E0Cu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4E0Cu) goto L_089F4E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4E0C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_4 = (16128u << 16u); @@ -2396,8 +2979,21 @@ L_089F4E54: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089F4E64u); ctx.gpr[7] = (0u | 161u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 148u, 0x089F4E64u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4E64u) goto L_089F4E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4E64: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6888), 0u); { std::uint32_t aot_run_words[6]{}; @@ -2411,8 +3007,8 @@ L_089F4E64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F4E88: @@ -2468,8 +3064,21 @@ L_089F4F14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F4F20u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 154u, 0x089F4F20u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F4F20u) goto L_089F4F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F4F20: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2480,15 +3089,15 @@ L_089F4F20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F4F38: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F4F40: @@ -2516,8 +3125,8 @@ L_089F4F64: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F4F70: @@ -2642,8 +3251,8 @@ L_089F503C: } L_089F5050: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5058: @@ -2728,8 +3337,8 @@ L_089F5100: L_089F510C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5114: @@ -2924,8 +3533,8 @@ L_089F529C: ctx.gpr[2] = (ctx.gpr[2] + static_cast(-1)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F52D4: @@ -2954,8 +3563,8 @@ L_089F5304: goto L_089F530C; L_089F530C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5314: @@ -2999,14 +3608,40 @@ L_089F53A8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x089F53B4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 202u, 0x089F53B4u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F53B4u) goto L_089F53B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F53B4: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x089F53C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 203u, 0x089F53C0u, 0x08A1D1F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 203u, 0x08A1D1F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F53C0u) goto L_089F53C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F53C0: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(6876), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(6880), 0u); @@ -3055,8 +3690,21 @@ L_089F5414: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089F542Cu); ctx.gpr[7] = (0u | 160u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 210u, 0x089F542Cu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F542Cu) goto L_089F542C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F542C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-5)); @@ -3098,12 +3746,38 @@ L_089F5480: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F548Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 215u, 0x089F548Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F548Cu) goto L_089F548C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F548C: aot_gpr_31 = (0x089F5494u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 216u, 0x089F5494u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5494u) goto L_089F5494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5494: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3114,14 +3788,40 @@ L_089F5494: L_089F549C: aot_gpr_31 = (0x089F54A4u); aot_gpr_16 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 218u, 0x089F54A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F54A4u) goto L_089F54A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F54A4: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x089F54B0u); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 219u, 0x089F54B0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F54B0u) goto L_089F54B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F54B0: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); { const bool branch_taken = 0u == 0u; @@ -3190,8 +3890,8 @@ L_089F5548: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-1760))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5560: @@ -3303,8 +4003,21 @@ L_089F5608: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x089F561Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 240u, 0x089F561Cu, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F561Cu) goto L_089F561C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F561C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3319,13 +4032,39 @@ L_089F5624: L_089F562C: aot_gpr_31 = (0x089F5634u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 243u, 0x089F5634u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5634u) goto L_089F5634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5634: aot_gpr_31 = (0x089F563Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 244u, 0x089F563Cu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F563Cu) goto L_089F563C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F563C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3345,8 +4084,21 @@ L_089F5648: L_089F5654: aot_gpr_31 = (0x089F565Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 247u, 0x089F565Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F565Cu) goto L_089F565C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F565C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3427,8 +4179,21 @@ L_089F571C: aot_fpr_13 = ctx.fpr[28] - aot_fpr_13; aot_gpr_31 = (0x089F573Cu); aot_fpr_12 = ctx.fpr[26] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 254u, 0x089F573Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F573Cu) goto L_089F573C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F573C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_24)) ? 0x00800000u : 0u); @@ -3457,14 +4222,40 @@ L_089F5774: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(2260), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089F5784u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 258u, 0x089F5784u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5784u) goto L_089F5784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5784: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F5790u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 259u, 0x089F5790u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5790u) goto L_089F5790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5790: aot_gpr_31 = (0x089F5798u); aot_gpr_4 = (0u | 0u); @@ -3476,14 +4267,40 @@ L_089F5798: aot_gpr_5 = (aot_gpr_5 | 64u); aot_gpr_31 = (0x089F57ACu); aot_mem.aot_direct_store16(ctx.gpr[2] + static_cast(154), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 261u, 0x089F57ACu, 0x08A1D29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 218u, 0x08A1D29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F57ACu) goto L_089F57AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F57AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_31 = (0x089F57B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 262u, 0x089F57B8u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F57B8u) goto L_089F57B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F57B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -3505,8 +4322,21 @@ L_089F57D0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x089F57E8u); ctx.gpr[7] = (0u | 159u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 266u, 0x089F57E8u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F57E8u) goto L_089F57E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F57E8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3664,8 +4494,21 @@ L_089F58F0: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x089F5904u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 285u, 0x089F5904u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5904u) goto L_089F5904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5904: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3680,13 +4523,39 @@ L_089F590C: L_089F5914: aot_gpr_31 = (0x089F591Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 288u, 0x089F591Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F591Cu) goto L_089F591C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F591C: aot_gpr_31 = (0x089F5924u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 289u, 0x089F5924u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5924u) goto L_089F5924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5924: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); goto L_089F5928; @@ -3788,8 +4657,8 @@ L_089F59EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5A34: @@ -3808,8 +4677,8 @@ L_089F5A50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5A5C: @@ -3875,8 +4744,8 @@ L_089F5AA8: L_089F5AB8: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5AC0: @@ -3923,8 +4792,8 @@ L_089F5AF0: L_089F5B04: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5B0C: @@ -3990,8 +4859,8 @@ L_089F5B58: L_089F5B68: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5B70: @@ -4013,8 +4882,21 @@ L_089F5B70: L_089F5B98: aot_gpr_31 = (0x089F5BA0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 326u, 0x089F5BA0u, 0x08804000u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 1u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 1u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 1u, 0x08804000u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5BA0u) goto L_089F5BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5BA0: aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast(0), static_cast(ctx.gpr[2])); ctx.gpr[17] = (ctx.gpr[17] + static_cast(2)); @@ -4038,8 +4920,8 @@ L_089F5BB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5BD4: @@ -4061,8 +4943,21 @@ L_089F5BD4: L_089F5BFC: aot_gpr_31 = (0x089F5C04u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 330u, 0x089F5C04u, 0x08804000u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 1u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 1u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 1u, 0x08804000u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5C04u) goto L_089F5C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5C04: aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast(0), static_cast(ctx.gpr[2])); ctx.gpr[17] = (ctx.gpr[17] + static_cast(2)); @@ -4086,8 +4981,8 @@ L_089F5C18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5C38: @@ -4137,8 +5032,8 @@ L_089F5C6C: } L_089F5C74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5C7C: @@ -4149,8 +5044,21 @@ L_089F5C7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(516), aot_gpr_31); aot_gpr_31 = (0x089F5C98u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 341u, 0x089F5C98u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5C98u) goto L_089F5C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5C98: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(0))); @@ -4219,8 +5127,8 @@ L_089F5CF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(516))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5D0C: @@ -4243,8 +5151,21 @@ L_089F5D0C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x089F5D58u); aot_gpr_4 = (aot_gpr_4 << 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 351u, 0x089F5D58u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5D58u) goto L_089F5D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5D58: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (ctx.gpr[20] < ctx.gpr[18] ? 1u : 0u); @@ -4260,8 +5181,21 @@ L_089F5D68: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089F5D78u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 353u, 0x089F5D78u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5D78u) goto L_089F5D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5D78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); @@ -4290,8 +5224,8 @@ L_089F5DA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5DC4: @@ -4319,8 +5253,8 @@ L_089F5DEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5E00: @@ -4350,8 +5284,8 @@ L_089F5E14: } L_089F5E34: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5E3C: @@ -4421,8 +5355,8 @@ L_089F5ED4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F5EE4: @@ -4463,8 +5397,21 @@ L_089F5F2C: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x089F5F60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 372u, 0x089F5F60u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F5F60u) goto L_089F5F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F5F60: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4554,8 +5501,8 @@ L_089F5FE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6008: @@ -4574,8 +5521,21 @@ L_089F6008: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x089F6044u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 384u, 0x089F6044u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6044u) goto L_089F6044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6044: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (ctx.gpr[20] < ctx.gpr[18] ? 1u : 0u); @@ -4591,8 +5551,21 @@ L_089F6054: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089F6064u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 386u, 0x089F6064u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6064u) goto L_089F6064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); @@ -4621,8 +5594,8 @@ L_089F6090: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F60B0: @@ -4650,8 +5623,8 @@ L_089F60D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F60EC: @@ -4693,8 +5666,21 @@ L_089F6150: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x089F6160u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 396u, 0x089F6160u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6160u) goto L_089F6160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6160: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(4)))))); aot_gpr_5 = (ctx.gpr[19] + ctx.gpr[21]); @@ -4719,8 +5705,21 @@ L_089F6190: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F61A0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 399u, 0x089F61A0u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F61A0u) goto L_089F61A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F61A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); @@ -4762,8 +5761,8 @@ L_089F61DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F620C: @@ -4810,8 +5809,8 @@ L_089F6270: L_089F6290: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6298: @@ -4829,8 +5828,21 @@ L_089F62C0: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089F62D0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 409u, 0x089F62D0u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F62D0u) goto L_089F62D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F62D0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); aot_gpr_5 = (ctx.gpr[18] + ctx.gpr[19]); @@ -4858,16 +5870,16 @@ L_089F62FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6318: ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(2448))); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6324: @@ -4877,8 +5889,21 @@ L_089F6324: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089F633Cu); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2448), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 413u, 0x089F633Cu, 0x08ABAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 476u, 0x08ABAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F633Cu) goto L_089F633C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F633C: aot_gpr_31 = (0x089F6344u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4916,8 +5941,8 @@ L_089F6380: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6390: @@ -4970,8 +5995,8 @@ L_089F63E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F63FC: @@ -5044,8 +6069,21 @@ L_089F648C: L_089F6494: aot_gpr_31 = (0x089F649Cu); aot_gpr_4 = (aot_gpr_16 + aot_gpr_16); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 435u, 0x089F649Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F649Cu) goto L_089F649C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F649C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -5090,8 +6128,8 @@ L_089F64D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F64FC: @@ -5145,8 +6183,8 @@ L_089F6554: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F656C: @@ -5168,8 +6206,21 @@ L_089F656C: L_089F65B0: aot_gpr_31 = (0x089F65B8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 449u, 0x089F65B8u, 0x08871328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 351u, 0x08871328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F65B8u) goto L_089F65B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F65B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7872))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5184,8 +6235,21 @@ L_089F65C4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x089F65D4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 451u, 0x089F65D4u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F65D4u) goto L_089F65D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F65D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7868))); aot_gpr_5 = (aot_gpr_4 < static_cast(5) ? 1u : 0u); @@ -5296,8 +6360,21 @@ L_089F666C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-9668)); aot_gpr_31 = (0x089F6678u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 467u, 0x089F6678u, 0x088713B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 359u, 0x088713B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6678u) goto L_089F6678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6678: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), 0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9664)); @@ -5347,8 +6424,21 @@ L_089F66D8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089F66E8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 473u, 0x089F66E8u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F66E8u) goto L_089F66E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F66E8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5378,8 +6468,21 @@ L_089F6714: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x089F6724u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 477u, 0x089F6724u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6724u) goto L_089F6724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6724: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5407,8 +6510,21 @@ L_089F6748: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089F6758u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 481u, 0x089F6758u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6758u) goto L_089F6758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6758: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -5446,8 +6562,21 @@ L_089F678C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F679Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 486u, 0x089F679Cu, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F679Cu) goto L_089F679C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F679C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -5477,13 +6606,39 @@ L_089F67C8: L_089F67D4: aot_gpr_31 = (0x089F67DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 490u, 0x089F67DCu, 0x08871414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 365u, 0x08871414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F67DCu) goto L_089F67DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F67DC: aot_gpr_31 = (0x089F67E4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9748)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 491u, 0x089F67E4u, 0x08871328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 351u, 0x08871328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F67E4u) goto L_089F67E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F67E4: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(2448), static_cast(aot_gpr_16)); { std::uint32_t aot_run_words[10]{}; @@ -5501,8 +6656,8 @@ L_089F67E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6818: @@ -5515,8 +6670,21 @@ L_089F6818: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(180), aot_run_words); } aot_gpr_31 = (0x089F6850u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(148), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 493u, 0x089F6850u, 0x08ABAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 476u, 0x08ABAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6850u) goto L_089F6850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6850: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); aot_gpr_31 = (0x089F685Cu); @@ -5575,8 +6743,21 @@ L_089F68BC: aot_gpr_4 = (aot_gpr_4 + static_cast(44)); aot_gpr_31 = (0x089F68D8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 501u, 0x089F68D8u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F68D8u) goto L_089F68D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F68D8: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(2444))); @@ -5624,8 +6805,21 @@ L_089F6914: L_089F691C: aot_gpr_31 = (0x089F6924u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 508u, 0x089F6924u, 0x08871328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 351u, 0x08871328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6924u) goto L_089F6924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6924: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7872))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5640,8 +6834,21 @@ L_089F6930: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x089F6940u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 510u, 0x089F6940u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6940u) goto L_089F6940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6940: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7868))); aot_gpr_5 = (aot_gpr_4 < static_cast(5) ? 1u : 0u); @@ -5750,8 +6957,21 @@ L_089F69D0: } L_089F69D8: aot_gpr_31 = (0x089F69E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 526u, 0x089F69E0u, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F69E0u) goto L_089F69E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F69E0: aot_gpr_4 = (aot_gpr_16 << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); @@ -5763,16 +6983,42 @@ L_089F69E0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-9668)); aot_gpr_31 = (0x089F6A08u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 527u, 0x089F6A08u, 0x088713B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 359u, 0x088713B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6A08u) goto L_089F6A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6A08: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F6A1Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 528u, 0x089F6A1Cu, 0x088713F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 363u, 0x088713F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6A1Cu) goto L_089F6A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6A1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(128), 0u); aot_gpr_16 = (0u | 0u); @@ -5783,8 +7029,21 @@ L_089F6A24: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F6A38u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 530u, 0x089F6A38u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6A38u) goto L_089F6A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6A38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -5804,8 +7063,21 @@ L_089F6A58: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F6A6Cu); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 532u, 0x089F6A6Cu, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6A6Cu) goto L_089F6A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6A6C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5862,8 +7134,21 @@ L_089F6AC8: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x089F6AD8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 540u, 0x089F6AD8u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6AD8u) goto L_089F6AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6AD8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5891,8 +7176,21 @@ L_089F6AFC: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x089F6B0Cu); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 544u, 0x089F6B0Cu, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6B0Cu) goto L_089F6B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6B0C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -5930,8 +7228,21 @@ L_089F6B40: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F6B50u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 549u, 0x089F6B50u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6B50u) goto L_089F6B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6B50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_gpr_16 = (aot_gpr_16 + static_cast(1)); @@ -5961,23 +7272,75 @@ L_089F6B7C: L_089F6B88: aot_gpr_31 = (0x089F6B90u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 553u, 0x089F6B90u, 0x08871414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 365u, 0x08871414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6B90u) goto L_089F6B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6B90: aot_gpr_31 = (0x089F6B98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 554u, 0x089F6B98u, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6B98u) goto L_089F6B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6B98: aot_gpr_31 = (0x089F6BA0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9748)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 555u, 0x089F6BA0u, 0x08871328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 351u, 0x08871328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6BA0u) goto L_089F6BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6BA0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); aot_gpr_31 = (0x089F6BACu); aot_gpr_4 = (ctx.gpr[20] + static_cast(35)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 556u, 0x089F6BACu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6BACu) goto L_089F6BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6BAC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(34), static_cast(aot_gpr_4)); @@ -5998,8 +7361,8 @@ L_089F6BB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6BE4: @@ -6055,8 +7418,8 @@ L_089F6BE4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6C0C: @@ -6065,8 +7428,8 @@ L_089F6C0C: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6C20: @@ -6075,8 +7438,8 @@ L_089F6C20: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6C34: @@ -6085,8 +7448,8 @@ L_089F6C34: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6C48: @@ -6095,8 +7458,8 @@ L_089F6C48: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6C5C: @@ -6105,8 +7468,8 @@ L_089F6C5C: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6C70: @@ -6115,8 +7478,8 @@ L_089F6C70: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F6C84: @@ -6136,8 +7499,21 @@ L_089F6C84: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x089F6CC8u); aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 566u, 0x089F6CC8u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F6CC8u) goto L_089F6CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F6CC8: aot_gpr_4 = (ctx.gpr[17] + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6484,8 +7860,8 @@ L_089F6F98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7060: @@ -6512,8 +7888,8 @@ L_089F7060: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7090: @@ -6522,8 +7898,21 @@ L_089F7090: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x089F70A4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 585u, 0x089F70A4u, 0x08AAC48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 74u, 0x08AAC48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F70A4u) goto L_089F70A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F70A4: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26564)); @@ -6543,8 +7932,8 @@ L_089F70C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F70E0: @@ -6555,8 +7944,21 @@ L_089F70E0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x089F710Cu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 588u, 0x089F710Cu, 0x08AAC5E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 101u, 0x08AAC5E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F710Cu) goto L_089F710C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F710C: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26564)); @@ -6594,8 +7996,21 @@ L_089F7170: aot_gpr_6 = (ctx.gpr[20] - ctx.gpr[21]); aot_gpr_31 = (0x089F717Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 591u, 0x089F717Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F717Cu) goto L_089F717C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F717C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(7), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(7)))))); @@ -6629,8 +8044,21 @@ L_089F71B4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F71C4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 595u, 0x089F71C4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F71C4u) goto L_089F71C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F71C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1852))); goto L_089F71C8; @@ -6649,16 +8077,16 @@ L_089F71C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F71F4: ctx.gpr[2] = (2207u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(29172)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7200: @@ -6670,8 +8098,8 @@ L_089F7210: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F721C: @@ -6692,8 +8120,21 @@ L_089F7244: L_089F724C: aot_gpr_31 = (0x089F7254u); ctx.gpr[19] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 603u, 0x089F7254u, 0x08AACA60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 139u, 0x08AACA60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7254u) goto L_089F7254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7254: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[19] = (0u | 1u); @@ -6703,8 +8144,21 @@ L_089F7254: L_089F725C: aot_gpr_31 = (0x089F7264u); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 605u, 0x089F7264u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7264u) goto L_089F7264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7264: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[18] = (0u | 1u); @@ -6714,8 +8168,21 @@ L_089F7264: L_089F726C: aot_gpr_31 = (0x089F7274u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 607u, 0x089F7274u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7274u) goto L_089F7274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7274: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -6724,8 +8191,21 @@ L_089F7274: goto L_089F727C; L_089F727C: aot_gpr_31 = (0x089F7284u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 609u, 0x089F7284u, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7284u) goto L_089F7284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7284: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -6794,8 +8274,8 @@ L_089F72CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F72F0: @@ -6817,14 +8297,40 @@ L_089F730C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x089F7320u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 623u, 0x089F7320u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7320u) goto L_089F7320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7320: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089F732Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 624u, 0x089F732Cu, 0x08AACB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F732Cu) goto L_089F732C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F732C: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6847,8 +8353,8 @@ L_089F7340: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7354: @@ -6868,8 +8374,21 @@ L_089F736C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x089F737Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 629u, 0x089F737Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F737Cu) goto L_089F737C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F737C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -6881,15 +8400,15 @@ L_089F7388: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F739C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 2u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F73A4: @@ -6902,8 +8421,21 @@ L_089F73A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089F73C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 633u, 0x089F73C8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F73C8u) goto L_089F73C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F73C8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6925,8 +8457,8 @@ L_089F73E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F73F0: @@ -6955,8 +8487,8 @@ L_089F741C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7428: @@ -6971,8 +8503,21 @@ L_089F7428: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x089F7454u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 641u, 0x089F7454u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7454u) goto L_089F7454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7454: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7000,8 +8545,21 @@ L_089F746C: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x089F749Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(28768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 644u, 0x089F749Cu, 0x08B6095Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 115u, 0x08B6095Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F749Cu) goto L_089F749C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F749C: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-26564)); @@ -7033,8 +8591,8 @@ L_089F74F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7504: @@ -7043,14 +8601,27 @@ L_089F7504: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089F7518u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 647u, 0x089F7518u, 0x08A7FA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 660u, 0x08A7FA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7518u) goto L_089F7518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7518: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7524: @@ -7059,8 +8630,21 @@ L_089F7524: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x089F7540u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 649u, 0x089F7540u, 0x08AACB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 158u, 0x08AACB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7540u) goto L_089F7540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7540: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(27568)); @@ -7078,8 +8662,21 @@ L_089F755C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(364), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x089F7574u); aot_gpr_4 = (0u | 384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 651u, 0x089F7574u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7574u) goto L_089F7574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7574: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7092,8 +8689,21 @@ L_089F7574: L_089F7580: aot_gpr_31 = (0x089F7588u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 653u, 0x089F7588u, 0x08AAD80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 264u, 0x08AAD80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7588u) goto L_089F7588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7588: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(27352)); @@ -7113,8 +8723,8 @@ L_089F759C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F75BC: @@ -7125,8 +8735,21 @@ L_089F75BC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x089F75E4u); ctx.gpr[18] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 656u, 0x089F75E4u, 0x08AACB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 158u, 0x08AACB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F75E4u) goto L_089F75E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F75E4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(27568)); @@ -7146,15 +8769,41 @@ L_089F7600: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F7620u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 658u, 0x089F7620u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7620u) goto L_089F7620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7620: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), ctx.gpr[18]); ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x089F7630u); aot_gpr_4 = (0u | 384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 659u, 0x089F7630u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7630u) goto L_089F7630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7630: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7167,8 +8816,21 @@ L_089F7630: L_089F763C: aot_gpr_31 = (0x089F7644u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 661u, 0x089F7644u, 0x08AAD80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 264u, 0x08AAD80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7644u) goto L_089F7644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7644: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(27352)); @@ -7180,8 +8842,21 @@ L_089F7658: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(112), ctx.gpr[17]); aot_gpr_31 = (0x089F7664u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 663u, 0x089F7664u, 0x08AACBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 166u, 0x08AACBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7664u) goto L_089F7664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7664: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1708))); aot_gpr_4 = (aot_gpr_16 + static_cast(140)); @@ -7189,15 +8864,41 @@ L_089F7664: aot_gpr_5 = (ctx.gpr[18] + static_cast(1688)); aot_gpr_31 = (0x089F767Cu); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 664u, 0x089F767Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F767Cu) goto L_089F767C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F767C: aot_gpr_4 = (aot_gpr_16 + static_cast(156)); aot_gpr_5 = (ctx.gpr[18] + static_cast(1672)); aot_gpr_31 = (0x089F768Cu); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 665u, 0x089F768Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F768Cu) goto L_089F768C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F768C: aot_gpr_31 = (0x089F7694u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7210,8 +8911,21 @@ L_089F7694: aot_gpr_5 = (0u | 784u); aot_gpr_31 = (0x089F76B0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 667u, 0x089F76B0u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F76B0u) goto L_089F76B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F76B0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7234,13 +8948,39 @@ L_089F76CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F76DCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 671u, 0x089F76DCu, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F76DCu) goto L_089F76DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F76DC: aot_gpr_31 = (0x089F76E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 672u, 0x089F76E4u, 0x0888F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 562u, 0x0888F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F76E4u) goto L_089F76E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F76E4: ctx.gpr[17] = (0u | 0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(18)); @@ -7260,8 +9000,21 @@ L_089F7700: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F7710u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 675u, 0x089F7710u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7710u) goto L_089F7710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7710: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -7295,8 +9048,8 @@ L_089F7740: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7764: @@ -7309,8 +9062,21 @@ L_089F7764: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); aot_gpr_31 = (0x089F7794u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 679u, 0x089F7794u, 0x08AACC08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 169u, 0x08AACC08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7794u) goto L_089F7794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7794: ctx.gpr[20] = (0u | 0u); ctx.gpr[19] = (aot_gpr_29 + static_cast(16)); @@ -7330,8 +9096,21 @@ L_089F77B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F77C0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 682u, 0x089F77C0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F77C0u) goto L_089F77C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F77C0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -7365,8 +9144,8 @@ L_089F77F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7814: @@ -7416,8 +9195,21 @@ L_089F7864: aot_gpr_5 = (0u | 784u); aot_gpr_31 = (0x089F7880u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 690u, 0x089F7880u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7880u) goto L_089F7880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7880: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7440,8 +9232,21 @@ L_089F789C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F78ACu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 694u, 0x089F78ACu, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F78ACu) goto L_089F78AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F78AC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -7452,8 +9257,8 @@ L_089F78AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F78C4: @@ -7489,8 +9294,21 @@ L_089F7918: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(60)))))); aot_gpr_31 = (0x089F7930u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 697u, 0x089F7930u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7930u) goto L_089F7930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7930: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -7522,8 +9340,21 @@ L_089F7964: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(62)))))); aot_gpr_31 = (0x089F797Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 701u, 0x089F797Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F797Cu) goto L_089F797C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F797C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -7531,8 +9362,21 @@ L_089F797C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_gpr_31 = (0x089F7994u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 702u, 0x089F7994u, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7994u) goto L_089F7994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7994: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); @@ -7560,8 +9404,8 @@ L_089F79CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F79E8: @@ -7585,8 +9429,21 @@ L_089F7A18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); aot_gpr_31 = (0x089F7A30u); aot_gpr_5 = (aot_gpr_5 + static_cast(9288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 706u, 0x089F7A30u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7A30u) goto L_089F7A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7A30: ctx.gpr[19] = (0u | 12u); ctx.gpr[17] = (0u + static_cast(-2)); @@ -7621,8 +9478,21 @@ L_089F7A5C: L_089F7A68: aot_gpr_31 = (0x089F7A70u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 711u, 0x089F7A70u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7A70u) goto L_089F7A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7A70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_089F7A74; @@ -7635,8 +9505,21 @@ L_089F7A78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089F7A8Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 714u, 0x089F7A8Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7A8Cu) goto L_089F7A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7A8C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(0), aot_run_words); @@ -7646,13 +9529,39 @@ L_089F7A8C: } aot_gpr_31 = (0x089F7AA0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 715u, 0x089F7AA0u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7AA0u) goto L_089F7AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7AA0: aot_gpr_31 = (0x089F7AA8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 716u, 0x089F7AA8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7AA8u) goto L_089F7AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7AA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7673,8 +9582,21 @@ L_089F7AB8: L_089F7AC4: aot_gpr_31 = (0x089F7ACCu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 719u, 0x089F7ACCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7ACCu) goto L_089F7ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7ACC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 29 ? 1u : 0u); @@ -7697,8 +9619,8 @@ L_089F7ADC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7AFC: @@ -7740,8 +9662,8 @@ L_089F7B40: goto L_089F7B54; L_089F7B54: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7B5C: @@ -7786,8 +9708,21 @@ L_089F7BC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F7BCCu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 730u, 0x089F7BCCu, 0x08A82170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 168u, 0x08A82170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7BCCu) goto L_089F7BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7BCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7825,8 +9760,21 @@ L_089F7BF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x089F7C0Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 735u, 0x089F7C0Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7C0Cu) goto L_089F7C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7C0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7850,16 +9798,42 @@ L_089F7C28: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F7C38u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 738u, 0x089F7C38u, 0x08A82170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 168u, 0x08A82170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7C38u) goto L_089F7C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7C38: aot_gpr_5 = (2218u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(176))); aot_gpr_6 = (0u | 2048u); aot_gpr_31 = (0x089F7C4Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(9208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 739u, 0x089F7C4Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7C4Cu) goto L_089F7C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7C4C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(372), static_cast(ctx.gpr[19])); @@ -7872,8 +9846,21 @@ L_089F7C54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x089F7C60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 741u, 0x089F7C60u, 0x08A82170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 168u, 0x08A82170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7C60u) goto L_089F7C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7C60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7903,8 +9890,21 @@ L_089F7C7C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x089F7C94u); aot_gpr_6 = (0u | 2048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 745u, 0x089F7C94u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7C94u) goto L_089F7C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7C94: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4), aot_run_words); @@ -7916,22 +9916,35 @@ L_089F7C94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7CB0: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089F7CC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 747u, 0x089F7CC0u, 0x089F89BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 66u, 0x089F89BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7CC0u) goto L_089F7CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7CC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7CCC: @@ -7999,8 +10012,8 @@ L_089F7D50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7D70: @@ -8017,8 +10030,21 @@ L_089F7D70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x089F7DA8u); ctx.gpr[8] = (ctx.gpr[19] + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 756u, 0x089F7DA8u, 0x08AACD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 182u, 0x08AACD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7DA8u) goto L_089F7DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7DA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8037,8 +10063,21 @@ L_089F7DC0: aot_gpr_6 = (aot_gpr_16 + static_cast(752)); aot_gpr_31 = (0x089F7DD0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 759u, 0x089F7DD0u, 0x089F81CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 10u, 0x089F81CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7DD0u) goto L_089F7DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7DD0: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); @@ -8109,8 +10148,8 @@ L_089F7E44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F7E64: @@ -8181,8 +10220,21 @@ L_089F7F58: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089F7F6Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 770u, 0x089F7F6Cu, 0x08AACEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 206u, 0x08AACEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7F6Cu) goto L_089F7F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7F6C: aot_gpr_4 = (ctx.gpr[20] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8197,8 +10249,21 @@ L_089F7F78: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089F7F8Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0124->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0124_entry, 772u, 0x089F7F8Cu, 0x089F82DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 32u, 0x089F82DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F7F8Cu) goto L_089F7F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F7F8C: aot_gpr_4 = (ctx.gpr[20] & 16384u); { const bool branch_taken = aot_gpr_4 == 0u; diff --git a/profiles/vcs/generated/generated_unit_0125.cpp b/profiles/vcs/generated/generated_unit_0125.cpp index c9f22db..5dab92b 100644 --- a/profiles/vcs/generated/generated_unit_0125.cpp +++ b/profiles/vcs/generated/generated_unit_0125.cpp @@ -732,6 +732,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089F8000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -781,8 +805,8 @@ L_089F8058: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F8078: @@ -829,8 +853,21 @@ L_089F810C: aot_gpr_5 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089F811Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 5u, 0x089F811Cu, 0x08AAD1E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 217u, 0x08AAD1E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F811Cu) goto L_089F811C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F811C: aot_gpr_4 = (ctx.gpr[18] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -893,8 +930,8 @@ L_089F81AC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F81CC: @@ -1046,8 +1083,8 @@ L_089F82D0: goto L_089F82D4; L_089F82D4: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F82DC: @@ -1389,8 +1426,8 @@ L_089F8684: goto L_089F8740; L_089F8740: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F8748: @@ -1606,8 +1643,8 @@ L_089F8950: goto L_089F89B4; L_089F89B4: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F89BC: @@ -1655,8 +1692,21 @@ L_089F8A24: aot_gpr_5 = (ctx.gpr[8] | 0u); ctx.gpr[31] = (0x089F8A30u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 70u, 0x089F8A30u, 0x08A82170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 168u, 0x08A82170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8A30u) goto L_089F8A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8A30: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1690,28 +1740,54 @@ L_089F8A54: aot_gpr_5 = (ctx.gpr[8] | 0u); ctx.gpr[31] = (0x089F8A60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 75u, 0x089F8A60u, 0x08A82170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 168u, 0x08A82170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8A60u) goto L_089F8A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8A60: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F8A6C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x089F8A7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 77u, 0x089F8A7Cu, 0x08A823A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 196u, 0x08A823A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8A7Cu) goto L_089F8A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8A7C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F8A88: @@ -1720,8 +1796,21 @@ L_089F8A88: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(36), aot_run_words); } ctx.gpr[16] = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x089F8AC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 79u, 0x089F8AC0u, 0x08AACCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 178u, 0x08AACCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8AC0u) goto L_089F8AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8AC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(112))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); @@ -1745,13 +1834,39 @@ L_089F8AE0: L_089F8AF0: ctx.gpr[31] = (0x089F8AF8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 82u, 0x089F8AF8u, 0x08AAD414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 232u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 232u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 232u, 0x08AAD414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8AF8u) goto L_089F8AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8AF8: ctx.gpr[31] = (0x089F8B00u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 83u, 0x089F8B00u, 0x089F7AFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 721u, 0x089F7AFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8B00u) goto L_089F8B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8B00: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(60))); @@ -1768,8 +1883,21 @@ L_089F8B10: aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); ctx.gpr[31] = (0x089F8B28u); aot_gpr_5 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 85u, 0x089F8B28u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8B28u) goto L_089F8B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8B28: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(60), ctx.gpr[2]); goto L_089F8B2C; @@ -1786,8 +1914,21 @@ L_089F8B40: aot_gpr_6 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x089F8B54u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 88u, 0x089F8B54u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8B54u) goto L_089F8B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8B54: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(124))); @@ -2038,26 +2179,78 @@ L_089F8D80: L_089F8DA8: ctx.gpr[31] = (0x089F8DB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 105u, 0x089F8DB0u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8DB0u) goto L_089F8DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8DB0: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); ctx.gpr[31] = (0x089F8DBCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(184))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 106u, 0x089F8DBCu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8DBCu) goto L_089F8DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8DBC: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); ctx.gpr[31] = (0x089F8DC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 107u, 0x089F8DC8u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8DC8u) goto L_089F8DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8DC8: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); ctx.gpr[31] = (0x089F8DD4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 108u, 0x089F8DD4u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8DD4u) goto L_089F8DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8DD4: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(2), static_cast(0u)); goto L_089F8DD8; @@ -2077,8 +2270,8 @@ L_089F8DD8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F8E08: @@ -2111,8 +2304,21 @@ L_089F8E64: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); ctx.gpr[31] = (0x089F8E74u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 113u, 0x089F8E74u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8E74u) goto L_089F8E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8E74: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -2123,8 +2329,21 @@ L_089F8E84: ctx.gpr[19] = (0u | 0u); ctx.gpr[31] = (0x089F8E90u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 115u, 0x089F8E90u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8E90u) goto L_089F8E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8E90: ctx.gpr[16] = (ctx.gpr[2] | 0u); ctx.gpr[20] = (aot_gpr_17 + static_cast(766)); @@ -2154,8 +2373,21 @@ L_089F8ED0: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089F8EE8u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 117u, 0x089F8EE8u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8EE8u) goto L_089F8EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8EE8: ctx.gpr[19] = (ctx.gpr[16] | 0u); goto L_089F8EEC; @@ -2164,8 +2396,21 @@ L_089F8EEC: aot_gpr_5 = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x089F8EFCu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 119u, 0x089F8EFCu, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8EFCu) goto L_089F8EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8EFC: aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast(104), ctx.gpr[19]); ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(104))); @@ -2176,8 +2421,21 @@ L_089F8EFC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(21)))))); ctx.gpr[31] = (0x089F8F20u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(22), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 120u, 0x089F8F20u, 0x089F6C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 559u, 0x089F6C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8F20u) goto L_089F8F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8F20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(84)))))); @@ -2193,8 +2451,21 @@ L_089F8F30: aot_gpr_4 = (ctx.gpr[16] + static_cast(954)); ctx.gpr[31] = (0x089F8F40u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 122u, 0x089F8F40u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8F40u) goto L_089F8F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8F40: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24)))))); @@ -2203,8 +2474,21 @@ L_089F8F40: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(27)))))); ctx.gpr[31] = (0x089F8F5Cu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(28), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 123u, 0x089F8F5Cu, 0x089F6C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 559u, 0x089F6C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8F5Cu) goto L_089F8F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8F5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(88)))))); @@ -2228,8 +2512,21 @@ L_089F8F74: aot_gpr_4 = (ctx.gpr[16] + static_cast(950)); ctx.gpr[31] = (0x089F8F84u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 126u, 0x089F8F84u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8F84u) goto L_089F8F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8F84: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(752))); goto L_089F8F88; @@ -2246,8 +2543,21 @@ L_089F8F88: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(33)))))); ctx.gpr[31] = (0x089F8FB8u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(34), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 128u, 0x089F8FB8u, 0x089F6C20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 560u, 0x089F6C20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F8FB8u) goto L_089F8FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F8FB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(92), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(92)))))); @@ -2285,8 +2595,21 @@ L_089F9000: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(40)))))); ctx.gpr[31] = (0x089F901Cu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(41), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 131u, 0x089F901Cu, 0x089F6C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 561u, 0x089F6C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F901Cu) goto L_089F901C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F901C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(96)))))); @@ -2326,8 +2649,21 @@ L_089F906C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(47)))))); ctx.gpr[31] = (0x089F9088u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(48), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 134u, 0x089F9088u, 0x089F6C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 562u, 0x089F6C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9088u) goto L_089F9088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9088: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(100)))))); @@ -2343,8 +2679,21 @@ L_089F9098: aot_gpr_4 = (ctx.gpr[16] + static_cast(1604)); ctx.gpr[31] = (0x089F90A8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 136u, 0x089F90A8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F90A8u) goto L_089F90A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F90A8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(50), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(50)))))); @@ -2353,8 +2702,21 @@ L_089F90A8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(53)))))); ctx.gpr[31] = (0x089F90C4u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(54), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 137u, 0x089F90C4u, 0x089F6C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 562u, 0x089F6C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F90C4u) goto L_089F90C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F90C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(104)))))); @@ -2371,8 +2733,21 @@ L_089F90DC: aot_gpr_4 = (ctx.gpr[16] + static_cast(1620)); ctx.gpr[31] = (0x089F90E8u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 139u, 0x089F90E8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F90E8u) goto L_089F90E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F90E8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(56), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(56)))))); @@ -2381,8 +2756,21 @@ L_089F90E8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(59)))))); ctx.gpr[31] = (0x089F9104u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(60), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 140u, 0x089F9104u, 0x089F6C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 562u, 0x089F6C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9104u) goto L_089F9104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9104: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(108), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(108)))))); @@ -2399,8 +2787,21 @@ L_089F911C: aot_gpr_4 = (ctx.gpr[16] + static_cast(1636)); ctx.gpr[31] = (0x089F9128u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 142u, 0x089F9128u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9128u) goto L_089F9128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9128: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(62), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(62)))))); @@ -2409,8 +2810,21 @@ L_089F9128: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(65)))))); ctx.gpr[31] = (0x089F9144u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(66), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 143u, 0x089F9144u, 0x089F6C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 562u, 0x089F6C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9144u) goto L_089F9144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9144: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(112)))))); @@ -2427,8 +2841,21 @@ L_089F915C: aot_gpr_4 = (ctx.gpr[16] + static_cast(1520)); ctx.gpr[31] = (0x089F9168u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 145u, 0x089F9168u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9168u) goto L_089F9168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9168: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(68), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(68)))))); @@ -2437,8 +2864,21 @@ L_089F9168: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(71)))))); ctx.gpr[31] = (0x089F9184u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(72), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 146u, 0x089F9184u, 0x089F6C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 563u, 0x089F6C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9184u) goto L_089F9184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9184: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(116), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(116)))))); @@ -2462,8 +2902,21 @@ L_089F91BC: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x089F91C8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 148u, 0x089F91C8u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F91C8u) goto L_089F91C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F91C8: ctx.gpr[18] = (ctx.gpr[18] + static_cast(32)); ctx.gpr[20] = (ctx.gpr[20] + static_cast(-1)); @@ -2482,8 +2935,21 @@ L_089F91D8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(78)))))); ctx.gpr[31] = (0x089F91F4u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(79), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 150u, 0x089F91F4u, 0x089F6C70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 564u, 0x089F6C70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F91F4u) goto L_089F91F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F91F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(120)))))); @@ -2546,13 +3012,39 @@ L_089F928C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); ctx.gpr[31] = (0x089F92A0u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 155u, 0x089F92A0u, 0x08AACC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 171u, 0x08AACC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F92A0u) goto L_089F92A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F92A0: ctx.gpr[31] = (0x089F92A8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 156u, 0x089F92A8u, 0x08831BF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 395u, 0x08831BF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F92A8u) goto L_089F92A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F92A8: aot_gpr_17 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[23] + static_cast(10)))))); aot_gpr_4 = (0u | 0u); @@ -2561,8 +3053,21 @@ L_089F92A8: aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); ctx.gpr[31] = (0x089F92C4u); aot_gpr_5 = (0u | 784u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 157u, 0x089F92C4u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F92C4u) goto L_089F92C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F92C4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2576,8 +3081,21 @@ L_089F92D0: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x089F92DCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 159u, 0x089F92DCu, 0x089F70E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 587u, 0x089F70E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F92DCu) goto L_089F92DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F92DC: aot_gpr_4 = (ctx.gpr[18] | 0u); goto L_089F92E0; @@ -2586,8 +3104,21 @@ L_089F92E0: aot_gpr_4 = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x089F92F0u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 161u, 0x089F92F0u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F92F0u) goto L_089F92F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F92F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2601,8 +3132,21 @@ L_089F92F8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); ctx.gpr[31] = (0x089F930Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 163u, 0x089F930Cu, 0x08AACC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 171u, 0x08AACC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F930Cu) goto L_089F930C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F930C: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(156), aot_run_words); @@ -2619,8 +3163,8 @@ L_089F930C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F933C: @@ -2674,8 +3218,21 @@ L_089F93B8: aot_gpr_5 = (2179u << 16u); ctx.gpr[31] = (0x089F93C8u); aot_gpr_5 = (aot_gpr_5 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 169u, 0x089F93C8u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F93C8u) goto L_089F93C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F93C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2688,8 +3245,21 @@ L_089F93D4: aot_gpr_17 = (0u | 0u); ctx.gpr[31] = (0x089F93E0u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 171u, 0x089F93E0u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F93E0u) goto L_089F93E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F93E0: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] != 0u; @@ -2717,8 +3287,21 @@ L_089F93F4: L_089F93FC: ctx.gpr[31] = (0x089F9404u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 175u, 0x089F9404u, 0x0882B4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 349u, 0x0882B4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9404u) goto L_089F9404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9404: aot_gpr_17 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_gpr_17 | 0u); @@ -2995,20 +3578,59 @@ L_089F95EC: aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(176))); ctx.gpr[31] = (0x089F95F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 199u, 0x089F95F8u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F95F8u) goto L_089F95F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F95F8: aot_gpr_17 = (aot_gpr_17 + static_cast(80)); ctx.gpr[31] = (0x089F9604u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 200u, 0x089F9604u, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9604u) goto L_089F9604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9604: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[31] = (0x089F9614u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 201u, 0x089F9614u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9614u) goto L_089F9614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9614: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); @@ -3067,26 +3689,78 @@ L_089F9614: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[31] = (0x089F9648u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 202u, 0x089F9648u, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9648u) goto L_089F9648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9648: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[31] = (0x089F9654u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 203u, 0x089F9654u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9654u) goto L_089F9654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9654: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[31] = (0x089F9660u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 204u, 0x089F9660u, 0x0887F368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 698u, 0x0887F368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9660u) goto L_089F9660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9660: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[31] = (0x089F966Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 205u, 0x089F966Cu, 0x08ACFE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1117u, 0x08ACFE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F966Cu) goto L_089F966C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F966C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 4096u); @@ -3276,8 +3950,21 @@ L_089F9858: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089F9864u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 221u, 0x089F9864u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9864u) goto L_089F9864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9864: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3303,8 +3990,21 @@ L_089F9864: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); ctx.gpr[31] = (0x089F9898u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 222u, 0x089F9898u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9898u) goto L_089F9898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9898: ctx.gpr[2] = (0u | 1u); goto L_089F989C; @@ -3324,8 +4024,8 @@ L_089F989C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089F98CC: @@ -3334,8 +4034,21 @@ L_089F98CC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(992), aot_run_words); } ctx.gpr[16] = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x089F9904u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 225u, 0x089F9904u, 0x08AAD8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 271u, 0x08AAD8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9904u) goto L_089F9904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9904: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_4 + static_cast(10)); @@ -3356,8 +4069,21 @@ L_089F9904: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(630)))))); ctx.gpr[31] = (0x089F9950u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 226u, 0x089F9950u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9950u) goto L_089F9950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9950: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), 0u); @@ -3414,8 +4140,21 @@ L_089F99B0: L_089F99C0: ctx.gpr[31] = (0x089F99C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 232u, 0x089F99C8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F99C8u) goto L_089F99C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F99C8: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); goto L_089F99CC; @@ -3431,8 +4170,21 @@ L_089F99CC: ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); ctx.gpr[31] = (0x089F99F8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 234u, 0x089F99F8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F99F8u) goto L_089F99F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F99F8: aot_gpr_4 = (aot_gpr_29 + static_cast(80)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3452,8 +4204,21 @@ L_089F99F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(776))); ctx.gpr[31] = (0x089F9A14u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 235u, 0x089F9A14u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9A14u) goto L_089F9A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9A14: aot_gpr_4 = (0u | 1u); if (aot_gpr_4 == 0u) { @@ -3472,8 +4237,21 @@ L_089F9A20: L_089F9A28: ctx.gpr[31] = (0x089F9A30u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 238u, 0x089F9A30u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9A30u) goto L_089F9A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9A30: ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); { std::uint32_t aot_run_words[3]{}; @@ -3484,20 +4262,59 @@ L_089F9A30: } ctx.gpr[31] = (0x089F9A48u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 239u, 0x089F9A48u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9A48u) goto L_089F9A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9A48: ctx.gpr[31] = (0x089F9A50u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 240u, 0x089F9A50u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9A50u) goto L_089F9A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9A50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x089F9A60u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 241u, 0x089F9A60u, 0x08AAD9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 282u, 0x08AAD9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9A60u) goto L_089F9A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9A60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -3539,64 +4356,168 @@ L_089F9AC4: aot_gpr_6 = (0u | 12u); ctx.gpr[31] = (0x089F9AD8u); aot_gpr_7 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 247u, 0x089F9AD8u, 0x089F7CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 746u, 0x089F7CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9AD8u) goto L_089F9AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9AD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_6 = (0u | 13u); ctx.gpr[31] = (0x089F9AECu); aot_gpr_7 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 248u, 0x089F9AECu, 0x089F7CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 746u, 0x089F7CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9AECu) goto L_089F9AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9AEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_6 = (0u | 18u); ctx.gpr[31] = (0x089F9B00u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 249u, 0x089F9B00u, 0x089F7B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 726u, 0x089F7B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9B00u) goto L_089F9B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9B00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_6 = (0u | 19u); ctx.gpr[31] = (0x089F9B14u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 250u, 0x089F9B14u, 0x089F7B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 726u, 0x089F7B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9B14u) goto L_089F9B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9B14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_6 = (0u | 10u); ctx.gpr[31] = (0x089F9B28u); aot_gpr_7 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 251u, 0x089F9B28u, 0x089F7B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 726u, 0x089F7B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9B28u) goto L_089F9B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9B28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_6 = (0u | 8u); ctx.gpr[31] = (0x089F9B3Cu); aot_gpr_7 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 252u, 0x089F9B3Cu, 0x089F7B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 726u, 0x089F7B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9B3Cu) goto L_089F9B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9B3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_6 = (0u | 11u); ctx.gpr[31] = (0x089F9B50u); aot_gpr_7 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 253u, 0x089F9B50u, 0x089F7B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 726u, 0x089F7B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9B50u) goto L_089F9B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9B50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_6 = (0u | 9u); ctx.gpr[31] = (0x089F9B64u); aot_gpr_7 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 254u, 0x089F9B64u, 0x089F7B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 726u, 0x089F7B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9B64u) goto L_089F9B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9B64: aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(352))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); @@ -3665,8 +4586,21 @@ L_089F9BE4: aot_gpr_6 = (aot_gpr_29 + static_cast(632)); ctx.gpr[31] = (0x089F9BF4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 259u, 0x089F9BF4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9BF4u) goto L_089F9BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9BF4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(632))); @@ -3694,8 +4628,21 @@ L_089F9C20: aot_gpr_6 = (aot_gpr_29 + static_cast(633)); ctx.gpr[31] = (0x089F9C30u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 263u, 0x089F9C30u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9C30u) goto L_089F9C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9C30: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(633))); @@ -3722,8 +4669,21 @@ L_089F9C58: aot_gpr_6 = (aot_gpr_29 + static_cast(634)); ctx.gpr[31] = (0x089F9C68u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 267u, 0x089F9C68u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9C68u) goto L_089F9C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9C68: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(634))); @@ -3751,8 +4711,21 @@ L_089F9C94: aot_gpr_6 = (aot_gpr_29 + static_cast(635)); ctx.gpr[31] = (0x089F9CA4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 271u, 0x089F9CA4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9CA4u) goto L_089F9CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9CA4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(635))); @@ -3781,8 +4754,21 @@ L_089F9CD4: aot_gpr_6 = (aot_gpr_29 + static_cast(636)); ctx.gpr[31] = (0x089F9CE4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 275u, 0x089F9CE4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9CE4u) goto L_089F9CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9CE4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(636))); @@ -3810,8 +4796,21 @@ L_089F9D10: aot_gpr_6 = (aot_gpr_29 + static_cast(637)); ctx.gpr[31] = (0x089F9D20u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 279u, 0x089F9D20u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9D20u) goto L_089F9D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9D20: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(637))); @@ -3851,8 +4850,21 @@ L_089F9D60: aot_gpr_6 = (aot_gpr_29 + static_cast(638)); ctx.gpr[31] = (0x089F9D70u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 285u, 0x089F9D70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9D70u) goto L_089F9D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9D70: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(638))); @@ -3889,8 +4901,21 @@ L_089F9DC4: aot_gpr_6 = (aot_gpr_29 + static_cast(639)); ctx.gpr[31] = (0x089F9DD4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 289u, 0x089F9DD4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9DD4u) goto L_089F9DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9DD4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(639))); @@ -3921,8 +4946,21 @@ L_089F9E0C: aot_gpr_6 = (aot_gpr_29 + static_cast(640)); ctx.gpr[31] = (0x089F9E1Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 293u, 0x089F9E1Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9E1Cu) goto L_089F9E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9E1C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(640))); @@ -3989,8 +5027,21 @@ L_089F9E78: aot_gpr_6 = (aot_gpr_29 + static_cast(641)); ctx.gpr[31] = (0x089F9E88u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 302u, 0x089F9E88u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9E88u) goto L_089F9E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9E88: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(641))); @@ -4004,8 +5055,21 @@ L_089F9E98: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089F9EB0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 304u, 0x089F9EB0u, 0x08A84C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 132u, 0x08A84C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9EB0u) goto L_089F9EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9EB0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4025,8 +5089,21 @@ L_089F9EC4: aot_gpr_6 = (aot_gpr_29 + static_cast(642)); ctx.gpr[31] = (0x089F9ED4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 307u, 0x089F9ED4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9ED4u) goto L_089F9ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9ED4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(642))); @@ -4085,8 +5162,21 @@ L_089F9EE4: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089F9F68u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 309u, 0x089F9F68u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9F68u) goto L_089F9F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9F68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -4099,8 +5189,21 @@ L_089F9F74: aot_gpr_6 = (aot_gpr_29 + static_cast(672)); ctx.gpr[31] = (0x089F9F84u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 311u, 0x089F9F84u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089F9F84u) goto L_089F9F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089F9F84: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(672))); @@ -4163,8 +5266,21 @@ L_089F9F94: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FA024u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 313u, 0x089FA024u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA024u) goto L_089FA024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA024: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -4177,8 +5293,21 @@ L_089FA030: aot_gpr_6 = (aot_gpr_29 + static_cast(704)); ctx.gpr[31] = (0x089FA040u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 315u, 0x089FA040u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA040u) goto L_089FA040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA040: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(704))); @@ -4237,8 +5366,21 @@ L_089FA050: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FA0D4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 317u, 0x089FA0D4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA0D4u) goto L_089FA0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA0D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -4251,8 +5393,21 @@ L_089FA0E0: aot_gpr_6 = (aot_gpr_29 + static_cast(736)); ctx.gpr[31] = (0x089FA0F0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 319u, 0x089FA0F0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA0F0u) goto L_089FA0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA0F0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(736))); @@ -4280,8 +5435,21 @@ L_089FA11C: aot_gpr_6 = (aot_gpr_29 + static_cast(737)); ctx.gpr[31] = (0x089FA12Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 323u, 0x089FA12Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA12Cu) goto L_089FA12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA12C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(737))); @@ -4314,8 +5482,21 @@ L_089FA178: aot_gpr_6 = (aot_gpr_29 + static_cast(738)); ctx.gpr[31] = (0x089FA188u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 326u, 0x089FA188u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA188u) goto L_089FA188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA188: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(738))); @@ -4332,8 +5513,21 @@ L_089FA194: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[31] = (0x089FA1BCu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 328u, 0x089FA1BCu, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA1BCu) goto L_089FA1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA1BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4387,8 +5581,21 @@ L_089FA208: aot_gpr_6 = (aot_gpr_29 + static_cast(739)); ctx.gpr[31] = (0x089FA218u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 335u, 0x089FA218u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA218u) goto L_089FA218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA218: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(739))); @@ -4402,8 +5609,21 @@ L_089FA228: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089FA240u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 337u, 0x089FA240u, 0x08A84C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 132u, 0x08A84C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA240u) goto L_089FA240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA240: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -4416,8 +5636,21 @@ L_089FA24C: aot_gpr_6 = (aot_gpr_29 + static_cast(740)); ctx.gpr[31] = (0x089FA25Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 339u, 0x089FA25Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA25Cu) goto L_089FA25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA25C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(740))); @@ -4476,8 +5709,21 @@ L_089FA26C: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FA2F0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 341u, 0x089FA2F0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA2F0u) goto L_089FA2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA2F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -4490,8 +5736,21 @@ L_089FA2FC: aot_gpr_6 = (aot_gpr_29 + static_cast(768)); ctx.gpr[31] = (0x089FA30Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 343u, 0x089FA30Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA30Cu) goto L_089FA30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA30C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(768))); @@ -4519,8 +5778,21 @@ L_089FA338: aot_gpr_6 = (aot_gpr_29 + static_cast(769)); ctx.gpr[31] = (0x089FA348u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 347u, 0x089FA348u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA348u) goto L_089FA348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA348: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(769))); @@ -4553,8 +5825,21 @@ L_089FA394: aot_gpr_6 = (aot_gpr_29 + static_cast(770)); ctx.gpr[31] = (0x089FA3A4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 350u, 0x089FA3A4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA3A4u) goto L_089FA3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA3A4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(770))); @@ -4571,8 +5856,21 @@ L_089FA3B0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[31] = (0x089FA3D8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 352u, 0x089FA3D8u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA3D8u) goto L_089FA3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA3D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4603,8 +5901,21 @@ L_089FA408: aot_gpr_6 = (aot_gpr_29 + static_cast(771)); ctx.gpr[31] = (0x089FA418u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 356u, 0x089FA418u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA418u) goto L_089FA418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA418: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(771))); @@ -4618,13 +5929,39 @@ L_089FA428: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089FA440u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 358u, 0x089FA440u, 0x08A84C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 132u, 0x08A84C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA440u) goto L_089FA440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA440: ctx.gpr[31] = (0x089FA448u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 359u, 0x089FA448u, 0x089F7354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 627u, 0x089F7354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA448u) goto L_089FA448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA448: aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[21]); aot_gpr_4 = (aot_gpr_4 + static_cast(304)); @@ -4676,8 +6013,21 @@ L_089FA448: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FA4C8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 360u, 0x089FA4C8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA4C8u) goto L_089FA4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA4C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -4690,8 +6040,21 @@ L_089FA4D4: aot_gpr_6 = (aot_gpr_29 + static_cast(772)); ctx.gpr[31] = (0x089FA4E4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 362u, 0x089FA4E4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA4E4u) goto L_089FA4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA4E4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(772))); @@ -4710,8 +6073,21 @@ L_089FA4F4: L_089FA504: ctx.gpr[31] = (0x089FA50Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 365u, 0x089FA50Cu, 0x089F7354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 627u, 0x089F7354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA50Cu) goto L_089FA50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA50C: aot_gpr_4 = (ctx.gpr[20] << 5u); aot_gpr_4 = (ctx.gpr[2] + aot_gpr_4); @@ -4738,8 +6114,21 @@ L_089FA548: aot_gpr_6 = (aot_gpr_29 + static_cast(773)); ctx.gpr[31] = (0x089FA558u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 367u, 0x089FA558u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA558u) goto L_089FA558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA558: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(773))); @@ -4756,8 +6145,21 @@ L_089FA564: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); ctx.gpr[31] = (0x089FA58Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 369u, 0x089FA58Cu, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA58Cu) goto L_089FA58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA58C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4796,8 +6198,21 @@ L_089FA5D0: aot_gpr_6 = (aot_gpr_29 + static_cast(774)); ctx.gpr[31] = (0x089FA5E0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 374u, 0x089FA5E0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA5E0u) goto L_089FA5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA5E0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(774))); @@ -4811,8 +6226,21 @@ L_089FA5F0: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089FA608u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 376u, 0x089FA608u, 0x08A84C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 132u, 0x08A84C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA608u) goto L_089FA608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA608: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(132))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4824,8 +6252,21 @@ L_089FA608: L_089FA614: ctx.gpr[31] = (0x089FA61Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 378u, 0x089FA61Cu, 0x089F7354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 627u, 0x089F7354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA61Cu) goto L_089FA61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA61C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(448))); aot_gpr_5 = (ctx.gpr[20] + static_cast(4)); @@ -4852,8 +6293,21 @@ L_089FA64C: aot_gpr_6 = (aot_gpr_29 + static_cast(816)); ctx.gpr[31] = (0x089FA65Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 381u, 0x089FA65Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA65Cu) goto L_089FA65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA65C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(816))); @@ -4872,8 +6326,21 @@ L_089FA66C: L_089FA67C: ctx.gpr[31] = (0x089FA684u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 384u, 0x089FA684u, 0x089F7354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 627u, 0x089F7354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA684u) goto L_089FA684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA684: aot_gpr_4 = (ctx.gpr[20] << 5u); aot_gpr_4 = (ctx.gpr[2] + aot_gpr_4); @@ -4900,8 +6367,21 @@ L_089FA6C0: aot_gpr_6 = (aot_gpr_29 + static_cast(775)); ctx.gpr[31] = (0x089FA6D0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 386u, 0x089FA6D0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA6D0u) goto L_089FA6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA6D0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(775))); @@ -4918,8 +6398,21 @@ L_089FA6DC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.gpr[31] = (0x089FA704u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 388u, 0x089FA704u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA704u) goto L_089FA704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA704: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -4932,8 +6425,21 @@ L_089FA710: aot_gpr_6 = (aot_gpr_29 + static_cast(817)); ctx.gpr[31] = (0x089FA720u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 390u, 0x089FA720u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA720u) goto L_089FA720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA720: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(817))); @@ -5043,8 +6549,21 @@ L_089FA7F8: aot_gpr_6 = (aot_gpr_29 + static_cast(776)); ctx.gpr[31] = (0x089FA808u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 401u, 0x089FA808u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA808u) goto L_089FA808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA808: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(776))); @@ -5075,8 +6594,21 @@ L_089FA840: aot_gpr_6 = (aot_gpr_29 + static_cast(777)); ctx.gpr[31] = (0x089FA850u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 405u, 0x089FA850u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA850u) goto L_089FA850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA850: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(777))); @@ -5107,8 +6639,21 @@ L_089FA888: aot_gpr_6 = (aot_gpr_29 + static_cast(778)); ctx.gpr[31] = (0x089FA898u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 409u, 0x089FA898u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA898u) goto L_089FA898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA898: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(778))); @@ -5130,8 +6675,21 @@ L_089FA8A8: L_089FA8C4: ctx.gpr[31] = (0x089FA8CCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 412u, 0x089FA8CCu, 0x089F7354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 627u, 0x089F7354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA8CCu) goto L_089FA8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA8CC: aot_gpr_4 = (ctx.gpr[20] << 5u); aot_gpr_4 = (ctx.gpr[2] + aot_gpr_4); @@ -5156,8 +6714,21 @@ L_089FA8F4: aot_gpr_6 = (aot_gpr_29 + static_cast(779)); ctx.gpr[31] = (0x089FA904u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 415u, 0x089FA904u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA904u) goto L_089FA904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA904: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(779))); @@ -5179,8 +6750,21 @@ L_089FA914: L_089FA930: ctx.gpr[31] = (0x089FA938u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 418u, 0x089FA938u, 0x089F7354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 627u, 0x089F7354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA938u) goto L_089FA938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA938: aot_gpr_4 = (ctx.gpr[20] << 5u); aot_gpr_4 = (ctx.gpr[2] + aot_gpr_4); @@ -5225,8 +6809,21 @@ L_089FA984: aot_gpr_6 = (aot_gpr_29 + static_cast(780)); ctx.gpr[31] = (0x089FA994u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 420u, 0x089FA994u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FA994u) goto L_089FA994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FA994: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(780))); @@ -5297,8 +6894,21 @@ L_089FAA08: aot_gpr_6 = (aot_gpr_29 + static_cast(781)); ctx.gpr[31] = (0x089FAA18u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 423u, 0x089FAA18u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAA18u) goto L_089FAA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAA18: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(781))); @@ -5353,8 +6963,21 @@ L_089FAA5C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x089FAA8Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 427u, 0x089FAA8Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAA8Cu) goto L_089FAA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAA8C: aot_gpr_4 = (aot_gpr_29 + static_cast(512)); aot_gpr_5 = (15897u << 16u); @@ -5378,8 +7001,21 @@ L_089FAA8C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x089FAAB8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 428u, 0x089FAAB8u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAAB8u) goto L_089FAAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAAB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5450,8 +7086,21 @@ L_089FAB28: aot_gpr_6 = (aot_gpr_29 + static_cast(782)); ctx.gpr[31] = (0x089FAB38u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 433u, 0x089FAB38u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAB38u) goto L_089FAB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAB38: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(782))); @@ -5497,8 +7146,21 @@ L_089FAB48: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FABB4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 435u, 0x089FABB4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FABB4u) goto L_089FABB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FABB4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6892))); aot_gpr_4 = (15651u << 16u); @@ -5523,8 +7185,21 @@ L_089FABE0: aot_gpr_6 = (aot_gpr_29 + static_cast(783)); ctx.gpr[31] = (0x089FABF0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 438u, 0x089FABF0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FABF0u) goto L_089FABF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FABF0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(783))); @@ -5570,8 +7245,21 @@ L_089FAC00: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FAC6Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 440u, 0x089FAC6Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAC6Cu) goto L_089FAC6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAC6C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6892))); aot_gpr_4 = (15907u << 16u); @@ -5596,8 +7284,21 @@ L_089FAC98: aot_gpr_6 = (aot_gpr_29 + static_cast(784)); ctx.gpr[31] = (0x089FACA8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 443u, 0x089FACA8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FACA8u) goto L_089FACA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FACA8: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(784))); @@ -5643,8 +7344,21 @@ L_089FACB8: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FAD24u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 445u, 0x089FAD24u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAD24u) goto L_089FAD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAD24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -5657,8 +7371,21 @@ L_089FAD30: aot_gpr_6 = (aot_gpr_29 + static_cast(785)); ctx.gpr[31] = (0x089FAD40u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 447u, 0x089FAD40u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAD40u) goto L_089FAD40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAD40: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(785))); @@ -5704,8 +7431,21 @@ L_089FAD50: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FADBCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 449u, 0x089FADBCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FADBCu) goto L_089FADBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FADBC: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[20]) < 4 ? 1u : 0u); @@ -5739,8 +7479,21 @@ L_089FADE4: L_089FADF0: ctx.gpr[31] = (0x089FADF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 454u, 0x089FADF8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FADF8u) goto L_089FADF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FADF8: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(992), aot_run_words); @@ -5757,8 +7510,8 @@ L_089FADF8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(1040)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FAE28: @@ -5808,8 +7561,21 @@ L_089FAE98: aot_gpr_6 = (aot_gpr_29 + static_cast(144)); ctx.gpr[31] = (0x089FAEA8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 460u, 0x089FAEA8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAEA8u) goto L_089FAEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAEA8: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(144))); @@ -5893,8 +7659,21 @@ L_089FAF40: aot_gpr_6 = (aot_gpr_29 + static_cast(176)); ctx.gpr[31] = (0x089FAF50u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 466u, 0x089FAF50u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FAF50u) goto L_089FAF50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FAF50: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(176))); @@ -5988,8 +7767,21 @@ L_089FAFA4: aot_gpr_5 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089FB00Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 474u, 0x089FB00Cu, 0x089F6BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 558u, 0x089F6BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB00Cu) goto L_089FB00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB00C: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6071,8 +7863,21 @@ L_089FB05C: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FB0A8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 477u, 0x089FB0A8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB0A8u) goto L_089FB0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB0A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6120,8 +7925,21 @@ L_089FB0C8: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FB110u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 480u, 0x089FB110u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB110u) goto L_089FB110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB110: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -6163,8 +7981,21 @@ L_089FB110: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FB158u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 481u, 0x089FB158u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB158u) goto L_089FB158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB158: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6237,8 +8068,21 @@ L_089FB1BC: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FB1FCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 486u, 0x089FB1FCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB1FCu) goto L_089FB1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB1FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6421,8 +8265,21 @@ L_089FB304: aot_gpr_4 = (2236u << 16u); ctx.gpr[31] = (0x089FB324u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 507u, 0x089FB324u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB324u) goto L_089FB324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB324: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -6444,8 +8301,21 @@ L_089FB330: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FB360u); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 509u, 0x089FB360u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB360u) goto L_089FB360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB360: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6510,8 +8380,21 @@ L_089FB388: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x089FB3DCu); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 512u, 0x089FB3DCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB3DCu) goto L_089FB3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB3DC: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(272), aot_run_words); @@ -6528,8 +8411,8 @@ L_089FB3DC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB40C: @@ -6549,8 +8432,8 @@ L_089FB40C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-9596), std::bit_cast(aot_fpr_13)); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-9592), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB44C: @@ -6696,35 +8579,35 @@ L_089FB550: L_089FB59C: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB5A4: jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB5AC: jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB5B4: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB5BC: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB5C4: @@ -6736,8 +8619,21 @@ L_089FB5C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x089FB5E4u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 525u, 0x089FB5E4u, 0x088DF69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 451u, 0x088DF69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB5E4u) goto L_089FB5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB5E4: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(44), aot_gpr_4); @@ -6756,15 +8652,28 @@ L_089FB604: aot_gpr_7 = (0u | 40u); ctx.gpr[31] = (0x089FB61Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-1600)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 527u, 0x089FB61Cu, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB61Cu) goto L_089FB61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB61C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB62C: @@ -6790,8 +8699,21 @@ L_089FB660: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x089FB670u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 531u, 0x089FB670u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB670u) goto L_089FB670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB670: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(5))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -6817,8 +8739,8 @@ L_089FB690: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB6AC: @@ -6840,8 +8762,21 @@ L_089FB6C0: aot_gpr_5 = (aot_gpr_5 + static_cast(-1440)); ctx.gpr[31] = (0x089FB6E0u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 535u, 0x089FB6E0u, 0x088B98ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 337u, 0x088B98ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB6E0u) goto L_089FB6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB6E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (0x089FB6ECu); @@ -6851,8 +8786,8 @@ L_089FB6EC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB6F8: @@ -6871,8 +8806,21 @@ L_089FB6F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), ctx.gpr[31]); ctx.gpr[31] = (0x089FB734u); aot_gpr_6 = (0u | 80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 538u, 0x089FB734u, 0x088B9930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 339u, 0x088B9930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB734u) goto L_089FB734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB734: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -6882,14 +8830,40 @@ L_089FB734: ctx.gpr[9] = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x089FB754u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 539u, 0x089FB754u, 0x088B98ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 337u, 0x088B98ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB754u) goto L_089FB754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB754: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x089FB760u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 540u, 0x089FB760u, 0x088719B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 446u, 0x088719B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB760u) goto L_089FB760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB760: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6901,8 +8875,8 @@ L_089FB760: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB77C: @@ -6915,8 +8889,8 @@ L_089FB78C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB798: @@ -6991,8 +8965,8 @@ L_089FB80C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB820: @@ -7013,8 +8987,21 @@ L_089FB83C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(32))); ctx.gpr[31] = (0x089FB84Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-9324)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 554u, 0x089FB84Cu, 0x088B98ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 337u, 0x088B98ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB84Cu) goto L_089FB84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB84C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7033,8 +9020,8 @@ L_089FB868: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB874: @@ -7075,8 +9062,8 @@ L_089FB8BC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB8C8: @@ -7112,8 +9099,21 @@ L_089FB8F0: } L_089FB914: ctx.gpr[31] = (0x089FB91Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 566u, 0x089FB91Cu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB91Cu) goto L_089FB91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB91C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7135,8 +9135,8 @@ L_089FB94C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FB95C: @@ -7179,8 +9179,21 @@ L_089FB9AC: } L_089FB9C8: ctx.gpr[31] = (0x089FB9D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 572u, 0x089FB9D0u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FB9D0u) goto L_089FB9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FB9D0: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089FB9D4; @@ -7224,8 +9237,21 @@ L_089FBA00: } L_089FBA1C: ctx.gpr[31] = (0x089FBA24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 578u, 0x089FBA24u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBA24u) goto L_089FBA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBA24: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_089FBA28; @@ -7254,8 +9280,8 @@ L_089FBA38: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FBA50: @@ -7280,8 +9306,21 @@ L_089FBA80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); ctx.gpr[31] = (0x089FBA90u); aot_gpr_6 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 584u, 0x089FBA90u, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBA90u) goto L_089FBA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBA90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); goto L_089FBA94; @@ -7306,8 +9345,21 @@ L_089FBAB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); ctx.gpr[31] = (0x089FBAC4u); aot_gpr_6 = (ctx.gpr[19] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 588u, 0x089FBAC4u, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBAC4u) goto L_089FBAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBAC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); goto L_089FBAC8; @@ -7344,8 +9396,21 @@ L_089FBAF4: } L_089FBB14: ctx.gpr[31] = (0x089FBB1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 592u, 0x089FBB1Cu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBB1Cu) goto L_089FBB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBB1C: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -7384,8 +9449,8 @@ L_089FBB44: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FBB74: @@ -7419,8 +9484,21 @@ L_089FBBC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); ctx.gpr[31] = (0x089FBBD4u); aot_gpr_6 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 598u, 0x089FBBD4u, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBBD4u) goto L_089FBBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBBD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); goto L_089FBBD8; @@ -7463,8 +9541,21 @@ L_089FBC1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); ctx.gpr[31] = (0x089FBC28u); aot_gpr_6 = (ctx.gpr[19] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 604u, 0x089FBC28u, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBC28u) goto L_089FBC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBC28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); goto L_089FBC2C; @@ -7501,8 +9592,21 @@ L_089FBC58: } L_089FBC78: ctx.gpr[31] = (0x089FBC80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 608u, 0x089FBC80u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBC80u) goto L_089FBC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBC80: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -7558,8 +9662,21 @@ L_089FBCD4: } L_089FBCF4: ctx.gpr[31] = (0x089FBCFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 614u, 0x089FBCFCu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBCFCu) goto L_089FBCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBCFC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -7605,8 +9722,21 @@ L_089FBD38: } L_089FBD58: ctx.gpr[31] = (0x089FBD60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 619u, 0x089FBD60u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBD60u) goto L_089FBD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBD60: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -7652,8 +9782,21 @@ L_089FBDC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); ctx.gpr[31] = (0x089FBDCCu); aot_gpr_6 = (ctx.gpr[19] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 625u, 0x089FBDCCu, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBDCCu) goto L_089FBDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBDCC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); goto L_089FBDD0; @@ -7690,8 +9833,21 @@ L_089FBDFC: } L_089FBE1C: ctx.gpr[31] = (0x089FBE24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 629u, 0x089FBE24u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBE24u) goto L_089FBE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBE24: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -7756,8 +9912,21 @@ L_089FBE84: } L_089FBEA4: ctx.gpr[31] = (0x089FBEACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 636u, 0x089FBEACu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBEACu) goto L_089FBEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBEAC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -7812,8 +9981,21 @@ L_089FBEF8: } L_089FBF18: ctx.gpr[31] = (0x089FBF20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 642u, 0x089FBF20u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBF20u) goto L_089FBF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBF20: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -7846,8 +10028,21 @@ L_089FBF54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); ctx.gpr[31] = (0x089FBF60u); aot_gpr_6 = (aot_gpr_17 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 647u, 0x089FBF60u, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBF60u) goto L_089FBF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBF60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); goto L_089FBF64; @@ -7885,8 +10080,21 @@ L_089FBF94: } L_089FBFB4: ctx.gpr[31] = (0x089FBFBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 651u, 0x089FBFBCu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBFBCu) goto L_089FBFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBFBC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -7910,8 +10118,21 @@ L_089FBFDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); ctx.gpr[31] = (0x089FBFF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0125->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0125_entry, 654u, 0x089FBFF8u, 0x088B97A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 320u, 0x088B97A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FBFF8u) goto L_089FBFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FBFF8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0126.cpp b/profiles/vcs/generated/generated_unit_0126.cpp index 21061af..e646a9c 100644 --- a/profiles/vcs/generated/generated_unit_0126.cpp +++ b/profiles/vcs/generated/generated_unit_0126.cpp @@ -808,6 +808,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x089FC000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -827,8 +851,21 @@ L_089FC000: aot_gpr_6 = (0u | 286u); aot_gpr_31 = (0x089FC014u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 2u, 0x089FC014u, 0x089FB874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 557u, 0x089FB874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC014u) goto L_089FC014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC014: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -842,8 +879,8 @@ L_089FC014: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FC038: @@ -877,8 +914,21 @@ L_089FC088: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x089FC098u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 5u, 0x089FC098u, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC098u) goto L_089FC098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC098: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); goto L_089FC09C; @@ -918,8 +968,21 @@ L_089FC0D8: } L_089FC0F4: aot_gpr_31 = (0x089FC0FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 9u, 0x089FC0FCu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC0FCu) goto L_089FC0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC0FC: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FC100; @@ -934,8 +997,21 @@ L_089FC100: L_089FC108: aot_gpr_31 = (0x089FC110u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 12u, 0x089FC110u, 0x089FB8C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 563u, 0x089FB8C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC110u) goto L_089FC110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC110: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); aot_gpr_5 = (2232u << 16u); @@ -960,8 +1036,21 @@ L_089FC140: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_31 = (0x089FC14Cu); aot_gpr_6 = (ctx.gpr[17] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 15u, 0x089FC14Cu, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC14Cu) goto L_089FC14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC14C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); goto L_089FC150; @@ -1024,8 +1113,21 @@ L_089FC198: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089FC1B0u); aot_gpr_6 = (0u | 288u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 24u, 0x089FC1B0u, 0x089FB874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 557u, 0x089FB874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC1B0u) goto L_089FC1B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC1B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -1069,8 +1171,21 @@ L_089FC1E8: L_089FC208: aot_gpr_31 = (0x089FC210u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 28u, 0x089FC210u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC210u) goto L_089FC210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC210: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -1118,8 +1233,21 @@ L_089FC250: L_089FC270: aot_gpr_31 = (0x089FC278u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 33u, 0x089FC278u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC278u) goto L_089FC278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC278: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -1170,8 +1298,21 @@ L_089FC2BC: L_089FC2DC: aot_gpr_31 = (0x089FC2E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 39u, 0x089FC2E4u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC2E4u) goto L_089FC2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC2E4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -1254,8 +1395,21 @@ L_089FC36C: } L_089FC38C: aot_gpr_31 = (0x089FC394u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 47u, 0x089FC394u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC394u) goto L_089FC394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC394: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -1279,8 +1433,21 @@ L_089FC3B0: ctx.gpr[17] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x089FC3C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 51u, 0x089FC3C4u, 0x089FB8C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 563u, 0x089FB8C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC3C4u) goto L_089FC3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC3C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); { const bool branch_taken = ctx.gpr[30] != 0u; @@ -1335,8 +1502,21 @@ L_089FC40C: } L_089FC42C: aot_gpr_31 = (0x089FC434u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 57u, 0x089FC434u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC434u) goto L_089FC434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC434: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -1355,8 +1535,21 @@ L_089FC448: } L_089FC450: aot_gpr_31 = (0x089FC458u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 61u, 0x089FC458u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC458u) goto L_089FC458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC458: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); @@ -1380,8 +1573,21 @@ L_089FC474: aot_gpr_5 = (aot_gpr_5 + static_cast(2)); aot_gpr_31 = (0x089FC490u); aot_gpr_6 = (aot_gpr_6 + static_cast(-5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 64u, 0x089FC490u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC490u) goto L_089FC490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC490: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(0), aot_gpr_2); goto L_089FC494; @@ -1401,8 +1607,8 @@ L_089FC494: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FC4C4: @@ -1430,8 +1636,21 @@ L_089FC50C: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x089FC51Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 68u, 0x089FC51Cu, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC51Cu) goto L_089FC51C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC51C: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); goto L_089FC520; @@ -1467,8 +1686,21 @@ L_089FC548: } L_089FC568: aot_gpr_31 = (0x089FC570u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 72u, 0x089FC570u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC570u) goto L_089FC570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC570: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -1506,8 +1738,21 @@ L_089FC5B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(32))); aot_gpr_31 = (0x089FC5C4u); aot_gpr_6 = (ctx.gpr[19] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 77u, 0x089FC5C4u, 0x08A954A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 257u, 0x08A954A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC5C4u) goto L_089FC5C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC5C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); goto L_089FC5C8; @@ -1544,8 +1789,21 @@ L_089FC5F0: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089FC60Cu); aot_gpr_6 = (0u | 288u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 82u, 0x089FC60Cu, 0x089FB874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 557u, 0x089FB874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC60Cu) goto L_089FC60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC60C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); { const bool branch_taken = 0u == 0u; @@ -1563,8 +1821,21 @@ L_089FC618: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x089FC634u); aot_gpr_6 = (0u | 287u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 84u, 0x089FC634u, 0x089FB874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 557u, 0x089FB874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC634u) goto L_089FC634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC634: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); { const bool branch_taken = 0u == 0u; @@ -1601,8 +1872,21 @@ L_089FC658: } L_089FC674: aot_gpr_31 = (0x089FC67Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 88u, 0x089FC67Cu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC67Cu) goto L_089FC67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC67C: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FC680; @@ -1653,8 +1937,21 @@ L_089FC6AC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_31 = (0x089FC6C8u); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(0), static_cast(ctx.gpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 95u, 0x089FC6C8u, 0x089FB8C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 563u, 0x089FB8C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC6C8u) goto L_089FC6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC6C8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); { const bool branch_taken = 0u == 0u; @@ -1679,8 +1976,8 @@ L_089FC6E0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-1176))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FC6F8: @@ -1717,8 +2014,21 @@ L_089FC728: } L_089FC748: aot_gpr_31 = (0x089FC750u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 101u, 0x089FC750u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC750u) goto L_089FC750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC750: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -1765,8 +2075,21 @@ L_089FC790: } L_089FC7B0: aot_gpr_31 = (0x089FC7B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 106u, 0x089FC7B8u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC7B8u) goto L_089FC7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC7B8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -1813,8 +2136,21 @@ L_089FC7F8: } L_089FC818: aot_gpr_31 = (0x089FC820u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 111u, 0x089FC820u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC820u) goto L_089FC820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC820: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -1860,8 +2196,21 @@ L_089FC85C: } L_089FC87C: aot_gpr_31 = (0x089FC884u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 116u, 0x089FC884u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC884u) goto L_089FC884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC884: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -1908,8 +2257,21 @@ L_089FC8C4: } L_089FC8E4: aot_gpr_31 = (0x089FC8ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 121u, 0x089FC8ECu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC8ECu) goto L_089FC8EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC8EC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -1956,8 +2318,21 @@ L_089FC92C: } L_089FC94C: aot_gpr_31 = (0x089FC954u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 126u, 0x089FC954u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC954u) goto L_089FC954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC954: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -2004,8 +2379,21 @@ L_089FC994: } L_089FC9B4: aot_gpr_31 = (0x089FC9BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 131u, 0x089FC9BCu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FC9BCu) goto L_089FC9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FC9BC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -2062,8 +2450,21 @@ L_089FCA0C: } L_089FCA2C: aot_gpr_31 = (0x089FCA34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 137u, 0x089FCA34u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCA34u) goto L_089FCA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCA34: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -2112,8 +2513,21 @@ L_089FCA78: } L_089FCA94: aot_gpr_31 = (0x089FCA9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 143u, 0x089FCA9Cu, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCA9Cu) goto L_089FCA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCA9C: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCAA0; @@ -2156,8 +2570,21 @@ L_089FCADC: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089FCAF8u); aot_gpr_6 = (0u | 287u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 148u, 0x089FCAF8u, 0x089FB874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 557u, 0x089FB874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCAF8u) goto L_089FCAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCAF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); ctx.gpr[20] = (ctx.gpr[19] + static_cast(1)); @@ -2207,8 +2634,21 @@ L_089FCB40: } L_089FCB60: aot_gpr_31 = (0x089FCB68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 154u, 0x089FCB68u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCB68u) goto L_089FCB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCB68: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -2256,8 +2696,21 @@ L_089FCBA8: } L_089FCBC8: aot_gpr_31 = (0x089FCBD0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 160u, 0x089FCBD0u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCBD0u) goto L_089FCBD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCBD0: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -2275,8 +2728,21 @@ L_089FCBD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(32))); aot_gpr_31 = (0x089FCC08u); aot_gpr_5 = (aot_gpr_5 + static_cast(1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 162u, 0x089FCC08u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCC08u) goto L_089FCC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCC08: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), aot_gpr_2); { std::uint32_t aot_run_words[10]{}; @@ -2294,8 +2760,8 @@ L_089FCC08: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FCC3C: @@ -2381,8 +2847,21 @@ L_089FCCBC: L_089FCCC4: aot_gpr_31 = (0x089FCCCCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 173u, 0x089FCCCCu, 0x089FB8C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 563u, 0x089FB8C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCCCCu) goto L_089FCCCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCCCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2404,8 +2883,8 @@ L_089FCCDC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-1088))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FCCF4: @@ -2482,8 +2961,21 @@ L_089FCD38: L_089FCD58: aot_gpr_31 = (0x089FCD60u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 185u, 0x089FCD60u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCD60u) goto L_089FCD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCD60: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCD64; @@ -2532,8 +3024,21 @@ L_089FCDA4: L_089FCDAC: aot_gpr_31 = (0x089FCDB4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 191u, 0x089FCDB4u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCDB4u) goto L_089FCDB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCDB4: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCDB8; @@ -2574,8 +3079,21 @@ L_089FCDD8: L_089FCDF8: aot_gpr_31 = (0x089FCE00u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 196u, 0x089FCE00u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCE00u) goto L_089FCE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCE00: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCE04; @@ -2646,8 +3164,21 @@ L_089FCE58: L_089FCE78: aot_gpr_31 = (0x089FCE80u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 205u, 0x089FCE80u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCE80u) goto L_089FCE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCE80: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCE84; @@ -2687,8 +3218,21 @@ L_089FCEA0: L_089FCEC0: aot_gpr_31 = (0x089FCEC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 210u, 0x089FCEC8u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCEC8u) goto L_089FCEC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCEC8: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCECC; @@ -2750,8 +3294,21 @@ L_089FCF08: L_089FCF28: aot_gpr_31 = (0x089FCF30u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 218u, 0x089FCF30u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCF30u) goto L_089FCF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCF30: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCF34; @@ -2800,8 +3357,21 @@ L_089FCF74: L_089FCF7C: aot_gpr_31 = (0x089FCF84u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 224u, 0x089FCF84u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCF84u) goto L_089FCF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCF84: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCF88; @@ -2842,8 +3412,21 @@ L_089FCFA8: L_089FCFC8: aot_gpr_31 = (0x089FCFD0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 229u, 0x089FCFD0u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FCFD0u) goto L_089FCFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FCFD0: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FCFD4; @@ -2892,8 +3475,21 @@ L_089FD014: L_089FD01C: aot_gpr_31 = (0x089FD024u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 235u, 0x089FD024u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD024u) goto L_089FD024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD024: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD028; @@ -2934,8 +3530,21 @@ L_089FD048: L_089FD068: aot_gpr_31 = (0x089FD070u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 240u, 0x089FD070u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD070u) goto L_089FD070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD070: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD074; @@ -2984,8 +3593,21 @@ L_089FD0B4: L_089FD0BC: aot_gpr_31 = (0x089FD0C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 246u, 0x089FD0C4u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD0C4u) goto L_089FD0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD0C4: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD0C8; @@ -3026,8 +3648,21 @@ L_089FD0E8: L_089FD108: aot_gpr_31 = (0x089FD110u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 251u, 0x089FD110u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD110u) goto L_089FD110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD110: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD114; @@ -3076,8 +3711,21 @@ L_089FD154: L_089FD15C: aot_gpr_31 = (0x089FD164u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 257u, 0x089FD164u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD164u) goto L_089FD164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD164: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD168; @@ -3132,8 +3780,21 @@ L_089FD1A0: L_089FD1C0: aot_gpr_31 = (0x089FD1C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 264u, 0x089FD1C8u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD1C8u) goto L_089FD1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD1C8: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD1CC; @@ -3174,8 +3835,21 @@ L_089FD1EC: L_089FD20C: aot_gpr_31 = (0x089FD214u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 269u, 0x089FD214u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD214u) goto L_089FD214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD214: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD218; @@ -3216,8 +3890,21 @@ L_089FD238: L_089FD258: aot_gpr_31 = (0x089FD260u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 274u, 0x089FD260u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD260u) goto L_089FD260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD260: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD264; @@ -3265,8 +3952,21 @@ L_089FD2A4: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x089FD2B4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 280u, 0x089FD2B4u, 0x089FBB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 596u, 0x089FBB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD2B4u) goto L_089FD2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD2B4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 286u); @@ -3303,8 +4003,21 @@ L_089FD2D0: L_089FD2F0: aot_gpr_31 = (0x089FD2F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 284u, 0x089FD2F8u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD2F8u) goto L_089FD2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD2F8: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD2FC; @@ -3357,8 +4070,21 @@ L_089FD354: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x089FD364u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 290u, 0x089FD364u, 0x089FBB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 596u, 0x089FBB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD364u) goto L_089FD364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD364: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 286u); @@ -3378,16 +4104,42 @@ L_089FD36C: L_089FD378: aot_gpr_31 = (0x089FD380u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 293u, 0x089FD380u, 0x089FBA50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 582u, 0x089FBA50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD380u) goto L_089FD380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD380: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x089FD394u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 294u, 0x089FD394u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD394u) goto L_089FD394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD394: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(6))); @@ -3436,15 +4188,41 @@ L_089FD3E0: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089FD3F8u); ctx.gpr[18] = (aot_gpr_7 + static_cast(-1204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 299u, 0x089FD3F8u, 0x088B98ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 337u, 0x088B98ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD3F8u) goto L_089FD3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD3F8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089FD408u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 300u, 0x089FD408u, 0x089FB77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 541u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 541u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 541u, 0x089FB77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD408u) goto L_089FD408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD408: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -3473,8 +4251,21 @@ L_089FD41C: L_089FD43C: aot_gpr_31 = (0x089FD444u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 303u, 0x089FD444u, 0x08A952D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 231u, 0x08A952D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD444u) goto L_089FD444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD444: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_089FD448; @@ -3497,8 +4288,8 @@ L_089FD454: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD46C: @@ -3554,120 +4345,120 @@ L_089FD46C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD494: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD49C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4A4: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4BC: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4C4: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4CC: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4D4: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4DC: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4F4: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD4FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD504: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD50C: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD514: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD51C: @@ -3681,21 +4472,21 @@ L_089FD51C: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD544: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD54C: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD554: @@ -3707,8 +4498,21 @@ L_089FD554: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x089FD574u); aot_gpr_5 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 328u, 0x089FD574u, 0x08B03834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 959u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 959u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 959u, 0x08B03834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD574u) goto L_089FD574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD574: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(27856)); @@ -3782,8 +4586,8 @@ L_089FD5BC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD660: @@ -3810,8 +4614,21 @@ L_089FD690: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x089FD69Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 335u, 0x089FD69Cu, 0x08AFF300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 736u, 0x08AFF300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD69Cu) goto L_089FD69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD69C: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3823,8 +4640,21 @@ L_089FD69C: L_089FD6A8: aot_gpr_31 = (0x089FD6B0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 337u, 0x089FD6B0u, 0x08AFF2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 734u, 0x08AFF2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD6B0u) goto L_089FD6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD6B0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -3834,8 +4664,8 @@ L_089FD6B0: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD6C4: @@ -3880,8 +4710,21 @@ L_089FD700: L_089FD710: aot_gpr_31 = (0x089FD718u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 343u, 0x089FD718u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD718u) goto L_089FD718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD718: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); goto L_089FD71C; @@ -3897,21 +4740,60 @@ L_089FD71C: L_089FD72C: aot_gpr_31 = (0x089FD734u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 346u, 0x089FD734u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD734u) goto L_089FD734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD734: aot_gpr_31 = (0x089FD73Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 347u, 0x089FD73Cu, 0x089730ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 658u, 0x089730ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD73Cu) goto L_089FD73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD73C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(80), 0u); goto L_089FD740; L_089FD740: aot_gpr_31 = (0x089FD748u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 349u, 0x089FD748u, 0x08ACFFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1147u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1147u, 0x08ACFFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD748u) goto L_089FD748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD748: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(0), aot_run_words); @@ -3921,22 +4803,35 @@ L_089FD748: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD75C: ctx.gpr[29] = (ctx.gpr[29] + static_cast(-16)); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x089FD76Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 351u, 0x089FD76Cu, 0x08AFF4B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 769u, 0x08AFF4B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD76Cu) goto L_089FD76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD76C: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD778: @@ -3994,15 +4889,28 @@ L_089FD7C0: L_089FD7CC: aot_gpr_31 = (0x089FD7D4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 360u, 0x089FD7D4u, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD7D4u) goto L_089FD7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD7D4: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD7E4: @@ -4098,8 +5006,8 @@ L_089FD87C: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD890: @@ -4107,8 +5015,8 @@ L_089FD890: aot_gpr_5 = (aot_gpr_5 | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(76), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD8A0: @@ -4171,19 +5079,58 @@ L_089FD900: L_089FD91C: aot_gpr_31 = (0x089FD924u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 383u, 0x089FD924u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD924u) goto L_089FD924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD924: aot_gpr_5 = (ctx.gpr[28] + static_cast(-9300)); aot_gpr_31 = (0x089FD930u); aot_gpr_4 = (0u | 280u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 384u, 0x089FD930u, 0x08AD3280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 548u, 0x08AD3280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD930u) goto L_089FD930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD930: aot_gpr_31 = (0x089FD938u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 385u, 0x089FD938u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD938u) goto L_089FD938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD938: ctx.gpr[20] = (0u | 0u); aot_fpr_20 = std::bit_cast(0u); @@ -4194,8 +5141,21 @@ L_089FD948: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x089FD954u); aot_gpr_4 = (0u | 976u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 387u, 0x089FD954u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD954u) goto L_089FD954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD954: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4219,8 +5179,21 @@ L_089FD970: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x089FD984u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 391u, 0x089FD984u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD984u) goto L_089FD984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD984: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(72))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(613)))))); @@ -4233,8 +5206,21 @@ L_089FD984: aot_mem.aot_direct_store16(ctx.gpr[19] + static_cast(948), static_cast(0u)); aot_gpr_31 = (0x089FD9B0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 392u, 0x089FD9B0u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FD9B0u) goto L_089FD9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FD9B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9304))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -4261,15 +5247,15 @@ L_089FD9CC: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD9F0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-9304), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FD9F8: @@ -4486,8 +5472,21 @@ L_089FDAFC: aot_gpr_6 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x089FDB5Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 411u, 0x089FDB5Cu, 0x08AB3BE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 958u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 958u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 958u, 0x08AB3BE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FDB5Cu) goto L_089FDB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FDB5C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[16] | 0u); @@ -4513,8 +5512,8 @@ L_089FDB74: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(72))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FDB84: @@ -4539,14 +5538,27 @@ L_089FDB94: L_089FDBB0: aot_gpr_31 = (0x089FDBB8u); aot_gpr_4 = (0u | 280u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 418u, 0x089FDBB8u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FDBB8u) goto L_089FDBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FDBB8: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FDBC4: @@ -4699,8 +5711,21 @@ L_089FDCA8: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089FDCFCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 429u, 0x089FDCFCu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FDCFCu) goto L_089FDCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FDCFC: ctx.gpr[16] = (ctx.gpr[29] + static_cast(144)); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4950,8 +5975,21 @@ L_089FDEF0: ctx.gpr[11] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089FDF34u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 448u, 0x089FDF34u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FDF34u) goto L_089FDF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FDF34: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 40 ? 1u : 0u); @@ -5103,8 +6141,21 @@ L_089FDFC4: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089FE030u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 459u, 0x089FE030u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE030u) goto L_089FE030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE030: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5218,8 +6269,21 @@ L_089FE084: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089FE0F0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 466u, 0x089FE0F0u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE0F0u) goto L_089FE0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE0F0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(752))); aot_gpr_4 = (0u | 60u); @@ -5251,28 +6315,80 @@ L_089FE11C: aot_gpr_6 = (0u | 255u); aot_gpr_31 = (0x089FE138u); aot_gpr_7 = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 470u, 0x089FE138u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE138u) goto L_089FE138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE138: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089FE148u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 471u, 0x089FE148u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE148u) goto L_089FE148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE148: aot_gpr_31 = (0x089FE150u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 472u, 0x089FE150u, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE150u) goto L_089FE150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE150: aot_gpr_6 = (16256u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089FE164u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 473u, 0x089FE164u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE164u) goto L_089FE164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE164: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(160)); @@ -5372,8 +6488,21 @@ L_089FE1A8: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089FE1FCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 478u, 0x089FE1FCu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE1FCu) goto L_089FE1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE1FC: ctx.gpr[16] = (ctx.gpr[29] + static_cast(336)); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5623,8 +6752,21 @@ L_089FE3F0: ctx.gpr[11] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x089FE434u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 497u, 0x089FE434u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE434u) goto L_089FE434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE434: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 40 ? 1u : 0u); @@ -5779,8 +6921,21 @@ L_089FE4D0: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089FE53Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 508u, 0x089FE53Cu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE53Cu) goto L_089FE53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE53C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5894,8 +7049,21 @@ L_089FE590: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x089FE5FCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 515u, 0x089FE5FCu, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE5FCu) goto L_089FE5FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE5FC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(752))); aot_gpr_4 = (0u | 30u); @@ -5927,28 +7095,80 @@ L_089FE628: aot_gpr_6 = (0u | 200u); aot_gpr_31 = (0x089FE644u); aot_gpr_7 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 519u, 0x089FE644u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE644u) goto L_089FE644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE644: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x089FE654u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 520u, 0x089FE654u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE654u) goto L_089FE654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE654: aot_gpr_31 = (0x089FE65Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 521u, 0x089FE65Cu, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE65Cu) goto L_089FE65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE65C: aot_gpr_6 = (16256u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x089FE670u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 522u, 0x089FE670u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FE670u) goto L_089FE670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FE670: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(160)); @@ -6336,8 +7556,21 @@ L_089FE9EC: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x089FEA04u); aot_gpr_6 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 560u, 0x089FEA04u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FEA04u) goto L_089FEA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FEA04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9304))); goto L_089FEA08; @@ -7028,8 +8261,21 @@ L_089FEF74: { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } aot_gpr_31 = (0x089FF050u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 596u, 0x089FF050u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF050u) goto L_089FF050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF050: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(944)))))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -7056,8 +8302,21 @@ L_089FF050: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089FF08Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 597u, 0x089FF08Cu, 0x08A69104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 161u, 0x08A69104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF08Cu) goto L_089FF08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF08C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[19]); @@ -7767,8 +9026,21 @@ L_089FF4B4: { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } aot_gpr_31 = (0x089FF698u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 643u, 0x089FF698u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF698u) goto L_089FF698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF698: { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(952), std::bit_cast(aot_fpr_12)); @@ -7790,8 +9062,21 @@ L_089FF698: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x089FF6C0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 644u, 0x089FF6C0u, 0x08A69104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 161u, 0x08A69104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF6C0u) goto L_089FF6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF6C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[23]); @@ -7840,13 +9125,39 @@ L_089FF72C: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089FF74Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 648u, 0x089FF74Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF74Cu) goto L_089FF74C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF74C: aot_gpr_31 = (0x089FF754u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 649u, 0x089FF754u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF754u) goto L_089FF754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF754: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -7875,8 +9186,21 @@ L_089FF778: L_089FF784: aot_gpr_31 = (0x089FF78Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 653u, 0x089FF78Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF78Cu) goto L_089FF78C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF78C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7922,8 +9246,21 @@ L_089FF7C0: L_089FF7D0: aot_gpr_31 = (0x089FF7D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 659u, 0x089FF7D8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF7D8u) goto L_089FF7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF7D8: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(64), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(80))); @@ -7946,13 +9283,39 @@ L_089FF7F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(80))); aot_gpr_31 = (0x089FF804u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 662u, 0x089FF804u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF804u) goto L_089FF804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF804: aot_gpr_31 = (0x089FF80Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 663u, 0x089FF80Cu, 0x089730ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 658u, 0x089730ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF80Cu) goto L_089FF80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF80C: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(80), 0u); goto L_089FF810; @@ -7970,8 +9333,21 @@ L_089FF81C: aot_mem.aot_direct_store16(ctx.gpr[30] + static_cast(86), static_cast(aot_gpr_4)); aot_gpr_31 = (0x089FF830u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 666u, 0x089FF830u, 0x08AFF4B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 769u, 0x08AFF4B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF830u) goto L_089FF830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF830: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7984,8 +9360,21 @@ L_089FF838: aot_gpr_6 = (ctx.gpr[28] + static_cast(-9300)); aot_gpr_31 = (0x089FF848u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 668u, 0x089FF848u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF848u) goto L_089FF848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF848: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8087,8 +9476,21 @@ L_089FF8E8: L_089FF8F8: aot_gpr_31 = (0x089FF900u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 680u, 0x089FF900u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF900u) goto L_089FF900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF900: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); goto L_089FF904; @@ -8100,8 +9502,21 @@ L_089FF904: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x089FF920u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 682u, 0x089FF920u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF920u) goto L_089FF920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF920: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(776), aot_run_words); @@ -8124,8 +9539,8 @@ L_089FF920: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(848)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FF968: @@ -8143,8 +9558,21 @@ L_089FF968: L_089FF9B0: aot_gpr_31 = (0x089FF9B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 685u, 0x089FF9B8u, 0x08AFEF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 662u, 0x08AFEF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FF9B8u) goto L_089FF9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FF9B8: aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8390,8 +9818,21 @@ L_089FFAF0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x089FFB30u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 694u, 0x089FFB30u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FFB30u) goto L_089FFB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FFB30: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); aot_gpr_4 = (16153u << 16u); @@ -8448,8 +9889,21 @@ L_089FFBA4: ctx.gpr[11] = (0u | 2u); aot_gpr_31 = (0x089FFBE8u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 697u, 0x089FFBE8u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FFBE8u) goto L_089FFBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FFBE8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[21]); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8468,8 +9922,21 @@ L_089FFBE8: ctx.gpr[11] = (0u | 2u); aot_gpr_31 = (0x089FFC2Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 698u, 0x089FFC2Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FFC2Cu) goto L_089FFC2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FFC2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8495,8 +9962,21 @@ L_089FFC34: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089FFC78u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 700u, 0x089FFC78u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FFC78u) goto L_089FFC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FFC78: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), ctx.gpr[21]); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8515,8 +9995,21 @@ L_089FFC78: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x089FFCBCu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 701u, 0x089FFCBCu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FFCBCu) goto L_089FFCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FFCBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 & 512u); @@ -8599,8 +10092,21 @@ L_089FFD18: ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x089FFD70u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0126->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0126_entry, 706u, 0x089FFD70u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x089FFD70u) goto L_089FFD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_089FFD70: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(196), aot_run_words); @@ -8621,8 +10127,8 @@ L_089FFD70: } jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FFDB0: @@ -8833,8 +10339,8 @@ L_089FFF78: } L_089FFF8C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_089FFF94: diff --git a/profiles/vcs/generated/generated_unit_0127.cpp b/profiles/vcs/generated/generated_unit_0127.cpp index 00f1b6c..7c90016 100644 --- a/profiles/vcs/generated/generated_unit_0127.cpp +++ b/profiles/vcs/generated/generated_unit_0127.cpp @@ -1132,6 +1132,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A00000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1151,8 +1175,8 @@ L_08A00000: goto L_08A00008; L_08A00008: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00010: @@ -1179,8 +1203,8 @@ L_08A00038: goto L_08A0003C; L_08A0003C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00044: @@ -1205,8 +1229,8 @@ L_08A00064: } L_08A0006C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00074: @@ -1249,8 +1273,8 @@ L_08A000AC: } L_08A000BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A000C4: @@ -1284,8 +1308,8 @@ L_08A000F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00104: @@ -1316,8 +1340,21 @@ L_08A00148: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A0015Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 24u, 0x08A0015Cu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0015Cu) goto L_08A0015C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0015C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1354,8 +1391,8 @@ L_08A00184: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0019C: @@ -1571,8 +1608,21 @@ L_08A0024C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A002E8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 33u, 0x08A002E8u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A002E8u) goto L_08A002E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A002E8: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1900,8 +1950,21 @@ L_08A00504: L_08A00510: aot_gpr_31 = (0x08A00518u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 65u, 0x08A00518u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00518u) goto L_08A00518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00518: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(336), aot_run_words); @@ -1918,8 +1981,8 @@ L_08A00518: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00548: @@ -1936,14 +1999,40 @@ L_08A00548: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A0057Cu); aot_gpr_5 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 67u, 0x08A0057Cu, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0057Cu) goto L_08A0057C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0057C: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x08A00588u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 68u, 0x08A00588u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00588u) goto L_08A00588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00588: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1954,8 +2043,8 @@ L_08A00588: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A005A0: @@ -2055,8 +2144,8 @@ L_08A00628: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00640: @@ -2076,8 +2165,8 @@ L_08A00658: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-992))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00670: @@ -2287,8 +2376,8 @@ L_08A007B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A007C0: @@ -2304,8 +2393,8 @@ L_08A007D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A007E4: @@ -2328,8 +2417,21 @@ L_08A00808: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00818u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 130u, 0x08A00818u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00818u) goto L_08A00818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00818: aot_gpr_31 = (0x08A00820u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2338,15 +2440,41 @@ L_08A00818: L_08A00820: aot_gpr_31 = (0x08A00828u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 132u, 0x08A00828u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00828u) goto L_08A00828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00828: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_16 + static_cast(4)); aot_gpr_31 = (0x08A00838u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 133u, 0x08A00838u, 0x08AE23A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 612u, 0x08AE23A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00838u) goto L_08A00838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00838: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(48))); @@ -2378,8 +2506,21 @@ L_08A00864: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x08A00874u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 137u, 0x08A00874u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00874u) goto L_08A00874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00874: ctx.gpr[2] = (0u | 1u); goto L_08A00878; @@ -2392,8 +2533,8 @@ L_08A00878: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0088C: @@ -2417,8 +2558,21 @@ L_08A008B4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A008C4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 141u, 0x08A008C4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A008C4u) goto L_08A008C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A008C4: aot_gpr_31 = (0x08A008CCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2427,14 +2581,40 @@ L_08A008C4: L_08A008CC: aot_gpr_31 = (0x08A008D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 143u, 0x08A008D4u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A008D4u) goto L_08A008D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A008D4: aot_gpr_5 = (aot_gpr_16 + static_cast(4)); aot_gpr_31 = (0x08A008E0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 144u, 0x08A008E0u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A008E0u) goto L_08A008E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A008E0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2469,8 +2649,21 @@ L_08A00904: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(0)))))); aot_gpr_31 = (0x08A00914u); ctx.gpr[18] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 149u, 0x08A00914u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00914u) goto L_08A00914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00914: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2516,8 +2709,21 @@ L_08A00948: aot_gpr_5 = (0u | 198u); aot_gpr_31 = (0x08A00958u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 155u, 0x08A00958u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00958u) goto L_08A00958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00958: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(88)); @@ -2542,8 +2748,8 @@ L_08A00974: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0098C: @@ -2567,8 +2773,21 @@ L_08A009B4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A009C4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 160u, 0x08A009C4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A009C4u) goto L_08A009C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A009C4: aot_gpr_31 = (0x08A009CCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2577,14 +2796,40 @@ L_08A009C4: L_08A009CC: aot_gpr_31 = (0x08A009D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 162u, 0x08A009D4u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A009D4u) goto L_08A009D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A009D4: aot_gpr_5 = (aot_gpr_16 + static_cast(4)); aot_gpr_31 = (0x08A009E0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 163u, 0x08A009E0u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A009E0u) goto L_08A009E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A009E0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2619,8 +2864,21 @@ L_08A00A04: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(0)))))); aot_gpr_31 = (0x08A00A14u); ctx.gpr[18] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 168u, 0x08A00A14u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00A14u) goto L_08A00A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00A14: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2666,8 +2924,21 @@ L_08A00A48: aot_gpr_5 = (0u | 198u); aot_gpr_31 = (0x08A00A58u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 174u, 0x08A00A58u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00A58u) goto L_08A00A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00A58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(96)); @@ -2692,8 +2963,8 @@ L_08A00A74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00A8C: @@ -2716,8 +2987,21 @@ L_08A00AB0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00AC0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 179u, 0x08A00AC0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00AC0u) goto L_08A00AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00AC0: aot_gpr_31 = (0x08A00AC8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2727,8 +3011,21 @@ L_08A00AC8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08A00AD4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 181u, 0x08A00AD4u, 0x0882F6E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 832u, 0x0882F6E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00AD4u) goto L_08A00AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00AD4: ctx.gpr[2] = (0u | 1u); { std::uint32_t aot_run_words[3]{}; @@ -2739,8 +3036,8 @@ L_08A00AD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00AEC: @@ -2761,8 +3058,21 @@ L_08A00B08: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00B18u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 184u, 0x08A00B18u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00B18u) goto L_08A00B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00B18: aot_gpr_31 = (0x08A00B20u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2776,8 +3086,8 @@ L_08A00B20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00B3C: @@ -2790,8 +3100,21 @@ L_08A00B3C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08A00B64u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 187u, 0x08A00B64u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00B64u) goto L_08A00B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00B64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); aot_gpr_17 = (2237u << 16u); @@ -2808,8 +3131,21 @@ L_08A00B78: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00B88u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 189u, 0x08A00B88u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00B88u) goto L_08A00B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00B88: aot_gpr_31 = (0x08A00B90u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2824,8 +3160,21 @@ L_08A00B90: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A00BB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 191u, 0x08A00BB0u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00BB0u) goto L_08A00BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00BB0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2835,8 +3184,21 @@ L_08A00BB0: } L_08A00BB8: aot_gpr_31 = (0x08A00BC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 193u, 0x08A00BC0u, 0x08B3AAF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 734u, 0x08B3AAF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00BC0u) goto L_08A00BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00BC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2873,8 +3235,21 @@ L_08A00BE4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00BF0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 198u, 0x08A00BF0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00BF0u) goto L_08A00BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00BF0: aot_gpr_31 = (0x08A00BF8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2891,8 +3266,21 @@ L_08A00BFC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A00C18u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 201u, 0x08A00C18u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00C18u) goto L_08A00C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00C18: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2913,8 +3301,21 @@ L_08A00C2C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00C38u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 204u, 0x08A00C38u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00C38u) goto L_08A00C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00C38: aot_gpr_31 = (0x08A00C40u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2944,8 +3345,21 @@ L_08A00C5C: L_08A00C64: aot_gpr_31 = (0x08A00C6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 209u, 0x08A00C6Cu, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00C6Cu) goto L_08A00C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00C6C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2984,8 +3398,21 @@ L_08A00C98: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00CA4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 215u, 0x08A00CA4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00CA4u) goto L_08A00CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00CA4: aot_gpr_31 = (0x08A00CACu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -2994,8 +3421,21 @@ L_08A00CA4: L_08A00CAC: aot_gpr_31 = (0x08A00CB4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 217u, 0x08A00CB4u, 0x0882E98Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 606u, 0x0882E98Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00CB4u) goto L_08A00CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00CB4: aot_gpr_31 = (0x08A00CBCu); aot_gpr_4 = (0u | 0u); @@ -3044,8 +3484,8 @@ L_08A00D0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00D24: @@ -3056,8 +3496,21 @@ L_08A00D24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A00D40u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 224u, 0x08A00D40u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00D40u) goto L_08A00D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00D40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); aot_gpr_16 = (2237u << 16u); @@ -3073,8 +3526,21 @@ L_08A00D50: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00D60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 226u, 0x08A00D60u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00D60u) goto L_08A00D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00D60: aot_gpr_31 = (0x08A00D68u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3083,8 +3549,21 @@ L_08A00D60: L_08A00D68: aot_gpr_31 = (0x08A00D70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 228u, 0x08A00D70u, 0x0882E980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 605u, 0x0882E980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00D70u) goto L_08A00D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00D70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3098,8 +3577,21 @@ L_08A00D7C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00D88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 230u, 0x08A00D88u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00D88u) goto L_08A00D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00D88: aot_gpr_31 = (0x08A00D90u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3108,8 +3600,21 @@ L_08A00D88: L_08A00D90: aot_gpr_31 = (0x08A00D98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 232u, 0x08A00D98u, 0x0882E9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 609u, 0x0882E9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00D98u) goto L_08A00D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00D98: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); @@ -3131,8 +3636,21 @@ L_08A00DA8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00DB8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 235u, 0x08A00DB8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00DB8u) goto L_08A00DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00DB8: aot_gpr_31 = (0x08A00DC0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3144,8 +3662,21 @@ L_08A00DC0: L_08A00DC4: aot_gpr_31 = (0x08A00DCCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 238u, 0x08A00DCCu, 0x0882EE08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 686u, 0x0882EE08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00DCCu) goto L_08A00DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00DCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3166,8 +3697,21 @@ L_08A00DDC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00DECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 241u, 0x08A00DECu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00DECu) goto L_08A00DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00DEC: aot_gpr_31 = (0x08A00DF4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3179,8 +3723,21 @@ L_08A00DF4: L_08A00DF8: aot_gpr_31 = (0x08A00E00u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 244u, 0x08A00E00u, 0x0882EE08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 686u, 0x0882EE08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00E00u) goto L_08A00E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00E00: aot_gpr_31 = (0x08A00E08u); aot_gpr_4 = (0u | 0u); @@ -3222,8 +3779,8 @@ L_08A00E50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00E68: @@ -3247,8 +3804,21 @@ L_08A00E90: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00EA0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 251u, 0x08A00EA0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00EA0u) goto L_08A00EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00EA0: aot_gpr_31 = (0x08A00EA8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3257,14 +3827,40 @@ L_08A00EA0: L_08A00EA8: aot_gpr_31 = (0x08A00EB0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 253u, 0x08A00EB0u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00EB0u) goto L_08A00EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00EB0: aot_gpr_5 = (aot_gpr_16 + static_cast(4)); aot_gpr_31 = (0x08A00EBCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 254u, 0x08A00EBCu, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00EBCu) goto L_08A00EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00EBC: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3299,8 +3895,21 @@ L_08A00EE0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(0)))))); aot_gpr_31 = (0x08A00EF0u); ctx.gpr[18] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 259u, 0x08A00EF0u, 0x0884E958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 482u, 0x0884E958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00EF0u) goto L_08A00EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00EF0: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -3365,8 +3974,8 @@ L_08A00F40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00F58: @@ -3387,8 +3996,21 @@ L_08A00F74: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00F84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 269u, 0x08A00F84u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00F84u) goto L_08A00F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00F84: aot_gpr_31 = (0x08A00F8Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3397,8 +4019,21 @@ L_08A00F84: L_08A00F8C: aot_gpr_31 = (0x08A00F94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 271u, 0x08A00F94u, 0x0882EA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 620u, 0x0882EA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00F94u) goto L_08A00F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00F94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3413,8 +4048,21 @@ L_08A00FA0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A00FB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 273u, 0x08A00FB0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00FB0u) goto L_08A00FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00FB0: aot_gpr_31 = (0x08A00FB8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3426,20 +4074,46 @@ L_08A00FB8: L_08A00FBC: aot_gpr_31 = (0x08A00FC4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 276u, 0x08A00FC4u, 0x0882DFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 424u, 0x0882DFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00FC4u) goto L_08A00FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00FC4: aot_gpr_31 = (0x08A00FCCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 277u, 0x08A00FCCu, 0x08AB5CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 493u, 0x08AB5CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A00FCCu) goto L_08A00FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A00FCC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A00FE0: @@ -3463,12 +4137,38 @@ L_08A01004: aot_gpr_16 = (0u | 1u); aot_gpr_31 = (0x08A01010u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 282u, 0x08A01010u, 0x089C6DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 639u, 0x089C6DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01010u) goto L_08A01010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01010: aot_gpr_31 = (0x08A01018u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 283u, 0x08A01018u, 0x08AC3C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 1005u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 1005u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 1005u, 0x08AC3C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01018u) goto L_08A01018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01018: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19683), static_cast(aot_gpr_16)); ctx.gpr[2] = (0u | 0u); @@ -3476,8 +4176,8 @@ L_08A01018: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01030: @@ -3498,8 +4198,21 @@ L_08A0104C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A0105Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 286u, 0x08A0105Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0105Cu) goto L_08A0105C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0105C: aot_gpr_31 = (0x08A01064u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3508,8 +4221,21 @@ L_08A0105C: L_08A01064: aot_gpr_31 = (0x08A0106Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 288u, 0x08A0106Cu, 0x0882EA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 620u, 0x0882EA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0106Cu) goto L_08A0106C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0106C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3524,8 +4250,21 @@ L_08A01078: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A01088u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 290u, 0x08A01088u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01088u) goto L_08A01088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01088: aot_gpr_31 = (0x08A01090u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3537,20 +4276,46 @@ L_08A01090: L_08A01094: aot_gpr_31 = (0x08A0109Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 293u, 0x08A0109Cu, 0x0882DFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 424u, 0x0882DFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0109Cu) goto L_08A0109C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0109C: aot_gpr_31 = (0x08A010A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 294u, 0x08A010A4u, 0x08AB5D1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 495u, 0x08AB5D1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A010A4u) goto L_08A010A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A010A4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A010B8: @@ -3571,8 +4336,21 @@ L_08A010D4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A010E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 297u, 0x08A010E4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A010E4u) goto L_08A010E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A010E4: aot_gpr_31 = (0x08A010ECu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3581,21 +4359,47 @@ L_08A010E4: L_08A010EC: aot_gpr_31 = (0x08A010F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 299u, 0x08A010F4u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A010F4u) goto L_08A010F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A010F4: aot_gpr_31 = (0x08A010FCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 300u, 0x08A010FCu, 0x08AE2438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 623u, 0x08AE2438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A010FCu) goto L_08A010FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A010FC: ctx.gpr[2] = (0u | 1u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01110: @@ -3609,8 +4413,8 @@ L_08A01120: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01130: @@ -3633,8 +4437,21 @@ L_08A01154: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A01164u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 305u, 0x08A01164u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01164u) goto L_08A01164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01164: aot_gpr_31 = (0x08A0116Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3643,14 +4460,40 @@ L_08A01164: L_08A0116C: aot_gpr_31 = (0x08A01174u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 307u, 0x08A01174u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01174u) goto L_08A01174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01174: aot_gpr_5 = (aot_gpr_16 + static_cast(4)); aot_gpr_31 = (0x08A01180u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 308u, 0x08A01180u, 0x08AE22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 603u, 0x08AE22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01180u) goto L_08A01180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01180: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 != 0u; @@ -3687,8 +4530,8 @@ L_08A011AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A011C0: @@ -3709,8 +4552,21 @@ L_08A011DC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A011ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 315u, 0x08A011ECu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A011ECu) goto L_08A011EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A011EC: aot_gpr_31 = (0x08A011F4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3723,8 +4579,8 @@ L_08A011F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0120C: @@ -3732,8 +4588,21 @@ L_08A0120C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A01220u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 318u, 0x08A01220u, 0x08AB50BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 212u, 0x08AB50BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01220u) goto L_08A01220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01220: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); aot_gpr_16 = (2237u << 16u); @@ -3749,8 +4618,21 @@ L_08A01230: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A01240u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 320u, 0x08A01240u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01240u) goto L_08A01240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01240: aot_gpr_31 = (0x08A01248u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3759,8 +4641,21 @@ L_08A01240: L_08A01248: aot_gpr_31 = (0x08A01250u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 322u, 0x08A01250u, 0x0882EA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 620u, 0x0882EA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01250u) goto L_08A01250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01250: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3775,8 +4670,21 @@ L_08A0125C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A0126Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 324u, 0x08A0126Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0126Cu) goto L_08A0126C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0126C: aot_gpr_31 = (0x08A01274u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3788,20 +4696,46 @@ L_08A01274: L_08A01278: aot_gpr_31 = (0x08A01280u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 327u, 0x08A01280u, 0x0882DFD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 424u, 0x0882DFD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01280u) goto L_08A01280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01280: aot_gpr_31 = (0x08A01288u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 328u, 0x08A01288u, 0x08AB6E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 807u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 807u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 807u, 0x08AB6E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01288u) goto L_08A01288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01288: ctx.gpr[2] = (0u | 1u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0129C: @@ -3822,8 +4756,21 @@ L_08A012B8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A012C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 331u, 0x08A012C8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A012C8u) goto L_08A012C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A012C8: aot_gpr_31 = (0x08A012D0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3836,16 +4783,16 @@ L_08A012D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A012E8: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4211), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A012F4: @@ -3868,8 +4815,21 @@ L_08A01318: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A01328u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 336u, 0x08A01328u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01328u) goto L_08A01328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01328: aot_gpr_31 = (0x08A01330u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-9240)); @@ -3885,8 +4845,21 @@ L_08A0133C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A0134Cu); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 339u, 0x08A0134Cu, 0x0882EE08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 686u, 0x0882EE08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0134Cu) goto L_08A0134C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0134C: ctx.gpr[2] = (0u | 1u); { std::uint32_t aot_run_words[3]{}; @@ -3897,8 +4870,8 @@ L_08A0134C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01364: @@ -3920,21 +4893,60 @@ L_08A01384: L_08A0138C: aot_gpr_31 = (0x08A01394u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 343u, 0x08A01394u, 0x089C6D00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 628u, 0x089C6D00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01394u) goto L_08A01394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01394: aot_gpr_16 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A013A4u); aot_gpr_5 = (0u | 112u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 344u, 0x08A013A4u, 0x08A060BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 520u, 0x08A060BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A013A4u) goto L_08A013A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A013A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A013B0u); aot_gpr_5 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 345u, 0x08A013B0u, 0x08A0605Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 512u, 0x08A0605Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A013B0u) goto L_08A013B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A013B0: ctx.gpr[18] = (0u | 0u); aot_gpr_16 = (0u | 2u); @@ -3948,8 +4960,21 @@ L_08A013C0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A013CCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 348u, 0x08A013CCu, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A013CCu) goto L_08A013CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A013CC: aot_gpr_31 = (0x08A013D4u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -3986,15 +5011,15 @@ L_08A013F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01418: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-16128), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01420: @@ -4003,8 +5028,8 @@ L_08A01420: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(416), aot_gpr_4); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01434: @@ -4032,8 +5057,8 @@ L_08A01460: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01474: @@ -4041,8 +5066,8 @@ L_08A01474: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), ctx.gpr[6]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(416), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01484: @@ -4090,8 +5115,21 @@ L_08A014D4: goto L_08A014D8; L_08A014D8: aot_gpr_31 = (0x08A014E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 366u, 0x08A014E0u, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A014E0u) goto L_08A014E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A014E0: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4127,8 +5165,8 @@ L_08A01514: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01528: @@ -4146,8 +5184,21 @@ L_08A01540: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A0154Cu); aot_gpr_4 = (0u | 84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 373u, 0x08A0154Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0154Cu) goto L_08A0154C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0154C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4170,8 +5221,8 @@ L_08A015B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A015C8: @@ -4187,8 +5238,8 @@ L_08A015DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A015F0: @@ -4217,8 +5268,8 @@ L_08A01614: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01620: @@ -4234,8 +5285,8 @@ L_08A01634: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01648: @@ -4304,8 +5355,8 @@ L_08A01660: } L_08A01704: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0170C: @@ -4539,15 +5590,15 @@ L_08A01820: L_08A01828: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01830: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01838: @@ -4600,8 +5651,8 @@ L_08A018E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01904: @@ -4716,8 +5767,8 @@ L_08A019A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A019BC: @@ -4726,8 +5777,8 @@ L_08A019BC: ctx.gpr[2] = (aot_gpr_4 ^ aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A019D0: @@ -4777,8 +5828,8 @@ L_08A01A20: goto L_08A01A24; L_08A01A24: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01A2C: @@ -4798,8 +5849,8 @@ L_08A01A2C: aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 2u)); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01A6C: @@ -4811,8 +5862,8 @@ L_08A01A6C: ctx.gpr[2] = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(ctx.gpr[2]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01A8C: @@ -4936,8 +5987,8 @@ L_08A01B38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01B4C: @@ -5005,8 +6056,21 @@ L_08A01B9C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08A01BACu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 439u, 0x08A01BACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01BACu) goto L_08A01BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01BAC: { const bool branch_taken = aot_gpr_17 == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), std::bit_cast(aot_fpr_0)); @@ -5034,8 +6098,8 @@ L_08A01BC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01BE0: @@ -5061,8 +6125,8 @@ L_08A01BF8: goto L_08A01C00; L_08A01C00: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01C08: @@ -5087,8 +6151,8 @@ L_08A01C24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01C44: @@ -5113,8 +6177,8 @@ L_08A01C60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01C80: @@ -5165,8 +6229,21 @@ L_08A01CE8: ctx.gpr[6] = (aot_gpr_5 - ctx.gpr[7]); aot_gpr_31 = (0x08A01CF8u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 456u, 0x08A01CF8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01CF8u) goto L_08A01CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01CF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); ctx.gpr[2] = (0u | 0u); @@ -5270,8 +6347,21 @@ L_08A01DB4: aot_gpr_4 = (ctx.gpr[20] << 2u); aot_gpr_31 = (0x08A01DC0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 468u, 0x08A01DC0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01DC0u) goto L_08A01DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01DC0: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -5310,8 +6400,21 @@ L_08A01DEC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A01DFCu); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 474u, 0x08A01DFCu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01DFCu) goto L_08A01DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01DFC: aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[22]); goto L_08A01E00; @@ -5357,8 +6460,21 @@ L_08A01E34: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A01E44u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 481u, 0x08A01E44u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01E44u) goto L_08A01E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01E44: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (ctx.gpr[2] + ctx.gpr[22]); @@ -5434,8 +6550,21 @@ L_08A01ED8: ctx.gpr[6] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A01EF4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 490u, 0x08A01EF4u, 0x0890E824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 590u, 0x0890E824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A01EF4u) goto L_08A01EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A01EF4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -5461,8 +6590,8 @@ L_08A01F00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A01F28: @@ -5588,8 +6717,21 @@ L_08A02010: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_5); aot_gpr_31 = (0x08A02020u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 507u, 0x08A02020u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02020u) goto L_08A02020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02020: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); ctx.gpr[6] = (ctx.gpr[2] | 0u); @@ -5635,8 +6777,21 @@ L_08A02058: aot_gpr_5 = (ctx.gpr[7] | 0u); aot_gpr_31 = (0x08A0206Cu); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 514u, 0x08A0206Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0206Cu) goto L_08A0206C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0206C: ctx.gpr[6] = (ctx.gpr[2] + ctx.gpr[21]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -5720,8 +6875,21 @@ L_08A020EC: ctx.gpr[6] = (aot_gpr_5 - ctx.gpr[7]); aot_gpr_31 = (0x08A02100u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 525u, 0x08A02100u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02100u) goto L_08A02100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02100: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -5804,8 +6972,21 @@ L_08A0219C: ctx.gpr[6] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A021B8u); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 535u, 0x08A021B8u, 0x0890E824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 590u, 0x0890E824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A021B8u) goto L_08A021B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A021B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); { const bool branch_taken = aot_gpr_17 != aot_gpr_4; @@ -5832,8 +7013,8 @@ L_08A021C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A021F4: @@ -5938,8 +7119,8 @@ L_08A022A0: goto L_08A022A4; L_08A022A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A022AC: @@ -6064,15 +7245,15 @@ L_08A0235C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02374: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0237C: @@ -6114,8 +7295,8 @@ L_08A023A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A023FC: @@ -6240,21 +7421,21 @@ L_08A024AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A024C4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A024CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A024D4: @@ -6379,21 +7560,21 @@ L_08A02584: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0259C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A025A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A025AC: @@ -6518,22 +7699,22 @@ L_08A0265C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02674: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 3u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0267C: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9064))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02684: @@ -6559,8 +7740,8 @@ L_08A026A0: goto L_08A026A4; L_08A026A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A026AC: @@ -6685,15 +7866,15 @@ L_08A0275C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02774: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0277C: @@ -6762,8 +7943,8 @@ L_08A027C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A027DC: @@ -6794,21 +7975,21 @@ L_08A02808: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02830: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02838: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02840: @@ -6861,8 +8042,21 @@ L_08A028AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x08A028C4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 657u, 0x08A028C4u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A028C4u) goto L_08A028C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A028C4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -7110,8 +8304,8 @@ L_08A029F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02A20: @@ -7373,8 +8567,8 @@ L_08A02C30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02C7C: @@ -7508,21 +8702,21 @@ L_08A02D40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02D58: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 5u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02D60: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02D68: @@ -7633,8 +8827,21 @@ L_08A02E00: ctx.gpr[6] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A02E14u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 733u, 0x08A02E14u, 0x08A053A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 308u, 0x08A053A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02E14u) goto L_08A02E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02E14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7648,8 +8855,21 @@ L_08A02E1C: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A02E30u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 735u, 0x08A02E30u, 0x08A053A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 308u, 0x08A053A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02E30u) goto L_08A02E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02E30: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7663,8 +8883,21 @@ L_08A02E38: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A02E4Cu); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 737u, 0x08A02E4Cu, 0x08A053A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 308u, 0x08A053A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02E4Cu) goto L_08A02E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02E4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7678,8 +8911,21 @@ L_08A02E54: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A02E68u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 739u, 0x08A02E68u, 0x08A053A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 308u, 0x08A053A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02E68u) goto L_08A02E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02E68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7693,8 +8939,21 @@ L_08A02E70: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A02E84u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 741u, 0x08A02E84u, 0x08A053A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 308u, 0x08A053A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02E84u) goto L_08A02E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02E84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7708,8 +8967,21 @@ L_08A02E8C: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A02EA0u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 743u, 0x08A02EA0u, 0x08A053A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 308u, 0x08A053A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02EA0u) goto L_08A02EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02EA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7731,8 +9003,8 @@ L_08A02EAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A02EC8: @@ -7860,8 +9132,21 @@ L_08A02F78: ctx.gpr[6] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A02F8Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 761u, 0x08A02F8Cu, 0x08A040D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 13u, 0x08A040D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02F8Cu) goto L_08A02F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02F8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7875,8 +9160,21 @@ L_08A02F94: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A02FA8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 763u, 0x08A02FA8u, 0x08A040D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 13u, 0x08A040D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02FA8u) goto L_08A02FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02FA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7890,8 +9188,21 @@ L_08A02FB0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A02FC4u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 765u, 0x08A02FC4u, 0x08A040D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 13u, 0x08A040D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02FC4u) goto L_08A02FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02FC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7905,8 +9216,21 @@ L_08A02FCC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A02FE0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 767u, 0x08A02FE0u, 0x08A040D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 13u, 0x08A040D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02FE0u) goto L_08A02FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02FE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7920,8 +9244,21 @@ L_08A02FE8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A02FFCu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 769u, 0x08A02FFCu, 0x08A040D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 13u, 0x08A040D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A02FFCu) goto L_08A02FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A02FFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7935,8 +9272,21 @@ L_08A03004: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A03018u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 771u, 0x08A03018u, 0x08A040D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 13u, 0x08A040D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03018u) goto L_08A03018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03018: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7958,8 +9308,8 @@ L_08A03024: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03040: @@ -8085,8 +9435,21 @@ L_08A030E8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A030F8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 789u, 0x08A030F8u, 0x08A04228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 40u, 0x08A04228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A030F8u) goto L_08A030F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A030F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8099,8 +9462,21 @@ L_08A03100: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03110u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 791u, 0x08A03110u, 0x08A04228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 40u, 0x08A04228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03110u) goto L_08A03110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03110: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8113,8 +9489,21 @@ L_08A03118: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03128u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 793u, 0x08A03128u, 0x08A04228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 40u, 0x08A04228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03128u) goto L_08A03128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03128: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8127,8 +9516,21 @@ L_08A03130: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03140u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 795u, 0x08A03140u, 0x08A04228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 40u, 0x08A04228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03140u) goto L_08A03140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03140: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8141,8 +9543,21 @@ L_08A03148: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03158u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 797u, 0x08A03158u, 0x08A04228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 40u, 0x08A04228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03158u) goto L_08A03158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03158: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8155,8 +9570,21 @@ L_08A03160: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03170u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 799u, 0x08A03170u, 0x08A04228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 40u, 0x08A04228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03170u) goto L_08A03170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03170: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8177,8 +9605,8 @@ L_08A0317C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03194: @@ -8304,8 +9732,21 @@ L_08A0323C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0324Cu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 817u, 0x08A0324Cu, 0x08A042C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 53u, 0x08A042C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0324Cu) goto L_08A0324C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0324C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8318,8 +9759,21 @@ L_08A03254: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03264u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 819u, 0x08A03264u, 0x08A042C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 53u, 0x08A042C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03264u) goto L_08A03264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03264: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8332,8 +9786,21 @@ L_08A0326C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A0327Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 821u, 0x08A0327Cu, 0x08A042C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 53u, 0x08A042C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0327Cu) goto L_08A0327C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0327C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8346,8 +9813,21 @@ L_08A03284: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03294u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 823u, 0x08A03294u, 0x08A042C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 53u, 0x08A042C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03294u) goto L_08A03294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03294: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8360,8 +9840,21 @@ L_08A0329C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A032ACu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 825u, 0x08A032ACu, 0x08A042C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 53u, 0x08A042C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A032ACu) goto L_08A032AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A032AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8374,8 +9867,21 @@ L_08A032B4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A032C4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 827u, 0x08A032C4u, 0x08A042C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 53u, 0x08A042C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A032C4u) goto L_08A032C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A032C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8396,8 +9902,8 @@ L_08A032D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A032E8: @@ -8523,8 +10029,21 @@ L_08A03390: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A033A0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 845u, 0x08A033A0u, 0x08A0442Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 80u, 0x08A0442Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A033A0u) goto L_08A033A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A033A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8537,8 +10056,21 @@ L_08A033A8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A033B8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 847u, 0x08A033B8u, 0x08A0442Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 80u, 0x08A0442Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A033B8u) goto L_08A033B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A033B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8551,8 +10083,21 @@ L_08A033C0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A033D0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 849u, 0x08A033D0u, 0x08A0442Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 80u, 0x08A0442Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A033D0u) goto L_08A033D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A033D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8565,8 +10110,21 @@ L_08A033D8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A033E8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 851u, 0x08A033E8u, 0x08A0442Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 80u, 0x08A0442Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A033E8u) goto L_08A033E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A033E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8579,8 +10137,21 @@ L_08A033F0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03400u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 853u, 0x08A03400u, 0x08A0442Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 80u, 0x08A0442Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03400u) goto L_08A03400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03400: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8593,8 +10164,21 @@ L_08A03408: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03418u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 855u, 0x08A03418u, 0x08A0442Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 80u, 0x08A0442Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03418u) goto L_08A03418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03418: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8615,8 +10199,8 @@ L_08A03424: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0343C: @@ -8742,8 +10326,21 @@ L_08A034E4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A034F4u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 873u, 0x08A034F4u, 0x08A044D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 91u, 0x08A044D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A034F4u) goto L_08A034F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A034F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8756,8 +10353,21 @@ L_08A034FC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A0350Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 875u, 0x08A0350Cu, 0x08A044D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 91u, 0x08A044D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0350Cu) goto L_08A0350C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0350C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8770,8 +10380,21 @@ L_08A03514: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03524u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 877u, 0x08A03524u, 0x08A044D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 91u, 0x08A044D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03524u) goto L_08A03524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03524: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8784,8 +10407,21 @@ L_08A0352C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A0353Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 879u, 0x08A0353Cu, 0x08A044D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 91u, 0x08A044D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0353Cu) goto L_08A0353C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0353C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8798,8 +10434,21 @@ L_08A03544: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A03554u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 881u, 0x08A03554u, 0x08A044D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 91u, 0x08A044D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03554u) goto L_08A03554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03554: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8812,8 +10461,21 @@ L_08A0355C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A0356Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 883u, 0x08A0356Cu, 0x08A044D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 91u, 0x08A044D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0356Cu) goto L_08A0356C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0356C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8834,8 +10496,8 @@ L_08A03578: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03590: @@ -9042,8 +10704,8 @@ L_08A036B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A036C4: @@ -9112,8 +10774,8 @@ L_08A036F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03704: @@ -9181,8 +10843,8 @@ L_08A03704: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0374C: @@ -9250,8 +10912,8 @@ L_08A0374C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03794: @@ -9343,8 +11005,21 @@ L_08A03830: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A0385Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 925u, 0x08A0385Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0385Cu) goto L_08A0385C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0385C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9507,8 +11182,21 @@ L_08A0393C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A03954u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 932u, 0x08A03954u, 0x08891FDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 302u, 0x08891FDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03954u) goto L_08A03954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03954: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9539,8 +11227,8 @@ L_08A03968: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03988: @@ -9598,8 +11286,21 @@ L_08A03A08: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08A03A1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 941u, 0x08A03A1Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03A1Cu) goto L_08A03A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03A1C: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] != 0u; @@ -9817,8 +11518,8 @@ L_08A03B40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03B88: @@ -9883,8 +11584,21 @@ L_08A03C08: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A03C14u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 981u, 0x08A03C14u, 0x08A045F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 114u, 0x08A045F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03C14u) goto L_08A03C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03C14: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A03C20u); @@ -9953,8 +11667,8 @@ L_08A03C88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03C9C: @@ -10032,8 +11746,8 @@ L_08A03D08: goto L_08A03D0C; L_08A03D0C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03D14: @@ -10267,8 +11981,8 @@ L_08A03EB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03EDC: @@ -10280,8 +11994,21 @@ L_08A03EDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A03EFCu); aot_gpr_5 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 1034u, 0x08A03EFCu, 0x08A04028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 5u, 0x08A04028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03EFCu) goto L_08A03EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03EFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -10296,8 +12023,21 @@ L_08A03F08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08A03F18u); aot_gpr_5 = (aot_gpr_5 + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 1036u, 0x08A03F18u, 0x08A04028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 5u, 0x08A04028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03F18u) goto L_08A03F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03F18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -10312,8 +12052,21 @@ L_08A03F24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08A03F34u); aot_gpr_5 = (aot_gpr_5 + static_cast(24)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 1038u, 0x08A03F34u, 0x08A04028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 5u, 0x08A04028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03F34u) goto L_08A03F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03F34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -10328,8 +12081,21 @@ L_08A03F40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08A03F50u); aot_gpr_5 = (aot_gpr_5 + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 1040u, 0x08A03F50u, 0x08A04028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 5u, 0x08A04028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03F50u) goto L_08A03F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03F50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -10344,8 +12110,21 @@ L_08A03F5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08A03F6Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 1042u, 0x08A03F6Cu, 0x08A04028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 5u, 0x08A04028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03F6Cu) goto L_08A03F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03F6C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -10358,8 +12137,21 @@ L_08A03F6C: L_08A03F78: aot_gpr_31 = (0x08A03F80u); aot_gpr_5 = (aot_gpr_5 + static_cast(60)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0127->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0127_entry, 1044u, 0x08A03F80u, 0x08A04028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 5u, 0x08A04028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A03F80u) goto L_08A03F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A03F80: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -10422,8 +12214,8 @@ L_08A03FBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A03FC8: diff --git a/profiles/vcs/generated/generated_unit_0128.cpp b/profiles/vcs/generated/generated_unit_0128.cpp index c1f8274..5044f53 100644 --- a/profiles/vcs/generated/generated_unit_0128.cpp +++ b/profiles/vcs/generated/generated_unit_0128.cpp @@ -987,6 +987,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A04004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1022,8 +1046,8 @@ L_08A0401C: goto L_08A04020; L_08A04020: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A04028: @@ -1060,8 +1084,21 @@ L_08A04078: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08A0408Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 8u, 0x08A0408Cu, 0x08A021F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 538u, 0x08A021F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0408Cu) goto L_08A0408C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0408C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1102,8 +1139,8 @@ L_08A040B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A040D0: @@ -1195,8 +1232,21 @@ L_08A04158: L_08A04164: aot_gpr_31 = (0x08A0416Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 24u, 0x08A0416Cu, 0x08A01A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 426u, 0x08A01A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0416Cu) goto L_08A0416C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0416C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1266,8 +1316,21 @@ L_08A041C0: aot_gpr_6 = (aot_gpr_5 - ctx.gpr[7]); aot_gpr_31 = (0x08A041D0u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 33u, 0x08A041D0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A041D0u) goto L_08A041D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A041D0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); goto L_08A041D4; @@ -1319,8 +1382,8 @@ L_08A04214: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A04228: @@ -1412,8 +1475,21 @@ L_08A042AC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A042B8u); aot_gpr_4 = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 51u, 0x08A042B8u, 0x08A01F28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 493u, 0x08A01F28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A042B8u) goto L_08A042B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A042B8: ctx.gpr[2] = (0u | 1u); goto L_08A042BC; @@ -1421,8 +1497,8 @@ L_08A042BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A042C8: @@ -1519,8 +1595,21 @@ L_08A0434C: L_08A04368: aot_gpr_31 = (0x08A04370u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 64u, 0x08A04370u, 0x08A01A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 426u, 0x08A01A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04370u) goto L_08A04370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04370: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1590,8 +1679,21 @@ L_08A043C4: aot_gpr_6 = (aot_gpr_5 - ctx.gpr[7]); aot_gpr_31 = (0x08A043D4u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 73u, 0x08A043D4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A043D4u) goto L_08A043D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A043D4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); goto L_08A043D8; @@ -1643,8 +1745,8 @@ L_08A04418: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0442C: @@ -1745,8 +1847,8 @@ L_08A044C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A044D4: @@ -1835,14 +1937,27 @@ L_08A04554: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A04560u); aot_gpr_4 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 101u, 0x08A04560u, 0x08A019D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 420u, 0x08A019D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04560u) goto L_08A04560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04560: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0456C: @@ -1926,8 +2041,8 @@ L_08A045DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A045F0: @@ -2127,8 +2242,8 @@ L_08A045F0: ctx.gpr[2] = (aot_gpr_4 | 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A04898: @@ -2383,23 +2498,62 @@ L_08A04A28: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A04A34u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 148u, 0x08A04A34u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04A34u) goto L_08A04A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04A34: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(84))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08A04A48u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 149u, 0x08A04A48u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04A48u) goto L_08A04A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04A48: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A04A58u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 150u, 0x08A04A58u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04A58u) goto L_08A04A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04A58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2430,15 +2584,41 @@ L_08A04A7C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08A04A90u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 154u, 0x08A04A90u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04A90u) goto L_08A04A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04A90: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A04AA0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 155u, 0x08A04AA0u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04AA0u) goto L_08A04AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04AA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); @@ -2463,8 +2643,21 @@ L_08A04AC0: aot_gpr_6 = (aot_gpr_4 - aot_gpr_5); aot_gpr_31 = (0x08A04AD0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 158u, 0x08A04AD0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04AD0u) goto L_08A04AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04AD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); ctx.gpr[2] = (0u | 1u); @@ -2507,8 +2700,8 @@ L_08A04B10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A04B28: @@ -2639,8 +2832,21 @@ L_08A04C38: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08A04C4Cu); ctx.gpr[7] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 174u, 0x08A04C4Cu, 0x08A01BE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 443u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 443u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 443u, 0x08A01BE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04C4Cu) goto L_08A04C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04C4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -2649,8 +2855,21 @@ L_08A04C4C: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A04C68u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 175u, 0x08A04C68u, 0x0890E824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 590u, 0x0890E824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04C68u) goto L_08A04C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04C68: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); @@ -2876,8 +3095,21 @@ L_08A04D98: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A04DA4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 207u, 0x08A04DA4u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04DA4u) goto L_08A04DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04DA4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -2889,15 +3121,41 @@ L_08A04DA4: } L_08A04DB0: aot_gpr_31 = (0x08A04DB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 209u, 0x08A04DB8u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04DB8u) goto L_08A04DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04DB8: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A04DC8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 210u, 0x08A04DC8u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04DC8u) goto L_08A04DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04DC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); { const bool branch_taken = 0u == 0u; @@ -2919,15 +3177,41 @@ L_08A04DD4: } L_08A04DE4: aot_gpr_31 = (0x08A04DECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 213u, 0x08A04DECu, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04DECu) goto L_08A04DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04DEC: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A04DFCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 214u, 0x08A04DFCu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04DFCu) goto L_08A04DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04DFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); { const bool branch_taken = 0u == 0u; @@ -2942,15 +3226,41 @@ L_08A04E08: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A04E18u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 216u, 0x08A04E18u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04E18u) goto L_08A04E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04E18: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A04E28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 217u, 0x08A04E28u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04E28u) goto L_08A04E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04E28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); @@ -2994,15 +3304,41 @@ L_08A04E64: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08A04E78u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 223u, 0x08A04E78u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04E78u) goto L_08A04E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04E78: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A04E88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 224u, 0x08A04E88u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04E88u) goto L_08A04E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04E88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_5 = (ctx.gpr[18] << 2u); @@ -3025,8 +3361,21 @@ L_08A04EA4: L_08A04EAC: aot_gpr_31 = (0x08A04EB4u); aot_gpr_6 = (ctx.gpr[18] - aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 227u, 0x08A04EB4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04EB4u) goto L_08A04EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04EB4: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); goto L_08A04EB8; @@ -3063,8 +3412,21 @@ L_08A04EF8: aot_gpr_5 = (aot_gpr_5 + ctx.gpr[19]); aot_gpr_31 = (0x08A04F10u); ctx.gpr[30] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 232u, 0x08A04F10u, 0x08A01A6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 427u, 0x08A01A6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04F10u) goto L_08A04F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04F10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); ctx.gpr[23] = (ctx.gpr[2] | 0u); @@ -3098,8 +3460,21 @@ L_08A04F54: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A04F68u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 235u, 0x08A04F68u, 0x08A01BE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 443u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 443u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 443u, 0x08A01BE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04F68u) goto L_08A04F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04F68: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -3108,8 +3483,21 @@ L_08A04F68: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A04F84u); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 236u, 0x08A04F84u, 0x0890E824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 590u, 0x0890E824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A04F84u) goto L_08A04F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A04F84: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] + static_cast(4)); @@ -3140,8 +3528,8 @@ L_08A04F9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A04FCC: @@ -3430,8 +3818,21 @@ L_08A0517C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A05188u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 276u, 0x08A05188u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05188u) goto L_08A05188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05188: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); { const bool branch_taken = ctx.gpr[18] != 0u; @@ -3443,15 +3844,41 @@ L_08A05188: } L_08A05194: aot_gpr_31 = (0x08A0519Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 278u, 0x08A0519Cu, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0519Cu) goto L_08A0519C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0519C: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A051ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 279u, 0x08A051ACu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A051ACu) goto L_08A051AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A051AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); { const bool branch_taken = 0u == 0u; @@ -3473,15 +3900,41 @@ L_08A051B8: } L_08A051C8: aot_gpr_31 = (0x08A051D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 282u, 0x08A051D0u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A051D0u) goto L_08A051D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A051D0: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A051E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 283u, 0x08A051E0u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A051E0u) goto L_08A051E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A051E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); { const bool branch_taken = 0u == 0u; @@ -3496,15 +3949,41 @@ L_08A051EC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A051FCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 285u, 0x08A051FCu, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A051FCu) goto L_08A051FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A051FC: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A0520Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 286u, 0x08A0520Cu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0520Cu) goto L_08A0520C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0520C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_4 = (aot_gpr_4 + static_cast(32)); @@ -3548,15 +4027,41 @@ L_08A05248: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08A0525Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 292u, 0x08A0525Cu, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0525Cu) goto L_08A0525C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0525C: aot_gpr_5 = (ctx.gpr[2] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A0526Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 293u, 0x08A0526Cu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0526Cu) goto L_08A0526C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0526C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_5 = (ctx.gpr[18] << 2u); @@ -3579,8 +4084,21 @@ L_08A05288: L_08A05290: aot_gpr_31 = (0x08A05298u); aot_gpr_6 = (ctx.gpr[18] - aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 296u, 0x08A05298u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05298u) goto L_08A05298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05298: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); goto L_08A0529C; @@ -3615,8 +4133,21 @@ L_08A052D8: aot_gpr_5 = (aot_gpr_5 + ctx.gpr[19]); aot_gpr_31 = (0x08A052ECu); ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 301u, 0x08A052ECu, 0x08A01A6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 427u, 0x08A01A6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A052ECu) goto L_08A052EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A052EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); ctx.gpr[23] = (ctx.gpr[2] | 0u); @@ -3650,8 +4181,21 @@ L_08A05330: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A05344u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 304u, 0x08A05344u, 0x08A01BE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 443u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 443u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 443u, 0x08A01BE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05344u) goto L_08A05344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05344: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -3660,8 +4204,21 @@ L_08A05344: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A05360u); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 305u, 0x08A05360u, 0x0890E824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 590u, 0x0890E824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05360u) goto L_08A05360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05360: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -3690,8 +4247,8 @@ L_08A05374: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A053A0: @@ -3737,8 +4294,21 @@ L_08A05410: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A0542Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 311u, 0x08A0542Cu, 0x08A036C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 914u, 0x08A036C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0542Cu) goto L_08A0542C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0542C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[21]; @@ -3751,8 +4321,21 @@ L_08A0542C: L_08A05438: aot_gpr_31 = (0x08A05440u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 313u, 0x08A05440u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05440u) goto L_08A05440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05440: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3763,16 +4346,42 @@ L_08A05440: L_08A05448: aot_gpr_31 = (0x08A05450u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 315u, 0x08A05450u, 0x08A01A6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 427u, 0x08A01A6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05450u) goto L_08A05450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05450: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A05464u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 316u, 0x08A05464u, 0x08A03794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 918u, 0x08A03794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05464u) goto L_08A05464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05464: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3820,8 +4429,21 @@ L_08A05494: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A054A8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 322u, 0x08A054A8u, 0x08A03794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 918u, 0x08A03794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A054A8u) goto L_08A054A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A054A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3882,8 +4504,21 @@ L_08A054EC: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x08A054F8u); aot_gpr_4 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 330u, 0x08A054F8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A054F8u) goto L_08A054F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A054F8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3908,8 +4543,21 @@ L_08A05504: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A05534u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 332u, 0x08A05534u, 0x08A01838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 400u, 0x08A01838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05534u) goto L_08A05534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05534: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28368)); @@ -3995,8 +4643,21 @@ L_08A055C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(156), aot_gpr_5); aot_gpr_31 = (0x08A055DCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 342u, 0x08A055DCu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A055DCu) goto L_08A055DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A055DC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -4040,8 +4701,21 @@ L_08A05614: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A05628u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 348u, 0x08A05628u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05628u) goto L_08A05628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05628: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -4095,8 +4769,21 @@ L_08A0567C: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x08A05688u); aot_gpr_4 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 356u, 0x08A05688u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05688u) goto L_08A05688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05688: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4121,8 +4808,21 @@ L_08A05694: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A056C4u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 358u, 0x08A056C4u, 0x08A01838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 400u, 0x08A01838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A056C4u) goto L_08A056C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A056C4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28440)); @@ -4208,8 +4908,21 @@ L_08A05758: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(148), aot_gpr_5); aot_gpr_31 = (0x08A0576Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(144), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 368u, 0x08A0576Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0576Cu) goto L_08A0576C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0576C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -4253,8 +4966,21 @@ L_08A057A4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A057B8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 374u, 0x08A057B8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A057B8u) goto L_08A057B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A057B8: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); @@ -4308,8 +5034,21 @@ L_08A0580C: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x08A05818u); aot_gpr_4 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 382u, 0x08A05818u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05818u) goto L_08A05818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05818: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4334,8 +5073,21 @@ L_08A05824: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A05854u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 384u, 0x08A05854u, 0x08A01838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 400u, 0x08A01838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05854u) goto L_08A05854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05854: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28512)); @@ -4421,8 +5173,21 @@ L_08A058E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(140), aot_gpr_5); aot_gpr_31 = (0x08A058FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 394u, 0x08A058FCu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A058FCu) goto L_08A058FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A058FC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -4466,8 +5231,21 @@ L_08A05934: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A05948u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 400u, 0x08A05948u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05948u) goto L_08A05948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05948: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); @@ -4521,8 +5299,21 @@ L_08A0599C: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x08A059A8u); aot_gpr_4 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 408u, 0x08A059A8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A059A8u) goto L_08A059A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A059A8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4547,8 +5338,21 @@ L_08A059B4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A059E4u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 410u, 0x08A059E4u, 0x08A01838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 400u, 0x08A01838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A059E4u) goto L_08A059E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A059E4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28584)); @@ -4634,8 +5438,21 @@ L_08A05A78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(132), aot_gpr_5); aot_gpr_31 = (0x08A05A8Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(128), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 420u, 0x08A05A8Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05A8Cu) goto L_08A05A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05A8C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -4679,8 +5496,21 @@ L_08A05AC4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A05AD8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 426u, 0x08A05AD8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05AD8u) goto L_08A05AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05AD8: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -4734,8 +5564,21 @@ L_08A05B2C: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x08A05B38u); aot_gpr_4 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 434u, 0x08A05B38u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05B38u) goto L_08A05B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05B38: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4760,8 +5603,21 @@ L_08A05B44: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A05B74u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 436u, 0x08A05B74u, 0x08A01838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 400u, 0x08A01838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05B74u) goto L_08A05B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05B74: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28656)); @@ -4847,8 +5703,21 @@ L_08A05C08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(124), aot_gpr_5); aot_gpr_31 = (0x08A05C1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 446u, 0x08A05C1Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05C1Cu) goto L_08A05C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05C1C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -4892,8 +5761,21 @@ L_08A05C54: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A05C68u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 452u, 0x08A05C68u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05C68u) goto L_08A05C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05C68: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -4947,8 +5829,21 @@ L_08A05CBC: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x08A05CC8u); aot_gpr_4 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 460u, 0x08A05CC8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05CC8u) goto L_08A05CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05CC8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4973,8 +5868,21 @@ L_08A05CD4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A05D04u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 462u, 0x08A05D04u, 0x08A01838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 400u, 0x08A01838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05D04u) goto L_08A05D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05D04: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28728)); @@ -5060,8 +5968,21 @@ L_08A05D98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(116), aot_gpr_5); aot_gpr_31 = (0x08A05DACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 472u, 0x08A05DACu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05DACu) goto L_08A05DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05DAC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -5105,8 +6026,21 @@ L_08A05DE4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A05DF8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 478u, 0x08A05DF8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05DF8u) goto L_08A05DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05DF8: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); @@ -5167,8 +6101,21 @@ L_08A05E54: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A05E60u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 487u, 0x08A05E60u, 0x08A01C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 451u, 0x08A01C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05E60u) goto L_08A05E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05E60: ctx.gpr[2] = (ctx.gpr[23] | 0u); goto L_08A05E64; @@ -5188,8 +6135,8 @@ L_08A05E64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05E94: @@ -5205,8 +6152,8 @@ L_08A05EB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05EBC: @@ -5215,14 +6162,27 @@ L_08A05EBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A05ED0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 492u, 0x08A05ED0u, 0x089B6DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 473u, 0x089B6DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05ED0u) goto L_08A05ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05ED0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05EDC: @@ -5231,14 +6191,27 @@ L_08A05EDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A05EF0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 494u, 0x08A05EF0u, 0x089B6E14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 481u, 0x089B6E14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05EF0u) goto L_08A05EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05EF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05EFC: @@ -5247,14 +6220,27 @@ L_08A05EFC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A05F10u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 496u, 0x08A05F10u, 0x089B6EECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 494u, 0x089B6EECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05F10u) goto L_08A05F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05F10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05F1C: @@ -5263,14 +6249,27 @@ L_08A05F1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A05F30u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 498u, 0x08A05F30u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05F30u) goto L_08A05F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05F30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05F3C: @@ -5279,14 +6278,27 @@ L_08A05F3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A05F50u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 500u, 0x08A05F50u, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05F50u) goto L_08A05F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05F50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05F5C: @@ -5296,14 +6308,27 @@ L_08A05F5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A05F74u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 502u, 0x08A05F74u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05F74u) goto L_08A05F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05F74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05F80: @@ -5313,14 +6338,27 @@ L_08A05F80: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A05F98u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 504u, 0x08A05F98u, 0x089B83C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 40u, 0x089B83C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05F98u) goto L_08A05F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05F98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A05FA4: @@ -5341,8 +6379,21 @@ L_08A05FA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08A05FE8u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 506u, 0x08A05FE8u, 0x089B72CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 556u, 0x089B72CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A05FE8u) goto L_08A05FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A05FE8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5358,15 +6409,41 @@ L_08A05FF0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0600Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 508u, 0x08A0600Cu, 0x089B83C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 40u, 0x089B83C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0600Cu) goto L_08A0600C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0600C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A0601Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 509u, 0x08A0601Cu, 0x089B7284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 550u, 0x089B7284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0601Cu) goto L_08A0601C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0601C: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5379,8 +6456,8 @@ L_08A0601C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0603C: @@ -5389,14 +6466,27 @@ L_08A0603C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06050u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 511u, 0x08A06050u, 0x089B74ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 600u, 0x089B74ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06050u) goto L_08A06050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06050: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0605C: @@ -5419,8 +6509,21 @@ L_08A0607C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0608Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 515u, 0x08A0608Cu, 0x089B758Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 610u, 0x089B758Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0608Cu) goto L_08A0608C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0608C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -5438,15 +6541,28 @@ L_08A060A0: L_08A060A4: aot_gpr_31 = (0x08A060ACu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 519u, 0x08A060ACu, 0x089C70C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 711u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 711u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 711u, 0x089C70C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A060ACu) goto L_08A060AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A060AC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A060BC: @@ -5469,8 +6585,21 @@ L_08A060DC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A060ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 523u, 0x08A060ECu, 0x089B75ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 612u, 0x089B75ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A060ECu) goto L_08A060EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A060EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -5488,15 +6617,28 @@ L_08A06100: L_08A06104: aot_gpr_31 = (0x08A0610Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 527u, 0x08A0610Cu, 0x089C70B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 709u, 0x089C70B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0610Cu) goto L_08A0610C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0610C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0611C: @@ -5518,14 +6660,27 @@ L_08A06138: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A06148u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 531u, 0x08A06148u, 0x089B75CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 614u, 0x089B75CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06148u) goto L_08A06148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06148: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06154: @@ -5547,14 +6702,27 @@ L_08A06170: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A06180u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 535u, 0x08A06180u, 0x089B75ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 616u, 0x089B75ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06180u) goto L_08A06180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06180: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0618C: @@ -5563,14 +6731,27 @@ L_08A0618C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A061A0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 537u, 0x08A061A0u, 0x08985EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 528u, 0x08985EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A061A0u) goto L_08A061A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A061A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A061AC: @@ -5584,8 +6765,21 @@ L_08A061AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A061D4u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 539u, 0x08A061D4u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A061D4u) goto L_08A061D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A061D4: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_16) < 0; @@ -5599,8 +6793,21 @@ L_08A061E0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A061F0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 541u, 0x08A061F0u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A061F0u) goto L_08A061F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A061F0: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5611,8 +6818,8 @@ L_08A061F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06208: @@ -5621,14 +6828,27 @@ L_08A06208: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A0621Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 543u, 0x08A0621Cu, 0x089B7090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 522u, 0x089B7090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0621Cu) goto L_08A0621C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0621C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06228: @@ -5644,8 +6864,21 @@ L_08A06228: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A06258u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 545u, 0x08A06258u, 0x089B6FC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 508u, 0x089B6FC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06258u) goto L_08A06258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06258: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; @@ -5659,8 +6892,21 @@ L_08A06264: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A06274u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 547u, 0x08A06274u, 0x089B7348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 568u, 0x089B7348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06274u) goto L_08A06274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06274: ctx.gpr[7] = (16256u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -5669,8 +6915,21 @@ L_08A06274: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A06290u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 548u, 0x08A06290u, 0x089B83C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 40u, 0x089B83C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06290u) goto L_08A06290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06290: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5681,8 +6940,8 @@ L_08A06290: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A062A8: @@ -5691,14 +6950,27 @@ L_08A062A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A062BCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 550u, 0x08A062BCu, 0x08986108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 560u, 0x08986108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A062BCu) goto L_08A062BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A062BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A062C8: @@ -5709,14 +6981,27 @@ L_08A062C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A062E4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 552u, 0x08A062E4u, 0x08A0E6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 413u, 0x08A0E6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A062E4u) goto L_08A062E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A062E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A062F0: @@ -5744,14 +7029,27 @@ L_08A0631C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24256))); aot_gpr_31 = (0x08A06330u); aot_fpr_13 = std::bit_cast(ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 556u, 0x08A06330u, 0x089B83C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 40u, 0x089B83C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06330u) goto L_08A06330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06330: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0633C: @@ -5761,14 +7059,27 @@ L_08A0633C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06354u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 558u, 0x08A06354u, 0x08888060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 8u, 0x08888060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06354u) goto L_08A06354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06354: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06360: @@ -5780,14 +7091,27 @@ L_08A06360: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06380u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 560u, 0x08A06380u, 0x0888828Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 54u, 0x0888828Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06380u) goto L_08A06380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06380: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0638C: @@ -5796,14 +7120,27 @@ L_08A0638C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A063A0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 562u, 0x08A063A0u, 0x088883E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 85u, 0x088883E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A063A0u) goto L_08A063A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A063A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A063AC: @@ -5812,14 +7149,27 @@ L_08A063AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A063C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 564u, 0x08A063C0u, 0x089B738Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 574u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 574u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 574u, 0x089B738Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A063C0u) goto L_08A063C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A063C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A063CC: @@ -5829,14 +7179,27 @@ L_08A063CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A063E4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 566u, 0x08A063E4u, 0x08887E98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 894u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 894u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 894u, 0x08887E98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A063E4u) goto L_08A063E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A063E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A063F0: @@ -5846,14 +7209,27 @@ L_08A063F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06408u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 568u, 0x08A06408u, 0x08888090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 13u, 0x08888090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06408u) goto L_08A06408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06408: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06414: @@ -5862,14 +7238,27 @@ L_08A06414: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06428u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 570u, 0x08A06428u, 0x08888198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 35u, 0x08888198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06428u) goto L_08A06428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06428: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06434: @@ -5878,14 +7267,27 @@ L_08A06434: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06448u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 572u, 0x08A06448u, 0x08888208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 42u, 0x08888208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06448u) goto L_08A06448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06448: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06454: @@ -5894,14 +7296,27 @@ L_08A06454: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06468u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 574u, 0x08A06468u, 0x08888418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 90u, 0x08888418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06468u) goto L_08A06468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06468: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06474: @@ -5910,14 +7325,27 @@ L_08A06474: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06488u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 576u, 0x08A06488u, 0x08888438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 92u, 0x08888438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06488u) goto L_08A06488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06488: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06494: @@ -5927,14 +7355,27 @@ L_08A06494: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A064ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 578u, 0x08A064ACu, 0x088888D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 189u, 0x088888D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A064ACu) goto L_08A064AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A064AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A064B8: @@ -5954,14 +7395,27 @@ L_08A064D0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A064E0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 581u, 0x08A064E0u, 0x088C9CF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 352u, 0x088C9CF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A064E0u) goto L_08A064E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A064E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A064EC: @@ -5986,14 +7440,27 @@ L_08A0650C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A06528u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 584u, 0x08A06528u, 0x088C9E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 368u, 0x088C9E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06528u) goto L_08A06528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06528: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06534: @@ -6010,8 +7477,21 @@ L_08A06548: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A06554u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 587u, 0x08A06554u, 0x088CA4A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 453u, 0x088CA4A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06554u) goto L_08A06554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06554: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6026,8 +7506,8 @@ L_08A06560: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0656C: @@ -6044,8 +7524,21 @@ L_08A06580: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A0658Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 592u, 0x08A0658Cu, 0x088CA540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 462u, 0x088CA540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0658Cu) goto L_08A0658C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0658C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6060,8 +7553,8 @@ L_08A06598: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A065A4: @@ -6080,14 +7573,27 @@ L_08A065BC: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A065CCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 597u, 0x08A065CCu, 0x088CA578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 467u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 467u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 467u, 0x088CA578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A065CCu) goto L_08A065CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A065CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A065D8: @@ -6106,8 +7612,21 @@ L_08A065F0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A06600u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 600u, 0x08A06600u, 0x088C9E24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 362u, 0x088C9E24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06600u) goto L_08A06600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06600: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6122,8 +7641,8 @@ L_08A0660C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06618: @@ -6148,14 +7667,27 @@ L_08A06638: aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); aot_gpr_31 = (0x08A06654u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_15)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 605u, 0x08A06654u, 0x088C9ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 370u, 0x088C9ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06654u) goto L_08A06654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06654: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06660: @@ -6174,8 +7706,21 @@ L_08A06678: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A06688u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 608u, 0x08A06688u, 0x088C9F10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 374u, 0x088C9F10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06688u) goto L_08A06688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06688: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6190,8 +7735,8 @@ L_08A06694: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A066A0: @@ -6211,14 +7756,27 @@ L_08A066B8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A066C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 613u, 0x08A066C8u, 0x088C9FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 385u, 0x088C9FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A066C8u) goto L_08A066C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A066C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A066D4: @@ -6237,14 +7795,27 @@ L_08A066E8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A066F8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 616u, 0x08A066F8u, 0x088CA18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 403u, 0x088CA18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A066F8u) goto L_08A066F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A066F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06704: @@ -6263,8 +7834,21 @@ L_08A0671C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A0672Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 619u, 0x08A0672Cu, 0x088CA270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 415u, 0x088CA270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0672Cu) goto L_08A0672C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0672C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6279,8 +7863,8 @@ L_08A06738: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06744: @@ -6299,14 +7883,27 @@ L_08A0675C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A0676Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 624u, 0x08A0676Cu, 0x088CA378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 435u, 0x088CA378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0676Cu) goto L_08A0676C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0676C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06778: @@ -6315,14 +7912,27 @@ L_08A06778: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A0678Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 626u, 0x08A0678Cu, 0x088885B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 119u, 0x088885B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0678Cu) goto L_08A0678C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0678C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06798: @@ -6331,14 +7941,27 @@ L_08A06798: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A067ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 628u, 0x08A067ACu, 0x088886CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 145u, 0x088886CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A067ACu) goto L_08A067AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A067AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A067B8: @@ -6348,14 +7971,27 @@ L_08A067B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A067D0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 630u, 0x08A067D0u, 0x0888853Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 112u, 0x0888853Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A067D0u) goto L_08A067D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A067D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A067DC: @@ -6365,14 +8001,27 @@ L_08A067DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A067F4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 632u, 0x08A067F4u, 0x088C9170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 187u, 0x088C9170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A067F4u) goto L_08A067F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A067F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06800: @@ -6382,14 +8031,27 @@ L_08A06800: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A06818u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 634u, 0x08A06818u, 0x088C9140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 183u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 183u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 183u, 0x088C9140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06818u) goto L_08A06818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06818: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06824: @@ -6398,8 +8060,8 @@ L_08A06824: aot_gpr_5 = (aot_gpr_5 + static_cast(-28320)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(21528), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06838: @@ -6408,14 +8070,27 @@ L_08A06838: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A0684Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 637u, 0x08A0684Cu, 0x088C9184u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 190u, 0x088C9184u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0684Cu) goto L_08A0684C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0684C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06858: @@ -6424,14 +8099,27 @@ L_08A06858: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A0686Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 639u, 0x08A0686Cu, 0x088C918Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 191u, 0x088C918Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0686Cu) goto L_08A0686C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0686C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06878: @@ -6440,14 +8128,27 @@ L_08A06878: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A0688Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 641u, 0x08A0688Cu, 0x088C919Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 192u, 0x088C919Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0688Cu) goto L_08A0688C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0688C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06898: @@ -6456,14 +8157,27 @@ L_08A06898: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A068ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 643u, 0x08A068ACu, 0x088C9200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 199u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 199u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 199u, 0x088C9200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A068ACu) goto L_08A068AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A068AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A068B8: @@ -6472,14 +8186,27 @@ L_08A068B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A068CCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 645u, 0x08A068CCu, 0x088C922Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 201u, 0x088C922Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A068CCu) goto L_08A068CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A068CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A068D8: @@ -6488,14 +8215,27 @@ L_08A068D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A068ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 647u, 0x08A068ECu, 0x088C924Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 203u, 0x088C924Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A068ECu) goto L_08A068EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A068EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A068F8: @@ -6504,14 +8244,27 @@ L_08A068F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A0690Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 649u, 0x08A0690Cu, 0x0888859Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 118u, 0x0888859Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0690Cu) goto L_08A0690C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0690C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06918: @@ -6525,8 +8278,8 @@ L_08A06918: L_08A06928: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06930: @@ -6544,8 +8297,21 @@ L_08A06948: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A06954u); aot_gpr_4 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 654u, 0x08A06954u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06954u) goto L_08A06954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06954: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6568,8 +8334,8 @@ L_08A06970: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06984: @@ -6616,8 +8382,8 @@ L_08A069CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A069DC: @@ -6663,8 +8429,21 @@ L_08A06A48: L_08A06A54: aot_gpr_31 = (0x08A06A5Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 667u, 0x08A06A5Cu, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06A5Cu) goto L_08A06A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06A5C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-8716), 0u); aot_gpr_4 = (0u | 0u); @@ -6874,8 +8653,21 @@ L_08A06C34: aot_fpr_15 = std::bit_cast(aot_gpr_4); aot_fpr_13 = aot_fpr_13 / aot_fpr_15; aot_gpr_31 = (0x08A06C70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 689u, 0x08A06C70u, 0x08AF43A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 38u, 0x08AF43A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A06C70u) goto L_08A06C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A06C70: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -6892,8 +8684,8 @@ L_08A06C70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06CA0: @@ -6904,8 +8696,8 @@ L_08A06CA0: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-8792), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06CBC: @@ -6983,8 +8775,8 @@ L_08A06D28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06D3C: @@ -7221,8 +9013,8 @@ L_08A06EDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A06FE0: @@ -7431,8 +9223,8 @@ L_08A071D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A071F0: @@ -7440,8 +9232,8 @@ L_08A071F0: ctx.gpr[2] = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07200: @@ -7454,8 +9246,8 @@ L_08A07210: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0721C: @@ -7471,8 +9263,8 @@ L_08A0722C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07240: @@ -7487,8 +9279,8 @@ L_08A07250: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07260: @@ -7497,8 +9289,21 @@ L_08A07260: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A07278u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 752u, 0x08A07278u, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07278u) goto L_08A07278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07278: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_16 = (2236u << 16u); @@ -7553,18 +9358,57 @@ L_08A072C8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A072D4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 760u, 0x08A072D4u, 0x08ADB934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 868u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 868u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 868u, 0x08ADB934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A072D4u) goto L_08A072D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A072D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A072E0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 761u, 0x08A072E0u, 0x089B9BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 336u, 0x089B9BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A072E0u) goto L_08A072E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A072E0: aot_gpr_31 = (0x08A072E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 762u, 0x08A072E8u, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A072E8u) goto L_08A072E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A072E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7592,8 +9436,21 @@ L_08A07308: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A07314u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 767u, 0x08A07314u, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07314u) goto L_08A07314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07314: aot_gpr_31 = (0x08A0731Cu); goto L_08A06CA0; @@ -7625,8 +9482,8 @@ L_08A07344: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0735C: @@ -7636,8 +9493,21 @@ L_08A0735C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A07374u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 772u, 0x08A07374u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07374u) goto L_08A07374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07374: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), aot_gpr_4); @@ -7650,8 +9520,8 @@ L_08A07374: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A073A0: @@ -7678,8 +9548,8 @@ L_08A073CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A073D8: @@ -7711,8 +9581,8 @@ L_08A073F4: goto L_08A07428; L_08A07428: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07430: @@ -7741,13 +9611,39 @@ L_08A07448: L_08A07460: aot_gpr_31 = (0x08A07468u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 782u, 0x08A07468u, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07468u) goto L_08A07468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07468: aot_gpr_31 = (0x08A07470u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 783u, 0x08A07470u, 0x088DF844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 474u, 0x088DF844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07470u) goto L_08A07470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07470: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8848))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -7764,15 +9660,28 @@ L_08A07470: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_31 = (0x08A074ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 784u, 0x08A074ACu, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A074ACu) goto L_08A074AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A074AC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A074BC: @@ -7792,14 +9701,27 @@ L_08A074BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A074FCu); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 786u, 0x08A074FCu, 0x08AAF068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 651u, 0x08AAF068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A074FCu) goto L_08A074FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A074FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07508: @@ -7932,8 +9854,8 @@ L_08A075EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07608: @@ -7967,12 +9889,38 @@ L_08A0763C: L_08A07644: aot_gpr_31 = (0x08A0764Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 812u, 0x08A0764Cu, 0x08954988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 135u, 0x08954988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0764Cu) goto L_08A0764C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0764C: aot_gpr_31 = (0x08A07654u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 813u, 0x08A07654u, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07654u) goto L_08A07654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07654: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8025,8 +9973,8 @@ L_08A076B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A076C4: @@ -8093,18 +10041,57 @@ L_08A0776C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A0777Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 827u, 0x08A0777Cu, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0777Cu) goto L_08A0777C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0777C: aot_gpr_31 = (0x08A07784u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 828u, 0x08A07784u, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07784u) goto L_08A07784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07784: aot_gpr_31 = (0x08A0778Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 829u, 0x08A0778Cu, 0x088DF88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 479u, 0x088DF88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0778Cu) goto L_08A0778C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0778C: aot_gpr_16 = (ctx.gpr[17] | 0u); { const bool branch_taken = aot_gpr_16 != ctx.gpr[19]; @@ -8171,8 +10158,21 @@ L_08A07800: L_08A0780C: aot_gpr_31 = (0x08A07814u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 837u, 0x08A07814u, 0x08AAF19Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 670u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 670u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 670u, 0x08AAF19Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07814u) goto L_08A07814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07814: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(-8880))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -8217,8 +10217,8 @@ L_08A0784C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0787C: @@ -8234,8 +10234,21 @@ L_08A0787C: } L_08A07894: aot_gpr_31 = (0x08A0789Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 843u, 0x08A0789Cu, 0x08935094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 268u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 268u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 268u, 0x08935094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0789Cu) goto L_08A0789C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0789C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8256,8 +10269,21 @@ L_08A078AC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A078D0u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 846u, 0x08A078D0u, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A078D0u) goto L_08A078D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A078D0: aot_gpr_31 = (0x08A078D8u); goto L_08A06FE0; @@ -8272,8 +10298,21 @@ L_08A078E0: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A078FCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 849u, 0x08A078FCu, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A078FCu) goto L_08A078FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A078FC: aot_gpr_31 = (0x08A07904u); goto L_08A06FE0; @@ -8302,8 +10341,21 @@ L_08A07924: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_14))); aot_fpr_13 = aot_fpr_13 / aot_fpr_15; aot_gpr_31 = (0x08A0795Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 853u, 0x08A0795Cu, 0x08AF43A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 38u, 0x08AF43A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0795Cu) goto L_08A0795C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0795C: aot_gpr_31 = (0x08A07964u); goto L_08A06D3C; @@ -8315,8 +10367,21 @@ L_08A07964: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A07980u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 855u, 0x08A07980u, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07980u) goto L_08A07980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07980: aot_gpr_31 = (0x08A07988u); goto L_08A06FE0; @@ -8331,8 +10396,21 @@ L_08A07990: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A079ACu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 858u, 0x08A079ACu, 0x088DFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 525u, 0x088DFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A079ACu) goto L_08A079AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A079AC: aot_gpr_31 = (0x08A079B4u); goto L_08A06FE0; @@ -8344,8 +10422,8 @@ L_08A079B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A079C8: @@ -8470,8 +10548,21 @@ L_08A07ACC: L_08A07AD4: aot_gpr_31 = (0x08A07ADCu); aot_gpr_4 = (aot_gpr_16 + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 875u, 0x08A07ADCu, 0x088BA768u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 519u, 0x088BA768u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07ADCu) goto L_08A07ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07ADC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -8516,8 +10607,21 @@ L_08A07B20: L_08A07B30: aot_gpr_31 = (0x08A07B38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 880u, 0x08A07B38u, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07B38u) goto L_08A07B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07B38: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -8540,8 +10644,8 @@ L_08A07B50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07B64: @@ -8579,8 +10683,8 @@ L_08A07BA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07BB0: @@ -8622,8 +10726,8 @@ L_08A07BFC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A07C0C: @@ -8865,8 +10969,21 @@ L_08A07E20: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08A07F8Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0128->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0128_entry, 898u, 0x08A07F8Cu, 0x08A1C770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 74u, 0x08A1C770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A07F8Cu) goto L_08A07F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A07F8C: ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (0u | 2u); diff --git a/profiles/vcs/generated/generated_unit_0129.cpp b/profiles/vcs/generated/generated_unit_0129.cpp index 85faeff..35bfaec 100644 --- a/profiles/vcs/generated/generated_unit_0129.cpp +++ b/profiles/vcs/generated/generated_unit_0129.cpp @@ -719,6 +719,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A08000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -969,8 +993,21 @@ L_08A08230: ctx.gpr[9] = (ctx.lo); aot_gpr_31 = (0x08A08270u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 21u, 0x08A08270u, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08270u) goto L_08A08270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08270: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8736))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8760))); @@ -1025,8 +1062,21 @@ L_08A08294: aot_gpr_5 = (ctx.lo); aot_gpr_31 = (0x08A08334u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 23u, 0x08A08334u, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08334u) goto L_08A08334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08334: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -1061,8 +1111,21 @@ L_08A08348: ctx.gpr[2] = (ctx.lo); aot_gpr_31 = (0x08A083A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 26u, 0x08A083A0u, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A083A0u) goto L_08A083A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A083A0: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(68)); @@ -1290,8 +1353,8 @@ L_08A086AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A086E0: @@ -1300,8 +1363,21 @@ L_08A086E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A086F4u); aot_gpr_4 = (aot_gpr_4 + static_cast(29552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 33u, 0x08A086F4u, 0x088DF9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 497u, 0x088DF9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A086F4u) goto L_08A086F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A086F4: aot_gpr_4 = (2279u << 16u); aot_gpr_5 = (2279u << 16u); @@ -1309,8 +1385,21 @@ L_08A086F4: aot_gpr_4 = (aot_gpr_4 + static_cast(22976)); aot_gpr_31 = (0x08A0870Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(20928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 34u, 0x08A0870Cu, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0870Cu) goto L_08A0870C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0870C: aot_gpr_4 = (2279u << 16u); aot_gpr_5 = (2279u << 16u); @@ -1318,14 +1407,27 @@ L_08A0870C: aot_gpr_4 = (aot_gpr_4 + static_cast(25088)); aot_gpr_31 = (0x08A08724u); aot_gpr_5 = (aot_gpr_5 + static_cast(23040)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 35u, 0x08A08724u, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08724u) goto L_08A08724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08724: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A08730: @@ -1343,8 +1445,21 @@ L_08A08730: L_08A08748: aot_gpr_31 = (0x08A08750u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 38u, 0x08A08750u, 0x08906ED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 644u, 0x08906ED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08750u) goto L_08A08750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08750: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1444,15 +1559,28 @@ L_08A087EC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A087F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 51u, 0x08A087F8u, 0x0890BE58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 983u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 983u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 983u, 0x0890BE58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A087F8u) goto L_08A087F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A087F8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A08808: @@ -1466,8 +1594,21 @@ L_08A08808: aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(1140), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08A08834u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 53u, 0x08A08834u, 0x08AB4CE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 167u, 0x08AB4CE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08834u) goto L_08A08834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08834: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(1142), static_cast(ctx.gpr[2])); aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(1144), static_cast(0u)); @@ -1483,8 +1624,21 @@ L_08A08858: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A08864u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 55u, 0x08A08864u, 0x08AB4D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 174u, 0x08AB4D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08864u) goto L_08A08864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08864: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1505,8 +1659,8 @@ L_08A08864: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A08884: @@ -1539,8 +1693,21 @@ L_08A088B8: L_08A088C4: aot_gpr_31 = (0x08A088CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 59u, 0x08A088CCu, 0x08AB4D70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 175u, 0x08AB4D70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A088CCu) goto L_08A088CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A088CC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1140)))))); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -1631,8 +1798,8 @@ L_08A0895C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A08974: @@ -1730,8 +1897,21 @@ L_08A08A98: L_08A08AA0: aot_gpr_31 = (0x08A08AA8u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 73u, 0x08A08AA8u, 0x08AB4D70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 175u, 0x08AB4D70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08AA8u) goto L_08A08AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08AA8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(1140)))))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -1762,8 +1942,8 @@ L_08A08AD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A08AE0: @@ -1774,8 +1954,21 @@ L_08A08AE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x08A08AFCu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 79u, 0x08A08AFCu, 0x08906F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 655u, 0x08906F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08AFCu) goto L_08A08AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08AFC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1959,8 +2152,21 @@ L_08A08C28: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A08C38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 102u, 0x08A08C38u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08C38u) goto L_08A08C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08C38: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1971,8 +2177,21 @@ L_08A08C38: L_08A08C40: aot_gpr_31 = (0x08A08C48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 104u, 0x08A08C48u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08C48u) goto L_08A08C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08C48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1983,8 +2202,21 @@ L_08A08C48: L_08A08C50: aot_gpr_31 = (0x08A08C58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 106u, 0x08A08C58u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08C58u) goto L_08A08C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08C58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2047,8 +2279,21 @@ L_08A08CA4: L_08A08CAC: aot_gpr_31 = (0x08A08CB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 115u, 0x08A08CB4u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08CB4u) goto L_08A08CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08CB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2061,8 +2306,21 @@ L_08A08CBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A08CCCu); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 117u, 0x08A08CCCu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08CCCu) goto L_08A08CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08CCC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-16385)); @@ -2079,8 +2337,21 @@ L_08A08CCC: L_08A08CEC: aot_gpr_31 = (0x08A08CF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 119u, 0x08A08CF4u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08CF4u) goto L_08A08CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08CF4: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); @@ -2093,8 +2364,21 @@ L_08A08CFC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A08D08u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 121u, 0x08A08D08u, 0x089105E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 94u, 0x089105E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08D08u) goto L_08A08D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08D08: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2166,8 +2450,21 @@ L_08A08D64: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(1930)))))); aot_gpr_31 = (0x08A08D70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 126u, 0x08A08D70u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08D70u) goto L_08A08D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08D70: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2208,8 +2505,21 @@ L_08A08DA4: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A08DB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 132u, 0x08A08DB4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08DB4u) goto L_08A08DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08DB4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2228,8 +2538,21 @@ L_08A08DC4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2232))); aot_gpr_31 = (0x08A08DD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 135u, 0x08A08DD0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08DD0u) goto L_08A08DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08DD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2241,8 +2564,21 @@ L_08A08DD8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2232))); aot_gpr_31 = (0x08A08DE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 137u, 0x08A08DE4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08DE4u) goto L_08A08DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08DE4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2252))); aot_gpr_31 = (0x08A08DF0u); @@ -2262,8 +2598,8 @@ L_08A08DFC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A08E14: @@ -2318,8 +2654,8 @@ L_08A08E88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A08EA8: @@ -2330,8 +2666,21 @@ L_08A08EA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A08EC4u); aot_gpr_4 = (0u | 44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 146u, 0x08A08EC4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A08EC4u) goto L_08A08EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A08EC4: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2358,8 +2707,8 @@ L_08A08EE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A08F00: @@ -2978,8 +3327,8 @@ L_08A094A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(3124))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(3136)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A094D8: @@ -3045,8 +3394,8 @@ L_08A09574: goto L_08A0958C; L_08A0958C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09594: @@ -3075,8 +3424,8 @@ L_08A09594: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(12), ctx.vfpu_scalar_bits_ct<33u>()); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(16), ctx.vfpu_scalar_bits_ct<65u>()); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A095FC: @@ -3455,8 +3804,21 @@ L_08A09944: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(12), ctx.gpr[19]); aot_gpr_31 = (0x08A09978u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 236u, 0x08A09978u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A09978u) goto L_08A09978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A09978: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29552))); aot_gpr_5 = (4608u << 16u); @@ -3515,8 +3877,8 @@ L_08A09A04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1316))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1328)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09A34: @@ -3574,8 +3936,8 @@ L_08A09AB0: goto L_08A09AC8; L_08A09AC8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09AD0: @@ -3658,8 +4020,8 @@ L_08A09AD0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09B2C: @@ -3831,8 +4193,8 @@ L_08A09CC4: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09CF4: @@ -3997,8 +4359,8 @@ L_08A09E84: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09EA8: @@ -4016,8 +4378,8 @@ L_08A09EA8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(33), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09EE0: @@ -4045,8 +4407,8 @@ L_08A09EE0: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(33), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09F14: @@ -4061,8 +4423,21 @@ L_08A09F14: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x08A09F40u); aot_gpr_5 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 278u, 0x08A09F40u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A09F40u) goto L_08A09F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A09F40: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4090,16 +4465,16 @@ L_08A09F5C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09F78: ctx.gpr[2] = (2209u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-24712)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09F84: @@ -4111,8 +4486,8 @@ L_08A09F94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09FA0: @@ -4132,8 +4507,21 @@ L_08A09FBC: goto L_08A09FC4; L_08A09FC4: aot_gpr_31 = (0x08A09FCCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 288u, 0x08A09FCCu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A09FCCu) goto L_08A09FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A09FCC: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -4154,8 +4542,8 @@ L_08A09FE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A09FFC: @@ -4177,14 +4565,40 @@ L_08A0A018: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08A0A02Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 293u, 0x08A0A02Cu, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A02Cu) goto L_08A0A02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A02C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0A038u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 294u, 0x08A0A038u, 0x08A9A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A038u) goto L_08A0A038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A038: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4204,15 +4618,15 @@ L_08A0A04C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A060: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 7u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A068: @@ -4225,8 +4639,21 @@ L_08A0A068: aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); aot_gpr_31 = (0x08A0A08Cu); aot_gpr_5 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 299u, 0x08A0A08Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A08Cu) goto L_08A0A08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A08C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4248,8 +4675,8 @@ L_08A0A0A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A0B4: @@ -4278,8 +4705,8 @@ L_08A0A0E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A0EC: @@ -4292,8 +4719,21 @@ L_08A0A0EC: aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); aot_gpr_31 = (0x08A0A110u); aot_gpr_5 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 307u, 0x08A0A110u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A110u) goto L_08A0A110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A110: aot_gpr_5 = (ctx.gpr[2] | 0u); ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -4338,8 +4778,8 @@ L_08A0A164: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A170: @@ -4353,8 +4793,8 @@ L_08A0A184: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A190: @@ -4363,8 +4803,21 @@ L_08A0A190: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A0A1A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 313u, 0x08A0A1A8u, 0x08A9A720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 300u, 0x08A9A720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A1A8u) goto L_08A0A1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A1A8: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28800)); @@ -4379,8 +4832,8 @@ L_08A0A1A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A1DC: @@ -4392,8 +4845,21 @@ L_08A0A1DC: ctx.gpr[17] = (aot_gpr_5 | 0u); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A0A200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 315u, 0x08A0A200u, 0x08A9A720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 300u, 0x08A9A720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A200u) goto L_08A0A200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A200: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28800)); @@ -4414,8 +4880,21 @@ L_08A0A200: L_08A0A230: aot_gpr_31 = (0x08A0A238u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 317u, 0x08A0A238u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A238u) goto L_08A0A238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A238: aot_gpr_4 = (ctx.gpr[2] << 6u); aot_gpr_5 = (2246u << 16u); @@ -4436,8 +4915,21 @@ L_08A0A238: aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); aot_gpr_31 = (0x08A0A284u); aot_gpr_5 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 318u, 0x08A0A284u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A284u) goto L_08A0A284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A284: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -4460,8 +4952,21 @@ L_08A0A2A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0A2B0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 322u, 0x08A0A2B0u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A2B0u) goto L_08A0A2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A2B0: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); @@ -4470,8 +4975,8 @@ L_08A0A2B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A2CC: @@ -4501,8 +5006,21 @@ L_08A0A2E8: } L_08A0A304: aot_gpr_31 = (0x08A0A30Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 326u, 0x08A0A30Cu, 0x088F2DDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 608u, 0x088F2DDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A30Cu) goto L_08A0A30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A30C: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -4517,14 +5035,40 @@ L_08A0A314: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08A0A328u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 328u, 0x08A0A328u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A328u) goto L_08A0A328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A328: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0A334u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 329u, 0x08A0A334u, 0x08A9A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A334u) goto L_08A0A334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A334: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08A0A338; @@ -4546,8 +5090,8 @@ L_08A0A348: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A35C: @@ -4560,8 +5104,21 @@ L_08A0A35C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_5); aot_gpr_31 = (0x08A0A380u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 334u, 0x08A0A380u, 0x08A9AC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A380u) goto L_08A0A380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A380: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(32), static_cast(aot_gpr_4)); @@ -4569,8 +5126,21 @@ L_08A0A380: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0A398u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 335u, 0x08A0A398u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A398u) goto L_08A0A398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A398: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); @@ -4604,16 +5174,42 @@ L_08A0A3AC: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08A0A3D8u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 337u, 0x08A0A3D8u, 0x088F5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 409u, 0x088F5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A3D8u) goto L_08A0A3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A3D8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(112), ctx.gpr[2]); goto L_08A0A3DC; L_08A0A3DC: aot_gpr_31 = (0x08A0A3E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 339u, 0x08A0A3E4u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A3E4u) goto L_08A0A3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A3E4: { const bool branch_taken = static_cast(ctx.gpr[2]) < 0; if (branch_taken) { @@ -4624,8 +5220,21 @@ L_08A0A3E4: L_08A0A3EC: aot_gpr_31 = (0x08A0A3F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 341u, 0x08A0A3F4u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A3F4u) goto L_08A0A3F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A3F4: ctx.gpr[17] = (ctx.gpr[2] << 6u); aot_gpr_4 = (2246u << 16u); @@ -4734,8 +5343,21 @@ L_08A0A49C: L_08A0A4A8: aot_gpr_31 = (0x08A0A4B0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 354u, 0x08A0A4B0u, 0x088F23C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 472u, 0x088F23C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A4B0u) goto L_08A0A4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A4B0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(32))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(57), static_cast(aot_gpr_4)); @@ -4747,8 +5369,8 @@ L_08A0A4B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A4D0: @@ -4784,8 +5406,21 @@ L_08A0A524: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0A538u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 358u, 0x08A0A538u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A538u) goto L_08A0A538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A538: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -4807,8 +5442,21 @@ L_08A0A554: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0A568u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 361u, 0x08A0A568u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A568u) goto L_08A0A568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A568: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(52)))))); @@ -4816,8 +5464,21 @@ L_08A0A568: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(24)))))); aot_gpr_31 = (0x08A0A580u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 362u, 0x08A0A580u, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A580u) goto L_08A0A580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A580: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -4832,8 +5493,8 @@ L_08A0A594: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A5AC: @@ -4890,8 +5551,21 @@ L_08A0A644: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A0A650u); aot_gpr_5 = (ctx.gpr[18] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 368u, 0x08A0A650u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A650u) goto L_08A0A650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A650: aot_gpr_4 = (aot_gpr_16 & 4u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4929,8 +5603,8 @@ L_08A0A690: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A6A8: @@ -4953,14 +5627,27 @@ L_08A0A6A8: aot_gpr_4 = (aot_gpr_5 + static_cast(-28736)); aot_gpr_31 = (0x08A0A6F4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 374u, 0x08A0A6F4u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A6F4u) goto L_08A0A6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A6F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0A700: @@ -4993,8 +5680,21 @@ L_08A0A74C: aot_gpr_6 = (aot_gpr_29 + static_cast(56)); aot_gpr_31 = (0x08A0A75Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 377u, 0x08A0A75Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A75Cu) goto L_08A0A75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A75C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(56))); @@ -5064,8 +5764,21 @@ L_08A0A7C4: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(3)))))); aot_gpr_31 = (0x08A0A800u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 384u, 0x08A0A800u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A800u) goto L_08A0A800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A800: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5140,15 +5853,41 @@ L_08A0A890: L_08A0A894: aot_gpr_31 = (0x08A0A89Cu); aot_gpr_5 = (ctx.gpr[18] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 395u, 0x08A0A89Cu, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A89Cu) goto L_08A0A89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A89C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A0A8ACu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 396u, 0x08A0A8ACu, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A8ACu) goto L_08A0A8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A8AC: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -5160,8 +5899,21 @@ L_08A0A8AC: L_08A0A8B8: aot_gpr_31 = (0x08A0A8C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 398u, 0x08A0A8C0u, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A8C0u) goto L_08A0A8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A8C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(96))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5176,8 +5928,21 @@ L_08A0A8CC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A0A8DCu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 400u, 0x08A0A8DCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A8DCu) goto L_08A0A8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A8DC: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(57))); @@ -5299,8 +6064,21 @@ L_08A0A998: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); aot_gpr_31 = (0x08A0A9A4u); aot_gpr_5 = (aot_gpr_16 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 413u, 0x08A0A9A4u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0A9A4u) goto L_08A0A9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0A9A4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); @@ -5405,8 +6183,8 @@ L_08A0AA90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0AACC: @@ -5417,8 +6195,21 @@ L_08A0AACC: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(16), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08A0AAE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 422u, 0x08A0AAE8u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AAE8u) goto L_08A0AAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AAE8: aot_gpr_4 = (ctx.gpr[2] << 6u); aot_gpr_5 = (2246u << 16u); @@ -5440,8 +6231,21 @@ L_08A0AAE8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A0AB38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 423u, 0x08A0AB38u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AB38u) goto L_08A0AB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AB38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -5461,8 +6265,21 @@ L_08A0AB54: ctx.gpr[7] = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x08A0AB70u); ctx.gpr[8] = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 425u, 0x08A0AB70u, 0x088F5118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 252u, 0x088F5118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AB70u) goto L_08A0AB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AB70: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5474,8 +6291,8 @@ L_08A0AB78: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0AB84: @@ -5494,8 +6311,21 @@ L_08A0AB84: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x08A0ABC0u); aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 428u, 0x08A0ABC0u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0ABC0u) goto L_08A0ABC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0ABC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5564,8 +6394,8 @@ L_08A0AC1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0AC3C: @@ -5651,8 +6481,21 @@ L_08A0AD48: aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x08A0AD54u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 443u, 0x08A0AD54u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AD54u) goto L_08A0AD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AD54: aot_gpr_4 = (aot_gpr_16 & 4u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5703,8 +6546,8 @@ L_08A0ADC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0ADE0: @@ -5732,8 +6575,21 @@ L_08A0AE14: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x08A0AE28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 450u, 0x08A0AE28u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AE28u) goto L_08A0AE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AE28: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5747,8 +6603,21 @@ L_08A0AE34: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0AE44u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 452u, 0x08A0AE44u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AE44u) goto L_08A0AE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AE44: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(104), 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5780,8 +6649,21 @@ L_08A0AE74: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A0AE80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 456u, 0x08A0AE80u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AE80u) goto L_08A0AE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AE80: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -5804,8 +6686,8 @@ L_08A0AEA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0AEB8: @@ -5825,8 +6707,21 @@ L_08A0AEB8: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A0AEF8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 460u, 0x08A0AEF8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AEF8u) goto L_08A0AEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AEF8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5840,8 +6735,21 @@ L_08A0AF04: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A0AF14u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 462u, 0x08A0AF14u, 0x08ADBFCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 975u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 975u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 975u, 0x08ADBFCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AF14u) goto L_08A0AF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AF14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(20)))))); @@ -5858,8 +6766,8 @@ L_08A0AF30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0AF48: @@ -5901,8 +6809,21 @@ L_08A0AFA8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(120), static_cast(0u)); aot_gpr_31 = (0x08A0AFB4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 467u, 0x08A0AFB4u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0AFB4u) goto L_08A0AFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0AFB4: ctx.gpr[17] = (ctx.gpr[2] << 6u); aot_gpr_4 = (2246u << 16u); @@ -6042,8 +6963,21 @@ L_08A0B0A8: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A0B0B8u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 483u, 0x08A0B0B8u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B0B8u) goto L_08A0B0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B0B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(128))); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(60), static_cast(aot_gpr_4)); @@ -6054,8 +6988,21 @@ L_08A0B0B8: ctx.gpr[8] = (0u | 100u); aot_gpr_31 = (0x08A0B0DCu); ctx.gpr[9] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 484u, 0x08A0B0DCu, 0x088F5118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 252u, 0x088F5118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B0DCu) goto L_08A0B0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B0DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6119,8 +7066,21 @@ L_08A0B154: ctx.gpr[7] = (0u + static_cast(-1)); aot_gpr_31 = (0x08A0B170u); ctx.gpr[9] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 491u, 0x08A0B170u, 0x088F5118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 252u, 0x088F5118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B170u) goto L_08A0B170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B170: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6133,8 +7093,21 @@ L_08A0B178: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A0B188u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 493u, 0x08A0B188u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B188u) goto L_08A0B188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B188: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(80)))))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_4); @@ -6144,8 +7117,21 @@ L_08A0B188: aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); aot_gpr_31 = (0x08A0B1A8u); aot_gpr_5 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 494u, 0x08A0B1A8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B1A8u) goto L_08A0B1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B1A8: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -6161,8 +7147,21 @@ L_08A0B1B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_6); aot_gpr_31 = (0x08A0B1C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 496u, 0x08A0B1C8u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B1C8u) goto L_08A0B1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B1C8: aot_gpr_5 = (ctx.gpr[2] << 6u); aot_gpr_4 = (2246u << 16u); @@ -6180,8 +7179,21 @@ L_08A0B1E8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A0B1F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 499u, 0x08A0B1F8u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B1F8u) goto L_08A0B1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B1F8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); @@ -6190,8 +7202,8 @@ L_08A0B1F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0B214: @@ -6269,15 +7281,28 @@ L_08A0B2B8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(4000))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0B2D0: aot_gpr_31 = (0x08A0B2D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 508u, 0x08A0B2D8u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B2D8u) goto L_08A0B2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B2D8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6294,8 +7319,21 @@ L_08A0B2E0: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08A0B300u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 510u, 0x08A0B300u, 0x089476F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 711u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 711u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 711u, 0x089476F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B300u) goto L_08A0B300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B300: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); ctx.gpr[17] = (ctx.gpr[28] + static_cast(7696)); @@ -6311,8 +7349,21 @@ L_08A0B314: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08A0B320u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 512u, 0x08A0B320u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B320u) goto L_08A0B320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B320: ctx.gpr[21] = (ctx.gpr[2] | 0u); if (ctx.gpr[21] == 0u) { @@ -6333,15 +7384,41 @@ L_08A0B33C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-8648)); aot_gpr_31 = (0x08A0B348u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 516u, 0x08A0B348u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B348u) goto L_08A0B348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B348: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x08A0B358u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 517u, 0x08A0B358u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B358u) goto L_08A0B358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B358: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(23), static_cast(0u)); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6368,8 +7445,21 @@ L_08A0B368: ctx.gpr[11] = (0u | 20u); aot_gpr_31 = (0x08A0B3B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 519u, 0x08A0B3B0u, 0x089B8320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 35u, 0x089B8320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B3B0u) goto L_08A0B3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B3B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6380,8 +7470,21 @@ L_08A0B3B0: L_08A0B3B8: aot_gpr_31 = (0x08A0B3C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 521u, 0x08A0B3C0u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B3C0u) goto L_08A0B3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B3C0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6398,8 +7501,21 @@ L_08A0B3C8: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08A0B3E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 523u, 0x08A0B3E8u, 0x0894774Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 716u, 0x0894774Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B3E8u) goto L_08A0B3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B3E8: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); ctx.gpr[17] = (ctx.gpr[28] + static_cast(7696)); @@ -6415,8 +7531,21 @@ L_08A0B3FC: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08A0B408u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 525u, 0x08A0B408u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B408u) goto L_08A0B408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B408: ctx.gpr[21] = (ctx.gpr[2] | 0u); if (ctx.gpr[21] == 0u) { @@ -6437,15 +7566,41 @@ L_08A0B424: aot_gpr_5 = (ctx.gpr[28] + static_cast(-8640)); aot_gpr_31 = (0x08A0B430u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 529u, 0x08A0B430u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B430u) goto L_08A0B430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B430: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x08A0B440u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 530u, 0x08A0B440u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B440u) goto L_08A0B440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B440: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(23), static_cast(0u)); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6472,8 +7627,21 @@ L_08A0B450: ctx.gpr[11] = (0u | 20u); aot_gpr_31 = (0x08A0B498u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 532u, 0x08A0B498u, 0x089B8320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 35u, 0x089B8320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B498u) goto L_08A0B498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B498: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6484,8 +7652,21 @@ L_08A0B498: L_08A0B4A0: aot_gpr_31 = (0x08A0B4A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 534u, 0x08A0B4A8u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B4A8u) goto L_08A0B4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B4A8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6502,8 +7683,21 @@ L_08A0B4B0: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08A0B4D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 536u, 0x08A0B4D0u, 0x089477A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 721u, 0x089477A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B4D0u) goto L_08A0B4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B4D0: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); ctx.gpr[17] = (ctx.gpr[28] + static_cast(7696)); @@ -6519,8 +7713,21 @@ L_08A0B4E4: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08A0B4F0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 538u, 0x08A0B4F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B4F0u) goto L_08A0B4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B4F0: ctx.gpr[21] = (ctx.gpr[2] | 0u); if (ctx.gpr[21] == 0u) { @@ -6541,15 +7748,41 @@ L_08A0B50C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-8632)); aot_gpr_31 = (0x08A0B518u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 542u, 0x08A0B518u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B518u) goto L_08A0B518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B518: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x08A0B528u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 543u, 0x08A0B528u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B528u) goto L_08A0B528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B528: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(23), static_cast(0u)); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6576,8 +7809,21 @@ L_08A0B538: ctx.gpr[11] = (0u | 20u); aot_gpr_31 = (0x08A0B580u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 545u, 0x08A0B580u, 0x089B8320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 35u, 0x089B8320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B580u) goto L_08A0B580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B580: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6588,8 +7834,21 @@ L_08A0B580: L_08A0B588: aot_gpr_31 = (0x08A0B590u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 547u, 0x08A0B590u, 0x0894763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 695u, 0x0894763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B590u) goto L_08A0B590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B590: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6606,8 +7865,21 @@ L_08A0B598: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08A0B5B8u); aot_gpr_4 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 549u, 0x08A0B5B8u, 0x08A35DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 464u, 0x08A35DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B5B8u) goto L_08A0B5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B5B8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); ctx.gpr[20] = (ctx.gpr[28] + static_cast(7696)); @@ -6623,8 +7895,21 @@ L_08A0B5CC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A0B5D8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 551u, 0x08A0B5D8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B5D8u) goto L_08A0B5D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B5D8: ctx.gpr[21] = (ctx.gpr[2] | 0u); if (ctx.gpr[21] == 0u) { @@ -6645,15 +7930,41 @@ L_08A0B5F4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-8624)); aot_gpr_31 = (0x08A0B600u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 555u, 0x08A0B600u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B600u) goto L_08A0B600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B600: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 1000u); aot_gpr_31 = (0x08A0B610u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 556u, 0x08A0B610u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B610u) goto L_08A0B610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B610: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(23), static_cast(0u)); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -6680,8 +7991,21 @@ L_08A0B620: ctx.gpr[11] = (0u | 20u); aot_gpr_31 = (0x08A0B668u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 558u, 0x08A0B668u, 0x089B8320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 35u, 0x089B8320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B668u) goto L_08A0B668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B668: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6692,8 +8016,21 @@ L_08A0B668: L_08A0B670: aot_gpr_31 = (0x08A0B678u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 560u, 0x08A0B678u, 0x08947870u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 733u, 0x08947870u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B678u) goto L_08A0B678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B678: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6717,8 +8054,21 @@ L_08A0B688: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A0B6A8u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 563u, 0x08A0B6A8u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B6A8u) goto L_08A0B6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B6A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6741,8 +8091,21 @@ L_08A0B6C0: ctx.gpr[17] = (aot_gpr_4 + static_cast(3936)); aot_gpr_31 = (0x08A0B6D4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 566u, 0x08A0B6D4u, 0x08ADC204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 32u, 0x08ADC204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B6D4u) goto L_08A0B6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B6D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -6781,8 +8144,21 @@ L_08A0B718: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0B724u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 573u, 0x08A0B724u, 0x088851D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 260u, 0x088851D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0B724u) goto L_08A0B724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0B724: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_4 = (ctx.gpr[28] + static_cast(5824)); @@ -6809,8 +8185,8 @@ L_08A0B740: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(328))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0B764: @@ -6839,8 +8215,8 @@ L_08A0B764: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0B7C8: @@ -6856,8 +8232,8 @@ L_08A0B7DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0B7F0: @@ -7009,8 +8385,8 @@ L_08A0B7F0: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(816), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0B944: @@ -7160,8 +8536,8 @@ L_08A0BA48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BA78: @@ -7460,8 +8836,8 @@ L_08A0BD5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(184), std::bit_cast(ctx.fpr[16])); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BDAC: @@ -7533,27 +8909,66 @@ L_08A0BE34: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A0BE48u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 618u, 0x08A0BE48u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0BE48u) goto L_08A0BE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0BE48: aot_gpr_5 = (aot_gpr_16 + static_cast(1796)); aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08A0BE58u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 619u, 0x08A0BE58u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0BE58u) goto L_08A0BE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0BE58: aot_gpr_31 = (0x08A0BE60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0129->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0129_entry, 620u, 0x08A0BE60u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0BE60u) goto L_08A0BE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0BE60: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BE74: @@ -7575,8 +8990,8 @@ L_08A0BE9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BEA8: @@ -7592,8 +9007,8 @@ L_08A0BEC4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BED0: @@ -7609,8 +9024,8 @@ L_08A0BEEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BEF8: @@ -7626,8 +9041,8 @@ L_08A0BF14: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BF20: @@ -7643,8 +9058,8 @@ L_08A0BF3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BF48: @@ -7700,8 +9115,8 @@ L_08A0BFA8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0BFC0: diff --git a/profiles/vcs/generated/generated_unit_0130.cpp b/profiles/vcs/generated/generated_unit_0130.cpp index 8393945..96c81f6 100644 --- a/profiles/vcs/generated/generated_unit_0130.cpp +++ b/profiles/vcs/generated/generated_unit_0130.cpp @@ -775,6 +775,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A0C000u; + if (local_delta_v813 >= 16288u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -791,8 +815,8 @@ LOCAL_SCHED_BOUNDARY: L_08A0C000: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C008: @@ -808,8 +832,21 @@ L_08A0C008: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08A0C038u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 3u, 0x08A0C038u, 0x08A0BED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 625u, 0x08A0BED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C038u) goto L_08A0C038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C038: ctx.gpr[19] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[20]) ? 1u : 0u); @@ -826,24 +863,63 @@ L_08A0C048: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08A0C05Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 5u, 0x08A0C05Cu, 0x08A0BF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 631u, 0x08A0BF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C05Cu) goto L_08A0C05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C05C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08A0C070u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 6u, 0x08A0C070u, 0x08A0BED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 625u, 0x08A0BED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C070u) goto L_08A0C070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C070: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08A0C084u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 7u, 0x08A0C084u, 0x08A0BED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 625u, 0x08A0BED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C084u) goto L_08A0C084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C084: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[20]) ? 1u : 0u); @@ -866,8 +942,8 @@ L_08A0C094: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C0B4: @@ -879,16 +955,42 @@ L_08A0C0B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A0C0D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 10u, 0x08A0C0D4u, 0x08A0BED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 625u, 0x08A0BED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C0D4u) goto L_08A0C0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C0D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0C0E8u); aot_gpr_5 = (aot_gpr_5 << 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 11u, 0x08A0C0E8u, 0x08A0BE74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 621u, 0x08A0BE74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C0E8u) goto L_08A0C0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C0E8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -898,8 +1000,8 @@ L_08A0C0E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C0FC: @@ -915,8 +1017,21 @@ L_08A0C0FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08A0C12Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 13u, 0x08A0C12Cu, 0x08A0BED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 625u, 0x08A0BED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C12Cu) goto L_08A0C12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C12C: ctx.gpr[19] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[20]) ? 1u : 0u); @@ -933,8 +1048,21 @@ L_08A0C13C: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08A0C150u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 15u, 0x08A0C150u, 0x08A0BF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 631u, 0x08A0BF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C150u) goto L_08A0C150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C150: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[20]) ? 1u : 0u); @@ -957,8 +1085,8 @@ L_08A0C160: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C180: @@ -974,8 +1102,21 @@ L_08A0C180: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_31 = (0x08A0C1B4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 18u, 0x08A0C1B4u, 0x08A0BED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 625u, 0x08A0BED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C1B4u) goto L_08A0C1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C1B4: ctx.gpr[18] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -992,8 +1133,21 @@ L_08A0C1C4: ctx.gpr[20] = (ctx.gpr[20] + ctx.gpr[21]); aot_gpr_31 = (0x08A0C1D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 20u, 0x08A0C1D8u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C1D8u) goto L_08A0C1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C1D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (static_cast(aot_gpr_4) < 3 ? 1u : 0u); @@ -1037,8 +1191,21 @@ L_08A0C208: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_31 = (0x08A0C214u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 26u, 0x08A0C214u, 0x08A0BF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 631u, 0x08A0BF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C214u) goto L_08A0C214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C214: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1050,8 +1217,21 @@ L_08A0C21C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_31 = (0x08A0C228u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 28u, 0x08A0C228u, 0x08A0BF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 629u, 0x08A0BF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C228u) goto L_08A0C228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C228: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1074,8 +1254,21 @@ L_08A0C240: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0C250u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 31u, 0x08A0C250u, 0x08A0BED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 625u, 0x08A0BED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C250u) goto L_08A0C250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C250: ctx.gpr[18] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -1117,8 +1310,8 @@ L_08A0C288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C2AC: @@ -1140,38 +1333,116 @@ L_08A0C2D8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A0C2E4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 37u, 0x08A0C2E4u, 0x08A0BF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 631u, 0x08A0BF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C2E4u) goto L_08A0C2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C2E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); aot_gpr_31 = (0x08A0C2F0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 38u, 0x08A0C2F0u, 0x08A0BED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 625u, 0x08A0BED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C2F0u) goto L_08A0C2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C2F0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(68))); aot_gpr_31 = (0x08A0C2FCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 39u, 0x08A0C2FCu, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C2FCu) goto L_08A0C2FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C2FC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(69))); aot_gpr_31 = (0x08A0C308u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 40u, 0x08A0C308u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C308u) goto L_08A0C308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C308: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(70))); aot_gpr_31 = (0x08A0C314u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 41u, 0x08A0C314u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C314u) goto L_08A0C314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C314: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(71))); aot_gpr_31 = (0x08A0C320u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 42u, 0x08A0C320u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C320u) goto L_08A0C320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C320: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0C32Cu); @@ -1196,8 +1467,21 @@ L_08A0C350: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0C35Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 47u, 0x08A0C35Cu, 0x08A0BFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 638u, 0x08A0BFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C35Cu) goto L_08A0C35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C35C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1207,8 +1491,8 @@ L_08A0C35C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C370: @@ -1220,87 +1504,256 @@ L_08A0C370: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A0C390u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 49u, 0x08A0C390u, 0x08A0BE74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 621u, 0x08A0BE74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C390u) goto L_08A0C390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C390: aot_gpr_4 = (0u | 80u); aot_gpr_31 = (0x08A0C39Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 50u, 0x08A0C39Cu, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C39Cu) goto L_08A0C39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C39C: aot_gpr_31 = (0x08A0C3A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 51u, 0x08A0C3A4u, 0x089E6870u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 521u, 0x089E6870u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C3A4u) goto L_08A0C3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C3A4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A0C3B0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 52u, 0x08A0C3B0u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C3B0u) goto L_08A0C3B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C3B0: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08A0C3BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 53u, 0x08A0C3BCu, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C3BCu) goto L_08A0C3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C3BC: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08A0C3C8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 54u, 0x08A0C3C8u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C3C8u) goto L_08A0C3C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C3C8: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08A0C3D4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 55u, 0x08A0C3D4u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C3D4u) goto L_08A0C3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C3D4: aot_gpr_4 = (0u | 6u); aot_gpr_31 = (0x08A0C3E0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 56u, 0x08A0C3E0u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C3E0u) goto L_08A0C3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C3E0: aot_gpr_4 = (0u | 8u); aot_gpr_31 = (0x08A0C3ECu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 57u, 0x08A0C3ECu, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C3ECu) goto L_08A0C3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C3EC: aot_gpr_4 = (0u | 9u); aot_gpr_31 = (0x08A0C3F8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 58u, 0x08A0C3F8u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C3F8u) goto L_08A0C3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C3F8: aot_gpr_4 = (0u | 9u); aot_gpr_31 = (0x08A0C404u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 59u, 0x08A0C404u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C404u) goto L_08A0C404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C404: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08A0C410u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 60u, 0x08A0C410u, 0x08A0BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 623u, 0x08A0BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C410u) goto L_08A0C410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C410: aot_gpr_5 = (19439u << 16u); aot_gpr_5 = (aot_gpr_5 | 44859u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0C424u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 61u, 0x08A0C424u, 0x08A0BF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 629u, 0x08A0BF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C424u) goto L_08A0C424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C424: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C434: @@ -1325,8 +1778,8 @@ L_08A0C468: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C478: @@ -1347,8 +1800,8 @@ L_08A0C478: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C494: @@ -1414,8 +1867,21 @@ L_08A0C56C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0C578u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 69u, 0x08A0C578u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C578u) goto L_08A0C578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C578: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1480,8 +1946,21 @@ L_08A0C578: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0C5D0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 70u, 0x08A0C5D0u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C5D0u) goto L_08A0C5D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C5D0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1564,8 +2043,21 @@ L_08A0C5D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0C63Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 72u, 0x08A0C63Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C63Cu) goto L_08A0C63C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C63C: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] != 0u; @@ -1760,8 +2252,8 @@ L_08A0C77C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0C7BC: @@ -1773,8 +2265,21 @@ L_08A0C7BC: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(208), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A0C808u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 87u, 0x08A0C808u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C808u) goto L_08A0C808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C808: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1995,8 +2500,21 @@ L_08A0C920: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A0C934u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 97u, 0x08A0C934u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0C934u) goto L_08A0C934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0C934: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); @@ -2117,8 +2635,21 @@ L_08A0C9D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0CA04u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 105u, 0x08A0CA04u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CA04u) goto L_08A0CA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CA04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2152,8 +2683,21 @@ L_08A0CA0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0CA44u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 107u, 0x08A0CA44u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CA44u) goto L_08A0CA44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CA44: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2222,8 +2766,8 @@ L_08A0CA98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0CAD4: @@ -2236,8 +2780,21 @@ L_08A0CAD4: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(208), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A0CB24u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 113u, 0x08A0CB24u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CB24u) goto L_08A0CB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CB24: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2457,8 +3014,21 @@ L_08A0CC38: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A0CC4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 123u, 0x08A0CC4Cu, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CC4Cu) goto L_08A0CC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CC4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); @@ -2579,8 +3149,21 @@ L_08A0CCF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0CD1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 131u, 0x08A0CD1Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CD1Cu) goto L_08A0CD1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CD1C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2614,8 +3197,21 @@ L_08A0CD24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0CD5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 133u, 0x08A0CD5Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CD5Cu) goto L_08A0CD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CD5C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2684,8 +3280,8 @@ L_08A0CDB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0CDEC: @@ -2785,13 +3381,39 @@ L_08A0CE50: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x08A0CED4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 143u, 0x08A0CED4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CED4u) goto L_08A0CED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CED4: aot_gpr_31 = (0x08A0CEDCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 144u, 0x08A0CEDCu, 0x08B00DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 233u, 0x08B00DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CEDCu) goto L_08A0CEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CEDC: aot_gpr_4 = (16053u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -2851,13 +3473,39 @@ L_08A0CF04: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_gpr_31 = (0x08A0CF3Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 149u, 0x08A0CF3Cu, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CF3Cu) goto L_08A0CF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CF3C: aot_gpr_31 = (0x08A0CF44u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 150u, 0x08A0CF44u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CF44u) goto L_08A0CF44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CF44: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -2877,8 +3525,21 @@ L_08A0CF4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0CF74u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 152u, 0x08A0CF74u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CF74u) goto L_08A0CF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CF74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2909,8 +3570,21 @@ L_08A0CF90: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A0CFA8u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 156u, 0x08A0CFA8u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CFA8u) goto L_08A0CFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CFA8: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2947,13 +3621,39 @@ L_08A0CFA8: } aot_gpr_31 = (0x08A0CFD0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 157u, 0x08A0CFD0u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CFD0u) goto L_08A0CFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CFD0: aot_gpr_31 = (0x08A0CFD8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 158u, 0x08A0CFD8u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0CFD8u) goto L_08A0CFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0CFD8: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -2973,8 +3673,21 @@ L_08A0CFE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D008u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 160u, 0x08A0D008u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D008u) goto L_08A0D008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D008: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2994,8 +3707,21 @@ L_08A0D014: } aot_gpr_31 = (0x08A0D028u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 163u, 0x08A0D028u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D028u) goto L_08A0D028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D028: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); ctx.fpr[22] = ctx.fpr[22] - ctx.fpr[20]; @@ -3137,13 +3863,39 @@ L_08A0D068: } aot_gpr_31 = (0x08A0D0D8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 169u, 0x08A0D0D8u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D0D8u) goto L_08A0D0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D0D8: aot_gpr_31 = (0x08A0D0E0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 170u, 0x08A0D0E0u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D0E0u) goto L_08A0D0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D0E0: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -3163,8 +3915,21 @@ L_08A0D0E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D110u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 172u, 0x08A0D110u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D110u) goto L_08A0D110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D110: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3307,13 +4072,39 @@ L_08A0D164: } aot_gpr_31 = (0x08A0D1DCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 178u, 0x08A0D1DCu, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D1DCu) goto L_08A0D1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D1DC: aot_gpr_31 = (0x08A0D1E4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 179u, 0x08A0D1E4u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D1E4u) goto L_08A0D1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D1E4: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -3333,8 +4124,21 @@ L_08A0D1EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D214u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 181u, 0x08A0D214u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D214u) goto L_08A0D214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D214: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3438,13 +4242,39 @@ L_08A0D248: } aot_gpr_31 = (0x08A0D2A0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 187u, 0x08A0D2A0u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D2A0u) goto L_08A0D2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D2A0: aot_gpr_31 = (0x08A0D2A8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 188u, 0x08A0D2A8u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D2A8u) goto L_08A0D2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D2A8: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -3464,8 +4294,21 @@ L_08A0D2B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D2D8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 190u, 0x08A0D2D8u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D2D8u) goto L_08A0D2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D2D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3550,13 +4393,39 @@ L_08A0D2EC: } aot_gpr_31 = (0x08A0D340u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 194u, 0x08A0D340u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D340u) goto L_08A0D340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D340: aot_gpr_31 = (0x08A0D348u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 195u, 0x08A0D348u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D348u) goto L_08A0D348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D348: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -3576,8 +4445,21 @@ L_08A0D350: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D378u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 197u, 0x08A0D378u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D378u) goto L_08A0D378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D378: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3701,13 +4583,39 @@ L_08A0D38C: } aot_gpr_31 = (0x08A0D408u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 201u, 0x08A0D408u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D408u) goto L_08A0D408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D408: aot_gpr_31 = (0x08A0D410u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 202u, 0x08A0D410u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D410u) goto L_08A0D410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D410: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -3727,8 +4635,21 @@ L_08A0D418: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D440u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 204u, 0x08A0D440u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D440u) goto L_08A0D440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D440: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3852,13 +4773,39 @@ L_08A0D454: } aot_gpr_31 = (0x08A0D4D0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 208u, 0x08A0D4D0u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D4D0u) goto L_08A0D4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D4D0: aot_gpr_31 = (0x08A0D4D8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 209u, 0x08A0D4D8u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D4D8u) goto L_08A0D4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D4D8: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -3878,8 +4825,21 @@ L_08A0D4E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D508u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 211u, 0x08A0D508u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D508u) goto L_08A0D508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D508: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3960,13 +4920,39 @@ L_08A0D53C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_gpr_31 = (0x08A0D580u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 217u, 0x08A0D580u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D580u) goto L_08A0D580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D580: aot_gpr_31 = (0x08A0D588u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 218u, 0x08A0D588u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D588u) goto L_08A0D588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D588: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[30] | 0u); @@ -3986,8 +4972,21 @@ L_08A0D590: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D5B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 220u, 0x08A0D5B8u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D5B8u) goto L_08A0D5B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D5B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4135,13 +5134,39 @@ L_08A0D660: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_gpr_31 = (0x08A0D6C4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 230u, 0x08A0D6C4u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D6C4u) goto L_08A0D6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D6C4: aot_gpr_31 = (0x08A0D6CCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 231u, 0x08A0D6CCu, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D6CCu) goto L_08A0D6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D6CC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4222,8 +5247,8 @@ L_08A0D73C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(896)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0D77C: @@ -4329,8 +5354,21 @@ L_08A0D888: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0D898u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 248u, 0x08A0D898u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D898u) goto L_08A0D898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D898: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4452,8 +5490,21 @@ L_08A0D898: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D93Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 249u, 0x08A0D93Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D93Cu) goto L_08A0D93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D93C: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(308))); @@ -4491,8 +5542,21 @@ L_08A0D944: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0D988u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 251u, 0x08A0D988u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0D988u) goto L_08A0D988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0D988: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4579,8 +5643,21 @@ L_08A0D990: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A0DA04u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 253u, 0x08A0DA04u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DA04u) goto L_08A0DA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DA04: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] != 0u; @@ -4778,8 +5855,21 @@ L_08A0DB40: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A0DB7Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 267u, 0x08A0DB7Cu, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DB7Cu) goto L_08A0DB7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DB7C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -4837,8 +5927,21 @@ L_08A0DB88: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A0DBE8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 269u, 0x08A0DBE8u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DBE8u) goto L_08A0DBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DBE8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(208), aot_run_words); @@ -4848,8 +5951,21 @@ L_08A0DBE8: } aot_gpr_31 = (0x08A0DBFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 270u, 0x08A0DBFCu, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DBFCu) goto L_08A0DBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DBFC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); @@ -4881,16 +5997,42 @@ L_08A0DC2C: } L_08A0DC34: aot_gpr_31 = (0x08A0DC3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 274u, 0x08A0DC3Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DC3Cu) goto L_08A0DC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DC3C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A0DC40; L_08A0DC40: aot_gpr_31 = (0x08A0DC48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 276u, 0x08A0DC48u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DC48u) goto L_08A0DC48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DC48: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -4920,8 +6062,8 @@ L_08A0DC54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0DC8C: @@ -4968,8 +6110,21 @@ L_08A0DCF4: aot_gpr_5 = (aot_gpr_16 + static_cast(1808)); aot_gpr_31 = (0x08A0DD04u); aot_gpr_6 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 283u, 0x08A0DD04u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DD04u) goto L_08A0DD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DD04: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -5017,8 +6172,21 @@ L_08A0DD4C: aot_gpr_5 = (ctx.gpr[17] + static_cast(1792)); aot_gpr_31 = (0x08A0DD64u); aot_gpr_4 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 289u, 0x08A0DD64u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DD64u) goto L_08A0DD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DD64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5051,8 +6219,8 @@ L_08A0DD84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0DDA0: @@ -5099,8 +6267,21 @@ L_08A0DDF4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0DE18u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 297u, 0x08A0DE18u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DE18u) goto L_08A0DE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DE18: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -5143,8 +6324,21 @@ L_08A0DE28: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A0DE7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 299u, 0x08A0DE7Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0DE7Cu) goto L_08A0DE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0DE7C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5156,8 +6350,8 @@ L_08A0DE7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0DE98: @@ -5572,8 +6766,8 @@ L_08A0E224: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0E238: @@ -5592,8 +6786,8 @@ L_08A0E24C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(4776))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0E264: @@ -5993,8 +7187,8 @@ L_08A0E5C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0E5D0: @@ -6030,8 +7224,8 @@ L_08A0E604: goto L_08A0E608; L_08A0E608: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0E610: @@ -6118,8 +7312,8 @@ L_08A0E69C: goto L_08A0E6AC; L_08A0E6AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0E6B4: @@ -6376,8 +7570,21 @@ L_08A0E7D8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A0E824u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 425u, 0x08A0E824u, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0E824u) goto L_08A0E824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0E824: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (17692u << 16u); @@ -6430,8 +7637,8 @@ L_08A0E874: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0E8A0: @@ -6709,8 +7916,8 @@ L_08A0EB00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0EB24: @@ -6924,8 +8131,21 @@ L_08A0ECE4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A0ED00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 480u, 0x08A0ED00u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0ED00u) goto L_08A0ED00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0ED00: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -6955,8 +8175,8 @@ L_08A0ED34: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(4920))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0ED4C: @@ -7113,8 +8333,8 @@ L_08A0EE94: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5112))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0EEAC: @@ -7270,8 +8490,21 @@ L_08A0EFC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0EFD0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 513u, 0x08A0EFD0u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0EFD0u) goto L_08A0EFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0EFD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7297,8 +8530,21 @@ L_08A0EFE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A0EFF4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 517u, 0x08A0EFF4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0EFF4u) goto L_08A0EFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0EFF4: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[18] = (ctx.gpr[18] & 255u); @@ -7331,8 +8577,8 @@ L_08A0F008: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F050: @@ -7400,8 +8646,8 @@ L_08A0F050: aot_fpr_12 = std::bit_cast(aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F150: @@ -7457,8 +8703,8 @@ L_08A0F150: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F178: @@ -7537,8 +8783,8 @@ L_08A0F1E8: goto L_08A0F1EC; L_08A0F1EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F1F4: @@ -7633,8 +8879,8 @@ L_08A0F278: goto L_08A0F27C; L_08A0F27C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F284: @@ -7683,8 +8929,8 @@ L_08A0F2D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F2E0: @@ -7733,8 +8979,8 @@ L_08A0F330: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F33C: @@ -7777,15 +9023,15 @@ L_08A0F370: goto L_08A0F374; L_08A0F374: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F37C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F384: @@ -7795,8 +9041,21 @@ L_08A0F384: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A0F39Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 563u, 0x08A0F39Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0F39Cu) goto L_08A0F39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0F39C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -7876,8 +9135,8 @@ L_08A0F43C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F448: @@ -8003,8 +9262,21 @@ L_08A0F538: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[23]); aot_gpr_31 = (0x08A0F544u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 587u, 0x08A0F544u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0F544u) goto L_08A0F544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0F544: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -8016,8 +9288,21 @@ L_08A0F544: aot_gpr_6 = (aot_gpr_29 + static_cast(25)); aot_gpr_31 = (0x08A0F56Cu); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 588u, 0x08A0F56Cu, 0x08976A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0F56Cu) goto L_08A0F56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0F56C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24)))))); aot_gpr_5 = (15395u << 16u); @@ -8207,16 +9492,42 @@ L_08A0F6D4: aot_gpr_6 = (aot_gpr_29 + static_cast(49)); aot_gpr_31 = (0x08A0F6ECu); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 610u, 0x08A0F6ECu, 0x08976A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0F6ECu) goto L_08A0F6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0F6EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08A0F700u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 611u, 0x08A0F700u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0F700u) goto L_08A0F700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0F700: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -8416,16 +9727,42 @@ L_08A0F884: aot_gpr_6 = (aot_gpr_29 + static_cast(81)); aot_gpr_31 = (0x08A0F89Cu); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[22]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 633u, 0x08A0F89Cu, 0x08976A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0F89Cu) goto L_08A0F89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0F89C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08A0F8B0u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[22]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 634u, 0x08A0F8B0u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0F8B0u) goto L_08A0F8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0F8B0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); @@ -8529,8 +9866,8 @@ L_08A0F978: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A0F9A4: @@ -9181,8 +10518,21 @@ L_08A0FE10: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08A0FE78u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 694u, 0x08A0FE78u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0FE78u) goto L_08A0FE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0FE78: aot_gpr_4 = (15692u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9748))); @@ -9247,8 +10597,21 @@ L_08A0FE98: ctx.gpr[11] = (ctx.gpr[11] & 255u); aot_gpr_31 = (0x08A0FF64u); ctx.fpr[18] = std::bit_cast(ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0130->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0130_entry, 696u, 0x08A0FF64u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A0FF64u) goto L_08A0FF64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A0FF64: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); diff --git a/profiles/vcs/generated/generated_unit_0131.cpp b/profiles/vcs/generated/generated_unit_0131.cpp index 644b01d..91fc51b 100644 --- a/profiles/vcs/generated/generated_unit_0131.cpp +++ b/profiles/vcs/generated/generated_unit_0131.cpp @@ -745,6 +745,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A10000u; + if (local_delta_v813 >= 16352u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -776,8 +800,21 @@ L_08A10000: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08A10044u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 2u, 0x08A10044u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10044u) goto L_08A10044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10044: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -828,8 +865,21 @@ L_08A1004C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A100F4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 4u, 0x08A100F4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A100F4u) goto L_08A100F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A100F4: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -890,8 +940,21 @@ L_08A100F4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A10160u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 5u, 0x08A10160u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10160u) goto L_08A10160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10160: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -945,8 +1008,21 @@ L_08A10160: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A101B0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 6u, 0x08A101B0u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A101B0u) goto L_08A101B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A101B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1454,8 +1530,21 @@ L_08A10398: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A103F0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 30u, 0x08A103F0u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A103F0u) goto L_08A103F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A103F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9748))); aot_gpr_4 = (16128u << 16u); @@ -1504,8 +1593,21 @@ L_08A1040C: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08A10474u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 32u, 0x08A10474u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10474u) goto L_08A10474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10474: aot_gpr_4 = (15692u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9748))); @@ -1570,8 +1672,21 @@ L_08A10494: ctx.gpr[11] = (ctx.gpr[11] & 255u); aot_gpr_31 = (0x08A10560u); ctx.fpr[18] = std::bit_cast(ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 34u, 0x08A10560u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10560u) goto L_08A10560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10560: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -1649,8 +1764,21 @@ L_08A10598: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08A10640u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 36u, 0x08A10640u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10640u) goto L_08A10640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10640: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3370,8 +3498,21 @@ L_08A10D10: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A10D80u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 100u, 0x08A10D80u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10D80u) goto L_08A10D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10D80: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3424,8 +3565,21 @@ L_08A10D80: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A10DCCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 101u, 0x08A10DCCu, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10DCCu) goto L_08A10DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10DCC: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(944))); goto L_08A10DD0; @@ -3477,8 +3631,21 @@ L_08A10DEC: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08A10E54u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 104u, 0x08A10E54u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10E54u) goto L_08A10E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10E54: aot_gpr_4 = (15692u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9748))); @@ -3543,8 +3710,21 @@ L_08A10E74: ctx.gpr[11] = (ctx.gpr[11] & 255u); aot_gpr_31 = (0x08A10F40u); ctx.fpr[18] = std::bit_cast(ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 106u, 0x08A10F40u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A10F40u) goto L_08A10F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A10F40: { const bool branch_taken = static_cast(ctx.gpr[20]) < 0; if (branch_taken) { @@ -3628,8 +3808,21 @@ L_08A10F80: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08A11028u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 109u, 0x08A11028u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11028u) goto L_08A11028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11028: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3679,8 +3872,21 @@ L_08A11030: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08A110D4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 111u, 0x08A110D4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A110D4u) goto L_08A110D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A110D4: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(952), aot_run_words); @@ -3702,14 +3908,14 @@ L_08A110D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1024)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11118: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11120: @@ -3735,15 +3941,41 @@ L_08A1116C: aot_gpr_4 = (2279u << 16u); aot_gpr_31 = (0x08A11178u); aot_gpr_4 = (aot_gpr_4 + static_cast(25112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 115u, 0x08A11178u, 0x0897F924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 927u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 927u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 927u, 0x0897F924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11178u) goto L_08A11178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11178: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7764), 0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A11188u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 116u, 0x08A11188u, 0x08A063ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 563u, 0x08A063ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11188u) goto L_08A11188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11188: aot_gpr_31 = (0x08A11190u); ctx.pc = 0x08B734D4u; @@ -3805,22 +4037,22 @@ L_08A111EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11200: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11208: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7668), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11214: @@ -3833,8 +4065,21 @@ L_08A11214: aot_gpr_16 = (aot_gpr_4 + static_cast(25112)); aot_gpr_31 = (0x08A1123Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 129u, 0x08A1123Cu, 0x0897F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 931u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 931u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 931u, 0x0897F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1123Cu) goto L_08A1123C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1123C: aot_fpr_16 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); aot_gpr_4 = (18576u << 16u); @@ -4129,8 +4374,8 @@ L_08A114C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A114E4: @@ -4146,8 +4391,8 @@ L_08A114E4: } L_08A114FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11504: @@ -4162,8 +4407,8 @@ L_08A11504: } L_08A11518: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11520: @@ -4190,23 +4435,23 @@ L_08A11544: goto L_08A11548; L_08A11548: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11550: aot_gpr_4 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8360), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1155C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8360), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11564: @@ -4215,8 +4460,21 @@ L_08A11564: aot_gpr_4 = (2279u << 16u); aot_gpr_31 = (0x08A11578u); aot_gpr_4 = (aot_gpr_4 + static_cast(25112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 174u, 0x08A11578u, 0x0897F8C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 921u, 0x0897F8C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11578u) goto L_08A11578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11578: aot_gpr_31 = (0x08A11580u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-8116)); @@ -4226,8 +4484,8 @@ L_08A11580: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1158C: @@ -4236,8 +4494,8 @@ L_08A1158C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(36), ctx.gpr[7]); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A115A0: @@ -4251,15 +4509,15 @@ L_08A115B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A115C0: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A115C8: @@ -4269,8 +4527,21 @@ L_08A115C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A115E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 181u, 0x08A115E0u, 0x08A1A21Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 290u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 290u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 290u, 0x08A1A21Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A115E0u) goto L_08A115E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A115E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4281,16 +4552,29 @@ L_08A115E0: } L_08A115EC: aot_gpr_31 = (0x08A115F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 183u, 0x08A115F4u, 0x088E1B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 45u, 0x088E1B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A115F4u) goto L_08A115F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A115F4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11608: @@ -4298,8 +4582,8 @@ L_08A11608: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(24), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1161C: @@ -4330,8 +4614,8 @@ L_08A11630: aot_gpr_5 = (ctx.hi); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11668: @@ -4351,8 +4635,8 @@ L_08A11668: aot_gpr_5 = (ctx.hi); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A116A8: @@ -4377,8 +4661,21 @@ L_08A116C4: } L_08A116CC: aot_gpr_31 = (0x08A116D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 192u, 0x08A116D4u, 0x088E1B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 42u, 0x088E1B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A116D4u) goto L_08A116D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A116D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4389,8 +4686,21 @@ L_08A116D4: L_08A116DC: aot_gpr_31 = (0x08A116E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 194u, 0x08A116E4u, 0x08A19FACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 249u, 0x08A19FACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A116E4u) goto L_08A116E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A116E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4410,14 +4720,40 @@ L_08A116F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08A11700u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 197u, 0x08A11700u, 0x088E1AACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 37u, 0x088E1AACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11700u) goto L_08A11700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11700: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08A1170Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 198u, 0x08A1170Cu, 0x08A19ECCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 244u, 0x08A19ECCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1170Cu) goto L_08A1170C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1170C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -4468,8 +4804,8 @@ L_08A11748: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11758: @@ -4477,15 +4813,28 @@ L_08A11758: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A11768u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 206u, 0x08A11768u, 0x08865A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 397u, 0x08865A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11768u) goto L_08A11768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11768: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11778: @@ -4493,15 +4842,28 @@ L_08A11778: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A11788u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 208u, 0x08A11788u, 0x08865F48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 471u, 0x08865F48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11788u) goto L_08A11788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11788: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11798: @@ -4509,15 +4871,28 @@ L_08A11798: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A117A8u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 210u, 0x08A117A8u, 0x08865A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 397u, 0x08865A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A117A8u) goto L_08A117A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A117A8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A117B8: @@ -4525,15 +4900,28 @@ L_08A117B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A117C8u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 212u, 0x08A117C8u, 0x08865F48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 471u, 0x08865F48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A117C8u) goto L_08A117C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A117C8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A117D8: @@ -4541,15 +4929,28 @@ L_08A117D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A117E8u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 214u, 0x08A117E8u, 0x08866BC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 662u, 0x08866BC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A117E8u) goto L_08A117E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A117E8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A117F8: @@ -4557,15 +4958,28 @@ L_08A117F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A11808u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 216u, 0x08A11808u, 0x0886638Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 536u, 0x0886638Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11808u) goto L_08A11808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11808: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11818: @@ -4573,15 +4987,28 @@ L_08A11818: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A11828u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 218u, 0x08A11828u, 0x088667A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 599u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 599u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 599u, 0x088667A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11828u) goto L_08A11828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11828: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11838: @@ -4589,15 +5016,28 @@ L_08A11838: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A11848u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 220u, 0x08A11848u, 0x08866F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 711u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 711u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 711u, 0x08866F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11848u) goto L_08A11848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11848: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11858: @@ -4605,15 +5045,28 @@ L_08A11858: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A11868u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 222u, 0x08A11868u, 0x08862A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 447u, 0x08862A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11868u) goto L_08A11868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11868: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11878: @@ -4669,8 +5122,8 @@ L_08A11878: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A118A0: @@ -4686,8 +5139,21 @@ L_08A118A0: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A118F4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 225u, 0x08A118F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A118F4u) goto L_08A118F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A118F4: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); { const bool branch_taken = static_cast(ctx.gpr[22]) >= 0; @@ -4710,8 +5176,21 @@ L_08A11920: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08A1192Cu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 228u, 0x08A1192Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1192Cu) goto L_08A1192C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1192C: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -4725,8 +5204,21 @@ L_08A11938: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A11944u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 230u, 0x08A11944u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11944u) goto L_08A11944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11944: aot_gpr_17 = (ctx.gpr[21] | 0u); goto L_08A11948; @@ -4762,16 +5254,42 @@ L_08A11988: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A11994u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 234u, 0x08A11994u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11994u) goto L_08A11994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11994: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A11998; L_08A11998: aot_gpr_31 = (0x08A119A0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 236u, 0x08A119A0u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A119A0u) goto L_08A119A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A119A0: ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[0]; { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[20])}; @@ -4796,8 +5314,21 @@ L_08A119A0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A119D4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 237u, 0x08A119D4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A119D4u) goto L_08A119D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A119D4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4807,18 +5338,57 @@ L_08A119D4: } aot_gpr_31 = (0x08A119E8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 238u, 0x08A119E8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A119E8u) goto L_08A119E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A119E8: aot_gpr_31 = (0x08A119F0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 239u, 0x08A119F0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A119F0u) goto L_08A119F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A119F0: aot_gpr_31 = (0x08A119F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 240u, 0x08A119F8u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A119F8u) goto L_08A119F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A119F8: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[20])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -4826,13 +5396,39 @@ L_08A119F8: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A11A14u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 241u, 0x08A11A14u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11A14u) goto L_08A11A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11A14: aot_gpr_31 = (0x08A11A1Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 242u, 0x08A11A1Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11A1Cu) goto L_08A11A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11A1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A11A28u); @@ -4862,8 +5458,21 @@ L_08A11A48: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08A11A60u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 246u, 0x08A11A60u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11A60u) goto L_08A11A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11A60: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[11]{}; @@ -4882,8 +5491,8 @@ L_08A11A60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11A98: @@ -4896,8 +5505,21 @@ L_08A11A98: ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); aot_gpr_31 = (0x08A11AC4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 248u, 0x08A11AC4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11AC4u) goto L_08A11AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11AC4: aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_4 = (2u << 16u); @@ -4947,8 +5569,21 @@ L_08A11B08: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A11B24u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 254u, 0x08A11B24u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11B24u) goto L_08A11B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11B24: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -4960,13 +5595,39 @@ L_08A11B2C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A11B38u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 256u, 0x08A11B38u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11B38u) goto L_08A11B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11B38: aot_gpr_31 = (0x08A11B40u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 257u, 0x08A11B40u, 0x0889358Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 537u, 0x0889358Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11B40u) goto L_08A11B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11B40: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -4999,8 +5660,8 @@ L_08A11B68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11B80: @@ -5014,8 +5675,21 @@ L_08A11B80: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A11BBCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 262u, 0x08A11BBCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11BBCu) goto L_08A11BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11BBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A11BC8u); @@ -5056,8 +5730,21 @@ L_08A11C04: } L_08A11C0C: aot_gpr_31 = (0x08A11C14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 267u, 0x08A11C14u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11C14u) goto L_08A11C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11C14: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } goto L_08A11C18; @@ -5110,8 +5797,8 @@ L_08A11C68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11C90: @@ -5124,8 +5811,21 @@ L_08A11C90: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A11CB8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 275u, 0x08A11CB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11CB8u) goto L_08A11CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11CB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A11CC4u); @@ -5137,8 +5837,21 @@ L_08A11CC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A11CD4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 277u, 0x08A11CD4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11CD4u) goto L_08A11CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11CD4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_4 = (16457u << 16u); @@ -5150,23 +5863,75 @@ L_08A11CD4: aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x08A11CFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 278u, 0x08A11CFCu, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11CFCu) goto L_08A11CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11CFC: aot_gpr_31 = (0x08A11D04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 279u, 0x08A11D04u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11D04u) goto L_08A11D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11D04: aot_gpr_31 = (0x08A11D0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 280u, 0x08A11D0Cu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11D0Cu) goto L_08A11D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11D0C: aot_gpr_31 = (0x08A11D14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 281u, 0x08A11D14u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11D14u) goto L_08A11D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11D14: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5177,8 +5942,8 @@ L_08A11D14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11D2C: @@ -5193,8 +5958,21 @@ L_08A11D2C: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08A11D64u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 283u, 0x08A11D64u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11D64u) goto L_08A11D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11D64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A11D70u); @@ -5240,8 +6018,8 @@ L_08A11DA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11DC4: @@ -5255,8 +6033,21 @@ L_08A11DC4: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A11E00u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 287u, 0x08A11E00u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11E00u) goto L_08A11E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11E00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A11E0Cu); @@ -5293,8 +6084,21 @@ L_08A11E48: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A11E54u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 291u, 0x08A11E54u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11E54u) goto L_08A11E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11E54: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_12)); @@ -5320,8 +6124,21 @@ L_08A11E84: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A11EA0u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 294u, 0x08A11EA0u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11EA0u) goto L_08A11EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11EA0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -5336,8 +6153,8 @@ L_08A11EA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11EC8: @@ -5350,8 +6167,21 @@ L_08A11EC8: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08A11EF0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 296u, 0x08A11EF0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11EF0u) goto L_08A11EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11EF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A11EFCu); @@ -5361,8 +6191,21 @@ L_08A11EF0: L_08A11EFC: aot_gpr_31 = (0x08A11F04u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 298u, 0x08A11F04u, 0x088641E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 29u, 0x088641E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11F04u) goto L_08A11F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11F04: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5379,8 +6222,21 @@ L_08A11F10: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A11F2Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 300u, 0x08A11F2Cu, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11F2Cu) goto L_08A11F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11F2C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5391,8 +6247,8 @@ L_08A11F2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11F44: @@ -5405,8 +6261,21 @@ L_08A11F44: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08A11F6Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 302u, 0x08A11F6Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11F6Cu) goto L_08A11F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11F6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A11F78u); @@ -5421,8 +6290,21 @@ L_08A11F78: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A11F94u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 304u, 0x08A11F94u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A11F94u) goto L_08A11F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A11F94: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5433,8 +6315,8 @@ L_08A11F94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A11FAC: @@ -5450,8 +6332,21 @@ L_08A11FAC: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A12000u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 306u, 0x08A12000u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12000u) goto L_08A12000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12000: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); { const bool branch_taken = static_cast(ctx.gpr[22]) >= 0; @@ -5474,8 +6369,21 @@ L_08A1202C: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08A12038u); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 309u, 0x08A12038u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12038u) goto L_08A12038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12038: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -5489,8 +6397,21 @@ L_08A12044: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A12050u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 311u, 0x08A12050u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12050u) goto L_08A12050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12050: aot_gpr_17 = (ctx.gpr[21] | 0u); goto L_08A12054; @@ -5525,8 +6446,21 @@ L_08A12094: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A120A0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 315u, 0x08A120A0u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A120A0u) goto L_08A120A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A120A0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_12)); @@ -5554,8 +6488,21 @@ L_08A120A8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A120D8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 317u, 0x08A120D8u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A120D8u) goto L_08A120D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A120D8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -5565,18 +6512,57 @@ L_08A120D8: } aot_gpr_31 = (0x08A120ECu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 318u, 0x08A120ECu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A120ECu) goto L_08A120EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A120EC: aot_gpr_31 = (0x08A120F4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 319u, 0x08A120F4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A120F4u) goto L_08A120F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A120F4: aot_gpr_31 = (0x08A120FCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 320u, 0x08A120FCu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A120FCu) goto L_08A120FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A120FC: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -5584,13 +6570,39 @@ L_08A120FC: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A12118u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 321u, 0x08A12118u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12118u) goto L_08A12118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12118: aot_gpr_31 = (0x08A12120u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 322u, 0x08A12120u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12120u) goto L_08A12120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12120: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A1212Cu); @@ -5620,8 +6632,21 @@ L_08A1214C: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08A12164u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 326u, 0x08A12164u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12164u) goto L_08A12164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12164: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[11]{}; @@ -5640,8 +6665,8 @@ L_08A12164: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1219C: @@ -5654,8 +6679,21 @@ L_08A1219C: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08A121C4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 328u, 0x08A121C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A121C4u) goto L_08A121C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A121C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A121D0u); @@ -5881,8 +6919,8 @@ L_08A12310: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12328: @@ -5895,8 +6933,21 @@ L_08A12328: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08A12350u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 341u, 0x08A12350u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12350u) goto L_08A12350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12350: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A1235Cu); @@ -5923,8 +6974,21 @@ L_08A1236C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A12394u); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 344u, 0x08A12394u, 0x08A6726Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 649u, 0x08A6726Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12394u) goto L_08A12394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12394: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5935,8 +6999,8 @@ L_08A12394: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A123AC: @@ -5948,8 +7012,21 @@ L_08A123AC: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08A123CCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 346u, 0x08A123CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A123CCu) goto L_08A123CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A123CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A123D8u); @@ -5969,16 +7046,29 @@ L_08A123D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A12408u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 348u, 0x08A12408u, 0x08948224u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 30u, 0x08948224u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12408u) goto L_08A12408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12408: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1241C: @@ -5995,8 +7085,21 @@ L_08A1241C: ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08A12478u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 350u, 0x08A12478u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12478u) goto L_08A12478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12478: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); @@ -6024,8 +7127,21 @@ L_08A124B0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A124BCu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 353u, 0x08A124BCu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A124BCu) goto L_08A124BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A124BC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A124C0; @@ -6069,8 +7185,21 @@ L_08A12500: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); aot_gpr_31 = (0x08A12544u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 357u, 0x08A12544u, 0x08899BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 327u, 0x08899BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12544u) goto L_08A12544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12544: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6091,8 +7220,21 @@ L_08A12550: ctx.gpr[9] = (0u | 16u); aot_gpr_31 = (0x08A12580u); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 359u, 0x08A12580u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12580u) goto L_08A12580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12580: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6107,8 +7249,21 @@ L_08A1258C: aot_gpr_5 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x08A125A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 361u, 0x08A125A4u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A125A4u) goto L_08A125A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A125A4: aot_gpr_4 = (ctx.gpr[2] << 16u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); @@ -6125,8 +7280,21 @@ L_08A125A4: ctx.gpr[9] = (0u | 16u); aot_gpr_31 = (0x08A125E4u); ctx.gpr[10] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 362u, 0x08A125E4u, 0x0889298Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 401u, 0x0889298Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A125E4u) goto L_08A125E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A125E4: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); @@ -6258,8 +7426,21 @@ L_08A12698: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A126B8u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 370u, 0x08A126B8u, 0x08864C00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 123u, 0x08864C00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A126B8u) goto L_08A126B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A126B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6277,8 +7458,21 @@ L_08A126C0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A126E4u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 372u, 0x08A126E4u, 0x08864C00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 123u, 0x08864C00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A126E4u) goto L_08A126E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A126E4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[12]{}; @@ -6298,8 +7492,8 @@ L_08A126E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12720: @@ -6312,8 +7506,21 @@ L_08A12720: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08A12748u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 374u, 0x08A12748u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12748u) goto L_08A12748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12748: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12754u); @@ -6429,8 +7636,8 @@ L_08A12800: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12818: @@ -6443,8 +7650,21 @@ L_08A12818: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A12840u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 388u, 0x08A12840u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12840u) goto L_08A12840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12840: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A1284Cu); @@ -6465,8 +7685,21 @@ L_08A1284C: aot_fpr_14 = aot_fpr_14 / ctx.fpr[15]; aot_gpr_31 = (0x08A12874u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 390u, 0x08A12874u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12874u) goto L_08A12874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12874: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6477,8 +7710,8 @@ L_08A12874: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1288C: @@ -6491,8 +7724,21 @@ L_08A1288C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A128B4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 392u, 0x08A128B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A128B4u) goto L_08A128B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A128B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A128C0u); @@ -6533,8 +7779,8 @@ L_08A128E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12900: @@ -6547,8 +7793,21 @@ L_08A12900: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A12928u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 398u, 0x08A12928u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12928u) goto L_08A12928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12928: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12934u); @@ -6593,8 +7852,21 @@ L_08A12934: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A12990u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 400u, 0x08A12990u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12990u) goto L_08A12990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12990: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6605,8 +7877,8 @@ L_08A12990: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A129A8: @@ -6619,8 +7891,21 @@ L_08A129A8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A129D0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 402u, 0x08A129D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A129D0u) goto L_08A129D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A129D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A129DCu); @@ -6651,8 +7936,21 @@ L_08A129F8: aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A12A0Cu); aot_gpr_4 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 406u, 0x08A12A0Cu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12A0Cu) goto L_08A12A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12A0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6674,8 +7972,21 @@ L_08A12A1C: aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A12A34u); aot_gpr_4 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 409u, 0x08A12A34u, 0x08A660DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 475u, 0x08A660DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12A34u) goto L_08A12A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12A34: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6686,8 +7997,8 @@ L_08A12A34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12A4C: @@ -6700,8 +8011,21 @@ L_08A12A4C: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08A12A74u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 411u, 0x08A12A74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12A74u) goto L_08A12A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12A74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12A80u); @@ -6806,8 +8130,8 @@ L_08A12B1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12B34: @@ -6822,8 +8146,21 @@ L_08A12B34: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A12B6Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 424u, 0x08A12B6Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12B6Cu) goto L_08A12B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12B6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12B78u); @@ -6937,8 +8274,8 @@ L_08A12BF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12C10: @@ -6951,8 +8288,21 @@ L_08A12C10: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A12C38u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 429u, 0x08A12C38u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12C38u) goto L_08A12C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12C38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12C44u); @@ -6993,8 +8343,8 @@ L_08A12C6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12C84: @@ -7007,8 +8357,21 @@ L_08A12C84: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A12CACu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 435u, 0x08A12CACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12CACu) goto L_08A12CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12CAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12CB8u); @@ -7020,8 +8383,21 @@ L_08A12CB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A12CC8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 437u, 0x08A12CC8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12CC8u) goto L_08A12CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12CC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_4 = (16457u << 16u); @@ -7053,8 +8429,21 @@ L_08A12CC8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A12D14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 438u, 0x08A12D14u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12D14u) goto L_08A12D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12D14: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7064,23 +8453,75 @@ L_08A12D14: } aot_gpr_31 = (0x08A12D28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 439u, 0x08A12D28u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12D28u) goto L_08A12D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12D28: aot_gpr_31 = (0x08A12D30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 440u, 0x08A12D30u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12D30u) goto L_08A12D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12D30: aot_gpr_31 = (0x08A12D38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 441u, 0x08A12D38u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12D38u) goto L_08A12D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12D38: aot_gpr_31 = (0x08A12D40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 442u, 0x08A12D40u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12D40u) goto L_08A12D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12D40: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7091,8 +8532,8 @@ L_08A12D40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12D58: @@ -7105,8 +8546,21 @@ L_08A12D58: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A12D80u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 444u, 0x08A12D80u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12D80u) goto L_08A12D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12D80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12D8Cu); @@ -7149,8 +8603,8 @@ L_08A12DBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12DD4: @@ -7163,8 +8617,21 @@ L_08A12DD4: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08A12DFCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 450u, 0x08A12DFCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12DFCu) goto L_08A12DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12DFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12E08u); @@ -7253,8 +8720,8 @@ L_08A12E90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12EA8: @@ -7267,8 +8734,21 @@ L_08A12EA8: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08A12ED0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 461u, 0x08A12ED0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12ED0u) goto L_08A12ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12ED0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12EDCu); @@ -7366,8 +8846,8 @@ L_08A12F74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12F8C: @@ -7375,15 +8855,28 @@ L_08A12F8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A12F9Cu); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 473u, 0x08A12F9Cu, 0x08867A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 880u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 880u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 880u, 0x08867A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12F9Cu) goto L_08A12F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12F9C: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A12FAC: @@ -7396,8 +8889,21 @@ L_08A12FAC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A12FD4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 475u, 0x08A12FD4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A12FD4u) goto L_08A12FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A12FD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A12FE0u); @@ -7422,8 +8928,8 @@ L_08A12FF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1300C: @@ -7437,16 +8943,42 @@ L_08A1300C: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08A1303Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 479u, 0x08A1303Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1303Cu) goto L_08A1303C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1303C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08A13054u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 480u, 0x08A13054u, 0x08827F00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 605u, 0x08827F00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13054u) goto L_08A13054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13054: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7528,8 +9060,8 @@ L_08A130D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A130F0: @@ -7542,8 +9074,21 @@ L_08A130F0: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A13118u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 490u, 0x08A13118u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13118u) goto L_08A13118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13118: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A13124u); @@ -7579,8 +9124,21 @@ L_08A1314C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x08A13164u); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 494u, 0x08A13164u, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13164u) goto L_08A13164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13164: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7620,8 +9178,8 @@ L_08A131A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A131C0: @@ -7634,8 +9192,21 @@ L_08A131C0: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A131E8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 499u, 0x08A131E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A131E8u) goto L_08A131E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A131E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A131F4u); @@ -7661,8 +9232,8 @@ L_08A131F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13230: @@ -7675,8 +9246,21 @@ L_08A13230: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A13258u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 502u, 0x08A13258u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13258u) goto L_08A13258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13258: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A13264u); @@ -7728,8 +9312,8 @@ L_08A132A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A132B8: @@ -7742,8 +9326,21 @@ L_08A132B8: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A132E0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 506u, 0x08A132E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A132E0u) goto L_08A132E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A132E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A132ECu); @@ -7812,8 +9409,8 @@ L_08A13378: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1338C: @@ -7827,8 +9424,21 @@ L_08A1338C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A133BCu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 513u, 0x08A133BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A133BCu) goto L_08A133BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A133BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A133C8u); @@ -7868,8 +9478,21 @@ L_08A133F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A13404u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 518u, 0x08A13404u, 0x08862E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 518u, 0x08862E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13404u) goto L_08A13404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13404: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7966,8 +9589,8 @@ L_08A13494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A134B0: @@ -7979,8 +9602,21 @@ L_08A134B0: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08A134D0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 530u, 0x08A134D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A134D0u) goto L_08A134D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A134D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A134DCu); @@ -8005,8 +9641,8 @@ L_08A134F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13504: @@ -8019,8 +9655,21 @@ L_08A13504: ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08A1352Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 535u, 0x08A1352Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1352Cu) goto L_08A1352C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1352C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A13538u); @@ -8163,8 +9812,8 @@ L_08A13628: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13640: @@ -8176,8 +9825,21 @@ L_08A13640: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08A13660u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 553u, 0x08A13660u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13660u) goto L_08A13660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13660: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A1366Cu); @@ -8194,8 +9856,8 @@ L_08A1366C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13690: @@ -8210,8 +9872,21 @@ L_08A13690: ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08A136D4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 556u, 0x08A136D4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A136D4u) goto L_08A136D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A136D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -8284,8 +9959,21 @@ L_08A1373C: L_08A13748: aot_gpr_31 = (0x08A13750u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 566u, 0x08A13750u, 0x0882B9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 398u, 0x0882B9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13750u) goto L_08A13750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13750: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8305,8 +9993,21 @@ L_08A13758: } aot_gpr_31 = (0x08A13778u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 568u, 0x08A13778u, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13778u) goto L_08A13778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13778: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8329,8 +10030,21 @@ L_08A13798: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A137A4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 571u, 0x08A137A4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A137A4u) goto L_08A137A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A137A4: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -8454,8 +10168,21 @@ L_08A13868: } aot_gpr_31 = (0x08A1388Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 585u, 0x08A1388Cu, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1388Cu) goto L_08A1388C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1388C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8478,8 +10205,21 @@ L_08A138AC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A138B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 588u, 0x08A138B8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A138B8u) goto L_08A138B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A138B8: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -8525,8 +10265,8 @@ L_08A138F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1391C: @@ -8539,8 +10279,21 @@ L_08A1391C: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08A13944u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 593u, 0x08A13944u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13944u) goto L_08A13944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13944: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A13950u); @@ -8568,8 +10321,21 @@ L_08A13960: ctx.gpr[6] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A1398Cu); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 596u, 0x08A1398Cu, 0x0882BB00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 422u, 0x0882BB00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1398Cu) goto L_08A1398C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1398C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8580,8 +10346,8 @@ L_08A1398C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A139A4: @@ -8593,8 +10359,21 @@ L_08A139A4: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08A139C4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 598u, 0x08A139C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A139C4u) goto L_08A139C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A139C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A139D0u); @@ -8619,16 +10398,29 @@ L_08A139DC: } L_08A139E8: aot_gpr_31 = (0x08A139F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 602u, 0x08A139F0u, 0x0882BBD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 435u, 0x0882BBD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A139F0u) goto L_08A139F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A139F0: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13A04: @@ -8643,8 +10435,21 @@ L_08A13A04: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08A13A50u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 604u, 0x08A13A50u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13A50u) goto L_08A13A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13A50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A13A5Cu); @@ -8703,8 +10508,21 @@ L_08A13AD8: } L_08A13AE0: aot_gpr_31 = (0x08A13AE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 609u, 0x08A13AE8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13AE8u) goto L_08A13AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13AE8: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } goto L_08A13AEC; @@ -8741,8 +10559,21 @@ L_08A13B1C: } L_08A13B2C: aot_gpr_31 = (0x08A13B34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 614u, 0x08A13B34u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13B34u) goto L_08A13B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13B34: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -8867,8 +10698,8 @@ L_08A13C0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13C40: @@ -8881,8 +10712,21 @@ L_08A13C40: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A13C68u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 630u, 0x08A13C68u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13C68u) goto L_08A13C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13C68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A13C74u); @@ -8925,8 +10769,21 @@ L_08A13C74: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A13CD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 632u, 0x08A13CD4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13CD4u) goto L_08A13CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13CD4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -8936,8 +10793,21 @@ L_08A13CD4: } aot_gpr_31 = (0x08A13CE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 633u, 0x08A13CE8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13CE8u) goto L_08A13CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13CE8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8948,8 +10818,8 @@ L_08A13CE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13D00: @@ -8965,8 +10835,21 @@ L_08A13D00: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08A13D50u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 635u, 0x08A13D50u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13D50u) goto L_08A13D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13D50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -9057,8 +10940,21 @@ L_08A13DD8: } aot_gpr_31 = (0x08A13DF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 646u, 0x08A13DF0u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13DF0u) goto L_08A13DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13DF0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9108,8 +11004,8 @@ L_08A13E24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13E58: @@ -9124,8 +11020,21 @@ L_08A13E58: ctx.gpr[6] = (0u | 7u); aot_gpr_31 = (0x08A13E9Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 653u, 0x08A13E9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13E9Cu) goto L_08A13E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13E9C: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -9157,8 +11066,21 @@ L_08A13ED8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08A13EE4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 656u, 0x08A13EE4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13EE4u) goto L_08A13EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13EE4: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A13EE8; @@ -9199,8 +11121,21 @@ L_08A13F14: ctx.gpr[6] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A13F44u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 661u, 0x08A13F44u, 0x088809F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 101u, 0x088809F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13F44u) goto L_08A13F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13F44: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_5 = (aot_gpr_16 + static_cast(16)); @@ -9231,8 +11166,8 @@ L_08A13F60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13F88: @@ -9245,16 +11180,42 @@ L_08A13F88: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08A13FB0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 665u, 0x08A13FB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13FB0u) goto L_08A13FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13FB0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_5 = (0u < aot_gpr_4 ? 1u : 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08A13FC4u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0131->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0131_entry, 666u, 0x08A13FC4u, 0x088805F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 47u, 0x088805F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A13FC4u) goto L_08A13FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A13FC4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -9265,8 +11226,8 @@ L_08A13FC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A13FDC: diff --git a/profiles/vcs/generated/generated_unit_0132.cpp b/profiles/vcs/generated/generated_unit_0132.cpp index b961e71..26193bf 100644 --- a/profiles/vcs/generated/generated_unit_0132.cpp +++ b/profiles/vcs/generated/generated_unit_0132.cpp @@ -750,6 +750,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A14000u; + if (local_delta_v813 >= 16328u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -767,8 +791,21 @@ L_08A14000: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08A1400Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 2u, 0x08A1400Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1400Cu) goto L_08A1400C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1400C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 4u); @@ -849,8 +886,8 @@ L_08A140A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A140C0: @@ -863,8 +900,21 @@ L_08A140C0: ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); aot_gpr_31 = (0x08A140E8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 10u, 0x08A140E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A140E8u) goto L_08A140E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A140E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 4u); @@ -941,8 +991,8 @@ L_08A14174: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1418C: @@ -955,8 +1005,21 @@ L_08A1418C: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08A141B4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 18u, 0x08A141B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A141B4u) goto L_08A141B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A141B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A141C0u); @@ -1019,8 +1082,8 @@ L_08A14230: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A14244: @@ -1033,8 +1096,21 @@ L_08A14244: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08A1426Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 25u, 0x08A1426Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1426Cu) goto L_08A1426C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1426C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A14278u); @@ -1064,8 +1140,8 @@ L_08A14278: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A142C4: @@ -1079,8 +1155,21 @@ L_08A142C4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A142F4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 28u, 0x08A142F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A142F4u) goto L_08A142F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A142F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A14300u); @@ -1107,8 +1196,8 @@ L_08A14318: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A14334: @@ -1122,8 +1211,21 @@ L_08A14334: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08A14368u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 32u, 0x08A14368u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14368u) goto L_08A14368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14368: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A14374u); @@ -1142,8 +1244,21 @@ L_08A14384: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A14394u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 35u, 0x08A14394u, 0x08A66C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14394u) goto L_08A14394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14394: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1226,8 +1341,8 @@ L_08A14414: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A14434: @@ -1239,8 +1354,21 @@ L_08A14434: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08A14454u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 45u, 0x08A14454u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14454u) goto L_08A14454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14454: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A14460u); @@ -1254,8 +1382,8 @@ L_08A14460: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A14478: @@ -1270,8 +1398,21 @@ L_08A14478: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08A144C4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 48u, 0x08A144C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A144C4u) goto L_08A144C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A144C4: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -1303,8 +1444,21 @@ L_08A14500: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08A1450Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 51u, 0x08A1450Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1450Cu) goto L_08A1450C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1450C: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A14510; @@ -1341,8 +1495,21 @@ L_08A14554: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08A14560u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 55u, 0x08A14560u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14560u) goto L_08A14560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14560: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A14564; @@ -1390,8 +1557,21 @@ L_08A14594: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A145D4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 61u, 0x08A145D4u, 0x08880344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 32u, 0x08880344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A145D4u) goto L_08A145D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A145D4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_5 = (aot_gpr_16 + static_cast(16)); @@ -1424,8 +1604,8 @@ L_08A145F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A14620: @@ -1438,8 +1618,21 @@ L_08A14620: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08A14648u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 65u, 0x08A14648u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14648u) goto L_08A14648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14648: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A14654u); @@ -1467,8 +1660,21 @@ L_08A14664: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A14690u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 68u, 0x08A14690u, 0x0882BB00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 422u, 0x0882BB00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14690u) goto L_08A14690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14690: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1479,23 +1685,36 @@ L_08A14690: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A146A8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A146B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 70u, 0x08A146B8u, 0x08A139A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 597u, 0x08A139A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A146B8u) goto L_08A146B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A146B8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A146C8: @@ -1508,8 +1727,21 @@ L_08A146C8: ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); aot_gpr_31 = (0x08A146F0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 72u, 0x08A146F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A146F0u) goto L_08A146F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A146F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A146FCu); @@ -1631,8 +1863,8 @@ L_08A147B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A147C8: @@ -1647,8 +1879,21 @@ L_08A147C8: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08A14814u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 87u, 0x08A14814u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14814u) goto L_08A14814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14814: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -1680,8 +1925,21 @@ L_08A14850: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08A1485Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 90u, 0x08A1485Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1485Cu) goto L_08A1485C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1485C: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A14860; @@ -1718,8 +1976,21 @@ L_08A148A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08A148B0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 94u, 0x08A148B0u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A148B0u) goto L_08A148B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A148B0: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A148B4; @@ -1767,8 +2038,21 @@ L_08A148E4: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A14924u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 100u, 0x08A14924u, 0x08880344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 32u, 0x08880344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14924u) goto L_08A14924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14924: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_5 = (aot_gpr_16 + static_cast(16)); @@ -1801,8 +2085,8 @@ L_08A14940: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A14970: @@ -1814,8 +2098,21 @@ L_08A14970: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08A14990u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 104u, 0x08A14990u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14990u) goto L_08A14990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14990: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A1499Cu); @@ -1831,8 +2128,8 @@ L_08A1499C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A149BC: @@ -1853,8 +2150,21 @@ L_08A149BC: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08A14A34u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 107u, 0x08A14A34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14A34u) goto L_08A14A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14A34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A14A40u); @@ -1900,8 +2210,21 @@ L_08A14A8C: L_08A14A90: aot_gpr_31 = (0x08A14A98u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 113u, 0x08A14A98u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14A98u) goto L_08A14A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14A98: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } goto L_08A14A9C; @@ -2048,8 +2371,21 @@ L_08A14B80: aot_fpr_12 = aot_fpr_12 / ctx.fpr[22]; aot_gpr_31 = (0x08A14BA4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 131u, 0x08A14BA4u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14BA4u) goto L_08A14BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14BA4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(208), aot_run_words); @@ -2059,8 +2395,21 @@ L_08A14BA4: } aot_gpr_31 = (0x08A14BB8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 132u, 0x08A14BB8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14BB8u) goto L_08A14BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14BB8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -2188,8 +2537,21 @@ L_08A14BB8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A14CACu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 133u, 0x08A14CACu, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14CACu) goto L_08A14CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14CAC: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2208,8 +2570,21 @@ L_08A14CAC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A14CC4u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 134u, 0x08A14CC4u, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14CC4u) goto L_08A14CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14CC4: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2228,8 +2603,21 @@ L_08A14CC4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A14CDCu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 135u, 0x08A14CDCu, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14CDCu) goto L_08A14CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14CDC: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2248,8 +2636,21 @@ L_08A14CDC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A14CF4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 136u, 0x08A14CF4u, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14CF4u) goto L_08A14CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14CF4: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2424,8 +2825,21 @@ L_08A14E20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08A14E78u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 154u, 0x08A14E78u, 0x0889A888u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 446u, 0x0889A888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14E78u) goto L_08A14E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14E78: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -2457,18 +2871,57 @@ L_08A14E98: aot_fpr_12 = aot_fpr_12 / ctx.fpr[22]; aot_gpr_31 = (0x08A14EA8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 159u, 0x08A14EA8u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14EA8u) goto L_08A14EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14EA8: aot_gpr_31 = (0x08A14EB0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 160u, 0x08A14EB0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14EB0u) goto L_08A14EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14EB0: aot_gpr_31 = (0x08A14EB8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 161u, 0x08A14EB8u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14EB8u) goto L_08A14EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14EB8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[28]) || std::isnan(ctx.fpr[26])) && ctx.fpr[28] == ctx.fpr[26])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2562,8 +3015,21 @@ L_08A14F58: L_08A14F64: aot_gpr_31 = (0x08A14F6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 172u, 0x08A14F6Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A14F6Cu) goto L_08A14F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A14F6C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[15]{}; @@ -2586,8 +3052,8 @@ L_08A14F6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A14FB4: @@ -2608,8 +3074,21 @@ L_08A14FB4: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08A15024u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 174u, 0x08A15024u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15024u) goto L_08A15024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15024: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A15030u); @@ -2869,8 +3348,21 @@ L_08A151F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A15200u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 202u, 0x08A15200u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15200u) goto L_08A15200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15200: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), std::bit_cast(aot_fpr_12)); @@ -3004,8 +3496,21 @@ L_08A15200: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A1530Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 203u, 0x08A1530Cu, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1530Cu) goto L_08A1530C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1530C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3024,8 +3529,21 @@ L_08A1530C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A15324u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 204u, 0x08A15324u, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15324u) goto L_08A15324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15324: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3044,8 +3562,21 @@ L_08A15324: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A1533Cu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 205u, 0x08A1533Cu, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1533Cu) goto L_08A1533C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1533C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3064,8 +3595,21 @@ L_08A1533C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A15354u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 206u, 0x08A15354u, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15354u) goto L_08A15354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15354: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3239,8 +3783,21 @@ L_08A15480: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08A154D8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 224u, 0x08A154D8u, 0x0889A888u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 446u, 0x0889A888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A154D8u) goto L_08A154D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A154D8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -3410,8 +3967,21 @@ L_08A155EC: L_08A155F8: aot_gpr_31 = (0x08A15600u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 243u, 0x08A15600u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15600u) goto L_08A15600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15600: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[13]{}; @@ -3432,8 +4002,8 @@ L_08A15600: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A15640: @@ -3454,8 +4024,21 @@ L_08A15640: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08A156B4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 245u, 0x08A156B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A156B4u) goto L_08A156B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A156B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A156C0u); @@ -3482,16 +4065,42 @@ L_08A156C0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A15704u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 247u, 0x08A15704u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15704u) goto L_08A15704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15704: ctx.gpr[22] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A15718u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 248u, 0x08A15718u, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15718u) goto L_08A15718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15718: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3750,8 +4359,21 @@ L_08A158D8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A158E8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 275u, 0x08A158E8u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A158E8u) goto L_08A158E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A158E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), std::bit_cast(aot_fpr_12)); @@ -3885,8 +4507,21 @@ L_08A158E8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A159F4u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 276u, 0x08A159F4u, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A159F4u) goto L_08A159F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A159F4: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3905,8 +4540,21 @@ L_08A159F4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A15A0Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 277u, 0x08A15A0Cu, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15A0Cu) goto L_08A15A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15A0C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3925,8 +4573,21 @@ L_08A15A0C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A15A24u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 278u, 0x08A15A24u, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15A24u) goto L_08A15A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15A24: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3945,8 +4606,21 @@ L_08A15A24: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A15A3Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 279u, 0x08A15A3Cu, 0x08A11878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 223u, 0x08A11878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15A3Cu) goto L_08A15A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15A3C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4120,8 +4794,21 @@ L_08A15B68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08A15BC0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 297u, 0x08A15BC0u, 0x0889A888u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 446u, 0x0889A888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15BC0u) goto L_08A15BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15BC0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -4289,8 +4976,21 @@ L_08A15CD4: L_08A15CE0: aot_gpr_31 = (0x08A15CE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(320))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 316u, 0x08A15CE8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15CE8u) goto L_08A15CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15CE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(216))); goto L_08A15CEC; @@ -4313,8 +5013,21 @@ L_08A15CF8: L_08A15D04: aot_gpr_31 = (0x08A15D0Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 320u, 0x08A15D0Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15D0Cu) goto L_08A15D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15D0C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[14]{}; @@ -4336,8 +5049,8 @@ L_08A15D0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(448)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A15D50: @@ -4445,8 +5158,8 @@ L_08A15DF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A15E04: @@ -4488,8 +5201,8 @@ L_08A15E48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A15E5C: @@ -4557,8 +5270,21 @@ L_08A15EDC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(96))); aot_gpr_31 = (0x08A15EECu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 344u, 0x08A15EECu, 0x08B245DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 37u, 0x08B245DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A15EECu) goto L_08A15EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A15EEC: aot_gpr_5 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); goto L_08A15EF0; @@ -4621,8 +5347,8 @@ L_08A15F44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A15F7C: @@ -4641,8 +5367,8 @@ L_08A15F8C: goto L_08A15F94; L_08A15F94: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A15F9C: @@ -4804,8 +5530,8 @@ L_08A160E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16104: @@ -4979,8 +5705,8 @@ L_08A16234: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16258: @@ -5017,8 +5743,21 @@ L_08A16298: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08A162B4u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 1u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 391u, 0x08A162B4u, 0x08871C44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 471u, 0x08871C44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A162B4u) goto L_08A162B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A162B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -5056,14 +5795,27 @@ L_08A162F4: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_gpr_31 = (0x08A16308u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 1u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 396u, 0x08A16308u, 0x08871BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 468u, 0x08871BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16308u) goto L_08A16308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16308: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16314: @@ -5206,8 +5958,8 @@ L_08A16414: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16430: @@ -5318,8 +6070,8 @@ L_08A164E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A164F8: @@ -5362,8 +6114,8 @@ L_08A1653C: goto L_08A16540; L_08A16540: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16548: @@ -5443,8 +6195,8 @@ L_08A165D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A165F8: @@ -5564,8 +6316,8 @@ L_08A166C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A166EC: @@ -5589,8 +6341,8 @@ L_08A16710: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5240))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16728: @@ -5598,8 +6350,21 @@ L_08A16728: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A16738u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 460u, 0x08A16738u, 0x08AB06F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 77u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 77u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 77u, 0x08AB06F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16738u) goto L_08A16738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16738: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5612,8 +6377,21 @@ L_08A16740: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A16750u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 462u, 0x08A16750u, 0x08AB07CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 85u, 0x08AB07CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16750u) goto L_08A16750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16750: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5628,8 +6406,21 @@ L_08A16758: aot_gpr_6 = (0u | 20u); aot_gpr_31 = (0x08A16770u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 464u, 0x08A16770u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16770u) goto L_08A16770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16770: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5642,8 +6433,21 @@ L_08A16778: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A16788u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 466u, 0x08A16788u, 0x08A93CC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 593u, 0x08A93CC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16788u) goto L_08A16788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16788: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5656,8 +6460,21 @@ L_08A16790: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A167A0u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 468u, 0x08A167A0u, 0x0886B584u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 698u, 0x0886B584u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A167A0u) goto L_08A167A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A167A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5673,8 +6490,21 @@ L_08A167A8: aot_gpr_6 = (aot_gpr_6 + static_cast(17)); aot_gpr_31 = (0x08A167C4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 470u, 0x08A167C4u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A167C4u) goto L_08A167C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A167C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5690,14 +6520,27 @@ L_08A167CC: aot_gpr_6 = (aot_gpr_6 + static_cast(16)); aot_gpr_31 = (0x08A167E8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 472u, 0x08A167E8u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A167E8u) goto L_08A167E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A167E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A167F4: @@ -5768,8 +6611,8 @@ L_08A1686C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1688C: @@ -5826,8 +6669,8 @@ L_08A16900: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1691C: @@ -5867,8 +6710,21 @@ L_08A16968: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 1u)); aot_gpr_31 = (0x08A16980u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 487u, 0x08A16980u, 0x089D1B60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 295u, 0x089D1B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16980u) goto L_08A16980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16980: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); goto L_08A16984; @@ -5888,8 +6744,21 @@ L_08A16994: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A169ACu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 490u, 0x08A169ACu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A169ACu) goto L_08A169AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A169AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), ctx.gpr[2]); @@ -5911,8 +6780,8 @@ L_08A169C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A169E8: @@ -5937,8 +6806,21 @@ L_08A16A14: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(96))); aot_gpr_31 = (0x08A16A24u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 494u, 0x08A16A24u, 0x08B245DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 37u, 0x08B245DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16A24u) goto L_08A16A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16A24: aot_gpr_5 = (ctx.gpr[2] | 0u); goto L_08A16A28; @@ -5970,8 +6852,21 @@ L_08A16A30: aot_gpr_5 = (aot_gpr_5 + static_cast(-16)); aot_gpr_31 = (0x08A16A80u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 497u, 0x08A16A80u, 0x088724C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 560u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 560u, 0x088724C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16A80u) goto L_08A16A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16A80: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5981,8 +6876,8 @@ L_08A16A80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16A94: @@ -6055,8 +6950,8 @@ L_08A16B34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16B5C: @@ -6103,8 +6998,8 @@ L_08A16BB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16BC4: @@ -6203,8 +7098,8 @@ L_08A16C70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16C88: @@ -6281,8 +7176,8 @@ L_08A16D28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16D40: @@ -6316,8 +7211,8 @@ L_08A16D7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16D90: @@ -6329,8 +7224,8 @@ L_08A16D90: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(5), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(4), static_cast(aot_gpr_6)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A16DB0: @@ -6376,8 +7271,21 @@ L_08A16E18: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(100))); aot_gpr_31 = (0x08A16E28u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 545u, 0x08A16E28u, 0x08B245DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 37u, 0x08B245DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16E28u) goto L_08A16E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16E28: ctx.gpr[20] = (ctx.gpr[2] | 0u); goto L_08A16E2C; @@ -6402,16 +7310,42 @@ L_08A16E44: aot_gpr_5 = (0u | 107u); aot_gpr_31 = (0x08A16E54u); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 549u, 0x08A16E54u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16E54u) goto L_08A16E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16E54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); ctx.gpr[18] = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); aot_gpr_31 = (0x08A16E68u); aot_gpr_5 = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 550u, 0x08A16E68u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A16E68u) goto L_08A16E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A16E68: ctx.gpr[19] = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_4 = (ctx.gpr[18] | ctx.gpr[19]); @@ -6647,8 +7581,8 @@ L_08A16FEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17018: @@ -7249,8 +8183,8 @@ L_08A172E8: L_08A172FC: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(768)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17304: @@ -7901,8 +8835,8 @@ L_08A175B4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(800)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17634: @@ -8493,15 +9427,15 @@ L_08A17810: L_08A178EC: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(768)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A178F4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A178FC: @@ -8529,8 +9463,8 @@ L_08A1791C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17928: @@ -8572,60 +9506,190 @@ L_08A17928: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(47), static_cast(aot_gpr_5)); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), 0u); aot_gpr_31 = (0x08A179A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 596u, 0x08A179A0u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179A0u) goto L_08A179A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179A0: aot_gpr_31 = (0x08A179A8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-7832)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 597u, 0x08A179A8u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179A8u) goto L_08A179A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179A8: aot_gpr_31 = (0x08A179B0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 598u, 0x08A179B0u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179B0u) goto L_08A179B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179B0: aot_gpr_4 = (ctx.gpr[28] + static_cast(-7820)); aot_gpr_31 = (0x08A179BCu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-7808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 599u, 0x08A179BCu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179BCu) goto L_08A179BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179BC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7716), ctx.gpr[2]); aot_gpr_31 = (0x08A179C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 600u, 0x08A179C8u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179C8u) goto L_08A179C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179C8: aot_gpr_31 = (0x08A179D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 601u, 0x08A179D0u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179D0u) goto L_08A179D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179D0: aot_gpr_31 = (0x08A179D8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-7796)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 602u, 0x08A179D8u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179D8u) goto L_08A179D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179D8: aot_gpr_31 = (0x08A179E0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 603u, 0x08A179E0u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179E0u) goto L_08A179E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179E0: aot_gpr_4 = (ctx.gpr[28] + static_cast(-7792)); aot_gpr_31 = (0x08A179ECu); aot_gpr_5 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 604u, 0x08A179ECu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179ECu) goto L_08A179EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179EC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7724), ctx.gpr[2]); aot_gpr_31 = (0x08A179F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 605u, 0x08A179F8u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A179F8u) goto L_08A179F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A179F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17A04: @@ -8634,8 +9698,8 @@ L_08A17A04: aot_gpr_4 = (aot_gpr_4 + static_cast(7488)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(48), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17A18: @@ -8650,8 +9714,21 @@ L_08A17A18: } L_08A17A2C: aot_gpr_31 = (0x08A17A34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 609u, 0x08A17A34u, 0x08A18A18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 99u, 0x08A18A18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17A34u) goto L_08A17A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17A34: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -8667,8 +9744,21 @@ L_08A17A48: goto L_08A17D2C; L_08A17A50: aot_gpr_31 = (0x08A17A58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 612u, 0x08A17A58u, 0x08A18294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 34u, 0x08A18294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17A58u) goto L_08A17A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17A58: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8698,8 +9788,8 @@ L_08A17A7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17A88: @@ -8749,8 +9839,8 @@ L_08A17ACC: L_08A17AF0: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-7840), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17AF8: @@ -8758,8 +9848,8 @@ L_08A17AF8: aot_gpr_4 = (aot_gpr_4 + static_cast(7488)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17B08: @@ -8964,8 +10054,8 @@ L_08A17C8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(200))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17C9C: @@ -9069,14 +10159,27 @@ L_08A17C9C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A17D20u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 634u, 0x08A17D20u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17D20u) goto L_08A17D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17D20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17D2C: @@ -9132,8 +10235,21 @@ L_08A17DA0: aot_gpr_6 = (17288u << 16u); aot_gpr_31 = (0x08A17DD0u); aot_fpr_15 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 639u, 0x08A17DD0u, 0x08AF4574u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 63u, 0x08AF4574u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17DD0u) goto L_08A17DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17DD0: aot_gpr_4 = (16230u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -9157,8 +10273,8 @@ L_08A17DFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17E10: @@ -9178,8 +10294,21 @@ L_08A17E2C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A17E40u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 643u, 0x08A17E40u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17E40u) goto L_08A17E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17E40: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -9191,8 +10320,21 @@ L_08A17E40: L_08A17E4C: aot_gpr_31 = (0x08A17E54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 645u, 0x08A17E54u, 0x08824888u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 82u, 0x08824888u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17E54u) goto L_08A17E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17E54: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -9213,8 +10355,21 @@ L_08A17E6C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A17E7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 648u, 0x08A17E7Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17E7Cu) goto L_08A17E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17E7C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -9255,14 +10410,40 @@ L_08A17EB4: L_08A17ECC: aot_gpr_31 = (0x08A17ED4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 654u, 0x08A17ED4u, 0x08824A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 108u, 0x08824A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17ED4u) goto L_08A17ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17ED4: aot_gpr_5 = (ctx.gpr[2] & 255u); aot_gpr_31 = (0x08A17EE0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 655u, 0x08A17EE0u, 0x08ADC7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 156u, 0x08ADC7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17EE0u) goto L_08A17EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17EE0: aot_gpr_31 = (0x08A17EE8u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -9278,14 +10459,40 @@ L_08A17EE8: L_08A17EF0: aot_gpr_31 = (0x08A17EF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 658u, 0x08A17EF8u, 0x08824A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 108u, 0x08824A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17EF8u) goto L_08A17EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17EF8: aot_gpr_5 = (ctx.gpr[2] & 255u); aot_gpr_31 = (0x08A17F04u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 659u, 0x08A17F04u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17F04u) goto L_08A17F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17F04: aot_gpr_31 = (0x08A17F0Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -9307,8 +10514,21 @@ L_08A17F20: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A17F2Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 663u, 0x08A17F2Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17F2Cu) goto L_08A17F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17F2C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -9332,8 +10552,21 @@ L_08A17F44: L_08A17F4C: aot_gpr_31 = (0x08A17F54u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-7776)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0132->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0132_entry, 668u, 0x08A17F54u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A17F54u) goto L_08A17F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A17F54: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); @@ -9350,8 +10583,8 @@ L_08A17F64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A17F78: diff --git a/profiles/vcs/generated/generated_unit_0133.cpp b/profiles/vcs/generated/generated_unit_0133.cpp index 135189f..82a05ea 100644 --- a/profiles/vcs/generated/generated_unit_0133.cpp +++ b/profiles/vcs/generated/generated_unit_0133.cpp @@ -698,6 +698,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A18000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -724,8 +748,21 @@ L_08A18000: L_08A18014: aot_gpr_31 = (0x08A1801Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 3u, 0x08A1801Cu, 0x08AD0600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 58u, 0x08AD0600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1801Cu) goto L_08A1801C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1801C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -743,8 +780,21 @@ L_08A18030: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1928)))))); aot_gpr_31 = (0x08A1803Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 6u, 0x08A1803Cu, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1803Cu) goto L_08A1803C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1803C: aot_gpr_31 = (0x08A18044u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A18044u) goto L_08A18044; @@ -753,8 +803,21 @@ L_08A18044: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1928)))))); aot_gpr_31 = (0x08A18050u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 8u, 0x08A18050u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A18050u) goto L_08A18050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A18050: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -775,8 +838,21 @@ L_08A18068: aot_gpr_6 = (aot_gpr_29 + static_cast(56)); aot_gpr_31 = (0x08A18078u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 11u, 0x08A18078u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A18078u) goto L_08A18078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A18078: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(56))); @@ -799,8 +875,21 @@ L_08A18088: goto L_08A180B4; L_08A180B4: aot_gpr_31 = (0x08A180BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 14u, 0x08A180BCu, 0x08A17B08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 624u, 0x08A17B08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A180BCu) goto L_08A180BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A180BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); @@ -875,8 +964,21 @@ L_08A18154: aot_gpr_6 = (aot_gpr_29 + static_cast(57)); aot_gpr_31 = (0x08A18164u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 22u, 0x08A18164u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A18164u) goto L_08A18164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A18164: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(57))); @@ -898,8 +1000,21 @@ L_08A18174: goto L_08A1819C; L_08A1819C: aot_gpr_31 = (0x08A181A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 25u, 0x08A181A4u, 0x08A17B08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 624u, 0x08A17B08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A181A4u) goto L_08A181A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A181A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); @@ -951,8 +1066,21 @@ L_08A181F4: goto L_08A1822C; L_08A1822C: aot_gpr_31 = (0x08A18234u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 30u, 0x08A18234u, 0x08A17B08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 624u, 0x08A17B08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A18234u) goto L_08A18234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A18234: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); @@ -988,8 +1116,8 @@ L_08A18278: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A18294: @@ -1127,8 +1255,21 @@ L_08A183A4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A183B8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 48u, 0x08A183B8u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A183B8u) goto L_08A183B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A183B8: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1252))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(2084))); @@ -1187,8 +1328,21 @@ L_08A18428: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A18438u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 55u, 0x08A18438u, 0x089D3388u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 587u, 0x089D3388u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A18438u) goto L_08A18438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A18438: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -1201,8 +1355,21 @@ L_08A18444: aot_gpr_6 = (aot_gpr_29 + static_cast(132)); aot_gpr_31 = (0x08A18454u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 57u, 0x08A18454u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A18454u) goto L_08A18454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A18454: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(132))); @@ -1325,8 +1492,21 @@ L_08A18560: L_08A18584: aot_gpr_31 = (0x08A1858Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(52), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 67u, 0x08A1858Cu, 0x08A17B08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 624u, 0x08A17B08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1858Cu) goto L_08A1858C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1858C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); @@ -1347,8 +1527,21 @@ L_08A185B8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A185D0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 69u, 0x08A185D0u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A185D0u) goto L_08A185D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A185D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1397,8 +1590,21 @@ L_08A1860C: aot_fpr_13 = std::bit_cast(ctx.gpr[11]); aot_gpr_31 = (0x08A1864Cu); ctx.fpr[16] = std::bit_cast(std::bit_cast(aot_fpr_15)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 74u, 0x08A1864Cu, 0x08AA9084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 81u, 0x08AA9084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1864Cu) goto L_08A1864C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1864C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1447,8 +1653,21 @@ L_08A186A8: L_08A186B4: aot_gpr_31 = (0x08A186BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 79u, 0x08A186BCu, 0x08AD0600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 58u, 0x08AD0600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A186BCu) goto L_08A186BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A186BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1497,8 +1716,21 @@ L_08A186D4: aot_fpr_12 = ctx.fpr[19] - aot_fpr_12; aot_gpr_31 = (0x08A1874Cu); aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 83u, 0x08A1874Cu, 0x08AA9084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 81u, 0x08AA9084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1874Cu) goto L_08A1874C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1874C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); ctx.fpr[17] = ctx.fpr[22] / aot_fpr_14; @@ -1520,8 +1752,21 @@ L_08A1874C: aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A1879Cu); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 84u, 0x08A1879Cu, 0x08AA9084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 81u, 0x08AA9084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1879Cu) goto L_08A1879C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1879C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); { std::uint32_t aot_run_words[3]{}; @@ -1546,8 +1791,21 @@ L_08A1879C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[16])); aot_gpr_31 = (0x08A187ECu); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 85u, 0x08A187ECu, 0x08AA9084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 81u, 0x08AA9084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A187ECu) goto L_08A187EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A187EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1616,8 +1874,21 @@ L_08A1884C: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A188CCu); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 89u, 0x08A188CCu, 0x08AA962Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 113u, 0x08AA962Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A188CCu) goto L_08A188CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A188CC: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); ctx.fpr[17] = ctx.fpr[22] / aot_fpr_14; @@ -1639,8 +1910,21 @@ L_08A188CC: aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A1891Cu); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 90u, 0x08A1891Cu, 0x08AA962Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 113u, 0x08AA962Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1891Cu) goto L_08A1891C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1891C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); { std::uint32_t aot_run_words[3]{}; @@ -1667,8 +1951,21 @@ L_08A1891C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[16])); aot_gpr_31 = (0x08A18974u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 91u, 0x08A18974u, 0x08AA962Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 113u, 0x08AA962Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A18974u) goto L_08A18974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A18974: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(40))); @@ -1739,8 +2036,8 @@ L_08A189E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A18A18: @@ -2868,8 +3165,21 @@ L_08A19380: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A19394u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 116u, 0x08A19394u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19394u) goto L_08A19394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19394: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2882,12 +3192,38 @@ L_08A1939C: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x08A193ACu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 118u, 0x08A193ACu, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A193ACu) goto L_08A193AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A193AC: aot_gpr_31 = (0x08A193B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 119u, 0x08A193B4u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A193B4u) goto L_08A193B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A193B4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(656), aot_run_words); @@ -2898,8 +3234,8 @@ L_08A193B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(672)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A193CC: @@ -2908,8 +3244,21 @@ L_08A193CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A193E0u); aot_gpr_4 = (aot_gpr_4 + static_cast(7488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 121u, 0x08A193E0u, 0x08A178F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 590u, 0x08A178F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A193E0u) goto L_08A193E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A193E0: aot_gpr_31 = (0x08A193E8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-7760)); @@ -2924,8 +3273,8 @@ L_08A193E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19410: @@ -2940,8 +3289,8 @@ L_08A19410: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1943C: @@ -2958,8 +3307,8 @@ L_08A1943C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(16), static_cast(aot_gpr_6)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(17), static_cast(ctx.gpr[7])); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19470: @@ -3044,8 +3393,21 @@ L_08A19470: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A19514u); aot_gpr_5 = (aot_gpr_29 + static_cast(68)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 126u, 0x08A19514u, 0x08A8F040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 576u, 0x08A8F040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19514u) goto L_08A19514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19514: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3183,8 +3545,8 @@ L_08A19590: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A195AC: @@ -3193,8 +3555,21 @@ L_08A195AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A195C0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 131u, 0x08A195C0u, 0x08A3CB54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 154u, 0x08A3CB54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A195C0u) goto L_08A195C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A195C0: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(28968)); @@ -3204,8 +3579,8 @@ L_08A195C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A195E0: @@ -3228,8 +3603,21 @@ L_08A195FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A19614u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 134u, 0x08A19614u, 0x08A3CBA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 156u, 0x08A3CBA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19614u) goto L_08A19614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19614: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3251,8 +3639,8 @@ L_08A19628: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1963C: @@ -3261,21 +3649,34 @@ L_08A1963C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A19650u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15964))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 138u, 0x08A19650u, 0x08B6D9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 346u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 346u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 346u, 0x08B6D9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19650u) goto L_08A19650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19650: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1965C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19664: @@ -3298,15 +3699,28 @@ L_08A19688: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A1969Cu); ctx.gpr[7] = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 143u, 0x08A1969Cu, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1969Cu) goto L_08A1969C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1969C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A196AC: @@ -3315,8 +3729,21 @@ L_08A196AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A196C0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 145u, 0x08A196C0u, 0x0882B4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 349u, 0x0882B4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A196C0u) goto L_08A196C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A196C0: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29160)); @@ -3348,8 +3775,8 @@ L_08A196C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19738: @@ -3372,8 +3799,21 @@ L_08A19754: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A1976Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 148u, 0x08A1976Cu, 0x0882B854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 368u, 0x0882B854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1976Cu) goto L_08A1976C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1976C: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3385,8 +3825,21 @@ L_08A1976C: L_08A19778: aot_gpr_31 = (0x08A19780u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 150u, 0x08A19780u, 0x0882B9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 396u, 0x0882B9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19780u) goto L_08A19780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19780: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3396,8 +3849,8 @@ L_08A19780: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19794: @@ -3406,8 +3859,21 @@ L_08A19794: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A197A8u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 152u, 0x08A197A8u, 0x08ACFA70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1055u, 0x08ACFA70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A197A8u) goto L_08A197A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A197A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -3420,8 +3886,21 @@ L_08A197A8: } L_08A197BC: aot_gpr_31 = (0x08A197C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 154u, 0x08A197C4u, 0x0886D308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 171u, 0x0886D308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A197C4u) goto L_08A197C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A197C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_5 = (aot_gpr_16 + static_cast(320)); @@ -3439,14 +3918,14 @@ L_08A197EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A197FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19804: @@ -3484,8 +3963,21 @@ L_08A19830: L_08A1984C: aot_gpr_31 = (0x08A19854u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 161u, 0x08A19854u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19854u) goto L_08A19854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19854: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(496))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3527,14 +4019,40 @@ L_08A19888: L_08A19894: aot_gpr_31 = (0x08A1989Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(500))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 166u, 0x08A1989Cu, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1989Cu) goto L_08A1989C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1989C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(500))); aot_gpr_31 = (0x08A198A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 167u, 0x08A198A8u, 0x0889EB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 629u, 0x0889EB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A198A8u) goto L_08A198A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A198A8: aot_gpr_31 = (0x08A198B0u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3562,8 +4080,21 @@ L_08A198C4: L_08A198D4: aot_gpr_31 = (0x08A198DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 171u, 0x08A198DCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A198DCu) goto L_08A198DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A198DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); goto L_08A198E0; @@ -3573,14 +4104,40 @@ L_08A198E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A198F4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 173u, 0x08A198F4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A198F4u) goto L_08A198F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A198F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A19900u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 174u, 0x08A19900u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19900u) goto L_08A19900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19900: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3601,8 +4158,21 @@ L_08A19910: L_08A1991C: aot_gpr_31 = (0x08A19924u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 177u, 0x08A19924u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19924u) goto L_08A19924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19924: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (65534u << 16u); @@ -3619,8 +4189,21 @@ L_08A1993C: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(496))); aot_gpr_31 = (0x08A19948u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 179u, 0x08A19948u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19948u) goto L_08A19948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19948: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(144), 0u); @@ -3640,8 +4223,21 @@ L_08A19950: L_08A19960: aot_gpr_31 = (0x08A19968u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 182u, 0x08A19968u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19968u) goto L_08A19968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19968: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); goto L_08A1996C; @@ -3653,14 +4249,40 @@ L_08A1996C: ctx.gpr[17] = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A19988u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 184u, 0x08A19988u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19988u) goto L_08A19988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19988: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A19994u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 185u, 0x08A19994u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19994u) goto L_08A19994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19994: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3681,8 +4303,21 @@ L_08A199A4: L_08A199B0: aot_gpr_31 = (0x08A199B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 188u, 0x08A199B8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A199B8u) goto L_08A199B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A199B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3723,8 +4358,21 @@ L_08A199DC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A19A00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 191u, 0x08A19A00u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19A00u) goto L_08A19A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19A00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3754,8 +4402,21 @@ L_08A19A08: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A19A30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 193u, 0x08A19A30u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19A30u) goto L_08A19A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19A30: ctx.gpr[18] = (aot_gpr_16 + static_cast(528)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -3837,8 +4498,8 @@ L_08A19A94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19AAC: @@ -3866,8 +4527,21 @@ L_08A19AD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(500))); aot_gpr_31 = (0x08A19AE4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 199u, 0x08A19AE4u, 0x0889EB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 629u, 0x0889EB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19AE4u) goto L_08A19AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19AE4: aot_gpr_31 = (0x08A19AECu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3895,8 +4569,21 @@ L_08A19B00: L_08A19B10: aot_gpr_31 = (0x08A19B18u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 203u, 0x08A19B18u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19B18u) goto L_08A19B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19B18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); goto L_08A19B1C; @@ -3907,14 +4594,40 @@ L_08A19B1C: ctx.gpr[17] = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A19B34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 205u, 0x08A19B34u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19B34u) goto L_08A19B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19B34: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A19B40u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 206u, 0x08A19B40u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19B40u) goto L_08A19B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19B40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3935,8 +4648,21 @@ L_08A19B50: L_08A19B5C: aot_gpr_31 = (0x08A19B64u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 209u, 0x08A19B64u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19B64u) goto L_08A19B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19B64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3948,8 +4674,21 @@ L_08A19B6C: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(496))); aot_gpr_31 = (0x08A19B78u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 211u, 0x08A19B78u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19B78u) goto L_08A19B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19B78: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(224), 0u); @@ -3969,8 +4708,21 @@ L_08A19B80: L_08A19B90: aot_gpr_31 = (0x08A19B98u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 214u, 0x08A19B98u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19B98u) goto L_08A19B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19B98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(232))); goto L_08A19B9C; @@ -3982,14 +4734,40 @@ L_08A19B9C: ctx.gpr[17] = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x08A19BB8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 216u, 0x08A19BB8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19BB8u) goto L_08A19BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19BB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A19BC4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 217u, 0x08A19BC4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19BC4u) goto L_08A19BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19BC4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(232))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4010,8 +4788,21 @@ L_08A19BD4: L_08A19BE0: aot_gpr_31 = (0x08A19BE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 220u, 0x08A19BE8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19BE8u) goto L_08A19BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19BE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_5 = (0u | 2u); @@ -4025,8 +4816,21 @@ L_08A19BE8: L_08A19BFC: aot_gpr_31 = (0x08A19C04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 222u, 0x08A19C04u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19C04u) goto L_08A19C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19C04: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4062,8 +4866,21 @@ L_08A19C04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08A19C60u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 223u, 0x08A19C60u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A19C60u) goto L_08A19C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A19C60: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(240), aot_run_words); @@ -4074,15 +4891,15 @@ L_08A19C60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19C78: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19C80: @@ -4156,8 +4973,8 @@ L_08A19CF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19D68: @@ -4209,8 +5026,8 @@ L_08A19DE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19DFC: @@ -4238,8 +5055,8 @@ L_08A19E24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19E38: @@ -4288,8 +5105,8 @@ L_08A19E8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19EA0: @@ -4304,8 +5121,8 @@ L_08A19EA0: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[7]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19ECC: @@ -4321,8 +5138,8 @@ L_08A19ECC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19EFC: @@ -4366,8 +5183,8 @@ L_08A19F70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19F84: @@ -4381,8 +5198,8 @@ L_08A19F84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] - aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19FAC: @@ -4391,8 +5208,8 @@ L_08A19FAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19FC0: @@ -4406,8 +5223,8 @@ L_08A19FD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19FE4: @@ -4417,8 +5234,8 @@ L_08A19FE4: ctx.gpr[2] = (0u | 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A19FFC: @@ -4427,8 +5244,8 @@ L_08A19FFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A010: @@ -4482,8 +5299,21 @@ L_08A1A080: L_08A1A08C: aot_gpr_31 = (0x08A1A094u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 261u, 0x08A1A094u, 0x08A116A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 189u, 0x08A116A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1A094u) goto L_08A1A094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1A094: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -4665,8 +5495,8 @@ L_08A1A1C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A1F8: @@ -4682,8 +5512,8 @@ L_08A1A210: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A21C: @@ -4698,8 +5528,8 @@ L_08A1A230: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A23C: @@ -4760,8 +5590,8 @@ L_08A1A2A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A2DC: @@ -4769,8 +5599,8 @@ L_08A1A2DC: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(92), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A2EC: @@ -4822,15 +5652,15 @@ L_08A1A334: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A348: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A350: @@ -5128,8 +5958,8 @@ L_08A1A58C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A5A0: @@ -5152,21 +5982,21 @@ L_08A1A5C0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(84), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(88), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A5CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A5D4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A5DC: @@ -5194,8 +6024,8 @@ L_08A1A5DC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A5F4: @@ -5251,8 +6081,8 @@ L_08A1A5F4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A61C: @@ -5278,8 +6108,8 @@ L_08A1A61C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A638: @@ -5307,8 +6137,8 @@ L_08A1A638: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A650: @@ -5336,8 +6166,8 @@ L_08A1A650: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A668: @@ -5358,8 +6188,8 @@ L_08A1A668: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A684: @@ -5380,8 +6210,8 @@ L_08A1A684: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A6A0: @@ -5404,8 +6234,8 @@ L_08A1A6B8: } L_08A1A6C0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A6C8: @@ -5428,8 +6258,8 @@ L_08A1A6E0: } L_08A1A6E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A6F0: @@ -5451,22 +6281,22 @@ L_08A1A70C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A71C: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A724: ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A730: @@ -5492,8 +6322,21 @@ L_08A1A730: } L_08A1A774: aot_gpr_31 = (0x08A1A77Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 369u, 0x08A1A77Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1A77Cu) goto L_08A1A77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1A77C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A1A780; @@ -5603,8 +6446,8 @@ L_08A1A850: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A87C: @@ -5614,16 +6457,29 @@ L_08A1A87C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A1A894u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 382u, 0x08A1A894u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1A894u) goto L_08A1A894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1A894: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), std::bit_cast(ctx.fpr[0])); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A8A8: @@ -5647,8 +6503,8 @@ L_08A1A8BC: goto L_08A1A8C0; L_08A1A8C0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A8C8: @@ -5672,15 +6528,15 @@ L_08A1A8DC: } L_08A1A8E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A8EC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A8F4: @@ -5738,8 +6594,8 @@ L_08A1A96C: goto L_08A1A978; L_08A1A978: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1A980: @@ -5765,8 +6621,21 @@ L_08A1A980: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A1A9D8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 399u, 0x08A1A9D8u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1A9D8u) goto L_08A1A9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1A9D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5812,8 +6681,8 @@ L_08A1AA0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AA20: @@ -5896,8 +6765,8 @@ L_08A1AA9C: L_08A1AAA0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_6 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AAA8: @@ -5911,8 +6780,8 @@ L_08A1AAA8: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AACC: @@ -5940,8 +6809,8 @@ L_08A1AACC: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AB28: @@ -5955,8 +6824,8 @@ L_08A1AB28: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AB4C: @@ -5971,8 +6840,8 @@ L_08A1AB4C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AB74: @@ -6009,21 +6878,34 @@ L_08A1ABB0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A1ABC0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 425u, 0x08A1ABC0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1ABC0u) goto L_08A1ABC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1ABC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ABCC: ctx.fpr[0] = std::sqrt(aot_fpr_12); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ABD8: @@ -6036,8 +6918,8 @@ L_08A1ABD8: goto L_08A1ABEC; L_08A1ABEC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ABF4: @@ -6050,8 +6932,8 @@ L_08A1ABF4: goto L_08A1AC08; L_08A1AC08: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AC10: @@ -6059,8 +6941,8 @@ L_08A1AC10: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AC24: @@ -6072,8 +6954,8 @@ L_08A1AC24: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AC44: @@ -6092,8 +6974,8 @@ L_08A1AC44: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AC54: @@ -6118,8 +7000,8 @@ L_08A1AC54: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AC7C: @@ -6137,8 +7019,8 @@ L_08A1AC7C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AC98: @@ -6156,8 +7038,8 @@ L_08A1AC98: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ACB4: @@ -6174,8 +7056,8 @@ L_08A1ACB4: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ACCC: @@ -6194,15 +7076,15 @@ L_08A1ACCC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ACDC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ACE4: @@ -6232,8 +7114,21 @@ L_08A1AD18: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A1AD28u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 443u, 0x08A1AD28u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1AD28u) goto L_08A1AD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1AD28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6245,8 +7140,8 @@ L_08A1AD30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AD3C: @@ -6256,29 +7151,29 @@ L_08A1AD3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AD54: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AD5C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AD64: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7792), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AD6C: @@ -6288,15 +7183,15 @@ L_08A1AD6C: } jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7796), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AD74: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16976))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AD7C: @@ -6305,8 +7200,8 @@ L_08A1AD7C: aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(154), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AD90: @@ -6315,8 +7210,8 @@ L_08A1AD90: ctx.gpr[2] = (aot_gpr_4 ^ 4u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ADA4: @@ -6325,29 +7220,29 @@ L_08A1ADA4: ctx.gpr[2] = (aot_gpr_4 ^ 6u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ADB8: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ADC0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ADC8: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ADD0: @@ -6356,15 +7251,15 @@ L_08A1ADD0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), ctx.gpr[8]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ADE4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1ADEC: @@ -6374,8 +7269,21 @@ L_08A1ADEC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A1AE04u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 460u, 0x08A1AE04u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1AE04u) goto L_08A1AE04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1AE04: aot_fpr_15 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_15)) ? 0x00800000u : 0u); @@ -6395,8 +7303,8 @@ L_08A1AE28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AE34: @@ -6410,8 +7318,8 @@ L_08A1AE44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AE54: @@ -6419,15 +7327,15 @@ L_08A1AE54: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AE64: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AE6C: @@ -6436,16 +7344,29 @@ L_08A1AE6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A1AE80u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 468u, 0x08A1AE80u, 0x089997E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 198u, 0x089997E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1AE80u) goto L_08A1AE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1AE80: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AE94: @@ -6524,8 +7445,21 @@ L_08A1AE94: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9872), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A1AEF0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 470u, 0x08A1AEF0u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1AEF0u) goto L_08A1AEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1AEF0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9876), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 + static_cast(32)); @@ -6547,8 +7481,8 @@ L_08A1AEF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1AF14: @@ -6859,8 +7793,21 @@ L_08A1B064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08A1B0C4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 477u, 0x08A1B0C4u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1B0C4u) goto L_08A1B0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1B0C4: aot_gpr_31 = (0x08A1B0CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6873,8 +7820,21 @@ L_08A1B0CC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A1B0E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 479u, 0x08A1B0E8u, 0x08A21DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 243u, 0x08A21DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1B0E8u) goto L_08A1B0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1B0E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } @@ -7218,8 +8178,8 @@ L_08A1B1F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B280: @@ -7228,8 +8188,8 @@ L_08A1B280: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2072), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B294: @@ -7238,8 +8198,8 @@ L_08A1B294: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2072), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B2A8: @@ -7380,8 +8340,21 @@ L_08A1B3D0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A1B434u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 498u, 0x08A1B434u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1B434u) goto L_08A1B434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1B434: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -7557,8 +8530,21 @@ L_08A1B528: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A1B570u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 502u, 0x08A1B570u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1B570u) goto L_08A1B570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1B570: ctx.gpr[19] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -7681,8 +8667,8 @@ L_08A1B640: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(464)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B674: @@ -7909,8 +8895,8 @@ L_08A1B7B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B7BC: @@ -8037,8 +9023,21 @@ L_08A1B880: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A1B8B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 525u, 0x08A1B8B8u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1B8B8u) goto L_08A1B8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1B8B8: ctx.gpr[7] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -8062,8 +9061,8 @@ L_08A1B8E0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_16); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5360))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B8F8: @@ -8114,8 +9113,8 @@ L_08A1B924: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B938: @@ -8137,8 +9136,8 @@ L_08A1B964: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B978: @@ -8182,8 +9181,21 @@ L_08A1B9B0: goto L_08A1B9BC; L_08A1B9BC: aot_gpr_31 = (0x08A1B9C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 542u, 0x08A1B9C4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1B9C4u) goto L_08A1B9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1B9C4: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08A1B9C8; @@ -8208,8 +9220,8 @@ L_08A1B9D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1B9EC: @@ -8285,8 +9297,8 @@ L_08A1BA58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1BAA0: @@ -8380,8 +9392,8 @@ L_08A1BB74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1BB80: @@ -8401,8 +9413,21 @@ L_08A1BB9C: aot_gpr_4 = (ctx.gpr[17] + static_cast(2856)); aot_gpr_31 = (0x08A1BBA8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 554u, 0x08A1BBA8u, 0x088BA62Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 500u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 500u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 500u, 0x088BA62Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1BBA8u) goto L_08A1BBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1BBA8: aot_gpr_4 = (ctx.gpr[17] + static_cast(2656)); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8431,8 +9456,21 @@ L_08A1BBC4: goto L_08A1BBD0; L_08A1BBD0: aot_gpr_31 = (0x08A1BBD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 558u, 0x08A1BBD8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1BBD8u) goto L_08A1BBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1BBD8: aot_gpr_4 = (ctx.gpr[17] + static_cast(2560)); goto L_08A1BBDC; @@ -8462,8 +9500,21 @@ L_08A1BBF4: } L_08A1BC00: aot_gpr_31 = (0x08A1BC08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 563u, 0x08A1BC08u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1BC08u) goto L_08A1BC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1BC08: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -8499,8 +9550,21 @@ L_08A1BC28: goto L_08A1BC34; L_08A1BC34: aot_gpr_31 = (0x08A1BC3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 568u, 0x08A1BC3Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1BC3Cu) goto L_08A1BC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1BC3C: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08A1BC40; @@ -8525,8 +9589,8 @@ L_08A1BC50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1BC64: @@ -8678,15 +9742,15 @@ L_08A1BDE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1BDF8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2856)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1BE00: @@ -8802,8 +9866,21 @@ L_08A1BEA4: goto L_08A1BEA8; L_08A1BEA8: aot_gpr_31 = (0x08A1BEB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 605u, 0x08A1BEB0u, 0x089BAA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 557u, 0x089BAA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1BEB0u) goto L_08A1BEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1BEB0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8829,15 +9906,28 @@ L_08A1BECC: L_08A1BED0: aot_gpr_31 = (0x08A1BED8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 610u, 0x08A1BED8u, 0x089BB258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 681u, 0x089BB258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1BED8u) goto L_08A1BED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1BED8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1BEE8: @@ -8856,8 +9946,21 @@ L_08A1BF00: aot_gpr_4 = (aot_gpr_16 + static_cast(2544)); aot_gpr_31 = (0x08A1BF0Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 613u, 0x08A1BF0Cu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1BF0Cu) goto L_08A1BF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1BF0C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2544))); aot_gpr_4 = (2236u << 16u); @@ -8874,8 +9977,8 @@ L_08A1BF24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1BF34: @@ -8921,8 +10024,21 @@ L_08A1BFB8: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A1BFC8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0133->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0133_entry, 619u, 0x08A1BFC8u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1BFC8u) goto L_08A1BFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1BFC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2020))); aot_fpr_15 = aot_fpr_12 / ctx.fpr[20]; diff --git a/profiles/vcs/generated/generated_unit_0134.cpp b/profiles/vcs/generated/generated_unit_0134.cpp index 7972698..d3f08b9 100644 --- a/profiles/vcs/generated/generated_unit_0134.cpp +++ b/profiles/vcs/generated/generated_unit_0134.cpp @@ -727,6 +727,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A1C000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -751,8 +775,21 @@ L_08A1C00C: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A1C01Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 3u, 0x08A1C01Cu, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C01Cu) goto L_08A1C01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C01C: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -767,8 +804,8 @@ L_08A1C01C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C044: @@ -802,42 +839,146 @@ L_08A1C07C: } L_08A1C084: aot_gpr_31 = (0x08A1C08Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 8u, 0x08A1C08Cu, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C08Cu) goto L_08A1C08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C08C: aot_gpr_31 = (0x08A1C094u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 9u, 0x08A1C094u, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C094u) goto L_08A1C094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C094: aot_gpr_31 = (0x08A1C09Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 10u, 0x08A1C09Cu, 0x08AD3558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 585u, 0x08AD3558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C09Cu) goto L_08A1C09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C09C: aot_gpr_31 = (0x08A1C0A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7652))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 11u, 0x08A1C0A4u, 0x08935474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 339u, 0x08935474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C0A4u) goto L_08A1C0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C0A4: aot_gpr_31 = (0x08A1C0ACu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 12u, 0x08A1C0ACu, 0x0893509Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 269u, 0x0893509Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C0ACu) goto L_08A1C0AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C0AC: aot_gpr_31 = (0x08A1C0B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 13u, 0x08A1C0B4u, 0x08934444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 60u, 0x08934444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C0B4u) goto L_08A1C0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C0B4: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08A1C0C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 14u, 0x08A1C0C0u, 0x08ABEE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 620u, 0x08ABEE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C0C0u) goto L_08A1C0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C0C0: aot_gpr_31 = (0x08A1C0C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 15u, 0x08A1C0C8u, 0x0887F804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 746u, 0x0887F804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C0C8u) goto L_08A1C0C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C0C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(11236))); @@ -863,16 +1004,55 @@ L_08A1C0E4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(11240), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A1C0F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 19u, 0x08A1C0F0u, 0x088DE338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 355u, 0x088DE338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C0F0u) goto L_08A1C0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C0F0: aot_gpr_31 = (0x08A1C0F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 20u, 0x08A1C0F8u, 0x08A0787Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 841u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 841u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 841u, 0x08A0787Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C0F8u) goto L_08A1C0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C0F8: aot_gpr_31 = (0x08A1C100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 21u, 0x08A1C100u, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C100u) goto L_08A1C100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C100: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19681), static_cast(0u)); goto L_08A1C104; @@ -904,8 +1084,8 @@ L_08A1C12C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C148: @@ -928,8 +1108,21 @@ L_08A1C148: L_08A1C188: aot_gpr_31 = (0x08A1C190u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 27u, 0x08A1C190u, 0x0898CE14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 309u, 0x0898CE14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C190u) goto L_08A1C190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C190: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1104,8 +1297,21 @@ L_08A1C204: aot_gpr_4 = (ctx.gpr[18] + aot_gpr_4); aot_gpr_31 = (0x08A1C2F0u); ctx.gpr[20] = (aot_gpr_4 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 30u, 0x08A1C2F0u, 0x08A1AB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 420u, 0x08A1AB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C2F0u) goto L_08A1C2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C2F0: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1166,8 +1372,21 @@ L_08A1C314: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A1C358u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 32u, 0x08A1C358u, 0x08A1AB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 420u, 0x08A1AB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C358u) goto L_08A1C358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C358: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1350,8 +1569,8 @@ L_08A1C410: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C438: @@ -1414,8 +1633,8 @@ L_08A1C4D8: ctx.fpr[0] = aot_fpr_14 + aot_fpr_12; jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C504: @@ -1437,8 +1656,8 @@ L_08A1C520: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C544: @@ -1555,29 +1774,29 @@ L_08A1C634: goto L_08A1C638; L_08A1C638: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C640: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(2641))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C648: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C650: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(2068))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C658: @@ -1640,8 +1859,8 @@ L_08A1C6B0: } L_08A1C6B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C6C0: @@ -1683,8 +1902,8 @@ L_08A1C708: goto L_08A1C70C; L_08A1C70C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C714: @@ -1726,15 +1945,15 @@ L_08A1C75C: goto L_08A1C760; L_08A1C760: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C768: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2196))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C770: @@ -1778,8 +1997,8 @@ L_08A1C7B0: goto L_08A1C7B4; L_08A1C7B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C7BC: @@ -1936,8 +2155,8 @@ L_08A1C870: goto L_08A1C87C; L_08A1C87C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C884: @@ -1947,8 +2166,21 @@ L_08A1C884: aot_gpr_16 = (aot_gpr_5 | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A1C8A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 89u, 0x08A1C8A4u, 0x08A1BEE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 611u, 0x08A1BEE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C8A4u) goto L_08A1C8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C8A4: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(2074), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(2544), aot_gpr_16); @@ -1956,8 +2188,21 @@ L_08A1C8A4: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A1C8BCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 90u, 0x08A1C8BCu, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C8BCu) goto L_08A1C8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C8BC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1967,8 +2212,8 @@ L_08A1C8BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C8D0: @@ -2104,8 +2349,8 @@ L_08A1C9D8: goto L_08A1C9DC; L_08A1C9DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1C9E4: @@ -2114,21 +2359,34 @@ L_08A1C9E4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1980))); aot_gpr_31 = (0x08A1C9F8u); aot_gpr_4 = (aot_gpr_4 + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 108u, 0x08A1C9F8u, 0x088BA678u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 505u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 505u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 505u, 0x088BA678u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1C9F8u) goto L_08A1C9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1C9F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1CA04: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2228)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1CA0C: @@ -2150,8 +2408,21 @@ L_08A1CA0C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2650), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2048), 0u); aot_gpr_31 = (0x08A1CA64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 111u, 0x08A1CA64u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CA64u) goto L_08A1CA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CA64: ctx.gpr[17] = (2238u << 16u); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -2191,8 +2462,21 @@ L_08A1CAC0: aot_gpr_4 = (0u | 18u); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(2848), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A1CAD0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 114u, 0x08A1CAD0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CAD0u) goto L_08A1CAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CAD0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -2226,8 +2510,21 @@ L_08A1CB08: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08A1CB34u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 117u, 0x08A1CB34u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CB34u) goto L_08A1CB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CB34: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -2271,8 +2568,21 @@ L_08A1CB7C: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08A1CBA8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 121u, 0x08A1CBA8u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CBA8u) goto L_08A1CBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CBA8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -2325,8 +2635,8 @@ L_08A1CC0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1CC44: @@ -2352,8 +2662,21 @@ L_08A1CC44: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2083), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2084), static_cast(0u)); aot_gpr_31 = (0x08A1CCA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 126u, 0x08A1CCA4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CCA4u) goto L_08A1CCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CCA4: ctx.gpr[17] = (2238u << 16u); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -2393,8 +2716,21 @@ L_08A1CD00: aot_gpr_4 = (0u | 18u); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(2848), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A1CD10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 129u, 0x08A1CD10u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CD10u) goto L_08A1CD10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CD10: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -2428,8 +2764,21 @@ L_08A1CD48: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08A1CD74u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 132u, 0x08A1CD74u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CD74u) goto L_08A1CD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CD74: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -2473,8 +2822,21 @@ L_08A1CDBC: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08A1CDE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 136u, 0x08A1CDE8u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CDE8u) goto L_08A1CDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CDE8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -2520,8 +2882,8 @@ L_08A1CE4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1CE68: @@ -2540,8 +2902,8 @@ L_08A1CE68: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1CE7C: @@ -2566,8 +2928,21 @@ L_08A1CEA8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x08A1CEB4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 144u, 0x08A1CEB4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CEB4u) goto L_08A1CEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CEB4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -2592,8 +2967,8 @@ L_08A1CEDC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1CEEC: @@ -2618,8 +2993,21 @@ L_08A1CF18: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x08A1CF24u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 151u, 0x08A1CF24u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1CF24u) goto L_08A1CF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1CF24: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -2644,8 +3032,8 @@ L_08A1CF4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1CF5C: @@ -2679,8 +3067,8 @@ L_08A1CF5C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2648), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1CF7C: @@ -2756,8 +3144,8 @@ L_08A1CFF4: goto L_08A1D000; L_08A1D000: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D008: @@ -2765,8 +3153,8 @@ L_08A1D008: aot_gpr_5 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2072), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D018: @@ -2831,8 +3219,21 @@ L_08A1D07C: goto L_08A1D080; L_08A1D080: aot_gpr_31 = (0x08A1D088u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 176u, 0x08A1D088u, 0x089BAA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 557u, 0x089BAA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D088u) goto L_08A1D088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D088: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2958,8 +3359,8 @@ L_08A1D13C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D150: @@ -2973,8 +3374,8 @@ L_08A1D150: aot_gpr_5 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2650), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D178: @@ -2985,8 +3386,21 @@ L_08A1D178: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1980), aot_gpr_5); aot_gpr_31 = (0x08A1D198u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 195u, 0x08A1D198u, 0x088907D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 115u, 0x088907D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D198u) goto L_08A1D198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D198: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2720))); @@ -3007,8 +3421,21 @@ L_08A1D1A8: L_08A1D1B4: aot_gpr_31 = (0x08A1D1BCu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 198u, 0x08A1D1BCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D1BCu) goto L_08A1D1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D1BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2728))); goto L_08A1D1C0; @@ -3021,14 +3448,40 @@ L_08A1D1C4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2728), aot_gpr_4); aot_gpr_31 = (0x08A1D1D8u); aot_gpr_4 = (aot_gpr_16 + static_cast(2656)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 201u, 0x08A1D1D8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D1D8u) goto L_08A1D1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D1D8: aot_gpr_4 = (aot_gpr_16 + static_cast(2856)); aot_gpr_31 = (0x08A1D1E4u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 202u, 0x08A1D1E4u, 0x088BA6A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 508u, 0x088BA6A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D1E4u) goto L_08A1D1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D1E4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3038,8 +3491,8 @@ L_08A1D1E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D1F8: @@ -3087,8 +3540,21 @@ L_08A1D23C: L_08A1D244: aot_gpr_31 = (0x08A1D24Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 210u, 0x08A1D24Cu, 0x089BB270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 684u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 684u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 684u, 0x089BB270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D24Cu) goto L_08A1D24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D24C: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_16 != 0u) { @@ -3118,21 +3584,47 @@ L_08A1D270: L_08A1D278: aot_gpr_31 = (0x08A1D280u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 216u, 0x08A1D280u, 0x089BABB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 581u, 0x089BABB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D280u) goto L_08A1D280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D280: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A1D28Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 217u, 0x08A1D28Cu, 0x089BB288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 687u, 0x089BB288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D28Cu) goto L_08A1D28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D28C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D29C: @@ -3156,14 +3648,27 @@ L_08A1D2C0: L_08A1D2C4: aot_gpr_31 = (0x08A1D2CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 222u, 0x08A1D2CCu, 0x089BB270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 684u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 684u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 684u, 0x089BB270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D2CCu) goto L_08A1D2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D2CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D2D8: @@ -3281,8 +3786,8 @@ L_08A1D3C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D3DC: @@ -3343,8 +3848,8 @@ L_08A1D430: aot_gpr_5 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2079), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D43C: @@ -3402,8 +3907,21 @@ L_08A1D49C: } L_08A1D4A8: aot_gpr_31 = (0x08A1D4B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 250u, 0x08A1D4B0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D4B0u) goto L_08A1D4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D4B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3413,8 +3931,21 @@ L_08A1D4B0: } L_08A1D4B8: aot_gpr_31 = (0x08A1D4C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 252u, 0x08A1D4C0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D4C0u) goto L_08A1D4C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D4C0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3504,8 +4035,8 @@ L_08A1D568: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D580: @@ -3572,8 +4103,8 @@ L_08A1D5BC: goto L_08A1D5E8; L_08A1D5E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D5F0: @@ -3586,8 +4117,8 @@ L_08A1D5F0: aot_gpr_5 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2073), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D614: @@ -3606,8 +4137,8 @@ L_08A1D614: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D628: @@ -3617,14 +4148,40 @@ L_08A1D628: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A1D644u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 271u, 0x08A1D644u, 0x08890828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 121u, 0x08890828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D644u) goto L_08A1D644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D644: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A1D650u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 272u, 0x08A1D650u, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D650u) goto L_08A1D650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D650: aot_gpr_4 = (ctx.gpr[17] + static_cast(80)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); @@ -3714,8 +4271,21 @@ L_08A1D650: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A1D7B0u); aot_gpr_4 = (aot_gpr_16 + static_cast(2656)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 273u, 0x08A1D7B0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1D7B0u) goto L_08A1D7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1D7B0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -3725,8 +4295,8 @@ L_08A1D7B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D7C4: @@ -3791,8 +4361,8 @@ L_08A1D804: goto L_08A1D808; L_08A1D808: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D810: @@ -3886,8 +4456,8 @@ L_08A1D894: goto L_08A1D898; L_08A1D898: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1D8A0: @@ -4069,8 +4639,8 @@ L_08A1DA2C: goto L_08A1DA34; L_08A1DA34: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1DA3C: @@ -4151,8 +4721,21 @@ L_08A1DA3C: ctx.fpr[22] = std::sqrt(ctx.fpr[22]); aot_gpr_31 = (0x08A1DAA8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 314u, 0x08A1DAA8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DAA8u) goto L_08A1DAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DAA8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[20] = std::bit_cast(0u); @@ -4174,8 +4757,21 @@ L_08A1DACC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (0x08A1DADCu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 317u, 0x08A1DADCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DADCu) goto L_08A1DADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DADC: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < ctx.fpr[20])) ? 0x00800000u : 0u); @@ -4202,8 +4798,8 @@ L_08A1DAFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1DB18: @@ -4230,8 +4826,8 @@ L_08A1DB2C: goto L_08A1DB38; L_08A1DB38: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1DB40: @@ -4243,14 +4839,40 @@ L_08A1DB40: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A1DB68u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 325u, 0x08A1DB68u, 0x0885FE50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 933u, 0x0885FE50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DB68u) goto L_08A1DB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DB68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A1DB74u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 326u, 0x08A1DB74u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DB74u) goto L_08A1DB74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DB74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4272,8 +4894,21 @@ L_08A1DB84: L_08A1DB90: aot_gpr_31 = (0x08A1DB98u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 329u, 0x08A1DB98u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DB98u) goto L_08A1DB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DB98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16976))); aot_gpr_4 = (15502u << 16u); @@ -4456,8 +5091,21 @@ L_08A1DD28: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A1DD34u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 337u, 0x08A1DD34u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DD34u) goto L_08A1DD34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DD34: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A1DD38; @@ -4510,8 +5158,8 @@ L_08A1DD9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1DDB4: @@ -4647,14 +5295,40 @@ L_08A1DEB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A1DEE8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 357u, 0x08A1DEE8u, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DEE8u) goto L_08A1DEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DEE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A1DEF4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 358u, 0x08A1DEF4u, 0x08A06154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 532u, 0x08A06154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DEF4u) goto L_08A1DEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DEF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4681,14 +5355,40 @@ L_08A1DF10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A1DF30u); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 361u, 0x08A1DF30u, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DF30u) goto L_08A1DF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DF30: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A1DF3Cu); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 362u, 0x08A1DF3Cu, 0x08A06154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 532u, 0x08A06154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DF3Cu) goto L_08A1DF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DF3C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4698,8 +5398,8 @@ L_08A1DF3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1DF50: @@ -4735,8 +5435,21 @@ L_08A1DF88: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7532))); aot_gpr_31 = (0x08A1DFA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 367u, 0x08A1DFA4u, 0x08A24D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 133u, 0x08A24D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DFA4u) goto L_08A1DFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DFA4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4759,8 +5472,21 @@ L_08A1DFD0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A1DFDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 370u, 0x08A1DFDCu, 0x08A26174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 390u, 0x08A26174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1DFDCu) goto L_08A1DFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1DFDC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4799,8 +5525,8 @@ L_08A1E010: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E030: @@ -4839,8 +5565,21 @@ L_08A1E07C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7524))); aot_gpr_31 = (0x08A1E098u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 378u, 0x08A1E098u, 0x08A24D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 133u, 0x08A24D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E098u) goto L_08A1E098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E098: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4863,8 +5602,21 @@ L_08A1E0C4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A1E0D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 381u, 0x08A1E0D0u, 0x08A26174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 390u, 0x08A26174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E0D0u) goto L_08A1E0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E0D0: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (static_cast(ctx.gpr[19]) < 15 ? 1u : 0u); @@ -4913,8 +5665,21 @@ L_08A1E11C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A1E130u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 387u, 0x08A1E130u, 0x08A26174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 390u, 0x08A26174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E130u) goto L_08A1E130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E130: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7528))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2844), aot_gpr_4); @@ -4930,8 +5695,8 @@ L_08A1E130: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E15C: @@ -4970,8 +5735,21 @@ L_08A1E1A4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7516))); aot_gpr_31 = (0x08A1E1C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 392u, 0x08A1E1C0u, 0x08A24D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 133u, 0x08A24D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E1C0u) goto L_08A1E1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E1C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5003,8 +5781,21 @@ L_08A1E1F4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A1E200u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 397u, 0x08A1E200u, 0x08A26174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 390u, 0x08A26174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E200u) goto L_08A1E200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E200: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (static_cast(ctx.gpr[19]) < 8 ? 1u : 0u); @@ -5077,8 +5868,21 @@ L_08A1E288: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A1E294u); aot_gpr_5 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 405u, 0x08A1E294u, 0x08A26174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 390u, 0x08A26174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E294u) goto L_08A1E294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E294: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); { const bool branch_taken = 0u == 0u; @@ -5106,8 +5910,8 @@ L_08A1E2A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E2D0: @@ -5146,8 +5950,21 @@ L_08A1E31C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7508))); aot_gpr_31 = (0x08A1E338u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 412u, 0x08A1E338u, 0x08A24D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 133u, 0x08A24D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E338u) goto L_08A1E338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E338: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5170,8 +5987,21 @@ L_08A1E364: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A1E370u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 415u, 0x08A1E370u, 0x08A26174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 390u, 0x08A26174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E370u) goto L_08A1E370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E370: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (static_cast(ctx.gpr[19]) < 11 ? 1u : 0u); @@ -5220,8 +6050,21 @@ L_08A1E3BC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A1E3D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0136. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 421u, 0x08A1E3D0u, 0x08A26174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0136_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0136_entry, 136u, 390u, 0x08A26174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E3D0u) goto L_08A1E3D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E3D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7512))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2844), aot_gpr_4); @@ -5237,15 +6080,15 @@ L_08A1E3D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E3FC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-7618), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E404: @@ -5337,8 +6180,21 @@ L_08A1E4B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08A1E4F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 429u, 0x08A1E4F0u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E4F0u) goto L_08A1E4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E4F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5504,8 +6360,8 @@ L_08A1E65C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E670: @@ -5531,8 +6387,8 @@ L_08A1E688: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E6C0: @@ -5569,8 +6425,21 @@ L_08A1E6EC: } L_08A1E724: aot_gpr_31 = (0x08A1E72Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 448u, 0x08A1E72Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E72Cu) goto L_08A1E72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E72C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5580,8 +6449,21 @@ L_08A1E72C: } L_08A1E734: aot_gpr_31 = (0x08A1E73Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 450u, 0x08A1E73Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E73Cu) goto L_08A1E73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E73C: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5607,8 +6489,21 @@ L_08A1E73C: } L_08A1E768: aot_gpr_31 = (0x08A1E770u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 452u, 0x08A1E770u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E770u) goto L_08A1E770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E770: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 1u); @@ -5620,8 +6515,21 @@ L_08A1E770: } L_08A1E780: aot_gpr_31 = (0x08A1E788u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 454u, 0x08A1E788u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E788u) goto L_08A1E788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E788: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -5632,8 +6540,21 @@ L_08A1E788: } L_08A1E794: aot_gpr_31 = (0x08A1E79Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 456u, 0x08A1E79Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E79Cu) goto L_08A1E79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E79C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 4u); @@ -5645,8 +6566,21 @@ L_08A1E79C: } L_08A1E7AC: aot_gpr_31 = (0x08A1E7B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 458u, 0x08A1E7B4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E7B4u) goto L_08A1E7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E7B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 5u); @@ -5658,8 +6592,21 @@ L_08A1E7B4: } L_08A1E7C4: aot_gpr_31 = (0x08A1E7CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 460u, 0x08A1E7CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E7CCu) goto L_08A1E7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E7CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 7u); @@ -5711,8 +6658,21 @@ L_08A1E82C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2860), aot_gpr_6); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2896), aot_gpr_4); aot_gpr_31 = (0x08A1E850u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 465u, 0x08A1E850u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1E850u) goto L_08A1E850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1E850: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 6u); @@ -5813,79 +6773,79 @@ L_08A1E93C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E95C: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2076))); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E968: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2076))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E970: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E978: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2120))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E980: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2256), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E988: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2260), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E990: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5504))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E998: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24932))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E9A0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(18))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E9A8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E9B0: @@ -5901,8 +6861,8 @@ L_08A1E9C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1E9DC: @@ -5966,8 +6926,8 @@ L_08A1EABC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1EAC8: @@ -5985,8 +6945,8 @@ L_08A1EAC8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(76), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(160), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1EB00: @@ -6065,8 +7025,8 @@ L_08A1EBC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1EBF8: @@ -6081,14 +7041,27 @@ L_08A1EBF8: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A1EC24u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 495u, 0x08A1EC24u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1EC24u) goto L_08A1EC24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1EC24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1EC30: @@ -6155,8 +7128,21 @@ L_08A1ECE0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A1ED30u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[14]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 500u, 0x08A1ED30u, 0x08A1B674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 515u, 0x08A1B674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1ED30u) goto L_08A1ED30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1ED30: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7584))); @@ -6222,8 +7208,21 @@ L_08A1EDB4: aot_gpr_4 = (2279u << 16u); aot_gpr_31 = (0x08A1EDC0u); aot_gpr_4 = (aot_gpr_4 + static_cast(25248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 508u, 0x08A1EDC0u, 0x08A1B9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 546u, 0x08A1B9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1EDC0u) goto L_08A1EDC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1EDC0: ctx.gpr[21] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); @@ -6581,8 +7580,21 @@ L_08A1EFB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A1EFECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 524u, 0x08A1EFECu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1EFECu) goto L_08A1EFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1EFEC: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(736))); @@ -6613,8 +7625,21 @@ L_08A1EFFC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A1F03Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 527u, 0x08A1F03Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1F03Cu) goto L_08A1F03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1F03C: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -7172,8 +8197,21 @@ L_08A1F47C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A1F4B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 561u, 0x08A1F4B8u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1F4B8u) goto L_08A1F4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1F4B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7352,8 +8390,21 @@ L_08A1F580: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A1F5C0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 569u, 0x08A1F5C0u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1F5C0u) goto L_08A1F5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1F5C0: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -7641,8 +8692,21 @@ L_08A1F838: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A1F854u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 592u, 0x08A1F854u, 0x08A1B7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 517u, 0x08A1B7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1F854u) goto L_08A1F854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1F854: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7671,8 +8735,21 @@ L_08A1F870: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A1F894u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 595u, 0x08A1F894u, 0x08A1AF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 471u, 0x08A1AF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1F894u) goto L_08A1F894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1F894: ctx.gpr[2] = (0u | 1u); goto L_08A1F898; @@ -7695,8 +8772,8 @@ L_08A1F898: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(800)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A1F8D4: @@ -7750,8 +8827,21 @@ L_08A1F950: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A1F9B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[14]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 600u, 0x08A1F9B0u, 0x08A1B674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 515u, 0x08A1B674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1F9B0u) goto L_08A1F9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1F9B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(6992))); @@ -7824,8 +8914,21 @@ L_08A1FA18: aot_gpr_4 = (2279u << 16u); aot_gpr_31 = (0x08A1FA58u); aot_gpr_4 = (aot_gpr_4 + static_cast(25248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 608u, 0x08A1FA58u, 0x08A1B9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 546u, 0x08A1B9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1FA58u) goto L_08A1FA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1FA58: ctx.gpr[23] = (0u | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7420))); @@ -7882,8 +8985,21 @@ L_08A1FA58: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[18]); aot_gpr_31 = (0x08A1FABCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 609u, 0x08A1FABCu, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1FABCu) goto L_08A1FABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1FABC: aot_gpr_4 = (17948u << 16u); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -7927,8 +9043,21 @@ L_08A1FB28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(288))); aot_gpr_31 = (0x08A1FB34u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 613u, 0x08A1FB34u, 0x08A1AA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 405u, 0x08A1AA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1FB34u) goto L_08A1FB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1FB34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8017,8 +9146,21 @@ L_08A1FB8C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A1FBC4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 617u, 0x08A1FBC4u, 0x08A1A5F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 350u, 0x08A1A5F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1FBC4u) goto L_08A1FBC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1FBC4: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8139,8 +9281,21 @@ L_08A1FC80: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x08A1FCB0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 620u, 0x08A1FCB0u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1FCB0u) goto L_08A1FCB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1FCB0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8491,8 +9646,21 @@ L_08A1FF20: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A1FF3Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 641u, 0x08A1FF3Cu, 0x08A1B7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 517u, 0x08A1B7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1FF3Cu) goto L_08A1FF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1FF3C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8515,8 +9683,21 @@ L_08A1FF44: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A1FF84u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0134->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0134_entry, 643u, 0x08A1FF84u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A1FF84u) goto L_08A1FF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A1FF84: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); diff --git a/profiles/vcs/generated/generated_unit_0135.cpp b/profiles/vcs/generated/generated_unit_0135.cpp index ca3099f..5a1f30e 100644 --- a/profiles/vcs/generated/generated_unit_0135.cpp +++ b/profiles/vcs/generated/generated_unit_0135.cpp @@ -603,6 +603,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A20000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -702,8 +726,21 @@ L_08A20088: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A200CCu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 10u, 0x08A200CCu, 0x08A1AF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 471u, 0x08A1AF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A200CCu) goto L_08A200CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A200CC: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_08A200D0; @@ -729,8 +766,8 @@ L_08A200D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(688)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A20118: @@ -783,8 +820,21 @@ L_08A20194: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A201F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[14]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 15u, 0x08A201F0u, 0x08A1B674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 515u, 0x08A1B674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A201F0u) goto L_08A201F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A201F0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7028))); @@ -857,8 +907,21 @@ L_08A20258: aot_gpr_4 = (2279u << 16u); aot_gpr_31 = (0x08A20298u); aot_gpr_4 = (aot_gpr_4 + static_cast(25248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 23u, 0x08A20298u, 0x08A1B9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 546u, 0x08A1B9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20298u) goto L_08A20298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20298: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2416), 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2420), 0u); @@ -934,8 +997,21 @@ L_08A20298: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[18]); aot_gpr_31 = (0x08A2031Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 24u, 0x08A2031Cu, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2031Cu) goto L_08A2031C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2031C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7388))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -1007,8 +1083,21 @@ L_08A2031C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[18]); aot_gpr_31 = (0x08A20390u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 25u, 0x08A20390u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20390u) goto L_08A20390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20390: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(2748), static_cast(aot_gpr_4)); @@ -1041,8 +1130,21 @@ L_08A203D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(368))); aot_gpr_31 = (0x08A203E0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 29u, 0x08A203E0u, 0x08A1AA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 405u, 0x08A1AA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A203E0u) goto L_08A203E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A203E0: if (ctx.gpr[2] == 0u) { aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(2748), static_cast(ctx.gpr[19])); @@ -1101,8 +1203,21 @@ L_08A20458: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(880))); aot_gpr_31 = (0x08A20464u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 36u, 0x08A20464u, 0x08A1AA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 405u, 0x08A1AA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20464u) goto L_08A20464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20464: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1190,8 +1305,21 @@ L_08A20524: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(1392))); aot_gpr_31 = (0x08A20530u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 45u, 0x08A20530u, 0x08A1AA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 405u, 0x08A1AA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20530u) goto L_08A20530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20530: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2744))); @@ -1225,8 +1353,21 @@ L_08A20538: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A20574u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 47u, 0x08A20574u, 0x08A1A5F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 350u, 0x08A1A5F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20574u) goto L_08A20574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20574: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1381,8 +1522,21 @@ L_08A2067C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1904))); aot_gpr_31 = (0x08A20688u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 56u, 0x08A20688u, 0x08A1AA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 405u, 0x08A1AA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20688u) goto L_08A20688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20688: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1416,8 +1570,21 @@ L_08A20690: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A206C8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 58u, 0x08A206C8u, 0x08A1A5F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 350u, 0x08A1A5F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A206C8u) goto L_08A206C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A206C8: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1471,8 +1638,21 @@ L_08A2071C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x08A20764u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 60u, 0x08A20764u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20764u) goto L_08A20764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20764: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1493,8 +1673,21 @@ L_08A2076C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x08A2079Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 62u, 0x08A2079Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2079Cu) goto L_08A2079C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2079C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1701,8 +1894,21 @@ L_08A20818: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A208BCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 72u, 0x08A208BCu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A208BCu) goto L_08A208BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A208BC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7396))); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); @@ -1768,8 +1974,21 @@ L_08A2090C: ctx.fpr[24] = aot_fpr_13 / aot_fpr_12; aot_gpr_31 = (0x08A20948u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 75u, 0x08A20948u, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20948u) goto L_08A20948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20948: aot_gpr_4 = (16256u << 16u); ctx.fpr[26] = std::bit_cast(aot_gpr_4); @@ -1785,8 +2004,21 @@ L_08A20948: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(244))); aot_gpr_31 = (0x08A20980u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 76u, 0x08A20980u, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20980u) goto L_08A20980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20980: aot_fpr_14 = ctx.fpr[0] + ctx.fpr[26]; { const float fs = aot_fpr_14; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } @@ -1798,8 +2030,21 @@ L_08A20980: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(248))); aot_gpr_31 = (0x08A209A8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 77u, 0x08A209A8u, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A209A8u) goto L_08A209A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A209A8: ctx.fpr[15] = ctx.fpr[0] + ctx.fpr[26]; { const float fs = ctx.fpr[15]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } @@ -1840,8 +2085,21 @@ L_08A209E8: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A20A14u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 79u, 0x08A20A14u, 0x08A1B7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 517u, 0x08A1B7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20A14u) goto L_08A20A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20A14: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1864,8 +2122,21 @@ L_08A20A1C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A20A5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 81u, 0x08A20A5Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20A5Cu) goto L_08A20A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20A5C: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -1937,8 +2208,21 @@ L_08A20AC0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A20AE8u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 89u, 0x08A20AE8u, 0x08A1AF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 471u, 0x08A1AF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20AE8u) goto L_08A20AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20AE8: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_08A20AEC; @@ -1964,8 +2248,8 @@ L_08A20AEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(2848)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A20B34: @@ -2014,8 +2298,21 @@ L_08A20B9C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A20BE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[14]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 94u, 0x08A20BE8u, 0x08A1B674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 515u, 0x08A1B674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20BE8u) goto L_08A20BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20BE8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); ctx.gpr[18] = (0u | 3u); @@ -2136,8 +2433,21 @@ L_08A20CC4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A20D1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 102u, 0x08A20D1Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A20D1Cu) goto L_08A20D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A20D1C: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -2568,8 +2878,21 @@ L_08A2106C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A210ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 131u, 0x08A210ACu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A210ACu) goto L_08A210AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A210AC: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -2611,8 +2934,21 @@ L_08A210E4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A21100u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 136u, 0x08A21100u, 0x08A1B7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 517u, 0x08A1B7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21100u) goto L_08A21100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21100: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2682,8 +3018,21 @@ L_08A21158: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A211A0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 142u, 0x08A211A0u, 0x08A1AF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 471u, 0x08A1AF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A211A0u) goto L_08A211A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A211A0: ctx.gpr[2] = (0u | 1u); goto L_08A211A4; @@ -2704,8 +3053,8 @@ L_08A211A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(432)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A211D8: @@ -2758,8 +3107,21 @@ L_08A2124C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A212A8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[14]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 147u, 0x08A212A8u, 0x08A1B674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 515u, 0x08A1B674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A212A8u) goto L_08A212A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A212A8: ctx.gpr[30] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); @@ -2843,8 +3205,21 @@ L_08A2130C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A21374u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 154u, 0x08A21374u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21374u) goto L_08A21374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21374: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -2985,8 +3360,21 @@ L_08A2147C: L_08A21484: aot_gpr_31 = (0x08A2148Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 172u, 0x08A2148Cu, 0x08A1E670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 443u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 443u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 443u, 0x08A1E670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2148Cu) goto L_08A2148C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2148C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7296))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -3284,8 +3672,21 @@ L_08A21648: ctx.fpr[15] = static_cast(static_cast(std::bit_cast(ctx.fpr[15]))); aot_gpr_31 = (0x08A21674u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 179u, 0x08A21674u, 0x08A1AACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 418u, 0x08A1AACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21674u) goto L_08A21674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21674: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7312))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -3340,8 +3741,21 @@ L_08A216AC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A216ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 181u, 0x08A216ECu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A216ECu) goto L_08A216EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A216EC: ctx.gpr[30] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -3386,8 +3800,21 @@ L_08A2172C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A21744u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 187u, 0x08A21744u, 0x08A1B7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 517u, 0x08A1B7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21744u) goto L_08A21744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21744: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(528))); @@ -3446,8 +3873,21 @@ L_08A21794: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A217B8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 193u, 0x08A217B8u, 0x08A1AF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 471u, 0x08A1AF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A217B8u) goto L_08A217B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A217B8: ctx.gpr[2] = (ctx.gpr[19] | 0u); goto L_08A217BC; @@ -3471,8 +3911,8 @@ L_08A217BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(592)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A217FC: @@ -3525,8 +3965,21 @@ L_08A2186C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A218C8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[14]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 198u, 0x08A218C8u, 0x08A1B674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 515u, 0x08A1B674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A218C8u) goto L_08A218C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A218C8: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); @@ -3609,8 +4062,21 @@ L_08A21928: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A21990u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 205u, 0x08A21990u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21990u) goto L_08A21990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21990: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -4034,8 +4500,21 @@ L_08A21C30: ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A21C60u); ctx.fpr[15] = static_cast(static_cast(std::bit_cast(ctx.fpr[15]))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 228u, 0x08A21C60u, 0x08A1AACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 418u, 0x08A1AACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21C60u) goto L_08A21C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21C60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7272))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -4092,8 +4571,21 @@ L_08A21C98: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A21CE0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 230u, 0x08A21CE0u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21CE0u) goto L_08A21CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21CE0: ctx.gpr[21] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); @@ -4135,8 +4627,21 @@ L_08A21D18: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A21D34u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 235u, 0x08A21D34u, 0x08A1B7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 517u, 0x08A1B7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21D34u) goto L_08A21D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21D34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4195,8 +4700,21 @@ L_08A21D84: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A21DA8u); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 241u, 0x08A21DA8u, 0x08A1AF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 471u, 0x08A1AF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A21DA8u) goto L_08A21DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A21DA8: ctx.gpr[2] = (ctx.gpr[22] | 0u); goto L_08A21DAC; @@ -4219,8 +4737,8 @@ L_08A21DAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A21DE8: @@ -4692,8 +5210,21 @@ L_08A22224: { const float fs = aot_fpr_14; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08A22238u); { const float fs = ctx.fpr[16]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 298u, 0x08A22238u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A22238u) goto L_08A22238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A22238: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -4710,8 +5241,8 @@ L_08A22238: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A22268: @@ -4734,18 +5265,57 @@ L_08A22294: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(89), static_cast(0u)); aot_gpr_31 = (0x08A222B8u); aot_gpr_4 = (aot_gpr_16 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 301u, 0x08A222B8u, 0x089997E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 198u, 0x089997E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A222B8u) goto L_08A222B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A222B8: aot_gpr_31 = (0x08A222C0u); aot_gpr_4 = (aot_gpr_16 + static_cast(720)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 302u, 0x08A222C0u, 0x089997E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 198u, 0x089997E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A222C0u) goto L_08A222C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A222C0: aot_gpr_31 = (0x08A222C8u); aot_gpr_4 = (aot_gpr_16 + static_cast(1328)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 303u, 0x08A222C8u, 0x089997E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 198u, 0x089997E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A222C8u) goto L_08A222C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A222C8: ctx.gpr[18] = (0u | 4u); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(112), static_cast(ctx.gpr[18])); @@ -4772,8 +5342,21 @@ L_08A222C8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2071), static_cast(0u)); aot_gpr_31 = (0x08A2232Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 304u, 0x08A2232Cu, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2232Cu) goto L_08A2232C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2232C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1956), static_cast(0u)); aot_gpr_4 = (0u | 30u); @@ -4822,8 +5405,21 @@ L_08A2232C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2192), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), 0u); aot_gpr_31 = (0x08A223ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 305u, 0x08A223ECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A223ECu) goto L_08A223EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A223EC: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[17] = (0u | 1u); @@ -4852,8 +5448,21 @@ L_08A223F4: } L_08A22424: aot_gpr_31 = (0x08A2242Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 308u, 0x08A2242Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2242Cu) goto L_08A2242C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2242C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), ctx.gpr[2]); goto L_08A22430; @@ -4915,8 +5524,21 @@ L_08A224A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A224DCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 314u, 0x08A224DCu, 0x0885FFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 942u, 0x0885FFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A224DCu) goto L_08A224DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A224DC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2075), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2062), static_cast(0u)); @@ -4928,8 +5550,21 @@ L_08A224DC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2648), static_cast(0u)); aot_gpr_31 = (0x08A22504u); aot_gpr_4 = (aot_gpr_16 + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 315u, 0x08A22504u, 0x088BA740u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 518u, 0x088BA740u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A22504u) goto L_08A22504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A22504: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2059), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2085), static_cast(0u)); @@ -4984,8 +5619,8 @@ L_08A22504: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A225A4: @@ -5054,8 +5689,21 @@ L_08A22660: L_08A2266C: aot_gpr_31 = (0x08A22674u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 320u, 0x08A22674u, 0x08A2F364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 481u, 0x08A2F364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A22674u) goto L_08A22674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A22674: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1984))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5182,13 +5830,39 @@ L_08A22798: L_08A2279C: aot_gpr_31 = (0x08A227A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0137. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 334u, 0x08A227A4u, 0x08A28D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0137_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0137_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0137_entry, 137u, 233u, 0x08A28D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A227A4u) goto L_08A227A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A227A4: aot_gpr_31 = (0x08A227ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 335u, 0x08A227ACu, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A227ACu) goto L_08A227AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A227AC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(2651))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5200,8 +5874,21 @@ L_08A227AC: L_08A227B8: aot_gpr_31 = (0x08A227C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 337u, 0x08A227C0u, 0x08A1DDB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 343u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 343u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 343u, 0x08A1DDB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A227C0u) goto L_08A227C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A227C0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(2052))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5213,14 +5900,40 @@ L_08A227C0: L_08A227CC: aot_gpr_31 = (0x08A227D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 339u, 0x08A227D4u, 0x08A1DB18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 320u, 0x08A1DB18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A227D4u) goto L_08A227D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A227D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08A227E0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 340u, 0x08A227E0u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A227E0u) goto L_08A227E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A227E0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -5274,8 +5987,21 @@ L_08A22850: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); aot_gpr_31 = (0x08A2287Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 344u, 0x08A2287Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2287Cu) goto L_08A2287C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2287C: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < aot_fpr_20)) ? 0x00800000u : 0u); @@ -5302,8 +6028,21 @@ L_08A2289C: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08A228C4u); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 347u, 0x08A228C4u, 0x0899B8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 449u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 449u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 449u, 0x0899B8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A228C4u) goto L_08A228C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A228C4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -5315,8 +6054,21 @@ L_08A228C4: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08A228ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0104. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 348u, 0x08A228ECu, 0x089A5494u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0104_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0104_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0104_entry, 104u, 115u, 0x089A5494u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A228ECu) goto L_08A228EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A228EC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -5371,8 +6123,21 @@ L_08A2295C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); aot_gpr_31 = (0x08A22988u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 352u, 0x08A22988u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A22988u) goto L_08A22988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A22988: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -5428,13 +6193,39 @@ L_08A229EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08A229F8u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2180))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 360u, 0x08A229F8u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A229F8u) goto L_08A229F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A229F8: aot_gpr_31 = (0x08A22A00u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 361u, 0x08A22A00u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A22A00u) goto L_08A22A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A22A00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(220), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0]) & 0x7FFFFFFFu); @@ -6317,8 +7108,21 @@ L_08A22FB4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); aot_gpr_31 = (0x08A22FC0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(420))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 403u, 0x08A22FC0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A22FC0u) goto L_08A22FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A22FC0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -6481,8 +7285,21 @@ L_08A23044: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A230C8u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 407u, 0x08A230C8u, 0x08A1DA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 313u, 0x08A1DA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A230C8u) goto L_08A230C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A230C8: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6941,8 +7758,21 @@ L_08A23354: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A23398u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 421u, 0x08A23398u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23398u) goto L_08A23398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23398: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7127,8 +7957,21 @@ L_08A2348C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(544))); aot_gpr_31 = (0x08A23498u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(548))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 427u, 0x08A23498u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23498u) goto L_08A23498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23498: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -7221,8 +8064,21 @@ L_08A2358C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A235A4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 434u, 0x08A235A4u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A235A4u) goto L_08A235A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A235A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7363,8 +8219,21 @@ L_08A2364C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(220), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A23684u); aot_gpr_4 = (aot_gpr_29 + static_cast(220)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 438u, 0x08A23684u, 0x08A1A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 381u, 0x08A1A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23684u) goto L_08A23684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23684: aot_gpr_6 = (aot_gpr_29 + static_cast(192)); { const std::uint32_t vfpu_address = aot_gpr_6 + static_cast(0); @@ -7408,8 +8277,21 @@ L_08A23684: ctx.gpr[8] = (aot_gpr_29 + static_cast(216)); aot_gpr_31 = (0x08A236B4u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 439u, 0x08A236B4u, 0x08A1DA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 313u, 0x08A1DA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A236B4u) goto L_08A236B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A236B4: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7809,8 +8691,21 @@ L_08A238D0: aot_fpr_13 = std::sqrt(aot_fpr_13); aot_gpr_31 = (0x08A23904u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(280))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 449u, 0x08A23904u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23904u) goto L_08A23904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23904: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -7831,8 +8726,21 @@ L_08A23924: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(272))); aot_gpr_31 = (0x08A23934u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(276))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 452u, 0x08A23934u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23934u) goto L_08A23934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23934: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -7867,8 +8775,21 @@ L_08A23958: ctx.gpr[7] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A2399Cu); ctx.gpr[10] = (aot_gpr_29 + static_cast(216)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 455u, 0x08A2399Cu, 0x08999940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 201u, 0x08999940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2399Cu) goto L_08A2399C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2399C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(2092))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7895,8 +8816,21 @@ L_08A239B4: } L_08A239C0: aot_gpr_31 = (0x08A239C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 459u, 0x08A239C8u, 0x08AAE910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 518u, 0x08AAE910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A239C8u) goto L_08A239C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A239C8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7928,8 +8862,21 @@ L_08A239DC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A23A20u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 462u, 0x08A23A20u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23A20u) goto L_08A23A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23A20: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7963,8 +8910,21 @@ L_08A23A28: aot_gpr_5 = (aot_gpr_5 | 52429u); aot_gpr_31 = (0x08A23A60u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 464u, 0x08A23A60u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23A60u) goto L_08A23A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23A60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2872))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -8077,22 +9037,61 @@ L_08A23A74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A23BDCu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 466u, 0x08A23BDCu, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23BDCu) goto L_08A23BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23BDC: ctx.gpr[17] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A23BF0u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 467u, 0x08A23BF0u, 0x08A1A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 349u, 0x08A1A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23BF0u) goto L_08A23BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23BF0: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A23BFCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 468u, 0x08A23BFCu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23BFCu) goto L_08A23BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23BFC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), std::bit_cast(aot_fpr_12)); @@ -8120,8 +9119,21 @@ L_08A23BFC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A23C64u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1936))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 469u, 0x08A23C64u, 0x08A1A8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 390u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 390u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 390u, 0x08A1A8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23C64u) goto L_08A23C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23C64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1940))); aot_gpr_4 = (ctx.gpr[2] - aot_gpr_4); @@ -8151,22 +9163,61 @@ L_08A23C84: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A23CB4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 472u, 0x08A23CB4u, 0x08A1A6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 356u, 0x08A1A6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23CB4u) goto L_08A23CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23CB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A23CC8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 473u, 0x08A23CC8u, 0x08A1A6C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 359u, 0x08A1A6C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23CC8u) goto L_08A23CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23CC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), std::bit_cast(ctx.fpr[0])); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A23CD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 474u, 0x08A23CD8u, 0x08A1AE34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 463u, 0x08A1AE34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23CD8u) goto L_08A23CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23CD8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); aot_gpr_4 = (15820u << 16u); @@ -8210,13 +9261,39 @@ L_08A23CD8: L_08A23D68: aot_gpr_31 = (0x08A23D70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 476u, 0x08A23D70u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23D70u) goto L_08A23D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23D70: aot_gpr_31 = (0x08A23D78u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 477u, 0x08A23D78u, 0x08A1ADC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 455u, 0x08A1ADC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23D78u) goto L_08A23D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23D78: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[21]; if (branch_taken) { @@ -8244,26 +9321,78 @@ L_08A23DA4: L_08A23DA8: aot_gpr_31 = (0x08A23DB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 481u, 0x08A23DB0u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23DB0u) goto L_08A23DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23DB0: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A23DBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 482u, 0x08A23DBCu, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23DBCu) goto L_08A23DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23DBC: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x08A23DC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 483u, 0x08A23DC8u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23DC8u) goto L_08A23DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23DC8: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_31 = (0x08A23DD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 484u, 0x08A23DD4u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23DD4u) goto L_08A23DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23DD4: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -8271,19 +9400,58 @@ L_08A23DD4: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A23DECu); ctx.gpr[8] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 485u, 0x08A23DECu, 0x08A1ADD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 457u, 0x08A1ADD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23DECu) goto L_08A23DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23DEC: aot_gpr_31 = (0x08A23DF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 486u, 0x08A23DF4u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23DF4u) goto L_08A23DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23DF4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A23E00u); aot_gpr_5 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 487u, 0x08A23E00u, 0x08A1ADC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 456u, 0x08A1ADC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E00u) goto L_08A23E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8294,13 +9462,39 @@ L_08A23E00: L_08A23E08: aot_gpr_31 = (0x08A23E10u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 489u, 0x08A23E10u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E10u) goto L_08A23E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E10: aot_gpr_31 = (0x08A23E18u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 490u, 0x08A23E18u, 0x08A1ADC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 455u, 0x08A1ADC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E18u) goto L_08A23E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E18: aot_gpr_4 = (0u | 11u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -8312,26 +9506,78 @@ L_08A23E18: L_08A23E24: aot_gpr_31 = (0x08A23E2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 492u, 0x08A23E2Cu, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E2Cu) goto L_08A23E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E2C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A23E38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 493u, 0x08A23E38u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E38u) goto L_08A23E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E38: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x08A23E44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 494u, 0x08A23E44u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E44u) goto L_08A23E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E44: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_31 = (0x08A23E50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 495u, 0x08A23E50u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E50u) goto L_08A23E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E50: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8339,50 +9585,167 @@ L_08A23E50: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A23E68u); ctx.gpr[8] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 496u, 0x08A23E68u, 0x08A1ADD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 457u, 0x08A1ADD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E68u) goto L_08A23E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E68: aot_gpr_31 = (0x08A23E70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 497u, 0x08A23E70u, 0x08A1BDF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 587u, 0x08A1BDF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E70u) goto L_08A23E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E70: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A23E7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 498u, 0x08A23E7Cu, 0x08A1ADC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 456u, 0x08A1ADC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E7Cu) goto L_08A23E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E7C: aot_gpr_31 = (0x08A23E84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 499u, 0x08A23E84u, 0x08A1E6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 445u, 0x08A1E6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E84u) goto L_08A23E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E84: aot_gpr_31 = (0x08A23E8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 500u, 0x08A23E8Cu, 0x08A1DB40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 324u, 0x08A1DB40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E8Cu) goto L_08A23E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E8C: aot_gpr_31 = (0x08A23E94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 501u, 0x08A23E94u, 0x08A1E998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 480u, 0x08A1E998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23E94u) goto L_08A23E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23E94: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(216))); aot_gpr_31 = (0x08A23EA0u); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 502u, 0x08A23EA0u, 0x08975D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 437u, 0x08975D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23EA0u) goto L_08A23EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23EA0: aot_gpr_31 = (0x08A23EA8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 503u, 0x08A23EA8u, 0x08890828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 121u, 0x08890828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23EA8u) goto L_08A23EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23EA8: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A23EB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 504u, 0x08A23EB4u, 0x08A1A5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 348u, 0x08A1A5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23EB4u) goto L_08A23EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23EB4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(48), std::bit_cast(aot_fpr_12)); @@ -8413,18 +9776,57 @@ L_08A23EB4: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A23F28u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 505u, 0x08A23F28u, 0x08A1A5CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 347u, 0x08A1A5CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F28u) goto L_08A23F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F28: aot_gpr_31 = (0x08A23F30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 506u, 0x08A23F30u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F30u) goto L_08A23F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F30: aot_gpr_31 = (0x08A23F38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 507u, 0x08A23F38u, 0x08A2EF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 459u, 0x08A2EF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F38u) goto L_08A23F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_4 = (aot_gpr_4 & 15u); @@ -8438,32 +9840,97 @@ L_08A23F38: L_08A23F4C: aot_gpr_31 = (0x08A23F54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 509u, 0x08A23F54u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F54u) goto L_08A23F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F54: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x08A23F60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 510u, 0x08A23F60u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F60u) goto L_08A23F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F60: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_31 = (0x08A23F6Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 511u, 0x08A23F6Cu, 0x08AF9130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 203u, 0x08AF9130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F6Cu) goto L_08A23F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F6C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2136), std::bit_cast(ctx.fpr[0])); goto L_08A23F70; L_08A23F70: aot_gpr_31 = (0x08A23F78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 513u, 0x08A23F78u, 0x08A1A6F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 362u, 0x08A1A6F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F78u) goto L_08A23F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F78: aot_gpr_31 = (0x08A23F80u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 514u, 0x08A23F80u, 0x08A1E9A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 481u, 0x08A1E9A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F80u) goto L_08A23F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F80: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8473,13 +9940,39 @@ L_08A23F80: } L_08A23F88: aot_gpr_31 = (0x08A23F90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 516u, 0x08A23F90u, 0x08A1A6F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 362u, 0x08A1A6F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F90u) goto L_08A23F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F90: aot_gpr_31 = (0x08A23F98u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 517u, 0x08A23F98u, 0x08A1E9A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 482u, 0x08A1E9A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23F98u) goto L_08A23F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23F98: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8499,8 +9992,21 @@ L_08A23FA0: } L_08A23FB0: aot_gpr_31 = (0x08A23FB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 520u, 0x08A23FB8u, 0x08A1AD74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 450u, 0x08A1AD74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23FB8u) goto L_08A23FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23FB8: aot_gpr_4 = (17036u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8508,8 +10014,21 @@ L_08A23FB8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1960), std::bit_cast(aot_fpr_12)); ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A23FD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 521u, 0x08A23FD4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23FD4u) goto L_08A23FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23FD4: aot_gpr_4 = (16988u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -8521,19 +10040,58 @@ L_08A23FD4: } L_08A23FE0: aot_gpr_31 = (0x08A23FE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 523u, 0x08A23FE8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23FE8u) goto L_08A23FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23FE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(352))); aot_gpr_31 = (0x08A23FF4u); aot_gpr_5 = (512u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 524u, 0x08A23FF4u, 0x08A1AE54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 465u, 0x08A1AE54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23FF4u) goto L_08A23FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23FF4: aot_gpr_31 = (0x08A23FFCu); ctx.gpr[19] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0135->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0135_entry, 525u, 0x08A23FFCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A23FFCu) goto L_08A23FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A23FFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(352))); ctx.pc = 0x08A24000u; AOT_REGCACHE_SYNC_OUT(); return; diff --git a/profiles/vcs/generated/generated_unit_0136.cpp b/profiles/vcs/generated/generated_unit_0136.cpp index 0e35384..9e75fde 100644 --- a/profiles/vcs/generated/generated_unit_0136.cpp +++ b/profiles/vcs/generated/generated_unit_0136.cpp @@ -850,6 +850,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A24000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -866,8 +890,21 @@ LOCAL_SCHED_BOUNDARY: L_08A24000: aot_gpr_31 = (0x08A24008u); ctx.gpr[5] = (1024u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 2u, 0x08A24008u, 0x08A1AE54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 465u, 0x08A1AE54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24008u) goto L_08A24008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24008: aot_gpr_4 = (ctx.gpr[19] | ctx.gpr[2]); { const bool branch_taken = aot_gpr_4 == 0u; @@ -882,8 +919,21 @@ L_08A24014: L_08A24018: aot_gpr_31 = (0x08A24020u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 5u, 0x08A24020u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24020u) goto L_08A24020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24020: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_22)) ? 0x00800000u : 0u); @@ -895,8 +945,21 @@ L_08A24020: } L_08A24034: aot_gpr_31 = (0x08A2403Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 7u, 0x08A2403Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2403Cu) goto L_08A2403C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2403C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -917,8 +980,21 @@ L_08A2404C: L_08A24054: aot_gpr_31 = (0x08A2405Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 11u, 0x08A2405Cu, 0x08A1E978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 476u, 0x08A1E978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2405Cu) goto L_08A2405C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2405C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -934,8 +1010,21 @@ L_08A24068: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1960))); aot_gpr_31 = (0x08A24078u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 14u, 0x08A24078u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24078u) goto L_08A24078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24078: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_fpr_12 = aot_fpr_12 - aot_fpr_22; @@ -944,8 +1033,21 @@ L_08A24078: aot_fpr_12 = aot_fpr_12 / ctx.fpr[28]; aot_gpr_31 = (0x08A24094u); ctx.fpr[13] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 15u, 0x08A24094u, 0x08A1ABF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 429u, 0x08A1ABF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24094u) goto L_08A24094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24094: aot_gpr_4 = (16256u << 16u); ctx.fpr[26] = std::bit_cast(aot_gpr_4); @@ -954,23 +1056,62 @@ L_08A24094: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1960), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A240B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 16u, 0x08A240B0u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A240B0u) goto L_08A240B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A240B0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_fpr_12 = aot_fpr_12 - aot_fpr_22; aot_fpr_12 = aot_fpr_12 / ctx.fpr[28]; aot_gpr_31 = (0x08A240C4u); ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 17u, 0x08A240C4u, 0x08A1ABD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 427u, 0x08A1ABD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A240C4u) goto L_08A240C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A240C4: aot_fpr_22 = ctx.fpr[0] + ctx.fpr[26]; { const float fs = aot_fpr_22; const float ft = aot_fpr_24; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_22 = std::bit_cast(0x7FC00000u); else aot_fpr_22 = fs * ft; } aot_gpr_31 = (0x08A240D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 18u, 0x08A240D4u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A240D4u) goto L_08A240D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A240D4: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_24)) ? 0x00800000u : 0u); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1200))); @@ -985,8 +1126,21 @@ L_08A240E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08A240F0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 20u, 0x08A240F0u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A240F0u) goto L_08A240F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A240F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1960))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[28])) ? 0x00800000u : 0u); @@ -1002,23 +1156,75 @@ L_08A24104: L_08A24108: aot_gpr_31 = (0x08A24110u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 23u, 0x08A24110u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24110u) goto L_08A24110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24110: aot_gpr_31 = (0x08A24118u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 24u, 0x08A24118u, 0x08A1AD64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 448u, 0x08A1AD64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24118u) goto L_08A24118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24118: aot_gpr_31 = (0x08A24120u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 25u, 0x08A24120u, 0x088907E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 116u, 0x088907E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24120u) goto L_08A24120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24120: aot_gpr_31 = (0x08A24128u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 26u, 0x08A24128u, 0x08A1AD6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 449u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 449u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 449u, 0x08A1AD6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24128u) goto L_08A24128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24128: // Proven VCS actor-LOD path: the PSP WidescreenFix replaces the call that // normally follows this store. It writes s0+0x7A0 from s0+0x7A8 times the @@ -1036,8 +1242,21 @@ L_08A24128: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1960))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1952), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A24138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 27u, 0x08A24138u, 0x08A1E990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 479u, 0x08A1E990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24138u) goto L_08A24138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24138: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1960))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -1052,8 +1271,21 @@ L_08A24138: L_08A24150: aot_gpr_31 = (0x08A24158u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 29u, 0x08A24158u, 0x08A1D7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 274u, 0x08A1D7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24158u) goto L_08A24158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24158: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1103,8 +1335,21 @@ L_08A241A0: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2248))); aot_gpr_31 = (0x08A241CCu); ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 35u, 0x08A241CCu, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A241CCu) goto L_08A241CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A241CC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); { const float fs = aot_fpr_12; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -1115,8 +1360,21 @@ L_08A241CC: { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } aot_gpr_31 = (0x08A241F0u); aot_fpr_12 = aot_fpr_12 + ctx.fpr[14]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 36u, 0x08A241F0u, 0x08A1ABCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 426u, 0x08A1ABCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A241F0u) goto L_08A241F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A241F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2172))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[0]; @@ -1194,8 +1452,21 @@ L_08A242B0: aot_gpr_4 = (ctx.gpr[5] + static_cast(144)); aot_gpr_31 = (0x08A242DCu); ctx.gpr[5] = (ctx.gpr[5] + static_cast(192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 41u, 0x08A242DCu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A242DCu) goto L_08A242DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A242DC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1968), std::bit_cast(ctx.fpr[26])); goto L_08A242E0; @@ -1259,8 +1530,21 @@ L_08A2434C: L_08A24358: aot_gpr_31 = (0x08A24360u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 49u, 0x08A24360u, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24360u) goto L_08A24360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24360: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1304,8 +1588,21 @@ L_08A243A0: L_08A243BC: aot_gpr_31 = (0x08A243C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 54u, 0x08A243C4u, 0x08A1AD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 452u, 0x08A1AD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A243C4u) goto L_08A243C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A243C4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1442,8 +1739,21 @@ L_08A244F0: goto L_08A24510; L_08A24510: aot_gpr_31 = (0x08A24518u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 67u, 0x08A24518u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24518u) goto L_08A24518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24518: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1968), std::bit_cast(ctx.fpr[26])); goto L_08A2451C; @@ -1471,8 +1781,8 @@ L_08A2451C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1280)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2456C: @@ -1578,8 +1888,21 @@ L_08A24658: ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_31 = (0x08A24664u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 72u, 0x08A24664u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24664u) goto L_08A24664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24664: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_22 < aot_fpr_24)) ? 0x00800000u : 0u); @@ -1606,8 +1929,21 @@ L_08A2468C: ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); aot_gpr_31 = (0x08A24698u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 76u, 0x08A24698u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24698u) goto L_08A24698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24698: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_22 < aot_fpr_24)) ? 0x00800000u : 0u); @@ -1644,8 +1980,21 @@ L_08A246DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_31 = (0x08A246E8u); ctx.fpr[13] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 81u, 0x08A246E8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A246E8u) goto L_08A246E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A246E8: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_24)) ? 0x00800000u : 0u); @@ -1664,32 +2013,97 @@ L_08A246FC: L_08A24708: aot_gpr_31 = (0x08A24710u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 84u, 0x08A24710u, 0x08A1AB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 419u, 0x08A1AB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24710u) goto L_08A24710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24710: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A2471Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 85u, 0x08A2471Cu, 0x08A1AB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 419u, 0x08A1AB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2471Cu) goto L_08A2471C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2471C: { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } aot_gpr_31 = (0x08A24728u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 86u, 0x08A24728u, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24728u) goto L_08A24728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24728: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A24734u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 87u, 0x08A24734u, 0x08A1AB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 419u, 0x08A1AB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24734u) goto L_08A24734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24734: { const float fs = aot_fpr_22; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_22 = std::bit_cast(0x7FC00000u); else aot_fpr_22 = fs * ft; } aot_gpr_31 = (0x08A24740u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 88u, 0x08A24740u, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24740u) goto L_08A24740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24740: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(aot_fpr_22), std::bit_cast(ctx.fpr[0])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(80), aot_run_words); } @@ -1781,8 +2195,21 @@ L_08A24740: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A247E0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 89u, 0x08A247E0u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A247E0u) goto L_08A247E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A247E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1879,8 +2306,21 @@ L_08A24858: aot_fpr_20 = aot_fpr_20 - aot_fpr_12; aot_gpr_31 = (0x08A24868u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 94u, 0x08A24868u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24868u) goto L_08A24868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24868: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -1901,8 +2341,21 @@ L_08A24878: L_08A24890: aot_gpr_31 = (0x08A24898u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 97u, 0x08A24898u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24898u) goto L_08A24898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24898: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(568))); goto L_08A2489C; @@ -1939,8 +2392,21 @@ L_08A248E8: L_08A248F0: aot_gpr_31 = (0x08A248F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 101u, 0x08A248F8u, 0x089C6F50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 677u, 0x089C6F50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A248F8u) goto L_08A248F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A248F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1968,8 +2434,21 @@ L_08A24914: L_08A24924: aot_gpr_31 = (0x08A2492Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 105u, 0x08A2492Cu, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2492Cu) goto L_08A2492C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2492C: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); @@ -2036,8 +2515,21 @@ L_08A2492C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A2498Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 106u, 0x08A2498Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2498Cu) goto L_08A2498C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2498C: aot_fpr_22 = std::bit_cast(std::bit_cast(aot_fpr_24)); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -2158,8 +2650,21 @@ L_08A24A30: L_08A24A4C: aot_gpr_31 = (0x08A24A54u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 110u, 0x08A24A54u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24A54u) goto L_08A24A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24A54: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_22 < ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2172,8 +2677,21 @@ L_08A24A64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08A24A70u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 112u, 0x08A24A70u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24A70u) goto L_08A24A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24A70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2194,8 +2712,21 @@ L_08A24A8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08A24A98u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 115u, 0x08A24A98u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24A98u) goto L_08A24A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24A98: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2436,8 +2967,21 @@ L_08A24BB8: L_08A24BD8: aot_gpr_31 = (0x08A24BE0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 120u, 0x08A24BE0u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24BE0u) goto L_08A24BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24BE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7664))); aot_gpr_4 = (16384u << 16u); @@ -2582,15 +3126,41 @@ L_08A24CB0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08A24D14u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 131u, 0x08A24D14u, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24D14u) goto L_08A24D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24D14: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7640))); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A24D24u); ctx.gpr[5] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 132u, 0x08A24D24u, 0x08A1A668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 354u, 0x08A1A668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24D24u) goto L_08A24D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24D24: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2627,8 +3197,8 @@ L_08A24D24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(640)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A24D78: @@ -2660,8 +3230,8 @@ L_08A24DB4: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[5]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5400))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A24DCC: @@ -2674,8 +3244,21 @@ L_08A24DCC: } L_08A24DD4: aot_gpr_31 = (0x08A24DDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 138u, 0x08A24DDCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24DDCu) goto L_08A24DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24DDC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2742,8 +3325,21 @@ L_08A24E2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A24E7Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 144u, 0x08A24E7Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24E7Cu) goto L_08A24E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24E7C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2765,8 +3361,21 @@ L_08A24E98: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A24EA4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 147u, 0x08A24EA4u, 0x08A1D008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 166u, 0x08A1D008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24EA4u) goto L_08A24EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24EA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2808,8 +3417,21 @@ L_08A24EC4: } L_08A24ECC: aot_gpr_31 = (0x08A24ED4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 153u, 0x08A24ED4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24ED4u) goto L_08A24ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24ED4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2819,8 +3441,21 @@ L_08A24ED4: } L_08A24EDC: aot_gpr_31 = (0x08A24EE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 155u, 0x08A24EE4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24EE4u) goto L_08A24EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24EE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -2832,8 +3467,21 @@ L_08A24EE4: } L_08A24EF4: aot_gpr_31 = (0x08A24EFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 157u, 0x08A24EFCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24EFCu) goto L_08A24EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24EFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -2857,8 +3505,21 @@ L_08A24F20: aot_gpr_16 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A24F2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 160u, 0x08A24F2Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24F2Cu) goto L_08A24F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24F2C: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2871,8 +3532,21 @@ L_08A24F2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A24F58u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 161u, 0x08A24F58u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24F58u) goto L_08A24F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24F58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2884,8 +3558,21 @@ L_08A24F60: aot_gpr_16 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A24F6Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 163u, 0x08A24F6Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24F6Cu) goto L_08A24F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24F6C: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2975,8 +3662,21 @@ L_08A24FD4: } L_08A24FDC: aot_gpr_31 = (0x08A24FE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 168u, 0x08A24FE4u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A24FE4u) goto L_08A24FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A24FE4: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3057,8 +3757,21 @@ L_08A25050: } L_08A25058: aot_gpr_31 = (0x08A25060u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 174u, 0x08A25060u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25060u) goto L_08A25060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25060: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3068,8 +3781,21 @@ L_08A25060: } L_08A25068: aot_gpr_31 = (0x08A25070u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 176u, 0x08A25070u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25070u) goto L_08A25070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25070: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -3081,8 +3807,21 @@ L_08A25070: } L_08A25080: aot_gpr_31 = (0x08A25088u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 178u, 0x08A25088u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25088u) goto L_08A25088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25088: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -3106,8 +3845,21 @@ L_08A250AC: aot_gpr_16 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A250B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 181u, 0x08A250B8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A250B8u) goto L_08A250B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A250B8: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3120,8 +3872,21 @@ L_08A250B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A250E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 182u, 0x08A250E4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A250E4u) goto L_08A250E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A250E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3133,8 +3898,21 @@ L_08A250EC: aot_gpr_16 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A250F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 184u, 0x08A250F8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A250F8u) goto L_08A250F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A250F8: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3258,8 +4036,21 @@ L_08A251A8: L_08A251B4: aot_gpr_31 = (0x08A251BCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 191u, 0x08A251BCu, 0x08A1D008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 166u, 0x08A1D008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A251BCu) goto L_08A251BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A251BC: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3286,8 +4077,21 @@ L_08A251BC: } L_08A251EC: aot_gpr_31 = (0x08A251F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 193u, 0x08A251F4u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A251F4u) goto L_08A251F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A251F4: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3370,8 +4174,21 @@ L_08A25268: aot_gpr_16 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A25274u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 199u, 0x08A25274u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25274u) goto L_08A25274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25274: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3384,8 +4201,21 @@ L_08A25274: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A252A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 200u, 0x08A252A0u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A252A0u) goto L_08A252A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A252A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3397,8 +4227,21 @@ L_08A252A8: aot_gpr_16 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A252B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 202u, 0x08A252B4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A252B4u) goto L_08A252B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A252B4: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3480,8 +4323,21 @@ L_08A25314: } L_08A2531C: aot_gpr_31 = (0x08A25324u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 206u, 0x08A25324u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25324u) goto L_08A25324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25324: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3550,8 +4406,21 @@ L_08A2537C: aot_gpr_16 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08A25388u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 212u, 0x08A25388u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25388u) goto L_08A25388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25388: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3564,8 +4433,21 @@ L_08A25388: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A253B4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 213u, 0x08A253B4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A253B4u) goto L_08A253B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A253B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3577,8 +4459,21 @@ L_08A253BC: aot_gpr_16 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08A253C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 215u, 0x08A253C8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A253C8u) goto L_08A253C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A253C8: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3660,8 +4555,21 @@ L_08A25428: } L_08A25430: aot_gpr_31 = (0x08A25438u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 219u, 0x08A25438u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25438u) goto L_08A25438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25438: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3738,13 +4646,39 @@ L_08A25490: } L_08A254A4: aot_gpr_31 = (0x08A254ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 226u, 0x08A254ACu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A254ACu) goto L_08A254AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A254AC: aot_gpr_31 = (0x08A254B4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 227u, 0x08A254B4u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A254B4u) goto L_08A254B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A254B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3769,8 +4703,21 @@ L_08A254C4: } L_08A254CC: aot_gpr_31 = (0x08A254D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 231u, 0x08A254D4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A254D4u) goto L_08A254D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A254D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3780,8 +4727,21 @@ L_08A254D4: } L_08A254DC: aot_gpr_31 = (0x08A254E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 233u, 0x08A254E4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A254E4u) goto L_08A254E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A254E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -3793,8 +4753,21 @@ L_08A254E4: } L_08A254F4: aot_gpr_31 = (0x08A254FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 235u, 0x08A254FCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A254FCu) goto L_08A254FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A254FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -3835,8 +4808,21 @@ L_08A25520: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A25570u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 238u, 0x08A25570u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25570u) goto L_08A25570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25570: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3858,8 +4844,21 @@ L_08A2558C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A25598u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 241u, 0x08A25598u, 0x08A1D008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 166u, 0x08A1D008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25598u) goto L_08A25598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25598: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3895,8 +4894,21 @@ L_08A255B8: aot_gpr_16 = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x08A255C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 246u, 0x08A255C4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A255C4u) goto L_08A255C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A255C4: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3909,8 +4921,21 @@ L_08A255C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A255F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 247u, 0x08A255F0u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A255F0u) goto L_08A255F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A255F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3923,15 +4948,41 @@ L_08A255F8: aot_gpr_18 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x08A25608u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 249u, 0x08A25608u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25608u) goto L_08A25608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25608: ctx.gpr[6] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A25618u); ctx.gpr[5] = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 250u, 0x08A25618u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25618u) goto L_08A25618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25618: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3988,8 +5039,21 @@ L_08A25660: } L_08A25668: aot_gpr_31 = (0x08A25670u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 254u, 0x08A25670u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25670u) goto L_08A25670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25670: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4033,8 +5097,21 @@ L_08A256A4: aot_gpr_16 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x08A256B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 257u, 0x08A256B0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A256B0u) goto L_08A256B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A256B0: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4047,8 +5124,21 @@ L_08A256B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A256DCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 258u, 0x08A256DCu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A256DCu) goto L_08A256DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A256DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4060,8 +5150,21 @@ L_08A256E4: aot_gpr_16 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x08A256F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 260u, 0x08A256F0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A256F0u) goto L_08A256F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A256F0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4143,8 +5246,21 @@ L_08A25750: } L_08A25758: aot_gpr_31 = (0x08A25760u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 264u, 0x08A25760u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25760u) goto L_08A25760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25760: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4188,8 +5304,21 @@ L_08A25794: aot_gpr_16 = (aot_gpr_29 + static_cast(224)); aot_gpr_31 = (0x08A257A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 267u, 0x08A257A0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A257A0u) goto L_08A257A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A257A0: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4202,8 +5331,21 @@ L_08A257A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A257CCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 268u, 0x08A257CCu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A257CCu) goto L_08A257CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A257CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4215,8 +5357,21 @@ L_08A257D4: aot_gpr_16 = (aot_gpr_29 + static_cast(240)); aot_gpr_31 = (0x08A257E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 270u, 0x08A257E0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A257E0u) goto L_08A257E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A257E0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4298,8 +5453,21 @@ L_08A25840: } L_08A25848: aot_gpr_31 = (0x08A25850u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 274u, 0x08A25850u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25850u) goto L_08A25850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25850: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4343,8 +5511,21 @@ L_08A25884: aot_gpr_16 = (aot_gpr_29 + static_cast(256)); aot_gpr_31 = (0x08A25890u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 277u, 0x08A25890u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25890u) goto L_08A25890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25890: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4357,8 +5538,21 @@ L_08A25890: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A258BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 278u, 0x08A258BCu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A258BCu) goto L_08A258BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A258BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4370,8 +5564,21 @@ L_08A258C4: aot_gpr_16 = (aot_gpr_29 + static_cast(272)); aot_gpr_31 = (0x08A258D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 280u, 0x08A258D0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A258D0u) goto L_08A258D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A258D0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4453,8 +5660,21 @@ L_08A25930: } L_08A25938: aot_gpr_31 = (0x08A25940u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 284u, 0x08A25940u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25940u) goto L_08A25940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25940: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4521,8 +5741,21 @@ L_08A25990: } L_08A25998: aot_gpr_31 = (0x08A259A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 290u, 0x08A259A0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A259A0u) goto L_08A259A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A259A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4551,8 +5784,21 @@ L_08A259A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A259F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 292u, 0x08A259F8u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A259F8u) goto L_08A259F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A259F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4574,8 +5820,21 @@ L_08A25A14: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A25A20u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 295u, 0x08A25A20u, 0x08A1D008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 166u, 0x08A1D008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25A20u) goto L_08A25A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25A20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4601,8 +5860,21 @@ L_08A25A30: } L_08A25A38: aot_gpr_31 = (0x08A25A40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 299u, 0x08A25A40u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25A40u) goto L_08A25A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25A40: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4614,8 +5886,21 @@ L_08A25A48: aot_gpr_16 = (aot_gpr_29 + static_cast(288)); aot_gpr_31 = (0x08A25A54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 301u, 0x08A25A54u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25A54u) goto L_08A25A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25A54: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4628,8 +5913,21 @@ L_08A25A54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A25A80u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 302u, 0x08A25A80u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25A80u) goto L_08A25A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25A80: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4641,8 +5939,21 @@ L_08A25A88: aot_gpr_16 = (aot_gpr_29 + static_cast(304)); aot_gpr_31 = (0x08A25A94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 304u, 0x08A25A94u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25A94u) goto L_08A25A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25A94: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4724,8 +6035,21 @@ L_08A25AF4: } L_08A25AFC: aot_gpr_31 = (0x08A25B04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 308u, 0x08A25B04u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25B04u) goto L_08A25B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25B04: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4806,8 +6130,21 @@ L_08A25B70: } L_08A25B78: aot_gpr_31 = (0x08A25B80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 314u, 0x08A25B80u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25B80u) goto L_08A25B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25B80: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4819,8 +6156,21 @@ L_08A25B88: aot_gpr_16 = (aot_gpr_29 + static_cast(320)); aot_gpr_31 = (0x08A25B94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 316u, 0x08A25B94u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25B94u) goto L_08A25B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25B94: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4833,8 +6183,21 @@ L_08A25B94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A25BC0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 317u, 0x08A25BC0u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25BC0u) goto L_08A25BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25BC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4846,8 +6209,21 @@ L_08A25BC8: aot_gpr_16 = (aot_gpr_29 + static_cast(336)); aot_gpr_31 = (0x08A25BD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 319u, 0x08A25BD4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25BD4u) goto L_08A25BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25BD4: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4969,8 +6345,21 @@ L_08A25C74: } L_08A25C7C: aot_gpr_31 = (0x08A25C84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 326u, 0x08A25C84u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25C84u) goto L_08A25C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25C84: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4982,8 +6371,21 @@ L_08A25C8C: aot_gpr_16 = (aot_gpr_29 + static_cast(352)); aot_gpr_31 = (0x08A25C98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 328u, 0x08A25C98u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25C98u) goto L_08A25C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25C98: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4996,8 +6398,21 @@ L_08A25C98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A25CC4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 329u, 0x08A25CC4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25CC4u) goto L_08A25CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25CC4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5009,8 +6424,21 @@ L_08A25CCC: aot_gpr_16 = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x08A25CD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 331u, 0x08A25CD8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25CD8u) goto L_08A25CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25CD8: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5092,8 +6520,21 @@ L_08A25D38: } L_08A25D40: aot_gpr_31 = (0x08A25D48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 335u, 0x08A25D48u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25D48u) goto L_08A25D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25D48: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5176,8 +6617,21 @@ L_08A25DBC: aot_gpr_16 = (aot_gpr_29 + static_cast(384)); aot_gpr_31 = (0x08A25DC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 341u, 0x08A25DC8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25DC8u) goto L_08A25DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25DC8: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5190,8 +6644,21 @@ L_08A25DC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A25DF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 342u, 0x08A25DF4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25DF4u) goto L_08A25DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25DF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5204,15 +6671,41 @@ L_08A25DFC: aot_gpr_18 = (aot_gpr_29 + static_cast(400)); aot_gpr_31 = (0x08A25E0Cu); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 344u, 0x08A25E0Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25E0Cu) goto L_08A25E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25E0C: ctx.gpr[6] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A25E1Cu); ctx.gpr[5] = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 345u, 0x08A25E1Cu, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25E1Cu) goto L_08A25E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25E1C: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5309,8 +6802,21 @@ L_08A25EA4: aot_gpr_16 = (aot_gpr_29 + static_cast(416)); aot_gpr_31 = (0x08A25EB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 352u, 0x08A25EB0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25EB0u) goto L_08A25EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25EB0: ctx.gpr[5] = (aot_gpr_17 + static_cast(2288)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5323,8 +6829,21 @@ L_08A25EB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A25EDCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 353u, 0x08A25EDCu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25EDCu) goto L_08A25EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25EDC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5336,8 +6855,21 @@ L_08A25EE4: aot_gpr_16 = (aot_gpr_29 + static_cast(432)); aot_gpr_31 = (0x08A25EF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 355u, 0x08A25EF0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25EF0u) goto L_08A25EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25EF0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5469,8 +7001,21 @@ L_08A25F98: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A25FC4u); ctx.gpr[5] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 362u, 0x08A25FC4u, 0x08A1EC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 496u, 0x08A1EC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A25FC4u) goto L_08A25FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A25FC4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5505,8 +7050,21 @@ L_08A25FDC: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A26008u); ctx.gpr[5] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 366u, 0x08A26008u, 0x08A1F8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 597u, 0x08A1F8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26008u) goto L_08A26008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26008: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5541,8 +7099,21 @@ L_08A26020: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A2604Cu); ctx.gpr[5] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 370u, 0x08A2604Cu, 0x08A20118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 12u, 0x08A20118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2604Cu) goto L_08A2604C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2604C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5577,8 +7148,21 @@ L_08A26064: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A26090u); ctx.gpr[5] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 374u, 0x08A26090u, 0x08A211D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 144u, 0x08A211D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26090u) goto L_08A26090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26090: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5613,8 +7197,21 @@ L_08A260A8: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A260D4u); ctx.gpr[5] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 378u, 0x08A260D4u, 0x08A217FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 195u, 0x08A217FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A260D4u) goto L_08A260D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A260D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5649,8 +7246,21 @@ L_08A260EC: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A26118u); ctx.gpr[5] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 382u, 0x08A26118u, 0x08A1B2A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 487u, 0x08A1B2A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26118u) goto L_08A26118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26118: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5712,8 +7322,8 @@ L_08A26158: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(688)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A26174: @@ -5734,14 +7344,27 @@ L_08A261B0: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[5]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5520))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A261C8: aot_gpr_31 = (0x08A261D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 393u, 0x08A261D0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A261D0u) goto L_08A261D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A261D0: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -5789,8 +7412,21 @@ L_08A26210: } L_08A26220: aot_gpr_31 = (0x08A26228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 399u, 0x08A26228u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26228u) goto L_08A26228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26228: aot_gpr_4 = (49075u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -5862,8 +7498,21 @@ L_08A26228: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A2628Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 400u, 0x08A2628Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2628Cu) goto L_08A2628C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2628C: ctx.gpr[5] = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x08A26298u); @@ -5872,8 +7521,21 @@ L_08A2628C: AOT_REGCACHE_SYNC_OUT(); return; L_08A26298: aot_gpr_31 = (0x08A262A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 402u, 0x08A262A0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A262A0u) goto L_08A262A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A262A0: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5901,8 +7563,21 @@ L_08A262A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A262DCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 403u, 0x08A262DCu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A262DCu) goto L_08A262DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A262DC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5941,8 +7616,21 @@ L_08A262FC: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A26314u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 408u, 0x08A26314u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26314u) goto L_08A26314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26314: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -5963,8 +7651,21 @@ L_08A26324: aot_gpr_17 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A26330u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 411u, 0x08A26330u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26330u) goto L_08A26330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26330: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5981,8 +7682,21 @@ L_08A26330: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A26344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 412u, 0x08A26344u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26344u) goto L_08A26344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26344: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6099,8 +7813,21 @@ L_08A263E4: AOT_REGCACHE_SYNC_OUT(); return; L_08A26420: aot_gpr_31 = (0x08A26428u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 418u, 0x08A26428u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26428u) goto L_08A26428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26428: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6110,8 +7837,21 @@ L_08A26428: } L_08A26430: aot_gpr_31 = (0x08A26438u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 420u, 0x08A26438u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26438u) goto L_08A26438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26438: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -6123,8 +7863,21 @@ L_08A26438: } L_08A26448: aot_gpr_31 = (0x08A26450u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 422u, 0x08A26450u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26450u) goto L_08A26450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26450: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -6156,8 +7909,21 @@ L_08A26474: ctx.fpr[14] = ctx.fpr[14] + ctx.fpr[15]; aot_gpr_31 = (0x08A26494u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 425u, 0x08A26494u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26494u) goto L_08A26494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26494: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -6198,8 +7964,21 @@ L_08A264C0: ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15]; aot_gpr_31 = (0x08A264E0u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 429u, 0x08A264E0u, 0x088934F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 528u, 0x088934F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A264E0u) goto L_08A264E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A264E0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -6219,8 +7998,21 @@ L_08A26500: aot_gpr_17 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A2650Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 432u, 0x08A2650Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2650Cu) goto L_08A2650C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2650C: ctx.gpr[5] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6233,8 +8025,21 @@ L_08A2650C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A26538u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 433u, 0x08A26538u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26538u) goto L_08A26538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26538: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6246,8 +8051,21 @@ L_08A26540: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A2654Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 435u, 0x08A2654Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2654Cu) goto L_08A2654C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2654C: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6329,8 +8147,21 @@ L_08A265AC: } L_08A265B4: aot_gpr_31 = (0x08A265BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 439u, 0x08A265BCu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A265BCu) goto L_08A265BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A265BC: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6410,12 +8241,38 @@ L_08A26628: ctx.gpr[6] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A26648u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 444u, 0x08A26648u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26648u) goto L_08A26648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26648: aot_gpr_31 = (0x08A26650u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 445u, 0x08A26650u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26650u) goto L_08A26650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26650: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -6423,8 +8280,21 @@ L_08A26650: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A26668u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 446u, 0x08A26668u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26668u) goto L_08A26668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26668: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -6435,8 +8305,21 @@ L_08A26668: } L_08A26670: aot_gpr_31 = (0x08A26678u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 448u, 0x08A26678u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26678u) goto L_08A26678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26678: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6446,8 +8329,21 @@ L_08A26678: } L_08A26680: aot_gpr_31 = (0x08A26688u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 450u, 0x08A26688u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26688u) goto L_08A26688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26688: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -6459,8 +8355,21 @@ L_08A26688: } L_08A26698: aot_gpr_31 = (0x08A266A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 452u, 0x08A266A0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A266A0u) goto L_08A266A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A266A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -6484,8 +8393,21 @@ L_08A266C4: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A266D0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 455u, 0x08A266D0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A266D0u) goto L_08A266D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A266D0: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6502,8 +8424,21 @@ L_08A266D0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A266E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 456u, 0x08A266E4u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A266E4u) goto L_08A266E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A266E4: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6638,8 +8573,21 @@ L_08A267C8: ctx.fpr[14] = ctx.fpr[14] + ctx.fpr[15]; aot_gpr_31 = (0x08A267E8u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 463u, 0x08A267E8u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A267E8u) goto L_08A267E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A267E8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -6672,8 +8620,21 @@ L_08A2680C: ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15]; aot_gpr_31 = (0x08A2682Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 466u, 0x08A2682Cu, 0x088934F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 528u, 0x088934F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2682Cu) goto L_08A2682C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2682C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -6693,8 +8654,21 @@ L_08A2684C: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A26858u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 469u, 0x08A26858u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26858u) goto L_08A26858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26858: ctx.gpr[5] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6707,8 +8681,21 @@ L_08A26858: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A26884u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 470u, 0x08A26884u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26884u) goto L_08A26884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26884: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6720,8 +8707,21 @@ L_08A2688C: aot_gpr_17 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A26898u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 472u, 0x08A26898u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26898u) goto L_08A26898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26898: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6803,8 +8803,21 @@ L_08A268F8: } L_08A26900: aot_gpr_31 = (0x08A26908u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 476u, 0x08A26908u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26908u) goto L_08A26908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26908: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6884,12 +8897,38 @@ L_08A26974: ctx.gpr[6] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A26994u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 481u, 0x08A26994u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26994u) goto L_08A26994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26994: aot_gpr_31 = (0x08A2699Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 482u, 0x08A2699Cu, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2699Cu) goto L_08A2699C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2699C: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -6897,8 +8936,21 @@ L_08A2699C: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A269B4u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 483u, 0x08A269B4u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A269B4u) goto L_08A269B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A269B4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -6911,8 +8963,21 @@ L_08A269BC: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A269C8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 485u, 0x08A269C8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A269C8u) goto L_08A269C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A269C8: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6929,8 +8994,21 @@ L_08A269C8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A269DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 486u, 0x08A269DCu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A269DCu) goto L_08A269DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A269DC: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7053,8 +9131,21 @@ L_08A26AB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A26AD4u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 492u, 0x08A26AD4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26AD4u) goto L_08A26AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26AD4: aot_gpr_4 = (aot_gpr_18 | 0u); ctx.gpr[5] = (aot_gpr_17 | 0u); @@ -7067,8 +9158,21 @@ L_08A26AD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A26B00u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 493u, 0x08A26B00u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26B00u) goto L_08A26B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26B00: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7092,12 +9196,38 @@ L_08A26B10: ctx.gpr[6] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A26B30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 496u, 0x08A26B30u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26B30u) goto L_08A26B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26B30: aot_gpr_31 = (0x08A26B38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 497u, 0x08A26B38u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26B38u) goto L_08A26B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26B38: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -7105,8 +9235,21 @@ L_08A26B38: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A26B50u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 498u, 0x08A26B50u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26B50u) goto L_08A26B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26B50: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7117,8 +9260,21 @@ L_08A26B50: } L_08A26B58: aot_gpr_31 = (0x08A26B60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 500u, 0x08A26B60u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26B60u) goto L_08A26B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26B60: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -7126,8 +9282,21 @@ L_08A26B60: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A26B78u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 501u, 0x08A26B78u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26B78u) goto L_08A26B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26B78: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7140,8 +9309,21 @@ L_08A26B80: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A26B8Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 503u, 0x08A26B8Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26B8Cu) goto L_08A26B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26B8C: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7158,8 +9340,21 @@ L_08A26B8C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A26BA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 504u, 0x08A26BA0u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26BA0u) goto L_08A26BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26BA0: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7286,8 +9481,21 @@ L_08A26C7C: ctx.fpr[14] = ctx.fpr[14] + ctx.fpr[15]; aot_gpr_31 = (0x08A26C9Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 510u, 0x08A26C9Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26C9Cu) goto L_08A26C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26C9C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -7320,8 +9528,21 @@ L_08A26CC0: ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15]; aot_gpr_31 = (0x08A26CE0u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 513u, 0x08A26CE0u, 0x088934F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 528u, 0x088934F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26CE0u) goto L_08A26CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26CE0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -7341,8 +9562,21 @@ L_08A26D00: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A26D0Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 516u, 0x08A26D0Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26D0Cu) goto L_08A26D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26D0C: ctx.gpr[5] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -7355,8 +9589,21 @@ L_08A26D0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A26D38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 517u, 0x08A26D38u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26D38u) goto L_08A26D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26D38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7366,8 +9613,21 @@ L_08A26D38: } L_08A26D40: aot_gpr_31 = (0x08A26D48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 519u, 0x08A26D48u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26D48u) goto L_08A26D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26D48: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -7394,8 +9654,21 @@ L_08A26D60: } L_08A26D68: aot_gpr_31 = (0x08A26D70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 523u, 0x08A26D70u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26D70u) goto L_08A26D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26D70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -7433,12 +9706,38 @@ L_08A26DB8: ctx.gpr[6] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A26DD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 527u, 0x08A26DD8u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26DD8u) goto L_08A26DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26DD8: aot_gpr_31 = (0x08A26DE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 528u, 0x08A26DE0u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26DE0u) goto L_08A26DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26DE0: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -7446,8 +9745,21 @@ L_08A26DE0: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A26DF8u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 529u, 0x08A26DF8u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26DF8u) goto L_08A26DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26DF8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7458,8 +9770,21 @@ L_08A26DF8: } L_08A26E00: aot_gpr_31 = (0x08A26E08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 531u, 0x08A26E08u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26E08u) goto L_08A26E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26E08: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -7467,8 +9792,21 @@ L_08A26E08: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A26E20u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 532u, 0x08A26E20u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26E20u) goto L_08A26E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26E20: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7492,8 +9830,21 @@ L_08A26E30: } L_08A26E40: aot_gpr_31 = (0x08A26E48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 536u, 0x08A26E48u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26E48u) goto L_08A26E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26E48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7503,8 +9854,21 @@ L_08A26E48: } L_08A26E50: aot_gpr_31 = (0x08A26E58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 538u, 0x08A26E58u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26E58u) goto L_08A26E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26E58: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7537,8 +9901,21 @@ L_08A26E70: } L_08A26E78: aot_gpr_31 = (0x08A26E80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 543u, 0x08A26E80u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26E80u) goto L_08A26E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26E80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -7550,8 +9927,21 @@ L_08A26E80: } L_08A26E90: aot_gpr_31 = (0x08A26E98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 545u, 0x08A26E98u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26E98u) goto L_08A26E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26E98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -7660,8 +10050,21 @@ L_08A26F34: } L_08A26F40: aot_gpr_31 = (0x08A26F48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 559u, 0x08A26F48u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26F48u) goto L_08A26F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26F48: { const bool branch_taken = ctx.gpr[19] == ctx.gpr[2]; if (branch_taken) { @@ -7692,8 +10095,21 @@ L_08A26F74: ctx.gpr[20] = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x08A26F80u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 563u, 0x08A26F80u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26F80u) goto L_08A26F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26F80: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); ctx.gpr[21] = (ctx.gpr[19] + static_cast(48)); @@ -7701,8 +10117,21 @@ L_08A26F80: aot_fpr_20 = aot_fpr_12 - aot_fpr_20; aot_gpr_31 = (0x08A26F98u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 564u, 0x08A26F98u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26F98u) goto L_08A26F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26F98: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); @@ -7710,8 +10139,21 @@ L_08A26F98: ctx.gpr[22] = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x08A26FB0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 565u, 0x08A26FB0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26FB0u) goto L_08A26FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26FB0: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7760,15 +10202,41 @@ L_08A26FB0: } L_08A26FEC: aot_gpr_31 = (0x08A26FF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 567u, 0x08A26FF4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A26FF4u) goto L_08A26FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A26FF4: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A27004u); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 568u, 0x08A27004u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27004u) goto L_08A27004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27004: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -7786,16 +10254,42 @@ L_08A27028: ctx.gpr[20] = (ctx.gpr[19] + static_cast(16)); aot_gpr_31 = (0x08A27034u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 570u, 0x08A27034u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27034u) goto L_08A27034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27034: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x08A27048u); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 571u, 0x08A27048u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27048u) goto L_08A27048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27048: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -7818,8 +10312,21 @@ L_08A27074: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A2708Cu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 573u, 0x08A2708Cu, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2708Cu) goto L_08A2708C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2708C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7860,8 +10367,21 @@ L_08A270B0: } L_08A270C0: aot_gpr_31 = (0x08A270C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 579u, 0x08A270C8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A270C8u) goto L_08A270C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A270C8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7873,8 +10393,21 @@ L_08A270D0: aot_gpr_17 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_18 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); aot_gpr_31 = (0x08A270E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 581u, 0x08A270E0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A270E0u) goto L_08A270E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A270E0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7907,8 +10440,21 @@ L_08A270F8: } L_08A27100: aot_gpr_31 = (0x08A27108u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 586u, 0x08A27108u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27108u) goto L_08A27108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27108: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -7920,8 +10466,21 @@ L_08A27108: } L_08A27118: aot_gpr_31 = (0x08A27120u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 588u, 0x08A27120u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27120u) goto L_08A27120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27120: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -8029,8 +10588,21 @@ L_08A271B8: } L_08A271C4: aot_gpr_31 = (0x08A271CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 602u, 0x08A271CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A271CCu) goto L_08A271CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A271CC: { const bool branch_taken = ctx.gpr[19] == ctx.gpr[2]; if (branch_taken) { @@ -8051,8 +10623,21 @@ L_08A271E4: ctx.gpr[20] = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x08A271F0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 605u, 0x08A271F0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A271F0u) goto L_08A271F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A271F0: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); ctx.gpr[21] = (ctx.gpr[19] + static_cast(48)); @@ -8060,8 +10645,21 @@ L_08A271F0: aot_fpr_20 = aot_fpr_12 - aot_fpr_20; aot_gpr_31 = (0x08A27208u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 606u, 0x08A27208u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27208u) goto L_08A27208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27208: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); @@ -8069,8 +10667,21 @@ L_08A27208: ctx.gpr[22] = (aot_gpr_29 + static_cast(224)); aot_gpr_31 = (0x08A27220u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 607u, 0x08A27220u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27220u) goto L_08A27220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27220: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8119,15 +10730,41 @@ L_08A27220: } L_08A2725C: aot_gpr_31 = (0x08A27264u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 609u, 0x08A27264u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27264u) goto L_08A27264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27264: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A27274u); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 610u, 0x08A27274u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27274u) goto L_08A27274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27274: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -8145,16 +10782,42 @@ L_08A27298: ctx.gpr[20] = (ctx.gpr[19] + static_cast(16)); aot_gpr_31 = (0x08A272A4u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 612u, 0x08A272A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A272A4u) goto L_08A272A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A272A4: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x08A272B8u); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 613u, 0x08A272B8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A272B8u) goto L_08A272B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A272B8: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -8273,8 +10936,21 @@ L_08A27350: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A2738Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 616u, 0x08A2738Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2738Cu) goto L_08A2738C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2738C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8297,8 +10973,21 @@ L_08A2739C: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A273B4u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 619u, 0x08A273B4u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A273B4u) goto L_08A273B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A273B4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8328,8 +11017,21 @@ L_08A273D0: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A273DCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 623u, 0x08A273DCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A273DCu) goto L_08A273DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A273DC: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8346,8 +11048,21 @@ L_08A273DC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A273F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 624u, 0x08A273F0u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A273F0u) goto L_08A273F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A273F0: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8470,8 +11185,21 @@ L_08A274BC: ctx.fpr[14] = ctx.fpr[14] + ctx.fpr[15]; aot_gpr_31 = (0x08A274DCu); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 630u, 0x08A274DCu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A274DCu) goto L_08A274DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A274DC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -8504,8 +11232,21 @@ L_08A27500: ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15]; aot_gpr_31 = (0x08A27520u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 633u, 0x08A27520u, 0x088934F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 528u, 0x088934F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27520u) goto L_08A27520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27520: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -8529,12 +11270,38 @@ L_08A27540: ctx.gpr[6] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A27560u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 636u, 0x08A27560u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27560u) goto L_08A27560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27560: aot_gpr_31 = (0x08A27568u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 637u, 0x08A27568u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27568u) goto L_08A27568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27568: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -8542,8 +11309,21 @@ L_08A27568: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A27580u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 638u, 0x08A27580u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27580u) goto L_08A27580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27580: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8556,8 +11336,21 @@ L_08A27588: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A27594u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 640u, 0x08A27594u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27594u) goto L_08A27594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27594: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8574,8 +11367,21 @@ L_08A27594: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A275A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 641u, 0x08A275A8u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A275A8u) goto L_08A275A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A275A8: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8690,8 +11496,21 @@ L_08A27648: L_08A27678: aot_gpr_31 = (0x08A27680u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 647u, 0x08A27680u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27680u) goto L_08A27680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27680: aot_gpr_4 = (aot_gpr_18 | 0u); ctx.gpr[5] = (aot_gpr_17 | 0u); @@ -8704,8 +11523,21 @@ L_08A27680: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A276ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 648u, 0x08A276ACu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A276ACu) goto L_08A276AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A276AC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8729,12 +11561,38 @@ L_08A276BC: ctx.gpr[6] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A276DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 651u, 0x08A276DCu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A276DCu) goto L_08A276DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A276DC: aot_gpr_31 = (0x08A276E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 652u, 0x08A276E4u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A276E4u) goto L_08A276E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A276E4: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -8742,8 +11600,21 @@ L_08A276E4: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A276FCu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 653u, 0x08A276FCu, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A276FCu) goto L_08A276FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A276FC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8756,8 +11627,21 @@ L_08A27704: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A27710u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 655u, 0x08A27710u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27710u) goto L_08A27710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27710: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8774,8 +11658,21 @@ L_08A27710: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A27724u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 656u, 0x08A27724u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27724u) goto L_08A27724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27724: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8888,8 +11785,21 @@ L_08A277C4: L_08A277EC: aot_gpr_31 = (0x08A277F4u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 662u, 0x08A277F4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A277F4u) goto L_08A277F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A277F4: aot_gpr_4 = (aot_gpr_18 | 0u); ctx.gpr[5] = (aot_gpr_17 | 0u); @@ -8902,8 +11812,21 @@ L_08A277F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A27820u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 663u, 0x08A27820u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27820u) goto L_08A27820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27820: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8927,12 +11850,38 @@ L_08A27830: ctx.gpr[6] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A27850u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 666u, 0x08A27850u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27850u) goto L_08A27850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27850: aot_gpr_31 = (0x08A27858u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 667u, 0x08A27858u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27858u) goto L_08A27858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27858: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -8940,8 +11889,21 @@ L_08A27858: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A27870u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 668u, 0x08A27870u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27870u) goto L_08A27870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27870: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8954,8 +11916,21 @@ L_08A27878: aot_gpr_17 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A27884u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 670u, 0x08A27884u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27884u) goto L_08A27884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27884: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8972,8 +11947,21 @@ L_08A27884: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A27898u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 671u, 0x08A27898u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27898u) goto L_08A27898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27898: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9088,8 +12076,21 @@ L_08A27938: L_08A27968: aot_gpr_31 = (0x08A27970u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 677u, 0x08A27970u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27970u) goto L_08A27970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27970: aot_gpr_4 = (aot_gpr_18 | 0u); ctx.gpr[5] = (aot_gpr_17 | 0u); @@ -9102,8 +12103,21 @@ L_08A27970: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A2799Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 678u, 0x08A2799Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2799Cu) goto L_08A2799C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2799C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9127,12 +12141,38 @@ L_08A279AC: ctx.gpr[6] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A279CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 681u, 0x08A279CCu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A279CCu) goto L_08A279CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A279CC: aot_gpr_31 = (0x08A279D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 682u, 0x08A279D4u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A279D4u) goto L_08A279D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A279D4: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -9140,8 +12180,21 @@ L_08A279D4: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A279ECu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 683u, 0x08A279ECu, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A279ECu) goto L_08A279EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A279EC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -9152,8 +12205,21 @@ L_08A279EC: } L_08A279F4: aot_gpr_31 = (0x08A279FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 685u, 0x08A279FCu, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A279FCu) goto L_08A279FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A279FC: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -9161,8 +12227,21 @@ L_08A279FC: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A27A14u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 686u, 0x08A27A14u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27A14u) goto L_08A27A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27A14: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -9173,8 +12252,21 @@ L_08A27A14: } L_08A27A1C: aot_gpr_31 = (0x08A27A24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 688u, 0x08A27A24u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27A24u) goto L_08A27A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27A24: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -9185,8 +12277,21 @@ L_08A27A24: } L_08A27A30: aot_gpr_31 = (0x08A27A38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 690u, 0x08A27A38u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27A38u) goto L_08A27A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27A38: aot_gpr_4 = (49075u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -9258,8 +12363,21 @@ L_08A27A38: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A27A9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 691u, 0x08A27A9Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27A9Cu) goto L_08A27A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27A9C: ctx.gpr[5] = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x08A27AA8u); @@ -9268,8 +12386,21 @@ L_08A27A9C: AOT_REGCACHE_SYNC_OUT(); return; L_08A27AA8: aot_gpr_31 = (0x08A27AB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 693u, 0x08A27AB0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27AB0u) goto L_08A27AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27AB0: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -9315,8 +12446,21 @@ L_08A27AE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A27B08u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 696u, 0x08A27B08u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27B08u) goto L_08A27B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27B08: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9339,8 +12483,21 @@ L_08A27B18: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A27B30u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 699u, 0x08A27B30u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27B30u) goto L_08A27B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27B30: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -9359,8 +12516,21 @@ L_08A27B38: } L_08A27B40: aot_gpr_31 = (0x08A27B48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 702u, 0x08A27B48u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27B48u) goto L_08A27B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27B48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9372,8 +12542,21 @@ L_08A27B50: aot_gpr_17 = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x08A27B5Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 704u, 0x08A27B5Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27B5Cu) goto L_08A27B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27B5C: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9390,8 +12573,21 @@ L_08A27B5C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A27B70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 705u, 0x08A27B70u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27B70u) goto L_08A27B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27B70: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9490,8 +12686,21 @@ L_08A27BDC: L_08A27C0C: aot_gpr_31 = (0x08A27C14u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 710u, 0x08A27C14u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27C14u) goto L_08A27C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27C14: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(376))); aot_gpr_4 = (16128u << 16u); @@ -9499,8 +12708,21 @@ L_08A27C14: aot_fpr_12 = aot_fpr_12 + ctx.fpr[13]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A27C30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 711u, 0x08A27C30u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27C30u) goto L_08A27C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27C30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -9512,8 +12734,21 @@ L_08A27C30: } L_08A27C40: aot_gpr_31 = (0x08A27C48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 713u, 0x08A27C48u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27C48u) goto L_08A27C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27C48: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -9534,8 +12769,21 @@ L_08A27C6C: aot_gpr_17 = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x08A27C78u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 716u, 0x08A27C78u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27C78u) goto L_08A27C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27C78: ctx.gpr[5] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9548,8 +12796,21 @@ L_08A27C78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A27CA4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 717u, 0x08A27CA4u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27CA4u) goto L_08A27CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27CA4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9561,8 +12822,21 @@ L_08A27CAC: aot_gpr_17 = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x08A27CB8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 719u, 0x08A27CB8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27CB8u) goto L_08A27CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27CB8: { const std::uint32_t vfpu_address = aot_gpr_17 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9593,8 +12867,21 @@ L_08A27CB8: ctx.gpr[20] = (aot_gpr_29 + static_cast(400)); aot_gpr_31 = (0x08A27CE0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 720u, 0x08A27CE0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27CE0u) goto L_08A27CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27CE0: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9622,15 +12909,41 @@ L_08A27CE0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A27CFCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 721u, 0x08A27CFCu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27CFCu) goto L_08A27CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27CFC: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A27D0Cu); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 722u, 0x08A27D0Cu, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27D0Cu) goto L_08A27D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27D0C: aot_gpr_4 = (16944u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9658,14 +12971,40 @@ L_08A27D2C: } L_08A27D34: aot_gpr_31 = (0x08A27D3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 726u, 0x08A27D3Cu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27D3Cu) goto L_08A27D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27D3C: ctx.gpr[5] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A27D48u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 727u, 0x08A27D48u, 0x08A1A61Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 351u, 0x08A1A61Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27D48u) goto L_08A27D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27D48: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -9678,8 +13017,21 @@ L_08A27D48: L_08A27D5C: aot_gpr_31 = (0x08A27D64u); aot_gpr_4 = (aot_gpr_29 + static_cast(416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 729u, 0x08A27D64u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27D64u) goto L_08A27D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27D64: aot_gpr_4 = (16448u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9714,12 +13066,38 @@ L_08A27D8C: ctx.gpr[6] = (aot_gpr_29 + static_cast(400)); aot_gpr_31 = (0x08A27DACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 733u, 0x08A27DACu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27DACu) goto L_08A27DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27DAC: aot_gpr_31 = (0x08A27DB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 734u, 0x08A27DB4u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27DB4u) goto L_08A27DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27DB4: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[5] = (ctx.gpr[2] | 0u); @@ -9727,8 +13105,21 @@ L_08A27DB4: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A27DCCu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 735u, 0x08A27DCCu, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27DCCu) goto L_08A27DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27DCC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -9747,8 +13138,21 @@ L_08A27DD4: } L_08A27DDC: aot_gpr_31 = (0x08A27DE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 738u, 0x08A27DE4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27DE4u) goto L_08A27DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27DE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9761,38 +13165,116 @@ L_08A27DEC: aot_gpr_18 = (aot_gpr_29 + static_cast(432)); aot_gpr_31 = (0x08A27DFCu); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 740u, 0x08A27DFCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27DFCu) goto L_08A27DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27DFC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A27E08u); ctx.gpr[5] = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 741u, 0x08A27E08u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E08u) goto L_08A27E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E08: aot_gpr_31 = (0x08A27E10u); ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 742u, 0x08A27E10u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E10u) goto L_08A27E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E10: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A27E1Cu); ctx.gpr[5] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 743u, 0x08A27E1Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E1Cu) goto L_08A27E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E1C: aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A27E2Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 744u, 0x08A27E2Cu, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E2Cu) goto L_08A27E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E2C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x08A27E38u); ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 745u, 0x08A27E38u, 0x08A1ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 459u, 0x08A1ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E38u) goto L_08A27E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E38: aot_gpr_4 = (16262u << 16u); aot_gpr_4 = (aot_gpr_4 | 2706u); @@ -9800,14 +13282,40 @@ L_08A27E38: aot_fpr_22 = ctx.fpr[0] + aot_fpr_12; aot_gpr_31 = (0x08A27E50u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 746u, 0x08A27E50u, 0x08A1AB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 419u, 0x08A1AB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E50u) goto L_08A27E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E50: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08A27E5Cu); aot_fpr_24 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 747u, 0x08A27E5Cu, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E5Cu) goto L_08A27E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E5C: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_24), std::bit_cast(ctx.fpr[0]), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(432), aot_run_words); } @@ -9819,16 +13327,42 @@ L_08A27E5C: L_08A27E74: aot_gpr_31 = (0x08A27E7Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 749u, 0x08A27E7Cu, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E7Cu) goto L_08A27E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E7C: aot_gpr_4 = (16880u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (aot_gpr_18 | 0u); aot_gpr_31 = (0x08A27E90u); ctx.gpr[5] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 750u, 0x08A27E90u, 0x08A1A684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 355u, 0x08A1A684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27E90u) goto L_08A27E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27E90: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A27E9Cu); @@ -9838,8 +13372,21 @@ L_08A27E90: L_08A27E9C: aot_gpr_31 = (0x08A27EA4u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 752u, 0x08A27EA4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27EA4u) goto L_08A27EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27EA4: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_4 = (16560u << 16u); @@ -9851,8 +13398,21 @@ L_08A27EA4: ctx.fpr[13] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x08A27ECCu); aot_gpr_4 = (aot_gpr_29 + static_cast(448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 753u, 0x08A27ECCu, 0x088934F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 528u, 0x088934F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27ECCu) goto L_08A27ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27ECC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(452), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(448))); @@ -9884,8 +13444,21 @@ L_08A27EF8: } aot_gpr_31 = (0x08A27F0Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(452)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 756u, 0x08A27F0Cu, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27F0Cu) goto L_08A27F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27F0C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9896,8 +13469,21 @@ L_08A27F0C: L_08A27F14: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7660))); aot_gpr_31 = (0x08A27F20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 758u, 0x08A27F20u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27F20u) goto L_08A27F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27F20: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9907,8 +13493,21 @@ L_08A27F20: } L_08A27F28: aot_gpr_31 = (0x08A27F30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 760u, 0x08A27F30u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27F30u) goto L_08A27F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27F30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 1u); @@ -9920,8 +13519,21 @@ L_08A27F30: } L_08A27F40: aot_gpr_31 = (0x08A27F48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 762u, 0x08A27F48u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27F48u) goto L_08A27F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27F48: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); ctx.gpr[5] = (0u | 2u); @@ -9954,8 +13566,21 @@ L_08A27F84: aot_gpr_17 = (aot_gpr_29 + static_cast(432)); aot_gpr_31 = (0x08A27F90u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 767u, 0x08A27F90u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27F90u) goto L_08A27F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27F90: ctx.gpr[5] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9968,8 +13593,21 @@ L_08A27F90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A27FBCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 768u, 0x08A27FBCu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27FBCu) goto L_08A27FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27FBC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9982,20 +13620,59 @@ L_08A27FC4: aot_gpr_18 = (aot_gpr_29 + static_cast(432)); aot_gpr_31 = (0x08A27FD4u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 770u, 0x08A27FD4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27FD4u) goto L_08A27FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27FD4: ctx.gpr[6] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A27FE4u); ctx.gpr[5] = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 771u, 0x08A27FE4u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27FE4u) goto L_08A27FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27FE4: aot_gpr_31 = (0x08A27FECu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0136->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0136_entry, 772u, 0x08A27FECu, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A27FECu) goto L_08A27FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A27FEC: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); diff --git a/profiles/vcs/generated/generated_unit_0137.cpp b/profiles/vcs/generated/generated_unit_0137.cpp index 894d078..4e7d881 100644 --- a/profiles/vcs/generated/generated_unit_0137.cpp +++ b/profiles/vcs/generated/generated_unit_0137.cpp @@ -981,6 +981,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A28004u; + if (local_delta_v813 >= 16340u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -997,8 +1021,21 @@ LOCAL_SCHED_BOUNDARY: L_08A28004: aot_gpr_31 = (0x08A2800Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(464)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 2u, 0x08A2800Cu, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2800Cu) goto L_08A2800C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2800C: aot_gpr_4 = (16448u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1041,12 +1078,38 @@ L_08A2803C: ctx.gpr[6] = (aot_gpr_29 + static_cast(432)); aot_gpr_31 = (0x08A2805Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 7u, 0x08A2805Cu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2805Cu) goto L_08A2805C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2805C: aot_gpr_31 = (0x08A28064u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 8u, 0x08A28064u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28064u) goto L_08A28064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28064: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -1054,8 +1117,21 @@ L_08A28064: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A2807Cu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 9u, 0x08A2807Cu, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2807Cu) goto L_08A2807C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2807C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -1073,8 +1149,21 @@ L_08A28084: } L_08A2808C: aot_gpr_31 = (0x08A28094u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 12u, 0x08A28094u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28094u) goto L_08A28094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28094: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1086,38 +1175,116 @@ L_08A2809C: aot_gpr_17 = (aot_gpr_29 + static_cast(480)); aot_gpr_31 = (0x08A280A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 14u, 0x08A280A8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A280A8u) goto L_08A280A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A280A8: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A280B4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 15u, 0x08A280B4u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A280B4u) goto L_08A280B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A280B4: aot_gpr_31 = (0x08A280BCu); aot_gpr_17 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 16u, 0x08A280BCu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A280BCu) goto L_08A280BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A280BC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A280C8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 17u, 0x08A280C8u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A280C8u) goto L_08A280C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A280C8: aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A280D8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 18u, 0x08A280D8u, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A280D8u) goto L_08A280D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A280D8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x08A280E4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 19u, 0x08A280E4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A280E4u) goto L_08A280E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A280E4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -1142,14 +1309,40 @@ L_08A2810C: aot_gpr_17 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A28124u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 22u, 0x08A28124u, 0x08A1AB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 419u, 0x08A1AB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28124u) goto L_08A28124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28124: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A28130u); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 23u, 0x08A28130u, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28130u) goto L_08A28130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28130: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(480), std::bit_cast(ctx.fpr[22])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(484), std::bit_cast(ctx.fpr[0])); @@ -1164,16 +1357,42 @@ L_08A28130: L_08A28150: aot_gpr_31 = (0x08A28158u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 25u, 0x08A28158u, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28158u) goto L_08A28158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28158: aot_gpr_4 = (16840u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A2816Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 26u, 0x08A2816Cu, 0x08A1A684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 355u, 0x08A1A684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2816Cu) goto L_08A2816C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2816C: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A28178u); @@ -1183,8 +1402,21 @@ L_08A2816C: L_08A28178: aot_gpr_31 = (0x08A28180u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 28u, 0x08A28180u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28180u) goto L_08A28180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28180: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(488))); aot_gpr_4 = (16256u << 16u); @@ -1196,8 +1428,21 @@ L_08A28180: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x08A281A8u); aot_gpr_4 = (aot_gpr_29 + static_cast(528)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 29u, 0x08A281A8u, 0x088934F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 528u, 0x088934F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A281A8u) goto L_08A281A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A281A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(532), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(528))); @@ -1229,8 +1474,21 @@ L_08A281D4: } aot_gpr_31 = (0x08A281E8u); aot_gpr_4 = (aot_gpr_29 + static_cast(532)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 32u, 0x08A281E8u, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A281E8u) goto L_08A281E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A281E8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1241,8 +1499,21 @@ L_08A281E8: L_08A281F0: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7660))); aot_gpr_31 = (0x08A281FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 34u, 0x08A281FCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A281FCu) goto L_08A281FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A281FC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1252,8 +1523,21 @@ L_08A281FC: } L_08A28204: aot_gpr_31 = (0x08A2820Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 36u, 0x08A2820Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2820Cu) goto L_08A2820C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2820C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); aot_gpr_5 = (0u | 1u); @@ -1265,8 +1549,21 @@ L_08A2820C: } L_08A2821C: aot_gpr_31 = (0x08A28224u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 38u, 0x08A28224u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28224u) goto L_08A28224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28224: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); aot_gpr_5 = (0u | 2u); @@ -1299,8 +1596,21 @@ L_08A28260: aot_gpr_17 = (aot_gpr_29 + static_cast(480)); aot_gpr_31 = (0x08A2826Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 43u, 0x08A2826Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2826Cu) goto L_08A2826C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2826C: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1313,8 +1623,21 @@ L_08A2826C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A28298u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 44u, 0x08A28298u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28298u) goto L_08A28298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28298: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1327,43 +1650,121 @@ L_08A282A0: ctx.gpr[18] = (aot_gpr_29 + static_cast(480)); aot_gpr_31 = (0x08A282B0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 46u, 0x08A282B0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A282B0u) goto L_08A282B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A282B0: ctx.gpr[19] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A282C4u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 47u, 0x08A282C4u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A282C4u) goto L_08A282C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A282C4: ctx.gpr[18] = (aot_gpr_29 + static_cast(496)); ctx.gpr[20] = (aot_gpr_29 + static_cast(512)); aot_gpr_31 = (0x08A282D4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 48u, 0x08A282D4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A282D4u) goto L_08A282D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A282D4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A282E4u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 49u, 0x08A282E4u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A282E4u) goto L_08A282E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A282E4: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A282F0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 50u, 0x08A282F0u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A282F0u) goto L_08A282F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A282F0: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A28300u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 51u, 0x08A28300u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28300u) goto L_08A28300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28300: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1391,14 +1792,40 @@ L_08A28320: } L_08A28328: aot_gpr_31 = (0x08A28330u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 55u, 0x08A28330u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28330u) goto L_08A28330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28330: aot_gpr_5 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A2833Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 56u, 0x08A2833Cu, 0x08A1A61Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 351u, 0x08A1A61Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2833Cu) goto L_08A2833C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2833C: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -1411,8 +1838,21 @@ L_08A2833C: L_08A28350: aot_gpr_31 = (0x08A28358u); aot_gpr_4 = (aot_gpr_29 + static_cast(544)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 58u, 0x08A28358u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28358u) goto L_08A28358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28358: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1447,12 +1887,38 @@ L_08A28380: ctx.gpr[6] = (aot_gpr_29 + static_cast(512)); aot_gpr_31 = (0x08A283A0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 62u, 0x08A283A0u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A283A0u) goto L_08A283A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A283A0: aot_gpr_31 = (0x08A283A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 63u, 0x08A283A8u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A283A8u) goto L_08A283A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A283A8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -1460,8 +1926,21 @@ L_08A283A8: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A283C0u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 64u, 0x08A283C0u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A283C0u) goto L_08A283C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A283C0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -1481,18 +1960,57 @@ L_08A283D0: aot_gpr_17 = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08A283DCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 67u, 0x08A283DCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A283DCu) goto L_08A283DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A283DC: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A283E8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 68u, 0x08A283E8u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A283E8u) goto L_08A283E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A283E8: aot_gpr_31 = (0x08A283F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 69u, 0x08A283F0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A283F0u) goto L_08A283F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A283F0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1502,8 +2020,21 @@ L_08A283F0: } L_08A283F8: aot_gpr_31 = (0x08A28400u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 71u, 0x08A28400u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28400u) goto L_08A28400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28400: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); aot_gpr_5 = (0u | 1u); @@ -1515,8 +2046,21 @@ L_08A28400: } L_08A28410: aot_gpr_31 = (0x08A28418u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 73u, 0x08A28418u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28418u) goto L_08A28418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28418: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); aot_gpr_5 = (0u | 2u); @@ -1547,8 +2091,21 @@ L_08A28440: goto L_08A28454; L_08A28454: aot_gpr_31 = (0x08A2845Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 77u, 0x08A2845Cu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2845Cu) goto L_08A2845C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2845C: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1567,8 +2124,21 @@ L_08A2845C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x08A28474u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 78u, 0x08A28474u, 0x08A1ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 459u, 0x08A1ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28474u) goto L_08A28474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28474: aot_gpr_4 = (16417u << 16u); aot_gpr_4 = (aot_gpr_4 | 63344u); @@ -1577,14 +2147,40 @@ L_08A28474: ctx.gpr[18] = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08A28490u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 79u, 0x08A28490u, 0x08A1AB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 419u, 0x08A1AB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28490u) goto L_08A28490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28490: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A2849Cu); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 80u, 0x08A2849Cu, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2849Cu) goto L_08A2849C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2849C: ctx.fpr[24] = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1592,8 +2188,21 @@ L_08A2849C: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A284B4u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 81u, 0x08A284B4u, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A284B4u) goto L_08A284B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A284B4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A284C0u); @@ -1604,16 +2213,42 @@ L_08A284C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A284CCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 83u, 0x08A284CCu, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A284CCu) goto L_08A284CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A284CC: aot_gpr_4 = (16752u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A284E0u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 84u, 0x08A284E0u, 0x08A1A684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 355u, 0x08A1A684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A284E0u) goto L_08A284E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A284E0: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A284ECu); @@ -1630,8 +2265,21 @@ L_08A284EC: } aot_gpr_31 = (0x08A28504u); aot_gpr_4 = (aot_gpr_29 + static_cast(576)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 86u, 0x08A28504u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28504u) goto L_08A28504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28504: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(580), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(576))); @@ -1672,8 +2320,21 @@ L_08A28544: } aot_gpr_31 = (0x08A28558u); aot_gpr_4 = (aot_gpr_29 + static_cast(580)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 90u, 0x08A28558u, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28558u) goto L_08A28558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28558: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1684,8 +2345,21 @@ L_08A28558: L_08A28560: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7660))); aot_gpr_31 = (0x08A2856Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 92u, 0x08A2856Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2856Cu) goto L_08A2856C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2856C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1695,13 +2369,39 @@ L_08A2856C: } L_08A28574: aot_gpr_31 = (0x08A2857Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 94u, 0x08A2857Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2857Cu) goto L_08A2857C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2857C: aot_gpr_31 = (0x08A28584u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 95u, 0x08A28584u, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28584u) goto L_08A28584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28584: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -1712,13 +2412,39 @@ L_08A28584: } L_08A28590: aot_gpr_31 = (0x08A28598u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 97u, 0x08A28598u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28598u) goto L_08A28598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28598: aot_gpr_31 = (0x08A285A0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 98u, 0x08A285A0u, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A285A0u) goto L_08A285A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A285A0: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1750,8 +2476,21 @@ L_08A285D8: aot_gpr_17 = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08A285E4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 103u, 0x08A285E4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A285E4u) goto L_08A285E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A285E4: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1764,8 +2503,21 @@ L_08A285E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A28610u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 104u, 0x08A28610u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28610u) goto L_08A28610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28610: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1778,20 +2530,59 @@ L_08A28618: ctx.gpr[18] = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08A28628u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 106u, 0x08A28628u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28628u) goto L_08A28628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28628: ctx.gpr[6] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A28638u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 107u, 0x08A28638u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28638u) goto L_08A28638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28638: aot_gpr_31 = (0x08A28640u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 108u, 0x08A28640u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28640u) goto L_08A28640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28640: aot_gpr_4 = (16996u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1805,8 +2596,21 @@ L_08A28640: L_08A28658: aot_gpr_31 = (0x08A28660u); aot_gpr_4 = (aot_gpr_29 + static_cast(592)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 110u, 0x08A28660u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28660u) goto L_08A28660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28660: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1847,19 +2651,58 @@ L_08A28690: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A286A4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 115u, 0x08A286A4u, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A286A4u) goto L_08A286A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A286A4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A286B4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 116u, 0x08A286B4u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A286B4u) goto L_08A286B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A286B4: aot_gpr_31 = (0x08A286BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 117u, 0x08A286BCu, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A286BCu) goto L_08A286BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A286BC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -1867,8 +2710,21 @@ L_08A286BC: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A286D4u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 118u, 0x08A286D4u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A286D4u) goto L_08A286D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A286D4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -1881,18 +2737,57 @@ L_08A286DC: aot_gpr_17 = (aot_gpr_29 + static_cast(608)); aot_gpr_31 = (0x08A286E8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 120u, 0x08A286E8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A286E8u) goto L_08A286E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A286E8: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A286F4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 121u, 0x08A286F4u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A286F4u) goto L_08A286F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A286F4: aot_gpr_31 = (0x08A286FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 122u, 0x08A286FCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A286FCu) goto L_08A286FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A286FC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1902,13 +2797,39 @@ L_08A286FC: } L_08A28704: aot_gpr_31 = (0x08A2870Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 124u, 0x08A2870Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2870Cu) goto L_08A2870C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2870C: aot_gpr_31 = (0x08A28714u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 125u, 0x08A28714u, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28714u) goto L_08A28714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28714: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -1919,13 +2840,39 @@ L_08A28714: } L_08A28720: aot_gpr_31 = (0x08A28728u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 127u, 0x08A28728u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28728u) goto L_08A28728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28728: aot_gpr_31 = (0x08A28730u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 128u, 0x08A28730u, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28730u) goto L_08A28730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28730: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1956,20 +2903,59 @@ L_08A28754: L_08A28768: aot_gpr_31 = (0x08A28770u); aot_gpr_17 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 132u, 0x08A28770u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28770u) goto L_08A28770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28770: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A2877Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 133u, 0x08A2877Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2877Cu) goto L_08A2877C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2877C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x08A28788u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 134u, 0x08A28788u, 0x08A1ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 459u, 0x08A1ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28788u) goto L_08A28788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28788: aot_gpr_4 = (16122u << 16u); aot_gpr_4 = (aot_gpr_4 | 13790u); @@ -1978,14 +2964,40 @@ L_08A28788: ctx.gpr[18] = (aot_gpr_29 + static_cast(608)); aot_gpr_31 = (0x08A287A4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 135u, 0x08A287A4u, 0x08A1AB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 419u, 0x08A1AB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A287A4u) goto L_08A287A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A287A4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A287B0u); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 136u, 0x08A287B0u, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A287B0u) goto L_08A287B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A287B0: ctx.fpr[24] = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1993,8 +3005,21 @@ L_08A287B0: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A287C8u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 137u, 0x08A287C8u, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A287C8u) goto L_08A287C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A287C8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A287D4u); @@ -2005,16 +3030,42 @@ L_08A287D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A287E0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 139u, 0x08A287E0u, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A287E0u) goto L_08A287E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A287E0: aot_gpr_4 = (16712u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A287F4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 140u, 0x08A287F4u, 0x08A1A684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 355u, 0x08A1A684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A287F4u) goto L_08A287F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A287F4: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A28800u); @@ -2031,8 +3082,21 @@ L_08A28800: } aot_gpr_31 = (0x08A28818u); aot_gpr_4 = (aot_gpr_29 + static_cast(624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 142u, 0x08A28818u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28818u) goto L_08A28818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28818: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(628), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(624))); @@ -2073,8 +3137,21 @@ L_08A28858: } aot_gpr_31 = (0x08A2886Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(628)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 146u, 0x08A2886Cu, 0x08AF8918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 138u, 0x08AF8918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2886Cu) goto L_08A2886C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2886C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2085,8 +3162,21 @@ L_08A2886C: L_08A28874: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7660))); aot_gpr_31 = (0x08A28880u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 148u, 0x08A28880u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28880u) goto L_08A28880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28880: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2096,13 +3186,39 @@ L_08A28880: } L_08A28888: aot_gpr_31 = (0x08A28890u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 150u, 0x08A28890u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28890u) goto L_08A28890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28890: aot_gpr_31 = (0x08A28898u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 151u, 0x08A28898u, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28898u) goto L_08A28898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28898: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -2113,13 +3229,39 @@ L_08A28898: } L_08A288A4: aot_gpr_31 = (0x08A288ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 153u, 0x08A288ACu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A288ACu) goto L_08A288AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A288AC: aot_gpr_31 = (0x08A288B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 154u, 0x08A288B4u, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A288B4u) goto L_08A288B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A288B4: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -2151,8 +3293,21 @@ L_08A288EC: aot_gpr_17 = (aot_gpr_29 + static_cast(608)); aot_gpr_31 = (0x08A288F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 159u, 0x08A288F8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A288F8u) goto L_08A288F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A288F8: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2165,8 +3320,21 @@ L_08A288F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A28924u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 160u, 0x08A28924u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28924u) goto L_08A28924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28924: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2179,20 +3347,59 @@ L_08A2892C: ctx.gpr[18] = (aot_gpr_29 + static_cast(608)); aot_gpr_31 = (0x08A2893Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 162u, 0x08A2893Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2893Cu) goto L_08A2893C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2893C: ctx.gpr[6] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A2894Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 163u, 0x08A2894Cu, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2894Cu) goto L_08A2894C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2894C: aot_gpr_31 = (0x08A28954u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 164u, 0x08A28954u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28954u) goto L_08A28954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28954: aot_gpr_4 = (16912u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2206,8 +3413,21 @@ L_08A28954: L_08A2896C: aot_gpr_31 = (0x08A28974u); aot_gpr_4 = (aot_gpr_29 + static_cast(640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 166u, 0x08A28974u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28974u) goto L_08A28974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28974: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2248,19 +3468,58 @@ L_08A289A4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A289B8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 171u, 0x08A289B8u, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A289B8u) goto L_08A289B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A289B8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A289C8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 172u, 0x08A289C8u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A289C8u) goto L_08A289C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A289C8: aot_gpr_31 = (0x08A289D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 173u, 0x08A289D0u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A289D0u) goto L_08A289D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A289D0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2268,8 +3527,21 @@ L_08A289D0: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A289E8u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 174u, 0x08A289E8u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A289E8u) goto L_08A289E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A289E8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -2290,8 +3562,21 @@ L_08A289F0: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A28A1Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 176u, 0x08A28A1Cu, 0x08A1EC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 496u, 0x08A1EC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28A1Cu) goto L_08A28A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28A1C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2301,8 +3586,21 @@ L_08A28A1C: } L_08A28A24: aot_gpr_31 = (0x08A28A2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 178u, 0x08A28A2Cu, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28A2Cu) goto L_08A28A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28A2C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2310,12 +3608,38 @@ L_08A28A2C: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A28A44u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 179u, 0x08A28A44u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28A44u) goto L_08A28A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28A44: aot_gpr_31 = (0x08A28A4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 180u, 0x08A28A4Cu, 0x08A1A980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 398u, 0x08A1A980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28A4Cu) goto L_08A28A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28A4C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2359,8 +3683,21 @@ L_08A28A6C: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A28A98u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 185u, 0x08A28A98u, 0x08A1F8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 597u, 0x08A1F8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28A98u) goto L_08A28A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28A98: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2370,8 +3707,21 @@ L_08A28A98: } L_08A28AA0: aot_gpr_31 = (0x08A28AA8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 187u, 0x08A28AA8u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28AA8u) goto L_08A28AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28AA8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2379,12 +3729,38 @@ L_08A28AA8: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A28AC0u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 188u, 0x08A28AC0u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28AC0u) goto L_08A28AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28AC0: aot_gpr_31 = (0x08A28AC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 189u, 0x08A28AC8u, 0x08A1A980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 398u, 0x08A1A980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28AC8u) goto L_08A28AC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28AC8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2428,8 +3804,21 @@ L_08A28AE8: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A28B14u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 194u, 0x08A28B14u, 0x08A20118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 12u, 0x08A20118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28B14u) goto L_08A28B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28B14: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2439,8 +3828,21 @@ L_08A28B14: } L_08A28B1C: aot_gpr_31 = (0x08A28B24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 196u, 0x08A28B24u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28B24u) goto L_08A28B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28B24: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2448,12 +3850,38 @@ L_08A28B24: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A28B3Cu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 197u, 0x08A28B3Cu, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28B3Cu) goto L_08A28B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28B3C: aot_gpr_31 = (0x08A28B44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 198u, 0x08A28B44u, 0x08A1A980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 398u, 0x08A1A980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28B44u) goto L_08A28B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28B44: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2497,8 +3925,21 @@ L_08A28B64: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A28B90u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 203u, 0x08A28B90u, 0x08A211D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 144u, 0x08A211D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28B90u) goto L_08A28B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28B90: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2508,8 +3949,21 @@ L_08A28B90: } L_08A28B98: aot_gpr_31 = (0x08A28BA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 205u, 0x08A28BA0u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28BA0u) goto L_08A28BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28BA0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2517,12 +3971,38 @@ L_08A28BA0: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A28BB8u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 206u, 0x08A28BB8u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28BB8u) goto L_08A28BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28BB8: aot_gpr_31 = (0x08A28BC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 207u, 0x08A28BC0u, 0x08A1A980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 398u, 0x08A1A980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28BC0u) goto L_08A28BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28BC0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2566,8 +4046,21 @@ L_08A28BE0: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A28C0Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 212u, 0x08A28C0Cu, 0x08A217FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 195u, 0x08A217FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28C0Cu) goto L_08A28C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28C0C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2577,8 +4070,21 @@ L_08A28C0C: } L_08A28C14: aot_gpr_31 = (0x08A28C1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 214u, 0x08A28C1Cu, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28C1Cu) goto L_08A28C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28C1C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2586,12 +4092,38 @@ L_08A28C1C: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A28C34u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 215u, 0x08A28C34u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28C34u) goto L_08A28C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28C34: aot_gpr_31 = (0x08A28C3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 216u, 0x08A28C3Cu, 0x08A1A980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 398u, 0x08A1A980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28C3Cu) goto L_08A28C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28C3C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2635,8 +4167,21 @@ L_08A28C5C: aot_gpr_4 = (aot_gpr_4 + static_cast(112)); aot_gpr_31 = (0x08A28C88u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 221u, 0x08A28C88u, 0x08A1B2A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 487u, 0x08A1B2A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28C88u) goto L_08A28C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28C88: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2646,8 +4191,21 @@ L_08A28C88: } L_08A28C90: aot_gpr_31 = (0x08A28C98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 223u, 0x08A28C98u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28C98u) goto L_08A28C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28C98: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2655,12 +4213,38 @@ L_08A28C98: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A28CB0u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 224u, 0x08A28CB0u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28CB0u) goto L_08A28CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28CB0: aot_gpr_31 = (0x08A28CB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 225u, 0x08A28CB8u, 0x08A1A980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 398u, 0x08A1A980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28CB8u) goto L_08A28CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28CB8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2694,8 +4278,21 @@ L_08A28CD0: } L_08A28CD8: aot_gpr_31 = (0x08A28CE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 230u, 0x08A28CE0u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28CE0u) goto L_08A28CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28CE0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -2703,8 +4300,21 @@ L_08A28CE0: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A28CF8u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 231u, 0x08A28CF8u, 0x08A1D43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 243u, 0x08A1D43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28CF8u) goto L_08A28CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28CF8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -2730,8 +4340,8 @@ L_08A28D00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1008)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A28D34: @@ -2862,8 +4472,21 @@ L_08A28E90: } L_08A28E9C: aot_gpr_31 = (0x08A28EA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 245u, 0x08A28EA4u, 0x08AAE8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 514u, 0x08AAE8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28EA4u) goto L_08A28EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28EA4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2986,16 +4609,42 @@ L_08A28F7C: L_08A28F84: aot_gpr_31 = (0x08A28F8Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 261u, 0x08A28F8Cu, 0x08A1CA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 110u, 0x08A1CA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28F8Cu) goto L_08A28F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28F8C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(2076), static_cast(aot_gpr_4)); aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(2075), static_cast(0u)); aot_gpr_31 = (0x08A28FA0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 262u, 0x08A28FA0u, 0x08A1D1F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 203u, 0x08A1D1F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28FA0u) goto L_08A28FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A28FA0: aot_gpr_31 = (0x08A28FA8u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A28FA8u) goto L_08A28FA8; @@ -3091,8 +4740,21 @@ L_08A2904C: L_08A29054: aot_gpr_31 = (0x08A2905Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 275u, 0x08A2905Cu, 0x0898D354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 442u, 0x0898D354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2905Cu) goto L_08A2905C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2905C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3172,8 +4834,21 @@ L_08A290F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); aot_gpr_31 = (0x08A29104u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 285u, 0x08A29104u, 0x08A1A8A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 383u, 0x08A1A8A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29104u) goto L_08A29104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29104: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3359,8 +5034,21 @@ L_08A29234: } L_08A29244: aot_gpr_31 = (0x08A2924Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 310u, 0x08A2924Cu, 0x08AAE910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 518u, 0x08AAE910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2924Cu) goto L_08A2924C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2924C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3370,8 +5058,21 @@ L_08A2924C: } L_08A29254: aot_gpr_31 = (0x08A2925Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 312u, 0x08A2925Cu, 0x08AAE644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 473u, 0x08AAE644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2925Cu) goto L_08A2925C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2925C: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -3401,8 +5102,21 @@ L_08A2926C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A29288u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 315u, 0x08A29288u, 0x0896D754u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 382u, 0x0896D754u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29288u) goto L_08A29288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29288: aot_gpr_4 = (aot_gpr_2 | ctx.gpr[23]); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3801,8 +5515,21 @@ L_08A294E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); aot_gpr_31 = (0x08A29564u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 330u, 0x08A29564u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29564u) goto L_08A29564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29564: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3884,8 +5611,21 @@ L_08A2956C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); aot_gpr_31 = (0x08A295ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 332u, 0x08A295ECu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A295ECu) goto L_08A295EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A295EC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4125,8 +5865,21 @@ L_08A29718: } aot_gpr_31 = (0x08A2974Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 344u, 0x08A2974Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2974Cu) goto L_08A2974C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2974C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(176))); @@ -4767,8 +6520,21 @@ L_08A29AE4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A29B40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 357u, 0x08A29B40u, 0x08A1ACB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 437u, 0x08A1ACB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29B40u) goto L_08A29B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29B40: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= ctx.fpr[0])) ? 0x00800000u : 0u); if (((ctx.fcr31 & 0x00800000u) != 0u)) { @@ -4790,13 +6556,39 @@ L_08A29B58: ctx.gpr[19] = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A29B7Cu); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 360u, 0x08A29B7Cu, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29B7Cu) goto L_08A29B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29B7C: aot_gpr_31 = (0x08A29B84u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 361u, 0x08A29B84u, 0x08A1ACB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 437u, 0x08A1ACB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29B84u) goto L_08A29B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29B84: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[18] = (aot_gpr_29 + static_cast(768)); @@ -4806,13 +6598,39 @@ L_08A29B84: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A29BA4u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 362u, 0x08A29BA4u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29BA4u) goto L_08A29BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29BA4: aot_gpr_31 = (0x08A29BACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 363u, 0x08A29BACu, 0x08A1ACB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 437u, 0x08A1ACB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29BACu) goto L_08A29BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29BAC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= ctx.fpr[0])) ? 0x00800000u : 0u); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1880))); @@ -4845,13 +6663,39 @@ L_08A29BD0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A29BF4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 367u, 0x08A29BF4u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29BF4u) goto L_08A29BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29BF4: aot_gpr_31 = (0x08A29BFCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 368u, 0x08A29BFCu, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29BFCu) goto L_08A29BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29BFC: aot_gpr_4 = (16720u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4859,16 +6703,42 @@ L_08A29BFC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A29C14u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 369u, 0x08A29C14u, 0x08A1A684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 355u, 0x08A1A684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29C14u) goto L_08A29C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29C14: ctx.gpr[16] = (aot_gpr_29 + static_cast(512)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A29C28u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 370u, 0x08A29C28u, 0x08A1A638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 352u, 0x08A1A638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29C28u) goto L_08A29C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29C28: ctx.gpr[20] = (aot_gpr_29 + static_cast(560)); aot_gpr_4 = (ctx.gpr[19] << 4u); @@ -4878,8 +6748,21 @@ L_08A29C28: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A29C48u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 371u, 0x08A29C48u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29C48u) goto L_08A29C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29C48: aot_gpr_4 = (16179u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -4887,16 +6770,42 @@ L_08A29C48: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A29C60u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 372u, 0x08A29C60u, 0x08A1A684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 355u, 0x08A1A684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29C60u) goto L_08A29C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29C60: ctx.gpr[18] = (aot_gpr_29 + static_cast(528)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A29C74u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 373u, 0x08A29C74u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29C74u) goto L_08A29C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29C74: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4920,8 +6829,21 @@ L_08A29C74: } aot_gpr_31 = (0x08A29C94u); aot_gpr_4 = (aot_gpr_29 + static_cast(752)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 374u, 0x08A29C94u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29C94u) goto L_08A29C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29C94: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(752))); @@ -4960,8 +6882,21 @@ L_08A29CB8: ctx.fpr[15] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A29D08u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 377u, 0x08A29D08u, 0x08A1AB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 420u, 0x08A1AB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29D08u) goto L_08A29D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29D08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2180))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4978,23 +6913,62 @@ L_08A29D28: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A29D3Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 379u, 0x08A29D3Cu, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29D3Cu) goto L_08A29D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29D3C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A29D4Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 380u, 0x08A29D4Cu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29D4Cu) goto L_08A29D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29D4C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(2648), static_cast(aot_gpr_4)); goto L_08A29D54; L_08A29D54: aot_gpr_31 = (0x08A29D5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 382u, 0x08A29D5Cu, 0x0896D890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 398u, 0x0896D890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29D5Cu) goto L_08A29D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29D5C: aot_gpr_4 = (aot_gpr_2 | ctx.gpr[23]); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5128,8 +7102,21 @@ L_08A29E30: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A29E44u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 400u, 0x08A29E44u, 0x08A1D810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 283u, 0x08A1D810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29E44u) goto L_08A29E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29E44: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1944))); aot_fpr_13 = std::bit_cast(0u); @@ -5273,40 +7260,131 @@ L_08A29F70: L_08A29F7C: aot_gpr_31 = (0x08A29F84u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 415u, 0x08A29F84u, 0x08A1ADB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 454u, 0x08A1ADB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29F84u) goto L_08A29F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29F84: aot_gpr_31 = (0x08A29F8Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 416u, 0x08A29F8Cu, 0x08A1AD3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 445u, 0x08A1AD3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29F8Cu) goto L_08A29F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29F8C: aot_gpr_31 = (0x08A29F94u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 417u, 0x08A29F94u, 0x08A1AD5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 447u, 0x08A1AD5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29F94u) goto L_08A29F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29F94: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_31 = (0x08A29FA0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 418u, 0x08A29FA0u, 0x08A1ADB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 454u, 0x08A1ADB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29FA0u) goto L_08A29FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29FA0: aot_gpr_31 = (0x08A29FA8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 419u, 0x08A29FA8u, 0x08A1AD3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 445u, 0x08A1AD3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29FA8u) goto L_08A29FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29FA8: aot_gpr_31 = (0x08A29FB0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 420u, 0x08A29FB0u, 0x08A1AD54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 446u, 0x08A1AD54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29FB0u) goto L_08A29FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29FB0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_fpr_20 = aot_fpr_20 - aot_fpr_12; aot_gpr_31 = (0x08A29FC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 421u, 0x08A29FC0u, 0x08AAE934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 522u, 0x08AAE934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A29FC0u) goto L_08A29FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A29FC0: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (16449u << 16u); @@ -5350,8 +7428,21 @@ L_08A29FFC: } L_08A2A00C: aot_gpr_31 = (0x08A2A014u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 427u, 0x08A2A014u, 0x08AAE934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 522u, 0x08AAE934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A014u) goto L_08A2A014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A014: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5361,8 +7452,21 @@ L_08A2A014: } L_08A2A01C: aot_gpr_31 = (0x08A2A024u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 429u, 0x08A2A024u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A024u) goto L_08A2A024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A024: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5372,8 +7476,21 @@ L_08A2A024: } L_08A2A02C: aot_gpr_31 = (0x08A2A034u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 431u, 0x08A2A034u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A034u) goto L_08A2A034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A034: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5408,8 +7525,21 @@ L_08A2A06C: ctx.gpr[16] = (aot_gpr_17 + static_cast(2176)); aot_gpr_31 = (0x08A2A078u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 436u, 0x08A2A078u, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A078u) goto L_08A2A078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A078: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -5420,8 +7550,21 @@ L_08A2A078: aot_gpr_5 = (aot_gpr_29 + static_cast(800)); aot_gpr_31 = (0x08A2A09Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 437u, 0x08A2A09Cu, 0x08A1A6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 356u, 0x08A1A6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A09Cu) goto L_08A2A09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A09C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2132), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -5434,8 +7577,21 @@ L_08A2A0A8: ctx.gpr[16] = (aot_gpr_17 + static_cast(2176)); aot_gpr_31 = (0x08A2A0B4u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 439u, 0x08A2A0B4u, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A0B4u) goto L_08A2A0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A0B4: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -5446,8 +7602,21 @@ L_08A2A0B4: aot_gpr_5 = (aot_gpr_29 + static_cast(804)); aot_gpr_31 = (0x08A2A0D8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 440u, 0x08A2A0D8u, 0x08A1A6C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 359u, 0x08A1A6C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A0D8u) goto L_08A2A0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A0D8: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2132), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -5483,8 +7652,21 @@ L_08A2A0F0: L_08A2A120: aot_gpr_31 = (0x08A2A128u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 444u, 0x08A2A128u, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A128u) goto L_08A2A128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A128: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -5495,8 +7677,21 @@ L_08A2A128: aot_gpr_5 = (aot_gpr_29 + static_cast(812)); aot_gpr_31 = (0x08A2A14Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 445u, 0x08A2A14Cu, 0x08A1A6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 356u, 0x08A1A6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A14Cu) goto L_08A2A14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A14C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2132), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -5508,8 +7703,21 @@ L_08A2A14C: L_08A2A158: aot_gpr_31 = (0x08A2A160u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 447u, 0x08A2A160u, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A160u) goto L_08A2A160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A160: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -5520,8 +7728,21 @@ L_08A2A160: aot_gpr_5 = (aot_gpr_29 + static_cast(816)); aot_gpr_31 = (0x08A2A184u); aot_gpr_4 = (aot_gpr_29 + static_cast(808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 448u, 0x08A2A184u, 0x08A1A6C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 359u, 0x08A1A6C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A184u) goto L_08A2A184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A184: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2132), std::bit_cast(ctx.fpr[0])); goto L_08A2A188; @@ -5554,8 +7775,21 @@ L_08A2A1B4: ctx.gpr[16] = (aot_gpr_17 + static_cast(2128)); aot_gpr_31 = (0x08A2A1C0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 453u, 0x08A2A1C0u, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A1C0u) goto L_08A2A1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A1C0: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -5566,8 +7800,21 @@ L_08A2A1C0: aot_gpr_5 = (aot_gpr_29 + static_cast(820)); aot_gpr_31 = (0x08A2A1E4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 454u, 0x08A2A1E4u, 0x08A1A6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 356u, 0x08A1A6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A1E4u) goto L_08A2A1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A1E4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2132), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -5580,8 +7827,21 @@ L_08A2A1F0: ctx.gpr[16] = (aot_gpr_17 + static_cast(2128)); aot_gpr_31 = (0x08A2A1FCu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 456u, 0x08A2A1FCu, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A1FCu) goto L_08A2A1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A1FC: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -5592,8 +7852,21 @@ L_08A2A1FC: aot_gpr_5 = (aot_gpr_29 + static_cast(824)); aot_gpr_31 = (0x08A2A220u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 457u, 0x08A2A220u, 0x08A1A6C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 359u, 0x08A1A6C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A220u) goto L_08A2A220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A220: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2132), std::bit_cast(ctx.fpr[0])); goto L_08A2A224; @@ -5641,8 +7914,21 @@ L_08A2A260: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A2A2A8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 462u, 0x08A2A2A8u, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A2A8u) goto L_08A2A2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A2A8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -5654,8 +7940,21 @@ L_08A2A2A8: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x08A2A2D0u); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 463u, 0x08A2A2D0u, 0x0899B1A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 365u, 0x0899B1A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A2D0u) goto L_08A2A2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A2D0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5681,8 +7980,21 @@ L_08A2A2E0: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x08A2A308u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 466u, 0x08A2A308u, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A308u) goto L_08A2A308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A308: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5711,8 +8023,21 @@ L_08A2A31C: aot_gpr_4 = (aot_gpr_5 + static_cast(576)); aot_gpr_31 = (0x08A2A348u); aot_gpr_5 = (aot_gpr_5 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 469u, 0x08A2A348u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A348u) goto L_08A2A348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A348: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5723,8 +8048,21 @@ L_08A2A348: L_08A2A350: aot_gpr_31 = (0x08A2A358u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 471u, 0x08A2A358u, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A358u) goto L_08A2A358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A358: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5740,8 +8078,21 @@ L_08A2A360: L_08A2A368: aot_gpr_31 = (0x08A2A370u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 474u, 0x08A2A370u, 0x0898D354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 442u, 0x0898D354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A370u) goto L_08A2A370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A370: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5918,8 +8269,21 @@ L_08A2A4C0: L_08A2A4C8: aot_gpr_31 = (0x08A2A4D0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 496u, 0x08A2A4D0u, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A4D0u) goto L_08A2A4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A4D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 61u); @@ -5940,8 +8304,21 @@ L_08A2A4E0: L_08A2A4EC: aot_gpr_31 = (0x08A2A4F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 499u, 0x08A2A4F4u, 0x08A1ADB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 454u, 0x08A1ADB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A4F4u) goto L_08A2A4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A4F4: aot_gpr_4 = (0u | 246u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5978,8 +8355,21 @@ L_08A2A534: ctx.gpr[16] = (aot_gpr_17 + static_cast(2188)); aot_gpr_31 = (0x08A2A540u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 504u, 0x08A2A540u, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A540u) goto L_08A2A540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A540: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -5990,8 +8380,21 @@ L_08A2A540: aot_gpr_5 = (aot_gpr_29 + static_cast(848)); aot_gpr_31 = (0x08A2A564u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 505u, 0x08A2A564u, 0x08A1A6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 356u, 0x08A1A6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A564u) goto L_08A2A564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A564: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2192), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -6004,8 +8407,21 @@ L_08A2A570: ctx.gpr[16] = (aot_gpr_17 + static_cast(2188)); aot_gpr_31 = (0x08A2A57Cu); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 507u, 0x08A2A57Cu, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A57Cu) goto L_08A2A57C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A57C: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -6016,8 +8432,21 @@ L_08A2A57C: aot_gpr_5 = (aot_gpr_29 + static_cast(852)); aot_gpr_31 = (0x08A2A5A0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 508u, 0x08A2A5A0u, 0x08A1A6C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 359u, 0x08A1A6C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A5A0u) goto L_08A2A5A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A5A0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2192), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -6053,8 +8482,21 @@ L_08A2A5E4: ctx.gpr[16] = (aot_gpr_17 + static_cast(2184)); aot_gpr_31 = (0x08A2A5F0u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 512u, 0x08A2A5F0u, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A5F0u) goto L_08A2A5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A5F0: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -6065,8 +8507,21 @@ L_08A2A5F0: aot_gpr_5 = (aot_gpr_29 + static_cast(856)); aot_gpr_31 = (0x08A2A614u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 513u, 0x08A2A614u, 0x08A1A6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 356u, 0x08A1A6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A614u) goto L_08A2A614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A614: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2192), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -6079,8 +8534,21 @@ L_08A2A620: ctx.gpr[16] = (aot_gpr_17 + static_cast(2184)); aot_gpr_31 = (0x08A2A62Cu); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 515u, 0x08A2A62Cu, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A62Cu) goto L_08A2A62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A62C: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -6091,8 +8559,21 @@ L_08A2A62C: aot_gpr_5 = (aot_gpr_29 + static_cast(860)); aot_gpr_31 = (0x08A2A650u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 516u, 0x08A2A650u, 0x08A1A6C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 359u, 0x08A1A6C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A650u) goto L_08A2A650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A650: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2192), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -6123,8 +8604,21 @@ L_08A2A680: ctx.gpr[16] = (aot_gpr_17 + static_cast(2184)); aot_gpr_31 = (0x08A2A68Cu); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 520u, 0x08A2A68Cu, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A68Cu) goto L_08A2A68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A68C: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -6135,8 +8629,21 @@ L_08A2A68C: aot_gpr_5 = (aot_gpr_29 + static_cast(864)); aot_gpr_31 = (0x08A2A6B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 521u, 0x08A2A6B0u, 0x08A1A6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 356u, 0x08A1A6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A6B0u) goto L_08A2A6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A6B0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2192), std::bit_cast(ctx.fpr[0])); { const bool branch_taken = 0u == 0u; @@ -6149,8 +8656,21 @@ L_08A2A6BC: ctx.gpr[16] = (aot_gpr_17 + static_cast(2184)); aot_gpr_31 = (0x08A2A6C8u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 523u, 0x08A2A6C8u, 0x08A1A71Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 365u, 0x08A1A71Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A6C8u) goto L_08A2A6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A6C8: aot_gpr_4 = (15861u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -6161,8 +8681,21 @@ L_08A2A6C8: aot_gpr_5 = (aot_gpr_29 + static_cast(868)); aot_gpr_31 = (0x08A2A6ECu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 524u, 0x08A2A6ECu, 0x08A1A6C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 359u, 0x08A1A6C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A6ECu) goto L_08A2A6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A6EC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2192), std::bit_cast(ctx.fpr[0])); goto L_08A2A6F0; @@ -6211,13 +8744,39 @@ L_08A2A72C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A2A778u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 529u, 0x08A2A778u, 0x08A1A730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 367u, 0x08A1A730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A778u) goto L_08A2A778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A778: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A2A784u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 530u, 0x08A2A784u, 0x08AAE910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 518u, 0x08AAE910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A784u) goto L_08A2A784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A784: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6227,8 +8786,21 @@ L_08A2A784: } L_08A2A78C: aot_gpr_31 = (0x08A2A794u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 532u, 0x08A2A794u, 0x08AAE644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 473u, 0x08AAE644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A794u) goto L_08A2A794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A794: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6243,19 +8815,58 @@ L_08A2A7A0: L_08A2A7A4: aot_gpr_31 = (0x08A2A7ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 535u, 0x08A2A7ACu, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A7ACu) goto L_08A2A7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A7AC: aot_gpr_4 = (aot_gpr_29 + static_cast(832)); aot_gpr_31 = (0x08A2A7B8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 536u, 0x08A2A7B8u, 0x08A1AC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 433u, 0x08A1AC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A7B8u) goto L_08A2A7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A7B8: aot_gpr_31 = (0x08A2A7C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 537u, 0x08A2A7C0u, 0x0896D754u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 382u, 0x0896D754u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A7C0u) goto L_08A2A7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A7C0: aot_gpr_4 = (aot_gpr_2 | ctx.gpr[23]); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6301,14 +8912,40 @@ L_08A2A7F8: L_08A2A804: aot_gpr_31 = (0x08A2A80Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 543u, 0x08A2A80Cu, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A80Cu) goto L_08A2A80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A80C: aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A2A818u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 544u, 0x08A2A818u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A818u) goto L_08A2A818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A818: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1988))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -6333,13 +8970,39 @@ L_08A2A828: ctx.gpr[6] = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A2A860u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 546u, 0x08A2A860u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A860u) goto L_08A2A860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A860: aot_gpr_31 = (0x08A2A868u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 547u, 0x08A2A868u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A868u) goto L_08A2A868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A868: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6368,15 +9031,41 @@ L_08A2A888: ctx.gpr[16] = (0u | 1u); aot_gpr_31 = (0x08A2A894u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 551u, 0x08A2A894u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A894u) goto L_08A2A894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A894: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A2A8A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 552u, 0x08A2A8A4u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A8A4u) goto L_08A2A8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A8A4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_12)); @@ -6401,8 +9090,21 @@ L_08A2A8B8: aot_gpr_5 = (aot_gpr_17 + aot_gpr_5); aot_gpr_31 = (0x08A2A8E8u); aot_gpr_5 = (aot_gpr_5 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 554u, 0x08A2A8E8u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A8E8u) goto L_08A2A8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A8E8: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -6434,26 +9136,78 @@ L_08A2A8F0: aot_fpr_14 = std::bit_cast(0u); aot_gpr_31 = (0x08A2A94Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 556u, 0x08A2A94Cu, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A94Cu) goto L_08A2A94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A94C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A2A958u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 557u, 0x08A2A958u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A958u) goto L_08A2A958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A958: ctx.gpr[6] = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A2A968u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 558u, 0x08A2A968u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A968u) goto L_08A2A968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A968: aot_gpr_31 = (0x08A2A970u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 559u, 0x08A2A970u, 0x08A1AC98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 436u, 0x08A1AC98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A970u) goto L_08A2A970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A970: aot_gpr_4 = (16752u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6468,22 +9222,61 @@ L_08A2A988: ctx.gpr[20] = (aot_gpr_29 + static_cast(992)); aot_gpr_31 = (0x08A2A994u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 561u, 0x08A2A994u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A994u) goto L_08A2A994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A994: ctx.gpr[6] = (aot_gpr_29 + static_cast(32)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A2A9A4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 562u, 0x08A2A9A4u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A9A4u) goto L_08A2A9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A9A4: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1000), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A2A9B4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 563u, 0x08A2A9B4u, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A9B4u) goto L_08A2A9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A9B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(2)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); @@ -6496,16 +9289,42 @@ L_08A2A9B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(964), aot_gpr_5); aot_gpr_31 = (0x08A2A9E0u); aot_gpr_5 = (aot_gpr_29 + static_cast(964)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 564u, 0x08A2A9E0u, 0x08A1A8C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 387u, 0x08A1A8C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A9E0u) goto L_08A2A9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A9E0: ctx.fpr[22] = std::bit_cast(aot_gpr_2); ctx.fpr[22] = static_cast(static_cast(std::bit_cast(ctx.fpr[22]))); ctx.gpr[21] = (aot_gpr_29 + static_cast(1008)); aot_gpr_31 = (0x08A2A9F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 565u, 0x08A2A9F4u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2A9F4u) goto L_08A2A9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2A9F4: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_4 = (16384u << 16u); @@ -6515,20 +9334,59 @@ L_08A2A9F4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A2AA14u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 566u, 0x08A2AA14u, 0x08A1A668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 354u, 0x08A1A668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AA14u) goto L_08A2AA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AA14: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A2AA24u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 567u, 0x08A2AA24u, 0x08A1A638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 352u, 0x08A1A638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AA24u) goto L_08A2AA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AA24: aot_gpr_31 = (0x08A2AA2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 568u, 0x08A2AA2Cu, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AA2Cu) goto L_08A2AA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AA2C: ctx.gpr[3] = (0u | 1u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6542,8 +9400,21 @@ L_08A2AA2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[3]); aot_gpr_31 = (0x08A2AA5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 569u, 0x08A2AA5Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AA5Cu) goto L_08A2AA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AA5C: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[19] = (0u | 1u); @@ -6558,8 +9429,21 @@ L_08A2AA64: ctx.gpr[21] = (aot_gpr_29 + static_cast(1024)); aot_gpr_31 = (0x08A2AA78u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 571u, 0x08A2AA78u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AA78u) goto L_08A2AA78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AA78: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_4 = (16384u << 16u); @@ -6569,26 +9453,78 @@ L_08A2AA78: ctx.gpr[19] = (aot_gpr_29 + static_cast(1040)); aot_gpr_31 = (0x08A2AA98u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 572u, 0x08A2AA98u, 0x08A1A668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 354u, 0x08A1A668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AA98u) goto L_08A2AA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AA98: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A2AAA8u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 573u, 0x08A2AAA8u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AAA8u) goto L_08A2AAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AAA8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A2AAB4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 574u, 0x08A2AAB4u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AAB4u) goto L_08A2AAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AAB4: aot_gpr_31 = (0x08A2AABCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 575u, 0x08A2AABCu, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AABCu) goto L_08A2AABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AABC: ctx.gpr[3] = (0u | 1u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6602,8 +9538,21 @@ L_08A2AABC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[3]); aot_gpr_31 = (0x08A2AAECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 576u, 0x08A2AAECu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AAECu) goto L_08A2AAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AAEC: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[19] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1892))); @@ -6626,8 +9575,21 @@ L_08A2AB00: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A2AB0Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 580u, 0x08A2AB0Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AB0Cu) goto L_08A2AB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AB0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1988))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6651,14 +9613,40 @@ L_08A2AB18: { const float fs = aot_fpr_14; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08A2AB50u); aot_fpr_14 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 582u, 0x08A2AB50u, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AB50u) goto L_08A2AB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AB50: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A2AB5Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 583u, 0x08A2AB5Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AB5Cu) goto L_08A2AB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AB5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6678,28 +9666,80 @@ L_08A2AB64: L_08A2AB74: aot_gpr_31 = (0x08A2AB7Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 586u, 0x08A2AB7Cu, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AB7Cu) goto L_08A2AB7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AB7C: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08A2AB88u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 587u, 0x08A2AB88u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AB88u) goto L_08A2AB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AB88: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_14 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_29 + static_cast(1072)); aot_gpr_31 = (0x08A2AB9Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 588u, 0x08A2AB9Cu, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AB9Cu) goto L_08A2AB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AB9C: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A2ABA8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 589u, 0x08A2ABA8u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ABA8u) goto L_08A2ABA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ABA8: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[16] != aot_gpr_4; @@ -6714,14 +9754,40 @@ L_08A2ABB4: ctx.gpr[6] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A2ABC8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 591u, 0x08A2ABC8u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ABC8u) goto L_08A2ABC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ABC8: aot_gpr_4 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A2ABD4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 592u, 0x08A2ABD4u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ABD4u) goto L_08A2ABD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ABD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6735,28 +9801,80 @@ L_08A2ABDC: ctx.gpr[6] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A2ABF0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 594u, 0x08A2ABF0u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ABF0u) goto L_08A2ABF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ABF0: aot_gpr_4 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A2ABFCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 595u, 0x08A2ABFCu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ABFCu) goto L_08A2ABFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ABFC: aot_gpr_4 = (16454u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A2AC10u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 596u, 0x08A2AC10u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AC10u) goto L_08A2AC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AC10: aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A2AC1Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 597u, 0x08A2AC1Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AC1Cu) goto L_08A2AC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AC1C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -6766,8 +9884,21 @@ L_08A2AC1C: } aot_gpr_31 = (0x08A2AC30u); aot_gpr_4 = (aot_gpr_29 + static_cast(896)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 598u, 0x08A2AC30u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AC30u) goto L_08A2AC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AC30: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(896))); @@ -6812,8 +9943,21 @@ L_08A2AC74: L_08A2AC7C: aot_gpr_31 = (0x08A2AC84u); aot_gpr_4 = (aot_gpr_29 + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 604u, 0x08A2AC84u, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AC84u) goto L_08A2AC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AC84: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -6833,8 +9977,21 @@ L_08A2AC8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1124), aot_gpr_5); aot_gpr_31 = (0x08A2ACB8u); aot_gpr_5 = (aot_gpr_29 + static_cast(1124)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 606u, 0x08A2ACB8u, 0x08A1A8C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 387u, 0x08A1A8C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ACB8u) goto L_08A2ACB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ACB8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6850,21 +10007,60 @@ L_08A2ACB8: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A2ACF0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 607u, 0x08A2ACF0u, 0x08A1A668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 354u, 0x08A1A668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ACF0u) goto L_08A2ACF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ACF0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A2AD00u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 608u, 0x08A2AD00u, 0x08A1A638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 352u, 0x08A1A638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD00u) goto L_08A2AD00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD00: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A2AD0Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 609u, 0x08A2AD0Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD0Cu) goto L_08A2AD0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6880,21 +10076,60 @@ L_08A2AD14: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A2AD30u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 611u, 0x08A2AD30u, 0x08A1A668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 354u, 0x08A1A668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD30u) goto L_08A2AD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD30: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A2AD40u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 612u, 0x08A2AD40u, 0x08A1A638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 352u, 0x08A1A638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD40u) goto L_08A2AD40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD40: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A2AD4Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 613u, 0x08A2AD4Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD4Cu) goto L_08A2AD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6906,8 +10141,21 @@ L_08A2AD54: ctx.gpr[16] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A2AD60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 615u, 0x08A2AD60u, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD60u) goto L_08A2AD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD60: ctx.gpr[18] = (aot_gpr_29 + static_cast(1200)); ctx.gpr[19] = (aot_gpr_29 + static_cast(1216)); @@ -6915,21 +10163,60 @@ L_08A2AD60: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A2AD78u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 616u, 0x08A2AD78u, 0x08A1A668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 354u, 0x08A1A668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD78u) goto L_08A2AD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD78: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A2AD88u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 617u, 0x08A2AD88u, 0x08A1A638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 352u, 0x08A1A638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD88u) goto L_08A2AD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD88: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A2AD94u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 618u, 0x08A2AD94u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AD94u) goto L_08A2AD94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AD94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6941,8 +10228,21 @@ L_08A2AD9C: ctx.gpr[16] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A2ADA8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 620u, 0x08A2ADA8u, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ADA8u) goto L_08A2ADA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ADA8: ctx.gpr[18] = (aot_gpr_29 + static_cast(1232)); ctx.gpr[19] = (aot_gpr_29 + static_cast(1248)); @@ -6950,21 +10250,60 @@ L_08A2ADA8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A2ADC0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 621u, 0x08A2ADC0u, 0x08A1A668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 354u, 0x08A1A668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ADC0u) goto L_08A2ADC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ADC0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A2ADD0u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 622u, 0x08A2ADD0u, 0x08A1A638u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 352u, 0x08A1A638u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ADD0u) goto L_08A2ADD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ADD0: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A2ADDCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 623u, 0x08A2ADDCu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2ADDCu) goto L_08A2ADDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2ADDC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1972))); aot_gpr_4 = (16512u << 16u); @@ -6987,8 +10326,21 @@ L_08A2AE00: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A2AE0Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 626u, 0x08A2AE0Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AE0Cu) goto L_08A2AE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AE0C: aot_gpr_31 = (0x08A2AE14u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AE14u) goto L_08A2AE14; @@ -6996,8 +10348,21 @@ L_08A2AE0C: L_08A2AE14: aot_gpr_31 = (0x08A2AE1Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 628u, 0x08A2AE1Cu, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AE1Cu) goto L_08A2AE1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AE1C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (16390u << 16u); @@ -7045,23 +10410,62 @@ L_08A2AE7C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A2AE90u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 633u, 0x08A2AE90u, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AE90u) goto L_08A2AE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AE90: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A2AEA0u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 634u, 0x08A2AEA0u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AEA0u) goto L_08A2AEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AEA0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(2648), static_cast(aot_gpr_4)); goto L_08A2AEA8; L_08A2AEA8: aot_gpr_31 = (0x08A2AEB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 636u, 0x08A2AEB0u, 0x0896D890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 398u, 0x0896D890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AEB0u) goto L_08A2AEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AEB0: aot_gpr_4 = (aot_gpr_2 | ctx.gpr[23]); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7157,8 +10561,21 @@ L_08A2AF40: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x08A2AF68u); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 648u, 0x08A2AF68u, 0x0899B1A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 365u, 0x0899B1A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AF68u) goto L_08A2AF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AF68: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7177,8 +10594,21 @@ L_08A2AF70: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x08A2AF98u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 650u, 0x08A2AF98u, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AF98u) goto L_08A2AF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AF98: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7208,8 +10638,21 @@ L_08A2AFB0: aot_gpr_4 = (aot_gpr_5 + static_cast(576)); aot_gpr_31 = (0x08A2AFDCu); aot_gpr_5 = (aot_gpr_5 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 653u, 0x08A2AFDCu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2AFDCu) goto L_08A2AFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2AFDC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1972))); aot_gpr_4 = (16512u << 16u); @@ -7223,8 +10666,21 @@ L_08A2AFDC: } L_08A2AFF8: aot_gpr_31 = (0x08A2B000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 655u, 0x08A2B000u, 0x08AAE934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 522u, 0x08AAE934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B000u) goto L_08A2B000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B000: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7234,8 +10690,21 @@ L_08A2B000: } L_08A2B008: aot_gpr_31 = (0x08A2B010u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 657u, 0x08A2B010u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B010u) goto L_08A2B010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B010: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7245,8 +10714,21 @@ L_08A2B010: } L_08A2B018: aot_gpr_31 = (0x08A2B020u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 659u, 0x08A2B020u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B020u) goto L_08A2B020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B020: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7375,8 +10857,21 @@ L_08A2B0E0: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x08A2B108u); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 675u, 0x08A2B108u, 0x089990E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 119u, 0x089990E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B108u) goto L_08A2B108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B108: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7396,8 +10891,21 @@ L_08A2B110: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08A2B13Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 677u, 0x08A2B13Cu, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B13Cu) goto L_08A2B13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B13C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 24u); @@ -7427,8 +10935,21 @@ L_08A2B15C: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x08A2B184u); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 680u, 0x08A2B184u, 0x089990E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 119u, 0x089990E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B184u) goto L_08A2B184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B184: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7479,21 +11000,60 @@ L_08A2B1C0: ctx.gpr[18] = (aot_gpr_29 + static_cast(1264)); aot_gpr_31 = (0x08A2B1D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 686u, 0x08A2B1D8u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B1D8u) goto L_08A2B1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B1D8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A2B1E4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 687u, 0x08A2B1E4u, 0x08A1AC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 433u, 0x08A1AC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B1E4u) goto L_08A2B1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B1E4: aot_gpr_4 = (aot_gpr_29 + static_cast(1280)); aot_gpr_5 = (aot_gpr_17 + static_cast(2256)); aot_gpr_31 = (0x08A2B1F4u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 688u, 0x08A2B1F4u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B1F4u) goto L_08A2B1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B1F4: aot_gpr_4 = (aot_gpr_29 + static_cast(1296)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); @@ -7507,8 +11067,21 @@ L_08A2B1F4: aot_gpr_5 = (aot_gpr_5 + static_cast(144)); aot_gpr_31 = (0x08A2B224u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 689u, 0x08A2B224u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B224u) goto L_08A2B224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B224: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(2064))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7546,8 +11119,21 @@ L_08A2B25C: L_08A2B264: aot_gpr_31 = (0x08A2B26Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 695u, 0x08A2B26Cu, 0x08A1E95Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 473u, 0x08A1E95Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B26Cu) goto L_08A2B26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B26C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7575,8 +11161,21 @@ L_08A2B28C: L_08A2B294: aot_gpr_31 = (0x08A2B29Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 700u, 0x08A2B29Cu, 0x08A1E968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 474u, 0x08A1E968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B29Cu) goto L_08A2B29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B29C: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7588,8 +11187,21 @@ L_08A2B29C: L_08A2B2A8: aot_gpr_31 = (0x08A2B2B0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 702u, 0x08A2B2B0u, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B2B0u) goto L_08A2B2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B2B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 58u); @@ -7602,8 +11214,21 @@ L_08A2B2B0: L_08A2B2C0: aot_gpr_31 = (0x08A2B2C8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 704u, 0x08A2B2C8u, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B2C8u) goto L_08A2B2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B2C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 57u); @@ -7631,15 +11256,41 @@ L_08A2B2E8: { const float fs = aot_fpr_13; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08A2B300u); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 708u, 0x08A2B300u, 0x08A1ABCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 426u, 0x08A1ABCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B300u) goto L_08A2B300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B300: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1296))); aot_gpr_31 = (0x08A2B310u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1300))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 709u, 0x08A2B310u, 0x08A1ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 459u, 0x08A1ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B310u) goto L_08A2B310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B310: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(1976)))))); @@ -7751,20 +11402,59 @@ L_08A2B3E0: ctx.gpr[16] = (aot_gpr_29 + static_cast(1312)); aot_gpr_31 = (0x08A2B3F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 722u, 0x08A2B3F0u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B3F0u) goto L_08A2B3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B3F0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A2B3FCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 723u, 0x08A2B3FCu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B3FCu) goto L_08A2B3FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B3FC: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1312))); aot_gpr_31 = (0x08A2B408u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 724u, 0x08A2B408u, 0x08A1AB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 419u, 0x08A1AB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B408u) goto L_08A2B408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B408: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_20 + aot_fpr_12; @@ -7772,8 +11462,21 @@ L_08A2B408: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1316))); aot_gpr_31 = (0x08A2B420u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 725u, 0x08A2B420u, 0x08A1AAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 417u, 0x08A1AAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B420u) goto L_08A2B420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B420: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; @@ -7786,8 +11489,21 @@ L_08A2B420: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1320), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A2B44Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 726u, 0x08A2B44Cu, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B44Cu) goto L_08A2B44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B44C: ctx.gpr[6] = (aot_gpr_29 + static_cast(1328)); ctx.gpr[7] = (aot_gpr_29 + static_cast(1360)); @@ -7802,8 +11518,21 @@ L_08A2B44C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A2B488u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 727u, 0x08A2B488u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B488u) goto L_08A2B488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B488: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7814,14 +11543,40 @@ L_08A2B488: L_08A2B490: aot_gpr_31 = (0x08A2B498u); aot_gpr_4 = (aot_gpr_29 + static_cast(1328)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 729u, 0x08A2B498u, 0x08A1ADE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 458u, 0x08A1ADE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B498u) goto L_08A2B498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B498: aot_gpr_4 = (aot_gpr_29 + static_cast(1376)); aot_gpr_31 = (0x08A2B4A4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 730u, 0x08A2B4A4u, 0x08A1AC24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 432u, 0x08A1AC24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B4A4u) goto L_08A2B4A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B4A4: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(1392)); @@ -7829,15 +11584,41 @@ L_08A2B4A4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A2B4BCu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 731u, 0x08A2B4BCu, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B4BCu) goto L_08A2B4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B4BC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A2B4CCu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 732u, 0x08A2B4CCu, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B4CCu) goto L_08A2B4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B4CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7851,15 +11632,41 @@ L_08A2B4D4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A2B4E8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 734u, 0x08A2B4E8u, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B4E8u) goto L_08A2B4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B4E8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(1312)); aot_gpr_31 = (0x08A2B4F8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 735u, 0x08A2B4F8u, 0x08A1CF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 155u, 0x08A1CF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B4F8u) goto L_08A2B4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B4F8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-7244), static_cast(aot_gpr_4)); @@ -7887,8 +11694,21 @@ L_08A2B50C: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A2B544u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 738u, 0x08A2B544u, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B544u) goto L_08A2B544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B544: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 65u); @@ -7931,8 +11751,21 @@ L_08A2B574: L_08A2B584: aot_gpr_31 = (0x08A2B58Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 744u, 0x08A2B58Cu, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B58Cu) goto L_08A2B58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B58C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 65u); @@ -7955,8 +11788,21 @@ L_08A2B59C: L_08A2B5B4: aot_gpr_31 = (0x08A2B5BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 747u, 0x08A2B5BCu, 0x08A1AD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 452u, 0x08A1AD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B5BCu) goto L_08A2B5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B5BC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7978,8 +11824,21 @@ L_08A2B5CC: L_08A2B5D0: aot_gpr_31 = (0x08A2B5D8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 751u, 0x08A2B5D8u, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B5D8u) goto L_08A2B5D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B5D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7100), aot_gpr_4); @@ -8014,8 +11873,21 @@ L_08A2B5EC: L_08A2B628: aot_gpr_31 = (0x08A2B630u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 754u, 0x08A2B630u, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B630u) goto L_08A2B630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B630: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 65u); @@ -8041,8 +11913,21 @@ L_08A2B648: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08A2B674u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 757u, 0x08A2B674u, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B674u) goto L_08A2B674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B674: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 58u); @@ -8082,8 +11967,21 @@ L_08A2B6C0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A2B6CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 761u, 0x08A2B6CCu, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B6CCu) goto L_08A2B6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B6CC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8117,8 +12015,21 @@ L_08A2B700: aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); aot_gpr_31 = (0x08A2B70Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 765u, 0x08A2B70Cu, 0x08A1CA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 109u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 109u, 0x08A1CA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B70Cu) goto L_08A2B70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B70C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (0u | 54u); @@ -8134,26 +12045,78 @@ L_08A2B71C: aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); aot_gpr_31 = (0x08A2B72Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 767u, 0x08A2B72Cu, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B72Cu) goto L_08A2B72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B72C: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A2B738u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 768u, 0x08A2B738u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B738u) goto L_08A2B738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B738: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A2B748u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 769u, 0x08A2B748u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B748u) goto L_08A2B748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B748: aot_gpr_31 = (0x08A2B750u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 770u, 0x08A2B750u, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B750u) goto L_08A2B750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B750: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8219,8 +12182,21 @@ L_08A2B7D0: L_08A2B7D8: aot_gpr_31 = (0x08A2B7E0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 778u, 0x08A2B7E0u, 0x08A1E970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 475u, 0x08A1E970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B7E0u) goto L_08A2B7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B7E0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8235,13 +12211,39 @@ L_08A2B7E8: L_08A2B7F0: aot_gpr_31 = (0x08A2B7F8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 781u, 0x08A2B7F8u, 0x08A1E970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 475u, 0x08A1E970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B7F8u) goto L_08A2B7F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B7F8: aot_gpr_31 = (0x08A2B800u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 782u, 0x08A2B800u, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B800u) goto L_08A2B800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B800: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8396,8 +12398,21 @@ L_08A2B914: L_08A2B920: aot_gpr_31 = (0x08A2B928u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 800u, 0x08A2B928u, 0x08A1CE7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 141u, 0x08A1CE7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B928u) goto L_08A2B928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B928: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(2848)))))); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(7096), static_cast(aot_gpr_4)); @@ -8417,8 +12432,21 @@ L_08A2B928: aot_gpr_4 = (aot_gpr_5 + static_cast(528)); aot_gpr_31 = (0x08A2B970u); aot_gpr_5 = (aot_gpr_17 + static_cast(2272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 801u, 0x08A2B970u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B970u) goto L_08A2B970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B970: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); @@ -8433,8 +12461,21 @@ L_08A2B970: aot_gpr_4 = (aot_gpr_5 + static_cast(544)); aot_gpr_31 = (0x08A2B9A4u); aot_gpr_5 = (aot_gpr_17 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 802u, 0x08A2B9A4u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B9A4u) goto L_08A2B9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B9A4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -8447,8 +12488,21 @@ L_08A2B9A4: aot_gpr_4 = (aot_gpr_4 + static_cast(560)); aot_gpr_31 = (0x08A2B9D0u); aot_gpr_5 = (aot_gpr_17 + static_cast(2304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 803u, 0x08A2B9D0u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2B9D0u) goto L_08A2B9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2B9D0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -8488,14 +12542,40 @@ L_08A2BA0C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A2BA40u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 806u, 0x08A2BA40u, 0x08A1AC10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 431u, 0x08A1AC10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BA40u) goto L_08A2BA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BA40: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A2BA4Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 807u, 0x08A2BA4Cu, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BA4Cu) goto L_08A2BA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BA4C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8544,8 +12624,21 @@ L_08A2BA90: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A2BABCu); aot_gpr_5 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 812u, 0x08A2BABCu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BABCu) goto L_08A2BABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BABC: aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(2016), static_cast(0u)); aot_gpr_4 = (0u | 1u); @@ -8633,8 +12726,21 @@ L_08A2BB84: L_08A2BB94: aot_gpr_31 = (0x08A2BB9Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 821u, 0x08A2BB9Cu, 0x08A1AD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 452u, 0x08A1AD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BB9Cu) goto L_08A2BB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BB9C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8930,8 +13036,21 @@ L_08A2BD90: L_08A2BD9C: aot_gpr_31 = (0x08A2BDA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 856u, 0x08A2BDA4u, 0x08A1AD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 452u, 0x08A1AD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BDA4u) goto L_08A2BDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BDA4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8942,8 +13061,21 @@ L_08A2BDA4: L_08A2BDAC: aot_gpr_31 = (0x08A2BDB4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 858u, 0x08A2BDB4u, 0x08A1DF50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 363u, 0x08A1DF50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BDB4u) goto L_08A2BDB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BDB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8978,8 +13110,21 @@ L_08A2BDD0: L_08A2BDDC: aot_gpr_31 = (0x08A2BDE4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 863u, 0x08A2BDE4u, 0x08A1AD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 452u, 0x08A1AD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BDE4u) goto L_08A2BDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BDE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9003,8 +13148,21 @@ L_08A2BDF4: L_08A2BE00: aot_gpr_31 = (0x08A2BE08u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 867u, 0x08A2BE08u, 0x08A1E15Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 388u, 0x08A1E15Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BE08u) goto L_08A2BE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BE08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9015,8 +13173,21 @@ L_08A2BE08: L_08A2BE10: aot_gpr_31 = (0x08A2BE18u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 869u, 0x08A2BE18u, 0x08A1AD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 452u, 0x08A1AD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BE18u) goto L_08A2BE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BE18: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9027,8 +13198,21 @@ L_08A2BE18: L_08A2BE20: aot_gpr_31 = (0x08A2BE28u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 871u, 0x08A2BE28u, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BE28u) goto L_08A2BE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BE28: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -9040,8 +13224,21 @@ L_08A2BE28: L_08A2BE34: aot_gpr_31 = (0x08A2BE3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 873u, 0x08A2BE3Cu, 0x08A1AE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 466u, 0x08A1AE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BE3Cu) goto L_08A2BE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BE3C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9053,8 +13250,21 @@ L_08A2BE3C: L_08A2BE48: aot_gpr_31 = (0x08A2BE50u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 875u, 0x08A2BE50u, 0x08A1E2D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 408u, 0x08A1E2D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BE50u) goto L_08A2BE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BE50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9065,8 +13275,21 @@ L_08A2BE50: L_08A2BE58: aot_gpr_31 = (0x08A2BE60u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 877u, 0x08A2BE60u, 0x08A1E030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 374u, 0x08A1E030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BE60u) goto L_08A2BE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BE60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9097,8 +13320,21 @@ L_08A2BE84: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A2BE90u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 882u, 0x08A2BE90u, 0x08A1E3FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 422u, 0x08A1E3FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BE90u) goto L_08A2BE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BE90: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(2069))); aot_gpr_5 = (0u | 1u); @@ -9261,8 +13497,21 @@ L_08A2BFAC: L_08A2BFB4: aot_gpr_31 = (0x08A2BFBCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0137->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0137_entry, 901u, 0x08A2BFBCu, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2BFBCu) goto L_08A2BFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2BFBC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0138.cpp b/profiles/vcs/generated/generated_unit_0138.cpp index 8722f56..e55e2c1 100644 --- a/profiles/vcs/generated/generated_unit_0138.cpp +++ b/profiles/vcs/generated/generated_unit_0138.cpp @@ -714,6 +714,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A2C004u; + if (local_delta_v813 >= 16348u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -730,8 +754,21 @@ LOCAL_SCHED_BOUNDARY: L_08A2C004: ctx.gpr[31] = (0x08A2C00Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 2u, 0x08A2C00Cu, 0x08A1E968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 474u, 0x08A1E968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C00Cu) goto L_08A2C00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C00C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -742,33 +779,98 @@ L_08A2C00C: L_08A2C014: ctx.gpr[31] = (0x08A2C01Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 4u, 0x08A2C01Cu, 0x08A1E968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 474u, 0x08A1E968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C01Cu) goto L_08A2C01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C01C: ctx.gpr[31] = (0x08A2C024u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 5u, 0x08A2C024u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C024u) goto L_08A2C024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C024: ctx.gpr[19] = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x08A2C030u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 6u, 0x08A2C030u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C030u) goto L_08A2C030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C030: aot_gpr_4 = (ctx.gpr[29] + static_cast(1456)); aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A2C040u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 7u, 0x08A2C040u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C040u) goto L_08A2C040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C040: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1456))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); ctx.gpr[31] = (0x08A2C050u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1460))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 8u, 0x08A2C050u, 0x08A1AB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 421u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 421u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 421u, 0x08A1AB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C050u) goto L_08A2C050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C050: aot_gpr_4 = (16329u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -783,8 +885,21 @@ L_08A2C050: L_08A2C068: ctx.gpr[31] = (0x08A2C070u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 10u, 0x08A2C070u, 0x08A1ACE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 440u, 0x08A1ACE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C070u) goto L_08A2C070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C070: aot_gpr_4 = (16329u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -862,8 +977,21 @@ L_08A2C12C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(236))); ctx.gpr[31] = (0x08A2C158u); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 16u, 0x08A2C158u, 0x08A1A724u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 366u, 0x08A1A724u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C158u) goto L_08A2C158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C158: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7672))); aot_gpr_4 = (16457u << 16u); @@ -1161,8 +1289,21 @@ L_08A2C3A8: L_08A2C3B8: ctx.gpr[31] = (0x08A2C3C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 47u, 0x08A2C3C0u, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C3C0u) goto L_08A2C3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C3C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1424,8 +1565,21 @@ L_08A2C66C: L_08A2C674: ctx.gpr[31] = (0x08A2C67Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 68u, 0x08A2C67Cu, 0x08A1AD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 452u, 0x08A1AD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C67Cu) goto L_08A2C67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C67C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1488,8 +1642,21 @@ L_08A2C6D0: L_08A2C700: ctx.gpr[31] = (0x08A2C708u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 74u, 0x08A2C708u, 0x08906704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 539u, 0x08906704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2C708u) goto L_08A2C708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2C708: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2027,8 +2194,21 @@ L_08A2CCA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); ctx.gpr[31] = (0x08A2CCCCu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 109u, 0x08A2CCCCu, 0x08A1ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 459u, 0x08A1ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2CCCCu) goto L_08A2CCCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2CCCC: aot_gpr_4 = (16329u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -2037,14 +2217,40 @@ L_08A2CCCC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); ctx.gpr[31] = (0x08A2CCE8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 110u, 0x08A2CCE8u, 0x08A1E980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 477u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 477u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 477u, 0x08A1E980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2CCE8u) goto L_08A2CCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2CCE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); ctx.gpr[31] = (0x08A2CCF4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 111u, 0x08A2CCF4u, 0x08A1E988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 478u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 478u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 478u, 0x08A1E988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2CCF4u) goto L_08A2CCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2CCF4: ctx.gpr[22] = (0u | 1u); aot_gpr_4 = (0u | 1u); @@ -2082,22 +2288,61 @@ L_08A2CD30: L_08A2CD5C: ctx.gpr[31] = (0x08A2CD64u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 114u, 0x08A2CD64u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2CD64u) goto L_08A2CD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2CD64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A2CD74u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 115u, 0x08A2CD74u, 0x08A1A650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 353u, 0x08A1A650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2CD74u) goto L_08A2CD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2CD74: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1480), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x08A2CD84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 116u, 0x08A2CD84u, 0x08A1AC54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 434u, 0x08A1AC54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2CD84u) goto L_08A2CD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2CD84: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1472))); aot_gpr_4 = (14979u << 16u); @@ -2131,8 +2376,21 @@ L_08A2CDD0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1472))); ctx.gpr[31] = (0x08A2CDDCu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1476))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 120u, 0x08A2CDDCu, 0x08A1ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 459u, 0x08A1ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2CDDCu) goto L_08A2CDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2CDDC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -2161,8 +2419,21 @@ L_08A2CE08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); ctx.gpr[31] = (0x08A2CE34u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 122u, 0x08A2CE34u, 0x08A1ADECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 459u, 0x08A1ADECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2CE34u) goto L_08A2CE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2CE34: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -2396,8 +2667,21 @@ L_08A2CFFC: L_08A2D010: ctx.gpr[31] = (0x08A2D018u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 147u, 0x08A2D018u, 0x08A1AD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 452u, 0x08A1AD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D018u) goto L_08A2D018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D018: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2408,8 +2692,21 @@ L_08A2D018: L_08A2D020: ctx.gpr[31] = (0x08A2D028u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 149u, 0x08A2D028u, 0x08A1ADB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 454u, 0x08A1ADB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D028u) goto L_08A2D028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D028: aot_gpr_4 = (0u | 244u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -2596,8 +2893,21 @@ L_08A2D170: L_08A2D17C: ctx.gpr[31] = (0x08A2D184u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 170u, 0x08A2D184u, 0x08A1CE7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 141u, 0x08A1CE7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D184u) goto L_08A2D184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D184: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7096)))))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); @@ -2614,8 +2924,21 @@ L_08A2D184: aot_gpr_4 = (aot_gpr_5 + static_cast(528)); ctx.gpr[31] = (0x08A2D1C0u); aot_gpr_5 = (aot_gpr_17 + static_cast(2272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 171u, 0x08A2D1C0u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D1C0u) goto L_08A2D1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D1C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); @@ -2630,8 +2953,21 @@ L_08A2D1C0: aot_gpr_4 = (aot_gpr_5 + static_cast(544)); ctx.gpr[31] = (0x08A2D1F4u); aot_gpr_5 = (aot_gpr_17 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 172u, 0x08A2D1F4u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D1F4u) goto L_08A2D1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D1F4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -2644,8 +2980,21 @@ L_08A2D1F4: aot_gpr_4 = (aot_gpr_4 + static_cast(560)); ctx.gpr[31] = (0x08A2D220u); aot_gpr_5 = (aot_gpr_17 + static_cast(2304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 173u, 0x08A2D220u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D220u) goto L_08A2D220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D220: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(2070))); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); @@ -2689,8 +3038,21 @@ L_08A2D264: aot_gpr_4 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08A2D290u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 177u, 0x08A2D290u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D290u) goto L_08A2D290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D290: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2128))); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2132), std::bit_cast(aot_fpr_12)); @@ -2938,8 +3300,21 @@ L_08A2D4C8: L_08A2D4D0: ctx.gpr[31] = (0x08A2D4D8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 202u, 0x08A2D4D8u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D4D8u) goto L_08A2D4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D4D8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(48))); @@ -2951,8 +3326,21 @@ L_08A2D4D8: L_08A2D4F0: ctx.gpr[31] = (0x08A2D4F8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 204u, 0x08A2D4F8u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D4F8u) goto L_08A2D4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D4F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(52))); @@ -2964,8 +3352,21 @@ L_08A2D4F8: L_08A2D510: ctx.gpr[31] = (0x08A2D518u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 206u, 0x08A2D518u, 0x08A1ACDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 439u, 0x08A1ACDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D518u) goto L_08A2D518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D518: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(56))); @@ -2981,8 +3382,21 @@ L_08A2D518: L_08A2D534: ctx.gpr[31] = (0x08A2D53Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 208u, 0x08A2D53Cu, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D53Cu) goto L_08A2D53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D53C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2993,8 +3407,21 @@ L_08A2D53C: L_08A2D544: ctx.gpr[31] = (0x08A2D54Cu); aot_gpr_4 = (ctx.gpr[29] + static_cast(1488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 210u, 0x08A2D54Cu, 0x08A1AC7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 435u, 0x08A1AC7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D54Cu) goto L_08A2D54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D54C: aot_gpr_4 = (16780u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3305,8 +3732,21 @@ L_08A2D7CC: L_08A2D7D4: ctx.gpr[31] = (0x08A2D7DCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 245u, 0x08A2D7DCu, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D7DCu) goto L_08A2D7DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D7DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3360,8 +3800,21 @@ L_08A2D82C: L_08A2D844: ctx.gpr[31] = (0x08A2D84Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 251u, 0x08A2D84Cu, 0x08A1AD7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 451u, 0x08A1AD7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2D84Cu) goto L_08A2D84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2D84C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(2092))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3645,8 +4098,21 @@ L_08A2DA9C: aot_gpr_4 = (aot_gpr_5 + static_cast(528)); ctx.gpr[31] = (0x08A2DAD4u); aot_gpr_5 = (aot_gpr_17 + static_cast(2272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 279u, 0x08A2DAD4u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DAD4u) goto L_08A2DAD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DAD4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); @@ -3661,8 +4127,21 @@ L_08A2DAD4: aot_gpr_4 = (aot_gpr_5 + static_cast(544)); ctx.gpr[31] = (0x08A2DB08u); aot_gpr_5 = (aot_gpr_17 + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 280u, 0x08A2DB08u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DB08u) goto L_08A2DB08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DB08: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -3675,8 +4154,21 @@ L_08A2DB08: aot_gpr_4 = (aot_gpr_4 + static_cast(560)); ctx.gpr[31] = (0x08A2DB34u); aot_gpr_5 = (aot_gpr_17 + static_cast(2304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 281u, 0x08A2DB34u, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DB34u) goto L_08A2DB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DB34: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(2070))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); @@ -3718,8 +4210,21 @@ L_08A2DB78: aot_gpr_5 = (aot_gpr_17 + aot_gpr_5); ctx.gpr[31] = (0x08A2DB9Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(576)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 285u, 0x08A2DB9Cu, 0x08A1ACCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 438u, 0x08A1ACCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DB9Cu) goto L_08A2DB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DB9C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(2068), static_cast(aot_gpr_4)); @@ -3821,8 +4326,21 @@ L_08A2DC7C: L_08A2DCAC: ctx.gpr[31] = (0x08A2DCB4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 294u, 0x08A2DCB4u, 0x08A1ADA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 453u, 0x08A1ADA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DCB4u) goto L_08A2DCB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DCB4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3997,14 +4515,40 @@ L_08A2DE58: L_08A2DE68: ctx.gpr[31] = (0x08A2DE70u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 309u, 0x08A2DE70u, 0x08A1CC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 125u, 0x08A1CC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DE70u) goto L_08A2DE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DE70: aot_gpr_16 = (0u | 1u); ctx.gpr[31] = (0x08A2DE7Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 310u, 0x08A2DE7Cu, 0x08A1CE7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 141u, 0x08A1CE7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DE7Cu) goto L_08A2DE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DE7C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -4071,8 +4615,21 @@ L_08A2DF14: L_08A2DF1C: ctx.gpr[31] = (0x08A2DF24u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 316u, 0x08A2DF24u, 0x0898D3F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 459u, 0x0898D3F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DF24u) goto L_08A2DF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DF24: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4130,8 +4687,21 @@ L_08A2DF78: aot_gpr_5 = (0u | 180u); ctx.gpr[31] = (0x08A2DF88u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 324u, 0x08A2DF88u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DF88u) goto L_08A2DF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DF88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4144,8 +4714,21 @@ L_08A2DF90: aot_gpr_5 = (0u | 180u); ctx.gpr[31] = (0x08A2DFA0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 326u, 0x08A2DFA0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2DFA0u) goto L_08A2DFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2DFA0: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(1896), aot_run_words); @@ -4166,8 +4749,8 @@ L_08A2DFA0: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(1952)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2DFE0: @@ -4409,8 +4992,21 @@ L_08A2E2A8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); ctx.gpr[31] = (0x08A2E2D4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 340u, 0x08A2E2D4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E2D4u) goto L_08A2E2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E2D4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -4594,14 +5190,27 @@ L_08A2E498: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5640))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2E4B0: ctx.gpr[31] = (0x08A2E4B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 351u, 0x08A2E4B8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E4B8u) goto L_08A2E4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E4B8: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.fpr[22] = std::bit_cast(0u); @@ -4612,13 +5221,39 @@ L_08A2E4B8: } L_08A2E4C0: ctx.gpr[31] = (0x08A2E4C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 353u, 0x08A2E4C8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E4C8u) goto L_08A2E4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E4C8: ctx.gpr[31] = (0x08A2E4D0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 354u, 0x08A2E4D0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E4D0u) goto L_08A2E4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E4D0: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_20) || std::isnan(ctx.fpr[22])) && aot_fpr_20 == ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -4649,8 +5284,21 @@ L_08A2E4F8: L_08A2E4FC: ctx.gpr[31] = (0x08A2E504u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 359u, 0x08A2E504u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E504u) goto L_08A2E504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E504: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A2E508; @@ -4708,8 +5356,21 @@ L_08A2E57C: } L_08A2E584: ctx.gpr[31] = (0x08A2E58Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 365u, 0x08A2E58Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E58Cu) goto L_08A2E58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E58C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A2E590; @@ -4763,8 +5424,21 @@ L_08A2E5F8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); ctx.gpr[31] = (0x08A2E624u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 370u, 0x08A2E624u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E624u) goto L_08A2E624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E624: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -4843,8 +5517,21 @@ L_08A2E6C0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); ctx.gpr[31] = (0x08A2E704u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 377u, 0x08A2E704u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E704u) goto L_08A2E704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E704: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -4863,8 +5550,21 @@ L_08A2E718: L_08A2E724: ctx.gpr[31] = (0x08A2E72Cu); aot_fpr_12 = ctx.fpr[24] - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 380u, 0x08A2E72Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E72Cu) goto L_08A2E72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E72C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0]) & 0x7FFFFFFFu); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -5018,8 +5718,21 @@ L_08A2E878: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(128))); ctx.gpr[31] = (0x08A2E8A4u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 394u, 0x08A2E8A4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2E8A4u) goto L_08A2E8A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2E8A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -5165,8 +5878,21 @@ L_08A2E9E4: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); ctx.gpr[31] = (0x08A2EA0Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 408u, 0x08A2EA0Cu, 0x089997E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 198u, 0x089997E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2EA0Cu) goto L_08A2EA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2EA0C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -5906,8 +6632,8 @@ L_08A2EF4C: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2EF8C: @@ -6278,8 +7004,21 @@ L_08A2F2AC: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); ctx.gpr[31] = (0x08A2F2F0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 477u, 0x08A2F2F0u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F2F0u) goto L_08A2F2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F2F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6326,8 +7065,8 @@ L_08A2F310: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2F364: @@ -6416,8 +7155,21 @@ L_08A2F418: goto L_08A2F41C; L_08A2F41C: ctx.gpr[31] = (0x08A2F424u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 492u, 0x08A2F424u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F424u) goto L_08A2F424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F424: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6468,8 +7220,21 @@ L_08A2F460: } L_08A2F46C: ctx.gpr[31] = (0x08A2F474u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 501u, 0x08A2F474u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F474u) goto L_08A2F474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F474: ctx.gpr[18] = (2238u << 16u); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -6570,8 +7335,21 @@ L_08A2F524: } L_08A2F52C: ctx.gpr[31] = (0x08A2F534u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 515u, 0x08A2F534u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F534u) goto L_08A2F534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F534: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1984), ctx.gpr[2]); goto L_08A2F538; @@ -6612,8 +7390,21 @@ L_08A2F580: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A2F58Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 521u, 0x08A2F58Cu, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F58Cu) goto L_08A2F58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F58C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6696,8 +7487,21 @@ L_08A2F614: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A2F620u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 534u, 0x08A2F620u, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F620u) goto L_08A2F620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F620: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6978,8 +7782,8 @@ L_08A2F86C: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2F88C: @@ -6990,8 +7794,21 @@ L_08A2F88C: aot_gpr_16 = (aot_gpr_4 + static_cast(32304)); ctx.gpr[31] = (0x08A2F8A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 569u, 0x08A2F8A8u, 0x08AAF864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 783u, 0x08AAF864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F8A8u) goto L_08A2F8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F8A8: aot_gpr_4 = (aot_gpr_16 + static_cast(112)); aot_gpr_7 = (2210u << 16u); @@ -6999,8 +7816,21 @@ L_08A2F8A8: aot_gpr_5 = (0u | 3u); ctx.gpr[31] = (0x08A2F8C0u); aot_gpr_6 = (0u | 608u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 570u, 0x08A2F8C0u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F8C0u) goto L_08A2F8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F8C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2624), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2632))); @@ -7013,13 +7843,39 @@ L_08A2F8C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2728), aot_gpr_4); ctx.gpr[31] = (0x08A2F8ECu); aot_gpr_4 = (aot_gpr_16 + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 571u, 0x08A2F8ECu, 0x088BA5F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 498u, 0x088BA5F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F8ECu) goto L_08A2F8EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F8EC: ctx.gpr[31] = (0x08A2F8F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 572u, 0x08A2F8F4u, 0x08A22268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 299u, 0x08A22268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F8F4u) goto L_08A2F8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F8F4: ctx.gpr[31] = (0x08A2F8FCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-7212)); @@ -7033,8 +7889,21 @@ L_08A2F8FC: aot_gpr_5 = (0u | 6u); ctx.gpr[31] = (0x08A2F918u); aot_gpr_6 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 574u, 0x08A2F918u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F918u) goto L_08A2F918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F918: ctx.gpr[31] = (0x08A2F920u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-7200)); @@ -7048,15 +7917,28 @@ L_08A2F920: aot_gpr_5 = (0u | 1u); ctx.gpr[31] = (0x08A2F93Cu); aot_gpr_6 = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 576u, 0x08A2F93Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F93Cu) goto L_08A2F93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F93C: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2F94C: @@ -7089,8 +7971,21 @@ L_08A2F98C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(84), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x08A2F9A0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 580u, 0x08A2F9A0u, 0x08B246F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 53u, 0x08B246F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2F9A0u) goto L_08A2F9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2F9A0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -7121,8 +8016,8 @@ L_08A2F9CC: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2F9E8: @@ -7200,8 +8095,21 @@ L_08A2FA78: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A2FA9Cu); aot_gpr_5 = (ctx.gpr[29] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 589u, 0x08A2FA9Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2FA9Cu) goto L_08A2FA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2FA9C: ctx.gpr[31] = (0x08A2FAA4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7358,8 +8266,8 @@ L_08A2FB7C: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2FBA0: @@ -7391,8 +8299,8 @@ L_08A2FBD8: ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2FBEC: @@ -7424,8 +8332,8 @@ L_08A2FC24: ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2FC38: @@ -7646,8 +8554,21 @@ L_08A2FD74: aot_gpr_5 = (ctx.gpr[29] | 0u); ctx.gpr[31] = (0x08A2FD9Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0138->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0138_entry, 617u, 0x08A2FD9Cu, 0x0889EFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 669u, 0x0889EFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A2FD9Cu) goto L_08A2FD9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A2FD9C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7671,8 +8592,8 @@ L_08A2FDB0: ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(116))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2FDC0: @@ -7716,15 +8637,15 @@ L_08A2FDD8: ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(40))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2FE10: jump_target = ctx.gpr[31]; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7148))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2FE18: @@ -7861,8 +8782,8 @@ L_08A2FEF0: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A2FF08: diff --git a/profiles/vcs/generated/generated_unit_0139.cpp b/profiles/vcs/generated/generated_unit_0139.cpp index b5662e7..17d84ca 100644 --- a/profiles/vcs/generated/generated_unit_0139.cpp +++ b/profiles/vcs/generated/generated_unit_0139.cpp @@ -978,6 +978,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A30000u; + if (local_delta_v813 >= 16340u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1208,8 +1232,21 @@ L_08A30168: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A301A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 13u, 0x08A301A0u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A301A0u) goto L_08A301A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A301A0: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(36)))))); @@ -1455,8 +1492,8 @@ L_08A30334: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A30364: @@ -1647,12 +1684,38 @@ L_08A30478: } L_08A30480: aot_gpr_31 = (0x08A30488u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 43u, 0x08A30488u, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30488u) goto L_08A30488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30488: aot_gpr_31 = (0x08A30490u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 44u, 0x08A30490u, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30490u) goto L_08A30490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30490: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -1663,8 +1726,21 @@ L_08A30490: aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A304A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 45u, 0x08A304A8u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A304A8u) goto L_08A304A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A304A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1692,8 +1768,21 @@ L_08A304B0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A30500u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 47u, 0x08A30500u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30500u) goto L_08A30500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30500: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1749,12 +1838,38 @@ L_08A30508: } L_08A30588: aot_gpr_31 = (0x08A30590u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 50u, 0x08A30590u, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30590u) goto L_08A30590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30590: aot_gpr_31 = (0x08A30598u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 51u, 0x08A30598u, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30598u) goto L_08A30598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30598: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1773,8 +1888,21 @@ L_08A305A8: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_31 = (0x08A305B4u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 54u, 0x08A305B4u, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A305B4u) goto L_08A305B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A305B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), std::bit_cast(aot_fpr_20)); @@ -1782,8 +1910,21 @@ L_08A305B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(180), std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A305CCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(184), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 55u, 0x08A305CCu, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A305CCu) goto L_08A305CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A305CC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7104))); @@ -1801,8 +1942,21 @@ L_08A305CC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A3060Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 56u, 0x08A3060Cu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3060Cu) goto L_08A3060C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3060C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1901,12 +2055,38 @@ L_08A30614: } L_08A306C8: aot_gpr_31 = (0x08A306D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 59u, 0x08A306D0u, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A306D0u) goto L_08A306D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A306D0: aot_gpr_31 = (0x08A306D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 60u, 0x08A306D8u, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A306D8u) goto L_08A306D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A306D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1935,8 +2115,8 @@ L_08A306EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(432)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A30710: @@ -1950,8 +2130,21 @@ L_08A30710: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-7160), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A30738u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-7124), std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 64u, 0x08A30738u, 0x08B24818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 66u, 0x08B24818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30738u) goto L_08A30738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30738: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1960,8 +2153,8 @@ L_08A30738: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A30754: @@ -1970,14 +2163,27 @@ L_08A30754: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A30768u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 66u, 0x08A30768u, 0x08ADB348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 764u, 0x08ADB348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30768u) goto L_08A30768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30768: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A30774: @@ -1986,14 +2192,27 @@ L_08A30774: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A30788u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 68u, 0x08A30788u, 0x08ADB4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 786u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 786u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 786u, 0x08ADB4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30788u) goto L_08A30788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30788: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A30794: @@ -2002,20 +2221,59 @@ L_08A30794: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A307B0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 70u, 0x08A307B0u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A307B0u) goto L_08A307B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A307B0: aot_gpr_31 = (0x08A307B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 71u, 0x08A307B8u, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A307B8u) goto L_08A307B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A307B8: ctx.gpr[17] = (0u | 1u); aot_gpr_4 = (0u | 336u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A307CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 72u, 0x08A307CCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A307CCu) goto L_08A307CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A307CC: aot_gpr_16 = (2237u << 16u); aot_gpr_16 = (aot_gpr_16 + static_cast(-28736)); @@ -2036,16 +2294,42 @@ L_08A307E4: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(152))); aot_gpr_31 = (0x08A307F8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 75u, 0x08A307F8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A307F8u) goto L_08A307F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A307F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(154))); aot_gpr_31 = (0x08A3080Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 76u, 0x08A3080Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3080Cu) goto L_08A3080C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3080C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A30818u); @@ -2128,78 +2412,221 @@ L_08A30874: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A30884u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 89u, 0x08A30884u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30884u) goto L_08A30884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30884: aot_gpr_4 = (0u | 342u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A30894u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 90u, 0x08A30894u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30894u) goto L_08A30894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30894: aot_gpr_4 = (0u | 344u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A308A4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 91u, 0x08A308A4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A308A4u) goto L_08A308A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A308A4: aot_gpr_4 = (0u | 345u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A308B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 92u, 0x08A308B4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A308B4u) goto L_08A308B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A308B4: aot_gpr_4 = (0u | 346u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A308C4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 93u, 0x08A308C4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A308C4u) goto L_08A308C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A308C4: aot_gpr_4 = (0u | 349u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A308D4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 94u, 0x08A308D4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A308D4u) goto L_08A308D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A308D4: aot_gpr_4 = (0u | 353u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A308E4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 95u, 0x08A308E4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A308E4u) goto L_08A308E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A308E4: aot_gpr_4 = (0u | 348u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A308F4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 96u, 0x08A308F4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A308F4u) goto L_08A308F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A308F4: aot_gpr_4 = (0u | 359u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A30904u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 97u, 0x08A30904u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30904u) goto L_08A30904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30904: aot_gpr_4 = (0u | 357u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A30914u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 98u, 0x08A30914u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30914u) goto L_08A30914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30914: aot_gpr_4 = (0u | 363u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A30924u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 99u, 0x08A30924u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30924u) goto L_08A30924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30924: aot_gpr_31 = (0x08A3092Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2233,53 +2660,144 @@ L_08A30944: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(162))); aot_gpr_31 = (0x08A30958u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 104u, 0x08A30958u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30958u) goto L_08A30958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30958: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(158))); aot_gpr_31 = (0x08A3096Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 105u, 0x08A3096Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3096Cu) goto L_08A3096C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3096C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(168))); aot_gpr_31 = (0x08A30980u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 106u, 0x08A30980u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30980u) goto L_08A30980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30980: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(146))); aot_gpr_31 = (0x08A30994u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 107u, 0x08A30994u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30994u) goto L_08A30994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30994: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(148))); aot_gpr_31 = (0x08A309A8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 108u, 0x08A309A8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A309A8u) goto L_08A309A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A309A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_5 = (0u | 1u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(150))); aot_gpr_31 = (0x08A309BCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 109u, 0x08A309BCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A309BCu) goto L_08A309BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A309BC: aot_gpr_31 = (0x08A309C4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 110u, 0x08A309C4u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A309C4u) goto L_08A309C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A309C4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2290,8 +2808,8 @@ L_08A309C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A309DC: @@ -2394,8 +2912,8 @@ L_08A30A70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A30A80: @@ -2438,8 +2956,21 @@ L_08A30ACC: L_08A30AD4: aot_gpr_31 = (0x08A30ADCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 129u, 0x08A30ADCu, 0x08AD3578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 587u, 0x08AD3578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30ADCu) goto L_08A30ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30ADC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(140))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2452,21 +2983,60 @@ L_08A30AE8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A30AF4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 131u, 0x08A30AF4u, 0x08946D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 559u, 0x08946D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30AF4u) goto L_08A30AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30AF4: aot_gpr_16 = (2238u << 16u); aot_gpr_16 = (aot_gpr_16 + static_cast(-6992)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08A30B08u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 132u, 0x08A30B08u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30B08u) goto L_08A30B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30B08: aot_gpr_31 = (0x08A30B10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 133u, 0x08A30B10u, 0x08946E58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 569u, 0x08946E58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30B10u) goto L_08A30B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30B10: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_4 = (49864u << 16u); @@ -2501,14 +3071,40 @@ L_08A30B40: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A30B50u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 137u, 0x08A30B50u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30B50u) goto L_08A30B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30B50: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(8), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A30B5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 138u, 0x08A30B5Cu, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30B5Cu) goto L_08A30B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30B5C: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); @@ -2525,13 +3121,39 @@ L_08A30B74: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7072))); aot_gpr_31 = (0x08A30B94u); aot_gpr_5 = (aot_gpr_5 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 140u, 0x08A30B94u, 0x0890EF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 695u, 0x0890EF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30B94u) goto L_08A30B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30B94: aot_gpr_31 = (0x08A30B9Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 141u, 0x08A30B9Cu, 0x08946EA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 571u, 0x08946EA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30B9Cu) goto L_08A30B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30B9C: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-7076))); @@ -2545,8 +3167,21 @@ L_08A30B9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A30BCCu); aot_gpr_5 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 142u, 0x08A30BCCu, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30BCCu) goto L_08A30BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30BCC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2587,8 +3222,21 @@ L_08A30C14: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A30C24u); aot_gpr_4 = (0u | 224u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 147u, 0x08A30C24u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30C24u) goto L_08A30C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30C24: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2600,8 +3248,21 @@ L_08A30C24: L_08A30C30: aot_gpr_31 = (0x08A30C38u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 149u, 0x08A30C38u, 0x088239DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 678u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 678u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 678u, 0x088239DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30C38u) goto L_08A30C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30C38: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_08A30C3C; @@ -2620,19 +3281,58 @@ L_08A30C54: aot_gpr_4 = (ctx.gpr[17] + static_cast(116)); aot_gpr_31 = (0x08A30C60u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 152u, 0x08A30C60u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30C60u) goto L_08A30C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30C60: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A30C6Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 153u, 0x08A30C6Cu, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30C6Cu) goto L_08A30C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30C6C: aot_gpr_31 = (0x08A30C74u); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 154u, 0x08A30C74u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30C74u) goto L_08A30C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30C74: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2645,8 +3345,21 @@ L_08A30C80: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08A30C8Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 156u, 0x08A30C8Cu, 0x089D2B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 483u, 0x089D2B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30C8Cu) goto L_08A30C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30C8C: aot_gpr_31 = (0x08A30C94u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30C94u) goto L_08A30C94; @@ -2657,8 +3370,21 @@ L_08A30C94: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08A30CA8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 158u, 0x08A30CA8u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30CA8u) goto L_08A30CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30CA8: aot_gpr_31 = (0x08A30CB0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30CB0u) goto L_08A30CB0; @@ -2669,8 +3395,21 @@ L_08A30CB0: aot_gpr_6 = (0u | 999u); aot_gpr_31 = (0x08A30CC4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 160u, 0x08A30CC4u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30CC4u) goto L_08A30CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30CC4: aot_gpr_31 = (0x08A30CCCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30CCCu) goto L_08A30CCC; @@ -2679,13 +3418,39 @@ L_08A30CCC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A30CD8u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 162u, 0x08A30CD8u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30CD8u) goto L_08A30CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30CD8: aot_gpr_31 = (0x08A30CE0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 163u, 0x08A30CE0u, 0x08946E58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 569u, 0x08946E58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30CE0u) goto L_08A30CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30CE0: ctx.gpr[2] = (ctx.gpr[19] | 0u); goto L_08A30CE4; @@ -2701,8 +3466,8 @@ L_08A30CE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A30D04: @@ -2717,20 +3482,59 @@ L_08A30D04: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } aot_gpr_31 = (0x08A30D50u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 166u, 0x08A30D50u, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30D50u) goto L_08A30D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30D50: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 22u); aot_gpr_31 = (0x08A30D60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 167u, 0x08A30D60u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30D60u) goto L_08A30D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30D60: aot_gpr_31 = (0x08A30D68u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 168u, 0x08A30D68u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30D68u) goto L_08A30D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30D68: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); @@ -2743,8 +3547,21 @@ L_08A30D68: ctx.gpr[23] = (0u | 0u); aot_gpr_31 = (0x08A30D94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 169u, 0x08A30D94u, 0x08AECC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 217u, 0x08AECC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30D94u) goto L_08A30D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30D94: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2756,8 +3573,21 @@ L_08A30D9C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A30DA8u); aot_gpr_4 = (0u | 1584u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 171u, 0x08A30DA8u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30DA8u) goto L_08A30DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30DA8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2771,8 +3601,21 @@ L_08A30DB4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A30DC0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 173u, 0x08A30DC0u, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30DC0u) goto L_08A30DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30DC0: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08A30DC4; @@ -2791,8 +3634,21 @@ L_08A30DC4: L_08A30DDC: aot_gpr_31 = (0x08A30DE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 176u, 0x08A30DE4u, 0x08AECCC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 229u, 0x08AECCC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30DE4u) goto L_08A30DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30DE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2804,8 +3660,21 @@ L_08A30DEC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A30DF8u); aot_gpr_4 = (0u | 1632u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 178u, 0x08A30DF8u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30DF8u) goto L_08A30DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30DF8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2819,8 +3688,21 @@ L_08A30E04: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A30E10u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 180u, 0x08A30E10u, 0x08969648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 304u, 0x08969648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30E10u) goto L_08A30E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30E10: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08A30E14; @@ -2839,8 +3721,21 @@ L_08A30E14: L_08A30E2C: aot_gpr_31 = (0x08A30E34u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 183u, 0x08A30E34u, 0x08AECD48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 241u, 0x08AECD48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30E34u) goto L_08A30E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30E34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2852,8 +3747,21 @@ L_08A30E3C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A30E48u); aot_gpr_4 = (0u | 1984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 185u, 0x08A30E48u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30E48u) goto L_08A30E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30E48: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2884,8 +3792,21 @@ L_08A30E64: L_08A30E70: aot_gpr_31 = (0x08A30E78u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 190u, 0x08A30E78u, 0x08AECB2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 193u, 0x08AECB2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30E78u) goto L_08A30E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30E78: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2897,8 +3818,21 @@ L_08A30E80: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A30E8Cu); aot_gpr_4 = (0u | 2080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 192u, 0x08A30E8Cu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30E8Cu) goto L_08A30E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30E8C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2912,8 +3846,21 @@ L_08A30E98: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A30EA4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 194u, 0x08A30EA4u, 0x089ED94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 226u, 0x089ED94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30EA4u) goto L_08A30EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30EA4: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08A30EA8; @@ -2930,8 +3877,21 @@ L_08A30EA8: L_08A30EB8: aot_gpr_31 = (0x08A30EC0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 197u, 0x08A30EC0u, 0x08AECBB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 205u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 205u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 205u, 0x08AECBB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30EC0u) goto L_08A30EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30EC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2943,8 +3903,21 @@ L_08A30EC8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A30ED4u); aot_gpr_4 = (0u | 2064u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 199u, 0x08A30ED4u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30ED4u) goto L_08A30ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30ED4: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2958,8 +3931,21 @@ L_08A30EE0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A30EECu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 201u, 0x08A30EECu, 0x089D96B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 257u, 0x089D96B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30EECu) goto L_08A30EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30EEC: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08A30EF0; @@ -2975,8 +3961,21 @@ L_08A30EF0: L_08A30EFC: aot_gpr_31 = (0x08A30F04u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 204u, 0x08A30F04u, 0x08AECA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 168u, 0x08AECA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30F04u) goto L_08A30F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30F04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2988,8 +3987,21 @@ L_08A30F0C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A30F18u); aot_gpr_4 = (0u | 1184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 206u, 0x08A30F18u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30F18u) goto L_08A30F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30F18: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3003,8 +4015,21 @@ L_08A30F24: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A30F30u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 208u, 0x08A30F30u, 0x088A2F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 689u, 0x088A2F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30F30u) goto L_08A30F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30F30: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08A30F34; @@ -3020,8 +4045,21 @@ L_08A30F34: L_08A30F40: aot_gpr_31 = (0x08A30F48u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 211u, 0x08A30F48u, 0x08AECAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 181u, 0x08AECAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30F48u) goto L_08A30F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30F48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3033,8 +4071,21 @@ L_08A30F50: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A30F5Cu); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 213u, 0x08A30F5Cu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30F5Cu) goto L_08A30F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30F5C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3049,8 +4100,21 @@ L_08A30F68: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08A30F78u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 215u, 0x08A30F78u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30F78u) goto L_08A30F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30F78: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08A30F7C; @@ -3076,16 +4140,42 @@ L_08A30FA8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A30FB4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 219u, 0x08A30FB4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30FB4u) goto L_08A30FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30FB4: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A30FB8; L_08A30FB8: aot_gpr_31 = (0x08A30FC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 221u, 0x08A30FC0u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A30FC0u) goto L_08A30FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A30FC0: aot_fpr_12 = ctx.fpr[26] + ctx.fpr[0]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[22])); @@ -3103,8 +4193,21 @@ L_08A30FC0: aot_fpr_12 = aot_fpr_13 / aot_fpr_12; aot_gpr_31 = (0x08A31000u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 222u, 0x08A31000u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31000u) goto L_08A31000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31000: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -3116,8 +4219,21 @@ L_08A31000: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(613), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A31028u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 223u, 0x08A31028u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31028u) goto L_08A31028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31028: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_4)); @@ -3141,8 +4257,21 @@ L_08A31028: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08A31080u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 224u, 0x08A31080u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31080u) goto L_08A31080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31080: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(615)))))); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(312), static_cast(ctx.gpr[2])); @@ -3152,13 +4281,39 @@ L_08A31080: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(680), aot_gpr_4); aot_gpr_31 = (0x08A310A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 225u, 0x08A310A0u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A310A0u) goto L_08A310A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A310A0: aot_gpr_31 = (0x08A310A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 226u, 0x08A310A8u, 0x08AECAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 181u, 0x08AECAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A310A8u) goto L_08A310A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A310A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3170,8 +4325,21 @@ L_08A310B0: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A310BCu); aot_gpr_4 = (0u | 408u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 228u, 0x08A310BCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A310BCu) goto L_08A310BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A310BC: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3184,8 +4352,21 @@ L_08A310BC: L_08A310C8: aot_gpr_31 = (0x08A310D0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 230u, 0x08A310D0u, 0x089F75BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 655u, 0x089F75BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A310D0u) goto L_08A310D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A310D0: aot_gpr_16 = (ctx.gpr[17] | 0u); goto L_08A310D4; @@ -3200,8 +4381,21 @@ L_08A310D4: L_08A310DC: aot_gpr_31 = (0x08A310E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 233u, 0x08A310E4u, 0x08AECC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 217u, 0x08AECC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A310E4u) goto L_08A310E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A310E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3213,8 +4407,21 @@ L_08A310EC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A310F8u); aot_gpr_4 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 235u, 0x08A310F8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A310F8u) goto L_08A310F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A310F8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3227,8 +4434,21 @@ L_08A310F8: L_08A31104: aot_gpr_31 = (0x08A3110Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 237u, 0x08A3110Cu, 0x08AA4C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 120u, 0x08AA4C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3110Cu) goto L_08A3110C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3110C: aot_gpr_16 = (ctx.gpr[17] | 0u); goto L_08A31110; @@ -3243,8 +4463,21 @@ L_08A31110: L_08A31118: aot_gpr_31 = (0x08A31120u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 240u, 0x08A31120u, 0x08AECCC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 229u, 0x08AECCC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31120u) goto L_08A31120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31120: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3256,8 +4489,21 @@ L_08A31128: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A31134u); aot_gpr_4 = (0u | 232u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 242u, 0x08A31134u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31134u) goto L_08A31134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31134: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3270,8 +4516,21 @@ L_08A31134: L_08A31140: aot_gpr_31 = (0x08A31148u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 244u, 0x08A31148u, 0x08825EACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 292u, 0x08825EACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31148u) goto L_08A31148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31148: aot_gpr_16 = (ctx.gpr[17] | 0u); goto L_08A3114C; @@ -3286,8 +4545,21 @@ L_08A3114C: L_08A31154: aot_gpr_31 = (0x08A3115Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 247u, 0x08A3115Cu, 0x08AECD48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 241u, 0x08AECD48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3115Cu) goto L_08A3115C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3115C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3299,8 +4571,21 @@ L_08A31164: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A31170u); aot_gpr_4 = (0u | 364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 249u, 0x08A31170u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31170u) goto L_08A31170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31170: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3313,8 +4598,21 @@ L_08A31170: L_08A3117C: aot_gpr_31 = (0x08A31184u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 251u, 0x08A31184u, 0x089CE4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 436u, 0x089CE4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31184u) goto L_08A31184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31184: aot_gpr_16 = (ctx.gpr[17] | 0u); goto L_08A31188; @@ -3329,8 +4627,21 @@ L_08A31188: L_08A31190: aot_gpr_31 = (0x08A31198u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 254u, 0x08A31198u, 0x08AECB2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 193u, 0x08AECB2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31198u) goto L_08A31198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31198: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3342,8 +4653,21 @@ L_08A311A0: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A311ACu); aot_gpr_4 = (0u | 364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 256u, 0x08A311ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A311ACu) goto L_08A311AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A311AC: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3372,8 +4696,21 @@ L_08A311C4: L_08A311CC: aot_gpr_31 = (0x08A311D4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 261u, 0x08A311D4u, 0x08AECBB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 205u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 205u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 205u, 0x08AECBB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A311D4u) goto L_08A311D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A311D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3385,8 +4722,21 @@ L_08A311DC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A311E8u); aot_gpr_4 = (0u | 364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 263u, 0x08A311E8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A311E8u) goto L_08A311E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A311E8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3399,8 +4749,21 @@ L_08A311E8: L_08A311F4: aot_gpr_31 = (0x08A311FCu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 265u, 0x08A311FCu, 0x0881B29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 561u, 0x0881B29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A311FCu) goto L_08A311FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A311FC: aot_gpr_16 = (ctx.gpr[17] | 0u); goto L_08A31200; @@ -3415,8 +4778,21 @@ L_08A31200: L_08A31208: aot_gpr_31 = (0x08A31210u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 268u, 0x08A31210u, 0x08AECA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 168u, 0x08AECA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31210u) goto L_08A31210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31210: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3428,8 +4804,21 @@ L_08A31218: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A31224u); aot_gpr_4 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 270u, 0x08A31224u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31224u) goto L_08A31224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31224: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3442,8 +4831,21 @@ L_08A31230: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08A3123Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 272u, 0x08A3123Cu, 0x0886BDE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 788u, 0x0886BDE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3123Cu) goto L_08A3123C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3123C: aot_gpr_16 = (ctx.gpr[17] | 0u); goto L_08A31240; @@ -3478,8 +4880,8 @@ L_08A3124C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3128C: @@ -3488,8 +4890,21 @@ L_08A3128C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A312A0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 277u, 0x08A312A0u, 0x08ADADFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 689u, 0x08ADADFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A312A0u) goto L_08A312A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A312A0: aot_gpr_31 = (0x08A312A8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-7060)); @@ -3499,8 +4914,8 @@ L_08A312A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A312B4: @@ -3514,8 +4929,21 @@ L_08A312B4: ctx.gpr[17] = (ctx.gpr[7] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A312E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 280u, 0x08A312E0u, 0x08AAB1ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 258u, 0x08AAB1ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A312E0u) goto L_08A312E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A312E0: { const std::uint32_t aot_run_words[3]{ctx.gpr[2], ctx.gpr[18], ctx.gpr[17]}; aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast(0), aot_run_words); } @@ -3576,8 +5004,8 @@ L_08A31360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3137C: @@ -3614,8 +5042,8 @@ L_08A313B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A313D0: @@ -3628,8 +5056,8 @@ L_08A313E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A313EC: @@ -3750,8 +5178,8 @@ L_08A314D4: goto L_08A31500; L_08A31500: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31508: @@ -3762,14 +5190,27 @@ L_08A31508: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A31524u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 305u, 0x08A31524u, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31524u) goto L_08A31524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31524: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31530: @@ -3782,28 +5223,28 @@ L_08A31530: aot_gpr_5 = (ctx.gpr[7] + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31554: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3155C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31564: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3156C: @@ -3815,8 +5256,21 @@ L_08A3156C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A3158Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 311u, 0x08A3158Cu, 0x088DF69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 451u, 0x088DF69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3158Cu) goto L_08A3158C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3158C: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(44), aot_gpr_4); @@ -3839,8 +5293,8 @@ L_08A315BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A315CC: @@ -3848,8 +5302,8 @@ L_08A315CC: ctx.gpr[2] = (aot_gpr_4 & 2u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A315DC: @@ -3875,20 +5329,59 @@ L_08A315F8: L_08A3160C: aot_gpr_31 = (0x08A31614u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2332))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 318u, 0x08A31614u, 0x08AA761Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 516u, 0x08AA761Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31614u) goto L_08A31614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31614: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2332))); aot_gpr_31 = (0x08A31620u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 319u, 0x08A31620u, 0x08AA7380u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 489u, 0x08AA7380u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31620u) goto L_08A31620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31620: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3162Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 320u, 0x08A3162Cu, 0x08905FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 416u, 0x08905FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3162Cu) goto L_08A3162C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3162C: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3900,8 +5393,21 @@ L_08A3162C: L_08A31638: aot_gpr_31 = (0x08A31640u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 322u, 0x08A31640u, 0x08906308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 477u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 477u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 477u, 0x08906308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31640u) goto L_08A31640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31640: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3911,8 +5417,8 @@ L_08A31640: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31654: @@ -3955,8 +5461,21 @@ L_08A31688: L_08A316BC: aot_gpr_31 = (0x08A316C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 326u, 0x08A316C4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A316C4u) goto L_08A316C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A316C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4114,8 +5633,21 @@ L_08A317C4: L_08A317E8: aot_gpr_31 = (0x08A317F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 344u, 0x08A317F0u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A317F0u) goto L_08A317F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A317F0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(640), 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -4129,14 +5661,40 @@ L_08A317F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A31820u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 345u, 0x08A31820u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31820u) goto L_08A31820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31820: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A3182Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 346u, 0x08A3182Cu, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3182Cu) goto L_08A3182C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3182C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); @@ -4164,8 +5722,8 @@ L_08A31850: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3186C: @@ -4174,8 +5732,21 @@ L_08A3186C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_31); aot_gpr_31 = (0x08A31880u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 350u, 0x08A31880u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31880u) goto L_08A31880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31880: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4185,8 +5756,21 @@ L_08A31880: } L_08A31888: aot_gpr_31 = (0x08A31890u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 352u, 0x08A31890u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31890u) goto L_08A31890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31890: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4197,8 +5781,21 @@ L_08A31890: } L_08A3189C: aot_gpr_31 = (0x08A318A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 354u, 0x08A318A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A318A4u) goto L_08A318A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A318A4: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(558))); @@ -4243,8 +5840,21 @@ L_08A318E0: } L_08A318E8: aot_gpr_31 = (0x08A318F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 361u, 0x08A318F0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A318F0u) goto L_08A318F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A318F0: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4319,8 +5929,21 @@ L_08A3193C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A3196Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 363u, 0x08A3196Cu, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3196Cu) goto L_08A3196C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3196C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(2296))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4398,15 +6021,28 @@ L_08A319DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A31A0Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 373u, 0x08A31A0Cu, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31A0Cu) goto L_08A31A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31A0C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31A1C: @@ -4423,8 +6059,21 @@ L_08A31A1C: L_08A31A3C: aot_gpr_31 = (0x08A31A44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 376u, 0x08A31A44u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31A44u) goto L_08A31A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31A44: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4436,8 +6085,21 @@ L_08A31A44: L_08A31A50: aot_gpr_31 = (0x08A31A58u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 378u, 0x08A31A58u, 0x08906F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 655u, 0x08906F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31A58u) goto L_08A31A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31A58: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4467,13 +6129,39 @@ L_08A31A78: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A31A84u); aot_gpr_5 = (0u | 65u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 383u, 0x08A31A84u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31A84u) goto L_08A31A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31A84: aot_gpr_31 = (0x08A31A8Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 384u, 0x08A31A8Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31A8Cu) goto L_08A31A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31A8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4502,8 +6190,21 @@ L_08A31AB0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A31ABCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 388u, 0x08A31ABCu, 0x089AFEFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 930u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 930u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 930u, 0x089AFEFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31ABCu) goto L_08A31ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31ABC: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -4561,8 +6262,21 @@ L_08A31B14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A31B24u); aot_gpr_6 = (0u | 151u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 395u, 0x08A31B24u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31B24u) goto L_08A31B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31B24: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4607,20 +6321,59 @@ L_08A31B58: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A31B74u); ctx.gpr[7] = (0u | 151u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 401u, 0x08A31B74u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31B74u) goto L_08A31B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31B74: aot_gpr_31 = (0x08A31B7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 402u, 0x08A31B7Cu, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31B7Cu) goto L_08A31B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31B7C: aot_gpr_4 = (ctx.gpr[2] + static_cast(816)); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A31B8Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 403u, 0x08A31B8Cu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31B8Cu) goto L_08A31B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31B8C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -4630,8 +6383,21 @@ L_08A31B8C: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x08A31BACu); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 404u, 0x08A31BACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31BACu) goto L_08A31BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31BAC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2256), std::bit_cast(ctx.fpr[0])); @@ -4654,8 +6420,21 @@ L_08A31BAC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A31BD4u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 405u, 0x08A31BD4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31BD4u) goto L_08A31BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31BD4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4665,8 +6444,21 @@ L_08A31BD4: } aot_gpr_31 = (0x08A31BE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 406u, 0x08A31BE8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31BE8u) goto L_08A31BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31BE8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -4677,8 +6469,8 @@ L_08A31BE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31C00: @@ -4702,14 +6494,40 @@ L_08A31C00: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A31C30u); aot_gpr_5 = (0u | 41u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 408u, 0x08A31C30u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31C30u) goto L_08A31C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31C30: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A31C3Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 409u, 0x08A31C3Cu, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31C3Cu) goto L_08A31C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31C3C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (16384u << 16u); @@ -4743,21 +6561,60 @@ L_08A31C6C: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A31C98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 412u, 0x08A31C98u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31C98u) goto L_08A31C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31C98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A31CA4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 413u, 0x08A31CA4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31CA4u) goto L_08A31CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31CA4: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2308), aot_gpr_4); aot_gpr_31 = (0x08A31CB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 414u, 0x08A31CB4u, 0x08909EBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 509u, 0x08909EBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31CB4u) goto L_08A31CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31CB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -4798,8 +6655,21 @@ L_08A31CC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A31D0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 416u, 0x08A31D0Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31D0Cu) goto L_08A31D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31D0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_5 = (16320u << 16u); @@ -4843,15 +6713,41 @@ L_08A31D0C: L_08A31D70: aot_gpr_31 = (0x08A31D78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 418u, 0x08A31D78u, 0x08860314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31D78u) goto L_08A31D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31D78: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2320))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2304))); aot_gpr_31 = (0x08A31D88u); aot_gpr_5 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 419u, 0x08A31D88u, 0x0893FED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 859u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 859u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 859u, 0x0893FED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31D88u) goto L_08A31D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31D88: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); @@ -4892,21 +6788,60 @@ L_08A31DC0: aot_gpr_5 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A31DE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 423u, 0x08A31DE8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31DE8u) goto L_08A31DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31DE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A31DF4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 424u, 0x08A31DF4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31DF4u) goto L_08A31DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31DF4: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2308), aot_gpr_4); aot_gpr_31 = (0x08A31E04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 425u, 0x08A31E04u, 0x08909EBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 509u, 0x08909EBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31E04u) goto L_08A31E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31E04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -4916,8 +6851,21 @@ L_08A31E10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A31E1Cu); aot_gpr_5 = (0u | 111u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 427u, 0x08A31E1Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31E1Cu) goto L_08A31E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31E1C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -4929,8 +6877,8 @@ L_08A31E1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31E38: @@ -4950,15 +6898,28 @@ L_08A31E50: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5832))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31E68: aot_gpr_31 = (0x08A31E70u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 431u, 0x08A31E70u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31E70u) goto L_08A31E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31E70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4969,8 +6930,21 @@ L_08A31E70: L_08A31E78: aot_gpr_31 = (0x08A31E80u); aot_gpr_5 = (0u | 25u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 433u, 0x08A31E80u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31E80u) goto L_08A31E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31E80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4981,8 +6955,21 @@ L_08A31E80: L_08A31E88: aot_gpr_31 = (0x08A31E90u); aot_gpr_5 = (0u | 27u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 435u, 0x08A31E90u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31E90u) goto L_08A31E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31E90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4994,8 +6981,8 @@ L_08A31E98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31EA4: @@ -5008,8 +6995,21 @@ L_08A31EA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A31ECCu); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 438u, 0x08A31ECCu, 0x08913670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 838u, 0x08913670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31ECCu) goto L_08A31ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31ECC: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29376)); @@ -5028,8 +7028,8 @@ L_08A31EE4: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[18]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5864))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A31EFC: @@ -5050,15 +7050,41 @@ L_08A31F18: aot_gpr_6 = (0u | 1000u); aot_gpr_31 = (0x08A31F2Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 442u, 0x08A31F2Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31F2Cu) goto L_08A31F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31F2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 19u); aot_gpr_31 = (0x08A31F3Cu); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 443u, 0x08A31F3Cu, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31F3Cu) goto L_08A31F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31F3C: aot_gpr_4 = (0u | 60u); aot_fpr_12 = std::bit_cast(0u); @@ -5107,15 +7133,41 @@ L_08A31FAC: aot_gpr_6 = (0u | 1000u); aot_gpr_31 = (0x08A31FC0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 447u, 0x08A31FC0u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31FC0u) goto L_08A31FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31FC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 19u); aot_gpr_31 = (0x08A31FD0u); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 448u, 0x08A31FD0u, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A31FD0u) goto L_08A31FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A31FD0: aot_gpr_4 = (0u | 60u); aot_fpr_12 = std::bit_cast(0u); @@ -5163,14 +7215,40 @@ L_08A32040: aot_gpr_5 = (0u | 25u); aot_gpr_31 = (0x08A32050u); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 452u, 0x08A32050u, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32050u) goto L_08A32050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32050: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A3205Cu); aot_gpr_5 = (0u | 25u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 453u, 0x08A3205Cu, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3205Cu) goto L_08A3205C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3205C: aot_gpr_4 = (0u | 68u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5218,14 +7296,40 @@ L_08A320CC: aot_gpr_5 = (0u | 27u); aot_gpr_31 = (0x08A320DCu); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 457u, 0x08A320DCu, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A320DCu) goto L_08A320DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A320DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A320E8u); aot_gpr_5 = (0u | 27u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 458u, 0x08A320E8u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A320E8u) goto L_08A320E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A320E8: aot_gpr_4 = (0u | 76u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5271,14 +7375,40 @@ L_08A32150: aot_gpr_5 = (0u | 27u); aot_gpr_31 = (0x08A32160u); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 462u, 0x08A32160u, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32160u) goto L_08A32160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32160: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A3216Cu); aot_gpr_5 = (0u | 27u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 463u, 0x08A3216Cu, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3216Cu) goto L_08A3216C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3216C: aot_gpr_4 = (0u | 84u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5358,14 +7488,40 @@ L_08A32208: aot_gpr_5 = (0u | 25u); aot_gpr_31 = (0x08A32218u); aot_gpr_6 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 471u, 0x08A32218u, 0x0890819Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 31u, 0x0890819Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32218u) goto L_08A32218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32218: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32224u); aot_gpr_5 = (0u | 25u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 472u, 0x08A32224u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32224u) goto L_08A32224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32224: aot_gpr_4 = (0u | 76u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5417,8 +7573,21 @@ L_08A32270: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A322C8u); aot_gpr_4 = (0u | 576u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 475u, 0x08A322C8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A322C8u) goto L_08A322C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A322C8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5430,8 +7599,21 @@ L_08A322C8: L_08A322D4: aot_gpr_31 = (0x08A322DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 477u, 0x08A322DCu, 0x08AA7374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 488u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 488u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 488u, 0x08AA7374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A322DCu) goto L_08A322DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A322DC: ctx.gpr[18] = (ctx.gpr[17] | 0u); goto L_08A322E0; @@ -5459,8 +7641,8 @@ L_08A32300: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3231C: @@ -5486,8 +7668,21 @@ L_08A3235C: L_08A32364: aot_gpr_31 = (0x08A3236Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 483u, 0x08A3236Cu, 0x0891FD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 832u, 0x0891FD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3236Cu) goto L_08A3236C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3236C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(2312))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5508,8 +7703,21 @@ L_08A32378: L_08A32388: aot_gpr_31 = (0x08A32390u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 486u, 0x08A32390u, 0x08A349F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 161u, 0x08A349F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32390u) goto L_08A32390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32390: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5556,8 +7764,21 @@ L_08A323C8: L_08A323D8: aot_gpr_31 = (0x08A323E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2332))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 492u, 0x08A323E0u, 0x08AA7770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 541u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 541u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 541u, 0x08AA7770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A323E0u) goto L_08A323E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A323E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (2u << 16u); @@ -5644,8 +7865,21 @@ L_08A3245C: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x08A32480u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 503u, 0x08A32480u, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32480u) goto L_08A32480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32480: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1940))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1944))); @@ -5668,12 +7902,38 @@ L_08A32480: L_08A324B4: aot_gpr_31 = (0x08A324BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 505u, 0x08A324BCu, 0x0890748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 753u, 0x0890748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A324BCu) goto L_08A324BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A324BC: aot_gpr_31 = (0x08A324C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 506u, 0x08A324C4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A324C4u) goto L_08A324C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A324C4: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -5682,8 +7942,21 @@ L_08A324C4: goto L_08A324CC; L_08A324CC: aot_gpr_31 = (0x08A324D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 508u, 0x08A324D4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A324D4u) goto L_08A324D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A324D4: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); @@ -5804,8 +8077,21 @@ L_08A325B8: L_08A325D4: aot_gpr_31 = (0x08A325DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 515u, 0x08A325DCu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A325DCu) goto L_08A325DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A325DC: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); @@ -5832,8 +8118,21 @@ L_08A325F0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A32614u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 519u, 0x08A32614u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32614u) goto L_08A32614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32614: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5905,8 +8204,21 @@ L_08A32688: L_08A326AC: aot_gpr_31 = (0x08A326B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 526u, 0x08A326B4u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A326B4u) goto L_08A326B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A326B4: aot_gpr_31 = (0x08A326BCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A326BCu) goto L_08A326BC; @@ -5958,8 +8270,21 @@ L_08A32700: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A3270Cu); aot_gpr_5 = (0u | 131u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 533u, 0x08A3270Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3270Cu) goto L_08A3270C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3270C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6040,8 +8365,21 @@ L_08A32790: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A3279Cu); aot_gpr_5 = (0u | 129u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 544u, 0x08A3279Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3279Cu) goto L_08A3279C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3279C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6053,13 +8391,39 @@ L_08A327A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A327B0u); aot_gpr_5 = (0u | 134u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 546u, 0x08A327B0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A327B0u) goto L_08A327B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A327B0: aot_gpr_31 = (0x08A327B8u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 547u, 0x08A327B8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A327B8u) goto L_08A327B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A327B8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6118,8 +8482,21 @@ L_08A32800: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A3280Cu); aot_gpr_5 = (0u | 135u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 550u, 0x08A3280Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3280Cu) goto L_08A3280C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3280C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(2228))); aot_gpr_5 = (0u | 16u); @@ -6145,19 +8522,58 @@ L_08A3282C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A32844u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 553u, 0x08A32844u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32844u) goto L_08A32844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32844: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A32850u); aot_gpr_5 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 554u, 0x08A32850u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32850u) goto L_08A32850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32850: aot_gpr_31 = (0x08A32858u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 555u, 0x08A32858u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32858u) goto L_08A32858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32858: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6180,8 +8596,8 @@ L_08A32870: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(5896))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A32888: @@ -6205,8 +8621,21 @@ L_08A32898: L_08A328A0: aot_gpr_31 = (0x08A328A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 562u, 0x08A328A8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A328A8u) goto L_08A328A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A328A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6244,8 +8673,21 @@ L_08A328CC: L_08A328E0: aot_gpr_31 = (0x08A328E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 567u, 0x08A328E8u, 0x0890E244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 500u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 500u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 500u, 0x0890E244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A328E8u) goto L_08A328E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A328E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6266,8 +8708,21 @@ L_08A328F0: L_08A32904: aot_gpr_31 = (0x08A3290Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 570u, 0x08A3290Cu, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3290Cu) goto L_08A3290C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3290C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_5 = (0u | 1u); @@ -6285,8 +8740,21 @@ L_08A3290C: L_08A3293C: aot_gpr_31 = (0x08A32944u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 572u, 0x08A32944u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32944u) goto L_08A32944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32944: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6363,8 +8831,21 @@ L_08A32994: L_08A3299C: aot_gpr_31 = (0x08A329A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 583u, 0x08A329A4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A329A4u) goto L_08A329A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A329A4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6375,8 +8856,21 @@ L_08A329A4: L_08A329AC: aot_gpr_31 = (0x08A329B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 585u, 0x08A329B4u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A329B4u) goto L_08A329B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A329B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6387,20 +8881,59 @@ L_08A329B4: L_08A329BC: aot_gpr_31 = (0x08A329C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 587u, 0x08A329C4u, 0x08910510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 85u, 0x08910510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A329C4u) goto L_08A329C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A329C4: aot_gpr_5 = (16256u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A329D4u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 588u, 0x08A329D4u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A329D4u) goto L_08A329D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A329D4: aot_gpr_31 = (0x08A329DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 589u, 0x08A329DCu, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A329DCu) goto L_08A329DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A329DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6460,8 +8993,21 @@ L_08A32A40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32A4Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 598u, 0x08A32A4Cu, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32A4Cu) goto L_08A32A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32A4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6517,8 +9063,21 @@ L_08A32AB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32AC0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 606u, 0x08A32AC0u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32AC0u) goto L_08A32AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32AC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6529,8 +9088,21 @@ L_08A32AC0: L_08A32AC8: aot_gpr_31 = (0x08A32AD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 608u, 0x08A32AD0u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32AD0u) goto L_08A32AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32AD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6541,8 +9113,21 @@ L_08A32AD0: L_08A32AD8: aot_gpr_31 = (0x08A32AE0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 610u, 0x08A32AE0u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32AE0u) goto L_08A32AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32AE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6594,8 +9179,21 @@ L_08A32B2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32B40u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 618u, 0x08A32B40u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32B40u) goto L_08A32B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32B40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (128u << 16u); @@ -6609,8 +9207,21 @@ L_08A32B40: L_08A32B54: aot_gpr_31 = (0x08A32B5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 620u, 0x08A32B5Cu, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32B5Cu) goto L_08A32B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32B5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6620,8 +9231,21 @@ L_08A32B5C: } L_08A32B64: aot_gpr_31 = (0x08A32B6Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 622u, 0x08A32B6Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32B6Cu) goto L_08A32B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32B6C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6680,8 +9304,21 @@ L_08A32BC0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A32BE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 631u, 0x08A32BE4u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32BE4u) goto L_08A32BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32BE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6693,8 +9330,21 @@ L_08A32BEC: aot_gpr_5 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A32BF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 633u, 0x08A32BF8u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32BF8u) goto L_08A32BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32BF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); aot_gpr_4 = (16320u << 16u); @@ -6712,8 +9362,21 @@ L_08A32BF8: L_08A32C1C: aot_gpr_31 = (0x08A32C24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 635u, 0x08A32C24u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32C24u) goto L_08A32C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32C24: aot_gpr_4 = (16025u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); @@ -6730,8 +9393,21 @@ L_08A32C24: } L_08A32C4C: aot_gpr_31 = (0x08A32C54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 637u, 0x08A32C54u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32C54u) goto L_08A32C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32C54: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6741,13 +9417,39 @@ L_08A32C54: } L_08A32C5C: aot_gpr_31 = (0x08A32C64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 639u, 0x08A32C64u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32C64u) goto L_08A32C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32C64: aot_gpr_31 = (0x08A32C6Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 640u, 0x08A32C6Cu, 0x08B011C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 327u, 0x08B011C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32C6Cu) goto L_08A32C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32C6C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6757,8 +9459,21 @@ L_08A32C6C: } L_08A32C74: aot_gpr_31 = (0x08A32C7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 642u, 0x08A32C7Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32C7Cu) goto L_08A32C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32C7C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(562))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6769,8 +9484,21 @@ L_08A32C7C: } L_08A32C88: aot_gpr_31 = (0x08A32C90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 644u, 0x08A32C90u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32C90u) goto L_08A32C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32C90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[17]; @@ -6781,14 +9509,40 @@ L_08A32C90: } L_08A32C9C: aot_gpr_31 = (0x08A32CA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 646u, 0x08A32CA4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32CA4u) goto L_08A32CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32CA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32CB0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 647u, 0x08A32CB0u, 0x089A9038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 148u, 0x089A9038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32CB0u) goto L_08A32CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32CB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6812,8 +9566,21 @@ L_08A32CC4: L_08A32CCC: aot_gpr_31 = (0x08A32CD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 651u, 0x08A32CD4u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32CD4u) goto L_08A32CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32CD4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); ctx.gpr[7] = (0u | 0u); @@ -6828,19 +9595,58 @@ L_08A32CD4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A32D08u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 652u, 0x08A32D08u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32D08u) goto L_08A32D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32D08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32D14u); aot_gpr_5 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 653u, 0x08A32D14u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32D14u) goto L_08A32D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32D14: aot_gpr_31 = (0x08A32D1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 654u, 0x08A32D1Cu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32D1Cu) goto L_08A32D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32D1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6919,8 +9725,21 @@ L_08A32DA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32DB0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 666u, 0x08A32DB0u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32DB0u) goto L_08A32DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32DB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6940,8 +9759,21 @@ L_08A32DC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32DD0u); aot_gpr_5 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 669u, 0x08A32DD0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32DD0u) goto L_08A32DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32DD0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(2300))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6954,8 +9786,21 @@ L_08A32DDC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A32DE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 671u, 0x08A32DE8u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32DE8u) goto L_08A32DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32DE8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7002,8 +9847,21 @@ L_08A32E38: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08A32E48u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 676u, 0x08A32E48u, 0x08A1C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 54u, 0x08A1C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32E48u) goto L_08A32E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32E48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(116), std::bit_cast(aot_fpr_20)); @@ -7047,8 +9905,21 @@ L_08A32E48: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A32EACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 677u, 0x08A32EACu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32EACu) goto L_08A32EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32EAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7091,8 +9962,21 @@ L_08A32EDC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(456), aot_gpr_4); aot_gpr_31 = (0x08A32F0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 682u, 0x08A32F0Cu, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32F0Cu) goto L_08A32F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32F0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2336))); aot_gpr_4 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -7172,8 +10056,21 @@ L_08A32F2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A32F9Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 685u, 0x08A32F9Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32F9Cu) goto L_08A32F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32F9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7192,13 +10089,39 @@ L_08A32FB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A32FC4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 688u, 0x08A32FC4u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32FC4u) goto L_08A32FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32FC4: aot_gpr_31 = (0x08A32FCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 689u, 0x08A32FCCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A32FCCu) goto L_08A32FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A32FCC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7228,8 +10151,21 @@ L_08A32FF0: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08A33014u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 693u, 0x08A33014u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33014u) goto L_08A33014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33014: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7250,13 +10186,39 @@ L_08A3302C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A33038u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 696u, 0x08A33038u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33038u) goto L_08A33038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33038: aot_gpr_31 = (0x08A33040u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 697u, 0x08A33040u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33040u) goto L_08A33040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33040: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); aot_gpr_5 = (0u | 1u); @@ -7290,8 +10252,21 @@ L_08A33080: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08A330A0u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 700u, 0x08A330A0u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A330A0u) goto L_08A330A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A330A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7316,8 +10291,21 @@ L_08A330C0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A330CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 704u, 0x08A330CCu, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A330CCu) goto L_08A330CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A330CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7387,8 +10375,8 @@ L_08A33130: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A33164: @@ -7567,13 +10555,39 @@ L_08A332A8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2302), static_cast(0u)); aot_gpr_31 = (0x08A332E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 730u, 0x08A332E8u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A332E8u) goto L_08A332E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A332E8: aot_gpr_31 = (0x08A332F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 731u, 0x08A332F0u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A332F0u) goto L_08A332F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A332F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7602,8 +10616,21 @@ L_08A33310: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A33320u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 735u, 0x08A33320u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33320u) goto L_08A33320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33320: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7679,8 +10706,21 @@ L_08A33384: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08A33398u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 740u, 0x08A33398u, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33398u) goto L_08A33398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33398: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7718,8 +10758,21 @@ L_08A333B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A33400u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 744u, 0x08A33400u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33400u) goto L_08A33400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33400: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -7751,8 +10804,8 @@ L_08A3342C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A33440: @@ -7778,8 +10831,21 @@ L_08A33440: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(312), aot_run_words); } aot_gpr_31 = (0x08A334A8u); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 749u, 0x08A334A8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A334A8u) goto L_08A334A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A334A8: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -7788,8 +10854,21 @@ L_08A334A8: goto L_08A334B0; L_08A334B0: aot_gpr_31 = (0x08A334B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 751u, 0x08A334B8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A334B8u) goto L_08A334B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A334B8: { const bool branch_taken = 0u == 0u; aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -7847,8 +10926,21 @@ L_08A33514: } L_08A3351C: aot_gpr_31 = (0x08A33524u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 759u, 0x08A33524u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33524u) goto L_08A33524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33524: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7900,13 +10992,39 @@ L_08A33554: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x08A3359Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 764u, 0x08A3359Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3359Cu) goto L_08A3359C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3359C: aot_gpr_31 = (0x08A335A4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 765u, 0x08A335A4u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A335A4u) goto L_08A335A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A335A4: aot_gpr_31 = (0x08A335ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -7922,8 +11040,21 @@ L_08A335BC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A335C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 768u, 0x08A335C8u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A335C8u) goto L_08A335C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A335C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(2292))); aot_gpr_4 = (16752u << 16u); @@ -7953,8 +11084,21 @@ L_08A335EC: } L_08A335F8: aot_gpr_31 = (0x08A33600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 772u, 0x08A33600u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33600u) goto L_08A33600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33600: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8011,8 +11155,21 @@ L_08A33668: aot_gpr_4 = (ctx.gpr[19] + aot_gpr_4); aot_gpr_31 = (0x08A33684u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 778u, 0x08A33684u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33684u) goto L_08A33684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33684: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8022,8 +11179,21 @@ L_08A33684: } L_08A3368C: aot_gpr_31 = (0x08A33694u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 780u, 0x08A33694u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33694u) goto L_08A33694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33694: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8054,8 +11224,21 @@ L_08A336BC: } L_08A336D4: aot_gpr_31 = (0x08A336DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 784u, 0x08A336DCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A336DCu) goto L_08A336DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A336DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(320))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(324))); @@ -8089,8 +11272,21 @@ L_08A336DC: } L_08A33748: aot_gpr_31 = (0x08A33750u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 786u, 0x08A33750u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33750u) goto L_08A33750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33750: aot_gpr_4 = (ctx.gpr[19] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8233,8 +11429,21 @@ L_08A338AC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A338C4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 794u, 0x08A338C4u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A338C4u) goto L_08A338C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A338C4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A338D0u); @@ -8244,8 +11453,21 @@ L_08A338C4: L_08A338D0: aot_gpr_31 = (0x08A338D8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 796u, 0x08A338D8u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A338D8u) goto L_08A338D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A338D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8255,14 +11477,40 @@ L_08A338D8: } L_08A338E0: aot_gpr_31 = (0x08A338E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 798u, 0x08A338E8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A338E8u) goto L_08A338E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A338E8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A338F4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 799u, 0x08A338F4u, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A338F4u) goto L_08A338F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A338F4: aot_gpr_31 = (0x08A338FCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A338FCu) goto L_08A338FC; @@ -8290,8 +11538,21 @@ L_08A33918: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A33948u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 802u, 0x08A33948u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33948u) goto L_08A33948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33948: aot_gpr_31 = (0x08A33950u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33950u) goto L_08A33950; @@ -8319,8 +11580,21 @@ L_08A33964: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A3399Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 805u, 0x08A3399Cu, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3399Cu) goto L_08A3399C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3399C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8340,8 +11614,21 @@ L_08A339A4: L_08A339B4: aot_gpr_31 = (0x08A339BCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 808u, 0x08A339BCu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A339BCu) goto L_08A339BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A339BC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(2296))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8617,8 +11904,21 @@ L_08A33BA0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A33BACu); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 845u, 0x08A33BACu, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33BACu) goto L_08A33BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33BAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8664,8 +11964,21 @@ L_08A33BF8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A33C04u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 851u, 0x08A33C04u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33C04u) goto L_08A33C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33C04: { const bool branch_taken = static_cast(ctx.gpr[2]) < 0; if (branch_taken) { @@ -8677,8 +11990,21 @@ L_08A33C0C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A33C18u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 853u, 0x08A33C18u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33C18u) goto L_08A33C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33C18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8690,8 +12016,21 @@ L_08A33C20: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A33C2Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 855u, 0x08A33C2Cu, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33C2Cu) goto L_08A33C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33C2C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(2299))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8719,12 +12058,38 @@ L_08A33C60: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A33C6Cu); aot_gpr_5 = (0u | 112u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 858u, 0x08A33C6Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33C6Cu) goto L_08A33C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33C6C: aot_gpr_31 = (0x08A33C74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 859u, 0x08A33C74u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33C74u) goto L_08A33C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33C74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8748,8 +12113,21 @@ L_08A33C88: goto L_08A33C98; L_08A33C98: aot_gpr_31 = (0x08A33CA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 863u, 0x08A33CA0u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33CA0u) goto L_08A33CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33CA0: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8810,13 +12188,39 @@ L_08A33D0C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A33D2Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 869u, 0x08A33D2Cu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33D2Cu) goto L_08A33D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33D2C: aot_gpr_31 = (0x08A33D34u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 870u, 0x08A33D34u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33D34u) goto L_08A33D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33D34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(460))); aot_gpr_4 = (aot_gpr_4 & 8192u); @@ -8884,8 +12288,21 @@ L_08A33D98: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A33DB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 876u, 0x08A33DB0u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33DB0u) goto L_08A33DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33DB0: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(724))); @@ -8907,8 +12324,21 @@ L_08A33DD0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A33DE8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 879u, 0x08A33DE8u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33DE8u) goto L_08A33DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33DE8: aot_gpr_5 = (aot_gpr_16 + static_cast(48)); aot_gpr_6 = (aot_gpr_29 + static_cast(112)); @@ -8923,8 +12353,21 @@ L_08A33DE8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A33E24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 880u, 0x08A33E24u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33E24u) goto L_08A33E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33E24: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8964,8 +12407,21 @@ L_08A33E60: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A33E6Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 885u, 0x08A33E6Cu, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33E6Cu) goto L_08A33E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33E6C: aot_gpr_31 = (0x08A33E74u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33E74u) goto L_08A33E74; @@ -8993,8 +12449,21 @@ L_08A33E90: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A33EC0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 888u, 0x08A33EC0u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33EC0u) goto L_08A33EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33EC0: aot_gpr_31 = (0x08A33EC8u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33EC8u) goto L_08A33EC8; @@ -9022,8 +12491,21 @@ L_08A33EDC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A33F14u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 891u, 0x08A33F14u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33F14u) goto L_08A33F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33F14: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A33F20u); @@ -9114,8 +12596,21 @@ L_08A33F9C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A33FA8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0139->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0139_entry, 899u, 0x08A33FA8u, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A33FA8u) goto L_08A33FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A33FA8: aot_gpr_4 = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); diff --git a/profiles/vcs/generated/generated_unit_0140.cpp b/profiles/vcs/generated/generated_unit_0140.cpp index 11fa438..a516385 100644 --- a/profiles/vcs/generated/generated_unit_0140.cpp +++ b/profiles/vcs/generated/generated_unit_0140.cpp @@ -1066,6 +1066,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A34000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1088,8 +1112,21 @@ L_08A34008: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x08A34018u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 3u, 0x08A34018u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34018u) goto L_08A34018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34018: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1110,8 +1147,21 @@ L_08A34020: } L_08A3403C: aot_gpr_31 = (0x08A34044u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 6u, 0x08A34044u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34044u) goto L_08A34044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34044: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(460))); @@ -1120,8 +1170,21 @@ L_08A34044: goto L_08A3404C; L_08A3404C: aot_gpr_31 = (0x08A34054u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 8u, 0x08A34054u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34054u) goto L_08A34054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34054: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1227,8 +1290,21 @@ L_08A34140: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A3414Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 17u, 0x08A3414Cu, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3414Cu) goto L_08A3414C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3414C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(460))); goto L_08A34150; @@ -1250,8 +1326,21 @@ L_08A34150: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A34194u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 19u, 0x08A34194u, 0x08A31654u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 323u, 0x08A31654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34194u) goto L_08A34194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34194: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1305,8 +1394,21 @@ L_08A341D4: L_08A341E4: aot_gpr_31 = (0x08A341ECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 27u, 0x08A341ECu, 0x08A33164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 712u, 0x08A33164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A341ECu) goto L_08A341EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A341EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(460))); goto L_08A341F0; @@ -1336,8 +1438,21 @@ L_08A34234: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A34240u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 30u, 0x08A34240u, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34240u) goto L_08A34240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34240: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1351,8 +1466,21 @@ L_08A3424C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A3425Cu); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 32u, 0x08A3425Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3425Cu) goto L_08A3425C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3425C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1380,13 +1508,39 @@ L_08A34274: L_08A34280: aot_gpr_31 = (0x08A34288u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 36u, 0x08A34288u, 0x08A33164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 712u, 0x08A33164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34288u) goto L_08A34288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34288: aot_gpr_31 = (0x08A34290u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 37u, 0x08A34290u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34290u) goto L_08A34290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34290: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1405,8 +1559,21 @@ L_08A34298: L_08A342A4: aot_gpr_31 = (0x08A342ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 40u, 0x08A342ACu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A342ACu) goto L_08A342AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A342AC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1417,8 +1584,21 @@ L_08A342AC: L_08A342B4: aot_gpr_31 = (0x08A342BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 42u, 0x08A342BCu, 0x08B01BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A342BCu) goto L_08A342BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A342BC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1460,8 +1640,21 @@ L_08A342FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A3430Cu); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 47u, 0x08A3430Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3430Cu) goto L_08A3430C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3430C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1490,8 +1683,21 @@ L_08A34330: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A3433Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 52u, 0x08A3433Cu, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3433Cu) goto L_08A3433C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3433C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1513,8 +1719,21 @@ L_08A34354: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A34364u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 55u, 0x08A34364u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34364u) goto L_08A34364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34364: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1525,14 +1744,40 @@ L_08A34364: L_08A3436C: aot_gpr_31 = (0x08A34374u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 57u, 0x08A34374u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34374u) goto L_08A34374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34374: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A34380u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 58u, 0x08A34380u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34380u) goto L_08A34380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34380: aot_gpr_31 = (0x08A34388u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34388u) goto L_08A34388; @@ -1564,8 +1809,21 @@ L_08A343B4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A343C0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 63u, 0x08A343C0u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A343C0u) goto L_08A343C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A343C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1641,8 +1899,21 @@ L_08A34434: L_08A34448: aot_gpr_31 = (0x08A34450u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 72u, 0x08A34450u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34450u) goto L_08A34450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34450: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1653,8 +1924,21 @@ L_08A34450: L_08A34458: aot_gpr_31 = (0x08A34460u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 74u, 0x08A34460u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34460u) goto L_08A34460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34460: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1694,8 +1978,21 @@ L_08A34498: L_08A344B0: aot_gpr_31 = (0x08A344B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 78u, 0x08A344B8u, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A344B8u) goto L_08A344B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A344B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1706,8 +2003,21 @@ L_08A344B8: L_08A344C0: aot_gpr_31 = (0x08A344C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 80u, 0x08A344C8u, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A344C8u) goto L_08A344C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A344C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -1723,8 +2033,21 @@ L_08A344C8: L_08A344E4: aot_gpr_31 = (0x08A344ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 82u, 0x08A344ECu, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A344ECu) goto L_08A344EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A344EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(1360))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[21]; @@ -1748,15 +2071,41 @@ L_08A34504: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A34514u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 86u, 0x08A34514u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34514u) goto L_08A34514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34514: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1784))); aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x08A34524u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 87u, 0x08A34524u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34524u) goto L_08A34524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34524: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1784))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(460))); @@ -1799,8 +2148,21 @@ L_08A34558: L_08A34560: aot_gpr_31 = (0x08A34568u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 93u, 0x08A34568u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34568u) goto L_08A34568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34568: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1909,8 +2271,21 @@ L_08A345F4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A34620u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 101u, 0x08A34620u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34620u) goto L_08A34620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34620: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1922,22 +2297,61 @@ L_08A34628: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A34634u); aot_gpr_5 = (0u | 133u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 103u, 0x08A34634u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34634u) goto L_08A34634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34634: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 14u); aot_gpr_31 = (0x08A34644u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 104u, 0x08A34644u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34644u) goto L_08A34644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34644: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08A34654u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 105u, 0x08A34654u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34654u) goto L_08A34654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34654: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_5 = (2u << 16u); @@ -1978,8 +2392,8 @@ L_08A34680: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A346B4: @@ -1991,8 +2405,21 @@ L_08A346B4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x08A346D8u); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 109u, 0x08A346D8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A346D8u) goto L_08A346D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A346D8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2048,14 +2475,40 @@ L_08A34740: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A3474Cu); aot_gpr_5 = (0u | 108u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 115u, 0x08A3474Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3474Cu) goto L_08A3474C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3474C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A34758u); aot_gpr_5 = (0u | 109u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 116u, 0x08A34758u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34758u) goto L_08A34758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34758: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2228))); aot_gpr_5 = (0u | 61u); @@ -2159,14 +2612,40 @@ L_08A347FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(3292))); aot_gpr_31 = (0x08A34808u); aot_gpr_4 = (aot_gpr_4 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 129u, 0x08A34808u, 0x08A39D10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 431u, 0x08A39D10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34808u) goto L_08A34808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34808: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A34814u); aot_gpr_5 = (0u | 65u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 130u, 0x08A34814u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34814u) goto L_08A34814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34814: aot_gpr_31 = (0x08A3481Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3481Cu) goto L_08A3481C; @@ -2251,8 +2730,21 @@ L_08A34888: L_08A34894: aot_gpr_31 = (0x08A3489Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 142u, 0x08A3489Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3489Cu) goto L_08A3489C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3489C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2267,8 +2759,21 @@ L_08A348A8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A348B4u); aot_gpr_5 = (0u | 65u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 145u, 0x08A348B4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A348B4u) goto L_08A348B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A348B4: aot_gpr_31 = (0x08A348BCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A348BCu) goto L_08A348BC; @@ -2321,14 +2826,40 @@ L_08A34920: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3492Cu); aot_gpr_5 = (0u | 54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 151u, 0x08A3492Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3492Cu) goto L_08A3492C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3492C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A34938u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 152u, 0x08A34938u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34938u) goto L_08A34938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34938: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(456))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(640), 0u); @@ -2337,14 +2868,40 @@ L_08A34938: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A34954u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 153u, 0x08A34954u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34954u) goto L_08A34954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34954: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A34960u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 154u, 0x08A34960u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34960u) goto L_08A34960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34960: if (ctx.gpr[19] == 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(1929)))))); @@ -2365,8 +2922,21 @@ L_08A34974: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(563), static_cast(0u)); aot_gpr_31 = (0x08A3498Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 157u, 0x08A3498Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3498Cu) goto L_08A3498C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3498C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1152))); aot_gpr_5 = (0u + static_cast(-497)); @@ -2393,8 +2963,21 @@ L_08A349C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A349D4u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 160u, 0x08A349D4u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A349D4u) goto L_08A349D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A349D4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2406,8 +2989,8 @@ L_08A349D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A349F0: @@ -2428,8 +3011,21 @@ L_08A349F0: } L_08A34A28: aot_gpr_31 = (0x08A34A30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 163u, 0x08A34A30u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34A30u) goto L_08A34A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34A30: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2439,8 +3035,21 @@ L_08A34A30: } L_08A34A38: aot_gpr_31 = (0x08A34A40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 165u, 0x08A34A40u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34A40u) goto L_08A34A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34A40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2451,8 +3060,21 @@ L_08A34A40: } L_08A34A4C: aot_gpr_31 = (0x08A34A54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 167u, 0x08A34A54u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34A54u) goto L_08A34A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34A54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); aot_gpr_5 = (0u | 6u); @@ -2473,8 +3095,21 @@ L_08A34A64: L_08A34A74: aot_gpr_31 = (0x08A34A7Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2332))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 170u, 0x08A34A7Cu, 0x08AA7770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 541u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 541u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 541u, 0x08AA7770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34A7Cu) goto L_08A34A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34A7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2501,8 +3136,21 @@ L_08A34A84: } L_08A34AB4: aot_gpr_31 = (0x08A34ABCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 173u, 0x08A34ABCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34ABCu) goto L_08A34ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34ABC: ctx.gpr[17] = (ctx.gpr[16] + static_cast(48)); { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); @@ -2549,8 +3197,21 @@ L_08A34ABC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A34B28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 174u, 0x08A34B28u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34B28u) goto L_08A34B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34B28: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(320))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(324))); @@ -2715,8 +3376,21 @@ L_08A34CC0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A34CF4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 184u, 0x08A34CF4u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34CF4u) goto L_08A34CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34CF4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -2729,8 +3403,21 @@ L_08A34CF4: L_08A34D04: aot_gpr_31 = (0x08A34D0Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 186u, 0x08A34D0Cu, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34D0Cu) goto L_08A34D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34D0C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2742,8 +3429,21 @@ L_08A34D14: aot_gpr_5 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A34D20u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 188u, 0x08A34D20u, 0x0890FE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 875u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 875u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 875u, 0x0890FE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34D20u) goto L_08A34D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34D20: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2794,8 +3494,21 @@ L_08A34D74: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A34D88u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 190u, 0x08A34D88u, 0x08977830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 728u, 0x08977830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34D88u) goto L_08A34D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34D88: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2886,8 +3599,21 @@ L_08A34DFC: } L_08A34E04: aot_gpr_31 = (0x08A34E0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 195u, 0x08A34E0Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34E0Cu) goto L_08A34E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34E0C: ctx.fpr[20] = ctx.fpr[0] + ctx.fpr[22]; goto L_08A34E10; @@ -2895,16 +3621,42 @@ L_08A34E10: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A34E1Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 197u, 0x08A34E1Cu, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34E1Cu) goto L_08A34E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34E1C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(2256), std::bit_cast(ctx.fpr[20])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2332))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(2260), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A34E30u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 198u, 0x08A34E30u, 0x08AA76A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 524u, 0x08AA76A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34E30u) goto L_08A34E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34E30: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2953,8 +3705,21 @@ L_08A34E80: } L_08A34E88: aot_gpr_31 = (0x08A34E90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 204u, 0x08A34E90u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34E90u) goto L_08A34E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34E90: ctx.fpr[20] = ctx.fpr[0] - ctx.fpr[22]; goto L_08A34E94; @@ -2962,16 +3727,42 @@ L_08A34E94: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A34EA0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 206u, 0x08A34EA0u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34EA0u) goto L_08A34EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34EA0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(2256), std::bit_cast(ctx.fpr[20])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2332))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(2260), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A34EB4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 207u, 0x08A34EB4u, 0x08AA76A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 524u, 0x08AA76A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34EB4u) goto L_08A34EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34EB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2982,8 +3773,21 @@ L_08A34EB4: L_08A34EBC: aot_gpr_31 = (0x08A34EC4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 209u, 0x08A34EC4u, 0x08A33164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 712u, 0x08A33164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34EC4u) goto L_08A34EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34EC4: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(244), aot_run_words); @@ -2998,8 +3802,8 @@ L_08A34EC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A34EEC: @@ -3008,8 +3812,21 @@ L_08A34EEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A34F00u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 211u, 0x08A34F00u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34F00u) goto L_08A34F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34F00: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3034,8 +3851,21 @@ L_08A34F1C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_31 = (0x08A34F34u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 214u, 0x08A34F34u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34F34u) goto L_08A34F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34F34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3050,8 +3880,8 @@ L_08A34F40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A34F4C: @@ -3063,21 +3893,60 @@ L_08A34F4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A34F6Cu); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 218u, 0x08A34F6Cu, 0x088079D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 555u, 0x088079D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34F6Cu) goto L_08A34F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34F6C: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(0), ctx.gpr[17]); aot_gpr_5 = (ctx.gpr[28] + static_cast(-6828)); aot_gpr_31 = (0x08A34F7Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 219u, 0x08A34F7Cu, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34F7Cu) goto L_08A34F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34F7C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A34F88u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 220u, 0x08A34F88u, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A34F88u) goto L_08A34F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A34F88: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3087,8 +3956,8 @@ L_08A34F88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A34F9C: @@ -3140,8 +4009,21 @@ L_08A3501C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A3502Cu); aot_gpr_4 = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 227u, 0x08A3502Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3502Cu) goto L_08A3502C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3502C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3159,8 +4041,21 @@ L_08A35038: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A35054u); aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 229u, 0x08A35054u, 0x08B1E884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 460u, 0x08B1E884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35054u) goto L_08A35054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35054: ctx.gpr[18] = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -3186,8 +4081,8 @@ L_08A35064: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A35098: @@ -3223,8 +4118,21 @@ L_08A350CC: L_08A350D4: aot_gpr_31 = (0x08A350DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 237u, 0x08A350DCu, 0x08B1EDB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 515u, 0x08B1EDB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A350DCu) goto L_08A350DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A350DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A350E8u); @@ -3303,8 +4211,21 @@ L_08A35158: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A35168u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 247u, 0x08A35168u, 0x08B1ED60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 511u, 0x08B1ED60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35168u) goto L_08A35168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35168: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3322,8 +4243,8 @@ L_08A35170: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A35184: @@ -3359,8 +4280,21 @@ L_08A351B8: L_08A351C0: aot_gpr_31 = (0x08A351C8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 254u, 0x08A351C8u, 0x08B1ED14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 507u, 0x08B1ED14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A351C8u) goto L_08A351C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A351C8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -3396,8 +4330,21 @@ L_08A351F4: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A35208u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 259u, 0x08A35208u, 0x08B1ECBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 503u, 0x08B1ECBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35208u) goto L_08A35208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35208: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3415,8 +4362,8 @@ L_08A35210: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A35224: @@ -3453,8 +4400,21 @@ L_08A35258: L_08A35264: aot_gpr_31 = (0x08A3526Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 266u, 0x08A3526Cu, 0x08B1EE5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 523u, 0x08B1EE5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3526Cu) goto L_08A3526C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3526C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -3488,8 +4448,21 @@ L_08A35298: aot_gpr_5 = (0u < aot_gpr_2 ? 1u : 0u); aot_gpr_31 = (0x08A352A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 271u, 0x08A352A4u, 0x08B1EE04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 519u, 0x08B1EE04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A352A4u) goto L_08A352A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A352A4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3507,8 +4480,8 @@ L_08A352AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A352C0: @@ -3560,8 +4533,21 @@ L_08A3530C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A35318u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 280u, 0x08A35318u, 0x08931D08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 355u, 0x08931D08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35318u) goto L_08A35318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35318: aot_gpr_4 = (aot_gpr_2 << 8u); aot_gpr_4 = (aot_gpr_4 + static_cast(255)); @@ -3575,8 +4561,21 @@ L_08A35318: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A35348u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 281u, 0x08A35348u, 0x089E8474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 53u, 0x089E8474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35348u) goto L_08A35348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35348: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3588,8 +4587,21 @@ L_08A35348: L_08A35350: aot_gpr_31 = (0x08A35358u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 283u, 0x08A35358u, 0x089E84ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 57u, 0x089E84ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35358u) goto L_08A35358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35358: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(1))); @@ -3628,8 +4640,8 @@ L_08A35398: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A353AC: @@ -3689,8 +4701,21 @@ L_08A35404: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A35418u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 296u, 0x08A35418u, 0x08B1EEACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 527u, 0x08B1EEACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35418u) goto L_08A35418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35418: aot_gpr_2 = (0u | 0u); goto L_08A3541C; @@ -3703,8 +4728,8 @@ L_08A3541C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A35430: @@ -3728,8 +4753,21 @@ L_08A35458: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A35464u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 301u, 0x08A35464u, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35464u) goto L_08A35464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35464: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3756,14 +4794,40 @@ L_08A3547C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A35488u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 305u, 0x08A35488u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35488u) goto L_08A35488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35488: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A35494u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 306u, 0x08A35494u, 0x08B1EF04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 531u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 531u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 531u, 0x08B1EF04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35494u) goto L_08A35494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35494: aot_gpr_2 = (0u | 0u); goto L_08A35498; @@ -3776,8 +4840,8 @@ L_08A35498: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A354AC: @@ -3803,8 +4867,21 @@ L_08A354D0: aot_gpr_6 = (ctx.gpr[28] + static_cast(-6828)); aot_gpr_31 = (0x08A354DCu); aot_gpr_5 = (aot_gpr_5 + static_cast(5928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 312u, 0x08A354DCu, 0x08885284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 270u, 0x08885284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A354DCu) goto L_08A354DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A354DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3825,14 +4902,27 @@ L_08A354F0: L_08A354F8: aot_gpr_31 = (0x08A35500u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 316u, 0x08A35500u, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35500u) goto L_08A35500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35500: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3550C: @@ -3842,15 +4932,15 @@ L_08A3550C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3), static_cast(ctx.gpr[8])); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A35524: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(9892), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3552C: @@ -3943,8 +5033,21 @@ L_08A355A8: L_08A355B0: aot_gpr_31 = (0x08A355B8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 331u, 0x08A355B8u, 0x08947944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 745u, 0x08947944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A355B8u) goto L_08A355B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A355B8: aot_gpr_4 = (0u | 3u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(9892), static_cast(aot_gpr_4)); @@ -3964,8 +5067,21 @@ L_08A355DC: aot_gpr_5 = (0u | 96u); aot_gpr_31 = (0x08A355ECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 333u, 0x08A355ECu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A355ECu) goto L_08A355EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A355EC: aot_gpr_31 = (0x08A355F4u); goto L_08A364E8; @@ -3999,8 +5115,21 @@ L_08A3561C: aot_gpr_5 = (0u | 168u); aot_gpr_31 = (0x08A3562Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 338u, 0x08A3562Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3562Cu) goto L_08A3562C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3562C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9920), ctx.gpr[16]); goto L_08A35630; @@ -4042,8 +5171,21 @@ L_08A35664: } L_08A35670: aot_gpr_31 = (0x08A35678u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 344u, 0x08A35678u, 0x08991088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 228u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 228u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 228u, 0x08991088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35678u) goto L_08A35678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35678: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x08A35684u); @@ -4054,8 +5196,21 @@ L_08A35684: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A35690u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 346u, 0x08A35690u, 0x08947470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 655u, 0x08947470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35690u) goto L_08A35690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35690: aot_gpr_31 = (0x08A35698u); goto L_08A364E8; @@ -4072,8 +5227,21 @@ L_08A356A4: aot_gpr_5 = (0u | 95u); aot_gpr_31 = (0x08A356B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 349u, 0x08A356B4u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A356B4u) goto L_08A356B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A356B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4093,8 +5261,8 @@ L_08A356C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A356D4: @@ -4143,8 +5311,21 @@ L_08A35768: goto L_08A3576C; L_08A3576C: aot_gpr_31 = (0x08A35774u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 357u, 0x08A35774u, 0x089BB298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 689u, 0x089BB298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35774u) goto L_08A35774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35774: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(1))); @@ -4174,8 +5355,21 @@ L_08A357B8: goto L_08A357BC; L_08A357BC: aot_gpr_31 = (0x08A357C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 361u, 0x08A357C4u, 0x089BAA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 554u, 0x089BAA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A357C4u) goto L_08A357C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A357C4: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(3), static_cast(aot_gpr_2)); aot_gpr_31 = (0x08A357D0u); @@ -4186,8 +5380,21 @@ L_08A357D0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A357DCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 363u, 0x08A357DCu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A357DCu) goto L_08A357DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A357DC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4229,8 +5436,21 @@ L_08A3581C: ctx.gpr[18] = (0u | 23u); aot_gpr_31 = (0x08A35828u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 369u, 0x08A35828u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35828u) goto L_08A35828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35828: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; if (branch_taken) { @@ -4270,8 +5490,21 @@ L_08A3584C: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08A3587Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 375u, 0x08A3587Cu, 0x0880D7F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 367u, 0x0880D7F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3587Cu) goto L_08A3587C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3587C: aot_gpr_31 = (0x08A35884u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B0C05C, 194u, 8u, 0x08B0C05Cu>(ctx, &aot_mem, ctx.pc, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[16], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0194_entry, 194u, 8u, 0x08B0C05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35884u) goto L_08A35884; @@ -4291,8 +5524,21 @@ L_08A35894: aot_gpr_4 = (aot_gpr_4 | 23593u); aot_gpr_31 = (0x08A358A4u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 379u, 0x08A358A4u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A358A4u) goto L_08A358A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A358A4: aot_gpr_5 = (17372u << 16u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -4320,8 +5566,21 @@ L_08A358CC: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A35900u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 381u, 0x08A35900u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35900u) goto L_08A35900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35900: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4332,8 +5591,21 @@ L_08A35900: L_08A35908: aot_gpr_31 = (0x08A35910u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 383u, 0x08A35910u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35910u) goto L_08A35910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35910: aot_gpr_5 = (17391u << 16u); ctx.fpr[22] = std::bit_cast(0u); @@ -4354,23 +5626,62 @@ L_08A35938: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A35950u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 385u, 0x08A35950u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35950u) goto L_08A35950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35950: aot_gpr_4 = (aot_gpr_2 + static_cast(4)); aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.fpr[26] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x08A35964u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 386u, 0x08A35964u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35964u) goto L_08A35964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35964: aot_gpr_4 = (17096u << 16u); ctx.fpr[20] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A35974u); ctx.fpr[26] = ctx.fpr[24] - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 387u, 0x08A35974u, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35974u) goto L_08A35974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35974: aot_fpr_15 = ctx.fpr[0] + ctx.fpr[20]; aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -4383,8 +5694,21 @@ L_08A35974: L_08A3598C: aot_gpr_31 = (0x08A35994u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 389u, 0x08A35994u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35994u) goto L_08A35994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35994: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -4396,8 +5720,21 @@ L_08A359A0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A359ACu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 391u, 0x08A359ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A359ACu) goto L_08A359AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A359AC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4421,8 +5758,21 @@ L_08A359C4: L_08A359CC: aot_gpr_31 = (0x08A359D4u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-6808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 396u, 0x08A359D4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A359D4u) goto L_08A359D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A359D4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -4438,12 +5788,38 @@ L_08A359E4: L_08A359EC: aot_gpr_31 = (0x08A359F4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 399u, 0x08A359F4u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A359F4u) goto L_08A359F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A359F4: aot_gpr_31 = (0x08A359FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 400u, 0x08A359FCu, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A359FCu) goto L_08A359FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A359FC: aot_fpr_15 = ctx.fpr[0] + ctx.fpr[20]; aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -4456,8 +5832,21 @@ L_08A359FC: L_08A35A14: aot_gpr_31 = (0x08A35A1Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 402u, 0x08A35A1Cu, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35A1Cu) goto L_08A35A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35A1C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 0u); @@ -4480,15 +5869,15 @@ L_08A35A2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A35A58: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(9892))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A35A60: @@ -4575,8 +5964,21 @@ L_08A35B18: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A35B24u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 413u, 0x08A35B24u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35B24u) goto L_08A35B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35B24: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4600,8 +6002,21 @@ L_08A35B40: aot_gpr_5 = (ctx.gpr[28] + static_cast(-6800)); aot_gpr_31 = (0x08A35B4Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 418u, 0x08A35B4Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35B4Cu) goto L_08A35B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35B4C: { const bool branch_taken = ctx.gpr[19] != aot_gpr_2; if (branch_taken) { @@ -4762,8 +6177,21 @@ L_08A35C68: goto L_08A35C78; L_08A35C78: aot_gpr_31 = (0x08A35C80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 439u, 0x08A35C80u, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35C80u) goto L_08A35C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35C80: aot_gpr_31 = (0x08A35C88u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35C88u) goto L_08A35C88; @@ -4774,8 +6202,21 @@ L_08A35C88: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08A35C9Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 441u, 0x08A35C9Cu, 0x088E4294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 15u, 0x088E4294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35C9Cu) goto L_08A35C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35C9C: aot_gpr_31 = (0x08A35CA4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35CA4u) goto L_08A35CA4; @@ -4786,8 +6227,21 @@ L_08A35CA4: aot_gpr_6 = (0u | 30000u); aot_gpr_31 = (0x08A35CB8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 443u, 0x08A35CB8u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35CB8u) goto L_08A35CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35CB8: aot_gpr_31 = (0x08A35CC0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35CC0u) goto L_08A35CC0; @@ -4796,8 +6250,21 @@ L_08A35CC0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A35CCCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 445u, 0x08A35CCCu, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35CCCu) goto L_08A35CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35CCC: aot_gpr_31 = (0x08A35CD4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35CD4u) goto L_08A35CD4; @@ -4806,12 +6273,38 @@ L_08A35CD4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A35CE0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 447u, 0x08A35CE0u, 0x089471E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 613u, 0x089471E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35CE0u) goto L_08A35CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35CE0: aot_gpr_31 = (0x08A35CE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 448u, 0x08A35CE8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35CE8u) goto L_08A35CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35CE8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4832,8 +6325,21 @@ L_08A35D00: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(3256)))))); aot_gpr_31 = (0x08A35D0Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 452u, 0x08A35D0Cu, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35D0Cu) goto L_08A35D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35D0C: aot_gpr_31 = (0x08A35D14u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35D14u) goto L_08A35D14; @@ -4889,8 +6395,21 @@ L_08A35D8C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A35D9Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 459u, 0x08A35D9Cu, 0x089083B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 66u, 0x089083B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35D9Cu) goto L_08A35D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35D9C: aot_gpr_31 = (0x08A35DA4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35DA4u) goto L_08A35DA4; @@ -4899,8 +6418,21 @@ L_08A35DA4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A35DB0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 461u, 0x08A35DB0u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35DB0u) goto L_08A35DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35DB0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(9940))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4914,8 +6446,21 @@ L_08A35DBC: aot_gpr_5 = (0u | 94u); aot_gpr_31 = (0x08A35DCCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 463u, 0x08A35DCCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35DCCu) goto L_08A35DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35DCC: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4932,8 +6477,8 @@ L_08A35DCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A35DFC: @@ -4964,8 +6509,21 @@ L_08A35E50: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08A35E5Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 466u, 0x08A35E5Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35E5Cu) goto L_08A35E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35E5C: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4989,8 +6547,21 @@ L_08A35E78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08A35E84u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-6800)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 471u, 0x08A35E84u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35E84u) goto L_08A35E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35E84: { const bool branch_taken = ctx.gpr[17] != aot_gpr_2; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8876))); @@ -5097,8 +6668,21 @@ L_08A35F58: goto L_08A35F68; L_08A35F68: aot_gpr_31 = (0x08A35F70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 484u, 0x08A35F70u, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35F70u) goto L_08A35F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35F70: aot_gpr_31 = (0x08A35F78u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35F78u) goto L_08A35F78; @@ -5116,8 +6700,21 @@ L_08A35F88: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08A35F9Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 487u, 0x08A35F9Cu, 0x088E4294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 15u, 0x088E4294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35F9Cu) goto L_08A35F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35F9C: aot_gpr_31 = (0x08A35FA4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35FA4u) goto L_08A35FA4; @@ -5128,8 +6725,21 @@ L_08A35FA4: aot_gpr_6 = (0u | 30000u); aot_gpr_31 = (0x08A35FB8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 489u, 0x08A35FB8u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35FB8u) goto L_08A35FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35FB8: aot_gpr_31 = (0x08A35FC0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35FC0u) goto L_08A35FC0; @@ -5138,8 +6748,21 @@ L_08A35FC0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8876))); aot_gpr_31 = (0x08A35FCCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 491u, 0x08A35FCCu, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35FCCu) goto L_08A35FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35FCC: aot_gpr_31 = (0x08A35FD4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35FD4u) goto L_08A35FD4; @@ -5148,12 +6771,38 @@ L_08A35FD4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8876))); aot_gpr_31 = (0x08A35FE0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 493u, 0x08A35FE0u, 0x089471E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 613u, 0x089471E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35FE0u) goto L_08A35FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35FE0: aot_gpr_31 = (0x08A35FE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 494u, 0x08A35FE8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A35FE8u) goto L_08A35FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A35FE8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5174,8 +6823,21 @@ L_08A36000: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(3256)))))); aot_gpr_31 = (0x08A3600Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 498u, 0x08A3600Cu, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3600Cu) goto L_08A3600C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3600C: aot_gpr_31 = (0x08A36014u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36014u) goto L_08A36014; @@ -5231,8 +6893,21 @@ L_08A3608C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A3609Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 505u, 0x08A3609Cu, 0x089083B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 66u, 0x089083B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3609Cu) goto L_08A3609C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3609C: aot_gpr_31 = (0x08A360A4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A360A4u) goto L_08A360A4; @@ -5241,8 +6916,21 @@ L_08A360A4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A360B0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 507u, 0x08A360B0u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A360B0u) goto L_08A360B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A360B0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(9940))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5256,8 +6944,21 @@ L_08A360BC: aot_gpr_5 = (0u | 94u); aot_gpr_31 = (0x08A360CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 509u, 0x08A360CCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A360CCu) goto L_08A360CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A360CC: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -5270,8 +6971,8 @@ L_08A360CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A360EC: @@ -5468,8 +7169,21 @@ L_08A361F8: aot_gpr_5 = (0u | 97u); aot_gpr_31 = (0x08A36214u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 536u, 0x08A36214u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36214u) goto L_08A36214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36214: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); goto L_08A36218; @@ -5533,8 +7247,8 @@ L_08A36288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A362AC: @@ -5542,8 +7256,8 @@ L_08A362AC: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9304), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A362BC: @@ -5608,8 +7322,21 @@ L_08A36318: aot_gpr_5 = (0u | 98u); aot_gpr_31 = (0x08A36334u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 551u, 0x08A36334u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36334u) goto L_08A36334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36334: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); goto L_08A36338; @@ -5695,8 +7422,8 @@ L_08A363B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A363C8: @@ -5704,8 +7431,8 @@ L_08A363C8: aot_gpr_2 = (aot_gpr_4 ^ 1u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A363D8: @@ -5732,8 +7459,8 @@ L_08A3640C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36418: @@ -5757,8 +7484,8 @@ L_08A36424: } L_08A36448: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36450: @@ -5768,8 +7495,8 @@ L_08A36450: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36468: @@ -5845,8 +7572,8 @@ L_08A364DC: goto L_08A364E0; L_08A364E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A364E8: @@ -5939,8 +7666,21 @@ L_08A36570: goto L_08A36580; L_08A36580: aot_gpr_31 = (0x08A36588u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 591u, 0x08A36588u, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36588u) goto L_08A36588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36588: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -5978,8 +7718,21 @@ L_08A365C8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); aot_gpr_31 = (0x08A365D4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 597u, 0x08A365D4u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A365D4u) goto L_08A365D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A365D4: aot_gpr_31 = (0x08A365DCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A365DCu) goto L_08A365DC; @@ -6018,8 +7771,21 @@ L_08A3661C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08A36630u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 603u, 0x08A36630u, 0x088E4294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 15u, 0x088E4294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36630u) goto L_08A36630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36630: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -6048,8 +7814,21 @@ L_08A36650: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A36664u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 608u, 0x08A36664u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36664u) goto L_08A36664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36664: aot_gpr_31 = (0x08A3666Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3666Cu) goto L_08A3666C; @@ -6058,12 +7837,38 @@ L_08A3666C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9932))); aot_gpr_31 = (0x08A36678u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 610u, 0x08A36678u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36678u) goto L_08A36678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36678: aot_gpr_31 = (0x08A36680u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 611u, 0x08A36680u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36680u) goto L_08A36680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36680: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6095,8 +7900,21 @@ L_08A366B8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(96))); aot_gpr_31 = (0x08A366C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 616u, 0x08A366C4u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A366C4u) goto L_08A366C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A366C4: aot_gpr_31 = (0x08A366CCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A366CCu) goto L_08A366CC; @@ -6127,8 +7945,21 @@ L_08A366F0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(3256)))))); aot_gpr_31 = (0x08A366FCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 622u, 0x08A366FCu, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A366FCu) goto L_08A366FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A366FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6155,8 +7986,21 @@ L_08A3671C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(3256)))))); aot_gpr_31 = (0x08A36728u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 627u, 0x08A36728u, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36728u) goto L_08A36728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36728: aot_gpr_31 = (0x08A36730u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36730u) goto L_08A36730; @@ -6176,8 +8020,21 @@ L_08A36738: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08A3675Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 630u, 0x08A3675Cu, 0x089471E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 613u, 0x089471E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3675Cu) goto L_08A3675C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3675C: aot_gpr_31 = (0x08A36764u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36764u) goto L_08A36764; @@ -6185,8 +8042,21 @@ L_08A3675C: L_08A36764: aot_gpr_31 = (0x08A3676Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 632u, 0x08A3676Cu, 0x089AB7C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 742u, 0x089AB7C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3676Cu) goto L_08A3676C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3676C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6198,12 +8068,38 @@ L_08A36774: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08A36780u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 634u, 0x08A36780u, 0x08A1BE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 588u, 0x08A1BE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36780u) goto L_08A36780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36780: aot_gpr_31 = (0x08A36788u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 635u, 0x08A36788u, 0x08A17A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 606u, 0x08A17A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36788u) goto L_08A36788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36788: aot_gpr_31 = (0x08A36790u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36790u) goto L_08A36790; @@ -6211,8 +8107,21 @@ L_08A36788: L_08A36790: aot_gpr_31 = (0x08A36798u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 637u, 0x08A36798u, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36798u) goto L_08A36798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36798: aot_gpr_31 = (0x08A367A0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A367A0u) goto L_08A367A0; @@ -6241,8 +8150,21 @@ L_08A367C4: L_08A367CC: aot_gpr_31 = (0x08A367D4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 642u, 0x08A367D4u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A367D4u) goto L_08A367D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A367D4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6254,8 +8176,8 @@ L_08A367D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A367F0: @@ -6537,14 +8459,40 @@ L_08A36A18: L_08A36A1C: aot_gpr_31 = (0x08A36A24u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 679u, 0x08A36A24u, 0x089BB298u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 689u, 0x089BB298u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36A24u) goto L_08A36A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36A24: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A36A30u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 680u, 0x08A36A30u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36A30u) goto L_08A36A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36A30: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_5 != 0u; @@ -6563,8 +8511,21 @@ L_08A36A44: L_08A36A48: aot_gpr_31 = (0x08A36A50u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 684u, 0x08A36A50u, 0x089BAA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 554u, 0x089BAA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36A50u) goto L_08A36A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36A50: aot_gpr_5 = (0u | 200u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(aot_gpr_5)); @@ -6579,8 +8540,21 @@ L_08A36A50: L_08A36A70: aot_gpr_31 = (0x08A36A78u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 686u, 0x08A36A78u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36A78u) goto L_08A36A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36A78: aot_gpr_5 = (17391u << 16u); ctx.fpr[20] = std::bit_cast(0u); @@ -6601,8 +8575,21 @@ L_08A36AA0: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A36AB8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 688u, 0x08A36AB8u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36AB8u) goto L_08A36AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36AB8: aot_gpr_4 = (aot_gpr_2 + static_cast(4)); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6613,8 +8600,21 @@ L_08A36AB8: aot_gpr_4 = (17136u << 16u); aot_gpr_31 = (0x08A36ADCu); ctx.fpr[26] = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 689u, 0x08A36ADCu, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36ADCu) goto L_08A36ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36ADC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_15 = ctx.fpr[0] + ctx.fpr[26]; @@ -6627,8 +8627,21 @@ L_08A36ADC: L_08A36AF4: aot_gpr_31 = (0x08A36AFCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 691u, 0x08A36AFCu, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36AFCu) goto L_08A36AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36AFC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 0u); @@ -6639,13 +8652,39 @@ L_08A36AFC: L_08A36B0C: aot_gpr_31 = (0x08A36B14u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 693u, 0x08A36B14u, 0x08B0C5C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 78u, 0x08B0C5C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36B14u) goto L_08A36B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36B14: aot_gpr_31 = (0x08A36B1Cu); ctx.fpr[22] = ctx.fpr[24] - ctx.fpr[22]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 694u, 0x08A36B1Cu, 0x08B0C580u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 75u, 0x08B0C580u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36B1Cu) goto L_08A36B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36B1C: aot_fpr_15 = ctx.fpr[0] + ctx.fpr[26]; aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6658,8 +8697,21 @@ L_08A36B1C: L_08A36B34: aot_gpr_31 = (0x08A36B3Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 696u, 0x08A36B3Cu, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36B3Cu) goto L_08A36B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36B3C: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -6673,8 +8725,21 @@ L_08A36B48: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08A36B54u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 698u, 0x08A36B54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36B54u) goto L_08A36B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36B54: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6699,8 +8764,21 @@ L_08A36B6C: L_08A36B78: aot_gpr_31 = (0x08A36B80u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 703u, 0x08A36B80u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36B80u) goto L_08A36B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36B80: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 0u); @@ -6747,8 +8825,21 @@ L_08A36BC8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A36BD4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 709u, 0x08A36BD4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36BD4u) goto L_08A36BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36BD4: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6773,8 +8864,21 @@ L_08A36BF4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-6760)); aot_gpr_31 = (0x08A36C00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 714u, 0x08A36C00u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36C00u) goto L_08A36C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36C00: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A36C0Cu); @@ -6854,8 +8958,8 @@ L_08A36C98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36CD0: @@ -6955,8 +9059,8 @@ L_08A36D84: L_08A36D88: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36D90: @@ -6973,8 +9077,21 @@ L_08A36D90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(100))); aot_gpr_31 = (0x08A36DC8u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 738u, 0x08A36DC8u, 0x08A89478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 278u, 0x08A89478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36DC8u) goto L_08A36DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36DC8: ctx.gpr[18] = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(4))); ctx.gpr[17] = (0u | 1u); @@ -7005,8 +9122,21 @@ L_08A36DF4: L_08A36DF8: aot_gpr_31 = (0x08A36E00u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 744u, 0x08A36E00u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36E00u) goto L_08A36E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36E00: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7019,8 +9149,21 @@ L_08A36E08: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(3)))))); aot_gpr_31 = (0x08A36E18u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 746u, 0x08A36E18u, 0x08A897C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 330u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 330u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 330u, 0x08A897C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36E18u) goto L_08A36E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36E18: ctx.gpr[17] = (ctx.gpr[17] + ctx.gpr[17]); ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); @@ -7036,8 +9179,21 @@ L_08A36E2C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(3)))))); aot_gpr_31 = (0x08A36E38u); aot_gpr_4 = (ctx.gpr[19] + static_cast(116)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 748u, 0x08A36E38u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36E38u) goto L_08A36E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36E38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(60))); aot_gpr_4 = (aot_gpr_4 + static_cast(40)); @@ -7052,8 +9208,21 @@ L_08A36E38: L_08A36E50: aot_gpr_31 = (0x08A36E58u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 750u, 0x08A36E58u, 0x08A89ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 371u, 0x08A89ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36E58u) goto L_08A36E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36E58: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7066,8 +9235,8 @@ L_08A36E58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36E78: @@ -7089,14 +9258,27 @@ L_08A36E78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A36EC0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 752u, 0x08A36EC0u, 0x089B8320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 35u, 0x089B8320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36EC0u) goto L_08A36EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36EC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36ECC: @@ -7129,8 +9311,8 @@ L_08A36F00: goto L_08A36F1C; L_08A36F1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36F24: @@ -7159,8 +9341,8 @@ L_08A36F3C: goto L_08A36F58; L_08A36F58: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A36F60: @@ -7186,8 +9368,21 @@ L_08A36F98: ctx.gpr[7] = (aot_mem.aot_direct_load_word_left(aot_gpr_6 + static_cast(10), ctx.gpr[7])); aot_gpr_31 = (0x08A36FA8u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 762u, 0x08A36FA8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36FA8u) goto L_08A36FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36FA8: aot_gpr_6 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_6 != 0u; @@ -7230,8 +9425,21 @@ L_08A36FDC: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A36FE8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 768u, 0x08A36FE8u, 0x089AC664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 80u, 0x089AC664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A36FE8u) goto L_08A36FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A36FE8: ctx.gpr[17] = (0u | 0u); goto L_08A36FEC; @@ -7259,8 +9467,21 @@ L_08A3700C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A3701Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 773u, 0x08A3701Cu, 0x089AC664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 80u, 0x089AC664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3701Cu) goto L_08A3701C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3701C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 8 ? 1u : 0u); @@ -7279,8 +9500,8 @@ L_08A3702C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37040: @@ -7305,8 +9526,21 @@ L_08A37074: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(7), aot_gpr_6)); aot_gpr_31 = (0x08A37080u); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(10), aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 777u, 0x08A37080u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37080u) goto L_08A37080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37080: aot_gpr_5 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -7370,8 +9604,8 @@ L_08A370D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A370E0: @@ -7396,8 +9630,21 @@ L_08A37114: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(7), aot_gpr_6)); aot_gpr_31 = (0x08A37120u); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(10), aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 788u, 0x08A37120u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37120u) goto L_08A37120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37120: aot_gpr_5 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -7445,8 +9692,8 @@ L_08A3715C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3716C: @@ -7475,8 +9722,21 @@ L_08A371A0: aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(10), aot_gpr_6)); aot_gpr_31 = (0x08A371BCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 797u, 0x08A371BCu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A371BCu) goto L_08A371BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A371BC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7507,8 +9767,21 @@ L_08A371E0: L_08A371EC: aot_gpr_31 = (0x08A371F4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 801u, 0x08A371F4u, 0x089F79E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 704u, 0x089F79E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A371F4u) goto L_08A371F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A371F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7538,8 +9811,21 @@ L_08A37214: L_08A37220: aot_gpr_31 = (0x08A37228u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 805u, 0x08A37228u, 0x08AA5240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 178u, 0x08AA5240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37228u) goto L_08A37228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37228: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7555,8 +9841,21 @@ L_08A37230: aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(10), aot_gpr_6)); aot_gpr_31 = (0x08A3724Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 807u, 0x08A3724Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3724Cu) goto L_08A3724C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3724C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7586,23 +9885,75 @@ L_08A37270: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A37280u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1752), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 811u, 0x08A37280u, 0x088327B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 576u, 0x088327B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37280u) goto L_08A37280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37280: aot_gpr_31 = (0x08A37288u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 812u, 0x08A37288u, 0x088331D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 711u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 711u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 711u, 0x088331D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37288u) goto L_08A37288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37288: aot_gpr_31 = (0x08A37290u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 813u, 0x08A37290u, 0x08832FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 681u, 0x08832FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37290u) goto L_08A37290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37290: aot_gpr_31 = (0x08A37298u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 814u, 0x08A37298u, 0x088330BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 696u, 0x088330BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37298u) goto L_08A37298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37298: aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -7619,8 +9970,21 @@ L_08A372A8: } L_08A372B4: aot_gpr_31 = (0x08A372BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 817u, 0x08A372BCu, 0x089F79E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 704u, 0x089F79E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A372BCu) goto L_08A372BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A372BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7633,8 +9997,21 @@ L_08A372C4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A372D4u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1400), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 819u, 0x08A372D4u, 0x08A5959Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 311u, 0x08A5959Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A372D4u) goto L_08A372D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A372D4: aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (ctx.gpr[16] | 0u); @@ -7651,8 +10028,21 @@ L_08A372E4: } L_08A372F0: aot_gpr_31 = (0x08A372F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 822u, 0x08A372F8u, 0x08AA5240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 178u, 0x08AA5240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A372F8u) goto L_08A372F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A372F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(632))); aot_gpr_4 = (0u | 1u); @@ -7664,8 +10054,8 @@ L_08A37308: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37318: @@ -7691,8 +10081,21 @@ L_08A3734C: ctx.gpr[7] = (aot_mem.aot_direct_load_word_left(aot_gpr_6 + static_cast(10), ctx.gpr[7])); aot_gpr_31 = (0x08A3735Cu); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 826u, 0x08A3735Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3735Cu) goto L_08A3735C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3735C: aot_gpr_6 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_6 != 0u; @@ -7735,8 +10138,21 @@ L_08A37390: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A3739Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 832u, 0x08A3739Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3739Cu) goto L_08A3739C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3739C: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -7761,8 +10177,8 @@ L_08A373C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A373D0: @@ -7787,8 +10203,21 @@ L_08A37404: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(7), aot_gpr_6)); aot_gpr_31 = (0x08A37410u); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(10), aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 837u, 0x08A37410u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37410u) goto L_08A37410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37410: aot_gpr_5 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -7841,8 +10270,8 @@ L_08A37460: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37470: @@ -7857,21 +10286,60 @@ L_08A37470: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3749Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 845u, 0x08A3749Cu, 0x08ADD694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 378u, 0x08ADD694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3749Cu) goto L_08A3749C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3749C: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08A374A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 846u, 0x08A374A8u, 0x08ADD69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 379u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 379u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 379u, 0x08ADD69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A374A8u) goto L_08A374A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A374A8: aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(5), aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(8), aot_gpr_5)); aot_gpr_31 = (0x08A374B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 847u, 0x08A374B8u, 0x08ADD6A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 380u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 380u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 380u, 0x08ADD6A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A374B8u) goto L_08A374B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A374B8: aot_gpr_4 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(9), aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(12), aot_gpr_4)); @@ -7889,8 +10357,8 @@ L_08A374B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A374EC: @@ -7902,14 +10370,27 @@ L_08A374EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A3750Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 849u, 0x08A3750Cu, 0x08ADD720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 392u, 0x08ADD720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3750Cu) goto L_08A3750C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3750C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37518: @@ -7920,14 +10401,27 @@ L_08A37518: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A37534u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 851u, 0x08A37534u, 0x08ADDA1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 439u, 0x08ADDA1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37534u) goto L_08A37534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37534: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37540: @@ -7946,8 +10440,21 @@ L_08A37540: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08A37584u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 853u, 0x08A37584u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37584u) goto L_08A37584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37584: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7981,8 +10488,21 @@ L_08A375A8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x08A375B8u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 858u, 0x08A375B8u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A375B8u) goto L_08A375B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A375B8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8011,8 +10531,21 @@ L_08A375D8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A375E4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 862u, 0x08A375E4u, 0x0888F948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 557u, 0x0888F948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A375E4u) goto L_08A375E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A375E4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8024,8 +10557,8 @@ L_08A375E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37600: @@ -8078,8 +10611,21 @@ L_08A37600: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A376E8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 864u, 0x08A376E8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A376E8u) goto L_08A376E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A376E8: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -8113,8 +10659,21 @@ L_08A3770C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(0)))))); aot_gpr_31 = (0x08A3771Cu); ctx.gpr[23] = (ctx.gpr[21] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 869u, 0x08A3771Cu, 0x089F71F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 597u, 0x089F71F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3771Cu) goto L_08A3771C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3771C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -8182,8 +10741,21 @@ L_08A37744: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A37778u); ctx.gpr[10] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 874u, 0x08A37778u, 0x089F933Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 164u, 0x089F933Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37778u) goto L_08A37778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37778: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); @@ -8199,8 +10771,8 @@ L_08A37778: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A377A4: @@ -8218,8 +10790,21 @@ L_08A377A4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A377E8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 876u, 0x08A377E8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A377E8u) goto L_08A377E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A377E8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -8254,8 +10839,21 @@ L_08A3780C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x08A3781Cu); ctx.gpr[18] = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 881u, 0x08A3781Cu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3781Cu) goto L_08A3781C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3781C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -8310,8 +10908,8 @@ L_08A37854: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37870: @@ -8339,8 +10937,21 @@ L_08A37870: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A378E0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 889u, 0x08A378E0u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A378E0u) goto L_08A378E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A378E0: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -8356,8 +10967,21 @@ L_08A378EC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x08A37900u); ctx.gpr[18] = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 891u, 0x08A37900u, 0x08AACA60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 139u, 0x08AACA60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37900u) goto L_08A37900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37900: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -8455,8 +11079,21 @@ L_08A37988: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x08A3799Cu); ctx.gpr[18] = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 903u, 0x08A3799Cu, 0x08AA4980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 71u, 0x08AA4980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3799Cu) goto L_08A3799C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3799C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -8531,8 +11168,8 @@ L_08A379F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37A10: @@ -8552,8 +11189,21 @@ L_08A37A10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A37A50u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 913u, 0x08A37A50u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37A50u) goto L_08A37A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37A50: aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(11), aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(14), aot_gpr_5)); @@ -8561,8 +11211,21 @@ L_08A37A50: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08A37A68u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 914u, 0x08A37A68u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37A68u) goto L_08A37A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37A68: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8588,8 +11251,21 @@ L_08A37A80: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x08A37A94u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 918u, 0x08A37A94u, 0x08AACA60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 139u, 0x08AACA60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37A94u) goto L_08A37A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37A94: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8690,8 +11366,21 @@ L_08A37B24: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x08A37B38u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 930u, 0x08A37B38u, 0x08AA4980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 71u, 0x08AA4980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37B38u) goto L_08A37B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37B38: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8770,8 +11459,8 @@ L_08A37B9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37BB8: @@ -8789,8 +11478,21 @@ L_08A37BB8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(40), aot_run_words); } aot_gpr_31 = (0x08A37BF4u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 940u, 0x08A37BF4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37BF4u) goto L_08A37BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37BF4: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -8805,8 +11507,21 @@ L_08A37C00: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x08A37C14u); ctx.gpr[19] = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 942u, 0x08A37C14u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37C14u) goto L_08A37C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37C14: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8865,8 +11580,21 @@ L_08A37C38: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A37CC4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 946u, 0x08A37CC4u, 0x08B02610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 626u, 0x08B02610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37CC4u) goto L_08A37CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37CC4: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -8878,8 +11606,8 @@ L_08A37CC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37CE0: @@ -8904,8 +11632,21 @@ L_08A37D14: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[16] + static_cast(7), aot_gpr_6)); aot_gpr_31 = (0x08A37D20u); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[16] + static_cast(10), aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 949u, 0x08A37D20u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37D20u) goto L_08A37D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37D20: aot_gpr_5 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -8958,8 +11699,8 @@ L_08A37D70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37D80: @@ -8983,8 +11724,21 @@ L_08A37DB0: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08A37DBCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 959u, 0x08A37DBCu, 0x08ADDEE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 508u, 0x08ADDEE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37DBCu) goto L_08A37DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37DBC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9014,15 +11768,28 @@ L_08A37DC8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A37E1Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 961u, 0x08A37E1Cu, 0x08ADDD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 492u, 0x08ADDD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37E1Cu) goto L_08A37E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37E1C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37E2C: @@ -9032,8 +11799,8 @@ L_08A37E2C: aot_gpr_5 = (aot_gpr_5 + static_cast(-28736)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(142), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A37E44: @@ -9048,8 +11815,21 @@ L_08A37E44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08A37E74u); ctx.gpr[16] = (ctx.gpr[16] + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 964u, 0x08A37E74u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37E74u) goto L_08A37E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37E74: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9090,8 +11870,21 @@ L_08A37EC0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A37ED0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 969u, 0x08A37ED0u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37ED0u) goto L_08A37ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37ED0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -9120,8 +11913,21 @@ L_08A37EF4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A37F04u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 973u, 0x08A37F04u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37F04u) goto L_08A37F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37F04: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9161,8 +11967,21 @@ L_08A37F4C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A37F5Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 978u, 0x08A37F5Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37F5Cu) goto L_08A37F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37F5C: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -9191,8 +12010,21 @@ L_08A37F80: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A37F90u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 982u, 0x08A37F90u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37F90u) goto L_08A37F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37F90: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9232,8 +12064,21 @@ L_08A37FD8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A37FE8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0140->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0140_entry, 987u, 0x08A37FE8u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A37FE8u) goto L_08A37FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A37FE8: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[17] == 0u; diff --git a/profiles/vcs/generated/generated_unit_0141.cpp b/profiles/vcs/generated/generated_unit_0141.cpp index 945702d..6227dd4 100644 --- a/profiles/vcs/generated/generated_unit_0141.cpp +++ b/profiles/vcs/generated/generated_unit_0141.cpp @@ -964,6 +964,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A38004u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -987,8 +1011,21 @@ L_08A3800C: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A3801Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 3u, 0x08A3801Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3801Cu) goto L_08A3801C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3801C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1028,8 +1065,21 @@ L_08A38064: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38074u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 8u, 0x08A38074u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38074u) goto L_08A38074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38074: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1058,8 +1108,21 @@ L_08A38098: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A380A8u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 12u, 0x08A380A8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A380A8u) goto L_08A380A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A380A8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1099,8 +1162,21 @@ L_08A380F0: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38100u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 17u, 0x08A38100u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38100u) goto L_08A38100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38100: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1129,8 +1205,21 @@ L_08A38124: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38134u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 21u, 0x08A38134u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38134u) goto L_08A38134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38134: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1170,8 +1259,21 @@ L_08A3817C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A3818Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 26u, 0x08A3818Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3818Cu) goto L_08A3818C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3818C: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1200,8 +1302,21 @@ L_08A381B0: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A381C0u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 30u, 0x08A381C0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A381C0u) goto L_08A381C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A381C0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1241,8 +1356,21 @@ L_08A38208: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38218u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 35u, 0x08A38218u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38218u) goto L_08A38218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38218: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1271,8 +1399,21 @@ L_08A3823C: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A3824Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 39u, 0x08A3824Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3824Cu) goto L_08A3824C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3824C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1312,8 +1453,21 @@ L_08A38294: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A382A4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 44u, 0x08A382A4u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A382A4u) goto L_08A382A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A382A4: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1342,8 +1496,21 @@ L_08A382C8: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A382D8u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 48u, 0x08A382D8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A382D8u) goto L_08A382D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A382D8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1383,8 +1550,21 @@ L_08A38320: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38330u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 53u, 0x08A38330u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38330u) goto L_08A38330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38330: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1413,8 +1593,21 @@ L_08A38354: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38364u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 57u, 0x08A38364u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38364u) goto L_08A38364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38364: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1454,8 +1647,21 @@ L_08A383AC: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A383BCu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 62u, 0x08A383BCu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A383BCu) goto L_08A383BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A383BC: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1484,8 +1690,21 @@ L_08A383E0: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A383F0u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 66u, 0x08A383F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A383F0u) goto L_08A383F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A383F0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1525,8 +1744,21 @@ L_08A38438: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38448u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 71u, 0x08A38448u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38448u) goto L_08A38448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38448: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1555,8 +1787,21 @@ L_08A3846C: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A3847Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 75u, 0x08A3847Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3847Cu) goto L_08A3847C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3847C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1596,8 +1841,21 @@ L_08A384C4: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A384D4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 80u, 0x08A384D4u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A384D4u) goto L_08A384D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A384D4: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1626,8 +1884,21 @@ L_08A384F8: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38508u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 84u, 0x08A38508u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38508u) goto L_08A38508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38508: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1667,8 +1938,21 @@ L_08A38550: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38560u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 89u, 0x08A38560u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38560u) goto L_08A38560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38560: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1697,8 +1981,21 @@ L_08A38584: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38594u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 93u, 0x08A38594u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38594u) goto L_08A38594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38594: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1738,8 +2035,21 @@ L_08A385DC: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A385ECu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 98u, 0x08A385ECu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A385ECu) goto L_08A385EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A385EC: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1768,8 +2078,21 @@ L_08A38610: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38620u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 102u, 0x08A38620u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38620u) goto L_08A38620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38620: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1809,8 +2132,21 @@ L_08A38668: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38678u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 107u, 0x08A38678u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38678u) goto L_08A38678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38678: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1839,8 +2175,21 @@ L_08A3869C: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A386ACu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 111u, 0x08A386ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A386ACu) goto L_08A386AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A386AC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1880,8 +2229,21 @@ L_08A386F4: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38704u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 116u, 0x08A38704u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38704u) goto L_08A38704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38704: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1910,8 +2272,21 @@ L_08A38728: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38738u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 120u, 0x08A38738u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38738u) goto L_08A38738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38738: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1951,8 +2326,21 @@ L_08A38780: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38790u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 125u, 0x08A38790u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38790u) goto L_08A38790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38790: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1981,8 +2369,21 @@ L_08A387B4: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A387C4u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 129u, 0x08A387C4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A387C4u) goto L_08A387C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A387C4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2022,8 +2423,21 @@ L_08A3880C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A3881Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 134u, 0x08A3881Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3881Cu) goto L_08A3881C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3881C: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2052,8 +2466,21 @@ L_08A38840: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38850u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 138u, 0x08A38850u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38850u) goto L_08A38850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38850: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2093,8 +2520,21 @@ L_08A38898: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A388A8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 143u, 0x08A388A8u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A388A8u) goto L_08A388A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A388A8: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2123,8 +2563,21 @@ L_08A388CC: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A388DCu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 147u, 0x08A388DCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A388DCu) goto L_08A388DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A388DC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2164,8 +2617,21 @@ L_08A38924: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38934u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 152u, 0x08A38934u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38934u) goto L_08A38934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38934: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2194,8 +2660,21 @@ L_08A38958: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38968u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 156u, 0x08A38968u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38968u) goto L_08A38968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38968: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2235,8 +2714,21 @@ L_08A389B0: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A389C0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 161u, 0x08A389C0u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A389C0u) goto L_08A389C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A389C0: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2265,8 +2757,21 @@ L_08A389E4: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A389F4u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 165u, 0x08A389F4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A389F4u) goto L_08A389F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A389F4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2306,8 +2811,21 @@ L_08A38A3C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38A4Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 170u, 0x08A38A4Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38A4Cu) goto L_08A38A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38A4C: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2336,8 +2854,21 @@ L_08A38A70: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38A80u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 174u, 0x08A38A80u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38A80u) goto L_08A38A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38A80: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2377,8 +2908,21 @@ L_08A38AC8: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38AD8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 179u, 0x08A38AD8u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38AD8u) goto L_08A38AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38AD8: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2407,8 +2951,21 @@ L_08A38AFC: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38B0Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 183u, 0x08A38B0Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38B0Cu) goto L_08A38B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38B0C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2448,8 +3005,21 @@ L_08A38B54: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38B64u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 188u, 0x08A38B64u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38B64u) goto L_08A38B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38B64: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2478,8 +3048,21 @@ L_08A38B88: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38B98u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 192u, 0x08A38B98u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38B98u) goto L_08A38B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38B98: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2519,8 +3102,21 @@ L_08A38BE0: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38BF0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 197u, 0x08A38BF0u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38BF0u) goto L_08A38BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38BF0: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2549,8 +3145,21 @@ L_08A38C14: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38C24u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 201u, 0x08A38C24u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38C24u) goto L_08A38C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38C24: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2590,8 +3199,21 @@ L_08A38C6C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38C7Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 206u, 0x08A38C7Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38C7Cu) goto L_08A38C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38C7C: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2620,8 +3242,21 @@ L_08A38CA0: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38CB0u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 210u, 0x08A38CB0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38CB0u) goto L_08A38CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38CB0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2661,8 +3296,21 @@ L_08A38CF8: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38D08u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 215u, 0x08A38D08u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38D08u) goto L_08A38D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38D08: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2691,8 +3339,21 @@ L_08A38D2C: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38D3Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 219u, 0x08A38D3Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38D3Cu) goto L_08A38D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38D3C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2732,8 +3393,21 @@ L_08A38D84: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38D94u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 224u, 0x08A38D94u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38D94u) goto L_08A38D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38D94: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2762,8 +3436,21 @@ L_08A38DB8: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38DC8u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 228u, 0x08A38DC8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38DC8u) goto L_08A38DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38DC8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2803,8 +3490,21 @@ L_08A38E10: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38E20u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 233u, 0x08A38E20u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38E20u) goto L_08A38E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38E20: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2833,8 +3533,21 @@ L_08A38E44: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38E54u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 237u, 0x08A38E54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38E54u) goto L_08A38E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38E54: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2874,8 +3587,21 @@ L_08A38E9C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38EACu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 242u, 0x08A38EACu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38EACu) goto L_08A38EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38EAC: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2904,8 +3630,21 @@ L_08A38ED0: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38EE0u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 246u, 0x08A38EE0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38EE0u) goto L_08A38EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38EE0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2945,8 +3684,21 @@ L_08A38F28: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38F38u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 251u, 0x08A38F38u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38F38u) goto L_08A38F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38F38: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2975,8 +3727,21 @@ L_08A38F5C: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38F6Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 255u, 0x08A38F6Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38F6Cu) goto L_08A38F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38F6C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3016,8 +3781,21 @@ L_08A38FB4: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A38FC4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 260u, 0x08A38FC4u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38FC4u) goto L_08A38FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38FC4: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3046,8 +3824,21 @@ L_08A38FE8: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A38FF8u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 264u, 0x08A38FF8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A38FF8u) goto L_08A38FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A38FF8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3087,8 +3878,21 @@ L_08A39040: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39050u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 269u, 0x08A39050u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39050u) goto L_08A39050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39050: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3117,8 +3921,21 @@ L_08A39074: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A39084u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 273u, 0x08A39084u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39084u) goto L_08A39084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39084: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3158,8 +3975,21 @@ L_08A390CC: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A390DCu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 278u, 0x08A390DCu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A390DCu) goto L_08A390DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A390DC: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3188,8 +4018,21 @@ L_08A39100: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A39110u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 282u, 0x08A39110u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39110u) goto L_08A39110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39110: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3229,8 +4072,21 @@ L_08A39158: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39168u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 287u, 0x08A39168u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39168u) goto L_08A39168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39168: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3259,8 +4115,21 @@ L_08A3918C: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A3919Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 291u, 0x08A3919Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3919Cu) goto L_08A3919C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3919C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3300,8 +4169,21 @@ L_08A391E4: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A391F4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 296u, 0x08A391F4u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A391F4u) goto L_08A391F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A391F4: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3330,8 +4212,21 @@ L_08A39218: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A39228u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 300u, 0x08A39228u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39228u) goto L_08A39228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39228: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3371,8 +4266,21 @@ L_08A39270: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39280u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 305u, 0x08A39280u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39280u) goto L_08A39280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39280: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3401,8 +4309,21 @@ L_08A392A4: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A392B4u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 309u, 0x08A392B4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A392B4u) goto L_08A392B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A392B4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3442,8 +4363,21 @@ L_08A392FC: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A3930Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 314u, 0x08A3930Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3930Cu) goto L_08A3930C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3930C: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3472,8 +4406,21 @@ L_08A39330: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A39340u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 318u, 0x08A39340u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39340u) goto L_08A39340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39340: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3513,8 +4460,21 @@ L_08A39388: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39398u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 323u, 0x08A39398u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39398u) goto L_08A39398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39398: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3543,8 +4503,21 @@ L_08A393BC: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A393CCu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 327u, 0x08A393CCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A393CCu) goto L_08A393CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A393CC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3584,8 +4557,21 @@ L_08A39414: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39424u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 332u, 0x08A39424u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39424u) goto L_08A39424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39424: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3614,8 +4600,21 @@ L_08A39448: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A39458u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 336u, 0x08A39458u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39458u) goto L_08A39458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39458: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3655,8 +4654,21 @@ L_08A394A0: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A394B0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 341u, 0x08A394B0u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A394B0u) goto L_08A394B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A394B0: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3685,8 +4697,21 @@ L_08A394D4: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A394E4u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 345u, 0x08A394E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A394E4u) goto L_08A394E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A394E4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3726,8 +4751,21 @@ L_08A3952C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A3953Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 350u, 0x08A3953Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3953Cu) goto L_08A3953C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3953C: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3756,8 +4794,21 @@ L_08A39560: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A39570u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 354u, 0x08A39570u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39570u) goto L_08A39570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39570: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3797,8 +4848,21 @@ L_08A395B8: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A395C8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 359u, 0x08A395C8u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A395C8u) goto L_08A395C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A395C8: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3827,8 +4891,21 @@ L_08A395EC: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A395FCu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 363u, 0x08A395FCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A395FCu) goto L_08A395FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A395FC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3868,8 +4945,21 @@ L_08A39644: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39654u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 368u, 0x08A39654u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39654u) goto L_08A39654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39654: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3898,8 +4988,21 @@ L_08A39678: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A39688u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 372u, 0x08A39688u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39688u) goto L_08A39688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39688: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3939,8 +5042,21 @@ L_08A396D0: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A396E0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 377u, 0x08A396E0u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A396E0u) goto L_08A396E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A396E0: aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3969,8 +5085,21 @@ L_08A39704: aot_gpr_18 = (0u | 0u); ctx.gpr[31] = (0x08A39714u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 381u, 0x08A39714u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39714u) goto L_08A39714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39714: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4010,8 +5139,21 @@ L_08A3975C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A3976Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 386u, 0x08A3976Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3976Cu) goto L_08A3976C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3976C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4046,8 +5188,8 @@ L_08A39790: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A397AC: @@ -4225,8 +5367,8 @@ L_08A397AC: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[7]); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39A64: @@ -4252,8 +5394,21 @@ L_08A39A88: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39AA0u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 394u, 0x08A39AA0u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39AA0u) goto L_08A39AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39AA0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(300), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4261,8 +5416,21 @@ L_08A39AA0: aot_gpr_6 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39AB8u); ctx.gpr[7] = (8u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 395u, 0x08A39AB8u, 0x08ABE3E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 485u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 485u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 485u, 0x08ABE3E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39AB8u) goto L_08A39AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39AB8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4272,8 +5440,8 @@ L_08A39AB8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39ACC: @@ -4290,16 +5458,29 @@ L_08A39ACC: L_08A39AEC: ctx.gpr[31] = (0x08A39AF4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 398u, 0x08A39AF4u, 0x08ABE564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 500u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 500u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 500u, 0x08ABE564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39AF4u) goto L_08A39AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39AF4: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(300), 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39B08: @@ -4308,8 +5489,21 @@ L_08A39B08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08A39B1Cu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 400u, 0x08A39B1Cu, 0x08ABE3BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 484u, 0x08ABE3BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39B1Cu) goto L_08A39B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39B1C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(300), 0u); ctx.gpr[2] = (ctx.gpr[16] | 0u); @@ -4317,8 +5511,8 @@ L_08A39B1C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39B34: @@ -4332,8 +5526,8 @@ L_08A39B48: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39B54: @@ -4356,15 +5550,15 @@ L_08A39B68: goto L_08A39B6C; L_08A39B6C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39B74: jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39B7C: @@ -4444,8 +5638,21 @@ L_08A39C04: } L_08A39C0C: ctx.gpr[31] = (0x08A39C14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 417u, 0x08A39C14u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39C14u) goto L_08A39C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39C14: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4515,8 +5722,8 @@ L_08A39C5C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39C74: @@ -4549,8 +5756,21 @@ L_08A39CB4: aot_gpr_6 = (aot_gpr_6 >> 5u); ctx.gpr[31] = (0x08A39CE0u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 429u, 0x08A39CE0u, 0x088201D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 26u, 0x088201D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39CE0u) goto L_08A39CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39CE0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -4559,8 +5779,21 @@ L_08A39CE0: ctx.gpr[8] = (0u | 0u); ctx.gpr[31] = (0x08A39CFCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 430u, 0x08A39CFCu, 0x08820850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 115u, 0x08820850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39CFCu) goto L_08A39CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39CFC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4570,8 +5803,8 @@ L_08A39CFC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39D10: @@ -4597,8 +5830,8 @@ L_08A39D1C: goto L_08A39D48; L_08A39D48: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39D50: @@ -4615,8 +5848,21 @@ L_08A39D50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[31]); ctx.gpr[31] = (0x08A39D84u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 435u, 0x08A39D84u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39D84u) goto L_08A39D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39D84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); @@ -4667,8 +5913,21 @@ L_08A39DC8: L_08A39DD0: ctx.gpr[31] = (0x08A39DD8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 442u, 0x08A39DD8u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39DD8u) goto L_08A39DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39DD8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4690,8 +5949,21 @@ L_08A39DE8: aot_gpr_6 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A39DFCu); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 445u, 0x08A39DFCu, 0x088230BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 576u, 0x088230BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39DFCu) goto L_08A39DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39DFC: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4703,8 +5975,8 @@ L_08A39DFC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39E18: @@ -4717,8 +5989,8 @@ L_08A39E28: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39E34: @@ -4727,8 +5999,21 @@ L_08A39E34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08A39E48u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 449u, 0x08A39E48u, 0x0881E6E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 424u, 0x0881E6E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39E48u) goto L_08A39E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39E48: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29640)); @@ -4745,8 +6030,8 @@ L_08A39E68: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A39E7C: @@ -4811,8 +6096,21 @@ L_08A39F50: aot_gpr_6 = (aot_gpr_29 + static_cast(80)); ctx.gpr[31] = (0x08A39F60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 455u, 0x08A39F60u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39F60u) goto L_08A39F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39F60: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(80))); @@ -4889,8 +6187,21 @@ L_08A39FBC: aot_gpr_6 = (aot_gpr_29 + static_cast(112)); ctx.gpr[31] = (0x08A39FCCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 459u, 0x08A39FCCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A39FCCu) goto L_08A39FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A39FCC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(112))); @@ -5229,8 +6540,21 @@ L_08A3A1CC: } L_08A3A1DC: ctx.gpr[31] = (0x08A3A1E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 481u, 0x08A3A1E4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A1E4u) goto L_08A3A1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A1E4: { const bool branch_taken = 0u == 0u; aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -5242,16 +6566,42 @@ L_08A3A1E4: L_08A3A1EC: ctx.gpr[31] = (0x08A3A1F4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 483u, 0x08A3A1F4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A1F4u) goto L_08A3A1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A1F4: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(2256), std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x08A3A208u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 484u, 0x08A3A208u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A208u) goto L_08A3A208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A208: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(164), aot_run_words); @@ -5273,8 +6623,8 @@ L_08A3A208: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A24C: @@ -5496,8 +6846,8 @@ L_08A3A3E8: goto L_08A3A3FC; L_08A3A3FC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A404: @@ -5524,8 +6874,21 @@ L_08A3A434: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A3A44Cu); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 512u, 0x08A3A44Cu, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A44Cu) goto L_08A3A44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A44C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); @@ -5533,8 +6896,21 @@ L_08A3A44C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_5); ctx.gpr[31] = (0x08A3A464u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 513u, 0x08A3A464u, 0x0881E7E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 426u, 0x0881E7E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A464u) goto L_08A3A464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A464: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -5544,8 +6920,8 @@ L_08A3A464: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A478: @@ -5565,8 +6941,8 @@ L_08A3A478: ctx.gpr[2] = (aot_gpr_4 & 7u); jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[2] & 65535u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A4C0: @@ -5593,8 +6969,8 @@ L_08A3A4C0: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(40), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A524: @@ -5605,8 +6981,21 @@ L_08A3A524: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08A3A540u); aot_gpr_17 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 517u, 0x08A3A540u, 0x0881FF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 726u, 0x0881FF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A540u) goto L_08A3A540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A540: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_gpr_5 = (65535u << 16u); @@ -5640,8 +7029,21 @@ L_08A3A57C: L_08A3A58C: ctx.gpr[31] = (0x08A3A594u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 521u, 0x08A3A594u, 0x0881FA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 664u, 0x0881FA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A594u) goto L_08A3A594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A594: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5676,8 +7078,21 @@ L_08A3A5BC: L_08A3A5D4: ctx.gpr[31] = (0x08A3A5DCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 525u, 0x08A3A5DCu, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A5DCu) goto L_08A3A5DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A5DC: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -5705,8 +7120,8 @@ L_08A3A5F8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A61C: @@ -5719,8 +7134,21 @@ L_08A3A61C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } ctx.gpr[31] = (0x08A3A648u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 529u, 0x08A3A648u, 0x0881F7A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 620u, 0x0881F7A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A648u) goto L_08A3A648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A648: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); @@ -5729,8 +7157,21 @@ L_08A3A648: ctx.gpr[19] = (aot_gpr_4 + ctx.gpr[19]); ctx.gpr[31] = (0x08A3A664u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 530u, 0x08A3A664u, 0x0881E21Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 344u, 0x0881E21Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A664u) goto L_08A3A664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A664: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_18 = (0u | 1u); @@ -5756,8 +7197,21 @@ L_08A3A690: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A3A69Cu); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 533u, 0x08A3A69Cu, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A69Cu) goto L_08A3A69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A69C: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); @@ -5778,8 +7232,21 @@ L_08A3A6A4: L_08A3A6B4: ctx.gpr[31] = (0x08A3A6BCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 536u, 0x08A3A6BCu, 0x0881E21Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 344u, 0x0881E21Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A6BCu) goto L_08A3A6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A6BC: { const bool branch_taken = aot_gpr_18 != ctx.gpr[2]; if (branch_taken) { @@ -5792,8 +7259,21 @@ L_08A3A6C4: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A3A6D4u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 538u, 0x08A3A6D4u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A6D4u) goto L_08A3A6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A6D4: ctx.gpr[20] = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); goto L_08A3A6D8; @@ -5801,15 +7281,41 @@ L_08A3A6D8: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A3A6E4u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 540u, 0x08A3A6E4u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A6E4u) goto L_08A3A6E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A6E4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A3A6F4u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 541u, 0x08A3A6F4u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A6F4u) goto L_08A3A6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A6F4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5845,8 +7351,8 @@ L_08A3A734: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A754: @@ -5952,8 +7458,8 @@ L_08A3A81C: goto L_08A3A820; L_08A3A820: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A828: @@ -5981,8 +7487,8 @@ L_08A3A84C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6216))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A864: @@ -6075,8 +7581,8 @@ L_08A3A8E0: goto L_08A3A8E4; L_08A3A8E4: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A8EC: @@ -6107,8 +7613,21 @@ L_08A3A934: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A3A940u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 572u, 0x08A3A940u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A940u) goto L_08A3A940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A940: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(13))); aot_gpr_18 = (aot_gpr_18 + static_cast(1)); @@ -6133,8 +7652,8 @@ L_08A3A958: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3A97C: @@ -6157,8 +7676,21 @@ L_08A3A9A8: ctx.gpr[20] = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x08A3A9C8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 576u, 0x08A3A9C8u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3A9C8u) goto L_08A3A9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3A9C8: ctx.gpr[19] = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(13))); aot_gpr_18 = (0u | 0u); @@ -6200,8 +7732,8 @@ L_08A3A9FC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3AA2C: @@ -6240,8 +7772,21 @@ L_08A3AA94: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08A3AAA0u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 583u, 0x08A3AAA0u, 0x0881FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 727u, 0x0881FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3AAA0u) goto L_08A3AAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3AAA0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); ctx.gpr[23] = (ctx.gpr[2] | 0u); @@ -6255,8 +7800,21 @@ L_08A3AAA0: ctx.gpr[8] = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08A3AAD0u); ctx.gpr[9] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 584u, 0x08A3AAD0u, 0x08820384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 55u, 0x08820384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3AAD0u) goto L_08A3AAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3AAD0: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(8), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); @@ -6280,8 +7838,21 @@ L_08A3AAFC: ctx.gpr[7] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A3AB14u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 586u, 0x08A3AB14u, 0x0882001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 4u, 0x0882001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3AB14u) goto L_08A3AB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3AB14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(8))); @@ -6300,8 +7871,21 @@ L_08A3AB28: aot_gpr_6 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A3AB40u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 588u, 0x08A3AB40u, 0x0882001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 4u, 0x0882001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3AB40u) goto L_08A3AB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3AB40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(8))); @@ -6391,8 +7975,21 @@ L_08A3ABF8: aot_gpr_6 = (aot_gpr_18 | 0u); ctx.gpr[31] = (0x08A3AC0Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 597u, 0x08A3AC0Cu, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3AC0Cu) goto L_08A3AC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3AC0C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(9), static_cast(ctx.gpr[30])); ctx.gpr[30] = (aot_gpr_17 | 0u); @@ -6412,8 +8009,21 @@ L_08A3AC20: aot_gpr_6 = (aot_gpr_6 >> 5u); ctx.gpr[31] = (0x08A3AC4Cu); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 599u, 0x08A3AC4Cu, 0x088201D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 26u, 0x088201D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3AC4Cu) goto L_08A3AC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3AC4C: ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6422,8 +8032,21 @@ L_08A3AC4C: ctx.gpr[7] = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x08A3AC68u); ctx.gpr[9] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 600u, 0x08A3AC68u, 0x08820850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 115u, 0x08820850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3AC68u) goto L_08A3AC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3AC68: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(8), static_cast(ctx.gpr[2])); @@ -6434,8 +8057,21 @@ L_08A3AC68: ctx.gpr[9] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A3AC8Cu); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 601u, 0x08A3AC8Cu, 0x0881EB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 468u, 0x0881EB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3AC8Cu) goto L_08A3AC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3AC8C: ctx.gpr[19] = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(8))); aot_gpr_4 = (aot_gpr_18 | 0u); @@ -6455,8 +8091,21 @@ L_08A3AC9C: } L_08A3ACA4: ctx.gpr[31] = (0x08A3ACACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 604u, 0x08A3ACACu, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3ACACu) goto L_08A3ACAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3ACAC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6467,8 +8116,21 @@ L_08A3ACAC: L_08A3ACB4: ctx.gpr[31] = (0x08A3ACBCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_18 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 606u, 0x08A3ACBCu, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3ACBCu) goto L_08A3ACBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3ACBC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6576,8 +8238,21 @@ L_08A3AD9C: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08A3ADA8u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 619u, 0x08A3ADA8u, 0x08820E28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 203u, 0x08820E28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3ADA8u) goto L_08A3ADA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3ADA8: ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6536))); @@ -6598,8 +8273,8 @@ L_08A3ADA8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3ADE8: @@ -7168,26 +8843,78 @@ L_08A3B14C: L_08A3B158: ctx.gpr[31] = (0x08A3B160u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 708u, 0x08A3B160u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B160u) goto L_08A3B160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B160: ctx.gpr[20] = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x08A3B16Cu); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 709u, 0x08A3B16Cu, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B16Cu) goto L_08A3B16C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B16C: ctx.gpr[21] = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x08A3B178u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 710u, 0x08A3B178u, 0x0898BBCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 964u, 0x0898BBCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B178u) goto L_08A3B178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B178: aot_gpr_4 = (aot_gpr_18 | 0u); ctx.gpr[31] = (0x08A3B184u); aot_gpr_18 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 711u, 0x08A3B184u, 0x0898BC0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 968u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 968u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 968u, 0x0898BC0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B184u) goto L_08A3B184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B184: ctx.gpr[22] = (ctx.gpr[2] | 0u); ctx.gpr[2] = (0u | 18u); @@ -7462,8 +9189,21 @@ L_08A3B2AC: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A3B3A0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 720u, 0x08A3B3A0u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B3A0u) goto L_08A3B3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B3A0: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7622,8 +9362,21 @@ L_08A3B4BC: L_08A3B4C8: ctx.gpr[31] = (0x08A3B4D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 733u, 0x08A3B4D0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B4D0u) goto L_08A3B4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B4D0: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(352), aot_run_words); @@ -7642,8 +9395,8 @@ L_08A3B4D0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3B508: @@ -7678,8 +9431,21 @@ L_08A3B550: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08A3B564u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 737u, 0x08A3B564u, 0x0881E8FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 438u, 0x0881E8FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B564u) goto L_08A3B564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B564: ctx.gpr[23] = (ctx.gpr[2] | 0u); goto L_08A3B568; @@ -7687,8 +9453,21 @@ L_08A3B568: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08A3B574u); aot_gpr_5 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 739u, 0x08A3B574u, 0x0881F0FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 545u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 545u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 545u, 0x0881F0FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B574u) goto L_08A3B574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B574: aot_gpr_4 = (17278u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7751,8 +9530,21 @@ L_08A3B5E4: aot_gpr_4 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08A3B5F4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 746u, 0x08A3B5F4u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B5F4u) goto L_08A3B5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B5F4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); { const bool branch_taken = ctx.gpr[20] == aot_gpr_4; @@ -7804,8 +9596,21 @@ L_08A3B654: aot_gpr_4 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x08A3B664u); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 752u, 0x08A3B664u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B664u) goto L_08A3B664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B664: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7818,8 +9623,21 @@ L_08A3B66C: aot_gpr_4 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x08A3B67Cu); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 754u, 0x08A3B67Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B67Cu) goto L_08A3B67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B67C: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08A3B688u); @@ -7869,8 +9687,21 @@ L_08A3B708: aot_gpr_5 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x08A3B718u); aot_gpr_6 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 759u, 0x08A3B718u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B718u) goto L_08A3B718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B718: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); @@ -7916,8 +9747,21 @@ L_08A3B768: ctx.gpr[23] = (0u | 1u); ctx.gpr[31] = (0x08A3B774u); aot_gpr_4 = (aot_gpr_18 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 766u, 0x08A3B774u, 0x0894854Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 80u, 0x0894854Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B774u) goto L_08A3B774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B774: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8010,8 +9854,21 @@ L_08A3B814: aot_gpr_5 = (aot_gpr_29 + static_cast(80)); ctx.gpr[31] = (0x08A3B824u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 777u, 0x08A3B824u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B824u) goto L_08A3B824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B824: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8055,8 +9912,21 @@ L_08A3B85C: aot_gpr_6 = (aot_gpr_29 + static_cast(80)); ctx.gpr[31] = (0x08A3B870u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 781u, 0x08A3B870u, 0x088205F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 87u, 0x088205F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B870u) goto L_08A3B870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B870: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(144))); aot_gpr_5 = (0u | 255u); @@ -8072,8 +9942,21 @@ L_08A3B880: L_08A3B884: ctx.gpr[31] = (0x08A3B88Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 784u, 0x08A3B88Cu, 0x0881E21Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 344u, 0x0881E21Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B88Cu) goto L_08A3B88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B88C: ctx.gpr[23] = (ctx.gpr[2] | 0u); ctx.gpr[30] = (0u | 1u); @@ -8135,8 +10018,8 @@ L_08A3B8E4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3B914: @@ -8156,8 +10039,21 @@ L_08A3B914: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(164), ctx.gpr[31]); ctx.gpr[31] = (0x08A3B968u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0141->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0141_entry, 791u, 0x08A3B968u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3B968u) goto L_08A3B968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3B968: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 0u); diff --git a/profiles/vcs/generated/generated_unit_0142.cpp b/profiles/vcs/generated/generated_unit_0142.cpp index e03a0b5..9347da2 100644 --- a/profiles/vcs/generated/generated_unit_0142.cpp +++ b/profiles/vcs/generated/generated_unit_0142.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0142[64] = { 341u, 348u, 359u, 363u, 366u, 377u, 379u, 379u, 380u, 394u, 398u, 412u, 429u, 441u, 450u, 465u, 482u, 492u, 503u, 510u, 513u, 524u, 538u, 550u, 551u, 552u, 554u, 567u, 573u, 578u, 587u, 600u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0142[4094] = { + 1u, 0u, 0u, 0u, 2u, 0u, 0u, 3u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 5u, 0u, 0u, 0u, 6u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, + 0u, 0u, 8u, 0u, 9u, 10u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 12u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 14u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 17u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 19u, 0u, 20u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 21u, + 0u, 0u, 0u, 0u, 22u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 24u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 27u, 0u, 0u, 28u, 0u, 0u, 0u, 29u, 0u, 0u, 30u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 33u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 38u, 0u, 0u, 0u, 0u, + 39u, 0u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 41u, 42u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 44u, 0u, 0u, 45u, 0u, 0u, 46u, 0u, 0u, 0u, 47u, 0u, 48u, 0u, 49u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 52u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 53u, 0u, 0u, 54u, 0u, 0u, 0u, 0u, 0u, 55u, 56u, 0u, 0u, 0u, 0u, 0u, 57u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 58u, 0u, 0u, 59u, 0u, 0u, + 60u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 0u, 64u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 66u, 0u, 67u, 68u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 0u, 72u, 0u, 0u, 0u, + 0u, 0u, 73u, 74u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 0u, 0u, 0u, 0u, 79u, + 0u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 84u, 0u, 85u, 86u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 87u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 91u, 92u, 0u, 0u, 0u, + 0u, 0u, 93u, 0u, 0u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 95u, 0u, 96u, 0u, 97u, 98u, 0u, 0u, 0u, + 0u, 99u, 0u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 101u, 0u, 102u, 0u, 0u, 0u, 103u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 104u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 105u, 0u, 0u, 106u, 0u, 0u, 0u, 107u, 0u, 0u, 0u, 108u, 0u, 0u, 0u, 109u, 0u, 0u, 0u, 110u, 0u, 0u, 0u, 111u, 0u, 0u, + 0u, 112u, 0u, 0u, 0u, 113u, 0u, 0u, 0u, 114u, 0u, 0u, 0u, 115u, 0u, 116u, 117u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 119u, 0u, + 0u, 120u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 122u, 0u, 123u, 0u, 124u, 0u, 0u, 0u, 125u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 128u, 0u, 0u, + 0u, 129u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 131u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 134u, 0u, 135u, 136u, 0u, 0u, 137u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 138u, 0u, 0u, 0u, 0u, 139u, 0u, 0u, 0u, 0u, 0u, 140u, 0u, 141u, 0u, 142u, 0u, 143u, 0u, 0u, 144u, 0u, 0u, 145u, 0u, 0u, 0u, + 0u, 146u, 147u, 0u, 148u, 0u, 0u, 149u, 0u, 0u, 150u, 0u, 0u, 0u, 0u, 151u, 152u, 153u, 0u, 0u, 0u, 154u, 0u, 0u, 0u, 0u, 155u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 156u, 0u, 0u, 0u, 0u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 0u, 159u, 0u, 160u, 0u, 0u, 0u, + 0u, 161u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 163u, 0u, 164u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 165u, 0u, 166u, 0u, 0u, 0u, + 167u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 170u, 0u, 0u, + 0u, 0u, 171u, 0u, 172u, 0u, 173u, 0u, 174u, 0u, 0u, 0u, 175u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 179u, 0u, 180u, + 0u, 181u, 0u, 182u, 0u, 183u, 0u, 0u, 0u, 0u, 184u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 185u, 0u, 0u, 0u, 0u, 0u, 186u, 0u, 187u, 0u, 0u, 0u, 188u, + 0u, 0u, 0u, 189u, 190u, 0u, 191u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 192u, 0u, 193u, 194u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 195u, 196u, 0u, 197u, + 0u, 0u, 0u, 198u, 0u, 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 202u, 203u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 204u, 205u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 207u, 208u, 0u, 209u, 0u, 0u, 0u, 210u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 212u, 213u, + 0u, 214u, 0u, 0u, 0u, 0u, 0u, 215u, 216u, 0u, 217u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 0u, 0u, 220u, 221u, 0u, 222u, 0u, 0u, 0u, 0u, + 0u, 223u, 224u, 0u, 225u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 227u, 0u, 0u, 0u, 0u, 0u, 228u, 229u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 233u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 236u, 237u, 0u, 238u, 0u, 0u, 0u, 239u, 0u, 0u, + 0u, 240u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 241u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 242u, 0u, 243u, 244u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 245u, 0u, 246u, 247u, 0u, 248u, 0u, 249u, 0u, 250u, 0u, 0u, 0u, 251u, 0u, 252u, 0u, 0u, 0u, 0u, 253u, 0u, 0u, 254u, 0u, 255u, 0u, 256u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 257u, 0u, 258u, 0u, 259u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 0u, 0u, 0u, 0u, 261u, 0u, 262u, 0u, 0u, 263u, 0u, 0u, 264u, 0u, 0u, + 265u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 266u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 268u, 0u, 269u, 0u, 0u, 0u, 270u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 271u, 0u, 272u, 0u, 0u, 0u, 273u, 0u, + 274u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 276u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 279u, 280u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 281u, 0u, 282u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 283u, 0u, 284u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 285u, 0u, 286u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 287u, 0u, 288u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 296u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 297u, 0u, 0u, 0u, + 0u, 298u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 301u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 303u, + 0u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, 305u, 0u, 306u, 307u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 0u, 309u, 0u, 0u, 0u, 310u, 0u, 0u, 0u, 0u, + 0u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 313u, 0u, 314u, 0u, 315u, 0u, 0u, 316u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, + 0u, 318u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, + 0u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 323u, 0u, 324u, 0u, 0u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 329u, + 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 338u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 340u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 344u, 345u, 0u, 0u, 346u, 347u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, 349u, 350u, 0u, 0u, 0u, 0u, 0u, 0u, 351u, 0u, 352u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 354u, 0u, 355u, 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 358u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 359u, 0u, 360u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 367u, 368u, 0u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 370u, 0u, 0u, 0u, 0u, 0u, 0u, + 371u, 0u, 0u, 0u, 0u, 372u, 0u, 0u, 0u, 0u, 373u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 0u, 376u, 0u, 0u, + 0u, 0u, 377u, 378u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 379u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 381u, 0u, 0u, 382u, 0u, 0u, 383u, 0u, 0u, + 384u, 0u, 0u, 385u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 387u, 0u, 388u, 0u, 0u, 0u, 389u, 0u, 390u, 0u, 0u, 391u, 0u, 0u, 392u, 0u, 0u, 393u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 394u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 397u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 398u, 0u, 0u, 0u, 399u, 0u, 0u, 0u, 400u, 0u, 401u, 0u, 402u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, + 0u, 405u, 0u, 0u, 0u, 0u, 406u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 0u, 0u, 409u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 411u, 0u, + 0u, 0u, 412u, 413u, 0u, 0u, 0u, 0u, 0u, 0u, 414u, 0u, 0u, 415u, 0u, 0u, 0u, 416u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 0u, 0u, 418u, 0u, 419u, 0u, 420u, + 0u, 0u, 0u, 0u, 421u, 422u, 0u, 0u, 0u, 0u, 0u, 423u, 0u, 0u, 0u, 0u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 425u, 0u, 0u, 426u, 0u, 0u, 427u, 0u, 428u, + 0u, 0u, 0u, 0u, 429u, 0u, 430u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 431u, 0u, 0u, 432u, 0u, 433u, 434u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 436u, 0u, 0u, + 0u, 0u, 0u, 0u, 437u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 441u, 0u, 0u, 442u, 0u, 0u, 0u, 0u, 443u, 0u, 0u, + 444u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 446u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 449u, + 450u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 0u, 454u, 0u, 0u, 455u, 0u, 456u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, + 0u, 458u, 459u, 0u, 0u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 463u, 0u, 464u, 0u, 0u, 0u, 0u, + 465u, 0u, 0u, 466u, 467u, 0u, 468u, 0u, 469u, 0u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 472u, + 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 474u, 0u, 475u, 0u, 476u, 0u, 0u, 477u, 478u, 0u, 0u, 479u, 0u, 480u, 481u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 482u, 0u, 0u, 0u, 483u, 0u, 0u, 0u, 484u, 0u, 0u, 485u, 0u, 486u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 488u, 0u, 0u, 489u, 0u, 490u, 0u, 0u, 0u, 0u, 491u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 492u, 0u, 0u, 493u, 0u, 0u, 494u, 0u, 495u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 497u, 498u, 0u, 0u, 0u, 499u, 0u, 0u, 0u, + 0u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, + 0u, 503u, 0u, 504u, 0u, 0u, 0u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 510u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 511u, 0u, 0u, 512u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 513u, 0u, 0u, 514u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 0u, 0u, 0u, 516u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 517u, 0u, 0u, 518u, 0u, 519u, 0u, 520u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 521u, 0u, 522u, 0u, 523u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 524u, 0u, 525u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 527u, 0u, 528u, 0u, 529u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 530u, 0u, 531u, 0u, 532u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 534u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 0u, 0u, 0u, 537u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, 539u, 540u, 0u, 0u, 0u, 0u, 0u, 541u, 542u, 0u, 0u, 0u, 543u, 544u, 0u, 545u, 0u, + 0u, 0u, 0u, 546u, 0u, 547u, 548u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 553u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 554u, 0u, 0u, 555u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 558u, 0u, 559u, 560u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 562u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 563u, 0u, 564u, 565u, 0u, 0u, 566u, 0u, 0u, + 0u, 0u, 567u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 568u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 569u, 0u, + 0u, 0u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 573u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 578u, 0u, 0u, 0u, 579u, 0u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, 0u, 0u, 582u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 584u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 588u, 0u, 0u, 0u, 589u, 0u, 590u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 591u, 0u, 0u, 0u, 592u, 0u, 0u, 0u, 593u, 0u, 0u, 594u, 0u, 0u, 595u, 0u, 0u, 0u, 596u, 0u, 0u, 0u, 597u, 0u, 0u, 0u, 0u, 598u, 599u, 0u, 0u, + 0u, 0u, 0u, 600u, 0u, 0u, 601u, 0u, 0u, 602u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 603u, + 0u, 0u, 0u, 0u, 0u, 0u, 604u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 606u, +}; void recomp_unit_0142_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,6,31,16 fprs=12,13,14,15 gpr_occ=4354 fpr_occ=559 gpr_total=6129 fpr_total=747 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08A3C000u; - entry_id = 0u; - if (entry_delta < 16376u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0142[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0142[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16376u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0142[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08A3C000; @@ -684,6 +807,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A3C000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -782,8 +929,21 @@ L_08A3C094: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A3C0A4u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 11u, 0x08A3C0A4u, 0x08A3A61Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 528u, 0x08A3A61Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C0A4u) goto L_08A3C0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C0A4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(15)))))); aot_gpr_4 = (aot_gpr_4 & 32u); @@ -875,8 +1035,21 @@ L_08A3C1A0: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A3C1B4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 19u, 0x08A3C1B4u, 0x08A3B508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 734u, 0x08A3B508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C1B4u) goto L_08A3C1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C1B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -899,16 +1072,42 @@ L_08A3C1BC: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A3C1FCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 21u, 0x08A3C1FCu, 0x08A3B508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 734u, 0x08A3B508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C1FCu) goto L_08A3C1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C1FC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A3C210u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 22u, 0x08A3C210u, 0x08A3B508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 734u, 0x08A3B508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C210u) goto L_08A3C210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C210: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -944,8 +1143,8 @@ L_08A3C234: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C264: @@ -959,8 +1158,21 @@ L_08A3C264: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3C28Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 27u, 0x08A3C28Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C28Cu) goto L_08A3C28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C28C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08A3C298u); @@ -1001,8 +1213,8 @@ L_08A3C2C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C2D8: @@ -1016,8 +1228,21 @@ L_08A3C2D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3C300u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 33u, 0x08A3C300u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C300u) goto L_08A3C300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C300: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08A3C30Cu); @@ -1115,8 +1340,8 @@ L_08A3C3C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C3D8: @@ -1130,8 +1355,21 @@ L_08A3C3D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3C400u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 44u, 0x08A3C400u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C400u) goto L_08A3C400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C400: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08A3C40Cu); @@ -1242,8 +1480,8 @@ L_08A3C4A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C4C0: @@ -1257,8 +1495,21 @@ L_08A3C4C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3C4E8u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 58u, 0x08A3C4E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C4E8u) goto L_08A3C4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C4E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08A3C4F4u); @@ -1419,8 +1670,8 @@ L_08A3C60C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C624: @@ -1434,8 +1685,21 @@ L_08A3C624: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3C64Cu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 76u, 0x08A3C64Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3C64Cu) goto L_08A3C64C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3C64C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08A3C658u); @@ -1596,8 +1860,8 @@ L_08A3C770: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C788: @@ -1654,8 +1918,8 @@ L_08A3C7F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C804: @@ -1684,8 +1948,8 @@ L_08A3C830: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C840: @@ -1699,8 +1963,8 @@ L_08A3C840: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(4), static_cast(ctx.gpr[8])); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(6), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C868: @@ -1822,8 +2086,8 @@ L_08A3C940: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3C94C: @@ -1986,8 +2250,8 @@ L_08A3CA60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CA6C: @@ -2043,8 +2307,8 @@ L_08A3CA6C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CA94: @@ -2095,8 +2359,21 @@ L_08A3CAD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15964))); aot_gpr_31 = (0x08A3CAE4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 144u, 0x08A3CAE4u, 0x08B6DAB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 359u, 0x08B6DAB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3CAE4u) goto L_08A3CAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3CAE4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -2131,8 +2408,21 @@ L_08A3CB10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15968))); aot_gpr_31 = (0x08A3CB1Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 149u, 0x08A3CB1Cu, 0x08B6BC84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 748u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 748u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 748u, 0x08B6BC84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3CB1Cu) goto L_08A3CB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3CB1C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -2163,8 +2453,8 @@ L_08A3CB44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CB54: @@ -2173,8 +2463,21 @@ L_08A3CB54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A3CB68u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 155u, 0x08A3CB68u, 0x08AD1B88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 349u, 0x08AD1B88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3CB68u) goto L_08A3CB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3CB68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-15)); @@ -2192,8 +2495,8 @@ L_08A3CB68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CBA8: @@ -2216,8 +2519,21 @@ L_08A3CBC4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3CBDCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 158u, 0x08A3CBDCu, 0x08ACF9BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1039u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1039u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1039u, 0x08ACF9BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3CBDCu) goto L_08A3CBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3CBDC: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2239,8 +2555,8 @@ L_08A3CBF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CC04: @@ -2249,21 +2565,34 @@ L_08A3CC04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A3CC18u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15968))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 162u, 0x08A3CC18u, 0x08B6DA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 356u, 0x08B6DA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3CC18u) goto L_08A3CC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3CC18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CC24: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CC2C: @@ -2282,20 +2611,46 @@ L_08A3CC2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A3CC68u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 165u, 0x08A3CC68u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3CC68u) goto L_08A3CC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3CC68: aot_gpr_31 = (0x08A3CC70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 166u, 0x08A3CC70u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3CC70u) goto L_08A3CC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3CC70: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CC80: @@ -2478,8 +2833,8 @@ L_08A3CDCC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6248))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3CDE4: @@ -3074,8 +3429,21 @@ L_08A3D1EC: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08A3D24Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 257u, 0x08A3D24Cu, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D24Cu) goto L_08A3D24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D24C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3115,8 +3483,21 @@ L_08A3D25C: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08A3D2BCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[12]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 260u, 0x08A3D2BCu, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D2BCu) goto L_08A3D2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D2BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(28))); aot_fpr_13 = std::bit_cast(0u); @@ -3206,8 +3587,21 @@ L_08A3D300: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08A3D390u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 266u, 0x08A3D390u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D390u) goto L_08A3D390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D390: ctx.gpr[22] = (0u | 1u); { const bool branch_taken = 0u == 0u; @@ -3243,8 +3637,21 @@ L_08A3D39C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A3D3DCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 268u, 0x08A3D3DCu, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D3DCu) goto L_08A3D3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D3DC: { const bool branch_taken = ctx.gpr[22] != 0u; if (branch_taken) { @@ -3299,8 +3706,21 @@ L_08A3D3F4: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A3D460u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 271u, 0x08A3D460u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D460u) goto L_08A3D460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D460: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3372,8 +3792,21 @@ L_08A3D498: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08A3D504u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 276u, 0x08A3D504u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D504u) goto L_08A3D504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D504: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); aot_fpr_13 = std::bit_cast(0u); @@ -3526,8 +3959,21 @@ L_08A3D678: ctx.gpr[8] = (0u | 128u); aot_gpr_31 = (0x08A3D6D4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 287u, 0x08A3D6D4u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D6D4u) goto L_08A3D6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D6D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3566,8 +4012,21 @@ L_08A3D6E4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A3D740u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 290u, 0x08A3D740u, 0x08A97518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 490u, 0x08A97518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D740u) goto L_08A3D740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D740: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3839,8 +4298,21 @@ L_08A3D8A0: aot_fpr_15 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x08A3D970u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 297u, 0x08A3D970u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D970u) goto L_08A3D970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D970: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(17))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -3867,8 +4339,8 @@ L_08A3D984: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3D9B4: @@ -3891,15 +4363,28 @@ L_08A3D9D8: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A3D9ECu); ctx.gpr[7] = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 302u, 0x08A3D9ECu, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3D9ECu) goto L_08A3D9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3D9EC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3D9FC: @@ -3910,8 +4395,21 @@ L_08A3D9FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3DA18u); aot_gpr_4 = (0u | 7232u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 304u, 0x08A3DA18u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3DA18u) goto L_08A3DA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3DA18: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3938,8 +4436,8 @@ L_08A3DA30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3DA48: @@ -3954,8 +4452,8 @@ L_08A3DA5C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3DA6C: @@ -3966,8 +4464,8 @@ L_08A3DA6C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(88), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3DA88: @@ -3982,35 +4480,113 @@ L_08A3DA88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3DAB4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-9620)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 312u, 0x08A3DAB4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3DAB4u) goto L_08A3DAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3DAB4: aot_gpr_31 = (0x08A3DABCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 313u, 0x08A3DABCu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3DABCu) goto L_08A3DABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3DABC: aot_gpr_31 = (0x08A3DAC4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-6468)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 314u, 0x08A3DAC4u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3DAC4u) goto L_08A3DAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3DAC4: aot_gpr_31 = (0x08A3DACCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 315u, 0x08A3DACCu, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3DACCu) goto L_08A3DACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3DACC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3DAD8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 316u, 0x08A3DAD8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3DAD8u) goto L_08A3DAD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3DAD8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(7208), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x08A3DAE8u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(7212), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 317u, 0x08A3DAE8u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3DAE8u) goto L_08A3DAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3DAE8: aot_gpr_4 = (0u | 4000u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(7200), aot_gpr_4); @@ -4056,8 +4632,8 @@ L_08A3DB34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3DB6C: @@ -4082,8 +4658,21 @@ L_08A3DB88: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08A3DBA8u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-9524)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 322u, 0x08A3DBA8u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3DBA8u) goto L_08A3DBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3DBA8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4106,8 +4695,8 @@ L_08A3DBBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3DBD0: @@ -4588,8 +5177,8 @@ L_08A3DFF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3E03C: @@ -4652,8 +5241,21 @@ L_08A3E0D0: } aot_gpr_31 = (0x08A3E0E4u); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 344u, 0x08A3E0E4u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3E0E4u) goto L_08A3E0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3E0E4: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A3E0E8; @@ -4996,8 +5598,8 @@ L_08A3E354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3E394: @@ -5623,8 +6225,21 @@ L_08A3E898: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A3E8ACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 387u, 0x08A3E8ACu, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3E8ACu) goto L_08A3E8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3E8AC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5637,12 +6252,38 @@ L_08A3E8B4: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x08A3E8C4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 389u, 0x08A3E8C4u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3E8C4u) goto L_08A3E8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3E8C4: aot_gpr_31 = (0x08A3E8CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 390u, 0x08A3E8CCu, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3E8CCu) goto L_08A3E8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3E8CC: aot_gpr_4 = (0u | 11u); aot_gpr_31 = (0x08A3E8D8u); @@ -5673,8 +6314,8 @@ L_08A3E8F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3E910: @@ -5700,8 +6341,8 @@ L_08A3E940: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3E95C: @@ -5750,8 +6391,8 @@ L_08A3E95C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(48), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3E9E4: @@ -5793,8 +6434,21 @@ L_08A3EA20: L_08A3EA30: aot_gpr_31 = (0x08A3EA38u); aot_gpr_5 = (aot_gpr_16 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 401u, 0x08A3EA38u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EA38u) goto L_08A3EA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EA38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5919,16 +6573,16 @@ L_08A3EB0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EB28: ctx.gpr[2] = (2212u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-5336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EB34: @@ -5940,8 +6594,8 @@ L_08A3EB44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EB50: @@ -5961,8 +6615,21 @@ L_08A3EB6C: goto L_08A3EB74; L_08A3EB74: aot_gpr_31 = (0x08A3EB7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 420u, 0x08A3EB7Cu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EB7Cu) goto L_08A3EB7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EB7C: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -5986,8 +6653,8 @@ L_08A3EB94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EBAC: @@ -6009,14 +6676,40 @@ L_08A3EBC8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08A3EBDCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 425u, 0x08A3EBDCu, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EBDCu) goto L_08A3EBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EBDC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3EBE8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 426u, 0x08A3EBE8u, 0x08A9A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EBE8u) goto L_08A3EBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EBE8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6039,15 +6732,15 @@ L_08A3EBFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EC10: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 5u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EC18: @@ -6060,8 +6753,21 @@ L_08A3EC18: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3EC3Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 431u, 0x08A3EC3Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EC3Cu) goto L_08A3EC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EC3C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6083,8 +6789,8 @@ L_08A3EC54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EC64: @@ -6113,8 +6819,8 @@ L_08A3EC90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EC9C: @@ -6127,8 +6833,21 @@ L_08A3EC9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A3ECC0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 439u, 0x08A3ECC0u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3ECC0u) goto L_08A3ECC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3ECC0: aot_gpr_5 = (ctx.gpr[2] | 0u); ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -6189,8 +6908,8 @@ L_08A3ED54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3ED60: @@ -6204,8 +6923,8 @@ L_08A3ED74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3ED80: @@ -6214,8 +6933,21 @@ L_08A3ED80: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A3ED94u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 445u, 0x08A3ED94u, 0x08A9A720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 300u, 0x08A9A720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3ED94u) goto L_08A3ED94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3ED94: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29904)); @@ -6227,8 +6959,8 @@ L_08A3ED94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EDBC: @@ -6240,8 +6972,21 @@ L_08A3EDBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08A3EDDCu); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 447u, 0x08A3EDDCu, 0x08A9A720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 300u, 0x08A9A720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EDDCu) goto L_08A3EDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EDDC: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29904)); @@ -6263,8 +7008,21 @@ L_08A3EDFC: L_08A3EE00: aot_gpr_31 = (0x08A3EE08u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 451u, 0x08A3EE08u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EE08u) goto L_08A3EE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EE08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(108))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(112), ctx.gpr[2]); @@ -6285,8 +7043,21 @@ L_08A3EE24: aot_gpr_5 = (0u | 64u); aot_gpr_31 = (0x08A3EE40u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 453u, 0x08A3EE40u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EE40u) goto L_08A3EE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EE40: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6328,8 +7099,21 @@ L_08A3EE88: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3EE98u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 460u, 0x08A3EE98u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EE98u) goto L_08A3EE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EE98: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -6341,8 +7125,8 @@ L_08A3EE98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EEB4: @@ -6379,14 +7163,40 @@ L_08A3EEEC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08A3EF00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 465u, 0x08A3EF00u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EF00u) goto L_08A3EF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EF00: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3EF0Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 466u, 0x08A3EF0Cu, 0x08A9A87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 309u, 0x08A9A87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EF0Cu) goto L_08A3EF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EF0C: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08A3EF10; @@ -6411,8 +7221,8 @@ L_08A3EF20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3EF34: @@ -6424,8 +7234,21 @@ L_08A3EF34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x08A3EF54u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 471u, 0x08A3EF54u, 0x08A9AC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EF54u) goto L_08A3EF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EF54: aot_gpr_5 = (2237u << 16u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); @@ -6448,8 +7271,21 @@ L_08A3EF7C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); aot_gpr_31 = (0x08A3EF94u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 473u, 0x08A3EF94u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3EF94u) goto L_08A3EF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3EF94: ctx.gpr[17] = (ctx.gpr[2] + static_cast(16)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(32)))))); @@ -6616,8 +7452,8 @@ L_08A3F0CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3F0E0: @@ -6635,8 +7471,21 @@ L_08A3F0E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08A3F118u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 492u, 0x08A3F118u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3F118u) goto L_08A3F118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3F118: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6678,8 +7527,21 @@ L_08A3F160: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A3F170u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 499u, 0x08A3F170u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3F170u) goto L_08A3F170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3F170: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -6690,8 +7552,8 @@ L_08A3F170: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3F188: @@ -6727,8 +7589,21 @@ L_08A3F1DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3F1F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 502u, 0x08A3F1F0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3F1F0u) goto L_08A3F1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3F1F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -6750,8 +7625,21 @@ L_08A3F20C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3F220u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 505u, 0x08A3F220u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3F220u) goto L_08A3F220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3F220: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(52)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -6759,8 +7647,21 @@ L_08A3F220: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(24)))))); aot_gpr_31 = (0x08A3F238u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 506u, 0x08A3F238u, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3F238u) goto L_08A3F238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3F238: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -6778,8 +7679,8 @@ L_08A3F24C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3F264: @@ -6866,8 +7767,21 @@ L_08A3F2B4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x08A3F398u); aot_gpr_5 = (ctx.gpr[18] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 510u, 0x08A3F398u, 0x08964CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 79u, 0x08964CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3F398u) goto L_08A3F398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3F398: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(1)); @@ -6941,8 +7855,8 @@ L_08A3F454: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3F46C: @@ -7104,8 +8018,8 @@ L_08A3F5E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3F5F8: @@ -7124,8 +8038,21 @@ L_08A3F5F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08A3F634u); aot_gpr_5 = (ctx.gpr[17] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 538u, 0x08A3F634u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3F634u) goto L_08A3F634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3F634: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7198,8 +8125,8 @@ L_08A3F698: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3F6B8: @@ -7346,8 +8273,21 @@ L_08A3F738: aot_gpr_5 = (ctx.gpr[17] + static_cast(32)); aot_gpr_31 = (0x08A3F8E8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 551u, 0x08A3F8E8u, 0x089647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 73u, 0x089647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3F8E8u) goto L_08A3F8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3F8E8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(56))); aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[18] + static_cast(0), aot_gpr_5)); @@ -7458,8 +8398,8 @@ L_08A3FA38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FA50: @@ -7488,8 +8428,21 @@ L_08A3FA8C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3FA98u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 561u, 0x08A3FA98u, 0x0880E4A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 501u, 0x0880E4A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FA98u) goto L_08A3FA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FA98: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7499,8 +8452,8 @@ L_08A3FA98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FAAC: @@ -7529,8 +8482,21 @@ L_08A3FAE8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A3FAF4u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 566u, 0x08A3FAF4u, 0x0880E5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 520u, 0x0880E5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FAF4u) goto L_08A3FAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FAF4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7540,8 +8506,8 @@ L_08A3FAF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FB08: @@ -7563,8 +8529,8 @@ L_08A3FB08: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FB50: @@ -7620,8 +8586,8 @@ L_08A3FB50: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FB78: @@ -7649,8 +8615,8 @@ L_08A3FB78: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FB90: @@ -7671,8 +8637,8 @@ L_08A3FB90: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FBAC: @@ -7693,8 +8659,8 @@ L_08A3FBAC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FBC8: @@ -7713,8 +8679,8 @@ L_08A3FBC8: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_14)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FC04: @@ -7734,8 +8700,8 @@ L_08A3FC04: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FC44: @@ -7808,8 +8774,21 @@ L_08A3FCD8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A3FD04u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 578u, 0x08A3FD04u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FD04u) goto L_08A3FD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FD04: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[22] = (0u | 0u); @@ -7834,15 +8813,41 @@ L_08A3FD1C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A3FD3Cu); aot_gpr_6 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 581u, 0x08A3FD3Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FD3Cu) goto L_08A3FD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FD3C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(96))); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A3FD4Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 582u, 0x08A3FD4Cu, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FD4Cu) goto L_08A3FD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FD4C: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(36), aot_gpr_6)); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(39), aot_gpr_6)); @@ -7850,8 +8855,21 @@ L_08A3FD4C: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A3FD64u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 583u, 0x08A3FD64u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FD64u) goto L_08A3FD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FD64: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7875,8 +8893,21 @@ L_08A3FD70: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A3FDA8u); ctx.gpr[9] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 585u, 0x08A3FDA8u, 0x08A42880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 470u, 0x08A42880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FDA8u) goto L_08A3FDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FDA8: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -7892,8 +8923,8 @@ L_08A3FDA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FDD4: @@ -7934,8 +8965,21 @@ L_08A3FE14: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A3FE4Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 588u, 0x08A3FE4Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FE4Cu) goto L_08A3FE4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FE4C: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[20] = (0u | 0u); @@ -7960,22 +9004,61 @@ L_08A3FE64: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A3FE84u); aot_gpr_6 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 591u, 0x08A3FE84u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FE84u) goto L_08A3FE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FE84: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(96))); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A3FE94u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 592u, 0x08A3FE94u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FE94u) goto L_08A3FE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FE94: ctx.gpr[20] = (0u | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A3FEA4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 593u, 0x08A3FEA4u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FEA4u) goto L_08A3FEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FEA4: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -7996,8 +9079,21 @@ L_08A3FEBC: aot_gpr_6 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A3FECCu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 596u, 0x08A3FECCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FECCu) goto L_08A3FECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FECC: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(64))); @@ -8024,8 +9120,21 @@ L_08A3FEF4: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A3FF0Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 600u, 0x08A3FF0Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FF0Cu) goto L_08A3FF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FF0C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8075,8 +9184,21 @@ L_08A3FF7C: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A3FF98u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0142->0146. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0142_entry, 604u, 0x08A3FF98u, 0x08A4C070u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0146_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0146_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0146_entry, 146u, 6u, 0x08A4C070u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A3FF98u) goto L_08A3FF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A3FF98: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); @@ -8091,8 +9213,8 @@ L_08A3FF98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A3FFC0: diff --git a/profiles/vcs/generated/generated_unit_0143.cpp b/profiles/vcs/generated/generated_unit_0143.cpp index 074e3c5..3c06ed1 100644 --- a/profiles/vcs/generated/generated_unit_0143.cpp +++ b/profiles/vcs/generated/generated_unit_0143.cpp @@ -790,6 +790,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A40000u; + if (local_delta_v813 >= 16304u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -807,8 +831,21 @@ L_08A40000: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); aot_gpr_31 = (0x08A4000Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 2u, 0x08A4000Cu, 0x08A3FBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 572u, 0x08A3FBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4000Cu) goto L_08A4000C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4000C: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -827,8 +864,21 @@ L_08A4000C: aot_gpr_4 = (ctx.gpr[19] + static_cast(28)); aot_gpr_31 = (0x08A40024u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 3u, 0x08A40024u, 0x08A3FBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 572u, 0x08A3FBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40024u) goto L_08A40024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40024: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -851,8 +901,21 @@ L_08A40024: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A4004Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 4u, 0x08A4004Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4004Cu) goto L_08A4004C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4004C: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -915,8 +978,21 @@ L_08A40074: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A40098u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 9u, 0x08A40098u, 0x08872C78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 649u, 0x08872C78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40098u) goto L_08A40098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40098: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -960,8 +1036,8 @@ L_08A400B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A400D4: @@ -975,8 +1051,21 @@ L_08A400D4: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A4011Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 12u, 0x08A4011Cu, 0x08A3FBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 572u, 0x08A3FBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4011Cu) goto L_08A4011C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4011C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -995,8 +1084,21 @@ L_08A4011C: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); aot_gpr_31 = (0x08A40134u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 13u, 0x08A40134u, 0x08A3FBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 572u, 0x08A3FBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40134u) goto L_08A40134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40134: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1020,8 +1122,21 @@ L_08A40134: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A40160u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 14u, 0x08A40160u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40160u) goto L_08A40160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40160: aot_gpr_4 = (aot_gpr_2 | 0u); ctx.gpr[22] = (0u | 0u); @@ -1046,22 +1161,61 @@ L_08A40178: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A40198u); aot_gpr_6 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 17u, 0x08A40198u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40198u) goto L_08A40198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40198: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(96))); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A401A8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 18u, 0x08A401A8u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A401A8u) goto L_08A401A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A401A8: ctx.gpr[23] = (0u | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A401B8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 19u, 0x08A401B8u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A401B8u) goto L_08A401B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A401B8: ctx.gpr[30] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[30] == 0u; @@ -1082,8 +1236,21 @@ L_08A401D0: aot_gpr_6 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08A401E0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 22u, 0x08A401E0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A401E0u) goto L_08A401E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A401E0: aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(144))); @@ -1110,8 +1277,21 @@ L_08A40208: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A40220u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 26u, 0x08A40220u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40220u) goto L_08A40220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40220: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1126,8 +1306,21 @@ L_08A40228: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A40240u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 28u, 0x08A40240u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40240u) goto L_08A40240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40240: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(112))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3))); @@ -1161,8 +1354,21 @@ L_08A40240: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A40268u); ctx.gpr[8] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 29u, 0x08A40268u, 0x08ACE694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 780u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 780u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 780u, 0x08ACE694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40268u) goto L_08A40268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40268: aot_gpr_4 = (ctx.gpr[22] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1258,8 +1464,8 @@ L_08A402EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4031C: @@ -1377,8 +1583,8 @@ L_08A403CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A403E0: @@ -1406,8 +1612,21 @@ L_08A403E0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(88), aot_run_words); } aot_gpr_31 = (0x08A4044Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 49u, 0x08A4044Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4044Cu) goto L_08A4044C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4044C: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1440,8 +1659,21 @@ L_08A4046C: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A40484u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 54u, 0x08A40484u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40484u) goto L_08A40484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40484: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1458,13 +1690,39 @@ L_08A40498: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A404A4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 57u, 0x08A404A4u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A404A4u) goto L_08A404A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A404A4: aot_gpr_31 = (0x08A404ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 58u, 0x08A404ACu, 0x08911284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 327u, 0x08911284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A404ACu) goto L_08A404AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A404AC: if (aot_gpr_2 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); @@ -1512,8 +1770,21 @@ L_08A404D4: L_08A404E8: aot_gpr_31 = (0x08A404F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 65u, 0x08A404F0u, 0x088E2A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 281u, 0x088E2A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A404F0u) goto L_08A404F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A404F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -1533,8 +1804,21 @@ L_08A40508: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(11))); aot_gpr_31 = (0x08A40518u); aot_gpr_6 = (aot_gpr_6 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 69u, 0x08A40518u, 0x0893E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 600u, 0x0893E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40518u) goto L_08A40518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40518: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1562,8 +1846,21 @@ L_08A40538: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A4054Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 74u, 0x08A4054Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4054Cu) goto L_08A4054C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4054C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (16640u << 16u); @@ -1583,8 +1880,21 @@ L_08A4056C: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A4057Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 77u, 0x08A4057Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4057Cu) goto L_08A4057C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4057C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -1607,8 +1917,21 @@ L_08A405A4: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A405B4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 80u, 0x08A405B4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A405B4u) goto L_08A405B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A405B4: aot_gpr_4 = (aot_mem.aot_direct_load_word_right(ctx.gpr[21] + static_cast(9), aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load_word_left(ctx.gpr[21] + static_cast(12), aot_gpr_4)); @@ -1625,13 +1948,39 @@ L_08A405B4: aot_gpr_6 = (0u | 45u); aot_gpr_31 = (0x08A405F0u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 81u, 0x08A405F0u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A405F0u) goto L_08A405F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A405F0: aot_gpr_31 = (0x08A405F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 82u, 0x08A405F8u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A405F8u) goto L_08A405F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A405F8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1708,8 +2057,21 @@ L_08A40678: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A406E0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 89u, 0x08A406E0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A406E0u) goto L_08A406E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A406E0: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 4 ? 1u : 0u); @@ -1738,8 +2100,8 @@ L_08A406F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4072C: @@ -1759,8 +2121,21 @@ L_08A4072C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(144), aot_gpr_31); aot_gpr_31 = (0x08A40778u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 92u, 0x08A40778u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40778u) goto L_08A40778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40778: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1829,8 +2204,21 @@ L_08A40828: aot_gpr_6 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A40838u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 97u, 0x08A40838u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40838u) goto L_08A40838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40838: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(80))); @@ -1841,8 +2229,21 @@ L_08A40844: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A40854u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(208)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 99u, 0x08A40854u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40854u) goto L_08A40854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40854: aot_gpr_4 = (aot_gpr_2 | 0u); ctx.gpr[20] = (0u | 0u); @@ -1866,22 +2267,61 @@ L_08A4086C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A40888u); aot_gpr_6 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 102u, 0x08A40888u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40888u) goto L_08A40888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40888: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(96))); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A40898u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 103u, 0x08A40898u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40898u) goto L_08A40898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40898: aot_gpr_4 = (ctx.gpr[19] + static_cast(27)); ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A408A8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 104u, 0x08A408A8u, 0x08A3FBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 572u, 0x08A3FBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A408A8u) goto L_08A408A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A408A8: aot_gpr_4 = (16332u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -1915,8 +2355,21 @@ L_08A408A8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A408FCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 105u, 0x08A408FCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A408FCu) goto L_08A408FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A408FC: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1946,16 +2399,42 @@ L_08A408FC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A40944u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 106u, 0x08A40944u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40944u) goto L_08A40944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40944: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(112))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A40958u); aot_gpr_6 = (0u | 45u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 107u, 0x08A40958u, 0x088AA4A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 324u, 0x088AA4A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40958u) goto L_08A40958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40958: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -1971,8 +2450,8 @@ L_08A40958: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40984: @@ -1994,8 +2473,21 @@ L_08A40984: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08A409CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 109u, 0x08A409CCu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A409CCu) goto L_08A409CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A409CC: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2019,8 +2511,21 @@ L_08A409E4: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A409FCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 112u, 0x08A409FCu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A409FCu) goto L_08A409FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A409FC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -2044,8 +2549,21 @@ L_08A40A08: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A40A40u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 114u, 0x08A40A40u, 0x08B0452Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40A40u) goto L_08A40A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40A40: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -2057,8 +2575,8 @@ L_08A40A40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40A5C: @@ -2076,8 +2594,8 @@ L_08A40A5C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40A78: @@ -2096,8 +2614,8 @@ L_08A40A78: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40A8C: @@ -2138,62 +2656,166 @@ L_08A40ADC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40AFC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A40B0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 122u, 0x08A40B0Cu, 0x08872BB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 644u, 0x08872BB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40B0Cu) goto L_08A40B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40B0C: aot_gpr_31 = (0x08A40B14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 123u, 0x08A40B14u, 0x089E92B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 237u, 0x089E92B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40B14u) goto L_08A40B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40B14: aot_gpr_31 = (0x08A40B1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 124u, 0x08A40B1Cu, 0x088802E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 28u, 0x088802E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40B1Cu) goto L_08A40B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40B1C: aot_gpr_31 = (0x08A40B24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 125u, 0x08A40B24u, 0x08ACE658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 777u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 777u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 777u, 0x08ACE658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40B24u) goto L_08A40B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40B24: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7592), static_cast(aot_gpr_4)); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40B38: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A40B48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 127u, 0x08A40B48u, 0x08872F84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 678u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 678u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 678u, 0x08872F84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40B48u) goto L_08A40B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40B48: aot_gpr_31 = (0x08A40B50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 128u, 0x08A40B50u, 0x089EAA94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 478u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 478u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 478u, 0x089EAA94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40B50u) goto L_08A40B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40B50: aot_gpr_31 = (0x08A40B58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 129u, 0x08A40B58u, 0x08881FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 338u, 0x08881FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40B58u) goto L_08A40B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40B58: aot_gpr_31 = (0x08A40B60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 130u, 0x08A40B60u, 0x08ACEA1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 835u, 0x08ACEA1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40B60u) goto L_08A40B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40B60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40B6C: @@ -2285,8 +2907,21 @@ L_08A40C10: goto L_08A40C20; L_08A40C20: aot_gpr_31 = (0x08A40C28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 143u, 0x08A40C28u, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40C28u) goto L_08A40C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40C28: { const bool branch_taken = ctx.gpr[16] == ctx.gpr[17]; if (branch_taken) { @@ -2312,8 +2947,21 @@ L_08A40C40: goto L_08A40C50; L_08A40C50: aot_gpr_31 = (0x08A40C58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 147u, 0x08A40C58u, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40C58u) goto L_08A40C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40C58: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -2324,8 +2972,8 @@ L_08A40C58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40C70: @@ -2371,8 +3019,21 @@ L_08A40CBC: goto L_08A40CCC; L_08A40CCC: aot_gpr_31 = (0x08A40CD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 154u, 0x08A40CD4u, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40CD4u) goto L_08A40CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40CD4: { const bool branch_taken = ctx.gpr[17] == ctx.gpr[18]; if (branch_taken) { @@ -2398,8 +3059,21 @@ L_08A40CEC: goto L_08A40CFC; L_08A40CFC: aot_gpr_31 = (0x08A40D04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 158u, 0x08A40D04u, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40D04u) goto L_08A40D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40D04: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), 0u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), 0u); @@ -2416,8 +3090,8 @@ L_08A40D04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40D34: @@ -2433,8 +3107,8 @@ L_08A40D44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40D58: @@ -2539,8 +3213,8 @@ L_08A40DC0: goto L_08A40DC4; L_08A40DC4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40DCC: @@ -2583,8 +3257,21 @@ L_08A40E14: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A40E28u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0146. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 179u, 0x08A40E28u, 0x08A4F110u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0146_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0146_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0146_entry, 146u, 438u, 0x08A4F110u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40E28u) goto L_08A40E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40E28: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[19] = (0u | 1u); @@ -2641,8 +3328,21 @@ L_08A40E68: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08A40E7Cu); aot_gpr_6 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 186u, 0x08A40E7Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40E7Cu) goto L_08A40E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40E7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2655,8 +3355,21 @@ L_08A40E84: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(96))); aot_gpr_31 = (0x08A40E94u); aot_gpr_6 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 188u, 0x08A40E94u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40E94u) goto L_08A40E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40E94: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -2742,8 +3455,21 @@ L_08A40F04: } L_08A40F14: aot_gpr_31 = (0x08A40F1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 201u, 0x08A40F1Cu, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A40F1Cu) goto L_08A40F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A40F1C: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2830,8 +3556,8 @@ L_08A40FB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A40FCC: @@ -2890,8 +3616,8 @@ L_08A41020: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A41030: @@ -3028,8 +3754,21 @@ L_08A410A4: ctx.gpr[17] = (0u | 1u); aot_gpr_31 = (0x08A41114u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 226u, 0x08A41114u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41114u) goto L_08A41114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41114: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3105,8 +3844,8 @@ L_08A411A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A411C0: @@ -3145,8 +3884,21 @@ L_08A4121C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A41254u); ctx.gpr[11] = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 237u, 0x08A41254u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41254u) goto L_08A41254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41254: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3214,8 +3966,21 @@ L_08A41254: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A41290u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 238u, 0x08A41290u, 0x08A17C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 633u, 0x08A17C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41290u) goto L_08A41290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41290: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6396))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -3270,8 +4035,21 @@ L_08A412CC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A41324u); ctx.gpr[11] = (0u | 600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 241u, 0x08A41324u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41324u) goto L_08A41324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41324: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6396))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -3322,8 +4100,21 @@ L_08A41358: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A413A8u); ctx.gpr[11] = (0u | 600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 244u, 0x08A413A8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A413A8u) goto L_08A413A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A413A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6396))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -3374,8 +4165,21 @@ L_08A413DC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4142Cu); ctx.gpr[11] = (0u | 600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 247u, 0x08A4142Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4142Cu) goto L_08A4142C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4142C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6396))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -3426,8 +4230,21 @@ L_08A41460: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A414B0u); ctx.gpr[11] = (0u | 600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 250u, 0x08A414B0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A414B0u) goto L_08A414B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A414B0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6396))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -3478,8 +4295,21 @@ L_08A414E4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A41534u); ctx.gpr[11] = (0u | 600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 253u, 0x08A41534u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41534u) goto L_08A41534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41534: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(124), aot_run_words); @@ -3495,14 +4325,14 @@ L_08A41534: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A41560: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A41568: @@ -3690,8 +4520,21 @@ L_08A416D8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A41710u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 265u, 0x08A41710u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41710u) goto L_08A41710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41710: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3711,8 +4554,21 @@ L_08A41718: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A41744u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 267u, 0x08A41744u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41744u) goto L_08A41744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41744: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -3725,8 +4581,8 @@ L_08A41744: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A41764: @@ -3838,8 +4694,8 @@ L_08A417D0: goto L_08A417D4; L_08A417D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A417DC: @@ -3857,8 +4713,8 @@ L_08A417EC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6336))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A41804: @@ -3890,8 +4746,8 @@ L_08A41820: goto L_08A41824; L_08A41824: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4182C: @@ -4010,8 +4866,21 @@ L_08A41904: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08A41928u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 300u, 0x08A41928u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41928u) goto L_08A41928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41928: aot_gpr_4 = (ctx.gpr[16] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4091,8 +4960,21 @@ L_08A419B8: aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_gpr_31 = (0x08A419E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 306u, 0x08A419E4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A419E4u) goto L_08A419E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A419E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 2048u); @@ -4131,8 +5013,21 @@ L_08A41A14: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A41A2Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 311u, 0x08A41A2Cu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41A2Cu) goto L_08A41A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41A2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4196,8 +5091,8 @@ L_08A41A8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A41AAC: @@ -4476,8 +5371,21 @@ L_08A41CC0: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A41CD0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 352u, 0x08A41CD0u, 0x0891ECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 550u, 0x0891ECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41CD0u) goto L_08A41CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41CD0: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[19] = (ctx.gpr[18] + static_cast(-1)); @@ -4510,8 +5418,8 @@ L_08A41CE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A41D28: @@ -4536,14 +5444,27 @@ L_08A41D28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08A41D7Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[12]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 355u, 0x08A41D7Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41D7Cu) goto L_08A41D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41D7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A41D88: @@ -4706,8 +5627,21 @@ L_08A41EA0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A41ED8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 359u, 0x08A41ED8u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41ED8u) goto L_08A41ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41ED8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4728,8 +5662,21 @@ L_08A41EE0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A41F10u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 361u, 0x08A41F10u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41F10u) goto L_08A41F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41F10: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4789,8 +5736,21 @@ L_08A41F34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); aot_gpr_31 = (0x08A41FD8u); ctx.fpr[15] = std::bit_cast(aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 364u, 0x08A41FD8u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A41FD8u) goto L_08A41FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A41FD8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[17] | 0u); @@ -4814,8 +5774,8 @@ L_08A41FE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42004: @@ -4899,8 +5859,8 @@ L_08A420AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A420BC: @@ -4919,8 +5879,8 @@ L_08A420D0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6384))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A420E8: @@ -4936,8 +5896,8 @@ L_08A420F0: goto L_08A420F4; L_08A420F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A420FC: @@ -4978,8 +5938,8 @@ L_08A42128: goto L_08A4212C; L_08A4212C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42134: @@ -5013,8 +5973,21 @@ L_08A42178: L_08A42180: aot_gpr_31 = (0x08A42188u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 392u, 0x08A42188u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A42188u) goto L_08A42188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A42188: if (aot_gpr_2 != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(616)))))); @@ -5046,8 +6019,21 @@ L_08A421A0: L_08A421AC: aot_gpr_31 = (0x08A421B4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 397u, 0x08A421B4u, 0x08A51A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 241u, 0x08A51A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A421B4u) goto L_08A421B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A421B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5075,8 +6061,8 @@ L_08A421DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A421EC: @@ -5153,8 +6139,21 @@ L_08A4221C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4225Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 404u, 0x08A4225Cu, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4225Cu) goto L_08A4225C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4225C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -5164,8 +6163,8 @@ L_08A4225C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42270: @@ -5240,8 +6239,8 @@ L_08A422FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4230C: @@ -5283,8 +6282,21 @@ L_08A42384: } L_08A4238C: aot_gpr_31 = (0x08A42394u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 417u, 0x08A42394u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A42394u) goto L_08A42394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A42394: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } goto L_08A42398; @@ -5602,8 +6614,21 @@ L_08A42670: ctx.gpr[11] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A426ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 437u, 0x08A426ACu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A426ACu) goto L_08A426AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A426AC: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); ctx.gpr[17] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(152))); @@ -5641,8 +6666,21 @@ L_08A426E0: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A426F0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 442u, 0x08A426F0u, 0x088FF17Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 725u, 0x088FF17Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A426F0u) goto L_08A426F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A426F0: { const bool branch_taken = ctx.gpr[30] == 0u; if (branch_taken) { @@ -5699,8 +6737,8 @@ L_08A42718: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42760: @@ -5728,8 +6766,8 @@ L_08A42784: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42790: @@ -5757,8 +6795,8 @@ L_08A427B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A427C0: @@ -5858,8 +6896,8 @@ L_08A42874: L_08A42878: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42880: @@ -5968,8 +7006,8 @@ L_08A42968: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6456))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42980: @@ -6031,8 +7069,21 @@ L_08A429B0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A429FCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 479u, 0x08A429FCu, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A429FCu) goto L_08A429FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A429FC: aot_gpr_4 = (0u | 35u); ctx.gpr[16] = (aot_gpr_29 + static_cast(64)); @@ -6074,8 +7125,21 @@ L_08A42A0C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A42A2Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 481u, 0x08A42A2Cu, 0x088AA874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 368u, 0x088AA874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A42A2Cu) goto L_08A42A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A42A2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6114,8 +7178,21 @@ L_08A42A34: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A42A54u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 483u, 0x08A42A54u, 0x088AA874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 368u, 0x088AA874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A42A54u) goto L_08A42A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A42A54: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6258,8 +7335,21 @@ L_08A42B50: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A42BA4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 489u, 0x08A42BA4u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A42BA4u) goto L_08A42BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A42BA4: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6291,8 +7381,21 @@ L_08A42BA4: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A42BC4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 490u, 0x08A42BC4u, 0x088AA874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 368u, 0x088AA874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A42BC4u) goto L_08A42BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A42BC4: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6437,8 +7540,21 @@ L_08A42CC8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A42D1Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 496u, 0x08A42D1Cu, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A42D1Cu) goto L_08A42D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A42D1C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6470,8 +7586,21 @@ L_08A42D1C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A42D3Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 497u, 0x08A42D3Cu, 0x088AA874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 368u, 0x088AA874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A42D3Cu) goto L_08A42D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A42D3C: aot_gpr_4 = (0u | 20u); { const bool branch_taken = ctx.gpr[16] == aot_gpr_4; @@ -6600,8 +7729,8 @@ L_08A42E44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42E70: @@ -6750,8 +7879,8 @@ L_08A42F80: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6536))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A42F98: @@ -6784,8 +7913,21 @@ L_08A42F98: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A43010u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 507u, 0x08A43010u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43010u) goto L_08A43010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43010: aot_gpr_4 = (48716u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6835,8 +7977,21 @@ L_08A4306C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A430B8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 511u, 0x08A430B8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A430B8u) goto L_08A430B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A430B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6875,8 +8030,21 @@ L_08A430C0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A4313Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 513u, 0x08A4313Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4313Cu) goto L_08A4313C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4313C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(128), std::bit_cast(aot_fpr_12)); @@ -6896,8 +8064,21 @@ L_08A4313C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A43188u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 514u, 0x08A43188u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43188u) goto L_08A43188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43188: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6957,8 +8138,21 @@ L_08A431A0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4321Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 517u, 0x08A4321Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4321Cu) goto L_08A4321C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4321C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (ctx.gpr[17] < static_cast(10) ? 1u : 0u); @@ -7017,8 +8211,21 @@ L_08A43288: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A432D4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 522u, 0x08A432D4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A432D4u) goto L_08A432D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A432D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7039,8 +8246,8 @@ L_08A432DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A43300: @@ -7066,8 +8273,21 @@ L_08A43300: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A43378u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 525u, 0x08A43378u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43378u) goto L_08A43378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43378: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7099,8 +8319,21 @@ L_08A43378: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A433C8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 526u, 0x08A433C8u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A433C8u) goto L_08A433C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A433C8: aot_gpr_6 = (aot_gpr_29 + static_cast(80)); ctx.gpr[7] = (aot_gpr_29 + static_cast(112)); @@ -7115,8 +8348,21 @@ L_08A433C8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A43404u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 527u, 0x08A43404u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43404u) goto L_08A43404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43404: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7170,8 +8416,21 @@ L_08A43404: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4345Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 528u, 0x08A4345Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4345Cu) goto L_08A4345C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4345C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7239,14 +8498,40 @@ L_08A434A4: aot_gpr_5 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x08A434E4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 533u, 0x08A434E4u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A434E4u) goto L_08A434E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A434E4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A434F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 534u, 0x08A434F0u, 0x08911284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 327u, 0x08911284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A434F0u) goto L_08A434F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A434F0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7257,8 +8542,21 @@ L_08A434F0: L_08A434F8: aot_gpr_31 = (0x08A43500u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 536u, 0x08A43500u, 0x088E2A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 281u, 0x088E2A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43500u) goto L_08A43500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43500: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -7277,8 +8575,21 @@ L_08A43518: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); aot_gpr_31 = (0x08A43524u); aot_gpr_6 = (ctx.gpr[18] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 540u, 0x08A43524u, 0x0893E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 600u, 0x0893E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43524u) goto L_08A43524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43524: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7305,8 +8616,21 @@ L_08A43544: ctx.gpr[7] = (ctx.gpr[18] + static_cast(32)); aot_gpr_31 = (0x08A43554u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 545u, 0x08A43554u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43554u) goto L_08A43554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43554: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(16), std::bit_cast(aot_fpr_12)); @@ -7324,8 +8648,21 @@ L_08A43568: aot_gpr_6 = (0u | 25u); aot_gpr_31 = (0x08A4358Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 547u, 0x08A4358Cu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4358Cu) goto L_08A4358C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4358C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_gpr_4 = (16204u << 16u); @@ -7335,8 +8672,21 @@ L_08A4358C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A435ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 548u, 0x08A435ACu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A435ACu) goto L_08A435AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A435AC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7402,8 +8752,21 @@ L_08A4361C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A43654u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 555u, 0x08A43654u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43654u) goto L_08A43654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43654: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (ctx.gpr[17] < static_cast(4) ? 1u : 0u); @@ -7444,8 +8807,21 @@ L_08A4368C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A436B8u); aot_gpr_6 = (0u | 25u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 559u, 0x08A436B8u, 0x08B0452Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A436B8u) goto L_08A436B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A436B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -7504,8 +8880,21 @@ L_08A436FC: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A43728u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 565u, 0x08A43728u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43728u) goto L_08A43728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43728: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(192), std::bit_cast(aot_fpr_12)); @@ -7529,8 +8918,21 @@ L_08A43728: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A43780u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 566u, 0x08A43780u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43780u) goto L_08A43780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43780: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7547,8 +8949,21 @@ L_08A43788: aot_gpr_6 = (0u | 62u); aot_gpr_31 = (0x08A437A8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 568u, 0x08A437A8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A437A8u) goto L_08A437A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A437A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7564,14 +8979,40 @@ L_08A437B0: aot_gpr_6 = (0u | 61u); aot_gpr_31 = (0x08A437CCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 570u, 0x08A437CCu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A437CCu) goto L_08A437CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A437CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_31 = (0x08A437D8u); aot_gpr_5 = (0u | 106u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 571u, 0x08A437D8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A437D8u) goto L_08A437D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A437D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7590,8 +9031,21 @@ L_08A437E0: aot_gpr_4 = (0u | 73u); aot_gpr_31 = (0x08A43808u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 573u, 0x08A43808u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43808u) goto L_08A43808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43808: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7610,8 +9064,21 @@ L_08A43810: aot_gpr_4 = (0u | 74u); aot_gpr_31 = (0x08A43838u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 575u, 0x08A43838u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43838u) goto L_08A43838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43838: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7632,8 +9099,21 @@ L_08A43840: aot_gpr_4 = (aot_gpr_29 + static_cast(224)); aot_gpr_31 = (0x08A43864u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 577u, 0x08A43864u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43864u) goto L_08A43864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43864: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7674,15 +9154,41 @@ L_08A4386C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A438C0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 579u, 0x08A438C0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A438C0u) goto L_08A438C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A438C0: aot_gpr_4 = (0u | 75u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A438D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 580u, 0x08A438D0u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A438D0u) goto L_08A438D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A438D0: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(304), aot_run_words); @@ -7698,8 +9204,8 @@ L_08A438D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A438FC: @@ -7840,8 +9346,21 @@ L_08A43A14: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A43A24u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 601u, 0x08A43A24u, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43A24u) goto L_08A43A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43A24: ctx.gpr[17] = (0u | 0u); ctx.gpr[21] = (0u | 0u); @@ -7893,8 +9412,21 @@ L_08A43A7C: L_08A43A84: aot_gpr_31 = (0x08A43A8Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 607u, 0x08A43A8Cu, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43A8Cu) goto L_08A43A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43A8C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7913,8 +9445,21 @@ L_08A43A98: L_08A43AA0: aot_gpr_31 = (0x08A43AA8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 611u, 0x08A43AA8u, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43AA8u) goto L_08A43AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43AA8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7968,8 +9513,21 @@ L_08A43AE4: L_08A43AEC: aot_gpr_31 = (0x08A43AF4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 620u, 0x08A43AF4u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43AF4u) goto L_08A43AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43AF4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8065,8 +9623,21 @@ L_08A43B94: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A43BA0u); ctx.gpr[7] = (0u | 201u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 635u, 0x08A43BA0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43BA0u) goto L_08A43BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43BA0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -8162,8 +9733,21 @@ L_08A43C40: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A43C4Cu); ctx.gpr[7] = (0u | 202u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 650u, 0x08A43C4Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43C4Cu) goto L_08A43C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43C4C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -8252,8 +9836,21 @@ L_08A43CE4: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A43CF0u); ctx.gpr[7] = (0u | 203u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 664u, 0x08A43CF0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43CF0u) goto L_08A43CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43CF0: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_08A43CF4; @@ -8281,8 +9878,21 @@ L_08A43D0C: L_08A43D14: aot_gpr_31 = (0x08A43D1Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 669u, 0x08A43D1Cu, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43D1Cu) goto L_08A43D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43D1C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8391,8 +10001,8 @@ L_08A43DD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A43DF4: @@ -8413,8 +10023,21 @@ L_08A43DF4: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A43E58u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 685u, 0x08A43E58u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43E58u) goto L_08A43E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43E58: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8440,8 +10063,21 @@ L_08A43E70: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A43E88u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 689u, 0x08A43E88u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43E88u) goto L_08A43E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43E88: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8478,8 +10114,21 @@ L_08A43EB0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(112))); aot_gpr_31 = (0x08A43EBCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 695u, 0x08A43EBCu, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43EBCu) goto L_08A43EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43EBC: aot_gpr_31 = (0x08A43EC4u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(10))); @@ -8488,8 +10137,21 @@ L_08A43EBC: L_08A43EC4: aot_gpr_31 = (0x08A43ECCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 697u, 0x08A43ECCu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43ECCu) goto L_08A43ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43ECC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8534,8 +10196,21 @@ L_08A43EF0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A43F24u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0143->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0143_entry, 702u, 0x08A43F24u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A43F24u) goto L_08A43F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A43F24: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0144.cpp b/profiles/vcs/generated/generated_unit_0144.cpp index f980b2d..0ce1e10 100644 --- a/profiles/vcs/generated/generated_unit_0144.cpp +++ b/profiles/vcs/generated/generated_unit_0144.cpp @@ -865,6 +865,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A44000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -934,8 +958,21 @@ L_08A44064: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A440A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 5u, 0x08A440A8u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A440A8u) goto L_08A440A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A440A8: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(11))); aot_gpr_6 = (aot_gpr_6 + static_cast(28)); @@ -943,8 +980,21 @@ L_08A440A8: aot_gpr_5 = (0u | 1500u); aot_gpr_31 = (0x08A440C0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 6u, 0x08A440C0u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A440C0u) goto L_08A440C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A440C0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(112))); aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(10))); @@ -959,8 +1009,21 @@ L_08A440C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A440F4u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 7u, 0x08A440F4u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A440F4u) goto L_08A440F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A440F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -971,8 +1034,21 @@ L_08A440F4: L_08A440FC: aot_gpr_31 = (0x08A44104u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 9u, 0x08A44104u, 0x08911284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 327u, 0x08911284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44104u) goto L_08A44104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44104: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1154,8 +1230,21 @@ L_08A44250: L_08A44264: aot_gpr_31 = (0x08A4426Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 31u, 0x08A4426Cu, 0x088E2A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 281u, 0x088E2A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4426Cu) goto L_08A4426C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4426C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -1175,8 +1264,21 @@ L_08A44284: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(11))); aot_gpr_31 = (0x08A44294u); aot_gpr_6 = (aot_gpr_6 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 35u, 0x08A44294u, 0x0893E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 600u, 0x0893E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44294u) goto L_08A44294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44294: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1204,8 +1306,21 @@ L_08A442B4: ctx.gpr[7] = (ctx.gpr[7] + static_cast(32)); aot_gpr_31 = (0x08A442C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 40u, 0x08A442C8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A442C8u) goto L_08A442C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A442C8: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(16), std::bit_cast(aot_fpr_12)); @@ -1247,8 +1362,21 @@ L_08A44308: L_08A44310: aot_gpr_31 = (0x08A44318u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 46u, 0x08A44318u, 0x088E2A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 281u, 0x088E2A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44318u) goto L_08A44318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44318: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -1268,8 +1396,21 @@ L_08A44330: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(11))); aot_gpr_31 = (0x08A44340u); aot_gpr_6 = (aot_gpr_6 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 50u, 0x08A44340u, 0x0893E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 600u, 0x0893E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44340u) goto L_08A44340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44340: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1297,8 +1438,21 @@ L_08A44360: ctx.gpr[7] = (ctx.gpr[7] + static_cast(32)); aot_gpr_31 = (0x08A44374u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 55u, 0x08A44374u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44374u) goto L_08A44374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44374: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(16), std::bit_cast(aot_fpr_12)); @@ -1320,8 +1474,21 @@ L_08A44388: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A443BCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 57u, 0x08A443BCu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A443BCu) goto L_08A443BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A443BC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1335,8 +1502,21 @@ L_08A443C8: ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A443D8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 59u, 0x08A443D8u, 0x08A3FBC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 572u, 0x08A3FBC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A443D8u) goto L_08A443D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A443D8: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1439,8 +1619,21 @@ L_08A4442C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A4446Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 65u, 0x08A4446Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4446Cu) goto L_08A4446C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4446C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1471,8 +1664,21 @@ L_08A44488: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A444B0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 69u, 0x08A444B0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A444B0u) goto L_08A444B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A444B0: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 255u); @@ -1507,8 +1713,21 @@ L_08A444D4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44510u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 72u, 0x08A44510u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44510u) goto L_08A44510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44510: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -1556,8 +1775,21 @@ L_08A44510: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44580u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 73u, 0x08A44580u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44580u) goto L_08A44580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44580: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[24]), std::bit_cast(aot_fpr_22), std::bit_cast(ctx.fpr[20])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(96), aot_run_words); } @@ -1596,8 +1828,21 @@ L_08A44580: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A445D0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 74u, 0x08A445D0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A445D0u) goto L_08A445D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A445D0: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(212), aot_run_words); @@ -1614,8 +1859,8 @@ L_08A445D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A44600: @@ -1634,8 +1879,21 @@ L_08A44600: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08A44670u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 76u, 0x08A44670u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44670u) goto L_08A44670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44670: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1718,8 +1976,21 @@ L_08A446E4: aot_gpr_4 = (ctx.gpr[7] | 0u); aot_gpr_31 = (0x08A446FCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 86u, 0x08A446FCu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A446FCu) goto L_08A446FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A446FC: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1805,8 +2076,21 @@ L_08A447E0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(112))); aot_gpr_31 = (0x08A447ECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 92u, 0x08A447ECu, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A447ECu) goto L_08A447EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A447EC: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(96))); @@ -1814,8 +2098,21 @@ L_08A447EC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08A44804u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 93u, 0x08A44804u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44804u) goto L_08A44804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44804: aot_gpr_31 = (0x08A4480Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -1851,8 +2148,21 @@ L_08A4482C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A44858u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 97u, 0x08A44858u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44858u) goto L_08A44858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44858: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1864,8 +2174,21 @@ L_08A44858: L_08A44864: aot_gpr_31 = (0x08A4486Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 99u, 0x08A4486Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4486Cu) goto L_08A4486C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4486C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1919,8 +2242,21 @@ L_08A44874: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A448DCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 101u, 0x08A448DCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A448DCu) goto L_08A448DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A448DC: aot_gpr_4 = (0u | 6u); aot_gpr_5 = (aot_gpr_29 | 0u); @@ -1932,8 +2268,21 @@ L_08A448DC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44904u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 102u, 0x08A44904u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44904u) goto L_08A44904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44904: aot_gpr_4 = (0u | 6u); aot_gpr_5 = (aot_gpr_29 | 0u); @@ -1945,8 +2294,21 @@ L_08A44904: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4492Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 103u, 0x08A4492Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4492Cu) goto L_08A4492C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4492C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(344))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1993,8 +2355,21 @@ L_08A44974: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A449B4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 107u, 0x08A449B4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A449B4u) goto L_08A449B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A449B4: aot_gpr_31 = (0x08A449BCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A449BCu) goto L_08A449BC; @@ -2026,8 +2401,21 @@ L_08A449DC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44A1Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 110u, 0x08A44A1Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44A1Cu) goto L_08A44A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44A1C: { const bool branch_taken = ctx.gpr[23] != ctx.gpr[17]; if (branch_taken) { @@ -2086,8 +2474,21 @@ L_08A44A68: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44A9Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 116u, 0x08A44A9Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44A9Cu) goto L_08A44A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44A9C: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(80), aot_run_words); } @@ -2126,8 +2527,21 @@ L_08A44A9C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44AE8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 117u, 0x08A44AE8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44AE8u) goto L_08A44AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44AE8: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(64), aot_run_words); } @@ -2164,8 +2578,21 @@ L_08A44AE8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44B2Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 118u, 0x08A44B2Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44B2Cu) goto L_08A44B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44B2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), std::bit_cast(ctx.fpr[26])); @@ -2206,8 +2633,21 @@ L_08A44B2C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44B7Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 119u, 0x08A44B7Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44B7Cu) goto L_08A44B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44B7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(ctx.fpr[26])); @@ -2225,8 +2665,21 @@ L_08A44B7C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44BBCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 120u, 0x08A44BBCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44BBCu) goto L_08A44BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44BBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(64))); aot_gpr_5 = (0u | 9u); @@ -2319,8 +2772,21 @@ L_08A44C3C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44C64u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 123u, 0x08A44C64u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44C64u) goto L_08A44C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44C64: aot_gpr_4 = (0u | 8u); aot_gpr_5 = (aot_gpr_29 | 0u); @@ -2332,8 +2798,21 @@ L_08A44C64: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44C8Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 124u, 0x08A44C8Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44C8Cu) goto L_08A44C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44C8C: aot_gpr_4 = (0u | 8u); aot_gpr_5 = (aot_gpr_29 | 0u); @@ -2345,8 +2824,21 @@ L_08A44C8C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A44CB4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 125u, 0x08A44CB4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44CB4u) goto L_08A44CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44CB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(112))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -2505,8 +2997,21 @@ L_08A44DF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A44E28u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 140u, 0x08A44E28u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44E28u) goto L_08A44E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44E28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2528,8 +3033,21 @@ L_08A44E30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(184), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A44E64u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 142u, 0x08A44E64u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44E64u) goto L_08A44E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44E64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(344))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2558,8 +3076,21 @@ L_08A44E80: aot_gpr_5 = (0u | 3000u); aot_gpr_31 = (0x08A44E9Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 146u, 0x08A44E9Cu, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44E9Cu) goto L_08A44E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44E9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2575,8 +3106,21 @@ L_08A44EA4: aot_gpr_5 = (0u | 1500u); aot_gpr_31 = (0x08A44EC0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 148u, 0x08A44EC0u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44EC0u) goto L_08A44EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44EC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2659,8 +3203,21 @@ L_08A44F5C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A44F84u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 156u, 0x08A44F84u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44F84u) goto L_08A44F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44F84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2682,8 +3239,21 @@ L_08A44F8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(216), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A44FC0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 158u, 0x08A44FC0u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44FC0u) goto L_08A44FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44FC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(356))); goto L_08A44FC4; @@ -2707,8 +3277,21 @@ L_08A44FE0: aot_gpr_6 = (aot_mem.aot_direct_load_word_left(ctx.gpr[20] + static_cast(35), aot_gpr_6)); aot_gpr_31 = (0x08A44FFCu); aot_gpr_6 = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 161u, 0x08A44FFCu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A44FFCu) goto L_08A44FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A44FFC: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2989,8 +3572,21 @@ L_08A45220: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08A45230u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 192u, 0x08A45230u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45230u) goto L_08A45230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45230: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(10000)); @@ -3006,8 +3602,21 @@ L_08A45244: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45250u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 194u, 0x08A45250u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45250u) goto L_08A45250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45250: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(200)); @@ -3062,8 +3671,21 @@ L_08A452B0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A452BCu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 201u, 0x08A452BCu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A452BCu) goto L_08A452BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A452BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3075,8 +3697,21 @@ L_08A452C4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A452D0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 203u, 0x08A452D0u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A452D0u) goto L_08A452D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A452D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -3114,8 +3749,8 @@ L_08A452F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(432)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A45338: @@ -3160,8 +3795,21 @@ L_08A453B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6312))); aot_gpr_31 = (0x08A453CCu); aot_gpr_6 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 209u, 0x08A453CCu, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A453CCu) goto L_08A453CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A453CC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6292))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6296))); @@ -3226,8 +3874,21 @@ L_08A45430: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45444u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 217u, 0x08A45444u, 0x08A3FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 568u, 0x08A3FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45444u) goto L_08A45444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45444: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3328,8 +3989,21 @@ L_08A454E0: } L_08A454E8: aot_gpr_31 = (0x08A454F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 226u, 0x08A454F0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A454F0u) goto L_08A454F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A454F0: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_22; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_22 = std::bit_cast(0x7FC00000u); else aot_fpr_22 = fs * ft; } goto L_08A454F4; @@ -3450,8 +4124,21 @@ L_08A455FC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A45608u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 237u, 0x08A45608u, 0x08937FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 1149u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 1149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 1149u, 0x08937FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45608u) goto L_08A45608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45608: aot_gpr_31 = (0x08A45610u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); @@ -3493,8 +4180,21 @@ L_08A45634: L_08A45644: aot_gpr_31 = (0x08A4564Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 243u, 0x08A4564Cu, 0x08A40FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 212u, 0x08A40FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4564Cu) goto L_08A4564C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4564C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3526,8 +4226,8 @@ L_08A45670: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6664))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A45688: @@ -3535,8 +4235,21 @@ L_08A45688: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45698u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0146. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 248u, 0x08A45698u, 0x08A4D824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0146_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0146_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0146_entry, 146u, 239u, 0x08A4D824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45698u) goto L_08A45698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45698: ctx.gpr[19] = (aot_gpr_2 | 0u); ctx.gpr[20] = (0u | 1u); @@ -3561,8 +4274,21 @@ L_08A456B8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A456C4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0146. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 252u, 0x08A456C4u, 0x08A4DE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0146_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0146_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0146_entry, 146u, 282u, 0x08A4DE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A456C4u) goto L_08A456C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A456C4: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -3579,8 +4305,21 @@ L_08A456CC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A456E8u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 254u, 0x08A456E8u, 0x08A4842Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 46u, 0x08A4842Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A456E8u) goto L_08A456E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A456E8: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08A456EC; @@ -3626,8 +4365,21 @@ L_08A4572C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A45738u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0146. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 261u, 0x08A45738u, 0x08A4E990u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0146_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0146_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0146_entry, 146u, 378u, 0x08A4E990u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45738u) goto L_08A45738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45738: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -3685,8 +4437,21 @@ L_08A457A0: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A457BCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 267u, 0x08A457BCu, 0x08A4842Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 46u, 0x08A4842Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A457BCu) goto L_08A457BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A457BC: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(472))); @@ -3731,8 +4496,21 @@ L_08A45808: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A45824u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 272u, 0x08A45824u, 0x08A4842Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 46u, 0x08A4842Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45824u) goto L_08A45824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45824: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08A45828; @@ -3759,8 +4537,21 @@ L_08A45834: L_08A45848: aot_gpr_31 = (0x08A45850u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 277u, 0x08A45850u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45850u) goto L_08A45850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45850: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3771,8 +4562,21 @@ L_08A45850: L_08A45858: aot_gpr_31 = (0x08A45860u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 279u, 0x08A45860u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45860u) goto L_08A45860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45860: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3854,8 +4658,21 @@ L_08A458C4: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A458D8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 283u, 0x08A458D8u, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A458D8u) goto L_08A458D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A458D8: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -3880,8 +4697,21 @@ L_08A458EC: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A45900u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 287u, 0x08A45900u, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45900u) goto L_08A45900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45900: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08A45904; @@ -3913,8 +4743,21 @@ L_08A4591C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45940u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 292u, 0x08A45940u, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45940u) goto L_08A45940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45940: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -3936,8 +4779,21 @@ L_08A45948: L_08A4595C: aot_gpr_31 = (0x08A45964u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 295u, 0x08A45964u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45964u) goto L_08A45964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45964: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3948,8 +4804,21 @@ L_08A45964: L_08A4596C: aot_gpr_31 = (0x08A45974u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 297u, 0x08A45974u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45974u) goto L_08A45974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45974: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4042,8 +4911,21 @@ L_08A45A04: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45A14u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 302u, 0x08A45A14u, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45A14u) goto L_08A45A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45A14: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -4060,8 +4942,21 @@ L_08A45A20: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45A3Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 304u, 0x08A45A3Cu, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45A3Cu) goto L_08A45A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45A3C: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08A45A40; @@ -4080,14 +4975,40 @@ L_08A45A50: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08A45A64u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 307u, 0x08A45A64u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45A64u) goto L_08A45A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45A64: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45A70u); aot_gpr_5 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 308u, 0x08A45A70u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45A70u) goto L_08A45A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45A70: aot_gpr_4 = (aot_gpr_2 << 5u); aot_gpr_5 = (aot_gpr_2 << 2u); @@ -4098,8 +5019,21 @@ L_08A45A70: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45A94u); aot_gpr_5 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 309u, 0x08A45A94u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45A94u) goto L_08A45A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45A94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4115,8 +5049,21 @@ L_08A45A9C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45AB8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 311u, 0x08A45AB8u, 0x08A4B48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 614u, 0x08A4B48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45AB8u) goto L_08A45AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45AB8: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -4130,8 +5077,21 @@ L_08A45AC4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45AD4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 313u, 0x08A45AD4u, 0x08A4BB5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 683u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 683u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 683u, 0x08A4BB5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45AD4u) goto L_08A45AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45AD4: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -4143,8 +5103,21 @@ L_08A45AD4: L_08A45AE0: aot_gpr_31 = (0x08A45AE8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 315u, 0x08A45AE8u, 0x0889462Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 68u, 0x0889462Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45AE8u) goto L_08A45AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45AE8: ctx.gpr[19] = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(12), ctx.gpr[19]); @@ -4159,14 +5132,40 @@ L_08A45AFC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A45B08u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0146. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 317u, 0x08A45B08u, 0x08A4E3A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0146_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0146_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0146_entry, 146u, 327u, 0x08A4E3A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45B08u) goto L_08A45B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45B08: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A45B14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 318u, 0x08A45B14u, 0x088E29C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 261u, 0x088E29C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45B14u) goto L_08A45B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45B14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4230,8 +5229,21 @@ L_08A45B78: aot_gpr_6 = (0u | 55u); aot_gpr_31 = (0x08A45B94u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 326u, 0x08A45B94u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45B94u) goto L_08A45B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45B94: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -4242,8 +5254,21 @@ L_08A45B94: L_08A45B9C: aot_gpr_31 = (0x08A45BA4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 328u, 0x08A45BA4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45BA4u) goto L_08A45BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45BA4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4254,8 +5279,21 @@ L_08A45BA4: L_08A45BAC: aot_gpr_31 = (0x08A45BB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 330u, 0x08A45BB4u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45BB4u) goto L_08A45BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45BB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -4272,8 +5310,21 @@ L_08A45BD0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A45BDCu); aot_gpr_5 = (0u | 115u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 332u, 0x08A45BDCu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45BDCu) goto L_08A45BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45BDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + static_cast(-12)); @@ -4290,8 +5341,8 @@ L_08A45BF0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6776))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A45C08: @@ -4381,8 +5432,21 @@ L_08A45C88: } L_08A45C90: aot_gpr_31 = (0x08A45C98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 347u, 0x08A45C98u, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45C98u) goto L_08A45C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45C98: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4432,8 +5496,21 @@ L_08A45CE8: aot_gpr_6 = (0u | 58u); aot_gpr_31 = (0x08A45D04u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 353u, 0x08A45D04u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45D04u) goto L_08A45D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45D04: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), aot_gpr_4); @@ -4481,8 +5558,21 @@ L_08A45D64: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A45D70u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 358u, 0x08A45D70u, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45D70u) goto L_08A45D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45D70: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -4638,8 +5728,21 @@ L_08A45E94: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08A45EBCu); aot_gpr_6 = (0u | 189u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 376u, 0x08A45EBCu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A45EBCu) goto L_08A45EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A45EBC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -4689,8 +5792,8 @@ L_08A45EF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A45F20: @@ -4826,8 +5929,21 @@ L_08A45FF8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A46018u); aot_gpr_6 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 397u, 0x08A46018u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46018u) goto L_08A46018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46018: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -4861,8 +5977,21 @@ L_08A46044: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), aot_gpr_4); aot_gpr_31 = (0x08A46054u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 402u, 0x08A46054u, 0x088F3578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 664u, 0x088F3578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46054u) goto L_08A46054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46054: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5038,8 +6167,8 @@ L_08A461A0: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[19]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6880))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A461B8: @@ -5118,8 +6247,21 @@ L_08A46248: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4626Cu); aot_gpr_6 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 431u, 0x08A4626Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4626Cu) goto L_08A4626C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4626C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -5191,8 +6333,21 @@ L_08A462F8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4631Cu); aot_gpr_6 = (0u | 56u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 438u, 0x08A4631Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4631Cu) goto L_08A4631C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4631C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -5206,8 +6361,21 @@ L_08A4631C: L_08A46330: aot_gpr_31 = (0x08A46338u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 440u, 0x08A46338u, 0x08A40FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 212u, 0x08A40FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46338u) goto L_08A46338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46338: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(8), 0u); goto L_08A4633C; @@ -5230,8 +6398,8 @@ L_08A46344: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A46364: @@ -5416,8 +6584,21 @@ L_08A464E8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A464FCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 463u, 0x08A464FCu, 0x0882ABA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 261u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 261u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 261u, 0x0882ABA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A464FCu) goto L_08A464FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A464FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_5 = (0u | 11u); @@ -5443,8 +6624,21 @@ L_08A4651C: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A46534u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 467u, 0x08A46534u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46534u) goto L_08A46534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46534: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(964), ctx.gpr[16]); goto L_08A46538; @@ -5467,8 +6661,21 @@ L_08A4654C: L_08A46554: aot_gpr_31 = (0x08A4655Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 472u, 0x08A4655Cu, 0x089476BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 707u, 0x089476BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4655Cu) goto L_08A4655C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4655C: if (aot_gpr_2 == 0u) { aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(956), ctx.gpr[30]); @@ -5551,8 +6758,21 @@ L_08A465F4: aot_gpr_6 = (aot_gpr_29 + static_cast(592)); aot_gpr_31 = (0x08A46604u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 482u, 0x08A46604u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46604u) goto L_08A46604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46604: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(592))); @@ -5579,8 +6799,21 @@ L_08A46620: L_08A4662C: aot_gpr_31 = (0x08A46634u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 487u, 0x08A46634u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46634u) goto L_08A46634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46634: { const bool branch_taken = ctx.gpr[16] != aot_gpr_2; if (branch_taken) { @@ -5623,8 +6856,21 @@ L_08A46660: L_08A4666C: aot_gpr_31 = (0x08A46674u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 494u, 0x08A46674u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46674u) goto L_08A46674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46674: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5643,8 +6889,21 @@ L_08A4667C: L_08A46684: aot_gpr_31 = (0x08A4668Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 497u, 0x08A4668Cu, 0x089AB910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 762u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 762u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 762u, 0x089AB910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4668Cu) goto L_08A4668C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4668C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5686,8 +6945,21 @@ L_08A466B8: aot_gpr_6 = (aot_gpr_29 + static_cast(593)); aot_gpr_31 = (0x08A466C8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 503u, 0x08A466C8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A466C8u) goto L_08A466C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A466C8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(593))); @@ -5908,8 +7180,21 @@ L_08A46830: L_08A46840: aot_gpr_31 = (0x08A46848u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 525u, 0x08A46848u, 0x08903BB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 678u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 678u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 678u, 0x08903BB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46848u) goto L_08A46848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46848: aot_gpr_5 = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -6281,8 +7566,21 @@ L_08A469FC: L_08A46A6C: aot_gpr_31 = (0x08A46A74u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 549u, 0x08A46A74u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46A74u) goto L_08A46A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46A74: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -6303,8 +7601,21 @@ L_08A46A88: aot_gpr_6 = (aot_gpr_29 + static_cast(704)); aot_gpr_31 = (0x08A46A98u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 552u, 0x08A46A98u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46A98u) goto L_08A46A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46A98: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(704))); @@ -6315,8 +7626,21 @@ L_08A46AA8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(184))); aot_gpr_31 = (0x08A46AB4u); aot_gpr_4 = (aot_gpr_29 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 554u, 0x08A46AB4u, 0x08906CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 605u, 0x08906CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46AB4u) goto L_08A46AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46AB4: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_08A46AB8; @@ -6421,8 +7745,21 @@ L_08A46B58: L_08A46B64: aot_gpr_31 = (0x08A46B6Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 568u, 0x08A46B6Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46B6Cu) goto L_08A46B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46B6C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6470,8 +7807,21 @@ L_08A46BAC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A46BC8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 574u, 0x08A46BC8u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46BC8u) goto L_08A46BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46BC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6484,8 +7834,21 @@ L_08A46BD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); aot_gpr_31 = (0x08A46BE0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 576u, 0x08A46BE0u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46BE0u) goto L_08A46BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46BE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6516,8 +7879,21 @@ L_08A46C08: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A46C14u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 581u, 0x08A46C14u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46C14u) goto L_08A46C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46C14: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(954))); @@ -6555,8 +7931,21 @@ L_08A46C44: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A46C50u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 586u, 0x08A46C50u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46C50u) goto L_08A46C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46C50: ctx.gpr[21] = (0u | 0u); aot_gpr_4 = (0u | 57u); @@ -6831,8 +8220,21 @@ L_08A46DF0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A46E18u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 621u, 0x08A46E18u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46E18u) goto L_08A46E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46E18: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6844,8 +8246,21 @@ L_08A46E18: L_08A46E24: aot_gpr_31 = (0x08A46E2Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 623u, 0x08A46E2Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46E2Cu) goto L_08A46E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46E2C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6902,8 +8317,21 @@ L_08A46E34: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A46EA8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 625u, 0x08A46EA8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46EA8u) goto L_08A46EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46EA8: aot_gpr_4 = (0u | 6u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -6915,8 +8343,21 @@ L_08A46EA8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A46ED0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 626u, 0x08A46ED0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46ED0u) goto L_08A46ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46ED0: aot_gpr_4 = (0u | 6u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -6928,8 +8369,21 @@ L_08A46ED0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A46EF8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 627u, 0x08A46EF8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46EF8u) goto L_08A46EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46EF8: { const bool branch_taken = ctx.gpr[30] == 0u; ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(972))); @@ -6979,8 +8433,21 @@ L_08A46F40: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A46F8Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 631u, 0x08A46F8Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46F8Cu) goto L_08A46F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46F8C: aot_gpr_31 = (0x08A46F94u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20998, 199u, 113u, 0x08B20998u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_29, aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 113u, 0x08B20998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46F94u) goto L_08A46F94; @@ -7012,8 +8479,21 @@ L_08A46FB4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A46FF4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 634u, 0x08A46FF4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A46FF4u) goto L_08A46FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A46FF4: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(972))); goto L_08A46FF8; @@ -7079,8 +8559,21 @@ L_08A47048: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A47088u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 642u, 0x08A47088u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47088u) goto L_08A47088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47088: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(980), ctx.gpr[19]); goto L_08A4708C; @@ -7131,8 +8624,21 @@ L_08A4708C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A470F8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 644u, 0x08A470F8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A470F8u) goto L_08A470F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A470F8: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_22), std::bit_cast(aot_fpr_22), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(208), aot_run_words); } @@ -7169,8 +8675,21 @@ L_08A470F8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4713Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 645u, 0x08A4713Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4713Cu) goto L_08A4713C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4713C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(208), std::bit_cast(aot_fpr_22)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), std::bit_cast(aot_fpr_22)); @@ -7211,8 +8730,21 @@ L_08A4713C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4718Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 646u, 0x08A4718Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4718Cu) goto L_08A4718C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4718C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(224), std::bit_cast(aot_fpr_22)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(228), std::bit_cast(aot_fpr_22)); @@ -7230,8 +8762,21 @@ L_08A4718C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A471CCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 647u, 0x08A471CCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A471CCu) goto L_08A471CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A471CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(964))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -7266,8 +8811,21 @@ L_08A47200: aot_gpr_6 = (0u | 205u); aot_gpr_31 = (0x08A47224u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 650u, 0x08A47224u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47224u) goto L_08A47224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47224: aot_gpr_31 = (0x08A4722Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4722Cu) goto L_08A4722C; @@ -7392,8 +8950,21 @@ L_08A472E8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A47318u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 657u, 0x08A47318u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47318u) goto L_08A47318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47318: aot_gpr_4 = (0u | 8u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -7405,8 +8976,21 @@ L_08A47318: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A47340u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 658u, 0x08A47340u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47340u) goto L_08A47340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47340: aot_gpr_4 = (0u | 8u); aot_gpr_5 = (ctx.gpr[21] | 0u); @@ -7418,8 +9002,21 @@ L_08A47340: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A47368u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 659u, 0x08A47368u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47368u) goto L_08A47368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47368: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(972))); goto L_08A4736C; @@ -7584,8 +9181,21 @@ L_08A4749C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(312), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A474D0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 676u, 0x08A474D0u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A474D0u) goto L_08A474D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A474D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7607,8 +9217,21 @@ L_08A474D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(328), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A4750Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 678u, 0x08A4750Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4750Cu) goto L_08A4750C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4750C: if (ctx.gpr[30] == 0u) { aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(952))); @@ -7633,8 +9256,21 @@ L_08A47524: aot_gpr_5 = (0u | 3000u); aot_gpr_31 = (0x08A4753Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 682u, 0x08A4753Cu, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4753Cu) goto L_08A4753C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4753C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7648,14 +9284,40 @@ L_08A47544: aot_gpr_5 = (0u | 1500u); aot_gpr_31 = (0x08A47558u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 684u, 0x08A47558u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47558u) goto L_08A47558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47558: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A47564u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 685u, 0x08A47564u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47564u) goto L_08A47564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47564: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7749,8 +9411,21 @@ L_08A47624: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(344), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A47650u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 693u, 0x08A47650u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47650u) goto L_08A47650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47650: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7772,8 +9447,21 @@ L_08A47658: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(360), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A4768Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 695u, 0x08A4768Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4768Cu) goto L_08A4768C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4768C: aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(8), aot_gpr_4); @@ -7835,8 +9523,21 @@ L_08A476EC: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A47704u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 702u, 0x08A47704u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47704u) goto L_08A47704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47704: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7851,8 +9552,21 @@ L_08A4770C: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A47724u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 704u, 0x08A47724u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47724u) goto L_08A47724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47724: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7876,8 +9590,21 @@ L_08A4773C: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A47754u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 707u, 0x08A47754u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47754u) goto L_08A47754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47754: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7892,8 +9619,21 @@ L_08A4775C: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A47774u); ctx.gpr[8] = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 709u, 0x08A47774u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47774u) goto L_08A47774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47774: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8072,8 +9812,21 @@ L_08A478E0: aot_gpr_5 = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x08A47964u); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 724u, 0x08A47964u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47964u) goto L_08A47964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47964: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(954))); goto L_08A47968; @@ -8119,8 +9872,21 @@ L_08A4798C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); aot_gpr_31 = (0x08A479CCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 727u, 0x08A479CCu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A479CCu) goto L_08A479CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A479CC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -8155,8 +9921,21 @@ L_08A47A00: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x08A47A14u); ctx.gpr[19] = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 731u, 0x08A47A14u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47A14u) goto L_08A47A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47A14: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8396,8 +10175,21 @@ L_08A47C1C: aot_gpr_5 = (aot_gpr_29 + static_cast(418)); aot_gpr_31 = (0x08A47C74u); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 753u, 0x08A47C74u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47C74u) goto L_08A47C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47C74: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8424,8 +10216,21 @@ L_08A47C74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A47CACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 754u, 0x08A47CACu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47CACu) goto L_08A47CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47CAC: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -8458,8 +10263,21 @@ L_08A47CD4: L_08A47CDC: aot_gpr_31 = (0x08A47CE4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 759u, 0x08A47CE4u, 0x08B01BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47CE4u) goto L_08A47CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47CE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8486,8 +10304,21 @@ L_08A47CEC: aot_gpr_5 = (16928u << 16u); aot_gpr_31 = (0x08A47D08u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 761u, 0x08A47D08u, 0x08AB437Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 62u, 0x08AB437Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47D08u) goto L_08A47D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47D08: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; if (branch_taken) { @@ -8503,8 +10334,21 @@ L_08A47D18: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A47D24u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 764u, 0x08A47D24u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47D24u) goto L_08A47D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47D24: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(636))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -8553,8 +10397,21 @@ L_08A47D48: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A47DB8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 767u, 0x08A47DB8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47DB8u) goto L_08A47DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47DB8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(2032))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(480), std::bit_cast(aot_fpr_12)); @@ -8598,8 +10455,21 @@ L_08A47DB8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A47E34u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0144->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0144_entry, 768u, 0x08A47E34u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A47E34u) goto L_08A47E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A47E34: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (aot_gpr_4 << 16u); diff --git a/profiles/vcs/generated/generated_unit_0145.cpp b/profiles/vcs/generated/generated_unit_0145.cpp index 247ca92..052df6e 100644 --- a/profiles/vcs/generated/generated_unit_0145.cpp +++ b/profiles/vcs/generated/generated_unit_0145.cpp @@ -801,6 +801,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A48000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -959,8 +983,21 @@ L_08A48120: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08A48130u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 17u, 0x08A48130u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48130u) goto L_08A48130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48130: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(10000)); @@ -976,8 +1013,21 @@ L_08A48144: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A48150u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 19u, 0x08A48150u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48150u) goto L_08A48150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48150: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); @@ -1032,8 +1082,21 @@ L_08A481B4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A481C0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 26u, 0x08A481C0u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A481C0u) goto L_08A481C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A481C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1045,8 +1108,21 @@ L_08A481C8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A481D4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 28u, 0x08A481D4u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A481D4u) goto L_08A481D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A481D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); @@ -1098,8 +1174,21 @@ L_08A48208: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A48240u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 32u, 0x08A48240u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48240u) goto L_08A48240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48240: ctx.gpr[23] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -1145,8 +1234,21 @@ L_08A4825C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A482C8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 35u, 0x08A482C8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A482C8u) goto L_08A482C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A482C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2032))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(544), std::bit_cast(aot_fpr_12)); @@ -1190,8 +1292,21 @@ L_08A482C8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A48344u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 36u, 0x08A48344u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48344u) goto L_08A48344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48344: aot_gpr_4 = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (aot_gpr_4 << 16u); @@ -1261,8 +1376,21 @@ L_08A483C4: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A483D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 44u, 0x08A483D8u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A483D8u) goto L_08A483D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A483D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 << 24u); @@ -1290,8 +1418,8 @@ L_08A483E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1056)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4842C: @@ -1409,8 +1537,21 @@ L_08A48504: } L_08A4850C: aot_gpr_31 = (0x08A48514u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 53u, 0x08A48514u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48514u) goto L_08A48514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48514: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A48518; @@ -1617,8 +1758,21 @@ L_08A486EC: L_08A486F4: aot_gpr_31 = (0x08A486FCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 73u, 0x08A486FCu, 0x089476BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 707u, 0x089476BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A486FCu) goto L_08A486FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A486FC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1746,8 +1900,21 @@ L_08A487DC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A48820u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 88u, 0x08A48820u, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48820u) goto L_08A48820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48820: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1782,8 +1949,21 @@ L_08A48848: L_08A48860: aot_gpr_31 = (0x08A48868u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 92u, 0x08A48868u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48868u) goto L_08A48868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48868: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2042,14 +2222,40 @@ L_08A48A48: aot_gpr_5 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A48A58u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 118u, 0x08A48A58u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48A58u) goto L_08A48A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48A58: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A48A64u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 119u, 0x08A48A64u, 0x089380CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 14u, 0x089380CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48A64u) goto L_08A48A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48A64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2079,16 +2285,42 @@ L_08A48A7C: aot_gpr_5 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A48A8Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 122u, 0x08A48A8Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48A8Cu) goto L_08A48A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48A8C: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A48AA0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 123u, 0x08A48AA0u, 0x08A40A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 115u, 0x08A40A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48AA0u) goto L_08A48AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48AA0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -2331,8 +2563,21 @@ L_08A48C9C: L_08A48CAC: aot_gpr_31 = (0x08A48CB4u); aot_gpr_4 = (aot_gpr_2 + static_cast(320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 149u, 0x08A48CB4u, 0x08A40A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 115u, 0x08A40A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48CB4u) goto L_08A48CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48CB4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -2447,8 +2692,21 @@ L_08A48DA8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A48DF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 159u, 0x08A48DF4u, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48DF4u) goto L_08A48DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48DF4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2464,8 +2722,21 @@ L_08A48DFC: ctx.gpr[7] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A48E18u); ctx.gpr[8] = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 161u, 0x08A48E18u, 0x08A51450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 169u, 0x08A51450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48E18u) goto L_08A48E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48E18: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2501,8 +2772,21 @@ L_08A48E18: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A48E48u); ctx.gpr[8] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 162u, 0x08A48E48u, 0x08A41030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 220u, 0x08A41030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48E48u) goto L_08A48E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48E48: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8422), static_cast(0u)); @@ -2537,8 +2821,21 @@ L_08A48E60: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A48E8Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 164u, 0x08A48E8Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48E8Cu) goto L_08A48E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48E8C: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(724))); @@ -2560,8 +2857,21 @@ L_08A48EAC: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A48EC4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 167u, 0x08A48EC4u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48EC4u) goto L_08A48EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48EC4: aot_gpr_2 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(aot_gpr_2)); @@ -2577,8 +2887,21 @@ L_08A48EC4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A48F08u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 168u, 0x08A48F08u, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48F08u) goto L_08A48F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48F08: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(0u)); { const bool branch_taken = 0u == 0u; @@ -2676,14 +2999,40 @@ L_08A48FA4: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A48FB8u); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 176u, 0x08A48FB8u, 0x08A50F48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 135u, 0x08A50F48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48FB8u) goto L_08A48FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48FB8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A48FC4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 177u, 0x08A48FC4u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A48FC4u) goto L_08A48FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A48FC4: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2865,8 +3214,21 @@ L_08A4910C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A49150u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 188u, 0x08A49150u, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49150u) goto L_08A49150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49150: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); ctx.gpr[17] = (0u | 1u); @@ -2905,8 +3267,21 @@ L_08A49184: ctx.gpr[7] = (0u | 4u); aot_gpr_31 = (0x08A4919Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 193u, 0x08A4919Cu, 0x089EE640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 345u, 0x089EE640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4919Cu) goto L_08A4919C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4919C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2936,8 +3311,21 @@ L_08A491B4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A491E8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 196u, 0x08A491E8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A491E8u) goto L_08A491E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A491E8: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (ctx.gpr[16] < static_cast(16) ? 1u : 0u); @@ -2985,8 +3373,21 @@ L_08A49230: } L_08A49238: aot_gpr_31 = (0x08A49240u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 202u, 0x08A49240u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49240u) goto L_08A49240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49240: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A49244; @@ -3082,8 +3483,21 @@ L_08A4931C: aot_gpr_5 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A4936Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 207u, 0x08A4936Cu, 0x08A4230Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 413u, 0x08A4230Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4936Cu) goto L_08A4936C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4936C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -3130,8 +3544,21 @@ L_08A493B8: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A493C8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 213u, 0x08A493C8u, 0x08A5071Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 85u, 0x08A5071Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A493C8u) goto L_08A493C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A493C8: aot_gpr_2 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(aot_gpr_2)); @@ -3147,8 +3574,21 @@ L_08A493C8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A4940Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 214u, 0x08A4940Cu, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4940Cu) goto L_08A4940C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4940C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(0u)); ctx.gpr[17] = (0u | 1u); @@ -3170,8 +3610,21 @@ L_08A49428: ctx.gpr[7] = (0u | 4u); aot_gpr_31 = (0x08A49440u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 217u, 0x08A49440u, 0x089EE640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 345u, 0x089EE640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49440u) goto L_08A49440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49440: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3201,8 +3654,21 @@ L_08A49458: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4948Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 220u, 0x08A4948Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4948Cu) goto L_08A4948C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4948C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 16 ? 1u : 0u); @@ -3272,8 +3738,21 @@ L_08A494FC: L_08A49504: aot_gpr_31 = (0x08A4950Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 228u, 0x08A4950Cu, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4950Cu) goto L_08A4950C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4950C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3285,8 +3764,21 @@ L_08A49514: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_gpr_31 = (0x08A49520u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 230u, 0x08A49520u, 0x089AB910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 762u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 762u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 762u, 0x089AB910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49520u) goto L_08A49520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49520: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3313,8 +3805,21 @@ L_08A49544: ctx.gpr[7] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4955Cu); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 233u, 0x08A4955Cu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4955Cu) goto L_08A4955C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4955C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3357,8 +3862,21 @@ L_08A49594: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A495ACu); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 238u, 0x08A495ACu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A495ACu) goto L_08A495AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A495AC: aot_gpr_31 = (0x08A495B4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A495B4u) goto L_08A495B4; @@ -3384,8 +3902,21 @@ L_08A495CC: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A495DCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 242u, 0x08A495DCu, 0x08A41AACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 318u, 0x08A41AACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A495DCu) goto L_08A495DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A495DC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3441,8 +3972,21 @@ L_08A495E8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A496A0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 244u, 0x08A496A0u, 0x08A427C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 456u, 0x08A427C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A496A0u) goto L_08A496A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A496A0: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(8))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(524), static_cast(aot_gpr_4)); @@ -3475,8 +4019,21 @@ L_08A496A0: aot_gpr_5 = (aot_gpr_29 + static_cast(488)); aot_gpr_31 = (0x08A4971Cu); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 245u, 0x08A4971Cu, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4971Cu) goto L_08A4971C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4971C: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(616))); goto L_08A49720; @@ -3525,8 +4082,21 @@ L_08A49760: ctx.gpr[11] = (ctx.gpr[11] & 255u); aot_gpr_31 = (0x08A497A0u); ctx.gpr[8] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 250u, 0x08A497A0u, 0x08A42880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 470u, 0x08A42880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A497A0u) goto L_08A497A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A497A0: ctx.gpr[21] = (0u | 1u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -3564,8 +4134,21 @@ L_08A497D0: ctx.gpr[7] = (0u | 4u); aot_gpr_31 = (0x08A497E8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 255u, 0x08A497E8u, 0x089EE640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 345u, 0x089EE640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A497E8u) goto L_08A497E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A497E8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3595,8 +4178,21 @@ L_08A49800: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A49834u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 258u, 0x08A49834u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49834u) goto L_08A49834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49834: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (ctx.gpr[16] < static_cast(16) ? 1u : 0u); @@ -3771,8 +4367,8 @@ L_08A49960: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(688)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A499A4: @@ -3808,8 +4404,21 @@ L_08A49A24: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A49A30u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 280u, 0x08A49A30u, 0x08A42E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 503u, 0x08A42E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49A30u) goto L_08A49A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49A30: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -3877,8 +4486,21 @@ L_08A49A8C: L_08A49A94: aot_gpr_31 = (0x08A49A9Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 290u, 0x08A49A9Cu, 0x089476BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 707u, 0x089476BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49A9Cu) goto L_08A49A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49A9C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4198,8 +4820,21 @@ L_08A49CB4: L_08A49CE4: aot_gpr_31 = (0x08A49CECu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20328))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 309u, 0x08A49CECu, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49CECu) goto L_08A49CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49CEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4210,8 +4845,21 @@ L_08A49CEC: L_08A49CF4: aot_gpr_31 = (0x08A49CFCu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20324))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 311u, 0x08A49CFCu, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49CFCu) goto L_08A49CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49CFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4237,8 +4885,21 @@ L_08A49D1C: aot_gpr_5 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A49D40u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 314u, 0x08A49D40u, 0x08827CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 584u, 0x08827CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49D40u) goto L_08A49D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49D40: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), std::bit_cast(aot_fpr_12)); @@ -4265,8 +4926,21 @@ L_08A49D40: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A49D78u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 315u, 0x08A49D78u, 0x088AA4A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 324u, 0x088AA4A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49D78u) goto L_08A49D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49D78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -4329,8 +5003,21 @@ L_08A49DF0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x08A49E08u); ctx.gpr[16] = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 322u, 0x08A49E08u, 0x089D273Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 419u, 0x089D273Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49E08u) goto L_08A49E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49E08: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4386,8 +5073,21 @@ L_08A49E60: aot_gpr_6 = (aot_gpr_29 + static_cast(736)); aot_gpr_31 = (0x08A49E70u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 329u, 0x08A49E70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49E70u) goto L_08A49E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49E70: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(736))); @@ -4468,8 +5168,21 @@ L_08A49EE8: L_08A49EF0: aot_gpr_31 = (0x08A49EF8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 340u, 0x08A49EF8u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49EF8u) goto L_08A49EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49EF8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4515,8 +5228,21 @@ L_08A49F34: aot_gpr_6 = (aot_gpr_29 + static_cast(737)); aot_gpr_31 = (0x08A49F44u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 346u, 0x08A49F44u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49F44u) goto L_08A49F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49F44: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(737))); @@ -4583,8 +5309,21 @@ L_08A49FAC: aot_gpr_5 = (aot_gpr_29 + static_cast(144)); aot_gpr_31 = (0x08A49FB8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 353u, 0x08A49FB8u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49FB8u) goto L_08A49FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49FB8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -4608,8 +5347,21 @@ L_08A49FD0: aot_gpr_6 = (aot_gpr_29 + static_cast(738)); aot_gpr_31 = (0x08A49FE0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 356u, 0x08A49FE0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49FE0u) goto L_08A49FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49FE0: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(738))); @@ -4620,8 +5372,21 @@ L_08A49FEC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(184))); aot_gpr_31 = (0x08A49FFCu); aot_gpr_4 = (aot_gpr_29 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 358u, 0x08A49FFCu, 0x08906CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 605u, 0x08906CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A49FFCu) goto L_08A49FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A49FFC: ctx.gpr[16] = (aot_gpr_2 | 0u); goto L_08A4A000; @@ -4645,8 +5410,21 @@ L_08A4A014: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4A020u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 362u, 0x08A4A020u, 0x088E43E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 36u, 0x088E43E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A020u) goto L_08A4A020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A020: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4658,13 +5436,39 @@ L_08A4A028: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4A034u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 364u, 0x08A4A034u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A034u) goto L_08A4A034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A034: aot_gpr_31 = (0x08A4A03Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 365u, 0x08A4A03Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A03Cu) goto L_08A4A03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A03C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4712,8 +5516,21 @@ L_08A4A078: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4A098u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 371u, 0x08A4A098u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A098u) goto L_08A4A098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A098: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4876,16 +5693,42 @@ L_08A4A1B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A4A200u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 387u, 0x08A4A200u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A200u) goto L_08A4A200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A200: aot_gpr_6 = (ctx.gpr[16] + static_cast(28)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1500u); aot_gpr_31 = (0x08A4A214u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 388u, 0x08A4A214u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A214u) goto L_08A4A214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A214: aot_gpr_5 = (ctx.gpr[23] & 255u); { const bool branch_taken = aot_gpr_5 != 0u; @@ -4923,8 +5766,21 @@ L_08A4A240: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4A264u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 392u, 0x08A4A264u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A264u) goto L_08A4A264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A264: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4935,8 +5791,21 @@ L_08A4A264: L_08A4A26C: aot_gpr_31 = (0x08A4A274u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 394u, 0x08A4A274u, 0x08911284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 327u, 0x08911284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A274u) goto L_08A4A274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A274: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4969,8 +5838,21 @@ L_08A4A28C: L_08A4A2A0: aot_gpr_31 = (0x08A4A2A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 399u, 0x08A4A2A8u, 0x088E2A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 281u, 0x088E2A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A2A8u) goto L_08A4A2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A2A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -4989,8 +5871,21 @@ L_08A4A2C0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); aot_gpr_31 = (0x08A4A2CCu); aot_gpr_6 = (ctx.gpr[16] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 403u, 0x08A4A2CCu, 0x0893E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 600u, 0x0893E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A2CCu) goto L_08A4A2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A2CC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5004,8 +5899,21 @@ L_08A4A2D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4A2E8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 405u, 0x08A4A2E8u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A2E8u) goto L_08A4A2E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A2E8: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(16), std::bit_cast(aot_fpr_12)); @@ -5045,8 +5953,21 @@ L_08A4A31C: L_08A4A32C: aot_gpr_31 = (0x08A4A334u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 410u, 0x08A4A334u, 0x088E2A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 281u, 0x088E2A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A334u) goto L_08A4A334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A334: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -5065,8 +5986,21 @@ L_08A4A34C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); aot_gpr_31 = (0x08A4A358u); aot_gpr_6 = (ctx.gpr[16] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 414u, 0x08A4A358u, 0x0893E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 600u, 0x0893E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A358u) goto L_08A4A358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A358: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5093,8 +6027,21 @@ L_08A4A378: ctx.gpr[7] = (ctx.gpr[16] + static_cast(32)); aot_gpr_31 = (0x08A4A388u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 419u, 0x08A4A388u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A388u) goto L_08A4A388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A388: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(16), std::bit_cast(aot_fpr_12)); @@ -5139,8 +6086,21 @@ L_08A4A3C8: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4A3ECu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 424u, 0x08A4A3ECu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A3ECu) goto L_08A4A3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A3EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1360))); aot_gpr_5 = (0u | 6u); @@ -5157,8 +6117,21 @@ L_08A4A3FC: ctx.gpr[7] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4A414u); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 426u, 0x08A4A414u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A414u) goto L_08A4A414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A414: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5173,8 +6146,21 @@ L_08A4A41C: ctx.gpr[7] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4A434u); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 428u, 0x08A4A434u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A434u) goto L_08A4A434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A434: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(152))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5186,8 +6172,21 @@ L_08A4A434: L_08A4A440: aot_gpr_31 = (0x08A4A448u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 430u, 0x08A4A448u, 0x0890F68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 780u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 780u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 780u, 0x0890F68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A448u) goto L_08A4A448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A448: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5379,8 +6378,21 @@ L_08A4A5F0: aot_gpr_5 = (aot_gpr_29 + static_cast(192)); aot_gpr_31 = (0x08A4A630u); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 449u, 0x08A4A630u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A630u) goto L_08A4A630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A630: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5485,8 +6497,21 @@ L_08A4A684: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(264), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A4A6E8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 456u, 0x08A4A6E8u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A6E8u) goto L_08A4A6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A6E8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5520,8 +6545,21 @@ L_08A4A700: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4A740u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 459u, 0x08A4A740u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A740u) goto L_08A4A740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A740: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); ctx.gpr[23] = (ctx.gpr[23] & 255u); @@ -5563,8 +6601,21 @@ L_08A4A764: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4A7BCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 462u, 0x08A4A7BCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A7BCu) goto L_08A4A7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A7BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(288), std::bit_cast(aot_fpr_12)); @@ -5618,8 +6669,21 @@ L_08A4A7BC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4A844u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 463u, 0x08A4A844u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A844u) goto L_08A4A844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A844: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(288), std::bit_cast(aot_fpr_12)); @@ -5664,8 +6728,21 @@ L_08A4A844: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4A8ACu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 464u, 0x08A4A8ACu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A8ACu) goto L_08A4A8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A8AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5737,8 +6814,21 @@ L_08A4A8C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(392), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A4A924u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 467u, 0x08A4A924u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A924u) goto L_08A4A924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A924: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5803,8 +6893,21 @@ L_08A4A93C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4A9ACu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 470u, 0x08A4A9ACu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A9ACu) goto L_08A4A9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A9AC: ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); ctx.gpr[22] = (ctx.gpr[22] & 255u); @@ -5834,8 +6937,21 @@ L_08A4A9D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(80))); aot_gpr_31 = (0x08A4A9E0u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 474u, 0x08A4A9E0u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4A9E0u) goto L_08A4A9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4A9E0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5864,8 +6980,21 @@ L_08A4AA00: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A4AA18u); ctx.gpr[7] = (0u | 42u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 479u, 0x08A4AA18u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AA18u) goto L_08A4AA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AA18: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -5895,8 +7024,21 @@ L_08A4AA38: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A4AA50u); ctx.gpr[7] = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 484u, 0x08A4AA50u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AA50u) goto L_08A4AA50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AA50: ctx.gpr[16] = (aot_gpr_2 | 0u); goto L_08A4AA54; @@ -5911,8 +7053,21 @@ L_08A4AA5C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08A4AA68u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 487u, 0x08A4AA68u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AA68u) goto L_08A4AA68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AA68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -5961,8 +7116,21 @@ L_08A4AAC0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1744), 0u); aot_gpr_31 = (0x08A4AAD0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 493u, 0x08A4AAD0u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AAD0u) goto L_08A4AAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AAD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5989,8 +7157,8 @@ L_08A4AAF4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6912))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4AB0C: @@ -6116,8 +7284,21 @@ L_08A4ABA4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4AC20u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 506u, 0x08A4AC20u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AC20u) goto L_08A4AC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AC20: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (ctx.gpr[16] & 255u); @@ -6177,8 +7358,21 @@ L_08A4AC6C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4ACA0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 512u, 0x08A4ACA0u, 0x08B0452Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4ACA0u) goto L_08A4ACA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4ACA0: ctx.gpr[16] = (0u | 0u); aot_gpr_4 = (ctx.gpr[16] < static_cast(16) ? 1u : 0u); @@ -6231,8 +7425,21 @@ L_08A4ACB0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4AD2Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 514u, 0x08A4AD2Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AD2Cu) goto L_08A4AD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AD2C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (ctx.gpr[16] < static_cast(16) ? 1u : 0u); @@ -6333,8 +7540,21 @@ L_08A4ADC8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4ADF4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 518u, 0x08A4ADF4u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4ADF4u) goto L_08A4ADF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4ADF4: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6371,8 +7591,21 @@ L_08A4ADF4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4AE38u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 519u, 0x08A4AE38u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AE38u) goto L_08A4AE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AE38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -6436,8 +7669,21 @@ L_08A4AEA4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4AEB0u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 527u, 0x08A4AEB0u, 0x08A42E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 503u, 0x08A42E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AEB0u) goto L_08A4AEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AEB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6456,8 +7702,21 @@ L_08A4AEC0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4AECCu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 530u, 0x08A4AECCu, 0x08A42E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 503u, 0x08A42E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AECCu) goto L_08A4AECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AECC: ctx.gpr[16] = (ctx.gpr[21] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(236))); @@ -6532,8 +7791,21 @@ L_08A4AF48: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A4AF70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 538u, 0x08A4AF70u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AF70u) goto L_08A4AF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AF70: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -6600,8 +7872,21 @@ L_08A4AFA0: } aot_gpr_31 = (0x08A4AFF0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 543u, 0x08A4AFF0u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4AFF0u) goto L_08A4AFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4AFF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6643,8 +7928,21 @@ L_08A4B028: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4B03Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 549u, 0x08A4B03Cu, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B03Cu) goto L_08A4B03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B03C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 << 24u); @@ -6679,8 +7977,21 @@ L_08A4B068: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x08A4B07Cu); ctx.gpr[23] = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 554u, 0x08A4B07Cu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B07Cu) goto L_08A4B07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B07C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -6867,8 +8178,21 @@ L_08A4B1E0: aot_gpr_5 = (aot_gpr_29 + static_cast(656)); aot_gpr_31 = (0x08A4B208u); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 576u, 0x08A4B208u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B208u) goto L_08A4B208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B208: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -6888,8 +8212,8 @@ L_08A4B224: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6944))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4B23C: @@ -6903,8 +8227,21 @@ L_08A4B23C: aot_gpr_4 = (0u | 72u); aot_gpr_31 = (0x08A4B264u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 579u, 0x08A4B264u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B264u) goto L_08A4B264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B264: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6936,8 +8273,21 @@ L_08A4B288: aot_gpr_6 = (0u | 62u); aot_gpr_31 = (0x08A4B2A4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 584u, 0x08A4B2A4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B2A4u) goto L_08A4B2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B2A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6969,14 +8319,40 @@ L_08A4B2C8: aot_gpr_6 = (0u | 61u); aot_gpr_31 = (0x08A4B2E4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 589u, 0x08A4B2E4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B2E4u) goto L_08A4B2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B2E4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A4B2F0u); aot_gpr_5 = (0u | 106u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 590u, 0x08A4B2F0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B2F0u) goto L_08A4B2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B2F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6998,8 +8374,21 @@ L_08A4B30C: aot_fpr_12 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x08A4B31Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 593u, 0x08A4B31Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B31Cu) goto L_08A4B31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B31C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7034,8 +8423,21 @@ L_08A4B340: aot_gpr_4 = (0u | 73u); aot_gpr_31 = (0x08A4B368u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 598u, 0x08A4B368u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B368u) goto L_08A4B368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B368: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7054,8 +8456,21 @@ L_08A4B370: aot_gpr_4 = (0u | 74u); aot_gpr_31 = (0x08A4B398u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 600u, 0x08A4B398u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B398u) goto L_08A4B398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B398: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7076,8 +8491,21 @@ L_08A4B3A8: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4B3BCu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 603u, 0x08A4B3BCu, 0x088AA4A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 324u, 0x088AA4A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B3BCu) goto L_08A4B3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B3BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7099,8 +8527,21 @@ L_08A4B3C4: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A4B3F0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 605u, 0x08A4B3F0u, 0x088AA4A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 324u, 0x088AA4A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B3F0u) goto L_08A4B3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B3F0: aot_gpr_31 = (0x08A4B3F8u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B3F8u) goto L_08A4B3F8; @@ -7143,13 +8584,39 @@ L_08A4B428: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A4B448u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 612u, 0x08A4B448u, 0x0898BB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 955u, 0x0898BB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B448u) goto L_08A4B448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B448: aot_gpr_31 = (0x08A4B450u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 613u, 0x08A4B450u, 0x08A4182Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 290u, 0x08A4182Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B450u) goto L_08A4B450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B450: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1044), aot_run_words); @@ -7169,8 +8636,8 @@ L_08A4B450: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1104)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4B48C: @@ -7200,8 +8667,21 @@ L_08A4B4E0: L_08A4B4E8: aot_gpr_31 = (0x08A4B4F0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 618u, 0x08A4B4F0u, 0x089476BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 707u, 0x089476BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B4F0u) goto L_08A4B4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B4F0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7255,8 +8735,21 @@ L_08A4B544: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A4B554u); aot_gpr_5 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 627u, 0x08A4B554u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B554u) goto L_08A4B554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B554: aot_gpr_4 = (aot_gpr_2 << 5u); aot_gpr_5 = (aot_gpr_2 << 2u); @@ -7283,8 +8776,21 @@ L_08A4B584: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A4B590u); aot_gpr_5 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 631u, 0x08A4B590u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B590u) goto L_08A4B590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B590: aot_gpr_4 = (aot_gpr_2 << 5u); aot_gpr_5 = (aot_gpr_2 << 2u); @@ -7308,8 +8814,21 @@ L_08A4B5B8: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08A4B5CCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 634u, 0x08A4B5CCu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B5CCu) goto L_08A4B5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B5CC: aot_gpr_31 = (0x08A4B5D4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B5D4u) goto L_08A4B5D4; @@ -7323,8 +8842,21 @@ L_08A4B5DC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A4B5E8u); aot_gpr_5 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 637u, 0x08A4B5E8u, 0x089082A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 51u, 0x089082A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B5E8u) goto L_08A4B5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B5E8: aot_gpr_4 = (aot_gpr_2 << 5u); aot_gpr_5 = (aot_gpr_2 << 2u); @@ -7339,8 +8871,21 @@ L_08A4B608: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A4B614u); aot_gpr_5 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 639u, 0x08A4B614u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B614u) goto L_08A4B614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B614: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(304), static_cast(ctx.gpr[16])); goto L_08A4B618; @@ -7831,8 +9376,21 @@ L_08A4B940: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A4B970u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 663u, 0x08A4B970u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B970u) goto L_08A4B970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B970: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[16] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(304))); @@ -7867,8 +9425,21 @@ L_08A4B984: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A4B99Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 666u, 0x08A4B99Cu, 0x08880644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 49u, 0x08880644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4B99Cu) goto L_08A4B99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4B99C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7959,8 +9530,21 @@ L_08A4B9C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A4BA34u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 669u, 0x08A4BA34u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BA34u) goto L_08A4BA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BA34: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7988,8 +9572,21 @@ L_08A4BA3C: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A4BA5Cu); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 671u, 0x08A4BA5Cu, 0x088809F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 101u, 0x088809F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BA5Cu) goto L_08A4BA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BA5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8015,8 +9612,21 @@ L_08A4BA64: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A4BA7Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 673u, 0x08A4BA7Cu, 0x08880644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 49u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 49u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 49u, 0x08880644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BA7Cu) goto L_08A4BA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BA7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8044,8 +9654,21 @@ L_08A4BA84: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A4BAA4u); ctx.gpr[7] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 675u, 0x08A4BAA4u, 0x088809F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 101u, 0x088809F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BAA4u) goto L_08A4BAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BAA4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(72))); @@ -8066,8 +9689,21 @@ L_08A4BAC4: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A4BADCu); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 677u, 0x08A4BADCu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BADCu) goto L_08A4BADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BADC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8102,8 +9738,21 @@ L_08A4BB0C: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A4BB24u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 681u, 0x08A4BB24u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BB24u) goto L_08A4BB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BB24: aot_gpr_2 = (ctx.gpr[30] | 0u); goto L_08A4BB28; @@ -8124,8 +9773,8 @@ L_08A4BB28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4BB5C: @@ -8189,8 +9838,21 @@ L_08A4BBF8: } L_08A4BC00: aot_gpr_31 = (0x08A4BC08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 688u, 0x08A4BC08u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BC08u) goto L_08A4BC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BC08: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } goto L_08A4BC0C; @@ -8214,8 +9876,21 @@ L_08A4BC2C: ctx.gpr[20] = (ctx.gpr[20] + static_cast(32304)); aot_gpr_31 = (0x08A4BC38u); aot_gpr_4 = (ctx.gpr[20] + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 692u, 0x08A4BC38u, 0x08999134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 124u, 0x08999134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BC38u) goto L_08A4BC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BC38: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8256,8 +9931,21 @@ L_08A4BC58: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A4BC80u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 695u, 0x08A4BC80u, 0x08A1C148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 25u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 25u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 25u, 0x08A1C148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BC80u) goto L_08A4BC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BC80: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8384,14 +10072,40 @@ L_08A4BD24: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A4BD38u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 701u, 0x08A4BD38u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BD38u) goto L_08A4BD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BD38: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A4BD44u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 702u, 0x08A4BD44u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BD44u) goto L_08A4BD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BD44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8586,8 +10300,21 @@ L_08A4BE2C: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A4BE54u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 708u, 0x08A4BE54u, 0x08872C78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 649u, 0x08872C78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BE54u) goto L_08A4BE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BE54: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8618,8 +10345,21 @@ L_08A4BE54: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4BE70u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 709u, 0x08A4BE70u, 0x08A411C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 234u, 0x08A411C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BE70u) goto L_08A4BE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BE70: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8686,8 +10426,21 @@ L_08A4BE7C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4BF60u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 711u, 0x08A4BF60u, 0x08A427C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 456u, 0x08A427C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BF60u) goto L_08A4BF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BF60: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(8))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(184), static_cast(aot_gpr_4)); @@ -8695,8 +10448,21 @@ L_08A4BF60: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4BF78u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 712u, 0x08A4BF78u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BF78u) goto L_08A4BF78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BF78: aot_gpr_31 = (0x08A4BF80u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BF80u) goto L_08A4BF80; @@ -8749,8 +10515,21 @@ L_08A4BFD4: aot_gpr_4 = (aot_gpr_2 + ctx.gpr[18]); aot_gpr_31 = (0x08A4BFE0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0145->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0145_entry, 721u, 0x08A4BFE0u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4BFE0u) goto L_08A4BFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4BFE0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0146.cpp b/profiles/vcs/generated/generated_unit_0146.cpp index 4e5243b..804ca65 100644 --- a/profiles/vcs/generated/generated_unit_0146.cpp +++ b/profiles/vcs/generated/generated_unit_0146.cpp @@ -665,6 +665,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A4C000u; + if (local_delta_v813 >= 16352u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -695,8 +719,21 @@ L_08A4C010: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4C024u); aot_gpr_6 = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 4u, 0x08A4C024u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C024u) goto L_08A4C024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C024: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); { const bool branch_taken = 0u == 0u; @@ -726,8 +763,8 @@ L_08A4C030: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4C070: @@ -930,8 +967,21 @@ L_08A4C2AC: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08A4C2B8u); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0101. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 21u, 0x08A4C2B8u, 0x08999134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0101_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0101_entry, 101u, 124u, 0x08999134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C2B8u) goto L_08A4C2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C2B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -968,8 +1018,21 @@ L_08A4C2C0: ctx.gpr[20] = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08A4C304u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 23u, 0x08A4C304u, 0x08A1C148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 25u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 25u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 25u, 0x08A1C148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C304u) goto L_08A4C304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C304: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1131,8 +1194,21 @@ L_08A4C3D4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A4C41Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 25u, 0x08A4C41Cu, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C41Cu) goto L_08A4C41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C41C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8072), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(0u)); @@ -1196,8 +1272,21 @@ L_08A4C4B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4C4C0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 30u, 0x08A4C4C0u, 0x08A5071Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 85u, 0x08A5071Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C4C0u) goto L_08A4C4C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C4C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1226,8 +1315,21 @@ L_08A4C4F8: aot_gpr_5 = (aot_gpr_29 + static_cast(336)); aot_gpr_31 = (0x08A4C508u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 33u, 0x08A4C508u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C508u) goto L_08A4C508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C508: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1407,8 +1509,21 @@ L_08A4C60C: aot_gpr_6 = (aot_gpr_29 + static_cast(288)); aot_gpr_31 = (0x08A4C630u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 43u, 0x08A4C630u, 0x089EE640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 345u, 0x089EE640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C630u) goto L_08A4C630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C630: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1536,8 +1651,21 @@ L_08A4C6F0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4C714u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 52u, 0x08A4C714u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C714u) goto L_08A4C714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C714: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1643,8 +1771,21 @@ L_08A4C714: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A4C7CCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 53u, 0x08A4C7CCu, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C7CCu) goto L_08A4C7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C7CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1666,8 +1807,21 @@ L_08A4C7D4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A4C814u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 55u, 0x08A4C814u, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C814u) goto L_08A4C814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C814: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8072), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(0u)); @@ -1692,13 +1846,39 @@ L_08A4C82C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(456), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A4C854u); aot_gpr_5 = (aot_gpr_29 + static_cast(448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 58u, 0x08A4C854u, 0x08827CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 584u, 0x08827CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C854u) goto L_08A4C854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C854: aot_gpr_31 = (0x08A4C85Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 59u, 0x08A4C85Cu, 0x08A4182Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 290u, 0x08A4182Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4C85Cu) goto L_08A4C85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4C85C: { const bool branch_taken = ctx.gpr[23] != ctx.gpr[17]; if (branch_taken) { @@ -2016,8 +2196,21 @@ L_08A4CA74: L_08A4CAA4: aot_gpr_31 = (0x08A4CAACu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20328))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 77u, 0x08A4CAACu, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CAACu) goto L_08A4CAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CAAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2028,8 +2221,21 @@ L_08A4CAAC: L_08A4CAB4: aot_gpr_31 = (0x08A4CABCu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-20324))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 79u, 0x08A4CABCu, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CABCu) goto L_08A4CABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CABC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2071,8 +2277,21 @@ L_08A4CADC: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A4CB14u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 82u, 0x08A4CB14u, 0x088AA4A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 324u, 0x088AA4A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CB14u) goto L_08A4CB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CB14: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -2143,15 +2362,41 @@ L_08A4CB5C: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A4CBA8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 87u, 0x08A4CBA8u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CBA8u) goto L_08A4CBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CBA8: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4CBB8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 88u, 0x08A4CBB8u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CBB8u) goto L_08A4CBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CBB8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const float fs = aot_fpr_12; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -2253,8 +2498,21 @@ L_08A4CC6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(552), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A4CCBCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 97u, 0x08A4CCBCu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CCBCu) goto L_08A4CCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CCBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2275,8 +2533,21 @@ L_08A4CCC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(568), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A4CCF4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 99u, 0x08A4CCF4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CCF4u) goto L_08A4CCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CCF4: if (ctx.gpr[16] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1384))); @@ -2289,8 +2560,21 @@ L_08A4CCFC: aot_gpr_5 = (0u | 1500u); aot_gpr_31 = (0x08A4CD10u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 101u, 0x08A4CD10u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CD10u) goto L_08A4CD10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CD10: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1384))); goto L_08A4CD14; @@ -2330,8 +2614,21 @@ L_08A4CD40: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A4CD64u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 106u, 0x08A4CD64u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CD64u) goto L_08A4CD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CD64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1360))); aot_gpr_5 = (0u | 6u); @@ -2348,8 +2645,21 @@ L_08A4CD74: ctx.gpr[7] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4CD8Cu); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 108u, 0x08A4CD8Cu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CD8Cu) goto L_08A4CD8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CD8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2364,8 +2674,21 @@ L_08A4CD94: ctx.gpr[7] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4CDACu); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 110u, 0x08A4CDACu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CDACu) goto L_08A4CDAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CDAC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2459,8 +2782,21 @@ L_08A4CDDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(616), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A4CE44u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 116u, 0x08A4CE44u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CE44u) goto L_08A4CE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CE44: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2494,8 +2830,21 @@ L_08A4CE5C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4CE9Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 119u, 0x08A4CE9Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CE9Cu) goto L_08A4CE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CE9C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (ctx.gpr[16] & 255u); @@ -2577,8 +2926,21 @@ L_08A4CEC4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(680), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A4CF28u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 123u, 0x08A4CF28u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CF28u) goto L_08A4CF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CF28: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2643,8 +3005,21 @@ L_08A4CF40: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4CFB0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 126u, 0x08A4CFB0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CFB0u) goto L_08A4CFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CFB0: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (ctx.gpr[16] & 255u); @@ -2667,8 +3042,21 @@ L_08A4CFD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); aot_gpr_31 = (0x08A4CFDCu); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 129u, 0x08A4CFDCu, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4CFDCu) goto L_08A4CFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4CFDC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2697,8 +3085,21 @@ L_08A4CFFC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A4D014u); ctx.gpr[7] = (0u | 42u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 134u, 0x08A4D014u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D014u) goto L_08A4D014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D014: { const bool branch_taken = 0u == 0u; ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -2728,8 +3129,21 @@ L_08A4D034: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A4D04Cu); ctx.gpr[7] = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 139u, 0x08A4D04Cu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D04Cu) goto L_08A4D04C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D04C: ctx.gpr[16] = (aot_gpr_2 | 0u); goto L_08A4D050; @@ -2744,8 +3158,21 @@ L_08A4D058: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08A4D064u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 142u, 0x08A4D064u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D064u) goto L_08A4D064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -2795,8 +3222,21 @@ L_08A4D0C0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1744), 0u); aot_gpr_31 = (0x08A4D0D0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 148u, 0x08A4D0D0u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D0D0u) goto L_08A4D0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D0D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2892,8 +3332,21 @@ L_08A4D14C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4D178u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 159u, 0x08A4D178u, 0x08B0452Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D178u) goto L_08A4D178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D178: ctx.gpr[16] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 16 ? 1u : 0u); @@ -2946,8 +3399,21 @@ L_08A4D188: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4D204u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 161u, 0x08A4D204u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D204u) goto L_08A4D204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D204: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (ctx.gpr[16] & 65535u); @@ -3049,8 +3515,21 @@ L_08A4D2A4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4D2D0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 165u, 0x08A4D2D0u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D2D0u) goto L_08A4D2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D2D0: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3087,8 +3566,21 @@ L_08A4D2D0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4D314u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 166u, 0x08A4D314u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D314u) goto L_08A4D314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D314: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(236))); @@ -3141,8 +3633,21 @@ L_08A4D358: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A4D380u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 172u, 0x08A4D380u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D380u) goto L_08A4D380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D380: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -3186,8 +3691,21 @@ L_08A4D3B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(888), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A4D3DCu); aot_gpr_5 = (aot_gpr_29 + static_cast(880)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 177u, 0x08A4D3DCu, 0x08A3FB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 570u, 0x08A3FB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D3DCu) goto L_08A4D3DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D3DC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(864), aot_run_words); @@ -3197,8 +3715,21 @@ L_08A4D3DC: } aot_gpr_31 = (0x08A4D3F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 178u, 0x08A4D3F0u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D3F0u) goto L_08A4D3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D3F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3210,8 +3741,21 @@ L_08A4D3F8: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A4D404u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 180u, 0x08A4D404u, 0x08A42E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 503u, 0x08A42E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D404u) goto L_08A4D404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D404: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -3299,8 +3843,21 @@ L_08A4D4A0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A4D4C8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 189u, 0x08A4D4C8u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D4C8u) goto L_08A4D4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D4C8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -3344,8 +3901,21 @@ L_08A4D4F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(920), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A4D524u); aot_gpr_5 = (aot_gpr_29 + static_cast(912)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 194u, 0x08A4D524u, 0x08A3FB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 570u, 0x08A3FB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D524u) goto L_08A4D524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D524: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(896), aot_run_words); @@ -3355,8 +3925,21 @@ L_08A4D524: } aot_gpr_31 = (0x08A4D538u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 195u, 0x08A4D538u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D538u) goto L_08A4D538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D538: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3398,8 +3981,21 @@ L_08A4D570: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4D584u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 201u, 0x08A4D584u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D584u) goto L_08A4D584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D584: aot_gpr_4 = (ctx.gpr[21] << 24u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 24u)); @@ -3462,8 +4058,21 @@ L_08A4D5D4: aot_gpr_4 = (0u | 72u); aot_gpr_31 = (0x08A4D5FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 208u, 0x08A4D5FCu, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D5FCu) goto L_08A4D5FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D5FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3508,8 +4117,21 @@ L_08A4D634: aot_gpr_6 = (0u | 62u); aot_gpr_31 = (0x08A4D654u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 215u, 0x08A4D654u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D654u) goto L_08A4D654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D654: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3553,14 +4175,40 @@ L_08A4D68C: aot_gpr_6 = (0u | 61u); aot_gpr_31 = (0x08A4D6A8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 222u, 0x08A4D6A8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D6A8u) goto L_08A4D6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D6A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x08A4D6B4u); aot_gpr_5 = (0u | 106u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 223u, 0x08A4D6B4u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D6B4u) goto L_08A4D6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D6B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3607,8 +4255,21 @@ L_08A4D6EC: aot_gpr_4 = (0u | 73u); aot_gpr_31 = (0x08A4D714u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 230u, 0x08A4D714u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D714u) goto L_08A4D714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D714: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3627,8 +4288,21 @@ L_08A4D71C: aot_gpr_4 = (0u | 74u); aot_gpr_31 = (0x08A4D744u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 232u, 0x08A4D744u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D744u) goto L_08A4D744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D744: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3677,15 +4351,41 @@ L_08A4D788: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); aot_fpr_12 = aot_fpr_13 / aot_fpr_12; aot_gpr_31 = (0x08A4D798u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 235u, 0x08A4D798u, 0x08A3FBACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 571u, 0x08A3FBACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D798u) goto L_08A4D798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D798: aot_gpr_6 = (aot_gpr_29 + static_cast(960)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4D7A8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 236u, 0x08A4D7A8u, 0x08A3FB78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 569u, 0x08A3FB78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D7A8u) goto L_08A4D7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D7A8: aot_gpr_4 = (aot_gpr_29 + static_cast(944)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3706,8 +4406,21 @@ L_08A4D7A8: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A4D7C8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 237u, 0x08A4D7C8u, 0x088AA4A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 324u, 0x088AA4A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D7C8u) goto L_08A4D7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D7C8: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); ctx.gpr[23] = (ctx.gpr[23] & 65535u); @@ -3740,8 +4453,8 @@ L_08A4D7DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1472)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4D824: @@ -3801,8 +4514,21 @@ L_08A4D8B4: } L_08A4D8BC: aot_gpr_31 = (0x08A4D8C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 243u, 0x08A4D8C4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D8C4u) goto L_08A4D8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D8C4: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } goto L_08A4D8C8; @@ -3904,8 +4630,21 @@ L_08A4D978: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A4D9B8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 248u, 0x08A4D9B8u, 0x088AA874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 368u, 0x088AA874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4D9B8u) goto L_08A4D9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4D9B8: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3940,8 +4679,21 @@ L_08A4D9B8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4DA14u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 249u, 0x08A4DA14u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DA14u) goto L_08A4DA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DA14: aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -3962,8 +4714,21 @@ L_08A4DA14: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4DA64u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 250u, 0x08A4DA64u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DA64u) goto L_08A4DA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DA64: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -3984,8 +4749,21 @@ L_08A4DA64: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4DAB4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 251u, 0x08A4DAB4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DAB4u) goto L_08A4DAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DAB4: aot_gpr_4 = (16000u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4005,8 +4783,21 @@ L_08A4DAB4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4DB00u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 252u, 0x08A4DB00u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DB00u) goto L_08A4DB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DB00: aot_gpr_4 = (0u | 4u); aot_gpr_5 = (0u | 1u); @@ -4014,8 +4805,21 @@ L_08A4DB00: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4DB18u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 253u, 0x08A4DB18u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DB18u) goto L_08A4DB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DB18: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4045,8 +4849,21 @@ L_08A4DB18: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A4DB60u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 254u, 0x08A4DB60u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DB60u) goto L_08A4DB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DB60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -4077,8 +4894,21 @@ L_08A4DB90: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x08A4DBACu); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 257u, 0x08A4DBACu, 0x08A8EF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 561u, 0x08A8EF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DBACu) goto L_08A4DBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DBAC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2076))); @@ -4133,8 +4963,21 @@ L_08A4DC24: } L_08A4DC2C: aot_gpr_31 = (0x08A4DC34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 262u, 0x08A4DC34u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DC34u) goto L_08A4DC34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DC34: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } goto L_08A4DC38; @@ -4180,8 +5023,21 @@ L_08A4DCA0: L_08A4DCA8: aot_gpr_31 = (0x08A4DCB0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 268u, 0x08A4DCB0u, 0x089476BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 707u, 0x089476BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DCB0u) goto L_08A4DCB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DCB0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4238,8 +5094,21 @@ L_08A4DCE4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4DD54u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 273u, 0x08A4DD54u, 0x08A427C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 456u, 0x08A427C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DD54u) goto L_08A4DD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DD54: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(8))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(228), static_cast(aot_gpr_4)); @@ -4260,8 +5129,21 @@ L_08A4DD54: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4DDA0u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 274u, 0x08A4DDA0u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DDA0u) goto L_08A4DDA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DDA0: aot_gpr_31 = (0x08A4DDA8u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DDA8u) goto L_08A4DDA8; @@ -4304,8 +5186,21 @@ L_08A4DDD8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A4DDF8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 281u, 0x08A4DDF8u, 0x0898BB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 955u, 0x0898BB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DDF8u) goto L_08A4DDF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DDF8: aot_gpr_2 = (0u | 1u); { std::uint32_t aot_run_words[11]{}; @@ -4324,8 +5219,8 @@ L_08A4DDF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4DE30: @@ -4369,8 +5264,21 @@ L_08A4DE8C: L_08A4DE94: aot_gpr_31 = (0x08A4DE9Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 289u, 0x08A4DE9Cu, 0x089476BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 707u, 0x089476BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4DE9Cu) goto L_08A4DE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4DE9C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4756,8 +5664,21 @@ L_08A4E150: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A4E1B4u); ctx.gpr[8] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 307u, 0x08A4E1B4u, 0x08ACE694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 780u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 780u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 780u, 0x08ACE694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E1B4u) goto L_08A4E1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E1B4: aot_gpr_31 = (0x08A4E1BCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E1BCu) goto L_08A4E1BC; @@ -4800,22 +5721,61 @@ L_08A4E1EC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A4E20Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 314u, 0x08A4E20Cu, 0x0898BB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 955u, 0x0898BB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E20Cu) goto L_08A4E20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E20C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4E218u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 315u, 0x08A4E218u, 0x08A4230Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 413u, 0x08A4230Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E218u) goto L_08A4E218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E218: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A4E22Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 316u, 0x08A4E22Cu, 0x08A1A8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 391u, 0x08A1A8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E22Cu) goto L_08A4E22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E22C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -4835,8 +5795,21 @@ L_08A4E248: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4E260u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 318u, 0x08A4E260u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E260u) goto L_08A4E260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E260: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4871,8 +5844,21 @@ L_08A4E290: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A4E2A8u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 322u, 0x08A4E2A8u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E2A8u) goto L_08A4E2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E2A8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4924,8 +5910,21 @@ L_08A4E2B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4E35Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 324u, 0x08A4E35Cu, 0x08A427C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 456u, 0x08A427C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E35Cu) goto L_08A4E35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E35C: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(8))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(92), static_cast(aot_gpr_4)); @@ -4933,8 +5932,21 @@ L_08A4E35C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A4E374u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 325u, 0x08A4E374u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E374u) goto L_08A4E374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E374: aot_gpr_2 = (0u | 1u); goto L_08A4E378; @@ -4952,8 +5964,8 @@ L_08A4E378: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4E3A0: @@ -4994,8 +6006,21 @@ L_08A4E418: ctx.gpr[11] = (0u | 20u); aot_gpr_31 = (0x08A4E454u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 329u, 0x08A4E454u, 0x089B8320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 35u, 0x089B8320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E454u) goto L_08A4E454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E454: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7592), static_cast(aot_gpr_4)); @@ -5173,8 +6198,21 @@ L_08A4E578: ctx.gpr[7] = (aot_gpr_29 + static_cast(36)); aot_gpr_31 = (0x08A4E5A4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 342u, 0x08A4E5A4u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E5A4u) goto L_08A4E5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E5A4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5289,8 +6327,21 @@ L_08A4E63C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A4E6A4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 348u, 0x08A4E6A4u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E6A4u) goto L_08A4E6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E6A4: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (128u << 16u); @@ -5487,8 +6538,21 @@ L_08A4E7E4: ctx.gpr[7] = (aot_gpr_29 + static_cast(36)); aot_gpr_31 = (0x08A4E810u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 365u, 0x08A4E810u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E810u) goto L_08A4E810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E810: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5603,8 +6667,21 @@ L_08A4E8A8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A4E910u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 371u, 0x08A4E910u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4E910u) goto L_08A4E910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4E910: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5663,8 +6740,8 @@ L_08A4E94C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(416)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4E990: @@ -5922,8 +6999,21 @@ L_08A4EB64: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A4EC54u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 389u, 0x08A4EC54u, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4EC54u) goto L_08A4EC54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4EC54: aot_fpr_20 = std::bit_cast(0u); aot_gpr_4 = (16256u << 16u); @@ -5959,8 +7049,21 @@ L_08A4EC78: ctx.gpr[7] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A4EC98u); ctx.gpr[8] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 393u, 0x08A4EC98u, 0x08A51450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 169u, 0x08A51450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4EC98u) goto L_08A4EC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4EC98: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5995,8 +7098,21 @@ L_08A4EC98: ctx.gpr[7] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A4ECC4u); ctx.gpr[8] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 394u, 0x08A4ECC4u, 0x08A41030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 220u, 0x08A41030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4ECC4u) goto L_08A4ECC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4ECC4: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8072), static_cast(0u)); @@ -6059,8 +7175,21 @@ L_08A4ED60: ctx.gpr[9] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A4ED88u); ctx.gpr[11] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 398u, 0x08A4ED88u, 0x08A499A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 277u, 0x08A499A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4ED88u) goto L_08A4ED88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4ED88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6119,8 +7248,21 @@ L_08A4EDF4: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A4EE08u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 405u, 0x08A4EE08u, 0x089EE640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 345u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 345u, 0x089EE640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4EE08u) goto L_08A4EE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4EE08: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6145,8 +7287,21 @@ L_08A4EE18: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A4EE4Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 408u, 0x08A4EE4Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4EE4Cu) goto L_08A4EE4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4EE4C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (ctx.gpr[16] < static_cast(16) ? 1u : 0u); @@ -6191,8 +7346,8 @@ L_08A4EE84: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(6976))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4EE9C: @@ -6315,24 +7470,63 @@ L_08A4EF90: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(232), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A4EFDCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 426u, 0x08A4EFDCu, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4EFDCu) goto L_08A4EFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4EFDC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6260))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6264))); ctx.gpr[7] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A4EFF0u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 427u, 0x08A4EFF0u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4EFF0u) goto L_08A4EFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4EFF0: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6252))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-6256))); aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A4F004u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 428u, 0x08A4F004u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F004u) goto L_08A4F004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F004: ctx.gpr[19] = (ctx.gpr[3] | 0u); ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -6405,8 +7599,21 @@ L_08A4F0B8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A4F0CCu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 436u, 0x08A4F0CCu, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F0CCu) goto L_08A4F0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F0CC: aot_gpr_2 = (0u | 1u); goto L_08A4F0D0; @@ -6430,8 +7637,8 @@ L_08A4F0D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A4F110: @@ -6494,8 +7701,21 @@ L_08A4F1B4: L_08A4F1BC: aot_gpr_31 = (0x08A4F1C4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 446u, 0x08A4F1C4u, 0x089476BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 707u, 0x089476BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F1C4u) goto L_08A4F1C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F1C4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6555,8 +7775,21 @@ L_08A4F21C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A4F22Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 454u, 0x08A4F22Cu, 0x08A40A78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 116u, 0x08A40A78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F22Cu) goto L_08A4F22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F22C: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6575,8 +7808,21 @@ L_08A4F22C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); aot_gpr_31 = (0x08A4F244u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 455u, 0x08A4F244u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F244u) goto L_08A4F244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F244: ctx.gpr[22] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); @@ -6599,8 +7845,21 @@ L_08A4F268: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A4F280u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 458u, 0x08A4F280u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F280u) goto L_08A4F280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F280: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -6710,15 +7969,41 @@ L_08A4F300: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4F318u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 463u, 0x08A4F318u, 0x08A3FB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 570u, 0x08A3FB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F318u) goto L_08A4F318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F318: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08A4F328u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 464u, 0x08A4F328u, 0x08A3FB78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 569u, 0x08A3FB78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F328u) goto L_08A4F328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F328: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6844,8 +8129,21 @@ L_08A4F3A0: aot_fpr_20 = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x08A4F3D8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 469u, 0x08A4F3D8u, 0x08A420FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 383u, 0x08A420FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F3D8u) goto L_08A4F3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F3D8: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_4 = (15692u << 16u); @@ -6867,8 +8165,21 @@ L_08A4F3F0: ctx.fpr[22] = ctx.fpr[22] + aot_fpr_12; aot_gpr_31 = (0x08A4F41Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 471u, 0x08A4F41Cu, 0x08A420FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 383u, 0x08A420FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F41Cu) goto L_08A4F41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F41C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (16161u << 16u); @@ -7189,8 +8500,21 @@ L_08A4F5CC: ctx.fpr[22] = ctx.fpr[22] + aot_fpr_12; aot_gpr_31 = (0x08A4F5F8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 488u, 0x08A4F5F8u, 0x08A420FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 383u, 0x08A420FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F5F8u) goto L_08A4F5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F5F8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (16133u << 16u); @@ -7327,8 +8651,21 @@ L_08A4F6A0: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08A4F6ACu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 494u, 0x08A4F6ACu, 0x08A420FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 383u, 0x08A420FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F6ACu) goto L_08A4F6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F6AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (16128u << 16u); @@ -7428,8 +8765,21 @@ L_08A4F70C: aot_fpr_20 = aot_fpr_20 + aot_fpr_14; aot_gpr_31 = (0x08A4F744u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 497u, 0x08A4F744u, 0x08A420FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 383u, 0x08A420FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F744u) goto L_08A4F744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F744: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); @@ -7794,8 +9144,21 @@ L_08A4F930: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); aot_gpr_31 = (0x08A4F93Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 511u, 0x08A4F93Cu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F93Cu) goto L_08A4F93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F93C: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); @@ -7819,8 +9182,21 @@ L_08A4F960: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A4F97Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 514u, 0x08A4F97Cu, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4F97Cu) goto L_08A4F97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4F97C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -8047,8 +9423,21 @@ L_08A4FAD4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A4FAE8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 525u, 0x08A4FAE8u, 0x08A50F48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 135u, 0x08A50F48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FAE8u) goto L_08A4FAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FAE8: aot_gpr_31 = (0x08A4FAF0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FAF0u) goto L_08A4FAF0; @@ -8065,14 +9454,40 @@ L_08A4FAF8: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A4FB10u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 528u, 0x08A4FB10u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FB10u) goto L_08A4FB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FB10: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08A4FB1Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 529u, 0x08A4FB1Cu, 0x08A1C714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 68u, 0x08A1C714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FB1Cu) goto L_08A4FB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FB1C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8084,8 +9499,21 @@ L_08A4FB24: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08A4FB30u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 531u, 0x08A4FB30u, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FB30u) goto L_08A4FB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FB30: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8170,8 +9598,21 @@ L_08A4FB38: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A4FB94u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 533u, 0x08A4FB94u, 0x088AA874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 368u, 0x088AA874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FB94u) goto L_08A4FB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FB94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8256,8 +9697,21 @@ L_08A4FB9C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A4FBF8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 535u, 0x08A4FBF8u, 0x088AA874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 368u, 0x088AA874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FBF8u) goto L_08A4FBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FBF8: aot_gpr_31 = (0x08A4FC00u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FC00u) goto L_08A4FC00; @@ -8269,8 +9723,21 @@ L_08A4FC00: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A4FC18u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 537u, 0x08A4FC18u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FC18u) goto L_08A4FC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FC18: ctx.gpr[18] = (aot_gpr_29 + static_cast(80)); { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); @@ -8302,8 +9769,21 @@ L_08A4FC18: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A4FC68u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 538u, 0x08A4FC68u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FC68u) goto L_08A4FC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FC68: aot_gpr_2 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(aot_gpr_2)); @@ -8320,8 +9800,21 @@ L_08A4FC68: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A4FCB0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 539u, 0x08A4FCB0u, 0x08A41D28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 354u, 0x08A41D28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FCB0u) goto L_08A4FCB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FCB0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8068), 0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8423), static_cast(0u)); @@ -8338,8 +9831,21 @@ L_08A4FCC8: aot_gpr_6 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A4FCD8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 541u, 0x08A4FCD8u, 0x08A41AACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 318u, 0x08A41AACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FCD8u) goto L_08A4FCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FCD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8403,8 +9909,21 @@ L_08A4FD4C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x08A4FD68u); ctx.gpr[19] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 545u, 0x08A4FD68u, 0x089D273Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 419u, 0x089D273Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FD68u) goto L_08A4FD68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FD68: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -8451,8 +9970,21 @@ L_08A4FDAC: L_08A4FDB8: aot_gpr_31 = (0x08A4FDC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 551u, 0x08A4FDC0u, 0x088E289Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 244u, 0x088E289Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FDC0u) goto L_08A4FDC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FDC0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (0u | 57u); @@ -8521,8 +10053,21 @@ L_08A4FE28: aot_gpr_6 = (aot_gpr_29 + static_cast(1184)); aot_gpr_31 = (0x08A4FE38u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 557u, 0x08A4FE38u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FE38u) goto L_08A4FE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FE38: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1184))); @@ -8535,8 +10080,21 @@ L_08A4FE48: L_08A4FE4C: aot_gpr_31 = (0x08A4FE54u); aot_gpr_4 = (aot_gpr_29 + static_cast(672)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 560u, 0x08A4FE54u, 0x08906CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 605u, 0x08906CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FE54u) goto L_08A4FE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FE54: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -8553,13 +10111,39 @@ L_08A4FE68: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A4FE74u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 563u, 0x08A4FE74u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FE74u) goto L_08A4FE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FE74: aot_gpr_31 = (0x08A4FE7Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 564u, 0x08A4FE7Cu, 0x08911284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 327u, 0x08911284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FE7Cu) goto L_08A4FE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FE7C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8570,8 +10154,21 @@ L_08A4FE7C: L_08A4FE84: aot_gpr_31 = (0x08A4FE8Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 566u, 0x08A4FE8Cu, 0x088E2A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 281u, 0x088E2A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FE8Cu) goto L_08A4FE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FE8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -8590,8 +10187,21 @@ L_08A4FEA4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(80))); aot_gpr_31 = (0x08A4FEB0u); aot_gpr_6 = (ctx.gpr[19] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 570u, 0x08A4FEB0u, 0x0893E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 600u, 0x0893E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FEB0u) goto L_08A4FEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FEB0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8618,8 +10228,21 @@ L_08A4FED0: ctx.gpr[7] = (ctx.gpr[19] + static_cast(32)); aot_gpr_31 = (0x08A4FEE0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 575u, 0x08A4FEE0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FEE0u) goto L_08A4FEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FEE0: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(16), std::bit_cast(aot_fpr_12)); @@ -8665,8 +10288,21 @@ L_08A4FF20: aot_gpr_6 = (0u | 45u); aot_gpr_31 = (0x08A4FF4Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 580u, 0x08A4FF4Cu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FF4Cu) goto L_08A4FF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FF4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(664))); aot_gpr_4 = (16204u << 16u); @@ -8676,8 +10312,21 @@ L_08A4FF4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(664), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A4FF6Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0146->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0146_entry, 581u, 0x08A4FF6Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A4FF6Cu) goto L_08A4FF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A4FF6C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0147.cpp b/profiles/vcs/generated/generated_unit_0147.cpp index ca145ab..14233fb 100644 --- a/profiles/vcs/generated/generated_unit_0147.cpp +++ b/profiles/vcs/generated/generated_unit_0147.cpp @@ -862,6 +862,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A50000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -881,8 +905,21 @@ L_08A50000: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A50014u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 2u, 0x08A50014u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50014u) goto L_08A50014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50014: ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); aot_gpr_4 = (ctx.gpr[22] < static_cast(4) ? 1u : 0u); @@ -919,8 +956,21 @@ L_08A50044: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5005Cu); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 7u, 0x08A5005Cu, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5005Cu) goto L_08A5005C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5005C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -939,8 +989,21 @@ L_08A5006C: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A50084u); ctx.gpr[8] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 10u, 0x08A50084u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50084u) goto L_08A50084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50084: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -961,8 +1024,21 @@ L_08A5008C: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08A500BCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 12u, 0x08A500BCu, 0x08A427C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 456u, 0x08A427C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A500BCu) goto L_08A500BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A500BC: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(8))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(685), static_cast(aot_gpr_4)); @@ -1023,8 +1099,21 @@ L_08A500F8: aot_gpr_5 = (aot_gpr_29 + static_cast(680)); aot_gpr_31 = (0x08A5016Cu); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 16u, 0x08A5016Cu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5016Cu) goto L_08A5016C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5016C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1073,8 +1162,21 @@ L_08A501B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A501D8u); aot_gpr_6 = (0u | 45u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 22u, 0x08A501D8u, 0x08B0452Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A501D8u) goto L_08A501D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A501D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1128,8 +1230,21 @@ L_08A50230: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08A50244u); ctx.gpr[22] = (ctx.gpr[18] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 28u, 0x08A50244u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50244u) goto L_08A50244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50244: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -1175,8 +1290,21 @@ L_08A50288: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A50294u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 34u, 0x08A50294u, 0x08A427C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 456u, 0x08A427C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50294u) goto L_08A50294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50294: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(8))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(707), static_cast(aot_gpr_4)); @@ -1222,8 +1350,21 @@ L_08A502E0: aot_gpr_5 = (aot_gpr_29 + static_cast(704)); aot_gpr_31 = (0x08A50308u); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 38u, 0x08A50308u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50308u) goto L_08A50308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50308: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1241,8 +1382,21 @@ L_08A50310: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(728), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A50334u); aot_gpr_5 = (aot_gpr_29 + static_cast(720)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 40u, 0x08A50334u, 0x08827CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 584u, 0x08827CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50334u) goto L_08A50334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50334: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -1263,8 +1417,8 @@ L_08A50354: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(7016))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5036C: @@ -1278,8 +1432,21 @@ L_08A5036C: aot_gpr_4 = (0u | 72u); aot_gpr_31 = (0x08A50394u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 43u, 0x08A50394u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50394u) goto L_08A50394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50394: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1328,8 +1495,21 @@ L_08A503CC: aot_gpr_6 = (0u | 62u); aot_gpr_31 = (0x08A503ECu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 50u, 0x08A503ECu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A503ECu) goto L_08A503EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A503EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1346,8 +1526,21 @@ L_08A503F4: aot_gpr_6 = (0u | 61u); aot_gpr_31 = (0x08A50414u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 52u, 0x08A50414u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50414u) goto L_08A50414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50414: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1395,14 +1588,40 @@ L_08A5044C: aot_gpr_6 = (0u | 61u); aot_gpr_31 = (0x08A50468u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 59u, 0x08A50468u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50468u) goto L_08A50468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50468: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_gpr_31 = (0x08A50474u); aot_gpr_5 = (0u | 106u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 60u, 0x08A50474u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50474u) goto L_08A50474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50474: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1453,8 +1672,21 @@ L_08A504AC: aot_gpr_4 = (0u | 73u); aot_gpr_31 = (0x08A504D4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 67u, 0x08A504D4u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A504D4u) goto L_08A504D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A504D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1473,8 +1705,21 @@ L_08A504DC: aot_gpr_4 = (0u | 74u); aot_gpr_31 = (0x08A50504u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 69u, 0x08A50504u, 0x0884C57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 46u, 0x0884C57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50504u) goto L_08A50504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50504: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1517,15 +1762,41 @@ L_08A5050C: aot_fpr_12 = aot_fpr_13 / aot_fpr_12; aot_gpr_31 = (0x08A50548u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 71u, 0x08A50548u, 0x08A3FBACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 571u, 0x08A3FBACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50548u) goto L_08A50548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50548: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A50558u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 72u, 0x08A50558u, 0x08A3FB78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 569u, 0x08A3FB78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50558u) goto L_08A50558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50558: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1548,12 +1819,38 @@ L_08A50564: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_31 = (0x08A50578u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 74u, 0x08A50578u, 0x088AA4A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 324u, 0x088AA4A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50578u) goto L_08A50578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50578: aot_gpr_31 = (0x08A50580u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 75u, 0x08A50580u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50580u) goto L_08A50580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50580: { const bool branch_taken = ctx.gpr[17] != aot_gpr_2; if (branch_taken) { @@ -1569,20 +1866,59 @@ L_08A50588: L_08A50590: aot_gpr_31 = (0x08A50598u); ctx.gpr[16] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 78u, 0x08A50598u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50598u) goto L_08A50598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50598: aot_gpr_4 = (aot_gpr_2 + static_cast(48)); aot_gpr_31 = (0x08A505A4u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 79u, 0x08A505A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A505A4u) goto L_08A505A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A505A4: aot_gpr_4 = (aot_gpr_2 + static_cast(48)); aot_gpr_31 = (0x08A505B0u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 80u, 0x08A505B0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A505B0u) goto L_08A505B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A505B0: aot_gpr_4 = (aot_gpr_2 + static_cast(48)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -1592,8 +1928,21 @@ L_08A505B0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A505D0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 81u, 0x08A505D0u, 0x0898BB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 955u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 955u, 0x0898BB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A505D0u) goto L_08A505D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A505D0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1658,8 +2007,21 @@ L_08A505DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A506B8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 83u, 0x08A506B8u, 0x08A427C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 456u, 0x08A427C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A506B8u) goto L_08A506B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A506B8: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(8))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(839), static_cast(aot_gpr_4)); @@ -1669,8 +2031,21 @@ L_08A506B8: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A506D8u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 84u, 0x08A506D8u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A506D8u) goto L_08A506D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A506D8: aot_gpr_2 = (0u | 1u); { std::uint32_t aot_run_words[14]{}; @@ -1692,8 +2067,8 @@ L_08A506D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1296)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5071C: @@ -1753,8 +2128,21 @@ L_08A5071C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08A507C0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 86u, 0x08A507C0u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A507C0u) goto L_08A507C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A507C0: aot_gpr_4 = (17948u << 16u); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -1797,8 +2185,21 @@ L_08A50820: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A50830u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 90u, 0x08A50830u, 0x089AB048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 627u, 0x089AB048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50830u) goto L_08A50830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50830: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1948,8 +2349,21 @@ L_08A5096C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A509B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 103u, 0x08A509B8u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A509B8u) goto L_08A509B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A509B8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2047,8 +2461,8 @@ L_08A50AA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A50AE0: @@ -2190,8 +2604,21 @@ L_08A50B70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08A50BF0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[11]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 112u, 0x08A50BF0u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50BF0u) goto L_08A50BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50BF0: aot_gpr_4 = (17948u << 16u); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -2373,8 +2800,21 @@ L_08A50D80: aot_gpr_5 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08A50DA4u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 126u, 0x08A50DA4u, 0x088B1424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 186u, 0x088B1424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50DA4u) goto L_08A50DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50DA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); @@ -2603,8 +3043,8 @@ L_08A50F00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A50F48: @@ -2667,8 +3107,21 @@ L_08A50F48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08A50FF8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 136u, 0x08A50FF8u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A50FF8u) goto L_08A50FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A50FF8: aot_gpr_4 = (17948u << 16u); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -2705,8 +3158,21 @@ L_08A51054: ctx.gpr[16] = (aot_gpr_29 + ctx.gpr[16]); aot_gpr_31 = (0x08A51064u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 139u, 0x08A51064u, 0x088E289Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 244u, 0x088E289Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51064u) goto L_08A51064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51064: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); @@ -2761,8 +3227,21 @@ L_08A510B8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A510CCu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 145u, 0x08A510CCu, 0x088B1424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 186u, 0x088B1424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A510CCu) goto L_08A510CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A510CC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(86)))))); @@ -3150,8 +3629,21 @@ L_08A51334: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A51344u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 161u, 0x08A51344u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51344u) goto L_08A51344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51344: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3317,8 +3809,8 @@ L_08A51410: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A51450: @@ -3354,8 +3846,21 @@ L_08A514B4: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A514C4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 172u, 0x08A514C4u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A514C4u) goto L_08A514C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A514C4: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3365,8 +3870,21 @@ L_08A514C4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A514E4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 173u, 0x08A514E4u, 0x08AA0468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 61u, 0x08AA0468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A514E4u) goto L_08A514E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A514E4: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3422,8 +3940,21 @@ L_08A51520: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(900))); aot_gpr_31 = (0x08A51540u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 176u, 0x08A51540u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51540u) goto L_08A51540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51540: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(900))); @@ -3446,8 +3977,21 @@ L_08A51564: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A5157Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 179u, 0x08A5157Cu, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5157Cu) goto L_08A5157C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5157C: ctx.gpr[22] = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (15948u << 16u); @@ -3470,8 +4014,21 @@ L_08A5157C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A515C8u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 180u, 0x08A515C8u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A515C8u) goto L_08A515C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A515C8: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); ctx.gpr[7] = (aot_gpr_29 + static_cast(96)); @@ -3545,8 +4102,21 @@ L_08A51630: L_08A51650: aot_gpr_31 = (0x08A51658u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 190u, 0x08A51658u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51658u) goto L_08A51658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51658: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -3574,8 +4144,21 @@ L_08A51684: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A5169Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 194u, 0x08A5169Cu, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5169Cu) goto L_08A5169C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5169C: ctx.gpr[23] = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (15948u << 16u); @@ -3598,8 +4181,21 @@ L_08A5169C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A516E8u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 195u, 0x08A516E8u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A516E8u) goto L_08A516E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A516E8: aot_gpr_4 = (aot_gpr_29 + static_cast(32)); ctx.gpr[7] = (aot_gpr_29 + static_cast(96)); @@ -3776,14 +4372,40 @@ L_08A517E0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A517F4u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 205u, 0x08A517F4u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A517F4u) goto L_08A517F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A517F4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A51800u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 206u, 0x08A51800u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51800u) goto L_08A51800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51800: ctx.gpr[23] = (aot_gpr_29 + static_cast(240)); ctx.gpr[30] = (aot_gpr_29 + static_cast(32)); @@ -3791,8 +4413,21 @@ L_08A51800: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A51818u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 207u, 0x08A51818u, 0x08A3FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 568u, 0x08A3FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51818u) goto L_08A51818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51818: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3812,8 +4447,21 @@ L_08A51818: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A51834u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 208u, 0x08A51834u, 0x08A3FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 568u, 0x08A3FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51834u) goto L_08A51834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51834: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3921,8 +4569,21 @@ L_08A518D4: ctx.gpr[7] = (ctx.gpr[23] << 3u); aot_gpr_31 = (0x08A518ECu); aot_gpr_6 = (aot_gpr_6 + ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 216u, 0x08A518ECu, 0x088B36D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 428u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 428u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 428u, 0x088B36D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A518ECu) goto L_08A518EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A518EC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3993,8 +4654,21 @@ L_08A5195C: ctx.gpr[7] = (ctx.gpr[22] << 3u); aot_gpr_31 = (0x08A51974u); aot_gpr_6 = (aot_gpr_6 + ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 224u, 0x08A51974u, 0x088B36D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 428u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 428u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 428u, 0x088B36D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51974u) goto L_08A51974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51974: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4034,8 +4708,21 @@ L_08A519AC: aot_gpr_4 = (ctx.gpr[20] + static_cast(944)); aot_gpr_31 = (0x08A519BCu); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 229u, 0x08A519BCu, 0x08B0D6E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 348u, 0x08B0D6E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A519BCu) goto L_08A519BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A519BC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4047,8 +4734,21 @@ L_08A519C4: aot_gpr_4 = (ctx.gpr[20] + static_cast(944)); aot_gpr_31 = (0x08A519D0u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 231u, 0x08A519D0u, 0x08B0D8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 374u, 0x08B0D8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A519D0u) goto L_08A519D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A519D0: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4061,16 +4761,42 @@ L_08A519DC: aot_gpr_4 = (ctx.gpr[20] + static_cast(944)); aot_gpr_31 = (0x08A519E8u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 233u, 0x08A519E8u, 0x08B0D6E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 348u, 0x08B0D6E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A519E8u) goto L_08A519E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A519E8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (0u | 20u); aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08A519FCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 234u, 0x08A519FCu, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A519FCu) goto L_08A519FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A519FC: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(96))); @@ -4079,8 +4805,21 @@ L_08A519FC: aot_fpr_13 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08A51A18u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 235u, 0x08A51A18u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51A18u) goto L_08A51A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51A18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(328))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4101,8 +4840,21 @@ L_08A51A28: L_08A51A34: aot_gpr_31 = (0x08A51A3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(320))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 238u, 0x08A51A3Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51A3Cu) goto L_08A51A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51A3C: { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { @@ -4115,8 +4867,21 @@ L_08A51A44: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A51A54u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 240u, 0x08A51A54u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51A54u) goto L_08A51A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51A54: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(404), aot_run_words); @@ -4133,8 +4898,8 @@ L_08A51A54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(448)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A51A84: @@ -4226,8 +4991,21 @@ L_08A51B34: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A51B90u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 247u, 0x08A51B90u, 0x08A3FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 568u, 0x08A3FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51B90u) goto L_08A51B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51B90: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4347,8 +5125,21 @@ L_08A51C84: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A51C94u); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 253u, 0x08A51C94u, 0x08A43300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 524u, 0x08A43300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51C94u) goto L_08A51C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51C94: aot_gpr_4 = (49011u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -4372,8 +5163,21 @@ L_08A51C94: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A51CC4u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 254u, 0x08A51CC4u, 0x08A3FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 568u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 568u, 0x08A3FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51CC4u) goto L_08A51CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51CC4: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4479,8 +5283,21 @@ L_08A51D80: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A51D90u); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 260u, 0x08A51D90u, 0x08A43300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 524u, 0x08A43300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51D90u) goto L_08A51D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51D90: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); @@ -4489,8 +5306,21 @@ L_08A51D90: aot_gpr_6 = (0u | 55u); aot_gpr_31 = (0x08A51DACu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 261u, 0x08A51DACu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51DACu) goto L_08A51DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51DAC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(625))); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); @@ -4527,8 +5357,8 @@ L_08A51DD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A51E10: @@ -4539,8 +5369,21 @@ L_08A51E10: ctx.gpr[30] = (0u | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); aot_gpr_31 = (0x08A51E50u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 265u, 0x08A51E50u, 0x08A4031Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 32u, 0x08A4031Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51E50u) goto L_08A51E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51E50: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4661,8 +5504,21 @@ L_08A51F0C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A51F20u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 281u, 0x08A51F20u, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51F20u) goto L_08A51F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51F20: ctx.gpr[19] = (0u | 0u); ctx.gpr[20] = (0u | 0u); @@ -4700,8 +5556,21 @@ L_08A51F6C: L_08A51F74: aot_gpr_31 = (0x08A51F7Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 285u, 0x08A51F7Cu, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51F7Cu) goto L_08A51F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51F7C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4720,8 +5589,21 @@ L_08A51F88: L_08A51F90: aot_gpr_31 = (0x08A51F98u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 289u, 0x08A51F98u, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A51F98u) goto L_08A51F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A51F98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(614)))))); @@ -4856,8 +5738,21 @@ L_08A52074: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A52084u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 309u, 0x08A52084u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52084u) goto L_08A52084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52084: { const bool branch_taken = 0u == 0u; ctx.gpr[30] = (aot_gpr_2 | 0u); @@ -4958,8 +5853,21 @@ L_08A5213C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A5214Cu); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 323u, 0x08A5214Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5214Cu) goto L_08A5214C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5214C: ctx.gpr[30] = (aot_gpr_2 | 0u); goto L_08A52150; @@ -4987,8 +5895,21 @@ L_08A52168: L_08A52170: aot_gpr_31 = (0x08A52178u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 328u, 0x08A52178u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52178u) goto L_08A52178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52178: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5012,8 +5933,21 @@ L_08A52194: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A521A8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 331u, 0x08A521A8u, 0x08A40DCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 175u, 0x08A40DCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A521A8u) goto L_08A521A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A521A8: aot_gpr_31 = (0x08A521B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -5033,8 +5967,21 @@ L_08A521B0: L_08A521C4: aot_gpr_31 = (0x08A521CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 334u, 0x08A521CCu, 0x08A40FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 212u, 0x08A40FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A521CCu) goto L_08A521CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A521CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); aot_gpr_31 = (0x08A521D8u); @@ -5180,8 +6127,8 @@ L_08A522F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52328: @@ -5223,8 +6170,21 @@ L_08A5237C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5238Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 354u, 0x08A5238Cu, 0x08A438FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 581u, 0x08A438FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5238Cu) goto L_08A5238C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5238C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5278,8 +6238,21 @@ L_08A523E0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A523F4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 361u, 0x08A523F4u, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A523F4u) goto L_08A523F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A523F4: ctx.gpr[19] = (0u | 0u); ctx.gpr[20] = (0u | 0u); @@ -5317,8 +6290,21 @@ L_08A52440: L_08A52448: aot_gpr_31 = (0x08A52450u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 365u, 0x08A52450u, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52450u) goto L_08A52450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52450: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5337,8 +6323,21 @@ L_08A5245C: L_08A52464: aot_gpr_31 = (0x08A5246Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 369u, 0x08A5246Cu, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5246Cu) goto L_08A5246C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5246C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5454,8 +6453,21 @@ L_08A52520: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A52530u); ctx.gpr[7] = (0u | 105u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 387u, 0x08A52530u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52530u) goto L_08A52530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52530: { const bool branch_taken = 0u == 0u; ctx.gpr[22] = (aot_gpr_2 | 0u); @@ -5557,8 +6569,21 @@ L_08A525EC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A525FCu); ctx.gpr[7] = (0u | 106u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 401u, 0x08A525FCu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A525FCu) goto L_08A525FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A525FC: ctx.gpr[22] = (aot_gpr_2 | 0u); goto L_08A52600; @@ -5586,8 +6611,21 @@ L_08A52618: L_08A52620: aot_gpr_31 = (0x08A52628u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 406u, 0x08A52628u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52628u) goto L_08A52628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52628: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5611,8 +6649,21 @@ L_08A52644: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A52658u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 409u, 0x08A52658u, 0x08A40DCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 175u, 0x08A40DCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52658u) goto L_08A52658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52658: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 + static_cast(70)); @@ -5626,8 +6677,21 @@ L_08A52658: L_08A52668: aot_gpr_31 = (0x08A52670u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 411u, 0x08A52670u, 0x08A40FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 212u, 0x08A40FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52670u) goto L_08A52670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52670: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_gpr_31 = (0x08A5267Cu); @@ -5680,8 +6744,8 @@ L_08A526B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A526E0: @@ -5725,8 +6789,8 @@ L_08A52724: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52730: @@ -5774,8 +6838,21 @@ L_08A52798: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(108), 0u); aot_gpr_31 = (0x08A527D0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 427u, 0x08A527D0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A527D0u) goto L_08A527D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A527D0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -5820,8 +6897,8 @@ L_08A527F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52844: @@ -5913,8 +6990,21 @@ L_08A52904: ctx.gpr[7] = (aot_gpr_4 + static_cast(12)); aot_gpr_31 = (0x08A52924u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 439u, 0x08A52924u, 0x08B6AC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 484u, 0x08B6AC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52924u) goto L_08A52924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52924: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5965,8 +7055,21 @@ L_08A5296C: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x08A52980u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 447u, 0x08A52980u, 0x08B6DB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 375u, 0x08B6DB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52980u) goto L_08A52980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52980: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(108))); aot_gpr_5 = (aot_gpr_4 + static_cast(8)); @@ -6052,8 +7155,8 @@ L_08A529FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52A20: @@ -6113,8 +7216,8 @@ L_08A52A6C: goto L_08A52A70; L_08A52A70: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52A78: @@ -6151,8 +7254,21 @@ L_08A52AB8: aot_gpr_6 = (ctx.gpr[16] + static_cast(4)); aot_gpr_31 = (0x08A52AC4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 472u, 0x08A52AC4u, 0x08A54B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 180u, 0x08A54B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52AC4u) goto L_08A52AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52AC4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -6186,8 +7302,8 @@ L_08A52AF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52B08: @@ -6217,8 +7333,8 @@ L_08A52B30: goto L_08A52B38; L_08A52B38: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52B40: @@ -6230,8 +7346,8 @@ L_08A52B40: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(0)))))); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52B60: @@ -6250,8 +7366,8 @@ L_08A52B60: aot_gpr_2 = (aot_gpr_4 | 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52BA4: @@ -6358,16 +7474,16 @@ L_08A52C40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52C54: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52C60: @@ -6412,8 +7528,8 @@ L_08A52CB8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52CD4: @@ -6474,8 +7590,21 @@ L_08A52D48: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08A52D54u); aot_gpr_4 = (0u | 120u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 507u, 0x08A52D54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52D54u) goto L_08A52D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52D54: ctx.gpr[22] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -6575,8 +7704,21 @@ L_08A52DF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x08A52E0Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 520u, 0x08A52E0Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52E0Cu) goto L_08A52E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52E0C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -6620,8 +7762,21 @@ L_08A52E44: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A52E58u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 526u, 0x08A52E58u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52E58u) goto L_08A52E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52E58: aot_gpr_5 = (aot_gpr_2 + ctx.gpr[22]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -6673,22 +7828,61 @@ L_08A52EB4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A52EC0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 534u, 0x08A52EC0u, 0x08A89478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 278u, 0x08A89478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52EC0u) goto L_08A52EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52EC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(100))); aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x08A52ED0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 535u, 0x08A52ED0u, 0x08A897C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 330u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 330u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 330u, 0x08A897C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52ED0u) goto L_08A52ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52ED0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(100))); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A52EE0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 536u, 0x08A52EE0u, 0x08A897C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 330u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 330u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 330u, 0x08A897C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52EE0u) goto L_08A52EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52EE0: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), aot_run_words); @@ -6703,8 +7897,8 @@ L_08A52EE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52F08: @@ -6721,8 +7915,21 @@ L_08A52F08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_31 = (0x08A52F3Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 538u, 0x08A52F3Cu, 0x08A89A28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 367u, 0x08A89A28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52F3Cu) goto L_08A52F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52F3C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); @@ -6800,8 +8007,21 @@ L_08A52FB0: aot_gpr_6 = (aot_gpr_4 - aot_gpr_5); aot_gpr_31 = (0x08A52FC0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 549u, 0x08A52FC0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A52FC0u) goto L_08A52FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A52FC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); goto L_08A52FC4; @@ -6833,8 +8053,8 @@ L_08A52FDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A52FF8: @@ -6888,8 +8108,8 @@ L_08A53060: goto L_08A53064; L_08A53064: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5306C: @@ -6906,8 +8126,8 @@ L_08A5308C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53098: @@ -6998,8 +8218,8 @@ L_08A53118: goto L_08A5311C; L_08A5311C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53124: @@ -7031,8 +8251,8 @@ L_08A53150: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5315C: @@ -7181,8 +8401,8 @@ L_08A532A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A532B0: @@ -7238,8 +8458,8 @@ L_08A53330: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53344: @@ -7253,15 +8473,41 @@ L_08A53344: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A5336Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 599u, 0x08A5336Cu, 0x08A89478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 278u, 0x08A89478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5336Cu) goto L_08A5336C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5336C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(28), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(100))); aot_gpr_31 = (0x08A5337Cu); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 600u, 0x08A5337Cu, 0x08A89478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 278u, 0x08A89478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5337Cu) goto L_08A5337C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5337C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(32), aot_gpr_2); { std::uint32_t aot_run_words[3]{}; @@ -7272,8 +8518,8 @@ L_08A5337C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53394: @@ -7296,8 +8542,8 @@ L_08A533C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A533D0: @@ -7340,8 +8586,21 @@ L_08A53440: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08A53450u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 607u, 0x08A53450u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53450u) goto L_08A53450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53450: if (aot_gpr_2 != ctx.gpr[21]) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); @@ -7353,8 +8612,21 @@ L_08A53458: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08A53468u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 609u, 0x08A53468u, 0x08A89998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 357u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 357u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 357u, 0x08A89998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53468u) goto L_08A53468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53468: if (aot_gpr_2 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); @@ -7366,8 +8638,21 @@ L_08A53470: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08A53480u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 611u, 0x08A53480u, 0x08A897C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 330u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 330u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 330u, 0x08A897C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53480u) goto L_08A53480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53480: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); goto L_08A53484; @@ -7391,8 +8676,21 @@ L_08A534B0: aot_gpr_4 = (ctx.gpr[18] + static_cast(116)); aot_gpr_31 = (0x08A534BCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 614u, 0x08A534BCu, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A534BCu) goto L_08A534BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A534BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(60))); aot_gpr_4 = (aot_gpr_4 + static_cast(40)); @@ -7417,15 +8715,15 @@ L_08A534D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A534F8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53500: @@ -7486,8 +8784,21 @@ L_08A53568: L_08A53574: aot_gpr_31 = (0x08A5357Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 623u, 0x08A5357Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5357Cu) goto L_08A5357C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5357C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_2); @@ -7519,8 +8830,21 @@ L_08A535AC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A535B8u); aot_gpr_5 = (0u | 46u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 628u, 0x08A535B8u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A535B8u) goto L_08A535B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A535B8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7537,8 +8861,21 @@ L_08A535CC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A535D8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 631u, 0x08A535D8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A535D8u) goto L_08A535D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A535D8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7580,8 +8917,8 @@ L_08A53618: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53634: @@ -7622,8 +8959,8 @@ L_08A53670: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53688: @@ -7643,8 +8980,8 @@ L_08A536A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A536B8: @@ -7656,8 +8993,21 @@ L_08A536B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A536D8u); aot_gpr_5 = (aot_gpr_5 + static_cast(13560)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 643u, 0x08A536D8u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A536D8u) goto L_08A536D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A536D8: aot_gpr_31 = (0x08A536E0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7667,8 +9017,8 @@ L_08A536E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A536F0: @@ -7680,8 +9030,21 @@ L_08A536F0: { const std::uint32_t aot_run_words[3]{ctx.gpr[19], ctx.gpr[20], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x08A53718u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 646u, 0x08A53718u, 0x08AAEAFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 556u, 0x08AAEAFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53718u) goto L_08A53718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53718: aot_gpr_4 = (97u << 16u); ctx.gpr[16] = (aot_gpr_4 + static_cast(-31744)); @@ -7689,22 +9052,61 @@ L_08A53718: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A53730u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 647u, 0x08A53730u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53730u) goto L_08A53730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53730: aot_gpr_4 = (2232u << 16u); ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A53740u); aot_gpr_4 = (aot_gpr_4 + static_cast(7048)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 648u, 0x08A53740u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53740u) goto L_08A53740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53740: ctx.gpr[19] = (aot_gpr_2 | 0u); ctx.gpr[20] = (ctx.gpr[17] + ctx.gpr[16]); aot_gpr_31 = (0x08A53750u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 649u, 0x08A53750u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53750u) goto L_08A53750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53750: aot_gpr_4 = (aot_gpr_2 + static_cast(15)); aot_gpr_5 = (0u + static_cast(-16)); @@ -7712,28 +9114,80 @@ L_08A53750: ctx.gpr[20] = (ctx.gpr[20] - aot_gpr_4); aot_gpr_31 = (0x08A53768u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 650u, 0x08A53768u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53768u) goto L_08A53768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53768: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A53778u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 651u, 0x08A53778u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53778u) goto L_08A53778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53778: aot_gpr_31 = (0x08A53780u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 652u, 0x08A53780u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53780u) goto L_08A53780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53780: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A53794u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 653u, 0x08A53794u, 0x0893681Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 694u, 0x0893681Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53794u) goto L_08A53794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53794: aot_gpr_4 = (18260u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(16711)); @@ -7743,8 +9197,21 @@ L_08A53794: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A537B4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 654u, 0x08A537B4u, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A537B4u) goto L_08A537B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A537B4: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u < ctx.gpr[17] ? 1u : 0u); @@ -7786,36 +9253,101 @@ L_08A537C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(52))); aot_gpr_31 = (0x08A5383Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(56))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 656u, 0x08A5383Cu, 0x08AECA10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 167u, 0x08AECA10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5383Cu) goto L_08A5383C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5383C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(60))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(104), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(68))); aot_gpr_31 = (0x08A53850u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 657u, 0x08A53850u, 0x08AAF304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 694u, 0x08AAF304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53850u) goto L_08A53850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53850: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24056), aot_gpr_4); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(76))); aot_gpr_31 = (0x08A53864u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 658u, 0x08A53864u, 0x08809A78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 341u, 0x08809A78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53864u) goto L_08A53864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53864: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(84))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11144), aot_gpr_4); aot_gpr_31 = (0x08A53874u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(88))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 659u, 0x08A53874u, 0x08AA25D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 564u, 0x08AA25D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53874u) goto L_08A53874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53874: aot_gpr_31 = (0x08A5387Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 660u, 0x08A5387Cu, 0x08AD30F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 524u, 0x08AD30F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5387Cu) goto L_08A5387C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5387C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); ctx.gpr[16] = (2237u << 16u); @@ -7852,23 +9384,75 @@ L_08A538A4: L_08A538A8: aot_gpr_31 = (0x08A538B0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 666u, 0x08A538B0u, 0x0893E20Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 548u, 0x0893E20Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A538B0u) goto L_08A538B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A538B0: aot_gpr_31 = (0x08A538B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 667u, 0x08A538B8u, 0x089AB1E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 653u, 0x089AB1E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A538B8u) goto L_08A538B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A538B8: aot_gpr_31 = (0x08A538C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(104))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 668u, 0x08A538C0u, 0x088B9D24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 391u, 0x088B9D24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A538C0u) goto L_08A538C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A538C0: aot_gpr_31 = (0x08A538C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(108))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 669u, 0x08A538C8u, 0x088B9D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 393u, 0x088B9D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A538C8u) goto L_08A538C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A538C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5840))); if (aot_gpr_4 != 0u) { @@ -7886,8 +9470,21 @@ L_08A538DC: L_08A538E0: aot_gpr_31 = (0x08A538E8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 673u, 0x08A538E8u, 0x08903F08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 709u, 0x08903F08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A538E8u) goto L_08A538E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A538E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5904))); if (aot_gpr_4 != 0u) { @@ -7897,34 +9494,99 @@ L_08A538E8: goto L_08A538F4; L_08A538F4: aot_gpr_31 = (0x08A538FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 675u, 0x08A538FCu, 0x08B6A238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 324u, 0x08B6A238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A538FCu) goto L_08A538FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A538FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5904))); goto L_08A53900; L_08A53900: aot_gpr_31 = (0x08A53908u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(116))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 677u, 0x08A53908u, 0x088C59F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 318u, 0x088C59F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53908u) goto L_08A53908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53908: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(120))); aot_gpr_31 = (0x08A53914u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 678u, 0x08A53914u, 0x08AAE3B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 432u, 0x08AAE3B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53914u) goto L_08A53914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53914: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(128))); aot_gpr_31 = (0x08A53920u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(132))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 679u, 0x08A53920u, 0x08B11EECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 434u, 0x08B11EECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53920u) goto L_08A53920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53920: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(136))); aot_gpr_31 = (0x08A5392Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 680u, 0x08A5392Cu, 0x08AF80F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 16u, 0x08AF80F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5392Cu) goto L_08A5392C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5392C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(140))); aot_gpr_6 = (0u | 11248u); @@ -7935,8 +9597,21 @@ L_08A5392C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A53950u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(148))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 681u, 0x08A53950u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53950u) goto L_08A53950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53950: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(152))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11840), aot_gpr_4); @@ -7944,8 +9619,21 @@ L_08A53950: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8816), aot_gpr_4); aot_gpr_31 = (0x08A53968u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 682u, 0x08A53968u, 0x08B1FD68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 732u, 0x08B1FD68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53968u) goto L_08A53968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53968: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -7963,13 +9651,39 @@ L_08A5397C: L_08A53980: aot_gpr_31 = (0x08A53988u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(164))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 686u, 0x08A53988u, 0x089BABC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 583u, 0x089BABC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53988u) goto L_08A53988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53988: aot_gpr_31 = (0x08A53990u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(168))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 687u, 0x08A53990u, 0x088AB604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 526u, 0x088AB604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53990u) goto L_08A53990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53990: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); if (aot_gpr_4 != 0u) { @@ -7987,14 +9701,40 @@ L_08A539A4: L_08A539A8: aot_gpr_31 = (0x08A539B0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(172))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 691u, 0x08A539B0u, 0x0884C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 92u, 0x0884C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A539B0u) goto L_08A539B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A539B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(24))); aot_gpr_31 = (0x08A539BCu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 692u, 0x08A539BCu, 0x08AEC884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 137u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 137u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 137u, 0x08AEC884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A539BCu) goto L_08A539BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A539BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -8012,19 +9752,58 @@ L_08A539D0: L_08A539D4: aot_gpr_31 = (0x08A539DCu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 696u, 0x08A539DCu, 0x0880EFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 615u, 0x0880EFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A539DCu) goto L_08A539DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A539DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(204))); aot_gpr_31 = (0x08A539E8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 697u, 0x08A539E8u, 0x0895DF84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 305u, 0x0895DF84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A539E8u) goto L_08A539E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A539E8: aot_gpr_31 = (0x08A539F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(184))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 698u, 0x08A539F0u, 0x089FD9F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 394u, 0x089FD9F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A539F0u) goto L_08A539F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A539F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(188))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); @@ -8040,8 +9819,21 @@ L_08A53A00: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08A53A10u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 700u, 0x08A53A10u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53A10u) goto L_08A53A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53A10: aot_gpr_31 = (0x08A53A18u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-6224)); @@ -8051,27 +9843,92 @@ L_08A53A18: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(192))); aot_gpr_31 = (0x08A53A24u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 702u, 0x08A53A24u, 0x0882E9BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 612u, 0x0882E9BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53A24u) goto L_08A53A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53A24: aot_gpr_31 = (0x08A53A2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(216))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 703u, 0x08A53A2Cu, 0x08B0C640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 86u, 0x08B0C640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53A2Cu) goto L_08A53A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53A2C: aot_gpr_31 = (0x08A53A34u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(220))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 704u, 0x08A53A34u, 0x08B0C650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 88u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 88u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 88u, 0x08B0C650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53A34u) goto L_08A53A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53A34: aot_gpr_31 = (0x08A53A3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 705u, 0x08A53A3Cu, 0x08B0BFA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 703u, 0x08B0BFA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53A3Cu) goto L_08A53A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53A3C: aot_gpr_31 = (0x08A53A44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 706u, 0x08A53A44u, 0x088099B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 327u, 0x088099B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53A44u) goto L_08A53A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53A44: aot_gpr_2 = (ctx.gpr[18] | 0u); goto L_08A53A48; @@ -8087,8 +9944,8 @@ L_08A53A48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53A68: @@ -8099,14 +9956,27 @@ L_08A53A68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A53A84u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 709u, 0x08A53A84u, 0x08A56820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 585u, 0x08A56820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53A84u) goto L_08A53A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53A84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53A90: @@ -8139,8 +10009,21 @@ L_08A53AD0: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A53AECu); ctx.gpr[9] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 713u, 0x08A53AECu, 0x08A56C00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 640u, 0x08A56C00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53AECu) goto L_08A53AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53AEC: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8153,8 +10036,8 @@ L_08A53AEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53B0C: @@ -8187,8 +10070,21 @@ L_08A53B4C: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A53B68u); ctx.gpr[9] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 717u, 0x08A53B68u, 0x08A56F50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 684u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 684u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 684u, 0x08A56F50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53B68u) goto L_08A53B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53B68: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8201,8 +10097,8 @@ L_08A53B68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53B88: @@ -8232,8 +10128,8 @@ L_08A53BB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53BC4: @@ -8246,8 +10142,8 @@ L_08A53BC4: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(5), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53BE8: @@ -8313,8 +10209,21 @@ L_08A53C8C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A53CACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 729u, 0x08A53CACu, 0x08A55324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 299u, 0x08A55324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53CACu) goto L_08A53CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53CAC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8325,8 +10234,8 @@ L_08A53CAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53CC4: @@ -8335,8 +10244,21 @@ L_08A53CC4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_31 = (0x08A53CDCu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 731u, 0x08A53CDCu, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53CDCu) goto L_08A53CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53CDC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8362,8 +10284,21 @@ L_08A53D04: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A53D10u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 735u, 0x08A53D10u, 0x08A564A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 542u, 0x08A564A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53D10u) goto L_08A53D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53D10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -8390,15 +10325,41 @@ L_08A53D2C: L_08A53D34: aot_gpr_31 = (0x08A53D3Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 739u, 0x08A53D3Cu, 0x08A56714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 575u, 0x08A56714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53D3Cu) goto L_08A53D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53D3C: aot_gpr_4 = (ctx.gpr[16] + static_cast(92)); aot_gpr_5 = (ctx.gpr[16] + static_cast(2100)); aot_gpr_31 = (0x08A53D4Cu); aot_gpr_6 = (0u | 1064u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 740u, 0x08A53D4Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53D4Cu) goto L_08A53D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53D4C: ctx.gpr[8] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[8]) < 7 ? 1u : 0u); @@ -8577,8 +10538,21 @@ L_08A53EBC: L_08A53ECC: aot_gpr_31 = (0x08A53ED4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 759u, 0x08A53ED4u, 0x08A56738u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 577u, 0x08A56738u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53ED4u) goto L_08A53ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53ED4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(16)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(18)))))); @@ -8623,8 +10597,8 @@ L_08A53F18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A53F2C: @@ -8719,18 +10693,57 @@ L_08A53FA4: L_08A53FB8: aot_gpr_31 = (0x08A53FC0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 777u, 0x08A53FC0u, 0x08A54FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 255u, 0x08A54FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53FC0u) goto L_08A53FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53FC0: aot_gpr_31 = (0x08A53FC8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 778u, 0x08A53FC8u, 0x08A3C804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 99u, 0x08A3C804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53FC8u) goto L_08A53FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53FC8: aot_gpr_31 = (0x08A53FD0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0147->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0147_entry, 779u, 0x08A53FD0u, 0x08A552D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 293u, 0x08A552D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A53FD0u) goto L_08A53FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A53FD0: aot_gpr_31 = (0x08A53FD8u); ctx.pc = 0x08B72FD4u; diff --git a/profiles/vcs/generated/generated_unit_0148.cpp b/profiles/vcs/generated/generated_unit_0148.cpp index 0680909..d012443 100644 --- a/profiles/vcs/generated/generated_unit_0148.cpp +++ b/profiles/vcs/generated/generated_unit_0148.cpp @@ -989,6 +989,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A54004u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1020,8 +1044,8 @@ L_08A54024: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54034: @@ -1373,8 +1397,8 @@ L_08A54340: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54358: @@ -1549,8 +1573,8 @@ L_08A5449C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A544B4: @@ -1671,8 +1695,8 @@ L_08A54598: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A545AC: @@ -1712,8 +1736,8 @@ L_08A545E0: goto L_08A545E4; L_08A545E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A545EC: @@ -1795,8 +1819,8 @@ L_08A546B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A546D0: @@ -1853,8 +1877,8 @@ L_08A54734: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54740: @@ -1890,8 +1914,21 @@ L_08A54784: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A54790u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 106u, 0x08A54790u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54790u) goto L_08A54790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54790: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1915,13 +1952,39 @@ L_08A547AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A547B8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 111u, 0x08A547B8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A547B8u) goto L_08A547B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A547B8: aot_gpr_31 = (0x08A547C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 112u, 0x08A547C0u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A547C0u) goto L_08A547C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A547C0: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A547CCu); @@ -1947,8 +2010,21 @@ L_08A547E4: ctx.gpr[19] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A547F4u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 116u, 0x08A547F4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A547F4u) goto L_08A547F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A547F4: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_6 = (ctx.gpr[18] + ctx.gpr[18]); @@ -2046,8 +2122,21 @@ L_08A54894: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A548A0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 129u, 0x08A548A0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A548A0u) goto L_08A548A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A548A0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -2071,13 +2160,39 @@ L_08A548BC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A548C8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 134u, 0x08A548C8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A548C8u) goto L_08A548C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A548C8: aot_gpr_31 = (0x08A548D0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 135u, 0x08A548D0u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A548D0u) goto L_08A548D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A548D0: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A548DCu); @@ -2102,8 +2217,21 @@ L_08A548F4: aot_gpr_4 = (ctx.gpr[18] + static_cast(1)); aot_gpr_31 = (0x08A54900u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 139u, 0x08A54900u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54900u) goto L_08A54900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54900: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_6 = (ctx.gpr[18] + ctx.gpr[18]); @@ -2118,8 +2246,21 @@ L_08A54918: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A54928u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 141u, 0x08A54928u, 0x089F5BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 328u, 0x089F5BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54928u) goto L_08A54928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54928: aot_gpr_31 = (0x08A54930u); aot_gpr_4 = (0u | 1u); @@ -2127,24 +2268,76 @@ L_08A54928: AOT_REGCACHE_SYNC_OUT(); return; L_08A54930: aot_gpr_31 = (0x08A54938u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 143u, 0x08A54938u, 0x08B0C748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 96u, 0x08B0C748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54938u) goto L_08A54938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54938: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A54944u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 144u, 0x08A54944u, 0x08AFD8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 283u, 0x08AFD8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54944u) goto L_08A54944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54944: aot_gpr_31 = (0x08A5494Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 145u, 0x08A5494Cu, 0x089F5C38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 332u, 0x089F5C38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5494Cu) goto L_08A5494C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5494C: aot_gpr_31 = (0x08A54954u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 146u, 0x08A54954u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54954u) goto L_08A54954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54954: ctx.gpr[20] = (aot_gpr_2 | 0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(4)); @@ -2229,8 +2422,8 @@ L_08A549E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54A00: @@ -2328,8 +2521,21 @@ L_08A54AA4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A54AB0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 171u, 0x08A54AB0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54AB0u) goto L_08A54AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54AB0: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2353,13 +2559,39 @@ L_08A54AC8: L_08A54AD0: aot_gpr_31 = (0x08A54AD8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 176u, 0x08A54AD8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54AD8u) goto L_08A54AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54AD8: aot_gpr_31 = (0x08A54AE0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 177u, 0x08A54AE0u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A54AE0u) goto L_08A54AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A54AE0: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A54AECu); @@ -2383,8 +2615,8 @@ L_08A54AFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54B14: @@ -2662,8 +2894,8 @@ L_08A54D1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54D38: @@ -2741,8 +2973,8 @@ L_08A54DB8: L_08A54DC8: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54DD0: @@ -2813,8 +3045,8 @@ L_08A54E48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54E5C: @@ -2855,8 +3087,8 @@ L_08A54EBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54ED4: @@ -2905,8 +3137,8 @@ L_08A54F1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54F34: @@ -2928,8 +3160,8 @@ L_08A54F50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54F5C: @@ -2993,15 +3225,15 @@ L_08A54FD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54FE4: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(3172)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A54FEC: @@ -3096,8 +3328,8 @@ L_08A550A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A550C0: @@ -3229,8 +3461,8 @@ L_08A551C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A551F0: @@ -3328,8 +3560,8 @@ L_08A552BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A552D8: @@ -3367,22 +3599,22 @@ L_08A55318: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55324: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(3184), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5532C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(3184))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55334: @@ -3396,8 +3628,8 @@ L_08A55344: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55354: @@ -3418,16 +3650,29 @@ L_08A55354: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A55398u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(15300)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 304u, 0x08A55398u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A55398u) goto L_08A55398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A55398: aot_gpr_2 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A553AC: @@ -3457,8 +3702,21 @@ L_08A553AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(140), aot_gpr_31); aot_gpr_31 = (0x08A55414u); aot_gpr_5 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 306u, 0x08A55414u, 0x08B60818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 94u, 0x08B60818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A55414u) goto L_08A55414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A55414: aot_gpr_6 = (ctx.gpr[16] + static_cast(6)); aot_gpr_5 = (0u | 0u); @@ -3485,8 +3743,8 @@ L_08A55444: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(140))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55458: @@ -3527,8 +3785,21 @@ L_08A55458: aot_gpr_6 = (0u | 152u); aot_gpr_31 = (0x08A55504u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 310u, 0x08A55504u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A55504u) goto L_08A55504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A55504: aot_gpr_4 = (ctx.gpr[16] + static_cast(1156)); ctx.gpr[7] = (2213u << 16u); @@ -3536,8 +3807,21 @@ L_08A55504: aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x08A5551Cu); aot_gpr_6 = (0u | 134u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 311u, 0x08A5551Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5551Cu) goto L_08A5551C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5551C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(2096), ctx.gpr[18]); aot_gpr_4 = (ctx.gpr[16] + static_cast(2100)); @@ -3545,8 +3829,21 @@ L_08A5551C: aot_gpr_6 = (0u | 152u); aot_gpr_31 = (0x08A55534u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 312u, 0x08A55534u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A55534u) goto L_08A55534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A55534: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(3166), static_cast(ctx.gpr[17])); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(3167), static_cast(ctx.gpr[17])); @@ -3587,14 +3884,14 @@ L_08A55534: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A555C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A555CC: @@ -3704,8 +4001,21 @@ L_08A55694: aot_gpr_4 = (aot_gpr_29 + static_cast(8)); aot_gpr_31 = (0x08A556A8u); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 328u, 0x08A556A8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A556A8u) goto L_08A556A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A556A8: aot_gpr_6 = (aot_gpr_29 + static_cast(4)); aot_gpr_4 = (0u | 6144u); @@ -3876,8 +4186,8 @@ L_08A557E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55800: @@ -4056,8 +4366,8 @@ L_08A5599C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A559B0: @@ -4127,14 +4437,14 @@ L_08A55A30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55A3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55A44: @@ -4163,8 +4473,8 @@ L_08A55A6C: goto L_08A55A88; L_08A55A88: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55A90: @@ -4427,8 +4737,8 @@ L_08A55CA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55CC0: @@ -4507,8 +4817,8 @@ L_08A55D54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A55D64: @@ -4736,8 +5046,21 @@ L_08A55F00: L_08A55F0C: aot_gpr_31 = (0x08A55F14u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 453u, 0x08A55F14u, 0x08A53F2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 764u, 0x08A53F2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A55F14u) goto L_08A55F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A55F14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4873,14 +5196,14 @@ L_08A55FF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(736)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56010: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56018: @@ -4955,8 +5278,8 @@ L_08A560A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A560B0: @@ -4993,8 +5316,8 @@ L_08A560EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A560FC: @@ -5014,8 +5337,21 @@ L_08A56130: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A56140u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 490u, 0x08A56140u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56140u) goto L_08A56140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56140: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(68), 0u); aot_gpr_31 = (0x08A5614Cu); @@ -5058,8 +5394,21 @@ L_08A56188: ctx.gpr[7] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A561A0u); ctx.gpr[8] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 496u, 0x08A561A0u, 0x08B6804Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 7u, 0x08B6804Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A561A0u) goto L_08A561A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A561A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A561ACu); @@ -5120,8 +5469,8 @@ L_08A561F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56210: @@ -5365,8 +5714,8 @@ L_08A56400: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56418: @@ -5434,8 +5783,8 @@ L_08A5648C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A564A4: @@ -5446,8 +5795,21 @@ L_08A564A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A564C0u); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 543u, 0x08A564C0u, 0x08A53F2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 764u, 0x08A53F2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A564C0u) goto L_08A564C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A564C0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(60), static_cast(aot_gpr_4)); @@ -5466,8 +5828,8 @@ L_08A564D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A564EC: @@ -5731,8 +6093,8 @@ L_08A566F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56714: @@ -5748,8 +6110,8 @@ L_08A5672C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56738: @@ -5764,8 +6126,8 @@ L_08A5674C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56758: @@ -5833,8 +6195,8 @@ L_08A567FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56820: @@ -5913,8 +6275,8 @@ L_08A56894: goto L_08A568A8; L_08A568A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A568B0: @@ -5958,8 +6320,8 @@ L_08A568F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56900: @@ -6081,8 +6443,21 @@ L_08A569EC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A569FCu); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(80), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 617u, 0x08A569FCu, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A569FCu) goto L_08A569FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A569FC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -6095,8 +6470,21 @@ L_08A56A0C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56A1Cu); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(92), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 619u, 0x08A56A1Cu, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56A1Cu) goto L_08A56A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56A1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(100), aot_gpr_2); @@ -6120,22 +6508,61 @@ L_08A56A1C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56A74u); aot_mem.aot_direct_store8(aot_gpr_6 + static_cast(113), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 620u, 0x08A56A74u, 0x08ADC794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 149u, 0x08ADC794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56A74u) goto L_08A56A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56A74: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56A84u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(96), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 621u, 0x08A56A84u, 0x08ADC7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 151u, 0x08ADC7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56A84u) goto L_08A56A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56A84: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56A94u); aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(123), static_cast(aot_gpr_2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 622u, 0x08A56A94u, 0x08ADC7B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 153u, 0x08ADC7B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56A94u) goto L_08A56A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56A94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); ctx.gpr[17] = (0u | 0u); @@ -6145,8 +6572,21 @@ L_08A56AA0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56AACu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 624u, 0x08A56AACu, 0x08ADD774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 396u, 0x08ADD774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56AACu) goto L_08A56AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56AAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); @@ -6185,36 +6625,101 @@ L_08A56AE8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56AF8u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(84))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 629u, 0x08A56AF8u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56AF8u) goto L_08A56AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56AF8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56B08u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 630u, 0x08A56B08u, 0x08ADC72Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 136u, 0x08ADC72Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56B08u) goto L_08A56B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56B08: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56B18u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(88))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 631u, 0x08A56B18u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56B18u) goto L_08A56B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56B18: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56B28u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(92))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 632u, 0x08A56B28u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56B28u) goto L_08A56B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56B28: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56B38u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 633u, 0x08A56B38u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56B38u) goto L_08A56B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56B38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(104))); @@ -6235,8 +6740,21 @@ L_08A56B38: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56B84u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 634u, 0x08A56B84u, 0x08ADC78Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 148u, 0x08ADC78Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56B84u) goto L_08A56B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56B84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(122))); @@ -6245,15 +6763,41 @@ L_08A56B84: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56BA0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(123))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 635u, 0x08A56BA0u, 0x08ADC79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 150u, 0x08ADC79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56BA0u) goto L_08A56BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56BA0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A56BB0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 636u, 0x08A56BB0u, 0x08ADC7ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 152u, 0x08ADC7ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A56BB0u) goto L_08A56BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A56BB0: aot_gpr_4 = (0u | 0u); goto L_08A56BB4; @@ -6287,8 +6831,8 @@ L_08A56BE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56C00: @@ -6441,8 +6985,8 @@ L_08A56D18: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(7856))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56D34: @@ -6698,8 +7242,8 @@ L_08A56F30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A56F50: @@ -6825,8 +7369,8 @@ L_08A57030: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(7896))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5704C: @@ -7086,8 +7630,8 @@ L_08A57278: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57294: @@ -7099,21 +7643,60 @@ L_08A57294: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A572B4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 726u, 0x08A572B4u, 0x088079D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 555u, 0x088079D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A572B4u) goto L_08A572B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A572B4: aot_mem.aot_direct_store16(aot_gpr_2 + static_cast(0), static_cast(ctx.gpr[16])); aot_gpr_5 = (ctx.gpr[28] + static_cast(-5916)); aot_gpr_31 = (0x08A572C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 727u, 0x08A572C4u, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A572C4u) goto L_08A572C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A572C4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A572D0u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 728u, 0x08A572D0u, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A572D0u) goto L_08A572D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A572D0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7123,8 +7706,8 @@ L_08A572D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A572E4: @@ -7132,14 +7715,27 @@ L_08A572E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A572F4u); aot_gpr_6 = (ctx.gpr[28] + static_cast(-5916)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 730u, 0x08A572F4u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A572F4u) goto L_08A572F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A572F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57300: @@ -7162,8 +7758,21 @@ L_08A57340: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08A5735Cu); ctx.gpr[30] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 733u, 0x08A5735Cu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5735Cu) goto L_08A5735C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5735C: ctx.gpr[23] = (aot_gpr_29 + static_cast(16)); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -7171,8 +7780,21 @@ L_08A5735C: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08A57374u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 734u, 0x08A57374u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57374u) goto L_08A57374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57374: aot_gpr_4 = (16608u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7198,8 +7820,21 @@ L_08A573A0: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A573B4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 737u, 0x08A573B4u, 0x08932014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 406u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 406u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 406u, 0x08932014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A573B4u) goto L_08A573B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A573B4: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7398,8 +8033,21 @@ L_08A57510: aot_gpr_4 = (aot_gpr_4 + static_cast(176)); aot_gpr_31 = (0x08A57564u); ctx.gpr[11] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 763u, 0x08A57564u, 0x08A765B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 502u, 0x08A765B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57564u) goto L_08A57564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57564: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A57570u); @@ -7424,8 +8072,8 @@ L_08A57570: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A575AC: @@ -7458,8 +8106,21 @@ L_08A575DC: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08A575F0u); aot_gpr_4 = (aot_gpr_4 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 769u, 0x08A575F0u, 0x08A76A38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 550u, 0x08A76A38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A575F0u) goto L_08A575F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A575F0: aot_gpr_4 = (0u | 65535u); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(0), static_cast(aot_gpr_4)); @@ -7470,8 +8131,8 @@ L_08A575F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5760C: @@ -7597,8 +8258,8 @@ L_08A576E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A576FC: @@ -7614,15 +8275,28 @@ L_08A5770C: aot_gpr_5 = (0u < aot_gpr_2 ? 1u : 0u); aot_gpr_31 = (0x08A57720u); aot_gpr_4 = (aot_gpr_4 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 790u, 0x08A57720u, 0x08A76D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 592u, 0x08A76D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57720u) goto L_08A57720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57720: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57730: @@ -7633,8 +8307,21 @@ L_08A57730: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A5774Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 792u, 0x08A5774Cu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5774Cu) goto L_08A5774C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5774C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7644,30 +8331,56 @@ L_08A5774C: } aot_gpr_31 = (0x08A57760u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 793u, 0x08A57760u, 0x0887CCD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 236u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 236u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 236u, 0x0887CCD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57760u) goto L_08A57760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57760: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57770: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57780u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 795u, 0x08A57780u, 0x0887CD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 241u, 0x0887CD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57780u) goto L_08A57780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57780: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57790: @@ -7693,8 +8406,21 @@ L_08A577B4: aot_gpr_6 = (ctx.gpr[28] + static_cast(-5916)); aot_gpr_31 = (0x08A577C0u); aot_gpr_5 = (aot_gpr_5 + static_cast(7936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 800u, 0x08A577C0u, 0x08885284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 270u, 0x08885284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A577C0u) goto L_08A577C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A577C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7716,14 +8442,27 @@ L_08A577DC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A577E8u); aot_gpr_5 = (aot_gpr_5 + static_cast(8028)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 804u, 0x08A577E8u, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A577E8u) goto L_08A577E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A577E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A577F4: @@ -7735,21 +8474,60 @@ L_08A577F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A57814u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 806u, 0x08A57814u, 0x088079D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 555u, 0x088079D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57814u) goto L_08A57814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57814: aot_mem.aot_direct_store16(aot_gpr_2 + static_cast(0), static_cast(ctx.gpr[16])); aot_gpr_5 = (ctx.gpr[28] + static_cast(-5904)); aot_gpr_31 = (0x08A57824u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 807u, 0x08A57824u, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57824u) goto L_08A57824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57824: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A57830u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 808u, 0x08A57830u, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57830u) goto L_08A57830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57830: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7759,8 +8537,8 @@ L_08A57830: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57844: @@ -7768,14 +8546,27 @@ L_08A57844: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57854u); aot_gpr_6 = (ctx.gpr[28] + static_cast(-5904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 810u, 0x08A57854u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57854u) goto L_08A57854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57854: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57860: @@ -7793,8 +8584,21 @@ L_08A57860: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_31); aot_gpr_31 = (0x08A5789Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 812u, 0x08A5789Cu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5789Cu) goto L_08A5789C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5789C: aot_gpr_4 = (16608u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7822,8 +8626,21 @@ L_08A578CC: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A578E0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 815u, 0x08A578E0u, 0x08932014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 406u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 406u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 406u, 0x08932014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A578E0u) goto L_08A578E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A578E0: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7869,8 +8686,21 @@ L_08A5791C: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A57930u); aot_gpr_5 = (aot_gpr_5 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 820u, 0x08A57930u, 0x08ADC7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 155u, 0x08ADC7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57930u) goto L_08A57930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57930: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(1))); @@ -7909,8 +8739,21 @@ L_08A57970: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A57988u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 826u, 0x08A57988u, 0x089414D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 171u, 0x089414D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57988u) goto L_08A57988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57988: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A57994u); @@ -7930,8 +8773,8 @@ L_08A57994: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A579BC: @@ -7964,8 +8807,21 @@ L_08A579EC: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08A57A00u); aot_gpr_4 = (aot_gpr_4 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 832u, 0x08A57A00u, 0x089416B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 197u, 0x089416B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57A00u) goto L_08A57A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57A00: aot_gpr_4 = (0u | 65535u); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(0), static_cast(aot_gpr_4)); @@ -7976,8 +8832,8 @@ L_08A57A08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57A1C: @@ -8002,8 +8858,21 @@ L_08A57A38: L_08A57A40: aot_gpr_31 = (0x08A57A48u); aot_gpr_6 = (ctx.gpr[28] + static_cast(-5904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 838u, 0x08A57A48u, 0x08885284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 270u, 0x08885284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57A48u) goto L_08A57A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57A48: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8025,14 +8894,27 @@ L_08A57A64: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A57A70u); aot_gpr_5 = (aot_gpr_5 + static_cast(8084)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 842u, 0x08A57A70u, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57A70u) goto L_08A57A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57A70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57A7C: @@ -8043,15 +8925,28 @@ L_08A57A7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57A98u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 844u, 0x08A57A98u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57A98u) goto L_08A57A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57A98: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57AA8: @@ -8062,15 +8957,28 @@ L_08A57AA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57AC4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 846u, 0x08A57AC4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57AC4u) goto L_08A57AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57AC4: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57AD4: @@ -8081,22 +8989,35 @@ L_08A57AD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57AF0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 848u, 0x08A57AF0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57AF0u) goto L_08A57AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57AF0: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57B00: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57B08: @@ -8122,8 +9043,8 @@ L_08A57B44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57B54: @@ -8158,50 +9079,50 @@ L_08A57BB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57BC4: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57BCC: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57BD4: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57BDC: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57BE4: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57BEC: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57BF4: @@ -8212,15 +9133,28 @@ L_08A57BF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57C10u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 861u, 0x08A57C10u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57C10u) goto L_08A57C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57C10: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57C20: @@ -8282,8 +9216,8 @@ L_08A57C80: L_08A57C84: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57C8C: @@ -8363,8 +9297,8 @@ L_08A57D14: L_08A57D18: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57D20: @@ -8376,8 +9310,21 @@ L_08A57D20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A57D40u); ctx.gpr[7] = (ctx.gpr[16] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 879u, 0x08A57D40u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57D40u) goto L_08A57D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57D40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -8387,15 +9334,15 @@ L_08A57D40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57D60: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57D68: @@ -8406,15 +9353,28 @@ L_08A57D68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57D84u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 882u, 0x08A57D84u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57D84u) goto L_08A57D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57D84: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57D94: @@ -8425,15 +9385,28 @@ L_08A57D94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57DB0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 884u, 0x08A57DB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57DB0u) goto L_08A57DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57DB0: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57DC0: @@ -8444,15 +9417,28 @@ L_08A57DC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57DDCu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 886u, 0x08A57DDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57DDCu) goto L_08A57DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57DDC: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57DEC: @@ -8463,15 +9449,28 @@ L_08A57DEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57E08u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 888u, 0x08A57E08u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57E08u) goto L_08A57E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57E08: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57E18: @@ -8482,15 +9481,28 @@ L_08A57E18: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A57E34u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0148->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0148_entry, 890u, 0x08A57E34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A57E34u) goto L_08A57E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A57E34: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57E44: @@ -8498,15 +9510,15 @@ L_08A57E44: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4215), static_cast(aot_gpr_4)); jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57E54: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57E5C: @@ -8529,8 +9541,8 @@ L_08A57E74: } L_08A57E7C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57E84: @@ -8558,8 +9570,8 @@ L_08A57E84: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57E9C: @@ -8605,8 +9617,8 @@ L_08A57E9C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57EBC: @@ -8652,8 +9664,8 @@ L_08A57EBC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57EDC: @@ -8709,8 +9721,8 @@ L_08A57EDC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57F04: @@ -8736,8 +9748,8 @@ L_08A57F04: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57F20: @@ -8756,8 +9768,8 @@ L_08A57F20: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57F34: @@ -8785,8 +9797,8 @@ L_08A57F34: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57F4C: @@ -8814,8 +9826,8 @@ L_08A57F4C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57F64: @@ -8836,8 +9848,8 @@ L_08A57F64: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57F80: @@ -8858,8 +9870,8 @@ L_08A57F80: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57F9C: @@ -8881,8 +9893,8 @@ L_08A57F9C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57FBC: @@ -8905,8 +9917,8 @@ L_08A57FD4: } L_08A57FDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A57FE4: diff --git a/profiles/vcs/generated/generated_unit_0149.cpp b/profiles/vcs/generated/generated_unit_0149.cpp index a9ed6a7..29ba5a6 100644 --- a/profiles/vcs/generated/generated_unit_0149.cpp +++ b/profiles/vcs/generated/generated_unit_0149.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0149[64] = { 491u, 513u, 535u, 550u, 557u, 563u, 570u, 576u, 582u, 592u, 608u, 611u, 614u, 619u, 623u, 639u, 654u, 658u, 668u, 675u, 680u, 691u, 705u, 719u, 728u, 742u, 757u, 766u, 773u, 779u, 792u, 802u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0149[4095] = { + 1u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 5u, 0u, + 6u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 0u, 9u, 0u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, + 0u, 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 14u, 0u, 0u, 0u, 0u, 0u, 15u, 0u, 0u, 0u, 16u, 0u, 0u, + 0u, 0u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 20u, 0u, 21u, 22u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 26u, 0u, 0u, 27u, 0u, 28u, 29u, 0u, 30u, 0u, 31u, + 0u, 0u, 0u, 0u, 32u, 0u, 33u, 0u, 34u, 0u, 35u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 40u, 0u, + 41u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 43u, 0u, 44u, 0u, 45u, 0u, 0u, 0u, 46u, 0u, 47u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 49u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 52u, 0u, 53u, 0u, 54u, 0u, 55u, 0u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, 57u, 0u, + 0u, 0u, 58u, 0u, 59u, 60u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 0u, 0u, 64u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 67u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, + 69u, 0u, 70u, 0u, 71u, 0u, 72u, 0u, 73u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 77u, 0u, 0u, 0u, 0u, 78u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 79u, 0u, 80u, 0u, 81u, 0u, 0u, 0u, 0u, + 82u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 84u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 87u, 0u, 88u, 0u, 89u, 0u, 90u, 0u, 0u, 0u, 91u, + 0u, 0u, 0u, 92u, 0u, 93u, 0u, 94u, 0u, 95u, 0u, 96u, 0u, 97u, 0u, 98u, 0u, 99u, 0u, 100u, 0u, 101u, 0u, 0u, 102u, 0u, 103u, 0u, 104u, 0u, 105u, 0u, + 0u, 0u, 106u, 0u, 107u, 0u, 108u, 0u, 109u, 0u, 110u, 0u, 111u, 0u, 0u, 0u, 112u, 0u, 113u, 0u, 114u, 0u, 115u, 0u, 116u, 0u, 117u, 0u, 118u, 0u, 0u, 119u, + 0u, 0u, 120u, 0u, 0u, 0u, 0u, 121u, 122u, 0u, 123u, 0u, 124u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 125u, 0u, 0u, 126u, 0u, 127u, 0u, + 128u, 0u, 129u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 132u, 0u, 133u, 0u, 134u, 0u, 135u, 0u, 136u, 0u, 0u, 0u, 137u, 0u, 0u, 0u, 0u, 138u, + 0u, 0u, 139u, 0u, 140u, 0u, 0u, 0u, 0u, 141u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 143u, 0u, + 0u, 144u, 0u, 145u, 0u, 146u, 0u, 147u, 0u, 0u, 0u, 148u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 150u, 0u, 151u, 0u, 152u, 0u, 153u, 0u, 154u, 0u, 0u, 0u, 155u, + 0u, 0u, 0u, 0u, 156u, 0u, 0u, 157u, 0u, 158u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 160u, 0u, 0u, 161u, 0u, + 162u, 0u, 163u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 164u, 0u, 165u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, 167u, 0u, 0u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 169u, + 0u, 0u, 0u, 0u, 170u, 171u, 172u, 0u, 173u, 0u, 0u, 174u, 0u, 0u, 175u, 0u, 176u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 177u, 0u, 0u, 178u, 0u, 0u, 179u, + 0u, 0u, 180u, 0u, 181u, 0u, 182u, 0u, 0u, 183u, 0u, 184u, 0u, 185u, 0u, 0u, 0u, 186u, 0u, 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 0u, 188u, 0u, + 0u, 189u, 0u, 0u, 0u, 190u, 0u, 0u, 191u, 0u, 192u, 193u, 0u, 194u, 0u, 0u, 195u, 0u, 196u, 0u, 0u, 0u, 0u, 197u, 0u, 198u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 203u, 0u, 204u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 0u, 0u, + 208u, 0u, 209u, 0u, 0u, 0u, 210u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 215u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 216u, 0u, 0u, 217u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 0u, 220u, 0u, 221u, 222u, 0u, 223u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 225u, 0u, 226u, 227u, 0u, 0u, 0u, 0u, 0u, 0u, 228u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 229u, 0u, 0u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 0u, 232u, 0u, 233u, 0u, 0u, 0u, 234u, 0u, 0u, 235u, 0u, + 236u, 0u, 0u, 0u, 0u, 0u, 0u, 237u, 238u, 0u, 0u, 239u, 240u, 0u, 0u, 0u, 241u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 243u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, 247u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 248u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 249u, 0u, 0u, 250u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 253u, 0u, + 0u, 0u, 0u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 256u, 0u, 257u, 258u, 0u, 259u, 0u, 0u, 260u, 0u, 261u, 0u, 0u, 0u, 262u, 0u, 0u, 263u, 0u, 0u, + 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 266u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 268u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 0u, 271u, 0u, 0u, 272u, 273u, 0u, 274u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 277u, 0u, 0u, 278u, 279u, 0u, 280u, + 281u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 282u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 284u, 0u, 285u, 0u, + 286u, 0u, 287u, 0u, 0u, 0u, 0u, 0u, 288u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 291u, 0u, 292u, 293u, 0u, 0u, 0u, 294u, + 0u, 0u, 0u, 295u, 0u, 0u, 0u, 296u, 0u, 297u, 0u, 298u, 0u, 299u, 0u, 300u, 0u, 301u, 302u, 0u, 303u, 0u, 0u, 0u, 304u, 0u, 305u, 306u, 0u, 307u, 0u, 0u, + 0u, 308u, 0u, 309u, 310u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, 315u, 0u, 0u, 0u, 316u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 318u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, 320u, 0u, + 321u, 0u, 322u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 325u, 0u, 326u, 0u, 327u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, 329u, 0u, 0u, 330u, 0u, 0u, 331u, + 0u, 0u, 0u, 0u, 332u, 0u, 333u, 0u, 0u, 0u, 334u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, + 337u, 0u, 0u, 338u, 0u, 0u, 0u, 0u, 339u, 0u, 0u, 340u, 0u, 341u, 342u, 0u, 0u, 0u, 343u, 0u, 0u, 344u, 0u, 345u, 0u, 0u, 346u, 0u, 347u, 348u, 0u, 0u, + 0u, 349u, 0u, 0u, 350u, 0u, 351u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 354u, 0u, 0u, 0u, 355u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, + 0u, 357u, 0u, 0u, 358u, 0u, 359u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 361u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, + 0u, 0u, 364u, 0u, 0u, 365u, 0u, 0u, 366u, 0u, 0u, 367u, 0u, 368u, 369u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 371u, 0u, 0u, 372u, 0u, 373u, 0u, 0u, + 374u, 0u, 375u, 376u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 378u, 0u, 0u, 379u, 0u, 380u, 0u, 0u, 0u, 381u, 0u, 0u, 0u, 382u, 0u, 383u, 0u, 384u, 0u, + 0u, 0u, 0u, 385u, 0u, 0u, 386u, 0u, 387u, 388u, 0u, 0u, 0u, 389u, 0u, 0u, 390u, 0u, 391u, 0u, 0u, 392u, 0u, 393u, 394u, 0u, 0u, 0u, 395u, 0u, 0u, 396u, + 0u, 397u, 0u, 0u, 0u, 0u, 398u, 0u, 0u, 399u, 0u, 400u, 401u, 0u, 0u, 0u, 402u, 0u, 0u, 403u, 0u, 404u, 0u, 0u, 405u, 0u, 406u, 407u, 0u, 0u, 0u, 408u, + 0u, 0u, 409u, 0u, 410u, 0u, 0u, 0u, 0u, 411u, 0u, 412u, 0u, 0u, 0u, 413u, 0u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, 0u, 416u, 0u, + 0u, 0u, 417u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 420u, 0u, 421u, 0u, 0u, 0u, 422u, 0u, 423u, 0u, 424u, 0u, 425u, 0u, 0u, 0u, 426u, 0u, + 427u, 0u, 0u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 429u, 0u, 430u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 432u, 0u, 0u, 433u, 0u, 434u, 0u, 0u, 435u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 437u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 0u, 440u, 0u, 441u, 0u, 0u, 0u, 0u, 442u, + 0u, 443u, 0u, 0u, 0u, 0u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 446u, 0u, 0u, 447u, 0u, 448u, 449u, 0u, 0u, 0u, 450u, 0u, 0u, 451u, 0u, + 452u, 0u, 0u, 453u, 0u, 454u, 455u, 0u, 0u, 0u, 456u, 0u, 0u, 457u, 0u, 458u, 0u, 0u, 0u, 459u, 0u, 0u, 0u, 460u, 0u, 461u, 0u, 462u, 0u, 0u, 463u, 0u, + 0u, 464u, 0u, 465u, 466u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 469u, 0u, 470u, 0u, 0u, 471u, 0u, 472u, 473u, 0u, 0u, 0u, 0u, 474u, 0u, + 0u, 0u, 0u, 475u, 0u, 0u, 476u, 0u, 477u, 0u, 0u, 0u, 478u, 0u, 479u, 0u, 0u, 480u, 0u, 481u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 482u, 0u, 483u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, 486u, 0u, 487u, 0u, 0u, 0u, 0u, 488u, 0u, 489u, 0u, 0u, 490u, 0u, 0u, 0u, 0u, + 491u, 0u, 492u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, 0u, 0u, 494u, 0u, 0u, 495u, 0u, 496u, 497u, 0u, 0u, 0u, 498u, 0u, 0u, 499u, 0u, 500u, 0u, 0u, 501u, 0u, + 502u, 503u, 0u, 0u, 0u, 504u, 0u, 0u, 505u, 0u, 506u, 0u, 0u, 0u, 507u, 0u, 0u, 508u, 0u, 0u, 0u, 509u, 0u, 510u, 0u, 511u, 0u, 0u, 0u, 512u, 0u, 0u, + 513u, 0u, 514u, 515u, 0u, 0u, 0u, 0u, 516u, 0u, 0u, 0u, 0u, 517u, 0u, 0u, 518u, 0u, 519u, 0u, 0u, 520u, 0u, 521u, 522u, 0u, 0u, 0u, 0u, 523u, 0u, 0u, + 0u, 0u, 524u, 0u, 0u, 525u, 0u, 526u, 0u, 0u, 0u, 527u, 0u, 0u, 528u, 0u, 529u, 0u, 0u, 0u, 0u, 530u, 0u, 531u, 0u, 532u, 0u, 0u, 533u, 0u, 0u, 534u, + 0u, 535u, 0u, 536u, 0u, 0u, 537u, 0u, 538u, 0u, 0u, 539u, 0u, 540u, 0u, 541u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 543u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 0u, 0u, 546u, 0u, 0u, 0u, 547u, 0u, 0u, 0u, 0u, 548u, 0u, 0u, 0u, 0u, 0u, 549u, 0u, + 550u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 552u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 553u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 554u, 0u, 0u, 0u, 555u, 0u, 556u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 558u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 559u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 0u, 0u, 561u, 0u, 562u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 563u, 0u, 564u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 565u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 566u, 0u, 0u, 0u, 567u, 0u, 568u, 0u, 0u, 0u, 569u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 571u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 0u, 573u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 579u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 582u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 584u, 0u, 0u, 0u, 585u, 0u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 587u, 0u, 588u, 0u, 0u, 589u, 0u, 590u, 0u, 0u, 591u, 0u, 0u, + 0u, 0u, 0u, 592u, 0u, 0u, 593u, 0u, 594u, 0u, 0u, 595u, 0u, 596u, 0u, 597u, 0u, 0u, 0u, 0u, 0u, 598u, 0u, 0u, 599u, 0u, 600u, 0u, 0u, 601u, 0u, 602u, + 0u, 0u, 603u, 0u, 604u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 606u, 0u, 0u, 0u, 0u, 607u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 608u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 609u, 0u, 0u, 610u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 611u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 0u, 0u, 613u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 0u, 0u, 616u, 617u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 620u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 621u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 623u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 624u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 627u, 0u, 0u, 628u, 0u, 0u, 629u, 0u, 630u, 0u, 631u, + 0u, 0u, 0u, 632u, 0u, 633u, 0u, 634u, 0u, 635u, 0u, 0u, 0u, 636u, 0u, 0u, 0u, 637u, 0u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 639u, 0u, 0u, 0u, 640u, 0u, 0u, 641u, 642u, 0u, 643u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 644u, 0u, 0u, 645u, 0u, 0u, 646u, 0u, 0u, 0u, + 647u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 648u, 0u, 0u, 0u, 649u, 0u, 0u, 650u, 651u, 0u, 652u, 653u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 654u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 656u, 0u, 0u, 657u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 658u, 0u, 0u, 0u, 659u, 0u, 0u, 660u, 661u, 0u, 662u, 0u, 0u, 0u, 0u, 663u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 664u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 665u, 0u, 0u, 0u, 0u, 0u, 0u, 666u, 0u, 0u, 667u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 668u, 0u, 0u, 0u, 0u, 669u, 670u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 671u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 672u, 0u, 673u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 675u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 676u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 677u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 678u, 0u, 0u, 0u, 0u, 0u, 679u, + 0u, 0u, 0u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 0u, 0u, 682u, 0u, 0u, 0u, 0u, 0u, 683u, 684u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 685u, 0u, 0u, 0u, 0u, 0u, 686u, 0u, 0u, 687u, 0u, 0u, 0u, 0u, 0u, 0u, 688u, 0u, 689u, 0u, 0u, 0u, 690u, 0u, 0u, 0u, 0u, + 0u, 691u, 0u, 0u, 0u, 0u, 0u, 692u, 0u, 0u, 0u, 0u, 0u, 693u, 0u, 0u, 0u, 0u, 0u, 694u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 695u, 0u, 696u, 0u, 0u, + 0u, 0u, 0u, 697u, 0u, 698u, 0u, 0u, 699u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 0u, 701u, 0u, 0u, 702u, 0u, 703u, 0u, 0u, 704u, 0u, 0u, + 0u, 0u, 0u, 0u, 705u, 0u, 706u, 0u, 707u, 0u, 0u, 0u, 708u, 0u, 0u, 0u, 0u, 0u, 709u, 0u, 0u, 0u, 0u, 0u, 710u, 0u, 0u, 0u, 0u, 0u, 711u, 0u, + 0u, 0u, 0u, 0u, 712u, 0u, 0u, 713u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 714u, 0u, 715u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 0u, 717u, 0u, 0u, 0u, 0u, 718u, + 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 720u, 0u, 721u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 723u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 724u, 0u, 0u, 725u, 0u, 726u, 0u, 727u, 0u, + 0u, 728u, 0u, 729u, 0u, 730u, 0u, 0u, 731u, 0u, 732u, 0u, 733u, 0u, 0u, 734u, 0u, 0u, 0u, 735u, 0u, 0u, 736u, 0u, 0u, 737u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 738u, 739u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 740u, 0u, 0u, 0u, 741u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 742u, 0u, 0u, 0u, 0u, 0u, 0u, 743u, 0u, 744u, 0u, 745u, 0u, 0u, 746u, 0u, 0u, 0u, 747u, 0u, 0u, 0u, 0u, 748u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 749u, 0u, 0u, 750u, 0u, 0u, 751u, 0u, 0u, 0u, 0u, 0u, 752u, 0u, 0u, 0u, 753u, 0u, 0u, 0u, 754u, 0u, 755u, 0u, 756u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 757u, 0u, 0u, 0u, 0u, 0u, 758u, 0u, 0u, 0u, 0u, 0u, 759u, 0u, 0u, 0u, 0u, 760u, 0u, + 0u, 0u, 0u, 761u, 0u, 762u, 0u, 0u, 0u, 0u, 763u, 0u, 0u, 0u, 0u, 0u, 0u, 764u, 0u, 0u, 0u, 0u, 765u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 766u, 0u, 0u, 0u, 0u, 0u, 767u, 0u, 0u, 768u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 769u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 770u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 772u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 774u, 0u, 775u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 776u, 0u, 0u, 777u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 778u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 779u, 0u, 780u, 0u, 0u, 0u, 781u, + 0u, 0u, 0u, 782u, 0u, 783u, 0u, 0u, 0u, 0u, 0u, 784u, 0u, 785u, 0u, 0u, 786u, 787u, 0u, 0u, 0u, 0u, 788u, 0u, 789u, 0u, 0u, 790u, 791u, 0u, 0u, 0u, + 0u, 792u, 0u, 793u, 0u, 0u, 794u, 795u, 0u, 0u, 0u, 0u, 796u, 0u, 797u, 0u, 0u, 798u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 799u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 800u, 801u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 802u, 0u, 0u, 803u, 0u, 804u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 805u, 0u, 0u, 806u, 0u, 807u, 0u, 808u, 0u, 809u, 0u, 810u, 0u, 0u, 811u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 812u, 0u, 0u, 0u, 0u, 0u, 813u, 0u, 814u, 0u, 0u, 815u, 0u, 0u, 0u, 0u, 0u, 0u, 816u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 817u, +}; void recomp_unit_0149_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,31,6,29,16 fprs=12,13,20,14 gpr_occ=4038 fpr_occ=951 gpr_total=5396 fpr_total=1182 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08A58004u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0149[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0149[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0149[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08A58004; @@ -895,6 +1018,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A58004u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -910,8 +1057,8 @@ LOCAL_SCHED_BOUNDARY: return; L_08A58004: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5800C: @@ -925,8 +1072,8 @@ L_08A5800C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58030: @@ -940,8 +1087,8 @@ L_08A58030: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58054: @@ -956,22 +1103,22 @@ L_08A58054: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5807C: jump_target = aot_gpr_31; { const float fs = aot_fpr_12; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[0] = std::bit_cast(0x7FC00000u); else ctx.fpr[0] = fs * ft; } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58084: ctx.fpr[0] = std::sqrt(aot_fpr_12); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58090: @@ -985,15 +1132,15 @@ L_08A58090: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A580BC: ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A580C8: @@ -1001,8 +1148,8 @@ L_08A580C8: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A580DC: @@ -1014,8 +1161,8 @@ L_08A580DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A580FC: @@ -1034,8 +1181,8 @@ L_08A580FC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5810C: @@ -1060,8 +1207,8 @@ L_08A5810C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58134: @@ -1079,8 +1226,8 @@ L_08A58134: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58150: @@ -1097,8 +1244,8 @@ L_08A58150: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58168: @@ -1117,8 +1264,8 @@ L_08A58168: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58178: @@ -1140,8 +1287,8 @@ L_08A58178: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58194: @@ -1152,8 +1299,8 @@ L_08A58194: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A581B0: @@ -1184,8 +1331,21 @@ L_08A581DC: L_08A581E8: aot_gpr_31 = (0x08A581F0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 21u, 0x08A581F0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A581F0u) goto L_08A581F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A581F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); goto L_08A581F4; @@ -1198,8 +1358,21 @@ L_08A581F4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A58214u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 23u, 0x08A58214u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58214u) goto L_08A58214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58214: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1210,8 +1383,8 @@ L_08A58214: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5822C: @@ -1246,8 +1419,21 @@ L_08A58258: goto L_08A58264; L_08A58264: aot_gpr_31 = (0x08A5826Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 28u, 0x08A5826Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5826Cu) goto L_08A5826C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5826C: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08A58270; @@ -1272,36 +1458,36 @@ L_08A58280: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58294: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5829C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A582A4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A582AC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A582B4: @@ -1311,14 +1497,27 @@ L_08A582B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A582CCu); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 37u, 0x08A582CCu, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A582CCu) goto L_08A582CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A582CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A582D8: @@ -1328,21 +1527,34 @@ L_08A582D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A582F0u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 39u, 0x08A582F0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A582F0u) goto L_08A582F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A582F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A582FC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58304: @@ -1363,15 +1575,15 @@ L_08A58314: goto L_08A58324; L_08A58324: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5832C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58334: @@ -1379,22 +1591,22 @@ L_08A58334: aot_gpr_4 = (aot_gpr_5 << 5u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58344: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(150))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5834C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58354: @@ -1436,29 +1648,29 @@ L_08A5839C: goto L_08A583B8; L_08A583B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A583C0: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A583C8: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A583D0: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A583D8: @@ -1467,8 +1679,8 @@ L_08A583D8: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A583EC: @@ -1476,8 +1688,8 @@ L_08A583EC: ctx.gpr[2] = (aot_gpr_4 & 496u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A583FC: @@ -1502,8 +1714,8 @@ L_08A58414: goto L_08A58418; L_08A58418: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58420: @@ -1516,8 +1728,8 @@ L_08A58420: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58444: @@ -1530,8 +1742,8 @@ L_08A58444: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58468: @@ -1539,8 +1751,8 @@ L_08A58468: ctx.gpr[2] = (aot_gpr_4 & 16384u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58478: @@ -1554,8 +1766,8 @@ L_08A58478: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A584A0: @@ -1563,8 +1775,8 @@ L_08A584A0: ctx.gpr[2] = (aot_gpr_4 & 32768u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A584B0: @@ -1578,8 +1790,8 @@ L_08A584B0: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A584D8: @@ -1592,50 +1804,50 @@ L_08A584D8: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(76), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A584FC: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58504: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5850C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58514: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(28), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5851C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(30), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58524: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(30))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5852C: @@ -1660,8 +1872,8 @@ L_08A58548: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58568: @@ -1704,22 +1916,22 @@ L_08A585A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A585E0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A585E8: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(310), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A585F0: @@ -1728,8 +1940,8 @@ L_08A585F0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(268), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(336), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58604: @@ -1739,14 +1951,27 @@ L_08A58604: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A5861Cu); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 83u, 0x08A5861Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5861Cu) goto L_08A5861C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5861C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58628: @@ -1762,14 +1987,27 @@ L_08A58628: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A5864Cu); ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 85u, 0x08A5864Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5864Cu) goto L_08A5864C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5864C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58658: @@ -1883,29 +2121,29 @@ L_08A58658: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A586D8: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(264))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A586E0: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(196))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A586E8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(204))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A586F0: @@ -1913,8 +2151,8 @@ L_08A586F0: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58700: @@ -1922,71 +2160,71 @@ L_08A58700: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58710: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(96))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58718: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58720: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(104))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58728: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(112))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58730: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(116))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58738: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(120))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58740: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(132))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58748: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58750: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(136))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58758: @@ -2006,15 +2244,15 @@ L_08A58764: } L_08A5876C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58774: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(340))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5877C: @@ -2022,41 +2260,41 @@ L_08A5877C: ctx.gpr[2] = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5878C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58794: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5879C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587A4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587AC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587B4: @@ -2064,50 +2302,50 @@ L_08A587B4: ctx.gpr[2] = (aot_gpr_4 & 32u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587C4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(600), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587CC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(604), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587D4: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(604))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587DC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(608), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587E4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(900))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587EC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A587F4: @@ -2143,14 +2381,14 @@ L_08A58820: L_08A58824: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_6 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5882C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58834: @@ -2205,8 +2443,21 @@ L_08A5889C: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A588B0u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 131u, 0x08A588B0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A588B0u) goto L_08A588B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A588B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A588BCu); @@ -2246,8 +2497,21 @@ L_08A588EC: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A58900u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 138u, 0x08A58900u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58900u) goto L_08A58900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58900: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A5890Cu); @@ -2279,8 +2543,8 @@ L_08A58928: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58948: @@ -2335,8 +2599,21 @@ L_08A589B0: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A589C4u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 149u, 0x08A589C4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A589C4u) goto L_08A589C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A589C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A589D0u); @@ -2376,8 +2653,21 @@ L_08A58A00: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A58A14u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 156u, 0x08A58A14u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58A14u) goto L_08A58A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58A14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A58A20u); @@ -2414,8 +2704,8 @@ L_08A58A3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58A70: @@ -2432,8 +2722,8 @@ L_08A58A7C: goto L_08A58A84; L_08A58A84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58A8C: @@ -2472,8 +2762,8 @@ L_08A58ACC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58AD8: @@ -2593,8 +2883,21 @@ L_08A58B8C: L_08A58B94: aot_gpr_31 = (0x08A58B9Cu); aot_gpr_5 = (0u | 145u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 182u, 0x08A58B9Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58B9Cu) goto L_08A58B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58B9C: aot_gpr_4 = (0u | 45u); { const bool branch_taken = 0u == 0u; @@ -2614,15 +2917,28 @@ L_08A58BA8: L_08A58BB0: aot_gpr_31 = (0x08A58BB8u); aot_gpr_5 = (0u | 145u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 185u, 0x08A58BB8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58BB8u) goto L_08A58BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58BB8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58BC8: @@ -2645,8 +2961,21 @@ L_08A58BE4: aot_gpr_4 = (ctx.gpr[17] + static_cast(1508)); aot_gpr_31 = (0x08A58BFCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 188u, 0x08A58BFCu, 0x08AFEF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 658u, 0x08AFEF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58BFCu) goto L_08A58BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58BFC: aot_gpr_4 = (ctx.gpr[17] + static_cast(960)); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2675,16 +3004,42 @@ L_08A58C18: goto L_08A58C24; L_08A58C24: aot_gpr_31 = (0x08A58C2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 192u, 0x08A58C2Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58C2Cu) goto L_08A58C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58C2C: aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_08A58C30; L_08A58C30: aot_gpr_31 = (0x08A58C38u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 194u, 0x08A58C38u, 0x08AFF300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 736u, 0x08AFF300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58C38u) goto L_08A58C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58C38: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2696,8 +3051,21 @@ L_08A58C38: L_08A58C44: aot_gpr_31 = (0x08A58C4Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 196u, 0x08A58C4Cu, 0x08AFF2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 734u, 0x08AFF2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58C4Cu) goto L_08A58C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58C4C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2707,15 +3075,15 @@ L_08A58C4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58C60: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1348))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58C68: @@ -2726,8 +3094,21 @@ L_08A58C68: ctx.gpr[17] = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A58C8Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 199u, 0x08A58C8Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58C8Cu) goto L_08A58C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58C8C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(0), aot_run_words); @@ -2758,8 +3139,21 @@ L_08A58C8C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A58CCCu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 200u, 0x08A58CCCu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58CCCu) goto L_08A58CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58CCC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -2769,16 +3163,42 @@ L_08A58CCC: } aot_gpr_31 = (0x08A58CE0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 201u, 0x08A58CE0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58CE0u) goto L_08A58CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58CE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A58CF4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 202u, 0x08A58CF4u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58CF4u) goto L_08A58CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58CF4: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } @@ -2803,8 +3223,21 @@ L_08A58CF4: L_08A58D18: aot_gpr_31 = (0x08A58D20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 204u, 0x08A58D20u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58D20u) goto L_08A58D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58D20: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -2815,8 +3248,8 @@ L_08A58D20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58D38: @@ -2847,20 +3280,46 @@ L_08A58D6C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(652), aot_gpr_6); aot_gpr_31 = (0x08A58D84u); aot_gpr_6 = (aot_gpr_16 + static_cast(552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 208u, 0x08A58D84u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58D84u) goto L_08A58D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58D84: aot_gpr_31 = (0x08A58D8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 209u, 0x08A58D8Cu, 0x08AD0934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 129u, 0x08AD0934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58D8Cu) goto L_08A58D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58D8C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58D9C: @@ -2899,8 +3358,8 @@ L_08A58DCC: } L_08A58DE4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58DEC: @@ -2921,8 +3380,21 @@ L_08A58E10: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1536))); aot_gpr_31 = (0x08A58E1Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 217u, 0x08A58E1Cu, 0x08973704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 725u, 0x08973704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58E1Cu) goto L_08A58E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58E1C: aot_gpr_4 = (ctx.gpr[17] + static_cast(80)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -2954,8 +3426,8 @@ L_08A58E40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58E54: @@ -2981,8 +3453,8 @@ L_08A58E70: goto L_08A58E74; L_08A58E74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58E7C: @@ -3015,8 +3487,21 @@ L_08A58EAC: L_08A58EBC: aot_gpr_31 = (0x08A58EC4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 226u, 0x08A58EC4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58EC4u) goto L_08A58EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58EC4: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_08A58EC8; @@ -3028,8 +3513,21 @@ L_08A58EC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A58EE4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 228u, 0x08A58EE4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58EE4u) goto L_08A58EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58EE4: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3056,24 +3554,63 @@ L_08A58EE4: aot_fpr_12 = aot_fpr_12 / ctx.fpr[22]; aot_gpr_31 = (0x08A58F1Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 229u, 0x08A58F1Cu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58F1Cu) goto L_08A58F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58F1C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 / ctx.fpr[22]; aot_gpr_31 = (0x08A58F30u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 230u, 0x08A58F30u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58F30u) goto L_08A58F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58F30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 / ctx.fpr[22]; aot_gpr_31 = (0x08A58F44u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 231u, 0x08A58F44u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58F44u) goto L_08A58F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58F44: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -3083,13 +3620,39 @@ L_08A58F44: } aot_gpr_31 = (0x08A58F58u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 232u, 0x08A58F58u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58F58u) goto L_08A58F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58F58: aot_gpr_31 = (0x08A58F60u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 233u, 0x08A58F60u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58F60u) goto L_08A58F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58F60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3110,8 +3673,21 @@ L_08A58F70: L_08A58F7C: aot_gpr_31 = (0x08A58F84u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 236u, 0x08A58F84u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A58F84u) goto L_08A58F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A58F84: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -3123,8 +3699,8 @@ L_08A58F84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58FA0: @@ -3153,8 +3729,8 @@ L_08A58FB4: } L_08A58FC4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A58FCC: @@ -3245,8 +3821,21 @@ L_08A59050: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A59090u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 248u, 0x08A59090u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59090u) goto L_08A59090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59090: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -3272,14 +3861,40 @@ L_08A59090: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_31 = (0x08A590F0u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 249u, 0x08A590F0u, 0x08A1BC64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 572u, 0x08A1BC64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A590F0u) goto L_08A590F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A590F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A590FCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 250u, 0x08A590FCu, 0x08AFFAC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 877u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 877u, 0x08AFFAC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A590FCu) goto L_08A590FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A590FC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(613)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -3296,8 +3911,21 @@ L_08A590FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A59138u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 251u, 0x08A59138u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59138u) goto L_08A59138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59138: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } @@ -3425,13 +4053,39 @@ L_08A59204: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08A59238u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 265u, 0x08A59238u, 0x089E974Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 287u, 0x089E974Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59238u) goto L_08A59238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59238: aot_gpr_31 = (0x08A59240u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 266u, 0x08A59240u, 0x08A362BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 544u, 0x08A362BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59240u) goto L_08A59240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59240: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -3447,8 +4101,8 @@ L_08A59240: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5926C: @@ -3592,8 +4246,21 @@ L_08A59348: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A59358u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 271u, 0x08A59358u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59358u) goto L_08A59358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59358: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); { const bool branch_taken = ctx.gpr[21] != ctx.gpr[19]; @@ -3626,8 +4293,21 @@ L_08A59370: aot_gpr_6 = (0u | 23u); aot_gpr_31 = (0x08A593A4u); ctx.gpr[7] = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 275u, 0x08A593A4u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A593A4u) goto L_08A593A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A593A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1556))); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); @@ -3694,8 +4374,21 @@ L_08A593D8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A593E8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 277u, 0x08A593E8u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A593E8u) goto L_08A593E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A593E8: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); { const bool branch_taken = ctx.gpr[21] != ctx.gpr[19]; @@ -3731,8 +4424,21 @@ L_08A59404: aot_gpr_6 = (0u | 23u); aot_gpr_31 = (0x08A59438u); ctx.gpr[7] = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 282u, 0x08A59438u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59438u) goto L_08A59438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59438: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(52), static_cast(aot_gpr_4)); @@ -3750,36 +4456,36 @@ L_08A59438: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5946C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A59474: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5947C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A59484: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5948C: @@ -3846,8 +4552,8 @@ L_08A594F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A59500: @@ -3912,8 +4618,8 @@ L_08A59548: goto L_08A5954C; L_08A5954C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A59554: @@ -3938,8 +4644,8 @@ L_08A5956C: goto L_08A59570; L_08A59570: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A59578: @@ -3964,8 +4670,8 @@ L_08A59590: goto L_08A59594; L_08A59594: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5959C: @@ -3980,8 +4686,8 @@ L_08A5959C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1076), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(1077), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A595C8: @@ -4011,27 +4717,79 @@ L_08A595E8: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A59620u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 314u, 0x08A59620u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59620u) goto L_08A59620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59620: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1516))); aot_gpr_31 = (0x08A5962Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 315u, 0x08A5962Cu, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5962Cu) goto L_08A5962C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5962C: ctx.gpr[18] = (aot_gpr_16 + static_cast(960)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5963Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 316u, 0x08A5963Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5963Cu) goto L_08A5963C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5963C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A59648u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 317u, 0x08A59648u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59648u) goto L_08A59648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59648: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -4127,8 +4885,21 @@ L_08A59704: L_08A5970C: aot_gpr_31 = (0x08A59714u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 323u, 0x08A59714u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59714u) goto L_08A59714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59714: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -4139,29 +4910,29 @@ L_08A59714: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5972C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1508))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A59734: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1072))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5973C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(1508)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A59744: @@ -4185,14 +4956,27 @@ L_08A59768: aot_gpr_5 = (aot_gpr_4 + static_cast(1536)); aot_gpr_31 = (0x08A59774u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 330u, 0x08A59774u, 0x0885F668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 888u, 0x0885F668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59774u) goto L_08A59774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59774: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A59780: @@ -4201,8 +4985,21 @@ L_08A59780: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A59794u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 332u, 0x08A59794u, 0x08AFF4B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 769u, 0x08AFF4B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59794u) goto L_08A59794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59794: aot_gpr_31 = (0x08A5979Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4212,14 +5009,14 @@ L_08A5979C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A597AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A597B4: @@ -4287,8 +5084,21 @@ L_08A5983C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A5984Cu); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 343u, 0x08A5984Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5984Cu) goto L_08A5984C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5984C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59858u); @@ -4321,8 +5131,21 @@ L_08A59878: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A59888u); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 349u, 0x08A59888u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59888u) goto L_08A59888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59888: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59894u); @@ -4384,8 +5207,21 @@ L_08A598EC: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x08A59908u); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 357u, 0x08A59908u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59908u) goto L_08A59908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59908: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59914u); @@ -4492,8 +5328,21 @@ L_08A599D0: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A599E4u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 371u, 0x08A599E4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A599E4u) goto L_08A599E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A599E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A599F0u); @@ -4534,8 +5383,21 @@ L_08A59A24: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A59A38u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 378u, 0x08A59A38u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59A38u) goto L_08A59A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59A38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59A44u); @@ -4607,8 +5469,21 @@ L_08A59AA8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A59AB8u); ctx.gpr[7] = (0u | 114u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 389u, 0x08A59AB8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59AB8u) goto L_08A59AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59AB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59AC4u); @@ -4641,8 +5516,21 @@ L_08A59AE4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A59AF4u); ctx.gpr[7] = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 395u, 0x08A59AF4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59AF4u) goto L_08A59AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59AF4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59B00u); @@ -4684,8 +5572,21 @@ L_08A59B34: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A59B44u); ctx.gpr[7] = (0u | 115u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 402u, 0x08A59B44u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59B44u) goto L_08A59B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59B44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59B50u); @@ -4718,8 +5619,21 @@ L_08A59B70: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A59B80u); ctx.gpr[7] = (0u | 117u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 408u, 0x08A59B80u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59B80u) goto L_08A59B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59B80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59B8Cu); @@ -4807,8 +5721,21 @@ L_08A59C14: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x08A59C30u); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 419u, 0x08A59C30u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59C30u) goto L_08A59C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59C30: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59C3Cu); @@ -4838,8 +5765,21 @@ L_08A59C54: L_08A59C5C: aot_gpr_31 = (0x08A59C64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 424u, 0x08A59C64u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59C64u) goto L_08A59C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59C64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4869,8 +5809,21 @@ L_08A59C84: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x08A59CA0u); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 428u, 0x08A59CA0u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59CA0u) goto L_08A59CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59CA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59CACu); @@ -4951,8 +5904,21 @@ L_08A59CF4: L_08A59D28: aot_gpr_31 = (0x08A59D30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 437u, 0x08A59D30u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59D30u) goto L_08A59D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59D30: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); aot_gpr_5 = (0u | 10u); @@ -4977,8 +5943,21 @@ L_08A59D50: aot_gpr_6 = (0u | 31u); aot_gpr_31 = (0x08A59D64u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 440u, 0x08A59D64u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59D64u) goto L_08A59D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59D64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4992,8 +5971,21 @@ L_08A59D6C: aot_gpr_6 = (0u | 29u); aot_gpr_31 = (0x08A59D80u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 442u, 0x08A59D80u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59D80u) goto L_08A59D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59D80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5052,8 +6044,21 @@ L_08A59DE0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A59DF0u); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 450u, 0x08A59DF0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59DF0u) goto L_08A59DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59DF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59DFCu); @@ -5086,8 +6091,21 @@ L_08A59E1C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A59E2Cu); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 456u, 0x08A59E2Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59E2Cu) goto L_08A59E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59E2C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59E38u); @@ -5119,8 +6137,21 @@ L_08A59E50: L_08A59E60: aot_gpr_31 = (0x08A59E68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 461u, 0x08A59E68u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59E68u) goto L_08A59E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59E68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5164,8 +6195,21 @@ L_08A59EA8: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A59EBCu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 468u, 0x08A59EBCu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59EBCu) goto L_08A59EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59EBC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59EC8u); @@ -5206,8 +6250,21 @@ L_08A59EFC: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A59F10u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 475u, 0x08A59F10u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59F10u) goto L_08A59F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59F10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A59F1Cu); @@ -5274,8 +6331,21 @@ L_08A59F50: L_08A59F84: aot_gpr_31 = (0x08A59F8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 483u, 0x08A59F8Cu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59F8Cu) goto L_08A59F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59F8C: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); aot_gpr_5 = (0u | 10u); @@ -5300,8 +6370,21 @@ L_08A59FAC: aot_gpr_6 = (0u | 31u); aot_gpr_31 = (0x08A59FC0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 486u, 0x08A59FC0u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59FC0u) goto L_08A59FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59FC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5315,8 +6398,21 @@ L_08A59FC8: aot_gpr_6 = (0u | 29u); aot_gpr_31 = (0x08A59FDCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 488u, 0x08A59FDCu, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A59FDCu) goto L_08A59FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A59FDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5386,8 +6482,21 @@ L_08A5A04C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A5A05Cu); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 498u, 0x08A5A05Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A05Cu) goto L_08A5A05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A05C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A5A068u); @@ -5420,8 +6529,21 @@ L_08A5A088: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A5A098u); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 504u, 0x08A5A098u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A098u) goto L_08A5A098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A098: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A5A0A4u); @@ -5459,8 +6581,21 @@ L_08A5A0C8: L_08A5A0D8: aot_gpr_31 = (0x08A5A0E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 510u, 0x08A5A0E0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A0E0u) goto L_08A5A0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A0E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5505,8 +6640,21 @@ L_08A5A124: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A5A138u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 517u, 0x08A5A138u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A138u) goto L_08A5A138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A138: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A5A144u); @@ -5547,8 +6695,21 @@ L_08A5A178: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A5A18Cu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 524u, 0x08A5A18Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A18Cu) goto L_08A5A18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A18C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A5A198u); @@ -5585,13 +6746,39 @@ L_08A5A1C4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5A1D8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 530u, 0x08A5A1D8u, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A1D8u) goto L_08A5A1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A1D8: aot_gpr_31 = (0x08A5A1E0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 531u, 0x08A5A1E0u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A1E0u) goto L_08A5A1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A1E0: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[19] = (0u | 6u); @@ -5604,8 +6791,21 @@ L_08A5A1E8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5A1F4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 533u, 0x08A5A1F4u, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A1F4u) goto L_08A5A1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A1F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -5670,8 +6870,21 @@ L_08A5A24C: aot_gpr_6 = (0u | 11u); aot_gpr_31 = (0x08A5A260u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 543u, 0x08A5A260u, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A260u) goto L_08A5A260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A260: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5686,8 +6899,8 @@ L_08A5A260: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5A288: @@ -5740,8 +6953,8 @@ L_08A5A2E4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(8112))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5A2FC: @@ -5818,8 +7031,21 @@ L_08A5A39C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A5A3D8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 554u, 0x08A5A3D8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A3D8u) goto L_08A5A3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A3D8: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 4 ? 1u : 0u); @@ -5902,8 +7128,21 @@ L_08A5A484: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A5A4C0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 560u, 0x08A5A4C0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A4C0u) goto L_08A5A4C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A4C0: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 4 ? 1u : 0u); @@ -5987,8 +7226,21 @@ L_08A5A570: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A5A5ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 566u, 0x08A5A5ACu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A5ACu) goto L_08A5A5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A5AC: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 4 ? 1u : 0u); @@ -6090,8 +7342,21 @@ L_08A5A67C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A5A6B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 572u, 0x08A5A6B8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A6B8u) goto L_08A5A6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A6B8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 1 ? 1u : 0u); @@ -6194,8 +7459,21 @@ L_08A5A79C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A5A7D0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 578u, 0x08A5A7D0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A7D0u) goto L_08A5A7D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A7D0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -6219,8 +7497,8 @@ L_08A5A7DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5A7FC: @@ -6236,8 +7514,21 @@ L_08A5A7FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_31); aot_gpr_31 = (0x08A5A840u); aot_gpr_5 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 582u, 0x08A5A840u, 0x08B03834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 959u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 959u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 959u, 0x08B03834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A840u) goto L_08A5A840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A840: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(30088)); @@ -6251,8 +7542,21 @@ L_08A5A840: aot_gpr_4 = (aot_gpr_16 + static_cast(1508)); aot_gpr_31 = (0x08A5A870u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 583u, 0x08A5A870u, 0x08AFEF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 657u, 0x08AFEF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A870u) goto L_08A5A870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A870: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_5 = (16256u << 16u); @@ -6304,8 +7608,21 @@ L_08A5A8D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); aot_gpr_31 = (0x08A5A8E4u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-5820)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 589u, 0x08A5A8E4u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A8E4u) goto L_08A5A8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A8E4: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { @@ -6350,8 +7667,21 @@ L_08A5A924: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); aot_gpr_31 = (0x08A5A930u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-5812)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 595u, 0x08A5A930u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A930u) goto L_08A5A930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A930: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { @@ -6395,8 +7725,21 @@ L_08A5A96C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); aot_gpr_31 = (0x08A5A978u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-5804)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 601u, 0x08A5A978u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A978u) goto L_08A5A978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A978: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { @@ -6438,16 +7781,42 @@ L_08A5A9BC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(356), aot_gpr_4); aot_gpr_31 = (0x08A5A9DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 606u, 0x08A5A9DCu, 0x08B021F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 565u, 0x08B021F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A9DCu) goto L_08A5A9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A9DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5884))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1264), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(1374), static_cast(0u)); aot_gpr_31 = (0x08A5A9F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 607u, 0x08A5A9F0u, 0x08AFFDDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 933u, 0x08AFFDDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5A9F0u) goto L_08A5A9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5A9F0: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_16 + static_cast(1356), aot_run_words); } @@ -6654,8 +8023,21 @@ L_08A5AC2C: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08A5AC48u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 616u, 0x08A5AC48u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5AC48u) goto L_08A5AC48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5AC48: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(60), ctx.gpr[2]); goto L_08A5AC4C; @@ -6717,8 +8099,21 @@ L_08A5AC6C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5AD28u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 619u, 0x08A5AD28u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5AD28u) goto L_08A5AD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5AD28: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[12]{}; @@ -6738,8 +8133,8 @@ L_08A5AD28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5AD64: @@ -6994,8 +8389,21 @@ L_08A5AF08: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5AF18u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 640u, 0x08A5AF18u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5AF18u) goto L_08A5AF18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5AF18: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_16 != ctx.gpr[17]; @@ -7134,8 +8542,21 @@ L_08A5AFB8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5AFC8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 649u, 0x08A5AFC8u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5AFC8u) goto L_08A5AFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5AFC8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_16 != ctx.gpr[17]; @@ -7318,8 +8739,21 @@ L_08A5B104: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5B114u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 659u, 0x08A5B114u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B114u) goto L_08A5B114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B114: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_16 != ctx.gpr[17]; @@ -7466,8 +8900,8 @@ L_08A5B238: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5B278: @@ -7485,8 +8919,21 @@ L_08A5B278: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(128), aot_run_words); } aot_gpr_31 = (0x08A5B2B8u); aot_gpr_4 = (aot_gpr_4 + static_cast(14064)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 672u, 0x08A5B2B8u, 0x08A8F64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 644u, 0x08A8F64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B2B8u) goto L_08A5B2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B2B8: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); @@ -7506,8 +8953,21 @@ L_08A5B2C0: } aot_gpr_31 = (0x08A5B2E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 674u, 0x08A5B2E4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B2E4u) goto L_08A5B2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B2E4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -7523,8 +8983,21 @@ L_08A5B2E4: } aot_gpr_31 = (0x08A5B304u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 675u, 0x08A5B304u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B304u) goto L_08A5B304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B304: ctx.gpr[18] = (aot_gpr_16 + static_cast(320)); { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); @@ -7595,8 +9068,21 @@ L_08A5B33C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A5B3B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 677u, 0x08A5B3B4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B3B4u) goto L_08A5B3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B3B4: aot_gpr_4 = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); @@ -7709,8 +9195,21 @@ L_08A5B498: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5B4B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 686u, 0x08A5B4B0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B4B0u) goto L_08A5B4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B4B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7794,8 +9293,21 @@ L_08A5B550: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A5B570u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 695u, 0x08A5B570u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B570u) goto L_08A5B570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B570: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7810,8 +9322,21 @@ L_08A5B578: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A5B590u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 697u, 0x08A5B590u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B590u) goto L_08A5B590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B590: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7836,8 +9361,21 @@ L_08A5B5A4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A5B5C4u); aot_gpr_6 = (0u | 165u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 700u, 0x08A5B5C4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B5C4u) goto L_08A5B5C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B5C4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(565))); ctx.gpr[18] = (0u | 0u); @@ -7953,8 +9491,21 @@ L_08A5B6A0: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08A5B6C0u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 714u, 0x08A5B6C0u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B6C0u) goto L_08A5B6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B6C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7975,8 +9526,21 @@ L_08A5B6D4: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A5B6ECu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 717u, 0x08A5B6ECu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B6ECu) goto L_08A5B6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B6EC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(565))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -8037,8 +9601,8 @@ L_08A5B75C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5B780: @@ -8102,8 +9666,21 @@ L_08A5B808: L_08A5B810: aot_gpr_31 = (0x08A5B818u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 730u, 0x08A5B818u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B818u) goto L_08A5B818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B818: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8115,13 +9692,39 @@ L_08A5B818: L_08A5B824: aot_gpr_31 = (0x08A5B82Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 732u, 0x08A5B82Cu, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B82Cu) goto L_08A5B82C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B82C: aot_gpr_31 = (0x08A5B834u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 733u, 0x08A5B834u, 0x08B020D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 546u, 0x08B020D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B834u) goto L_08A5B834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B834: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8150,8 +9753,21 @@ L_08A5B85C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A5B868u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 737u, 0x08A5B868u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B868u) goto L_08A5B868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B868: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(616)))))); aot_gpr_5 = (0u & 255u); @@ -8234,8 +9850,21 @@ L_08A5B93C: L_08A5B944: aot_gpr_31 = (0x08A5B94Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 745u, 0x08A5B94Cu, 0x08B015F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 385u, 0x08B015F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B94Cu) goto L_08A5B94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B94C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8298,8 +9927,21 @@ L_08A5B9B4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5B9CCu); aot_gpr_6 = (0u | 93u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 752u, 0x08A5B9CCu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B9CCu) goto L_08A5B9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B9CC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(1378)))))); aot_gpr_4 = (aot_gpr_4 | 8u); @@ -8319,13 +9961,39 @@ L_08A5B9DC: L_08A5B9EC: aot_gpr_31 = (0x08A5B9F4u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 755u, 0x08A5B9F4u, 0x08A919A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 191u, 0x08A919A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B9F4u) goto L_08A5B9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B9F4: aot_gpr_31 = (0x08A5B9FCu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 756u, 0x08A5B9FCu, 0x08AFFA50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 868u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 868u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 868u, 0x08AFFA50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5B9FCu) goto L_08A5B9FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5B9FC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(538)))))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -8363,8 +10031,8 @@ L_08A5BA50: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(8240))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5BA68: @@ -8610,8 +10278,21 @@ L_08A5BC1C: } aot_gpr_31 = (0x08A5BC74u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 774u, 0x08A5BC74u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BC74u) goto L_08A5BC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BC74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8737,13 +10418,39 @@ L_08A5BCF4: } aot_gpr_31 = (0x08A5BD68u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 779u, 0x08A5BD68u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BD68u) goto L_08A5BD68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BD68: aot_gpr_31 = (0x08A5BD70u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 780u, 0x08A5BD70u, 0x08A930F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 450u, 0x08A930F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BD70u) goto L_08A5BD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BD70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 496u); @@ -8765,8 +10472,21 @@ L_08A5BD80: L_08A5BD90: aot_gpr_31 = (0x08A5BD98u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 783u, 0x08A5BD98u, 0x08A42760u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 448u, 0x08A42760u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BD98u) goto L_08A5BD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BD98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(1216))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5888))); @@ -8779,8 +10499,21 @@ L_08A5BD98: L_08A5BDB0: aot_gpr_31 = (0x08A5BDB8u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(1118))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 785u, 0x08A5BDB8u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BDB8u) goto L_08A5BDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BDB8: aot_gpr_4 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -8803,8 +10536,21 @@ L_08A5BDC8: L_08A5BDDC: aot_gpr_31 = (0x08A5BDE4u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(1150))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 789u, 0x08A5BDE4u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BDE4u) goto L_08A5BDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BDE4: aot_gpr_4 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -8827,8 +10573,21 @@ L_08A5BDF4: L_08A5BE08: aot_gpr_31 = (0x08A5BE10u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(1182))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 793u, 0x08A5BE10u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BE10u) goto L_08A5BE10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BE10: aot_gpr_4 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -8852,8 +10611,21 @@ L_08A5BE20: L_08A5BE34: aot_gpr_31 = (0x08A5BE3Cu); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(1214))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 797u, 0x08A5BE3Cu, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BE3Cu) goto L_08A5BE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BE3C: aot_gpr_4 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -8991,14 +10763,40 @@ L_08A5BEE0: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A5BF04u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 802u, 0x08A5BF04u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BF04u) goto L_08A5BF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BF04: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5BF10u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 803u, 0x08A5BF10u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BF10u) goto L_08A5BF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BF10: aot_gpr_31 = (0x08A5BF18u); goto L_08A583C0; @@ -9012,8 +10810,21 @@ L_08A5BF18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A5BF3Cu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 805u, 0x08A5BF3Cu, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BF3Cu) goto L_08A5BF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BF3C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A5BF48u); @@ -9037,19 +10848,58 @@ L_08A5BF50: L_08A5BF58: aot_gpr_31 = (0x08A5BF60u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 809u, 0x08A5BF60u, 0x08B0EBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 658u, 0x08B0EBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BF60u) goto L_08A5BF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BF60: aot_gpr_31 = (0x08A5BF68u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 810u, 0x08A5BF68u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BF68u) goto L_08A5BF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BF68: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A5BF74u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 811u, 0x08A5BF74u, 0x08B41F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 466u, 0x08B41F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BF74u) goto L_08A5BF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BF74: aot_gpr_4 = (0u | 2u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(1494))); @@ -9067,8 +10917,21 @@ L_08A5BF94: aot_fpr_12 = ctx.fpr[0] / aot_fpr_12; aot_gpr_31 = (0x08A5BFACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 813u, 0x08A5BFACu, 0x088DBBACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 658u, 0x088DBBACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BFACu) goto L_08A5BFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BFAC: aot_gpr_31 = (0x08A5BFB4u); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -9086,8 +10949,21 @@ L_08A5BFC0: aot_fpr_12 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x08A5BFDCu); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0149->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0149_entry, 816u, 0x08A5BFDCu, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5BFDCu) goto L_08A5BFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5BFDC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(1284))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(1288))); diff --git a/profiles/vcs/generated/generated_unit_0150.cpp b/profiles/vcs/generated/generated_unit_0150.cpp index 5fee832..0e011f9 100644 --- a/profiles/vcs/generated/generated_unit_0150.cpp +++ b/profiles/vcs/generated/generated_unit_0150.cpp @@ -1113,6 +1113,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A5C004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1146,18 +1170,57 @@ L_08A5C004: L_08A5C030: aot_gpr_31 = (0x08A5C038u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 3u, 0x08A5C038u, 0x08B0EBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 658u, 0x08B0EBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C038u) goto L_08A5C038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C038: aot_gpr_31 = (0x08A5C040u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 4u, 0x08A5C040u, 0x08B461ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 442u, 0x08B461ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C040u) goto L_08A5C040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C040: aot_gpr_31 = (0x08A5C048u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 5u, 0x08A5C048u, 0x08A58A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 163u, 0x08A58A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C048u) goto L_08A5C048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C048: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1280)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -1176,21 +1239,60 @@ L_08A5C068: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C074u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 7u, 0x08A5C074u, 0x08A587CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 113u, 0x08A587CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C074u) goto L_08A5C074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C074: aot_gpr_5 = (16256u << 16u); aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C084u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 8u, 0x08A5C084u, 0x08A587DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 115u, 0x08A587DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C084u) goto L_08A5C084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C084: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C090u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 9u, 0x08A5C090u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C090u) goto L_08A5C090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C090: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1214,18 +1316,57 @@ L_08A5C0AC: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C0B8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 13u, 0x08A5C0B8u, 0x08A587DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 115u, 0x08A587DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C0B8u) goto L_08A5C0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C0B8: aot_gpr_31 = (0x08A5C0C0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 14u, 0x08A5C0C0u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C0C0u) goto L_08A5C0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C0C0: aot_gpr_31 = (0x08A5C0C8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 15u, 0x08A5C0C8u, 0x08A58150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 14u, 0x08A58150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C0C8u) goto L_08A5C0C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C0C8: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -1250,8 +1391,21 @@ L_08A5C0F4: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C100u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 18u, 0x08A5C100u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C100u) goto L_08A5C100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C100: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1263,20 +1417,59 @@ L_08A5C108: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C114u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 20u, 0x08A5C114u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C114u) goto L_08A5C114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C114: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C120u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 21u, 0x08A5C120u, 0x08A587CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 113u, 0x08A587CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C120u) goto L_08A5C120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C120: aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(700), 0u); aot_gpr_31 = (0x08A5C12Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 22u, 0x08A5C12Cu, 0x08A587E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 116u, 0x08A587E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C12Cu) goto L_08A5C12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C12C: if (aot_gpr_2 != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1280)))))); @@ -1360,21 +1553,60 @@ L_08A5C1B0: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C1BCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 34u, 0x08A5C1BCu, 0x08A587CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 113u, 0x08A587CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C1BCu) goto L_08A5C1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C1BC: aot_gpr_5 = (16256u << 16u); aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C1CCu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 35u, 0x08A5C1CCu, 0x08A587DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 115u, 0x08A587DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C1CCu) goto L_08A5C1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C1CC: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C1D8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 36u, 0x08A5C1D8u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C1D8u) goto L_08A5C1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C1D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1385,13 +1617,39 @@ L_08A5C1D8: L_08A5C1E0: aot_gpr_31 = (0x08A5C1E8u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 38u, 0x08A5C1E8u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C1E8u) goto L_08A5C1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C1E8: aot_gpr_31 = (0x08A5C1F0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 39u, 0x08A5C1F0u, 0x08A58150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 14u, 0x08A58150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C1F0u) goto L_08A5C1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C1F0: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -1408,14 +1666,40 @@ L_08A5C20C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C21Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 41u, 0x08A5C21Cu, 0x08A587DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 115u, 0x08A587DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C21Cu) goto L_08A5C21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C21C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C228u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 42u, 0x08A5C228u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C228u) goto L_08A5C228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C228: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1427,26 +1711,78 @@ L_08A5C230: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C23Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 44u, 0x08A5C23Cu, 0x08A587DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 115u, 0x08A587DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C23Cu) goto L_08A5C23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C23C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C248u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 45u, 0x08A5C248u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C248u) goto L_08A5C248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C248: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C254u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 46u, 0x08A5C254u, 0x08A587C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 112u, 0x08A587C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C254u) goto L_08A5C254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C254: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C260u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 47u, 0x08A5C260u, 0x08A587CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 113u, 0x08A587CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C260u) goto L_08A5C260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C260: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1280)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -1466,26 +1802,78 @@ L_08A5C27C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C290u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 49u, 0x08A5C290u, 0x08A587DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 115u, 0x08A587DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C290u) goto L_08A5C290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C290: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C29Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 50u, 0x08A5C29Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C29Cu) goto L_08A5C29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C29C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C2A8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 51u, 0x08A5C2A8u, 0x08A587C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 112u, 0x08A587C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C2A8u) goto L_08A5C2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C2A8: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C2B4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 52u, 0x08A5C2B4u, 0x08A587CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 113u, 0x08A587CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C2B4u) goto L_08A5C2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C2B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1280)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -1497,8 +1885,21 @@ L_08A5C2B4: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A5C2DCu); aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(1532), std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 53u, 0x08A5C2DCu, 0x08A42004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 367u, 0x08A42004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C2DCu) goto L_08A5C2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C2DC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(1380), 0u); @@ -1519,13 +1920,39 @@ L_08A5C2E4: L_08A5C2F4: aot_gpr_31 = (0x08A5C2FCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 56u, 0x08A5C2FCu, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C2FCu) goto L_08A5C2FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C2FC: aot_gpr_31 = (0x08A5C304u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 57u, 0x08A5C304u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C304u) goto L_08A5C304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C304: aot_gpr_4 = (16051u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -1540,13 +1967,39 @@ L_08A5C304: L_08A5C320: aot_gpr_31 = (0x08A5C328u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 59u, 0x08A5C328u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C328u) goto L_08A5C328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C328: aot_gpr_31 = (0x08A5C330u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 60u, 0x08A5C330u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C330u) goto L_08A5C330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C330: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1593,20 +2046,59 @@ L_08A5C37C: aot_gpr_5 = (ctx.gpr[28] + static_cast(10000)); aot_gpr_31 = (0x08A5C390u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 66u, 0x08A5C390u, 0x08A580FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 11u, 0x08A580FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C390u) goto L_08A5C390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C390: aot_gpr_4 = (aot_gpr_29 + static_cast(240)); aot_gpr_5 = (aot_gpr_23 + static_cast(112)); aot_gpr_31 = (0x08A5C3A0u); ctx.gpr[6] = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 67u, 0x08A5C3A0u, 0x08A57EBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 898u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 898u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 898u, 0x08A57EBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C3A0u) goto L_08A5C3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C3A0: aot_gpr_31 = (0x08A5C3A8u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 68u, 0x08A5C3A8u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C3A8u) goto L_08A5C3A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C3A8: aot_gpr_4 = (16256u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); @@ -1659,8 +2151,21 @@ L_08A5C3FC: L_08A5C410: aot_gpr_31 = (0x08A5C418u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 74u, 0x08A5C418u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C418u) goto L_08A5C418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C418: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[28])) ? 0x00800000u : 0u); @@ -1679,14 +2184,40 @@ L_08A5C42C: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); aot_gpr_31 = (0x08A5C44Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 76u, 0x08A5C44Cu, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C44Cu) goto L_08A5C44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C44C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_31 = (0x08A5C458u); aot_fpr_12 = ctx.fpr[30] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 77u, 0x08A5C458u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C458u) goto L_08A5C458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C458: aot_gpr_4 = (16000u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1695,8 +2226,21 @@ L_08A5C458: aot_gpr_4 = (aot_gpr_29 + static_cast(272)); aot_gpr_31 = (0x08A5C474u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(276), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 78u, 0x08A5C474u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C474u) goto L_08A5C474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C474: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); aot_fpr_12 = aot_fpr_12 - aot_fpr_0; @@ -1736,8 +2280,21 @@ L_08A5C4B8: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5876))); aot_gpr_31 = (0x08A5C4C4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 83u, 0x08A5C4C4u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C4C4u) goto L_08A5C4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C4C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[28])) ? 0x00800000u : 0u); @@ -1758,14 +2315,40 @@ L_08A5C4D8: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); aot_gpr_31 = (0x08A5C4FCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 85u, 0x08A5C4FCu, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C4FCu) goto L_08A5C4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C4FC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_31 = (0x08A5C508u); aot_fpr_12 = ctx.fpr[30] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 86u, 0x08A5C508u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C508u) goto L_08A5C508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C508: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -1775,8 +2358,21 @@ L_08A5C508: aot_gpr_4 = (aot_gpr_29 + static_cast(280)); aot_gpr_31 = (0x08A5C528u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(284), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 87u, 0x08A5C528u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C528u) goto L_08A5C528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C528: aot_gpr_4 = (16230u << 16u); aot_gpr_4 = (aot_gpr_4 | 26214u); @@ -1808,26 +2404,78 @@ L_08A5C548: { const float fs = ctx.fpr[17]; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08A5C590u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(228), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 90u, 0x08A5C590u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C590u) goto L_08A5C590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C590: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A5C59Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 91u, 0x08A5C59Cu, 0x08A58090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 7u, 0x08A58090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C59Cu) goto L_08A5C59C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C59C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(224), std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5C5A8u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(228))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 92u, 0x08A5C5A8u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C5A8u) goto L_08A5C5A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C5A8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5C5B4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 93u, 0x08A5C5B4u, 0x08A58090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 7u, 0x08A58090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C5B4u) goto L_08A5C5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C5B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(240))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); @@ -1842,126 +2490,373 @@ L_08A5C5B4: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C5E8u); ctx.fpr[22] = ctx.fpr[15] - ctx.fpr[14]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 94u, 0x08A5C5E8u, 0x08A582A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 34u, 0x08A582A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C5E8u) goto L_08A5C5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C5E8: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A5C5F8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 95u, 0x08A5C5F8u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C5F8u) goto L_08A5C5F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C5F8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A5C608u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 96u, 0x08A5C608u, 0x08A57F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 905u, 0x08A57F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C608u) goto L_08A5C608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C608: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(212))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5C618u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 97u, 0x08A5C618u, 0x08A57F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 905u, 0x08A57F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C618u) goto L_08A5C618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C618: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5C624u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 98u, 0x08A5C624u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C624u) goto L_08A5C624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C624: ctx.gpr[18] = (aot_gpr_29 + static_cast(256)); aot_gpr_31 = (0x08A5C630u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 99u, 0x08A5C630u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C630u) goto L_08A5C630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C630: ctx.gpr[22] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C644u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 100u, 0x08A5C644u, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C644u) goto L_08A5C644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C644: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A5C654u); ctx.gpr[6] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 101u, 0x08A5C654u, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C654u) goto L_08A5C654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C654: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5C664u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 102u, 0x08A5C664u, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C664u) goto L_08A5C664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C664: aot_gpr_31 = (0x08A5C66Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 103u, 0x08A5C66Cu, 0x08A582A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 34u, 0x08A582A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C66Cu) goto L_08A5C66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C66C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5C67Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 104u, 0x08A5C67Cu, 0x08A57F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 905u, 0x08A57F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C67Cu) goto L_08A5C67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C67C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(212))); aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A5C68Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 105u, 0x08A5C68Cu, 0x08A57F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 905u, 0x08A57F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C68Cu) goto L_08A5C68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C68C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5C698u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 106u, 0x08A5C698u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C698u) goto L_08A5C698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C698: aot_gpr_31 = (0x08A5C6A0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 107u, 0x08A5C6A0u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C6A0u) goto L_08A5C6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C6A0: ctx.gpr[22] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5C6B4u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 108u, 0x08A5C6B4u, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C6B4u) goto L_08A5C6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C6B4: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A5C6C4u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 109u, 0x08A5C6C4u, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C6C4u) goto L_08A5C6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C6C4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5C6D0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 110u, 0x08A5C6D0u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C6D0u) goto L_08A5C6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C6D0: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5C6E0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 111u, 0x08A5C6E0u, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C6E0u) goto L_08A5C6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C6E0: aot_gpr_31 = (0x08A5C6E8u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 112u, 0x08A5C6E8u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C6E8u) goto L_08A5C6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C6E8: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[22] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(2109))); @@ -1973,14 +2868,40 @@ L_08A5C6E8: L_08A5C6F0: aot_gpr_31 = (0x08A5C6F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 114u, 0x08A5C6F8u, 0x08A58748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 99u, 0x08A58748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C6F8u) goto L_08A5C6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C6F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5C704u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 115u, 0x08A5C704u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C704u) goto L_08A5C704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C704: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1991,15 +2912,41 @@ L_08A5C704: L_08A5C70C: aot_gpr_31 = (0x08A5C714u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 117u, 0x08A5C714u, 0x08A58748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 99u, 0x08A58748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C714u) goto L_08A5C714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C714: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); aot_gpr_31 = (0x08A5C724u); aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(192), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 118u, 0x08A5C724u, 0x08A58748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 99u, 0x08A58748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C724u) goto L_08A5C724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C724: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1072))); @@ -2011,8 +2958,21 @@ L_08A5C738: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08A5C744u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 120u, 0x08A5C744u, 0x08A58468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 63u, 0x08A58468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C744u) goto L_08A5C744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C744: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2023,8 +2983,21 @@ L_08A5C744: L_08A5C74C: aot_gpr_31 = (0x08A5C754u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 122u, 0x08A5C754u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C754u) goto L_08A5C754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C754: aot_gpr_4 = (0u | 4u); if (aot_gpr_2 == aot_gpr_4) { @@ -2035,8 +3008,21 @@ L_08A5C754: L_08A5C760: aot_gpr_31 = (0x08A5C768u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 124u, 0x08A5C768u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C768u) goto L_08A5C768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C768: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -2071,8 +3057,21 @@ L_08A5C784: L_08A5C79C: aot_gpr_31 = (0x08A5C7A4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 129u, 0x08A5C7A4u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C7A4u) goto L_08A5C7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C7A4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[28])) && aot_fpr_12 == ctx.fpr[28])) ? 0x00800000u : 0u); @@ -2085,8 +3084,21 @@ L_08A5C7A4: L_08A5C7B8: aot_gpr_31 = (0x08A5C7C0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 131u, 0x08A5C7C0u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C7C0u) goto L_08A5C7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C7C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[28])) && aot_fpr_12 == ctx.fpr[28])) ? 0x00800000u : 0u); @@ -2099,8 +3111,21 @@ L_08A5C7C0: L_08A5C7D4: aot_gpr_31 = (0x08A5C7DCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 133u, 0x08A5C7DCu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C7DCu) goto L_08A5C7DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C7DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[28])) && aot_fpr_12 == ctx.fpr[28])) ? 0x00800000u : 0u); @@ -2127,8 +3152,21 @@ L_08A5C80C: L_08A5C810: aot_gpr_31 = (0x08A5C818u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 137u, 0x08A5C818u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C818u) goto L_08A5C818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C818: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -2170,16 +3208,42 @@ L_08A5C86C: ctx.gpr[30] = (aot_gpr_23 + static_cast(160)); aot_gpr_31 = (0x08A5C880u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 141u, 0x08A5C880u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C880u) goto L_08A5C880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C880: ctx.gpr[22] = (aot_gpr_29 + static_cast(304)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (aot_gpr_23 + static_cast(160)); aot_gpr_31 = (0x08A5C894u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 142u, 0x08A5C894u, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C894u) goto L_08A5C894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C894: ctx.gpr[6] = (16384u << 16u); ctx.gpr[21] = (aot_gpr_29 + static_cast(288)); @@ -2188,49 +3252,153 @@ L_08A5C894: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08A5C8B0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 143u, 0x08A5C8B0u, 0x08A57F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 906u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 906u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 906u, 0x08A57F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C8B0u) goto L_08A5C8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C8B0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A5C8BCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 144u, 0x08A5C8BCu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C8BCu) goto L_08A5C8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C8BC: aot_gpr_5 = (aot_gpr_23 + static_cast(176)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A5C8CCu); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 145u, 0x08A5C8CCu, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C8CCu) goto L_08A5C8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C8CC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08A5C8DCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 146u, 0x08A5C8DCu, 0x08A57F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 906u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 906u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 906u, 0x08A57F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C8DCu) goto L_08A5C8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C8DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5C8E8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 147u, 0x08A5C8E8u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C8E8u) goto L_08A5C8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C8E8: aot_gpr_31 = (0x08A5C8F0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 148u, 0x08A5C8F0u, 0x08A58150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 14u, 0x08A58150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C8F0u) goto L_08A5C8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C8F0: aot_gpr_31 = (0x08A5C8F8u); ctx.fpr[30] = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 149u, 0x08A5C8F8u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C8F8u) goto L_08A5C8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C8F8: aot_gpr_31 = (0x08A5C900u); { const float fs = aot_fpr_20; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 150u, 0x08A5C900u, 0x08A5807Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 5u, 0x08A5807Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C900u) goto L_08A5C900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C900: ctx.gpr[22] = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(2109))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] <= aot_fpr_0)) ? 0x00800000u : 0u); @@ -2244,18 +3412,57 @@ L_08A5C900: L_08A5C914: aot_gpr_31 = (0x08A5C91Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 152u, 0x08A5C91Cu, 0x08A58150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 14u, 0x08A58150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C91Cu) goto L_08A5C91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C91C: aot_gpr_31 = (0x08A5C924u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 153u, 0x08A5C924u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C924u) goto L_08A5C924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C924: aot_gpr_31 = (0x08A5C92Cu); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 154u, 0x08A5C92Cu, 0x08A5807Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 5u, 0x08A5807Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C92Cu) goto L_08A5C92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C92C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= aot_fpr_0)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2267,8 +3474,21 @@ L_08A5C92C: L_08A5C93C: aot_gpr_31 = (0x08A5C944u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 156u, 0x08A5C944u, 0x08A586D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 87u, 0x08A586D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C944u) goto L_08A5C944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C944: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -2306,20 +3526,59 @@ L_08A5C978: L_08A5C980: aot_gpr_31 = (0x08A5C988u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 161u, 0x08A5C988u, 0x08A582FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 40u, 0x08A582FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C988u) goto L_08A5C988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C988: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08A5C994u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 162u, 0x08A5C994u, 0x08A582FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 40u, 0x08A582FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C994u) goto L_08A5C994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C994: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_31 = (0x08A5C9A0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 163u, 0x08A5C9A0u, 0x08B42144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 487u, 0x08B42144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C9A0u) goto L_08A5C9A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C9A0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2354,22 +3613,61 @@ L_08A5C9C8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A5C9E0u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 168u, 0x08A5C9E0u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C9E0u) goto L_08A5C9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C9E0: aot_gpr_4 = (aot_gpr_29 + static_cast(320)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A5C9F4u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 169u, 0x08A5C9F4u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5C9F4u) goto L_08A5C9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5C9F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5CA00u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 170u, 0x08A5CA00u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CA00u) goto L_08A5CA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CA00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2406,8 +3704,21 @@ L_08A5CA20: L_08A5CA38: aot_gpr_31 = (0x08A5CA40u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1404))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 176u, 0x08A5CA40u, 0x08A584A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 65u, 0x08A584A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CA40u) goto L_08A5CA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CA40: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2436,8 +3747,21 @@ L_08A5CA60: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CA6Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 180u, 0x08A5CA6Cu, 0x08A584B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 66u, 0x08A584B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CA6Cu) goto L_08A5CA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CA6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2485,8 +3809,21 @@ L_08A5CAA4: L_08A5CAD4: aot_gpr_31 = (0x08A5CADCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 185u, 0x08A5CADCu, 0x08A583D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 55u, 0x08A583D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CADCu) goto L_08A5CADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CADC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2533,31 +3870,96 @@ L_08A5CB1C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CB28u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 192u, 0x08A5CB28u, 0x08A58420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 61u, 0x08A58420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CB28u) goto L_08A5CB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CB28: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CB34u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 193u, 0x08A5CB34u, 0x08A58478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 64u, 0x08A58478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CB34u) goto L_08A5CB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CB34: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CB40u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 194u, 0x08A5CB40u, 0x08A584B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 66u, 0x08A584B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CB40u) goto L_08A5CB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CB40: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CB4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 195u, 0x08A5CB4Cu, 0x08A584D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 67u, 0x08A584D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CB4Cu) goto L_08A5CB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CB4C: aot_gpr_31 = (0x08A5CB54u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 196u, 0x08A5CB54u, 0x08A585E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 80u, 0x08A585E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CB54u) goto L_08A5CB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CB54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(72))); aot_gpr_5 = (65520u << 16u); @@ -2572,8 +3974,21 @@ L_08A5CB54: aot_mem.aot_direct_store8(aot_gpr_23 + static_cast(617), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A5CB88u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 197u, 0x08A5CB88u, 0x08A585F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 81u, 0x08A585F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CB88u) goto L_08A5CB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CB88: ctx.gpr[16] = (aot_gpr_29 + static_cast(336)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -2582,14 +3997,40 @@ L_08A5CB88: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5CBA4u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 198u, 0x08A5CBA4u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CBA4u) goto L_08A5CBA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CBA4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5CBB0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 199u, 0x08A5CBB0u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CBB0u) goto L_08A5CBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CBB0: ctx.gpr[17] = (aot_gpr_23 + static_cast(128)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -2597,14 +4038,40 @@ L_08A5CBB0: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A5CBC8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 200u, 0x08A5CBC8u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CBC8u) goto L_08A5CBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CBC8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5CBD4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 201u, 0x08A5CBD4u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CBD4u) goto L_08A5CBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CBD4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1280)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -2629,8 +4096,21 @@ L_08A5CBE4: L_08A5CC00: aot_gpr_31 = (0x08A5CC08u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 204u, 0x08A5CC08u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CC08u) goto L_08A5CC08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CC08: aot_gpr_4 = (15502u << 16u); aot_gpr_4 = (aot_gpr_4 | 64053u); @@ -2653,14 +4133,40 @@ L_08A5CC30: aot_gpr_4 = (aot_gpr_4 | 20972u); aot_gpr_31 = (0x08A5CC40u); aot_fpr_20 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 207u, 0x08A5CC40u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CC40u) goto L_08A5CC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CC40: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5CC4Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 208u, 0x08A5CC4Cu, 0x08A58090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 7u, 0x08A58090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CC4Cu) goto L_08A5CC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CC4C: aot_gpr_4 = (49024u << 16u); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -2671,29 +4177,81 @@ L_08A5CC4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(360), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A5CC70u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 209u, 0x08A5CC70u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CC70u) goto L_08A5CC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CC70: aot_gpr_5 = (aot_gpr_2 + static_cast(8)); aot_gpr_31 = (0x08A5CC7Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(360)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 210u, 0x08A5CC7Cu, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CC7Cu) goto L_08A5CC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CC7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(356), std::bit_cast(aot_fpr_0)); aot_gpr_5 = (aot_gpr_29 + static_cast(356)); aot_gpr_31 = (0x08A5CC8Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(352)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 211u, 0x08A5CC8Cu, 0x08A57FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 910u, 0x08A57FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CC8Cu) goto L_08A5CC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CC8C: aot_fpr_20 = ctx.fpr[24] - ctx.fpr[22]; aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1520))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5CCA0u); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 212u, 0x08A5CCA0u, 0x08A58054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 4u, 0x08A58054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CCA0u) goto L_08A5CCA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CCA0: aot_gpr_4 = (16006u << 16u); aot_gpr_4 = (aot_gpr_4 | 2706u); @@ -2739,38 +4297,116 @@ L_08A5CD08: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5CD18u); aot_gpr_5 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 216u, 0x08A5CD18u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CD18u) goto L_08A5CD18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CD18: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CD24u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 217u, 0x08A5CD24u, 0x08A58444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 62u, 0x08A58444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CD24u) goto L_08A5CD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CD24: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CD30u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 218u, 0x08A5CD30u, 0x08A58420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 61u, 0x08A58420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CD30u) goto L_08A5CD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CD30: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CD3Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 219u, 0x08A5CD3Cu, 0x08A58478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 64u, 0x08A58478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CD3Cu) goto L_08A5CD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CD3C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CD48u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 220u, 0x08A5CD48u, 0x08A584B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 66u, 0x08A584B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CD48u) goto L_08A5CD48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CD48: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CD54u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 221u, 0x08A5CD54u, 0x08A584D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 67u, 0x08A584D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CD54u) goto L_08A5CD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CD54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(236))); aot_gpr_5 = (0u + static_cast(-16385)); @@ -2807,8 +4443,21 @@ L_08A5CDA4: L_08A5CDA8: aot_gpr_31 = (0x08A5CDB0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 225u, 0x08A5CDB0u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CDB0u) goto L_08A5CDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CDB0: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (static_cast(ctx.gpr[16]) < 5 ? 1u : 0u); @@ -2830,8 +4479,21 @@ L_08A5CDC4: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CDD0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 228u, 0x08A5CDD0u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CDD0u) goto L_08A5CDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CDD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); @@ -2865,20 +4527,59 @@ L_08A5CE08: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CE14u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 232u, 0x08A5CE14u, 0x08A58478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 64u, 0x08A58478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CE14u) goto L_08A5CE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CE14: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CE20u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 233u, 0x08A5CE20u, 0x08A58444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 62u, 0x08A58444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CE20u) goto L_08A5CE20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CE20: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5CE2Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 234u, 0x08A5CE2Cu, 0x08A5822Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 24u, 0x08A5822Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CE2Cu) goto L_08A5CE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CE2C: { const bool branch_taken = ctx.gpr[19] != 0u; aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(2092), static_cast(ctx.gpr[19])); @@ -2908,8 +4609,21 @@ L_08A5CE44: L_08A5CE54: aot_gpr_31 = (0x08A5CE5Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 238u, 0x08A5CE5Cu, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CE5Cu) goto L_08A5CE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CE5C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[28])) ? 0x00800000u : 0u); @@ -2934,8 +4648,21 @@ L_08A5CE70: L_08A5CE90: aot_gpr_31 = (0x08A5CE98u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 241u, 0x08A5CE98u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CE98u) goto L_08A5CE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CE98: aot_gpr_4 = (15374u << 16u); aot_gpr_4 = (aot_gpr_4 | 64053u); @@ -2964,8 +4691,21 @@ L_08A5CEB4: L_08A5CED4: aot_gpr_31 = (0x08A5CEDCu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 244u, 0x08A5CEDCu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CEDCu) goto L_08A5CEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CEDC: aot_gpr_4 = (15374u << 16u); aot_gpr_4 = (aot_gpr_4 | 64053u); @@ -2978,8 +4718,21 @@ L_08A5CEF4: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(220))); aot_gpr_31 = (0x08A5CF00u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 246u, 0x08A5CF00u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CF00u) goto L_08A5CF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CF00: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2990,8 +4743,21 @@ L_08A5CF00: L_08A5CF08: aot_gpr_31 = (0x08A5CF10u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 248u, 0x08A5CF10u, 0x08A587E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 116u, 0x08A587E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CF10u) goto L_08A5CF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CF10: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3002,8 +4768,21 @@ L_08A5CF10: L_08A5CF18: aot_gpr_31 = (0x08A5CF20u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 250u, 0x08A5CF20u, 0x08A587E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 116u, 0x08A587E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CF20u) goto L_08A5CF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CF20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(80))); aot_gpr_31 = (0x08A5CF2Cu); @@ -3021,8 +4800,21 @@ L_08A5CF2C: L_08A5CF38: aot_gpr_31 = (0x08A5CF40u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 253u, 0x08A5CF40u, 0x08A583C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 53u, 0x08A583C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CF40u) goto L_08A5CF40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CF40: aot_gpr_4 = (16128u << 16u); ctx.fpr[26] = std::bit_cast(aot_gpr_4); @@ -3036,8 +4828,21 @@ L_08A5CF40: L_08A5CF58: aot_gpr_31 = (0x08A5CF60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 255u, 0x08A5CF60u, 0x08A583D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 54u, 0x08A583D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CF60u) goto L_08A5CF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CF60: aot_gpr_4 = (15733u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -3052,8 +4857,21 @@ L_08A5CF60: L_08A5CF7C: aot_gpr_31 = (0x08A5CF84u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 257u, 0x08A5CF84u, 0x08A583D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 54u, 0x08A583D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CF84u) goto L_08A5CF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CF84: aot_gpr_4 = (15887u << 16u); aot_gpr_4 = (aot_gpr_4 | 23593u); @@ -3074,8 +4892,21 @@ L_08A5CFA0: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5CFBCu); aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(220), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 259u, 0x08A5CFBCu, 0x08A587D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 114u, 0x08A587D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CFBCu) goto L_08A5CFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CFBC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 <= ctx.fpr[26])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -3087,20 +4918,59 @@ L_08A5CFBC: L_08A5CFCC: aot_gpr_31 = (0x08A5CFD4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 261u, 0x08A5CFD4u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CFD4u) goto L_08A5CFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CFD4: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5CFE0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 262u, 0x08A5CFE0u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CFE0u) goto L_08A5CFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CFE0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5CFECu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 263u, 0x08A5CFECu, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5CFECu) goto L_08A5CFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5CFEC: aot_gpr_4 = (16000u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3114,8 +4984,21 @@ L_08A5CFEC: L_08A5D004: aot_gpr_31 = (0x08A5D00Cu); ctx.gpr[16] = (aot_gpr_29 + static_cast(784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 265u, 0x08A5D00Cu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D00Cu) goto L_08A5D00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D00C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(208))); aot_gpr_4 = (15363u << 16u); @@ -3126,21 +5009,60 @@ L_08A5D00C: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A5D030u); { const float fs = aot_fpr_12; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 266u, 0x08A5D030u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D030u) goto L_08A5D030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D030: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5D040u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 267u, 0x08A5D040u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D040u) goto L_08A5D040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D040: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5D04Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 268u, 0x08A5D04Cu, 0x08A58604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 82u, 0x08A58604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D04Cu) goto L_08A5D04C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D04C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1280)))))); aot_gpr_4 = (aot_gpr_4 | 4u); @@ -3149,14 +5071,40 @@ L_08A5D04C: L_08A5D058: aot_gpr_31 = (0x08A5D060u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 270u, 0x08A5D060u, 0x08A666DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 540u, 0x08A666DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D060u) goto L_08A5D060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D060: aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(220), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5D06Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 271u, 0x08A5D06Cu, 0x08A5B278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 671u, 0x08A5B278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D06Cu) goto L_08A5D06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D06C: ctx.gpr[6] = (16256u << 16u); aot_gpr_4 = (0u | 0u); @@ -3189,25 +5137,77 @@ L_08A5D0B0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A5D0D0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 274u, 0x08A5D0D0u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D0D0u) goto L_08A5D0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D0D0: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5D0DCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 275u, 0x08A5D0DCu, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D0DCu) goto L_08A5D0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D0DC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D0E8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 276u, 0x08A5D0E8u, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D0E8u) goto L_08A5D0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D0E8: aot_gpr_31 = (0x08A5D0F0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 277u, 0x08A5D0F0u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D0F0u) goto L_08A5D0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D0F0: aot_gpr_4 = (16928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3276,8 +5276,21 @@ L_08A5D17C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08A5D188u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 284u, 0x08A5D188u, 0x08A58568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 76u, 0x08A58568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D188u) goto L_08A5D188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D188: aot_gpr_4 = (static_cast(aot_gpr_2) < 100 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3343,74 +5356,217 @@ L_08A5D1FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2120), ctx.gpr[22]); aot_gpr_31 = (0x08A5D218u); aot_gpr_4 = (aot_gpr_4 + static_cast(1088)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 292u, 0x08A5D218u, 0x08A58504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 69u, 0x08A58504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D218u) goto L_08A5D218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D218: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2116), ctx.gpr[21]); aot_gpr_31 = (0x08A5D228u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 293u, 0x08A5D228u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D228u) goto L_08A5D228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D228: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5D234u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 294u, 0x08A5D234u, 0x08A582FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 40u, 0x08A582FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D234u) goto L_08A5D234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D234: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A5D244u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 295u, 0x08A5D244u, 0x08A57F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 903u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 903u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 903u, 0x08A57F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D244u) goto L_08A5D244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D244: aot_gpr_4 = (ctx.gpr[17] + static_cast(528)); aot_gpr_31 = (0x08A5D250u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 296u, 0x08A5D250u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D250u) goto L_08A5D250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D250: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2056))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(400)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A5D264u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 297u, 0x08A5D264u, 0x08A58334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 45u, 0x08A58334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D264u) goto L_08A5D264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D264: ctx.gpr[22] = (aot_gpr_2 + static_cast(16)); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A5D274u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 298u, 0x08A5D274u, 0x08A58334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 45u, 0x08A58334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D274u) goto L_08A5D274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D274: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A5D284u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 299u, 0x08A5D284u, 0x08A57F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 903u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 903u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 903u, 0x08A57F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D284u) goto L_08A5D284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D284: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5D294u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 300u, 0x08A5D294u, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D294u) goto L_08A5D294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D294: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D2A0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 301u, 0x08A5D2A0u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D2A0u) goto L_08A5D2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D2A0: aot_gpr_31 = (0x08A5D2A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 302u, 0x08A5D2A8u, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D2A8u) goto L_08A5D2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D2A8: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2116))); ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2120))); @@ -3454,8 +5610,21 @@ L_08A5D2F8: L_08A5D310: aot_gpr_31 = (0x08A5D318u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 307u, 0x08A5D318u, 0x08A58740u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 98u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 98u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 98u, 0x08A58740u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D318u) goto L_08A5D318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D318: { const bool branch_taken = ctx.gpr[16] == ctx.gpr[30]; aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -3478,8 +5647,21 @@ L_08A5D32C: L_08A5D330: aot_gpr_31 = (0x08A5D338u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 311u, 0x08A5D338u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D338u) goto L_08A5D338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D338: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -3494,15 +5676,41 @@ L_08A5D34C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2112), std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08A5D35Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 313u, 0x08A5D35Cu, 0x08A58730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 96u, 0x08A58730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D35Cu) goto L_08A5D35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D35C: ctx.fpr[30] = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1216))); aot_gpr_31 = (0x08A5D36Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 314u, 0x08A5D36Cu, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D36Cu) goto L_08A5D36C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D36C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); @@ -3513,8 +5721,21 @@ L_08A5D36C: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5D390u); ctx.gpr[8] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 315u, 0x08A5D390u, 0x08A68118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 9u, 0x08A68118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D390u) goto L_08A5D390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D390: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2112))); { const bool branch_taken = 0u == 0u; @@ -3527,8 +5748,21 @@ L_08A5D390: L_08A5D39C: aot_gpr_31 = (0x08A5D3A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 317u, 0x08A5D3A4u, 0x08A58730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 96u, 0x08A58730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D3A4u) goto L_08A5D3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D3A4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1216))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -3538,13 +5772,39 @@ L_08A5D3A4: ctx.gpr[6] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D3C4u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 318u, 0x08A5D3C4u, 0x08A68000u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 1u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 1u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 1u, 0x08A68000u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D3C4u) goto L_08A5D3C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D3C4: aot_gpr_31 = (0x08A5D3CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 319u, 0x08A5D3CCu, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D3CCu) goto L_08A5D3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D3CC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -3571,8 +5831,8 @@ L_08A5D3EC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(8296))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A5D404: @@ -3633,21 +5893,60 @@ L_08A5D44C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2056))); aot_gpr_31 = (0x08A5D458u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 331u, 0x08A5D458u, 0x08A58334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 45u, 0x08A58334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D458u) goto L_08A5D458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D458: ctx.gpr[6] = (aot_gpr_2 + static_cast(16)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A5D468u); aot_gpr_5 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 332u, 0x08A5D468u, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D468u) goto L_08A5D468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D468: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D474u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 333u, 0x08A5D474u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D474u) goto L_08A5D474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D474: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] + static_cast(4)); @@ -3675,14 +5974,40 @@ L_08A5D4A0: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5D4BCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 336u, 0x08A5D4BCu, 0x08A58658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 86u, 0x08A58658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D4BCu) goto L_08A5D4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D4BC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D4C8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 337u, 0x08A5D4C8u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D4C8u) goto L_08A5D4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D4C8: ctx.gpr[16] = (ctx.gpr[19] << 2u); ctx.gpr[16] = (aot_gpr_23 + ctx.gpr[16]); @@ -3699,14 +6024,40 @@ L_08A5D4DC: ctx.gpr[6] = (ctx.gpr[6] + static_cast(1424)); aot_gpr_31 = (0x08A5D4F0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 339u, 0x08A5D4F0u, 0x08A58658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 86u, 0x08A58658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D4F0u) goto L_08A5D4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D4F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D4FCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 340u, 0x08A5D4FCu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D4FCu) goto L_08A5D4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D4FC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1404), 0u); goto L_08A5D500; @@ -3754,20 +6105,59 @@ L_08A5D544: L_08A5D55C: aot_gpr_31 = (0x08A5D564u); aot_gpr_4 = (aot_gpr_23 + static_cast(1088)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 346u, 0x08A5D564u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D564u) goto L_08A5D564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D564: aot_gpr_4 = (aot_gpr_29 + static_cast(896)); aot_gpr_31 = (0x08A5D570u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 347u, 0x08A5D570u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D570u) goto L_08A5D570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D570: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D57Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 348u, 0x08A5D57Cu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D57Cu) goto L_08A5D57C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D57C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3778,20 +6168,59 @@ L_08A5D57C: L_08A5D584: aot_gpr_31 = (0x08A5D58Cu); aot_gpr_4 = (aot_gpr_23 + static_cast(1120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 350u, 0x08A5D58Cu, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D58Cu) goto L_08A5D58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D58C: aot_gpr_4 = (aot_gpr_29 + static_cast(912)); aot_gpr_31 = (0x08A5D598u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 351u, 0x08A5D598u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D598u) goto L_08A5D598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D598: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D5A4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 352u, 0x08A5D5A4u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D5A4u) goto L_08A5D5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D5A4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(616))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -3806,14 +6235,40 @@ L_08A5D5B8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D5C8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 354u, 0x08A5D5C8u, 0x08A57F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 901u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 901u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 901u, 0x08A57F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D5C8u) goto L_08A5D5C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D5C8: aot_gpr_4 = (aot_gpr_29 + static_cast(400)); aot_gpr_31 = (0x08A5D5D4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 355u, 0x08A5D5D4u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D5D4u) goto L_08A5D5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D5D4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1220))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5888))); @@ -3827,20 +6282,59 @@ L_08A5D5D4: L_08A5D5EC: aot_gpr_31 = (0x08A5D5F4u); aot_gpr_4 = (aot_gpr_23 + static_cast(1120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 357u, 0x08A5D5F4u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D5F4u) goto L_08A5D5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D5F4: aot_gpr_4 = (aot_gpr_29 + static_cast(944)); aot_gpr_31 = (0x08A5D600u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 358u, 0x08A5D600u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D600u) goto L_08A5D600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D600: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D60Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 359u, 0x08A5D60Cu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D60Cu) goto L_08A5D60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D60C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3851,20 +6345,59 @@ L_08A5D60C: L_08A5D614: aot_gpr_31 = (0x08A5D61Cu); aot_gpr_4 = (aot_gpr_23 + static_cast(1088)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 361u, 0x08A5D61Cu, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D61Cu) goto L_08A5D61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D61C: aot_gpr_4 = (aot_gpr_29 + static_cast(960)); aot_gpr_31 = (0x08A5D628u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 362u, 0x08A5D628u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D628u) goto L_08A5D628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D628: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D634u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 363u, 0x08A5D634u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D634u) goto L_08A5D634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D634: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(616))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -3879,14 +6412,40 @@ L_08A5D648: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D658u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 365u, 0x08A5D658u, 0x08A57F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 901u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 901u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 901u, 0x08A57F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D658u) goto L_08A5D658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D658: aot_gpr_4 = (aot_gpr_29 + static_cast(416)); aot_gpr_31 = (0x08A5D664u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 366u, 0x08A5D664u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D664u) goto L_08A5D664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D664: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1224))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5888))); @@ -3921,20 +6480,59 @@ L_08A5D694: L_08A5D6AC: aot_gpr_31 = (0x08A5D6B4u); aot_gpr_4 = (aot_gpr_23 + static_cast(1152)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 370u, 0x08A5D6B4u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D6B4u) goto L_08A5D6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D6B4: aot_gpr_4 = (aot_gpr_29 + static_cast(992)); aot_gpr_31 = (0x08A5D6C0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 371u, 0x08A5D6C0u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D6C0u) goto L_08A5D6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D6C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D6CCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 372u, 0x08A5D6CCu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D6CCu) goto L_08A5D6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D6CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3945,20 +6543,59 @@ L_08A5D6CC: L_08A5D6D4: aot_gpr_31 = (0x08A5D6DCu); aot_gpr_4 = (aot_gpr_23 + static_cast(1184)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 374u, 0x08A5D6DCu, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D6DCu) goto L_08A5D6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D6DC: aot_gpr_4 = (aot_gpr_29 + static_cast(1008)); aot_gpr_31 = (0x08A5D6E8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 375u, 0x08A5D6E8u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D6E8u) goto L_08A5D6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D6E8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D6F4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 376u, 0x08A5D6F4u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D6F4u) goto L_08A5D6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D6F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(616))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -3973,14 +6610,40 @@ L_08A5D708: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D718u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 378u, 0x08A5D718u, 0x08A57F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 901u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 901u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 901u, 0x08A57F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D718u) goto L_08A5D718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D718: aot_gpr_4 = (aot_gpr_29 + static_cast(432)); aot_gpr_31 = (0x08A5D724u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 379u, 0x08A5D724u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D724u) goto L_08A5D724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D724: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1228))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5888))); @@ -3994,20 +6657,59 @@ L_08A5D724: L_08A5D73C: aot_gpr_31 = (0x08A5D744u); aot_gpr_4 = (aot_gpr_23 + static_cast(1184)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 381u, 0x08A5D744u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D744u) goto L_08A5D744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D744: aot_gpr_4 = (aot_gpr_29 + static_cast(1040)); aot_gpr_31 = (0x08A5D750u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 382u, 0x08A5D750u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D750u) goto L_08A5D750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D750: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D75Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 383u, 0x08A5D75Cu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D75Cu) goto L_08A5D75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D75C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4018,20 +6720,59 @@ L_08A5D75C: L_08A5D764: aot_gpr_31 = (0x08A5D76Cu); aot_gpr_4 = (aot_gpr_23 + static_cast(1152)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 385u, 0x08A5D76Cu, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D76Cu) goto L_08A5D76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D76C: aot_gpr_4 = (aot_gpr_29 + static_cast(1056)); aot_gpr_31 = (0x08A5D778u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 386u, 0x08A5D778u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D778u) goto L_08A5D778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D778: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D784u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 387u, 0x08A5D784u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D784u) goto L_08A5D784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D784: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(616))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -4046,14 +6787,40 @@ L_08A5D798: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D7A8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 389u, 0x08A5D7A8u, 0x08A57F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 901u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 901u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 901u, 0x08A57F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D7A8u) goto L_08A5D7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D7A8: aot_gpr_4 = (aot_gpr_29 + static_cast(448)); aot_gpr_31 = (0x08A5D7B4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 390u, 0x08A5D7B4u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D7B4u) goto L_08A5D7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D7B4: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -4061,20 +6828,59 @@ L_08A5D7B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(364), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5D7CCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 391u, 0x08A5D7CCu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D7CCu) goto L_08A5D7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D7CC: aot_gpr_31 = (0x08A5D7D4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 392u, 0x08A5D7D4u, 0x08A58134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 13u, 0x08A58134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D7D4u) goto L_08A5D7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D7D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(368), std::bit_cast(aot_fpr_0)); aot_gpr_5 = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x08A5D7E4u); aot_gpr_4 = (aot_gpr_29 + static_cast(364)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 393u, 0x08A5D7E4u, 0x08A57FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 910u, 0x08A57FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D7E4u) goto L_08A5D7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D7E4: ctx.gpr[17] = (0u | 0u); goto L_08A5D7E8; @@ -4093,8 +6899,21 @@ L_08A5D7E8: L_08A5D808: aot_gpr_31 = (0x08A5D810u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 396u, 0x08A5D810u, 0x08A58738u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 97u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 97u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 97u, 0x08A58738u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D810u) goto L_08A5D810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D810: aot_gpr_4 = (aot_gpr_29 + ctx.gpr[16]); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -4106,8 +6925,21 @@ L_08A5D810: ctx.gpr[7] = (ctx.gpr[7] + static_cast(464)); aot_gpr_31 = (0x08A5D838u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 397u, 0x08A5D838u, 0x08A6828Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 21u, 0x08A6828Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D838u) goto L_08A5D838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D838: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 65535u); @@ -4132,14 +6964,40 @@ L_08A5D868: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A5D878u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 400u, 0x08A5D878u, 0x08A58658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 86u, 0x08A58658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D878u) goto L_08A5D878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D878: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D884u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 401u, 0x08A5D884u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D884u) goto L_08A5D884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D884: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1404))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4153,14 +7011,40 @@ L_08A5D890: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A5D8A0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 403u, 0x08A5D8A0u, 0x08A58658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 86u, 0x08A58658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D8A0u) goto L_08A5D8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D8A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5D8ACu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 404u, 0x08A5D8ACu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D8ACu) goto L_08A5D8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D8AC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1404), 0u); goto L_08A5D8B0; @@ -4180,20 +7064,59 @@ L_08A5D8B0: L_08A5D8CC: aot_gpr_31 = (0x08A5D8D4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 407u, 0x08A5D8D4u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D8D4u) goto L_08A5D8D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D8D4: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5D8E0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 408u, 0x08A5D8E0u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D8E0u) goto L_08A5D8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D8E0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5D8ECu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 409u, 0x08A5D8ECu, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D8ECu) goto L_08A5D8EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D8EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(624), std::bit_cast(aot_fpr_0)); @@ -4209,20 +7132,59 @@ L_08A5D8EC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A5D924u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0053. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 410u, 0x08A5D924u, 0x088DBC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0053_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0053_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0053_entry, 53u, 665u, 0x088DBC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D924u) goto L_08A5D924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D924: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(216))); ctx.fpr[22] = aot_fpr_0 / ctx.fpr[22]; aot_gpr_31 = (0x08A5D934u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 411u, 0x08A5D934u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D934u) goto L_08A5D934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D934: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); aot_gpr_31 = (0x08A5D940u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 412u, 0x08A5D940u, 0x08A58710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 92u, 0x08A58710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D940u) goto L_08A5D940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D940: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(608))); { const float fs = aot_fpr_12; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4231,8 +7193,21 @@ L_08A5D940: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A5D95Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2104), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 413u, 0x08A5D95Cu, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D95Cu) goto L_08A5D95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D95C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4243,8 +7218,21 @@ L_08A5D95C: L_08A5D964: aot_gpr_31 = (0x08A5D96Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 415u, 0x08A5D96Cu, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D96Cu) goto L_08A5D96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D96C: aot_gpr_4 = (0u | 12u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4257,8 +7245,21 @@ L_08A5D978: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); aot_gpr_31 = (0x08A5D984u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 417u, 0x08A5D984u, 0x08A586F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 90u, 0x08A586F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D984u) goto L_08A5D984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D984: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4290,8 +7291,21 @@ L_08A5D99C: L_08A5D9A8: aot_gpr_31 = (0x08A5D9B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 422u, 0x08A5D9B0u, 0x08A58718u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 93u, 0x08A58718u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D9B0u) goto L_08A5D9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D9B0: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4318,8 +7332,21 @@ L_08A5D9D0: L_08A5D9D8: aot_gpr_31 = (0x08A5D9E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 426u, 0x08A5D9E0u, 0x08A58718u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 93u, 0x08A58718u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5D9E0u) goto L_08A5D9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5D9E0: ctx.fpr[28] = aot_fpr_20 - aot_fpr_0; aot_gpr_4 = (16384u << 16u); @@ -4344,8 +7371,21 @@ L_08A5D9F8: L_08A5DA00: aot_gpr_31 = (0x08A5DA08u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 430u, 0x08A5DA08u, 0x08A58728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 95u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 95u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 95u, 0x08A58728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DA08u) goto L_08A5DA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DA08: aot_gpr_4 = (16384u << 16u); ctx.fpr[30] = std::bit_cast(aot_gpr_4); @@ -4379,8 +7419,21 @@ L_08A5DA30: aot_mem.aot_direct_store8(aot_gpr_23 + static_cast(1495), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A5DA48u); aot_mem.aot_direct_store8(aot_gpr_23 + static_cast(1494), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 435u, 0x08A5DA48u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DA48u) goto L_08A5DA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DA48: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -4393,8 +7446,21 @@ L_08A5DA48: L_08A5DA5C: aot_gpr_31 = (0x08A5DA64u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 437u, 0x08A5DA64u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DA64u) goto L_08A5DA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DA64: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(640))); aot_fpr_12 = aot_fpr_12 + aot_fpr_0; @@ -4439,8 +7505,21 @@ L_08A5DAB4: } L_08A5DABC: aot_gpr_31 = (0x08A5DAC4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 443u, 0x08A5DAC4u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DAC4u) goto L_08A5DAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DAC4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1248))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1124), std::bit_cast(aot_fpr_20)); @@ -4449,8 +7528,21 @@ L_08A5DAC4: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A5DAE0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1120), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 444u, 0x08A5DAE0u, 0x08A57FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 910u, 0x08A57FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DAE0u) goto L_08A5DAE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DAE0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1248), std::bit_cast(aot_fpr_0)); goto L_08A5DAE4; @@ -4497,20 +7589,59 @@ L_08A5DB1C: L_08A5DB2C: aot_gpr_31 = (0x08A5DB34u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 451u, 0x08A5DB34u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DB34u) goto L_08A5DB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DB34: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5DB40u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 452u, 0x08A5DB40u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DB40u) goto L_08A5DB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DB40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2052))); aot_gpr_31 = (0x08A5DB4Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 453u, 0x08A5DB4Cu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DB4Cu) goto L_08A5DB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DB4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4521,14 +7652,40 @@ L_08A5DB4C: L_08A5DB54: aot_gpr_31 = (0x08A5DB5Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 455u, 0x08A5DB5Cu, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DB5Cu) goto L_08A5DB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DB5C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A5DB68u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 456u, 0x08A5DB68u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DB68u) goto L_08A5DB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DB68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2052))); aot_gpr_31 = (0x08A5DB74u); @@ -4562,26 +7719,78 @@ L_08A5DB94: aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x08A5DBB0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 460u, 0x08A5DBB0u, 0x08A57F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 906u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 906u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 906u, 0x08A57F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DBB0u) goto L_08A5DBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DBB0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2052))); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5DBC0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 461u, 0x08A5DBC0u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DBC0u) goto L_08A5DBC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DBC0: aot_gpr_31 = (0x08A5DBC8u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 462u, 0x08A5DBC8u, 0x08A582A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 34u, 0x08A582A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DBC8u) goto L_08A5DBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DBC8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5DBD4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 463u, 0x08A5DBD4u, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DBD4u) goto L_08A5DBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DBD4: aot_gpr_4 = (48896u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4597,8 +7806,21 @@ L_08A5DBEC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5DBFCu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 465u, 0x08A5DBFCu, 0x08A58178u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 16u, 0x08A58178u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DBFCu) goto L_08A5DBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DBFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4613,14 +7835,40 @@ L_08A5DC04: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5DC1Cu); ctx.fpr[14] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 467u, 0x08A5DC1Cu, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DC1Cu) goto L_08A5DC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DC1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2052))); aot_gpr_31 = (0x08A5DC28u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 468u, 0x08A5DC28u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DC28u) goto L_08A5DC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DC28: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1216))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1220))); @@ -4654,16 +7902,42 @@ L_08A5DC58: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5DC74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 472u, 0x08A5DC74u, 0x08A58334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 45u, 0x08A58334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DC74u) goto L_08A5DC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DC74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(644), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5DC88u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 473u, 0x08A5DC88u, 0x08A58334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 45u, 0x08A58334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DC88u) goto L_08A5DC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DC88: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1216))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1316))); @@ -4678,14 +7952,40 @@ L_08A5DC88: aot_fpr_12 = aot_fpr_12 - aot_fpr_20; aot_gpr_31 = (0x08A5DCBCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(648), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 474u, 0x08A5DCBCu, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DCBCu) goto L_08A5DCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DCBC: aot_gpr_4 = (aot_gpr_29 + static_cast(640)); aot_gpr_31 = (0x08A5DCC8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 475u, 0x08A5DCC8u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DCC8u) goto L_08A5DCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DCC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1224))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1228))); @@ -4716,16 +8016,42 @@ L_08A5DCF0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5DD08u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 479u, 0x08A5DD08u, 0x08A58334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 45u, 0x08A58334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DD08u) goto L_08A5DD08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DD08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(660), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5DD1Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 480u, 0x08A5DD1Cu, 0x08A58334u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 45u, 0x08A58334u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DD1Cu) goto L_08A5DD1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DD1C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1216))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1324))); @@ -4738,19 +8064,58 @@ L_08A5DD1C: aot_fpr_12 = aot_fpr_12 - aot_fpr_20; aot_gpr_31 = (0x08A5DD48u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(664), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 481u, 0x08A5DD48u, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DD48u) goto L_08A5DD48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DD48: aot_gpr_4 = (aot_gpr_29 + static_cast(656)); aot_gpr_31 = (0x08A5DD54u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 482u, 0x08A5DD54u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DD54u) goto L_08A5DD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DD54: aot_gpr_31 = (0x08A5DD5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 483u, 0x08A5DD5Cu, 0x08A586E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 88u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 88u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 88u, 0x08A586E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DD5Cu) goto L_08A5DD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DD5C: aot_gpr_4 = (15235u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1352))); @@ -4763,8 +8128,21 @@ L_08A5DD5C: { const float fs = aot_fpr_12; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A5DD88u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 484u, 0x08A5DD88u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DD88u) goto L_08A5DD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DD88: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4807,8 +8185,21 @@ L_08A5DDD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2076), ctx.gpr[19]); aot_gpr_31 = (0x08A5DDDCu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 489u, 0x08A5DDDCu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DDDCu) goto L_08A5DDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DDDC: aot_gpr_4 = (15574u << 16u); aot_gpr_4 = (aot_gpr_4 | 30544u); @@ -4825,13 +8216,39 @@ L_08A5DDDC: L_08A5DDF8: aot_gpr_31 = (0x08A5DE00u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 491u, 0x08A5DE00u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DE00u) goto L_08A5DE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DE00: aot_gpr_31 = (0x08A5DE08u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 492u, 0x08A5DE08u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DE08u) goto L_08A5DE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DE08: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -4846,13 +8263,39 @@ L_08A5DE08: L_08A5DE24: aot_gpr_31 = (0x08A5DE2Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 494u, 0x08A5DE2Cu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DE2Cu) goto L_08A5DE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DE2C: aot_gpr_31 = (0x08A5DE34u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 495u, 0x08A5DE34u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DE34u) goto L_08A5DE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DE34: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -4877,14 +8320,40 @@ L_08A5DE5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2076), ctx.gpr[19]); aot_gpr_31 = (0x08A5DE70u); aot_fpr_20 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 498u, 0x08A5DE70u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DE70u) goto L_08A5DE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DE70: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5DE7Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 499u, 0x08A5DE7Cu, 0x08A58090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 7u, 0x08A58090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DE7Cu) goto L_08A5DE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DE7C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); { const float fs = aot_fpr_12; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -4930,8 +8399,21 @@ L_08A5DED0: L_08A5DED4: aot_gpr_31 = (0x08A5DEDCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 505u, 0x08A5DEDCu, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DEDCu) goto L_08A5DEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DEDC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4945,19 +8427,58 @@ L_08A5DEE4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5DEF8u); aot_gpr_5 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 507u, 0x08A5DEF8u, 0x08A58514u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 71u, 0x08A58514u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DEF8u) goto L_08A5DEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DEF8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5DF04u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 508u, 0x08A5DF04u, 0x08A5851Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 72u, 0x08A5851Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DF04u) goto L_08A5DF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DF04: aot_gpr_31 = (0x08A5DF0Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 509u, 0x08A5DF0Cu, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DF0Cu) goto L_08A5DF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DF0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1072))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(28))); @@ -4968,13 +8489,39 @@ L_08A5DF0C: { const float fs = aot_fpr_12; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x08A5DF30u); { const float fs = aot_fpr_20; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 510u, 0x08A5DF30u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DF30u) goto L_08A5DF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DF30: aot_gpr_31 = (0x08A5DF38u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 511u, 0x08A5DF38u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DF38u) goto L_08A5DF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DF38: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4987,13 +8534,39 @@ L_08A5DF38: L_08A5DF44: aot_gpr_31 = (0x08A5DF4Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 513u, 0x08A5DF4Cu, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DF4Cu) goto L_08A5DF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DF4C: aot_gpr_31 = (0x08A5DF54u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 514u, 0x08A5DF54u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DF54u) goto L_08A5DF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DF54: aot_gpr_4 = (0u | 4u); if (aot_gpr_2 != aot_gpr_4) { @@ -5017,20 +8590,59 @@ L_08A5DF70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1204), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A5DF94u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1208), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 517u, 0x08A5DF94u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DF94u) goto L_08A5DF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DF94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1200), std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5DFA0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 518u, 0x08A5DFA0u, 0x08A58054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 4u, 0x08A58054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DFA0u) goto L_08A5DFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DFA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); aot_gpr_31 = (0x08A5DFACu); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 519u, 0x08A5DFACu, 0x08A58720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 94u, 0x08A58720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5DFACu) goto L_08A5DFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5DFAC: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -5093,8 +8705,21 @@ L_08A5E03C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1208), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5E054u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 525u, 0x08A5E054u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E054u) goto L_08A5E054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E054: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1200), std::bit_cast(aot_fpr_0)); @@ -5111,8 +8736,21 @@ L_08A5E05C: L_08A5E068: aot_gpr_31 = (0x08A5E070u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 528u, 0x08A5E070u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E070u) goto L_08A5E070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E070: if (aot_gpr_2 == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(600))); @@ -5133,19 +8771,58 @@ L_08A5E088: L_08A5E094: aot_gpr_31 = (0x08A5E09Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 532u, 0x08A5E09Cu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E09Cu) goto L_08A5E09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E09C: aot_gpr_4 = (aot_gpr_29 + static_cast(688)); aot_gpr_31 = (0x08A5E0A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 533u, 0x08A5E0A8u, 0x08A580FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 11u, 0x08A580FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E0A8u) goto L_08A5E0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E0A8: aot_gpr_31 = (0x08A5E0B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 534u, 0x08A5E0B0u, 0x08A586E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 89u, 0x08A586E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E0B0u) goto L_08A5E0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E0B0: aot_gpr_4 = (8192u << 16u); aot_fpr_20 = std::bit_cast(0u); @@ -5220,14 +8897,40 @@ L_08A5E154: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2124), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A5E164u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 541u, 0x08A5E164u, 0x08A5800Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 2u, 0x08A5800Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E164u) goto L_08A5E164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E164: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); aot_gpr_31 = (0x08A5E170u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 542u, 0x08A5E170u, 0x08A58030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 3u, 0x08A58030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E170u) goto L_08A5E170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E170: ctx.fpr[24] = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5235,111 +8938,345 @@ L_08A5E170: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5E188u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 543u, 0x08A5E188u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E188u) goto L_08A5E188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E188: ctx.gpr[20] = (aot_gpr_29 + static_cast(1248)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5E19Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 544u, 0x08A5E19Cu, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E19Cu) goto L_08A5E19C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E19C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5E1A8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 545u, 0x08A5E1A8u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E1A8u) goto L_08A5E1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E1A8: ctx.gpr[20] = (aot_gpr_29 + static_cast(1280)); aot_gpr_31 = (0x08A5E1B4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 546u, 0x08A5E1B4u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E1B4u) goto L_08A5E1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E1B4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5E1C0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 547u, 0x08A5E1C0u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E1C0u) goto L_08A5E1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E1C0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5E1CCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 548u, 0x08A5E1CCu, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E1CCu) goto L_08A5E1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E1CC: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5E1D8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 549u, 0x08A5E1D8u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E1D8u) goto L_08A5E1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E1D8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5E1E4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 550u, 0x08A5E1E4u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E1E4u) goto L_08A5E1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E1E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5E1F4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 551u, 0x08A5E1F4u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E1F4u) goto L_08A5E1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E1F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5E200u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 552u, 0x08A5E200u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E200u) goto L_08A5E200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E200: aot_gpr_31 = (0x08A5E208u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 553u, 0x08A5E208u, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E208u) goto L_08A5E208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E208: aot_gpr_31 = (0x08A5E210u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 554u, 0x08A5E210u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E210u) goto L_08A5E210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E210: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5E21Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 555u, 0x08A5E21Cu, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E21Cu) goto L_08A5E21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E21C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5E22Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 556u, 0x08A5E22Cu, 0x08A57E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 896u, 0x08A57E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E22Cu) goto L_08A5E22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E22C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A5E238u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 557u, 0x08A5E238u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E238u) goto L_08A5E238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E238: aot_gpr_31 = (0x08A5E240u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 558u, 0x08A5E240u, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E240u) goto L_08A5E240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E240: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7152), std::bit_cast(ctx.fpr[24])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5E250u); aot_gpr_5 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 559u, 0x08A5E250u, 0x08A58514u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 71u, 0x08A58514u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E250u) goto L_08A5E250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E250: aot_gpr_31 = (0x08A5E258u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 560u, 0x08A5E258u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E258u) goto L_08A5E258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E258: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1392))); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } @@ -5357,13 +9294,39 @@ L_08A5E258: L_08A5E278: aot_gpr_31 = (0x08A5E280u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 562u, 0x08A5E280u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E280u) goto L_08A5E280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E280: aot_gpr_31 = (0x08A5E288u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 563u, 0x08A5E288u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E288u) goto L_08A5E288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E288: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -5412,8 +9375,21 @@ L_08A5E2C0: L_08A5E2CC: aot_gpr_31 = (0x08A5E2D4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 570u, 0x08A5E2D4u, 0x08A583FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 57u, 0x08A583FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E2D4u) goto L_08A5E2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E2D4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5424,13 +9400,39 @@ L_08A5E2D4: L_08A5E2DC: aot_gpr_31 = (0x08A5E2E4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 572u, 0x08A5E2E4u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E2E4u) goto L_08A5E2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E2E4: aot_gpr_31 = (0x08A5E2ECu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 573u, 0x08A5E2ECu, 0x08A91ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 244u, 0x08A91ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E2ECu) goto L_08A5E2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E2EC: { const float fs = aot_fpr_20; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } goto L_08A5E2F0; @@ -5473,14 +9475,40 @@ L_08A5E32C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5E348u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 580u, 0x08A5E348u, 0x08A58658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 86u, 0x08A58658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E348u) goto L_08A5E348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E348: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5E354u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 581u, 0x08A5E354u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E354u) goto L_08A5E354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E354: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7152))); { const float fs = ctx.fpr[30]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } @@ -5499,14 +9527,40 @@ L_08A5E354: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A5E398u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 582u, 0x08A5E398u, 0x08B0B04Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 583u, 0x08B0B04Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E398u) goto L_08A5E398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E398: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5E3A4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 583u, 0x08A5E3A4u, 0x08B02384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 597u, 0x08B02384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E3A4u) goto L_08A5E3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E3A4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(2109))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5582,26 +9636,78 @@ L_08A5E428: ctx.gpr[18] = (aot_gpr_29 + static_cast(1360)); aot_gpr_31 = (0x08A5E438u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 592u, 0x08A5E438u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E438u) goto L_08A5E438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E438: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5E444u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 593u, 0x08A5E444u, 0x08A580FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 11u, 0x08A580FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E444u) goto L_08A5E444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E444: ctx.gpr[19] = (aot_gpr_29 + static_cast(1376)); aot_gpr_31 = (0x08A5E450u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 594u, 0x08A5E450u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E450u) goto L_08A5E450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E450: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A5E45Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 595u, 0x08A5E45Cu, 0x08A580FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 11u, 0x08A580FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E45Cu) goto L_08A5E45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E45C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2076))); ctx.gpr[20] = (aot_gpr_29 + static_cast(1328)); @@ -5609,85 +9715,267 @@ L_08A5E45C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1088)); aot_gpr_31 = (0x08A5E474u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 596u, 0x08A5E474u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E474u) goto L_08A5E474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E474: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5E480u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 597u, 0x08A5E480u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E480u) goto L_08A5E480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E480: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5E48Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 598u, 0x08A5E48Cu, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E48Cu) goto L_08A5E48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E48C: ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[17] = (aot_gpr_29 + static_cast(1344)); aot_gpr_31 = (0x08A5E49Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 599u, 0x08A5E49Cu, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E49Cu) goto L_08A5E49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E49C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5E4A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 600u, 0x08A5E4A8u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E4A8u) goto L_08A5E4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E4A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A5E4B8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 601u, 0x08A5E4B8u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E4B8u) goto L_08A5E4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E4B8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5E4C4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 602u, 0x08A5E4C4u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E4C4u) goto L_08A5E4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E4C4: aot_gpr_31 = (0x08A5E4CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 603u, 0x08A5E4CCu, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E4CCu) goto L_08A5E4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E4CC: aot_gpr_31 = (0x08A5E4D4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 604u, 0x08A5E4D4u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E4D4u) goto L_08A5E4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E4D4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5E4E0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 605u, 0x08A5E4E0u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E4E0u) goto L_08A5E4E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E4E0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5E4F0u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 606u, 0x08A5E4F0u, 0x08A57E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 896u, 0x08A57E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E4F0u) goto L_08A5E4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E4F0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A5E4FCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 607u, 0x08A5E4FCu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E4FCu) goto L_08A5E4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E4FC: aot_gpr_31 = (0x08A5E504u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 608u, 0x08A5E504u, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E504u) goto L_08A5E504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E504: aot_gpr_31 = (0x08A5E50Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 609u, 0x08A5E50Cu, 0x08A587B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 111u, 0x08A587B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E50Cu) goto L_08A5E50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E50C: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[20] = (aot_gpr_29 + static_cast(672)); @@ -5704,8 +9992,21 @@ L_08A5E514: L_08A5E51C: aot_gpr_31 = (0x08A5E524u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 612u, 0x08A5E524u, 0x08A58344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 46u, 0x08A58344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E524u) goto L_08A5E524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E524: { const bool branch_taken = aot_gpr_2 == ctx.gpr[30]; if (branch_taken) { @@ -5721,8 +10022,21 @@ L_08A5E52C: L_08A5E534: aot_gpr_31 = (0x08A5E53Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 615u, 0x08A5E53Cu, 0x08A58344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 46u, 0x08A58344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E53Cu) goto L_08A5E53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E53C: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5734,8 +10048,21 @@ L_08A5E53C: L_08A5E548: aot_gpr_31 = (0x08A5E550u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 617u, 0x08A5E550u, 0x08A587B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 111u, 0x08A587B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E550u) goto L_08A5E550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E550: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5746,8 +10073,21 @@ L_08A5E550: L_08A5E558: aot_gpr_31 = (0x08A5E560u); aot_gpr_4 = (aot_gpr_29 + static_cast(624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 619u, 0x08A5E560u, 0x08A57E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 893u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 893u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 893u, 0x08A57E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E560u) goto L_08A5E560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E560: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -5785,8 +10125,21 @@ L_08A5E5A8: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5E5B4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 623u, 0x08A5E5B4u, 0x08A584FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 68u, 0x08A584FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E5B4u) goto L_08A5E5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E5B4: aot_gpr_4 = (0u | 179u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5799,8 +10152,21 @@ L_08A5E5B4: L_08A5E5C0: aot_gpr_31 = (0x08A5E5C8u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 625u, 0x08A5E5C8u, 0x08A584FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 68u, 0x08A584FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E5C8u) goto L_08A5E5C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E5C8: aot_gpr_4 = (0u | 178u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5820,22 +10186,61 @@ L_08A5E5D4: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5E5FCu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 627u, 0x08A5E5FCu, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E5FCu) goto L_08A5E5FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E5FC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5E60Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 628u, 0x08A5E60Cu, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E60Cu) goto L_08A5E60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E60C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08A5E61Cu); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 629u, 0x08A5E61Cu, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E61Cu) goto L_08A5E61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E61C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5882,22 +10287,61 @@ L_08A5E660: { const float fs = aot_fpr_12; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A5E698u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 633u, 0x08A5E698u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E698u) goto L_08A5E698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E698: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5E6A8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 634u, 0x08A5E6A8u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E6A8u) goto L_08A5E6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E6A8: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08A5E6B8u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 635u, 0x08A5E6B8u, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E6B8u) goto L_08A5E6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E6B8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7152))); ctx.fpr[28] = std::bit_cast(0u); @@ -5926,13 +10370,39 @@ L_08A5E6E8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7152), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5E6FCu); aot_gpr_5 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 639u, 0x08A5E6FCu, 0x08A58514u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 71u, 0x08A58514u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E6FCu) goto L_08A5E6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E6FC: aot_gpr_31 = (0x08A5E704u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 640u, 0x08A5E704u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E704u) goto L_08A5E704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E704: { const float fs = ctx.fpr[22]; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1392))); @@ -5948,13 +10418,39 @@ L_08A5E704: L_08A5E720: aot_gpr_31 = (0x08A5E728u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 642u, 0x08A5E728u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E728u) goto L_08A5E728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E728: aot_gpr_31 = (0x08A5E730u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 643u, 0x08A5E730u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E730u) goto L_08A5E730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E730: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -6003,8 +10499,21 @@ L_08A5E768: L_08A5E774: aot_gpr_31 = (0x08A5E77Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 650u, 0x08A5E77Cu, 0x08A583FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 57u, 0x08A583FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E77Cu) goto L_08A5E77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E77C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6015,13 +10524,39 @@ L_08A5E77C: L_08A5E784: aot_gpr_31 = (0x08A5E78Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 652u, 0x08A5E78Cu, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E78Cu) goto L_08A5E78C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E78C: aot_gpr_31 = (0x08A5E794u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 653u, 0x08A5E794u, 0x08A91ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 244u, 0x08A91ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E794u) goto L_08A5E794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E794: { const float fs = aot_fpr_20; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } goto L_08A5E798; @@ -6064,14 +10599,40 @@ L_08A5E7D4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5E7F0u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 660u, 0x08A5E7F0u, 0x08A58658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 86u, 0x08A58658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E7F0u) goto L_08A5E7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E7F0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5E7FCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 661u, 0x08A5E7FCu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E7FCu) goto L_08A5E7FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E7FC: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2088))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -6092,14 +10653,40 @@ L_08A5E7FC: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08A5E848u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 662u, 0x08A5E848u, 0x08B0B04Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 583u, 0x08B0B04Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E848u) goto L_08A5E848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E848: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5E854u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 663u, 0x08A5E854u, 0x08B02384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 597u, 0x08B02384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E854u) goto L_08A5E854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E854: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(2109))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6140,8 +10727,21 @@ L_08A5E880: L_08A5E888: aot_gpr_31 = (0x08A5E890u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 669u, 0x08A5E890u, 0x08A587B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 111u, 0x08A587B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E890u) goto L_08A5E890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E890: { const bool branch_taken = aot_gpr_2 == 0u; ctx.fpr[28] = std::bit_cast(0u); @@ -6246,8 +10846,21 @@ L_08A5E944: L_08A5E954: aot_gpr_31 = (0x08A5E95Cu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1388))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 681u, 0x08A5E95Cu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E95Cu) goto L_08A5E95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E95C: aot_gpr_4 = (15107u << 16u); aot_gpr_4 = (aot_gpr_4 | 4719u); @@ -6284,8 +10897,21 @@ L_08A5E988: L_08A5E9A4: aot_gpr_31 = (0x08A5E9ACu); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1388))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 685u, 0x08A5E9ACu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5E9ACu) goto L_08A5E9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5E9AC: aot_gpr_4 = (15267u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -6360,125 +10986,385 @@ L_08A5EA54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2128), ctx.gpr[20]); aot_gpr_31 = (0x08A5EA60u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 693u, 0x08A5EA60u, 0x08A5800Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 2u, 0x08A5800Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EA60u) goto L_08A5EA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EA60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); aot_gpr_31 = (0x08A5EA6Cu); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 694u, 0x08A5EA6Cu, 0x08A58030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 3u, 0x08A58030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EA6Cu) goto L_08A5EA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EA6C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5EA80u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 695u, 0x08A5EA80u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EA80u) goto L_08A5EA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EA80: ctx.gpr[20] = (aot_gpr_29 + static_cast(1424)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5EA94u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 696u, 0x08A5EA94u, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EA94u) goto L_08A5EA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EA94: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5EAA0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 697u, 0x08A5EAA0u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EAA0u) goto L_08A5EAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EAA0: ctx.gpr[20] = (aot_gpr_29 + static_cast(1456)); aot_gpr_31 = (0x08A5EAACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 698u, 0x08A5EAACu, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EAACu) goto L_08A5EAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EAAC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5EAB8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 699u, 0x08A5EAB8u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EAB8u) goto L_08A5EAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EAB8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5EAC4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 700u, 0x08A5EAC4u, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EAC4u) goto L_08A5EAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EAC4: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5EAD0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 701u, 0x08A5EAD0u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EAD0u) goto L_08A5EAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EAD0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5EADCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 702u, 0x08A5EADCu, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EADCu) goto L_08A5EADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EADC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5EAECu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 703u, 0x08A5EAECu, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EAECu) goto L_08A5EAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EAEC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5EAF8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 704u, 0x08A5EAF8u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EAF8u) goto L_08A5EAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EAF8: aot_gpr_31 = (0x08A5EB00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 705u, 0x08A5EB00u, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB00u) goto L_08A5EB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB00: aot_gpr_31 = (0x08A5EB08u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 706u, 0x08A5EB08u, 0x08A5850Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 70u, 0x08A5850Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB08u) goto L_08A5EB08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB08: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A5EB14u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 707u, 0x08A5EB14u, 0x08A580DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 10u, 0x08A580DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB14u) goto L_08A5EB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB14: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A5EB24u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 708u, 0x08A5EB24u, 0x08A57E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 896u, 0x08A57E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB24u) goto L_08A5EB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB24: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A5EB30u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 709u, 0x08A5EB30u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB30u) goto L_08A5EB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB30: aot_gpr_31 = (0x08A5EB38u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 710u, 0x08A5EB38u, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB38u) goto L_08A5EB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB38: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7152), std::bit_cast(ctx.fpr[28])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5EB48u); aot_gpr_5 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 711u, 0x08A5EB48u, 0x08A58514u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 71u, 0x08A58514u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB48u) goto L_08A5EB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB48: aot_gpr_31 = (0x08A5EB50u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 712u, 0x08A5EB50u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB50u) goto L_08A5EB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB50: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1392))); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } @@ -6495,13 +11381,39 @@ L_08A5EB50: L_08A5EB70: aot_gpr_31 = (0x08A5EB78u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 714u, 0x08A5EB78u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB78u) goto L_08A5EB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB78: aot_gpr_31 = (0x08A5EB80u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 715u, 0x08A5EB80u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EB80u) goto L_08A5EB80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EB80: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -6550,8 +11462,21 @@ L_08A5EBB8: L_08A5EBC4: aot_gpr_31 = (0x08A5EBCCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 722u, 0x08A5EBCCu, 0x08A583FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 57u, 0x08A583FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EBCCu) goto L_08A5EBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EBCC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6562,13 +11487,39 @@ L_08A5EBCC: L_08A5EBD4: aot_gpr_31 = (0x08A5EBDCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 724u, 0x08A5EBDCu, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EBDCu) goto L_08A5EBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EBDC: aot_gpr_31 = (0x08A5EBE4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 725u, 0x08A5EBE4u, 0x08A91ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 244u, 0x08A91ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EBE4u) goto L_08A5EBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EBE4: { const float fs = aot_fpr_20; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } goto L_08A5EBE8; @@ -6611,14 +11562,40 @@ L_08A5EC24: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5EC40u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 732u, 0x08A5EC40u, 0x08A58658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 86u, 0x08A58658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EC40u) goto L_08A5EC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EC40: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A5EC4Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 733u, 0x08A5EC4Cu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EC4Cu) goto L_08A5EC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EC4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7152))); { const float fs = ctx.fpr[30]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } @@ -6637,14 +11614,40 @@ L_08A5EC4C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A5EC90u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 734u, 0x08A5EC90u, 0x08B0B04Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 583u, 0x08B0B04Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EC90u) goto L_08A5EC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EC90: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5EC9Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 735u, 0x08A5EC9Cu, 0x08B02384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 597u, 0x08B02384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EC9Cu) goto L_08A5EC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EC9C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(2109))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6695,8 +11698,21 @@ L_08A5ECF0: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A5ED00u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 742u, 0x08A5ED00u, 0x08A587E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 116u, 0x08A587E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5ED00u) goto L_08A5ED00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5ED00: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6712,14 +11728,40 @@ L_08A5ED00: L_08A5ED18: aot_gpr_31 = (0x08A5ED20u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 744u, 0x08A5ED20u, 0x08A587E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 116u, 0x08A587E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5ED20u) goto L_08A5ED20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5ED20: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(80))); aot_gpr_31 = (0x08A5ED2Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 745u, 0x08A5ED2Cu, 0x08A59578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 307u, 0x08A59578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5ED2Cu) goto L_08A5ED2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5ED2C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5ED38u); @@ -6739,8 +11781,21 @@ L_08A5ED3C: L_08A5ED44: aot_gpr_31 = (0x08A5ED4Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 749u, 0x08A5ED4Cu, 0x08A583C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 53u, 0x08A583C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5ED4Cu) goto L_08A5ED4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5ED4C: aot_gpr_4 = (15922u << 16u); aot_gpr_4 = (aot_gpr_4 | 47299u); @@ -6770,26 +11825,78 @@ L_08A5ED78: ctx.gpr[18] = (aot_gpr_29 + static_cast(1504)); aot_gpr_31 = (0x08A5ED8Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 753u, 0x08A5ED8Cu, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5ED8Cu) goto L_08A5ED8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5ED8C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5ED9Cu); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 754u, 0x08A5ED9Cu, 0x08A57E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 896u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 896u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 896u, 0x08A57E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5ED9Cu) goto L_08A5ED9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5ED9C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5EDA8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 755u, 0x08A5EDA8u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EDA8u) goto L_08A5EDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EDA8: aot_gpr_31 = (0x08A5EDB0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 756u, 0x08A5EDB0u, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EDB0u) goto L_08A5EDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EDB0: aot_gpr_5 = (15363u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1493))); @@ -6804,15 +11911,41 @@ L_08A5EDB0: L_08A5EDC4: aot_gpr_31 = (0x08A5EDCCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2124), std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 758u, 0x08A5EDCCu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EDCCu) goto L_08A5EDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EDCC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5EDDCu); ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 759u, 0x08A5EDDCu, 0x08A58720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 94u, 0x08A58720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EDDCu) goto L_08A5EDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EDDC: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -6839,27 +11972,79 @@ L_08A5EE18: ctx.gpr[18] = (aot_gpr_29 + static_cast(1536)); aot_gpr_31 = (0x08A5EE28u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 761u, 0x08A5EE28u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EE28u) goto L_08A5EE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EE28: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5EE38u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 762u, 0x08A5EE38u, 0x08A57F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 903u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 903u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 903u, 0x08A57F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EE38u) goto L_08A5EE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EE38: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5EE44u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 763u, 0x08A5EE44u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EE44u) goto L_08A5EE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EE44: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5EE50u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 764u, 0x08A5EE50u, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EE50u) goto L_08A5EE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EE50: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); goto L_08A5EE54; @@ -6868,15 +12053,41 @@ L_08A5EE54: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A5EE64u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1520), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 766u, 0x08A5EE64u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EE64u) goto L_08A5EE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EE64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1524), std::bit_cast(aot_fpr_0)); aot_gpr_5 = (aot_gpr_29 + static_cast(1524)); aot_gpr_31 = (0x08A5EE74u); aot_gpr_4 = (aot_gpr_29 + static_cast(1520)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 767u, 0x08A5EE74u, 0x08A57FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 910u, 0x08A57FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EE74u) goto L_08A5EE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EE74: { const float fs = aot_fpr_0; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1076))); @@ -7052,22 +12263,61 @@ L_08A5EFD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1072))); aot_gpr_31 = (0x08A5EFE4u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 790u, 0x08A5EFE4u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EFE4u) goto L_08A5EFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EFE4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A5EFF0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 791u, 0x08A5EFF0u, 0x08A58090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 7u, 0x08A58090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5EFF0u) goto L_08A5EFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5EFF0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1520))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.fpr[22] = ctx.fpr[26] - aot_fpr_0; aot_gpr_31 = (0x08A5F004u); { const float fs = aot_fpr_0; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 792u, 0x08A5F004u, 0x08A58054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 4u, 0x08A58054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F004u) goto L_08A5F004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F004: aot_fpr_12 = aot_fpr_0 - ctx.fpr[24]; { const float fs = ctx.fpr[22]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -7093,27 +12343,79 @@ L_08A5F028: aot_gpr_4 = (aot_gpr_4 | 20972u); aot_gpr_31 = (0x08A5F038u); aot_fpr_20 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 795u, 0x08A5F038u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F038u) goto L_08A5F038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F038: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5F044u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 796u, 0x08A5F044u, 0x08A58090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 7u, 0x08A58090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F044u) goto L_08A5F044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F044: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1520))); ctx.fpr[22] = ctx.fpr[26] - aot_fpr_0; aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5F058u); { const float fs = aot_fpr_0; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 797u, 0x08A5F058u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F058u) goto L_08A5F058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F058: aot_gpr_31 = (0x08A5F060u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 798u, 0x08A5F060u, 0x08A58054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 4u, 0x08A58054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F060u) goto L_08A5F060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F060: aot_gpr_4 = (16006u << 16u); aot_gpr_4 = (aot_gpr_4 | 2706u); @@ -7134,14 +12436,40 @@ L_08A5F084: aot_gpr_4 = (aot_gpr_4 | 13107u); aot_gpr_31 = (0x08A5F094u); aot_fpr_20 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 800u, 0x08A5F094u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F094u) goto L_08A5F094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F094: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5F0A0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 801u, 0x08A5F0A0u, 0x08A58090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 7u, 0x08A58090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F0A0u) goto L_08A5F0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F0A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1520))); { const float fs = aot_fpr_0; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -7200,8 +12528,21 @@ L_08A5F110: L_08A5F12C: aot_gpr_31 = (0x08A5F134u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 807u, 0x08A5F134u, 0x08A587B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 111u, 0x08A587B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F134u) goto L_08A5F134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F134: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7212,15 +12553,41 @@ L_08A5F134: L_08A5F13C: aot_gpr_31 = (0x08A5F144u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1392))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 809u, 0x08A5F144u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F144u) goto L_08A5F144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F144: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A5F154u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 810u, 0x08A5F154u, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F154u) goto L_08A5F154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F154: { const float fs = aot_fpr_0; const float ft = ctx.fpr[30]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1224))); @@ -7253,21 +12620,60 @@ L_08A5F194: aot_gpr_4 = (aot_gpr_29 + static_cast(1576)); aot_gpr_31 = (0x08A5F1ACu); aot_gpr_5 = (aot_gpr_29 + static_cast(624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 813u, 0x08A5F1ACu, 0x08A57FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 910u, 0x08A57FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F1ACu) goto L_08A5F1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F1AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1572), std::bit_cast(aot_fpr_0)); aot_gpr_5 = (aot_gpr_29 + static_cast(1572)); aot_gpr_31 = (0x08A5F1BCu); aot_gpr_4 = (aot_gpr_29 + static_cast(1568)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 814u, 0x08A5F1BCu, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F1BCu) goto L_08A5F1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F1BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1392))); aot_gpr_31 = (0x08A5F1C8u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 815u, 0x08A5F1C8u, 0x08A5800Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 2u, 0x08A5800Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F1C8u) goto L_08A5F1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F1C8: { const float fs = aot_fpr_20; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(212))); @@ -7278,22 +12684,61 @@ L_08A5F1C8: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5F1ECu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 816u, 0x08A5F1ECu, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F1ECu) goto L_08A5F1EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F1EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5F1FCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 817u, 0x08A5F1FCu, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F1FCu) goto L_08A5F1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F1FC: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5F20Cu); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 818u, 0x08A5F20Cu, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F20Cu) goto L_08A5F20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F20C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7308,21 +12753,60 @@ L_08A5F214: aot_gpr_4 = (aot_gpr_29 + static_cast(1608)); aot_gpr_31 = (0x08A5F22Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 820u, 0x08A5F22Cu, 0x08A57FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 910u, 0x08A57FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F22Cu) goto L_08A5F22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F22C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1604), std::bit_cast(aot_fpr_0)); aot_gpr_5 = (aot_gpr_29 + static_cast(1604)); aot_gpr_31 = (0x08A5F23Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(1600)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 821u, 0x08A5F23Cu, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F23Cu) goto L_08A5F23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F23C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1392))); aot_gpr_31 = (0x08A5F248u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 822u, 0x08A5F248u, 0x08A5800Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 2u, 0x08A5800Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F248u) goto L_08A5F248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F248: { const float fs = aot_fpr_20; const float ft = aot_fpr_0; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(212))); @@ -7333,22 +12817,61 @@ L_08A5F248: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5F26Cu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 823u, 0x08A5F26Cu, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F26Cu) goto L_08A5F26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F26C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5F27Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 824u, 0x08A5F27Cu, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F27Cu) goto L_08A5F27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F27C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5F28Cu); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 825u, 0x08A5F28Cu, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F28Cu) goto L_08A5F28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F28C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7362,8 +12885,21 @@ L_08A5F294: L_08A5F298: aot_gpr_31 = (0x08A5F2A0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_23 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 828u, 0x08A5F2A0u, 0x08A58304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 41u, 0x08A58304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F2A0u) goto L_08A5F2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F2A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2056))); ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2080))); @@ -7459,8 +12995,21 @@ L_08A5F384: L_08A5F388: aot_gpr_31 = (0x08A5F390u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 838u, 0x08A5F390u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F390u) goto L_08A5F390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F390: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7471,8 +13020,21 @@ L_08A5F390: L_08A5F398: aot_gpr_31 = (0x08A5F3A0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 840u, 0x08A5F3A0u, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F3A0u) goto L_08A5F3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F3A0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7671,8 +13233,21 @@ L_08A5F4DC: L_08A5F4E4: aot_gpr_31 = (0x08A5F4ECu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 865u, 0x08A5F4ECu, 0x08A587F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 118u, 0x08A587F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F4ECu) goto L_08A5F4EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F4EC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7685,14 +13260,40 @@ L_08A5F4F4: ctx.gpr[16] = (ctx.gpr[16] + static_cast(-6640)); aot_gpr_31 = (0x08A5F504u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 867u, 0x08A5F504u, 0x0898CE74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 319u, 0x0898CE74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F504u) goto L_08A5F504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F504: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5F510u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 868u, 0x08A5F510u, 0x08A587ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 117u, 0x08A587ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F510u) goto L_08A5F510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F510: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7704,8 +13305,21 @@ L_08A5F510: L_08A5F51C: aot_gpr_31 = (0x08A5F524u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 870u, 0x08A5F524u, 0x0898CF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 333u, 0x0898CF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F524u) goto L_08A5F524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F524: ctx.gpr[17] = (aot_gpr_2 | 0u); goto L_08A5F528; @@ -7738,8 +13352,21 @@ L_08A5F540: L_08A5F548: aot_gpr_31 = (0x08A5F550u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 876u, 0x08A5F550u, 0x08A587F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 118u, 0x08A587F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F550u) goto L_08A5F550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F550: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7750,8 +13377,21 @@ L_08A5F550: L_08A5F558: aot_gpr_31 = (0x08A5F560u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 878u, 0x08A5F560u, 0x08A58A70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 160u, 0x08A58A70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F560u) goto L_08A5F560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F560: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(636))); aot_gpr_4 = (17274u << 16u); @@ -7766,8 +13406,21 @@ L_08A5F560: L_08A5F57C: aot_gpr_31 = (0x08A5F584u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 880u, 0x08A5F584u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F584u) goto L_08A5F584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F584: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -7779,8 +13432,21 @@ L_08A5F584: L_08A5F590: aot_gpr_31 = (0x08A5F598u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 882u, 0x08A5F598u, 0x08A587ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 117u, 0x08A587ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F598u) goto L_08A5F598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F598: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7830,8 +13496,21 @@ L_08A5F5EC: aot_gpr_4 = (aot_gpr_4 | 26214u); aot_gpr_31 = (0x08A5F608u); aot_fpr_20 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 887u, 0x08A5F608u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F608u) goto L_08A5F608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F608: ctx.gpr[16] = (aot_gpr_29 + static_cast(1632)); { const float fs = aot_fpr_20; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } @@ -7846,8 +13525,21 @@ L_08A5F618: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08A5F624u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 889u, 0x08A5F624u, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F624u) goto L_08A5F624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F624: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7865,14 +13557,40 @@ L_08A5F62C: aot_gpr_5 = (aot_gpr_5 | 52429u); aot_gpr_31 = (0x08A5F650u); ctx.fpr[14] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 891u, 0x08A5F650u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F650u) goto L_08A5F650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F650: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5F65Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 892u, 0x08A5F65Cu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F65Cu) goto L_08A5F65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F65C: aot_gpr_4 = (15436u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -7882,8 +13600,21 @@ L_08A5F65C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1652), std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A5F67Cu); { const float fs = aot_fpr_20; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 893u, 0x08A5F67Cu, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F67Cu) goto L_08A5F67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F67C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1656), std::bit_cast(aot_fpr_0)); @@ -7898,24 +13629,76 @@ L_08A5F684: ctx.fpr[26] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A5F698u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 895u, 0x08A5F698u, 0x08A584FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 68u, 0x08A584FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F698u) goto L_08A5F698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F698: aot_gpr_31 = (0x08A5F6A0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 896u, 0x08A5F6A0u, 0x08A58304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 41u, 0x08A58304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F6A0u) goto L_08A5F6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F6A0: aot_gpr_31 = (0x08A5F6A8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 897u, 0x08A5F6A8u, 0x08A5878Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 106u, 0x08A5878Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F6A8u) goto L_08A5F6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F6A8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5F6B4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 898u, 0x08A5F6B4u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F6B4u) goto L_08A5F6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F6B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1640))); aot_gpr_4 = (15544u << 16u); @@ -7928,52 +13711,156 @@ L_08A5F6B4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A5F6E0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 899u, 0x08A5F6E0u, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F6E0u) goto L_08A5F6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F6E0: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5F6ECu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 900u, 0x08A5F6ECu, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F6ECu) goto L_08A5F6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F6EC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A5F6FCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 901u, 0x08A5F6FCu, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F6FCu) goto L_08A5F6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F6FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5F708u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 902u, 0x08A5F708u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F708u) goto L_08A5F708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F708: { const float fs = aot_fpr_20; const float ft = ctx.fpr[30]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08A5F714u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 903u, 0x08A5F714u, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F714u) goto L_08A5F714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F714: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08A5F720u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 904u, 0x08A5F720u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F720u) goto L_08A5F720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F720: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A5F730u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 905u, 0x08A5F730u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F730u) goto L_08A5F730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F730: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5F73Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 906u, 0x08A5F73Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F73Cu) goto L_08A5F73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F73C: aot_gpr_4 = (15139u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -7984,8 +13871,21 @@ L_08A5F73C: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A5F760u); { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 907u, 0x08A5F760u, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F760u) goto L_08A5F760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F760: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1656), std::bit_cast(aot_fpr_0)); goto L_08A5F764; @@ -7995,14 +13895,40 @@ L_08A5F764: aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5F778u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 909u, 0x08A5F778u, 0x08A57EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 899u, 0x08A57EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F778u) goto L_08A5F778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F778: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5F784u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 910u, 0x08A5F784u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F784u) goto L_08A5F784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F784: aot_gpr_4 = (0u | 27u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8014,16 +13940,42 @@ L_08A5F784: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A5F7ACu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 911u, 0x08A5F7ACu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F7ACu) goto L_08A5F7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F7AC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A5F7C0u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 912u, 0x08A5F7C0u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F7C0u) goto L_08A5F7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F7C0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_4 = (0u | 56u); @@ -8035,8 +13987,21 @@ L_08A5F7C0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A5F7E8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 913u, 0x08A5F7E8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F7E8u) goto L_08A5F7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F7E8: aot_gpr_4 = (48928u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8047,8 +14012,21 @@ L_08A5F7E8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A5F80Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 914u, 0x08A5F80Cu, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F80Cu) goto L_08A5F80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F80C: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1632))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); @@ -8056,8 +14034,21 @@ L_08A5F80C: ctx.fpr[14] = ctx.fpr[14] + aot_fpr_0; aot_gpr_31 = (0x08A5F824u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1632), std::bit_cast(ctx.fpr[14])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 915u, 0x08A5F824u, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F824u) goto L_08A5F824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F824: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1636))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -8067,8 +14058,21 @@ L_08A5F824: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1636), std::bit_cast(ctx.fpr[14])); aot_gpr_31 = (0x08A5F844u); { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 916u, 0x08A5F844u, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F844u) goto L_08A5F844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F844: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1640))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -8078,8 +14082,21 @@ L_08A5F844: ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08A5F864u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1640), std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 917u, 0x08A5F864u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F864u) goto L_08A5F864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F864: aot_gpr_4 = (0u | 57u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -8091,13 +14108,39 @@ L_08A5F864: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A5F88Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 918u, 0x08A5F88Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F88Cu) goto L_08A5F88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F88C: aot_gpr_31 = (0x08A5F894u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1400))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 919u, 0x08A5F894u, 0x08A58354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 48u, 0x08A58354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F894u) goto L_08A5F894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F894: aot_fpr_12 = std::bit_cast(aot_gpr_2); { const bool branch_taken = static_cast(aot_gpr_2) >= 0; @@ -8151,8 +14194,21 @@ L_08A5F8F4: L_08A5F8F8: aot_gpr_31 = (0x08A5F900u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 926u, 0x08A5F900u, 0x08AFFEFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 947u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 947u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 947u, 0x08AFFEFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F900u) goto L_08A5F900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F900: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(618)))))); aot_gpr_4 = (aot_gpr_4 & 32u); @@ -8175,8 +14231,21 @@ L_08A5F910: L_08A5F924: aot_gpr_31 = (0x08A5F92Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 929u, 0x08A5F92Cu, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F92Cu) goto L_08A5F92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F92C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8187,20 +14256,59 @@ L_08A5F92C: L_08A5F934: aot_gpr_31 = (0x08A5F93Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 931u, 0x08A5F93Cu, 0x08B1096Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 149u, 0x08B1096Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F93Cu) goto L_08A5F93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F93C: ctx.fpr[24] = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5F94Cu); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 932u, 0x08A5F94Cu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F94Cu) goto L_08A5F94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F94C: aot_gpr_31 = (0x08A5F954u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 933u, 0x08A5F954u, 0x08A58150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 14u, 0x08A58150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F954u) goto L_08A5F954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F954: aot_gpr_4 = (15651u << 16u); ctx.fpr[28] = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -8256,8 +14364,21 @@ L_08A5F9C4: L_08A5F9D4: aot_gpr_31 = (0x08A5F9DCu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 939u, 0x08A5F9DCu, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F9DCu) goto L_08A5F9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F9DC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8268,8 +14389,21 @@ L_08A5F9DC: L_08A5F9E4: aot_gpr_31 = (0x08A5F9ECu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 941u, 0x08A5F9ECu, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5F9ECu) goto L_08A5F9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5F9EC: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8298,8 +14432,21 @@ L_08A5FA14: aot_fpr_13 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x08A5FA2Cu); ctx.gpr[6] = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 944u, 0x08A5FA2Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FA2Cu) goto L_08A5FA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FA2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8314,8 +14461,21 @@ L_08A5FA34: aot_fpr_13 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x08A5FA4Cu); ctx.gpr[6] = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 946u, 0x08A5FA4Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FA4Cu) goto L_08A5FA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FA4C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -8329,8 +14489,21 @@ L_08A5FA5C: goto L_08A5FA60; L_08A5FA60: aot_gpr_31 = (0x08A5FA68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 949u, 0x08A5FA68u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FA68u) goto L_08A5FA68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FA68: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -8344,8 +14517,21 @@ L_08A5FA68: L_08A5FA78: aot_gpr_31 = (0x08A5FA80u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 951u, 0x08A5FA80u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FA80u) goto L_08A5FA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FA80: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -8357,8 +14543,21 @@ L_08A5FA80: L_08A5FA8C: aot_gpr_31 = (0x08A5FA94u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 953u, 0x08A5FA94u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FA94u) goto L_08A5FA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FA94: { const bool branch_taken = aot_gpr_2 == ctx.gpr[22]; if (branch_taken) { @@ -8369,8 +14568,21 @@ L_08A5FA94: L_08A5FA9C: aot_gpr_31 = (0x08A5FAA4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 955u, 0x08A5FAA4u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FAA4u) goto L_08A5FAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FAA4: { const bool branch_taken = aot_gpr_2 != ctx.gpr[21]; if (branch_taken) { @@ -8399,8 +14611,21 @@ L_08A5FABC: L_08A5FACC: aot_gpr_31 = (0x08A5FAD4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 959u, 0x08A5FAD4u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FAD4u) goto L_08A5FAD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FAD4: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -8412,8 +14637,21 @@ L_08A5FAD4: L_08A5FAE0: aot_gpr_31 = (0x08A5FAE8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 961u, 0x08A5FAE8u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FAE8u) goto L_08A5FAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FAE8: { const bool branch_taken = aot_gpr_2 == ctx.gpr[20]; if (branch_taken) { @@ -8424,8 +14662,21 @@ L_08A5FAE8: L_08A5FAF0: aot_gpr_31 = (0x08A5FAF8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 963u, 0x08A5FAF8u, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FAF8u) goto L_08A5FAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FAF8: { const bool branch_taken = aot_gpr_2 != ctx.gpr[19]; if (branch_taken) { @@ -8455,8 +14706,21 @@ L_08A5FB1C: L_08A5FB24: aot_gpr_31 = (0x08A5FB2Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 967u, 0x08A5FB2Cu, 0x08A58524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 73u, 0x08A58524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FB2Cu) goto L_08A5FB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FB2C: { const bool branch_taken = aot_gpr_2 != ctx.gpr[30]; if (branch_taken) { @@ -8511,8 +14775,21 @@ L_08A5FB88: L_08A5FB98: aot_gpr_31 = (0x08A5FBA0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 974u, 0x08A5FBA0u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FBA0u) goto L_08A5FBA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FBA0: if (aot_gpr_2 != 0u) { aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(616)))))); @@ -8522,13 +14799,39 @@ L_08A5FBA0: L_08A5FBA8: aot_gpr_31 = (0x08A5FBB0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 976u, 0x08A5FBB0u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FBB0u) goto L_08A5FBB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FBB0: aot_gpr_31 = (0x08A5FBB8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 977u, 0x08A5FBB8u, 0x08A58150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 14u, 0x08A58150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FBB8u) goto L_08A5FBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FBB8: aot_gpr_4 = (15395u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -8542,8 +14845,21 @@ L_08A5FBB8: goto L_08A5FBD8; L_08A5FBD8: aot_gpr_31 = (0x08A5FBE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 979u, 0x08A5FBE0u, 0x08A58084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 6u, 0x08A58084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FBE0u) goto L_08A5FBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FBE0: aot_gpr_4 = (17224u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -8573,15 +14889,41 @@ L_08A5FC00: aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_gpr_31 = (0x08A5FC3Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1700), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 981u, 0x08A5FC3Cu, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FC3Cu) goto L_08A5FC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FC3C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5FC4Cu); ctx.gpr[16] = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 982u, 0x08A5FC4Cu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FC4Cu) goto L_08A5FC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FC4C: aot_gpr_4 = (18076u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[16]); @@ -8603,8 +14945,21 @@ L_08A5FC7C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5FC90u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 984u, 0x08A5FC90u, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FC90u) goto L_08A5FC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FC90: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(616)))))); @@ -8629,15 +14984,41 @@ L_08A5FC98: aot_fpr_12 = aot_fpr_12 + aot_fpr_13; aot_gpr_31 = (0x08A5FCD4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1708), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 986u, 0x08A5FCD4u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FCD4u) goto L_08A5FCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FCD4: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A5FCE4u); ctx.gpr[16] = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 987u, 0x08A5FCE4u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FCE4u) goto L_08A5FCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FCE4: aot_gpr_4 = (17820u << 16u); ctx.fpr[14] = std::bit_cast(ctx.gpr[16]); @@ -8659,8 +15040,21 @@ L_08A5FD14: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5FD28u); ctx.gpr[6] = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 989u, 0x08A5FD28u, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FD28u) goto L_08A5FD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FD28: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(616)))))); goto L_08A5FD2C; @@ -8683,8 +15077,21 @@ L_08A5FD2C: L_08A5FD58: aot_gpr_31 = (0x08A5FD60u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 992u, 0x08A5FD60u, 0x08B4652Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 484u, 0x08B4652Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FD60u) goto L_08A5FD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FD60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -8700,8 +15107,21 @@ L_08A5FD70: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5FD84u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 994u, 0x08A5FD84u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FD84u) goto L_08A5FD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FD84: ctx.gpr[16] = (aot_gpr_29 + static_cast(1712)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8710,14 +15130,40 @@ L_08A5FD84: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5FDA0u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 995u, 0x08A5FDA0u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FDA0u) goto L_08A5FDA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FDA0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5FDACu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 996u, 0x08A5FDACu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FDACu) goto L_08A5FDAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FDAC: ctx.gpr[17] = (aot_gpr_23 + static_cast(128)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8725,14 +15171,40 @@ L_08A5FDAC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5FDC4u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 997u, 0x08A5FDC4u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FDC4u) goto L_08A5FDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FDC4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5FDD0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 998u, 0x08A5FDD0u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FDD0u) goto L_08A5FDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FDD0: ctx.gpr[17] = (aot_gpr_23 + static_cast(144)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8740,14 +15212,40 @@ L_08A5FDD0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5FDE8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 999u, 0x08A5FDE8u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FDE8u) goto L_08A5FDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FDE8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5FDF4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1000u, 0x08A5FDF4u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FDF4u) goto L_08A5FDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FDF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8784,8 +15282,21 @@ L_08A5FE1C: L_08A5FE30: aot_gpr_31 = (0x08A5FE38u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1005u, 0x08A5FE38u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FE38u) goto L_08A5FE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FE38: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8797,13 +15308,39 @@ L_08A5FE38: L_08A5FE44: aot_gpr_31 = (0x08A5FE4Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1007u, 0x08A5FE4Cu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FE4Cu) goto L_08A5FE4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FE4C: aot_gpr_31 = (0x08A5FE54u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1008u, 0x08A5FE54u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FE54u) goto L_08A5FE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FE54: aot_gpr_4 = (15267u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -8818,13 +15355,39 @@ L_08A5FE54: L_08A5FE70: aot_gpr_31 = (0x08A5FE78u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1010u, 0x08A5FE78u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FE78u) goto L_08A5FE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FE78: aot_gpr_31 = (0x08A5FE80u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1011u, 0x08A5FE80u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FE80u) goto L_08A5FE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FE80: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -8836,13 +15399,39 @@ L_08A5FE80: L_08A5FE90: aot_gpr_31 = (0x08A5FE98u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1013u, 0x08A5FE98u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FE98u) goto L_08A5FE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FE98: aot_gpr_31 = (0x08A5FEA0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1014u, 0x08A5FEA0u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FEA0u) goto L_08A5FEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FEA0: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -8858,8 +15447,21 @@ L_08A5FEB0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A5FEC8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1016u, 0x08A5FEC8u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FEC8u) goto L_08A5FEC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FEC8: aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(120), std::bit_cast(aot_fpr_20)); goto L_08A5FECC; @@ -8892,14 +15494,40 @@ L_08A5FEE8: L_08A5FEF8: aot_gpr_31 = (0x08A5FF00u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1021u, 0x08A5FF00u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FF00u) goto L_08A5FF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FF00: aot_gpr_5 = (aot_gpr_23 + static_cast(1040)); aot_gpr_31 = (0x08A5FF0Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1022u, 0x08A5FF0Cu, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FF0Cu) goto L_08A5FF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FF0C: aot_gpr_5 = (16256u << 16u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -8939,8 +15567,21 @@ L_08A5FF50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5FF60u); aot_gpr_5 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1027u, 0x08A5FF60u, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FF60u) goto L_08A5FF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FF60: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (48665u << 16u); @@ -8959,35 +15600,100 @@ L_08A5FF68: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5FF8Cu); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1029u, 0x08A5FF8Cu, 0x08A582A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 34u, 0x08A582A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FF8Cu) goto L_08A5FF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FF8C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08A5FF9Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1030u, 0x08A5FF9Cu, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FF9Cu) goto L_08A5FF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FF9C: ctx.gpr[19] = (aot_gpr_29 + static_cast(1760)); aot_gpr_31 = (0x08A5FFA8u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1031u, 0x08A5FFA8u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FFA8u) goto L_08A5FFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FFA8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A5FFB8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1032u, 0x08A5FFB8u, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FFB8u) goto L_08A5FFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FFB8: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A5FFC8u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1033u, 0x08A5FFC8u, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FFC8u) goto L_08A5FFC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FFC8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1280)))))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); @@ -9007,8 +15713,21 @@ L_08A5FFD8: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A5FFF8u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0150->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0150_entry, 1035u, 0x08A5FFF8u, 0x08A582A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 34u, 0x08A582A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A5FFF8u) goto L_08A5FFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A5FFF8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); diff --git a/profiles/vcs/generated/generated_unit_0151.cpp b/profiles/vcs/generated/generated_unit_0151.cpp index ea55d45..24f2341 100644 --- a/profiles/vcs/generated/generated_unit_0151.cpp +++ b/profiles/vcs/generated/generated_unit_0151.cpp @@ -749,6 +749,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A60000u; + if (local_delta_v813 >= 16344u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -765,33 +789,98 @@ LOCAL_SCHED_BOUNDARY: L_08A60000: aot_gpr_31 = (0x08A60008u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 2u, 0x08A60008u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60008u) goto L_08A60008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60008: ctx.gpr[18] = (aot_gpr_29 + static_cast(1792)); aot_gpr_31 = (0x08A60014u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 3u, 0x08A60014u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60014u) goto L_08A60014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60014: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A60024u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 4u, 0x08A60024u, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60024u) goto L_08A60024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60024: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A60034u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 5u, 0x08A60034u, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60034u) goto L_08A60034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60034: aot_gpr_31 = (0x08A6003Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 6u, 0x08A6003Cu, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6003Cu) goto L_08A6003C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6003C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -821,8 +910,21 @@ L_08A6005C: L_08A60070: aot_gpr_31 = (0x08A60078u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 10u, 0x08A60078u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60078u) goto L_08A60078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60078: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_22)) ? 0x00800000u : 0u); @@ -855,8 +957,21 @@ L_08A600B4: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A600C4u); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(40))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 14u, 0x08A600C4u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A600C4u) goto L_08A600C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A600C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_4 = (15897u << 16u); @@ -880,8 +995,21 @@ L_08A600E8: aot_gpr_5 = (aot_gpr_29 + static_cast(1860)); aot_gpr_31 = (0x08A60108u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1860), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 16u, 0x08A60108u, 0x08A57FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 910u, 0x08A57FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60108u) goto L_08A60108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60108: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -911,8 +1039,21 @@ L_08A6012C: aot_gpr_5 = (aot_gpr_29 + static_cast(1868)); aot_gpr_31 = (0x08A6014Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1868), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 19u, 0x08A6014Cu, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6014Cu) goto L_08A6014C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6014C: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A60150; @@ -923,20 +1064,59 @@ L_08A60150: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1808), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A60168u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 21u, 0x08A60168u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60168u) goto L_08A60168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60168: aot_gpr_31 = (0x08A60170u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 22u, 0x08A60170u, 0x08A58134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 13u, 0x08A58134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60170u) goto L_08A60170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60170: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1812), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(1812)); aot_gpr_31 = (0x08A60180u); aot_gpr_4 = (aot_gpr_29 + static_cast(1808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 23u, 0x08A60180u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60180u) goto L_08A60180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60180: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1072))); ctx.gpr[17] = (aot_gpr_29 + static_cast(1824)); @@ -944,8 +1124,21 @@ L_08A60180: { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A60198u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 24u, 0x08A60198u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60198u) goto L_08A60198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60198: aot_gpr_4 = (16128u << 16u); aot_fpr_22 = std::bit_cast(aot_gpr_4); @@ -955,39 +1148,117 @@ L_08A60198: { const float fs = aot_fpr_13; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A601B8u); { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 25u, 0x08A601B8u, 0x08A582A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 34u, 0x08A582A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A601B8u) goto L_08A601B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A601B8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A601C8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 26u, 0x08A601C8u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A601C8u) goto L_08A601C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A601C8: ctx.gpr[18] = (aot_gpr_29 + static_cast(1840)); aot_gpr_31 = (0x08A601D4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 27u, 0x08A601D4u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A601D4u) goto L_08A601D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A601D4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A601E4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 28u, 0x08A601E4u, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A601E4u) goto L_08A601E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A601E4: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A601F4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 29u, 0x08A601F4u, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A601F4u) goto L_08A601F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A601F4: aot_gpr_31 = (0x08A601FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 30u, 0x08A601FCu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A601FCu) goto L_08A601FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A601FC: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_22; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); @@ -999,34 +1270,99 @@ L_08A601FC: { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A60224u); { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 31u, 0x08A60224u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60224u) goto L_08A60224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60224: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A60234u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 32u, 0x08A60234u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60234u) goto L_08A60234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60234: aot_gpr_31 = (0x08A6023Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 33u, 0x08A6023Cu, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6023Cu) goto L_08A6023C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6023C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A6024Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 34u, 0x08A6024Cu, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6024Cu) goto L_08A6024C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6024C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A6025Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 35u, 0x08A6025Cu, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6025Cu) goto L_08A6025C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6025C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1055,8 +1391,21 @@ L_08A60278: L_08A6028C: aot_gpr_31 = (0x08A60294u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 39u, 0x08A60294u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60294u) goto L_08A60294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60294: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_22)) ? 0x00800000u : 0u); @@ -1089,8 +1438,21 @@ L_08A602D0: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A602E0u); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(44))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 43u, 0x08A602E0u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A602E0u) goto L_08A602E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A602E0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_4 = (15897u << 16u); @@ -1114,8 +1476,21 @@ L_08A60304: aot_gpr_5 = (aot_gpr_29 + static_cast(1932)); aot_gpr_31 = (0x08A60324u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1932), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 45u, 0x08A60324u, 0x08A57FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 910u, 0x08A57FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60324u) goto L_08A60324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60324: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1145,21 +1520,60 @@ L_08A60348: aot_gpr_5 = (aot_gpr_29 + static_cast(1940)); aot_gpr_31 = (0x08A60368u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1940), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 48u, 0x08A60368u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60368u) goto L_08A60368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60368: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A6036C; L_08A6036C: aot_gpr_31 = (0x08A60374u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 50u, 0x08A60374u, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60374u) goto L_08A60374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60374: aot_gpr_31 = (0x08A6037Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 51u, 0x08A6037Cu, 0x08A58134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 13u, 0x08A58134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6037Cu) goto L_08A6037C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6037C: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -1170,8 +1584,21 @@ L_08A6037C: aot_gpr_5 = (aot_gpr_29 + static_cast(1924)); aot_gpr_31 = (0x08A603A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 52u, 0x08A603A0u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A603A0u) goto L_08A603A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A603A0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1072))); ctx.gpr[18] = (aot_gpr_29 + static_cast(1888)); @@ -1179,8 +1606,21 @@ L_08A603A0: { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A603B8u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 53u, 0x08A603B8u, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A603B8u) goto L_08A603B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A603B8: aot_gpr_4 = (16128u << 16u); aot_fpr_22 = std::bit_cast(aot_gpr_4); @@ -1190,39 +1630,117 @@ L_08A603B8: { const float fs = aot_fpr_13; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A603D8u); { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 54u, 0x08A603D8u, 0x08A582A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 34u, 0x08A582A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A603D8u) goto L_08A603D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A603D8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A603E8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 55u, 0x08A603E8u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A603E8u) goto L_08A603E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A603E8: ctx.gpr[19] = (aot_gpr_29 + static_cast(1904)); aot_gpr_31 = (0x08A603F4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 56u, 0x08A603F4u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A603F4u) goto L_08A603F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A603F4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A60404u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 57u, 0x08A60404u, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60404u) goto L_08A60404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60404: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A60414u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 58u, 0x08A60414u, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60414u) goto L_08A60414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60414: aot_gpr_31 = (0x08A6041Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 59u, 0x08A6041Cu, 0x08A583C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 52u, 0x08A583C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6041Cu) goto L_08A6041C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6041C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1924))); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1234,8 +1752,21 @@ L_08A6041C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A60444u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1920), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 60u, 0x08A60444u, 0x08A57FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 907u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 907u, 0x08A57FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60444u) goto L_08A60444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60444: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_22; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); @@ -1248,34 +1779,99 @@ L_08A60444: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A60470u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_22 = std::bit_cast(0x7FC00000u); else aot_fpr_22 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 61u, 0x08A60470u, 0x08A58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 32u, 0x08A58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60470u) goto L_08A60470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60470: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A60480u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 62u, 0x08A60480u, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60480u) goto L_08A60480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60480: aot_gpr_31 = (0x08A60488u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 63u, 0x08A60488u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60488u) goto L_08A60488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60488: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A60498u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 64u, 0x08A60498u, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60498u) goto L_08A60498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60498: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A604A8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 65u, 0x08A604A8u, 0x08A58628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 84u, 0x08A58628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A604A8u) goto L_08A604A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A604A8: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(2132), aot_run_words); @@ -1298,8 +1894,8 @@ L_08A604A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(2208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A604F0: @@ -1338,8 +1934,21 @@ L_08A604F0: L_08A6054C: aot_gpr_31 = (0x08A60554u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 68u, 0x08A60554u, 0x0898D168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 392u, 0x0898D168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60554u) goto L_08A60554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60554: aot_gpr_4 = (15360u << 16u); ctx.fpr[24] = std::bit_cast(aot_gpr_4); @@ -1361,8 +1970,21 @@ L_08A60580: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A6058Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 70u, 0x08A6058Cu, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6058Cu) goto L_08A6058C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6058C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1378,15 +2000,41 @@ L_08A60594: L_08A6059C: aot_gpr_31 = (0x08A605A4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 73u, 0x08A605A4u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A605A4u) goto L_08A605A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A605A4: aot_gpr_5 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08A605B4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 74u, 0x08A605B4u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A605B4u) goto L_08A605B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A605B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(ctx.fpr[26])); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(848))); @@ -1397,8 +2045,21 @@ L_08A605B4: L_08A605C4: aot_gpr_31 = (0x08A605CCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 76u, 0x08A605CCu, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A605CCu) goto L_08A605CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A605CC: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1439,8 +2100,21 @@ L_08A60624: L_08A60638: aot_gpr_31 = (0x08A60640u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 80u, 0x08A60640u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60640u) goto L_08A60640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60640: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1478,8 +2152,21 @@ L_08A60694: L_08A606A0: aot_gpr_31 = (0x08A606A8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 84u, 0x08A606A8u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A606A8u) goto L_08A606A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A606A8: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A606B4u); @@ -1489,8 +2176,21 @@ L_08A606A8: L_08A606B4: aot_gpr_31 = (0x08A606BCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 86u, 0x08A606BCu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A606BCu) goto L_08A606BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A606BC: aot_gpr_4 = (ctx.gpr[19] - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); @@ -1522,8 +2222,21 @@ L_08A606FC: L_08A60704: aot_gpr_31 = (0x08A6070Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 90u, 0x08A6070Cu, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6070Cu) goto L_08A6070C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6070C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (17174u << 16u); @@ -1544,8 +2257,21 @@ L_08A6072C: L_08A60734: aot_gpr_31 = (0x08A6073Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 93u, 0x08A6073Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6073Cu) goto L_08A6073C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6073C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -1564,8 +2290,21 @@ L_08A60754: L_08A6075C: aot_gpr_31 = (0x08A60764u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 96u, 0x08A60764u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60764u) goto L_08A60764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60764: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -1578,8 +2317,21 @@ L_08A60764: L_08A6077C: aot_gpr_31 = (0x08A60784u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 98u, 0x08A60784u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60784u) goto L_08A60784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60784: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -1737,8 +2489,21 @@ L_08A608BC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A608C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 116u, 0x08A608C8u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A608C8u) goto L_08A608C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A608C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_4 & 2048u); @@ -1834,8 +2599,21 @@ L_08A60960: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A60978u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(608), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 128u, 0x08A60978u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60978u) goto L_08A60978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60978: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(604), std::bit_cast(ctx.fpr[26])); aot_gpr_5 = (16015u << 16u); @@ -1855,8 +2633,21 @@ L_08A60990: L_08A60998: aot_gpr_31 = (0x08A609A0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0082. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 131u, 0x08A609A0u, 0x0894CE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0082_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0082_entry, 82u, 221u, 0x0894CE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A609A0u) goto L_08A609A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A609A0: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1899,8 +2690,21 @@ L_08A609C4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A609E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 133u, 0x08A609E8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A609E8u) goto L_08A609E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A609E8: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(52), aot_run_words); @@ -1918,8 +2722,8 @@ L_08A609E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A60A1C: @@ -1928,8 +2732,21 @@ L_08A60A1C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(2640), aot_run_words); } aot_gpr_31 = (0x08A60A68u); aot_gpr_23 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 135u, 0x08A60A68u, 0x08AFEF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 662u, 0x08AFEF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60A68u) goto L_08A60A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60A68: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1504))); aot_gpr_5 = (aot_gpr_23 + static_cast(960)); @@ -2136,8 +2953,21 @@ L_08A60BCC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A60C20u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 142u, 0x08A60C20u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60C20u) goto L_08A60C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60C20: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -2146,8 +2976,21 @@ L_08A60C20: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A60C3Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 143u, 0x08A60C3Cu, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60C3Cu) goto L_08A60C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60C3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1504))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -2159,8 +3002,21 @@ L_08A60C3C: L_08A60C48: aot_gpr_31 = (0x08A60C50u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1214))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 145u, 0x08A60C50u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60C50u) goto L_08A60C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60C50: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[20]; if (branch_taken) { @@ -2171,8 +3027,21 @@ L_08A60C50: L_08A60C58: aot_gpr_31 = (0x08A60C60u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1214))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 147u, 0x08A60C60u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60C60u) goto L_08A60C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60C60: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[19]; if (branch_taken) { @@ -2221,8 +3090,21 @@ L_08A60C68: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A60CC4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 149u, 0x08A60CC4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60CC4u) goto L_08A60CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60CC4: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_22), std::bit_cast(aot_fpr_22), std::bit_cast(ctx.fpr[20])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(416), aot_run_words); } @@ -2265,8 +3147,21 @@ L_08A60CC4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A60D20u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 150u, 0x08A60D20u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60D20u) goto L_08A60D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60D20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2368,8 +3263,21 @@ L_08A60D40: ctx.gpr[7] = (aot_gpr_23 + static_cast(1277)); aot_gpr_31 = (0x08A60DF4u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 154u, 0x08A60DF4u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A60DF4u) goto L_08A60DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A60DF4: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7648))); aot_gpr_5 = (static_cast(aot_gpr_5) < 21 ? 1u : 0u); @@ -2696,8 +3604,21 @@ L_08A61078: L_08A61080: aot_gpr_31 = (0x08A61088u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 192u, 0x08A61088u, 0x08A595C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 312u, 0x08A595C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61088u) goto L_08A61088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61088: ctx.gpr[22] = (aot_gpr_23 + static_cast(48)); { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); @@ -2892,28 +3813,80 @@ L_08A611BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2636), ctx.gpr[19]); aot_gpr_31 = (0x08A611C8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 199u, 0x08A611C8u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A611C8u) goto L_08A611C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A611C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); aot_gpr_31 = (0x08A611D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 200u, 0x08A611D4u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A611D4u) goto L_08A611D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A611D4: ctx.gpr[19] = (aot_gpr_29 + static_cast(768)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2628))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A611E8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 201u, 0x08A611E8u, 0x0885FEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 935u, 0x0885FEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A611E8u) goto L_08A611E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A611E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A611F4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 202u, 0x08A611F4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A611F4u) goto L_08A611F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A611F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(840))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2935,8 +3908,21 @@ L_08A61204: L_08A61210: aot_gpr_31 = (0x08A61218u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(832))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 205u, 0x08A61218u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61218u) goto L_08A61218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61218: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2948,8 +3934,21 @@ L_08A61220: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2628))); aot_gpr_31 = (0x08A6122Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 207u, 0x08A6122Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6122Cu) goto L_08A6122C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6122C: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3093,8 +4092,21 @@ L_08A612FC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A6133Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 212u, 0x08A6133Cu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6133Cu) goto L_08A6133C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6133C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3119,8 +4131,21 @@ L_08A61344: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A61384u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 214u, 0x08A61384u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61384u) goto L_08A61384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61384: { const bool branch_taken = ctx.gpr[30] != 0u; if (branch_taken) { @@ -3170,8 +4195,21 @@ L_08A613A8: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A61418u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 217u, 0x08A61418u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61418u) goto L_08A61418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61418: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(80))); @@ -3209,8 +4247,21 @@ L_08A61420: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A61490u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 219u, 0x08A61490u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61490u) goto L_08A61490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61490: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(80))); @@ -3237,8 +4288,21 @@ L_08A61498: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A614DCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 221u, 0x08A614DCu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A614DCu) goto L_08A614DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A614DC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(80))); @@ -3256,8 +4320,21 @@ L_08A614E4: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A61504u); { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 223u, 0x08A61504u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61504u) goto L_08A61504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61504: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(80))); goto L_08A61508; @@ -3281,8 +4358,21 @@ L_08A61508: } L_08A61538: aot_gpr_31 = (0x08A61540u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 226u, 0x08A61540u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61540u) goto L_08A61540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61540: { const bool branch_taken = aot_gpr_23 == ctx.gpr[2]; if (branch_taken) { @@ -3357,8 +4447,21 @@ L_08A61548: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A615A0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 228u, 0x08A615A0u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A615A0u) goto L_08A615A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A615A0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_23 + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -3544,8 +4647,21 @@ L_08A61680: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A616E4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 237u, 0x08A616E4u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A616E4u) goto L_08A616E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A616E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3572,8 +4688,21 @@ L_08A616EC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A61734u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 239u, 0x08A61734u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61734u) goto L_08A61734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61734: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3588,8 +4717,21 @@ L_08A6173C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08A61754u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 241u, 0x08A61754u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61754u) goto L_08A61754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61754: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3658,8 +4800,21 @@ L_08A61754: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A617B0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 242u, 0x08A617B0u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A617B0u) goto L_08A617B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A617B0: { const bool branch_taken = ctx.gpr[30] != 0u; if (branch_taken) { @@ -3744,8 +4899,21 @@ L_08A6180C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A618A8u); { const float fs = ctx.fpr[26]; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 246u, 0x08A618A8u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A618A8u) goto L_08A618A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A618A8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(644))); aot_gpr_4 = (16640u << 16u); @@ -3778,12 +4946,38 @@ L_08A618A8: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08A61924u); ctx.fpr[17] = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 247u, 0x08A61924u, 0x08A96364u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 338u, 0x08A96364u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61924u) goto L_08A61924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61924: aot_gpr_31 = (0x08A6192Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 248u, 0x08A6192Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6192Cu) goto L_08A6192C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6192C: { const bool branch_taken = aot_gpr_23 != ctx.gpr[2]; if (branch_taken) { @@ -3800,27 +4994,79 @@ L_08A61934: } L_08A6193C: aot_gpr_31 = (0x08A61944u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 251u, 0x08A61944u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61944u) goto L_08A61944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61944: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); aot_gpr_31 = (0x08A61950u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 252u, 0x08A61950u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61950u) goto L_08A61950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61950: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A61960u); { const float fs = ctx.fpr[24]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast(0x7FC00000u); else ctx.fpr[24] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 253u, 0x08A61960u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61960u) goto L_08A61960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61960: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); aot_gpr_31 = (0x08A6196Cu); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 254u, 0x08A6196Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6196Cu) goto L_08A6196C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6196C: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -3875,8 +5121,21 @@ L_08A619A0: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08A619D4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 256u, 0x08A619D4u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A619D4u) goto L_08A619D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A619D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3920,8 +5179,21 @@ L_08A619DC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A61A10u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 258u, 0x08A61A10u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61A10u) goto L_08A61A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61A10: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4014,8 +5286,21 @@ L_08A61A60: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A61AA0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 260u, 0x08A61AA0u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61AA0u) goto L_08A61AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61AA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4052,8 +5337,21 @@ L_08A61AA8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A61AF0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 262u, 0x08A61AF0u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61AF0u) goto L_08A61AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61AF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(744))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4074,8 +5372,21 @@ L_08A61B00: L_08A61B0C: aot_gpr_31 = (0x08A61B14u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(736))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 265u, 0x08A61B14u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61B14u) goto L_08A61B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61B14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4131,8 +5442,21 @@ L_08A61B60: L_08A61B6C: aot_gpr_31 = (0x08A61B74u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 273u, 0x08A61B74u, 0x08A595C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 312u, 0x08A595C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61B74u) goto L_08A61B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61B74: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_23 + static_cast(86)))))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -4374,8 +5698,21 @@ L_08A61C88: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08A61CECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 280u, 0x08A61CECu, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61CECu) goto L_08A61CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61CEC: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4443,8 +5780,21 @@ L_08A61CEC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A61D44u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 281u, 0x08A61D44u, 0x088AB01Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 459u, 0x088AB01Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61D44u) goto L_08A61D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61D44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4461,8 +5811,21 @@ L_08A61D4C: { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A61D6Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 283u, 0x08A61D6Cu, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61D6Cu) goto L_08A61D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61D6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4479,8 +5842,21 @@ L_08A61D74: { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A61D94u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 285u, 0x08A61D94u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61D94u) goto L_08A61D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61D94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2624))); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4758,8 +6134,21 @@ L_08A61EE8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A61FC4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 299u, 0x08A61FC4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A61FC4u) goto L_08A61FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A61FC4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7176))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[26])) ? 0x00800000u : 0u); @@ -4802,8 +6191,21 @@ L_08A61FD8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A6202Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 301u, 0x08A6202Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6202Cu) goto L_08A6202C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6202C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7176))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[24])) ? 0x00800000u : 0u); @@ -4846,8 +6248,21 @@ L_08A62040: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A62094u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 303u, 0x08A62094u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62094u) goto L_08A62094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62094: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1344), std::bit_cast(aot_fpr_12)); @@ -4881,8 +6296,21 @@ L_08A62094: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A620E8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 304u, 0x08A620E8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A620E8u) goto L_08A620E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A620E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4968,8 +6396,21 @@ L_08A62180: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2608))); aot_gpr_31 = (0x08A62190u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 314u, 0x08A62190u, 0x08A5A288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 544u, 0x08A5A288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62190u) goto L_08A62190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62190: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (aot_gpr_4 << 24u); @@ -4990,8 +6431,21 @@ L_08A621B0: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A621BCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 317u, 0x08A621BCu, 0x08A979D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 527u, 0x08A979D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A621BCu) goto L_08A621BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A621BC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); aot_gpr_4 = (0u + static_cast(-2)); @@ -5278,8 +6732,21 @@ L_08A62300: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08A62398u); aot_gpr_5 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 325u, 0x08A62398u, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62398u) goto L_08A62398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62398: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1284))); aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(1292), std::bit_cast(ctx.fpr[0])); @@ -5448,23 +6915,62 @@ L_08A62424: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A624A4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 333u, 0x08A624A4u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A624A4u) goto L_08A624A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A624A4: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1504))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A624B4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 334u, 0x08A624B4u, 0x08A58758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 101u, 0x08A58758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A624B4u) goto L_08A624B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A624B4: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_5 = (aot_gpr_29 + static_cast(192)); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A624C8u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 335u, 0x08A624C8u, 0x08B00C34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 209u, 0x08B00C34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A624C8u) goto L_08A624C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A624C8: aot_mem.aot_direct_store32(aot_gpr_23 + static_cast(1296), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1288))); @@ -5476,8 +6982,21 @@ L_08A624D8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2628))); aot_gpr_31 = (0x08A624E8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 337u, 0x08A624E8u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A624E8u) goto L_08A624E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A624E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1544))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5489,50 +7008,154 @@ L_08A624E8: L_08A624F4: aot_gpr_31 = (0x08A624FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1544))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 339u, 0x08A624FCu, 0x08A57E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 892u, 0x08A57E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A624FCu) goto L_08A624FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A624FC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A6250Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 340u, 0x08A6250Cu, 0x08A581B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 18u, 0x08A581B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6250Cu) goto L_08A6250C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6250C: aot_gpr_31 = (0x08A62514u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 341u, 0x08A62514u, 0x08A582ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 35u, 0x08A582ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62514u) goto L_08A62514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62514: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A62520u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 342u, 0x08A62520u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62520u) goto L_08A62520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62520: ctx.gpr[16] = (aot_gpr_29 + static_cast(1408)); aot_gpr_31 = (0x08A6252Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 343u, 0x08A6252Cu, 0x08A58194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 17u, 0x08A58194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6252Cu) goto L_08A6252C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6252C: aot_gpr_4 = (aot_gpr_29 + static_cast(1488)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1472), aot_gpr_4); aot_gpr_31 = (0x08A6253Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 344u, 0x08A6253Cu, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6253Cu) goto L_08A6253C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6253C: aot_gpr_31 = (0x08A62544u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 345u, 0x08A62544u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62544u) goto L_08A62544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62544: ctx.gpr[22] = (aot_gpr_29 + static_cast(1568)); aot_gpr_31 = (0x08A62550u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 346u, 0x08A62550u, 0x08A58774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 104u, 0x08A58774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62550u) goto L_08A62550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62550: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -5542,33 +7165,98 @@ L_08A62550: ctx.fpr[26] = std::bit_cast(aot_gpr_4); aot_fpr_12 = aot_fpr_12 / ctx.fpr[26]; aot_gpr_31 = (0x08A62574u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 347u, 0x08A62574u, 0x08A5800Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 2u, 0x08A5800Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62574u) goto L_08A62574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62574: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A62580u); ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 348u, 0x08A62580u, 0x08A58774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 104u, 0x08A58774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62580u) goto L_08A62580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62580: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 / ctx.fpr[26]; aot_gpr_31 = (0x08A62590u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 349u, 0x08A62590u, 0x08A58030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 3u, 0x08A58030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62590u) goto L_08A62590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62590: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08A625A4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 350u, 0x08A625A4u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A625A4u) goto L_08A625A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A625A4: aot_gpr_31 = (0x08A625ACu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 351u, 0x08A625ACu, 0x08A5810Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 12u, 0x08A5810Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A625ACu) goto L_08A625AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A625AC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1512))); ctx.gpr[17] = (aot_gpr_29 + static_cast(1552)); @@ -5576,47 +7264,151 @@ L_08A625AC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A625C4u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 352u, 0x08A625C4u, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A625C4u) goto L_08A625C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A625C4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1472))); aot_gpr_31 = (0x08A625D0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 353u, 0x08A625D0u, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A625D0u) goto L_08A625D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A625D0: aot_gpr_31 = (0x08A625D8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 354u, 0x08A625D8u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A625D8u) goto L_08A625D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A625D8: aot_gpr_31 = (0x08A625E0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 355u, 0x08A625E0u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A625E0u) goto L_08A625E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A625E0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A625ECu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 356u, 0x08A625ECu, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A625ECu) goto L_08A625EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A625EC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A625F8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 357u, 0x08A625F8u, 0x08A582D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 38u, 0x08A582D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A625F8u) goto L_08A625F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A625F8: aot_gpr_31 = (0x08A62600u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 358u, 0x08A62600u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62600u) goto L_08A62600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62600: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A6260Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 359u, 0x08A6260Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6260Cu) goto L_08A6260C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6260C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1564))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5628,31 +7420,96 @@ L_08A6260C: L_08A62618: aot_gpr_31 = (0x08A62620u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1564))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 361u, 0x08A62620u, 0x08A57E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 892u, 0x08A57E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62620u) goto L_08A62620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62620: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A62630u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 362u, 0x08A62630u, 0x08A581B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 18u, 0x08A581B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62630u) goto L_08A62630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62630: aot_gpr_31 = (0x08A62638u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 363u, 0x08A62638u, 0x08A582ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 35u, 0x08A582ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62638u) goto L_08A62638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62638: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A62644u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 364u, 0x08A62644u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62644u) goto L_08A62644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62644: aot_gpr_31 = (0x08A6264Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 365u, 0x08A6264Cu, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6264Cu) goto L_08A6264C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6264C: aot_gpr_4 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -5664,8 +7521,21 @@ L_08A6264C: L_08A62658: aot_gpr_31 = (0x08A62660u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 367u, 0x08A62660u, 0x08A583ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 56u, 0x08A583ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62660u) goto L_08A62660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62660: aot_gpr_4 = (0u | 5u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -5677,20 +7547,59 @@ L_08A62660: L_08A6266C: aot_gpr_31 = (0x08A62674u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 369u, 0x08A62674u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62674u) goto L_08A62674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62674: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A62680u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 370u, 0x08A62680u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62680u) goto L_08A62680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62680: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A6268Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 371u, 0x08A6268Cu, 0x08A582D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 38u, 0x08A582D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6268Cu) goto L_08A6268C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6268C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5702,19 +7611,58 @@ L_08A62694: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A626A0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 373u, 0x08A626A0u, 0x08A582B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 36u, 0x08A582B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A626A0u) goto L_08A626A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A626A0: aot_gpr_31 = (0x08A626A8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 374u, 0x08A626A8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A626A8u) goto L_08A626A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A626A8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A626B4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 375u, 0x08A626B4u, 0x08A5822Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 24u, 0x08A5822Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A626B4u) goto L_08A626B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A626B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1548))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5730,74 +7678,230 @@ L_08A626C0: aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x08A626DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 377u, 0x08A626DCu, 0x08A58054u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 4u, 0x08A58054u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A626DCu) goto L_08A626DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A626DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1548))); aot_gpr_31 = (0x08A626E8u); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 378u, 0x08A626E8u, 0x08A57E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 892u, 0x08A57E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A626E8u) goto L_08A626E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A626E8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A626F8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 379u, 0x08A626F8u, 0x08A581B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 18u, 0x08A581B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A626F8u) goto L_08A626F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A626F8: aot_gpr_31 = (0x08A62700u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 380u, 0x08A62700u, 0x08A582ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 35u, 0x08A582ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62700u) goto L_08A62700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62700: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A6270Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 381u, 0x08A6270Cu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6270Cu) goto L_08A6270C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6270C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08A62720u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 382u, 0x08A62720u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62720u) goto L_08A62720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62720: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A6272Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 383u, 0x08A6272Cu, 0x08A582D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 38u, 0x08A582D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6272Cu) goto L_08A6272C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6272C: aot_gpr_31 = (0x08A62734u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 384u, 0x08A62734u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62734u) goto L_08A62734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62734: aot_gpr_31 = (0x08A6273Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1552))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 385u, 0x08A6273Cu, 0x08A57E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 892u, 0x08A57E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6273Cu) goto L_08A6273C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6273C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A6274Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 386u, 0x08A6274Cu, 0x08A581B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 18u, 0x08A581B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6274Cu) goto L_08A6274C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6274C: aot_gpr_31 = (0x08A62754u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 387u, 0x08A62754u, 0x08A582ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 35u, 0x08A582ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62754u) goto L_08A62754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62754: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A62760u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 388u, 0x08A62760u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62760u) goto L_08A62760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62760: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1300))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1364))); @@ -5829,8 +7933,21 @@ L_08A627B4: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1284))); aot_gpr_31 = (0x08A627C0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 390u, 0x08A627C0u, 0x08A5800Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 2u, 0x08A5800Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A627C0u) goto L_08A627C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A627C0: aot_gpr_4 = (15692u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -5840,8 +7957,21 @@ L_08A627C0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A627E0u); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 391u, 0x08A627E0u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A627E0u) goto L_08A627E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A627E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5853,8 +7983,21 @@ L_08A627E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1284))); aot_gpr_31 = (0x08A627F4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 393u, 0x08A627F4u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A627F4u) goto L_08A627F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A627F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16156))); aot_gpr_4 = (16256u << 16u); @@ -5872,41 +8015,132 @@ L_08A62810: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A62824u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 395u, 0x08A62824u, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62824u) goto L_08A62824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62824: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A62830u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 396u, 0x08A62830u, 0x08A582D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 38u, 0x08A582D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62830u) goto L_08A62830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62830: aot_gpr_31 = (0x08A62838u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 397u, 0x08A62838u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62838u) goto L_08A62838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62838: aot_gpr_31 = (0x08A62840u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1560))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 398u, 0x08A62840u, 0x08A57E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 892u, 0x08A57E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62840u) goto L_08A62840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62840: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A62850u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 399u, 0x08A62850u, 0x08A581B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 18u, 0x08A581B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62850u) goto L_08A62850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62850: aot_gpr_31 = (0x08A62858u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 400u, 0x08A62858u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62858u) goto L_08A62858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62858: aot_gpr_31 = (0x08A62860u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 401u, 0x08A62860u, 0x08A584FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 68u, 0x08A584FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62860u) goto L_08A62860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62860: aot_gpr_4 = (0u | 212u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -5934,31 +8168,96 @@ L_08A6288C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08A628ACu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 404u, 0x08A628ACu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A628ACu) goto L_08A628AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A628AC: aot_gpr_31 = (0x08A628B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1556))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 405u, 0x08A628B4u, 0x08A57E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 892u, 0x08A57E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A628B4u) goto L_08A628B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A628B4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A628C4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 406u, 0x08A628C4u, 0x08A581B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 18u, 0x08A581B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A628C4u) goto L_08A628C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A628C4: aot_gpr_31 = (0x08A628CCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 407u, 0x08A628CCu, 0x08A582ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 35u, 0x08A582ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A628CCu) goto L_08A628CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A628CC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A628D8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 408u, 0x08A628D8u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A628D8u) goto L_08A628D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A628D8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(1077))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -5971,8 +8270,21 @@ L_08A628E4: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1288))); aot_gpr_31 = (0x08A628F0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 410u, 0x08A628F0u, 0x08A5800Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 2u, 0x08A5800Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A628F0u) goto L_08A628F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A628F0: aot_gpr_4 = (15759u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -5982,8 +8294,21 @@ L_08A628F0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A62910u); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 411u, 0x08A62910u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62910u) goto L_08A62910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62910: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5995,8 +8320,21 @@ L_08A62918: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1288))); aot_gpr_31 = (0x08A62924u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 413u, 0x08A62924u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62924u) goto L_08A62924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62924: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16156))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[24])) && aot_fpr_12 == ctx.fpr[24])) ? 0x00800000u : 0u); @@ -6012,19 +8350,58 @@ L_08A62938: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A6294Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 415u, 0x08A6294Cu, 0x0886004Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 3u, 0x0886004Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6294Cu) goto L_08A6294C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6294C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A62958u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 416u, 0x08A62958u, 0x08A582D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 38u, 0x08A582D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62958u) goto L_08A62958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62958: aot_gpr_31 = (0x08A62960u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 417u, 0x08A62960u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62960u) goto L_08A62960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62960: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1540))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6036,31 +8413,96 @@ L_08A62960: L_08A6296C: aot_gpr_31 = (0x08A62974u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1540))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 419u, 0x08A62974u, 0x08A57E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 892u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 892u, 0x08A57E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62974u) goto L_08A62974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62974: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A62984u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 420u, 0x08A62984u, 0x08A581B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 18u, 0x08A581B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62984u) goto L_08A62984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62984: aot_gpr_31 = (0x08A6298Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 421u, 0x08A6298Cu, 0x08A582ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 35u, 0x08A582ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6298Cu) goto L_08A6298C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6298C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A62998u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 422u, 0x08A62998u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62998u) goto L_08A62998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62998: aot_gpr_31 = (0x08A629A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 423u, 0x08A629A0u, 0x08A5832Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 44u, 0x08A5832Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A629A0u) goto L_08A629A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A629A0: aot_gpr_4 = (16230u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); @@ -6069,16 +8511,42 @@ L_08A629A0: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } aot_gpr_31 = (0x08A629BCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1516))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 424u, 0x08A629BCu, 0x08A58030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 3u, 0x08A58030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A629BCu) goto L_08A629BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A629BC: ctx.fpr[15] = ctx.fpr[24] - ctx.fpr[0]; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1516))); { const float fs = ctx.fpr[20]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } aot_gpr_31 = (0x08A629D0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 425u, 0x08A629D0u, 0x08A580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 8u, 0x08A580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A629D0u) goto L_08A629D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A629D0: aot_gpr_4 = (48460u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6086,25 +8554,77 @@ L_08A629D0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A629E8u); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 426u, 0x08A629E8u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A629E8u) goto L_08A629E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A629E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(1516))); aot_gpr_31 = (0x08A629F4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 427u, 0x08A629F4u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A629F4u) goto L_08A629F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A629F4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A62A00u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 428u, 0x08A62A00u, 0x08A582D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 38u, 0x08A582D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A00u) goto L_08A62A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A00: aot_gpr_31 = (0x08A62A08u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 429u, 0x08A62A08u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A08u) goto L_08A62A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A08: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_23 + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -6118,8 +8638,21 @@ L_08A62A18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); aot_gpr_31 = (0x08A62A24u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 431u, 0x08A62A24u, 0x08A58700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 91u, 0x08A58700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A24u) goto L_08A62A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A24: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6132,20 +8665,59 @@ L_08A62A2C: aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A62A3Cu); ctx.fpr[26] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 433u, 0x08A62A3Cu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A3Cu) goto L_08A62A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A3C: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A62A48u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 434u, 0x08A62A48u, 0x08A5829Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 33u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 33u, 0x08A5829Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A48u) goto L_08A62A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A48: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A62A54u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 435u, 0x08A62A54u, 0x08A57F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 900u, 0x08A57F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A54u) goto L_08A62A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A54: aot_gpr_4 = (15286u << 16u); aot_gpr_4 = (aot_gpr_4 | 2922u); @@ -6161,40 +8733,118 @@ L_08A62A54: L_08A62A74: aot_gpr_31 = (0x08A62A7Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 437u, 0x08A62A7Cu, 0x08A584FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 68u, 0x08A584FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A7Cu) goto L_08A62A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A7C: aot_gpr_31 = (0x08A62A84u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 438u, 0x08A62A84u, 0x08A58304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 41u, 0x08A58304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A84u) goto L_08A62A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A84: ctx.gpr[16] = (aot_gpr_29 + static_cast(1600)); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A62A94u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 439u, 0x08A62A94u, 0x08A5877Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 105u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 105u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 105u, 0x08A5877Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62A94u) goto L_08A62A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62A94: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A62AA0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 440u, 0x08A62AA0u, 0x08A580FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 11u, 0x08A580FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62AA0u) goto L_08A62AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62AA0: aot_gpr_4 = (aot_gpr_29 + static_cast(1584)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08A62AB4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 441u, 0x08A62AB4u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62AB4u) goto L_08A62AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62AB4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A62AC0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 442u, 0x08A62AC0u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62AC0u) goto L_08A62AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62AC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6217,29 +8867,81 @@ L_08A62AC8: L_08A62AE4: aot_gpr_31 = (0x08A62AECu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(600))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 445u, 0x08A62AECu, 0x08A5800Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 2u, 0x08A5800Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62AECu) goto L_08A62AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62AEC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(600))); aot_gpr_31 = (0x08A62AF8u); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 446u, 0x08A62AF8u, 0x08A58030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 3u, 0x08A58030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62AF8u) goto L_08A62AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62AF8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20]) ^ 0x80000000u); aot_gpr_4 = (aot_gpr_29 + static_cast(1680)); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A62B0Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 447u, 0x08A62B0Cu, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62B0Cu) goto L_08A62B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62B0C: aot_gpr_4 = (aot_gpr_29 + static_cast(1696)); aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A62B1Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 448u, 0x08A62B1Cu, 0x08A57E9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 897u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 897u, 0x08A57E9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62B1Cu) goto L_08A62B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62B1C: aot_gpr_4 = (48501u << 16u); aot_gpr_4 = (aot_gpr_4 | 49807u); @@ -6248,8 +8950,21 @@ L_08A62B1C: aot_gpr_4 = (aot_gpr_4 | 49807u); aot_gpr_31 = (0x08A62B38u); aot_fpr_13 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 449u, 0x08A62B38u, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62B38u) goto L_08A62B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62B38: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1696))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1700))); @@ -6266,15 +8981,41 @@ L_08A62B38: L_08A62B54: aot_gpr_31 = (0x08A62B5Cu); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 451u, 0x08A62B5Cu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62B5Cu) goto L_08A62B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62B5C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A62B6Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1632), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 452u, 0x08A62B6Cu, 0x08A585E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 79u, 0x08A585E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62B6Cu) goto L_08A62B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62B6C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1636), std::bit_cast(aot_fpr_12)); @@ -6286,20 +9027,59 @@ L_08A62B74: aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A62B8Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 454u, 0x08A62B8Cu, 0x08A57EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 899u, 0x08A57EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62B8Cu) goto L_08A62B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62B8C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A62B98u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 455u, 0x08A62B98u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62B98u) goto L_08A62B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62B98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_23 + static_cast(352))); aot_gpr_31 = (0x08A62BA4u); aot_gpr_5 = (0u | 8192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 456u, 0x08A62BA4u, 0x08A58700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 91u, 0x08A58700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62BA4u) goto L_08A62BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62BA4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6313,8 +9093,21 @@ L_08A62BAC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A62BC0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 458u, 0x08A62BC0u, 0x08A580FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 11u, 0x08A580FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62BC0u) goto L_08A62BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62BC0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1728))); ctx.gpr[16] = (aot_gpr_29 + static_cast(1712)); @@ -6324,27 +9117,79 @@ L_08A62BC0: aot_gpr_5 = (aot_gpr_23 | 0u); aot_gpr_31 = (0x08A62BE0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 459u, 0x08A62BE0u, 0x08A57EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 899u, 0x08A57EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62BE0u) goto L_08A62BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62BE0: aot_gpr_4 = (aot_gpr_29 + static_cast(1664)); aot_gpr_31 = (0x08A62BECu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 460u, 0x08A62BECu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62BECu) goto L_08A62BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62BEC: aot_gpr_4 = (16448u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A62BFCu); aot_fpr_13 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 461u, 0x08A62BFCu, 0x08A5852Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 74u, 0x08A5852Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62BFCu) goto L_08A62BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62BFC: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A62C08u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 462u, 0x08A62C08u, 0x08A587D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 114u, 0x08A587D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62C08u) goto L_08A62C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62C08: aot_gpr_4 = (16268u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6371,8 +9216,21 @@ L_08A62C30: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A62C5Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 464u, 0x08A62C5Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62C5Cu) goto L_08A62C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62C5C: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -6391,13 +9249,39 @@ L_08A62C64: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A62C8Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 466u, 0x08A62C8Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62C8Cu) goto L_08A62C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62C8C: aot_gpr_31 = (0x08A62C94u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 467u, 0x08A62C94u, 0x08A584FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 68u, 0x08A584FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62C94u) goto L_08A62C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62C94: aot_gpr_4 = (0u | 191u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -6429,14 +9313,40 @@ L_08A62CB0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A62CDCu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 470u, 0x08A62CDCu, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62CDCu) goto L_08A62CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62CDC: aot_gpr_4 = (aot_gpr_29 + static_cast(1792)); aot_gpr_31 = (0x08A62CE8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 471u, 0x08A62CE8u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62CE8u) goto L_08A62CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62CE8: aot_gpr_5 = (15983u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -6445,14 +9355,40 @@ L_08A62CE8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A62D04u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 472u, 0x08A62D04u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62D04u) goto L_08A62D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62D04: aot_gpr_4 = (aot_gpr_29 + static_cast(1808)); aot_gpr_31 = (0x08A62D10u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 473u, 0x08A62D10u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62D10u) goto L_08A62D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62D10: aot_gpr_4 = (16030u << 16u); aot_gpr_4 = (aot_gpr_4 | 47186u); @@ -6465,14 +9401,40 @@ L_08A62D10: aot_fpr_14 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A62D3Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 474u, 0x08A62D3Cu, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62D3Cu) goto L_08A62D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62D3C: aot_gpr_4 = (aot_gpr_29 + static_cast(1824)); aot_gpr_31 = (0x08A62D48u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 475u, 0x08A62D48u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62D48u) goto L_08A62D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62D48: aot_gpr_5 = (49073u << 16u); aot_gpr_5 = (aot_gpr_5 | 26739u); @@ -6487,14 +9449,40 @@ L_08A62D48: aot_gpr_5 = (aot_gpr_5 | 52429u); aot_gpr_31 = (0x08A62D7Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 476u, 0x08A62D7Cu, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62D7Cu) goto L_08A62D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62D7C: aot_gpr_4 = (aot_gpr_29 + static_cast(1840)); aot_gpr_31 = (0x08A62D88u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 477u, 0x08A62D88u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62D88u) goto L_08A62D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62D88: aot_gpr_5 = (16009u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -6503,14 +9491,40 @@ L_08A62D88: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A62DA4u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 478u, 0x08A62DA4u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62DA4u) goto L_08A62DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62DA4: aot_gpr_4 = (aot_gpr_29 + static_cast(1856)); aot_gpr_31 = (0x08A62DB0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 479u, 0x08A62DB0u, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62DB0u) goto L_08A62DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62DB0: ctx.gpr[30] = (0u | 255u); aot_gpr_4 = (0u | 0u); @@ -6523,8 +9537,21 @@ L_08A62DB0: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(2613), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A62DDCu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(2612), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 480u, 0x08A62DDCu, 0x08A5834Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 47u, 0x08A5834Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62DDCu) goto L_08A62DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62DDC: aot_gpr_6 = (16076u << 16u); aot_gpr_6 = (aot_gpr_6 | 52429u); @@ -6719,43 +9746,121 @@ L_08A62F90: ctx.gpr[19] = (aot_gpr_29 + static_cast(1872)); aot_gpr_31 = (0x08A62FA0u); aot_gpr_4 = (aot_gpr_23 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 500u, 0x08A62FA0u, 0x08A582FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 40u, 0x08A582FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62FA0u) goto L_08A62FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62FA0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A62FACu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 501u, 0x08A62FACu, 0x08A580FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 11u, 0x08A580FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62FACu) goto L_08A62FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62FAC: ctx.gpr[20] = (aot_gpr_29 + static_cast(1760)); aot_gpr_31 = (0x08A62FB8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 502u, 0x08A62FB8u, 0x08A582A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 34u, 0x08A582A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62FB8u) goto L_08A62FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62FB8: aot_gpr_6 = (16384u << 16u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08A62FCCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 503u, 0x08A62FCCu, 0x08A57F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 904u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 904u, 0x08A57F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62FCCu) goto L_08A62FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62FCC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A62FDCu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 504u, 0x08A62FDCu, 0x08A57F34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 902u, 0x08A57F34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62FDCu) goto L_08A62FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62FDC: aot_gpr_4 = (aot_gpr_29 + static_cast(1776)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08A62FF0u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 505u, 0x08A62FF0u, 0x08A580C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 9u, 0x08A580C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A62FF0u) goto L_08A62FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A62FF0: aot_fpr_14 = std::bit_cast(ctx.gpr[17]); ctx.gpr[9] = (16704u << 16u); @@ -6770,8 +9875,21 @@ L_08A62FF0: ctx.fpr[15] = ctx.fpr[30] / aot_fpr_22; aot_gpr_31 = (0x08A63024u); aot_fpr_12 = std::bit_cast(ctx.gpr[9]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 506u, 0x08A63024u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63024u) goto L_08A63024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63024: ctx.gpr[17] = (0u | 0u); ctx.gpr[22] = (aot_gpr_29 + static_cast(1888)); @@ -6796,27 +9914,79 @@ L_08A63050: aot_gpr_6 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x08A63060u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 509u, 0x08A63060u, 0x0885FEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 935u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 935u, 0x0885FEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63060u) goto L_08A63060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63060: aot_gpr_6 = (ctx.gpr[16] + static_cast(1792)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A63070u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 510u, 0x08A63070u, 0x08A57EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 899u, 0x08A57EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63070u) goto L_08A63070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63070: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A6307Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 511u, 0x08A6307Cu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6307Cu) goto L_08A6307C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6307C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A63088u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 512u, 0x08A63088u, 0x08A5822Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 24u, 0x08A5822Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63088u) goto L_08A63088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63088: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6829,18 +9999,57 @@ L_08A63090: aot_gpr_6 = (ctx.gpr[16] + static_cast(1792)); aot_gpr_31 = (0x08A630A0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 514u, 0x08A630A0u, 0x08A57EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 899u, 0x08A57EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A630A0u) goto L_08A630A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A630A0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A630ACu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 515u, 0x08A630ACu, 0x08A58168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 15u, 0x08A58168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A630ACu) goto L_08A630AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A630AC: aot_gpr_31 = (0x08A630B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 516u, 0x08A630B4u, 0x08A5834Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 47u, 0x08A5834Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A630B4u) goto L_08A630B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A630B4: aot_gpr_4 = (ctx.gpr[17] << 6u); aot_gpr_4 = (ctx.gpr[2] + aot_gpr_4); @@ -6892,8 +10101,21 @@ L_08A630E4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A63128u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 521u, 0x08A63128u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63128u) goto L_08A63128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63128: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6927,8 +10149,21 @@ L_08A63140: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A63184u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 524u, 0x08A63184u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63184u) goto L_08A63184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63184: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6942,8 +10177,21 @@ L_08A6318C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A631A0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 526u, 0x08A631A0u, 0x08981398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 313u, 0x08981398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A631A0u) goto L_08A631A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A631A0: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (ctx.gpr[17] & 255u); @@ -6961,14 +10209,40 @@ L_08A631B4: L_08A631BC: aot_gpr_31 = (0x08A631C4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 529u, 0x08A631C4u, 0x08A5822Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 24u, 0x08A5822Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A631C4u) goto L_08A631C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A631C4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A631D0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 530u, 0x08A631D0u, 0x08A5822Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 24u, 0x08A5822Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A631D0u) goto L_08A631D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A631D0: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(2640), aot_run_words); @@ -6991,8 +10265,8 @@ L_08A631D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(2704)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A63218: @@ -7001,8 +10275,21 @@ L_08A63218: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(496), aot_run_words); } aot_gpr_31 = (0x08A63240u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 532u, 0x08A63240u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63240u) goto L_08A63240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63240: { const bool branch_taken = ctx.gpr[16] != ctx.gpr[2]; aot_gpr_4 = (2236u << 16u); @@ -7014,8 +10301,21 @@ L_08A63240: L_08A63248: aot_gpr_31 = (0x08A63250u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 534u, 0x08A63250u, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63250u) goto L_08A63250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63250: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7025,8 +10325,21 @@ L_08A63250: } L_08A63258: aot_gpr_31 = (0x08A63260u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 536u, 0x08A63260u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63260u) goto L_08A63260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63260: if (ctx.gpr[16] != ctx.gpr[2]) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(76))); @@ -7179,8 +10492,21 @@ L_08A63340: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A63370u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 550u, 0x08A63370u, 0x08A57EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 899u, 0x08A57EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63370u) goto L_08A63370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63370: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7197,8 +10523,21 @@ L_08A63370: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A63380u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 551u, 0x08A63380u, 0x08A595C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 312u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 312u, 0x08A595C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63380u) goto L_08A63380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63380: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(636))); aot_gpr_4 = (17274u << 16u); @@ -7308,8 +10647,21 @@ L_08A633B8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A63440u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 554u, 0x08A63440u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63440u) goto L_08A63440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63440: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7412,8 +10764,21 @@ L_08A634AC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A63508u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 559u, 0x08A63508u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63508u) goto L_08A63508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63508: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -7500,8 +10865,21 @@ L_08A63508: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A6358Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 560u, 0x08A6358Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6358Cu) goto L_08A6358C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6358C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7602,8 +10980,21 @@ L_08A635F4: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A63654u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 565u, 0x08A63654u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63654u) goto L_08A63654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63654: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7733,8 +11124,21 @@ L_08A636F8: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08A63718u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 581u, 0x08A63718u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63718u) goto L_08A63718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63718: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -7821,8 +11225,21 @@ L_08A6373C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A637A4u); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 586u, 0x08A637A4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A637A4u) goto L_08A637A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A637A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7932,8 +11349,21 @@ L_08A637CC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A6385Cu); ctx.gpr[11] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 589u, 0x08A6385Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6385Cu) goto L_08A6385C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6385C: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(496), aot_run_words); @@ -7947,8 +11377,8 @@ L_08A6385C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A63880: @@ -8030,8 +11460,21 @@ L_08A638F8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A6391Cu); aot_gpr_6 = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 599u, 0x08A6391Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6391Cu) goto L_08A6391C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6391C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_5 = (0u | 32u); @@ -8050,8 +11493,21 @@ L_08A63930: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08A6394Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 601u, 0x08A6394Cu, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6394Cu) goto L_08A6394C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6394C: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -8095,8 +11551,21 @@ L_08A63960: } aot_gpr_31 = (0x08A6399Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 604u, 0x08A6399Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6399Cu) goto L_08A6399C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6399C: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5848))); aot_gpr_31 = (0x08A639A8u); @@ -8140,8 +11609,21 @@ L_08A639A8: } aot_gpr_31 = (0x08A639F4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 606u, 0x08A639F4u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A639F4u) goto L_08A639F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A639F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8264,8 +11746,21 @@ L_08A63ACC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A63AE4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 619u, 0x08A63AE4u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63AE4u) goto L_08A63AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63AE4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A63AF0u); @@ -8292,8 +11787,21 @@ L_08A63B04: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A63B1Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 623u, 0x08A63B1Cu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63B1Cu) goto L_08A63B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63B1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8340,8 +11848,21 @@ L_08A63B24: } aot_gpr_31 = (0x08A63B78u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 625u, 0x08A63B78u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63B78u) goto L_08A63B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63B78: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -8354,8 +11875,8 @@ L_08A63B78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A63B98: @@ -8506,8 +12027,21 @@ L_08A63CB0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A63CBCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 639u, 0x08A63CBCu, 0x08A57EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 899u, 0x08A57EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63CBCu) goto L_08A63CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63CBC: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8527,8 +12061,21 @@ L_08A63CBC: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A63CD8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 640u, 0x08A63CD8u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63CD8u) goto L_08A63CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63CD8: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8781,8 +12328,21 @@ L_08A63D70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A63E0Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_23); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 648u, 0x08A63E0Cu, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63E0Cu) goto L_08A63E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63E0C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8816,8 +12376,21 @@ L_08A63E14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08A63E4Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_23); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 650u, 0x08A63E4Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63E4Cu) goto L_08A63E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63E4C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8842,8 +12415,21 @@ L_08A63E54: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A63E94u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_23); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 652u, 0x08A63E94u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63E94u) goto L_08A63E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63E94: { const bool branch_taken = ctx.gpr[2] != 0u; aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); @@ -8933,8 +12519,21 @@ L_08A63F00: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A63F38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_23); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 662u, 0x08A63F38u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63F38u) goto L_08A63F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63F38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8969,8 +12568,21 @@ L_08A63F54: aot_gpr_4 = (aot_gpr_29 + static_cast(196)); aot_gpr_31 = (0x08A63F6Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0151->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0151_entry, 666u, 0x08A63F6Cu, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A63F6Cu) goto L_08A63F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A63F6C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_22) || std::isnan(ctx.fpr[20])) && aot_fpr_22 == ctx.fpr[20])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -9017,8 +12629,8 @@ L_08A63F9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A63FD4: diff --git a/profiles/vcs/generated/generated_unit_0152.cpp b/profiles/vcs/generated/generated_unit_0152.cpp index 6100911..bad817f 100644 --- a/profiles/vcs/generated/generated_unit_0152.cpp +++ b/profiles/vcs/generated/generated_unit_0152.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0152[64] = { 456u, 477u, 498u, 513u, 526u, 531u, 536u, 541u, 545u, 555u, 559u, 572u, 587u, 601u, 611u, 616u, 621u, 634u, 643u, 654u, 667u, 685u, 694u, 704u, 709u, 714u, 720u, 725u, 739u, 752u, 755u, 756u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0152[4093] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 4u, 0u, 0u, 0u, 0u, 0u, + 5u, 0u, 0u, 6u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 11u, 0u, 0u, 12u, 0u, 0u, + 13u, 0u, 0u, 14u, 0u, 0u, 0u, 15u, 16u, 0u, 0u, 17u, 0u, 0u, 18u, 0u, 0u, 0u, 19u, 0u, 0u, 20u, 0u, 0u, 21u, 22u, 0u, 23u, 0u, 0u, 24u, 25u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 27u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, + 0u, 30u, 0u, 0u, 31u, 0u, 32u, 0u, 33u, 0u, 34u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 37u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 38u, 0u, 0u, + 0u, 39u, 0u, 40u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 43u, 0u, 44u, 45u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, + 0u, 0u, 48u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 51u, 0u, 0u, 0u, 0u, 0u, 0u, 52u, 0u, 53u, 0u, 0u, 0u, 0u, 0u, 0u, 54u, + 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 0u, 56u, 0u, 0u, 57u, 0u, 58u, 0u, 59u, 0u, 60u, 0u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 63u, + 0u, 0u, 0u, 0u, 64u, 0u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 67u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 69u, 0u, 70u, 0u, 0u, 0u, + 0u, 71u, 0u, 0u, 0u, 0u, 72u, 0u, 0u, 73u, 0u, 74u, 75u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 79u, 0u, 0u, + 80u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 84u, 0u, 85u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 88u, + 0u, 89u, 0u, 0u, 0u, 0u, 90u, 0u, 0u, 91u, 0u, 92u, 0u, 93u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 95u, 0u, 96u, 0u, 0u, 0u, 0u, 97u, 0u, 0u, 98u, + 0u, 99u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 100u, 101u, 0u, 102u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 104u, 0u, 105u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 106u, 107u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 108u, 109u, 0u, 0u, 0u, 110u, 0u, 111u, 0u, 0u, 0u, 112u, 113u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 114u, 0u, 115u, 0u, 116u, 0u, 117u, 0u, 0u, 0u, 0u, 118u, + 0u, 0u, 0u, 0u, 0u, 0u, 119u, 0u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 0u, 123u, 0u, 0u, 0u, 0u, + 124u, 0u, 0u, 0u, 0u, 125u, 126u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, 0u, 130u, 0u, 0u, + 0u, 0u, 131u, 0u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 133u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 0u, 136u, 0u, 137u, 0u, 0u, 138u, + 0u, 0u, 0u, 0u, 139u, 0u, 0u, 0u, 0u, 140u, 0u, 0u, 0u, 0u, 141u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, 143u, 0u, 0u, 144u, 0u, 0u, 0u, 0u, + 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 147u, 0u, 0u, 0u, 0u, 0u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 150u, 0u, + 151u, 0u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 153u, 0u, 0u, 0u, 0u, 0u, 0u, 154u, 0u, 0u, 0u, 0u, 0u, 0u, 155u, 156u, 0u, 0u, 0u, 0u, 157u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 159u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 161u, + 162u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 163u, 0u, 164u, 0u, 0u, 165u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, 167u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 170u, 0u, 171u, 0u, 0u, 172u, 0u, 0u, 173u, 0u, 174u, 175u, 0u, 0u, 0u, 176u, 177u, 0u, + 0u, 178u, 0u, 0u, 179u, 0u, 180u, 181u, 0u, 0u, 0u, 182u, 183u, 0u, 0u, 0u, 0u, 184u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 185u, 0u, 0u, 0u, 0u, 0u, 186u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 188u, 0u, 0u, 189u, 0u, 0u, 190u, 0u, 191u, 192u, 0u, 0u, 0u, 193u, 194u, 0u, 0u, 195u, 0u, 0u, + 196u, 0u, 197u, 198u, 0u, 0u, 0u, 199u, 200u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, 0u, 203u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 204u, 0u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 208u, 0u, 209u, 0u, 0u, 0u, 0u, 0u, 210u, 0u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, + 213u, 0u, 0u, 0u, 214u, 0u, 0u, 0u, 215u, 0u, 216u, 0u, 217u, 0u, 0u, 0u, 218u, 0u, 219u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 0u, 221u, 0u, 0u, 0u, 222u, + 0u, 0u, 0u, 0u, 223u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 225u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 0u, 0u, 0u, 0u, 228u, + 0u, 0u, 229u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 232u, 0u, 233u, 0u, 0u, 0u, 234u, 0u, 0u, 235u, 0u, 0u, 236u, 0u, 0u, 0u, 237u, 0u, + 238u, 0u, 239u, 0u, 240u, 0u, 241u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 245u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 247u, 0u, 0u, 248u, 0u, 0u, 0u, 0u, 249u, 0u, 250u, 0u, 0u, 251u, 0u, 252u, 0u, 253u, + 0u, 0u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 256u, 0u, 0u, 0u, 257u, 0u, 0u, 258u, 0u, 259u, 0u, 260u, 0u, 0u, 0u, 0u, + 0u, 0u, 261u, 0u, 0u, 0u, 0u, 0u, 262u, 0u, 0u, 0u, 0u, 263u, 0u, 0u, 0u, 0u, 264u, 0u, 0u, 0u, 265u, 266u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, + 0u, 0u, 268u, 0u, 0u, 0u, 0u, 0u, 0u, 269u, 0u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 0u, 0u, 0u, 0u, 273u, 0u, 0u, + 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 277u, 278u, 0u, 0u, 0u, 0u, 279u, 280u, 0u, 0u, 0u, 281u, 0u, 0u, 0u, 282u, 0u, 0u, 0u, 283u, 284u, 0u, + 0u, 0u, 0u, 0u, 285u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 286u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 287u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 288u, 0u, 0u, 289u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, + 0u, 291u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 0u, 293u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 0u, 296u, 0u, 297u, 0u, 0u, 298u, + 0u, 0u, 299u, 0u, 0u, 300u, 301u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 306u, 0u, 307u, 0u, + 308u, 0u, 0u, 0u, 309u, 0u, 0u, 0u, 310u, 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 314u, 0u, 0u, 315u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 318u, 0u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 322u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 323u, 0u, 0u, 324u, 0u, 0u, 325u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, + 0u, 0u, 0u, 0u, 0u, 0u, 329u, 0u, 0u, 0u, 0u, 0u, 0u, 330u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 334u, 335u, 0u, 0u, 0u, 336u, 0u, 337u, 0u, + 338u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 340u, 0u, 0u, 341u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, + 0u, 345u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 346u, 0u, 347u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 350u, 0u, 351u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 354u, 0u, 0u, 0u, 355u, 0u, 356u, 0u, 357u, 0u, 358u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 359u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 360u, 361u, 0u, 0u, 0u, 362u, 0u, 363u, 0u, 364u, 0u, 365u, + 0u, 0u, 366u, 367u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 369u, 370u, 0u, 0u, 0u, 371u, 0u, 372u, 0u, 373u, + 0u, 374u, 0u, 0u, 375u, 376u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 378u, 0u, 0u, 379u, 0u, 0u, 380u, 0u, 381u, 0u, 0u, + 0u, 382u, 0u, 383u, 0u, 0u, 0u, 0u, 384u, 0u, 385u, 0u, 0u, 0u, 0u, 0u, 386u, 0u, 387u, 0u, 0u, 0u, 0u, 388u, 0u, 0u, 389u, 390u, 0u, 391u, 0u, 0u, + 0u, 392u, 0u, 0u, 0u, 393u, 0u, 394u, 0u, 395u, 0u, 0u, 396u, 397u, 0u, 0u, 0u, 0u, 0u, 398u, 0u, 0u, 0u, 399u, 0u, 400u, 0u, 0u, 0u, 401u, 402u, 0u, + 0u, 403u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 405u, 0u, 0u, 0u, 0u, 0u, 406u, 0u, 0u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, + 0u, 0u, 0u, 408u, 0u, 0u, 0u, 0u, 0u, 409u, 0u, 410u, 0u, 411u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 412u, 0u, 0u, 413u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 416u, 0u, 0u, 0u, 0u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, + 0u, 0u, 419u, 0u, 0u, 0u, 420u, 0u, 0u, 421u, 0u, 422u, 423u, 0u, 424u, 0u, 425u, 0u, 0u, 0u, 0u, 426u, 0u, 427u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, 429u, + 0u, 430u, 0u, 431u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, + 0u, 0u, 0u, 437u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 440u, 0u, 441u, 0u, 442u, 0u, 443u, 0u, 444u, 0u, 445u, 0u, + 0u, 0u, 0u, 0u, 0u, 446u, 0u, 0u, 0u, 0u, 447u, 0u, 448u, 0u, 0u, 449u, 0u, 450u, 0u, 451u, 0u, 452u, 0u, 453u, 0u, 454u, 0u, 0u, 0u, 0u, 455u, 0u, + 456u, 0u, 0u, 457u, 0u, 458u, 0u, 459u, 0u, 460u, 0u, 461u, 0u, 462u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, 0u, 0u, 0u, 0u, 464u, 0u, 0u, 0u, 465u, 0u, 0u, + 466u, 0u, 0u, 467u, 0u, 468u, 0u, 469u, 0u, 470u, 0u, 471u, 0u, 0u, 0u, 472u, 0u, 473u, 474u, 0u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 0u, 0u, 476u, 0u, 0u, + 477u, 0u, 478u, 0u, 0u, 479u, 0u, 480u, 0u, 481u, 0u, 482u, 0u, 0u, 483u, 0u, 484u, 485u, 0u, 0u, 0u, 486u, 0u, 0u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 488u, 0u, 489u, 0u, 0u, 0u, 490u, 0u, 0u, 0u, 491u, 492u, 0u, 493u, 0u, 494u, 0u, 0u, 0u, 0u, 0u, 495u, 496u, 497u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 498u, 0u, 499u, 500u, 0u, 501u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 503u, 0u, + 504u, 0u, 0u, 0u, 505u, 0u, 0u, 0u, 506u, 507u, 0u, 508u, 0u, 509u, 0u, 0u, 0u, 0u, 0u, 510u, 511u, 512u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 513u, 0u, 514u, 0u, 0u, 515u, 0u, 0u, 516u, 0u, 0u, 517u, 0u, 0u, 0u, 0u, 0u, 0u, 518u, 0u, 519u, 0u, 520u, 521u, 0u, 522u, 0u, 0u, 523u, 0u, 524u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 525u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 527u, 0u, 528u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 0u, 0u, 0u, 530u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 0u, 532u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 0u, 534u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 537u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, 0u, 0u, 0u, 539u, 0u, 540u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 541u, 0u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 543u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 544u, 0u, 0u, 0u, + 545u, 0u, 546u, 0u, 0u, 0u, 547u, 548u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 0u, 0u, 0u, + 0u, 553u, 0u, 0u, 0u, 0u, 0u, 554u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, 0u, 0u, 558u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 559u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 561u, 562u, 0u, 563u, 0u, 564u, 0u, 565u, 0u, 0u, + 0u, 0u, 566u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 567u, 0u, 0u, 0u, 0u, 0u, 568u, 0u, 569u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 571u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 0u, 573u, 0u, 0u, 0u, 574u, 0u, 575u, 0u, 0u, 576u, 0u, 577u, 0u, 0u, 0u, 0u, + 0u, 0u, 578u, 0u, 579u, 0u, 0u, 0u, 0u, 580u, 0u, 0u, 581u, 0u, 0u, 0u, 582u, 0u, 583u, 0u, 584u, 0u, 0u, 585u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, + 0u, 587u, 0u, 0u, 0u, 0u, 0u, 0u, 588u, 0u, 589u, 0u, 0u, 0u, 0u, 590u, 0u, 0u, 591u, 0u, 0u, 0u, 592u, 0u, 593u, 0u, 594u, 595u, 0u, 596u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 597u, 0u, 0u, 0u, 0u, 598u, 0u, 0u, 599u, 0u, 0u, 0u, 0u, 600u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 601u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 602u, 0u, 0u, 0u, 0u, 0u, + 603u, 0u, 0u, 0u, 0u, 0u, 0u, 604u, 0u, 0u, 0u, 0u, 0u, 605u, 606u, 0u, 0u, 0u, 0u, 607u, 0u, 0u, 0u, 0u, 0u, 608u, 609u, 0u, 0u, 610u, 0u, 0u, + 0u, 0u, 611u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 613u, 0u, 0u, 0u, 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 0u, 615u, + 0u, 0u, 0u, 0u, 0u, 616u, 617u, 0u, 0u, 0u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 620u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 0u, 0u, 623u, 0u, 0u, 0u, 0u, 0u, 624u, 625u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, + 0u, 0u, 0u, 627u, 628u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 0u, 0u, 631u, 632u, 0u, 0u, 0u, 0u, 0u, 633u, 0u, 0u, 0u, 0u, 0u, + 634u, 635u, 0u, 0u, 0u, 0u, 636u, 0u, 0u, 0u, 0u, 0u, 637u, 0u, 0u, 0u, 0u, 0u, 0u, 638u, 0u, 639u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 640u, 0u, 0u, 0u, 0u, 641u, 0u, 0u, 0u, 0u, 642u, + 0u, 0u, 0u, 0u, 643u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 644u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 646u, 0u, 647u, 648u, 0u, 649u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 650u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 651u, 0u, 0u, 652u, 0u, 0u, 653u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 654u, 0u, 655u, 0u, 656u, 0u, 657u, 0u, 0u, 0u, 0u, 0u, 0u, 658u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 659u, 0u, 0u, 0u, 660u, 0u, 661u, 0u, 662u, 0u, 0u, 0u, 663u, 0u, 664u, 665u, 0u, 666u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 667u, 0u, 0u, 0u, 668u, 0u, 0u, 0u, 669u, 0u, 670u, 0u, 671u, 0u, 672u, 0u, 673u, 0u, 0u, 674u, 0u, 0u, 675u, 0u, 676u, 0u, + 677u, 0u, 0u, 678u, 0u, 0u, 0u, 0u, 0u, 0u, 679u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 682u, 0u, 0u, 0u, 683u, 0u, 684u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 685u, 0u, 0u, 686u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 687u, 0u, 0u, 0u, 0u, 688u, 0u, 0u, + 0u, 689u, 0u, 0u, 0u, 0u, 690u, 0u, 0u, 0u, 0u, 691u, 0u, 0u, 0u, 0u, 692u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 693u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 694u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 695u, 0u, 0u, 0u, 0u, 696u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 697u, 0u, 0u, 0u, 0u, 0u, 698u, 0u, 699u, 0u, 700u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 701u, 0u, 0u, 0u, 0u, 0u, 702u, 0u, 0u, 703u, + 0u, 0u, 0u, 0u, 704u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 705u, + 0u, 706u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 707u, 0u, 0u, 0u, 0u, 0u, 0u, 708u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 709u, 0u, 0u, 0u, 0u, 710u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 711u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 713u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 714u, 0u, 715u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 717u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 718u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 720u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 721u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, 0u, 0u, 0u, 723u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 724u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 725u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 726u, 0u, 0u, 0u, 0u, 0u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 728u, 0u, 0u, 0u, + 729u, 0u, 730u, 0u, 0u, 731u, 0u, 732u, 0u, 0u, 733u, 0u, 734u, 0u, 0u, 735u, 0u, 736u, 737u, 0u, 0u, 0u, 0u, 738u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 739u, 0u, 0u, 0u, 740u, 0u, 741u, 0u, 0u, 742u, 0u, 743u, 0u, 0u, 744u, 0u, 745u, 0u, 0u, 746u, 0u, 747u, 748u, 0u, 0u, 0u, 0u, 749u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 750u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 751u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 752u, 0u, 753u, 0u, 754u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 755u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 756u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 757u, 0u, 0u, 0u, 0u, 0u, 758u, 0u, 0u, + 0u, 759u, 0u, 0u, 0u, 0u, 760u, 0u, 0u, 0u, 0u, 0u, 0u, 761u, 0u, 0u, 762u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 763u, 0u, 764u, 0u, 765u, +}; void recomp_unit_0152_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,16,31,6 fprs=12,13,14,20 gpr_occ=3541 fpr_occ=1075 gpr_total=4673 fpr_total=1381 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08A64000u; - entry_id = 0u; - if (entry_delta < 16372u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0152[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0152[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16372u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0152[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08A64000; @@ -843,6 +966,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A64000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -949,8 +1096,21 @@ L_08A640D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), ctx.gpr[2]); aot_gpr_31 = (0x08A640E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 11u, 0x08A640E8u, 0x08A59578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 307u, 0x08A59578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A640E8u) goto L_08A640E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A640E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A640F4u); @@ -986,8 +1146,21 @@ L_08A64120: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(80))); aot_gpr_31 = (0x08A6412Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 17u, 0x08A6412Cu, 0x08A59554u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 303u, 0x08A59554u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6412Cu) goto L_08A6412C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6412C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A64138u); @@ -1112,8 +1285,21 @@ L_08A641EC: ctx.gpr[7] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A64204u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 30u, 0x08A64204u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64204u) goto L_08A64204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64204: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A64210u); @@ -1153,8 +1339,21 @@ L_08A64234: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A6424Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 36u, 0x08A6424Cu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6424Cu) goto L_08A6424C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6424C: { const bool branch_taken = ctx.gpr[21] != 0u; if (branch_taken) { @@ -1228,8 +1427,21 @@ L_08A642CC: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_31 = (0x08A642E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 46u, 0x08A642E0u, 0x08A59578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 307u, 0x08A59578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A642E0u) goto L_08A642E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A642E0: ctx.gpr[8] = (16384u << 16u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1238,8 +1450,21 @@ L_08A642E0: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A642FCu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 47u, 0x08A642FCu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A642FCu) goto L_08A642FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A642FC: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = 0u == 0u; @@ -1322,8 +1547,21 @@ L_08A64394: ctx.gpr[7] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A643ACu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 56u, 0x08A643ACu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A643ACu) goto L_08A643AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A643AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A643B8u); @@ -1363,8 +1601,21 @@ L_08A643DC: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A643F4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 62u, 0x08A643F4u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A643F4u) goto L_08A643F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A643F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1466,8 +1717,21 @@ L_08A644B0: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_31 = (0x08A644C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 76u, 0x08A644C4u, 0x08A59554u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 303u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 303u, 0x08A59554u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A644C4u) goto L_08A644C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A644C4: ctx.gpr[8] = (16512u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1476,8 +1740,21 @@ L_08A644C4: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A644E0u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 77u, 0x08A644E0u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A644E0u) goto L_08A644E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A644E0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = 0u == 0u; @@ -2323,8 +2600,21 @@ L_08A64BE4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_31 = (0x08A64BF4u); ctx.gpr[7] = (0u | 192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 176u, 0x08A64BF4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64BF4u) goto L_08A64BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64BF4: aot_gpr_16 = (ctx.gpr[2] | 0u); goto L_08A64BF8; @@ -2355,8 +2645,21 @@ L_08A64C1C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_31 = (0x08A64C2Cu); ctx.gpr[7] = (0u | 191u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 182u, 0x08A64C2Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64C2Cu) goto L_08A64C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64C2C: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08A64C30; @@ -2379,8 +2682,21 @@ L_08A64C44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A64C64u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 185u, 0x08A64C64u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64C64u) goto L_08A64C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64C64: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (0u + static_cast(-2)); @@ -2402,8 +2718,21 @@ L_08A64C7C: { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08A64C9Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 187u, 0x08A64C9Cu, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64C9Cu) goto L_08A64C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64C9C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (0u + static_cast(-2)); @@ -2439,8 +2768,21 @@ L_08A64CD4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_31 = (0x08A64CE4u); ctx.gpr[7] = (0u | 189u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 193u, 0x08A64CE4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64CE4u) goto L_08A64CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64CE4: aot_gpr_16 = (ctx.gpr[2] | 0u); goto L_08A64CE8; @@ -2471,8 +2813,21 @@ L_08A64D0C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_gpr_31 = (0x08A64D1Cu); ctx.gpr[7] = (0u | 190u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 199u, 0x08A64D1Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64D1Cu) goto L_08A64D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64D1C: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08A64D20; @@ -2494,8 +2849,21 @@ L_08A64D34: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A64D50u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 202u, 0x08A64D50u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64D50u) goto L_08A64D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64D50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -2517,8 +2885,21 @@ L_08A64D64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A64D88u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 204u, 0x08A64D88u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64D88u) goto L_08A64D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64D88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -2547,8 +2928,8 @@ L_08A64D98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A64DE0: @@ -2664,8 +3045,21 @@ L_08A64EB0: } L_08A64EC0: aot_gpr_31 = (0x08A64EC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 219u, 0x08A64EC8u, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64EC8u) goto L_08A64EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64EC8: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2776,8 +3170,21 @@ L_08A64F94: } L_08A64FB0: aot_gpr_31 = (0x08A64FB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 232u, 0x08A64FB8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64FB8u) goto L_08A64FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64FB8: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; if (branch_taken) { @@ -2806,8 +3213,21 @@ L_08A64FDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x08A64FE8u); aot_gpr_5 = (0u | 143u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 236u, 0x08A64FE8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A64FE8u) goto L_08A64FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A64FE8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2819,8 +3239,21 @@ L_08A64FE8: } L_08A64FF8: aot_gpr_31 = (0x08A65000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 238u, 0x08A65000u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65000u) goto L_08A65000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65000: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2831,8 +3264,21 @@ L_08A65000: L_08A65008: aot_gpr_31 = (0x08A65010u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 240u, 0x08A65010u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65010u) goto L_08A65010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65010: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { @@ -2866,8 +3312,21 @@ L_08A6502C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[26] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A6504Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 243u, 0x08A6504Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6504Cu) goto L_08A6504C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6504C: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2892,8 +3351,21 @@ L_08A6504C: } L_08A65074: aot_gpr_31 = (0x08A6507Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 245u, 0x08A6507Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6507Cu) goto L_08A6507C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6507C: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2927,8 +3399,21 @@ L_08A650B8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A650C4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 248u, 0x08A650C4u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A650C4u) goto L_08A650C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A650C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (4096u << 16u); @@ -2942,8 +3427,21 @@ L_08A650C4: L_08A650D8: aot_gpr_31 = (0x08A650E0u); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(636))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 250u, 0x08A650E0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A650E0u) goto L_08A650E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A650E0: aot_gpr_4 = (16256u << 16u); { const bool branch_taken = aot_gpr_16 == ctx.gpr[2]; @@ -3024,8 +3522,21 @@ L_08A65150: L_08A6515C: aot_gpr_31 = (0x08A65164u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 259u, 0x08A65164u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65164u) goto L_08A65164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65164: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; aot_gpr_4 = (16000u << 16u); @@ -3446,8 +3957,21 @@ L_08A65460: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x08A6546Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 290u, 0x08A6546Cu, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6546Cu) goto L_08A6546C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6546C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1252))); @@ -3468,8 +3992,21 @@ L_08A65484: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A654A4u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 292u, 0x08A654A4u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A654A4u) goto L_08A654A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A654A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3495,8 +4032,21 @@ L_08A654C4: aot_gpr_5 = (0u | 42u); aot_gpr_31 = (0x08A654DCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 295u, 0x08A654DCu, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A654DCu) goto L_08A654DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A654DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A654E8u); @@ -3528,8 +4078,21 @@ L_08A65508: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A65514u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 300u, 0x08A65514u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65514u) goto L_08A65514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65514: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_08A65518; @@ -3563,8 +4126,21 @@ L_08A65544: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A65564u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 305u, 0x08A65564u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65564u) goto L_08A65564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65564: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A65570u); @@ -3607,8 +4183,21 @@ L_08A655A0: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A655B8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 311u, 0x08A655B8u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A655B8u) goto L_08A655B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A655B8: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -3624,8 +4213,8 @@ L_08A655B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A655E4: @@ -3655,8 +4244,21 @@ L_08A65628: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A65634u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 315u, 0x08A65634u, 0x08AD03B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 43u, 0x08AD03B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65634u) goto L_08A65634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65634: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4036,8 +4638,8 @@ L_08A65930: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65950: @@ -4054,23 +4656,23 @@ L_08A65950: aot_fpr_12 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10008), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65984: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5752))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6598C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5752), aot_gpr_4); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65998: @@ -4140,8 +4742,8 @@ L_08A659FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65A24: @@ -4175,8 +4777,21 @@ L_08A65A54: L_08A65A64: aot_gpr_31 = (0x08A65A6Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 363u, 0x08A65A6Cu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65A6Cu) goto L_08A65A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65A6C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4215,8 +4830,8 @@ L_08A65A8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65AAC: @@ -4249,8 +4864,21 @@ L_08A65ADC: } L_08A65AEC: aot_gpr_31 = (0x08A65AF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 372u, 0x08A65AF4u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65AF4u) goto L_08A65AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65AF4: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; if (branch_taken) { @@ -4289,8 +4917,8 @@ L_08A65B14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65B34: @@ -4323,8 +4951,21 @@ L_08A65B60: L_08A65B6C: aot_gpr_31 = (0x08A65B74u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-5748)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 381u, 0x08A65B74u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65B74u) goto L_08A65B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65B74: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -4449,8 +5090,8 @@ L_08A65C34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65C4C: @@ -4482,8 +5123,8 @@ L_08A65C78: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65C84: @@ -4491,8 +5132,8 @@ L_08A65C84: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5756), aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5760), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65C94: @@ -4548,8 +5189,8 @@ L_08A65C94: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65CBC: @@ -4577,8 +5218,8 @@ L_08A65CBC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65CD4: @@ -4599,8 +5240,8 @@ L_08A65CD4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65CF0: @@ -4621,8 +5262,8 @@ L_08A65CF0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65D0C: @@ -4645,8 +5286,8 @@ L_08A65D24: } L_08A65D2C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65D34: @@ -4660,15 +5301,15 @@ L_08A65D34: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65D60: ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65D6C: @@ -4680,8 +5321,8 @@ L_08A65D6C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65D8C: @@ -4698,8 +5339,8 @@ L_08A65D8C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65DA4: @@ -4718,8 +5359,8 @@ L_08A65DA4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65DB4: @@ -4741,8 +5382,8 @@ L_08A65DB4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65DD0: @@ -4753,8 +5394,8 @@ L_08A65DD0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65DEC: @@ -4789,8 +5430,21 @@ L_08A65E18: goto L_08A65E24; L_08A65E24: aot_gpr_31 = (0x08A65E2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 422u, 0x08A65E2Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65E2Cu) goto L_08A65E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65E2C: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08A65E30; @@ -4815,15 +5469,15 @@ L_08A65E40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65E54: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65E5C: @@ -4844,15 +5498,15 @@ L_08A65E6C: goto L_08A65E7C; L_08A65E7C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65E84: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65E8C: @@ -4861,8 +5515,8 @@ L_08A65E8C: ctx.gpr[2] = (aot_gpr_4 ^ 4u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65EA0: @@ -4871,8 +5525,8 @@ L_08A65EA0: ctx.gpr[2] = (aot_gpr_4 ^ 6u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65EB4: @@ -4881,8 +5535,8 @@ L_08A65EB4: ctx.gpr[2] = (aot_gpr_4 ^ 8u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65EC8: @@ -4891,8 +5545,8 @@ L_08A65EC8: ctx.gpr[2] = (aot_gpr_4 ^ 14u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65EDC: @@ -4904,8 +5558,8 @@ L_08A65EDC: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65EFC: @@ -4913,8 +5567,8 @@ L_08A65EFC: ctx.gpr[2] = (aot_gpr_4 & 496u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F0C: @@ -4922,8 +5576,8 @@ L_08A65F0C: ctx.gpr[2] = (aot_gpr_4 & 512u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F1C: @@ -4936,8 +5590,8 @@ L_08A65F1C: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F40: @@ -4945,43 +5599,43 @@ L_08A65F40: ctx.gpr[2] = (aot_gpr_4 & 4096u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F50: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F58: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(28))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F60: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(29))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F68: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(30))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F70: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(31))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A65F78: @@ -5044,8 +5698,21 @@ L_08A65FD4: L_08A65FDC: aot_gpr_31 = (0x08A65FE4u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 454u, 0x08A65FE4u, 0x08807CB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 595u, 0x08807CB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A65FE4u) goto L_08A65FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A65FE4: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); @@ -5087,8 +5754,21 @@ L_08A6601C: L_08A66024: aot_gpr_31 = (0x08A6602Cu); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 461u, 0x08A6602Cu, 0x0897EBF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 724u, 0x0897EBF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6602Cu) goto L_08A6602C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6602C: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -5105,8 +5785,8 @@ L_08A66034: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66048: @@ -5134,8 +5814,21 @@ L_08A66074: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A66080u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 466u, 0x08A66080u, 0x08807C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A66080u) goto L_08A66080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A66080: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 != 0u) { @@ -5195,8 +5888,8 @@ L_08A660C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A660DC: @@ -5257,8 +5950,21 @@ L_08A6612C: } L_08A66138: aot_gpr_31 = (0x08A66140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 484u, 0x08A66140u, 0x08807CB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 595u, 0x08807CB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A66140u) goto L_08A66140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A66140: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(232), 0u); goto L_08A66144; @@ -5267,16 +5973,16 @@ L_08A66144: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66154: ctx.gpr[2] = (2237u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-28736)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66160: @@ -5376,8 +6082,8 @@ L_08A66214: L_08A66218: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66220: @@ -5499,8 +6205,21 @@ L_08A66318: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A66324u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 516u, 0x08A66324u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A66324u) goto L_08A66324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A66324: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(104), 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5532,16 +6251,42 @@ L_08A6634C: L_08A66354: aot_gpr_31 = (0x08A6635Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 520u, 0x08A6635Cu, 0x0897EB58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 712u, 0x0897EB58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6635Cu) goto L_08A6635C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6635C: aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08A66360; L_08A66360: aot_gpr_31 = (0x08A66368u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 522u, 0x08A66368u, 0x08ACF9BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1039u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1039u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1039u, 0x08ACF9BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A66368u) goto L_08A66368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A66368: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5567,8 +6312,8 @@ L_08A6637C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6639C: @@ -5649,8 +6394,21 @@ L_08A6639C: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_31 = (0x08A66428u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 526u, 0x08A66428u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A66428u) goto L_08A66428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A66428: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_13 = aot_fpr_12 - aot_fpr_20; @@ -5679,15 +6437,15 @@ L_08A66428: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66488: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(352))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66490: @@ -5844,8 +6602,21 @@ L_08A66598: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A66668u); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 536u, 0x08A66668u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A66668u) goto L_08A66668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A66668: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(104), aot_run_words); @@ -5863,8 +6634,8 @@ L_08A66668: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6669C: @@ -5887,8 +6658,8 @@ L_08A6669C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A666C0: @@ -5907,15 +6678,15 @@ L_08A666C0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A666D4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A666DC: @@ -6387,8 +7158,8 @@ L_08A66A74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66A88: @@ -6428,8 +7199,8 @@ L_08A66ACC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66AD8: @@ -6579,8 +7350,8 @@ L_08A66BF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66C04: @@ -6651,8 +7422,8 @@ L_08A66C68: goto L_08A66C6C; L_08A66C6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66C74: @@ -6704,8 +7475,8 @@ L_08A66CC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66CD8: @@ -6857,8 +7628,8 @@ L_08A66DF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66E08: @@ -7054,8 +7825,8 @@ L_08A66F44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A66F58: @@ -7321,15 +8092,15 @@ L_08A67130: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6714C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A67154: @@ -7443,8 +8214,8 @@ L_08A67154: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A671D4: @@ -7520,8 +8291,8 @@ L_08A67260: goto L_08A67264; L_08A67264: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6726C: @@ -7580,14 +8351,40 @@ L_08A672DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A672E8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 652u, 0x08A672E8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A672E8u) goto L_08A672E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A672E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A672F4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 653u, 0x08A672F4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A672F4u) goto L_08A672F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A672F4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -7604,18 +8401,57 @@ L_08A672F4: L_08A67318: aot_gpr_31 = (0x08A67320u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 655u, 0x08A67320u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67320u) goto L_08A67320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67320: aot_gpr_31 = (0x08A67328u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 656u, 0x08A67328u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67328u) goto L_08A67328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67328: aot_gpr_31 = (0x08A67330u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 657u, 0x08A67330u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67330u) goto L_08A67330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67330: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); @@ -7627,8 +8463,8 @@ L_08A67330: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6734C: @@ -7777,8 +8613,8 @@ L_08A673EC: L_08A673F0: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A673F8: @@ -7830,8 +8666,21 @@ L_08A67440: } L_08A67448: aot_gpr_31 = (0x08A67450u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 672u, 0x08A67450u, 0x08A68C14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 92u, 0x08A68C14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67450u) goto L_08A67450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67450: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -7867,14 +8716,27 @@ L_08A67470: } L_08A67478: aot_gpr_31 = (0x08A67480u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 677u, 0x08A67480u, 0x08AD2764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 432u, 0x08AD2764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67480u) goto L_08A67480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67480: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6748C: @@ -7948,8 +8810,8 @@ L_08A6752C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A67538: @@ -8131,8 +8993,8 @@ L_08A6763C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A67650: @@ -8162,8 +9024,21 @@ L_08A6768C: } L_08A676A4: aot_gpr_31 = (0x08A676ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 699u, 0x08A676ACu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A676ACu) goto L_08A676AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A676AC: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; if (branch_taken) { @@ -8264,8 +9139,21 @@ L_08A67710: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A6777Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 705u, 0x08A6777Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6777Cu) goto L_08A6777C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6777C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8601,8 +9489,8 @@ L_08A67950: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(416)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A67980: @@ -8686,8 +9574,8 @@ L_08A679C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A67A08: @@ -8838,8 +9726,8 @@ L_08A67B20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A67B3C: @@ -8872,8 +9760,21 @@ L_08A67B70: } L_08A67B80: aot_gpr_31 = (0x08A67B88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 730u, 0x08A67B88u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67B88u) goto L_08A67B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67B88: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -8890,8 +9791,21 @@ L_08A67B9C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08A67BA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0154. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 733u, 0x08A67BA8u, 0x08A6E6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0154_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 238u, 0x08A6E6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67BA8u) goto L_08A67BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67BA8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8927,8 +9841,8 @@ L_08A67BC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A67BDC: @@ -8961,8 +9875,21 @@ L_08A67C10: } L_08A67C20: aot_gpr_31 = (0x08A67C28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 741u, 0x08A67C28u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67C28u) goto L_08A67C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67C28: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -8979,8 +9906,21 @@ L_08A67C3C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08A67C48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0152->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0152_entry, 744u, 0x08A67C48u, 0x08A723D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 450u, 0x08A723D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A67C48u) goto L_08A67C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A67C48: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9016,8 +9956,8 @@ L_08A67C68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A67C7C: @@ -9587,8 +10527,8 @@ L_08A67FF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(468))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; } diff --git a/profiles/vcs/generated/generated_unit_0153.cpp b/profiles/vcs/generated/generated_unit_0153.cpp index 5023c00..1db0e47 100644 --- a/profiles/vcs/generated/generated_unit_0153.cpp +++ b/profiles/vcs/generated/generated_unit_0153.cpp @@ -763,6 +763,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A68000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -863,8 +887,21 @@ L_08A68078: } aot_gpr_31 = (0x08A680DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 6u, 0x08A680DCu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A680DCu) goto L_08A680DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A680DC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -880,8 +917,21 @@ L_08A680DC: } aot_gpr_31 = (0x08A680FCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 7u, 0x08A680FCu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A680FCu) goto L_08A680FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A680FC: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_08A68100; @@ -895,8 +945,8 @@ L_08A68100: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68118: @@ -1049,8 +1099,21 @@ L_08A68220: } aot_gpr_31 = (0x08A68250u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 18u, 0x08A68250u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68250u) goto L_08A68250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A68250: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -1066,8 +1129,21 @@ L_08A68250: } aot_gpr_31 = (0x08A68270u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 19u, 0x08A68270u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68270u) goto L_08A68270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A68270: ctx.gpr[2] = (ctx.gpr[18] | 0u); goto L_08A68274; @@ -1081,8 +1157,8 @@ L_08A68274: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6828C: @@ -1118,8 +1194,21 @@ L_08A6828C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A682E4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 22u, 0x08A682E4u, 0x08A67154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A682E4u) goto L_08A682E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A682E4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1429,8 +1518,21 @@ L_08A684A0: } aot_gpr_31 = (0x08A684C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 42u, 0x08A684C8u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A684C8u) goto L_08A684C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A684C8: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1462,8 +1564,21 @@ L_08A684C8: } aot_gpr_31 = (0x08A684FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 43u, 0x08A684FCu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A684FCu) goto L_08A684FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A684FC: ctx.gpr[2] = (0u | 1u); { std::uint32_t aot_run_words[8]{}; @@ -1479,8 +1594,8 @@ L_08A684FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68528: @@ -1515,8 +1630,8 @@ L_08A68564: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68570: @@ -1645,8 +1760,8 @@ L_08A68604: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68610: @@ -2223,8 +2338,21 @@ L_08A689D4: L_08A689E4: aot_gpr_31 = (0x08A689ECu); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(28))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 69u, 0x08A689ECu, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A689ECu) goto L_08A689EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A689EC: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -2296,8 +2424,21 @@ L_08A68A44: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A68A84u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 72u, 0x08A68A84u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68A84u) goto L_08A68A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A68A84: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -2337,8 +2478,8 @@ L_08A68AA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(592)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68ACC: @@ -2349,8 +2490,21 @@ L_08A68ACC: aot_gpr_16 = (aot_gpr_5 | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A68AF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 77u, 0x08A68AF4u, 0x08AD03B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 43u, 0x08AD03B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68AF4u) goto L_08A68AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A68AF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2391,8 +2545,21 @@ L_08A68B50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A68B5Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 81u, 0x08A68B5Cu, 0x08A66AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68B5Cu) goto L_08A68B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A68B5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -2409,8 +2576,21 @@ L_08A68B78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A68B84u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 83u, 0x08A68B84u, 0x08A66AD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68B84u) goto L_08A68B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A68B84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -2485,8 +2665,8 @@ L_08A68BFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68C14: @@ -2495,8 +2675,21 @@ L_08A68C14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A68C2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 93u, 0x08A68C2Cu, 0x08809984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 323u, 0x08809984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A68C2Cu) goto L_08A68C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A68C2C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (16u << 16u); @@ -2556,50 +2749,50 @@ L_08A68CA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CB4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(473))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CBC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(444))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CC4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(444), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CCC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(448))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CD4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2116))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CDC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2116), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A68CE4: @@ -3008,8 +3201,21 @@ L_08A69028: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A69034u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 149u, 0x08A69034u, 0x08807C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69034u) goto L_08A69034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69034: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3041,8 +3247,21 @@ L_08A69060: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A69070u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 154u, 0x08A69070u, 0x0897EBD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 722u, 0x0897EBD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69070u) goto L_08A69070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69070: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3111,8 +3330,8 @@ L_08A690D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A69104: @@ -3705,8 +3924,21 @@ L_08A69574: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08A69580u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 228u, 0x08A69580u, 0x08807C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69580u) goto L_08A69580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69580: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3738,8 +3970,21 @@ L_08A695AC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08A695BCu); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 233u, 0x08A695BCu, 0x0897EBD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 722u, 0x0897EBD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A695BCu) goto L_08A695BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A695BC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3849,8 +4094,21 @@ L_08A69668: L_08A69670: aot_gpr_31 = (0x08A69678u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 249u, 0x08A69678u, 0x08807CB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 595u, 0x08807CB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69678u) goto L_08A69678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69678: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -3891,8 +4149,21 @@ L_08A696B0: goto L_08A696B8; L_08A696B8: aot_gpr_31 = (0x08A696C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 256u, 0x08A696C0u, 0x0897EBF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 724u, 0x0897EBF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A696C0u) goto L_08A696C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A696C0: { const bool branch_taken = ctx.gpr[21] != 0u; if (branch_taken) { @@ -3916,8 +4187,8 @@ L_08A696C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A696F8: @@ -3926,8 +4197,21 @@ L_08A696F8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A69730u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 259u, 0x08A69730u, 0x08AD1B88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 349u, 0x08AD1B88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69730u) goto L_08A69730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69730: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(30528)); @@ -3957,8 +4241,21 @@ L_08A69730: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A697A0u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 260u, 0x08A697A0u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A697A0u) goto L_08A697A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A697A0: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -4173,8 +4470,8 @@ L_08A6982C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A699B0: @@ -4293,8 +4590,21 @@ L_08A69AE4: L_08A69AEC: aot_gpr_31 = (0x08A69AF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 274u, 0x08A69AF4u, 0x08A67BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 738u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 738u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 738u, 0x08A67BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69AF4u) goto L_08A69AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69AF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4330,8 +4640,21 @@ L_08A69B0C: L_08A69B38: aot_gpr_31 = (0x08A69B40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 278u, 0x08A69B40u, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69B40u) goto L_08A69B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69B40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4356,8 +4679,21 @@ L_08A69B64: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08A69B74u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 281u, 0x08A69B74u, 0x08ADCEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 264u, 0x08ADCEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69B74u) goto L_08A69B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69B74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -4402,8 +4738,21 @@ L_08A69BA4: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A69BD8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 284u, 0x08A69BD8u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69BD8u) goto L_08A69BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69BD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -4765,8 +5114,21 @@ L_08A69E8C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A69EACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 313u, 0x08A69EACu, 0x08A65D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 412u, 0x08A65D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A69EACu) goto L_08A69EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A69EAC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast(0x7FC00000u); else ctx.fpr[30] = fs * ft; } @@ -5007,8 +5369,21 @@ L_08A69F78: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A6A014u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 325u, 0x08A6A014u, 0x08A67154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A014u) goto L_08A6A014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A014: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5027,8 +5402,21 @@ L_08A6A014: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A6A02Cu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 326u, 0x08A6A02Cu, 0x08A67154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A02Cu) goto L_08A6A02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A02C: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5045,14 +5433,40 @@ L_08A6A02C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6A03Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 327u, 0x08A6A03Cu, 0x08A65D8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A03Cu) goto L_08A6A03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A03C: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08A6A048u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 328u, 0x08A6A048u, 0x08A65D8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A048u) goto L_08A6A048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A048: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -5290,8 +5704,21 @@ L_08A6A264: L_08A6A27C: aot_gpr_31 = (0x08A6A284u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 345u, 0x08A6A284u, 0x08860314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A284u) goto L_08A6A284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A284: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -5308,8 +5735,21 @@ L_08A6A284: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x08A6A2C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 346u, 0x08A6A2C0u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A2C0u) goto L_08A6A2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A2C0: aot_gpr_4 = (65535u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -5333,14 +5773,40 @@ L_08A6A2CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A300u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 348u, 0x08A6A300u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A300u) goto L_08A6A300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A300: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A30Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 349u, 0x08A6A30Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A30Cu) goto L_08A6A30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A30C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -5449,8 +5915,21 @@ L_08A6A3E0: L_08A6A3F8: aot_gpr_31 = (0x08A6A400u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 360u, 0x08A6A400u, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A400u) goto L_08A6A400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A400: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5507,8 +5986,21 @@ L_08A6A468: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A474u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 367u, 0x08A6A474u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A474u) goto L_08A6A474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A474: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7676), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(224), std::bit_cast(ctx.fpr[22])); @@ -5531,8 +6023,21 @@ L_08A6A48C: L_08A6A498: aot_gpr_31 = (0x08A6A4A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 370u, 0x08A6A4A0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A4A0u) goto L_08A6A4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A4A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5589,8 +6094,21 @@ L_08A6A508: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A514u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 377u, 0x08A6A514u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A514u) goto L_08A6A514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A514: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7676), std::bit_cast(ctx.fpr[26])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); @@ -5712,8 +6230,21 @@ L_08A6A5E8: L_08A6A600: aot_gpr_31 = (0x08A6A608u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 391u, 0x08A6A608u, 0x08860314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A608u) goto L_08A6A608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A608: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -5848,8 +6379,21 @@ L_08A6A718: L_08A6A724: aot_gpr_31 = (0x08A6A72Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 407u, 0x08A6A72Cu, 0x08A67B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A72Cu) goto L_08A6A72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A72C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5861,8 +6405,21 @@ L_08A6A734: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6A740u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 409u, 0x08A6A740u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A740u) goto L_08A6A740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A740: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(224), std::bit_cast(ctx.fpr[22])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); @@ -5884,8 +6441,21 @@ L_08A6A754: L_08A6A760: aot_gpr_31 = (0x08A6A768u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 412u, 0x08A6A768u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A768u) goto L_08A6A768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A768: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5972,8 +6542,21 @@ L_08A6A7F8: L_08A6A804: aot_gpr_31 = (0x08A6A80Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 417u, 0x08A6A80Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A80Cu) goto L_08A6A80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A80C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(260), aot_run_words); @@ -5996,8 +6579,8 @@ L_08A6A80C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6A854: @@ -6098,8 +6681,21 @@ L_08A6A924: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A6A938u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 429u, 0x08A6A938u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A938u) goto L_08A6A938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A938: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); @@ -6189,8 +6785,21 @@ L_08A6A9DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5724))); aot_gpr_31 = (0x08A6A9E8u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 438u, 0x08A6A9E8u, 0x08A65D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 411u, 0x08A65D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6A9E8u) goto L_08A6A9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6A9E8: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -6212,14 +6821,40 @@ L_08A6A9E8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6AA0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 439u, 0x08A6AA0Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA0Cu) goto L_08A6AA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AA0C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5724))); aot_gpr_31 = (0x08A6AA18u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 440u, 0x08A6AA18u, 0x08A65D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 411u, 0x08A65D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA18u) goto L_08A6AA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AA18: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); @@ -6243,8 +6878,21 @@ L_08A6AA30: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A6AA3Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 442u, 0x08A6AA3Cu, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA3Cu) goto L_08A6AA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AA3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(192)); @@ -6270,8 +6918,21 @@ L_08A6AA54: L_08A6AA6C: aot_gpr_31 = (0x08A6AA74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 445u, 0x08A6AA74u, 0x08860314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA74u) goto L_08A6AA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AA74: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-25492))); aot_gpr_4 = (static_cast(aot_gpr_4) < static_cast(ctx.gpr[21]) ? 1u : 0u); @@ -6293,8 +6954,21 @@ L_08A6AA84: } L_08A6AA94: aot_gpr_31 = (0x08A6AA9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 448u, 0x08A6AA9Cu, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AA9Cu) goto L_08A6AA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AA9C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -6329,8 +7003,21 @@ L_08A6AADC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08A6AAE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 453u, 0x08A6AAE8u, 0x08A7125Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 270u, 0x08A7125Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AAE8u) goto L_08A6AAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AAE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6380,8 +7067,21 @@ L_08A6AB24: } L_08A6AB34: aot_gpr_31 = (0x08A6AB3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 460u, 0x08A6AB3Cu, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AB3Cu) goto L_08A6AB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AB3C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -6399,8 +7099,21 @@ L_08A6AB54: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08A6AB60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0154. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 463u, 0x08A6AB60u, 0x08A6E6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0154_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 238u, 0x08A6E6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AB60u) goto L_08A6AB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AB60: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6428,8 +7141,21 @@ L_08A6AB7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6AB88u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 467u, 0x08A6AB88u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AB88u) goto L_08A6AB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AB88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6450,8 +7176,21 @@ L_08A6AB98: L_08A6ABA4: aot_gpr_31 = (0x08A6ABACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 470u, 0x08A6ABACu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ABACu) goto L_08A6ABAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6ABAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6478,8 +7217,21 @@ L_08A6ABC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6ABD4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 474u, 0x08A6ABD4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ABD4u) goto L_08A6ABD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6ABD4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6500,8 +7252,21 @@ L_08A6ABE4: L_08A6ABF0: aot_gpr_31 = (0x08A6ABF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 477u, 0x08A6ABF8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ABF8u) goto L_08A6ABF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6ABF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6591,16 +7356,42 @@ L_08A6AC84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A6AC90u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 483u, 0x08A6AC90u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AC90u) goto L_08A6AC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AC90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A6ACA4u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 484u, 0x08A6ACA4u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ACA4u) goto L_08A6ACA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6ACA4: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<1u>(aot_gpr_4); @@ -6650,8 +7441,21 @@ L_08A6ACEC: L_08A6ACF8: aot_gpr_31 = (0x08A6AD00u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 489u, 0x08A6AD00u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6AD00u) goto L_08A6AD00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6AD00: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -6666,8 +7470,8 @@ L_08A6AD00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6AD28: @@ -7373,8 +8177,21 @@ L_08A6B230: aot_gpr_6 = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x08A6B268u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 553u, 0x08A6B268u, 0x08829F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 186u, 0x08829F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B268u) goto L_08A6B268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B268: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7504,8 +8321,21 @@ L_08A6B36C: L_08A6B374: aot_gpr_31 = (0x08A6B37Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 567u, 0x08A6B37Cu, 0x08827C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 578u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 578u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 578u, 0x08827C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B37Cu) goto L_08A6B37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B37C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); aot_gpr_4 = (16256u << 16u); @@ -7609,8 +8439,21 @@ L_08A6B40C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6B430u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 569u, 0x08A6B430u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B430u) goto L_08A6B430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B430: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7736,8 +8579,21 @@ L_08A6B470: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A6B510u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 573u, 0x08A6B510u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B510u) goto L_08A6B510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B510: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7803,8 +8659,21 @@ L_08A6B520: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B56Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 576u, 0x08A6B56Cu, 0x08A67154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B56Cu) goto L_08A6B56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B56C: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8050,8 +8919,21 @@ L_08A6B758: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B768u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 587u, 0x08A6B768u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B768u) goto L_08A6B768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B768: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 512u); @@ -8138,8 +9020,21 @@ L_08A6B788: } aot_gpr_31 = (0x08A6B804u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 590u, 0x08A6B804u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B804u) goto L_08A6B804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B804: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(64), aot_run_words); @@ -8155,8 +9050,21 @@ L_08A6B804: } aot_gpr_31 = (0x08A6B824u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 591u, 0x08A6B824u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B824u) goto L_08A6B824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B824: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8305,8 +9213,21 @@ L_08A6B8FC: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B938u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 608u, 0x08A6B938u, 0x08829F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 186u, 0x08829F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B938u) goto L_08A6B938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B938: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8380,8 +9301,21 @@ L_08A6B9B4: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A6B9C8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 615u, 0x08A6B9C8u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B9C8u) goto L_08A6B9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B9C8: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A6B9D4u); @@ -8394,15 +9328,41 @@ L_08A6B9D4: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B9E8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 617u, 0x08A6B9E8u, 0x08941D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B9E8u) goto L_08A6B9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B9E8: aot_gpr_4 = (0u | 6u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A6B9F8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 618u, 0x08A6B9F8u, 0x08941D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6B9F8u) goto L_08A6B9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6B9F8: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8476,8 +9436,21 @@ L_08A6BA78: aot_gpr_5 = (ctx.hi); aot_gpr_31 = (0x08A6BA90u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 625u, 0x08A6BA90u, 0x088F36B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 682u, 0x088F36B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BA90u) goto L_08A6BA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6BA90: aot_gpr_4 = (0u | 1u); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8657,8 +9630,21 @@ L_08A6BBD4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08A6BBE0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 645u, 0x08A6BBE0u, 0x08827C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 578u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 578u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 578u, 0x08827C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BBE0u) goto L_08A6BBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6BBE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(560), std::bit_cast(aot_fpr_12)); @@ -8748,8 +9734,21 @@ L_08A6BC88: } aot_gpr_31 = (0x08A6BC9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 650u, 0x08A6BC9Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BC9Cu) goto L_08A6BC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6BC9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -8785,8 +9784,21 @@ L_08A6BCC4: } aot_gpr_31 = (0x08A6BCE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 653u, 0x08A6BCE4u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BCE4u) goto L_08A6BCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6BCE4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -8838,8 +9850,21 @@ L_08A6BD1C: L_08A6BD2C: aot_gpr_31 = (0x08A6BD34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 660u, 0x08A6BD34u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BD34u) goto L_08A6BD34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6BD34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9093,8 +10118,21 @@ L_08A6BF10: } aot_gpr_31 = (0x08A6BF24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 676u, 0x08A6BF24u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BF24u) goto L_08A6BF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6BF24: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -9195,8 +10233,21 @@ L_08A6BFD0: } aot_gpr_31 = (0x08A6BFE4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0153->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0153_entry, 683u, 0x08A6BFE4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6BFE4u) goto L_08A6BFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6BFE4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); diff --git a/profiles/vcs/generated/generated_unit_0154.cpp b/profiles/vcs/generated/generated_unit_0154.cpp index 52560d9..d21d16d 100644 --- a/profiles/vcs/generated/generated_unit_0154.cpp +++ b/profiles/vcs/generated/generated_unit_0154.cpp @@ -33,6 +33,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0154[64] = { 210u, 211u, 220u, 225u, 225u, 225u, 228u, 239u, 240u, 248u, 257u, 269u, 282u, 292u, 307u, 319u, 333u, 347u, 360u, 364u, 379u, 392u, 407u, 421u, 434u, 445u, 455u, 462u, 477u, 491u, 498u, 515u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0154[4092] = { + 1u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 5u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 8u, 0u, 9u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 12u, 0u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 14u, 0u, 0u, 0u, 0u, 0u, 15u, 0u, 16u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 20u, 0u, + 0u, 0u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 22u, 0u, 23u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 27u, 0u, 28u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, 30u, 0u, + 31u, 0u, 0u, 32u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 35u, 0u, 0u, 0u, 0u, 36u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 41u, 0u, 42u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 43u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 46u, 0u, 47u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 51u, 0u, + 0u, 52u, 0u, 0u, 0u, 0u, 0u, 53u, 0u, 54u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, + 0u, 0u, 57u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 0u, 0u, 60u, 0u, 61u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 63u, 0u, 0u, 64u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 67u, 0u, 0u, + 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 0u, 0u, 72u, 0u, 73u, + 0u, 74u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 0u, 0u, 0u, 79u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 80u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 84u, 0u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 86u, 0u, 0u, 87u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, 0u, 0u, 0u, 0u, 90u, 0u, 0u, 0u, 91u, 0u, 0u, 92u, 0u, 0u, + 93u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 97u, 0u, 98u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 0u, 101u, 0u, 0u, + 0u, 0u, 102u, 0u, 103u, 0u, 104u, 0u, 105u, 0u, 106u, 0u, 107u, 0u, 0u, 0u, 0u, 0u, 108u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 109u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 110u, 0u, 111u, 0u, 112u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 113u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 114u, 0u, 0u, 115u, 0u, 0u, 0u, 0u, 0u, 0u, 116u, 0u, 0u, 0u, + 117u, 0u, 0u, 0u, 118u, 0u, 0u, 0u, 119u, 120u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 0u, 0u, 123u, 0u, 0u, 0u, 124u, 0u, 0u, 0u, + 0u, 0u, 125u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 130u, 0u, 0u, 0u, + 0u, 0u, 131u, 0u, 0u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 0u, + 136u, 0u, 0u, 0u, 0u, 0u, 137u, 0u, 0u, 0u, 0u, 0u, 138u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 139u, 0u, 0u, 0u, 0u, 0u, 0u, 140u, 0u, 0u, 141u, + 0u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, 0u, 143u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 144u, 0u, 0u, 0u, 0u, 0u, 0u, 145u, 0u, 0u, 146u, 0u, + 0u, 0u, 0u, 0u, 147u, 0u, 0u, 0u, 0u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 150u, 0u, 0u, 0u, 0u, 0u, + 0u, 151u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 153u, 154u, 0u, 0u, 155u, 0u, 0u, 0u, 0u, 0u, 0u, 156u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 157u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 159u, + 0u, 0u, 0u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 161u, 0u, 0u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 163u, 0u, 0u, 164u, + 0u, 165u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 167u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 170u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 172u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, 0u, 0u, 174u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 175u, 0u, 0u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 178u, 179u, 0u, 0u, 0u, 0u, 180u, 181u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 182u, 0u, + 0u, 0u, 0u, 183u, 0u, 184u, 0u, 185u, 0u, 0u, 0u, 0u, 0u, 186u, 0u, 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 0u, 0u, 188u, 0u, 189u, 0u, 190u, + 0u, 0u, 0u, 0u, 191u, 0u, 0u, 0u, 192u, 0u, 193u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 194u, 0u, 195u, 0u, 196u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 199u, 200u, 0u, 0u, 0u, 201u, 202u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 0u, 0u, 0u, 204u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 206u, 0u, + 207u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 210u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 211u, 0u, 212u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 216u, 217u, 0u, 0u, 0u, 218u, 219u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 223u, 0u, + 224u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 225u, 0u, 0u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 228u, 229u, 0u, 0u, 0u, 230u, 231u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 233u, 0u, 0u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 236u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 239u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 240u, 0u, 0u, 0u, 0u, 0u, 241u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 246u, 0u, 247u, + 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 0u, 249u, 0u, 250u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 251u, 0u, 252u, 0u, 0u, 253u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 254u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 0u, 256u, + 0u, 0u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 0u, 0u, 0u, 0u, 259u, 260u, 0u, 0u, 0u, 261u, 0u, 0u, 0u, 0u, 0u, 262u, 0u, + 0u, 0u, 0u, 0u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 0u, 0u, 0u, 0u, 266u, 267u, 0u, 0u, 0u, 268u, 0u, + 0u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 0u, 273u, 0u, 0u, 0u, 0u, 274u, 0u, + 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 277u, 0u, 278u, 0u, 0u, 279u, 0u, 0u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, 281u, + 0u, 0u, 0u, 282u, 0u, 283u, 0u, 284u, 0u, 0u, 285u, 0u, 286u, 0u, 0u, 0u, 287u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 288u, 0u, 0u, 0u, 289u, 0u, 0u, + 0u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 292u, 0u, 0u, 293u, 0u, 0u, 0u, 294u, 0u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 296u, 0u, 297u, 0u, 0u, 0u, 298u, + 0u, 0u, 299u, 0u, 300u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 304u, 0u, 305u, 0u, 0u, 306u, 0u, 0u, + 0u, 0u, 0u, 307u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 309u, 0u, 310u, 0u, 311u, 0u, 0u, 312u, 0u, 313u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 315u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 318u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, 320u, 0u, 0u, 0u, 321u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 323u, + 324u, 0u, 0u, 0u, 325u, 0u, 0u, 326u, 0u, 327u, 0u, 328u, 0u, 0u, 0u, 329u, 0u, 0u, 0u, 0u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 332u, 0u, + 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 0u, 338u, 0u, + 0u, 339u, 0u, 340u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 346u, + 0u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, 349u, 0u, 0u, 0u, 350u, 0u, 0u, 0u, 0u, 0u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, + 0u, 0u, 0u, 0u, 0u, 353u, 0u, 354u, 0u, 0u, 355u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, 0u, 358u, 0u, 0u, 0u, 359u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 361u, 362u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, + 0u, 0u, 0u, 364u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 369u, 0u, 0u, 0u, 370u, 0u, 371u, + 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 374u, 0u, 0u, 375u, 0u, 0u, 0u, 376u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 378u, + 379u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, 0u, 381u, 0u, 0u, 382u, 0u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 0u, 0u, + 0u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 387u, 388u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 0u, 0u, 391u, 0u, 0u, 0u, 0u, + 0u, 392u, 0u, 0u, 0u, 0u, 0u, 0u, 393u, 0u, 0u, 0u, 0u, 0u, 0u, 394u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 0u, 0u, 0u, 397u, 0u, + 398u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 399u, 0u, 0u, 0u, 0u, 400u, 0u, 401u, 0u, 0u, 0u, 402u, 0u, 403u, 0u, 404u, 0u, 405u, 0u, 406u, 0u, 0u, + 407u, 0u, 408u, 0u, 0u, 0u, 0u, 0u, 0u, 409u, 0u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 411u, 0u, 412u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 413u, + 0u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, 0u, 0u, 416u, 0u, 0u, 417u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 419u, 0u, 420u, 0u, + 421u, 0u, 422u, 0u, 0u, 423u, 0u, 0u, 0u, 424u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, 0u, 427u, 0u, + 0u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 430u, 0u, 0u, 0u, 0u, 0u, 0u, 431u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 0u, 0u, + 434u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 436u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, + 439u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 441u, 0u, 0u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 443u, 0u, 0u, 0u, 0u, 0u, 444u, + 0u, 0u, 0u, 445u, 0u, 446u, 0u, 0u, 447u, 0u, 448u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 454u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, 0u, 0u, 456u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 458u, + 0u, 0u, 0u, 0u, 0u, 459u, 0u, 0u, 0u, 460u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, + 462u, 0u, 0u, 0u, 463u, 0u, 464u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 468u, 0u, 0u, 0u, 0u, 0u, 0u, 469u, + 470u, 0u, 471u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 474u, 0u, 0u, 0u, 475u, 0u, 0u, 476u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 479u, 0u, 480u, 0u, 0u, 0u, 481u, 0u, 0u, 482u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 485u, 0u, 486u, 487u, 0u, 488u, 0u, 0u, 489u, 0u, 490u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 0u, 0u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 494u, 0u, 0u, 0u, 0u, 0u, 0u, 495u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, + 0u, 0u, 0u, 0u, 498u, 0u, 0u, 0u, 499u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 501u, 0u, 0u, 0u, 502u, 503u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 504u, 0u, 0u, 0u, 505u, 0u, 506u, 0u, 507u, 0u, 0u, 508u, 0u, 509u, 0u, 0u, 510u, 511u, 0u, 0u, 512u, 0u, 513u, 0u, 0u, 0u, 0u, 514u, 0u, 0u, + 515u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 516u, 0u, 517u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 518u, 519u, 0u, 0u, 0u, 520u, 0u, 521u, 0u, 0u, + 0u, 522u, 0u, 0u, 0u, 523u, 0u, 0u, 0u, 524u, 525u, 0u, 0u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 527u, +}; void recomp_unit_0154_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,29,5,6,19,16 fprs=12,13,14,15 gpr_occ=3548 fpr_occ=1338 gpr_total=4453 fpr_total=1768 @@ -59,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08A6C000u; - entry_id = 0u; - if (entry_delta < 16368u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0154[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0154[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16368u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0154[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08A6C000; @@ -606,6 +729,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A6C000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -640,8 +787,21 @@ L_08A6C00C: aot_gpr_4 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08A6C03Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 3u, 0x08A6C03Cu, 0x08A65CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 405u, 0x08A65CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6C03Cu) goto L_08A6C03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6C03C: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1126,8 +1286,21 @@ L_08A6C350: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.gpr[31] = (0x08A6C364u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 19u, 0x08A6C364u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6C364u) goto L_08A6C364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6C364: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -1144,8 +1317,21 @@ L_08A6C378: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); ctx.gpr[31] = (0x08A6C38Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 21u, 0x08A6C38Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6C38Cu) goto L_08A6C38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6C38C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -1155,8 +1341,21 @@ L_08A6C38C: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); ctx.gpr[31] = (0x08A6C3ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 22u, 0x08A6C3ACu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6C3ACu) goto L_08A6C3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6C3AC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1666,8 +1865,21 @@ L_08A6C6E4: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.gpr[31] = (0x08A6C6F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 36u, 0x08A6C6F8u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6C6F8u) goto L_08A6C6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6C6F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); @@ -1677,8 +1889,21 @@ L_08A6C6F8: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[31] = (0x08A6C718u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 37u, 0x08A6C718u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6C718u) goto L_08A6C718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6C718: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -1764,8 +1989,21 @@ L_08A6C7B8: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); ctx.gpr[31] = (0x08A6C7CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 46u, 0x08A6C7CCu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6C7CCu) goto L_08A6C7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6C7CC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2588,16 +2826,42 @@ L_08A6CC8C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x08A6CCC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 65u, 0x08A6CCC0u, 0x08A65DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 415u, 0x08A65DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CCC0u) goto L_08A6CCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CCC0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); ctx.gpr[31] = (0x08A6CCD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 66u, 0x08A6CCD4u, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CCD4u) goto L_08A6CCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CCD4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -2607,8 +2871,21 @@ L_08A6CCD4: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[31] = (0x08A6CCF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 67u, 0x08A6CCF4u, 0x08A68570u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 46u, 0x08A68570u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CCF4u) goto L_08A6CCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CCF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -2684,8 +2961,21 @@ L_08A6CD84: aot_gpr_5 = (aot_gpr_5 | 52429u); ctx.gpr[31] = (0x08A6CD98u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 75u, 0x08A6CD98u, 0x08A65DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 416u, 0x08A65DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CD98u) goto L_08A6CD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CD98: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8421))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2702,22 +2992,61 @@ L_08A6CDA4: aot_gpr_5 = (aot_gpr_29 + static_cast(80)); ctx.gpr[31] = (0x08A6CDC0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 77u, 0x08A6CDC0u, 0x08A65CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 406u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 406u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 406u, 0x08A65CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CDC0u) goto L_08A6CDC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CDC0: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); ctx.gpr[31] = (0x08A6CDCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 78u, 0x08A6CDCCu, 0x08A65DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 415u, 0x08A65DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CDCCu) goto L_08A6CDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CDCC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); ctx.gpr[31] = (0x08A6CDE0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 79u, 0x08A6CDE0u, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CDE0u) goto L_08A6CDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CDE0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -2727,8 +3056,21 @@ L_08A6CDE0: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); ctx.gpr[31] = (0x08A6CE00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 80u, 0x08A6CE00u, 0x08A68570u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 46u, 0x08A68570u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CE00u) goto L_08A6CE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CE00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -2744,8 +3086,21 @@ L_08A6CE10: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.gpr[31] = (0x08A6CE24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 82u, 0x08A6CE24u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CE24u) goto L_08A6CE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CE24: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); @@ -2755,8 +3110,21 @@ L_08A6CE24: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[31] = (0x08A6CE44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 83u, 0x08A6CE44u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CE44u) goto L_08A6CE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CE44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); aot_gpr_4 = (aot_gpr_4 & 4u); @@ -2786,21 +3154,60 @@ L_08A6CE6C: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A6CE8Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 86u, 0x08A6CE8Cu, 0x08A65CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 407u, 0x08A65CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CE8Cu) goto L_08A6CE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CE8C: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6CE98u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 87u, 0x08A6CE98u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CE98u) goto L_08A6CE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CE98: aot_gpr_19 = (ctx.gpr[17] + static_cast(112)); aot_gpr_4 = (aot_gpr_19 | 0u); ctx.gpr[31] = (0x08A6CEA8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 88u, 0x08A6CEA8u, 0x08A65DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 416u, 0x08A65DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CEA8u) goto L_08A6CEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CEA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(200)); @@ -2828,20 +3235,59 @@ L_08A6CED8: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A6CEE8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 91u, 0x08A6CEE8u, 0x08A65CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 407u, 0x08A65CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CEE8u) goto L_08A6CEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CEE8: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6CEF4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 92u, 0x08A6CEF4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CEF4u) goto L_08A6CEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CEF4: aot_gpr_4 = (aot_gpr_19 | 0u); ctx.gpr[31] = (0x08A6CF00u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 93u, 0x08A6CF00u, 0x08A65DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 416u, 0x08A65DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CF00u) goto L_08A6CF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CF00: aot_gpr_4 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -2859,8 +3305,21 @@ L_08A6CF24: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); ctx.gpr[31] = (0x08A6CF38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 95u, 0x08A6CF38u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CF38u) goto L_08A6CF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CF38: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -2870,8 +3329,21 @@ L_08A6CF38: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); ctx.gpr[31] = (0x08A6CF58u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 96u, 0x08A6CF58u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6CF58u) goto L_08A6CF58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6CF58: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2905,8 +3377,8 @@ L_08A6CF68: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2088))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(2096)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6CFA8: @@ -3102,8 +3574,21 @@ L_08A6D08C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x08A6D110u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 110u, 0x08A6D110u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6D110u) goto L_08A6D110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6D110: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -4148,8 +4633,8 @@ L_08A6D858: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(616))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(624)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6D87C: @@ -4497,16 +4982,42 @@ L_08A6DAB0: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); ctx.gpr[31] = (0x08A6DAF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 182u, 0x08A6DAF8u, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6DAF8u) goto L_08A6DAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6DAF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); ctx.gpr[31] = (0x08A6DB0Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 183u, 0x08A6DB0Cu, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6DB0Cu) goto L_08A6DB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6DB0C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -4578,8 +5089,21 @@ L_08A6DB7C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_19 + static_cast(0)))))); ctx.gpr[31] = (0x08A6DB90u); ctx.gpr[20] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 191u, 0x08A6DB90u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6DB90u) goto L_08A6DB90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6DB90: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_19 + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -5101,16 +5625,42 @@ L_08A6DE74: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(296))); ctx.gpr[31] = (0x08A6DEBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 203u, 0x08A6DEBCu, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6DEBCu) goto L_08A6DEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6DEBC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(304))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(308))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(312))); ctx.gpr[31] = (0x08A6DED0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 204u, 0x08A6DED0u, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6DED0u) goto L_08A6DED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6DED0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(304))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(308))); @@ -5120,8 +5670,21 @@ L_08A6DED0: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(216))); ctx.gpr[31] = (0x08A6DEF0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 205u, 0x08A6DEF0u, 0x08A68570u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 46u, 0x08A68570u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6DEF0u) goto L_08A6DEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6DEF0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -5366,8 +5929,21 @@ L_08A6DF34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(344), std::bit_cast(aot_fpr_13)); ctx.gpr[31] = (0x08A6E068u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 210u, 0x08A6E068u, 0x08A65CF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 407u, 0x08A65CF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E068u) goto L_08A6E068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E068: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5655,8 +6231,21 @@ L_08A6E1F4: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(472))); ctx.gpr[31] = (0x08A6E23Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 220u, 0x08A6E23Cu, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E23Cu) goto L_08A6E23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E23C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(464))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(468))); @@ -5666,16 +6255,42 @@ L_08A6E23C: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(392))); ctx.gpr[31] = (0x08A6E25Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 221u, 0x08A6E25Cu, 0x08A68570u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 46u, 0x08A68570u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E25Cu) goto L_08A6E25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E25C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(480))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(484))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(488))); ctx.gpr[31] = (0x08A6E270u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 222u, 0x08A6E270u, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E270u) goto L_08A6E270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E270: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -6361,8 +6976,21 @@ L_08A6E620: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(696))); ctx.gpr[31] = (0x08A6E668u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 232u, 0x08A6E668u, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E668u) goto L_08A6E668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E668: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(688))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(692))); @@ -6372,16 +7000,42 @@ L_08A6E668: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(584))); ctx.gpr[31] = (0x08A6E688u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 233u, 0x08A6E688u, 0x08A68570u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 46u, 0x08A68570u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E688u) goto L_08A6E688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E688: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(708))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(712))); ctx.gpr[31] = (0x08A6E69Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 234u, 0x08A6E69Cu, 0x08A68528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 44u, 0x08A68528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E69Cu) goto L_08A6E69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E69C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(708))); @@ -6391,8 +7045,21 @@ L_08A6E69C: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(600))); ctx.gpr[31] = (0x08A6E6BCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 235u, 0x08A6E6BCu, 0x08A68570u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 46u, 0x08A68570u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E6BCu) goto L_08A6E6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E6BC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -6422,8 +7089,8 @@ L_08A6E6CC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1764))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(1776)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A6E6FC: @@ -6470,8 +7137,21 @@ L_08A6E6FC: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A6E7A8u); aot_gpr_5 = (aot_gpr_19 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 239u, 0x08A6E7A8u, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6E7A8u) goto L_08A6E7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6E7A8: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7227,14 +7907,40 @@ L_08A6ED10: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6ED20u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 294u, 0x08A6ED20u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ED20u) goto L_08A6ED20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6ED20: aot_gpr_4 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x08A6ED2Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 295u, 0x08A6ED2Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ED2Cu) goto L_08A6ED2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6ED2C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7320,8 +8026,21 @@ L_08A6ED7C: L_08A6ED88: ctx.gpr[31] = (0x08A6ED90u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 300u, 0x08A6ED90u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6ED90u) goto L_08A6ED90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6ED90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7599,14 +8318,40 @@ L_08A6EF28: aot_gpr_4 = (aot_gpr_19 | 0u); ctx.gpr[31] = (0x08A6EF38u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 321u, 0x08A6EF38u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6EF38u) goto L_08A6EF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6EF38: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08A6EF44u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 322u, 0x08A6EF44u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6EF44u) goto L_08A6EF44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6EF44: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7691,8 +8436,21 @@ L_08A6EF90: L_08A6EF9C: ctx.gpr[31] = (0x08A6EFA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 327u, 0x08A6EFA4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6EFA4u) goto L_08A6EFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6EFA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7969,8 +8727,21 @@ L_08A6F1A8: aot_gpr_6 = (aot_gpr_29 + static_cast(1248)); ctx.gpr[31] = (0x08A6F1B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 356u, 0x08A6F1B8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6F1B8u) goto L_08A6F1B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6F1B8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1248))); @@ -8286,8 +9057,21 @@ L_08A6F3C8: aot_gpr_6 = (aot_gpr_29 + static_cast(1328)); ctx.gpr[31] = (0x08A6F3D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 376u, 0x08A6F3D8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6F3D8u) goto L_08A6F3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6F3D8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1328))); @@ -8677,8 +9461,21 @@ L_08A6F6CC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); ctx.gpr[31] = (0x08A6F6E0u); ctx.gpr[20] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 418u, 0x08A6F6E0u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6F6E0u) goto L_08A6F6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6F6E0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -8725,8 +9522,21 @@ L_08A6F714: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6F724u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 424u, 0x08A6F724u, 0x089283E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 69u, 0x089283E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6F724u) goto L_08A6F724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6F724: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -8830,8 +9640,21 @@ L_08A6F800: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6F814u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 435u, 0x08A6F814u, 0x08A66490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 528u, 0x08A66490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6F814u) goto L_08A6F814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6F814: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_19 + static_cast(852))); aot_gpr_5 = (0u | 1u); @@ -8957,8 +9780,21 @@ L_08A6F8FC: L_08A6F90C: ctx.gpr[31] = (0x08A6F914u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 446u, 0x08A6F914u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6F914u) goto L_08A6F914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6F914: aot_gpr_4 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -9050,8 +9886,21 @@ L_08A6F9C4: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6F9E0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 453u, 0x08A6F9E0u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6F9E0u) goto L_08A6F9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6F9E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9101,8 +9950,21 @@ L_08A6FA24: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6FA40u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 456u, 0x08A6FA40u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FA40u) goto L_08A6FA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FA40: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9196,8 +10058,21 @@ L_08A6FAE4: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6FB00u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 462u, 0x08A6FB00u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FB00u) goto L_08A6FB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FB00: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[21]) ? 1u : 0u); @@ -9264,8 +10139,21 @@ L_08A6FB7C: L_08A6FB80: ctx.gpr[31] = (0x08A6FB88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 471u, 0x08A6FB88u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FB88u) goto L_08A6FB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FB88: ctx.fpr[20] = ctx.fpr[0] / ctx.fpr[24]; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_19 + static_cast(72))); @@ -9297,8 +10185,21 @@ L_08A6FBC4: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6FBD8u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 474u, 0x08A6FBD8u, 0x08A66490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 528u, 0x08A66490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FBD8u) goto L_08A6FBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FBD8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_19 + static_cast(852))); aot_gpr_6 = (0u | 1u); @@ -9440,8 +10341,21 @@ L_08A6FCD8: L_08A6FCDC: ctx.gpr[31] = (0x08A6FCE4u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 488u, 0x08A6FCE4u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FCE4u) goto L_08A6FCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FCE4: aot_gpr_4 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -9533,8 +10447,21 @@ L_08A6FD94: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6FDB0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 495u, 0x08A6FDB0u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FDB0u) goto L_08A6FDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FDB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9584,8 +10511,21 @@ L_08A6FDF4: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A6FE10u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 498u, 0x08A6FE10u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FE10u) goto L_08A6FE10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FE10: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_19 + static_cast(86)))))); aot_gpr_5 = (0u + static_cast(-943)); @@ -9665,8 +10605,21 @@ L_08A6FE98: L_08A6FEA0: ctx.gpr[31] = (0x08A6FEA8u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 507u, 0x08A6FEA8u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FEA8u) goto L_08A6FEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FEA8: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -9679,8 +10632,21 @@ L_08A6FEA8: L_08A6FEB4: ctx.gpr[31] = (0x08A6FEBCu); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(30))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 509u, 0x08A6FEBCu, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FEBCu) goto L_08A6FEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FEBC: aot_gpr_4 = (0u | 4u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -9772,8 +10738,21 @@ L_08A6FF5C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); ctx.gpr[31] = (0x08A6FF6Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0154->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0154_entry, 520u, 0x08A6FF6Cu, 0x08A68610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 48u, 0x08A68610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A6FF6Cu) goto L_08A6FF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A6FF6C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (0u + static_cast(-4097)); diff --git a/profiles/vcs/generated/generated_unit_0155.cpp b/profiles/vcs/generated/generated_unit_0155.cpp index c8d8ab7..2dabb56 100644 --- a/profiles/vcs/generated/generated_unit_0155.cpp +++ b/profiles/vcs/generated/generated_unit_0155.cpp @@ -33,6 +33,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0155[64] = { 427u, 433u, 436u, 441u, 451u, 463u, 475u, 486u, 492u, 497u, 504u, 511u, 517u, 523u, 532u, 542u, 548u, 556u, 572u, 592u, 605u, 618u, 627u, 642u, 653u, 660u, 671u, 680u, 694u, 709u, 720u, 732u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0155[4094] = { + 1u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 5u, + 0u, 6u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 8u, 0u, 9u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 10u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 12u, 0u, 0u, 0u, 13u, 0u, 14u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 0u, 17u, 0u, + 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 20u, 0u, 0u, 21u, 0u, 0u, 0u, 22u, 0u, 0u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, + 0u, 0u, 26u, 0u, 0u, 0u, 0u, 27u, 0u, 0u, 0u, 28u, 0u, 0u, 29u, 0u, 30u, 0u, 31u, 0u, 32u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 33u, 0u, + 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, + 39u, 0u, 40u, 0u, 0u, 0u, 0u, 41u, 42u, 0u, 0u, 0u, 0u, 43u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, + 0u, 46u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 0u, 0u, 0u, 0u, 0u, 52u, 0u, 0u, + 0u, 53u, 0u, 54u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 57u, 0u, 0u, 0u, 0u, 0u, 58u, 0u, 59u, 0u, 0u, 0u, 0u, 60u, 61u, 0u, 0u, 0u, 0u, 62u, + 63u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 64u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 67u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 72u, 0u, 0u, 0u, 0u, 73u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 75u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 78u, 0u, 79u, 0u, 0u, 0u, 0u, 0u, 80u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 84u, 0u, 0u, 0u, 0u, 85u, 86u, 0u, 0u, 0u, 0u, 87u, 88u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 89u, 0u, 0u, 0u, 0u, 0u, 90u, 0u, 0u, 0u, 91u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, 0u, + 0u, 93u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 95u, + 0u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 97u, 0u, 0u, 0u, 0u, 98u, 0u, 99u, 0u, 0u, 100u, 0u, 0u, 101u, 0u, 0u, 0u, 102u, 0u, 103u, 0u, 104u, 0u, 0u, + 0u, 0u, 105u, 0u, 0u, 106u, 0u, 0u, 107u, 0u, 108u, 0u, 0u, 0u, 109u, 0u, 0u, 0u, 0u, 110u, 0u, 0u, 0u, 0u, 0u, 111u, 0u, 112u, 0u, 0u, 0u, 0u, + 113u, 114u, 0u, 0u, 0u, 0u, 115u, 0u, 116u, 0u, 0u, 0u, 0u, 117u, 0u, 0u, 0u, 118u, 0u, 0u, 119u, 0u, 0u, 0u, 0u, 0u, 120u, 0u, 121u, 0u, 0u, 0u, + 122u, 0u, 0u, 123u, 0u, 0u, 0u, 0u, 0u, 124u, 0u, 125u, 0u, 0u, 126u, 0u, 0u, 0u, 127u, 0u, 0u, 128u, 0u, 0u, 0u, 129u, 0u, 130u, 0u, 0u, 0u, 0u, + 0u, 131u, 0u, 132u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 134u, 0u, 135u, 0u, 0u, 0u, 0u, 136u, 0u, 0u, 0u, 0u, 137u, 0u, 0u, 138u, 0u, + 0u, 139u, 0u, 0u, 0u, 140u, 0u, 141u, 0u, 0u, 142u, 0u, 143u, 0u, 144u, 0u, 145u, 0u, 146u, 0u, 0u, 0u, 147u, 0u, 148u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, + 0u, 150u, 0u, 0u, 0u, 151u, 0u, 152u, 0u, 0u, 0u, 153u, 0u, 154u, 0u, 155u, 0u, 156u, 0u, 157u, 0u, 0u, 0u, 158u, 159u, 0u, 0u, 0u, 0u, 160u, 0u, 161u, + 0u, 162u, 0u, 0u, 163u, 0u, 164u, 0u, 165u, 0u, 166u, 0u, 167u, 0u, 168u, 0u, 169u, 0u, 0u, 0u, 170u, 0u, 0u, 0u, 171u, 0u, 172u, 0u, 173u, 0u, 0u, 174u, + 0u, 0u, 175u, 0u, 176u, 0u, 177u, 0u, 0u, 178u, 0u, 179u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 0u, 0u, 181u, 0u, 0u, 182u, 0u, 183u, 0u, 0u, 0u, 0u, 0u, + 184u, 0u, 0u, 0u, 185u, 0u, 186u, 0u, 0u, 187u, 0u, 0u, 188u, 0u, 0u, 0u, 189u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 191u, 0u, 0u, 192u, 0u, 193u, 0u, + 194u, 0u, 195u, 0u, 196u, 0u, 197u, 0u, 198u, 0u, 199u, 0u, 200u, 0u, 201u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, 203u, 0u, 204u, 0u, 205u, 0u, 0u, 206u, 0u, 0u, + 207u, 0u, 208u, 0u, 209u, 0u, 0u, 210u, 0u, 211u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 213u, 0u, 0u, 214u, 0u, 0u, 215u, 0u, 0u, 0u, 0u, 216u, 0u, + 0u, 0u, 217u, 0u, 218u, 0u, 0u, 219u, 0u, 0u, 220u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 223u, 0u, 0u, 224u, 0u, 225u, 0u, 0u, 226u, + 0u, 0u, 227u, 0u, 228u, 0u, 229u, 0u, 230u, 0u, 231u, 0u, 232u, 0u, 233u, 0u, 234u, 0u, 0u, 235u, 0u, 0u, 236u, 0u, 0u, 237u, 0u, 238u, 0u, 239u, 0u, 240u, + 0u, 241u, 0u, 242u, 0u, 243u, 0u, 244u, 0u, 245u, 0u, 0u, 246u, 0u, 247u, 0u, 248u, 0u, 249u, 0u, 250u, 0u, 251u, 0u, 252u, 0u, 253u, 0u, 0u, 254u, 0u, 255u, + 0u, 256u, 0u, 257u, 0u, 258u, 0u, 259u, 0u, 0u, 260u, 0u, 261u, 0u, 262u, 0u, 263u, 0u, 264u, 0u, 265u, 0u, 0u, 266u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 268u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 0u, 273u, 0u, 274u, 0u, 275u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 277u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 0u, 279u, 0u, 0u, 0u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, 281u, 0u, 282u, 0u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 0u, + 0u, 0u, 0u, 0u, 284u, 0u, 0u, 0u, 285u, 0u, 0u, 0u, 286u, 0u, 287u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 290u, 291u, 0u, 292u, 0u, 0u, 0u, 293u, + 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 296u, 297u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 298u, 0u, 299u, 0u, 300u, 0u, 0u, 0u, 0u, 0u, 0u, 301u, 0u, 302u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, + 0u, 305u, 0u, 0u, 0u, 0u, 306u, 0u, 0u, 0u, 0u, 307u, 308u, 0u, 0u, 0u, 0u, 0u, 309u, 0u, 0u, 0u, 0u, 0u, 0u, 310u, 311u, 0u, 0u, 0u, 0u, 0u, + 0u, 312u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, 0u, 0u, 0u, 315u, 316u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 318u, 0u, + 0u, 0u, 0u, 319u, 0u, 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 322u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 0u, 0u, 0u, + 0u, 0u, 325u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 329u, 0u, 330u, 0u, 331u, 0u, 0u, 332u, 0u, 333u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 334u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 338u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 339u, 0u, 0u, 340u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 344u, 0u, 0u, 0u, 345u, 0u, 0u, 346u, 0u, 347u, 0u, 348u, 0u, 0u, 349u, 350u, 0u, 351u, 0u, 0u, + 0u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 0u, 354u, 0u, 0u, 0u, 0u, 0u, 0u, 355u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 357u, + 0u, 358u, 0u, 359u, 0u, 0u, 360u, 0u, 361u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 363u, 0u, 0u, 0u, 0u, 0u, 0u, 364u, 0u, 0u, + 0u, 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, 368u, 0u, 0u, 0u, 369u, 0u, 0u, + 370u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 371u, 372u, 0u, 0u, 0u, 373u, 0u, 0u, 374u, 0u, 375u, 0u, 376u, 0u, 0u, 377u, + 378u, 0u, 379u, 0u, 0u, 0u, 380u, 0u, 0u, 0u, 381u, 382u, 0u, 0u, 0u, 0u, 0u, 383u, 0u, 384u, 0u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 0u, 0u, 386u, 0u, + 0u, 0u, 387u, 0u, 388u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 0u, 390u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, 393u, 394u, 0u, 395u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 397u, 0u, 0u, 0u, 0u, 398u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 399u, 400u, 0u, 0u, 0u, 0u, 401u, + 0u, 0u, 402u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 0u, 405u, 0u, 406u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 0u, 0u, 0u, 409u, + 0u, 0u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 412u, 0u, 0u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 0u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 416u, 417u, 0u, 0u, 0u, 418u, 419u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 421u, 0u, 0u, 0u, 0u, 0u, 0u, 422u, 0u, 0u, 0u, 0u, 0u, + 0u, 423u, 0u, 0u, 0u, 424u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 427u, 0u, 0u, 428u, 0u, 0u, + 0u, 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 437u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 439u, 0u, 440u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 441u, 442u, 0u, 443u, 0u, 0u, 0u, 444u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 446u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 447u, 0u, 448u, 449u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 454u, 0u, 455u, 0u, 0u, 0u, 456u, 0u, 457u, 0u, 458u, 0u, 0u, 459u, 0u, 460u, 0u, 461u, 0u, 462u, + 0u, 0u, 463u, 0u, 0u, 464u, 465u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 469u, 470u, 0u, 471u, 0u, 472u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 476u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 479u, 0u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, 0u, 0u, 482u, 0u, 0u, 0u, 483u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 485u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 489u, 0u, 0u, 0u, 0u, 0u, 490u, 0u, 0u, 491u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, 0u, 494u, + 0u, 495u, 0u, 0u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 498u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, + 0u, 0u, 0u, 504u, 0u, 0u, 505u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 0u, 0u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 510u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 511u, 0u, 0u, 0u, 512u, 0u, 0u, 0u, 0u, 0u, 513u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 514u, 0u, 515u, 0u, 0u, 0u, 0u, 0u, 516u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 517u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 518u, 0u, 519u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 520u, 0u, 0u, 0u, 0u, 0u, 521u, 0u, 0u, 522u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 523u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 525u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 526u, 0u, + 0u, 0u, 0u, 0u, 527u, 0u, 528u, 0u, 0u, 0u, 0u, 529u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, 0u, 0u, 0u, + 532u, 0u, 533u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 534u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 537u, 0u, 538u, 0u, 0u, 0u, 539u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 540u, 0u, 541u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 0u, 543u, 0u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 0u, 0u, 0u, 0u, 546u, 0u, 0u, 547u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 548u, 0u, 0u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, 0u, + 0u, 0u, 0u, 0u, 551u, 0u, 552u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 553u, 0u, 0u, 0u, 554u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 557u, 0u, 558u, 0u, 0u, 0u, 0u, 0u, 0u, 559u, 0u, 0u, 0u, 560u, 0u, 561u, 0u, 562u, 0u, 0u, 563u, 564u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 565u, 0u, 0u, 0u, 0u, 566u, 0u, 0u, 567u, 0u, 0u, 568u, 0u, 0u, 569u, 0u, 570u, 0u, 571u, 0u, + 572u, 0u, 573u, 0u, 0u, 574u, 0u, 575u, 0u, 576u, 0u, 577u, 0u, 578u, 0u, 579u, 0u, 580u, 0u, 581u, 0u, 582u, 0u, 583u, 584u, 0u, 585u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 586u, 0u, 0u, 0u, 587u, 0u, 0u, 588u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 590u, 0u, 591u, 0u, 0u, 0u, 0u, + 0u, 0u, 592u, 593u, 0u, 0u, 0u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 0u, 0u, 0u, 596u, 0u, + 0u, 0u, 597u, 0u, 598u, 0u, 599u, 0u, 0u, 0u, 600u, 0u, 0u, 0u, 601u, 0u, 0u, 0u, 0u, 602u, 0u, 0u, 0u, 0u, 603u, 0u, 0u, 0u, 604u, 0u, 0u, 0u, + 605u, 0u, 0u, 606u, 0u, 0u, 0u, 607u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 608u, 609u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 610u, 0u, 0u, 0u, 611u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 613u, 0u, 0u, 614u, 0u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 616u, 0u, 0u, 0u, 617u, + 0u, 0u, 0u, 0u, 0u, 618u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 0u, 620u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 621u, 0u, 622u, + 623u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 624u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 626u, + 0u, 0u, 0u, 627u, 0u, 628u, 0u, 629u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 631u, 0u, 0u, 0u, 632u, 0u, 0u, 0u, 0u, 633u, 0u, 0u, 0u, 634u, 0u, 0u, 0u, + 635u, 0u, 0u, 0u, 0u, 0u, 0u, 636u, 0u, 0u, 0u, 0u, 0u, 0u, 637u, 0u, 638u, 0u, 639u, 0u, 0u, 0u, 640u, 0u, 0u, 0u, 641u, 0u, 0u, 0u, 0u, 0u, + 0u, 642u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 643u, 0u, 0u, 644u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 646u, 0u, 0u, 0u, 0u, 647u, 0u, 0u, 0u, + 648u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 649u, 0u, 650u, 651u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 653u, 0u, 0u, 0u, 654u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, 656u, 0u, 0u, 0u, 657u, 0u, 0u, 658u, 0u, 0u, 0u, 0u, 0u, 0u, 659u, 0u, 0u, 0u, + 0u, 660u, 0u, 0u, 0u, 661u, 0u, 0u, 0u, 0u, 662u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 663u, 0u, 0u, 0u, 0u, 664u, + 0u, 0u, 0u, 665u, 0u, 0u, 0u, 666u, 0u, 0u, 0u, 667u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 668u, 0u, 0u, 0u, 669u, 0u, 670u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 671u, 0u, 0u, 0u, 672u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 673u, 0u, 0u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 675u, 0u, 0u, 0u, 0u, 676u, 0u, 677u, 678u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 679u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 682u, 0u, 0u, 0u, 683u, 0u, 684u, 0u, 685u, 0u, 0u, 0u, + 686u, 0u, 0u, 0u, 687u, 0u, 0u, 0u, 688u, 0u, 0u, 0u, 0u, 689u, 0u, 0u, 0u, 690u, 0u, 0u, 0u, 691u, 0u, 0u, 692u, 0u, 0u, 0u, 0u, 693u, 0u, 0u, + 0u, 694u, 0u, 0u, 0u, 0u, 695u, 0u, 0u, 0u, 0u, 696u, 0u, 0u, 0u, 697u, 0u, 0u, 0u, 698u, 0u, 0u, 0u, 699u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 701u, + 0u, 0u, 0u, 702u, 0u, 0u, 0u, 0u, 703u, 0u, 0u, 0u, 0u, 704u, 0u, 0u, 0u, 705u, 0u, 0u, 0u, 706u, 0u, 0u, 0u, 707u, 0u, 0u, 0u, 708u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 709u, 0u, 0u, 0u, 710u, 0u, 0u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 713u, 0u, + 714u, 0u, 0u, 0u, 715u, 0u, 0u, 716u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 717u, 0u, 718u, 719u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 720u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 721u, 0u, 722u, 0u, 723u, 0u, 0u, 724u, 0u, 725u, 0u, 726u, 0u, 0u, 0u, 0u, + 0u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 728u, 0u, 729u, 0u, 0u, 0u, 0u, 0u, 0u, 730u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 731u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 732u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 733u, 0u, 0u, 0u, 734u, 735u, 0u, 736u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 737u, 0u, 0u, + 0u, 738u, 0u, 0u, 0u, 739u, 0u, 0u, 0u, 740u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 741u, 0u, 0u, 0u, 0u, 742u, +}; void recomp_unit_0155_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,6,31,16 fprs=12,13,20,14 gpr_occ=3993 fpr_occ=762 gpr_total=5353 fpr_total=906 @@ -59,18 +192,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08A70004u; - entry_id = 0u; - if (entry_delta < 16376u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0155[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0155[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16376u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0155[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08A70004; @@ -821,6 +944,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A70004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -894,15 +1041,41 @@ L_08A70054: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70070u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 4u, 0x08A70070u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70070u) goto L_08A70070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70070: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A70080u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 5u, 0x08A70080u, 0x08A68610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 48u, 0x08A68610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70080u) goto L_08A70080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70080: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (0u + static_cast(-4097)); @@ -983,8 +1156,21 @@ L_08A700B0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A700F8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 10u, 0x08A700F8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A700F8u) goto L_08A700F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A700F8: aot_gpr_4 = (std::bit_cast(aot_fpr_20)); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1208,8 +1394,21 @@ L_08A702A0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A702B0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 28u, 0x08A702B0u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A702B0u) goto L_08A702B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A702B0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8425))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1316,8 +1515,21 @@ L_08A7036C: ctx.gpr[8] = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08A70384u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 39u, 0x08A70384u, 0x08A6AD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 490u, 0x08A6AD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70384u) goto L_08A70384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70384: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1526,8 +1738,21 @@ L_08A704DC: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A704F8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 52u, 0x08A704F8u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A704F8u) goto L_08A704F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A704F8: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[30]) ? 1u : 0u); @@ -1650,8 +1875,21 @@ L_08A705B4: ctx.gpr[8] = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08A705CCu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 58u, 0x08A705CCu, 0x08A6AD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 490u, 0x08A6AD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A705CCu) goto L_08A705CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A705CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1860,21 +2098,60 @@ L_08A70724: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70740u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 71u, 0x08A70740u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70740u) goto L_08A70740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70740: aot_gpr_31 = (0x08A70748u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 72u, 0x08A70748u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70748u) goto L_08A70748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70748: aot_fpr_12 = ctx.fpr[0] / aot_fpr_20; aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A7075Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0154. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 73u, 0x08A7075Cu, 0x08A6D87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 172u, 0x08A6D87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7075Cu) goto L_08A7075C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7075C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (0u + static_cast(-4097)); @@ -2065,8 +2342,21 @@ L_08A70890: ctx.gpr[8] = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08A708A8u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 83u, 0x08A708A8u, 0x08A6AD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 490u, 0x08A6AD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A708A8u) goto L_08A708A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A708A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2275,21 +2565,60 @@ L_08A70A00: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70A1Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 96u, 0x08A70A1Cu, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70A1Cu) goto L_08A70A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70A1C: aot_gpr_31 = (0x08A70A24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 97u, 0x08A70A24u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70A24u) goto L_08A70A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70A24: aot_fpr_12 = ctx.fpr[0] / aot_fpr_20; aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70A38u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0154. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 98u, 0x08A70A38u, 0x08A6D87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 172u, 0x08A6D87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70A38u) goto L_08A70A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70A38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2301,14 +2630,40 @@ L_08A70A40: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A70A4Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 100u, 0x08A70A4Cu, 0x08A65F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 438u, 0x08A65F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70A4Cu) goto L_08A70A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70A4C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70A58u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 101u, 0x08A70A58u, 0x08A65F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 438u, 0x08A65F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70A58u) goto L_08A70A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70A58: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[30]) ? 1u : 0u); @@ -2322,8 +2677,21 @@ L_08A70A58: L_08A70A68: aot_gpr_31 = (0x08A70A70u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 103u, 0x08A70A70u, 0x08A65F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 439u, 0x08A65F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70A70u) goto L_08A70A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70A70: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2337,20 +2705,59 @@ L_08A70A78: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70A8Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 105u, 0x08A70A8Cu, 0x08A65F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 438u, 0x08A65F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70A8Cu) goto L_08A70A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70A8C: aot_gpr_5 = (aot_gpr_29 + static_cast(784)); aot_gpr_31 = (0x08A70A98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 106u, 0x08A70A98u, 0x08A65DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 415u, 0x08A65DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70A98u) goto L_08A70A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70A98: aot_gpr_5 = (aot_gpr_29 + static_cast(800)); aot_gpr_31 = (0x08A70AA4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 107u, 0x08A70AA4u, 0x08A65DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 415u, 0x08A65DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70AA4u) goto L_08A70AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70AA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2382,8 +2789,21 @@ L_08A70AD0: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A70AE8u); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 111u, 0x08A70AE8u, 0x08A6AD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 490u, 0x08A6AD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70AE8u) goto L_08A70AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70AE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2421,21 +2841,60 @@ L_08A70B24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1608), ctx.gpr[23]); aot_gpr_31 = (0x08A70B38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 117u, 0x08A70B38u, 0x08A65F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 442u, 0x08A65F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70B38u) goto L_08A70B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70B38: ctx.gpr[23] = (ctx.gpr[2] | 0u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08A70B48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 118u, 0x08A70B48u, 0x08A65F50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 440u, 0x08A65F50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70B48u) goto L_08A70B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70B48: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A70B54u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 119u, 0x08A70B54u, 0x08A65D6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 413u, 0x08A65D6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70B54u) goto L_08A70B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70B54: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); @@ -2443,26 +2902,78 @@ L_08A70B54: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70B6Cu); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 120u, 0x08A70B6Cu, 0x08A66C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 596u, 0x08A66C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70B6Cu) goto L_08A70B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70B6C: aot_gpr_31 = (0x08A70B74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 121u, 0x08A70B74u, 0x08A65F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 444u, 0x08A65F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70B74u) goto L_08A70B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70B74: ctx.gpr[23] = (ctx.gpr[2] | 0u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x08A70B84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 122u, 0x08A70B84u, 0x08A65F50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 440u, 0x08A65F50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70B84u) goto L_08A70B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70B84: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A70B90u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 123u, 0x08A70B90u, 0x08A65D6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 413u, 0x08A65D6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70B90u) goto L_08A70B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70B90: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); @@ -2470,44 +2981,135 @@ L_08A70B90: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A70BA8u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 124u, 0x08A70BA8u, 0x08A66C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 596u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 596u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 596u, 0x08A66C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70BA8u) goto L_08A70BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70BA8: aot_gpr_31 = (0x08A70BB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 125u, 0x08A70BB0u, 0x08A65F58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 441u, 0x08A65F58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70BB0u) goto L_08A70BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70BB0: ctx.gpr[23] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A70BBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 126u, 0x08A70BBCu, 0x08A65F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 443u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 443u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 443u, 0x08A65F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70BBCu) goto L_08A70BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70BBC: ctx.gpr[30] = (ctx.gpr[2] | 0u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08A70BCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 127u, 0x08A70BCCu, 0x08A666D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 539u, 0x08A666D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70BCCu) goto L_08A70BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70BCC: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A70BD8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 128u, 0x08A70BD8u, 0x08A666D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 539u, 0x08A666D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70BD8u) goto L_08A70BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70BD8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A70BE8u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 129u, 0x08A70BE8u, 0x08A65CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 405u, 0x08A65CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70BE8u) goto L_08A70BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70BE8: aot_gpr_31 = (0x08A70BF0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 130u, 0x08A70BF0u, 0x08A65D8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70BF0u) goto L_08A70BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70BF0: ctx.gpr[18] = (aot_gpr_29 + static_cast(896)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(880), std::bit_cast(ctx.fpr[0])); @@ -2515,20 +3117,59 @@ L_08A70BF0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A70C08u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 131u, 0x08A70C08u, 0x08A65CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 405u, 0x08A65CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70C08u) goto L_08A70C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70C08: aot_gpr_31 = (0x08A70C10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 132u, 0x08A70C10u, 0x08A65D8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70C10u) goto L_08A70C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70C10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(884), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_29 + static_cast(880)); aot_gpr_31 = (0x08A70C20u); aot_gpr_5 = (aot_gpr_29 + static_cast(884)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 133u, 0x08A70C20u, 0x08A65D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 408u, 0x08A65D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70C20u) goto L_08A70C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70C20: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -2538,21 +3179,60 @@ L_08A70C20: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A70C40u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 134u, 0x08A70C40u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70C40u) goto L_08A70C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70C40: aot_gpr_31 = (0x08A70C48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 135u, 0x08A70C48u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70C48u) goto L_08A70C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70C48: aot_fpr_12 = ctx.fpr[0] / aot_fpr_20; aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70C5Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0154. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 136u, 0x08A70C5Cu, 0x08A6D87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 172u, 0x08A6D87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70C5Cu) goto L_08A70C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70C5C: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1608))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1612))); @@ -2568,14 +3248,40 @@ L_08A70C70: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A70C7Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 138u, 0x08A70C7Cu, 0x08A65F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 438u, 0x08A65F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70C7Cu) goto L_08A70C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70C7C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70C88u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 139u, 0x08A70C88u, 0x08A65F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 438u, 0x08A65F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70C88u) goto L_08A70C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70C88: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[30]) ? 1u : 0u); @@ -2589,8 +3295,21 @@ L_08A70C88: L_08A70C98: aot_gpr_31 = (0x08A70CA0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 141u, 0x08A70CA0u, 0x08A65EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 432u, 0x08A65EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70CA0u) goto L_08A70CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70CA0: aot_gpr_4 = (16968u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -2603,8 +3322,21 @@ L_08A70CA0: L_08A70CAC: aot_gpr_31 = (0x08A70CB4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 143u, 0x08A70CB4u, 0x08A65E8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 431u, 0x08A65E8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70CB4u) goto L_08A70CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70CB4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2636,13 +3368,39 @@ L_08A70CCC: L_08A70CDC: aot_gpr_31 = (0x08A70CE4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 148u, 0x08A70CE4u, 0x08A666D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 539u, 0x08A666D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70CE4u) goto L_08A70CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70CE4: aot_gpr_31 = (0x08A70CECu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 149u, 0x08A70CECu, 0x08A65D8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70CECu) goto L_08A70CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70CEC: aot_gpr_4 = (15139u << 16u); aot_gpr_4 = (aot_gpr_4 | 55051u); @@ -2659,8 +3417,21 @@ L_08A70D08: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A70D18u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0058. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 151u, 0x08A70D18u, 0x088EE9E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0058_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0058_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0058_entry, 58u, 665u, 0x088EE9E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70D18u) goto L_08A70D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70D18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2680,8 +3451,21 @@ L_08A70D20: L_08A70D30: aot_gpr_31 = (0x08A70D38u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 154u, 0x08A70D38u, 0x08A65EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 432u, 0x08A65EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70D38u) goto L_08A70D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70D38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2720,8 +3504,21 @@ L_08A70D64: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A70D78u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0058. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 160u, 0x08A70D78u, 0x088EE9E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0058_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0058_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0058_entry, 58u, 665u, 0x088EE9E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70D78u) goto L_08A70D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70D78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2732,8 +3529,21 @@ L_08A70D78: L_08A70D80: aot_gpr_31 = (0x08A70D88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 162u, 0x08A70D88u, 0x08A65EB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 433u, 0x08A65EB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70D88u) goto L_08A70D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70D88: aot_gpr_4 = (16800u << 16u); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -2746,8 +3556,21 @@ L_08A70D88: L_08A70D94: aot_gpr_31 = (0x08A70D9Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 164u, 0x08A70D9Cu, 0x08A65F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 437u, 0x08A65F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70D9Cu) goto L_08A70D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70D9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2758,8 +3581,21 @@ L_08A70D9C: L_08A70DA4: aot_gpr_31 = (0x08A70DACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 166u, 0x08A70DACu, 0x08A65E8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 431u, 0x08A65E8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70DACu) goto L_08A70DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70DAC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2770,8 +3606,21 @@ L_08A70DAC: L_08A70DB4: aot_gpr_31 = (0x08A70DBCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 168u, 0x08A70DBCu, 0x08A68CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 99u, 0x08A68CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70DBCu) goto L_08A70DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70DBC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2792,8 +3641,21 @@ L_08A70DD4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A70DE4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 171u, 0x08A70DE4u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70DE4u) goto L_08A70DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70DE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2804,8 +3666,21 @@ L_08A70DE4: L_08A70DEC: aot_gpr_31 = (0x08A70DF4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 173u, 0x08A70DF4u, 0x08A68CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 99u, 0x08A68CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70DF4u) goto L_08A70DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70DF4: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 3 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2818,56 +3693,173 @@ L_08A70E00: aot_gpr_16 = (aot_gpr_29 + static_cast(928)); aot_gpr_31 = (0x08A70E0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 175u, 0x08A70E0Cu, 0x08A65DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 417u, 0x08A65DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E0Cu) goto L_08A70E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E0C: aot_gpr_31 = (0x08A70E14u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 176u, 0x08A70E14u, 0x08A65E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 427u, 0x08A65E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E14u) goto L_08A70E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E14: aot_gpr_31 = (0x08A70E1Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 177u, 0x08A70E1Cu, 0x08A65E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 430u, 0x08A65E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E1Cu) goto L_08A70E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E1C: ctx.gpr[20] = (ctx.gpr[2] + static_cast(32)); aot_gpr_31 = (0x08A70E28u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 178u, 0x08A70E28u, 0x08A65E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 427u, 0x08A65E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E28u) goto L_08A70E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E28: aot_gpr_31 = (0x08A70E30u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 179u, 0x08A70E30u, 0x08A65E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 430u, 0x08A65E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E30u) goto L_08A70E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E30: ctx.gpr[18] = (aot_gpr_29 + static_cast(1008)); aot_gpr_6 = (ctx.gpr[2] + static_cast(16)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A70E44u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 180u, 0x08A70E44u, 0x08A65CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 405u, 0x08A65CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E44u) goto L_08A70E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E44: ctx.gpr[20] = (aot_gpr_29 + static_cast(912)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A70E58u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 181u, 0x08A70E58u, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E58u) goto L_08A70E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E58: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A70E64u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 182u, 0x08A70E64u, 0x08A65DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 415u, 0x08A65DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E64u) goto L_08A70E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E64: aot_gpr_31 = (0x08A70E6Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 183u, 0x08A70E6Cu, 0x08A65E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 426u, 0x08A65E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E6Cu) goto L_08A70E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E6C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1016))); @@ -2883,8 +3875,21 @@ L_08A70E84: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A70E94u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 185u, 0x08A70E94u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70E94u) goto L_08A70E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70E94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2896,21 +3901,60 @@ L_08A70E9C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A70EA8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 187u, 0x08A70EA8u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70EA8u) goto L_08A70EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70EA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A70EB4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 188u, 0x08A70EB4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70EB4u) goto L_08A70EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70EB4: aot_gpr_4 = (aot_gpr_29 + static_cast(1024)); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A70EC4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 189u, 0x08A70EC4u, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70EC4u) goto L_08A70EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70EC4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1032))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -2925,14 +3969,40 @@ L_08A70ED8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A70EE8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 191u, 0x08A70EE8u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70EE8u) goto L_08A70EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70EE8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A70EF4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 192u, 0x08A70EF4u, 0x08A65DECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 418u, 0x08A65DECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70EF4u) goto L_08A70EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70EF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2943,8 +4013,21 @@ L_08A70EF4: L_08A70EFC: aot_gpr_31 = (0x08A70F04u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 194u, 0x08A70F04u, 0x08A65EB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 433u, 0x08A65EB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F04u) goto L_08A70F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2955,8 +4038,21 @@ L_08A70F04: L_08A70F0C: aot_gpr_31 = (0x08A70F14u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 196u, 0x08A70F14u, 0x08A65F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 437u, 0x08A65F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F14u) goto L_08A70F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F14: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2967,8 +4063,21 @@ L_08A70F14: L_08A70F1C: aot_gpr_31 = (0x08A70F24u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 198u, 0x08A70F24u, 0x08A65E8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 431u, 0x08A65E8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F24u) goto L_08A70F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F24: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2979,8 +4088,21 @@ L_08A70F24: L_08A70F2C: aot_gpr_31 = (0x08A70F34u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 200u, 0x08A70F34u, 0x08A68CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 99u, 0x08A68CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F34u) goto L_08A70F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3001,8 +4123,21 @@ L_08A70F4C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A70F5Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 203u, 0x08A70F5Cu, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F5Cu) goto L_08A70F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3013,8 +4148,21 @@ L_08A70F5C: L_08A70F64: aot_gpr_31 = (0x08A70F6Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 205u, 0x08A70F6Cu, 0x08A68CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 99u, 0x08A68CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F6Cu) goto L_08A70F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F6C: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 3 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3027,57 +4175,174 @@ L_08A70F78: aot_gpr_16 = (aot_gpr_29 + static_cast(1056)); aot_gpr_31 = (0x08A70F84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 207u, 0x08A70F84u, 0x08A65DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 417u, 0x08A65DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F84u) goto L_08A70F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F84: aot_gpr_31 = (0x08A70F8Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 208u, 0x08A70F8Cu, 0x08A65E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 427u, 0x08A65E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F8Cu) goto L_08A70F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F8C: aot_gpr_31 = (0x08A70F94u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 209u, 0x08A70F94u, 0x08A65E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 430u, 0x08A65E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70F94u) goto L_08A70F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70F94: ctx.gpr[20] = (ctx.gpr[2] + static_cast(32)); aot_gpr_31 = (0x08A70FA0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 210u, 0x08A70FA0u, 0x08A65E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 427u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 427u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 427u, 0x08A65E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70FA0u) goto L_08A70FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70FA0: aot_gpr_31 = (0x08A70FA8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 211u, 0x08A70FA8u, 0x08A65E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 430u, 0x08A65E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70FA8u) goto L_08A70FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70FA8: ctx.gpr[18] = (aot_gpr_29 + static_cast(1136)); aot_gpr_6 = (ctx.gpr[2] + static_cast(16)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A70FBCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 212u, 0x08A70FBCu, 0x08A65CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 405u, 0x08A65CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70FBCu) goto L_08A70FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70FBC: ctx.gpr[20] = (aot_gpr_29 + static_cast(1040)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A70FD0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 213u, 0x08A70FD0u, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70FD0u) goto L_08A70FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70FD0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A70FDCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 214u, 0x08A70FDCu, 0x08A65DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 415u, 0x08A65DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70FDCu) goto L_08A70FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70FDC: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1144))); aot_gpr_31 = (0x08A70FE8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 215u, 0x08A70FE8u, 0x08A65E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 426u, 0x08A65E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A70FE8u) goto L_08A70FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A70FE8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -3092,8 +4357,21 @@ L_08A70FFC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A7100Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 217u, 0x08A7100Cu, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7100Cu) goto L_08A7100C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7100C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3105,21 +4383,60 @@ L_08A71014: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A71020u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 219u, 0x08A71020u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71020u) goto L_08A71020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71020: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A7102Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 220u, 0x08A7102Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7102Cu) goto L_08A7102C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7102C: aot_gpr_4 = (aot_gpr_29 + static_cast(1152)); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A7103Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 221u, 0x08A7103Cu, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7103Cu) goto L_08A7103C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7103C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1160))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -3134,19 +4451,58 @@ L_08A71050: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A71060u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 223u, 0x08A71060u, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71060u) goto L_08A71060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71060: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A7106Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 224u, 0x08A7106Cu, 0x08A65DECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 418u, 0x08A65DECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7106Cu) goto L_08A7106C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7106C: aot_gpr_31 = (0x08A71074u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 225u, 0x08A71074u, 0x08A65EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 436u, 0x08A65EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71074u) goto L_08A71074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71074: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -3159,13 +4515,39 @@ L_08A71080: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A7108Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 227u, 0x08A7108Cu, 0x08A65EDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 435u, 0x08A65EDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7108Cu) goto L_08A7108C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7108C: aot_gpr_31 = (0x08A71094u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 228u, 0x08A71094u, 0x08A65E8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 431u, 0x08A65E8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71094u) goto L_08A71094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71094: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3176,8 +4558,21 @@ L_08A71094: L_08A7109C: aot_gpr_31 = (0x08A710A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 230u, 0x08A710A4u, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A710A4u) goto L_08A710A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A710A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3188,8 +4583,21 @@ L_08A710A4: L_08A710AC: aot_gpr_31 = (0x08A710B4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 232u, 0x08A710B4u, 0x08A65EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 434u, 0x08A65EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A710B4u) goto L_08A710B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A710B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3199,20 +4607,59 @@ L_08A710B4: } L_08A710BC: aot_gpr_31 = (0x08A710C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 234u, 0x08A710C4u, 0x08A66154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 486u, 0x08A66154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A710C4u) goto L_08A710C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A710C4: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A710D0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 235u, 0x08A710D0u, 0x08A66488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 527u, 0x08A66488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A710D0u) goto L_08A710D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A710D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A710DCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 236u, 0x08A710DCu, 0x08ADCEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 264u, 0x08ADCEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A710DCu) goto L_08A710DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A710DC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8425))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3261,8 +4708,21 @@ L_08A71100: L_08A71108: aot_gpr_31 = (0x08A71110u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 242u, 0x08A71110u, 0x08A65EB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 433u, 0x08A65EB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71110u) goto L_08A71110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71110: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3273,8 +4733,21 @@ L_08A71110: L_08A71118: aot_gpr_31 = (0x08A71120u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 244u, 0x08A71120u, 0x08A68CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 100u, 0x08A68CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71120u) goto L_08A71120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71120: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[17]; if (branch_taken) { @@ -3286,8 +4759,21 @@ L_08A71128: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A71134u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 246u, 0x08A71134u, 0x08A68CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 101u, 0x08A68CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71134u) goto L_08A71134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71134: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3298,8 +4784,21 @@ L_08A71134: L_08A7113C: aot_gpr_31 = (0x08A71144u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 248u, 0x08A71144u, 0x08A65EB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 433u, 0x08A65EB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71144u) goto L_08A71144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71144: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3310,8 +4809,21 @@ L_08A71144: L_08A7114C: aot_gpr_31 = (0x08A71154u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 250u, 0x08A71154u, 0x08A68CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 100u, 0x08A68CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71154u) goto L_08A71154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71154: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[19]; if (branch_taken) { @@ -3322,8 +4834,21 @@ L_08A71154: L_08A7115C: aot_gpr_31 = (0x08A71164u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 252u, 0x08A71164u, 0x08A68CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 102u, 0x08A68CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71164u) goto L_08A71164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71164: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[19]; if (branch_taken) { @@ -3335,8 +4860,21 @@ L_08A7116C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A71178u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 254u, 0x08A71178u, 0x08A68CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 101u, 0x08A68CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71178u) goto L_08A71178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71178: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3347,8 +4885,21 @@ L_08A71178: L_08A71180: aot_gpr_31 = (0x08A71188u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 256u, 0x08A71188u, 0x08A65EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 432u, 0x08A65EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71188u) goto L_08A71188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71188: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3359,8 +4910,21 @@ L_08A71188: L_08A71190: aot_gpr_31 = (0x08A71198u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 258u, 0x08A71198u, 0x08A68CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 103u, 0x08A68CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71198u) goto L_08A71198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71198: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[17]; if (branch_taken) { @@ -3372,8 +4936,21 @@ L_08A711A0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A711ACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 260u, 0x08A711ACu, 0x08A68CDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 104u, 0x08A68CDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A711ACu) goto L_08A711AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A711AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3384,8 +4961,21 @@ L_08A711AC: L_08A711B4: aot_gpr_31 = (0x08A711BCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 262u, 0x08A711BCu, 0x08A65EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 432u, 0x08A65EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A711BCu) goto L_08A711BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A711BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3396,8 +4986,21 @@ L_08A711BC: L_08A711C4: aot_gpr_31 = (0x08A711CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 264u, 0x08A711CCu, 0x08A68CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 103u, 0x08A68CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A711CCu) goto L_08A711CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A711CC: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[19]; if (branch_taken) { @@ -3409,8 +5012,21 @@ L_08A711D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A711E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 266u, 0x08A711E0u, 0x08A68CDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 104u, 0x08A68CDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A711E0u) goto L_08A711E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A711E0: // TIER2_SUPERBLOCK_V2_HOOK_BEGIN if (vcs::tier2_cluster_enabled(vcs::Tier2ClusterId::Entity) && rt.memory().direct_fastmem_enabled()) { @@ -3470,8 +5086,8 @@ L_08A71214: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1684))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1696)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7125C: @@ -3511,8 +5127,21 @@ L_08A7125C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A712ECu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 271u, 0x08A712ECu, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A712ECu) goto L_08A712EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A712EC: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4233,8 +5862,21 @@ L_08A717E4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A7181Cu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 338u, 0x08A7181Cu, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7181Cu) goto L_08A7181C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7181C: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4276,14 +5918,40 @@ L_08A7184C: ctx.gpr[30] = (aot_gpr_29 + static_cast(1072)); aot_gpr_31 = (0x08A71860u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 341u, 0x08A71860u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71860u) goto L_08A71860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71860: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A7186Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 342u, 0x08A7186Cu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7186Cu) goto L_08A7186C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7186C: aot_gpr_4 = (aot_gpr_29 + static_cast(1152)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4372,8 +6040,21 @@ L_08A718C4: L_08A718D0: aot_gpr_31 = (0x08A718D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1136))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 347u, 0x08A718D8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A718D8u) goto L_08A718D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A718D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4566,8 +6247,21 @@ L_08A71A08: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A71A3Cu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 366u, 0x08A71A3Cu, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71A3Cu) goto L_08A71A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71A3C: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4606,14 +6300,40 @@ L_08A71A68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A71A78u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 369u, 0x08A71A78u, 0x0885FE8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 934u, 0x0885FE8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71A78u) goto L_08A71A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71A78: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A71A84u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 370u, 0x08A71A84u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71A84u) goto L_08A71A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71A84: aot_gpr_4 = (aot_gpr_29 + static_cast(1280)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4700,8 +6420,21 @@ L_08A71AD8: L_08A71AE4: aot_gpr_31 = (0x08A71AECu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1264))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 375u, 0x08A71AECu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A71AECu) goto L_08A71AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A71AEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5865,8 +7598,8 @@ L_08A723A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2224))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(2240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A723D4: @@ -5916,8 +7649,21 @@ L_08A72430: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A72474u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 452u, 0x08A72474u, 0x08A65C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 404u, 0x08A65C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72474u) goto L_08A72474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72474: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6291,8 +8037,21 @@ L_08A726D0: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A726F4u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 484u, 0x08A726F4u, 0x08A6AD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 490u, 0x08A6AD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A726F4u) goto L_08A726F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A726F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6493,8 +8252,21 @@ L_08A72854: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A72870u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 493u, 0x08A72870u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72870u) goto L_08A72870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72870: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[21]) ? 1u : 0u); @@ -6613,8 +8385,21 @@ L_08A72920: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A72944u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 498u, 0x08A72944u, 0x08A6AD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 490u, 0x08A6AD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72944u) goto L_08A72944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72944: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6815,8 +8600,21 @@ L_08A72AA4: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A72AC0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 507u, 0x08A72AC0u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72AC0u) goto L_08A72AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72AC0: aot_gpr_4 = (ctx.gpr[18] << 5u); aot_gpr_5 = (2236u << 16u); @@ -6824,8 +8622,21 @@ L_08A72AC0: ctx.gpr[17] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08A72AD8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 508u, 0x08A72AD8u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72AD8u) goto L_08A72AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72AD8: aot_fpr_12 = std::bit_cast(ctx.gpr[21]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6834,8 +8645,21 @@ L_08A72AD8: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A72AF4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0154. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 509u, 0x08A72AF4u, 0x08A6D87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 172u, 0x08A6D87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72AF4u) goto L_08A72AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72AF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7028,8 +8852,21 @@ L_08A72C3C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A72C60u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 518u, 0x08A72C60u, 0x08A6AD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 490u, 0x08A6AD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72C60u) goto L_08A72C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72C60: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7167,8 +9004,21 @@ L_08A72D38: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A72D7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 526u, 0x08A72D7Cu, 0x08A65D8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72D7Cu) goto L_08A72D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72D7C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[23] = (aot_gpr_29 + static_cast(256)); @@ -7176,13 +9026,39 @@ L_08A72D7C: aot_gpr_6 = (aot_gpr_16 + static_cast(112)); aot_gpr_31 = (0x08A72D94u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 527u, 0x08A72D94u, 0x08A65CBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 405u, 0x08A65CBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72D94u) goto L_08A72D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72D94: aot_gpr_31 = (0x08A72D9Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 528u, 0x08A72D9Cu, 0x08A65D8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72D9Cu) goto L_08A72D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72D9C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -7200,8 +9076,21 @@ L_08A72DB0: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A72DD0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 530u, 0x08A72DD0u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72DD0u) goto L_08A72DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72DD0: aot_gpr_4 = (ctx.gpr[20] << 5u); aot_gpr_5 = (2236u << 16u); @@ -7209,8 +9098,21 @@ L_08A72DD0: ctx.gpr[17] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08A72DE8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 531u, 0x08A72DE8u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72DE8u) goto L_08A72DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72DE8: aot_fpr_12 = std::bit_cast(ctx.gpr[21]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -7219,8 +9121,21 @@ L_08A72DE8: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A72E04u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0154. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 532u, 0x08A72E04u, 0x08A6D87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 172u, 0x08A6D87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72E04u) goto L_08A72E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72E04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7330,8 +9245,21 @@ L_08A72EC4: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A72EE8u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 540u, 0x08A72EE8u, 0x08A6AD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 490u, 0x08A6AD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A72EE8u) goto L_08A72EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A72EE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7531,8 +9459,21 @@ L_08A73048: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A73060u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 549u, 0x08A73060u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73060u) goto L_08A73060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73060: aot_gpr_4 = (ctx.gpr[17] << 5u); aot_gpr_5 = (2236u << 16u); @@ -7540,8 +9481,21 @@ L_08A73060: ctx.gpr[18] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08A73078u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 550u, 0x08A73078u, 0x08A91E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 231u, 0x08A91E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73078u) goto L_08A73078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73078: aot_fpr_12 = std::bit_cast(ctx.gpr[21]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -7550,8 +9504,21 @@ L_08A73078: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A73094u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0154. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 551u, 0x08A73094u, 0x08A6D87Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); +#else + recomp_unit_0154_entry(rt, ctx, 172u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0154_entry, 154u, 172u, 0x08A6D87Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73094u) goto L_08A73094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73094: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7613,8 +9580,21 @@ L_08A730F8: L_08A73124: aot_gpr_31 = (0x08A7312Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 557u, 0x08A7312Cu, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7312Cu) goto L_08A7312C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7312C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7639,8 +9619,21 @@ L_08A73150: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08A73160u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 560u, 0x08A73160u, 0x08ADCEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 264u, 0x08ADCEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73160u) goto L_08A73160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73160: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7682,8 +9675,8 @@ L_08A73180: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(508))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(512)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A731B4: @@ -7831,8 +9824,8 @@ L_08A73260: goto L_08A73264; L_08A73264: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7326C: @@ -7854,8 +9847,21 @@ L_08A7328C: aot_gpr_6 = (aot_gpr_29 + static_cast(28)); aot_gpr_31 = (0x08A7329Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 587u, 0x08A7329Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7329Cu) goto L_08A7329C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7329C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(28))); @@ -7912,8 +9918,8 @@ L_08A73310: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A73324: @@ -7981,8 +9987,21 @@ L_08A7339C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A733ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 600u, 0x08A733ACu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A733ACu) goto L_08A733AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A733AC: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -8012,8 +10031,21 @@ L_08A733E4: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08A733F4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 604u, 0x08A733F4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A733F4u) goto L_08A733F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A733F4: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -8033,8 +10065,21 @@ L_08A73410: aot_gpr_5 = (ctx.gpr[18] + static_cast(4)); aot_gpr_31 = (0x08A73420u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 607u, 0x08A73420u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73420u) goto L_08A73420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73420: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); @@ -8063,8 +10108,21 @@ L_08A73448: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A73470u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 610u, 0x08A73470u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73470u) goto L_08A73470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73470: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -8095,8 +10153,21 @@ L_08A734A8: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08A734B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 613u, 0x08A734B8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A734B8u) goto L_08A734B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A734B8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -8174,8 +10245,21 @@ L_08A73540: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A73578u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 621u, 0x08A73578u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73578u) goto L_08A73578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73578: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -8199,8 +10283,8 @@ L_08A73584: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A735B0: @@ -8265,8 +10349,21 @@ L_08A73620: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A73630u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 630u, 0x08A73630u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73630u) goto L_08A73630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73630: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -8296,8 +10393,21 @@ L_08A73664: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08A73674u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 634u, 0x08A73674u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73674u) goto L_08A73674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73674: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -8349,8 +10459,21 @@ L_08A736CC: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08A736DCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 640u, 0x08A736DCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A736DCu) goto L_08A736DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A736DC: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -8402,16 +10525,42 @@ L_08A73754: aot_gpr_5 = (aot_gpr_16 + static_cast(4)); aot_gpr_31 = (0x08A73760u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 646u, 0x08A73760u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73760u) goto L_08A73760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73760: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(76))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A73774u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 647u, 0x08A73774u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73774u) goto L_08A73774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73774: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -8439,8 +10588,21 @@ L_08A73784: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A737C4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 649u, 0x08A737C4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A737C4u) goto L_08A737C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A737C4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[18] | 0u); @@ -8462,8 +10624,8 @@ L_08A737D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A737F4: @@ -8500,8 +10662,21 @@ L_08A73850: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A73860u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 654u, 0x08A73860u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73860u) goto L_08A73860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73860: aot_gpr_4 = (15205u << 16u); aot_gpr_4 = (aot_gpr_4 | 24642u); @@ -8537,8 +10712,21 @@ L_08A738BC: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A738CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 657u, 0x08A738CCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A738CCu) goto L_08A738CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A738CC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -8570,8 +10758,21 @@ L_08A73908: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08A73918u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 661u, 0x08A73918u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73918u) goto L_08A73918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73918: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -8621,8 +10822,21 @@ L_08A73990: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08A739A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 666u, 0x08A739A0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A739A0u) goto L_08A739A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A739A0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -8663,8 +10877,21 @@ L_08A739F0: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A73A10u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 671u, 0x08A73A10u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73A10u) goto L_08A73A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73A10: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(72))); @@ -8708,8 +10935,21 @@ L_08A73A58: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A73A8Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 675u, 0x08A73A8Cu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73A8Cu) goto L_08A73A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73A8C: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] & 255u); @@ -8749,8 +10989,8 @@ L_08A73AAC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A73AF0: @@ -8825,8 +11065,21 @@ L_08A73B74: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A73B84u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 686u, 0x08A73B84u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73B84u) goto L_08A73B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73B84: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -8856,8 +11109,21 @@ L_08A73BB8: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08A73BC8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 690u, 0x08A73BC8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73BC8u) goto L_08A73BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73BC8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -8886,8 +11152,21 @@ L_08A73BF8: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08A73C08u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 694u, 0x08A73C08u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73C08u) goto L_08A73C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73C08: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -8918,8 +11197,21 @@ L_08A73C40: aot_gpr_6 = (aot_gpr_29 + static_cast(19)); aot_gpr_31 = (0x08A73C50u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 698u, 0x08A73C50u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73C50u) goto L_08A73C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73C50: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(19))); @@ -8945,8 +11237,21 @@ L_08A73C80: aot_gpr_6 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08A73C90u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 702u, 0x08A73C90u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73C90u) goto L_08A73C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73C90: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(20))); @@ -8983,8 +11288,21 @@ L_08A73CD8: aot_gpr_6 = (aot_gpr_29 + static_cast(21)); aot_gpr_31 = (0x08A73CE8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 707u, 0x08A73CE8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73CE8u) goto L_08A73CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73CE8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(21))); @@ -9014,8 +11332,21 @@ L_08A73D2C: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x08A73D3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 710u, 0x08A73D3Cu, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73D3Cu) goto L_08A73D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73D3C: aot_gpr_6 = (16928u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_6); @@ -9024,8 +11355,21 @@ L_08A73D3C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A73D58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 711u, 0x08A73D58u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73D58u) goto L_08A73D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73D58: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); @@ -9091,8 +11435,21 @@ L_08A73DA0: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A73DF4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 717u, 0x08A73DF4u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73DF4u) goto L_08A73DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73DF4: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[19] | 0u); @@ -9114,8 +11471,8 @@ L_08A73E00: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A73E24: @@ -9287,8 +11644,21 @@ L_08A73F88: aot_gpr_6 = (aot_gpr_29 + static_cast(68)); aot_gpr_31 = (0x08A73F98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0155->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0155_entry, 739u, 0x08A73F98u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A73F98u) goto L_08A73F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A73F98: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(68))); diff --git a/profiles/vcs/generated/generated_unit_0156.cpp b/profiles/vcs/generated/generated_unit_0156.cpp index 27cd88a..2c07bdb 100644 --- a/profiles/vcs/generated/generated_unit_0156.cpp +++ b/profiles/vcs/generated/generated_unit_0156.cpp @@ -860,6 +860,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A74000u; + if (local_delta_v813 >= 16340u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -877,8 +901,8 @@ L_08A74000: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7400C: @@ -919,8 +943,21 @@ L_08A74060: aot_gpr_6 = (aot_gpr_29 + static_cast(56)); aot_gpr_31 = (0x08A74070u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 6u, 0x08A74070u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74070u) goto L_08A74070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74070: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(56))); @@ -972,8 +1009,8 @@ L_08A740C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A740E0: @@ -1012,8 +1049,21 @@ L_08A7415C: aot_gpr_5 = (ctx.gpr[20] + static_cast(4)); aot_gpr_31 = (0x08A74168u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 12u, 0x08A74168u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74168u) goto L_08A74168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74168: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1137,8 +1187,21 @@ L_08A7420C: aot_gpr_6 = (aot_gpr_29 + static_cast(40)); aot_gpr_31 = (0x08A7421Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 27u, 0x08A7421Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7421Cu) goto L_08A7421C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7421C: aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(40))); @@ -1225,8 +1288,21 @@ L_08A742B0: aot_gpr_6 = (aot_gpr_29 + static_cast(41)); aot_gpr_31 = (0x08A742C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 38u, 0x08A742C0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A742C0u) goto L_08A742C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A742C0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(41))); @@ -1294,8 +1370,21 @@ L_08A74330: aot_gpr_6 = (aot_gpr_29 + static_cast(42)); aot_gpr_31 = (0x08A74340u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 46u, 0x08A74340u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74340u) goto L_08A74340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74340: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(42))); @@ -1389,8 +1478,21 @@ L_08A743C4: aot_gpr_6 = (aot_gpr_29 + static_cast(43)); aot_gpr_31 = (0x08A743D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 58u, 0x08A743D4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A743D4u) goto L_08A743D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A743D4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(43))); @@ -1430,8 +1532,21 @@ L_08A74418: aot_gpr_6 = (aot_gpr_29 + static_cast(44)); aot_gpr_31 = (0x08A74428u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 63u, 0x08A74428u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74428u) goto L_08A74428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74428: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(44))); @@ -1466,8 +1581,21 @@ L_08A74468: aot_gpr_6 = (aot_gpr_29 + static_cast(45)); aot_gpr_31 = (0x08A74478u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 68u, 0x08A74478u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74478u) goto L_08A74478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74478: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(45))); @@ -1520,8 +1648,21 @@ L_08A744D0: aot_gpr_6 = (aot_gpr_29 + static_cast(46)); aot_gpr_31 = (0x08A744E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 75u, 0x08A744E0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A744E0u) goto L_08A744E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A744E0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(46))); @@ -1561,8 +1702,21 @@ L_08A74524: aot_gpr_6 = (aot_gpr_29 + static_cast(47)); aot_gpr_31 = (0x08A74534u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 80u, 0x08A74534u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74534u) goto L_08A74534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74534: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(47))); @@ -1597,8 +1751,21 @@ L_08A74574: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A74584u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 85u, 0x08A74584u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74584u) goto L_08A74584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74584: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(48))); @@ -1658,8 +1825,21 @@ L_08A745F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A74600u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 93u, 0x08A74600u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74600u) goto L_08A74600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74600: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(49))); @@ -1718,8 +1898,21 @@ L_08A7466C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A7467Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 101u, 0x08A7467Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7467Cu) goto L_08A7467C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7467C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(50))); @@ -1841,8 +2034,21 @@ L_08A7477C: aot_gpr_6 = (aot_gpr_29 + static_cast(51)); aot_gpr_31 = (0x08A7478Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 115u, 0x08A7478Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7478Cu) goto L_08A7478C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7478C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(51))); @@ -2143,8 +2349,21 @@ L_08A74A14: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A74A28u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 148u, 0x08A74A28u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74A28u) goto L_08A74A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74A28: aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(72))); @@ -2200,8 +2419,21 @@ L_08A74A90: aot_gpr_6 = (aot_gpr_29 + static_cast(52)); aot_gpr_31 = (0x08A74AA0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 154u, 0x08A74AA0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74AA0u) goto L_08A74AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74AA0: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(52))); @@ -2296,8 +2528,21 @@ L_08A74B60: aot_gpr_6 = (aot_gpr_29 + static_cast(53)); aot_gpr_31 = (0x08A74B70u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 164u, 0x08A74B70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74B70u) goto L_08A74B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74B70: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(53))); @@ -2445,8 +2690,21 @@ L_08A74CA8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A74CDCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 178u, 0x08A74CDCu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74CDCu) goto L_08A74CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74CDC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2480,8 +2738,8 @@ L_08A74CE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A74D30: @@ -2569,8 +2827,21 @@ L_08A74DE4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A74DF4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 190u, 0x08A74DF4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74DF4u) goto L_08A74DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74DF4: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -2629,8 +2900,21 @@ L_08A74E60: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A74E70u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 198u, 0x08A74E70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74E70u) goto L_08A74E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74E70: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -2679,8 +2963,21 @@ L_08A74EC4: aot_gpr_5 = (ctx.gpr[18] + static_cast(4)); aot_gpr_31 = (0x08A74ED8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 205u, 0x08A74ED8u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74ED8u) goto L_08A74ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74ED8: ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[20]) ? 1u : 0u); @@ -2712,8 +3009,21 @@ L_08A74F0C: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08A74F1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 209u, 0x08A74F1Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74F1Cu) goto L_08A74F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74F1C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -2792,8 +3102,21 @@ L_08A74F88: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A74FA4u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 219u, 0x08A74FA4u, 0x08A73E24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 720u, 0x08A73E24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A74FA4u) goto L_08A74FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A74FA4: { const bool branch_taken = 0u == 0u; aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2844,8 +3167,21 @@ L_08A74FE4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A75000u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 226u, 0x08A75000u, 0x08A73E24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 720u, 0x08A73E24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75000u) goto L_08A75000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75000: { const bool branch_taken = 0u == 0u; aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2880,8 +3216,21 @@ L_08A7502C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A75048u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 231u, 0x08A75048u, 0x08A73E24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 720u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 720u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 720u, 0x08A73E24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75048u) goto L_08A75048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75048: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A7504C; @@ -2929,8 +3278,21 @@ L_08A75088: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08A750B8u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 237u, 0x08A750B8u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A750B8u) goto L_08A750B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A750B8: aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(72))); @@ -2959,8 +3321,21 @@ L_08A750E4: aot_gpr_6 = (aot_gpr_29 + static_cast(19)); aot_gpr_31 = (0x08A750F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 240u, 0x08A750F4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A750F4u) goto L_08A750F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A750F4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(19))); @@ -2983,8 +3358,8 @@ L_08A7511C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(8624))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A75134: @@ -3168,8 +3543,21 @@ L_08A752BC: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08A752ECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 260u, 0x08A752ECu, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A752ECu) goto L_08A752EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A752EC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[22] | 0u); @@ -3201,8 +3589,8 @@ L_08A752F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A75338: @@ -3283,8 +3671,21 @@ L_08A753CC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A753DCu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 272u, 0x08A753DCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A753DCu) goto L_08A753DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A753DC: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24))); @@ -3341,8 +3742,21 @@ L_08A75440: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A75450u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 280u, 0x08A75450u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75450u) goto L_08A75450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75450: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(25))); @@ -3416,8 +3830,21 @@ L_08A754CC: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x08A754E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 290u, 0x08A754E0u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A754E0u) goto L_08A754E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A754E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_gpr_5 = (16128u << 16u); @@ -3448,8 +3875,21 @@ L_08A7551C: ctx.gpr[18] = (ctx.gpr[18] & 255u); aot_gpr_31 = (0x08A75548u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 292u, 0x08A75548u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75548u) goto L_08A75548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75548: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -3480,8 +3920,21 @@ L_08A75580: aot_gpr_6 = (aot_gpr_29 + static_cast(26)); aot_gpr_31 = (0x08A75590u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 295u, 0x08A75590u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75590u) goto L_08A75590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75590: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(26))); @@ -3587,8 +4040,21 @@ L_08A7566C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A756A0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 306u, 0x08A756A0u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A756A0u) goto L_08A756A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A756A0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -3615,8 +4081,8 @@ L_08A756AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A756D8: @@ -3717,8 +4183,21 @@ L_08A75780: aot_gpr_6 = (aot_gpr_29 + static_cast(24)); aot_gpr_31 = (0x08A75790u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 320u, 0x08A75790u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75790u) goto L_08A75790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75790: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24))); @@ -3750,8 +4229,21 @@ L_08A757CC: aot_gpr_6 = (aot_gpr_29 + static_cast(25)); aot_gpr_31 = (0x08A757DCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 324u, 0x08A757DCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A757DCu) goto L_08A757DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A757DC: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(25))); @@ -3826,8 +4318,21 @@ L_08A7585C: aot_gpr_6 = (aot_gpr_29 + static_cast(26)); aot_gpr_31 = (0x08A7586Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 333u, 0x08A7586Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7586Cu) goto L_08A7586C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7586C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(26))); @@ -3859,8 +4364,21 @@ L_08A758A8: aot_gpr_6 = (aot_gpr_29 + static_cast(27)); aot_gpr_31 = (0x08A758B8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 337u, 0x08A758B8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A758B8u) goto L_08A758B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A758B8: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(27))); @@ -3955,8 +4473,21 @@ L_08A7597C: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x08A7598Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 347u, 0x08A7598Cu, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7598Cu) goto L_08A7598C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7598C: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3969,8 +4500,21 @@ L_08A7598C: aot_gpr_5 = (std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08A759B8u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 348u, 0x08A759B8u, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A759B8u) goto L_08A759B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A759B8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(72))); @@ -4046,8 +4590,21 @@ L_08A75A50: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); aot_gpr_31 = (0x08A75A94u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 353u, 0x08A75A94u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75A94u) goto L_08A75A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75A94: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -4072,8 +4629,8 @@ L_08A75AA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A75AC4: @@ -4112,8 +4669,21 @@ L_08A75B24: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A75B34u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 359u, 0x08A75B34u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75B34u) goto L_08A75B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75B34: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -4133,8 +4703,21 @@ L_08A75B50: aot_gpr_5 = (ctx.gpr[17] + static_cast(4)); aot_gpr_31 = (0x08A75B60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 362u, 0x08A75B60u, 0x088C6080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 397u, 0x088C6080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75B60u) goto L_08A75B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75B60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(352))); @@ -4153,8 +4736,21 @@ L_08A75B7C: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08A75B8Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 364u, 0x08A75B8Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75B8Cu) goto L_08A75B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75B8C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -4181,8 +4777,21 @@ L_08A75BB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A75BCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 368u, 0x08A75BCCu, 0x089B8190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 21u, 0x089B8190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75BCCu) goto L_08A75BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75BCC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(72), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); @@ -4216,8 +4825,21 @@ L_08A75C04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A75C18u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 372u, 0x08A75C18u, 0x08A731B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 565u, 0x08A731B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75C18u) goto L_08A75C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75C18: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4270,8 +4892,21 @@ L_08A75C64: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08A75C74u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 378u, 0x08A75C74u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75C74u) goto L_08A75C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75C74: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -4393,8 +5028,21 @@ L_08A75D38: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A75D68u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 392u, 0x08A75D68u, 0x089B7B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 703u, 0x089B7B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75D68u) goto L_08A75D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75D68: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[20] | 0u); @@ -4422,8 +5070,8 @@ L_08A75D74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A75DA4: @@ -4472,8 +5120,8 @@ L_08A75E24: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(8752))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A75E40: @@ -4534,8 +5182,21 @@ L_08A75E7C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(20), static_cast(0u)); aot_gpr_31 = (0x08A75E9Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0049. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 404u, 0x08A75E9Cu, 0x088CA7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); +#else + recomp_unit_0049_entry(rt, ctx, 494u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0049_entry, 49u, 494u, 0x088CA7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75E9Cu) goto L_08A75E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75E9C: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[0]), aot_gpr_16, 0u}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } @@ -4576,8 +5237,21 @@ L_08A75EE8: aot_gpr_6 = (aot_gpr_29 + static_cast(44)); aot_gpr_31 = (0x08A75EF8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 409u, 0x08A75EF8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75EF8u) goto L_08A75EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75EF8: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(44))); @@ -4607,8 +5281,21 @@ L_08A75F08: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08A75F40u); ctx.gpr[20] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 411u, 0x08A75F40u, 0x089F71F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 597u, 0x089F71F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75F40u) goto L_08A75F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75F40: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4639,8 +5326,21 @@ L_08A75F60: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08A75F78u); ctx.gpr[20] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 415u, 0x08A75F78u, 0x08AA4980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 71u, 0x08AA4980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75F78u) goto L_08A75F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75F78: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4672,8 +5372,21 @@ L_08A75F9C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08A75FB4u); ctx.gpr[20] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 419u, 0x08A75FB4u, 0x0886BB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 741u, 0x0886BB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A75FB4u) goto L_08A75FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A75FB4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4738,8 +5451,21 @@ L_08A76014: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08A7602Cu); ctx.gpr[20] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 427u, 0x08A7602Cu, 0x0881AF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 508u, 0x0881AF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7602Cu) goto L_08A7602C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7602C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4771,8 +5497,21 @@ L_08A76050: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08A76068u); ctx.gpr[20] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 431u, 0x08A76068u, 0x08825BB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 243u, 0x08825BB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76068u) goto L_08A76068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76068: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4804,8 +5543,21 @@ L_08A7608C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08A760A4u); ctx.gpr[20] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 435u, 0x08A760A4u, 0x089CE1DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 383u, 0x089CE1DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A760A4u) goto L_08A760A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A760A4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4861,8 +5613,21 @@ L_08A760E8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08A760F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 443u, 0x08A760F8u, 0x08A7326Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 585u, 0x08A7326Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A760F8u) goto L_08A760F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A760F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A76104u); @@ -4884,8 +5649,21 @@ L_08A76118: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A76124u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 447u, 0x08A76124u, 0x08A73AF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 679u, 0x08A73AF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76124u) goto L_08A76124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76124: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A76130u); @@ -4895,8 +5673,21 @@ L_08A76130: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A7613Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 449u, 0x08A7613Cu, 0x08A735B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 624u, 0x08A735B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7613Cu) goto L_08A7613C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7613C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A76148u); @@ -4921,8 +5712,21 @@ L_08A76160: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08A76170u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 453u, 0x08A76170u, 0x08A7326Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 585u, 0x08A7326Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76170u) goto L_08A76170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76170: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A7617Cu); @@ -4939,8 +5743,21 @@ L_08A76184: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A76190u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 456u, 0x08A76190u, 0x08A73324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 594u, 0x08A73324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76190u) goto L_08A76190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76190: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A7619Cu); @@ -4955,8 +5772,21 @@ L_08A761A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A761B4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 459u, 0x08A761B4u, 0x08A73AF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 679u, 0x08A73AF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A761B4u) goto L_08A761B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A761B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A761C0u); @@ -4971,14 +5801,40 @@ L_08A761CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A761D8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 462u, 0x08A761D8u, 0x08A735B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 624u, 0x08A735B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A761D8u) goto L_08A761D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A761D8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A761E4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0155. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 463u, 0x08A761E4u, 0x08A737F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0155_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0155_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0155_entry, 155u, 652u, 0x08A737F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A761E4u) goto L_08A761E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A761E4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(372), std::bit_cast(aot_fpr_12)); @@ -4995,8 +5851,8 @@ L_08A761EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7620C: @@ -5009,8 +5865,21 @@ L_08A7620C: aot_gpr_4 = (0u | 28u); aot_gpr_31 = (0x08A76230u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 466u, 0x08A76230u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76230u) goto L_08A76230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76230: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -5054,8 +5923,8 @@ L_08A76254: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A762B0: @@ -5073,8 +5942,21 @@ L_08A762B0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A76304u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 471u, 0x08A76304u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76304u) goto L_08A76304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76304: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -5089,8 +5971,21 @@ L_08A76310: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A76320u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 473u, 0x08A76320u, 0x08B6DC90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 392u, 0x08B6DC90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76320u) goto L_08A76320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76320: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_08A76324; @@ -5112,8 +6007,21 @@ L_08A76338: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A76348u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 477u, 0x08A76348u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76348u) goto L_08A76348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76348: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5146,8 +6054,21 @@ L_08A7636C: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A76394u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 481u, 0x08A76394u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76394u) goto L_08A76394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76394: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -5161,8 +6082,21 @@ L_08A763A0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A763ACu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 483u, 0x08A763ACu, 0x08B6DC90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 392u, 0x08B6DC90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A763ACu) goto L_08A763AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A763AC: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_08A763B0; @@ -5184,8 +6118,21 @@ L_08A763C4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A763D4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 487u, 0x08A763D4u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A763D4u) goto L_08A763D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A763D4: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5218,8 +6165,21 @@ L_08A763F8: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A76420u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 491u, 0x08A76420u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76420u) goto L_08A76420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76420: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -5233,8 +6193,21 @@ L_08A7642C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A76438u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 493u, 0x08A76438u, 0x08B6DC90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 392u, 0x08B6DC90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76438u) goto L_08A76438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76438: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_08A7643C; @@ -5256,8 +6229,21 @@ L_08A76450: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A76460u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 497u, 0x08A76460u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76460u) goto L_08A76460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76460: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5294,8 +6280,8 @@ L_08A76484: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A764A8: @@ -5367,8 +6353,8 @@ L_08A764A8: aot_mem.aot_direct_store_word_left(aot_gpr_4 + static_cast(57), ctx.gpr[11]); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A765B8: @@ -5483,8 +6469,21 @@ L_08A766D0: aot_gpr_6 = (aot_gpr_29 + static_cast(148)); aot_gpr_31 = (0x08A7670Cu); ctx.gpr[7] = (aot_gpr_29 + static_cast(124)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 511u, 0x08A7670Cu, 0x08B6E0F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 444u, 0x08B6E0F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7670Cu) goto L_08A7670C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7670C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), aot_gpr_4); @@ -5538,8 +6537,21 @@ L_08A7678C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A7679Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 517u, 0x08A7679Cu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7679Cu) goto L_08A7679C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7679C: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[12]{}; @@ -5559,8 +6571,8 @@ L_08A7679C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A767D8: @@ -5675,8 +6687,21 @@ L_08A76898: L_08A768C4: aot_gpr_31 = (0x08A768CCu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 534u, 0x08A768CCu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A768CCu) goto L_08A768CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A768CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -5739,8 +6764,21 @@ L_08A76950: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A76964u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 540u, 0x08A76964u, 0x08B6DF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 422u, 0x08B6DF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76964u) goto L_08A76964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76964: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(8)); @@ -5778,8 +6816,21 @@ L_08A769AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); aot_gpr_31 = (0x08A769BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 544u, 0x08A769BCu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A769BCu) goto L_08A769BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A769BC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); @@ -5788,8 +6839,21 @@ L_08A769BC: aot_gpr_6 = (ctx.gpr[7] + static_cast(8)); aot_gpr_31 = (0x08A769D8u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 545u, 0x08A769D8u, 0x08B6AC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 484u, 0x08B6AC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A769D8u) goto L_08A769D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A769D8: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -5831,8 +6895,8 @@ L_08A76A14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A76A38: @@ -5928,8 +6992,21 @@ L_08A76AEC: ctx.gpr[7] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A76B28u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 559u, 0x08A76B28u, 0x08B6E0F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 444u, 0x08B6E0F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76B28u) goto L_08A76B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76B28: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); @@ -5961,8 +7038,21 @@ L_08A76B50: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(8), static_cast(ctx.gpr[1])); aot_gpr_31 = (0x08A76B80u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 562u, 0x08A76B80u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76B80u) goto L_08A76B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76B80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5989,8 +7079,8 @@ L_08A76B9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A76BB4: @@ -6080,8 +7170,21 @@ L_08A76C48: aot_gpr_6 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08A76C84u); ctx.gpr[7] = (aot_gpr_29 + static_cast(24)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 576u, 0x08A76C84u, 0x08B6E0F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 444u, 0x08B6E0F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76C84u) goto L_08A76C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76C84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); @@ -6094,8 +7197,8 @@ L_08A76C94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A76CA8: @@ -6157,8 +7260,21 @@ L_08A76D10: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A76D20u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 586u, 0x08A76D20u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76D20u) goto L_08A76D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76D20: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); goto L_08A76D24; @@ -6195,15 +7311,15 @@ L_08A76D40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A76D5C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(28), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A76D64: @@ -6250,8 +7366,8 @@ L_08A76DAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A76DCC: @@ -6265,8 +7381,21 @@ L_08A76DCC: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A76E04u); aot_gpr_4 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 599u, 0x08A76E04u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76E04u) goto L_08A76E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76E04: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -6414,8 +7543,21 @@ L_08A76F9C: aot_gpr_4 = (ctx.gpr[17] << 2u); aot_gpr_31 = (0x08A76FACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 609u, 0x08A76FACu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76FACu) goto L_08A76FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76FAC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); @@ -6451,8 +7593,21 @@ L_08A76FDC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A76FF0u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 614u, 0x08A76FF0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A76FF0u) goto L_08A76FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A76FF0: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[20]); @@ -6513,8 +7668,8 @@ L_08A77044: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A77064: @@ -6532,8 +7687,8 @@ L_08A77088: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A77094: @@ -6550,8 +7705,8 @@ L_08A770B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A770C0: @@ -6611,8 +7766,21 @@ L_08A77124: aot_gpr_6 = (aot_gpr_4 - aot_gpr_5); aot_gpr_31 = (0x08A77134u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 633u, 0x08A77134u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77134u) goto L_08A77134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77134: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); goto L_08A77138; @@ -6644,8 +7812,8 @@ L_08A77154: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A77168: @@ -6727,8 +7895,21 @@ L_08A771FC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A77208u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 640u, 0x08A77208u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77208u) goto L_08A77208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77208: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(24), std::bit_cast(ctx.fpr[0])); goto L_08A7720C; @@ -6752,8 +7933,21 @@ L_08A77224: } aot_gpr_31 = (0x08A77238u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 643u, 0x08A77238u, 0x0887CCD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 236u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 236u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 236u, 0x0887CCD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77238u) goto L_08A77238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77238: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6763,16 +7957,29 @@ L_08A77238: } L_08A77240: aot_gpr_31 = (0x08A77248u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 645u, 0x08A77248u, 0x0887CD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 241u, 0x0887CD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77248u) goto L_08A77248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77248: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7725C: @@ -6786,16 +7993,42 @@ L_08A7725C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A772A4u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 647u, 0x08A772A4u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A772A4u) goto L_08A772A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A772A4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(3)))))); ctx.gpr[22] = (0u | 1u); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08A772B8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 648u, 0x08A772B8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A772B8u) goto L_08A772B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A772B8: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(64))); @@ -6839,8 +8072,21 @@ L_08A772E4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08A77338u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 651u, 0x08A77338u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77338u) goto L_08A77338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77338: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6875,14 +8121,40 @@ L_08A7734C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); aot_gpr_31 = (0x08A77394u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 654u, 0x08A77394u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77394u) goto L_08A77394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77394: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A773A0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 655u, 0x08A773A0u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A773A0u) goto L_08A773A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A773A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6935,8 +8207,21 @@ L_08A773C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); aot_gpr_31 = (0x08A77414u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 658u, 0x08A77414u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77414u) goto L_08A77414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77414: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -6949,8 +8234,21 @@ L_08A77420: aot_gpr_6 = (aot_gpr_29 + static_cast(53)); aot_gpr_31 = (0x08A77430u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 660u, 0x08A77430u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77430u) goto L_08A77430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77430: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(53))); @@ -7039,8 +8337,21 @@ L_08A774B8: aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08A774E8u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 667u, 0x08A774E8u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A774E8u) goto L_08A774E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A774E8: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (ctx.gpr[22] | 0u); @@ -7068,8 +8379,8 @@ L_08A774F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A77524: @@ -7097,8 +8408,8 @@ L_08A77524: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A77584: @@ -7163,8 +8474,8 @@ L_08A775E8: } L_08A775F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A775F8: @@ -7242,8 +8553,21 @@ L_08A776CC: ctx.gpr[7] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A776E0u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 686u, 0x08A776E0u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A776E0u) goto L_08A776E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A776E0: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A776ECu); @@ -7388,8 +8712,8 @@ L_08A777F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A77830: @@ -7668,8 +8992,8 @@ L_08A77A74: } L_08A77A88: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A77A90: @@ -7841,8 +9165,8 @@ L_08A77BE8: goto L_08A77BF0; L_08A77BF0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A77BF8: @@ -8076,8 +9400,21 @@ L_08A77EA8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08A77EBCu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0156->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0156_entry, 773u, 0x08A77EBCu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A77EBCu) goto L_08A77EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A77EBC: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08A77EC8u); diff --git a/profiles/vcs/generated/generated_unit_0157.cpp b/profiles/vcs/generated/generated_unit_0157.cpp index 73fd44b..ad9dfe0 100644 --- a/profiles/vcs/generated/generated_unit_0157.cpp +++ b/profiles/vcs/generated/generated_unit_0157.cpp @@ -875,6 +875,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A78000u; + if (local_delta_v813 >= 16364u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -952,8 +976,21 @@ L_08A78074: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A780C8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 5u, 0x08A780C8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A780C8u) goto L_08A780C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A780C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -988,16 +1025,42 @@ L_08A78100: L_08A78104: aot_gpr_31 = (0x08A7810Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[16])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 10u, 0x08A7810Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7810Cu) goto L_08A7810C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7810C: ctx.fpr[16] = aot_fpr_20 - ctx.fpr[0]; goto L_08A78110; L_08A78110: aot_gpr_31 = (0x08A78118u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[16])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 12u, 0x08A78118u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78118u) goto L_08A78118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78118: ctx.fpr[18] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); @@ -1279,8 +1342,21 @@ L_08A783E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(156), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08A7844Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 32u, 0x08A7844Cu, 0x08AF9350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 223u, 0x08AF9350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7844Cu) goto L_08A7844C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7844C: aot_gpr_4 = (0u | 6u); aot_gpr_31 = (0x08A78458u); @@ -1312,8 +1388,8 @@ L_08A78464: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(384))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(400)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A784AC: @@ -1398,8 +1474,21 @@ L_08A7859C: goto L_08A785AC; L_08A785AC: aot_gpr_31 = (0x08A785B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 40u, 0x08A785B4u, 0x08AF9350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 223u, 0x08AF9350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A785B4u) goto L_08A785B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A785B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8456))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); @@ -1656,8 +1745,21 @@ L_08A7885C: L_08A78940: aot_gpr_31 = (0x08A78948u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 49u, 0x08A78948u, 0x08818130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 10u, 0x08818130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78948u) goto L_08A78948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78948: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8456))); aot_fpr_14 = ctx.fpr[0] + ctx.fpr[26]; @@ -1698,8 +1800,21 @@ L_08A78988: L_08A789A4: aot_gpr_31 = (0x08A789ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 53u, 0x08A789ACu, 0x08818130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 10u, 0x08818130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A789ACu) goto L_08A789AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A789AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8456))); aot_fpr_14 = ctx.fpr[0] + ctx.fpr[26]; @@ -1732,8 +1847,21 @@ L_08A789EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08A78A08u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 56u, 0x08A78A08u, 0x08818130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 10u, 0x08818130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78A08u) goto L_08A78A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78A08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8456))); aot_fpr_12 = ctx.fpr[0] + ctx.fpr[26]; @@ -1758,8 +1886,21 @@ L_08A78A08: L_08A78A44: aot_gpr_31 = (0x08A78A4Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 58u, 0x08A78A4Cu, 0x08818130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 10u, 0x08818130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78A4Cu) goto L_08A78A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78A4C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(32), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -1831,8 +1972,8 @@ L_08A78AE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A78B44: @@ -1844,8 +1985,21 @@ L_08A78B44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A78B64u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 62u, 0x08A78B64u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78B64u) goto L_08A78B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78B64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -1863,16 +2017,29 @@ L_08A78B78: L_08A78B7C: aot_gpr_31 = (0x08A78B84u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 66u, 0x08A78B84u, 0x0880DC1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 412u, 0x0880DC1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78B84u) goto L_08A78B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78B84: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A78B98: @@ -1886,8 +2053,21 @@ L_08A78B98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A78BC0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 68u, 0x08A78BC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78BC0u) goto L_08A78BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78BC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -1906,8 +2086,21 @@ L_08A78BD8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08A78BE4u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 72u, 0x08A78BE4u, 0x0880E29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 471u, 0x0880E29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78BE4u) goto L_08A78BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78BE4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -1915,8 +2108,8 @@ L_08A78BE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A78BFC: @@ -1930,8 +2123,21 @@ L_08A78BFC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A78C24u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 74u, 0x08A78C24u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78C24u) goto L_08A78C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78C24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -1950,8 +2156,21 @@ L_08A78C3C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08A78C48u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 78u, 0x08A78C48u, 0x0880E2F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 476u, 0x0880E2F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78C48u) goto L_08A78C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78C48: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -1959,8 +2178,8 @@ L_08A78C48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A78C60: @@ -1982,8 +2201,21 @@ L_08A78C60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x08A78CA8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 80u, 0x08A78CA8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78CA8u) goto L_08A78CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78CA8: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -2011,8 +2243,21 @@ L_08A78CE0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A78CECu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 83u, 0x08A78CECu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78CECu) goto L_08A78CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78CEC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A78CF0; @@ -2020,8 +2265,21 @@ L_08A78CF0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A78CFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 85u, 0x08A78CFCu, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78CFCu) goto L_08A78CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78CFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2041,8 +2299,21 @@ L_08A78D10: L_08A78D14: aot_gpr_31 = (0x08A78D1Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 89u, 0x08A78D1Cu, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78D1Cu) goto L_08A78D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78D1C: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -2088,8 +2359,21 @@ L_08A78D54: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08A78D70u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 97u, 0x08A78D70u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78D70u) goto L_08A78D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78D70: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2111,8 +2395,8 @@ L_08A78D84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A78DB4: @@ -2126,8 +2410,21 @@ L_08A78DB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A78DDCu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 100u, 0x08A78DDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78DDCu) goto L_08A78DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78DDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2146,8 +2443,21 @@ L_08A78DF4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08A78E00u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 104u, 0x08A78E00u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78E00u) goto L_08A78E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78E00: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -2155,8 +2465,8 @@ L_08A78E00: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A78E18: @@ -2173,8 +2483,21 @@ L_08A78E18: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A78E4Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 106u, 0x08A78E4Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78E4Cu) goto L_08A78E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78E4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08A78E58u); @@ -2185,8 +2508,21 @@ L_08A78E58: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A78E64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 108u, 0x08A78E64u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78E64u) goto L_08A78E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78E64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2206,8 +2542,21 @@ L_08A78E78: L_08A78E7C: aot_gpr_31 = (0x08A78E84u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 112u, 0x08A78E84u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78E84u) goto L_08A78E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78E84: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -2250,8 +2599,21 @@ L_08A78EBC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A78ECCu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 120u, 0x08A78ECCu, 0x0880DF30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 438u, 0x0880DF30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78ECCu) goto L_08A78ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78ECC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2272,8 +2634,21 @@ L_08A78EE4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A78EF0u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 124u, 0x08A78EF0u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78EF0u) goto L_08A78EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78EF0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2291,8 +2666,8 @@ L_08A78F04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A78F24: @@ -2309,8 +2684,21 @@ L_08A78F24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A78F58u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 127u, 0x08A78F58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78F58u) goto L_08A78F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78F58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08A78F64u); @@ -2321,8 +2709,21 @@ L_08A78F64: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A78F70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 129u, 0x08A78F70u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78F70u) goto L_08A78F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78F70: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2342,8 +2743,21 @@ L_08A78F84: L_08A78F88: aot_gpr_31 = (0x08A78F90u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 133u, 0x08A78F90u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78F90u) goto L_08A78F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78F90: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -2386,8 +2800,21 @@ L_08A78FC8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A78FD8u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 141u, 0x08A78FD8u, 0x0880DF30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 438u, 0x0880DF30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78FD8u) goto L_08A78FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78FD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2408,8 +2835,21 @@ L_08A78FF0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A78FFCu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 145u, 0x08A78FFCu, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A78FFCu) goto L_08A78FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A78FFC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2427,8 +2867,8 @@ L_08A79010: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79030: @@ -2445,8 +2885,21 @@ L_08A79030: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A79064u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 148u, 0x08A79064u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79064u) goto L_08A79064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08A79070u); @@ -2457,8 +2910,21 @@ L_08A79070: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A7907Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 150u, 0x08A7907Cu, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7907Cu) goto L_08A7907C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7907C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2478,8 +2944,21 @@ L_08A79090: L_08A79094: aot_gpr_31 = (0x08A7909Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 154u, 0x08A7909Cu, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7909Cu) goto L_08A7909C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7909C: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -2522,8 +3001,21 @@ L_08A790D4: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08A790E4u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 162u, 0x08A790E4u, 0x0880DF30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 438u, 0x0880DF30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A790E4u) goto L_08A790E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A790E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2544,8 +3036,21 @@ L_08A790FC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A79108u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 166u, 0x08A79108u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79108u) goto L_08A79108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79108: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2563,8 +3068,8 @@ L_08A7911C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7913C: @@ -2585,8 +3090,21 @@ L_08A7913C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_31); aot_gpr_31 = (0x08A79180u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 169u, 0x08A79180u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79180u) goto L_08A79180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79180: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -2614,8 +3132,21 @@ L_08A791B8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A791C4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 172u, 0x08A791C4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A791C4u) goto L_08A791C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A791C4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A791C8; @@ -2623,8 +3154,21 @@ L_08A791C8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A791D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 174u, 0x08A791D4u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A791D4u) goto L_08A791D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A791D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2644,8 +3188,21 @@ L_08A791E8: L_08A791EC: aot_gpr_31 = (0x08A791F4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 178u, 0x08A791F4u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A791F4u) goto L_08A791F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A791F4: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -2691,8 +3248,21 @@ L_08A7922C: ctx.gpr[7] = (0u | 5u); aot_gpr_31 = (0x08A79248u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 186u, 0x08A79248u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79248u) goto L_08A79248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79248: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2713,8 +3283,21 @@ L_08A79260: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A7926Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 190u, 0x08A7926Cu, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7926Cu) goto L_08A7926C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7926C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2735,8 +3318,8 @@ L_08A79280: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A792AC: @@ -2750,8 +3333,21 @@ L_08A792AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A792D4u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 193u, 0x08A792D4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A792D4u) goto L_08A792D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A792D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2770,8 +3366,21 @@ L_08A792EC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08A792F8u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 197u, 0x08A792F8u, 0x0880E3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 490u, 0x0880E3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A792F8u) goto L_08A792F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A792F8: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -2779,8 +3388,8 @@ L_08A792F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79310: @@ -2802,8 +3411,21 @@ L_08A79310: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x08A79358u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 199u, 0x08A79358u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79358u) goto L_08A79358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79358: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -2831,8 +3453,21 @@ L_08A79390: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A7939Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 202u, 0x08A7939Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7939Cu) goto L_08A7939C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7939C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A793A0; @@ -2840,8 +3475,21 @@ L_08A793A0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A793ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 204u, 0x08A793ACu, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A793ACu) goto L_08A793AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A793AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2861,8 +3509,21 @@ L_08A793C0: L_08A793C4: aot_gpr_31 = (0x08A793CCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 208u, 0x08A793CCu, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A793CCu) goto L_08A793CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A793CC: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -2908,8 +3569,21 @@ L_08A79404: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A79420u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 216u, 0x08A79420u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79420u) goto L_08A79420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79420: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2930,8 +3604,21 @@ L_08A79438: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_31 = (0x08A79444u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 220u, 0x08A79444u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79444u) goto L_08A79444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79444: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2953,8 +3640,8 @@ L_08A79458: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79488: @@ -2976,8 +3663,21 @@ L_08A79488: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x08A794D0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 223u, 0x08A794D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A794D0u) goto L_08A794D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A794D0: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -3005,8 +3705,21 @@ L_08A79508: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A79514u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 226u, 0x08A79514u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79514u) goto L_08A79514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79514: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A79518; @@ -3014,8 +3727,21 @@ L_08A79518: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A79524u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 228u, 0x08A79524u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79524u) goto L_08A79524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79524: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3035,8 +3761,21 @@ L_08A79538: L_08A7953C: aot_gpr_31 = (0x08A79544u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 232u, 0x08A79544u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79544u) goto L_08A79544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79544: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -3082,8 +3821,21 @@ L_08A7957C: ctx.gpr[7] = (0u | 5u); aot_gpr_31 = (0x08A79598u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 240u, 0x08A79598u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79598u) goto L_08A79598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79598: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3104,8 +3856,21 @@ L_08A795B0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_31 = (0x08A795BCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 244u, 0x08A795BCu, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A795BCu) goto L_08A795BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A795BC: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3127,8 +3892,8 @@ L_08A795D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79600: @@ -3150,8 +3915,21 @@ L_08A79600: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x08A79648u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 247u, 0x08A79648u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79648u) goto L_08A79648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79648: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -3179,8 +3957,21 @@ L_08A79680: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A7968Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 250u, 0x08A7968Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7968Cu) goto L_08A7968C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7968C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A79690; @@ -3188,8 +3979,21 @@ L_08A79690: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A7969Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 252u, 0x08A7969Cu, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7969Cu) goto L_08A7969C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7969C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3209,8 +4013,21 @@ L_08A796B0: L_08A796B4: aot_gpr_31 = (0x08A796BCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 256u, 0x08A796BCu, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A796BCu) goto L_08A796BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A796BC: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -3256,8 +4073,21 @@ L_08A796F4: ctx.gpr[7] = (0u | 5u); aot_gpr_31 = (0x08A79710u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 264u, 0x08A79710u, 0x0880E158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 456u, 0x0880E158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79710u) goto L_08A79710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79710: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3278,8 +4108,21 @@ L_08A79728: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_31 = (0x08A79734u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 268u, 0x08A79734u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79734u) goto L_08A79734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79734: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3301,8 +4144,8 @@ L_08A79748: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79778: @@ -3320,13 +4163,39 @@ L_08A79778: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08A797B0u); ctx.gpr[7] = (ctx.gpr[19] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 271u, 0x08A797B0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A797B0u) goto L_08A797B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A797B0: aot_gpr_31 = (0x08A797B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 272u, 0x08A797B8u, 0x088F352Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 659u, 0x088F352Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A797B8u) goto L_08A797B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A797B8: aot_gpr_5 = (2246u << 16u); aot_gpr_4 = (ctx.gpr[2] << 6u); @@ -3336,8 +4205,21 @@ L_08A797B8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A797D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 273u, 0x08A797D8u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A797D8u) goto L_08A797D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A797D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3357,8 +4239,21 @@ L_08A797EC: L_08A797F0: aot_gpr_31 = (0x08A797F8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 277u, 0x08A797F8u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A797F8u) goto L_08A797F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A797F8: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -3407,8 +4302,21 @@ L_08A7983C: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08A79850u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 285u, 0x08A79850u, 0x0880DF30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 438u, 0x0880DF30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79850u) goto L_08A79850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79850: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3429,8 +4337,21 @@ L_08A79868: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A79874u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 289u, 0x08A79874u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79874u) goto L_08A79874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79874: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3449,8 +4370,8 @@ L_08A79888: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A798AC: @@ -3472,8 +4393,21 @@ L_08A798AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_31); aot_gpr_31 = (0x08A798F4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 292u, 0x08A798F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A798F4u) goto L_08A798F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A798F4: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -3501,8 +4435,21 @@ L_08A7992C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08A79938u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 295u, 0x08A79938u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79938u) goto L_08A79938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79938: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A7993C; @@ -3510,8 +4457,21 @@ L_08A7993C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08A79948u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 297u, 0x08A79948u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79948u) goto L_08A79948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79948: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3531,8 +4491,21 @@ L_08A7995C: L_08A79960: aot_gpr_31 = (0x08A79968u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 301u, 0x08A79968u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79968u) goto L_08A79968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79968: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_5; @@ -3578,8 +4551,21 @@ L_08A799A0: ctx.gpr[7] = (0u | 2u); aot_gpr_31 = (0x08A799BCu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 309u, 0x08A799BCu, 0x0880E158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 456u, 0x0880E158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A799BCu) goto L_08A799BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A799BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3600,8 +4586,21 @@ L_08A799D4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_gpr_31 = (0x08A799E0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 313u, 0x08A799E0u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A799E0u) goto L_08A799E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A799E0: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3623,8 +4622,8 @@ L_08A799F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79A24: @@ -3644,15 +4643,28 @@ L_08A79A38: L_08A79A40: aot_gpr_31 = (0x08A79A48u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 318u, 0x08A79A48u, 0x0880DCB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 418u, 0x0880DCB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79A48u) goto L_08A79A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79A48: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79A58: @@ -3665,8 +4677,21 @@ L_08A79A58: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A79A7Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 320u, 0x08A79A7Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79A7Cu) goto L_08A79A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79A7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3684,8 +4709,21 @@ L_08A79A90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); aot_gpr_31 = (0x08A79A9Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 323u, 0x08A79A9Cu, 0x0880EB5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 576u, 0x0880EB5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79A9Cu) goto L_08A79A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79A9C: ctx.gpr[2] = (0u | 0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -3693,8 +4731,8 @@ L_08A79A9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79AB4: @@ -3714,8 +4752,21 @@ L_08A79AB4: L_08A79AD4: aot_gpr_31 = (0x08A79ADCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 326u, 0x08A79ADCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79ADCu) goto L_08A79ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79ADC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3764,8 +4815,8 @@ L_08A79B14: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79B24: @@ -3777,8 +4828,8 @@ L_08A79B24: aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; ctx.fpr[0] = ctx.fpr[0] / aot_fpr_14; jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79B48: @@ -3867,8 +4918,8 @@ L_08A79B48: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79BAC: @@ -3878,8 +4929,21 @@ L_08A79BAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A79BC4u); aot_gpr_4 = (aot_gpr_4 + static_cast(7840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 336u, 0x08A79BC4u, 0x08B6E538u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 497u, 0x08B6E538u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79BC4u) goto L_08A79BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79BC4: aot_gpr_31 = (0x08A79BCCu); goto L_08A79BD8; @@ -3887,8 +4951,8 @@ L_08A79BCC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79BD8: @@ -4010,8 +5074,21 @@ L_08A79CA8: ctx.gpr[17] = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A79CB4u); aot_gpr_4 = (aot_gpr_4 << 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 354u, 0x08A79CB4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79CB4u) goto L_08A79CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79CB4: aot_gpr_5 = (ctx.gpr[17] + static_cast(-1)); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5500), ctx.gpr[2]); @@ -4126,8 +5203,8 @@ L_08A79D70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79D84: @@ -4140,22 +5217,48 @@ L_08A79D84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A79DA8u); aot_gpr_4 = (aot_gpr_4 + static_cast(7840)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 370u, 0x08A79DA8u, 0x08B6E5D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 503u, 0x08B6E5D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79DA8u) goto L_08A79DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79DA8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79DB4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A79DC4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 372u, 0x08A79DC4u, 0x08B11F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 435u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 435u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 435u, 0x08B11F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79DC4u) goto L_08A79DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79DC4: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -4177,14 +5280,27 @@ L_08A79DC4: aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(10042), static_cast(0u)); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(10040), static_cast(0u)); aot_gpr_31 = (0x08A79DECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 373u, 0x08A79DECu, 0x08A7E278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 402u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 402u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 402u, 0x08A7E278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79DECu) goto L_08A79DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79DEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79DF8: @@ -4348,12 +5464,38 @@ L_08A79F28: goto L_08A79F5C; L_08A79F30: aot_gpr_31 = (0x08A79F38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 392u, 0x08A79F38u, 0x089EE290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 318u, 0x089EE290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79F38u) goto L_08A79F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79F38: aot_gpr_31 = (0x08A79F40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 393u, 0x08A79F40u, 0x08A9A194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 259u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 259u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 259u, 0x08A9A194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A79F40u) goto L_08A79F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A79F40: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -4362,8 +5504,8 @@ L_08A79F40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A79F5C: @@ -4451,8 +5593,21 @@ L_08A79FF8: } L_08A7A00C: aot_gpr_31 = (0x08A7A014u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 405u, 0x08A7A014u, 0x08A3CC80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 167u, 0x08A3CC80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A014u) goto L_08A7A014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A014: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5496))); @@ -4480,8 +5635,21 @@ L_08A7A024: } L_08A7A038: aot_gpr_31 = (0x08A7A040u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 409u, 0x08A7A040u, 0x08A3CC80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 167u, 0x08A3CC80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A040u) goto L_08A7A040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A040: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5496))); goto L_08A7A044; @@ -4512,8 +5680,21 @@ L_08A7A068: goto L_08A7A06C; L_08A7A06C: aot_gpr_31 = (0x08A7A074u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 415u, 0x08A7A074u, 0x08954F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 221u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 221u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 221u, 0x08954F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A074u) goto L_08A7A074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A074: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -4523,8 +5704,8 @@ L_08A7A074: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7A094: @@ -4619,8 +5800,8 @@ L_08A7A148: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7A15C: @@ -4713,8 +5894,21 @@ L_08A7A210: L_08A7A228: aot_gpr_31 = (0x08A7A230u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 437u, 0x08A7A230u, 0x0894530Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 191u, 0x0894530Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A230u) goto L_08A7A230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A230: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[17]; if (branch_taken) { @@ -4762,8 +5956,21 @@ L_08A7A238: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A7A268u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 439u, 0x08A7A268u, 0x089451D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A268u) goto L_08A7A268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A268: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4809,8 +6016,8 @@ L_08A7A2A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7A2C8: @@ -4831,14 +6038,27 @@ L_08A7A2E4: AOT_REGCACHE_SYNC_OUT(); return; L_08A7A2EC: aot_gpr_31 = (0x08A7A2F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 449u, 0x08A7A2F4u, 0x08945050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 142u, 0x08945050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A2F4u) goto L_08A7A2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A2F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7A300: @@ -4872,17 +6092,56 @@ L_08A7A300: AOT_REGCACHE_SYNC_OUT(); return; L_08A7A368: aot_gpr_31 = (0x08A7A370u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 452u, 0x08A7A370u, 0x089EE290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 318u, 0x089EE290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A370u) goto L_08A7A370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A370: aot_gpr_31 = (0x08A7A378u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 453u, 0x08A7A378u, 0x08944F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 127u, 0x08944F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A378u) goto L_08A7A378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A378: aot_gpr_31 = (0x08A7A380u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 454u, 0x08A7A380u, 0x08B6E5D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 503u, 0x08B6E5D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A380u) goto L_08A7A380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A380: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(10072))); ctx.gpr[20] = (0u | 0u); @@ -4973,8 +6232,21 @@ L_08A7A420: L_08A7A450: aot_gpr_31 = (0x08A7A458u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 463u, 0x08A7A458u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A458u) goto L_08A7A458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A458: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4986,8 +6258,21 @@ L_08A7A458: L_08A7A464: aot_gpr_31 = (0x08A7A46Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 465u, 0x08A7A46Cu, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A46Cu) goto L_08A7A46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A46C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4998,8 +6283,21 @@ L_08A7A46C: L_08A7A474: aot_gpr_31 = (0x08A7A47Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 467u, 0x08A7A47Cu, 0x0894530Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 191u, 0x0894530Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A47Cu) goto L_08A7A47C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A47C: aot_gpr_4 = (0u | 255u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -5110,8 +6408,21 @@ L_08A7A4E4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A7A51Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 478u, 0x08A7A51Cu, 0x08B6E628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 507u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 507u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 507u, 0x08B6E628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A51Cu) goto L_08A7A51C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A51C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(10072))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -5173,8 +6484,8 @@ L_08A7A568: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7A5B8: @@ -5238,8 +6549,8 @@ L_08A7A62C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7A638: @@ -5259,8 +6570,8 @@ L_08A7A658: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7A664: @@ -5460,8 +6771,21 @@ L_08A7A7C8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x08A7A7E0u); ctx.gpr[19] = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 517u, 0x08A7A7E0u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A7E0u) goto L_08A7A7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A7E0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -5493,12 +6817,38 @@ L_08A7A800: L_08A7A808: aot_gpr_31 = (0x08A7A810u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 522u, 0x08A7A810u, 0x08945314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 192u, 0x08945314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A810u) goto L_08A7A810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A810: aot_gpr_31 = (0x08A7A818u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 523u, 0x08A7A818u, 0x08944F2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 125u, 0x08944F2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A818u) goto L_08A7A818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A818: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -5627,8 +6977,21 @@ L_08A7A8FC: } L_08A7A904: aot_gpr_31 = (0x08A7A90Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 538u, 0x08A7A90Cu, 0x08944F98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 132u, 0x08944F98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7A90Cu) goto L_08A7A90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7A90C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5651,8 +7014,8 @@ L_08A7A928: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7A94C: @@ -5739,12 +7102,38 @@ L_08A7A94C: AOT_REGCACHE_SYNC_OUT(); return; L_08A7AA6C: aot_gpr_31 = (0x08A7AA74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 542u, 0x08A7AA74u, 0x08944F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 129u, 0x08944F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AA74u) goto L_08A7AA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AA74: aot_gpr_31 = (0x08A7AA7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 543u, 0x08A7AA7Cu, 0x08944F4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 127u, 0x08944F4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AA7Cu) goto L_08A7AA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AA7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(10072))); ctx.gpr[20] = (0u | 0u); @@ -5791,8 +7180,21 @@ L_08A7AAD0: L_08A7AADC: aot_gpr_31 = (0x08A7AAE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 548u, 0x08A7AAE4u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AAE4u) goto L_08A7AAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AAE4: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[23]; if (branch_taken) { @@ -5967,8 +7369,21 @@ L_08A7AC10: L_08A7AC40: aot_gpr_31 = (0x08A7AC48u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 570u, 0x08A7AC48u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AC48u) goto L_08A7AC48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AC48: { const bool branch_taken = ctx.gpr[2] == ctx.gpr[23]; if (branch_taken) { @@ -5979,8 +7394,21 @@ L_08A7AC48: L_08A7AC50: aot_gpr_31 = (0x08A7AC58u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 572u, 0x08A7AC58u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AC58u) goto L_08A7AC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AC58: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5991,8 +7419,21 @@ L_08A7AC58: L_08A7AC60: aot_gpr_31 = (0x08A7AC68u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 574u, 0x08A7AC68u, 0x0894530Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 191u, 0x0894530Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AC68u) goto L_08A7AC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AC68: aot_gpr_4 = (0u | 255u); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -6082,8 +7523,21 @@ L_08A7ACB8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08A7ACECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 581u, 0x08A7ACECu, 0x089451D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7ACECu) goto L_08A7ACEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7ACEC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6109,12 +7563,38 @@ L_08A7AD00: } L_08A7AD14: aot_gpr_31 = (0x08A7AD1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 585u, 0x08A7AD1Cu, 0x08945050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 142u, 0x08945050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AD1Cu) goto L_08A7AD1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AD1C: aot_gpr_31 = (0x08A7AD24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 586u, 0x08A7AD24u, 0x089FD7E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 361u, 0x089FD7E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AD24u) goto L_08A7AD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AD24: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-17680), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); @@ -6133,8 +7613,21 @@ L_08A7AD3C: L_08A7AD40: aot_gpr_31 = (0x08A7AD48u); aot_gpr_16 = (2236u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 590u, 0x08A7AD48u, 0x08805630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 199u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 199u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 199u, 0x08805630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AD48u) goto L_08A7AD48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AD48: aot_gpr_4 = (0u | 11u); aot_gpr_31 = (0x08A7AD54u); @@ -6162,8 +7655,8 @@ L_08A7AD54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7ADA4: @@ -6286,8 +7779,21 @@ L_08A7AEA4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A7AEB8u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 605u, 0x08A7AEB8u, 0x0895B470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 455u, 0x0895B470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AEB8u) goto L_08A7AEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AEB8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A7AEC4u); @@ -6306,8 +7812,21 @@ L_08A7AED4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A7AEE4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 608u, 0x08A7AEE4u, 0x0895B470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 455u, 0x0895B470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AEE4u) goto L_08A7AEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AEE4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-17673), static_cast(0u)); goto L_08A7AEE8; @@ -6374,8 +7893,8 @@ L_08A7AF50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7AF74: @@ -6402,8 +7921,21 @@ L_08A7AF74: } L_08A7AFB8: aot_gpr_31 = (0x08A7AFC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 618u, 0x08A7AFC0u, 0x08B26030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 432u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 432u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 432u, 0x08B26030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7AFC0u) goto L_08A7AFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7AFC0: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -6421,8 +7953,8 @@ L_08A7AFD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7AFE4: @@ -6501,8 +8033,21 @@ L_08A7B088: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); aot_gpr_31 = (0x08A7B094u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 630u, 0x08A7B094u, 0x08954B84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 174u, 0x08954B84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B094u) goto L_08A7B094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B094: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6540,8 +8085,21 @@ L_08A7B0BC: aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x08A7B0D0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 635u, 0x08A7B0D0u, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B0D0u) goto L_08A7B0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B0D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6567,8 +8125,21 @@ L_08A7B0D8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A7B0F0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 637u, 0x08A7B0F0u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B0F0u) goto L_08A7B0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B0F0: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6609,8 +8180,21 @@ L_08A7B11C: L_08A7B124: aot_gpr_31 = (0x08A7B12Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 641u, 0x08A7B12Cu, 0x08AAE0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B12Cu) goto L_08A7B12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B12C: aot_gpr_4 = (16880u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6633,8 +8217,21 @@ L_08A7B148: L_08A7B150: aot_gpr_31 = (0x08A7B158u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 644u, 0x08A7B158u, 0x08AAE0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B158u) goto L_08A7B158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B158: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6665,8 +8262,8 @@ L_08A7B180: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B19C: @@ -6769,8 +8366,21 @@ L_08A7B27C: L_08A7B294: aot_gpr_31 = (0x08A7B29Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 656u, 0x08A7B29Cu, 0x08A7CEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 83u, 0x08A7CEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B29Cu) goto L_08A7B29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B29C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -7056,8 +8666,8 @@ L_08A7B494: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B4CC: @@ -7133,8 +8743,21 @@ L_08A7B554: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(86)))))); aot_gpr_31 = (0x08A7B560u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 697u, 0x08A7B560u, 0x08AD3280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 548u, 0x08AD3280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B560u) goto L_08A7B560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B560: { const bool branch_taken = ctx.gpr[20] != 0u; if (branch_taken) { @@ -7163,15 +8786,15 @@ L_08A7B578: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B5A0: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B5A8: @@ -7183,8 +8806,8 @@ L_08A7B5A8: } // TIER2_SUPERBLOCK_V2_HOOK_END jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B5B0: @@ -7251,8 +8874,21 @@ L_08A7B61C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A7B630u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 708u, 0x08A7B630u, 0x08B25E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 414u, 0x08B25E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B630u) goto L_08A7B630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B630: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -7284,8 +8920,8 @@ L_08A7B660: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B670: @@ -7306,8 +8942,8 @@ L_08A7B690: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B69C: @@ -7392,8 +9028,8 @@ L_08A7B724: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B730: @@ -7419,8 +9055,8 @@ L_08A7B754: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B764: @@ -7487,8 +9123,21 @@ L_08A7B7D0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A7B7E4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 739u, 0x08A7B7E4u, 0x08B25E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 414u, 0x08B25E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B7E4u) goto L_08A7B7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B7E4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -7520,8 +9169,8 @@ L_08A7B814: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B824: @@ -7542,8 +9191,8 @@ L_08A7B844: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B850: @@ -7610,8 +9259,21 @@ L_08A7B8BC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A7B8D0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 754u, 0x08A7B8D0u, 0x08B25E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 414u, 0x08B25E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B8D0u) goto L_08A7B8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B8D0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -7643,8 +9305,8 @@ L_08A7B900: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B910: @@ -7665,8 +9327,8 @@ L_08A7B930: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B93C: @@ -7733,8 +9395,21 @@ L_08A7B9A8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A7B9BCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 769u, 0x08A7B9BCu, 0x08B25E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 414u, 0x08B25E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7B9BCu) goto L_08A7B9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7B9BC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -7766,8 +9441,8 @@ L_08A7B9EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7B9FC: @@ -7788,8 +9463,8 @@ L_08A7BA1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7BA28: @@ -7856,8 +9531,21 @@ L_08A7BA94: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A7BAA8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 784u, 0x08A7BAA8u, 0x08B25E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 414u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 414u, 0x08B25E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7BAA8u) goto L_08A7BAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7BAA8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -7889,8 +9577,8 @@ L_08A7BAD8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7BAE8: @@ -7911,8 +9599,8 @@ L_08A7BB08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7BB14: @@ -8231,8 +9919,21 @@ L_08A7BC0C: ctx.gpr[7] = (static_cast(static_cast(ctx.gpr[7]) >> 1u)); aot_gpr_31 = (0x08A7BFE8u); ctx.gpr[11] = (static_cast(static_cast(ctx.gpr[11]) >> 1u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0157->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0157_entry, 796u, 0x08A7BFE8u, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7BFE8u) goto L_08A7BFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7BFE8: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4264))); diff --git a/profiles/vcs/generated/generated_unit_0158.cpp b/profiles/vcs/generated/generated_unit_0158.cpp index d29e9f7..ac060f7 100644 --- a/profiles/vcs/generated/generated_unit_0158.cpp +++ b/profiles/vcs/generated/generated_unit_0158.cpp @@ -803,6 +803,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A7C004u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -853,8 +877,21 @@ L_08A7C034: } L_08A7C054: ctx.gpr[31] = (0x08A7C05Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 5u, 0x08A7C05Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C05Cu) goto L_08A7C05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C05C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5528))); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -966,8 +1003,21 @@ L_08A7C07C: ctx.gpr[10] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A7C20Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 7u, 0x08A7C20Cu, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C20Cu) goto L_08A7C20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C20C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(10)))))); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(11)))))); @@ -986,8 +1036,21 @@ L_08A7C20C: ctx.gpr[10] = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A7C250u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 8u, 0x08A7C250u, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C250u) goto L_08A7C250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C250: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5516))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5512))); @@ -1020,8 +1083,21 @@ L_08A7C250: ctx.gpr[7] = (0u | 0u); ctx.gpr[31] = (0x08A7C2CCu); ctx.gpr[10] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 9u, 0x08A7C2CCu, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C2CCu) goto L_08A7C2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C2CC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(10)))))); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(11)))))); @@ -1039,8 +1115,21 @@ L_08A7C2CC: ctx.gpr[10] = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x08A7C30Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 10u, 0x08A7C30Cu, 0x088DFA08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 499u, 0x088DFA08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C30Cu) goto L_08A7C30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C30C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (8448u << 16u); @@ -1273,8 +1362,8 @@ L_08A7C30C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7C6A8: @@ -1295,14 +1384,40 @@ L_08A7C6A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(460), ctx.gpr[31]); ctx.gpr[31] = (0x08A7C6ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 12u, 0x08A7C6ECu, 0x08890984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 139u, 0x08890984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C6ECu) goto L_08A7C6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C6EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); ctx.gpr[31] = (0x08A7C6F8u); aot_gpr_17 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 13u, 0x08A7C6F8u, 0x088907E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 116u, 0x088907E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C6F8u) goto L_08A7C6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C6F8: aot_gpr_5 = (2234u << 16u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1310,8 +1425,21 @@ L_08A7C6F8: aot_gpr_6 = (0u | 108u); ctx.gpr[31] = (0x08A7C710u); aot_gpr_5 = (aot_gpr_5 + static_cast(7908)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 14u, 0x08A7C710u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C710u) goto L_08A7C710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C710: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(0))); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -1347,8 +1475,21 @@ L_08A7C710: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); ctx.gpr[31] = (0x08A7C798u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 15u, 0x08A7C798u, 0x08890828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 121u, 0x08890828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C798u) goto L_08A7C798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C798: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-25492))); aot_gpr_5 = (0u | 65535u); @@ -1382,8 +1523,21 @@ L_08A7C7D4: } L_08A7C7E4: ctx.gpr[31] = (0x08A7C7ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 18u, 0x08A7C7ECu, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C7ECu) goto L_08A7C7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C7EC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -1626,8 +1780,21 @@ L_08A7C9DC: aot_gpr_6 = (0u | 9u); ctx.gpr[31] = (0x08A7C9F0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 23u, 0x08A7C9F0u, 0x088618A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 233u, 0x088618A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7C9F0u) goto L_08A7C9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7C9F0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_gpr_4 << 5u); @@ -1694,8 +1861,21 @@ L_08A7CA9C: L_08A7CAA4: ctx.gpr[31] = (0x08A7CAACu); aot_gpr_4 = (aot_gpr_29 + static_cast(272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 28u, 0x08A7CAACu, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7CAACu) goto L_08A7CAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7CAAC: aot_gpr_6 = (49864u << 16u); aot_gpr_16 = (aot_gpr_29 + static_cast(12)); @@ -1704,8 +1884,21 @@ L_08A7CAAC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x08A7CAC8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 29u, 0x08A7CAC8u, 0x08A79B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 334u, 0x08A79B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7CAC8u) goto L_08A7CAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7CAC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -1769,8 +1962,21 @@ L_08A7CB50: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A7CB64u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 38u, 0x08A7CB64u, 0x08A79B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 334u, 0x08A79B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7CB64u) goto L_08A7CB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7CB64: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -1834,8 +2040,21 @@ L_08A7CBEC: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A7CC00u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 47u, 0x08A7CC00u, 0x08A79B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 334u, 0x08A79B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7CC00u) goto L_08A7CC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7CC00: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -1899,8 +2118,21 @@ L_08A7CC88: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A7CC9Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 56u, 0x08A7CC9Cu, 0x08A79B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 334u, 0x08A79B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7CC9Cu) goto L_08A7CC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7CC9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -2102,8 +2334,21 @@ L_08A7CE64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-25496))); ctx.gpr[31] = (0x08A7CE70u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[21]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 80u, 0x08A7CE70u, 0x08A7B4CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 688u, 0x08A7B4CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7CE70u) goto L_08A7CE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7CE70: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (ctx.gpr[18] < ctx.gpr[20] ? 1u : 0u); @@ -2138,8 +2383,8 @@ L_08A7CE90: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(460))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(464)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7CEC8: @@ -2196,8 +2441,21 @@ L_08A7CF28: L_08A7CF44: ctx.gpr[31] = (0x08A7CF4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 89u, 0x08A7CF4Cu, 0x08AD0598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 51u, 0x08AD0598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7CF4Cu) goto L_08A7CF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7CF4C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2316,8 +2574,21 @@ L_08A7D020: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); ctx.gpr[31] = (0x08A7D02Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 104u, 0x08A7D02Cu, 0x08954B84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 174u, 0x08954B84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D02Cu) goto L_08A7D02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D02C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2341,8 +2612,21 @@ L_08A7D038: L_08A7D054: ctx.gpr[31] = (0x08A7D05Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 107u, 0x08A7D05Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D05Cu) goto L_08A7D05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D05C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2393,8 +2677,21 @@ L_08A7D094: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A7D0A0u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 115u, 0x08A7D0A0u, 0x08954C44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 191u, 0x08954C44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D0A0u) goto L_08A7D0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D0A0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2420,8 +2717,21 @@ L_08A7D0B8: aot_gpr_4 = (aot_gpr_4 & 255u); ctx.gpr[31] = (0x08A7D0D0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 118u, 0x08A7D0D0u, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D0D0u) goto L_08A7D0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D0D0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2589,8 +2899,21 @@ L_08A7D1D0: } L_08A7D1EC: ctx.gpr[31] = (0x08A7D1F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 138u, 0x08A7D1F4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D1F4u) goto L_08A7D1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D1F4: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); @@ -2732,8 +3055,21 @@ L_08A7D2DC: L_08A7D314: ctx.gpr[31] = (0x08A7D31Cu); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(116))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 155u, 0x08A7D31Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D31Cu) goto L_08A7D31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D31C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 6u); @@ -2745,8 +3081,21 @@ L_08A7D31C: } L_08A7D32C: ctx.gpr[31] = (0x08A7D334u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 157u, 0x08A7D334u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D334u) goto L_08A7D334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D334: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1280)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -2856,8 +3205,21 @@ L_08A7D3D4: } L_08A7D3E8: ctx.gpr[31] = (0x08A7D3F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 170u, 0x08A7D3F0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D3F0u) goto L_08A7D3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D3F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 1u); @@ -2925,8 +3287,21 @@ L_08A7D45C: } L_08A7D464: ctx.gpr[31] = (0x08A7D46Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 178u, 0x08A7D46Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D46Cu) goto L_08A7D46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D46C: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; aot_gpr_4 = (2236u << 16u); @@ -2974,8 +3349,21 @@ L_08A7D4AC: L_08A7D4DC: ctx.gpr[31] = (0x08A7D4E4u); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(116))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 182u, 0x08A7D4E4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D4E4u) goto L_08A7D4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D4E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 6u); @@ -2987,8 +3375,21 @@ L_08A7D4E4: } L_08A7D4F4: ctx.gpr[31] = (0x08A7D4FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 184u, 0x08A7D4FCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D4FCu) goto L_08A7D4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D4FC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1280)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -3167,8 +3568,21 @@ L_08A7D618: L_08A7D62C: ctx.gpr[31] = (0x08A7D634u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 204u, 0x08A7D634u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D634u) goto L_08A7D634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D634: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3179,8 +3593,21 @@ L_08A7D634: L_08A7D63C: ctx.gpr[31] = (0x08A7D644u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 206u, 0x08A7D644u, 0x08B11994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 375u, 0x08B11994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D644u) goto L_08A7D644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D644: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3263,8 +3690,21 @@ L_08A7D674: aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[31] = (0x08A7D6ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 212u, 0x08A7D6ACu, 0x089451D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D6ACu) goto L_08A7D6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D6AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_5 = (0u + static_cast(-129)); @@ -3307,8 +3747,21 @@ L_08A7D6E0: L_08A7D6F4: ctx.gpr[31] = (0x08A7D6FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 217u, 0x08A7D6FCu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D6FCu) goto L_08A7D6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D6FC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3319,8 +3772,21 @@ L_08A7D6FC: L_08A7D704: ctx.gpr[31] = (0x08A7D70Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 219u, 0x08A7D70Cu, 0x08B11994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 375u, 0x08B11994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D70Cu) goto L_08A7D70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D70C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3403,8 +3869,21 @@ L_08A7D73C: aot_fpr_12 = std::bit_cast(aot_gpr_4); ctx.gpr[31] = (0x08A7D774u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 225u, 0x08A7D774u, 0x089451D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D774u) goto L_08A7D774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D774: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_5 = (0u + static_cast(-129)); @@ -3435,8 +3914,21 @@ L_08A7D78C: aot_gpr_5 = (ctx.gpr[28] + static_cast(10048)); ctx.gpr[31] = (0x08A7D7A4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 227u, 0x08A7D7A4u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D7A4u) goto L_08A7D7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D7A4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3463,8 +3955,21 @@ L_08A7D7A4: L_08A7D7D0: ctx.gpr[31] = (0x08A7D7D8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 229u, 0x08A7D7D8u, 0x08AAE0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D7D8u) goto L_08A7D7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D7D8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[0])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -3476,8 +3981,21 @@ L_08A7D7D8: L_08A7D7E8: ctx.gpr[31] = (0x08A7D7F0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 231u, 0x08A7D7F0u, 0x08AAE0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D7F0u) goto L_08A7D7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D7F0: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A7D7F4; @@ -3529,8 +4047,21 @@ L_08A7D84C: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A7D858u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 238u, 0x08A7D858u, 0x08AAE058u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 384u, 0x08AAE058u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D858u) goto L_08A7D858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D858: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -3594,8 +4125,21 @@ L_08A7D8C4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(20))); ctx.gpr[31] = (0x08A7D8D0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 246u, 0x08A7D8D0u, 0x0895B470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 455u, 0x0895B470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D8D0u) goto L_08A7D8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D8D0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(57))); aot_gpr_4 = (static_cast(aot_gpr_4) < 239 ? 1u : 0u); @@ -3640,8 +4184,21 @@ L_08A7D900: L_08A7D914: ctx.gpr[31] = (0x08A7D91Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 252u, 0x08A7D91Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D91Cu) goto L_08A7D91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D91C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3652,8 +4209,21 @@ L_08A7D91C: L_08A7D924: ctx.gpr[31] = (0x08A7D92Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 254u, 0x08A7D92Cu, 0x08B11994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 375u, 0x08B11994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D92Cu) goto L_08A7D92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D92C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3691,8 +4261,21 @@ L_08A7D95C: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A7D968u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 259u, 0x08A7D968u, 0x089451D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D968u) goto L_08A7D968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D968: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); ctx.gpr[2] = (0u | 0u); @@ -3734,8 +4317,21 @@ L_08A7D9A0: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A7D9ACu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 264u, 0x08A7D9ACu, 0x089451D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7D9ACu) goto L_08A7D9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7D9AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_5 = (0u + static_cast(-129)); @@ -3790,8 +4386,21 @@ L_08A7D9F8: L_08A7DA04: ctx.gpr[31] = (0x08A7DA0Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 271u, 0x08A7DA0Cu, 0x08AAE0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DA0Cu) goto L_08A7DA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DA0C: aot_gpr_4 = (16880u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3824,8 +4433,21 @@ L_08A7DA38: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A7DA4Cu); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 275u, 0x08A7DA4Cu, 0x08AAE140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 401u, 0x08AAE140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DA4Cu) goto L_08A7DA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DA4C: aot_gpr_4 = (0u | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3891,8 +4513,21 @@ L_08A7DAB8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(20))); ctx.gpr[31] = (0x08A7DAC4u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 283u, 0x08A7DAC4u, 0x0895B470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 455u, 0x0895B470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DAC4u) goto L_08A7DAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DAC4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(57))); aot_gpr_4 = (static_cast(aot_gpr_4) < 239 ? 1u : 0u); @@ -3937,8 +4572,21 @@ L_08A7DAF4: L_08A7DB08: ctx.gpr[31] = (0x08A7DB10u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 289u, 0x08A7DB10u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DB10u) goto L_08A7DB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DB10: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3964,8 +4612,21 @@ L_08A7DB20: L_08A7DB28: ctx.gpr[31] = (0x08A7DB30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 293u, 0x08A7DB30u, 0x08B11994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 375u, 0x08B11994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DB30u) goto L_08A7DB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DB30: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3977,8 +4638,21 @@ L_08A7DB38: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A7DB44u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 295u, 0x08A7DB44u, 0x089451D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 165u, 0x089451D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DB44u) goto L_08A7DB44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DB44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 128u); @@ -4004,8 +4678,21 @@ L_08A7DB5C: L_08A7DB64: ctx.gpr[31] = (0x08A7DB6Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 299u, 0x08A7DB6Cu, 0x08AAE0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 396u, 0x08AAE0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DB6Cu) goto L_08A7DB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DB6C: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4044,8 +4731,8 @@ L_08A7DB9C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7DBBC: @@ -4252,8 +4939,21 @@ L_08A7DD80: aot_gpr_4 = (ctx.gpr[21] + aot_gpr_6); ctx.gpr[31] = (0x08A7DD98u); aot_gpr_5 = (ctx.gpr[21] + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 326u, 0x08A7DD98u, 0x08A79B24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 333u, 0x08A79B24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DD98u) goto L_08A7DD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DD98: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } @@ -4267,8 +4967,21 @@ L_08A7DD98: aot_gpr_5 = (ctx.gpr[21] + aot_gpr_17); ctx.gpr[31] = (0x08A7DDC8u); aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 327u, 0x08A7DDC8u, 0x08A79B24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 333u, 0x08A79B24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DDC8u) goto L_08A7DDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DDC8: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -4546,8 +5259,21 @@ L_08A7DFCC: aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); ctx.gpr[31] = (0x08A7DFD8u); aot_gpr_5 = (ctx.gpr[21] + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 362u, 0x08A7DFD8u, 0x08A79B24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 333u, 0x08A79B24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7DFD8u) goto L_08A7DFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7DFD8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4748,8 +5474,21 @@ L_08A7E14C: aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); ctx.gpr[31] = (0x08A7E158u); aot_gpr_5 = (ctx.gpr[21] + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 387u, 0x08A7E158u, 0x08A79B24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 333u, 0x08A79B24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E158u) goto L_08A7E158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E158: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4886,8 +5625,8 @@ L_08A7E234: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7E278: @@ -4912,14 +5651,40 @@ L_08A7E278: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(508), ctx.gpr[31]); ctx.gpr[31] = (0x08A7E2CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 403u, 0x08A7E2CCu, 0x08890984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 139u, 0x08890984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E2CCu) goto L_08A7E2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E2CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1980))); ctx.gpr[31] = (0x08A7E2D8u); aot_gpr_17 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 404u, 0x08A7E2D8u, 0x088907E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 116u, 0x088907E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E2D8u) goto L_08A7E2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E2D8: ctx.fpr[22] = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(ctx.fpr[22])); @@ -4961,14 +5726,40 @@ L_08A7E2D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x08A7E378u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 405u, 0x08A7E378u, 0x08890828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 121u, 0x08890828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E378u) goto L_08A7E378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E378: ctx.gpr[23] = (ctx.gpr[2] + static_cast(16)); ctx.gpr[31] = (0x08A7E384u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10080), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 406u, 0x08A7E384u, 0x08944F6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 129u, 0x08944F6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E384u) goto L_08A7E384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E384: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-25492))); aot_gpr_5 = (0u | 65535u); @@ -5005,8 +5796,21 @@ L_08A7E3CC: } L_08A7E3DC: ctx.gpr[31] = (0x08A7E3E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 409u, 0x08A7E3E4u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E3E4u) goto L_08A7E3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E3E4: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -5385,8 +6189,21 @@ L_08A7E57C: aot_gpr_6 = (0u | 9u); ctx.gpr[31] = (0x08A7E5E8u); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 418u, 0x08A7E5E8u, 0x088619ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 239u, 0x088619ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E5E8u) goto L_08A7E5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E5E8: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7640), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(80))); @@ -5415,8 +6232,21 @@ L_08A7E61C: } L_08A7E624: ctx.gpr[31] = (0x08A7E62Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 421u, 0x08A7E62Cu, 0x089603D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 39u, 0x089603D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E62Cu) goto L_08A7E62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E62C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5592,8 +6422,21 @@ L_08A7E83C: L_08A7E844: ctx.gpr[31] = (0x08A7E84Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 432u, 0x08A7E84Cu, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E84Cu) goto L_08A7E84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E84C: aot_gpr_6 = (49864u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_6); @@ -5601,8 +6444,21 @@ L_08A7E84C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08A7E864u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 433u, 0x08A7E864u, 0x08A79B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 334u, 0x08A79B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E864u) goto L_08A7E864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E864: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -5665,8 +6521,21 @@ L_08A7E8EC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x08A7E8FCu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 442u, 0x08A7E8FCu, 0x08A79B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 334u, 0x08A79B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E8FCu) goto L_08A7E8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E8FC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -5729,8 +6598,21 @@ L_08A7E984: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x08A7E994u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 451u, 0x08A7E994u, 0x08A79B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 334u, 0x08A79B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7E994u) goto L_08A7E994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7E994: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); @@ -5793,8 +6675,21 @@ L_08A7EA1C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x08A7EA2Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 460u, 0x08A7EA2Cu, 0x08A79B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 334u, 0x08A79B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7EA2Cu) goto L_08A7EA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7EA2C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); @@ -6035,8 +6930,8 @@ L_08A7EC20: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(508))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(512)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7EC68: @@ -6204,8 +7099,21 @@ L_08A7EDB8: } L_08A7EDC0: ctx.gpr[31] = (0x08A7EDC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 503u, 0x08A7EDC8u, 0x08AD3220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 542u, 0x08AD3220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7EDC8u) goto L_08A7EDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7EDC8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6225,8 +7133,21 @@ L_08A7EDDC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(86)))))); ctx.gpr[31] = (0x08A7EDE8u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 506u, 0x08A7EDE8u, 0x08AD3280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 548u, 0x08AD3280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7EDE8u) goto L_08A7EDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7EDE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6564,8 +7485,8 @@ L_08A7F048: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7F080: @@ -6733,8 +7654,21 @@ L_08A7F1D0: } L_08A7F1D8: ctx.gpr[31] = (0x08A7F1E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 560u, 0x08A7F1E0u, 0x08AD3220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 542u, 0x08AD3220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7F1E0u) goto L_08A7F1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7F1E0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6758,8 +7692,21 @@ L_08A7F1E8: } L_08A7F208: ctx.gpr[31] = (0x08A7F210u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 563u, 0x08A7F210u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7F210u) goto L_08A7F210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7F210: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(86)))))); @@ -6775,13 +7722,39 @@ L_08A7F21C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); ctx.gpr[31] = (0x08A7F228u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 566u, 0x08A7F228u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7F228u) goto L_08A7F228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7F228: ctx.gpr[31] = (0x08A7F230u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 567u, 0x08A7F230u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7F230u) goto L_08A7F230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7F230: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7130,8 +8103,8 @@ L_08A7F4A0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7F4D8: @@ -7139,8 +8112,8 @@ L_08A7F4D8: aot_gpr_4 = (aot_gpr_4 + static_cast(7840)); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(64), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7F4E8: @@ -7196,8 +8169,8 @@ L_08A7F4E8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7F510: @@ -7297,8 +8270,8 @@ L_08A7F5C4: L_08A7F5C8: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7F5D0: @@ -7351,8 +8324,8 @@ L_08A7F5D0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(148)))))); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(55), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7F694: @@ -7364,8 +8337,21 @@ L_08A7F694: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[31]); ctx.gpr[31] = (0x08A7F6B4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 625u, 0x08A7F6B4u, 0x08A8D728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 273u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 273u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 273u, 0x08A8D728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7F6B4u) goto L_08A7F6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7F6B4: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28596)); @@ -7564,8 +8550,8 @@ L_08A7F83C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7F85C: @@ -7577,8 +8563,21 @@ L_08A7F85C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[31]); ctx.gpr[31] = (0x08A7F87Cu); aot_gpr_17 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 651u, 0x08A7F87Cu, 0x08A8D7B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 275u, 0x08A8D7B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7F87Cu) goto L_08A7F87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7F87C: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28596)); @@ -7669,8 +8668,21 @@ L_08A7F954: } L_08A7F980: ctx.gpr[31] = (0x08A7F988u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 658u, 0x08A7F988u, 0x0890EF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 696u, 0x0890EF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7F988u) goto L_08A7F988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7F988: ctx.gpr[18] = (ctx.gpr[2] << 24u); ctx.gpr[18] = (static_cast(static_cast(ctx.gpr[18]) >> 24u)); @@ -7719,8 +8731,8 @@ L_08A7F990: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FA3C: @@ -7733,8 +8745,21 @@ L_08A7FA3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[31]); ctx.gpr[31] = (0x08A7FA60u); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 661u, 0x08A7FA60u, 0x08A8D860u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 279u, 0x08A8D860u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FA60u) goto L_08A7FA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FA60: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_6 = (0u + static_cast(180)); @@ -7769,16 +8794,16 @@ L_08A7FA88: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FAA4: ctx.gpr[2] = (2216u << 16u); jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-1372)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FAB0: @@ -7790,8 +8815,8 @@ L_08A7FAC0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FACC: @@ -7813,8 +8838,21 @@ L_08A7FAEC: L_08A7FAF4: ctx.gpr[31] = (0x08A7FAFCu); aot_gpr_17 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 672u, 0x08A7FAFCu, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FAFCu) goto L_08A7FAFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FAFC: if (ctx.gpr[2] == aot_gpr_16) { aot_gpr_17 = (0u | 1u); @@ -7823,8 +8861,21 @@ L_08A7FAFC: goto L_08A7FB04; L_08A7FB04: ctx.gpr[31] = (0x08A7FB0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 674u, 0x08A7FB0Cu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FB0Cu) goto L_08A7FB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FB0C: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -7860,8 +8911,8 @@ L_08A7FB34: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FB50: @@ -7870,8 +8921,21 @@ L_08A7FB50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08A7FB64u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 681u, 0x08A7FB64u, 0x0888E5A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 409u, 0x0888E5A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FB64u) goto L_08A7FB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FB64: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(30760)); @@ -7885,8 +8949,8 @@ L_08A7FB64: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FB94: @@ -7947,8 +9011,21 @@ L_08A7FBF4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5472), aot_gpr_5); ctx.gpr[31] = (0x08A7FC0Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 689u, 0x08A7FC0Cu, 0x0888E5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 411u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 411u, 0x0888E5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FC0Cu) goto L_08A7FC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FC0C: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7968,8 +9045,8 @@ L_08A7FC20: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FC34: @@ -8058,22 +9135,35 @@ L_08A7FD20: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FD34: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x08A7FD44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 696u, 0x08A7FD44u, 0x08A9AE40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 355u, 0x08A9AE40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FD44u) goto L_08A7FD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FD44: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A7FD50: @@ -8092,8 +9182,21 @@ L_08A7FD50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(156), ctx.gpr[31]); ctx.gpr[31] = (0x08A7FD8Cu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(160)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 698u, 0x08A7FD8Cu, 0x0888E7E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 429u, 0x0888E7E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FD8Cu) goto L_08A7FD8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FD8C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(124), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -8110,8 +9213,21 @@ L_08A7FDA0: aot_gpr_6 = (aot_gpr_29 + static_cast(112)); ctx.gpr[31] = (0x08A7FDB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 700u, 0x08A7FDB0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FDB0u) goto L_08A7FDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FDB0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(112))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -8191,8 +9307,21 @@ L_08A7FE30: aot_gpr_6 = (aot_gpr_29 + static_cast(113)); ctx.gpr[31] = (0x08A7FE40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 709u, 0x08A7FE40u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FE40u) goto L_08A7FE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FE40: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(113))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -8237,8 +9366,21 @@ L_08A7FE90: aot_gpr_6 = (aot_gpr_29 + static_cast(114)); ctx.gpr[31] = (0x08A7FEA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 713u, 0x08A7FEA0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FEA0u) goto L_08A7FEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FEA0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(114))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -8268,8 +9410,21 @@ L_08A7FED8: aot_gpr_6 = (aot_gpr_29 + static_cast(115)); ctx.gpr[31] = (0x08A7FEE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 717u, 0x08A7FEE8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FEE8u) goto L_08A7FEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FEE8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(115))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -8331,8 +9486,21 @@ L_08A7FF4C: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08A7FF84u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0158->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0158_entry, 721u, 0x08A7FF84u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A7FF84u) goto L_08A7FF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A7FF84: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; diff --git a/profiles/vcs/generated/generated_unit_0159.cpp b/profiles/vcs/generated/generated_unit_0159.cpp index f9527ec..44e1f1a 100644 --- a/profiles/vcs/generated/generated_unit_0159.cpp +++ b/profiles/vcs/generated/generated_unit_0159.cpp @@ -475,6 +475,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A80000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -505,8 +529,21 @@ L_08A80000: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08A80044u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 2u, 0x08A80044u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A80044u) goto L_08A80044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A80044: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22])}; aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(48), aot_run_words); } @@ -521,8 +558,21 @@ L_08A80044: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08A8007Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 3u, 0x08A8007Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8007Cu) goto L_08A8007C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8007C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); if (aot_gpr_4 != 0u) { @@ -535,8 +585,21 @@ L_08A80088: aot_gpr_6 = (ctx.gpr[29] + static_cast(116)); ctx.gpr[31] = (0x08A80098u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 5u, 0x08A80098u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A80098u) goto L_08A80098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A80098: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(116))); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); @@ -575,8 +638,8 @@ L_08A800CC: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A800FC: @@ -1493,8 +1556,8 @@ L_08A80CDC: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A80CF8: @@ -1647,8 +1710,8 @@ L_08A80DF4: goto L_08A80DF8; L_08A80DF8: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A80E00: @@ -2361,8 +2424,8 @@ L_08A81818: goto L_08A8184C; L_08A8184C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A81854: @@ -2755,8 +2818,8 @@ L_08A81D8C: goto L_08A81DA0; L_08A81DA0: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A81DA8: @@ -2776,8 +2839,21 @@ L_08A81DC0: aot_gpr_6 = (ctx.gpr[29] + static_cast(16)); ctx.gpr[31] = (0x08A81DD0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 104u, 0x08A81DD0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A81DD0u) goto L_08A81DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A81DD0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(16))); @@ -2794,8 +2870,8 @@ L_08A81DDC: ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(24))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A81E04: @@ -2891,8 +2967,21 @@ L_08A81EA4: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A81EB0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 119u, 0x08A81EB0u, 0x08A9B950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 448u, 0x08A9B950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A81EB0u) goto L_08A81EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A81EB0: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A81EBCu); @@ -2922,8 +3011,8 @@ L_08A81ECC: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A81EE4: @@ -2979,13 +3068,39 @@ L_08A81F3C: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A81F48u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 130u, 0x08A81F48u, 0x08908E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 262u, 0x08908E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A81F48u) goto L_08A81F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A81F48: ctx.gpr[31] = (0x08A81F50u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 131u, 0x08A81F50u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A81F50u) goto L_08A81F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A81F50: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2997,20 +3112,59 @@ L_08A81F58: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A81F64u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 133u, 0x08A81F64u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A81F64u) goto L_08A81F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A81F64: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A81F70u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 134u, 0x08A81F70u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A81F70u) goto L_08A81F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A81F70: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A81F7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 135u, 0x08A81F7Cu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A81F7Cu) goto L_08A81F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A81F7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -3021,8 +3175,21 @@ L_08A81F7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(104))); ctx.gpr[31] = (0x08A81FA0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 136u, 0x08A81FA0u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A81FA0u) goto L_08A81FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A81FA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3131,8 +3298,21 @@ L_08A8205C: L_08A82064: ctx.gpr[31] = (0x08A8206Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 151u, 0x08A8206Cu, 0x08A7F510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 609u, 0x08A7F510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8206Cu) goto L_08A8206C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8206C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -3261,8 +3441,8 @@ L_08A82154: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A82170: @@ -3273,14 +3453,27 @@ L_08A82170: aot_gpr_4 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08A8218Cu); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 169u, 0x08A8218Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8218Cu) goto L_08A8218C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8218C: ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A82198: @@ -3289,8 +3482,21 @@ L_08A82198: aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast(0), aot_run_words); } ctx.gpr[16] = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x08A821B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 171u, 0x08A821B4u, 0x0888FA44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 570u, 0x0888FA44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A821B4u) goto L_08A821B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A821B4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(30952)); @@ -3310,8 +3516,21 @@ L_08A821B4: aot_gpr_5 = (0u | 0u); ctx.gpr[31] = (0x08A821FCu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 172u, 0x08A821FCu, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A821FCu) goto L_08A821FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A821FC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3326,8 +3545,21 @@ L_08A8220C: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A82218u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 174u, 0x08A82218u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A82218u) goto L_08A82218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A82218: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(372), std::bit_cast(aot_fpr_12)); @@ -3341,8 +3573,8 @@ L_08A82218: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8223C: @@ -3364,14 +3596,40 @@ L_08A82258: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); ctx.gpr[31] = (0x08A82270u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 177u, 0x08A82270u, 0x08A05F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 499u, 0x08A05F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A82270u) goto L_08A82270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A82270: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A8227Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 178u, 0x08A8227Cu, 0x0888FABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 573u, 0x0888FABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8227Cu) goto L_08A8227C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8227C: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3394,8 +3652,8 @@ L_08A82290: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A822A4: @@ -3414,8 +3672,21 @@ L_08A822A4: L_08A822C4: ctx.gpr[31] = (0x08A822CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 183u, 0x08A822CCu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A822CCu) goto L_08A822CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A822CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3439,26 +3710,78 @@ L_08A822DC: } L_08A822E4: ctx.gpr[31] = (0x08A822ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 187u, 0x08A822ECu, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A822ECu) goto L_08A822EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A822EC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 22u); ctx.gpr[31] = (0x08A822FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 188u, 0x08A822FCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A822FCu) goto L_08A822FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A822FC: ctx.gpr[31] = (0x08A82304u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 189u, 0x08A82304u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A82304u) goto L_08A82304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A82304: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A82310u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 190u, 0x08A82310u, 0x08ACFA70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1055u, 0x08ACFA70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A82310u) goto L_08A82310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A82310: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(352))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(108))); @@ -3523,14 +3846,14 @@ L_08A82384: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A82398: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A823A0: @@ -3559,20 +3882,46 @@ L_08A823D4: aot_gpr_5 = (aot_gpr_6 + static_cast(132)); ctx.gpr[31] = (0x08A823E4u); aot_gpr_6 = (aot_gpr_6 + static_cast(136)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 199u, 0x08A823E4u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A823E4u) goto L_08A823E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A823E4: ctx.gpr[31] = (0x08A823ECu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 200u, 0x08A823ECu, 0x0888FB40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 582u, 0x0888FB40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A823ECu) goto L_08A823EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A823EC: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A823FC: @@ -3585,22 +3934,35 @@ L_08A823FC: aot_gpr_5 = (2216u << 16u); ctx.gpr[31] = (0x08A82420u); aot_gpr_5 = (aot_gpr_5 + static_cast(9260)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 202u, 0x08A82420u, 0x0881DCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 248u, 0x0881DCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A82420u) goto L_08A82420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A82420: ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(0))); jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8242C: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_5)); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A82438: @@ -3636,8 +3998,21 @@ L_08A82490: aot_gpr_6 = (ctx.gpr[29] + static_cast(16)); ctx.gpr[31] = (0x08A824A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 207u, 0x08A824A0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A824A0u) goto L_08A824A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A824A0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[29] + static_cast(16))); @@ -3649,14 +4024,40 @@ L_08A824AC: aot_gpr_5 = (ctx.gpr[22] + static_cast(16)); ctx.gpr[31] = (0x08A824C0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 209u, 0x08A824C0u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A824C0u) goto L_08A824C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A824C0: aot_gpr_5 = (ctx.gpr[22] + static_cast(96)); ctx.gpr[31] = (0x08A824CCu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 210u, 0x08A824CCu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A824CCu) goto L_08A824CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A824CC: aot_gpr_4 = (ctx.gpr[22] + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3814,8 +4215,21 @@ L_08A82604: L_08A82610: ctx.gpr[31] = (0x08A82618u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 219u, 0x08A82618u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A82618u) goto L_08A82618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A82618: aot_gpr_4 = (ctx.gpr[21] + static_cast(384)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(468))); @@ -3866,8 +4280,21 @@ L_08A82618: aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(136), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x08A826E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 220u, 0x08A826E0u, 0x089DD2B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 188u, 0x089DD2B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A826E0u) goto L_08A826E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A826E0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(613)))))); aot_gpr_5 = (0u + static_cast(-17)); @@ -3876,8 +4303,21 @@ L_08A826E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); ctx.gpr[31] = (0x08A826FCu); aot_gpr_5 = (ctx.gpr[22] + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 221u, 0x08A826FCu, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A826FCu) goto L_08A826FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A826FC: aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(615)))))); @@ -3903,16 +4343,42 @@ L_08A826FC: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(636), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x08A8275Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 222u, 0x08A8275Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8275Cu) goto L_08A8275C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8275C: aot_gpr_7 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(64)))))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A82770u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 223u, 0x08A82770u, 0x0888EA48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 454u, 0x0888EA48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A82770u) goto L_08A82770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A82770: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast(20), aot_run_words); @@ -3927,8 +4393,8 @@ L_08A82770: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A82798: @@ -3942,8 +4408,21 @@ L_08A82798: ctx.gpr[16] = (aot_gpr_4 | 0u); ctx.gpr[20] = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A827E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 225u, 0x08A827E0u, 0x0888EBACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 470u, 0x0888EBACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A827E0u) goto L_08A827E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A827E0: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (46470u << 16u); @@ -4430,8 +4909,8 @@ L_08A82BA0: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A82BCC: @@ -4503,8 +4982,21 @@ L_08A82CCC: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A82CE0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 290u, 0x08A82CE0u, 0x0888EDD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 492u, 0x0888EDD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A82CE0u) goto L_08A82CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A82CE0: aot_gpr_4 = (ctx.gpr[19] & 32768u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5345,8 +5837,8 @@ L_08A83730: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A83758: @@ -5393,8 +5885,21 @@ L_08A837F4: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A83804u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 339u, 0x08A83804u, 0x0888F3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 511u, 0x0888F3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A83804u) goto L_08A83804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A83804: aot_gpr_4 = (ctx.gpr[17] & 32768u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5428,8 +5933,21 @@ L_08A83838: aot_gpr_6 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A8384Cu); aot_gpr_7 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0159->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0159_entry, 344u, 0x08A8384Cu, 0x08A8450Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 91u, 0x08A8450Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8384Cu) goto L_08A8384C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8384C: ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[22]) < 4 ? 1u : 0u); @@ -5978,8 +6496,8 @@ L_08A83E8C: } jump_target = ctx.gpr[31]; ctx.gpr[29] = (ctx.gpr[29] + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A83EB4: diff --git a/profiles/vcs/generated/generated_unit_0160.cpp b/profiles/vcs/generated/generated_unit_0160.cpp index 6e85f51..ca8bb97 100644 --- a/profiles/vcs/generated/generated_unit_0160.cpp +++ b/profiles/vcs/generated/generated_unit_0160.cpp @@ -739,6 +739,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A84000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -912,8 +936,21 @@ L_08A84110: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A8411Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 25u, 0x08A8411Cu, 0x08B00B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 187u, 0x08B00B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8411Cu) goto L_08A8411C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8411C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1424,8 +1461,8 @@ L_08A844E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8450C: @@ -2056,8 +2093,8 @@ L_08A84C78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A84C90: @@ -2107,8 +2144,8 @@ L_08A84CEC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(8832))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A84D04: @@ -2189,8 +2226,21 @@ L_08A84DB8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A84DF4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 142u, 0x08A84DF4u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A84DF4u) goto L_08A84DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A84DF4: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -2277,8 +2327,21 @@ L_08A84EB4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A84EF0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 148u, 0x08A84EF0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A84EF0u) goto L_08A84EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A84EF0: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -2364,8 +2427,21 @@ L_08A84FAC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A84FE8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 154u, 0x08A84FE8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A84FE8u) goto L_08A84FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A84FE8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 4 ? 1u : 0u); @@ -2505,8 +2581,21 @@ L_08A85110: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A8514Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 164u, 0x08A8514Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8514Cu) goto L_08A8514C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8514C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 1 ? 1u : 0u); @@ -2620,8 +2709,21 @@ L_08A85248: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08A8527Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 171u, 0x08A8527Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8527Cu) goto L_08A8527C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8527C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -2645,8 +2747,8 @@ L_08A85288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A852A8: @@ -2875,8 +2977,8 @@ L_08A854CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A854E4: @@ -2905,8 +3007,21 @@ L_08A85520: L_08A85524: aot_gpr_31 = (0x08A8552Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 195u, 0x08A8552Cu, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8552Cu) goto L_08A8552C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8552C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(301))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2996,16 +3111,42 @@ L_08A85604: aot_gpr_5 = (aot_gpr_4 + static_cast(4)); aot_gpr_31 = (0x08A85634u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 201u, 0x08A85634u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85634u) goto L_08A85634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85634: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), ctx.gpr[2]); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A85648u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 202u, 0x08A85648u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85648u) goto L_08A85648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85648: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); @@ -3013,8 +3154,21 @@ L_08A85648: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_gpr_31 = (0x08A85660u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 203u, 0x08A85660u, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85660u) goto L_08A85660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85660: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (2816u << 16u); @@ -3036,16 +3190,16 @@ L_08A85660: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A856A4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A856B0: @@ -3159,8 +3313,8 @@ L_08A85748: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85850: @@ -3403,8 +3557,8 @@ L_08A85A14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85A28: @@ -3426,8 +3580,21 @@ L_08A85A54: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A85A60u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 239u, 0x08A85A60u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85A60u) goto L_08A85A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85A60: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3454,8 +3621,21 @@ L_08A85A7C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08A85A94u); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 244u, 0x08A85A94u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85A94u) goto L_08A85A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85A94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -3478,8 +3658,21 @@ L_08A85AAC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A85AB8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 248u, 0x08A85AB8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85AB8u) goto L_08A85AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85AB8: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -3489,8 +3682,21 @@ L_08A85AB8: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08A85AD8u); aot_gpr_7 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 249u, 0x08A85AD8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85AD8u) goto L_08A85AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85AD8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -3502,8 +3708,21 @@ L_08A85AD8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A85B00u); aot_gpr_4 = (aot_gpr_4 + static_cast(8968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 250u, 0x08A85B00u, 0x0893AC1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 652u, 0x0893AC1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85B00u) goto L_08A85B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85B00: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -3517,8 +3736,8 @@ L_08A85B00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85B24: @@ -3540,8 +3759,21 @@ L_08A85B50: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A85B5Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 253u, 0x08A85B5Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85B5Cu) goto L_08A85B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85B5C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3568,8 +3800,21 @@ L_08A85B78: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A85B90u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 258u, 0x08A85B90u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85B90u) goto L_08A85B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85B90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -3592,8 +3837,21 @@ L_08A85BA8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A85BB4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 262u, 0x08A85BB4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85BB4u) goto L_08A85BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85BB4: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -3603,8 +3861,21 @@ L_08A85BB4: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08A85BD4u); aot_gpr_7 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 263u, 0x08A85BD4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85BD4u) goto L_08A85BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85BD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); @@ -3625,8 +3896,21 @@ L_08A85BD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[3]); aot_gpr_31 = (0x08A85C20u); aot_gpr_4 = (aot_gpr_4 + static_cast(8968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 264u, 0x08A85C20u, 0x0893AE5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 668u, 0x0893AE5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85C20u) goto L_08A85C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85C20: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -3640,8 +3924,8 @@ L_08A85C20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85C44: @@ -3665,8 +3949,21 @@ L_08A85C64: L_08A85C6C: aot_gpr_31 = (0x08A85C74u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 268u, 0x08A85C74u, 0x089BB2D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 694u, 0x089BB2D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85C74u) goto L_08A85C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85C74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3747,8 +4044,8 @@ L_08A85CF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85D0C: @@ -3757,15 +4054,28 @@ L_08A85D0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A85D20u); aot_gpr_4 = (aot_gpr_4 + static_cast(8968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 278u, 0x08A85D20u, 0x0893ABACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 646u, 0x0893ABACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85D20u) goto L_08A85D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85D20: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85D30: @@ -3821,8 +4131,8 @@ L_08A85D30: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85D58: @@ -3836,8 +4146,8 @@ L_08A85D58: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85D7C: @@ -3851,8 +4161,8 @@ L_08A85D7C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85DA0: @@ -3907,8 +4217,8 @@ L_08A85DD4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(76), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A85E50: @@ -4050,8 +4360,21 @@ L_08A85F64: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A85F88u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 296u, 0x08A85F88u, 0x089D1734u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 270u, 0x089D1734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A85F88u) goto L_08A85F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A85F88: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4131,8 +4454,8 @@ L_08A85FFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A86020: @@ -4175,15 +4498,15 @@ L_08A86020: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(528), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A86064: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8606C: @@ -4222,8 +4545,8 @@ L_08A860B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A860CC: @@ -4365,8 +4688,8 @@ L_08A861E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A861FC: @@ -4415,8 +4738,8 @@ L_08A86258: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8626C: @@ -4464,8 +4787,8 @@ L_08A862C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A862DC: @@ -4876,8 +5199,21 @@ L_08A865CC: aot_mem.aot_direct_store32_block(ctx.gpr[16] + static_cast(84), aot_run_words); } aot_gpr_31 = (0x08A866B0u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 362u, 0x08A866B0u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A866B0u) goto L_08A866B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A866B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4890,12 +5226,38 @@ L_08A866B8: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A866C8u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 364u, 0x08A866C8u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A866C8u) goto L_08A866C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A866C8: aot_gpr_31 = (0x08A866D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 365u, 0x08A866D0u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A866D0u) goto L_08A866D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A866D0: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[18] = (ctx.gpr[17] | 0u); @@ -4961,8 +5323,8 @@ L_08A8672C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8676C: @@ -5281,8 +5643,21 @@ L_08A86AAC: aot_gpr_5 = (aot_gpr_29 + static_cast(24)); aot_gpr_31 = (0x08A86AD0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 401u, 0x08A86AD0u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86AD0u) goto L_08A86AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86AD0: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u + static_cast(-2)); @@ -5299,8 +5674,21 @@ L_08A86AD0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A86B10u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 402u, 0x08A86B10u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86B10u) goto L_08A86B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86B10: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5361,16 +5749,42 @@ L_08A86B88: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A86B94u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 405u, 0x08A86B94u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86B94u) goto L_08A86B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86B94: aot_gpr_6 = (ctx.gpr[16] + static_cast(28)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 2000u); aot_gpr_31 = (0x08A86BA8u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 406u, 0x08A86BA8u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86BA8u) goto L_08A86BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86BA8: aot_gpr_4 = (16025u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -5401,8 +5815,21 @@ L_08A86BA8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A86BF0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 407u, 0x08A86BF0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86BF0u) goto L_08A86BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86BF0: aot_gpr_4 = (48793u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -5475,8 +5902,21 @@ L_08A86C4C: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08A86C84u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 410u, 0x08A86C84u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86C84u) goto L_08A86C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86C84: aot_gpr_4 = (0u | 16u); goto L_08A86C88; @@ -5526,8 +5966,8 @@ L_08A86CBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A86D04: @@ -5536,8 +5976,21 @@ L_08A86D04: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(480), aot_run_words); } aot_gpr_31 = (0x08A86D34u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 415u, 0x08A86D34u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86D34u) goto L_08A86D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86D34: { const bool branch_taken = ctx.gpr[16] != ctx.gpr[2]; if (branch_taken) { @@ -5553,8 +6006,21 @@ L_08A86D3C: L_08A86D44: aot_gpr_31 = (0x08A86D4Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 418u, 0x08A86D4Cu, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86D4Cu) goto L_08A86D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86D4C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5577,8 +6043,21 @@ L_08A86D74: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A86D80u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 421u, 0x08A86D80u, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86D80u) goto L_08A86D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86D80: aot_fpr_14 = std::bit_cast(ctx.gpr[2]); aot_fpr_14 = static_cast(static_cast(std::bit_cast(aot_fpr_14))); @@ -5598,8 +6077,21 @@ L_08A86D80: L_08A86DB4: aot_gpr_31 = (0x08A86DBCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 423u, 0x08A86DBCu, 0x0898C3A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 90u, 0x0898C3A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86DBCu) goto L_08A86DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86DBC: aot_fpr_14 = std::bit_cast(ctx.gpr[2]); aot_gpr_5 = (15692u << 16u); @@ -5696,15 +6188,41 @@ L_08A86E30: ctx.gpr[20] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08A86EA0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 431u, 0x08A86EA0u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86EA0u) goto L_08A86EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86EA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1852))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08A86EB0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 432u, 0x08A86EB0u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86EB0u) goto L_08A86EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86EB0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -5885,8 +6403,21 @@ L_08A86FB0: L_08A86FBC: aot_gpr_31 = (0x08A86FC4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 445u, 0x08A86FC4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A86FC4u) goto L_08A86FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A86FC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5927,8 +6458,21 @@ L_08A86FE0: aot_gpr_6 = (16908u << 16u); aot_gpr_31 = (0x08A8700Cu); aot_fpr_13 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 448u, 0x08A8700Cu, 0x089CFD18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 698u, 0x089CFD18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8700Cu) goto L_08A8700C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8700C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5945,8 +6489,21 @@ L_08A87018: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x08A87034u); aot_fpr_12 = aot_fpr_14 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 450u, 0x08A87034u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87034u) goto L_08A87034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87034: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_20 = std::bit_cast(0u); @@ -5968,8 +6525,21 @@ L_08A87058: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08A87068u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 453u, 0x08A87068u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87068u) goto L_08A87068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87068: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -5990,8 +6560,21 @@ L_08A87088: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1852))); aot_gpr_31 = (0x08A87098u); aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 456u, 0x08A87098u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87098u) goto L_08A87098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87098: aot_gpr_4 = (15395u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6132,15 +6715,41 @@ L_08A87188: ctx.gpr[20] = (aot_gpr_29 + static_cast(272)); aot_gpr_31 = (0x08A871F4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 466u, 0x08A871F4u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A871F4u) goto L_08A871F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A871F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1852))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08A87204u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 467u, 0x08A87204u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87204u) goto L_08A87204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87204: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -6315,8 +6924,21 @@ L_08A872F4: L_08A87300: aot_gpr_31 = (0x08A87308u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 479u, 0x08A87308u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87308u) goto L_08A87308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87308: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1316))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6352,8 +6974,21 @@ L_08A87334: L_08A87344: aot_gpr_31 = (0x08A8734Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 483u, 0x08A8734Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8734Cu) goto L_08A8734C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8734C: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); goto L_08A87350; @@ -6364,8 +6999,21 @@ L_08A87350: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(424), aot_gpr_4); aot_gpr_31 = (0x08A87368u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 485u, 0x08A87368u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87368u) goto L_08A87368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87368: aot_gpr_4 = (aot_gpr_29 + static_cast(400)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6386,8 +7034,21 @@ L_08A87368: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); aot_gpr_31 = (0x08A87388u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 486u, 0x08A87388u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87388u) goto L_08A87388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87388: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(432), aot_run_words); @@ -6397,13 +7058,39 @@ L_08A87388: } aot_gpr_31 = (0x08A8739Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 487u, 0x08A8739Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8739Cu) goto L_08A8739C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8739C: aot_gpr_31 = (0x08A873A4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 488u, 0x08A873A4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A873A4u) goto L_08A873A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A873A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(424))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6424,8 +7111,21 @@ L_08A873B4: L_08A873C0: aot_gpr_31 = (0x08A873C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 491u, 0x08A873C8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A873C8u) goto L_08A873C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A873C8: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(480), aot_run_words); @@ -6441,8 +7141,8 @@ L_08A873C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A873F4: @@ -6455,14 +7155,27 @@ L_08A873F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A87418u); aot_gpr_7 = (aot_gpr_7 + static_cast(24676)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 493u, 0x08A87418u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87418u) goto L_08A87418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87418: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87424: @@ -6478,8 +7191,8 @@ L_08A87424: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87458: @@ -6587,8 +7300,8 @@ L_08A8755C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87568: @@ -6602,8 +7315,8 @@ L_08A87568: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87590: @@ -6618,8 +7331,8 @@ L_08A87590: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A875BC: @@ -6634,8 +7347,8 @@ L_08A875BC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A875E8: @@ -6658,8 +7371,8 @@ L_08A875E8: L_08A8761C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(13), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87624: @@ -6678,8 +7391,8 @@ L_08A87624: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(14), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87660: @@ -6766,8 +7479,8 @@ L_08A876F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87708: @@ -6782,8 +7495,8 @@ L_08A87708: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(24), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(26), static_cast(aot_gpr_6)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87734: @@ -6816,8 +7529,8 @@ L_08A87754: goto L_08A8775C; L_08A8775C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87764: @@ -6850,14 +7563,14 @@ L_08A87780: goto L_08A87788; L_08A87788: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87790: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87798: @@ -6870,8 +7583,21 @@ L_08A87798: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A877BCu); aot_gpr_7 = (aot_gpr_7 + static_cast(29732)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 543u, 0x08A877BCu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A877BCu) goto L_08A877BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A877BC: aot_gpr_31 = (0x08A877C4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-5392)); @@ -6881,8 +7607,8 @@ L_08A877C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A877D0: @@ -6904,8 +7630,8 @@ L_08A877FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8780C: @@ -6919,16 +7645,42 @@ L_08A8780C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A87834u); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 548u, 0x08A87834u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87834u) goto L_08A87834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87834: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x08A87848u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 549u, 0x08A87848u, 0x08941948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 225u, 0x08941948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87848u) goto L_08A87848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87848: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6939,8 +7691,8 @@ L_08A87848: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87860: @@ -6958,16 +7710,42 @@ L_08A87860: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A87898u); aot_gpr_7 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 551u, 0x08A87898u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87898u) goto L_08A87898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87898: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x08A878ACu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 552u, 0x08A878ACu, 0x08941988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 226u, 0x08941988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A878ACu) goto L_08A878AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A878AC: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6988,8 +7766,8 @@ L_08A878C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A878E0: @@ -7001,23 +7779,49 @@ L_08A878E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A87900u); aot_gpr_7 = (ctx.gpr[16] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 555u, 0x08A87900u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87900u) goto L_08A87900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87900: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x08A87910u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 556u, 0x08A87910u, 0x08AFB4E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 473u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 473u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 473u, 0x08AFB4E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87910u) goto L_08A87910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87910: ctx.gpr[2] = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87924: @@ -7029,98 +7833,189 @@ L_08A87924: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A87944u); aot_gpr_7 = (ctx.gpr[16] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 558u, 0x08A87944u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87944u) goto L_08A87944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87944: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x08A87954u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 559u, 0x08A87954u, 0x08AFB4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 474u, 0x08AFB4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87954u) goto L_08A87954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87954: ctx.gpr[2] = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87968: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A87978u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 561u, 0x08A87978u, 0x08AFB4F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 475u, 0x08AFB4F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87978u) goto L_08A87978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87978: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87988: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A87998u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 563u, 0x08A87998u, 0x08AFC0D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 5u, 0x08AFC0D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87998u) goto L_08A87998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87998: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A879A8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A879B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 565u, 0x08A879B8u, 0x08AFC100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 6u, 0x08AFC100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A879B8u) goto L_08A879B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A879B8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A879C8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A879D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 567u, 0x08A879D8u, 0x08941B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 257u, 0x08941B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A879D8u) goto L_08A879D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A879D8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A879E8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A879F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 569u, 0x08A879F8u, 0x08941BB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 258u, 0x08941BB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A879F8u) goto L_08A879F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A879F8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87A08: @@ -7139,8 +8034,8 @@ L_08A87A28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87A38: @@ -7152,8 +8047,21 @@ L_08A87A38: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A87A58u); aot_gpr_7 = (ctx.gpr[16] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 573u, 0x08A87A58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87A58u) goto L_08A87A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87A58: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4182), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); @@ -7173,8 +8081,8 @@ L_08A87A70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87A84: @@ -7183,8 +8091,8 @@ L_08A87A84: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87A98: @@ -7193,16 +8101,16 @@ L_08A87A98: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87AAC: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(8), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87AB8: @@ -7210,8 +8118,8 @@ L_08A87AB8: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(16), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87AC8: @@ -7259,8 +8167,21 @@ L_08A87B64: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(52), static_cast(ctx.gpr[16])); aot_gpr_31 = (0x08A87B74u); aot_gpr_4 = (ctx.gpr[17] + static_cast(56)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 582u, 0x08A87B74u, 0x0897F8C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 921u, 0x0897F8C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87B74u) goto L_08A87B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87B74: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(96), static_cast(0u)); { const std::uint32_t aot_run_words[11]{0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u}; @@ -7271,8 +8192,21 @@ L_08A87B74: aot_gpr_5 = (0u | 48u); aot_gpr_31 = (0x08A87BBCu); aot_gpr_6 = (0u | 1412u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 583u, 0x08A87BBCu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87BBCu) goto L_08A87BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87BBC: aot_gpr_4 = (1u << 16u); aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); @@ -7311,8 +8245,8 @@ L_08A87C24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87C3C: @@ -7383,8 +8317,21 @@ L_08A87CB8: L_08A87CC4: aot_gpr_31 = (0x08A87CCCu); aot_gpr_4 = (ctx.gpr[16] + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 594u, 0x08A87CCCu, 0x08A3C804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 99u, 0x08A3C804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87CCCu) goto L_08A87CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87CCC: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -7586,8 +8533,21 @@ L_08A87DD0: L_08A87DD4: aot_gpr_31 = (0x08A87DDCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 625u, 0x08A87DDCu, 0x0897F8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 923u, 0x0897F8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87DDCu) goto L_08A87DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87DDC: { const bool branch_taken = ctx.gpr[30] == 0u; aot_gpr_4 = (ctx.gpr[17] & 1u); @@ -7656,16 +8616,16 @@ L_08A87E24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87E54: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87E60: @@ -7702,22 +8662,61 @@ L_08A87EB8: aot_gpr_4 = (ctx.gpr[20] + static_cast(8)); aot_gpr_31 = (0x08A87EE8u); aot_gpr_5 = (aot_gpr_6 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 637u, 0x08A87EE8u, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87EE8u) goto L_08A87EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87EE8: aot_gpr_4 = (ctx.gpr[20] + static_cast(20)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x08A87EF8u); aot_gpr_5 = (aot_gpr_5 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 638u, 0x08A87EF8u, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87EF8u) goto L_08A87EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87EF8: aot_gpr_4 = (ctx.gpr[20] + static_cast(32)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x08A87F08u); aot_gpr_5 = (aot_gpr_5 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0160->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0160_entry, 639u, 0x08A87F08u, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A87F08u) goto L_08A87F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A87F08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_4 = (aot_gpr_4 + static_cast(44)); @@ -7877,8 +8876,8 @@ L_08A87FCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A87FFC: diff --git a/profiles/vcs/generated/generated_unit_0161.cpp b/profiles/vcs/generated/generated_unit_0161.cpp index dbe8980..b1b9fce 100644 --- a/profiles/vcs/generated/generated_unit_0161.cpp +++ b/profiles/vcs/generated/generated_unit_0161.cpp @@ -805,6 +805,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A88000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -866,8 +890,21 @@ L_08A88048: aot_gpr_5 = (aot_gpr_6 | 0u); ctx.gpr[31] = (0x08A88084u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 6u, 0x08A88084u, 0x08A87E60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 635u, 0x08A87E60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88084u) goto L_08A88084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88084: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A88090u); @@ -907,8 +944,21 @@ L_08A880D0: aot_gpr_7 = (aot_gpr_29 + static_cast(8)); ctx.gpr[31] = (0x08A880E4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 10u, 0x08A880E4u, 0x08B6E938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 548u, 0x08B6E938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A880E4u) goto L_08A880E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A880E4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(32), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), 0u); @@ -922,8 +972,8 @@ L_08A880E4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A88108: @@ -933,16 +983,42 @@ L_08A88108: aot_gpr_16 = (aot_gpr_5 | 0u); ctx.gpr[17] = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x08A88128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 12u, 0x08A88128u, 0x08A87FFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 661u, 0x08A87FFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88128u) goto L_08A88128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88128: aot_mem.aot_direct_store16(ctx.gpr[17] + static_cast(96), static_cast(0u)); aot_gpr_4 = (ctx.gpr[17] + static_cast(12)); aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A8813Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 13u, 0x08A8813Cu, 0x08A3C788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 93u, 0x08A3C788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8813Cu) goto L_08A8813C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8813C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -970,8 +1046,8 @@ L_08A88150: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A88164: @@ -1028,8 +1104,21 @@ L_08A881F4: aot_gpr_4 = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x08A88204u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 23u, 0x08A88204u, 0x08A3C840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 103u, 0x08A3C840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88204u) goto L_08A88204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88204: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(18)))))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(2), static_cast(aot_gpr_4)); @@ -1082,8 +1171,21 @@ L_08A8825C: aot_gpr_4 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08A8826Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 30u, 0x08A8826Cu, 0x08A3C840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 103u, 0x08A3C840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8826Cu) goto L_08A8826C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8826C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(26)))))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(10), static_cast(aot_gpr_4)); @@ -1195,8 +1297,21 @@ L_08A8833C: L_08A88340: ctx.gpr[31] = (0x08A88348u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 44u, 0x08A88348u, 0x08A53344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 598u, 0x08A53344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88348u) goto L_08A88348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88348: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_16 = (0u | 0u); @@ -1321,8 +1436,21 @@ L_08A88458: aot_gpr_4 = (ctx.gpr[30] + static_cast(108)); ctx.gpr[31] = (0x08A8846Cu); aot_gpr_7 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 57u, 0x08A8846Cu, 0x08B6E938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 548u, 0x08B6E938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8846Cu) goto L_08A8846C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8846C: ctx.gpr[2] = (0u | 1u); goto L_08A88470; @@ -1342,8 +1470,8 @@ L_08A88470: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A884A0: @@ -1354,8 +1482,21 @@ L_08A884A0: aot_gpr_16 = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x08A884BCu); aot_gpr_4 = (aot_gpr_16 + static_cast(56)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 60u, 0x08A884BCu, 0x0897F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 931u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 931u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 931u, 0x0897F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A884BCu) goto L_08A884BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A884BC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(84))); aot_gpr_4 = (19056u << 16u); @@ -1533,15 +1674,28 @@ L_08A886A8: L_08A886B0: ctx.gpr[31] = (0x08A886B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 73u, 0x08A886B8u, 0x08A8C214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 26u, 0x08A8C214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A886B8u) goto L_08A886B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A886B8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A886C8: @@ -1555,8 +1709,8 @@ L_08A886E0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A886EC: @@ -1608,8 +1762,21 @@ L_08A88764: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(30)))))); ctx.gpr[31] = (0x08A8878Cu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(31), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 80u, 0x08A8878Cu, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8878Cu) goto L_08A8878C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8878C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(76), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(76)))))); @@ -1636,8 +1803,21 @@ L_08A887B0: aot_gpr_4 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08A887C0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 83u, 0x08A887C0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A887C0u) goto L_08A887C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A887C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -1659,8 +1839,21 @@ L_08A887E0: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A887F0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 86u, 0x08A887F0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A887F0u) goto L_08A887F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A887F0: aot_gpr_16 = (ctx.gpr[23] | 0u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(33), static_cast(0u)); @@ -1670,8 +1863,21 @@ L_08A887F0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(36)))))); ctx.gpr[31] = (0x08A88810u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(37), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 87u, 0x08A88810u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88810u) goto L_08A88810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88810: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(80)))))); @@ -1687,8 +1893,21 @@ L_08A88820: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A88830u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 89u, 0x08A88830u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88830u) goto L_08A88830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88830: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1707,8 +1926,21 @@ L_08A88838: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(43)))))); ctx.gpr[31] = (0x08A88860u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(44), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 91u, 0x08A88860u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88860u) goto L_08A88860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88860: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(84)))))); @@ -1735,8 +1967,21 @@ L_08A88884: aot_gpr_4 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08A88894u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 94u, 0x08A88894u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88894u) goto L_08A88894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88894: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -1753,8 +1998,21 @@ L_08A888A4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(49)))))); ctx.gpr[31] = (0x08A888C8u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(50), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 96u, 0x08A888C8u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A888C8u) goto L_08A888C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A888C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(88)))))); @@ -1779,8 +2037,21 @@ L_08A888E4: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08A888F4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 99u, 0x08A888F4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A888F4u) goto L_08A888F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A888F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); ctx.gpr[17] = (aot_gpr_4 + ctx.gpr[17]); @@ -1795,8 +2066,21 @@ L_08A888FC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(55)))))); ctx.gpr[31] = (0x08A88920u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(56), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 101u, 0x08A88920u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88920u) goto L_08A88920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88920: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(92), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(92)))))); @@ -1812,8 +2096,21 @@ L_08A88930: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A88940u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 103u, 0x08A88940u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88940u) goto L_08A88940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88940: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1859,8 +2156,21 @@ L_08A8897C: L_08A88984: ctx.gpr[31] = (0x08A8898Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 109u, 0x08A8898Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8898Cu) goto L_08A8898C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8898C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -1888,8 +2198,21 @@ L_08A889A4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(61)))))); ctx.gpr[31] = (0x08A889CCu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(62), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 113u, 0x08A889CCu, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A889CCu) goto L_08A889CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A889CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(96)))))); @@ -1906,8 +2229,21 @@ L_08A889DC: aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A889F0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 115u, 0x08A889F0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A889F0u) goto L_08A889F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A889F0: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); @@ -1927,8 +2263,21 @@ L_08A889F8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(67)))))); ctx.gpr[31] = (0x08A88A20u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(68), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 117u, 0x08A88A20u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88A20u) goto L_08A88A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88A20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(100)))))); @@ -1954,8 +2303,21 @@ L_08A88A3C: aot_gpr_5 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A88A50u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 120u, 0x08A88A50u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88A50u) goto L_08A88A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88A50: aot_gpr_16 = (ctx.gpr[2] + ctx.gpr[17]); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -1970,8 +2332,21 @@ L_08A88A58: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(73)))))); ctx.gpr[31] = (0x08A88A7Cu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(74), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 122u, 0x08A88A7Cu, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88A7Cu) goto L_08A88A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88A7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(104)))))); @@ -1997,8 +2372,21 @@ L_08A88A98: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A88AACu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 125u, 0x08A88AACu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88AACu) goto L_08A88AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88AAC: aot_gpr_4 = (ctx.gpr[2] + aot_gpr_16); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); @@ -2039,8 +2427,8 @@ L_08A88AE0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A88B10: @@ -2125,8 +2513,8 @@ L_08A88BB0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A88BC8: @@ -2228,8 +2616,8 @@ L_08A88C94: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A88CA4: @@ -2262,8 +2650,8 @@ L_08A88CD8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A88CE4: @@ -2333,8 +2721,8 @@ L_08A88D54: L_08A88D5C: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A88D64: @@ -2364,8 +2752,21 @@ L_08A88D64: L_08A88DC0: ctx.gpr[31] = (0x08A88DC8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 165u, 0x08A88DC8u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88DC8u) goto L_08A88DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88DC8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2398,8 +2799,21 @@ L_08A88DE0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(6)))))); ctx.gpr[31] = (0x08A88E1Cu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(7), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 169u, 0x08A88E1Cu, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88E1Cu) goto L_08A88E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88E1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24)))))); @@ -2416,8 +2830,21 @@ L_08A88E2C: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A88E40u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 171u, 0x08A88E40u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88E40u) goto L_08A88E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88E40: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[19]); @@ -2443,8 +2870,21 @@ L_08A88E48: L_08A88E6C: ctx.gpr[31] = (0x08A88E74u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 174u, 0x08A88E74u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88E74u) goto L_08A88E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88E74: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2477,8 +2917,21 @@ L_08A88E8C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(14)))))); ctx.gpr[31] = (0x08A88EC8u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(15), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 178u, 0x08A88EC8u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88EC8u) goto L_08A88EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88EC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(28)))))); @@ -2495,8 +2948,21 @@ L_08A88ED8: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A88EECu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 180u, 0x08A88EECu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88EECu) goto L_08A88EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88EEC: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[19]); @@ -2522,8 +2988,21 @@ L_08A88EF4: L_08A88F18: ctx.gpr[31] = (0x08A88F20u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 183u, 0x08A88F20u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88F20u) goto L_08A88F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88F20: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2557,8 +3036,21 @@ L_08A88F38: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(22)))))); ctx.gpr[31] = (0x08A88F78u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(23), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 187u, 0x08A88F78u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88F78u) goto L_08A88F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88F78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32)))))); @@ -2575,8 +3067,21 @@ L_08A88F88: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A88F9Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 189u, 0x08A88F9Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A88F9Cu) goto L_08A88F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A88F9C: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (ctx.gpr[2] + ctx.gpr[18]); @@ -2599,8 +3104,8 @@ L_08A88FA4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A88FCC: @@ -2655,8 +3160,21 @@ L_08A8904C: aot_gpr_4 = (aot_gpr_5 - aot_gpr_4); ctx.gpr[31] = (0x08A89064u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 196u, 0x08A89064u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89064u) goto L_08A89064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89064: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] != 0u; @@ -2978,8 +3496,8 @@ L_08A89208: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89254: @@ -3092,20 +3610,59 @@ L_08A8933C: aot_gpr_4 = (ctx.gpr[19] + static_cast(8)); ctx.gpr[31] = (0x08A8936Cu); aot_gpr_5 = (ctx.gpr[18] + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 257u, 0x08A8936Cu, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8936Cu) goto L_08A8936C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8936C: aot_gpr_4 = (ctx.gpr[19] + static_cast(20)); ctx.gpr[31] = (0x08A89378u); aot_gpr_5 = (ctx.gpr[18] + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 258u, 0x08A89378u, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89378u) goto L_08A89378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89378: aot_gpr_4 = (ctx.gpr[19] + static_cast(32)); ctx.gpr[31] = (0x08A89384u); aot_gpr_5 = (ctx.gpr[18] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 259u, 0x08A89384u, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89384u) goto L_08A89384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89384: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); @@ -3126,20 +3683,59 @@ L_08A89394: aot_gpr_4 = (ctx.gpr[17] + static_cast(8)); ctx.gpr[31] = (0x08A893B8u); aot_gpr_5 = (aot_gpr_29 + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 261u, 0x08A893B8u, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A893B8u) goto L_08A893B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A893B8: aot_gpr_4 = (ctx.gpr[17] + static_cast(20)); ctx.gpr[31] = (0x08A893C4u); aot_gpr_5 = (aot_gpr_29 + static_cast(24)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 262u, 0x08A893C4u, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A893C4u) goto L_08A893C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A893C4: aot_gpr_4 = (ctx.gpr[17] + static_cast(32)); ctx.gpr[31] = (0x08A893D0u); aot_gpr_5 = (aot_gpr_29 + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 263u, 0x08A893D0u, 0x08B6E74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 524u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 524u, 0x08B6E74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A893D0u) goto L_08A893D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A893D0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3238,8 +3834,8 @@ L_08A89458: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89478: @@ -3339,8 +3935,8 @@ L_08A8953C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8955C: @@ -3398,8 +3994,8 @@ L_08A895B8: goto L_08A895BC; L_08A895BC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A895C4: @@ -3483,8 +4079,21 @@ L_08A89674: aot_gpr_4 = (aot_gpr_4 - aot_gpr_6); ctx.gpr[31] = (0x08A89684u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 308u, 0x08A89684u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89684u) goto L_08A89684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89684: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(0), static_cast(ctx.gpr[18])); ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -3536,8 +4145,21 @@ L_08A896D4: L_08A896DC: ctx.gpr[31] = (0x08A896E4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 314u, 0x08A896E4u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A896E4u) goto L_08A896E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A896E4: aot_gpr_5 = (ctx.gpr[2] | 0u); if (aot_gpr_5 != 0u) { @@ -3578,8 +4200,21 @@ L_08A89718: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08A8972Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 320u, 0x08A8972Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8972Cu) goto L_08A8972C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8972C: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[22]); ctx.gpr[18] = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(0))); @@ -3616,8 +4251,21 @@ L_08A89764: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A89774u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 325u, 0x08A89774u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89774u) goto L_08A89774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89774: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -3654,8 +4302,8 @@ L_08A897A0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A897C8: @@ -3673,8 +4321,21 @@ L_08A897F0: aot_gpr_4 = (0u | 0u); ctx.gpr[31] = (0x08A89808u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 332u, 0x08A89808u, 0x08B6ED5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 622u, 0x08B6ED5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89808u) goto L_08A89808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89808: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(28)))))); @@ -3685,8 +4346,21 @@ L_08A89808: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); ctx.gpr[31] = (0x08A8982Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 333u, 0x08A8982Cu, 0x08B6ED70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 623u, 0x08B6ED70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8982Cu) goto L_08A8982C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8982C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(36))); @@ -3727,8 +4401,8 @@ L_08A89864: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89880: @@ -3759,8 +4433,21 @@ L_08A898BC: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A898D4u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 342u, 0x08A898D4u, 0x08B6EDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 630u, 0x08B6EDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A898D4u) goto L_08A898D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A898D4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -3832,8 +4519,21 @@ L_08A89934: aot_gpr_5 = (aot_gpr_7 | 0u); ctx.gpr[31] = (0x08A8994Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 352u, 0x08A8994Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8994Cu) goto L_08A8994C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8994C: { const bool branch_taken = 0u == 0u; aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[18]); @@ -3858,8 +4558,8 @@ L_08A89964: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8997C: @@ -3872,8 +4572,8 @@ L_08A8998C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89998: @@ -3936,8 +4636,21 @@ L_08A899F4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.gpr[31] = (0x08A89A08u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 365u, 0x08A89A08u, 0x08B6EC68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 597u, 0x08B6EC68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89A08u) goto L_08A89A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89A08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.gpr[2] = (ctx.gpr[2] ^ aot_gpr_4); @@ -3952,8 +4665,8 @@ L_08A89A14: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89A28: @@ -4011,8 +4724,8 @@ L_08A89AAC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89ACC: @@ -4075,8 +4788,8 @@ L_08A89B3C: } L_08A89B4C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89B54: @@ -4090,8 +4803,21 @@ L_08A89B54: aot_gpr_4 = (aot_gpr_29 + static_cast(12)); ctx.gpr[31] = (0x08A89B94u); aot_gpr_5 = (aot_gpr_16 + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 379u, 0x08A89B94u, 0x08A3C840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 103u, 0x08A3C840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89B94u) goto L_08A89B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89B94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -4180,8 +4906,21 @@ L_08A89C28: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A89C34u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 392u, 0x08A89C34u, 0x08A52CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 501u, 0x08A52CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89C34u) goto L_08A89C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89C34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4242,8 +4981,21 @@ L_08A89CA4: aot_gpr_4 = (aot_gpr_16 + static_cast(108)); ctx.gpr[31] = (0x08A89CB8u); aot_gpr_7 = (aot_gpr_29 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 398u, 0x08A89CB8u, 0x08B6E938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 548u, 0x08B6E938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89CB8u) goto L_08A89CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89CB8: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(108))); goto L_08A89CBC; @@ -4312,8 +5064,21 @@ L_08A89D0C: L_08A89D14: ctx.gpr[31] = (0x08A89D1Cu); ctx.gpr[21] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 408u, 0x08A89D1Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89D1Cu) goto L_08A89D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89D1C: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -4360,8 +5125,21 @@ L_08A89D70: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A89D80u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 415u, 0x08A89D80u, 0x08A52CD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 501u, 0x08A52CD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89D80u) goto L_08A89D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89D80: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), aot_run_words); @@ -4376,8 +5154,8 @@ L_08A89D80: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89DA8: @@ -4390,8 +5168,8 @@ L_08A89DA8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_5)); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A89DCC: @@ -4454,8 +5232,21 @@ L_08A89E60: aot_gpr_5 = (0u | 16u); ctx.gpr[31] = (0x08A89EB4u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 421u, 0x08A89EB4u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89EB4u) goto L_08A89EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89EB4: aot_gpr_5 = (0u | 0u); aot_gpr_4 = (0u | 102u); @@ -4512,8 +5303,21 @@ L_08A89F30: aot_gpr_4 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x08A89F3Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 427u, 0x08A89F3Cu, 0x08A3C840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 103u, 0x08A3C840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89F3Cu) goto L_08A89F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89F3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1624))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1628))); @@ -4528,8 +5332,21 @@ L_08A89F3C: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08A89F70u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 428u, 0x08A89F70u, 0x08A3C840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 103u, 0x08A3C840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A89F70u) goto L_08A89F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A89F70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1632))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1636))); @@ -4607,8 +5424,21 @@ L_08A8A038: aot_gpr_4 = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x08A8A064u); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1644))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 433u, 0x08A8A064u, 0x08A3C94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 118u, 0x08A3C94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8A064u) goto L_08A8A064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8A064: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1648), aot_run_words); @@ -4625,8 +5455,8 @@ L_08A8A064: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(1696)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8A094: @@ -4775,8 +5605,21 @@ L_08A8A1B0: L_08A8A1B8: ctx.gpr[31] = (0x08A8A1C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 453u, 0x08A8A1C0u, 0x08A52F08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 537u, 0x08A52F08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8A1C0u) goto L_08A8A1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8A1C0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4787,16 +5630,16 @@ L_08A8A1C0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8A1D8: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), 0u); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8A1E4: @@ -4826,8 +5669,21 @@ L_08A8A224: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); ctx.gpr[31] = (0x08A8A23Cu); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 458u, 0x08A8A23Cu, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8A23Cu) goto L_08A8A23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8A23C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(14))); @@ -5017,8 +5873,21 @@ L_08A8A410: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_7 + static_cast(0))); ctx.gpr[31] = (0x08A8A430u); aot_gpr_7 = (aot_gpr_7 + static_cast(2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 473u, 0x08A8A430u, 0x08A3C94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 118u, 0x08A3C94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8A430u) goto L_08A8A430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8A430: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); ctx.gpr[20] = (1u << 16u); @@ -5090,8 +5959,8 @@ L_08A8A4F4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8A514: @@ -5157,8 +6026,21 @@ L_08A8A598: aot_gpr_5 = (aot_gpr_6 | 0u); ctx.gpr[31] = (0x08A8A5B0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 483u, 0x08A8A5B0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8A5B0u) goto L_08A8A5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8A5B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); @@ -5172,8 +6054,8 @@ L_08A8A5B0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8A5D4: @@ -5325,8 +6207,8 @@ L_08A8A6FC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8A71C: @@ -5536,8 +6418,8 @@ L_08A8A924: L_08A8A92C: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8A934: @@ -5604,8 +6486,8 @@ L_08A8A9C0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8A9D8: @@ -5619,8 +6501,8 @@ L_08A8A9D8: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(4), static_cast(aot_gpr_4)); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(6), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8AA00: @@ -5707,8 +6589,21 @@ L_08A8AB24: aot_gpr_6 = (0u | 1400u); ctx.gpr[31] = (0x08A8AB34u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 530u, 0x08A8AB34u, 0x08A3C868u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 104u, 0x08A3C868u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8AB34u) goto L_08A8AB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8AB34: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), ctx.gpr[2]); @@ -5942,8 +6837,8 @@ L_08A8AD24: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(1520)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8AD44: @@ -6076,8 +6971,8 @@ L_08A8AE00: } L_08A8AE0C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8AE14: @@ -6129,8 +7024,8 @@ L_08A8AE64: goto L_08A8AE68; L_08A8AE68: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8AE70: @@ -6155,8 +7050,21 @@ L_08A8AE70: aot_gpr_5 = (0u | 47u); ctx.gpr[31] = (0x08A8AECCu); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 581u, 0x08A8AECCu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8AECCu) goto L_08A8AECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8AECC: aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(592), static_cast(0u)); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(594), static_cast(0u)); @@ -6168,8 +7076,21 @@ L_08A8AECC: aot_gpr_5 = (0u | 32u); ctx.gpr[31] = (0x08A8AEF8u); aot_gpr_6 = (0u | 1404u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 582u, 0x08A8AEF8u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8AEF8u) goto L_08A8AEF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8AEF8: aot_gpr_4 = (1u << 16u); aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); @@ -6229,8 +7150,8 @@ L_08A8AEF8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8AFE0: @@ -6240,8 +7161,21 @@ L_08A8AFE0: ctx.gpr[20] = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x08A8B018u); aot_gpr_4 = (ctx.gpr[20] + static_cast(56)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 584u, 0x08A8B018u, 0x0897F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 931u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 931u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 931u, 0x0897F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B018u) goto L_08A8B018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B018: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(84))); aot_gpr_4 = (19056u << 16u); @@ -6315,8 +7249,21 @@ L_08A8B0CC: aot_gpr_4 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08A8B100u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 590u, 0x08A8B100u, 0x08A3C840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 103u, 0x08A3C840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B100u) goto L_08A8B100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B100: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(1428)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(1430)))))); @@ -6343,8 +7290,21 @@ L_08A8B100: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(2880))); ctx.gpr[31] = (0x08A8B164u); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 591u, 0x08A8B164u, 0x08A3C94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 118u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 118u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 118u, 0x08A3C94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B164u) goto L_08A8B164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B164: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(2392))); @@ -6372,8 +7332,21 @@ L_08A8B1A4: ctx.gpr[17] = (aot_gpr_6 - aot_gpr_5); ctx.gpr[31] = (0x08A8B1B4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 593u, 0x08A8B1B4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B1B4u) goto L_08A8B1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B1B4: aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[17]); { const bool branch_taken = 0u == 0u; @@ -6470,8 +7443,21 @@ L_08A8B284: aot_gpr_4 = (aot_gpr_29 + static_cast(1444)); ctx.gpr[31] = (0x08A8B290u); aot_gpr_5 = (0u | 1412u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 602u, 0x08A8B290u, 0x08B60818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 94u, 0x08B60818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B290u) goto L_08A8B290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B290: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1448), 0u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(1460), static_cast(0u)); @@ -6698,8 +7684,21 @@ L_08A8B4C4: aot_gpr_16 = (aot_gpr_6 - aot_gpr_5); ctx.gpr[31] = (0x08A8B4D4u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 623u, 0x08A8B4D4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B4D4u) goto L_08A8B4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B4D4: aot_gpr_4 = (ctx.gpr[2] + aot_gpr_16); { const bool branch_taken = 0u == 0u; @@ -6821,8 +7820,21 @@ L_08A8B5C4: aot_gpr_5 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x08A8B5D4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 636u, 0x08A8B5D4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B5D4u) goto L_08A8B5D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B5D4: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[17]); @@ -6854,8 +7866,21 @@ L_08A8B610: aot_gpr_5 = (aot_gpr_6 | 0u); ctx.gpr[31] = (0x08A8B61Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 639u, 0x08A8B61Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B61Cu) goto L_08A8B61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B61C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[17]); @@ -6904,8 +7929,21 @@ L_08A8B668: L_08A8B67C: ctx.gpr[31] = (0x08A8B684u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 644u, 0x08A8B684u, 0x08A87FFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 661u, 0x08A87FFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8B684u) goto L_08A8B684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8B684: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(2888), aot_run_words); @@ -6922,8 +7960,8 @@ L_08A8B684: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(2928)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8B6B4: @@ -7609,8 +8647,8 @@ L_08A8BD98: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8BDB0: @@ -7679,14 +8717,40 @@ L_08A8BE74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); ctx.gpr[31] = (0x08A8BE80u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 705u, 0x08A8BE80u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8BE80u) goto L_08A8BE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8BE80: ctx.gpr[20] = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x08A8BE8Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 706u, 0x08A8BE8Cu, 0x08A52A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 459u, 0x08A52A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8BE8Cu) goto L_08A8BE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8BE8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7740,8 +8804,21 @@ L_08A8BECC: L_08A8BEDC: ctx.gpr[31] = (0x08A8BEE4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0161->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0161_entry, 714u, 0x08A8BEE4u, 0x08A52A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 459u, 0x08A52A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8BEE4u) goto L_08A8BEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8BEE4: aot_gpr_4 = (ctx.gpr[17] + static_cast(8)); { const bool branch_taken = ctx.gpr[2] == 0u; diff --git a/profiles/vcs/generated/generated_unit_0162.cpp b/profiles/vcs/generated/generated_unit_0162.cpp index 5d35b7c..44b4d1b 100644 --- a/profiles/vcs/generated/generated_unit_0162.cpp +++ b/profiles/vcs/generated/generated_unit_0162.cpp @@ -789,6 +789,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A8C000u; + if (local_delta_v813 >= 16312u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1030,8 +1054,21 @@ L_08A8C1C0: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x08A8C1ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 25u, 0x08A8C1ECu, 0x08A88CA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 151u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 151u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 151u, 0x08A88CA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C1ECu) goto L_08A8C1EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C1EC: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -1046,8 +1083,8 @@ L_08A8C1EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8C214: @@ -1228,8 +1265,21 @@ L_08A8C3B4: L_08A8C3B8: aot_gpr_31 = (0x08A8C3C0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 44u, 0x08A8C3C0u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C3C0u) goto L_08A8C3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C3C0: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); @@ -1460,8 +1510,21 @@ L_08A8C5D8: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08A8C5ECu); ctx.gpr[7] = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 62u, 0x08A8C5ECu, 0x08A8A1E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 455u, 0x08A8A1E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C5ECu) goto L_08A8C5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C5EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); @@ -1607,8 +1670,8 @@ L_08A8C738: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8C768: @@ -1629,8 +1692,8 @@ L_08A8C768: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8C7AC: @@ -1665,8 +1728,8 @@ L_08A8C7C4: } L_08A8C7EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8C7F4: @@ -1730,8 +1793,8 @@ L_08A8C860: } L_08A8C870: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8C878: @@ -1747,8 +1810,21 @@ L_08A8C878: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x08A8C8ACu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 87u, 0x08A8C8ACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C8ACu) goto L_08A8C8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C8AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); aot_gpr_5 = (0u | 1u); @@ -1764,8 +1840,21 @@ L_08A8C8BC: aot_gpr_5 = (0u | 169u); aot_gpr_31 = (0x08A8C8CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 89u, 0x08A8C8CCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C8CCu) goto L_08A8C8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C8CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1786,8 +1875,21 @@ L_08A8C8E0: aot_gpr_5 = (0u | 160u); aot_gpr_31 = (0x08A8C8F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 92u, 0x08A8C8F0u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C8F0u) goto L_08A8C8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C8F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1808,8 +1910,21 @@ L_08A8C904: aot_gpr_5 = (0u | 161u); aot_gpr_31 = (0x08A8C914u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 95u, 0x08A8C914u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C914u) goto L_08A8C914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C914: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1830,8 +1945,21 @@ L_08A8C928: aot_gpr_5 = (0u | 162u); aot_gpr_31 = (0x08A8C938u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 98u, 0x08A8C938u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C938u) goto L_08A8C938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C938: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1852,8 +1980,21 @@ L_08A8C94C: aot_gpr_5 = (0u | 163u); aot_gpr_31 = (0x08A8C95Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 101u, 0x08A8C95Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C95Cu) goto L_08A8C95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C95C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1874,8 +2015,21 @@ L_08A8C970: aot_gpr_5 = (0u | 77u); aot_gpr_31 = (0x08A8C980u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 104u, 0x08A8C980u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C980u) goto L_08A8C980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C980: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1896,8 +2050,21 @@ L_08A8C994: aot_gpr_5 = (0u | 63u); aot_gpr_31 = (0x08A8C9A4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 107u, 0x08A8C9A4u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C9A4u) goto L_08A8C9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C9A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1918,8 +2085,21 @@ L_08A8C9B8: aot_gpr_5 = (0u | 194u); aot_gpr_31 = (0x08A8C9C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 110u, 0x08A8C9C8u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C9C8u) goto L_08A8C9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C9C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1940,8 +2120,21 @@ L_08A8C9DC: aot_gpr_5 = (0u | 197u); aot_gpr_31 = (0x08A8C9ECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 113u, 0x08A8C9ECu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8C9ECu) goto L_08A8C9EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8C9EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1962,8 +2155,21 @@ L_08A8CA00: aot_gpr_5 = (0u | 206u); aot_gpr_31 = (0x08A8CA10u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 116u, 0x08A8CA10u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CA10u) goto L_08A8CA10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CA10: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1984,8 +2190,21 @@ L_08A8CA24: aot_gpr_5 = (0u | 101u); aot_gpr_31 = (0x08A8CA34u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 119u, 0x08A8CA34u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CA34u) goto L_08A8CA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CA34: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1997,8 +2216,21 @@ L_08A8CA3C: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08A8CA48u); aot_gpr_4 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 121u, 0x08A8CA48u, 0x0884C700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 70u, 0x0884C700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CA48u) goto L_08A8CA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CA48: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -2009,8 +2241,21 @@ L_08A8CA48: L_08A8CA54: aot_gpr_31 = (0x08A8CA5Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 123u, 0x08A8CA5Cu, 0x0884C68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 63u, 0x0884C68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CA5Cu) goto L_08A8CA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CA5C: ctx.gpr[20] = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); @@ -2028,8 +2273,21 @@ L_08A8CA64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8CA94u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 125u, 0x08A8CA94u, 0x08A06228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 544u, 0x08A06228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CA94u) goto L_08A8CA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CA94: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -2043,8 +2301,8 @@ L_08A8CA94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CAB8: @@ -2064,14 +2322,40 @@ L_08A8CAB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08A8CAF8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 127u, 0x08A8CAF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CAF8u) goto L_08A8CAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CAF8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A8CB04u); aot_gpr_4 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 128u, 0x08A8CB04u, 0x0884C700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 70u, 0x0884C700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CB04u) goto L_08A8CB04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CB04: ctx.gpr[17] = (ctx.gpr[2] | 0u); if (ctx.gpr[17] == 0u) { @@ -2082,8 +2366,21 @@ L_08A8CB04: L_08A8CB10: aot_gpr_31 = (0x08A8CB18u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 130u, 0x08A8CB18u, 0x0884C68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 63u, 0x0884C68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CB18u) goto L_08A8CB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CB18: ctx.gpr[18] = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(29704))); @@ -2099,8 +2396,21 @@ L_08A8CB20: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); aot_gpr_31 = (0x08A8CB48u); aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast(0), static_cast(aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 132u, 0x08A8CB48u, 0x08A061ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 538u, 0x08A061ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CB48u) goto L_08A8CB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CB48: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(32), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15948))); @@ -2130,8 +2440,8 @@ L_08A8CB6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CB94: @@ -2143,14 +2453,40 @@ L_08A8CB94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8CBB4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 136u, 0x08A8CBB4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CBB4u) goto L_08A8CBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CBB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15948))); aot_gpr_31 = (0x08A8CBC0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 137u, 0x08A8CBC0u, 0x08B6EEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 655u, 0x08B6EEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CBC0u) goto L_08A8CBC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CBC0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2163,22 +2499,48 @@ L_08A8CBCC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); aot_gpr_31 = (0x08A8CBD8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 139u, 0x08A8CBD8u, 0x08A06208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 542u, 0x08A06208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CBD8u) goto L_08A8CBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CBD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8CBE4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 140u, 0x08A8CBE4u, 0x0884C6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 65u, 0x0884C6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CBE4u) goto L_08A8CBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CBE4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CBF8: @@ -2191,15 +2553,41 @@ L_08A8CBF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8CC1Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 142u, 0x08A8CC1Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CC1Cu) goto L_08A8CC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CC1C: ctx.gpr[17] = (ctx.gpr[28] + static_cast(7768)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A8CC2Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 143u, 0x08A8CC2Cu, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CC2Cu) goto L_08A8CC2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CC2C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_gpr_5 + static_cast(109)); @@ -2208,8 +2596,21 @@ L_08A8CC2C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A8CC48u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 144u, 0x08A8CC48u, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CC48u) goto L_08A8CC48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CC48: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2220,8 +2621,8 @@ L_08A8CC48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CC60: @@ -2235,16 +2636,42 @@ L_08A8CC60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8CC88u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 146u, 0x08A8CC88u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CC88u) goto L_08A8CC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CC88: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08A8CC9Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 147u, 0x08A8CC9Cu, 0x08A062A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 549u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 549u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 549u, 0x08A062A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CC9Cu) goto L_08A8CC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CC9C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2255,8 +2682,8 @@ L_08A8CC9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CCB4: @@ -2272,8 +2699,21 @@ L_08A8CCB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A8CCE4u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 149u, 0x08A8CCE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CCE4u) goto L_08A8CCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CCE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); @@ -2281,8 +2721,21 @@ L_08A8CCE4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08A8CCFCu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 150u, 0x08A8CCFCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CCFCu) goto L_08A8CCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CCFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -2306,8 +2759,21 @@ L_08A8CD14: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A8CD24u); aot_gpr_5 = (aot_gpr_16 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 154u, 0x08A8CD24u, 0x08A064B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 579u, 0x08A064B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CD24u) goto L_08A8CD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CD24: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -2319,8 +2785,8 @@ L_08A8CD24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CD40: @@ -2336,15 +2802,41 @@ L_08A8CD40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A8CD70u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 156u, 0x08A8CD70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CD70u) goto L_08A8CD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CD70: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A8CD80u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 157u, 0x08A8CD80u, 0x08A065D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 598u, 0x08A065D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CD80u) goto L_08A8CD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CD80: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[17]; if (branch_taken) { @@ -2432,8 +2924,8 @@ L_08A8CE00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CE1C: @@ -2447,8 +2939,21 @@ L_08A8CE1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8CE44u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 168u, 0x08A8CE44u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CE44u) goto L_08A8CE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CE44: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -2457,8 +2962,21 @@ L_08A8CE44: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08A8CE60u); aot_gpr_6 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 169u, 0x08A8CE60u, 0x08A066A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 611u, 0x08A066A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CE60u) goto L_08A8CE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CE60: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2469,8 +2987,8 @@ L_08A8CE60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CE78: @@ -2484,15 +3002,41 @@ L_08A8CE78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8CEA0u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 171u, 0x08A8CEA0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CEA0u) goto L_08A8CEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CEA0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A8CEB0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 172u, 0x08A8CEB0u, 0x08A06704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 617u, 0x08A06704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CEB0u) goto L_08A8CEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CEB0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2579,8 +3123,8 @@ L_08A8CF30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CF48: @@ -2594,8 +3138,21 @@ L_08A8CF48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8CF70u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 183u, 0x08A8CF70u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CF70u) goto L_08A8CF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CF70: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(4), aot_run_words); @@ -2607,8 +3164,21 @@ L_08A8CF70: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A8CF8Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 184u, 0x08A8CF8Cu, 0x08A06618u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 603u, 0x08A06618u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CF8Cu) goto L_08A8CF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CF8C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2619,8 +3189,8 @@ L_08A8CF8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CFA4: @@ -2632,23 +3202,49 @@ L_08A8CFA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8CFC4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 186u, 0x08A8CFC4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CFC4u) goto L_08A8CFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CFC4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A8CFD4u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 187u, 0x08A8CFD4u, 0x08A06744u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 622u, 0x08A06744u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8CFD4u) goto L_08A8CFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8CFD4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8CFE8: @@ -2660,8 +3256,21 @@ L_08A8CFE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D008u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 189u, 0x08A8D008u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D008u) goto L_08A8D008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D008: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (2236u << 16u); @@ -2691,8 +3300,8 @@ L_08A8D02C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D040: @@ -2703,24 +3312,50 @@ L_08A8D040: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D05Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 194u, 0x08A8D05Cu, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D05Cu) goto L_08A8D05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D05C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 109u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08A8D070u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 195u, 0x08A8D070u, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D070u) goto L_08A8D070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D070: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D084: @@ -2730,29 +3365,55 @@ L_08A8D084: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D09Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 197u, 0x08A8D09Cu, 0x08A06434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 571u, 0x08A06434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D09Cu) goto L_08A8D09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D09C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8D0A8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 198u, 0x08A8D0A8u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D0A8u) goto L_08A8D0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D0A8: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D0BC: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D0C4: @@ -2764,24 +3425,50 @@ L_08A8D0C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D0E4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 201u, 0x08A8D0E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D0E4u) goto L_08A8D0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D0E4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_gpr_5 + static_cast(33)); aot_gpr_31 = (0x08A8D0F8u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 202u, 0x08A8D0F8u, 0x08A0633Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 557u, 0x08A0633Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D0F8u) goto L_08A8D0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D0F8: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D10C: @@ -2795,15 +3482,41 @@ L_08A8D10C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8D134u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 204u, 0x08A8D134u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D134u) goto L_08A8D134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D134: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A8D144u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 205u, 0x08A8D144u, 0x08A06494u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 577u, 0x08A06494u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D144u) goto L_08A8D144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D144: aot_gpr_4 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); @@ -2874,8 +3587,8 @@ L_08A8D1B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D1D0: @@ -2885,8 +3598,21 @@ L_08A8D1D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D1E8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 213u, 0x08A8D1E8u, 0x08A06534u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 585u, 0x08A06534u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D1E8u) goto L_08A8D1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D1E8: aot_gpr_4 = (2236u << 16u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(29704), ctx.gpr[2]); @@ -2902,8 +3628,8 @@ L_08A8D200: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D214: @@ -2913,8 +3639,21 @@ L_08A8D214: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D22Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 216u, 0x08A8D22Cu, 0x08A0656Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 590u, 0x08A0656Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D22Cu) goto L_08A8D22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D22C: aot_gpr_4 = (2236u << 16u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(29704), ctx.gpr[2]); @@ -2930,8 +3669,8 @@ L_08A8D244: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D258: @@ -2943,23 +3682,49 @@ L_08A8D258: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D278u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 219u, 0x08A8D278u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D278u) goto L_08A8D278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D278: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A8D288u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 220u, 0x08A8D288u, 0x08A065A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 595u, 0x08A065A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D288u) goto L_08A8D288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D288: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D29C: @@ -2974,8 +3739,21 @@ L_08A8D29C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(68), aot_run_words); } aot_gpr_31 = (0x08A8D2D0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 222u, 0x08A8D2D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D2D0u) goto L_08A8D2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D2D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); if (aot_gpr_4 != 0u) { @@ -2999,8 +3777,21 @@ L_08A8D2E8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A8D2F8u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 226u, 0x08A8D2F8u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D2F8u) goto L_08A8D2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D2F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); if (aot_gpr_4 != 0u) { @@ -3012,8 +3803,21 @@ L_08A8D304: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08A8D310u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 228u, 0x08A8D310u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D310u) goto L_08A8D310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D310: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3040,8 +3844,21 @@ L_08A8D330: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A8D344u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 233u, 0x08A8D344u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D344u) goto L_08A8D344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D344: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); if (aot_gpr_4 != 0u) { @@ -3064,8 +3881,21 @@ L_08A8D35C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08A8D368u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 237u, 0x08A8D368u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D368u) goto L_08A8D368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D368: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -3075,8 +3905,21 @@ L_08A8D368: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08A8D388u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 238u, 0x08A8D388u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D388u) goto L_08A8D388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D388: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); @@ -3085,8 +3928,21 @@ L_08A8D388: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A8D3A4u); ctx.gpr[8] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 239u, 0x08A8D3A4u, 0x08A064ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 582u, 0x08A064ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D3A4u) goto L_08A8D3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D3A4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -3100,8 +3956,8 @@ L_08A8D3A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D3C8: @@ -3115,8 +3971,21 @@ L_08A8D3C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08A8D3F0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 241u, 0x08A8D3F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D3F0u) goto L_08A8D3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D3F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[4]{}; @@ -3133,8 +4002,21 @@ L_08A8D3F0: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A8D420u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 242u, 0x08A8D420u, 0x08888D84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 281u, 0x08888D84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D420u) goto L_08A8D420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D420: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3145,8 +4027,8 @@ L_08A8D420: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D438: @@ -3160,8 +4042,21 @@ L_08A8D438: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08A8D460u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 244u, 0x08A8D460u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D460u) goto L_08A8D460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D460: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3173,8 +4068,21 @@ L_08A8D460: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A8D488u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 245u, 0x08A8D488u, 0x08888E4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 289u, 0x08888E4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D488u) goto L_08A8D488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D488: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3185,8 +4093,8 @@ L_08A8D488: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D4A0: @@ -3202,15 +4110,41 @@ L_08A8D4A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A8D4D0u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 247u, 0x08A8D4D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D4D0u) goto L_08A8D4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D4D0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08A8D4E0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 248u, 0x08A8D4E0u, 0x08A06660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 606u, 0x08A06660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D4E0u) goto L_08A8D4E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D4E0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3230,15 +4164,15 @@ L_08A8D4F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D510: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D518: @@ -3250,22 +4184,48 @@ L_08A8D518: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D538u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 252u, 0x08A8D538u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D538u) goto L_08A8D538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D538: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08A8D544u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 253u, 0x08A8D544u, 0x08A06838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 636u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 636u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 636u, 0x08A06838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D544u) goto L_08A8D544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D544: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D558: @@ -3277,22 +4237,48 @@ L_08A8D558: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D578u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 255u, 0x08A8D578u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D578u) goto L_08A8D578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D578: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08A8D584u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 256u, 0x08A8D584u, 0x08A06858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 638u, 0x08A06858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D584u) goto L_08A8D584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D584: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D598: @@ -3302,8 +4288,21 @@ L_08A8D598: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D5B0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 258u, 0x08A8D5B0u, 0x08A06878u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 640u, 0x08A06878u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D5B0u) goto L_08A8D5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D5B0: aot_gpr_4 = (2236u << 16u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(29704), ctx.gpr[2]); @@ -3319,8 +4318,8 @@ L_08A8D5C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D5DC: @@ -3334,15 +4333,41 @@ L_08A8D5DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8D604u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 261u, 0x08A8D604u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D604u) goto L_08A8D604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D604: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x08A8D614u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 262u, 0x08A8D614u, 0x08A06898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 642u, 0x08A06898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D614u) goto L_08A8D614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D614: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3353,8 +4378,8 @@ L_08A8D614: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D62C: @@ -3370,14 +4395,40 @@ L_08A8D62C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A8D65Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 264u, 0x08A8D65Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D65Cu) goto L_08A8D65C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D65C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_31 = (0x08A8D668u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 265u, 0x08A8D668u, 0x08A068B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 644u, 0x08A068B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D668u) goto L_08A8D668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D668: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3397,8 +4448,8 @@ L_08A8D67C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D698: @@ -3410,22 +4461,48 @@ L_08A8D698: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D6B8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 268u, 0x08A8D6B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D6B8u) goto L_08A8D6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D6B8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08A8D6C4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 269u, 0x08A8D6C4u, 0x08A068D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 646u, 0x08A068D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D6C4u) goto L_08A8D6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D6C4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D6D8: @@ -3439,15 +4516,41 @@ L_08A8D6D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8D700u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 271u, 0x08A8D700u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D700u) goto L_08A8D700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D700: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x08A8D710u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 272u, 0x08A8D710u, 0x08A068F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 648u, 0x08A068F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D710u) goto L_08A8D710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D710: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3458,8 +4561,8 @@ L_08A8D710: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D728: @@ -3488,16 +4591,29 @@ L_08A8D728: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8D79Cu); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(160), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 274u, 0x08A8D79Cu, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D79Cu) goto L_08A8D79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D79C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D7B0: @@ -3512,8 +4628,21 @@ L_08A8D7B0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), aot_gpr_4); aot_gpr_31 = (0x08A8D7E0u); aot_gpr_4 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 276u, 0x08A8D7E0u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D7E0u) goto L_08A8D7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D7E0: aot_gpr_4 = (ctx.gpr[17] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3601,8 +4730,8 @@ L_08A8D848: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D860: @@ -3617,8 +4746,21 @@ L_08A8D860: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A8D88Cu); aot_gpr_5 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 280u, 0x08A8D88Cu, 0x0885FDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 927u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 927u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 927u, 0x0885FDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D88Cu) goto L_08A8D88C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D88C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] + static_cast(96)); @@ -3630,8 +4772,21 @@ L_08A8D88C: L_08A8D894: aot_gpr_31 = (0x08A8D89Cu); aot_gpr_5 = (aot_gpr_16 + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 282u, 0x08A8D89Cu, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D89Cu) goto L_08A8D89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D89C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] + static_cast(112)); @@ -3643,8 +4798,21 @@ L_08A8D89C: L_08A8D8A4: aot_gpr_31 = (0x08A8D8ACu); aot_gpr_5 = (aot_gpr_16 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 284u, 0x08A8D8ACu, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D8ACu) goto L_08A8D8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D8AC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] + static_cast(128)); @@ -3656,8 +4824,21 @@ L_08A8D8AC: L_08A8D8B4: aot_gpr_31 = (0x08A8D8BCu); aot_gpr_5 = (aot_gpr_16 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 286u, 0x08A8D8BCu, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D8BCu) goto L_08A8D8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D8BC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[17] + static_cast(144)); @@ -3669,8 +4850,21 @@ L_08A8D8BC: L_08A8D8C4: aot_gpr_31 = (0x08A8D8CCu); aot_gpr_5 = (aot_gpr_16 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 288u, 0x08A8D8CCu, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D8CCu) goto L_08A8D8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D8CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3701,8 +4895,8 @@ L_08A8D8E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D904: @@ -3721,8 +4915,21 @@ L_08A8D924: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08A8D930u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 294u, 0x08A8D930u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D930u) goto L_08A8D930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D930: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3746,8 +4953,21 @@ L_08A8D94C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08A8D958u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 299u, 0x08A8D958u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8D958u) goto L_08A8D958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8D958: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3758,8 +4978,8 @@ L_08A8D958: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8D970: @@ -3861,8 +5081,21 @@ L_08A8DA4C: ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A8DA58u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 307u, 0x08A8DA58u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8DA58u) goto L_08A8DA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8DA58: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3887,8 +5120,21 @@ L_08A8DA68: ctx.gpr[17] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A8DA74u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 309u, 0x08A8DA74u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8DA74u) goto L_08A8DA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8DA74: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3921,8 +5167,8 @@ L_08A8DA8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8DAA0: @@ -3995,8 +5241,8 @@ L_08A8DB2C: goto L_08A8DB30; L_08A8DB30: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8DB38: @@ -4012,8 +5258,21 @@ L_08A8DB38: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A8DB68u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 323u, 0x08A8DB68u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8DB68u) goto L_08A8DB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8DB68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -4261,8 +5520,8 @@ L_08A8DD0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8DD20: @@ -4281,8 +5540,21 @@ L_08A8DD20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A8DD5Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 353u, 0x08A8DD5Cu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8DD5Cu) goto L_08A8DD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8DD5C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < 2 ? 1u : 0u); @@ -4527,8 +5799,8 @@ L_08A8DEF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8DF08: @@ -4714,8 +5986,8 @@ L_08A8E064: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E094: @@ -4850,8 +6122,8 @@ L_08A8E174: } L_08A8E180: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E188: @@ -4969,8 +6241,8 @@ L_08A8E27C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E2AC: @@ -5088,8 +6360,8 @@ L_08A8E3A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E3D0: @@ -5249,8 +6521,8 @@ L_08A8E4B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E4E8: @@ -5311,8 +6583,8 @@ L_08A8E548: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E55C: @@ -5379,8 +6651,8 @@ L_08A8E5CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E5E0: @@ -5455,8 +6727,8 @@ L_08A8E67C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E694: @@ -5542,8 +6814,8 @@ L_08A8E750: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E770: @@ -5666,8 +6938,8 @@ L_08A8E8B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E8E4: @@ -5721,8 +6993,8 @@ L_08A8E944: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E960: @@ -5776,8 +7048,8 @@ L_08A8E9C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8E9DC: @@ -5831,8 +7103,8 @@ L_08A8EA3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8EA58: @@ -5843,8 +7115,8 @@ L_08A8EA58: aot_gpr_4 = (aot_gpr_4 - aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8EA74: @@ -5855,8 +7127,8 @@ L_08A8EA74: aot_gpr_4 = (aot_gpr_4 - aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8EA90: @@ -5867,8 +7139,8 @@ L_08A8EA90: aot_gpr_4 = (aot_gpr_4 - aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8EAAC: @@ -5942,8 +7214,8 @@ L_08A8EB30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8EB48: @@ -5971,8 +7243,21 @@ L_08A8EB88: aot_gpr_4 = (0u | 8u); aot_gpr_31 = (0x08A8EB98u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 529u, 0x08A8EB98u, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8EB98u) goto L_08A8EB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8EB98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6053,8 +7338,21 @@ L_08A8EC40: aot_gpr_4 = (0u | 22u); aot_gpr_31 = (0x08A8EC4Cu); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 538u, 0x08A8EC4Cu, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8EC4Cu) goto L_08A8EC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8EC4C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6135,8 +7433,21 @@ L_08A8ECF4: aot_gpr_4 = (0u | 19u); aot_gpr_31 = (0x08A8ED00u); aot_gpr_5 = (0u | 22u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 547u, 0x08A8ED00u, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8ED00u) goto L_08A8ED00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8ED00: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0))); @@ -6297,8 +7608,21 @@ L_08A8EED8: aot_gpr_4 = (0u | 5u); aot_gpr_31 = (0x08A8EEE4u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 557u, 0x08A8EEE4u, 0x08941B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 248u, 0x08941B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8EEE4u) goto L_08A8EEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8EEE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6330,8 +7654,8 @@ L_08A8EF00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8EF1C: @@ -6340,8 +7664,21 @@ L_08A8EF1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A8EF30u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 562u, 0x08A8EF30u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8EF30u) goto L_08A8EF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8EF30: aot_gpr_4 = (16997u << 16u); aot_gpr_4 = (aot_gpr_4 | 12000u); @@ -6350,8 +7687,8 @@ L_08A8EF30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8EF4C: @@ -6403,8 +7740,8 @@ L_08A8EF98: L_08A8EFAC: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8EFB4: @@ -6412,8 +7749,21 @@ L_08A8EFB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A8EFC4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 571u, 0x08A8EFC4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8EFC4u) goto L_08A8EFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8EFC4: aot_gpr_4 = (16585u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6459,8 +7809,8 @@ L_08A8F010: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F040: @@ -6508,8 +7858,8 @@ L_08A8F074: } L_08A8F0AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F0B4: @@ -6628,8 +7978,8 @@ L_08A8F0B4: ctx.gpr[8] = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[0] = std::bit_cast(ctx.gpr[8]); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F124: @@ -6641,8 +7991,21 @@ L_08A8F124: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8F144u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 582u, 0x08A8F144u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F144u) goto L_08A8F144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F144: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0]) & 0x7FFFFFFFu); aot_gpr_31 = (0x08A8F150u); @@ -6659,8 +8022,8 @@ L_08A8F150: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F168: @@ -6672,8 +8035,21 @@ L_08A8F168: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A8F188u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 585u, 0x08A8F188u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F188u) goto L_08A8F188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F188: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<3u>(ctx.fpr[0])); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6691,8 +8067,8 @@ L_08A8F198: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F1B0: @@ -6705,15 +8081,41 @@ L_08A8F1B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A8F1D4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 588u, 0x08A8F1D4u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F1D4u) goto L_08A8F1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F1D4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F1E4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 589u, 0x08A8F1E4u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F1E4u) goto L_08A8F1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F1E4: aot_fpr_12 = aot_fpr_20 / ctx.fpr[0]; aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -6735,8 +8137,8 @@ L_08A8F200: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F21C: @@ -6753,8 +8155,21 @@ L_08A8F240: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F254u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 593u, 0x08A8F254u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F254u) goto L_08A8F254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F254: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 2 ? 1u : 0u); @@ -6769,8 +8184,21 @@ L_08A8F264: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F270u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 595u, 0x08A8F270u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F270u) goto L_08A8F270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F270: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -6811,8 +8239,8 @@ L_08A8F2A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F2C8: @@ -6829,8 +8257,21 @@ L_08A8F2EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F300u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 602u, 0x08A8F300u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F300u) goto L_08A8F300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F300: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 2 ? 1u : 0u); @@ -6845,8 +8286,21 @@ L_08A8F310: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F31Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 604u, 0x08A8F31Cu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F31Cu) goto L_08A8F31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F31C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= aot_fpr_20)) ? 0x00800000u : 0u); @@ -6887,8 +8341,8 @@ L_08A8F350: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F374: @@ -6975,8 +8429,21 @@ L_08A8F404: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F414u); aot_gpr_5 = (aot_gpr_5 + static_cast(9108)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 620u, 0x08A8F414u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F414u) goto L_08A8F414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F414: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6988,8 +8455,21 @@ L_08A8F41C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F428u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 622u, 0x08A8F428u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F428u) goto L_08A8F428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F428: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -7006,8 +8486,21 @@ L_08A8F43C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08A8F454u); aot_gpr_6 = (aot_gpr_6 + static_cast(9088)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 624u, 0x08A8F454u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F454u) goto L_08A8F454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F454: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7037,16 +8530,42 @@ L_08A8F490: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F49Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 628u, 0x08A8F49Cu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F49Cu) goto L_08A8F49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F49C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08A8F4B0u); ctx.gpr[17] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 629u, 0x08A8F4B0u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F4B0u) goto L_08A8F4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F4B0: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); @@ -7063,8 +8582,21 @@ L_08A8F4C4: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08A8F4DCu); aot_gpr_6 = (aot_gpr_6 + static_cast(9088)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 631u, 0x08A8F4DCu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F4DCu) goto L_08A8F4DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F4DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 - ctx.gpr[17]); @@ -7102,8 +8634,8 @@ L_08A8F520: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F538: @@ -7111,8 +8643,21 @@ L_08A8F538: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A8F548u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 636u, 0x08A8F548u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F548u) goto L_08A8F548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F548: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_31 = (0x08A8F554u); @@ -7124,8 +8669,8 @@ L_08A8F554: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F564: @@ -7138,15 +8683,41 @@ L_08A8F564: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A8F588u); aot_gpr_6 = (aot_gpr_6 + static_cast(9024)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 639u, 0x08A8F588u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F588u) goto L_08A8F588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F588: aot_gpr_5 = (ctx.gpr[28] + static_cast(-5260)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A8F598u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 640u, 0x08A8F598u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F598u) goto L_08A8F598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F598: aot_gpr_5 = (16457u << 16u); aot_gpr_5 = (aot_gpr_5 | 4059u); @@ -7167,8 +8738,8 @@ L_08A8F5B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F5CC: @@ -7282,8 +8853,8 @@ L_08A8F5CC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F64C: @@ -7322,8 +8893,21 @@ L_08A8F64C: aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); aot_gpr_31 = (0x08A8F6B0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 645u, 0x08A8F6B0u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F6B0u) goto L_08A8F6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F6B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7335,15 +8919,41 @@ L_08A8F6B8: aot_gpr_4 = (ctx.gpr[19] + static_cast(32)); aot_gpr_31 = (0x08A8F6C4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 647u, 0x08A8F6C4u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F6C4u) goto L_08A8F6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F6C4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A8F6D4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 648u, 0x08A8F6D4u, 0x08A9033Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 24u, 0x08A9033Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F6D4u) goto L_08A8F6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F6D4: aot_gpr_31 = (0x08A8F6DCu); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -7416,8 +9026,8 @@ L_08A8F734: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F754: @@ -7535,8 +9145,8 @@ L_08A8F800: L_08A8F804: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F80C: @@ -7603,8 +9213,21 @@ L_08A8F80C: aot_gpr_4 = (ctx.gpr[17] + static_cast(8)); aot_gpr_31 = (0x08A8F888u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 666u, 0x08A8F888u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8F888u) goto L_08A8F888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8F888: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -7657,8 +9280,8 @@ L_08A8F8EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8F908: @@ -7780,8 +9403,8 @@ L_08A8F9F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8FA44: @@ -7961,8 +9584,8 @@ L_08A8FAB4: L_08A8FBA4: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8FBAC: @@ -8030,8 +9653,21 @@ L_08A8FBAC: aot_gpr_4 = (ctx.gpr[18] + static_cast(8)); aot_gpr_31 = (0x08A8FC30u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 688u, 0x08A8FC30u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8FC30u) goto L_08A8FC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8FC30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -8053,8 +9689,21 @@ L_08A8FC5C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08A8FC70u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 690u, 0x08A8FC70u, 0x08AF89B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 144u, 0x08AF89B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8FC70u) goto L_08A8FC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8FC70: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8109,8 +9758,21 @@ L_08A8FCBC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08A8FCD8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 695u, 0x08A8FCD8u, 0x08AF89B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 144u, 0x08AF89B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8FCD8u) goto L_08A8FCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8FCD8: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8139,8 +9801,8 @@ L_08A8FCE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A8FD04: @@ -8266,8 +9928,21 @@ L_08A8FDF0: aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); aot_gpr_31 = (0x08A8FE24u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 703u, 0x08A8FE24u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8FE24u) goto L_08A8FE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8FE24: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8279,15 +9954,41 @@ L_08A8FE2C: aot_gpr_4 = (aot_gpr_16 + static_cast(32)); aot_gpr_31 = (0x08A8FE38u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 705u, 0x08A8FE38u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8FE38u) goto L_08A8FE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8FE38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A8FE48u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0162->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0162_entry, 706u, 0x08A8FE48u, 0x08A9033Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 24u, 0x08A9033Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A8FE48u) goto L_08A8FE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A8FE48: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(168))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); diff --git a/profiles/vcs/generated/generated_unit_0163.cpp b/profiles/vcs/generated/generated_unit_0163.cpp index 0599b44..ea8d472 100644 --- a/profiles/vcs/generated/generated_unit_0163.cpp +++ b/profiles/vcs/generated/generated_unit_0163.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0163[64] = { 259u, 269u, 282u, 293u, 300u, 307u, 315u, 323u, 334u, 340u, 348u, 356u, 364u, 373u, 389u, 410u, 430u, 451u, 466u, 474u, 490u, 506u, 514u, 529u, 545u, 556u, 563u, 576u, 588u, 596u, 608u, 627u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0163[4094] = { + 1u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 4u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 6u, 7u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 9u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 14u, 0u, 0u, 0u, 0u, 15u, + 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 21u, 0u, 22u, 23u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 26u, 0u, + 0u, 0u, 27u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 30u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 36u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, + 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 43u, 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 48u, + 0u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 50u, 51u, 0u, 52u, 0u, 0u, 53u, 54u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 56u, 0u, 57u, 0u, 58u, 0u, 0u, 59u, 0u, 0u, 0u, + 60u, 0u, 0u, 0u, 61u, 0u, 0u, 0u, 62u, 0u, 63u, 0u, 0u, 0u, 0u, 0u, 64u, 0u, 0u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 67u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 69u, 70u, 0u, 0u, 71u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 72u, 0u, 73u, 0u, 74u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 78u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 79u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, 82u, 0u, 83u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 84u, 0u, 0u, 85u, 0u, 86u, 87u, 0u, 88u, 0u, 0u, 0u, 89u, 0u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 0u, 0u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 93u, 0u, + 0u, 94u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 0u, 0u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 0u, 98u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 100u, 101u, 0u, 102u, 0u, 0u, 0u, 0u, 103u, 0u, 104u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 105u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 107u, 0u, 108u, 109u, 0u, 0u, 0u, 110u, 0u, 111u, 0u, 0u, 0u, 112u, 0u, 0u, + 0u, 0u, 0u, 113u, 0u, 0u, 114u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 116u, 0u, 0u, 0u, + 0u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 119u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 120u, 0u, 0u, 121u, 0u, 122u, 0u, 123u, 0u, 0u, 124u, 0u, 0u, 0u, 0u, 0u, + 125u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 130u, 0u, 0u, 131u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 0u, 0u, 0u, 0u, 0u, 136u, 0u, + 0u, 137u, 0u, 0u, 138u, 0u, 0u, 139u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 140u, 0u, 141u, 142u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 143u, 0u, 0u, 0u, 0u, 0u, 144u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 0u, 0u, 147u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 148u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 150u, 0u, 151u, 0u, 0u, 0u, 0u, 0u, 0u, 152u, 0u, 0u, 0u, 0u, 153u, 0u, 0u, 154u, 0u, + 155u, 156u, 0u, 157u, 158u, 0u, 0u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 160u, 0u, 0u, 161u, 0u, 0u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 163u, 0u, 0u, 0u, 164u, 0u, 0u, 0u, 165u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 166u, 0u, 0u, 167u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, + 169u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 170u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 174u, 0u, 175u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 177u, 178u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 179u, 0u, 180u, 0u, 0u, 0u, 0u, 0u, 0u, 181u, 0u, 0u, 182u, 0u, 0u, 0u, 0u, + 183u, 0u, 184u, 0u, 0u, 0u, 185u, 0u, 186u, 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 188u, 0u, 0u, 189u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 191u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 0u, 194u, 0u, 0u, 0u, 0u, 0u, 0u, 195u, 0u, 0u, 0u, + 196u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 198u, 199u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 201u, 0u, 202u, 0u, 0u, 0u, 203u, 204u, 0u, 0u, 0u, 0u, 0u, 0u, + 205u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 207u, 208u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 209u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 210u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 213u, 0u, 214u, 0u, 0u, 0u, 0u, 215u, + 0u, 0u, 0u, 0u, 216u, 217u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 220u, 0u, 221u, 222u, 0u, 0u, 0u, 0u, 0u, + 0u, 223u, 0u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 225u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 0u, 0u, 228u, 0u, 0u, 229u, 0u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, 233u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 234u, 0u, 0u, 0u, + 235u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 237u, 0u, 238u, 0u, 239u, 0u, 240u, 0u, 241u, 0u, 242u, 243u, 0u, 244u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, + 246u, 0u, 0u, 0u, 0u, 0u, 0u, 247u, 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 0u, 0u, 0u, 249u, 0u, 250u, 0u, 0u, 0u, 251u, 0u, 252u, 0u, 253u, 0u, + 254u, 255u, 0u, 256u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 259u, 0u, 260u, 0u, 0u, 0u, 261u, 0u, 262u, 0u, 0u, 0u, 263u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 265u, 0u, 0u, 0u, 0u, 0u, 266u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 268u, 0u, + 269u, 0u, 0u, 0u, 270u, 0u, 271u, 0u, 0u, 0u, 272u, 0u, 273u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 278u, 0u, 0u, 0u, 279u, 0u, 280u, 0u, 0u, 0u, 281u, 0u, + 282u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, 0u, 0u, 284u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 285u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 286u, 0u, 287u, 0u, 0u, 0u, 288u, 0u, 289u, 0u, 0u, 0u, 290u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, + 0u, 0u, 0u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 0u, 0u, 0u, + 0u, 296u, 0u, 0u, 297u, 298u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 306u, + 307u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 309u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 310u, 0u, + 311u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, + 0u, 0u, 0u, 315u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 0u, + 318u, 0u, 0u, 319u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 329u, 0u, 0u, 0u, 330u, 0u, 331u, 0u, 0u, 0u, 332u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 334u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 338u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, + 340u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 342u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 346u, 0u, 0u, 0u, 0u, 0u, 347u, + 0u, 0u, 348u, 349u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 0u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 352u, 0u, 353u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 354u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 355u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 358u, 359u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 360u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 361u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 362u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 363u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 365u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 367u, 368u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 371u, 0u, 372u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 373u, 0u, 0u, 0u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 376u, 0u, 0u, 0u, 377u, 0u, 378u, 0u, 379u, + 0u, 380u, 0u, 381u, 0u, 382u, 0u, 383u, 0u, 384u, 0u, 0u, 385u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 386u, 0u, 0u, 387u, 0u, 388u, 0u, 0u, 0u, + 389u, 0u, 390u, 0u, 0u, 0u, 0u, 391u, 0u, 392u, 393u, 0u, 394u, 0u, 395u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 0u, 0u, 397u, 0u, 0u, 0u, 398u, 0u, 399u, 0u, + 0u, 0u, 400u, 0u, 401u, 0u, 0u, 0u, 0u, 402u, 0u, 403u, 404u, 0u, 405u, 0u, 406u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 408u, 0u, 0u, 0u, 409u, 0u, + 410u, 0u, 0u, 0u, 411u, 0u, 412u, 0u, 0u, 0u, 0u, 413u, 0u, 414u, 415u, 0u, 416u, 0u, 417u, 0u, 0u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, + 0u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 421u, 0u, 422u, 0u, 423u, 0u, 0u, 424u, 0u, 0u, 425u, 0u, 426u, 0u, 427u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 429u, + 0u, 430u, 0u, 0u, 431u, 0u, 432u, 0u, 0u, 433u, 0u, 0u, 0u, 434u, 0u, 435u, 0u, 0u, 0u, 0u, 436u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, + 0u, 439u, 0u, 440u, 0u, 441u, 0u, 0u, 0u, 442u, 443u, 0u, 0u, 444u, 445u, 0u, 446u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 448u, 0u, 0u, 0u, 449u, 0u, 450u, 0u, + 0u, 451u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 454u, 0u, 455u, 0u, 456u, 0u, 0u, 0u, 0u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, 458u, 0u, 0u, + 0u, 0u, 0u, 459u, 460u, 0u, 461u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 463u, 0u, 0u, 0u, 0u, 0u, 464u, 0u, 0u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 468u, + 0u, 0u, 0u, 0u, 0u, 469u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 474u, 0u, 0u, 475u, 0u, 476u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 479u, 0u, 0u, 0u, 480u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 482u, 0u, 0u, 483u, 0u, 484u, 485u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, 488u, 0u, 0u, 489u, + 0u, 490u, 0u, 491u, 0u, 0u, 492u, 0u, 493u, 0u, 0u, 494u, 0u, 0u, 0u, 495u, 0u, 0u, 0u, 496u, 497u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 498u, 0u, 0u, 0u, + 0u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 0u, 502u, 0u, 0u, 503u, 0u, 0u, 0u, 0u, 0u, 504u, 0u, 505u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 0u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 509u, 0u, 0u, 0u, 0u, + 510u, 0u, 511u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 512u, 0u, 0u, 0u, 0u, 513u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 514u, 0u, 0u, 0u, 515u, 0u, 516u, 0u, 0u, 0u, 517u, 0u, 0u, 518u, 0u, 0u, 0u, 519u, 0u, 520u, 0u, 0u, 521u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, 523u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 0u, 525u, 0u, 0u, 0u, 526u, 0u, 527u, 0u, 0u, 528u, + 0u, 0u, 529u, 0u, 0u, 530u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, 532u, 0u, 0u, 0u, 533u, 0u, 534u, 0u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, + 0u, 537u, 0u, 0u, 0u, 0u, 538u, 0u, 539u, 0u, 0u, 540u, 0u, 541u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 542u, 543u, 0u, 0u, 0u, 0u, 544u, 0u, 0u, 0u, + 0u, 545u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 546u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 547u, 0u, 0u, 0u, 0u, 0u, 0u, 548u, 0u, 0u, 0u, + 0u, 0u, 0u, 549u, 0u, 0u, 0u, 550u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 0u, 553u, 0u, 554u, 0u, 0u, 0u, 555u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, 558u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 559u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 561u, 0u, 562u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 563u, 0u, 0u, 564u, 0u, 0u, 0u, 565u, 0u, 0u, 0u, 566u, 0u, 0u, 567u, 0u, 0u, 0u, + 0u, 568u, 569u, 0u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 573u, 0u, 0u, 0u, 0u, 574u, 575u, 0u, + 0u, 576u, 0u, 0u, 577u, 0u, 0u, 0u, 578u, 0u, 0u, 0u, 0u, 579u, 0u, 0u, 0u, 0u, 0u, 0u, 580u, 0u, 0u, 581u, 0u, 582u, 0u, 0u, 0u, 0u, 0u, 0u, + 583u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 584u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 587u, + 0u, 0u, 0u, 0u, 0u, 588u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, 0u, 0u, 590u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 591u, 0u, 0u, 0u, 592u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 593u, 0u, 0u, 0u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 595u, + 0u, 596u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 597u, 0u, 0u, 0u, 0u, 598u, 0u, 0u, 599u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 600u, 0u, 0u, + 0u, 601u, 0u, 0u, 602u, 0u, 0u, 603u, 0u, 0u, 604u, 0u, 0u, 0u, 605u, 606u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 607u, 0u, 0u, 0u, + 608u, 609u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 610u, 0u, 611u, 0u, 0u, 612u, 0u, 613u, 0u, 614u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 0u, 616u, 0u, 0u, + 617u, 618u, 0u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 620u, 0u, 621u, 0u, 0u, 622u, 623u, 0u, 0u, 624u, 0u, 625u, 0u, 0u, 626u, 0u, + 627u, 0u, 628u, 0u, 0u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 631u, 0u, 0u, 0u, 0u, 632u, 0u, 0u, 0u, 0u, 633u, 634u, 0u, 0u, + 0u, 635u, 0u, 0u, 0u, 0u, 636u, 0u, 0u, 637u, 0u, 638u, 0u, 639u, 0u, 0u, 0u, 640u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 641u, +}; void recomp_unit_0163_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,6,31,17 fprs=12,13,14,15 gpr_occ=3543 fpr_occ=1056 gpr_total=5203 fpr_total=1699 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08A90000u; - entry_id = 0u; - if (entry_delta < 16376u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0163[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0163[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16376u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0163[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08A90000; @@ -719,6 +842,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A90000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -736,8 +883,21 @@ L_08A90000: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08A9000Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 2u, 0x08A9000Cu, 0x08A8F5CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 643u, 0x08A8F5CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9000Cu) goto L_08A9000C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9000C: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -897,8 +1057,21 @@ L_08A90088: } aot_gpr_31 = (0x08A900F0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 6u, 0x08A900F0u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A900F0u) goto L_08A900F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A900F0: aot_gpr_4 = (ctx.gpr[23] + static_cast(1)); goto L_08A900F4; @@ -940,8 +1113,21 @@ L_08A90150: ctx.gpr[19] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08A90160u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 10u, 0x08A90160u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90160u) goto L_08A90160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90160: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -993,8 +1179,21 @@ L_08A901A0: ctx.gpr[19] = (aot_gpr_29 + static_cast(288)); aot_gpr_31 = (0x08A901ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 12u, 0x08A901ACu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A901ACu) goto L_08A901AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A901AC: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1235,8 +1434,8 @@ L_08A902F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(624)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9033C: @@ -1524,8 +1723,8 @@ L_08A90590: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(148), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A905E4: @@ -1546,8 +1745,8 @@ L_08A90610: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9061C: @@ -1591,8 +1790,8 @@ L_08A9061C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9069C: @@ -1603,8 +1802,8 @@ L_08A9069C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(60))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(64), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A906B8: @@ -1614,8 +1813,8 @@ L_08A906B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(60))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(60), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A906D0: @@ -1718,50 +1917,154 @@ L_08A90758: aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(7320), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08A907D4u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(7322), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 56u, 0x08A907D4u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A907D4u) goto L_08A907D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A907D4: aot_gpr_31 = (0x08A907DCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-5224)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 57u, 0x08A907DCu, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A907DCu) goto L_08A907DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A907DC: aot_gpr_31 = (0x08A907E4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 58u, 0x08A907E4u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A907E4u) goto L_08A907E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A907E4: aot_gpr_4 = (ctx.gpr[28] + static_cast(-5212)); aot_gpr_31 = (0x08A907F0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 59u, 0x08A907F0u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A907F0u) goto L_08A907F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A907F0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9016), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-5196)); aot_gpr_31 = (0x08A90800u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 60u, 0x08A90800u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90800u) goto L_08A90800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90800: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9020), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-5180)); aot_gpr_31 = (0x08A90810u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 61u, 0x08A90810u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90810u) goto L_08A90810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90810: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9024), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-5164)); aot_gpr_31 = (0x08A90820u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 62u, 0x08A90820u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90820u) goto L_08A90820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90820: aot_gpr_31 = (0x08A90828u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9028), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 63u, 0x08A90828u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90828u) goto L_08A90828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90828: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10086), static_cast(0u)); aot_gpr_4 = (0u | 255u); @@ -1769,8 +2072,8 @@ L_08A90828: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A90840: @@ -1778,8 +2081,8 @@ L_08A90840: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10086), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A90850: @@ -1958,8 +2261,21 @@ L_08A909C4: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_31 = (0x08A90A30u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 81u, 0x08A90A30u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90A30u) goto L_08A90A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90A30: aot_fpr_13 = ctx.fpr[0] + ctx.fpr[20]; aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(8), std::bit_cast(aot_fpr_13)); @@ -2011,8 +2327,21 @@ L_08A90A4C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A90AA8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 84u, 0x08A90AA8u, 0x08AAE51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 458u, 0x08AAE51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90AA8u) goto L_08A90AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90AA8: aot_gpr_4 = (ctx.gpr[2] & 8u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2396,8 +2725,21 @@ L_08A90E28: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_15)); aot_gpr_31 = (0x08A90E7Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 119u, 0x08A90E7Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90E7Cu) goto L_08A90E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90E7C: aot_fpr_14 = ctx.fpr[0] + ctx.fpr[20]; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(24), std::bit_cast(aot_fpr_14)); @@ -2426,8 +2768,21 @@ L_08A90E7C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08A90EC0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 120u, 0x08A90EC0u, 0x08AAE51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 458u, 0x08AAE51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A90EC0u) goto L_08A90EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A90EC0: aot_gpr_4 = (ctx.gpr[2] & 8u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2563,8 +2918,8 @@ L_08A90FCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9100C: @@ -3355,8 +3710,21 @@ L_08A918EC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08A91900u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 183u, 0x08A91900u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A91900u) goto L_08A91900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A91900: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3369,12 +3737,38 @@ L_08A91908: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x08A91918u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 185u, 0x08A91918u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A91918u) goto L_08A91918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A91918: aot_gpr_31 = (0x08A91920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 186u, 0x08A91920u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A91920u) goto L_08A91920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A91920: aot_gpr_4 = (ctx.gpr[22] + static_cast(1)); ctx.gpr[22] = (aot_gpr_4 << 16u); @@ -3427,8 +3821,8 @@ L_08A9195C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A919A4: @@ -3816,8 +4210,21 @@ L_08A91D30: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_gpr_31 = (0x08A91DA4u); aot_fpr_14 = aot_fpr_14 + ctx.fpr[20]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 227u, 0x08A91DA4u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A91DA4u) goto L_08A91DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A91DA4: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[26]; aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -3859,8 +4266,8 @@ L_08A91DD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A91E18: @@ -3890,8 +4297,8 @@ L_08A91E3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A91E70: @@ -3909,8 +4316,8 @@ L_08A91E80: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(9136))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A91E98: @@ -3966,8 +4373,8 @@ L_08A91EC8: goto L_08A91ECC; L_08A91ECC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A91ED4: @@ -3987,8 +4394,8 @@ L_08A91EE8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(9280))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A91F00: @@ -4031,8 +4438,8 @@ L_08A91F38: } L_08A91F50: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A91F58: @@ -4073,8 +4480,8 @@ L_08A91F80: goto L_08A91F84; L_08A91F84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A91F8C: @@ -4118,8 +4525,8 @@ L_08A91F8C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A91FD0: @@ -4133,8 +4540,21 @@ L_08A91FD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A91FF8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 258u, 0x08A91FF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A91FF8u) goto L_08A91FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A91FF8: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -4194,8 +4614,21 @@ L_08A92060: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[19])); aot_gpr_31 = (0x08A92088u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 265u, 0x08A92088u, 0x089783ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 36u, 0x089783ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92088u) goto L_08A92088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92088: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4206,8 +4639,8 @@ L_08A92088: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A920A0: @@ -4221,8 +4654,21 @@ L_08A920A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A920C8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 267u, 0x08A920C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A920C8u) goto L_08A920C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A920C8: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -4282,8 +4728,21 @@ L_08A92130: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[19])); aot_gpr_31 = (0x08A92158u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 274u, 0x08A92158u, 0x089783ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 36u, 0x089783ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92158u) goto L_08A92158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92158: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4294,8 +4753,8 @@ L_08A92158: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92170: @@ -4309,8 +4768,21 @@ L_08A92170: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A92198u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 276u, 0x08A92198u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92198u) goto L_08A92198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92198: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -4370,8 +4842,21 @@ L_08A92200: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[19])); aot_gpr_31 = (0x08A92228u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 283u, 0x08A92228u, 0x08978540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 48u, 0x08978540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92228u) goto L_08A92228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92228: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4382,8 +4867,8 @@ L_08A92228: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92240: @@ -4397,8 +4882,21 @@ L_08A92240: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A92268u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 285u, 0x08A92268u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92268u) goto L_08A92268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92268: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -4458,8 +4956,21 @@ L_08A922D0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[19])); aot_gpr_31 = (0x08A922F8u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 292u, 0x08A922F8u, 0x08978540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 48u, 0x08978540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A922F8u) goto L_08A922F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A922F8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4470,8 +4981,8 @@ L_08A922F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92310: @@ -4489,8 +5000,21 @@ L_08A92310: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08A9234Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 294u, 0x08A9234Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9234Cu) goto L_08A9234C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9234C: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -4518,8 +5042,21 @@ L_08A92384: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A92390u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 297u, 0x08A92390u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92390u) goto L_08A92390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92390: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A92394; @@ -4537,8 +5074,21 @@ L_08A92394: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A923CCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 299u, 0x08A923CCu, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A923CCu) goto L_08A923CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A923CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -4620,8 +5170,8 @@ L_08A9245C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9247C: @@ -4639,8 +5189,21 @@ L_08A9247C: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08A924B8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 303u, 0x08A924B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A924B8u) goto L_08A924B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A924B8: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -4668,8 +5231,21 @@ L_08A924F0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A924FCu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 306u, 0x08A924FCu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A924FCu) goto L_08A924FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A924FC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A92500; @@ -4687,15 +5263,41 @@ L_08A92500: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A92538u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 308u, 0x08A92538u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92538u) goto L_08A92538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92538: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A92548u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 309u, 0x08A92548u, 0x08977830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 728u, 0x08977830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92548u) goto L_08A92548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92548: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (2236u << 16u); @@ -4731,8 +5333,8 @@ L_08A92580: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A925A0: @@ -4746,8 +5348,21 @@ L_08A925A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A925C8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 313u, 0x08A925C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A925C8u) goto L_08A925C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A925C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); @@ -4763,8 +5378,21 @@ L_08A925C8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A925F4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 314u, 0x08A925F4u, 0x089786DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 60u, 0x089786DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A925F4u) goto L_08A925F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A925F4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4775,8 +5403,8 @@ L_08A925F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9260C: @@ -4794,8 +5422,21 @@ L_08A9260C: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08A92648u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 316u, 0x08A92648u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92648u) goto L_08A92648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92648: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -4823,8 +5464,21 @@ L_08A92680: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A9268Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 319u, 0x08A9268Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9268Cu) goto L_08A9268C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9268C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A92690; @@ -4842,16 +5496,42 @@ L_08A92690: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A926C8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 321u, 0x08A926C8u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A926C8u) goto L_08A926C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A926C8: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08A926DCu); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 322u, 0x08A926DCu, 0x08977830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 728u, 0x08977830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A926DCu) goto L_08A926DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A926DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_5 = (2236u << 16u); @@ -4865,8 +5545,21 @@ L_08A926DC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A9270Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 323u, 0x08A9270Cu, 0x08977AB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 742u, 0x08977AB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9270Cu) goto L_08A9270C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9270C: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (ctx.gpr[16] + static_cast(16)); @@ -4896,8 +5589,8 @@ L_08A9272C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9274C: @@ -4911,8 +5604,21 @@ L_08A9274C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A92774u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 327u, 0x08A92774u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92774u) goto L_08A92774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92774: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -4971,8 +5677,21 @@ L_08A927DC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[19])); aot_gpr_31 = (0x08A92800u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 334u, 0x08A92800u, 0x08977DACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 770u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 770u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 770u, 0x08977DACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92800u) goto L_08A92800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92800: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4983,8 +5702,8 @@ L_08A92800: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92818: @@ -5003,8 +5722,21 @@ L_08A92818: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), aot_gpr_31); aot_gpr_31 = (0x08A92854u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 336u, 0x08A92854u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92854u) goto L_08A92854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92854: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); @@ -5023,8 +5755,21 @@ L_08A92854: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08A9289Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 337u, 0x08A9289Cu, 0x08979F28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 267u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 267u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 267u, 0x08979F28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9289Cu) goto L_08A9289C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9289C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_5 = (0u + static_cast(-1)); @@ -5062,8 +5807,21 @@ L_08A928EC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_gpr_31 = (0x08A92900u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 340u, 0x08A92900u, 0x08977830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 728u, 0x08977830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92900u) goto L_08A92900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92900: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), aot_gpr_4); @@ -5076,8 +5834,21 @@ L_08A92900: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_31 = (0x08A9292Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 341u, 0x08A9292Cu, 0x08977830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 728u, 0x08977830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9292Cu) goto L_08A9292C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9292C: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5121,8 +5892,8 @@ L_08A92964: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92988: @@ -5140,8 +5911,21 @@ L_08A92988: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08A929C4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 345u, 0x08A929C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A929C4u) goto L_08A929C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A929C4: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -5169,8 +5953,21 @@ L_08A929FC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A92A08u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 348u, 0x08A92A08u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92A08u) goto L_08A92A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92A08: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A92A0C; @@ -5192,15 +5989,41 @@ L_08A92A0C: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08A92A50u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 350u, 0x08A92A50u, 0x08977C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 754u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 754u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 754u, 0x08977C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92A50u) goto L_08A92A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92A50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A92A60u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 351u, 0x08A92A60u, 0x08977830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 728u, 0x08977830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92A60u) goto L_08A92A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92A60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -5234,8 +6057,8 @@ L_08A92A90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92AB0: @@ -5255,8 +6078,21 @@ L_08A92AB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_31); aot_gpr_31 = (0x08A92AF0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 355u, 0x08A92AF0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92AF0u) goto L_08A92AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92AF0: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); @@ -5284,8 +6120,21 @@ L_08A92B28: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A92B34u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 358u, 0x08A92B34u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92B34u) goto L_08A92B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92B34: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A92B38; @@ -5304,8 +6153,21 @@ L_08A92B38: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08A92B74u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 360u, 0x08A92B74u, 0x08977C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 754u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 754u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 754u, 0x08977C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92B74u) goto L_08A92B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92B74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -5357,8 +6219,8 @@ L_08A92BC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92BF0: @@ -5376,8 +6238,21 @@ L_08A92BF0: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08A92C2Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 364u, 0x08A92C2Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92C2Cu) goto L_08A92C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92C2C: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -5405,8 +6280,21 @@ L_08A92C64: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08A92C70u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 367u, 0x08A92C70u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92C70u) goto L_08A92C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92C70: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A92C74; @@ -5424,15 +6312,41 @@ L_08A92C74: ctx.gpr[10] = (0u | 1u); aot_gpr_31 = (0x08A92CACu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 369u, 0x08A92CACu, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92CACu) goto L_08A92CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92CAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08A92CBCu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 370u, 0x08A92CBCu, 0x08977830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 728u, 0x08977830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92CBCu) goto L_08A92CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92CBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (2236u << 16u); @@ -5468,8 +6382,8 @@ L_08A92CF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92D14: @@ -5498,16 +6412,29 @@ L_08A92D28: L_08A92D54: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(6392), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92D5C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08A92D6Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 377u, 0x08A92D6Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92D6Cu) goto L_08A92D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92D6C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5517,8 +6444,21 @@ L_08A92D6C: } L_08A92D74: aot_gpr_31 = (0x08A92D7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 379u, 0x08A92D7Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A92D7Cu) goto L_08A92D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A92D7C: aot_gpr_31 = (0x08A92D84u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5546,8 +6486,8 @@ L_08A92DA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92DB0: @@ -5809,8 +6749,8 @@ L_08A92F5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A92F78: @@ -5895,8 +6835,8 @@ L_08A92FE4: goto L_08A92FFC; L_08A92FFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93004: @@ -5953,8 +6893,8 @@ L_08A9303C: } L_08A93050: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93058: @@ -6049,8 +6989,8 @@ L_08A930E0: goto L_08A930F0; L_08A930F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A930F8: @@ -6097,8 +7037,8 @@ L_08A93134: } L_08A9313C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93144: @@ -6138,8 +7078,8 @@ L_08A9318C: L_08A93190: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_6 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93198: @@ -6152,8 +7092,8 @@ L_08A931A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A931B8: @@ -6182,8 +7122,8 @@ L_08A931B8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A931D0: @@ -6212,8 +7152,8 @@ L_08A931D0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A931E8: @@ -6229,8 +7169,21 @@ L_08A931E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08A93218u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 466u, 0x08A93218u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93218u) goto L_08A93218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93218: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(7))); aot_gpr_5 = (0u | 1u); @@ -6249,8 +7202,8 @@ L_08A93218: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9325C: @@ -6374,8 +7327,8 @@ L_08A93358: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93364: @@ -6428,8 +7381,8 @@ L_08A933B4: goto L_08A933B8; L_08A933B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A933C0: @@ -6494,8 +7447,21 @@ L_08A93420: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A9342Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 494u, 0x08A9342Cu, 0x08A9402Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 6u, 0x08A9402Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9342Cu) goto L_08A9342C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9342C: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-24464)); @@ -6509,8 +7475,21 @@ L_08A9343C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A9344Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(9424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 496u, 0x08A9344Cu, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9344Cu) goto L_08A9344C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9344C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(16))); goto L_08A93450; @@ -6538,8 +7517,8 @@ L_08A93470: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93488: @@ -6691,8 +7670,8 @@ L_08A935D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A935E4: @@ -6774,8 +7753,8 @@ L_08A9365C: L_08A93674: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), ctx.gpr[9]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9367C: @@ -6929,8 +7908,21 @@ L_08A937A0: L_08A937AC: aot_gpr_31 = (0x08A937B4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 541u, 0x08A937B4u, 0x088B962Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 295u, 0x088B962Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A937B4u) goto L_08A937B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A937B4: aot_gpr_4 = (ctx.gpr[2] + static_cast(1)); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -6977,8 +7969,8 @@ L_08A93804: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9382C: @@ -6992,8 +7984,21 @@ L_08A9382C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A93854u); aot_gpr_5 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 547u, 0x08A93854u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93854u) goto L_08A93854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93854: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), ctx.gpr[2]); @@ -7025,8 +8030,8 @@ L_08A9388C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9389C: @@ -7048,8 +8053,21 @@ L_08A938B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08A938CCu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-5120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 552u, 0x08A938CCu, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A938CCu) goto L_08A938CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A938CC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7086,8 +8104,21 @@ L_08A938F4: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A93918u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 556u, 0x08A93918u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93918u) goto L_08A93918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93918: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (0u | 0u); @@ -7135,8 +8166,8 @@ L_08A93970: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93998: @@ -7252,8 +8283,21 @@ L_08A93A98: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A93AB0u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 571u, 0x08A93AB0u, 0x08A94190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 28u, 0x08A94190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93AB0u) goto L_08A93AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93AB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(0))); aot_gpr_5 = (ctx.gpr[30] + static_cast(4)); @@ -7280,8 +8324,21 @@ L_08A93AE0: ctx.gpr[7] = (ctx.gpr[18] << 3u); aot_gpr_31 = (0x08A93AF4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 574u, 0x08A93AF4u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93AF4u) goto L_08A93AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93AF4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(12), ctx.gpr[2]); goto L_08A93AF8; @@ -7314,8 +8371,21 @@ L_08A93B20: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08A93B34u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 579u, 0x08A93B34u, 0x08A940D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 17u, 0x08A940D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93B34u) goto L_08A93B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93B34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); aot_gpr_5 = (ctx.gpr[22] + static_cast(4)); @@ -7349,8 +8419,21 @@ L_08A93B64: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08A93B80u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 583u, 0x08A93B80u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93B80u) goto L_08A93B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93B80: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -7367,8 +8450,8 @@ L_08A93B80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93BB0: @@ -7388,8 +8471,21 @@ L_08A93BDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08A93BE8u); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 586u, 0x08A93BE8u, 0x088B962Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 295u, 0x088B962Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93BE8u) goto L_08A93BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93BE8: ctx.gpr[7] = (ctx.gpr[2] + static_cast(1)); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -7407,8 +8503,8 @@ L_08A93BFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93C14: @@ -7425,16 +8521,42 @@ L_08A93C14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A93C48u); ctx.gpr[7] = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 589u, 0x08A93C48u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93C48u) goto L_08A93C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93C48: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08A93C5Cu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 590u, 0x08A93C5Cu, 0x08A16D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 539u, 0x08A16D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93C5Cu) goto L_08A93C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93C5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_5 = (0u | 255u); @@ -7468,8 +8590,8 @@ L_08A93CA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93CC0: @@ -7493,8 +8615,21 @@ L_08A93CD4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(16))); aot_gpr_31 = (0x08A93CFCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 595u, 0x08A93CFCu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93CFCu) goto L_08A93CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93CFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -7508,22 +8643,48 @@ L_08A93D04: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08A93D24u); aot_gpr_6 = (aot_gpr_6 << 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 597u, 0x08A93D24u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93D24u) goto L_08A93D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93D24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08A93D38u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 598u, 0x08A93D38u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93D38u) goto L_08A93D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93D38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93D44: @@ -7673,8 +8834,21 @@ L_08A93E74: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A93E80u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 617u, 0x08A93E80u, 0x08A9402Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 6u, 0x08A9402Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93E80u) goto L_08A93E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93E80: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), 0u); goto L_08A93E84; @@ -7689,8 +8863,8 @@ L_08A93E84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93EA0: @@ -7727,8 +8901,21 @@ L_08A93ED8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08A93EE4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0163->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0163_entry, 624u, 0x08A93EE4u, 0x088B96E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 305u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 305u, 0x088B96E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A93EE4u) goto L_08A93EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A93EE4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7769,8 +8956,8 @@ L_08A93F08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93F1C: @@ -7863,8 +9050,8 @@ L_08A93FB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A93FC4: diff --git a/profiles/vcs/generated/generated_unit_0164.cpp b/profiles/vcs/generated/generated_unit_0164.cpp index 4f14624..3e5713a 100644 --- a/profiles/vcs/generated/generated_unit_0164.cpp +++ b/profiles/vcs/generated/generated_unit_0164.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0164[64] = { 301u, 313u, 329u, 337u, 339u, 352u, 357u, 365u, 370u, 379u, 392u, 404u, 422u, 431u, 439u, 446u, 453u, 459u, 471u, 479u, 486u, 489u, 492u, 500u, 510u, 522u, 528u, 540u, 551u, 562u, 576u, 588u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0164[4088] = { + 1u, 0u, 0u, 2u, 0u, 0u, 3u, 0u, 4u, 5u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 0u, 8u, 0u, 9u, 0u, 0u, 10u, 0u, 0u, 0u, 11u, + 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 14u, 0u, 15u, 0u, 0u, 0u, 16u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 18u, 0u, 0u, 19u, 0u, 0u, 20u, 0u, 0u, 0u, 21u, 0u, 22u, 0u, 23u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 27u, 0u, + 0u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 30u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 33u, + 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 45u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, + 48u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 50u, 0u, 51u, 0u, 52u, 0u, 53u, 0u, 0u, 54u, 55u, 0u, 56u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 57u, 0u, 0u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 60u, 0u, 0u, 0u, 0u, 61u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 0u, 0u, 0u, 64u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 66u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 67u, 0u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 72u, 0u, 0u, + 0u, 73u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 74u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 77u, 0u, 0u, 0u, 0u, 78u, 0u, 0u, + 0u, 79u, 0u, 80u, 0u, 81u, 0u, 0u, 82u, 83u, 0u, 84u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 0u, 86u, 0u, + 0u, 0u, 0u, 0u, 87u, 0u, 88u, 0u, 0u, 0u, 0u, 89u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 0u, + 0u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, 93u, 0u, 94u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, + 0u, 96u, 0u, 0u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 98u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 99u, 0u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 0u, 0u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 102u, 0u, 0u, 0u, 103u, 104u, 0u, 105u, 0u, 106u, 0u, 0u, 0u, + 0u, 107u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 108u, 0u, 0u, 0u, 0u, 0u, 109u, 0u, 0u, 0u, 110u, 0u, 0u, 111u, 0u, 0u, 112u, 0u, + 113u, 0u, 0u, 114u, 0u, 115u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 116u, 0u, 0u, 0u, 117u, 0u, 118u, 0u, 0u, 0u, 119u, 0u, 0u, 120u, 121u, 0u, 0u, 0u, + 0u, 0u, 0u, 122u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 123u, 0u, 124u, 0u, 125u, 0u, 0u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 130u, 0u, 131u, 0u, 132u, 0u, 0u, 0u, 0u, 133u, 0u, 134u, 0u, 0u, 0u, + 0u, 135u, 136u, 0u, 0u, 0u, 137u, 0u, 0u, 138u, 0u, 0u, 0u, 0u, 139u, 0u, 140u, 0u, 0u, 0u, 141u, 142u, 0u, 0u, 0u, 143u, 0u, 0u, 0u, 0u, 0u, 0u, + 144u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 147u, 0u, 0u, 148u, 0u, 0u, 0u, 149u, 0u, 0u, + 150u, 0u, 151u, 0u, 0u, 152u, 0u, 153u, 0u, 0u, 0u, 0u, 154u, 0u, 0u, 0u, 155u, 0u, 0u, 0u, 0u, 0u, 0u, 156u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 157u, + 0u, 158u, 159u, 0u, 0u, 0u, 160u, 0u, 161u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 163u, 0u, 0u, 164u, 0u, 0u, 165u, 0u, 0u, 166u, 0u, + 0u, 167u, 0u, 0u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 169u, 0u, 170u, 171u, 0u, 0u, 172u, 0u, 0u, 173u, 0u, 174u, 0u, 175u, 0u, 0u, 0u, 0u, 176u, 0u, 177u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 181u, 0u, 0u, 182u, 0u, 183u, 0u, 184u, 0u, + 185u, 0u, 186u, 0u, 187u, 0u, 188u, 189u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 191u, 0u, 0u, 0u, 192u, 0u, 193u, 0u, 0u, 0u, 194u, 0u, + 195u, 0u, 0u, 0u, 0u, 0u, 196u, 197u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 201u, 0u, + 202u, 0u, 0u, 0u, 203u, 0u, 204u, 0u, 0u, 0u, 0u, 0u, 205u, 206u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, + 0u, 0u, 0u, 210u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, + 0u, 219u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, + 0u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 225u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 0u, 0u, 0u, 0u, + 228u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 229u, 0u, 0u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, + 0u, 233u, 0u, 0u, 234u, 0u, 235u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 239u, 0u, 0u, 240u, 0u, 241u, + 0u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 243u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 247u, 0u, + 0u, 248u, 0u, 249u, 0u, 250u, 0u, 0u, 0u, 0u, 0u, 0u, 251u, 0u, 252u, 0u, 0u, 0u, 253u, 0u, 0u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 255u, + 256u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 259u, 260u, 0u, 0u, 0u, 0u, 0u, 0u, 261u, 0u, 0u, 0u, 262u, 0u, 0u, + 263u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 266u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 268u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 273u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 274u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 0u, 278u, 0u, 0u, 279u, 0u, 0u, 280u, 0u, 0u, 0u, 281u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 282u, 0u, 0u, 283u, 0u, 0u, 284u, 0u, 0u, 285u, 0u, 0u, 286u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 287u, 0u, 0u, 0u, 288u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 296u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 297u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 298u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 306u, 0u, 307u, 0u, 0u, 308u, 0u, 0u, 0u, 309u, 0u, 0u, 0u, 310u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 312u, 0u, + 0u, 0u, 313u, 0u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, 315u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 317u, 0u, 0u, 0u, 318u, 0u, 0u, 0u, 319u, 0u, 0u, 0u, 320u, + 0u, 0u, 0u, 321u, 0u, 0u, 0u, 322u, 0u, 323u, 324u, 0u, 0u, 0u, 0u, 0u, 325u, 326u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 329u, 0u, 330u, 0u, 0u, 331u, 0u, 0u, 0u, 332u, 0u, 333u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 334u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 337u, 0u, 338u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 340u, 0u, + 0u, 341u, 0u, 342u, 343u, 0u, 0u, 344u, 0u, 345u, 0u, 346u, 0u, 347u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 349u, 0u, 350u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 354u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 355u, 0u, 0u, 356u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 358u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 359u, 0u, 360u, 0u, 361u, 0u, 0u, 0u, 362u, 0u, 363u, 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 365u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, 368u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 371u, 0u, 372u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 0u, 0u, 374u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 378u, 0u, 0u, 0u, + 379u, 0u, 0u, 0u, 380u, 0u, 381u, 0u, 0u, 0u, 0u, 382u, 0u, 0u, 383u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 385u, 0u, 386u, 387u, 0u, 0u, 0u, 0u, 0u, 388u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 389u, 0u, 0u, 390u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 393u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 394u, 0u, 395u, 0u, 0u, 396u, 0u, 0u, 397u, 0u, 0u, 398u, 0u, 399u, 0u, 400u, 0u, 401u, 0u, 0u, 402u, 0u, 0u, 403u, + 0u, 0u, 404u, 0u, 405u, 0u, 0u, 406u, 0u, 0u, 407u, 0u, 0u, 408u, 0u, 409u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 412u, 0u, + 0u, 0u, 0u, 413u, 0u, 0u, 414u, 0u, 0u, 415u, 0u, 0u, 416u, 0u, 417u, 0u, 0u, 0u, 418u, 0u, 0u, 419u, 0u, 0u, 420u, 0u, 0u, 0u, 421u, 0u, 0u, 0u, + 422u, 0u, 0u, 0u, 423u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 424u, 425u, 0u, 0u, 426u, 0u, 0u, 427u, 0u, 428u, + 0u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 430u, 0u, + 0u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, + 0u, 0u, 0u, 0u, 436u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, + 0u, 439u, 0u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 441u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 443u, 0u, 444u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 446u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, + 448u, 0u, 0u, 0u, 0u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 453u, 0u, 0u, 0u, 0u, 454u, 0u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, 456u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 458u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 459u, 0u, 460u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 0u, + 0u, 463u, 0u, 0u, 464u, 0u, 0u, 465u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 468u, 0u, 0u, 0u, 0u, 469u, 0u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, + 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 476u, 0u, 477u, 0u, 478u, 0u, + 0u, 0u, 479u, 0u, 0u, 0u, 480u, 0u, 0u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 482u, 0u, 483u, 484u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 488u, + 0u, 0u, 0u, 0u, 489u, 0u, 490u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 0u, + 0u, 492u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 494u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 495u, 0u, 496u, 0u, 497u, 0u, 0u, 0u, 0u, 0u, 498u, 0u, 0u, 499u, 0u, 0u, 0u, + 0u, 500u, 501u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 504u, 505u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 509u, 0u, + 0u, 0u, 0u, 510u, 0u, 0u, 0u, 0u, 511u, 0u, 0u, 0u, 0u, 512u, 513u, 0u, 0u, 0u, 0u, 0u, 514u, 0u, 515u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 516u, 0u, 517u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, 519u, 0u, 0u, 0u, 0u, 520u, 0u, 0u, 521u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, 0u, 523u, 0u, + 524u, 0u, 525u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 527u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 530u, + 531u, 0u, 0u, 532u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 0u, 0u, 0u, 534u, 0u, 0u, 535u, 0u, 536u, 0u, 537u, 0u, 0u, 0u, 0u, 0u, 538u, 539u, 0u, + 0u, 0u, 540u, 0u, 0u, 0u, 0u, 0u, 541u, 542u, 0u, 0u, 0u, 543u, 0u, 0u, 0u, 0u, 0u, 544u, 545u, 0u, 546u, 0u, 547u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 548u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 550u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 552u, 0u, 0u, 553u, 0u, 0u, 554u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 555u, 0u, 556u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 558u, 0u, 0u, 559u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 562u, 0u, 563u, 0u, 0u, 564u, 0u, 565u, 0u, 0u, 566u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 567u, 0u, 568u, 0u, 569u, 0u, 570u, 0u, 0u, 571u, 0u, 572u, + 0u, 573u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 576u, 0u, 577u, 0u, 578u, 0u, 579u, 0u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 582u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 0u, 584u, 0u, 0u, 0u, 585u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 588u, 0u, 0u, 589u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 590u, 0u, 591u, 0u, 592u, 0u, 593u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 595u, 0u, 0u, 0u, 0u, 596u, 0u, 597u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 598u, 0u, 0u, 0u, 0u, 599u, +}; void recomp_unit_0164_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,6,31,16 fprs=12,13,20,14 gpr_occ=3867 fpr_occ=882 gpr_total=5469 fpr_total=1381 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08A94000u; - entry_id = 0u; - if (entry_delta < 16352u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0164[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0164[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16352u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0164[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08A94000; @@ -677,6 +800,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A94000u; + if (local_delta_v813 >= 16352u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -719,8 +866,8 @@ L_08A94020: goto L_08A94024; L_08A94024: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9402C: @@ -766,8 +913,21 @@ L_08A9406C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A9407Cu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 11u, 0x08A9407Cu, 0x08A93FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 640u, 0x08A93FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9407Cu) goto L_08A9407C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9407C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -791,8 +951,21 @@ L_08A940A4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A940B0u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 14u, 0x08A940B0u, 0x08A93F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 629u, 0x08A93F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A940B0u) goto L_08A940B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A940B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -805,14 +978,27 @@ L_08A940B8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08A940C8u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 16u, 0x08A940C8u, 0x08A93EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 619u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 619u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 619u, 0x08A93EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A940C8u) goto L_08A940C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A940C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A940D4: @@ -850,8 +1036,21 @@ L_08A94118: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A94128u); aot_gpr_5 = (aot_gpr_5 + static_cast(9448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 21u, 0x08A94128u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94128u) goto L_08A94128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94128: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -888,15 +1087,41 @@ L_08A94158: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08A94168u); aot_gpr_5 = (aot_gpr_5 + static_cast(9468)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 26u, 0x08A94168u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94168u) goto L_08A94168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94168: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A94178u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 27u, 0x08A94178u, 0x08A93D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 599u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 599u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 599u, 0x08A93D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94178u) goto L_08A94178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94178: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -907,8 +1132,8 @@ L_08A94178: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94190: @@ -923,8 +1148,21 @@ L_08A94190: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08A941BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 29u, 0x08A941BCu, 0x08A93F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 629u, 0x08A93F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A941BCu) goto L_08A941BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A941BC: aot_gpr_4 = (ctx.gpr[28] + static_cast(-24464)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -950,8 +1188,21 @@ L_08A941D0: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08A941F4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 32u, 0x08A941F4u, 0x08A93D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 599u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 599u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 599u, 0x08A93D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A941F4u) goto L_08A941F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A941F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -969,8 +1220,8 @@ L_08A941FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94214: @@ -1081,8 +1332,8 @@ L_08A942C4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(9190), static_cast(0u)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94308: @@ -1113,8 +1364,8 @@ L_08A94308: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(10096), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94348: @@ -1145,8 +1396,8 @@ L_08A94348: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(10098), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94388: @@ -1190,8 +1441,8 @@ L_08A94388: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A943CC: @@ -1211,8 +1462,21 @@ L_08A943CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(164), aot_gpr_31); aot_gpr_31 = (0x08A94414u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 43u, 0x08A94414u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94414u) goto L_08A94414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94414: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(10100))); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -1281,8 +1545,21 @@ L_08A94480: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08A94494u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 49u, 0x08A94494u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94494u) goto L_08A94494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94494: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(9189))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -1556,8 +1833,21 @@ L_08A945D0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A94610u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 67u, 0x08A94610u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94610u) goto L_08A94610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94610: aot_gpr_4 = (ctx.gpr[2] << 3u); aot_gpr_4 = (ctx.gpr[2] + aot_gpr_4); @@ -1632,8 +1922,8 @@ L_08A94678: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A946AC: @@ -1653,8 +1943,21 @@ L_08A946AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(164), aot_gpr_31); aot_gpr_31 = (0x08A946F4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 72u, 0x08A946F4u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A946F4u) goto L_08A946F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A946F4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(10100))); ctx.gpr[22] = (ctx.gpr[2] | 0u); @@ -1723,8 +2026,21 @@ L_08A94760: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08A94774u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 78u, 0x08A94774u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94774u) goto L_08A94774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94774: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(9190))); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -1991,8 +2307,21 @@ L_08A948A8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08A948E8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 95u, 0x08A948E8u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A948E8u) goto L_08A948E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A948E8: aot_gpr_4 = (ctx.gpr[2] << 3u); aot_gpr_4 = (ctx.gpr[2] + aot_gpr_4); @@ -2067,8 +2396,8 @@ L_08A94950: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94984: @@ -2090,8 +2419,8 @@ L_08A94984: aot_gpr_4 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10100), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A949A0: @@ -2146,8 +2475,8 @@ L_08A949F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94A04: @@ -2172,8 +2501,21 @@ L_08A94A38: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08A94A50u); ctx.gpr[8] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 109u, 0x08A94A50u, 0x08B6804Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 7u, 0x08B6804Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94A50u) goto L_08A94A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94A50: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -2199,8 +2541,21 @@ L_08A94A6C: L_08A94A78: aot_gpr_31 = (0x08A94A80u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 113u, 0x08A94A80u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94A80u) goto L_08A94A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94A80: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2212,8 +2567,21 @@ L_08A94A80: L_08A94A8C: aot_gpr_31 = (0x08A94A94u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 115u, 0x08A94A94u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94A94u) goto L_08A94A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94A94: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), aot_gpr_16); aot_gpr_4 = (0u + static_cast(-1)); @@ -2274,8 +2642,8 @@ L_08A94AF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94B0C: @@ -2287,8 +2655,21 @@ L_08A94B0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A94B2Cu); ctx.gpr[17] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 123u, 0x08A94B2Cu, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94B2Cu) goto L_08A94B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94B2C: aot_gpr_31 = (0x08A94B34u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -2309,8 +2690,8 @@ L_08A94B3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94B54: @@ -2359,8 +2740,21 @@ L_08A94BB8: L_08A94BC4: aot_gpr_31 = (0x08A94BCCu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 131u, 0x08A94BCCu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94BCCu) goto L_08A94BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94BCC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(16), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -2371,13 +2765,39 @@ L_08A94BD4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_5); aot_gpr_31 = (0x08A94BE8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 133u, 0x08A94BE8u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94BE8u) goto L_08A94BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94BE8: aot_gpr_31 = (0x08A94BF0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 134u, 0x08A94BF0u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94BF0u) goto L_08A94BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94BF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (ctx.gpr[2] - aot_gpr_4); @@ -2396,8 +2816,21 @@ L_08A94C08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08A94C18u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 137u, 0x08A94C18u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94C18u) goto L_08A94C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94C18: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(12), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -2438,8 +2871,21 @@ L_08A94C54: aot_gpr_4 = (aot_gpr_16 + ctx.gpr[18]); aot_gpr_31 = (0x08A94C64u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 143u, 0x08A94C64u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94C64u) goto L_08A94C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94C64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[23]); @@ -2468,8 +2914,8 @@ L_08A94C80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94CB0: @@ -2522,8 +2968,21 @@ L_08A94CF4: } L_08A94D00: aot_gpr_31 = (0x08A94D08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 151u, 0x08A94D08u, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94D08u) goto L_08A94D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94D08: aot_gpr_4 = (ctx.gpr[2] - ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), aot_gpr_4); @@ -2531,8 +2990,21 @@ L_08A94D08: goto L_08A94D14; L_08A94D14: aot_gpr_31 = (0x08A94D1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 153u, 0x08A94D1Cu, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94D1Cu) goto L_08A94D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94D1C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -2563,8 +3035,8 @@ L_08A94D40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94D5C: @@ -2598,8 +3070,21 @@ L_08A94D88: AOT_REGCACHE_SYNC_OUT(); return; L_08A94D98: aot_gpr_31 = (0x08A94DA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 161u, 0x08A94DA0u, 0x08941910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 223u, 0x08941910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94DA0u) goto L_08A94DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94DA0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2609,8 +3094,8 @@ L_08A94DA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94DB4: @@ -2709,8 +3194,21 @@ L_08A94E50: L_08A94E58: aot_gpr_31 = (0x08A94E60u); aot_gpr_4 = (0u | 28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 175u, 0x08A94E60u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94E60u) goto L_08A94E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94E60: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), aot_gpr_4); @@ -2725,8 +3223,21 @@ L_08A94E60: L_08A94E74: aot_gpr_31 = (0x08A94E7Cu); aot_gpr_4 = (0u | 28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 177u, 0x08A94E7Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A94E7Cu) goto L_08A94E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A94E7C: aot_gpr_4 = (0u | 3u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), aot_gpr_4); @@ -2751,8 +3262,8 @@ L_08A94EA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94EB4: @@ -2834,8 +3345,8 @@ L_08A94F1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94F30: @@ -2913,8 +3424,8 @@ L_08A94FB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A94FC0: @@ -2983,8 +3494,21 @@ L_08A95034: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_gpr_31 = (0x08A95048u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 207u, 0x08A95048u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95048u) goto L_08A95048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95048: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -3005,8 +3529,8 @@ L_08A9505C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95070: @@ -3023,8 +3547,8 @@ L_08A9508C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95098: @@ -3038,8 +3562,21 @@ L_08A95098: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A950C0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 212u, 0x08A950C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A950C0u) goto L_08A950C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A950C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3047,8 +3584,21 @@ L_08A950C0: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08A950D8u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 213u, 0x08A950D8u, 0x08A87590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 515u, 0x08A87590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A950D8u) goto L_08A950D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A950D8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3059,8 +3609,8 @@ L_08A950D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A950F0: @@ -3074,16 +3624,42 @@ L_08A950F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A95118u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 215u, 0x08A95118u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95118u) goto L_08A95118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95118: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x08A9512Cu); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 216u, 0x08A9512Cu, 0x08A87568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 514u, 0x08A87568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9512Cu) goto L_08A9512C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9512C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3094,8 +3670,8 @@ L_08A9512C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95144: @@ -3109,8 +3685,21 @@ L_08A95144: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A9516Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 218u, 0x08A9516Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9516Cu) goto L_08A9516C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9516C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3118,8 +3707,21 @@ L_08A9516C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08A95184u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 219u, 0x08A95184u, 0x08A875BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 516u, 0x08A875BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95184u) goto L_08A95184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95184: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3130,8 +3732,8 @@ L_08A95184: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9519C: @@ -3145,8 +3747,21 @@ L_08A9519C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A951C4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 221u, 0x08A951C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A951C4u) goto L_08A951C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A951C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -3154,8 +3769,21 @@ L_08A951C4: aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); aot_gpr_31 = (0x08A951DCu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 222u, 0x08A951DCu, 0x08A875E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 517u, 0x08A875E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A951DCu) goto L_08A951DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A951DC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3166,8 +3794,8 @@ L_08A951DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A951F4: @@ -3178,15 +3806,28 @@ L_08A951F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08A95210u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 224u, 0x08A95210u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95210u) goto L_08A95210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95210: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95220: @@ -3200,8 +3841,21 @@ L_08A95220: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A95248u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 226u, 0x08A95248u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95248u) goto L_08A95248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95248: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3211,8 +3865,21 @@ L_08A95248: aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_31 = (0x08A95268u); aot_gpr_6 = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 227u, 0x08A95268u, 0x08A87708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 530u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 530u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 530u, 0x08A87708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95268u) goto L_08A95268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95268: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3223,8 +3890,8 @@ L_08A95268: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95280: @@ -3238,16 +3905,42 @@ L_08A95280: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A952A8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 229u, 0x08A952A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A952A8u) goto L_08A952A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A952A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x08A952BCu); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 230u, 0x08A952BCu, 0x08A87624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 519u, 0x08A87624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A952BCu) goto L_08A952BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A952BC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3258,8 +3951,8 @@ L_08A952BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A952D4: @@ -3316,8 +4009,8 @@ L_08A95338: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95348: @@ -3369,8 +4062,8 @@ L_08A953A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A953B0: @@ -3379,8 +4072,8 @@ L_08A953B0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A953C8: @@ -3455,8 +4148,21 @@ L_08A95448: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08A95458u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 254u, 0x08A95458u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95458u) goto L_08A95458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95458: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -3487,8 +4193,8 @@ L_08A95480: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A954A0: @@ -3522,8 +4228,21 @@ L_08A954C8: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08A954E4u); ctx.gpr[7] = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 261u, 0x08A954E4u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A954E4u) goto L_08A954E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A954E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -3534,8 +4253,8 @@ L_08A954F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95500: @@ -3556,8 +4275,8 @@ L_08A95500: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10168), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10172), std::bit_cast(aot_fpr_14)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95544: @@ -3644,8 +4363,8 @@ L_08A9559C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10148), aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95618: @@ -3692,8 +4411,21 @@ L_08A95638: aot_gpr_5 = (aot_gpr_5 << 2u); aot_gpr_31 = (0x08A95698u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 269u, 0x08A95698u, 0x08A0735Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 771u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 771u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 771u, 0x08A0735Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95698u) goto L_08A95698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95698: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), ctx.gpr[2]); @@ -3717,14 +4449,27 @@ L_08A95698: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(10148))); aot_gpr_31 = (0x08A956C4u); aot_gpr_6 = (aot_gpr_6 - aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 270u, 0x08A956C4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A956C4u) goto L_08A956C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A956C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A956D0: @@ -3806,8 +4551,8 @@ L_08A957C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A957D4: @@ -3963,8 +4708,8 @@ L_08A959E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A959F8: @@ -4033,8 +4778,8 @@ L_08A95AC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95ACC: @@ -4189,8 +4934,8 @@ L_08A95ACC: ctx.write_vfpu_matrix_ct<20u, 4u>(vfpu_d); ctx.eat_vfpu_prefixes(); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95BB0: @@ -4202,8 +4947,8 @@ L_08A95BC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95BCC: @@ -4238,8 +4983,21 @@ L_08A95BCC: L_08A95C44: aot_gpr_31 = (0x08A95C4Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 291u, 0x08A95C4Cu, 0x08A073D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 776u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 776u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 776u, 0x08A073D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95C4Cu) goto L_08A95C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95C4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[23]); ctx.gpr[23] = (aot_gpr_16 | 0u); @@ -4250,8 +5008,21 @@ L_08A95C4C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(8)); aot_gpr_31 = (0x08A95C70u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 292u, 0x08A95C70u, 0x08A09CF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 260u, 0x08A09CF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A95C70u) goto L_08A95C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A95C70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (2816u << 16u); @@ -4513,8 +5284,8 @@ L_08A95FC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A95FFC: @@ -4528,8 +5299,8 @@ L_08A95FFC: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96020: @@ -4543,8 +5314,8 @@ L_08A96020: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96044: @@ -4554,8 +5325,21 @@ L_08A96044: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08A9605Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 303u, 0x08A9605Cu, 0x08A073A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 773u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 773u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 773u, 0x08A073A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9605Cu) goto L_08A9605C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9605C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(4), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), 0u); @@ -4563,8 +5347,8 @@ L_08A9605C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96074: @@ -4577,128 +5361,375 @@ L_08A96074: aot_gpr_16 = (aot_gpr_16 + static_cast(-3664)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08A9609Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 305u, 0x08A9609Cu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9609Cu) goto L_08A9609C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9609C: aot_gpr_31 = (0x08A960A4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4996)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 306u, 0x08A960A4u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A960A4u) goto L_08A960A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A960A4: aot_gpr_31 = (0x08A960ACu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 307u, 0x08A960ACu, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A960ACu) goto L_08A960AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A960AC: aot_gpr_4 = (ctx.gpr[28] + static_cast(-4984)); aot_gpr_31 = (0x08A960B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 308u, 0x08A960B8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A960B8u) goto L_08A960B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A960B8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5068), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4972)); aot_gpr_31 = (0x08A960C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 309u, 0x08A960C8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A960C8u) goto L_08A960C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A960C8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5064), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4960)); aot_gpr_31 = (0x08A960D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 310u, 0x08A960D8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A960D8u) goto L_08A960D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A960D8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5060), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4948)); aot_gpr_31 = (0x08A960E8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 311u, 0x08A960E8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A960E8u) goto L_08A960E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A960E8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5056), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4936)); aot_gpr_31 = (0x08A960F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 312u, 0x08A960F8u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A960F8u) goto L_08A960F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A960F8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5052), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4920)); aot_gpr_31 = (0x08A96108u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 313u, 0x08A96108u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A96108u) goto L_08A96108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A96108: aot_gpr_4 = (2232u << 16u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5048), ctx.gpr[2]); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08A9611Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(9488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 314u, 0x08A9611Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9611Cu) goto L_08A9611C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9611C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5044), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4908)); aot_gpr_31 = (0x08A9612Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 315u, 0x08A9612Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9612Cu) goto L_08A9612C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9612C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5040), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4896)); aot_gpr_31 = (0x08A9613Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 316u, 0x08A9613Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9613Cu) goto L_08A9613C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9613C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5036), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4884)); aot_gpr_31 = (0x08A9614Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 317u, 0x08A9614Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9614Cu) goto L_08A9614C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9614C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5032), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4872)); aot_gpr_31 = (0x08A9615Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 318u, 0x08A9615Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9615Cu) goto L_08A9615C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9615C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5028), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4856)); aot_gpr_31 = (0x08A9616Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 319u, 0x08A9616Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9616Cu) goto L_08A9616C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9616C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5024), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4844)); aot_gpr_31 = (0x08A9617Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 320u, 0x08A9617Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9617Cu) goto L_08A9617C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9617C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5016), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4832)); aot_gpr_31 = (0x08A9618Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 321u, 0x08A9618Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9618Cu) goto L_08A9618C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9618C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5012), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[28] + static_cast(-4816)); aot_gpr_31 = (0x08A9619Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 322u, 0x08A9619Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9619Cu) goto L_08A9619C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9619C: aot_gpr_31 = (0x08A961A4u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-5008), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 323u, 0x08A961A4u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A961A4u) goto L_08A961A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A961A4: aot_gpr_4 = (0u | 0u); goto L_08A961A8; @@ -4737,8 +5768,8 @@ L_08A961D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A961EC: @@ -4815,8 +5846,8 @@ L_08A96244: goto L_08A96284; L_08A96284: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9628C: @@ -4890,8 +5921,8 @@ L_08A962C8: goto L_08A9635C; L_08A9635C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96364: @@ -4995,8 +6026,21 @@ L_08A96490: } L_08A9649C: aot_gpr_31 = (0x08A964A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 345u, 0x08A964A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A964A4u) goto L_08A964A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A964A4: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; if (branch_taken) { @@ -5111,8 +6155,21 @@ L_08A965B0: aot_gpr_4 = (16576u << 16u); aot_gpr_31 = (0x08A965BCu); aot_fpr_20 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 356u, 0x08A965BCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A965BCu) goto L_08A965BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A965BC: aot_gpr_4 = (aot_gpr_16 ^ ctx.gpr[2]); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[30])); @@ -5158,8 +6215,8 @@ L_08A96610: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96658: @@ -5187,8 +6244,21 @@ L_08A96658: L_08A966A8: aot_gpr_31 = (0x08A966B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 360u, 0x08A966B0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A966B0u) goto L_08A966B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A966B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5246,8 +6316,8 @@ L_08A96700: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96728: @@ -5478,8 +6548,21 @@ L_08A96900: L_08A96910: aot_gpr_31 = (0x08A96918u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 381u, 0x08A96918u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A96918u) goto L_08A96918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A96918: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(704))); @@ -5515,8 +6598,21 @@ L_08A96948: L_08A96958: aot_gpr_31 = (0x08A96960u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 386u, 0x08A96960u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A96960u) goto L_08A96960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A96960: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), ctx.gpr[21]); goto L_08A96964; @@ -5527,8 +6623,21 @@ L_08A96964: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x08A9697Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 388u, 0x08A9697Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9697Cu) goto L_08A9697C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9697C: aot_gpr_4 = (aot_gpr_29 + static_cast(80)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5583,8 +6692,21 @@ L_08A969C8: L_08A969D4: aot_gpr_31 = (0x08A969DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 391u, 0x08A969DCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A969DCu) goto L_08A969DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A969DC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5064))); aot_gpr_4 = (16512u << 16u); @@ -5625,8 +6747,8 @@ L_08A96A28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96A64: @@ -5751,8 +6873,8 @@ L_08A96B3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96B48: @@ -5907,8 +7029,8 @@ L_08A96C7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96C98: @@ -6099,8 +7221,21 @@ L_08A96E88: ctx.fpr[19] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_31 = (0x08A96EB8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 443u, 0x08A96EB8u, 0x08A98B40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 112u, 0x08A98B40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A96EB8u) goto L_08A96EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A96EB8: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -6131,8 +7266,8 @@ L_08A96ED4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A96F08: @@ -6314,8 +7449,21 @@ L_08A970E8: ctx.fpr[19] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_31 = (0x08A97118u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 459u, 0x08A97118u, 0x08A98B40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 112u, 0x08A98B40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A97118u) goto L_08A97118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A97118: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -6346,8 +7494,8 @@ L_08A97134: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A97168: @@ -6417,8 +7565,8 @@ L_08A971DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A971F0: @@ -6623,8 +7771,8 @@ L_08A973EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A97418: @@ -6682,8 +7830,8 @@ L_08A97418: { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(0), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A974F0: @@ -6704,8 +7852,8 @@ L_08A974FC: } L_08A97510: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A97518: @@ -7103,8 +8251,21 @@ L_08A978E0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(100), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08A9796Cu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0164->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0164_entry, 522u, 0x08A9796Cu, 0x08A9882Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 85u, 0x08A9882Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9796Cu) goto L_08A9796C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9796C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7154,8 +8315,8 @@ L_08A9798C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A979D4: @@ -7471,8 +8632,8 @@ L_08A97C88: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(9528))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A97CA0: diff --git a/profiles/vcs/generated/generated_unit_0165.cpp b/profiles/vcs/generated/generated_unit_0165.cpp index bca3091..2e3d4eb 100644 --- a/profiles/vcs/generated/generated_unit_0165.cpp +++ b/profiles/vcs/generated/generated_unit_0165.cpp @@ -586,6 +586,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A98004u; + if (local_delta_v813 >= 16244u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -647,16 +671,42 @@ L_08A98058: L_08A9805C: ctx.gpr[31] = (0x08A98064u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 8u, 0x08A98064u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98064u) goto L_08A98064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98064: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A98068; L_08A98068: ctx.gpr[31] = (0x08A98070u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 10u, 0x08A98070u, 0x08A95FFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 300u, 0x08A95FFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98070u) goto L_08A98070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98070: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -689,15 +739,41 @@ L_08A980A4: } L_08A980AC: ctx.gpr[31] = (0x08A980B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 14u, 0x08A980B4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A980B4u) goto L_08A980B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A980B4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08A980B8; L_08A980B8: ctx.gpr[31] = (0x08A980C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 16u, 0x08A980C0u, 0x08A96020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 301u, 0x08A96020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A980C0u) goto L_08A980C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A980C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(ctx.fpr[26])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(ctx.fpr[0])); @@ -845,8 +921,21 @@ L_08A981D4: } L_08A981E0: ctx.gpr[31] = (0x08A981E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 29u, 0x08A981E8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A981E8u) goto L_08A981E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A981E8: aot_gpr_4 = (aot_gpr_16 ^ ctx.gpr[2]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -893,8 +982,21 @@ L_08A9820C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); ctx.gpr[31] = (0x08A98280u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 32u, 0x08A98280u, 0x08A9628Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 335u, 0x08A9628Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98280u) goto L_08A98280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98280: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -933,8 +1035,21 @@ L_08A98288: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); ctx.gpr[31] = (0x08A98300u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 34u, 0x08A98300u, 0x08A9628Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 335u, 0x08A9628Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98300u) goto L_08A98300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98300: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -952,8 +1067,8 @@ L_08A98300: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A98334: @@ -961,13 +1076,39 @@ L_08A98334: { const std::uint32_t aot_run_words[16]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[30]), aot_gpr_16, ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], ctx.gpr[31]}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(64), aot_run_words); } ctx.gpr[31] = (0x08A98380u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 36u, 0x08A98380u, 0x08A957D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 275u, 0x08A957D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98380u) goto L_08A98380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98380: ctx.gpr[31] = (0x08A98388u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7744)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 37u, 0x08A98388u, 0x08A95ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 286u, 0x08A95ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98388u) goto L_08A98388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98388: aot_gpr_5 = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(10176))); @@ -1028,8 +1169,21 @@ L_08A983F0: L_08A98404: ctx.gpr[31] = (0x08A9840Cu); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(50))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 44u, 0x08A9840Cu, 0x08A96A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 393u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 393u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 393u, 0x08A96A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9840Cu) goto L_08A9840C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9840C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -1221,8 +1375,21 @@ L_08A985BC: } L_08A985C4: ctx.gpr[31] = (0x08A985CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 64u, 0x08A985CCu, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A985CCu) goto L_08A985CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A985CC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -1230,8 +1397,21 @@ L_08A985CC: L_08A985D4: ctx.gpr[31] = (0x08A985DCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 66u, 0x08A985DCu, 0x08A95500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 263u, 0x08A95500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A985DCu) goto L_08A985DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A985DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); ctx.gpr[23] = (ctx.gpr[22] | 0u); @@ -1300,8 +1480,21 @@ L_08A9865C: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A9868Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 72u, 0x08A9868Cu, 0x08A96F08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 446u, 0x08A96F08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9868Cu) goto L_08A9868C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9868C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(16), aot_run_words); @@ -1319,8 +1512,21 @@ L_08A9868C: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A986C0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 73u, 0x08A986C0u, 0x08A96F08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 446u, 0x08A96F08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A986C0u) goto L_08A986C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A986C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1341,8 +1547,21 @@ L_08A986C8: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A986F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 75u, 0x08A986F8u, 0x08A96C98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 429u, 0x08A96C98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A986F8u) goto L_08A986F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A986F8: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_16 + static_cast(16), aot_run_words); @@ -1360,8 +1579,21 @@ L_08A986F8: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A9872Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 76u, 0x08A9872Cu, 0x08A96C98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 429u, 0x08A96C98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9872Cu) goto L_08A9872C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9872C: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[21]) < static_cast(ctx.gpr[19]) ? 1u : 0u); @@ -1403,8 +1635,21 @@ L_08A98750: aot_gpr_5 = (aot_gpr_5 & 255u); ctx.gpr[31] = (0x08A9879Cu); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast(40))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 79u, 0x08A9879Cu, 0x08A956D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 271u, 0x08A956D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9879Cu) goto L_08A9879C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9879C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(10176))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); @@ -1438,8 +1683,21 @@ L_08A987BC: } L_08A987D8: ctx.gpr[31] = (0x08A987E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 84u, 0x08A987E0u, 0x08A959F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 281u, 0x08A959F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A987E0u) goto L_08A987E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A987E0: aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(10176), static_cast(0u)); { std::uint32_t aot_run_words[16]{}; @@ -1463,8 +1721,8 @@ L_08A987E0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9882C: @@ -1648,8 +1906,21 @@ L_08A98A00: } L_08A98A10: ctx.gpr[31] = (0x08A98A18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 100u, 0x08A98A18u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98A18u) goto L_08A98A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98A18: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -1657,8 +1928,21 @@ L_08A98A18: L_08A98A20: ctx.gpr[31] = (0x08A98A28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 102u, 0x08A98A28u, 0x08A95500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 263u, 0x08A95500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98A28u) goto L_08A98A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98A28: ctx.gpr[21] = (ctx.gpr[23] | 0u); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(ctx.gpr[21]) ? 1u : 0u); @@ -1709,8 +1993,21 @@ L_08A98A60: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A98AA0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 107u, 0x08A98AA0u, 0x08A96C98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 429u, 0x08A96C98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98AA0u) goto L_08A98AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98AA0: aot_gpr_4 = (ctx.gpr[23] + static_cast(4)); { std::uint32_t aot_run_words[5]{}; @@ -1728,8 +2025,21 @@ L_08A98AA0: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A98AD4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 108u, 0x08A98AD4u, 0x08A96C98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 429u, 0x08A96C98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98AD4u) goto L_08A98AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98AD4: ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); ctx.gpr[30] = (ctx.gpr[30] + static_cast(56)); @@ -1754,8 +2064,21 @@ L_08A98AE8: L_08A98AF8: ctx.gpr[31] = (0x08A98B00u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 111u, 0x08A98B00u, 0x08A95618u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 266u, 0x08A95618u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98B00u) goto L_08A98B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98B00: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); @@ -1776,8 +2099,8 @@ L_08A98B00: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A98B40: @@ -2072,8 +2395,21 @@ L_08A98E8C: aot_gpr_7 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08A98EB8u); ctx.gpr[8] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 134u, 0x08A98EB8u, 0x08A9061Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 44u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 44u, 0x08A9061Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A98EB8u) goto L_08A98EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A98EB8: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3792,8 +4128,21 @@ L_08A9A000: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); ctx.gpr[31] = (0x08A9A00Cu); aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 247u, 0x08A9A00Cu, 0x08A95544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 264u, 0x08A95544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A00Cu) goto L_08A9A00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A00C: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -3827,8 +4176,21 @@ L_08A9A064: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A9A074u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 250u, 0x08A9A074u, 0x08A95544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 264u, 0x08A95544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A074u) goto L_08A9A074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A074: aot_gpr_16 = (0u | 2u); aot_gpr_4 = (static_cast(aot_gpr_16) < static_cast(ctx.gpr[20]) ? 1u : 0u); @@ -3845,8 +4207,21 @@ L_08A9A08C: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A9A098u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 252u, 0x08A9A098u, 0x08A95544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 264u, 0x08A95544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A098u) goto L_08A9A098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A098: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(10148))); aot_gpr_5 = (aot_gpr_4 + static_cast(20)); @@ -3879,8 +4254,21 @@ L_08A9A0F4: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A9A100u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 254u, 0x08A9A100u, 0x08A95544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 264u, 0x08A95544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A100u) goto L_08A9A100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A100: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(204))); goto L_08A9A104; @@ -3938,8 +4326,8 @@ L_08A9A14C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9A194: @@ -3956,8 +4344,21 @@ L_08A9A194: } L_08A9A1E8: ctx.gpr[31] = (0x08A9A1F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 261u, 0x08A9A1F0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A1F0u) goto L_08A9A1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A1F0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4123,8 +4524,21 @@ L_08A9A324: L_08A9A338: ctx.gpr[31] = (0x08A9A340u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 280u, 0x08A9A340u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A340u) goto L_08A9A340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A340: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4238,8 +4652,21 @@ L_08A9A40C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[31] = (0x08A9A42Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 285u, 0x08A9A42Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A42Cu) goto L_08A9A42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A42C: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4343,8 +4770,21 @@ L_08A9A524: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); ctx.gpr[31] = (0x08A9A584u); ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 287u, 0x08A9A584u, 0x08A9628Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 335u, 0x08A9628Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A584u) goto L_08A9A584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A584: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4379,8 +4819,21 @@ L_08A9A58C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); ctx.gpr[31] = (0x08A9A5F4u); ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 289u, 0x08A9A5F4u, 0x08A9628Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 335u, 0x08A9628Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A5F4u) goto L_08A9A5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A5F4: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7908))); @@ -4414,8 +4867,8 @@ L_08A9A608: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9A650: @@ -4456,14 +4909,27 @@ L_08A9A67C: ctx.gpr[11] = (0u | 2048u); ctx.gpr[31] = (0x08A9A6ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 293u, 0x08A9A6ACu, 0x088ABA2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 572u, 0x088ABA2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A6ACu) goto L_08A9A6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A6AC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9A6B8: @@ -4472,16 +4938,16 @@ L_08A9A6B8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9A6CC: ctx.gpr[2] = (2218u << 16u); jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-22836)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9A6D8: @@ -4493,8 +4959,8 @@ L_08A9A6E8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9A6F4: @@ -4511,8 +4977,8 @@ L_08A9A708: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9A720: @@ -4557,8 +5023,21 @@ L_08A9A720: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[31]); ctx.gpr[31] = (0x08A9A7E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 301u, 0x08A9A7E0u, 0x08B6F014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 680u, 0x08B6F014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A7E0u) goto L_08A9A7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A7E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const std::uint32_t aot_run_words[9]{0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u}; @@ -4567,8 +5046,21 @@ L_08A9A7E0: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(92), 0u); ctx.gpr[31] = (0x08A9A818u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 302u, 0x08A9A818u, 0x08B6F014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 680u, 0x08B6F014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A818u) goto L_08A9A818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A818: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const std::uint32_t aot_run_words[3]{0u, 0u, 0u}; @@ -4617,8 +5109,8 @@ L_08A9A86C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9A87C: @@ -4643,8 +5135,21 @@ L_08A9A8A4: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A9A8C4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 311u, 0x08A9A8C4u, 0x08ADEDA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 710u, 0x08ADEDA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A8C4u) goto L_08A9A8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A8C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); ctx.gpr[19] = (aot_gpr_16 + static_cast(56)); @@ -4671,8 +5176,21 @@ L_08A9A8D4: L_08A9A8F4: ctx.gpr[31] = (0x08A9A8FCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 314u, 0x08A9A8FCu, 0x088BB360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 679u, 0x088BB360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A8FCu) goto L_08A9A8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A8FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4684,8 +5202,21 @@ L_08A9A8FC: L_08A9A908: ctx.gpr[31] = (0x08A9A910u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 316u, 0x08A9A910u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9A910u) goto L_08A9A910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9A910: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4822,8 +5353,21 @@ L_08A9AA8C: L_08A9AA90: ctx.gpr[31] = (0x08A9AA98u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 326u, 0x08A9AA98u, 0x08B6EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 671u, 0x08B6EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9AA98u) goto L_08A9AA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9AA98: { const bool branch_taken = ctx.gpr[20] == 0u; aot_gpr_4 = (ctx.gpr[17] & 1u); @@ -4942,8 +5486,21 @@ L_08A9ABF0: L_08A9ABF4: ctx.gpr[31] = (0x08A9ABFCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 334u, 0x08A9ABFCu, 0x08B6EF9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 671u, 0x08B6EF9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9ABFCu) goto L_08A9ABFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9ABFC: aot_gpr_4 = (ctx.gpr[17] & 1u); goto L_08A9AC00; @@ -4971,8 +5528,8 @@ L_08A9AC10: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9AC30: @@ -5064,8 +5621,21 @@ L_08A9ACFC: L_08A9AD18: ctx.gpr[31] = (0x08A9AD20u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 345u, 0x08A9AD20u, 0x08B6FBE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 773u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 773u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 773u, 0x08B6FBE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9AD20u) goto L_08A9AD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9AD20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); @@ -5085,8 +5655,21 @@ L_08A9AD3C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); ctx.gpr[31] = (0x08A9AD4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 348u, 0x08A9AD4Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9AD4Cu) goto L_08A9AD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9AD4C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5100,8 +5683,8 @@ L_08A9AD4C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9AD70: @@ -5122,8 +5705,21 @@ L_08A9AD70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[31]); ctx.gpr[31] = (0x08A9ADB4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 350u, 0x08A9ADB4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9ADB4u) goto L_08A9ADB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9ADB4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -5150,8 +5746,8 @@ L_08A9ADD4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9ADF0: @@ -5177,14 +5773,14 @@ L_08A9AE34: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9AE40: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9AE48: @@ -5204,14 +5800,14 @@ L_08A9AE68: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9AE74: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9AE7C: @@ -5292,14 +5888,27 @@ L_08A9AF1C: aot_gpr_5 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x08A9AF54u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 365u, 0x08A9AF54u, 0x08B6F238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 703u, 0x08B6F238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9AF54u) goto L_08A9AF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9AF54: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9AF60: @@ -5336,8 +5945,21 @@ L_08A9AFBC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(3)))))); ctx.gpr[31] = (0x08A9AFCCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 369u, 0x08A9AFCCu, 0x08ADC150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 20u, 0x08ADC150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9AFCCu) goto L_08A9AFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9AFCC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5471,8 +6093,21 @@ L_08A9B0C8: L_08A9B0E4: ctx.gpr[31] = (0x08A9B0ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 382u, 0x08A9B0ECu, 0x08B6FBE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 773u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 773u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 773u, 0x08B6FBE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B0ECu) goto L_08A9B0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B0EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); @@ -5500,8 +6135,8 @@ L_08A9B10C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B124: @@ -5585,8 +6220,8 @@ L_08A9B19C: L_08A9B1D4: jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B1DC: @@ -5801,8 +6436,21 @@ L_08A9B42C: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); ctx.gpr[31] = (0x08A9B440u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 410u, 0x08A9B440u, 0x08A9C3BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 16u, 0x08A9C3BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B440u) goto L_08A9B440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B440: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u + static_cast(-2)); @@ -5819,8 +6467,8 @@ L_08A9B440: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B470: @@ -5972,8 +6620,21 @@ L_08A9B5A8: L_08A9B614: ctx.gpr[31] = (0x08A9B61Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 422u, 0x08A9B61Cu, 0x08B6FBE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 773u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 773u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 773u, 0x08B6FBE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B61Cu) goto L_08A9B61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B61C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(44))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -6020,8 +6681,8 @@ L_08A9B68C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B6A8: @@ -6194,13 +6855,39 @@ L_08A9B834: L_08A9B83C: ctx.gpr[31] = (0x08A9B844u); aot_gpr_4 = (aot_gpr_16 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 438u, 0x08A9B844u, 0x08B6F90Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 730u, 0x08B6F90Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B844u) goto L_08A9B844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B844: ctx.gpr[31] = (0x08A9B84Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(56)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 439u, 0x08A9B84Cu, 0x08B6F90Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 730u, 0x08B6F90Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B84Cu) goto L_08A9B84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B84C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(4), static_cast(0u)); @@ -6208,8 +6895,8 @@ L_08A9B84C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B864: @@ -6295,15 +6982,15 @@ L_08A9B938: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(32), static_cast(aot_gpr_4)); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B948: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B950: @@ -6316,14 +7003,27 @@ L_08A9B950: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x08A9B974u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 449u, 0x08A9B974u, 0x08ADF130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 765u, 0x08ADF130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B974u) goto L_08A9B974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B974: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B980: @@ -6333,14 +7033,27 @@ L_08A9B980: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x08A9B998u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 451u, 0x08A9B998u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B998u) goto L_08A9B998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B998: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B9A4: @@ -6350,14 +7063,27 @@ L_08A9B9A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x08A9B9BCu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 453u, 0x08A9B9BCu, 0x08ADE91Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 650u, 0x08ADE91Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B9BCu) goto L_08A9B9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B9BC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B9C8: @@ -6369,14 +7095,27 @@ L_08A9B9C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x08A9B9E8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 455u, 0x08A9B9E8u, 0x08ADE91Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 650u, 0x08ADE91Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9B9E8u) goto L_08A9B9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9B9E8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9B9F4: @@ -6491,8 +7230,21 @@ L_08A9BAE0: L_08A9BAEC: ctx.gpr[31] = (0x08A9BAF4u); aot_gpr_5 = (aot_gpr_29 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 467u, 0x08A9BAF4u, 0x08B6FA30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 753u, 0x08B6FA30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9BAF4u) goto L_08A9BAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9BAF4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(36), aot_run_words); @@ -6502,8 +7254,8 @@ L_08A9BAF4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9BB08: @@ -6550,8 +7302,21 @@ L_08A9BB54: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A9BB64u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 473u, 0x08A9BB64u, 0x088BB360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 679u, 0x088BB360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9BB64u) goto L_08A9BB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9BB64: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(16))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); @@ -6604,8 +7369,21 @@ L_08A9BBC0: L_08A9BBCC: ctx.gpr[31] = (0x08A9BBD4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0165->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0165_entry, 479u, 0x08A9BBD4u, 0x088BAF70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 620u, 0x088BAF70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9BBD4u) goto L_08A9BBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9BBD4: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); @@ -6659,8 +7437,8 @@ L_08A9BC14: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9BC3C: @@ -6867,8 +7645,8 @@ L_08A9BE9C: L_08A9BEAC: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9BEB4: @@ -6953,8 +7731,8 @@ L_08A9BF34: L_08A9BF6C: jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9BF74: diff --git a/profiles/vcs/generated/generated_unit_0166.cpp b/profiles/vcs/generated/generated_unit_0166.cpp index 8d9aab0..eb55f0d 100644 --- a/profiles/vcs/generated/generated_unit_0166.cpp +++ b/profiles/vcs/generated/generated_unit_0166.cpp @@ -736,6 +736,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08A9C000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -880,8 +904,8 @@ L_08A9C170: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9C198: @@ -1048,8 +1072,8 @@ L_08A9C394: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9C3BC: @@ -1099,8 +1123,21 @@ L_08A9C430: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); ctx.gpr[31] = (0x08A9C45Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 19u, 0x08A9C45Cu, 0x08A9B124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 386u, 0x08A9B124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9C45Cu) goto L_08A9C45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9C45C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_4); @@ -1247,8 +1284,21 @@ L_08A9C5A8: L_08A9C5B4: ctx.gpr[31] = (0x08A9C5BCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 33u, 0x08A9C5BCu, 0x08B6FB14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 763u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 763u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 763u, 0x08B6FB14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9C5BCu) goto L_08A9C5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9C5BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); @@ -1310,8 +1360,21 @@ L_08A9C624: L_08A9C630: ctx.gpr[31] = (0x08A9C638u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 41u, 0x08A9C638u, 0x08B6FA30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 753u, 0x08B6FA30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9C638u) goto L_08A9C638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9C638: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), aot_gpr_4); @@ -1369,8 +1432,21 @@ L_08A9C6B0: aot_gpr_5 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x08A9C6E0u); aot_gpr_7 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 45u, 0x08A9C6E0u, 0x08B6FC40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 777u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 777u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 777u, 0x08B6FC40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9C6E0u) goto L_08A9C6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9C6E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1387,8 +1463,8 @@ L_08A9C6E8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9C6FC: @@ -2193,8 +2269,21 @@ L_08A9CF44: L_08A9CF50: ctx.gpr[31] = (0x08A9CF58u); aot_gpr_5 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 112u, 0x08A9CF58u, 0x08B6FB14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 763u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 763u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 763u, 0x08B6FB14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9CF58u) goto L_08A9CF58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9CF58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(56))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(60))); @@ -2254,8 +2343,21 @@ L_08A9CFBC: L_08A9CFC8: ctx.gpr[31] = (0x08A9CFD0u); aot_gpr_5 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 119u, 0x08A9CFD0u, 0x08B6FA30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 753u, 0x08B6FA30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9CFD0u) goto L_08A9CFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9CFD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(76))); @@ -2312,8 +2414,21 @@ L_08A9D040: aot_gpr_4 = (aot_gpr_8 | 0u); ctx.gpr[31] = (0x08A9D074u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 123u, 0x08A9D074u, 0x08B6FC40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 777u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 777u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 777u, 0x08B6FC40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9D074u) goto L_08A9D074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9D074: if (ctx.gpr[17] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); @@ -2544,8 +2659,8 @@ L_08A9D2E8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(576)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9D300: @@ -2605,8 +2720,21 @@ L_08A9D358: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); ctx.gpr[31] = (0x08A9D374u); aot_gpr_5 = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 145u, 0x08A9D374u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9D374u) goto L_08A9D374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9D374: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -2631,8 +2759,8 @@ L_08A9D3B4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9D3CC: @@ -2662,8 +2790,21 @@ L_08A9D400: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A9D40Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 151u, 0x08A9D40Cu, 0x088703A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 37u, 0x088703A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9D40Cu) goto L_08A9D40C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9D40C: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (0u | 0u); @@ -2693,8 +2834,21 @@ L_08A9D428: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A9D438u); aot_gpr_5 = (aot_gpr_5 + static_cast(9568)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 155u, 0x08A9D438u, 0x089E77C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 743u, 0x089E77C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9D438u) goto L_08A9D438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9D438: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2707,8 +2861,21 @@ L_08A9D440: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08A9D450u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 157u, 0x08A9D450u, 0x0887037Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 35u, 0x0887037Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9D450u) goto L_08A9D450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9D450: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -2728,8 +2895,21 @@ L_08A9D460: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08A9D46Cu); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 160u, 0x08A9D46Cu, 0x088719B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 446u, 0x088719B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9D46Cu) goto L_08A9D46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9D46C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2776,8 +2956,8 @@ L_08A9D4A8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9D4C4: @@ -2892,8 +3072,8 @@ L_08A9D59C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9D5B4: @@ -3062,8 +3242,8 @@ L_08A9D6CC: L_08A9D6D4: jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_7 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9D6DC: @@ -3451,8 +3631,8 @@ L_08A9DB58: goto L_08A9DBC0; L_08A9DBC0: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9DBC8: @@ -3679,8 +3859,8 @@ L_08A9DDFC: goto L_08A9DE28; L_08A9DE28: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9DE30: @@ -3693,8 +3873,8 @@ L_08A9DE30: ctx.gpr[2] = (aot_gpr_4 << 16u); jump_target = ctx.gpr[31]; ctx.gpr[2] = (static_cast(static_cast(ctx.gpr[2]) >> 16u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9DE54: @@ -3706,8 +3886,8 @@ L_08A9DE54: aot_fpr_13 = std::bit_cast(aot_gpr_4); jump_target = ctx.gpr[31]; { const float fs = aot_fpr_0; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_0 = std::bit_cast(0x7FC00000u); else aot_fpr_0 = fs * ft; } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9DE74: @@ -3739,8 +3919,21 @@ L_08A9DECC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[31] = (0x08A9DEE0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 257u, 0x08A9DEE0u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9DEE0u) goto L_08A9DEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9DEE0: ctx.gpr[20] = (ctx.gpr[28] + static_cast(-4768)); ctx.gpr[31] = (0x08A9DEECu); @@ -3752,8 +3945,21 @@ L_08A9DEEC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[31] = (0x08A9DF00u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 259u, 0x08A9DF00u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9DF00u) goto L_08A9DF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9DF00: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(0))); goto L_08A9DF04; @@ -3779,8 +3985,21 @@ L_08A9DF28: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[31] = (0x08A9DF3Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 263u, 0x08A9DF3Cu, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9DF3Cu) goto L_08A9DF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9DF3C: ctx.gpr[21] = (ctx.gpr[28] + static_cast(-4756)); ctx.gpr[31] = (0x08A9DF48u); @@ -3792,8 +4011,21 @@ L_08A9DF48: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08A9DF5Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 265u, 0x08A9DF5Cu, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9DF5Cu) goto L_08A9DF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9DF5C: ctx.gpr[21] = (ctx.gpr[28] + static_cast(-4744)); ctx.gpr[31] = (0x08A9DF68u); @@ -3808,8 +4040,21 @@ L_08A9DF68: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08A9DF88u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 267u, 0x08A9DF88u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9DF88u) goto L_08A9DF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9DF88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -3823,8 +4068,21 @@ L_08A9DF9C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[31] = (0x08A9DFB0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 269u, 0x08A9DFB0u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9DFB0u) goto L_08A9DFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9DFB0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(0))); goto L_08A9DFB4; @@ -3841,8 +4099,21 @@ L_08A9DFC0: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); ctx.gpr[31] = (0x08A9DFD0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 272u, 0x08A9DFD0u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9DFD0u) goto L_08A9DFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9DFD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(56))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); @@ -3869,8 +4140,21 @@ L_08A9E00C: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A9E020u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 275u, 0x08A9E020u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E020u) goto L_08A9E020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E020: ctx.gpr[20] = (ctx.gpr[28] + static_cast(-4768)); ctx.gpr[31] = (0x08A9E02Cu); @@ -3882,8 +4166,21 @@ L_08A9E02C: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08A9E040u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 277u, 0x08A9E040u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E040u) goto L_08A9E040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E040: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(0))); goto L_08A9E044; @@ -3899,8 +4196,21 @@ L_08A9E050: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(112))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); ctx.gpr[31] = (0x08A9E060u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 280u, 0x08A9E060u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E060u) goto L_08A9E060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E060: ctx.gpr[31] = (0x08A9E068u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3941,8 +4251,21 @@ L_08A9E0A0: L_08A9E0AC: ctx.gpr[31] = (0x08A9E0B4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 285u, 0x08A9E0B4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E0B4u) goto L_08A9E0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E0B4: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(96))); @@ -3969,8 +4292,21 @@ L_08A9E0D4: L_08A9E0E8: aot_fpr_12 = aot_fpr_20 - aot_fpr_12; ctx.gpr[31] = (0x08A9E0F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 290u, 0x08A9E0F4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E0F4u) goto L_08A9E0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E0F4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0) ^ 0x80000000u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), std::bit_cast(ctx.fpr[22])); @@ -4007,8 +4343,21 @@ L_08A9E154: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[31] = (0x08A9E168u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 292u, 0x08A9E168u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E168u) goto L_08A9E168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E168: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-4768)); ctx.gpr[31] = (0x08A9E174u); @@ -4020,8 +4369,21 @@ L_08A9E174: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[31] = (0x08A9E188u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 294u, 0x08A9E188u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E188u) goto L_08A9E188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E188: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4051,8 +4413,21 @@ L_08A9E1B4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[31] = (0x08A9E1C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 298u, 0x08A9E1C8u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E1C8u) goto L_08A9E1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E1C8: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-4744)); ctx.gpr[31] = (0x08A9E1D4u); @@ -4064,8 +4439,21 @@ L_08A9E1D4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[31] = (0x08A9E1E8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 300u, 0x08A9E1E8u, 0x08968D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 220u, 0x08968D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E1E8u) goto L_08A9E1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E1E8: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -4081,8 +4469,8 @@ L_08A9E1E8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9E214: @@ -4098,8 +4486,21 @@ L_08A9E214: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[31]); ctx.gpr[31] = (0x08A9E244u); aot_gpr_7 = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 302u, 0x08A9E244u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E244u) goto L_08A9E244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E244: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -4116,8 +4517,8 @@ L_08A9E244: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9E274: @@ -4131,8 +4532,21 @@ L_08A9E274: aot_gpr_6 = (0u | 4u); ctx.gpr[31] = (0x08A9E2ACu); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 304u, 0x08A9E2ACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E2ACu) goto L_08A9E2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E2AC: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -4160,8 +4574,21 @@ L_08A9E2E4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.gpr[31] = (0x08A9E2F0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 307u, 0x08A9E2F0u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E2F0u) goto L_08A9E2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E2F0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); goto L_08A9E2F4; @@ -4319,8 +4746,8 @@ L_08A9E3D4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9E3F8: @@ -4332,8 +4759,21 @@ L_08A9E3F8: aot_gpr_7 = (ctx.gpr[16] + static_cast(29704)); ctx.gpr[31] = (0x08A9E418u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 320u, 0x08A9E418u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E418u) goto L_08A9E418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E418: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7672), std::bit_cast(aot_fpr_12)); @@ -4342,8 +4782,8 @@ L_08A9E418: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9E434: @@ -4358,16 +4798,42 @@ L_08A9E434: aot_gpr_6 = (0u | 3u); ctx.gpr[31] = (0x08A9E46Cu); aot_gpr_7 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 322u, 0x08A9E46Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E46Cu) goto L_08A9E46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E46C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); ctx.gpr[31] = (0x08A9E480u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 323u, 0x08A9E480u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E480u) goto L_08A9E480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E480: aot_gpr_4 = (std::bit_cast(aot_fpr_0)); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), aot_gpr_4); @@ -4389,8 +4855,8 @@ L_08A9E498: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9E4B8: @@ -4404,8 +4870,21 @@ L_08A9E4B8: aot_gpr_6 = (0u | 11u); ctx.gpr[31] = (0x08A9E500u); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 326u, 0x08A9E500u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E500u) goto L_08A9E500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E500: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); @@ -4481,8 +4960,21 @@ L_08A9E57C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[31] = (0x08A9E5CCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 334u, 0x08A9E5CCu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E5CCu) goto L_08A9E5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E5CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4519,8 +5011,21 @@ L_08A9E5D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); ctx.gpr[31] = (0x08A9E644u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 337u, 0x08A9E644u, 0x0889A478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 406u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 406u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 406u, 0x0889A478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E644u) goto L_08A9E644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E644: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -4609,8 +5114,8 @@ L_08A9E6C8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9E6FC: @@ -4624,8 +5129,21 @@ L_08A9E6FC: aot_gpr_6 = (0u | 6u); ctx.gpr[31] = (0x08A9E72Cu); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 347u, 0x08A9E72Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E72Cu) goto L_08A9E72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E72C: aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.fpr[19] = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -4683,8 +5201,21 @@ L_08A9E79C: ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[17])); ctx.gpr[31] = (0x08A9E7BCu); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 354u, 0x08A9E7BCu, 0x08ACE7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 793u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 793u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 793u, 0x08ACE7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E7BCu) goto L_08A9E7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E7BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4766,8 +5297,8 @@ L_08A9E83C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9E858: @@ -4781,8 +5312,21 @@ L_08A9E858: aot_gpr_6 = (0u | 6u); ctx.gpr[31] = (0x08A9E888u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 364u, 0x08A9E888u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E888u) goto L_08A9E888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E888: ctx.fpr[18] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { std::uint32_t aot_run_words[5]{}; @@ -4852,8 +5396,21 @@ L_08A9E90C: ctx.gpr[10] = (0u | 1u); ctx.gpr[31] = (0x08A9E94Cu); ctx.gpr[11] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 371u, 0x08A9E94Cu, 0x08892E7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 457u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 457u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 457u, 0x08892E7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9E94Cu) goto L_08A9E94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9E94C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -4936,8 +5493,8 @@ L_08A9E9D0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9E9EC: @@ -4950,8 +5507,21 @@ L_08A9E9EC: aot_gpr_6 = (0u | 5u); ctx.gpr[31] = (0x08A9EA1Cu); aot_gpr_7 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 381u, 0x08A9EA1Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EA1Cu) goto L_08A9EA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EA1C: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); @@ -4979,8 +5549,21 @@ L_08A9EA54: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); ctx.gpr[31] = (0x08A9EA60u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 384u, 0x08A9EA60u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EA60u) goto L_08A9EA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EA60: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); goto L_08A9EA64; @@ -4992,8 +5575,21 @@ L_08A9EA64: aot_gpr_5 = (aot_gpr_5 & 255u); ctx.gpr[31] = (0x08A9EA84u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 386u, 0x08A9EA84u, 0x0889B6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 595u, 0x0889B6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EA84u) goto L_08A9EA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EA84: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -5006,8 +5602,8 @@ L_08A9EA84: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9EAA4: @@ -5021,8 +5617,21 @@ L_08A9EAA4: aot_gpr_6 = (0u | 3u); ctx.gpr[31] = (0x08A9EAD8u); aot_gpr_7 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 388u, 0x08A9EAD8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EAD8u) goto L_08A9EAD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EAD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); ctx.gpr[31] = (0x08A9EAE4u); @@ -5035,8 +5644,21 @@ L_08A9EAE4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); ctx.gpr[31] = (0x08A9EAF8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 390u, 0x08A9EAF8u, 0x0897037Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 70u, 0x0897037Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EAF8u) goto L_08A9EAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EAF8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5119,8 +5741,8 @@ L_08A9EB78: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9EB98: @@ -5132,8 +5754,21 @@ L_08A9EB98: aot_gpr_7 = (ctx.gpr[16] + static_cast(29704)); ctx.gpr[31] = (0x08A9EBB8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 400u, 0x08A9EBB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EBB8u) goto L_08A9EBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EBB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5144,8 +5779,21 @@ L_08A9EBB8: } L_08A9EBC4: ctx.gpr[31] = (0x08A9EBCCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 402u, 0x08A9EBCCu, 0x08AD31E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 538u, 0x08AD31E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EBCCu) goto L_08A9EBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EBCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5155,16 +5803,29 @@ L_08A9EBCC: } L_08A9EBD4: ctx.gpr[31] = (0x08A9EBDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 404u, 0x08A9EBDCu, 0x08AD3204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 540u, 0x08AD3204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EBDCu) goto L_08A9EBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EBDC: ctx.gpr[2] = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9EBF0: @@ -5176,8 +5837,21 @@ L_08A9EBF0: aot_gpr_7 = (ctx.gpr[16] + static_cast(29704)); ctx.gpr[31] = (0x08A9EC10u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 406u, 0x08A9EC10u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EC10u) goto L_08A9EC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EC10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5204,8 +5878,8 @@ L_08A9EC2C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9EC40: @@ -5218,26 +5892,78 @@ L_08A9EC40: aot_gpr_6 = (0u | 3u); ctx.gpr[31] = (0x08A9EC74u); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 411u, 0x08A9EC74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EC74u) goto L_08A9EC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EC74: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); ctx.gpr[31] = (0x08A9EC88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 412u, 0x08A9EC88u, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EC88u) goto L_08A9EC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EC88: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[31] = (0x08A9EC9Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 413u, 0x08A9EC9Cu, 0x08AD3578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 587u, 0x08AD3578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EC9Cu) goto L_08A9EC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EC9C: ctx.gpr[31] = (0x08A9ECA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 414u, 0x08A9ECA4u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9ECA4u) goto L_08A9ECA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9ECA4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -5251,8 +5977,8 @@ L_08A9ECA4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9ECC8: @@ -5330,8 +6056,8 @@ L_08A9ED4C: L_08A9ED50: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9ED58: @@ -5409,8 +6135,8 @@ L_08A9EDDC: L_08A9EDE0: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9EDE8: @@ -5473,8 +6199,8 @@ L_08A9EE4C: L_08A9EE50: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9EE58: @@ -5560,8 +6286,8 @@ L_08A9EEFC: L_08A9EF00: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9EF08: @@ -5571,8 +6297,21 @@ L_08A9EF08: aot_gpr_6 = (0u | 1u); ctx.gpr[31] = (0x08A9EF20u); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 450u, 0x08A9EF20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EF20u) goto L_08A9EF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EF20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -5636,15 +6375,28 @@ L_08A9EF6C: L_08A9EF84: ctx.gpr[31] = (0x08A9EF8Cu); aot_gpr_4 = (aot_gpr_8 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 459u, 0x08A9EF8Cu, 0x0893509Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 269u, 0x0893509Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9EF8Cu) goto L_08A9EF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9EF8C: ctx.gpr[2] = (0u | 0u); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9EF9C: @@ -5706,8 +6458,8 @@ L_08A9EFFC: L_08A9F000: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F008: @@ -5720,8 +6472,21 @@ L_08A9F008: aot_gpr_6 = (0u | 2u); ctx.gpr[31] = (0x08A9F030u); aot_gpr_7 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 468u, 0x08A9F030u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F030u) goto L_08A9F030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F030: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -5731,8 +6496,21 @@ L_08A9F030: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x08A9F050u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 469u, 0x08A9F050u, 0x0880988Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 308u, 0x0880988Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F050u) goto L_08A9F050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F050: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5743,8 +6521,8 @@ L_08A9F050: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F068: @@ -5806,8 +6584,8 @@ L_08A9F0C8: L_08A9F0CC: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F0D4: @@ -5869,8 +6647,8 @@ L_08A9F134: L_08A9F138: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F140: @@ -5932,8 +6710,8 @@ L_08A9F1A0: L_08A9F1A4: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F1AC: @@ -5996,8 +6774,8 @@ L_08A9F210: L_08A9F214: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F21C: @@ -6012,8 +6790,21 @@ L_08A9F21C: aot_gpr_6 = (0u | 3u); ctx.gpr[31] = (0x08A9F254u); aot_gpr_7 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 499u, 0x08A9F254u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F254u) goto L_08A9F254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F254: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); @@ -6027,8 +6818,21 @@ L_08A9F254: aot_gpr_4 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x08A9F284u); aot_gpr_8 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 500u, 0x08A9F284u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F284u) goto L_08A9F284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F284: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -6056,38 +6860,64 @@ L_08A9F2B4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F2D4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x08A9F2E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 503u, 0x08A9F2E4u, 0x0886A658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 521u, 0x0886A658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F2E4u) goto L_08A9F2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F2E4: ctx.gpr[2] = (0u | 0u); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F2F4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x08A9F304u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 505u, 0x08A9F304u, 0x0886A680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 525u, 0x0886A680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F304u) goto L_08A9F304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F304: ctx.gpr[2] = (0u | 0u); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F314: @@ -6095,8 +6925,21 @@ L_08A9F314: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); ctx.gpr[31] = (0x08A9F328u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 507u, 0x08A9F328u, 0x0886A68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 526u, 0x0886A68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F328u) goto L_08A9F328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F328: aot_gpr_4 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); @@ -6164,8 +7007,8 @@ L_08A9F3A4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F3B4: @@ -6179,13 +7022,39 @@ L_08A9F3B4: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08A9F3E4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 515u, 0x08A9F3E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F3E4u) goto L_08A9F3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F3E4: ctx.gpr[31] = (0x08A9F3ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 516u, 0x08A9F3ECu, 0x0886A69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 527u, 0x0886A69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F3ECu) goto L_08A9F3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F3EC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6230,8 +7099,8 @@ L_08A9F420: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F43C: @@ -6294,8 +7163,8 @@ L_08A9F4A0: L_08A9F4A4: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F4AC: @@ -6309,8 +7178,21 @@ L_08A9F4AC: aot_gpr_6 = (0u | 3u); ctx.gpr[31] = (0x08A9F4DCu); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 530u, 0x08A9F4DCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F4DCu) goto L_08A9F4DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F4DC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); @@ -6320,8 +7202,21 @@ L_08A9F4DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x08A9F4FCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 531u, 0x08A9F4FCu, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F4FCu) goto L_08A9F4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F4FC: aot_gpr_4 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); @@ -6393,8 +7288,8 @@ L_08A9F570: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F58C: @@ -6406,23 +7301,49 @@ L_08A9F58C: aot_gpr_7 = (ctx.gpr[16] + static_cast(29704)); ctx.gpr[31] = (0x08A9F5ACu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 539u, 0x08A9F5ACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F5ACu) goto L_08A9F5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F5AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); ctx.gpr[31] = (0x08A9F5BCu); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 540u, 0x08A9F5BCu, 0x08AD3C0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 698u, 0x08AD3C0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F5BCu) goto L_08A9F5BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F5BC: ctx.gpr[2] = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F5D0: @@ -6436,8 +7357,21 @@ L_08A9F5D0: aot_gpr_6 = (0u | 12u); ctx.gpr[31] = (0x08A9F600u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 542u, 0x08A9F600u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F600u) goto L_08A9F600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F600: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -6478,8 +7412,21 @@ L_08A9F600: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[31] = (0x08A9F6A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 543u, 0x08A9F6A0u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F6A0u) goto L_08A9F6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F6A0: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(524))); aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); @@ -6613,8 +7560,8 @@ L_08A9F768: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F784: @@ -6696,8 +7643,8 @@ L_08A9F784: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(27), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F8BC: @@ -6739,8 +7686,8 @@ L_08A9F8F4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F908: @@ -6762,8 +7709,8 @@ L_08A9F93C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F948: @@ -6774,8 +7721,21 @@ L_08A9F948: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), ctx.gpr[31]); ctx.gpr[31] = (0x08A9F964u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 566u, 0x08A9F964u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F964u) goto L_08A9F964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F964: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(84)))))); aot_gpr_5 = (0u + static_cast(-5)); @@ -6798,14 +7758,40 @@ L_08A9F964: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(84), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x08A9F9B8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 567u, 0x08A9F9B8u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F9B8u) goto L_08A9F9B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F9B8: aot_gpr_4 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x08A9F9C4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 568u, 0x08A9F9C4u, 0x08A2F94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 577u, 0x08A2F94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9F9C4u) goto L_08A9F9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9F9C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -6828,8 +7814,8 @@ L_08A9F9E4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9F9F8: @@ -6840,20 +7826,59 @@ L_08A9F9F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FA14u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 571u, 0x08A9FA14u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FA14u) goto L_08A9FA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FA14: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(4))); ctx.gpr[31] = (0x08A9FA20u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 572u, 0x08A9FA20u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FA20u) goto L_08A9FA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FA20: ctx.gpr[17] = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x08A9FA2Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 573u, 0x08A9FA2Cu, 0x08B246F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 53u, 0x08B246F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FA2Cu) goto L_08A9FA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FA2C: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == ctx.gpr[16]; @@ -6883,8 +7908,8 @@ L_08A9FA44: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FA5C: @@ -6895,14 +7920,40 @@ L_08A9FA5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FA78u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 578u, 0x08A9FA78u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FA78u) goto L_08A9FA78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FA78: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0))); ctx.gpr[31] = (0x08A9FA84u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 579u, 0x08A9FA84u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FA84u) goto L_08A9FA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FA84: ctx.gpr[2] = (ctx.gpr[2] ^ ctx.gpr[16]); ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); @@ -6914,8 +7965,8 @@ L_08A9FA84: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FAA0: @@ -6924,21 +7975,47 @@ L_08A9FAA0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FAB4u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 581u, 0x08A9FAB4u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FAB4u) goto L_08A9FAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FAB4: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(0))); ctx.gpr[31] = (0x08A9FAC0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 582u, 0x08A9FAC0u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FAC0u) goto L_08A9FAC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FAC0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FAD0: @@ -6949,14 +8026,40 @@ L_08A9FAD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FAECu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 584u, 0x08A9FAECu, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FAECu) goto L_08A9FAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FAEC: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2))); ctx.gpr[31] = (0x08A9FAF8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 585u, 0x08A9FAF8u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FAF8u) goto L_08A9FAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FAF8: ctx.gpr[2] = (ctx.gpr[2] ^ ctx.gpr[16]); ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); @@ -6968,8 +8071,8 @@ L_08A9FAF8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FB14: @@ -6978,8 +8081,21 @@ L_08A9FB14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FB28u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 587u, 0x08A9FB28u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FB28u) goto L_08A9FB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FB28: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(84)))))); aot_gpr_5 = (0u + static_cast(-5)); @@ -7002,14 +8118,40 @@ L_08A9FB28: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(84), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x08A9FB7Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 588u, 0x08A9FB7Cu, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FB7Cu) goto L_08A9FB7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FB7C: aot_gpr_4 = (aot_gpr_29 | 0u); ctx.gpr[31] = (0x08A9FB88u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 589u, 0x08A9FB88u, 0x08A2F94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 577u, 0x08A2F94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FB88u) goto L_08A9FB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FB88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -7085,8 +8227,8 @@ L_08A9FC0C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FC1C: @@ -7095,14 +8237,40 @@ L_08A9FC1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FC30u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 599u, 0x08A9FC30u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FC30u) goto L_08A9FC30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FC30: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(0))); ctx.gpr[31] = (0x08A9FC3Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 600u, 0x08A9FC3Cu, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FC3Cu) goto L_08A9FC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FC3C: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[31] = (0x08A9FC48u); @@ -7113,8 +8281,8 @@ L_08A9FC48: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FC58: @@ -7144,8 +8312,8 @@ L_08A9FC80: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FCAC: @@ -7154,8 +8322,21 @@ L_08A9FCAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FCC0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 605u, 0x08A9FCC0u, 0x08AA0134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 17u, 0x08AA0134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FCC0u) goto L_08A9FCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FCC0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7178,8 +8359,8 @@ L_08A9FCD4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FCE0: @@ -7188,8 +8369,21 @@ L_08A9FCE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FCF4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 610u, 0x08A9FCF4u, 0x08AA0134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 17u, 0x08AA0134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FCF4u) goto L_08A9FCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FCF4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7212,8 +8406,8 @@ L_08A9FD08: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FD14: @@ -7222,14 +8416,40 @@ L_08A9FD14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FD28u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 615u, 0x08A9FD28u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FD28u) goto L_08A9FD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FD28: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(2))); ctx.gpr[31] = (0x08A9FD34u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 616u, 0x08A9FD34u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FD34u) goto L_08A9FD34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FD34: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(4)))))); @@ -7272,8 +8492,8 @@ L_08A9FD70: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FD80: @@ -7284,14 +8504,40 @@ L_08A9FD80: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FD9Cu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 622u, 0x08A9FD9Cu, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FD9Cu) goto L_08A9FD9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FD9C: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(2))); ctx.gpr[31] = (0x08A9FDA8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 623u, 0x08A9FDA8u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FDA8u) goto L_08A9FDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FDA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_4 = (aot_gpr_4 + static_cast(16)); @@ -7313,8 +8559,8 @@ L_08A9FDC4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FDD8: @@ -7335,8 +8581,21 @@ L_08A9FDD8: } L_08A9FE00: ctx.gpr[31] = (0x08A9FE08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 627u, 0x08A9FE08u, 0x0887347Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 736u, 0x0887347Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FE08u) goto L_08A9FE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FE08: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(39)))))); ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -7360,19 +8619,58 @@ L_08A9FE20: L_08A9FE38: ctx.gpr[31] = (0x08A9FE40u); ctx.gpr[19] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 630u, 0x08A9FE40u, 0x0881A06Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 384u, 0x0881A06Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FE40u) goto L_08A9FE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FE40: ctx.gpr[31] = (0x08A9FE48u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 631u, 0x08A9FE48u, 0x08819EE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 364u, 0x08819EE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FE48u) goto L_08A9FE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FE48: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(39)))))); ctx.gpr[31] = (0x08A9FE54u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 632u, 0x08A9FE54u, 0x088734BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 739u, 0x088734BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FE54u) goto L_08A9FE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FE54: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(39), static_cast(ctx.gpr[18])); goto L_08A9FE58; @@ -7387,8 +8685,8 @@ L_08A9FE58: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FE74: @@ -7406,8 +8704,21 @@ L_08A9FE74: } L_08A9FE90: ctx.gpr[31] = (0x08A9FE98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 636u, 0x08A9FE98u, 0x08A01434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 355u, 0x08A01434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FE98u) goto L_08A9FE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FE98: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(32)))))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -7420,8 +8731,21 @@ L_08A9FE98: aot_gpr_5 = (ctx.gpr[2] + aot_gpr_5); ctx.gpr[31] = (0x08A9FEC4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 637u, 0x08A9FEC4u, 0x08A01474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 358u, 0x08A01474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FEC4u) goto L_08A9FEC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FEC4: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(32), static_cast(aot_gpr_4)); @@ -7431,8 +8755,8 @@ L_08A9FECC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FEDC: @@ -7456,22 +8780,61 @@ L_08A9FEFC: goto L_08A9FF0C; L_08A9FF0C: ctx.gpr[31] = (0x08A9FF14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 643u, 0x08A9FF14u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FF14u) goto L_08A9FF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FF14: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(0))); ctx.gpr[31] = (0x08A9FF20u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 644u, 0x08A9FF20u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FF20u) goto L_08A9FF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FF20: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_08A9FF24; L_08A9FF24: ctx.gpr[31] = (0x08A9FF2Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 646u, 0x08A9FF2Cu, 0x08B24720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 56u, 0x08B24720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FF2Cu) goto L_08A9FF2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FF2C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7482,8 +8845,21 @@ L_08A9FF2C: L_08A9FF34: ctx.gpr[31] = (0x08A9FF3Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 648u, 0x08A9FF3Cu, 0x08B24720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 56u, 0x08B24720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FF3Cu) goto L_08A9FF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FF3C: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -7494,14 +8870,40 @@ L_08A9FF3C: } L_08A9FF44: ctx.gpr[31] = (0x08A9FF4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 650u, 0x08A9FF4Cu, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FF4Cu) goto L_08A9FF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FF4C: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x08A9FF58u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 651u, 0x08A9FF58u, 0x0890486Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 134u, 0x0890486Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FF58u) goto L_08A9FF58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FF58: aot_gpr_4 = (0u | 65535u); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(0), static_cast(aot_gpr_4)); @@ -7523,8 +8925,8 @@ L_08A9FF64: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08A9FF94: @@ -7540,8 +8942,21 @@ L_08A9FF94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[31]); ctx.gpr[31] = (0x08A9FFC4u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 654u, 0x08A9FFC4u, 0x08B24720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 56u, 0x08B24720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FFC4u) goto L_08A9FFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FFC4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7564,8 +8979,21 @@ L_08A9FFE4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), aot_gpr_4); ctx.gpr[31] = (0x08A9FFF0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0166->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0166_entry, 657u, 0x08A9FFF0u, 0x08B246F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 53u, 0x08B246F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08A9FFF0u) goto L_08A9FFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08A9FFF0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; diff --git a/profiles/vcs/generated/generated_unit_0167.cpp b/profiles/vcs/generated/generated_unit_0167.cpp index 6e69369..547db5d 100644 --- a/profiles/vcs/generated/generated_unit_0167.cpp +++ b/profiles/vcs/generated/generated_unit_0167.cpp @@ -1051,6 +1051,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AA0000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1114,8 +1138,8 @@ L_08AA0030: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA004C: @@ -1207,8 +1231,8 @@ L_08AA0114: goto L_08AA012C; L_08AA012C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0134: @@ -1219,15 +1243,41 @@ L_08AA0134: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AA0150u); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 18u, 0x08AA0150u, 0x08A9FAA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 580u, 0x08A9FAA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0150u) goto L_08AA0150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0150: aot_gpr_6 = (aot_gpr_29 + static_cast(4)); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AA0160u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 19u, 0x08AA0160u, 0x08A9FF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 653u, 0x08A9FF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0160u) goto L_08AA0160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0160: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1271,8 +1321,8 @@ L_08AA0198: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA01AC: @@ -1280,14 +1330,27 @@ L_08AA01AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AA01BCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(10184)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 26u, 0x08AA01BCu, 0x08B3E8BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 557u, 0x08B3E8BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA01BCu) goto L_08AA01BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA01BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA01C8: @@ -1309,8 +1372,21 @@ L_08AA01F4: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AA0200u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 29u, 0x08AA0200u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0200u) goto L_08AA0200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0200: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1337,8 +1413,21 @@ L_08AA021C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA0234u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 34u, 0x08AA0234u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0234u) goto L_08AA0234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0234: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -1361,8 +1450,21 @@ L_08AA024C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AA0258u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 38u, 0x08AA0258u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0258u) goto L_08AA0258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0258: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -1372,8 +1474,21 @@ L_08AA0258: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08AA0278u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 39u, 0x08AA0278u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0278u) goto L_08AA0278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0278: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); { std::uint32_t aot_run_words[4]{}; @@ -1393,8 +1508,21 @@ L_08AA0278: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA02B4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 40u, 0x08AA02B4u, 0x08A35A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 405u, 0x08A35A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA02B4u) goto L_08AA02B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA02B4: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -1408,8 +1536,8 @@ L_08AA02B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA02D8: @@ -1418,8 +1546,21 @@ L_08AA02D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AA02ECu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 42u, 0x08AA02ECu, 0x08A35A58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 404u, 0x08A35A58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA02ECu) goto L_08AA02EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA02EC: aot_gpr_4 = (2236u << 16u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(29704), aot_gpr_2); @@ -1435,8 +1576,8 @@ L_08AA0304: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0318: @@ -1458,8 +1599,21 @@ L_08AA0344: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AA0350u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 46u, 0x08AA0350u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0350u) goto L_08AA0350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0350: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1486,8 +1640,21 @@ L_08AA036C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA0384u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 51u, 0x08AA0384u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0384u) goto L_08AA0384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0384: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -1510,8 +1677,21 @@ L_08AA039C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AA03A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 55u, 0x08AA03A8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA03A8u) goto L_08AA03A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA03A8: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -1521,8 +1701,21 @@ L_08AA03A8: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08AA03C8u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 56u, 0x08AA03C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA03C8u) goto L_08AA03C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA03C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); { std::uint32_t aot_run_words[4]{}; @@ -1543,8 +1736,21 @@ L_08AA03C8: ctx.gpr[8] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA0408u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 57u, 0x08AA0408u, 0x08A35A60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 405u, 0x08A35A60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0408u) goto L_08AA0408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0408: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -1558,8 +1764,8 @@ L_08AA0408: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA042C: @@ -1571,21 +1777,47 @@ L_08AA042C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AA044Cu); ctx.gpr[7] = (ctx.gpr[16] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 59u, 0x08AA044Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA044Cu) goto L_08AA044C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA044C: aot_gpr_31 = (0x08AA0454u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 60u, 0x08AA0454u, 0x08991098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 229u, 0x08991098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0454u) goto L_08AA0454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0454: aot_gpr_2 = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0468: @@ -1618,8 +1850,8 @@ L_08AA0468: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0484: @@ -1634,22 +1866,61 @@ L_08AA0484: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AA04B0u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 63u, 0x08AA04B0u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA04B0u) goto L_08AA04B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA04B0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA04BCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 64u, 0x08AA04BCu, 0x0889DB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 388u, 0x0889DB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA04BCu) goto L_08AA04BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA04BC: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA04D0u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 65u, 0x08AA04D0u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA04D0u) goto L_08AA04D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA04D0: aot_gpr_4 = (static_cast(ctx.gpr[18]) < 1 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1677,15 +1948,41 @@ L_08AA04F8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0508u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 69u, 0x08AA0508u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0508u) goto L_08AA0508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0508: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA0518u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 70u, 0x08AA0518u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0518u) goto L_08AA0518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0518: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0524u); @@ -1736,8 +2033,8 @@ L_08AA0554: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0570: @@ -1750,26 +2047,78 @@ L_08AA0570: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AA0594u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 78u, 0x08AA0594u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0594u) goto L_08AA0594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0594: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA05A4u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 79u, 0x08AA05A4u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA05A4u) goto L_08AA05A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA05A4: aot_gpr_31 = (0x08AA05ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 80u, 0x08AA05ACu, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA05ACu) goto L_08AA05AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA05AC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA05B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 81u, 0x08AA05B8u, 0x088078B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 540u, 0x088078B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA05B8u) goto L_08AA05B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA05B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1800,8 +2149,21 @@ L_08AA05E4: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA05F4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 86u, 0x08AA05F4u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA05F4u) goto L_08AA05F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA05F4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0600u); @@ -1848,8 +2210,8 @@ L_08AA0628: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA063C: @@ -1862,14 +2224,40 @@ L_08AA063C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AA0660u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 94u, 0x08AA0660u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0660u) goto L_08AA0660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0660: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA066Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 95u, 0x08AA066Cu, 0x0889DB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 388u, 0x0889DB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA066Cu) goto L_08AA066C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA066C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -1887,8 +2275,8 @@ L_08AA067C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0694: @@ -1899,30 +2287,69 @@ L_08AA0694: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AA06B0u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 98u, 0x08AA06B0u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA06B0u) goto L_08AA06B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA06B0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA06BCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 99u, 0x08AA06BCu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA06BCu) goto L_08AA06BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA06BC: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA06D0u); aot_gpr_6 = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 100u, 0x08AA06D0u, 0x0889DA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 370u, 0x0889DA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA06D0u) goto L_08AA06D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA06D0: aot_gpr_2 = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA06E4: @@ -1939,14 +2366,40 @@ L_08AA0708: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA071Cu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 103u, 0x08AA071Cu, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA071Cu) goto L_08AA071C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA071C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0728u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 104u, 0x08AA0728u, 0x0889DB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 388u, 0x0889DB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0728u) goto L_08AA0728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0728: aot_gpr_4 = (0u | 2u); { const bool branch_taken = ctx.gpr[20] != aot_gpr_4; @@ -1968,8 +2421,21 @@ L_08AA073C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0748u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 107u, 0x08AA0748u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0748u) goto L_08AA0748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0748: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); @@ -1991,8 +2457,21 @@ L_08AA0764: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0774u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 111u, 0x08AA0774u, 0x0889DA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 370u, 0x0889DA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0774u) goto L_08AA0774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0774: ctx.gpr[17] = (ctx.gpr[19] + static_cast(-1)); ctx.gpr[19] = (ctx.gpr[17] | 0u); @@ -2008,15 +2487,41 @@ L_08AA0788: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0798u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 113u, 0x08AA0798u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0798u) goto L_08AA0798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0798: aot_gpr_6 = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA07A8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 114u, 0x08AA07A8u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA07A8u) goto L_08AA07A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA07A8: ctx.gpr[17] = (ctx.gpr[19] + static_cast(-1)); ctx.gpr[19] = (ctx.gpr[17] | 0u); @@ -2038,8 +2543,21 @@ L_08AA07C8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA07D8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 117u, 0x08AA07D8u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA07D8u) goto L_08AA07D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA07D8: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -2053,8 +2571,8 @@ L_08AA07D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA07FC: @@ -2070,14 +2588,40 @@ L_08AA07FC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AA082Cu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 119u, 0x08AA082Cu, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA082Cu) goto L_08AA082C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA082C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0838u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 120u, 0x08AA0838u, 0x0889DB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 388u, 0x0889DB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0838u) goto L_08AA0838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0838: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_fpr_12 = std::bit_cast(ctx.gpr[18]); @@ -2085,8 +2629,21 @@ L_08AA0838: aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x08AA0850u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 121u, 0x08AA0850u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0850u) goto L_08AA0850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0850: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); { const bool branch_taken = static_cast(ctx.gpr[18]) <= 0; @@ -2101,15 +2658,41 @@ L_08AA085C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA086Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 123u, 0x08AA086Cu, 0x0889DA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 370u, 0x0889DA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA086Cu) goto L_08AA086C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA086C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA087Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 124u, 0x08AA087Cu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA087Cu) goto L_08AA087C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA087C: aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[18]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2139,15 +2722,41 @@ L_08AA0898: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA08ACu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 128u, 0x08AA08ACu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA08ACu) goto L_08AA08AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA08AC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA08BCu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 129u, 0x08AA08BCu, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA08BCu) goto L_08AA08BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA08BC: ctx.gpr[17] = (ctx.gpr[20] | 0u); aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -2160,15 +2769,41 @@ L_08AA08BC: L_08AA08CC: aot_gpr_31 = (0x08AA08D4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 131u, 0x08AA08D4u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA08D4u) goto L_08AA08D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA08D4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA08E4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 132u, 0x08AA08E4u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA08E4u) goto L_08AA08E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA08E4: aot_gpr_2 = (ctx.gpr[19] | 0u); goto L_08AA08E8; @@ -2184,8 +2819,8 @@ L_08AA08E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0908: @@ -2198,8 +2833,21 @@ L_08AA0908: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(1044), aot_run_words); } aot_gpr_31 = (0x08AA093Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 135u, 0x08AA093Cu, 0x0889D588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 284u, 0x0889D588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA093Cu) goto L_08AA093C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA093C: aot_gpr_6 = (16256u << 16u); ctx.gpr[21] = (aot_gpr_2 | 0u); @@ -2207,8 +2855,21 @@ L_08AA093C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0954u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 136u, 0x08AA0954u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0954u) goto L_08AA0954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0954: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -2216,8 +2877,21 @@ L_08AA0954: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08AA096Cu); ctx.gpr[20] = (std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 137u, 0x08AA096Cu, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA096Cu) goto L_08AA096C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA096C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); ctx.gpr[18] = (0u | 1u); @@ -2226,8 +2900,21 @@ L_08AA096C: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08AA0988u); ctx.gpr[19] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 138u, 0x08AA0988u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0988u) goto L_08AA0988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0988: { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { @@ -2239,8 +2926,21 @@ L_08AA0990: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA099Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 140u, 0x08AA099Cu, 0x0889DB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 388u, 0x0889DB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA099Cu) goto L_08AA099C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA099C: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08AA09A0; @@ -2248,8 +2948,21 @@ L_08AA09A0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA09ACu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 142u, 0x08AA09ACu, 0x0889DFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 453u, 0x0889DFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA09ACu) goto L_08AA09AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA09AC: aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[20]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2267,14 +2980,40 @@ L_08AA09BC: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA09CCu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 145u, 0x08AA09CCu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA09CCu) goto L_08AA09CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA09CC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA09D8u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 146u, 0x08AA09D8u, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA09D8u) goto L_08AA09D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA09D8: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -2287,13 +3026,39 @@ L_08AA09E0: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA09ECu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 148u, 0x08AA09ECu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA09ECu) goto L_08AA09EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA09EC: aot_gpr_31 = (0x08AA09F4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 149u, 0x08AA09F4u, 0x0889DEF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 442u, 0x0889DEF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA09F4u) goto L_08AA09F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA09F4: { const bool branch_taken = ctx.gpr[20] == ctx.gpr[19]; if (branch_taken) { @@ -2306,8 +3071,21 @@ L_08AA09FC: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AA0A0Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 151u, 0x08AA0A0Cu, 0x0889DE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 433u, 0x0889DE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0A0Cu) goto L_08AA0A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0A0C: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[20]) ? 1u : 0u); @@ -2320,8 +3098,21 @@ L_08AA0A0C: L_08AA0A1C: aot_gpr_31 = (0x08AA0A24u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 153u, 0x08AA0A24u, 0x0889DEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 439u, 0x0889DEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0A24u) goto L_08AA0A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0A24: aot_gpr_2 = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[7]{}; @@ -2336,8 +3127,8 @@ L_08AA0A24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0A4C: @@ -2350,15 +3141,41 @@ L_08AA0A4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AA0A70u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 155u, 0x08AA0A70u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0A70u) goto L_08AA0A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0A70: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0A80u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 156u, 0x08AA0A80u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0A80u) goto L_08AA0A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0A80: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2368,8 +3185,8 @@ L_08AA0A80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0A94: @@ -2414,8 +3231,21 @@ L_08AA0AE8: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA0AF8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 163u, 0x08AA0AF8u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0AF8u) goto L_08AA0AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0AF8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA0B04u); @@ -2442,8 +3272,21 @@ L_08AA0B1C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA0B2Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 167u, 0x08AA0B2Cu, 0x08806A1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 353u, 0x08806A1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0B2Cu) goto L_08AA0B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0B2C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2454,8 +3297,8 @@ L_08AA0B2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0B44: @@ -2486,15 +3329,41 @@ L_08AA0B8C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0B9Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 171u, 0x08AA0B9Cu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0B9Cu) goto L_08AA0B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0B9C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0BACu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 172u, 0x08AA0BACu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0BACu) goto L_08AA0BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0BAC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -2553,15 +3422,41 @@ L_08AA0BFC: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0C20u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 180u, 0x08AA0C20u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0C20u) goto L_08AA0C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0C20: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0C30u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 181u, 0x08AA0C30u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0C30u) goto L_08AA0C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0C30: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u + static_cast(-2)); @@ -2599,8 +3494,21 @@ L_08AA0C6C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0C7Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 187u, 0x08AA0C7Cu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0C7Cu) goto L_08AA0C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0C7C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -2653,8 +3561,21 @@ L_08AA0CCC: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0CDCu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 195u, 0x08AA0CDCu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0CDCu) goto L_08AA0CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0CDC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA0CE8u); @@ -2667,8 +3588,21 @@ L_08AA0CE8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0CFCu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 197u, 0x08AA0CFCu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0CFCu) goto L_08AA0CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0CFC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); @@ -2687,8 +3621,21 @@ L_08AA0D18: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0D28u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 201u, 0x08AA0D28u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0D28u) goto L_08AA0D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0D28: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -2715,8 +3662,21 @@ L_08AA0D4C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA0D58u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 205u, 0x08AA0D58u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0D58u) goto L_08AA0D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0D58: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA0D64u); @@ -2739,8 +3699,21 @@ L_08AA0D70: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0D80u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 209u, 0x08AA0D80u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0D80u) goto L_08AA0D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0D80: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u + static_cast(-3)); @@ -2767,8 +3740,21 @@ L_08AA0DA4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA0DB0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 213u, 0x08AA0DB0u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0DB0u) goto L_08AA0DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0DB0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA0DBCu); @@ -2802,15 +3788,41 @@ L_08AA0DDC: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0DECu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 218u, 0x08AA0DECu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0DECu) goto L_08AA0DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0DEC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AA0DFCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 219u, 0x08AA0DFCu, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0DFCu) goto L_08AA0DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0DFC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); @@ -2888,8 +3900,8 @@ L_08AA0E78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0EA8: @@ -2901,22 +3913,61 @@ L_08AA0EA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AA0EC8u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 229u, 0x08AA0EC8u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0EC8u) goto L_08AA0EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0EC8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0ED4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 230u, 0x08AA0ED4u, 0x0889DB90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 388u, 0x0889DB90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0ED4u) goto L_08AA0ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0ED4: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_6 = (ctx.gpr[28] + static_cast(-4628)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0EE8u); aot_gpr_5 = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 231u, 0x08AA0EE8u, 0x0889D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 265u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 265u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 265u, 0x0889D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0EE8u) goto L_08AA0EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0EE8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0EF4u); @@ -2935,8 +3986,21 @@ L_08AA0EFC: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA0F0Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 234u, 0x08AA0F0Cu, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0F0Cu) goto L_08AA0F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0F0C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA0F18u); @@ -2959,8 +4023,8 @@ L_08AA0F28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0F40: @@ -2971,15 +4035,28 @@ L_08AA0F40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AA0F5Cu); aot_gpr_6 = (aot_gpr_6 + static_cast(9608)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 238u, 0x08AA0F5Cu, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA0F5Cu) goto L_08AA0F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA0F5C: aot_gpr_2 = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0F6C: @@ -3028,8 +4105,8 @@ L_08AA0FA4: goto L_08AA0FA8; L_08AA0FA8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA0FB0: @@ -3223,8 +4300,8 @@ L_08AA1108: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA1128: @@ -3259,8 +4336,8 @@ L_08AA1144: } L_08AA1150: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA1158: @@ -3510,8 +4587,8 @@ L_08AA1314: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA132C: @@ -3531,64 +4608,168 @@ L_08AA132C: L_08AA134C: aot_gpr_31 = (0x08AA1354u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 307u, 0x08AA1354u, 0x089D885Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 102u, 0x089D885Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1354u) goto L_08AA1354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1354: aot_gpr_4 = (ctx.gpr[16] + static_cast(28)); aot_gpr_31 = (0x08AA1360u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 308u, 0x08AA1360u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1360u) goto L_08AA1360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1360: aot_gpr_4 = (ctx.gpr[16] + static_cast(32)); aot_gpr_31 = (0x08AA136Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 309u, 0x08AA136Cu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA136Cu) goto L_08AA136C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA136C: aot_gpr_4 = (ctx.gpr[16] + static_cast(4)); aot_gpr_31 = (0x08AA1378u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 310u, 0x08AA1378u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1378u) goto L_08AA1378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1378: aot_gpr_4 = (ctx.gpr[16] + static_cast(8)); aot_gpr_31 = (0x08AA1384u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 311u, 0x08AA1384u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1384u) goto L_08AA1384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1384: aot_gpr_4 = (ctx.gpr[16] + static_cast(12)); aot_gpr_31 = (0x08AA1390u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 312u, 0x08AA1390u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1390u) goto L_08AA1390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1390: aot_gpr_4 = (ctx.gpr[16] + static_cast(24)); aot_gpr_31 = (0x08AA139Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 313u, 0x08AA139Cu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA139Cu) goto L_08AA139C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA139C: aot_gpr_31 = (0x08AA13A4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 314u, 0x08AA13A4u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA13A4u) goto L_08AA13A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA13A4: aot_gpr_2 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA13B8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA13C0: @@ -3601,8 +4782,21 @@ L_08AA13C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA13E4u); aot_gpr_5 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 317u, 0x08AA13E4u, 0x088DF69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 451u, 0x088DF69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA13E4u) goto L_08AA13E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA13E4: aot_gpr_4 = (2234u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -3690,8 +4884,8 @@ L_08AA1460: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA14A4: @@ -3711,8 +4905,21 @@ L_08AA14CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA14D8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 327u, 0x08AA14D8u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA14D8u) goto L_08AA14D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA14D8: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (ctx.gpr[18] < static_cast(30) ? 1u : 0u); @@ -3731,8 +4938,21 @@ L_08AA14F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA14FCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 330u, 0x08AA14FCu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA14FCu) goto L_08AA14FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA14FC: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (ctx.gpr[18] < static_cast(25) ? 1u : 0u); @@ -3755,8 +4975,21 @@ L_08AA1518: aot_gpr_4 = (ctx.gpr[16] + static_cast(616)); aot_gpr_31 = (0x08AA1524u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 333u, 0x08AA1524u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1524u) goto L_08AA1524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1524: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(631)))))); ctx.gpr[18] = (0u | 0u); @@ -3774,8 +5007,21 @@ L_08AA1538: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08AA154Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 335u, 0x08AA154Cu, 0x0887F4DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 715u, 0x0887F4DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA154Cu) goto L_08AA154C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA154C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(631)))))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -3793,8 +5039,21 @@ L_08AA1560: L_08AA1564: aot_gpr_31 = (0x08AA156Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 338u, 0x08AA156Cu, 0x0885F484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 855u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 855u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 855u, 0x0885F484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA156Cu) goto L_08AA156C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA156C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3805,8 +5064,8 @@ L_08AA156C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA1584: @@ -3815,8 +5074,21 @@ L_08AA1584: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08AA15B4u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 340u, 0x08AA15B4u, 0x0885F354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 835u, 0x0885F354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA15B4u) goto L_08AA15B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA15B4: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -3838,8 +5110,21 @@ L_08AA15C0: L_08AA15CC: aot_gpr_31 = (0x08AA15D4u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-3184)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 343u, 0x08AA15D4u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA15D4u) goto L_08AA15D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA15D4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3874,13 +5159,39 @@ L_08AA15F4: L_08AA160C: aot_gpr_31 = (0x08AA1614u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 348u, 0x08AA1614u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1614u) goto L_08AA1614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1614: aot_gpr_31 = (0x08AA161Cu); ctx.gpr[22] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 349u, 0x08AA161Cu, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA161Cu) goto L_08AA161C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA161C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(616))); ctx.gpr[23] = (aot_gpr_2 | 0u); @@ -3891,26 +5202,78 @@ L_08AA161C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AA1640u); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 350u, 0x08AA1640u, 0x08972FA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 642u, 0x08972FA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1640u) goto L_08AA1640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1640: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AA164Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 351u, 0x08AA164Cu, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA164Cu) goto L_08AA164C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA164C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AA1658u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 352u, 0x08AA1658u, 0x089D8830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 101u, 0x089D8830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1658u) goto L_08AA1658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1658: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AA1664u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 353u, 0x08AA1664u, 0x08972F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 638u, 0x08972F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1664u) goto L_08AA1664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1664: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-3208))); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -3939,13 +5302,39 @@ L_08AA1680: L_08AA1698: aot_gpr_31 = (0x08AA16A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 357u, 0x08AA16A0u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA16A0u) goto L_08AA16A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA16A0: aot_gpr_31 = (0x08AA16A8u); ctx.gpr[18] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 358u, 0x08AA16A8u, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA16A8u) goto L_08AA16A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA16A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(616))); ctx.gpr[22] = (aot_gpr_2 | 0u); @@ -3956,26 +5345,78 @@ L_08AA16A8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AA16CCu); aot_gpr_5 = (aot_gpr_5 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 359u, 0x08AA16CCu, 0x08972FA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 642u, 0x08972FA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA16CCu) goto L_08AA16CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA16CC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA16D8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 360u, 0x08AA16D8u, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA16D8u) goto L_08AA16D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA16D8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AA16E4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 361u, 0x08AA16E4u, 0x089D8830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 101u, 0x089D8830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA16E4u) goto L_08AA16E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA16E4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AA16F0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 362u, 0x08AA16F0u, 0x08972F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 638u, 0x08972F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA16F0u) goto L_08AA16F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA16F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-3208))); { const bool branch_taken = 0u == 0u; @@ -4000,8 +5441,21 @@ L_08AA170C: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(392), static_cast(0u)); aot_gpr_31 = (0x08AA172Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 365u, 0x08AA172Cu, 0x0887F39Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 700u, 0x0887F39Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA172Cu) goto L_08AA172C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA172C: aot_gpr_2 = (ctx.gpr[21] | 0u); { std::uint32_t aot_run_words[9]{}; @@ -4018,8 +5472,8 @@ L_08AA172C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA175C: @@ -4032,8 +5486,21 @@ L_08AA175C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AA1780u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 367u, 0x08AA1780u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1780u) goto L_08AA1780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1780: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4058,15 +5525,41 @@ L_08AA1794: L_08AA179C: aot_gpr_31 = (0x08AA17A4u); aot_gpr_4 = (aot_gpr_2 + static_cast(1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 371u, 0x08AA17A4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA17A4u) goto L_08AA17A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA17A4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(620), aot_gpr_2); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AA17B4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 372u, 0x08AA17B4u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA17B4u) goto L_08AA17B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA17B4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4076,8 +5569,8 @@ L_08AA17B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA17C8: @@ -4126,8 +5619,21 @@ L_08AA180C: L_08AA1810: aot_gpr_31 = (0x08AA1818u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(620))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 380u, 0x08AA1818u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1818u) goto L_08AA1818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1818: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(620))); aot_gpr_31 = (0x08AA1824u); @@ -4146,15 +5652,15 @@ L_08AA1828: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA183C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(620))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA1844: @@ -4172,8 +5678,21 @@ L_08AA1844: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AA187Cu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 385u, 0x08AA187Cu, 0x0885F634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 886u, 0x0885F634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA187Cu) goto L_08AA187C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA187C: aot_gpr_4 = (aot_gpr_2 + static_cast(16)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -4186,8 +5705,8 @@ L_08AA187C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA18A8: @@ -4353,8 +5872,8 @@ L_08AA19D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA19E8: @@ -4529,8 +6048,8 @@ L_08AA1B30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA1B48: @@ -4541,8 +6060,21 @@ L_08AA1B48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AA1B64u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 430u, 0x08AA1B64u, 0x0885F634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 886u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 886u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 886u, 0x0885F634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1B64u) goto L_08AA1B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1B64: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4574,8 +6106,8 @@ L_08AA1B94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA1BA4: @@ -4710,8 +6242,8 @@ L_08AA1CA4: goto L_08AA1CC0; L_08AA1CC0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA1CC8: @@ -4888,8 +6420,21 @@ L_08AA1E60: } L_08AA1E9C: aot_gpr_31 = (0x08AA1EA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 465u, 0x08AA1EA4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA1EA4u) goto L_08AA1EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA1EA4: aot_gpr_6 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_6 == 0u; @@ -5029,8 +6574,8 @@ L_08AA1FC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA1FE0: @@ -5356,8 +6901,8 @@ L_08AA22BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA22DC: @@ -5552,8 +7097,8 @@ L_08AA23EC: goto L_08AA23F0; L_08AA23F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA23F8: @@ -5562,16 +7107,29 @@ L_08AA23F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AA240Cu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 540u, 0x08AA240Cu, 0x089452D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 186u, 0x089452D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA240Cu) goto L_08AA240C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA240C: aot_gpr_2 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2420: @@ -5580,16 +7138,29 @@ L_08AA2420: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AA2434u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 542u, 0x08AA2434u, 0x089452E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 187u, 0x089452E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2434u) goto L_08AA2434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2434: aot_gpr_2 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2448: @@ -5600,8 +7171,21 @@ L_08AA2448: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AA2464u); ctx.gpr[17] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 544u, 0x08AA2464u, 0x089452F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 188u, 0x089452F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2464u) goto L_08AA2464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2464: aot_gpr_4 = (aot_gpr_2 & ctx.gpr[17]); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5632,8 +7216,8 @@ L_08AA2480: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2498: @@ -5660,8 +7244,8 @@ L_08AA24B8: goto L_08AA24BC; L_08AA24BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA24C4: @@ -5717,8 +7301,21 @@ L_08AA253C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_gpr_31 = (0x08AA2560u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 557u, 0x08AA2560u, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2560u) goto L_08AA2560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2560: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -5751,8 +7348,21 @@ L_08AA258C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); aot_gpr_31 = (0x08AA259Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 561u, 0x08AA259Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA259Cu) goto L_08AA259C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA259C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); goto L_08AA25A0; @@ -5779,15 +7389,15 @@ L_08AA25B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA25D8: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-3208), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA25E0: @@ -5807,8 +7417,21 @@ L_08AA25F8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AA2608u); aot_gpr_5 = (aot_gpr_5 + static_cast(11248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 567u, 0x08AA2608u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2608u) goto L_08AA2608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2608: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5829,8 +7452,21 @@ L_08AA261C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AA262Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(10336)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 570u, 0x08AA262Cu, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA262Cu) goto L_08AA262C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA262C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5851,8 +7487,21 @@ L_08AA2640: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AA2650u); aot_gpr_5 = (aot_gpr_5 + static_cast(11556)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 573u, 0x08AA2650u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2650u) goto L_08AA2650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2650: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5873,8 +7522,21 @@ L_08AA2664: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AA2674u); aot_gpr_5 = (aot_gpr_5 + static_cast(10852)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 576u, 0x08AA2674u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2674u) goto L_08AA2674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2674: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5895,8 +7557,21 @@ L_08AA2688: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AA2698u); aot_gpr_5 = (aot_gpr_5 + static_cast(10852)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 579u, 0x08AA2698u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2698u) goto L_08AA2698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2698: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5909,14 +7584,27 @@ L_08AA26A0: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AA26B0u); aot_gpr_5 = (aot_gpr_5 + static_cast(9916)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 581u, 0x08AA26B0u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA26B0u) goto L_08AA26B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA26B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA26BC: @@ -5929,8 +7617,21 @@ L_08AA26BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AA26E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 583u, 0x08AA26E0u, 0x08A39B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 403u, 0x08A39B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA26E0u) goto L_08AA26E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA26E0: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(0u)); aot_gpr_5 = (2218u << 16u); @@ -5939,14 +7640,40 @@ L_08AA26E0: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AA26FCu); aot_gpr_5 = (aot_gpr_5 + static_cast(12128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 584u, 0x08AA26FCu, 0x0881DCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 248u, 0x0881DCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA26FCu) goto L_08AA26FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA26FC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3160)); aot_gpr_31 = (0x08AA2708u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 585u, 0x08AA2708u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2708u) goto L_08AA2708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2708: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[7] = (ctx.gpr[18] | 0u); @@ -6025,8 +7752,21 @@ L_08AA2768: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2778u); aot_gpr_5 = (aot_gpr_5 + static_cast(21820)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 596u, 0x08AA2778u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2778u) goto L_08AA2778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2778: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6039,8 +7779,21 @@ L_08AA2780: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA2790u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 598u, 0x08AA2790u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2790u) goto L_08AA2790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2790: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6053,8 +7806,21 @@ L_08AA2798: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA27A8u); aot_gpr_5 = (aot_gpr_5 + static_cast(21820)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 600u, 0x08AA27A8u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA27A8u) goto L_08AA27A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA27A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6067,8 +7833,21 @@ L_08AA27B0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA27C0u); aot_gpr_5 = (aot_gpr_5 + static_cast(21540)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 602u, 0x08AA27C0u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA27C0u) goto L_08AA27C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA27C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6080,8 +7859,21 @@ L_08AA27C8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3148)); aot_gpr_31 = (0x08AA27D4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 604u, 0x08AA27D4u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA27D4u) goto L_08AA27D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA27D4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6093,13 +7885,39 @@ L_08AA27DC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA27E8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 606u, 0x08AA27E8u, 0x089D885Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 102u, 0x089D885Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA27E8u) goto L_08AA27E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA27E8: aot_gpr_31 = (0x08AA27F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 607u, 0x08AA27F0u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA27F0u) goto L_08AA27F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA27F0: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (0u | 0u); @@ -6112,8 +7930,21 @@ L_08AA27F8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3144)); aot_gpr_31 = (0x08AA2804u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 609u, 0x08AA2804u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2804u) goto L_08AA2804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2804: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6126,8 +7957,21 @@ L_08AA280C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA281Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(21468)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 611u, 0x08AA281Cu, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA281Cu) goto L_08AA281C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA281C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6139,8 +7983,21 @@ L_08AA2824: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2830u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 613u, 0x08AA2830u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2830u) goto L_08AA2830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2830: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -6164,8 +8021,8 @@ L_08AA2844: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2860: @@ -6178,8 +8035,21 @@ L_08AA2860: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AA2884u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 617u, 0x08AA2884u, 0x08A39B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 403u, 0x08A39B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2884u) goto L_08AA2884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2884: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(0u)); aot_gpr_5 = (2218u << 16u); @@ -6188,15 +8058,41 @@ L_08AA2884: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AA28A0u); aot_gpr_5 = (aot_gpr_5 + static_cast(12128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 618u, 0x08AA28A0u, 0x0881DCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 248u, 0x0881DCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA28A0u) goto L_08AA28A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA28A0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3540)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA28B0u); aot_gpr_6 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 619u, 0x08AA28B0u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA28B0u) goto L_08AA28B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA28B0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6209,8 +8105,21 @@ L_08AA28B8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA28C8u); aot_gpr_5 = (aot_gpr_5 + static_cast(23164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 621u, 0x08AA28C8u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA28C8u) goto L_08AA28C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA28C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6223,8 +8132,21 @@ L_08AA28D0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA28E0u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 623u, 0x08AA28E0u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA28E0u) goto L_08AA28E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA28E0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6237,8 +8159,21 @@ L_08AA28E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA28F8u); aot_gpr_5 = (aot_gpr_5 + static_cast(22940)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 625u, 0x08AA28F8u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA28F8u) goto L_08AA28F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA28F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6250,8 +8185,21 @@ L_08AA2900: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3160)); aot_gpr_31 = (0x08AA290Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 627u, 0x08AA290Cu, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA290Cu) goto L_08AA290C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA290C: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[7] = (ctx.gpr[18] | 0u); @@ -6330,8 +8278,21 @@ L_08AA296C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA297Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(21820)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 638u, 0x08AA297Cu, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA297Cu) goto L_08AA297C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA297C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6344,8 +8305,21 @@ L_08AA2984: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA2994u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 640u, 0x08AA2994u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2994u) goto L_08AA2994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2994: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6358,8 +8332,21 @@ L_08AA299C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA29ACu); aot_gpr_5 = (aot_gpr_5 + static_cast(21820)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 642u, 0x08AA29ACu, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA29ACu) goto L_08AA29AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA29AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6372,8 +8359,21 @@ L_08AA29B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA29C4u); aot_gpr_5 = (aot_gpr_5 + static_cast(21540)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 644u, 0x08AA29C4u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA29C4u) goto L_08AA29C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA29C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6385,8 +8385,21 @@ L_08AA29CC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3148)); aot_gpr_31 = (0x08AA29D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 646u, 0x08AA29D8u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA29D8u) goto L_08AA29D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA29D8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6398,13 +8411,39 @@ L_08AA29E0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA29ECu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 648u, 0x08AA29ECu, 0x089D885Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 102u, 0x089D885Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA29ECu) goto L_08AA29EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA29EC: aot_gpr_31 = (0x08AA29F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 649u, 0x08AA29F4u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA29F4u) goto L_08AA29F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA29F4: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (0u | 0u); @@ -6417,8 +8456,21 @@ L_08AA29FC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3144)); aot_gpr_31 = (0x08AA2A08u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 651u, 0x08AA2A08u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2A08u) goto L_08AA2A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2A08: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6431,8 +8483,21 @@ L_08AA2A10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2A20u); aot_gpr_5 = (aot_gpr_5 + static_cast(21468)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 653u, 0x08AA2A20u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2A20u) goto L_08AA2A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2A20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6444,8 +8509,21 @@ L_08AA2A28: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2A34u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 655u, 0x08AA2A34u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2A34u) goto L_08AA2A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2A34: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -6469,8 +8547,8 @@ L_08AA2A48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2A64: @@ -6483,15 +8561,41 @@ L_08AA2A64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AA2A88u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 659u, 0x08AA2A88u, 0x08A39B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 403u, 0x08A39B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2A88u) goto L_08AA2A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2A88: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-3136)); aot_gpr_31 = (0x08AA2A98u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 660u, 0x08AA2A98u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2A98u) goto L_08AA2A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2A98: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[7] = (ctx.gpr[18] | 0u); @@ -6562,8 +8666,21 @@ L_08AA2AEC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2AFCu); aot_gpr_5 = (aot_gpr_5 + static_cast(24520)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 670u, 0x08AA2AFCu, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2AFCu) goto L_08AA2AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2AFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6576,8 +8693,21 @@ L_08AA2B04: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AA2B14u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 672u, 0x08AA2B14u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2B14u) goto L_08AA2B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2B14: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6590,8 +8720,21 @@ L_08AA2B1C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2B2Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(22940)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 674u, 0x08AA2B2Cu, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2B2Cu) goto L_08AA2B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2B2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6603,8 +8746,21 @@ L_08AA2B34: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3160)); aot_gpr_31 = (0x08AA2B40u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 676u, 0x08AA2B40u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2B40u) goto L_08AA2B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2B40: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6617,8 +8773,21 @@ L_08AA2B48: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2B58u); aot_gpr_5 = (aot_gpr_5 + static_cast(21540)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 678u, 0x08AA2B58u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2B58u) goto L_08AA2B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2B58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6630,8 +8799,21 @@ L_08AA2B60: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3148)); aot_gpr_31 = (0x08AA2B6Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 680u, 0x08AA2B6Cu, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2B6Cu) goto L_08AA2B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2B6C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6643,13 +8825,39 @@ L_08AA2B74: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2B80u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 682u, 0x08AA2B80u, 0x089D885Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 102u, 0x089D885Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2B80u) goto L_08AA2B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2B80: aot_gpr_31 = (0x08AA2B88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 683u, 0x08AA2B88u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2B88u) goto L_08AA2B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2B88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6661,8 +8869,21 @@ L_08AA2B90: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3144)); aot_gpr_31 = (0x08AA2B9Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 685u, 0x08AA2B9Cu, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2B9Cu) goto L_08AA2B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2B9C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6675,8 +8896,21 @@ L_08AA2BA4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2BB4u); aot_gpr_5 = (aot_gpr_5 + static_cast(24580)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 687u, 0x08AA2BB4u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2BB4u) goto L_08AA2BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2BB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6688,8 +8922,21 @@ L_08AA2BBC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2BC8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 689u, 0x08AA2BC8u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2BC8u) goto L_08AA2BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2BC8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2BD4u); @@ -6706,8 +8953,8 @@ L_08AA2BD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2BF0: @@ -6718,8 +8965,21 @@ L_08AA2BF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AA2C0Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 692u, 0x08AA2C0Cu, 0x08A39B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 403u, 0x08A39B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2C0Cu) goto L_08AA2C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2C0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); aot_gpr_5 = (2218u << 16u); @@ -6728,14 +8988,40 @@ L_08AA2C0C: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AA2C28u); aot_gpr_5 = (aot_gpr_5 + static_cast(12128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 693u, 0x08AA2C28u, 0x0881DCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 248u, 0x0881DCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2C28u) goto L_08AA2C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2C28: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3160)); aot_gpr_31 = (0x08AA2C34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 694u, 0x08AA2C34u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2C34u) goto L_08AA2C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2C34: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6756,8 +9042,21 @@ L_08AA2C48: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2C58u); aot_gpr_5 = (aot_gpr_5 + static_cast(22472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 697u, 0x08AA2C58u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2C58u) goto L_08AA2C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2C58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6770,8 +9069,21 @@ L_08AA2C60: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2C70u); aot_gpr_5 = (aot_gpr_5 + static_cast(22192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 699u, 0x08AA2C70u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2C70u) goto L_08AA2C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2C70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6783,8 +9095,21 @@ L_08AA2C78: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3148)); aot_gpr_31 = (0x08AA2C84u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 701u, 0x08AA2C84u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2C84u) goto L_08AA2C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2C84: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6805,8 +9130,21 @@ L_08AA2C98: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2CA8u); aot_gpr_5 = (aot_gpr_5 + static_cast(23928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 704u, 0x08AA2CA8u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2CA8u) goto L_08AA2CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2CA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6819,8 +9157,21 @@ L_08AA2CB0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2CC0u); aot_gpr_5 = (aot_gpr_5 + static_cast(23452)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 706u, 0x08AA2CC0u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2CC0u) goto L_08AA2CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2CC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6832,8 +9183,21 @@ L_08AA2CC8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3144)); aot_gpr_31 = (0x08AA2CD4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 708u, 0x08AA2CD4u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2CD4u) goto L_08AA2CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2CD4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6846,8 +9210,21 @@ L_08AA2CDC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2CECu); aot_gpr_5 = (aot_gpr_5 + static_cast(23392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 710u, 0x08AA2CECu, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2CECu) goto L_08AA2CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2CEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6859,8 +9236,21 @@ L_08AA2CF4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2D00u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 712u, 0x08AA2D00u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2D00u) goto L_08AA2D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2D00: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2D0Cu); @@ -6876,8 +9266,8 @@ L_08AA2D0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2D24: @@ -6888,8 +9278,21 @@ L_08AA2D24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AA2D40u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 715u, 0x08AA2D40u, 0x08A39B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 403u, 0x08A39B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2D40u) goto L_08AA2D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2D40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); aot_gpr_5 = (2218u << 16u); @@ -6898,15 +9301,41 @@ L_08AA2D40: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AA2D5Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(12128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 716u, 0x08AA2D5Cu, 0x0881DCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 248u, 0x0881DCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2D5Cu) goto L_08AA2D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2D5C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3840)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA2D6Cu); aot_gpr_6 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 717u, 0x08AA2D6Cu, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2D6Cu) goto L_08AA2D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2D6C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6919,8 +9348,21 @@ L_08AA2D74: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2D84u); aot_gpr_5 = (aot_gpr_5 + static_cast(22940)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 719u, 0x08AA2D84u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2D84u) goto L_08AA2D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2D84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6932,8 +9374,21 @@ L_08AA2D8C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3160)); aot_gpr_31 = (0x08AA2D98u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 721u, 0x08AA2D98u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2D98u) goto L_08AA2D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2D98: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[7] = (ctx.gpr[17] | 0u); @@ -7012,8 +9467,21 @@ L_08AA2DF8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2E08u); aot_gpr_5 = (aot_gpr_5 + static_cast(24212)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 732u, 0x08AA2E08u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2E08u) goto L_08AA2E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2E08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7026,8 +9494,21 @@ L_08AA2E10: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2E20u); aot_gpr_5 = (aot_gpr_5 + static_cast(23700)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 734u, 0x08AA2E20u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2E20u) goto L_08AA2E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2E20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7039,8 +9520,21 @@ L_08AA2E28: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3148)); aot_gpr_31 = (0x08AA2E34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 736u, 0x08AA2E34u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2E34u) goto L_08AA2E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2E34: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7061,8 +9555,21 @@ L_08AA2E48: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2E58u); aot_gpr_5 = (aot_gpr_5 + static_cast(23928)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 739u, 0x08AA2E58u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2E58u) goto L_08AA2E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2E58: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7075,8 +9582,21 @@ L_08AA2E60: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2E70u); aot_gpr_5 = (aot_gpr_5 + static_cast(23452)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 741u, 0x08AA2E70u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2E70u) goto L_08AA2E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2E70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7088,8 +9608,21 @@ L_08AA2E78: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3144)); aot_gpr_31 = (0x08AA2E84u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 743u, 0x08AA2E84u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2E84u) goto L_08AA2E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2E84: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7102,8 +9635,21 @@ L_08AA2E8C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2E9Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(23392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 745u, 0x08AA2E9Cu, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2E9Cu) goto L_08AA2E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2E9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7115,8 +9661,21 @@ L_08AA2EA4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2EB0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 747u, 0x08AA2EB0u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2EB0u) goto L_08AA2EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2EB0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2EBCu); @@ -7132,8 +9691,8 @@ L_08AA2EBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2ED4: @@ -7145,14 +9704,40 @@ L_08AA2ED4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AA2EF4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 750u, 0x08AA2EF4u, 0x08A39B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 403u, 0x08A39B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2EF4u) goto L_08AA2EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2EF4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3128)); aot_gpr_31 = (0x08AA2F00u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 751u, 0x08AA2F00u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2F00u) goto L_08AA2F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2F00: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7165,8 +9750,21 @@ L_08AA2F08: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2F18u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 753u, 0x08AA2F18u, 0x089452D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 186u, 0x089452D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2F18u) goto L_08AA2F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2F18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7177,14 +9775,40 @@ L_08AA2F18: L_08AA2F20: aot_gpr_31 = (0x08AA2F28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 755u, 0x08AA2F28u, 0x08A39B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 403u, 0x08A39B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2F28u) goto L_08AA2F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2F28: aot_gpr_5 = (ctx.gpr[28] + static_cast(-3120)); aot_gpr_31 = (0x08AA2F34u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 756u, 0x08AA2F34u, 0x08B58C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 217u, 0x08B58C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2F34u) goto L_08AA2F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2F34: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7196,8 +9820,21 @@ L_08AA2F3C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA2F48u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 758u, 0x08AA2F48u, 0x089452D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 186u, 0x089452D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2F48u) goto L_08AA2F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2F48: aot_gpr_2 = (ctx.gpr[16] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7208,8 +9845,8 @@ L_08AA2F48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2F60: @@ -7220,8 +9857,21 @@ L_08AA2F60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AA2F7Cu); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 760u, 0x08AA2F7Cu, 0x08B3E084u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 498u, 0x08B3E084u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA2F7Cu) goto L_08AA2F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA2F7C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(3))); aot_gpr_5 = (0u | 255u); @@ -7253,8 +9903,8 @@ L_08AA2FA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA2FB4: @@ -7339,8 +9989,8 @@ L_08AA3060: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3070: @@ -7425,8 +10075,8 @@ L_08AA311C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA312C: @@ -7511,8 +10161,8 @@ L_08AA31D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA31E8: @@ -7597,8 +10247,8 @@ L_08AA3294: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA32A4: @@ -7620,8 +10270,21 @@ L_08AA32A4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA32F4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 805u, 0x08AA32F4u, 0x0885F690u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 890u, 0x0885F690u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA32F4u) goto L_08AA32F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA32F4: ctx.gpr[20] = (ctx.gpr[16] | 0u); ctx.gpr[18] = (0u | 0u); @@ -7642,8 +10305,21 @@ L_08AA3310: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA3320u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 808u, 0x08AA3320u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3320u) goto L_08AA3320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3320: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] + static_cast(4)); @@ -7676,8 +10352,21 @@ L_08AA3354: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA3364u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 812u, 0x08AA3364u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3364u) goto L_08AA3364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3364: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] + static_cast(4)); @@ -7707,8 +10396,21 @@ L_08AA3390: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA33A8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 815u, 0x08AA33A8u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA33A8u) goto L_08AA33A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA33A8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(631)))))); ctx.gpr[17] = (0u | 0u); @@ -7725,16 +10427,42 @@ L_08AA33BC: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08AA33CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 817u, 0x08AA33CCu, 0x08A53688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 639u, 0x08A53688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA33CCu) goto L_08AA33CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA33CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(616))); aot_gpr_5 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08AA33E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 818u, 0x08AA33E0u, 0x0887F414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 706u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 706u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 706u, 0x0887F414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA33E0u) goto L_08AA33E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA33E0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(631)))))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -7808,8 +10536,21 @@ L_08AA3460: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); aot_gpr_31 = (0x08AA3484u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 826u, 0x08AA3484u, 0x08972D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 614u, 0x08972D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3484u) goto L_08AA3484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3484: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -7868,26 +10609,78 @@ L_08AA34E8: ctx.gpr[23] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AA34F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 833u, 0x08AA34F4u, 0x089730ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 658u, 0x089730ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA34F4u) goto L_08AA34F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA34F4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08AA3500u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 834u, 0x08AA3500u, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3500u) goto L_08AA3500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3500: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(40))); aot_gpr_31 = (0x08AA350Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 835u, 0x08AA350Cu, 0x089D8830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 101u, 0x089D8830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA350Cu) goto L_08AA350C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA350C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08AA3518u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 836u, 0x08AA3518u, 0x08946130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 389u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 389u, 0x08946130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3518u) goto L_08AA3518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3518: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(88))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -7896,50 +10689,141 @@ L_08AA3518: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AA3538u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 837u, 0x08AA3538u, 0x08973008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 648u, 0x08973008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3538u) goto L_08AA3538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3538: aot_gpr_4 = (ctx.gpr[23] + static_cast(28)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA3548u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 838u, 0x08AA3548u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3548u) goto L_08AA3548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3548: aot_gpr_4 = (ctx.gpr[23] + static_cast(32)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA3558u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 839u, 0x08AA3558u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3558u) goto L_08AA3558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3558: aot_gpr_4 = (ctx.gpr[23] + static_cast(4)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA3568u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 840u, 0x08AA3568u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3568u) goto L_08AA3568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3568: aot_gpr_4 = (ctx.gpr[23] + static_cast(8)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA3578u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 841u, 0x08AA3578u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3578u) goto L_08AA3578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3578: aot_gpr_4 = (ctx.gpr[23] + static_cast(12)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA3588u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 842u, 0x08AA3588u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3588u) goto L_08AA3588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3588: aot_gpr_4 = (ctx.gpr[23] + static_cast(24)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AA3598u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 843u, 0x08AA3598u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3598u) goto L_08AA3598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3598: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); goto L_08AA359C; @@ -7968,8 +10852,8 @@ L_08AA35B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA35DC: @@ -7993,15 +10877,28 @@ L_08AA3600: ctx.gpr[7] = (0u | 40u); aot_gpr_31 = (0x08AA3618u); aot_gpr_5 = (aot_gpr_5 + static_cast(9884)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 849u, 0x08AA3618u, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3618u) goto L_08AA3618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3618: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3628: @@ -8093,8 +10990,21 @@ L_08AA36E8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x08AA36F4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 859u, 0x08AA36F4u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA36F4u) goto L_08AA36F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA36F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7868))); aot_gpr_5 = (0u | 4u); @@ -8141,8 +11051,8 @@ L_08AA373C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA375C: @@ -8171,8 +11081,8 @@ L_08AA37B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA37C4: @@ -8296,8 +11206,21 @@ L_08AA38C4: aot_gpr_5 = (0u | 168u); aot_gpr_31 = (0x08AA38DCu); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 877u, 0x08AA38DCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA38DCu) goto L_08AA38DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA38DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8321,8 +11244,8 @@ L_08AA38F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3900: @@ -8461,8 +11384,8 @@ L_08AA3A78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3A9C: @@ -8506,8 +11429,21 @@ L_08AA3ADC: L_08AA3AE4: aot_gpr_31 = (0x08AA3AECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 897u, 0x08AA3AECu, 0x089BABACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 580u, 0x089BABACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3AECu) goto L_08AA3AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3AEC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8592,8 +11528,8 @@ L_08AA3B74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3B90: @@ -8635,8 +11571,8 @@ L_08AA3BD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3BE4: @@ -8754,8 +11690,21 @@ L_08AA3CD0: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA3CE0u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 928u, 0x08AA3CE0u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3CE0u) goto L_08AA3CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3CE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8793,8 +11742,8 @@ L_08AA3D08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3D1C: @@ -8832,8 +11781,8 @@ L_08AA3D54: } L_08AA3D68: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3D70: @@ -8874,8 +11823,8 @@ L_08AA3DB4: } L_08AA3DC8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3DD0: @@ -8914,8 +11863,8 @@ L_08AA3E04: goto L_08AA3E08; L_08AA3E08: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA3E10: @@ -8974,8 +11923,21 @@ L_08AA3E90: aot_gpr_4 = (ctx.gpr[19] + static_cast(8)); aot_gpr_31 = (0x08AA3EA0u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 954u, 0x08AA3EA0u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3EA0u) goto L_08AA3EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3EA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8998,8 +11960,21 @@ L_08AA3EB4: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AA3EC4u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0167->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0167_entry, 958u, 0x08AA3EC4u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA3EC4u) goto L_08AA3EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA3EC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0168.cpp b/profiles/vcs/generated/generated_unit_0168.cpp index 105b17d..609bde5 100644 --- a/profiles/vcs/generated/generated_unit_0168.cpp +++ b/profiles/vcs/generated/generated_unit_0168.cpp @@ -708,6 +708,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AA4000u; + if (local_delta_v813 >= 16356u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -732,8 +756,8 @@ L_08AA4000: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA401C: @@ -747,8 +771,8 @@ L_08AA401C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4040: @@ -762,8 +786,8 @@ L_08AA4040: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4064: @@ -772,8 +796,8 @@ L_08AA4064: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4078: @@ -782,8 +806,8 @@ L_08AA4078: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA408C: @@ -792,8 +816,8 @@ L_08AA408C: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA40A0: @@ -802,8 +826,8 @@ L_08AA40A0: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA40B4: @@ -812,8 +836,8 @@ L_08AA40B4: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA40C8: @@ -822,8 +846,8 @@ L_08AA40C8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA40DC: @@ -832,8 +856,8 @@ L_08AA40DC: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA40F0: @@ -853,8 +877,21 @@ L_08AA40F0: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); ctx.gpr[31] = (0x08AA4134u); aot_gpr_5 = (aot_gpr_17 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 12u, 0x08AA4134u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4134u) goto L_08AA4134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4134: aot_gpr_4 = (aot_gpr_17 + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1201,8 +1238,8 @@ L_08AA4404: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA44CC: @@ -1211,8 +1248,21 @@ L_08AA44CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08AA44E0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 30u, 0x08AA44E0u, 0x08A7F694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 624u, 0x08A7F694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA44E0u) goto L_08AA44E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA44E0: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25844)); @@ -1222,8 +1272,8 @@ L_08AA44E0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4500: @@ -1236,8 +1286,21 @@ L_08AA4500: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(132), aot_run_words); } ctx.gpr[31] = (0x08AA4538u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 32u, 0x08AA4538u, 0x08A7F85Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 650u, 0x08A7F85Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4538u) goto L_08AA4538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4538: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25844)); @@ -1282,8 +1345,21 @@ L_08AA45B8: aot_gpr_6 = (ctx.gpr[18] - aot_gpr_17); ctx.gpr[31] = (0x08AA45C4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 35u, 0x08AA45C4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA45C4u) goto L_08AA45C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA45C4: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(7), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(7)))))); @@ -1393,8 +1469,21 @@ L_08AA46D4: aot_gpr_6 = (aot_gpr_17 - ctx.gpr[21]); ctx.gpr[31] = (0x08AA46E4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 44u, 0x08AA46E4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA46E4u) goto L_08AA46E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA46E4: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(27), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(27)))))); @@ -1420,8 +1509,21 @@ L_08AA4714: aot_gpr_6 = (aot_gpr_17 - ctx.gpr[22]); ctx.gpr[31] = (0x08AA4724u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 47u, 0x08AA4724u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4724u) goto L_08AA4724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4724: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(33), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(33)))))); @@ -1447,8 +1549,21 @@ L_08AA4754: aot_gpr_6 = (aot_gpr_17 - ctx.gpr[30]); ctx.gpr[31] = (0x08AA4764u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 50u, 0x08AA4764u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4764u) goto L_08AA4764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4764: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(39), static_cast(0u)); @@ -1475,8 +1590,21 @@ L_08AA4798: aot_gpr_6 = (aot_gpr_17 - ctx.gpr[18]); ctx.gpr[31] = (0x08AA47A8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 53u, 0x08AA47A8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA47A8u) goto L_08AA47A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA47A8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(45), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(45)))))); @@ -1509,8 +1637,21 @@ L_08AA47F8: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08AA4804u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 56u, 0x08AA4804u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4804u) goto L_08AA4804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4804: aot_gpr_17 = (aot_gpr_17 + static_cast(32)); ctx.gpr[21] = (ctx.gpr[21] + static_cast(-1)); @@ -1675,16 +1816,16 @@ L_08AA494C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4980: ctx.gpr[2] = (2218u << 16u); jump_target = ctx.gpr[31]; ctx.gpr[2] = (ctx.gpr[2] + static_cast(18816)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA498C: @@ -1696,8 +1837,8 @@ L_08AA499C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA49A8: @@ -1718,8 +1859,21 @@ L_08AA49CC: L_08AA49D4: ctx.gpr[31] = (0x08AA49DCu); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 77u, 0x08AA49DCu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA49DCu) goto L_08AA49DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA49DC: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[18] = (0u | 1u); @@ -1729,8 +1883,21 @@ L_08AA49DC: L_08AA49E4: ctx.gpr[31] = (0x08AA49ECu); aot_gpr_17 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 79u, 0x08AA49ECu, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA49ECu) goto L_08AA49EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA49EC: if (ctx.gpr[2] == aot_gpr_16) { aot_gpr_17 = (0u | 1u); @@ -1739,8 +1906,21 @@ L_08AA49EC: goto L_08AA49F4; L_08AA49F4: ctx.gpr[31] = (0x08AA49FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 81u, 0x08AA49FCu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA49FCu) goto L_08AA49FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA49FC: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -1794,8 +1974,8 @@ L_08AA4A34: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4A54: @@ -1817,14 +1997,40 @@ L_08AA4A70: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(108), aot_gpr_4); ctx.gpr[31] = (0x08AA4A84u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 92u, 0x08AA4A84u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4A84u) goto L_08AA4A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4A84: aot_gpr_4 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08AA4A90u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 93u, 0x08AA4A90u, 0x08A7FB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 682u, 0x08A7FB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4A90u) goto L_08AA4A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4A90: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1847,15 +2053,15 @@ L_08AA4AA4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4AB8: jump_target = ctx.gpr[31]; ctx.gpr[2] = (0u | 3u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4AC0: @@ -1868,8 +2074,21 @@ L_08AA4AC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08AA4AE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 98u, 0x08AA4AE4u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4AE4u) goto L_08AA4AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4AE4: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1891,8 +2110,8 @@ L_08AA4AFC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4B0C: @@ -1921,8 +2140,8 @@ L_08AA4B38: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4B44: @@ -1937,8 +2156,21 @@ L_08AA4B44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[31]); ctx.gpr[31] = (0x08AA4B70u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 106u, 0x08AA4B70u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4B70u) goto L_08AA4B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4B70: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -1989,8 +2221,8 @@ L_08AA4BCC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4BE0: @@ -1999,14 +2231,27 @@ L_08AA4BE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[31]); ctx.gpr[31] = (0x08AA4BF4u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 113u, 0x08AA4BF4u, 0x08A7FA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 660u, 0x08A7FA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4BF4u) goto L_08AA4BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4BF4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4C00: @@ -2015,8 +2260,21 @@ L_08AA4C00: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } ctx.gpr[31] = (0x08AA4C1Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 115u, 0x08AA4C1Cu, 0x08A7FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 680u, 0x08A7FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4C1Cu) goto L_08AA4C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4C1C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(31648)); @@ -2024,8 +2282,21 @@ L_08AA4C1C: ctx.gpr[18] = (0u | 0u); ctx.gpr[31] = (0x08AA4C34u); aot_gpr_4 = (0u | 384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 116u, 0x08AA4C34u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4C34u) goto L_08AA4C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4C34: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2038,8 +2309,21 @@ L_08AA4C34: L_08AA4C40: ctx.gpr[31] = (0x08AA4C48u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 118u, 0x08AA4C48u, 0x08A82198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 170u, 0x08A82198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4C48u) goto L_08AA4C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4C48: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(31432)); @@ -2060,8 +2344,8 @@ L_08AA4C60: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4C80: @@ -2072,8 +2356,21 @@ L_08AA4C80: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } ctx.gpr[31] = (0x08AA4CA8u); ctx.gpr[18] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 121u, 0x08AA4CA8u, 0x08A7FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 680u, 0x08A7FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4CA8u) goto L_08AA4CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4CA8: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(31648)); @@ -2083,15 +2380,41 @@ L_08AA4CA8: aot_gpr_6 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08AA4CC8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 122u, 0x08AA4CC8u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4CC8u) goto L_08AA4CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4CC8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), ctx.gpr[18]); aot_gpr_17 = (0u | 0u); ctx.gpr[31] = (0x08AA4CD8u); aot_gpr_4 = (0u | 384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 123u, 0x08AA4CD8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4CD8u) goto L_08AA4CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4CD8: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -2104,8 +2427,21 @@ L_08AA4CD8: L_08AA4CE4: ctx.gpr[31] = (0x08AA4CECu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 125u, 0x08AA4CECu, 0x08A82198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 170u, 0x08A82198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4CECu) goto L_08AA4CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4CEC: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(31432)); @@ -2118,8 +2454,21 @@ L_08AA4D04: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(112), aot_gpr_17); ctx.gpr[31] = (0x08AA4D10u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 127u, 0x08AA4D10u, 0x08A7FC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 692u, 0x08A7FC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4D10u) goto L_08AA4D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4D10: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1352))); aot_gpr_4 = (aot_gpr_16 + static_cast(140)); @@ -2127,15 +2476,41 @@ L_08AA4D10: aot_gpr_5 = (ctx.gpr[18] + static_cast(1332)); ctx.gpr[31] = (0x08AA4D28u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 128u, 0x08AA4D28u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4D28u) goto L_08AA4D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4D28: aot_gpr_4 = (aot_gpr_16 + static_cast(156)); aot_gpr_5 = (ctx.gpr[18] + static_cast(1316)); ctx.gpr[31] = (0x08AA4D38u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 129u, 0x08AA4D38u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4D38u) goto L_08AA4D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4D38: aot_gpr_4 = (0u | 0u); aot_gpr_17 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(10)))))); @@ -2144,8 +2519,21 @@ L_08AA4D38: aot_gpr_5 = (0u | 560u); ctx.gpr[31] = (0x08AA4D54u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 130u, 0x08AA4D54u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4D54u) goto L_08AA4D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4D54: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -2168,13 +2556,39 @@ L_08AA4D70: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08AA4D80u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 134u, 0x08AA4D80u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4D80u) goto L_08AA4D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4D80: ctx.gpr[31] = (0x08AA4D88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 135u, 0x08AA4D88u, 0x0888F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 562u, 0x0888F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4D88u) goto L_08AA4D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4D88: aot_gpr_17 = (0u | 0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(18)); @@ -2194,8 +2608,21 @@ L_08AA4DA4: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08AA4DB4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 138u, 0x08AA4DB4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4DB4u) goto L_08AA4DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4DB4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -2230,8 +2657,8 @@ L_08AA4DE8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4E0C: @@ -2244,8 +2671,21 @@ L_08AA4E0C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); ctx.gpr[31] = (0x08AA4E3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 142u, 0x08AA4E3Cu, 0x08A7FD50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 697u, 0x08A7FD50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4E3Cu) goto L_08AA4E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4E3C: ctx.gpr[20] = (0u | 0u); ctx.gpr[19] = (aot_gpr_29 + static_cast(16)); @@ -2265,8 +2705,21 @@ L_08AA4E58: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08AA4E68u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 145u, 0x08AA4E68u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4E68u) goto L_08AA4E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4E68: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -2300,8 +2753,8 @@ L_08AA4E9C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4EBC: @@ -2351,8 +2804,21 @@ L_08AA4F0C: aot_gpr_5 = (0u | 560u); ctx.gpr[31] = (0x08AA4F28u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 153u, 0x08AA4F28u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4F28u) goto L_08AA4F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4F28: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -2375,8 +2841,21 @@ L_08AA4F44: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08AA4F54u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 157u, 0x08AA4F54u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4F54u) goto L_08AA4F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4F54: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -2387,8 +2866,8 @@ L_08AA4F54: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA4F6C: @@ -2424,8 +2903,21 @@ L_08AA4FC0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(52)))))); ctx.gpr[31] = (0x08AA4FD8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 160u, 0x08AA4FD8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA4FD8u) goto L_08AA4FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA4FD8: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -2457,8 +2949,21 @@ L_08AA500C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(54)))))); ctx.gpr[31] = (0x08AA5024u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 164u, 0x08AA5024u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5024u) goto L_08AA5024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5024: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -2466,8 +2971,21 @@ L_08AA5024: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(56)))))); ctx.gpr[31] = (0x08AA503Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 165u, 0x08AA503Cu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA503Cu) goto L_08AA503C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA503C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); @@ -2495,8 +3013,8 @@ L_08AA5074: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA5090: @@ -2534,8 +3052,21 @@ L_08AA50EC: aot_gpr_5 = (aot_gpr_6 | 0u); ctx.gpr[31] = (0x08AA5100u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 169u, 0x08AA5100u, 0x08A83758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 337u, 0x08A83758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5100u) goto L_08AA5100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5100: aot_gpr_4 = (aot_gpr_16 & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2648,14 +3179,14 @@ L_08AA5228: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA5240: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA5248: @@ -2723,8 +3254,8 @@ L_08AA52CC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA52EC: @@ -2772,8 +3303,21 @@ L_08AA537C: aot_gpr_5 = (aot_gpr_17 | 0u); ctx.gpr[31] = (0x08AA538Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 188u, 0x08AA538Cu, 0x08A82BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 288u, 0x08A82BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA538Cu) goto L_08AA538C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA538C: aot_gpr_4 = (ctx.gpr[18] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2942,8 +3486,8 @@ L_08AA5594: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA55AC: @@ -2955,8 +3499,21 @@ L_08AA55AC: aot_gpr_17 = (aot_gpr_5 | 0u); ctx.gpr[18] = (ctx.gpr[19] + static_cast(28)); ctx.gpr[31] = (0x08AA55DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 198u, 0x08AA55DCu, 0x08A82798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 224u, 0x08A82798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA55DCu) goto L_08AA55DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA55DC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -3080,8 +3637,8 @@ L_08AA56C0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA56DC: @@ -3128,8 +3685,21 @@ L_08AA5768: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); ctx.gpr[31] = (0x08AA5778u); aot_gpr_5 = (ctx.gpr[20] + static_cast(192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 219u, 0x08AA5778u, 0x0885F668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 888u, 0x0885F668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5778u) goto L_08AA5778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5778: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(20))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(60))); @@ -3148,8 +3718,21 @@ L_08AA5788: aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); ctx.gpr[31] = (0x08AA57A4u); aot_gpr_5 = (0u | 128u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 221u, 0x08AA57A4u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA57A4u) goto L_08AA57A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA57A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(60), ctx.gpr[2]); @@ -3333,8 +3916,21 @@ L_08AA58CC: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08AA58DCu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 235u, 0x08AA58DCu, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA58DCu) goto L_08AA58DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA58DC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_16 != aot_gpr_17; @@ -3467,8 +4063,21 @@ L_08AA5978: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08AA5988u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 243u, 0x08AA5988u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5988u) goto L_08AA5988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5988: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_16 != aot_gpr_17; @@ -3637,8 +4246,21 @@ L_08AA5AA8: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08AA5AB8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 250u, 0x08AA5AB8u, 0x089D8B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 139u, 0x089D8B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5AB8u) goto L_08AA5AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5AB8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_16 != aot_gpr_17; @@ -3745,8 +4367,8 @@ L_08AA5B64: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA5BA4: @@ -3783,8 +4405,21 @@ L_08AA5C0C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); ctx.gpr[31] = (0x08AA5C24u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 262u, 0x08AA5C24u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5C24u) goto L_08AA5C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5C24: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -3795,8 +4430,21 @@ L_08AA5C34: aot_gpr_17 = (0u | 0u); ctx.gpr[31] = (0x08AA5C40u); aot_gpr_4 = (0u | 1584u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 264u, 0x08AA5C40u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5C40u) goto L_08AA5C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5C40: aot_gpr_16 = (ctx.gpr[2] | 0u); ctx.gpr[23] = (ctx.gpr[19] + static_cast(240)); @@ -3829,8 +4477,21 @@ L_08AA5C90: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(524))); ctx.gpr[31] = (0x08AA5CA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 266u, 0x08AA5CA4u, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5CA4u) goto L_08AA5CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5CA4: aot_gpr_17 = (aot_gpr_16 | 0u); goto L_08AA5CA8; @@ -3839,8 +4500,21 @@ L_08AA5CA8: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08AA5CB8u); aot_gpr_6 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 268u, 0x08AA5CB8u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5CB8u) goto L_08AA5CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5CB8: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(104), aot_gpr_17); ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(104))); @@ -3945,8 +4619,21 @@ L_08AA5DBC: aot_gpr_4 = (ctx.gpr[20] + static_cast(1284)); ctx.gpr[31] = (0x08AA5DCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 277u, 0x08AA5DCCu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5DCCu) goto L_08AA5DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5DCC: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(38), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(38)))))); @@ -3972,8 +4659,21 @@ L_08AA5E00: aot_gpr_4 = (ctx.gpr[20] + static_cast(1300)); ctx.gpr[31] = (0x08AA5E0Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 280u, 0x08AA5E0Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5E0Cu) goto L_08AA5E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5E0C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(44), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(44)))))); @@ -3999,8 +4699,21 @@ L_08AA5E40: aot_gpr_4 = (ctx.gpr[20] + static_cast(1292)); ctx.gpr[31] = (0x08AA5E4Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 283u, 0x08AA5E4Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5E4Cu) goto L_08AA5E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5E4C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(50), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(50)))))); @@ -4028,8 +4741,21 @@ L_08AA5E84: aot_gpr_4 = (ctx.gpr[20] + static_cast(1216)); ctx.gpr[31] = (0x08AA5E94u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 286u, 0x08AA5E94u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5E94u) goto L_08AA5E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5E94: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(56), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(56)))))); @@ -4062,8 +4788,21 @@ L_08AA5EE8: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08AA5EF4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 289u, 0x08AA5EF4u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5EF4u) goto L_08AA5EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5EF4: aot_gpr_17 = (aot_gpr_17 + static_cast(32)); aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); @@ -4149,8 +4888,21 @@ L_08AA5FA8: L_08AA5FB8: ctx.gpr[31] = (0x08AA5FC0u); aot_gpr_4 = (ctx.gpr[20] + static_cast(1076)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 297u, 0x08AA5FC0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA5FC0u) goto L_08AA5FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA5FC0: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(548))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(92))); @@ -4210,13 +4962,39 @@ L_08AA6048: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); ctx.gpr[31] = (0x08AA605Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 303u, 0x08AA605Cu, 0x08A82438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 204u, 0x08A82438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA605Cu) goto L_08AA605C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA605C: ctx.gpr[31] = (0x08AA6064u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 304u, 0x08AA6064u, 0x08A58D9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 210u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 210u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 210u, 0x08A58D9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6064u) goto L_08AA6064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6064: aot_gpr_16 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[21] + static_cast(10)))))); aot_gpr_4 = (0u | 0u); @@ -4225,8 +5003,21 @@ L_08AA6064: aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); ctx.gpr[31] = (0x08AA6080u); aot_gpr_5 = (0u | 560u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 305u, 0x08AA6080u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6080u) goto L_08AA6080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6080: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -4249,8 +5040,21 @@ L_08AA609C: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08AA60ACu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 309u, 0x08AA60ACu, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA60ACu) goto L_08AA60AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA60AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4264,8 +5068,21 @@ L_08AA60B4: aot_gpr_5 = (ctx.gpr[8] | 0u); ctx.gpr[31] = (0x08AA60C8u); aot_gpr_6 = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 311u, 0x08AA60C8u, 0x08A82438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 204u, 0x08A82438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA60C8u) goto L_08AA60C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA60C8: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(156), aot_run_words); @@ -4283,8 +5100,8 @@ L_08AA60C8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA60FC: @@ -4334,8 +5151,21 @@ L_08AA61A8: ctx.gpr[18] = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08AA61BCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 315u, 0x08AA61BCu, 0x08A82398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 195u, 0x08A82398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA61BCu) goto L_08AA61BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA61BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(352))); aot_gpr_5 = (aot_gpr_4 + static_cast(10)); @@ -4354,8 +5184,21 @@ L_08AA61BC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(758)))))); ctx.gpr[31] = (0x08AA6200u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 316u, 0x08AA6200u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6200u) goto L_08AA6200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6200: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(352))); @@ -4407,8 +5250,21 @@ L_08AA6250: aot_gpr_6 = (aot_gpr_29 + static_cast(760)); ctx.gpr[31] = (0x08AA6260u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 319u, 0x08AA6260u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6260u) goto L_08AA6260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6260: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(760))); @@ -4436,8 +5292,21 @@ L_08AA628C: aot_gpr_6 = (aot_gpr_29 + static_cast(761)); ctx.gpr[31] = (0x08AA629Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 323u, 0x08AA629Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA629Cu) goto L_08AA629C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA629C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(761))); @@ -4464,8 +5333,21 @@ L_08AA62C4: aot_gpr_6 = (aot_gpr_29 + static_cast(762)); ctx.gpr[31] = (0x08AA62D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 327u, 0x08AA62D4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA62D4u) goto L_08AA62D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA62D4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(762))); @@ -4493,8 +5375,21 @@ L_08AA6300: aot_gpr_6 = (aot_gpr_29 + static_cast(763)); ctx.gpr[31] = (0x08AA6310u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 331u, 0x08AA6310u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6310u) goto L_08AA6310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6310: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(763))); @@ -4523,8 +5418,21 @@ L_08AA6340: aot_gpr_6 = (aot_gpr_29 + static_cast(764)); ctx.gpr[31] = (0x08AA6350u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 335u, 0x08AA6350u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6350u) goto L_08AA6350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6350: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(764))); @@ -4730,8 +5638,21 @@ L_08AA64A0: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08AA64F4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 343u, 0x08AA64F4u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA64F4u) goto L_08AA64F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA64F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(4))); @@ -4740,8 +5661,21 @@ L_08AA64F4: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08AA6510u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 344u, 0x08AA6510u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6510u) goto L_08AA6510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6510: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(220))); aot_gpr_5 = (0u | 1u); @@ -4755,8 +5689,21 @@ L_08AA6510: L_08AA6520: ctx.gpr[31] = (0x08AA6528u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(430))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 346u, 0x08AA6528u, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6528u) goto L_08AA6528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6528: aot_gpr_4 = (0u | 1u); if (ctx.gpr[2] == aot_gpr_4) { @@ -4767,8 +5714,21 @@ L_08AA6528: L_08AA6534: ctx.gpr[31] = (0x08AA653Cu); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(430))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 348u, 0x08AA653Cu, 0x08A91E70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA653Cu) goto L_08AA653C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA653C: aot_gpr_4 = (0u | 2u); if (ctx.gpr[2] != aot_gpr_4) { @@ -4820,8 +5780,21 @@ L_08AA654C: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08AA65A8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 351u, 0x08AA65A8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA65A8u) goto L_08AA65A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA65A8: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[24])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(336), aot_run_words); } @@ -4864,8 +5837,21 @@ L_08AA65A8: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08AA6604u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 352u, 0x08AA6604u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6604u) goto L_08AA6604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6604: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(972))); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(976))); @@ -4983,8 +5969,21 @@ L_08AA6650: ctx.gpr[7] = (aot_gpr_29 + static_cast(192)); ctx.gpr[31] = (0x08AA6704u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 359u, 0x08AA6704u, 0x08B205BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 70u, 0x08B205BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6704u) goto L_08AA6704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6704: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(128), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); @@ -5119,8 +6118,21 @@ L_08AA67D8: L_08AA67E8: ctx.gpr[31] = (0x08AA67F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 365u, 0x08AA67F0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA67F0u) goto L_08AA67F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA67F0: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); goto L_08AA67F4; @@ -5131,8 +6143,21 @@ L_08AA67F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), aot_gpr_4); ctx.gpr[31] = (0x08AA680Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 367u, 0x08AA680Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA680Cu) goto L_08AA680C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA680C: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5155,13 +6180,39 @@ L_08AA680C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(480), aot_gpr_4); ctx.gpr[31] = (0x08AA6834u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 368u, 0x08AA6834u, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6834u) goto L_08AA6834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6834: ctx.gpr[31] = (0x08AA683Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 369u, 0x08AA683Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA683Cu) goto L_08AA683C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA683C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(340))); aot_gpr_4 = (16457u << 16u); @@ -5210,30 +6261,95 @@ L_08AA6878: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); ctx.gpr[31] = (0x08AA68C0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 372u, 0x08AA68C0u, 0x08B1D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 180u, 0x08B1D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA68C0u) goto L_08AA68C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA68C0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(480))); ctx.gpr[31] = (0x08AA68CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 373u, 0x08AA68CCu, 0x08B1D07Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 181u, 0x08B1D07Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA68CCu) goto L_08AA68CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA68CC: ctx.gpr[31] = (0x08AA68D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 374u, 0x08AA68D4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA68D4u) goto L_08AA68D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA68D4: ctx.gpr[31] = (0x08AA68DCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 375u, 0x08AA68DCu, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA68DCu) goto L_08AA68DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA68DC: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08AA68E8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 376u, 0x08AA68E8u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA68E8u) goto L_08AA68E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA68E8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -5243,13 +6359,39 @@ L_08AA68E8: } ctx.gpr[31] = (0x08AA68FCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 377u, 0x08AA68FCu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA68FCu) goto L_08AA68FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA68FC: ctx.gpr[31] = (0x08AA6904u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 378u, 0x08AA6904u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6904u) goto L_08AA6904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6904: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(220))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5280,8 +6422,21 @@ L_08AA691C: L_08AA692C: ctx.gpr[31] = (0x08AA6934u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 382u, 0x08AA6934u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6934u) goto L_08AA6934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6934: aot_gpr_4 = (ctx.gpr[18] + static_cast(16)); goto L_08AA6938; @@ -5292,8 +6447,21 @@ L_08AA6938: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), aot_gpr_4); ctx.gpr[31] = (0x08AA6950u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 384u, 0x08AA6950u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6950u) goto L_08AA6950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6950: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5331,14 +6499,40 @@ L_08AA6970: L_08AA6984: ctx.gpr[31] = (0x08AA698Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 387u, 0x08AA698Cu, 0x0885FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 940u, 0x0885FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA698Cu) goto L_08AA698C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA698C: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08AA6998u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 388u, 0x08AA6998u, 0x088603A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 10u, 0x088603A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6998u) goto L_08AA6998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6998: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -5348,8 +6542,21 @@ L_08AA6998: } ctx.gpr[31] = (0x08AA69ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 389u, 0x08AA69ACu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA69ACu) goto L_08AA69AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA69AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5366,13 +6573,39 @@ L_08AA69B4: } ctx.gpr[31] = (0x08AA69C8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 391u, 0x08AA69C8u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA69C8u) goto L_08AA69C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA69C8: ctx.gpr[31] = (0x08AA69D0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 392u, 0x08AA69D0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA69D0u) goto L_08AA69D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA69D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(488))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -5394,8 +6627,21 @@ L_08AA69E0: L_08AA69EC: ctx.gpr[31] = (0x08AA69F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(480))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 395u, 0x08AA69F4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA69F4u) goto L_08AA69F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA69F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(204))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5442,8 +6688,21 @@ L_08AA6A44: L_08AA6A54: ctx.gpr[31] = (0x08AA6A5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 399u, 0x08AA6A5Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6A5Cu) goto L_08AA6A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6A5C: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_08AA6A60; @@ -5454,8 +6713,21 @@ L_08AA6A60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), aot_gpr_4); ctx.gpr[31] = (0x08AA6A78u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 401u, 0x08AA6A78u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6A78u) goto L_08AA6A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6A78: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5475,8 +6747,21 @@ L_08AA6A78: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x08AA6A94u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 402u, 0x08AA6A94u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6A94u) goto L_08AA6A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6A94: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -5486,13 +6771,39 @@ L_08AA6A94: } ctx.gpr[31] = (0x08AA6AA8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 403u, 0x08AA6AA8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6AA8u) goto L_08AA6AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6AA8: ctx.gpr[31] = (0x08AA6AB0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 404u, 0x08AA6AB0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6AB0u) goto L_08AA6AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6AB0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5515,8 +6826,21 @@ L_08AA6ABC: L_08AA6ACC: ctx.gpr[31] = (0x08AA6AD4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 407u, 0x08AA6AD4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6AD4u) goto L_08AA6AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6AD4: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_08AA6AD8; @@ -5527,8 +6851,21 @@ L_08AA6AD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), aot_gpr_4); ctx.gpr[31] = (0x08AA6AF0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 409u, 0x08AA6AF0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6AF0u) goto L_08AA6AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6AF0: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5589,8 +6926,21 @@ L_08AA6B58: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08AA6B94u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 411u, 0x08AA6B94u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6B94u) goto L_08AA6B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6B94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5602,8 +6952,21 @@ L_08AA6B9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(232))); ctx.gpr[31] = (0x08AA6BA8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 413u, 0x08AA6BA8u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6BA8u) goto L_08AA6BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6BA8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -5613,13 +6976,39 @@ L_08AA6BA8: } ctx.gpr[31] = (0x08AA6BBCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 414u, 0x08AA6BBCu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6BBCu) goto L_08AA6BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6BBC: ctx.gpr[31] = (0x08AA6BC4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 415u, 0x08AA6BC4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6BC4u) goto L_08AA6BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6BC4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5642,8 +7031,21 @@ L_08AA6BD0: L_08AA6BE0: ctx.gpr[31] = (0x08AA6BE8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 418u, 0x08AA6BE8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6BE8u) goto L_08AA6BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6BE8: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_08AA6BEC; @@ -5654,8 +7056,21 @@ L_08AA6BEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), aot_gpr_4); ctx.gpr[31] = (0x08AA6C04u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 420u, 0x08AA6C04u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6C04u) goto L_08AA6C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6C04: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), std::bit_cast(aot_fpr_12)); @@ -5665,8 +7080,21 @@ L_08AA6C04: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), std::bit_cast(aot_fpr_12)); ctx.gpr[31] = (0x08AA6C24u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 421u, 0x08AA6C24u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6C24u) goto L_08AA6C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6C24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5689,8 +7117,21 @@ L_08AA6C30: L_08AA6C40: ctx.gpr[31] = (0x08AA6C48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 424u, 0x08AA6C48u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6C48u) goto L_08AA6C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6C48: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_08AA6C4C; @@ -5701,8 +7142,21 @@ L_08AA6C4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), aot_gpr_4); ctx.gpr[31] = (0x08AA6C64u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 426u, 0x08AA6C64u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6C64u) goto L_08AA6C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6C64: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5743,8 +7197,21 @@ L_08AA6C7C: aot_gpr_4 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08AA6CB8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 428u, 0x08AA6CB8u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6CB8u) goto L_08AA6CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6CB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5756,8 +7223,21 @@ L_08AA6CC0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(236))); ctx.gpr[31] = (0x08AA6CCCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 430u, 0x08AA6CCCu, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6CCCu) goto L_08AA6CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6CCC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -5767,13 +7247,39 @@ L_08AA6CCC: } ctx.gpr[31] = (0x08AA6CE0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 431u, 0x08AA6CE0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6CE0u) goto L_08AA6CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6CE0: ctx.gpr[31] = (0x08AA6CE8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 432u, 0x08AA6CE8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6CE8u) goto L_08AA6CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6CE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(196))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5804,8 +7310,21 @@ L_08AA6D00: L_08AA6D10: ctx.gpr[31] = (0x08AA6D18u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 436u, 0x08AA6D18u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6D18u) goto L_08AA6D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6D18: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_08AA6D1C; @@ -5816,8 +7335,21 @@ L_08AA6D1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(136), aot_gpr_4); ctx.gpr[31] = (0x08AA6D34u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 438u, 0x08AA6D34u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6D34u) goto L_08AA6D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6D34: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5861,14 +7393,40 @@ L_08AA6D34: { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.gpr[31] = (0x08AA6DA8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 439u, 0x08AA6DA8u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6DA8u) goto L_08AA6DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6DA8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(548))); ctx.gpr[31] = (0x08AA6DB4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 440u, 0x08AA6DB4u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6DB4u) goto L_08AA6DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6DB4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -5878,13 +7436,39 @@ L_08AA6DB4: } ctx.gpr[31] = (0x08AA6DC8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 441u, 0x08AA6DC8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6DC8u) goto L_08AA6DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6DC8: ctx.gpr[31] = (0x08AA6DD0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 442u, 0x08AA6DD0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6DD0u) goto L_08AA6DD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6DD0: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(56))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(204)))))); @@ -5962,8 +7546,21 @@ L_08AA6E40: aot_gpr_5 = (aot_gpr_29 + static_cast(592)); ctx.gpr[31] = (0x08AA6E68u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 446u, 0x08AA6E68u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA6E68u) goto L_08AA6E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA6E68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6284,8 +7881,21 @@ L_08AA7034: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08AA7060u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 456u, 0x08AA7060u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7060u) goto L_08AA7060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7060: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -6304,8 +7914,21 @@ L_08AA7068: ctx.gpr[10] = (0u | 0u); ctx.gpr[31] = (0x08AA7090u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 458u, 0x08AA7090u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7090u) goto L_08AA7090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7090: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); goto L_08AA7094; @@ -6328,8 +7951,21 @@ L_08AA70A0: L_08AA70AC: ctx.gpr[31] = (0x08AA70B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 462u, 0x08AA70B4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA70B4u) goto L_08AA70B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA70B4: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(984), aot_run_words); @@ -6351,8 +7987,8 @@ L_08AA70B4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(1056)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA70F8: @@ -6390,8 +8026,8 @@ L_08AA7128: L_08AA714C: jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(ctx.gpr[7] + static_cast(0), ctx.gpr[8]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA7154: @@ -6442,8 +8078,21 @@ L_08AA7188: aot_gpr_5 = (aot_gpr_6 | 0u); ctx.gpr[31] = (0x08AA71ACu); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 472u, 0x08AA71ACu, 0x08ABF110u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 665u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 665u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 665u, 0x08ABF110u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA71ACu) goto L_08AA71AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA71AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -6482,8 +8131,21 @@ L_08AA71F0: aot_gpr_4 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08AA71FCu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 476u, 0x08AA71FCu, 0x08ABF3BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 701u, 0x08ABF3BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA71FCu) goto L_08AA71FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA71FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6512,8 +8174,8 @@ L_08AA722C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA7238: @@ -6522,8 +8184,21 @@ L_08AA7238: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); ctx.gpr[31] = (0x08AA724Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 481u, 0x08AA724Cu, 0x0882B4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 349u, 0x0882B4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA724Cu) goto L_08AA724C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA724C: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6578,8 +8253,8 @@ L_08AA72E4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA730C: @@ -6605,8 +8280,21 @@ L_08AA7328: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7324), aot_gpr_5); ctx.gpr[31] = (0x08AA734Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 485u, 0x08AA734Cu, 0x0882B854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 368u, 0x0882B854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA734Cu) goto L_08AA734C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA734C: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6618,8 +8306,21 @@ L_08AA734C: L_08AA7358: ctx.gpr[31] = (0x08AA7360u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 487u, 0x08AA7360u, 0x0882B9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 396u, 0x0882B9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7360u) goto L_08AA7360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7360: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6629,16 +8330,16 @@ L_08AA7360: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA7374: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA7380: @@ -6666,8 +8367,8 @@ L_08AA73A0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA73AC: @@ -6697,8 +8398,21 @@ L_08AA7400: ctx.gpr[18] = (0u | 0u); ctx.gpr[31] = (0x08AA740Cu); aot_gpr_4 = (0u | 512u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 495u, 0x08AA740Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA740Cu) goto L_08AA740C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA740C: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -6769,8 +8483,21 @@ L_08AA749C: } L_08AA74A4: ctx.gpr[31] = (0x08AA74ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 503u, 0x08AA74ACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA74ACu) goto L_08AA74AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA74AC: ctx.fpr[22] = ctx.fpr[0] + ctx.fpr[22]; goto L_08AA74B0; @@ -6809,8 +8536,21 @@ L_08AA74E8: } L_08AA74F0: ctx.gpr[31] = (0x08AA74F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 509u, 0x08AA74F8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA74F8u) goto L_08AA74F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA74F8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08AA74FC; @@ -6834,8 +8574,21 @@ L_08AA74FC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x08AA751Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 511u, 0x08AA751Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA751Cu) goto L_08AA751C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA751C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6845,8 +8598,21 @@ L_08AA751C: } ctx.gpr[31] = (0x08AA7530u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 512u, 0x08AA7530u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7530u) goto L_08AA7530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7530: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(520))); { std::uint32_t aot_run_words[3]{}; @@ -6928,8 +8694,8 @@ L_08AA75E0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA761C: @@ -6952,8 +8718,21 @@ L_08AA7644: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(520))); ctx.gpr[31] = (0x08AA7650u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 519u, 0x08AA7650u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7650u) goto L_08AA7650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7650: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(520))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6997,8 +8776,8 @@ L_08AA768C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA76A4: @@ -7019,8 +8798,21 @@ L_08AA76A4: L_08AA76C8: ctx.gpr[31] = (0x08AA76D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 526u, 0x08AA76D0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA76D0u) goto L_08AA76D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA76D0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7031,8 +8823,21 @@ L_08AA76D0: L_08AA76D8: ctx.gpr[31] = (0x08AA76E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 528u, 0x08AA76E0u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA76E0u) goto L_08AA76E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA76E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7085,8 +8890,21 @@ L_08AA7728: aot_gpr_4 = (aot_gpr_16 | 0u); ctx.gpr[31] = (0x08AA7734u); aot_gpr_5 = (0u | 66u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 536u, 0x08AA7734u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7734u) goto L_08AA7734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7734: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -7106,8 +8924,21 @@ L_08AA774C: aot_gpr_6 = (0u | 0u); ctx.gpr[31] = (0x08AA775Cu); ctx.gpr[7] = (0u | 58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 540u, 0x08AA775Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA775Cu) goto L_08AA775C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA775C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -7117,8 +8948,8 @@ L_08AA775C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA7770: @@ -7181,8 +9012,21 @@ L_08AA77E8: L_08AA77F4: ctx.gpr[31] = (0x08AA77FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(568))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 548u, 0x08AA77FCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA77FCu) goto L_08AA77FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA77FC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7229,8 +9073,21 @@ L_08AA784C: L_08AA785C: ctx.gpr[31] = (0x08AA7864u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(520))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 554u, 0x08AA7864u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7864u) goto L_08AA7864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7864: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 12 ? 1u : 0u); @@ -7244,8 +9101,21 @@ L_08AA7864: L_08AA7874: ctx.gpr[31] = (0x08AA787Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(568))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 556u, 0x08AA787Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA787Cu) goto L_08AA787C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA787C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7452,8 +9322,21 @@ L_08AA79BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); ctx.gpr[31] = (0x08AA7A40u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 576u, 0x08AA7A40u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7A40u) goto L_08AA7A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7A40: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (15897u << 16u); @@ -7472,14 +9355,40 @@ L_08AA7A48: L_08AA7A5C: ctx.gpr[31] = (0x08AA7A64u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 579u, 0x08AA7A64u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7A64u) goto L_08AA7A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7A64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), std::bit_cast(ctx.fpr[0])); ctx.gpr[31] = (0x08AA7A70u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 580u, 0x08AA7A70u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7A70u) goto L_08AA7A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7A70: aot_gpr_4 = (16153u << 16u); ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -7533,8 +9442,21 @@ L_08AA7AB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); ctx.gpr[31] = (0x08AA7B0Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 582u, 0x08AA7B0Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7B0Cu) goto L_08AA7B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7B0C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7575,8 +9497,21 @@ L_08AA7B28: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x08AA7B4Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 586u, 0x08AA7B4Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7B4Cu) goto L_08AA7B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7B4C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -7586,8 +9521,21 @@ L_08AA7B4C: } ctx.gpr[31] = (0x08AA7B60u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 587u, 0x08AA7B60u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7B60u) goto L_08AA7B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7B60: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(520))); @@ -7617,8 +9565,21 @@ L_08AA7B68: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.gpr[31] = (0x08AA7B8Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 589u, 0x08AA7B8Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7B8Cu) goto L_08AA7B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7B8C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(160), aot_run_words); @@ -7628,8 +9589,21 @@ L_08AA7B8C: } ctx.gpr[31] = (0x08AA7BA0u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 590u, 0x08AA7BA0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7BA0u) goto L_08AA7BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7BA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_12 = aot_fpr_12 + ctx.fpr[22]; @@ -7726,8 +9700,8 @@ L_08AA7C34: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA7C78: @@ -7886,8 +9860,21 @@ L_08AA7D54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); ctx.gpr[31] = (0x08AA7DB4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0168->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0168_entry, 604u, 0x08AA7DB4u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA7DB4u) goto L_08AA7DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA7DB4: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(128)))))); diff --git a/profiles/vcs/generated/generated_unit_0169.cpp b/profiles/vcs/generated/generated_unit_0169.cpp index 9ebccc0..458c3fe 100644 --- a/profiles/vcs/generated/generated_unit_0169.cpp +++ b/profiles/vcs/generated/generated_unit_0169.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0169[64] = { 158u, 166u, 183u, 184u, 186u, 189u, 192u, 210u, 214u, 217u, 220u, 220u, 231u, 245u, 247u, 252u, 255u, 256u, 260u, 276u, 297u, 308u, 325u, 343u, 356u, 372u, 384u, 405u, 418u, 436u, 455u, 468u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0169[4093] = { + 1u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 4u, 0u, 0u, 5u, 0u, 6u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 9u, 0u, + 10u, 0u, 11u, 0u, 12u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 14u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 18u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 22u, + 23u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 27u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 28u, 0u, 0u, + 0u, 0u, 0u, 0u, 29u, 0u, 30u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 31u, 0u, 32u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 35u, 0u, 36u, 37u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 40u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 44u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 45u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 0u, 48u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 50u, 0u, 0u, 0u, 51u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 53u, 0u, + 54u, 0u, 0u, 55u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, 0u, 57u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 0u, + 0u, 0u, 0u, 61u, 0u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 0u, 64u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 66u, 67u, 0u, 0u, + 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 71u, + 0u, 0u, 0u, 72u, 0u, 0u, 0u, 0u, 0u, 73u, 0u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 0u, + 78u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 79u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 81u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 84u, 0u, 85u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, + 88u, 0u, 0u, 0u, 0u, 89u, 0u, 0u, 0u, 0u, 90u, 0u, 91u, 0u, 92u, 0u, 0u, 0u, 93u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 95u, 96u, 0u, 0u, + 0u, 0u, 0u, 97u, 0u, 98u, 0u, 99u, 0u, 0u, 0u, 100u, 0u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 0u, 102u, 103u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 104u, 105u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 107u, 0u, 108u, 0u, 109u, 0u, 0u, 0u, 110u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, + 112u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 113u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 114u, 0u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 0u, 116u, 0u, + 0u, 0u, 0u, 117u, 0u, 0u, 0u, 0u, 118u, 0u, 119u, 0u, 120u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 0u, 123u, 124u, 0u, 0u, 0u, 0u, + 0u, 125u, 0u, 126u, 0u, 127u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, 0u, 130u, 131u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 132u, 133u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 135u, 0u, 136u, 0u, 137u, 0u, 0u, 0u, 138u, 0u, 0u, 0u, 139u, 0u, 0u, 0u, 140u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 141u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 142u, 0u, 0u, 0u, 0u, + 143u, 0u, 0u, 0u, 0u, 144u, 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 147u, 0u, 0u, 0u, 0u, 148u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, + 0u, 0u, 150u, 0u, 0u, 0u, 151u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 152u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 153u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 154u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 155u, 0u, 156u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 158u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 161u, 0u, 0u, 0u, 0u, 162u, 0u, 163u, 0u, 164u, 0u, 0u, 0u, 165u, 0u, 0u, + 0u, 0u, 166u, 0u, 0u, 0u, 0u, 167u, 168u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 170u, 0u, 171u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, 0u, + 174u, 175u, 0u, 0u, 0u, 0u, 0u, 176u, 0u, 177u, 0u, 178u, 0u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 0u, 0u, 181u, 0u, 182u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 183u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 184u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 185u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 186u, + 0u, 187u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 188u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 189u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 191u, 0u, + 0u, 0u, 0u, 192u, 0u, 0u, 0u, 0u, 193u, 0u, 194u, 0u, 195u, 0u, 0u, 0u, 196u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 198u, 199u, 0u, 0u, 0u, 0u, + 0u, 200u, 0u, 201u, 0u, 202u, 0u, 0u, 0u, 203u, 0u, 0u, 0u, 0u, 204u, 0u, 0u, 0u, 0u, 205u, 206u, 0u, 0u, 0u, 0u, 0u, 207u, 0u, 208u, 0u, 209u, 0u, + 0u, 0u, 210u, 0u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 212u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 0u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, + 0u, 0u, 223u, 0u, 0u, 0u, 0u, 224u, 0u, 225u, 0u, 226u, 0u, 0u, 0u, 227u, 0u, 0u, 0u, 0u, 228u, 0u, 0u, 0u, 0u, 229u, 230u, 0u, 0u, 0u, 0u, 0u, + 231u, 0u, 232u, 0u, 233u, 0u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 235u, 0u, 0u, 0u, 0u, 236u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 239u, 0u, 240u, 0u, + 0u, 0u, 241u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 243u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, + 247u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 0u, 249u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, 0u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 253u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 254u, + 0u, 0u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 256u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 0u, 0u, 259u, + 0u, 0u, 260u, 0u, 0u, 0u, 261u, 0u, 0u, 0u, 0u, 0u, 262u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 0u, 264u, 0u, + 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 266u, 0u, 267u, 0u, 0u, 268u, 0u, 0u, 0u, 269u, 0u, 0u, 270u, 0u, 271u, 0u, 0u, 272u, 0u, 273u, 0u, 274u, 0u, 275u, + 276u, 0u, 0u, 0u, 277u, 0u, 0u, 278u, 0u, 279u, 0u, 280u, 0u, 0u, 0u, 281u, 0u, 282u, 0u, 283u, 0u, 0u, 284u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 285u, 0u, 0u, 286u, 0u, 287u, 288u, 0u, 289u, 0u, 0u, 290u, 0u, 0u, 291u, 0u, 292u, 293u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 295u, 0u, 0u, 296u, 0u, + 297u, 298u, 0u, 0u, 0u, 0u, 299u, 0u, 300u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 301u, 0u, 0u, 0u, 302u, 0u, 303u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 0u, 306u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 307u, + 0u, 0u, 0u, 308u, 0u, 309u, 0u, 310u, 0u, 311u, 0u, 312u, 0u, 0u, 0u, 313u, 0u, 0u, 314u, 0u, 0u, 0u, 315u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, + 0u, 317u, 0u, 0u, 0u, 318u, 319u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 323u, 0u, 0u, 324u, + 325u, 0u, 326u, 0u, 0u, 327u, 0u, 0u, 328u, 0u, 329u, 0u, 0u, 330u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 333u, 0u, 334u, 0u, + 0u, 335u, 0u, 0u, 336u, 0u, 337u, 0u, 0u, 338u, 0u, 0u, 0u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 340u, 0u, 0u, 0u, 341u, 0u, 0u, 342u, 0u, + 0u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 0u, 344u, 0u, 0u, 345u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 346u, 0u, 0u, 0u, 0u, 347u, 0u, 348u, 0u, 0u, 0u, 0u, + 349u, 0u, 0u, 350u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 351u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 354u, 0u, 355u, 0u, 0u, + 0u, 356u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 0u, 358u, 0u, 0u, 359u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 360u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 363u, 0u, 364u, 0u, 365u, 0u, 366u, 0u, 0u, 367u, 0u, 368u, 0u, 369u, 0u, 370u, 0u, 0u, 371u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 372u, 0u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 0u, 0u, 0u, 0u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, + 0u, 0u, 0u, 376u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 378u, 0u, 0u, 379u, 0u, 380u, 381u, 0u, 382u, 0u, 383u, 0u, + 0u, 384u, 0u, 385u, 0u, 386u, 387u, 0u, 0u, 388u, 0u, 0u, 389u, 0u, 390u, 391u, 0u, 392u, 0u, 0u, 393u, 0u, 394u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 396u, 0u, + 397u, 0u, 0u, 0u, 0u, 398u, 0u, 399u, 0u, 400u, 0u, 0u, 0u, 0u, 401u, 0u, 402u, 0u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 405u, 0u, 0u, 406u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 409u, 0u, 0u, 410u, 0u, 0u, 411u, 0u, + 0u, 412u, 0u, 0u, 0u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 416u, 0u, 0u, 0u, 0u, 0u, 417u, 0u, 0u, + 418u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 0u, 0u, 422u, 0u, 423u, 0u, 0u, 424u, 425u, + 0u, 0u, 426u, 0u, 427u, 0u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, 429u, 0u, 430u, 0u, 431u, 0u, 0u, 0u, 432u, 0u, 433u, 0u, 434u, 0u, 0u, 435u, 0u, 0u, + 0u, 436u, 0u, 0u, 437u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, 439u, 0u, 440u, 441u, 0u, 0u, 0u, 442u, 0u, 0u, 443u, 0u, 444u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, + 0u, 446u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 0u, 449u, 0u, 450u, 0u, 451u, 0u, 0u, 452u, 0u, 0u, 453u, 0u, 454u, 0u, 0u, + 455u, 0u, 0u, 456u, 0u, 457u, 0u, 458u, 0u, 0u, 459u, 0u, 0u, 460u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, + 464u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, + 468u, 0u, 0u, 469u, 0u, 470u, 471u, 0u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 473u, 0u, 474u, 0u, 0u, 475u, 0u, 0u, 476u, 0u, 477u, 0u, 0u, 478u, 0u, 479u, 0u, + 0u, 0u, 480u, 0u, 481u, 0u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 0u, 484u, 485u, 0u, 0u, 0u, 486u, 0u, 487u, 0u, 0u, 0u, 488u, +}; void recomp_unit_0169_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,29,5,6,31,7 fprs=12,13,14,15 gpr_occ=3132 fpr_occ=1583 gpr_total=4429 fpr_total=2623 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08AA8004u; - entry_id = 0u; - if (entry_delta < 16372u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0169[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0169[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16372u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0169[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08AA8004; @@ -566,6 +689,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AA8004u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -761,8 +908,21 @@ L_08AA811C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08AA815Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 20u, 0x08AA815Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA815Cu) goto L_08AA815C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA815C: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); ctx.gpr[16] = (ctx.gpr[16] & 255u); @@ -840,8 +1000,8 @@ L_08AA81D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(464)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA821C: @@ -900,8 +1060,8 @@ L_08AA821C: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA8250: @@ -957,8 +1117,8 @@ L_08AA8250: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA8278: @@ -996,8 +1156,8 @@ L_08AA829C: goto L_08AA82CC; L_08AA82CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA82D4: @@ -1145,8 +1305,8 @@ L_08AA8448: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA846C: @@ -1209,8 +1369,8 @@ L_08AA84D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA8524: @@ -1334,8 +1494,8 @@ L_08AA8524: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(6), static_cast(ctx.gpr[8])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_6)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA8704: @@ -1451,8 +1611,8 @@ L_08AA8704: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(6), static_cast(ctx.gpr[8])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA88C4: @@ -1541,8 +1701,8 @@ L_08AA89EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA89FC: @@ -1653,8 +1813,8 @@ L_08AA8B84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA8B90: @@ -1662,8 +1822,21 @@ L_08AA8B90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AA8BA0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 56u, 0x08AA8BA0u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA8BA0u) goto L_08AA8BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA8BA0: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1675,8 +1848,8 @@ L_08AA8BB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA8BC0: @@ -1687,8 +1860,8 @@ L_08AA8BC0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10216), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10212), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA8BDC: @@ -1730,8 +1903,21 @@ L_08AA8C1C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA8C40u); aot_gpr_7 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 63u, 0x08AA8C40u, 0x08AEE294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 495u, 0x08AEE294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA8C40u) goto L_08AA8C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA8C40: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08AA8C4Cu); @@ -1754,8 +1940,21 @@ L_08AA8C54: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AA8C74u); aot_gpr_7 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 66u, 0x08AA8C74u, 0x08AEE294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 495u, 0x08AEE294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA8C74u) goto L_08AA8C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA8C74: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2992), 0u); goto L_08AA8C78; @@ -1768,8 +1967,8 @@ L_08AA8C78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA8C8C: @@ -2043,8 +2242,21 @@ L_08AA8ED4: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AA9058u); aot_mem.aot_direct_store16(ctx.gpr[22] + static_cast(50), static_cast(aot_gpr_7)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 80u, 0x08AA9058u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA9058u) goto L_08AA9058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA9058: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); @@ -2060,8 +2272,8 @@ L_08AA9058: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA9084: @@ -2492,8 +2704,21 @@ L_08AA9438: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AA95C4u); aot_mem.aot_direct_store16(ctx.gpr[22] + static_cast(50), static_cast(aot_gpr_7)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 107u, 0x08AA95C4u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA95C4u) goto L_08AA95C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA95C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2543,8 +2768,8 @@ L_08AA9604: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA962C: @@ -2912,8 +3137,21 @@ L_08AA992C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AA9AB8u); aot_mem.aot_direct_store16(ctx.gpr[22] + static_cast(50), static_cast(aot_gpr_7)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 135u, 0x08AA9AB8u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AA9AB8u) goto L_08AA9AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AA9AB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2963,8 +3201,8 @@ L_08AA9AF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA9B20: @@ -3284,8 +3522,8 @@ L_08AA9F34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AA9F5C: @@ -3740,8 +3978,8 @@ L_08AAA488: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAA4AC: @@ -4196,8 +4434,8 @@ L_08AAA9D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAA9F8: @@ -4842,8 +5080,8 @@ L_08AAB1A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB1EC: @@ -4864,8 +5102,8 @@ L_08AAB20C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB21C: @@ -4905,8 +5143,8 @@ L_08AAB260: aot_gpr_4 = (ctx.gpr[2] << 15u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB27C: @@ -4993,8 +5231,21 @@ L_08AAB2F0: L_08AAB2F8: aot_gpr_31 = (0x08AAB300u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 275u, 0x08AAB300u, 0x08939138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 278u, 0x08939138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB300u) goto L_08AAB300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB300: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2940))); goto L_08AAB304; @@ -5053,8 +5304,8 @@ L_08AAB350: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB35C: @@ -5084,8 +5335,21 @@ L_08AAB38C: } L_08AAB398: aot_gpr_31 = (0x08AAB3A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 287u, 0x08AAB3A0u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB3A0u) goto L_08AAB3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB3A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08AAB3A4; @@ -5097,8 +5361,21 @@ L_08AAB3AC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_31 = (0x08AAB3B8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 290u, 0x08AAB3B8u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB3B8u) goto L_08AAB3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB3B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5109,8 +5386,21 @@ L_08AAB3B8: } L_08AAB3C4: aot_gpr_31 = (0x08AAB3CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 292u, 0x08AAB3CCu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB3CCu) goto L_08AAB3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB3CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08AAB3D0; @@ -5141,8 +5431,21 @@ L_08AAB3F0: } L_08AAB3FC: aot_gpr_31 = (0x08AAB404u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 297u, 0x08AAB404u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB404u) goto L_08AAB404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB404: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08AAB408; @@ -5189,8 +5492,21 @@ L_08AAB424: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08AAB48Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 301u, 0x08AAB48Cu, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB48Cu) goto L_08AAB48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB48C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-18560), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -5203,8 +5519,21 @@ L_08AAB48C: L_08AAB49C: aot_gpr_31 = (0x08AAB4A4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 303u, 0x08AAB4A4u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB4A4u) goto L_08AAB4A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB4A4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (0u | 1u); @@ -5244,15 +5573,41 @@ L_08AAB4DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AAB500u); aot_gpr_6 = (0u | 2048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 307u, 0x08AAB500u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB500u) goto L_08AAB500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB500: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_5 = (0u | 2048u); aot_gpr_31 = (0x08AAB510u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 308u, 0x08AAB510u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB510u) goto L_08AAB510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB510: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2936), static_cast(ctx.gpr[19])); @@ -5312,8 +5667,21 @@ L_08AAB55C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AAB56Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 316u, 0x08AAB56Cu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB56Cu) goto L_08AAB56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB56C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -5322,15 +5690,41 @@ L_08AAB56C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08AAB588u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 317u, 0x08AAB588u, 0x089390ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 274u, 0x089390ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB588u) goto L_08AAB588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB588: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2956), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[28] + static_cast(-2928)); aot_gpr_31 = (0x08AAB598u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 318u, 0x08AAB598u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB598u) goto L_08AAB598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB598: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2936), static_cast(0u)); goto L_08AAB59C; @@ -5348,8 +5742,8 @@ L_08AAB5A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB5BC: @@ -5419,14 +5813,27 @@ L_08AAB62C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AAB638u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2956))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 330u, 0x08AAB638u, 0x08939174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 282u, 0x08939174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB638u) goto L_08AAB638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB638: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB644: @@ -5475,8 +5882,21 @@ L_08AAB688: L_08AAB694: aot_gpr_31 = (0x08AAB69Cu); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-18560), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 337u, 0x08AAB69Cu, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB69Cu) goto L_08AAB69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB69C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(4), 0u); aot_gpr_4 = (0u | 1u); @@ -5487,8 +5907,8 @@ L_08AAB6A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB6B8: @@ -5531,21 +5951,47 @@ L_08AAB6FC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08AAB718u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 343u, 0x08AAB718u, 0x089390ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 274u, 0x089390ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB718u) goto L_08AAB718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB718: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2956), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[28] + static_cast(-2928)); aot_gpr_31 = (0x08AAB728u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 344u, 0x08AAB728u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB728u) goto L_08AAB728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB728: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB734: @@ -5582,14 +6028,27 @@ L_08AAB770: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AAB784u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 349u, 0x08AAB784u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB784u) goto L_08AAB784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB784: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB790: @@ -5632,8 +6091,21 @@ L_08AAB7EC: goto L_08AAB7F0; L_08AAB7F0: aot_gpr_31 = (0x08AAB7F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 355u, 0x08AAB7F8u, 0x0888A208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 600u, 0x0888A208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB7F8u) goto L_08AAB7F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB7F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-25912))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5665,8 +6137,21 @@ L_08AAB82C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2960), aot_gpr_4); aot_gpr_31 = (0x08AAB838u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7696)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 359u, 0x08AAB838u, 0x0880A704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 559u, 0x0880A704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB838u) goto L_08AAB838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB838: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5687,8 +6172,8 @@ L_08AAB838: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB878: @@ -5706,8 +6191,21 @@ L_08AAB878: } L_08AAB898: aot_gpr_31 = (0x08AAB8A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 362u, 0x08AAB8A0u, 0x08B3AAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 733u, 0x08B3AAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB8A0u) goto L_08AAB8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB8A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5741,8 +6239,21 @@ L_08AAB8C0: } L_08AAB8CC: aot_gpr_31 = (0x08AAB8D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 368u, 0x08AAB8D4u, 0x08939268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 298u, 0x08939268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB8D4u) goto L_08AAB8D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB8D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5759,8 +6270,8 @@ L_08AAB8E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB8F0: @@ -5824,8 +6335,8 @@ L_08AAB990: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAB9A4: @@ -5856,8 +6367,21 @@ L_08AAB9D4: } L_08AAB9E0: aot_gpr_31 = (0x08AAB9E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 380u, 0x08AAB9E8u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAB9E8u) goto L_08AAB9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAB9E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08AAB9EC; @@ -5887,8 +6411,21 @@ L_08AABA08: L_08AABA10: aot_gpr_31 = (0x08AABA18u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 386u, 0x08AABA18u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AABA18u) goto L_08AABA18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AABA18: ctx.gpr[17] = (ctx.gpr[2] | 0u); goto L_08AABA1C; @@ -5911,8 +6448,21 @@ L_08AABA28: } L_08AABA34: aot_gpr_31 = (0x08AABA3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 390u, 0x08AABA3Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AABA3Cu) goto L_08AABA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AABA3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08AABA40; @@ -6010,8 +6560,8 @@ L_08AABAD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AABAF4: @@ -6036,8 +6586,8 @@ L_08AABB24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AABB30: @@ -6077,8 +6627,8 @@ L_08AABB7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AABB88: @@ -6096,8 +6646,8 @@ L_08AABBA4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AABBB4: @@ -6115,8 +6665,8 @@ L_08AABBD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AABBE0: @@ -6132,8 +6682,8 @@ L_08AABBF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AABC04: @@ -6148,8 +6698,8 @@ L_08AABC18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AABC24: @@ -6288,8 +6838,21 @@ L_08AABD28: } L_08AABD34: aot_gpr_31 = (0x08AABD3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 440u, 0x08AABD3Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AABD3Cu) goto L_08AABD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AABD3C: aot_gpr_5 = (2237u << 16u); goto L_08AABD40; @@ -6520,8 +7083,21 @@ L_08AABF04: L_08AABF10: aot_gpr_31 = (0x08AABF18u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2956))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0169->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0169_entry, 470u, 0x08AABF18u, 0x08939138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 278u, 0x08939138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AABF18u) goto L_08AABF18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AABF18: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2956), 0u); goto L_08AABF1C; diff --git a/profiles/vcs/generated/generated_unit_0170.cpp b/profiles/vcs/generated/generated_unit_0170.cpp index c0b640e..a4181aa 100644 --- a/profiles/vcs/generated/generated_unit_0170.cpp +++ b/profiles/vcs/generated/generated_unit_0170.cpp @@ -969,6 +969,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AAC000u; + if (local_delta_v813 >= 16364u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1055,8 +1079,21 @@ L_08AAC074: L_08AAC08C: aot_gpr_31 = (0x08AAC094u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 10u, 0x08AAC094u, 0x08AAB734u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 345u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 345u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 345u, 0x08AAB734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC094u) goto L_08AAC094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC094: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); aot_gpr_5 = (2237u << 16u); @@ -1067,8 +1104,21 @@ L_08AAC0A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_31 = (0x08AAC0B0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 12u, 0x08AAC0B0u, 0x08AAB6B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 339u, 0x08AAB6B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC0B0u) goto L_08AAC0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC0B0: ctx.gpr[20] = (0u | 1u); goto L_08AAC0B4; @@ -1083,8 +1133,21 @@ L_08AAC0BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), 0u); aot_gpr_31 = (0x08AAC0C8u); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 15u, 0x08AAC0C8u, 0x08AAB5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 321u, 0x08AAB5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC0C8u) goto L_08AAC0C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC0C8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1153,8 +1216,21 @@ L_08AAC144: L_08AAC154: aot_gpr_31 = (0x08AAC15Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2956))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 24u, 0x08AAC15Cu, 0x089391FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 290u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 290u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 290u, 0x089391FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC15Cu) goto L_08AAC15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC15C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (aot_gpr_16 | aot_gpr_5); @@ -1275,8 +1351,21 @@ L_08AAC234: goto L_08AAC240; L_08AAC240: aot_gpr_31 = (0x08AAC248u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 39u, 0x08AAC248u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC248u) goto L_08AAC248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC248: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08AAC24C; @@ -1299,8 +1388,21 @@ L_08AAC258: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AAC284u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 43u, 0x08AAC284u, 0x08888898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 184u, 0x08888898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC284u) goto L_08AAC284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC284: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1348,8 +1450,21 @@ L_08AAC2C8: } L_08AAC2D4: aot_gpr_31 = (0x08AAC2DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 49u, 0x08AAC2DCu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC2DCu) goto L_08AAC2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC2DC: aot_gpr_31 = (0x08AAC2E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); @@ -1378,8 +1493,21 @@ L_08AAC304: aot_gpr_6 = (ctx.gpr[18] << 2u); aot_gpr_31 = (0x08AAC31Cu); aot_gpr_5 = (aot_gpr_4 + static_cast(24576)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 53u, 0x08AAC31Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC31Cu) goto L_08AAC31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC31C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1389,16 +1517,55 @@ L_08AAC31C: } L_08AAC324: aot_gpr_31 = (0x08AAC32Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 55u, 0x08AAC32Cu, 0x08AAB790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 350u, 0x08AAB790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC32Cu) goto L_08AAC32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC32C: aot_gpr_31 = (0x08AAC334u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 56u, 0x08AAC334u, 0x08AABBE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 416u, 0x08AABBE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC334u) goto L_08AAC334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC334: aot_gpr_31 = (0x08AAC33Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 57u, 0x08AAC33Cu, 0x0880A788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 569u, 0x0880A788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC33Cu) goto L_08AAC33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC33C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2960))); aot_gpr_6 = (2244u << 16u); @@ -1416,8 +1583,21 @@ L_08AAC33C: AOT_REGCACHE_SYNC_OUT(); return; L_08AAC36C: aot_gpr_31 = (0x08AAC374u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 59u, 0x08AAC374u, 0x08AABC04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 418u, 0x08AABC04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC374u) goto L_08AAC374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC374: aot_gpr_4 = (0u | 32768u); aot_gpr_31 = (0x08AAC380u); @@ -1456,8 +1636,8 @@ L_08AAC39C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC3C0: @@ -1466,8 +1646,21 @@ L_08AAC3C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AAC3D4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 65u, 0x08AAC3D4u, 0x08887CFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 872u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 872u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 872u, 0x08887CFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC3D4u) goto L_08AAC3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC3D4: aot_gpr_31 = (0x08AAC3DCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2880)); @@ -1477,8 +1670,8 @@ L_08AAC3DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC3E8: @@ -1487,8 +1680,8 @@ L_08AAC3E8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC3FC: @@ -1497,8 +1690,8 @@ L_08AAC3FC: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC410: @@ -1507,8 +1700,8 @@ L_08AAC410: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC424: @@ -1517,8 +1710,8 @@ L_08AAC424: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC438: @@ -1527,8 +1720,8 @@ L_08AAC438: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC44C: @@ -1540,8 +1733,8 @@ L_08AAC44C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC470: @@ -1552,8 +1745,8 @@ L_08AAC470: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(9), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC48C: @@ -1562,8 +1755,21 @@ L_08AAC48C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_31 = (0x08AAC4ACu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 75u, 0x08AAC4ACu, 0x08A7F694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 624u, 0x08A7F694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC4ACu) goto L_08AAC4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC4AC: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28580)); @@ -1574,8 +1780,21 @@ L_08AAC4AC: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08AAC4D0u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-15284)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 76u, 0x08AAC4D0u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC4D0u) goto L_08AAC4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC4D0: aot_gpr_4 = (aot_gpr_16 + static_cast(209)); aot_gpr_5 = (0u | 0u); @@ -1742,8 +1961,8 @@ L_08AAC5C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAC5E8: @@ -1773,8 +1992,21 @@ L_08AAC5E8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AAC668u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 102u, 0x08AAC668u, 0x08A7F85Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 650u, 0x08A7F85Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC668u) goto L_08AAC668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC668: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28580)); @@ -1785,8 +2017,21 @@ L_08AAC668: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08AAC68Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-15284)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 103u, 0x08AAC68Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC68Cu) goto L_08AAC68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC68C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(1)))))); @@ -1819,8 +2064,21 @@ L_08AAC6DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AAC6E8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 106u, 0x08AAC6E8u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC6E8u) goto L_08AAC6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC6E8: ctx.gpr[17] = (ctx.gpr[17] + static_cast(32)); aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); @@ -1856,8 +2114,21 @@ L_08AAC728: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08AAC738u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 110u, 0x08AAC738u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC738u) goto L_08AAC738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC738: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(14), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(14)))))); @@ -1967,8 +2238,21 @@ L_08AAC848: aot_gpr_6 = (aot_gpr_16 - ctx.gpr[23]); aot_gpr_31 = (0x08AAC858u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 119u, 0x08AAC858u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC858u) goto L_08AAC858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC858: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(34), static_cast(0u)); @@ -1995,8 +2279,21 @@ L_08AAC88C: aot_gpr_6 = (aot_gpr_16 - ctx.gpr[17]); aot_gpr_31 = (0x08AAC89Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 122u, 0x08AAC89Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC89Cu) goto L_08AAC89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC89C: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(40), static_cast(0u)); @@ -2023,8 +2320,21 @@ L_08AAC8D0: aot_gpr_6 = (aot_gpr_16 - ctx.gpr[17]); aot_gpr_31 = (0x08AAC8E0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 125u, 0x08AAC8E0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAC8E0u) goto L_08AAC8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAC8E0: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(46), static_cast(0u)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(46)))))); @@ -2193,16 +2503,16 @@ L_08AACA2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACA60: ctx.gpr[2] = (2219u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-13728)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACA6C: @@ -2214,8 +2524,8 @@ L_08AACA7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACA88: @@ -2236,8 +2546,21 @@ L_08AACAAC: L_08AACAB4: aot_gpr_31 = (0x08AACABCu); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 145u, 0x08AACABCu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACABCu) goto L_08AACABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACABC: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[18] = (0u | 1u); @@ -2247,8 +2570,21 @@ L_08AACABC: L_08AACAC4: aot_gpr_31 = (0x08AACACCu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 147u, 0x08AACACCu, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACACCu) goto L_08AACACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACACC: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -2257,8 +2593,21 @@ L_08AACACC: goto L_08AACAD4; L_08AACAD4: aot_gpr_31 = (0x08AACADCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 149u, 0x08AACADCu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACADCu) goto L_08AACADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACADC: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -2312,8 +2661,8 @@ L_08AACB14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACB34: @@ -2322,8 +2671,21 @@ L_08AACB34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AACB48u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 159u, 0x08AACB48u, 0x08A7FB50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 680u, 0x08A7FB50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACB48u) goto L_08AACB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACB48: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32056)); @@ -2334,16 +2696,29 @@ L_08AACB48: aot_gpr_6 = (0u | 12u); aot_gpr_31 = (0x08AACB6Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-15248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 160u, 0x08AACB6Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACB6Cu) goto L_08AACB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACB6C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACB80: @@ -2366,8 +2741,21 @@ L_08AACB9C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AACBB4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 163u, 0x08AACBB4u, 0x08A7FB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 682u, 0x08A7FB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACBB4u) goto L_08AACBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACBB4: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2390,8 +2778,8 @@ L_08AACBC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACBDC: @@ -2400,8 +2788,21 @@ L_08AACBDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AACBF0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 167u, 0x08AACBF0u, 0x08A7FC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 692u, 0x08A7FC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACBF0u) goto L_08AACBF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACBF0: aot_gpr_31 = (0x08AACBF8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2411,8 +2812,8 @@ L_08AACBF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACC08: @@ -2421,14 +2822,27 @@ L_08AACC08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AACC1Cu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 170u, 0x08AACC1Cu, 0x08A7FD50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 697u, 0x08A7FD50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACC1Cu) goto L_08AACC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACC1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACC28: @@ -2453,8 +2867,21 @@ L_08AACC54: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08AACC64u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 173u, 0x08AACC64u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACC64u) goto L_08AACC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACC64: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); @@ -2486,8 +2913,21 @@ L_08AACCA0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AACCB4u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 177u, 0x08AACCB4u, 0x08A82438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 204u, 0x08A82438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACCB4u) goto L_08AACCB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACCB4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -2498,8 +2938,8 @@ L_08AACCB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACCCC: @@ -2525,14 +2965,27 @@ L_08AACCF4: aot_gpr_5 = (aot_gpr_4 + static_cast(176)); aot_gpr_31 = (0x08AACD04u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 181u, 0x08AACD04u, 0x0885F668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 888u, 0x0885F668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACD04u) goto L_08AACD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACD04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACD10: @@ -2545,8 +2998,21 @@ L_08AACD10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AACD38u); ctx.gpr[8] = (ctx.gpr[8] + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 183u, 0x08AACD38u, 0x08A82798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 224u, 0x08A82798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACD38u) goto L_08AACD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACD38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 | 1u); @@ -2724,8 +3190,8 @@ L_08AACE88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AACEA0: @@ -2795,8 +3261,21 @@ L_08AACF90: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AACFA0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 208u, 0x08AACFA0u, 0x08A82BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 288u, 0x08A82BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AACFA0u) goto L_08AACFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AACFA0: aot_gpr_4 = (ctx.gpr[18] & 8192u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2974,8 +3453,8 @@ L_08AAD1C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD1E0: @@ -3017,8 +3496,21 @@ L_08AAD1E0: } L_08AAD268: aot_gpr_31 = (0x08AAD270u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 219u, 0x08AAD270u, 0x08A83758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 337u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 337u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 337u, 0x08A83758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD270u) goto L_08AAD270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD270: aot_gpr_4 = (ctx.gpr[17] & 8192u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3143,36 +3635,62 @@ L_08AAD3C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD3DC: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AAD3ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 229u, 0x08AAD3ECu, 0x08A81DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 102u, 0x08A81DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD3ECu) goto L_08AAD3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD3EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD3F8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AAD408u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 231u, 0x08AAD408u, 0x08A81E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 106u, 0x08A81E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD408u) goto L_08AAD408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD408: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD414: @@ -3419,8 +3937,8 @@ L_08AAD69C: goto L_08AAD6C0; L_08AAD6C0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD6C8: @@ -3476,8 +3994,21 @@ L_08AAD718: L_08AAD728: aot_gpr_31 = (0x08AAD730u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 255u, 0x08AAD730u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD730u) goto L_08AAD730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD730: aot_gpr_4 = (ctx.gpr[19] + static_cast(16)); goto L_08AAD734; @@ -3489,8 +4020,21 @@ L_08AAD734: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08AAD750u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 257u, 0x08AAD750u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD750u) goto L_08AAD750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD750: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3529,8 +4073,21 @@ L_08AAD750: } aot_gpr_31 = (0x08AAD7B0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 258u, 0x08AAD7B0u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD7B0u) goto L_08AAD7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD7B0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -3540,13 +4097,39 @@ L_08AAD7B0: } aot_gpr_31 = (0x08AAD7C4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 259u, 0x08AAD7C4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD7C4u) goto L_08AAD7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD7C4: aot_gpr_31 = (0x08AAD7CCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 260u, 0x08AAD7CCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD7CCu) goto L_08AAD7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD7CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3567,8 +4150,21 @@ L_08AAD7DC: L_08AAD7E8: aot_gpr_31 = (0x08AAD7F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 263u, 0x08AAD7F0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD7F0u) goto L_08AAD7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD7F0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(108), aot_run_words); @@ -3580,8 +4176,8 @@ L_08AAD7F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD80C: @@ -3590,8 +4186,21 @@ L_08AAD80C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AAD824u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 265u, 0x08AAD824u, 0x08A82198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 170u, 0x08A82198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD824u) goto L_08AAD824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD824: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32248)); @@ -3601,8 +4210,8 @@ L_08AAD824: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD844: @@ -3624,8 +4233,21 @@ L_08AAD860: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AAD878u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 268u, 0x08AAD878u, 0x08A8223Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 175u, 0x08A8223Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD878u) goto L_08AAD878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD878: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3648,8 +4270,8 @@ L_08AAD88C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD8A0: @@ -3658,8 +4280,21 @@ L_08AAD8A0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AAD8BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 272u, 0x08AAD8BCu, 0x08A82398u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 195u, 0x08A82398u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD8BCu) goto L_08AAD8BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD8BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_5 = (aot_gpr_4 + static_cast(10)); @@ -3680,8 +4315,21 @@ L_08AAD8BC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(24)))))); aot_gpr_31 = (0x08AAD908u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 273u, 0x08AAD908u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD908u) goto L_08AAD908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD908: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); @@ -3734,22 +4382,35 @@ L_08AAD984: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD998: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AAD9A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 281u, 0x08AAD9A8u, 0x08A823A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 196u, 0x08A823A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAD9A8u) goto L_08AAD9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAD9A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAD9B4: @@ -3791,8 +4452,21 @@ L_08AADA24: L_08AADA34: aot_gpr_31 = (0x08AADA3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 285u, 0x08AADA3Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADA3Cu) goto L_08AADA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADA3C: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08AADA40; @@ -3803,8 +4477,21 @@ L_08AADA40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08AADA58u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 287u, 0x08AADA58u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADA58u) goto L_08AADA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADA58: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3824,14 +4511,40 @@ L_08AADA58: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(244))); aot_gpr_31 = (0x08AADA74u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 288u, 0x08AADA74u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADA74u) goto L_08AADA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADA74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); aot_gpr_31 = (0x08AADA80u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 289u, 0x08AADA80u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADA80u) goto L_08AADA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADA80: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -3841,13 +4554,39 @@ L_08AADA80: } aot_gpr_31 = (0x08AADA94u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 290u, 0x08AADA94u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADA94u) goto L_08AADA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADA94: aot_gpr_31 = (0x08AADA9Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 291u, 0x08AADA9Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADA9Cu) goto L_08AADA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADA9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(204))); @@ -3872,8 +4611,21 @@ L_08AADAB0: L_08AADAC0: aot_gpr_31 = (0x08AADAC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 294u, 0x08AADAC8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADAC8u) goto L_08AADAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADAC8: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08AADACC; @@ -3884,8 +4636,21 @@ L_08AADACC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08AADAE4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 296u, 0x08AADAE4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADAE4u) goto L_08AADAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADAE4: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3908,14 +4673,40 @@ L_08AADAE4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08AADB0Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 297u, 0x08AADB0Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADB0Cu) goto L_08AADB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADB0C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); aot_gpr_31 = (0x08AADB18u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 298u, 0x08AADB18u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADB18u) goto L_08AADB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADB18: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -3925,13 +4716,39 @@ L_08AADB18: } aot_gpr_31 = (0x08AADB2Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 299u, 0x08AADB2Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADB2Cu) goto L_08AADB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADB2C: aot_gpr_31 = (0x08AADB34u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 300u, 0x08AADB34u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADB34u) goto L_08AADB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADB34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(188))); @@ -3965,8 +4782,21 @@ L_08AADB58: L_08AADB68: aot_gpr_31 = (0x08AADB70u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 304u, 0x08AADB70u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADB70u) goto L_08AADB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADB70: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08AADB74; @@ -3977,8 +4807,21 @@ L_08AADB74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08AADB8Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 306u, 0x08AADB8Cu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADB8Cu) goto L_08AADB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADB8C: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3998,14 +4841,40 @@ L_08AADB8C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(244))); aot_gpr_31 = (0x08AADBA8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 307u, 0x08AADBA8u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADBA8u) goto L_08AADBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADBA8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); aot_gpr_31 = (0x08AADBB4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 308u, 0x08AADBB4u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADBB4u) goto L_08AADBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADBB4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -4015,13 +4884,39 @@ L_08AADBB4: } aot_gpr_31 = (0x08AADBC8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 309u, 0x08AADBC8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADBC8u) goto L_08AADBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADBC8: aot_gpr_31 = (0x08AADBD0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 310u, 0x08AADBD0u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADBD0u) goto L_08AADBD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADBD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(200))); @@ -4055,8 +4950,21 @@ L_08AADBF4: L_08AADC04: aot_gpr_31 = (0x08AADC0Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 314u, 0x08AADC0Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADC0Cu) goto L_08AADC0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADC0C: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08AADC10; @@ -4067,8 +4975,21 @@ L_08AADC10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08AADC28u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 316u, 0x08AADC28u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADC28u) goto L_08AADC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADC28: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4091,14 +5012,40 @@ L_08AADC28: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08AADC50u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 317u, 0x08AADC50u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADC50u) goto L_08AADC50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADC50: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); aot_gpr_31 = (0x08AADC5Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 318u, 0x08AADC5Cu, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADC5Cu) goto L_08AADC5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADC5C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -4108,13 +5055,39 @@ L_08AADC5C: } aot_gpr_31 = (0x08AADC70u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 319u, 0x08AADC70u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADC70u) goto L_08AADC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADC70: aot_gpr_31 = (0x08AADC78u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 320u, 0x08AADC78u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADC78u) goto L_08AADC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADC78: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(184))); @@ -4139,8 +5112,21 @@ L_08AADC8C: L_08AADC9C: aot_gpr_31 = (0x08AADCA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 323u, 0x08AADCA4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADCA4u) goto L_08AADCA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADCA4: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08AADCA8; @@ -4151,8 +5137,21 @@ L_08AADCA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08AADCC0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 325u, 0x08AADCC0u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADCC0u) goto L_08AADCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADCC0: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4174,14 +5173,40 @@ L_08AADCC0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AADCE4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 326u, 0x08AADCE4u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADCE4u) goto L_08AADCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADCE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); aot_gpr_31 = (0x08AADCF0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 327u, 0x08AADCF0u, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADCF0u) goto L_08AADCF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADCF0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -4191,13 +5216,39 @@ L_08AADCF0: } aot_gpr_31 = (0x08AADD04u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 328u, 0x08AADD04u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADD04u) goto L_08AADD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADD04: aot_gpr_31 = (0x08AADD0Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 329u, 0x08AADD0Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADD0Cu) goto L_08AADD0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADD0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(196))); @@ -4222,8 +5273,21 @@ L_08AADD20: L_08AADD30: aot_gpr_31 = (0x08AADD38u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 332u, 0x08AADD38u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADD38u) goto L_08AADD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADD38: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_08AADD3C; @@ -4234,8 +5298,21 @@ L_08AADD3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08AADD54u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 334u, 0x08AADD54u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADD54u) goto L_08AADD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADD54: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4259,14 +5336,40 @@ L_08AADD54: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AADD80u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 335u, 0x08AADD80u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADD80u) goto L_08AADD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADD80: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(88))); aot_gpr_31 = (0x08AADD8Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 336u, 0x08AADD8Cu, 0x0886001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 2u, 0x0886001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADD8Cu) goto L_08AADD8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADD8C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -4276,13 +5379,39 @@ L_08AADD8C: } aot_gpr_31 = (0x08AADDA0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 337u, 0x08AADDA0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADDA0u) goto L_08AADDA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADDA0: aot_gpr_31 = (0x08AADDA8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 338u, 0x08AADDA8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADDA8u) goto L_08AADDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADDA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4303,8 +5432,21 @@ L_08AADDB8: L_08AADDC4: aot_gpr_31 = (0x08AADDCCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 341u, 0x08AADDCCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADDCCu) goto L_08AADDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADDCC: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -4321,27 +5463,27 @@ L_08AADDCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AADDFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AADE04: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AADE0C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u + static_cast(-1)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AADE14: @@ -4374,25 +5516,77 @@ L_08AADE38: L_08AADE40: aot_gpr_31 = (0x08AADE48u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 349u, 0x08AADE48u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADE48u) goto L_08AADE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADE48: aot_gpr_31 = (0x08AADE50u); aot_gpr_16 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 350u, 0x08AADE50u, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADE50u) goto L_08AADE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADE50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AADE5Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 351u, 0x08AADE5Cu, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADE5Cu) goto L_08AADE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADE5C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AADE68u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 352u, 0x08AADE68u, 0x0887F368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 698u, 0x0887F368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADE68u) goto L_08AADE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADE68: ctx.gpr[2] = (aot_gpr_16 | 0u); goto L_08AADE6C; @@ -4401,8 +5595,8 @@ L_08AADE6C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AADE7C: @@ -4439,13 +5633,39 @@ L_08AADEB0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08AADEC0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 358u, 0x08AADEC0u, 0x0895B708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 490u, 0x0895B708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADEC0u) goto L_08AADEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADEC0: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AADECCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 359u, 0x08AADECCu, 0x08972DA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 622u, 0x08972DA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADECCu) goto L_08AADECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADECC: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4503,14 +5723,40 @@ L_08AADECC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AADEFCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 360u, 0x08AADEFCu, 0x0895B9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 523u, 0x0895B9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADEFCu) goto L_08AADEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADEFC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AADF08u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 361u, 0x08AADF08u, 0x0887F368u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 698u, 0x0887F368u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADF08u) goto L_08AADF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADF08: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_08AADF0C; @@ -4523,8 +5769,8 @@ L_08AADF0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AADF20: @@ -4537,8 +5783,8 @@ L_08AADF20: goto L_08AADF30; L_08AADF30: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AADF38: @@ -4579,8 +5825,21 @@ L_08AADF74: aot_gpr_4 = (aot_gpr_16 + static_cast(40)); aot_gpr_31 = (0x08AADF80u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 370u, 0x08AADF80u, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADF80u) goto L_08AADF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADF80: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(56))); ctx.gpr[18] = (0u | 0u); @@ -4598,8 +5857,21 @@ L_08AADF94: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08AADFA8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 372u, 0x08AADFA8u, 0x0887F4DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 715u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 715u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 715u, 0x0887F4DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADFA8u) goto L_08AADFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADFA8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(56))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -4625,8 +5897,21 @@ L_08AADFBC: L_08AADFD4: aot_gpr_31 = (0x08AADFDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 375u, 0x08AADFDCu, 0x088DF860u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 476u, 0x088DF860u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AADFDCu) goto L_08AADFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AADFDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(72)); @@ -4675,8 +5960,21 @@ L_08AAE030: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AAE03Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 382u, 0x08AAE03Cu, 0x0893EDD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 696u, 0x0893EDD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE03Cu) goto L_08AAE03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE03C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(40), 0u); goto L_08AAE040; @@ -4690,8 +5988,8 @@ L_08AAE040: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE058: @@ -4781,8 +6079,8 @@ L_08AAE0DC: goto L_08AAE0E4; L_08AAE0E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE0EC: @@ -4825,8 +6123,8 @@ L_08AAE128: goto L_08AAE138; L_08AAE138: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE140: @@ -4905,8 +6203,8 @@ L_08AAE1B8: goto L_08AAE1BC; L_08AAE1BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE1C4: @@ -4924,15 +6222,41 @@ L_08AAE1C4: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AAE1FCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 412u, 0x08AAE1FCu, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE1FCu) goto L_08AAE1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE1FC: aot_gpr_4 = (aot_gpr_16 + static_cast(40)); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AAE20Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 413u, 0x08AAE20Cu, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE20Cu) goto L_08AAE20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE20C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(56))); ctx.gpr[17] = (0u | 0u); @@ -4949,16 +6273,42 @@ L_08AAE220: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08AAE230u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 415u, 0x08AAE230u, 0x08A53688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 639u, 0x08A53688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE230u) goto L_08AAE230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE230: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(40))); aot_gpr_5 = (0u | 0u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08AAE244u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 416u, 0x08AAE244u, 0x0887F414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 706u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 706u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 706u, 0x0887F414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE244u) goto L_08AAE244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE244: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(56))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -4980,8 +6330,8 @@ L_08AAE258: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE270: @@ -4993,8 +6343,21 @@ L_08AAE270: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AAE290u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 419u, 0x08AAE290u, 0x088DF69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 451u, 0x088DF69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE290u) goto L_08AAE290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE290: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32464)); @@ -5010,15 +6373,28 @@ L_08AAE2A4: ctx.gpr[7] = (0u | 40u); aot_gpr_31 = (0x08AAE2BCu); aot_gpr_5 = (aot_gpr_5 + static_cast(9952)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 421u, 0x08AAE2BCu, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE2BCu) goto L_08AAE2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE2BC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE2CC: @@ -5121,8 +6497,8 @@ L_08AAE3A4: goto L_08AAE3A8; L_08AAE3A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE3B0: @@ -5133,8 +6509,8 @@ L_08AAE3B0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10252), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10244), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE3CC: @@ -5170,8 +6546,21 @@ L_08AAE3FC: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08AAE408u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 437u, 0x08AAE408u, 0x08A1C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 54u, 0x08A1C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE408u) goto L_08AAE408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE408: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5282,8 +6671,21 @@ L_08AAE4A0: aot_gpr_16 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08AAE4ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 451u, 0x08AAE4ACu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE4ACu) goto L_08AAE4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE4AC: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5332,8 +6734,21 @@ L_08AAE4E0: aot_gpr_16 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08AAE4ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 455u, 0x08AAE4ECu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE4ECu) goto L_08AAE4EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE4EC: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5373,8 +6788,8 @@ L_08AAE50C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE51C: @@ -5514,8 +6929,8 @@ L_08AAE628: } L_08AAE63C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE644: @@ -5523,8 +6938,21 @@ L_08AAE644: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AAE654u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 474u, 0x08AAE654u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAE654u) goto L_08AAE654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAE654: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(10248))); ctx.gpr[8] = (0u | 0u); @@ -5647,8 +7075,8 @@ L_08AAE758: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE764: @@ -5867,8 +7295,8 @@ L_08AAE8D4: } L_08AAE8E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE8EC: @@ -5893,8 +7321,8 @@ L_08AAE904: goto L_08AAE908; L_08AAE908: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE910: @@ -5919,8 +7347,8 @@ L_08AAE928: goto L_08AAE92C; L_08AAE92C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE934: @@ -5945,8 +7373,8 @@ L_08AAE94C: goto L_08AAE950; L_08AAE950: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE958: @@ -5971,8 +7399,8 @@ L_08AAE970: goto L_08AAE974; L_08AAE974: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE97C: @@ -5997,8 +7425,8 @@ L_08AAE994: goto L_08AAE998; L_08AAE998: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE9A0: @@ -6023,8 +7451,8 @@ L_08AAE9B8: goto L_08AAE9BC; L_08AAE9BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE9C4: @@ -6049,8 +7477,8 @@ L_08AAE9DC: goto L_08AAE9E0; L_08AAE9E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAE9E8: @@ -6075,15 +7503,15 @@ L_08AAEA00: goto L_08AAEA04; L_08AAEA04: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEA0C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(10260))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEA14: @@ -6124,8 +7552,8 @@ L_08AAEA90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEAA0: @@ -6143,8 +7571,21 @@ L_08AAEABC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AAEAC8u); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 551u, 0x08AAEAC8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEAC8u) goto L_08AAEAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEAC8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6175,8 +7616,8 @@ L_08AAEAE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEAFC: @@ -6192,8 +7633,8 @@ L_08AAEB10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEB20: @@ -6290,8 +7731,8 @@ L_08AAEBB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEBC8: @@ -6312,8 +7753,21 @@ L_08AAEBE4: aot_gpr_4 = (ctx.gpr[17] + static_cast(8)); aot_gpr_31 = (0x08AAEC00u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 573u, 0x08AAEC00u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEC00u) goto L_08AAEC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEC00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2816))); aot_gpr_31 = (0x08AAEC0Cu); @@ -6329,8 +7783,8 @@ L_08AAEC0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEC20: @@ -6400,8 +7854,8 @@ L_08AAEC94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAECA4: @@ -6619,8 +8073,8 @@ L_08AAEDDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEE00: @@ -6681,8 +8135,21 @@ L_08AAEE5C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-2800)); aot_gpr_31 = (0x08AAEE70u); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 617u, 0x08AAEE70u, 0x08B589F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 162u, 0x08B589F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEE70u) goto L_08AAEE70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEE70: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6699,8 +8166,21 @@ L_08AAEE80: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08AAEE90u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 620u, 0x08AAEE90u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEE90u) goto L_08AAEE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEE90: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); @@ -6708,8 +8188,8 @@ L_08AAEE90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEEA8: @@ -6777,14 +8257,40 @@ L_08AAEF10: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AAEF20u); aot_gpr_5 = (aot_gpr_5 + static_cast(4936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 629u, 0x08AAEF20u, 0x08A65998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 352u, 0x08A65998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEF20u) goto L_08AAEF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEF20: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AAEF2Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 630u, 0x08AAEF2Cu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEF2Cu) goto L_08AAEF2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEF2C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (2236u << 16u); @@ -6801,8 +8307,8 @@ L_08AAEF40: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEF5C: @@ -6859,29 +8365,55 @@ L_08AAEFA4: L_08AAEFB4: aot_gpr_31 = (0x08AAEFBCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 639u, 0x08AAEFBCu, 0x08A6598Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 351u, 0x08A6598Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEFBCu) goto L_08AAEFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEFBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEFC8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AAEFD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 641u, 0x08AAEFD8u, 0x08A65984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 350u, 0x08A65984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEFD8u) goto L_08AAEFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEFD8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2812), ctx.gpr[2]); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAEFE8: @@ -6889,15 +8421,28 @@ L_08AAEFE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AAEFF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2812))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 643u, 0x08AAEFF8u, 0x08A6598Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 351u, 0x08A6598Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAEFF8u) goto L_08AAEFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAEFF8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2812), 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF008: @@ -6954,8 +8499,8 @@ L_08AAF058: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(4), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF068: @@ -7036,8 +8581,21 @@ L_08AAF0E4: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AAF0FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 660u, 0x08AAF0FCu, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF0FCu) goto L_08AAF0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF0FC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(6)))))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -7046,8 +8604,8 @@ L_08AAF0FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF118: @@ -7112,14 +8670,27 @@ L_08AAF170: } L_08AAF188: aot_gpr_31 = (0x08AAF190u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 669u, 0x08AAF190u, 0x08AD342Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 567u, 0x08AD342Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF190u) goto L_08AAF190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF190: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF19C: @@ -7203,14 +8774,27 @@ L_08AAF228: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AAF240u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 679u, 0x08AAF240u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF240u) goto L_08AAF240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF240: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF24C: @@ -7267,8 +8851,8 @@ L_08AAF29C: aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(4), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF2AC: @@ -7323,8 +8907,8 @@ L_08AAF2EC: L_08AAF2FC: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF304: @@ -7525,8 +9109,8 @@ L_08AAF44C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF460: @@ -7544,8 +9128,21 @@ L_08AAF460: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AAF498u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 722u, 0x08AAF498u, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF498u) goto L_08AAF498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF498: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -7559,8 +9156,21 @@ L_08AAF4AC: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AAF4C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 724u, 0x08AAF4C0u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF4C0u) goto L_08AAF4C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF4C0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -7570,8 +9180,8 @@ L_08AAF4C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF4D4: @@ -7580,8 +9190,21 @@ L_08AAF4D4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08AAF4F0u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 726u, 0x08AAF4F0u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF4F0u) goto L_08AAF4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF4F0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7600,34 +9223,99 @@ L_08AAF4FC: L_08AAF504: aot_gpr_31 = (0x08AAF50Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 729u, 0x08AAF50Cu, 0x08938FD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 262u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 262u, 0x08938FD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF50Cu) goto L_08AAF50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF50C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AAF518u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 730u, 0x08AAF518u, 0x08AD3BD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 694u, 0x08AD3BD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF518u) goto L_08AAF518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF518: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AAF528u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 731u, 0x08AAF528u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF528u) goto L_08AAF528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF528: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AAF53Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 732u, 0x08AAF53Cu, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF53Cu) goto L_08AAF53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF53C: aot_gpr_31 = (0x08AAF544u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 733u, 0x08AAF544u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF544u) goto L_08AAF544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF544: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AAF550u); @@ -7643,8 +9331,8 @@ L_08AAF550: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF568: @@ -7671,8 +9359,8 @@ L_08AAF5A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF5B8: @@ -7681,16 +9369,16 @@ L_08AAF5B8: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF5CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF5D8: @@ -7705,8 +9393,8 @@ L_08AAF5E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF5F8: @@ -7729,8 +9417,21 @@ L_08AAF620: ctx.gpr[18] = (0u | 5000u); aot_gpr_31 = (0x08AAF62Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 744u, 0x08AAF62Cu, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF62Cu) goto L_08AAF62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF62C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (0u | 1u); @@ -7749,8 +9450,21 @@ L_08AAF63C: } L_08AAF64C: aot_gpr_31 = (0x08AAF654u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 747u, 0x08AAF654u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF654u) goto L_08AAF654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF654: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); @@ -7790,8 +9504,8 @@ L_08AAF688: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF6A0: @@ -7800,8 +9514,8 @@ L_08AAF6A0: ctx.gpr[2] = (aot_gpr_4 ^ 2u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF6B4: @@ -7837,8 +9551,8 @@ L_08AAF6E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF6FC: @@ -7847,8 +9561,8 @@ L_08AAF6FC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF710: @@ -7862,8 +9576,8 @@ L_08AAF720: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF72C: @@ -8034,8 +9748,8 @@ L_08AAF840: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF864: @@ -8052,16 +9766,29 @@ L_08AAF864: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AAF898u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 784u, 0x08AAF898u, 0x0885FFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 942u, 0x0885FFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF898u) goto L_08AAF898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF898: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF8AC: @@ -8085,8 +9812,21 @@ L_08AAF8AC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08AAF8D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 786u, 0x08AAF8D0u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF8D0u) goto L_08AAF8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF8D0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8096,15 +9836,28 @@ L_08AAF8D0: } aot_gpr_31 = (0x08AAF8E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 787u, 0x08AAF8E4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAF8E4u) goto L_08AAF8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAF8E4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF8F4: @@ -8180,8 +9933,8 @@ L_08AAF978: goto L_08AAF97C; L_08AAF97C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAF984: @@ -8287,8 +10040,8 @@ L_08AAFA48: goto L_08AAFA4C; L_08AAFA4C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAFA54: @@ -8298,8 +10051,8 @@ L_08AAFA54: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAFA6C: @@ -8463,8 +10216,8 @@ L_08AAFB60: goto L_08AAFB68; L_08AAFB68: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAFB70: @@ -8521,8 +10274,21 @@ L_08AAFBE8: L_08AAFBF0: aot_gpr_31 = (0x08AAFBF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 841u, 0x08AAFBF8u, 0x089C6DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 638u, 0x089C6DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAFBF8u) goto L_08AAFBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAFBF8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8607,8 +10373,21 @@ L_08AAFCA8: goto L_08AAFCAC; L_08AAFCAC: aot_gpr_31 = (0x08AAFCB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 851u, 0x08AAFCB4u, 0x089BAA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 554u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 554u, 0x089BAA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAFCB4u) goto L_08AAFCB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAFCB4: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -8642,8 +10421,21 @@ L_08AAFCF8: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08AAFD28u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 853u, 0x08AAFD28u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAFD28u) goto L_08AAFD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAFD28: { const float fs = ctx.fpr[30]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[28] = std::bit_cast(0x7FC00000u); else ctx.fpr[28] = fs * ft; } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -8681,8 +10473,21 @@ L_08AAFD4C: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08AAFDACu); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 855u, 0x08AAFDACu, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAFDACu) goto L_08AAFDAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAFDAC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); @@ -8717,8 +10522,21 @@ L_08AAFDC4: ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08AAFE24u); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 857u, 0x08AAFE24u, 0x08AF4770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 84u, 0x08AF4770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAFE24u) goto L_08AAFE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAFE24: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(36), aot_run_words); @@ -8738,8 +10556,8 @@ L_08AAFE24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAFE60: @@ -8774,8 +10592,8 @@ L_08AAFE90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAFEA0: @@ -8837,8 +10655,8 @@ L_08AAFEF4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAFF00: @@ -8902,8 +10720,21 @@ L_08AAFF60: L_08AAFF68: aot_gpr_31 = (0x08AAFF70u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 881u, 0x08AAFF70u, 0x08807CB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 595u, 0x08807CB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAFF70u) goto L_08AAFF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAFF70: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16))); @@ -8945,8 +10776,21 @@ L_08AAFFA8: L_08AAFFB0: aot_gpr_31 = (0x08AAFFB8u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 888u, 0x08AAFFB8u, 0x0897EBF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 724u, 0x0897EBF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAFFB8u) goto L_08AAFFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAFFB8: { const bool branch_taken = aot_gpr_16 != 0u; if (branch_taken) { @@ -8963,8 +10807,8 @@ L_08AAFFC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AAFFD4: @@ -8973,8 +10817,21 @@ L_08AAFFD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AAFFE8u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0170->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0170_entry, 891u, 0x08AAFFE8u, 0x08AD1B88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 349u, 0x08AD1B88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AAFFE8u) goto L_08AAFFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AAFFE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (2234u << 16u); diff --git a/profiles/vcs/generated/generated_unit_0171.cpp b/profiles/vcs/generated/generated_unit_0171.cpp index dfdc540..9953044 100644 --- a/profiles/vcs/generated/generated_unit_0171.cpp +++ b/profiles/vcs/generated/generated_unit_0171.cpp @@ -1114,6 +1114,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AB0000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1135,8 +1159,8 @@ L_08AB0000: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB001C: @@ -1159,8 +1183,21 @@ L_08AB0038: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB0050u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 4u, 0x08AB0050u, 0x08ACF9BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1039u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1039u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1039u, 0x08ACF9BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0050u) goto L_08AB0050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0050: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1182,8 +1219,8 @@ L_08AB0064: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0078: @@ -1197,8 +1234,8 @@ L_08AB0088: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0094: @@ -1213,8 +1250,8 @@ L_08AB00A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB00B4: @@ -1456,8 +1493,21 @@ L_08AB0314: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08AB0320u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 34u, 0x08AB0320u, 0x08807C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0320u) goto L_08AB0320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0320: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1490,8 +1540,21 @@ L_08AB0350: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB0360u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 39u, 0x08AB0360u, 0x0897EBD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 722u, 0x0897EBD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0360u) goto L_08AB0360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0360: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1560,8 +1623,8 @@ L_08AB03C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB03F4: @@ -1572,8 +1635,21 @@ L_08AB03F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AB0410u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 47u, 0x08AB0410u, 0x08AAFFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 890u, 0x08AAFFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0410u) goto L_08AB0410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0410: aot_gpr_31 = (0x08AB0418u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2760)); @@ -1585,34 +1661,47 @@ L_08AB0418: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB042Cu); ctx.gpr[7] = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 49u, 0x08AB042Cu, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB042Cu) goto L_08AB042C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB042C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB043C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0444: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB044C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0454: @@ -1629,16 +1718,42 @@ L_08AB0454: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AB0488u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 54u, 0x08AB0488u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0488u) goto L_08AB0488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0488: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB049Cu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 55u, 0x08AB049Cu, 0x08A16D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 539u, 0x08A16D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB049Cu) goto L_08AB049C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB049C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(6), static_cast(aot_gpr_4)); @@ -1652,8 +1767,8 @@ L_08AB049C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB04C0: @@ -1672,16 +1787,42 @@ L_08AB04C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AB04FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 57u, 0x08AB04FCu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB04FCu) goto L_08AB04FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB04FC: aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB0510u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 58u, 0x08AB0510u, 0x08A16D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 539u, 0x08A16D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0510u) goto L_08AB0510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0510: aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(6), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -1700,8 +1841,8 @@ L_08AB0510: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0548: @@ -1757,8 +1898,21 @@ L_08AB0590: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AB05A8u); ctx.gpr[7] = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 66u, 0x08AB05A8u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB05A8u) goto L_08AB05A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB05A8: aot_gpr_4 = (0u | 10u); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(4), static_cast(aot_gpr_4)); @@ -1775,8 +1929,8 @@ L_08AB05D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB05DC: @@ -1820,8 +1974,21 @@ L_08AB0614: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_6); aot_gpr_31 = (0x08AB064Cu); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 72u, 0x08AB064Cu, 0x08A16D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 539u, 0x08A16D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB064Cu) goto L_08AB064C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB064C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -1839,8 +2006,8 @@ L_08AB0654: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0668: @@ -1852,16 +2019,42 @@ L_08AB0668: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AB0688u); ctx.gpr[7] = (0u | 72u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 75u, 0x08AB0688u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0688u) goto L_08AB0688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0688: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB069Cu); aot_gpr_6 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 76u, 0x08AB069Cu, 0x08A16D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 539u, 0x08A16D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB069Cu) goto L_08AB069C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB069C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(40), 0u); @@ -1886,8 +2079,8 @@ L_08AB069C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB06F8: @@ -1902,8 +2095,21 @@ L_08AB06F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AB0724u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 78u, 0x08AB0724u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0724u) goto L_08AB0724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0724: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); @@ -1911,8 +2117,21 @@ L_08AB0724: aot_gpr_6 = (aot_gpr_6 << 2u); aot_gpr_31 = (0x08AB073Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 79u, 0x08AB073Cu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB073Cu) goto L_08AB073C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB073C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(40))); @@ -1920,8 +2139,21 @@ L_08AB073C: aot_gpr_6 = (aot_gpr_6 << 3u); aot_gpr_31 = (0x08AB0754u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 80u, 0x08AB0754u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0754u) goto L_08AB0754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0754: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(48))); @@ -1929,8 +2161,21 @@ L_08AB0754: aot_gpr_6 = (aot_gpr_6 << 2u); aot_gpr_31 = (0x08AB076Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 81u, 0x08AB076Cu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB076Cu) goto L_08AB076C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB076C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); aot_gpr_6 = (aot_gpr_4 + aot_gpr_4); @@ -1940,8 +2185,21 @@ L_08AB076C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB078Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 82u, 0x08AB078Cu, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB078Cu) goto L_08AB078C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB078C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); @@ -1949,16 +2207,42 @@ L_08AB078C: aot_gpr_6 = (aot_gpr_6 << 2u); aot_gpr_31 = (0x08AB07A4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 83u, 0x08AB07A4u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB07A4u) goto L_08AB07A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB07A4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_6 = (0u | 72u); aot_gpr_31 = (0x08AB07B8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 84u, 0x08AB07B8u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB07B8u) goto L_08AB07B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB07B8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1968,8 +2252,8 @@ L_08AB07B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB07CC: @@ -2000,14 +2284,27 @@ L_08AB07F4: L_08AB0800: aot_gpr_31 = (0x08AB0808u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 89u, 0x08AB0808u, 0x08A9D3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 148u, 0x08A9D3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0808u) goto L_08AB0808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0808: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0814: @@ -2075,8 +2372,8 @@ L_08AB087C: goto L_08AB0880; L_08AB0880: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0888: @@ -2092,8 +2389,21 @@ L_08AB0888: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AB08B8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 100u, 0x08AB08B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB08B8u) goto L_08AB08B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB08B8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -2101,8 +2411,21 @@ L_08AB08B8: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08AB08D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 101u, 0x08AB08D0u, 0x08862D50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 487u, 0x08862D50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB08D0u) goto L_08AB08D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB08D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2190,8 +2513,8 @@ L_08AB0950: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB096C: @@ -2219,8 +2542,8 @@ L_08AB09A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB09B4: @@ -2239,8 +2562,21 @@ L_08AB09B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AB09F0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 115u, 0x08AB09F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB09F0u) goto L_08AB09F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB09F0: aot_gpr_31 = (0x08AB09F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); @@ -2250,14 +2586,40 @@ L_08AB09F8: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB0A04u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 117u, 0x08AB0A04u, 0x0898BB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 956u, 0x0898BB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0A04u) goto L_08AB0A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0A04: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_31 = (0x08AB0A10u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 118u, 0x08AB0A10u, 0x0898BB8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 960u, 0x0898BB8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0A10u) goto L_08AB0A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0A10: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(6)))))); @@ -2283,8 +2645,8 @@ L_08AB0A34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0A58: @@ -2300,8 +2662,21 @@ L_08AB0A58: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AB0A88u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 121u, 0x08AB0A88u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0A88u) goto L_08AB0A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0A88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (aot_gpr_4 < static_cast(45) ? 1u : 0u); @@ -2317,8 +2692,8 @@ L_08AB0A98: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(10008))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0AB0: @@ -2329,8 +2704,21 @@ L_08AB0AB0: L_08AB0AB8: aot_gpr_31 = (0x08AB0AC0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 125u, 0x08AB0AC0u, 0x0898C160u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 41u, 0x0898C160u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0AC0u) goto L_08AB0AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0AC0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2347,8 +2735,21 @@ L_08AB0AC8: L_08AB0AD0: aot_gpr_31 = (0x08AB0AD8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 128u, 0x08AB0AD8u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0AD8u) goto L_08AB0AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0AD8: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2365,8 +2766,21 @@ L_08AB0AE0: L_08AB0AE8: aot_gpr_31 = (0x08AB0AF0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 131u, 0x08AB0AF0u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0AF0u) goto L_08AB0AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0AF0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2383,8 +2797,21 @@ L_08AB0AF8: L_08AB0B00: aot_gpr_31 = (0x08AB0B08u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 134u, 0x08AB0B08u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0B08u) goto L_08AB0B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0B08: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2402,8 +2829,21 @@ L_08AB0B18: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB0B24u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 137u, 0x08AB0B24u, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0B24u) goto L_08AB0B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0B24: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2420,8 +2860,21 @@ L_08AB0B2C: L_08AB0B34: aot_gpr_31 = (0x08AB0B3Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 140u, 0x08AB0B3Cu, 0x0898C3A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 90u, 0x0898C3A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0B3Cu) goto L_08AB0B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0B3C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2438,8 +2891,21 @@ L_08AB0B44: L_08AB0B4C: aot_gpr_31 = (0x08AB0B54u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 143u, 0x08AB0B54u, 0x0898C4ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 114u, 0x0898C4ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0B54u) goto L_08AB0B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0B54: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2456,8 +2922,21 @@ L_08AB0B5C: L_08AB0B64: aot_gpr_31 = (0x08AB0B6Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 146u, 0x08AB0B6Cu, 0x0898C578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 124u, 0x0898C578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0B6Cu) goto L_08AB0B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0B6C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2474,8 +2953,21 @@ L_08AB0B74: L_08AB0B7C: aot_gpr_31 = (0x08AB0B84u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 149u, 0x08AB0B84u, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0B84u) goto L_08AB0B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0B84: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2492,8 +2984,21 @@ L_08AB0B8C: L_08AB0B94: aot_gpr_31 = (0x08AB0B9Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 152u, 0x08AB0B9Cu, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0B9Cu) goto L_08AB0B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0B9C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2510,8 +3015,21 @@ L_08AB0BA4: L_08AB0BAC: aot_gpr_31 = (0x08AB0BB4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 155u, 0x08AB0BB4u, 0x0898CB7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 252u, 0x0898CB7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0BB4u) goto L_08AB0BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0BB4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2528,8 +3046,21 @@ L_08AB0BBC: L_08AB0BC4: aot_gpr_31 = (0x08AB0BCCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 158u, 0x08AB0BCCu, 0x0898CE14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 309u, 0x0898CE14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0BCCu) goto L_08AB0BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0BCC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2546,8 +3077,21 @@ L_08AB0BD4: L_08AB0BDC: aot_gpr_31 = (0x08AB0BE4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 161u, 0x08AB0BE4u, 0x0898CE74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 319u, 0x0898CE74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0BE4u) goto L_08AB0BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0BE4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2564,8 +3108,21 @@ L_08AB0BEC: L_08AB0BF4: aot_gpr_31 = (0x08AB0BFCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 164u, 0x08AB0BFCu, 0x0898CF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 333u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 333u, 0x0898CF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0BFCu) goto L_08AB0BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0BFC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2582,8 +3139,21 @@ L_08AB0C04: L_08AB0C0C: aot_gpr_31 = (0x08AB0C14u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 167u, 0x08AB0C14u, 0x0898CF8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 347u, 0x0898CF8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0C14u) goto L_08AB0C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0C14: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2600,8 +3170,21 @@ L_08AB0C1C: L_08AB0C24: aot_gpr_31 = (0x08AB0C2Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 170u, 0x08AB0C2Cu, 0x0898CFB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 351u, 0x0898CFB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0C2Cu) goto L_08AB0C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0C2C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2618,8 +3201,21 @@ L_08AB0C34: L_08AB0C3C: aot_gpr_31 = (0x08AB0C44u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 173u, 0x08AB0C44u, 0x0898D050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 367u, 0x0898D050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0C44u) goto L_08AB0C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0C44: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2636,8 +3232,21 @@ L_08AB0C4C: L_08AB0C54: aot_gpr_31 = (0x08AB0C5Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 176u, 0x08AB0C5Cu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0C5Cu) goto L_08AB0C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0C5C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2654,8 +3263,21 @@ L_08AB0C64: L_08AB0C6C: aot_gpr_31 = (0x08AB0C74u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 179u, 0x08AB0C74u, 0x0898D168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 392u, 0x0898D168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0C74u) goto L_08AB0C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0C74: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2672,8 +3294,21 @@ L_08AB0C7C: L_08AB0C84: aot_gpr_31 = (0x08AB0C8Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 182u, 0x08AB0C8Cu, 0x0898D1B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 400u, 0x0898D1B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0C8Cu) goto L_08AB0C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0C8C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2690,8 +3325,21 @@ L_08AB0C94: L_08AB0C9C: aot_gpr_31 = (0x08AB0CA4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 185u, 0x08AB0CA4u, 0x0898D22Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 412u, 0x0898D22Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0CA4u) goto L_08AB0CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0CA4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2708,8 +3356,21 @@ L_08AB0CAC: L_08AB0CB4: aot_gpr_31 = (0x08AB0CBCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 188u, 0x08AB0CBCu, 0x0898D270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 419u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 419u, 0x0898D270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0CBCu) goto L_08AB0CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0CBC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2726,8 +3387,21 @@ L_08AB0CC4: L_08AB0CCC: aot_gpr_31 = (0x08AB0CD4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 191u, 0x08AB0CD4u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0CD4u) goto L_08AB0CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0CD4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2744,8 +3418,21 @@ L_08AB0CDC: L_08AB0CE4: aot_gpr_31 = (0x08AB0CECu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 194u, 0x08AB0CECu, 0x0898D354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 442u, 0x0898D354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0CECu) goto L_08AB0CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0CEC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2762,8 +3449,21 @@ L_08AB0CF4: L_08AB0CFC: aot_gpr_31 = (0x08AB0D04u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 197u, 0x08AB0D04u, 0x0898D4B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 475u, 0x0898D4B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0D04u) goto L_08AB0D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0D04: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2780,8 +3480,21 @@ L_08AB0D0C: L_08AB0D14: aot_gpr_31 = (0x08AB0D1Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 200u, 0x08AB0D1Cu, 0x0898D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 482u, 0x0898D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0D1Cu) goto L_08AB0D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0D1C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2798,8 +3511,21 @@ L_08AB0D24: L_08AB0D2C: aot_gpr_31 = (0x08AB0D34u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 203u, 0x08AB0D34u, 0x0898D560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 489u, 0x0898D560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0D34u) goto L_08AB0D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0D34: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2816,8 +3542,21 @@ L_08AB0D3C: L_08AB0D44: aot_gpr_31 = (0x08AB0D4Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 206u, 0x08AB0D4Cu, 0x0898D5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 496u, 0x0898D5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0D4Cu) goto L_08AB0D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0D4C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2834,8 +3573,21 @@ L_08AB0D54: L_08AB0D5C: aot_gpr_31 = (0x08AB0D64u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 209u, 0x08AB0D64u, 0x0898D640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 508u, 0x0898D640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0D64u) goto L_08AB0D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0D64: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2852,8 +3604,21 @@ L_08AB0D6C: L_08AB0D74: aot_gpr_31 = (0x08AB0D7Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 212u, 0x08AB0D7Cu, 0x0898D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 543u, 0x0898D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0D7Cu) goto L_08AB0D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0D7C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2870,8 +3635,21 @@ L_08AB0D84: L_08AB0D8C: aot_gpr_31 = (0x08AB0D94u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 215u, 0x08AB0D94u, 0x0898D8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 561u, 0x0898D8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0D94u) goto L_08AB0D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0D94: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2888,8 +3666,21 @@ L_08AB0D9C: L_08AB0DA4: aot_gpr_31 = (0x08AB0DACu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 218u, 0x08AB0DACu, 0x0898DAFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 613u, 0x0898DAFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0DACu) goto L_08AB0DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0DAC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2906,8 +3697,21 @@ L_08AB0DB4: L_08AB0DBC: aot_gpr_31 = (0x08AB0DC4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 221u, 0x08AB0DC4u, 0x0898DD9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 672u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 672u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 672u, 0x0898DD9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0DC4u) goto L_08AB0DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0DC4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2924,8 +3728,21 @@ L_08AB0DCC: L_08AB0DD4: aot_gpr_31 = (0x08AB0DDCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 224u, 0x08AB0DDCu, 0x0898DDE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 679u, 0x0898DDE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0DDCu) goto L_08AB0DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0DDC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2942,8 +3759,21 @@ L_08AB0DE4: L_08AB0DEC: aot_gpr_31 = (0x08AB0DF4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 227u, 0x08AB0DF4u, 0x0898DE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 686u, 0x0898DE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0DF4u) goto L_08AB0DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0DF4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2960,8 +3790,21 @@ L_08AB0DFC: L_08AB0E04: aot_gpr_31 = (0x08AB0E0Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 230u, 0x08AB0E0Cu, 0x0898DF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 703u, 0x0898DF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0E0Cu) goto L_08AB0E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0E0C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2978,8 +3821,21 @@ L_08AB0E14: L_08AB0E1C: aot_gpr_31 = (0x08AB0E24u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 233u, 0x08AB0E24u, 0x0898E080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 722u, 0x0898E080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0E24u) goto L_08AB0E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0E24: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -2996,8 +3852,21 @@ L_08AB0E2C: L_08AB0E34: aot_gpr_31 = (0x08AB0E3Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 236u, 0x08AB0E3Cu, 0x0898E188u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 742u, 0x0898E188u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0E3Cu) goto L_08AB0E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0E3C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -3014,8 +3883,21 @@ L_08AB0E44: L_08AB0E4C: aot_gpr_31 = (0x08AB0E54u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 239u, 0x08AB0E54u, 0x0898BEC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1040u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1040u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1040u, 0x0898BEC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0E54u) goto L_08AB0E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0E54: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -3032,8 +3914,21 @@ L_08AB0E5C: L_08AB0E64: aot_gpr_31 = (0x08AB0E6Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 242u, 0x08AB0E6Cu, 0x0898BF10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1047u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1047u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1047u, 0x0898BF10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0E6Cu) goto L_08AB0E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0E6C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -3050,8 +3945,21 @@ L_08AB0E74: L_08AB0E7C: aot_gpr_31 = (0x08AB0E84u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 245u, 0x08AB0E84u, 0x0898BF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1054u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1054u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1054u, 0x0898BF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0E84u) goto L_08AB0E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0E84: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -3068,8 +3976,21 @@ L_08AB0E8C: L_08AB0E94: aot_gpr_31 = (0x08AB0E9Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 248u, 0x08AB0E9Cu, 0x0898BFA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1061u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1061u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1061u, 0x0898BFA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0E9Cu) goto L_08AB0E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0E9C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -3086,8 +4007,21 @@ L_08AB0EA4: L_08AB0EAC: aot_gpr_31 = (0x08AB0EB4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 251u, 0x08AB0EB4u, 0x0898BFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1068u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1068u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1068u, 0x0898BFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0EB4u) goto L_08AB0EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0EB4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -3104,8 +4038,21 @@ L_08AB0EBC: L_08AB0EC4: aot_gpr_31 = (0x08AB0ECCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 254u, 0x08AB0ECCu, 0x0898BFF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 1069u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 1069u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 1069u, 0x0898BFF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0ECCu) goto L_08AB0ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0ECC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -3122,8 +4069,21 @@ L_08AB0ED4: L_08AB0EDC: aot_gpr_31 = (0x08AB0EE4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 257u, 0x08AB0EE4u, 0x0898C0C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 24u, 0x0898C0C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB0EE4u) goto L_08AB0EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB0EE4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), ctx.gpr[2]); @@ -3163,8 +4123,8 @@ L_08AB0F14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0F30: @@ -3181,8 +4141,8 @@ L_08AB0F3C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(10232))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB0F54: @@ -3376,8 +4336,8 @@ L_08AB1014: goto L_08AB1018; L_08AB1018: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1020: @@ -3396,8 +4356,8 @@ L_08AB1030: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(10448))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1048: @@ -3538,8 +4498,8 @@ L_08AB10C8: } L_08AB10D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB10D8: @@ -3552,8 +4512,21 @@ L_08AB10D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AB10FCu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 310u, 0x08AB10FCu, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB10FCu) goto L_08AB10FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB10FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3584,8 +4557,8 @@ L_08AB1120: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1138: @@ -3602,8 +4575,8 @@ L_08AB1140: goto L_08AB1148; L_08AB1148: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1150: @@ -3618,15 +4591,41 @@ L_08AB1150: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AB117Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 318u, 0x08AB117Cu, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB117Cu) goto L_08AB117C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB117C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB118Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 319u, 0x08AB118Cu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB118Cu) goto L_08AB118C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB118C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -3640,8 +4639,21 @@ L_08AB119C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB11B4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 321u, 0x08AB11B4u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB11B4u) goto L_08AB11B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB11B4: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -3687,8 +4699,21 @@ L_08AB11F4: aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_gpr_31 = (0x08AB120Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 328u, 0x08AB120Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB120Cu) goto L_08AB120C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB120C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3701,8 +4726,21 @@ L_08AB1214: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB1224u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 330u, 0x08AB1224u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1224u) goto L_08AB1224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1224: ctx.gpr[2] = (ctx.gpr[19] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -3715,8 +4753,8 @@ L_08AB1224: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1244: @@ -3731,16 +4769,42 @@ L_08AB1244: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1064), aot_gpr_31); aot_gpr_31 = (0x08AB1278u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 332u, 0x08AB1278u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1278u) goto L_08AB1278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1278: ctx.gpr[19] = (aot_gpr_29 + static_cast(4)); ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB128Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 333u, 0x08AB128Cu, 0x0889DFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 453u, 0x0889DFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB128Cu) goto L_08AB128C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB128C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[18] = (0u | 0u); @@ -3770,8 +4834,21 @@ L_08AB12AC: L_08AB12BC: aot_gpr_31 = (0x08AB12C4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 337u, 0x08AB12C4u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB12C4u) goto L_08AB12C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB12C4: aot_gpr_4 = (ctx.gpr[20] + ctx.gpr[18]); goto L_08AB12C8; @@ -3812,8 +4889,21 @@ L_08AB12EC: L_08AB1310: aot_gpr_31 = (0x08AB1318u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 342u, 0x08AB1318u, 0x0889DEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 439u, 0x0889DEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1318u) goto L_08AB1318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1318: ctx.gpr[2] = (ctx.gpr[21] | 0u); { std::uint32_t aot_run_words[7]{}; @@ -3828,8 +4918,8 @@ L_08AB1318: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1340: @@ -3844,16 +4934,42 @@ L_08AB1340: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1064), aot_gpr_31); aot_gpr_31 = (0x08AB1374u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 344u, 0x08AB1374u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1374u) goto L_08AB1374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1374: ctx.gpr[19] = (aot_gpr_29 + static_cast(4)); ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB1388u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 345u, 0x08AB1388u, 0x0889DFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 453u, 0x0889DFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1388u) goto L_08AB1388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1388: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[18] = (0u | 0u); @@ -3883,8 +4999,21 @@ L_08AB13A8: L_08AB13B8: aot_gpr_31 = (0x08AB13C0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 349u, 0x08AB13C0u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB13C0u) goto L_08AB13C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB13C0: aot_gpr_4 = (ctx.gpr[20] + ctx.gpr[18]); goto L_08AB13C4; @@ -3925,8 +5054,21 @@ L_08AB13E8: L_08AB140C: aot_gpr_31 = (0x08AB1414u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 354u, 0x08AB1414u, 0x0889DEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 439u, 0x0889DEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1414u) goto L_08AB1414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1414: ctx.gpr[2] = (ctx.gpr[21] | 0u); { std::uint32_t aot_run_words[7]{}; @@ -3941,8 +5083,8 @@ L_08AB1414: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB143C: @@ -3958,15 +5100,41 @@ L_08AB143C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1064), aot_gpr_31); aot_gpr_31 = (0x08AB1470u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 356u, 0x08AB1470u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1470u) goto L_08AB1470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1470: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB1480u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 357u, 0x08AB1480u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1480u) goto L_08AB1480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1480: ctx.gpr[17] = (aot_gpr_29 + static_cast(4)); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); @@ -3974,8 +5142,21 @@ L_08AB1480: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB1498u); ctx.gpr[21] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 358u, 0x08AB1498u, 0x0889DFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 453u, 0x0889DFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1498u) goto L_08AB1498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1498: aot_gpr_16 = (ctx.gpr[21] + static_cast(-1)); { const bool branch_taken = static_cast(ctx.gpr[21]) <= 0; @@ -3990,8 +5171,21 @@ L_08AB14A4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB14B4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 360u, 0x08AB14B4u, 0x0889DE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 433u, 0x0889DE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB14B4u) goto L_08AB14B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB14B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_16 = (ctx.gpr[18] + static_cast(-1)); @@ -4005,8 +5199,21 @@ L_08AB14B4: L_08AB14C4: aot_gpr_31 = (0x08AB14CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 362u, 0x08AB14CCu, 0x0889DEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 439u, 0x0889DEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB14CCu) goto L_08AB14CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB14CC: ctx.gpr[2] = (ctx.gpr[20] | 0u); { std::uint32_t aot_run_words[7]{}; @@ -4021,8 +5228,8 @@ L_08AB14CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB14F4: @@ -4036,8 +5243,21 @@ L_08AB14F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AB151Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 364u, 0x08AB151Cu, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB151Cu) goto L_08AB151C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB151C: aot_gpr_6 = (16256u << 16u); ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -4045,8 +5265,21 @@ L_08AB151C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB1534u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 365u, 0x08AB1534u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1534u) goto L_08AB1534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1534: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -4101,8 +5334,8 @@ L_08AB1588: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB15A0: @@ -4118,8 +5351,21 @@ L_08AB15C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB15D8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 374u, 0x08AB15D8u, 0x0889DFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 453u, 0x0889DFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB15D8u) goto L_08AB15D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB15D8: aot_gpr_4 = (static_cast(ctx.gpr[21]) < 1 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4137,8 +5383,21 @@ L_08AB15EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB15F8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 377u, 0x08AB15F8u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB15F8u) goto L_08AB15F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB15F8: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); ctx.gpr[19] = (std::bit_cast(aot_fpr_12)); @@ -4154,8 +5413,21 @@ L_08AB160C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AB1618u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 379u, 0x08AB1618u, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1618u) goto L_08AB1618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1618: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 < ctx.gpr[17] ? 1u : 0u); @@ -4168,8 +5440,21 @@ L_08AB1618: L_08AB1628: aot_gpr_31 = (0x08AB1630u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 381u, 0x08AB1630u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1630u) goto L_08AB1630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1630: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); @@ -4186,8 +5471,21 @@ L_08AB1630: L_08AB1650: aot_gpr_31 = (0x08AB1658u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 383u, 0x08AB1658u, 0x0889DEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 439u, 0x0889DEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1658u) goto L_08AB1658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1658: ctx.gpr[2] = (0u | 1u); { std::uint32_t aot_run_words[7]{}; @@ -4202,8 +5500,8 @@ L_08AB1658: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1680: @@ -4211,15 +5509,28 @@ L_08AB1680: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AB1690u); aot_gpr_4 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 385u, 0x08AB1690u, 0x0889DE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 433u, 0x0889DE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1690u) goto L_08AB1690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1690: ctx.gpr[2] = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB16A0: @@ -4232,22 +5543,61 @@ L_08AB16A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1044), aot_gpr_31); aot_gpr_31 = (0x08AB16C4u); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 387u, 0x08AB16C4u, 0x0889D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 269u, 0x0889D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB16C4u) goto L_08AB16C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB16C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB16D0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 388u, 0x08AB16D0u, 0x0889DFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 453u, 0x0889DFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB16D0u) goto L_08AB16D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB16D0: aot_gpr_5 = (2219u << 16u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AB16E4u); aot_gpr_5 = (aot_gpr_5 + static_cast(5760)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 389u, 0x08AB16E4u, 0x08807790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 523u, 0x08807790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB16E4u) goto L_08AB16E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB16E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4260,13 +5610,39 @@ L_08AB16EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB16FCu); aot_gpr_5 = (aot_gpr_5 + static_cast(10624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 391u, 0x08AB16FCu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB16FCu) goto L_08AB16FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB16FC: aot_gpr_31 = (0x08AB1704u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 392u, 0x08AB1704u, 0x0889DEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 439u, 0x0889DEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1704u) goto L_08AB1704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1704: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4277,8 +5653,8 @@ L_08AB1704: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1056)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB171C: @@ -4316,8 +5692,21 @@ L_08AB1754: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_31 = (0x08AB1764u); aot_gpr_5 = (aot_gpr_5 + static_cast(10656)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 397u, 0x08AB1764u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1764u) goto L_08AB1764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1764: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4329,8 +5718,8 @@ L_08AB176C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1778: @@ -4373,8 +5762,21 @@ L_08AB17B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_31 = (0x08AB17C8u); aot_gpr_5 = (aot_gpr_5 + static_cast(10680)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 404u, 0x08AB17C8u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB17C8u) goto L_08AB17C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB17C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4386,8 +5788,8 @@ L_08AB17D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB17DC: @@ -4465,8 +5867,21 @@ L_08AB1840: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[2]); aot_gpr_31 = (0x08AB1854u); aot_gpr_5 = (aot_gpr_5 + static_cast(10704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 415u, 0x08AB1854u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1854u) goto L_08AB1854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1854: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); goto L_08AB1858; @@ -4503,8 +5918,21 @@ L_08AB1884: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_31 = (0x08AB18A0u); aot_gpr_5 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 421u, 0x08AB18A0u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB18A0u) goto L_08AB18A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB18A0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4550,8 +5978,8 @@ L_08AB18E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB18F4: @@ -4591,8 +6019,8 @@ L_08AB192C: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[8]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(11040))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1944: @@ -4721,8 +6149,8 @@ L_08AB1A10: goto L_08AB1A1C; L_08AB1A1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1A24: @@ -4878,8 +6306,8 @@ L_08AB1B1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1B40: @@ -4954,8 +6382,8 @@ L_08AB1BB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1BC0: @@ -4984,8 +6412,21 @@ L_08AB1BE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_31 = (0x08AB1BFCu); aot_gpr_5 = (aot_gpr_5 + static_cast(10772)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 475u, 0x08AB1BFCu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1BFCu) goto L_08AB1BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1BFC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5083,8 +6524,8 @@ L_08AB1C84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1C90: @@ -5188,8 +6629,8 @@ L_08AB1D3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1D5C: @@ -5281,8 +6722,8 @@ L_08AB1DF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1E10: @@ -5312,8 +6753,21 @@ L_08AB1E40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[7]); aot_gpr_31 = (0x08AB1E60u); aot_gpr_5 = (aot_gpr_5 + static_cast(10792)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 513u, 0x08AB1E60u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB1E60u) goto L_08AB1E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB1E60: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5353,8 +6807,8 @@ L_08AB1EB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1EC0: @@ -5402,8 +6856,8 @@ L_08AB1F1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1F38: @@ -5463,8 +6917,8 @@ L_08AB1F9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB1FB0: @@ -5524,8 +6978,21 @@ L_08AB200C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB201Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 537u, 0x08AB201Cu, 0x08B580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 18u, 0x08B580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB201Cu) goto L_08AB201C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB201C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -5587,8 +7054,8 @@ L_08AB2064: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB2084: @@ -5614,8 +7081,21 @@ L_08AB20A4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AB20C4u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 546u, 0x08AB20C4u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB20C4u) goto L_08AB20C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB20C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5652,14 +7132,27 @@ L_08AB2104: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AB2110u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 551u, 0x08AB2110u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2110u) goto L_08AB2110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2110: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB211C: @@ -5676,8 +7169,21 @@ L_08AB211C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AB2150u); aot_gpr_6 = (aot_gpr_6 + static_cast(10792)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 553u, 0x08AB2150u, 0x0889D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 265u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 265u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 265u, 0x0889D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2150u) goto L_08AB2150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2150: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -5714,8 +7220,21 @@ L_08AB217C: aot_gpr_6 = (ctx.gpr[17] - ctx.gpr[18]); aot_gpr_31 = (0x08AB218Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 558u, 0x08AB218Cu, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB218Cu) goto L_08AB218C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB218C: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -5749,8 +7268,8 @@ L_08AB21B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB21CC: @@ -5764,8 +7283,21 @@ L_08AB21CC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(288), aot_run_words); } aot_gpr_31 = (0x08AB2208u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 563u, 0x08AB2208u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2208u) goto L_08AB2208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2208: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[21] = (0u | 2u); @@ -5773,8 +7305,21 @@ L_08AB2208: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB2220u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 564u, 0x08AB2220u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2220u) goto L_08AB2220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2220: aot_gpr_6 = (16256u << 16u); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -5782,8 +7327,21 @@ L_08AB2220: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB2238u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 565u, 0x08AB2238u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2238u) goto L_08AB2238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2238: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5836,8 +7394,21 @@ L_08AB2284: aot_gpr_5 = (ctx.gpr[28] + static_cast(-2384)); aot_gpr_31 = (0x08AB2290u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 573u, 0x08AB2290u, 0x08B58C00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 207u, 0x08B58C00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2290u) goto L_08AB2290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2290: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5995,8 +7566,21 @@ L_08AB23B4: L_08AB23BC: aot_gpr_31 = (0x08AB23C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 594u, 0x08AB23C4u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB23C4u) goto L_08AB23C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB23C4: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_08AB23C8; @@ -6015,8 +7599,8 @@ L_08AB23C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB23F4: @@ -6027,22 +7611,61 @@ L_08AB23F4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(276), aot_run_words); } aot_gpr_31 = (0x08AB241Cu); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 597u, 0x08AB241Cu, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB241Cu) goto L_08AB241C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB241C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB242Cu); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 598u, 0x08AB242Cu, 0x08806BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB242Cu) goto L_08AB242C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB242C: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB243Cu); aot_gpr_5 = (0u + static_cast(-10003)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 599u, 0x08AB243Cu, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB243Cu) goto L_08AB243C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB243C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_16); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[18]); @@ -6130,8 +7753,21 @@ L_08AB24EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB24F8u); aot_gpr_5 = (0u + static_cast(-10004)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 610u, 0x08AB24F8u, 0x088067C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 320u, 0x088067C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB24F8u) goto L_08AB24F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB24F8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -6170,8 +7806,8 @@ L_08AB2528: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB2548: @@ -6184,15 +7820,41 @@ L_08AB2548: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AB256Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 616u, 0x08AB256Cu, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB256Cu) goto L_08AB256C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB256C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AB257Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 617u, 0x08AB257Cu, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB257Cu) goto L_08AB257C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB257C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB2588u); @@ -6211,8 +7873,21 @@ L_08AB2594: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AB25A8u); aot_gpr_5 = (aot_gpr_5 + static_cast(9204)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 620u, 0x08AB25A8u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB25A8u) goto L_08AB25A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB25A8: ctx.gpr[2] = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6223,8 +7898,8 @@ L_08AB25A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB25C0: @@ -6244,8 +7919,21 @@ L_08AB25C0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x08AB260Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 622u, 0x08AB260Cu, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB260Cu) goto L_08AB260C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB260C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6257,15 +7945,41 @@ L_08AB2614: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB2620u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 624u, 0x08AB2620u, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2620u) goto L_08AB2620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2620: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB2630u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 625u, 0x08AB2630u, 0x08806BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 387u, 0x08806BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2630u) goto L_08AB2630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2630: ctx.gpr[19] = (ctx.gpr[2] | 0u); ctx.gpr[23] = (0u | 0u); @@ -6304,8 +8018,21 @@ L_08AB2664: L_08AB2674: aot_gpr_31 = (0x08AB267Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 630u, 0x08AB267Cu, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB267Cu) goto L_08AB267C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB267C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -6345,8 +8072,21 @@ L_08AB26B4: L_08AB26C4: aot_gpr_31 = (0x08AB26CCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 635u, 0x08AB26CCu, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB26CCu) goto L_08AB26CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB26CC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(0)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -6374,8 +8114,21 @@ L_08AB26F0: L_08AB26FC: aot_gpr_31 = (0x08AB2704u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 640u, 0x08AB2704u, 0x0889DEF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 442u, 0x0889DEF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2704u) goto L_08AB2704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2704: aot_gpr_4 = (ctx.gpr[23] < ctx.gpr[19] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6408,14 +8161,40 @@ L_08AB2734: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB2744u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 645u, 0x08AB2744u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2744u) goto L_08AB2744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2744: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB2750u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 646u, 0x08AB2750u, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2750u) goto L_08AB2750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2750: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6426,8 +8205,21 @@ L_08AB2750: L_08AB2758: aot_gpr_31 = (0x08AB2760u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 648u, 0x08AB2760u, 0x0889DEF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 442u, 0x0889DEF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2760u) goto L_08AB2760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2760: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6457,8 +8249,8 @@ L_08AB2774: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB27A4: @@ -6470,16 +8262,42 @@ L_08AB27A4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(1320), aot_run_words); } aot_gpr_31 = (0x08AB27E0u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 652u, 0x08AB27E0u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB27E0u) goto L_08AB27E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB27E0: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AB27F4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 653u, 0x08AB27F4u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB27F4u) goto L_08AB27F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB27F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -6502,8 +8320,21 @@ L_08AB281C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB2828u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 656u, 0x08AB2828u, 0x0889D684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 300u, 0x0889D684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2828u) goto L_08AB2828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2828: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(0)))))); @@ -6539,8 +8370,21 @@ L_08AB2860: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB286Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 661u, 0x08AB286Cu, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB286Cu) goto L_08AB286C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB286C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6570,15 +8414,41 @@ L_08AB288C: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08AB289Cu); aot_gpr_6 = (aot_gpr_6 + static_cast(10832)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 666u, 0x08AB289Cu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB289Cu) goto L_08AB289C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB289C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1312), aot_gpr_16); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB28ACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 667u, 0x08AB28ACu, 0x0889DFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 453u, 0x0889DFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB28ACu) goto L_08AB28AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB28AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_16); @@ -6662,8 +8532,21 @@ L_08AB2930: L_08AB2940: aot_gpr_31 = (0x08AB2948u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 678u, 0x08AB2948u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2948u) goto L_08AB2948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2948: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); goto L_08AB294C; @@ -6715,13 +8598,39 @@ L_08AB2988: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AB29A0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 685u, 0x08AB29A0u, 0x0889DE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 433u, 0x0889DE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB29A0u) goto L_08AB29A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB29A0: aot_gpr_31 = (0x08AB29A8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 686u, 0x08AB29A8u, 0x0889DEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 439u, 0x0889DEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB29A8u) goto L_08AB29A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB29A8: aot_fpr_12 = std::bit_cast(ctx.gpr[19]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6746,8 +8655,8 @@ L_08AB29B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1360)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB29EC: @@ -6759,8 +8668,21 @@ L_08AB29EC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x08AB2A20u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 689u, 0x08AB2A20u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2A20u) goto L_08AB2A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2A20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); ctx.gpr[18] = (aot_gpr_16 + static_cast(1036)); @@ -6776,8 +8698,21 @@ L_08AB2A20: L_08AB2A38: aot_gpr_31 = (0x08AB2A40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 691u, 0x08AB2A40u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2A40u) goto L_08AB2A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2A40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_gpr_4 + static_cast(1)); @@ -6831,8 +8766,21 @@ L_08AB2A90: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AB2AA0u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 698u, 0x08AB2AA0u, 0x0889DE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 433u, 0x0889DE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2AA0u) goto L_08AB2AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2AA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = 0u == 0u; @@ -6853,8 +8801,21 @@ L_08AB2AAC: L_08AB2ABC: aot_gpr_31 = (0x08AB2AC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 701u, 0x08AB2AC4u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2AC4u) goto L_08AB2AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2AC4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); goto L_08AB2AC8; @@ -6872,8 +8833,21 @@ L_08AB2AC8: L_08AB2AE4: aot_gpr_31 = (0x08AB2AECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 704u, 0x08AB2AECu, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2AECu) goto L_08AB2AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2AEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); goto L_08AB2AF0; @@ -6901,8 +8875,21 @@ L_08AB2B0C: L_08AB2B1C: aot_gpr_31 = (0x08AB2B24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 708u, 0x08AB2B24u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2B24u) goto L_08AB2B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2B24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); goto L_08AB2B28; @@ -6934,8 +8921,21 @@ L_08AB2B4C: L_08AB2B5C: aot_gpr_31 = (0x08AB2B64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 713u, 0x08AB2B64u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2B64u) goto L_08AB2B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2B64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); goto L_08AB2B68; @@ -6956,8 +8956,8 @@ L_08AB2B68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB2B9C: @@ -6985,8 +8985,21 @@ L_08AB2BE8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AB2BF4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 717u, 0x08AB2BF4u, 0x08B58294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 50u, 0x08B58294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2BF4u) goto L_08AB2BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2BF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7093,8 +9106,21 @@ L_08AB2CC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB2CD0u); aot_gpr_5 = (aot_gpr_5 + static_cast(10860)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 730u, 0x08AB2CD0u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2CD0u) goto L_08AB2CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2CD0: aot_gpr_4 = (ctx.gpr[22] + static_cast(2)); aot_gpr_4 = (static_cast(aot_gpr_4) < 21 ? 1u : 0u); @@ -7109,8 +9135,21 @@ L_08AB2CE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB2CF0u); aot_gpr_5 = (aot_gpr_5 + static_cast(10908)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 732u, 0x08AB2CF0u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2CF0u) goto L_08AB2CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2CF0: aot_gpr_4 = (0u | 37u); aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(0), static_cast(aot_gpr_4)); @@ -7118,8 +9157,21 @@ L_08AB2CF0: aot_gpr_6 = (ctx.gpr[22] + static_cast(1)); aot_gpr_31 = (0x08AB2D08u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 733u, 0x08AB2D08u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2D08u) goto L_08AB2D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2D08: aot_gpr_4 = (ctx.gpr[18] + ctx.gpr[22]); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(0u)); @@ -7137,8 +9189,8 @@ L_08AB2D08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB2D3C: @@ -7149,15 +9201,28 @@ L_08AB2D3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AB2D58u); aot_gpr_6 = (aot_gpr_6 + static_cast(10520)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 735u, 0x08AB2D58u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2D58u) goto L_08AB2D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2D58: ctx.gpr[2] = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB2D68: @@ -7185,8 +9250,8 @@ L_08AB2DA0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(11144))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB2DB8: @@ -7323,8 +9388,21 @@ L_08AB2E8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_31 = (0x08AB2E9Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(10936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 757u, 0x08AB2E9Cu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB2E9Cu) goto L_08AB2E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB2E9C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB2EA8u); @@ -7522,8 +9600,8 @@ L_08AB2FE0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(11312))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB2FF8: @@ -7647,8 +9725,8 @@ L_08AB309C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB30BC: @@ -7664,8 +9742,21 @@ L_08AB30BC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(1596), aot_run_words); } aot_gpr_31 = (0x08AB30F0u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 800u, 0x08AB30F0u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB30F0u) goto L_08AB30F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB30F0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -7673,8 +9764,21 @@ L_08AB30F0: ctx.gpr[17] = (ctx.gpr[18] + ctx.gpr[17]); aot_gpr_31 = (0x08AB3108u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 801u, 0x08AB3108u, 0x0889DFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 453u, 0x0889DFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3108u) goto L_08AB3108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3108: aot_gpr_4 = (ctx.gpr[18] < ctx.gpr[17] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7706,8 +9810,21 @@ L_08AB3124: L_08AB3138: aot_gpr_31 = (0x08AB3140u); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 805u, 0x08AB3140u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3140u) goto L_08AB3140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3140: aot_gpr_4 = (aot_gpr_29 + static_cast(4)); goto L_08AB3144; @@ -7747,8 +9864,21 @@ L_08AB3174: L_08AB3188: aot_gpr_31 = (0x08AB3190u); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 810u, 0x08AB3190u, 0x0889DDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 429u, 0x0889DDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3190u) goto L_08AB3190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3190: aot_gpr_4 = (aot_gpr_29 + static_cast(4)); goto L_08AB3194; @@ -7822,8 +9952,8 @@ L_08AB321C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(11400))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3234: @@ -7831,8 +9961,21 @@ L_08AB3234: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB3244u); aot_gpr_5 = (aot_gpr_5 + static_cast(11008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 819u, 0x08AB3244u, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3244u) goto L_08AB3244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3244: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7845,8 +9988,21 @@ L_08AB324C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB325Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(10972)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 821u, 0x08AB325Cu, 0x0889D1FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 229u, 0x0889D1FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB325Cu) goto L_08AB325C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB325C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7858,8 +10014,21 @@ L_08AB3264: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB3270u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 823u, 0x08AB3270u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3270u) goto L_08AB3270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3270: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_0)); aot_gpr_4 = (aot_gpr_29 + static_cast(1060)); @@ -7881,8 +10050,21 @@ L_08AB328C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB32A0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 826u, 0x08AB32A0u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB32A0u) goto L_08AB32A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB32A0: aot_gpr_4 = (20224u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -7930,8 +10112,21 @@ L_08AB32F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB3304u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 832u, 0x08AB3304u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3304u) goto L_08AB3304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3304: aot_gpr_31 = (0x08AB330Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -7970,8 +10165,21 @@ L_08AB3340: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB3350u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 838u, 0x08AB3350u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3350u) goto L_08AB3350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3350: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1572))); { const bool branch_taken = aot_gpr_5 != 0u; @@ -7999,8 +10207,21 @@ L_08AB336C: L_08AB3378: aot_gpr_31 = (0x08AB3380u); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 842u, 0x08AB3380u, 0x0889DEF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 442u, 0x0889DEF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3380u) goto L_08AB3380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3380: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8026,8 +10247,21 @@ L_08AB33A4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AB33B4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 846u, 0x08AB33B4u, 0x0889DE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 433u, 0x0889DE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB33B4u) goto L_08AB33B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB33B4: aot_gpr_4 = (ctx.gpr[18] < ctx.gpr[17] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8039,8 +10273,21 @@ L_08AB33B4: L_08AB33C0: aot_gpr_31 = (0x08AB33C8u); aot_gpr_4 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 848u, 0x08AB33C8u, 0x0889DEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 439u, 0x0889DEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB33C8u) goto L_08AB33C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB33C8: ctx.gpr[2] = (0u | 1u); goto L_08AB33CC; @@ -8057,8 +10304,8 @@ L_08AB33CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1616)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB33F0: @@ -8067,8 +10314,21 @@ L_08AB33F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AB3404u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 851u, 0x08AB3404u, 0x088BAB60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 565u, 0x088BAB60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3404u) goto L_08AB3404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3404: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32744)); @@ -8078,8 +10338,8 @@ L_08AB3404: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3424: @@ -8102,8 +10362,21 @@ L_08AB3440: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB3458u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 854u, 0x08AB3458u, 0x088BABB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 566u, 0x088BABB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3458u) goto L_08AB3458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3458: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8126,8 +10399,8 @@ L_08AB346C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3480: @@ -8135,14 +10408,27 @@ L_08AB3480: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AB3490u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0046. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 858u, 0x08AB3490u, 0x088BF13Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0046_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0046_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0046_entry, 46u, 311u, 0x088BF13Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3490u) goto L_08AB3490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3490: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB349C: @@ -8170,13 +10456,39 @@ L_08AB34D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); aot_gpr_31 = (0x08AB34DCu); aot_gpr_5 = (ctx.gpr[17] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 862u, 0x08AB34DCu, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB34DCu) goto L_08AB34DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB34DC: aot_gpr_31 = (0x08AB34E4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 863u, 0x08AB34E4u, 0x08A52B40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 480u, 0x08A52B40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB34E4u) goto L_08AB34E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB34E4: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); @@ -8184,8 +10496,21 @@ L_08AB34E4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_31 = (0x08AB34FCu); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_6 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 864u, 0x08AB34FCu, 0x08ADC0D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 10u, 0x08ADC0D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB34FCu) goto L_08AB34FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB34FC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8206,8 +10531,21 @@ L_08AB350C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB3520u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 867u, 0x08AB3520u, 0x088C05C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 56u, 0x088C05C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3520u) goto L_08AB3520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3520: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -8218,8 +10556,8 @@ L_08AB3520: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3538: @@ -8275,15 +10613,15 @@ L_08AB35AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB35C0: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB35C8: @@ -8347,8 +10685,21 @@ L_08AB3644: L_08AB364C: aot_gpr_31 = (0x08AB3654u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 883u, 0x08AB3654u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3654u) goto L_08AB3654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3654: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(100))); @@ -8364,8 +10715,21 @@ L_08AB3654: L_08AB366C: aot_gpr_31 = (0x08AB3674u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 885u, 0x08AB3674u, 0x088BAF70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 620u, 0x088BAF70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3674u) goto L_08AB3674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3674: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8377,8 +10741,21 @@ L_08AB367C: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x08AB3688u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0046. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 887u, 0x08AB3688u, 0x088BC128u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0046_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0046_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0046_entry, 46u, 15u, 0x088BC128u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3688u) goto L_08AB3688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3688: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); { const bool branch_taken = 0u == 0u; @@ -8399,8 +10776,8 @@ L_08AB3694: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB36B0: @@ -8409,8 +10786,8 @@ L_08AB36B0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB36D8: @@ -8467,14 +10844,27 @@ L_08AB3774: } L_08AB3788: aot_gpr_31 = (0x08AB3790u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 893u, 0x08AB3790u, 0x08AB4198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 27u, 0x08AB4198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3790u) goto L_08AB3790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3790: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB379C: @@ -8483,8 +10873,21 @@ L_08AB379C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AB37B0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 895u, 0x08AB37B0u, 0x08AB4098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 16u, 0x08AB4098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB37B0u) goto L_08AB37B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB37B0: aot_gpr_31 = (0x08AB37B8u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8494,8 +10897,8 @@ L_08AB37B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB37C8: @@ -8562,15 +10965,41 @@ L_08AB3828: L_08AB3838: aot_gpr_31 = (0x08AB3840u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 905u, 0x08AB3840u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3840u) goto L_08AB3840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3840: aot_gpr_5 = (16784u << 16u); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AB3850u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 906u, 0x08AB3850u, 0x08AB437Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 62u, 0x08AB437Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3850u) goto L_08AB3850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3850: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8607,8 +11036,21 @@ L_08AB3888: L_08AB388C: aot_gpr_31 = (0x08AB3894u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 912u, 0x08AB3894u, 0x08AB42A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 50u, 0x08AB42A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3894u) goto L_08AB3894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3894: ctx.gpr[7] = (0u | 0u); aot_gpr_4 = (0u | 0u); @@ -8755,8 +11197,8 @@ L_08AB3984: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3994: @@ -8990,8 +11432,8 @@ L_08AB3B78: goto L_08AB3B80; L_08AB3B80: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3B88: @@ -9027,14 +11469,27 @@ L_08AB3BBC: ctx.gpr[7] = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x08AB3BDCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 957u, 0x08AB3BDCu, 0x08AB41B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 30u, 0x08AB41B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3BDCu) goto L_08AB3BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3BDC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3BE8: @@ -9063,8 +11518,21 @@ L_08AB3C1C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08AB3C38u); ctx.gpr[9] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 960u, 0x08AB3C38u, 0x08AB41B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 30u, 0x08AB41B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3C38u) goto L_08AB3C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3C38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9092,8 +11560,21 @@ L_08AB3C50: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB3C64u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 964u, 0x08AB3C64u, 0x08AB4688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 107u, 0x08AB4688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3C64u) goto L_08AB3C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3C64: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -9105,8 +11586,8 @@ L_08AB3C64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3C80: @@ -9152,8 +11633,21 @@ L_08AB3CC0: L_08AB3CC4: aot_gpr_31 = (0x08AB3CCCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0171->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0171_entry, 971u, 0x08AB3CCCu, 0x08AB4198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 27u, 0x08AB4198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB3CCCu) goto L_08AB3CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB3CCC: aot_gpr_4 = (aot_gpr_16 < static_cast(7) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9168,8 +11662,8 @@ L_08AB3CD8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_16); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(11656))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3CF0: @@ -9247,8 +11741,8 @@ L_08AB3D48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3D5C: @@ -9294,8 +11788,8 @@ L_08AB3DA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3DB4: @@ -9371,8 +11865,8 @@ L_08AB3E28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3E3C: @@ -9397,8 +11891,8 @@ L_08AB3E54: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(11688))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3E6C: @@ -9485,8 +11979,8 @@ L_08AB3EEC: } L_08AB3EF8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3F00: @@ -9512,8 +12006,8 @@ L_08AB3F14: goto L_08AB3F20; L_08AB3F20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3F28: @@ -9566,8 +12060,8 @@ L_08AB3F64: goto L_08AB3F68; L_08AB3F68: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3F70: @@ -9620,8 +12114,8 @@ L_08AB3FAC: goto L_08AB3FB0; L_08AB3FB0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB3FB8: @@ -9674,8 +12168,8 @@ L_08AB3FF4: goto L_08AB3FF8; L_08AB3FF8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; } diff --git a/profiles/vcs/generated/generated_unit_0172.cpp b/profiles/vcs/generated/generated_unit_0172.cpp index 9d9e77d..7b60b32 100644 --- a/profiles/vcs/generated/generated_unit_0172.cpp +++ b/profiles/vcs/generated/generated_unit_0172.cpp @@ -1177,6 +1177,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AB4000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1275,8 +1299,8 @@ L_08AB4068: goto L_08AB406C; L_08AB406C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4074: @@ -1297,8 +1321,8 @@ L_08AB407C: L_08AB4090: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(24), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4098: @@ -1368,8 +1392,21 @@ L_08AB4130: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08AB4154u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 24u, 0x08AB4154u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB4154u) goto L_08AB4154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB4154: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(816), 0u); goto L_08AB4158; @@ -1399,8 +1436,8 @@ L_08AB4168: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4198: @@ -1419,8 +1456,8 @@ L_08AB419C: } L_08AB41B0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB41B8: @@ -1582,8 +1619,8 @@ L_08AB4298: goto L_08AB429C; L_08AB429C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB42A4: @@ -1685,8 +1722,8 @@ L_08AB435C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB437C: @@ -2026,8 +2063,21 @@ L_08AB45B8: } L_08AB45C8: aot_gpr_31 = (0x08AB45D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 99u, 0x08AB45D0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB45D0u) goto L_08AB45D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB45D0: { const bool branch_taken = ctx.gpr[17] == aot_gpr_2; if (branch_taken) { @@ -2134,8 +2184,8 @@ L_08AB4654: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4688: @@ -2192,8 +2242,21 @@ L_08AB46E8: L_08AB46F8: aot_gpr_31 = (0x08AB4700u); ctx.gpr[21] = (0u | 100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 113u, 0x08AB4700u, 0x08AAEA0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 546u, 0x08AAEA0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB4700u) goto L_08AB4700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB4700: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (static_cast(ctx.gpr[21]) < static_cast(aot_gpr_4) ? 1u : 0u); @@ -2241,8 +2304,8 @@ L_08AB4758: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(11720))); jump_target = ctx.gpr[1]; aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4774: @@ -2563,8 +2626,21 @@ L_08AB4A94: aot_gpr_4 = (2232u << 16u); aot_gpr_31 = (0x08AB4AA0u); aot_gpr_4 = (aot_gpr_4 + static_cast(11608)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 138u, 0x08AB4AA0u, 0x08AB36B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 889u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 889u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 889u, 0x08AB36B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB4AA0u) goto L_08AB4AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB4AA0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -2591,13 +2667,39 @@ L_08AB4ABC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB4AD0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 142u, 0x08AB4AD0u, 0x08A0618Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 536u, 0x08A0618Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB4AD0u) goto L_08AB4AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB4AD0: aot_gpr_31 = (0x08AB4AD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 143u, 0x08AB4AD8u, 0x08AB3994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 931u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 931u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 931u, 0x08AB3994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB4AD8u) goto L_08AB4AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB4AD8: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -2612,8 +2714,8 @@ L_08AB4AD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4B00: @@ -2658,8 +2760,8 @@ L_08AB4B28: L_08AB4B54: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4B5C: @@ -2719,8 +2821,8 @@ L_08AB4BB0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4BCC: @@ -2879,8 +2981,8 @@ L_08AB4CC0: } L_08AB4CE0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4CE8: @@ -2931,8 +3033,8 @@ L_08AB4D38: goto L_08AB4D3C; L_08AB4D3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4D44: @@ -2957,8 +3059,8 @@ L_08AB4D44: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4D70: @@ -2970,8 +3072,8 @@ L_08AB4D70: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4D90: @@ -3008,8 +3110,8 @@ L_08AB4DEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4DFC: @@ -3039,8 +3141,21 @@ L_08AB4E24: L_08AB4E2C: aot_gpr_31 = (0x08AB4E34u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 183u, 0x08AB4E34u, 0x08954E4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 206u, 0x08954E4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB4E34u) goto L_08AB4E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB4E34: aot_gpr_5 = (12u << 16u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3060,14 +3175,14 @@ L_08AB4E4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4E74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4E7C: @@ -3099,15 +3214,15 @@ L_08AB4EA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4EC8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2292))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4ED0: @@ -3115,8 +3230,8 @@ L_08AB4ED0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2292))); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 - aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4EE0: @@ -3184,8 +3299,21 @@ L_08AB4F88: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB4F98u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 196u, 0x08AB4F98u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB4F98u) goto L_08AB4F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB4F98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2288))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -3201,8 +3329,8 @@ L_08AB4FA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4FBC: @@ -3212,8 +3340,21 @@ L_08AB4FBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AB4FD4u); ctx.gpr[6] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 199u, 0x08AB4FD4u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB4FD4u) goto L_08AB4FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB4FD4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3236,8 +3377,8 @@ L_08AB4FE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB4FF4: @@ -3245,16 +3386,16 @@ L_08AB4FF4: aot_gpr_4 = (aot_gpr_4 + static_cast(4)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5004: aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2284))); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 + static_cast(8)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5010: @@ -3281,8 +3422,21 @@ L_08AB5040: aot_gpr_5 = (ctx.gpr[6] | 0u); aot_gpr_31 = (0x08AB5054u); ctx.gpr[6] = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 207u, 0x08AB5054u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5054u) goto L_08AB5054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5054: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2284))); aot_gpr_5 = (aot_gpr_16 + aot_gpr_4); @@ -3298,8 +3452,21 @@ L_08AB5064: aot_gpr_5 = (ctx.gpr[6] | 0u); aot_gpr_31 = (0x08AB5074u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 209u, 0x08AB5074u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5074u) goto L_08AB5074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5074: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2284))); aot_gpr_5 = (aot_gpr_16 + aot_gpr_4); @@ -3311,8 +3478,8 @@ L_08AB5080: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5094: @@ -3326,8 +3493,8 @@ L_08AB5094: aot_gpr_4 = (aot_gpr_4 + static_cast(8)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2284), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB50BC: @@ -3363,8 +3530,8 @@ L_08AB50FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5110: @@ -3386,8 +3553,8 @@ L_08AB5120: } L_08AB5134: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB513C: @@ -3407,12 +3574,38 @@ L_08AB515C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x08AB5168u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 224u, 0x08AB5168u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5168u) goto L_08AB5168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5168: aot_gpr_31 = (0x08AB5170u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 225u, 0x08AB5170u, 0x0898B7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 888u, 0x0898B7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5170u) goto L_08AB5170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5170: aot_gpr_31 = (0x08AB5178u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2168)); @@ -3451,8 +3644,21 @@ L_08AB51AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB51B8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 233u, 0x08AB51B8u, 0x088636C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 646u, 0x088636C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB51B8u) goto L_08AB51B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB51B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3489,19 +3695,58 @@ L_08AB51F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB51FCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 241u, 0x08AB51FCu, 0x0896DF60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 490u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 490u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 490u, 0x0896DF60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB51FCu) goto L_08AB51FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB51FC: aot_gpr_31 = (0x08AB5204u); goto L_08AB5094; L_08AB5204: aot_gpr_31 = (0x08AB520Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 243u, 0x08AB520Cu, 0x088807A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 66u, 0x088807A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB520Cu) goto L_08AB520C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB520C: aot_gpr_31 = (0x08AB5214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 244u, 0x08AB5214u, 0x0882C3C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 62u, 0x0882C3C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5214u) goto L_08AB5214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5214: aot_gpr_31 = (0x08AB521Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2144)); @@ -3534,8 +3779,21 @@ L_08AB5254: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB5264u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 249u, 0x08AB5264u, 0x08961158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 204u, 0x08961158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5264u) goto L_08AB5264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5264: aot_gpr_31 = (0x08AB526Cu); goto L_08AB5094; @@ -3561,8 +3819,21 @@ L_08AB528C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB5298u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 255u, 0x08AB5298u, 0x08992FD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 723u, 0x08992FD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5298u) goto L_08AB5298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5298: aot_gpr_31 = (0x08AB52A0u); goto L_08AB5094; @@ -3686,15 +3957,41 @@ L_08AB534C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB535Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 278u, 0x08AB535Cu, 0x0880DBC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 408u, 0x0880DBC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB535Cu) goto L_08AB535C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB535C: aot_gpr_31 = (0x08AB5364u); goto L_08AB5094; L_08AB5364: aot_gpr_31 = (0x08AB536Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 280u, 0x08AB536Cu, 0x08AD3110u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 526u, 0x08AD3110u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB536Cu) goto L_08AB536C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB536C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3713,14 +4010,40 @@ L_08AB5380: goto L_08AB5384; L_08AB5384: aot_gpr_31 = (0x08AB538Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 284u, 0x08AB538Cu, 0x089C70A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 708u, 0x089C70A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB538Cu) goto L_08AB538C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB538C: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_31 = (0x08AB5398u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 285u, 0x08AB5398u, 0x08A060BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 520u, 0x08A060BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5398u) goto L_08AB5398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5398: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3739,14 +4062,40 @@ L_08AB53AC: goto L_08AB53B0; L_08AB53B0: aot_gpr_31 = (0x08AB53B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 289u, 0x08AB53B8u, 0x089C70B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 710u, 0x089C70B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB53B8u) goto L_08AB53B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB53B8: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_31 = (0x08AB53C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 290u, 0x08AB53C4u, 0x08A0605Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 512u, 0x08A0605Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB53C4u) goto L_08AB53C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB53C4: aot_gpr_31 = (0x08AB53CCu); goto L_08AB50BC; @@ -3762,8 +4111,8 @@ L_08AB53D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB53E4: @@ -3779,8 +4128,21 @@ L_08AB53FC: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AB540Cu); ctx.gpr[6] = (0u | 28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 295u, 0x08AB540Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB540Cu) goto L_08AB540C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB540C: aot_gpr_31 = (0x08AB5414u); goto L_08AB50BC; @@ -3790,8 +4152,8 @@ L_08AB5414: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5428: @@ -3799,8 +4161,21 @@ L_08AB5428: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AB5438u); aot_gpr_4 = (0u | 360u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 298u, 0x08AB5438u, 0x08966E58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 463u, 0x08966E58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5438u) goto L_08AB5438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5438: aot_gpr_31 = (0x08AB5440u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5440u) goto L_08AB5440; @@ -3811,21 +4186,34 @@ L_08AB5440: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(3264), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AB5454u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1008)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0033. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 300u, 0x08AB5454u, 0x0888A9E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0033_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0033_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0033_entry, 33u, 725u, 0x0888A9E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5454u) goto L_08AB5454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5454: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5460: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5468: @@ -3956,8 +4344,8 @@ L_08AB551C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12008))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB553C: @@ -3988,8 +4376,8 @@ L_08AB555C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12056))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB557C: @@ -4115,8 +4503,8 @@ L_08AB5604: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5610: @@ -4195,8 +4583,8 @@ L_08AB5690: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB569C: @@ -4222,8 +4610,8 @@ L_08AB56C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB56D0: @@ -4281,8 +4669,21 @@ L_08AB572C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB573Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 364u, 0x08AB573Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB573Cu) goto L_08AB573C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB573C: aot_gpr_31 = (0x08AB5744u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4291,8 +4692,21 @@ L_08AB573C: L_08AB5744: aot_gpr_31 = (0x08AB574Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 366u, 0x08AB574Cu, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB574Cu) goto L_08AB574C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB574C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4329,8 +4743,21 @@ L_08AB5770: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB5780u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 371u, 0x08AB5780u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5780u) goto L_08AB5780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5780: aot_gpr_31 = (0x08AB5788u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4362,8 +4789,21 @@ L_08AB57A4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB57B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 376u, 0x08AB57B4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB57B4u) goto L_08AB57B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB57B4: aot_gpr_31 = (0x08AB57BCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4390,8 +4830,21 @@ L_08AB57D4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB57E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 381u, 0x08AB57E4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB57E4u) goto L_08AB57E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB57E4: aot_gpr_31 = (0x08AB57ECu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4403,8 +4856,21 @@ L_08AB57EC: L_08AB57F0: aot_gpr_31 = (0x08AB57F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 384u, 0x08AB57F8u, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB57F8u) goto L_08AB57F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB57F8: aot_gpr_31 = (0x08AB5800u); goto L_08AB50BC; @@ -4437,8 +4903,21 @@ L_08AB5820: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB5830u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 389u, 0x08AB5830u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5830u) goto L_08AB5830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5830: aot_gpr_31 = (0x08AB5838u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4487,8 +4966,21 @@ L_08AB5870: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB5880u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 396u, 0x08AB5880u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5880u) goto L_08AB5880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5880: aot_gpr_31 = (0x08AB5888u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4518,8 +5010,21 @@ L_08AB58A4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB58B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 400u, 0x08AB58B4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB58B4u) goto L_08AB58B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB58B4: aot_gpr_31 = (0x08AB58BCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4557,8 +5062,21 @@ L_08AB58E4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB58F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 405u, 0x08AB58F4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB58F4u) goto L_08AB58F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB58F4: aot_gpr_31 = (0x08AB58FCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4603,8 +5121,21 @@ L_08AB5930: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08AB593Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 411u, 0x08AB593Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB593Cu) goto L_08AB593C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB593C: aot_gpr_31 = (0x08AB5944u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4625,8 +5156,21 @@ L_08AB5950: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08AB595Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 415u, 0x08AB595Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB595Cu) goto L_08AB595C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB595C: aot_gpr_31 = (0x08AB5964u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4647,8 +5191,21 @@ L_08AB5970: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08AB597Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 419u, 0x08AB597Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB597Cu) goto L_08AB597C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB597C: aot_gpr_31 = (0x08AB5984u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4658,8 +5215,21 @@ L_08AB5984: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB5990u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 421u, 0x08AB5990u, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5990u) goto L_08AB5990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5990: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-19672), static_cast(ctx.gpr[18])); { const bool branch_taken = 0u == 0u; @@ -4685,8 +5255,21 @@ L_08AB59B0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08AB59BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 425u, 0x08AB59BCu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB59BCu) goto L_08AB59BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB59BC: aot_gpr_31 = (0x08AB59C4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4731,8 +5314,21 @@ L_08AB59F8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08AB5A04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 431u, 0x08AB5A04u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5A04u) goto L_08AB5A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5A04: aot_gpr_31 = (0x08AB5A0Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4767,8 +5363,21 @@ L_08AB5A38: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08AB5A44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 437u, 0x08AB5A44u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5A44u) goto L_08AB5A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5A44: aot_gpr_31 = (0x08AB5A4Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4795,8 +5404,21 @@ L_08AB5A64: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB5A74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 442u, 0x08AB5A74u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5A74u) goto L_08AB5A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5A74: aot_gpr_31 = (0x08AB5A7Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -4808,8 +5430,21 @@ L_08AB5A7C: L_08AB5A80: aot_gpr_31 = (0x08AB5A88u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 445u, 0x08AB5A88u, 0x0882EA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 619u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 619u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 619u, 0x0882EA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5A88u) goto L_08AB5A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5A88: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4820,8 +5455,8 @@ L_08AB5A88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5AA0: @@ -4896,8 +5531,8 @@ L_08AB5B08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5B1C: @@ -4979,8 +5614,21 @@ L_08AB5BA0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB5BACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 469u, 0x08AB5BACu, 0x089B9BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 336u, 0x089B9BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5BACu) goto L_08AB5BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5BAC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(301))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5103,8 +5751,21 @@ L_08AB5C84: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB5C94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 486u, 0x08AB5C94u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5C94u) goto L_08AB5C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5C94: aot_gpr_31 = (0x08AB5C9Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -5116,8 +5777,21 @@ L_08AB5C9C: L_08AB5CA0: aot_gpr_31 = (0x08AB5CA8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 489u, 0x08AB5CA8u, 0x0882E9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 615u, 0x0882E9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5CA8u) goto L_08AB5CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5CA8: { const bool branch_taken = static_cast(aot_gpr_16) >= 0; if (branch_taken) { @@ -5134,8 +5808,8 @@ L_08AB5CB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5CC4: @@ -5152,8 +5826,8 @@ L_08AB5CD4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5CF0: @@ -5170,8 +5844,8 @@ L_08AB5D00: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5D1C: @@ -5191,8 +5865,8 @@ L_08AB5D38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5D54: @@ -5207,8 +5881,21 @@ L_08AB5D54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AB5D80u); ctx.gpr[6] = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 498u, 0x08AB5D80u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5D80u) goto L_08AB5D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5D80: aot_gpr_31 = (0x08AB5D88u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5222,8 +5909,8 @@ L_08AB5D88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5DA8: @@ -5251,8 +5938,8 @@ L_08AB5DE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5E04: @@ -5281,8 +5968,21 @@ L_08AB5E44: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB5E50u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 504u, 0x08AB5E50u, 0x089B9BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 336u, 0x089B9BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5E50u) goto L_08AB5E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5E50: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(0), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(0), static_cast(0u)); @@ -5300,8 +6000,21 @@ L_08AB5E6C: L_08AB5E78: aot_gpr_31 = (0x08AB5E80u); aot_gpr_4 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 507u, 0x08AB5E80u, 0x08A06984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 658u, 0x08A06984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5E80u) goto L_08AB5E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5E80: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5393,8 +6106,21 @@ L_08AB5F00: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB5F0Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 524u, 0x08AB5F0Cu, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5F0Cu) goto L_08AB5F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5F0C: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5408,8 +6134,8 @@ L_08AB5F0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5F30: @@ -5431,8 +6157,21 @@ L_08AB5F58: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB5F64u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 527u, 0x08AB5F64u, 0x089B9BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 336u, 0x089B9BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5F64u) goto L_08AB5F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5F64: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08AB5F70u); @@ -5446,8 +6185,21 @@ L_08AB5F70: L_08AB5F7C: aot_gpr_31 = (0x08AB5F84u); aot_gpr_4 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 530u, 0x08AB5F84u, 0x08A06984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 658u, 0x08A06984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5F84u) goto L_08AB5F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5F84: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5479,8 +6231,21 @@ L_08AB5FA4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB5FB0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 535u, 0x08AB5FB0u, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB5FB0u) goto L_08AB5FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB5FB0: aot_gpr_2 = (0u | 1u); { std::uint32_t aot_run_words[4]{}; @@ -5492,8 +6257,8 @@ L_08AB5FB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB5FCC: @@ -5521,8 +6286,21 @@ L_08AB5FF8: } L_08AB6004: aot_gpr_31 = (0x08AB600Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 540u, 0x08AB600Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB600Cu) goto L_08AB600C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB600C: aot_gpr_31 = (0x08AB6014u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); @@ -5538,8 +6316,21 @@ L_08AB6014: } L_08AB6020: aot_gpr_31 = (0x08AB6028u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 543u, 0x08AB6028u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6028u) goto L_08AB6028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6028: aot_gpr_31 = (0x08AB6030u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); @@ -5599,8 +6390,21 @@ L_08AB6090: aot_gpr_5 = (aot_gpr_29 + static_cast(360)); aot_gpr_31 = (0x08AB60A0u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 552u, 0x08AB60A0u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB60A0u) goto L_08AB60A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB60A0: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_5 = (aot_gpr_29 + ctx.gpr[18]); @@ -5614,8 +6418,21 @@ L_08AB60A8: aot_gpr_5 = (aot_gpr_5 + static_cast(360)); aot_gpr_31 = (0x08AB60B8u); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 554u, 0x08AB60B8u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB60B8u) goto L_08AB60B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB60B8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5671,8 +6488,21 @@ L_08AB6110: aot_gpr_5 = (aot_gpr_5 + static_cast(360)); aot_gpr_31 = (0x08AB6124u); aot_gpr_4 = (aot_gpr_4 + static_cast(760)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 562u, 0x08AB6124u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6124u) goto L_08AB6124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6124: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(256))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); @@ -5740,8 +6570,8 @@ L_08AB6178: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(736)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB6194: @@ -5815,8 +6645,21 @@ L_08AB6234: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB6244u); ctx.gpr[6] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 582u, 0x08AB6244u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6244u) goto L_08AB6244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6244: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -5829,8 +6672,21 @@ L_08AB624C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB6258u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 584u, 0x08AB6258u, 0x08B58B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 190u, 0x08B58B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6258u) goto L_08AB6258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6258: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5894,8 +6750,8 @@ L_08AB6298: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(416)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB62C4: @@ -5953,8 +6809,8 @@ L_08AB6320: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB636C: @@ -6112,16 +6968,29 @@ L_08AB644C: L_08AB6454: aot_gpr_31 = (0x08AB645Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8872))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 620u, 0x08AB645Cu, 0x08A07608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 808u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 808u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 808u, 0x08A07608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB645Cu) goto L_08AB645C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB645C: aot_gpr_2 = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB6470: @@ -6140,8 +7009,8 @@ L_08AB647C: goto L_08AB648C; L_08AB648C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB6494: @@ -6207,8 +7076,8 @@ L_08AB64F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB650C: @@ -6255,8 +7124,21 @@ L_08AB655C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB6568u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 641u, 0x08AB6568u, 0x089B9BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 336u, 0x089B9BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6568u) goto L_08AB6568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6568: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(301))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6324,8 +7206,21 @@ L_08AB65D8: aot_gpr_4 = (ctx.gpr[17] + static_cast(60)); aot_gpr_31 = (0x08AB65E4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 650u, 0x08AB65E4u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB65E4u) goto L_08AB65E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB65E4: aot_gpr_31 = (0x08AB65ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6378,8 +7273,8 @@ L_08AB6624: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB663C: @@ -6400,8 +7295,8 @@ L_08AB663C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2280), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2276), ctx.gpr[6]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB6654: @@ -6427,8 +7322,21 @@ L_08AB6688: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x08AB6694u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 661u, 0x08AB6694u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6694u) goto L_08AB6694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6694: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7868))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), aot_gpr_4); @@ -6501,8 +7409,21 @@ L_08AB6784: L_08AB678C: aot_gpr_31 = (0x08AB6794u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 664u, 0x08AB6794u, 0x089C6D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 631u, 0x089C6D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6794u) goto L_08AB6794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6794: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6519,8 +7440,21 @@ L_08AB67A4: L_08AB67AC: aot_gpr_31 = (0x08AB67B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 667u, 0x08AB67B4u, 0x089C6DBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 638u, 0x089C6DBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB67B4u) goto L_08AB67B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB67B4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(108), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6537,8 +7471,21 @@ L_08AB67C4: L_08AB67CC: aot_gpr_31 = (0x08AB67D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 670u, 0x08AB67D4u, 0x089C6D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 629u, 0x089C6D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB67D4u) goto L_08AB67D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB67D4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(109), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6555,8 +7502,21 @@ L_08AB67E4: L_08AB67EC: aot_gpr_31 = (0x08AB67F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 673u, 0x08AB67F4u, 0x089C6D88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 633u, 0x089C6D88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB67F4u) goto L_08AB67F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB67F4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(112), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-24162))); @@ -6575,8 +7535,21 @@ L_08AB680C: L_08AB6814: aot_gpr_31 = (0x08AB681Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 676u, 0x08AB681Cu, 0x089C70A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 708u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 708u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 708u, 0x089C70A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB681Cu) goto L_08AB681C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB681C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(120), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6593,8 +7566,21 @@ L_08AB682C: L_08AB6834: aot_gpr_31 = (0x08AB683Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 679u, 0x08AB683Cu, 0x089C70B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 710u, 0x089C70B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB683Cu) goto L_08AB683C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB683C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(124), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6611,8 +7597,21 @@ L_08AB684C: L_08AB6854: aot_gpr_31 = (0x08AB685Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 682u, 0x08AB685Cu, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB685Cu) goto L_08AB685C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB685C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(128), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6629,8 +7628,21 @@ L_08AB686C: L_08AB6874: aot_gpr_31 = (0x08AB687Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 685u, 0x08AB687Cu, 0x089C7174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 726u, 0x089C7174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB687Cu) goto L_08AB687C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB687C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(129), static_cast(aot_gpr_2)); aot_gpr_31 = (0x08AB6888u); @@ -6660,8 +7672,21 @@ L_08AB68B4: L_08AB68BC: aot_gpr_31 = (0x08AB68C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 689u, 0x08AB68C4u, 0x089C6DECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 644u, 0x089C6DECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB68C4u) goto L_08AB68C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB68C4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(174), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6678,8 +7703,21 @@ L_08AB68D4: L_08AB68DC: aot_gpr_31 = (0x08AB68E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 692u, 0x08AB68E4u, 0x089C7148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 722u, 0x089C7148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB68E4u) goto L_08AB68E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB68E4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(176), std::bit_cast(aot_fpr_12)); @@ -6697,8 +7735,21 @@ L_08AB68F8: L_08AB6900: aot_gpr_31 = (0x08AB6908u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 695u, 0x08AB6908u, 0x089C7148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 722u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 722u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 722u, 0x089C7148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6908u) goto L_08AB6908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6908: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(180), std::bit_cast(aot_fpr_12)); @@ -6716,8 +7767,21 @@ L_08AB691C: L_08AB6924: aot_gpr_31 = (0x08AB692Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 698u, 0x08AB692Cu, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB692Cu) goto L_08AB692C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB692C: aot_gpr_4 = (0u < aot_gpr_2 ? 1u : 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(130), static_cast(aot_gpr_4)); @@ -6737,8 +7801,21 @@ L_08AB6948: L_08AB6950: aot_gpr_31 = (0x08AB6958u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 701u, 0x08AB6958u, 0x089C71A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 732u, 0x089C71A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6958u) goto L_08AB6958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6958: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(184), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -6755,8 +7832,21 @@ L_08AB6968: L_08AB6970: aot_gpr_31 = (0x08AB6978u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 704u, 0x08AB6978u, 0x089C7194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 730u, 0x089C7194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6978u) goto L_08AB6978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6978: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(185), static_cast(aot_gpr_2)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -6853,8 +7943,8 @@ L_08AB69EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB6A10: @@ -6926,8 +8016,21 @@ L_08AB6AF4: L_08AB6AF8: aot_gpr_31 = (0x08AB6B00u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 718u, 0x08AB6B00u, 0x089C6D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 632u, 0x089C6D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6B00u) goto L_08AB6B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6B00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -6947,8 +8050,21 @@ L_08AB6B18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x08AB6B28u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 722u, 0x08AB6B28u, 0x089C6DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 639u, 0x089C6DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6B28u) goto L_08AB6B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6B28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -6968,8 +8084,21 @@ L_08AB6B40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x08AB6B50u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 726u, 0x08AB6B50u, 0x089C6D70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 630u, 0x089C6D70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6B50u) goto L_08AB6B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6B50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -6988,8 +8117,21 @@ L_08AB6B68: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(112))); aot_gpr_31 = (0x08AB6B74u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 730u, 0x08AB6B74u, 0x089C6DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 637u, 0x089C6DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6B74u) goto L_08AB6B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6B74: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(116))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -7008,8 +8150,21 @@ L_08AB6B8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x08AB6B98u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(120))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 733u, 0x08AB6B98u, 0x089C70B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 709u, 0x089C70B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6B98u) goto L_08AB6B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6B98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -7027,8 +8182,21 @@ L_08AB6BAC: L_08AB6BB0: aot_gpr_31 = (0x08AB6BB8u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(124))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 737u, 0x08AB6BB8u, 0x089C70C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 711u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 711u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 711u, 0x089C70C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6BB8u) goto L_08AB6BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6BB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -7046,8 +8214,21 @@ L_08AB6BCC: L_08AB6BD0: aot_gpr_31 = (0x08AB6BD8u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(128)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 741u, 0x08AB6BD8u, 0x089C6F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 680u, 0x089C6F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6BD8u) goto L_08AB6BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6BD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -7065,8 +8246,21 @@ L_08AB6BEC: L_08AB6BF0: aot_gpr_31 = (0x08AB6BF8u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(129))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 745u, 0x08AB6BF8u, 0x089C717Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 727u, 0x089C717Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6BF8u) goto L_08AB6BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6BF8: ctx.gpr[17] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(168))); aot_gpr_31 = (0x08AB6C04u); @@ -7112,8 +8306,21 @@ L_08AB6C50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08AB6C68u); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 751u, 0x08AB6C68u, 0x089C7150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 723u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 723u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 723u, 0x089C7150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6C68u) goto L_08AB6C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6C68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -7149,14 +8356,40 @@ L_08AB6C90: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x08AB6CB4u); aot_gpr_5 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 757u, 0x08AB6CB4u, 0x0880DE38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 429u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 429u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 429u, 0x0880DE38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6CB4u) goto L_08AB6CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6CB4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB6CC0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 758u, 0x08AB6CC0u, 0x089C716Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 725u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 725u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 725u, 0x089C716Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6CC0u) goto L_08AB6CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6CC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7172,8 +8405,21 @@ L_08AB6CCC: L_08AB6CD4: aot_gpr_31 = (0x08AB6CDCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 761u, 0x08AB6CDCu, 0x089C7164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 724u, 0x089C7164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6CDCu) goto L_08AB6CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6CDC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7198,8 +8444,21 @@ L_08AB6CF8: L_08AB6CFC: aot_gpr_31 = (0x08AB6D04u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 766u, 0x08AB6D04u, 0x089C6DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 645u, 0x089C6DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6D04u) goto L_08AB6D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6D04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7224,8 +8483,21 @@ L_08AB6D20: L_08AB6D24: aot_gpr_31 = (0x08AB6D2Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 771u, 0x08AB6D2Cu, 0x089C6DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 645u, 0x089C6DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6D2Cu) goto L_08AB6D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6D2C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(130))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7244,8 +8516,21 @@ L_08AB6D38: } L_08AB6D44: aot_gpr_31 = (0x08AB6D4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 774u, 0x08AB6D4Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6D4Cu) goto L_08AB6D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6D4C: aot_gpr_31 = (0x08AB6D54u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); @@ -7275,8 +8560,21 @@ L_08AB6D70: L_08AB6D74: aot_gpr_31 = (0x08AB6D7Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 780u, 0x08AB6D7Cu, 0x089C70D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 713u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 713u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 713u, 0x089C70D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6D7Cu) goto L_08AB6D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6D7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); if (aot_gpr_4 != 0u) { @@ -7286,8 +8584,21 @@ L_08AB6D7C: goto L_08AB6D88; L_08AB6D88: aot_gpr_31 = (0x08AB6D90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 782u, 0x08AB6D90u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6D90u) goto L_08AB6D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6D90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08AB6D94; @@ -7320,8 +8631,21 @@ L_08AB6DB8: L_08AB6DBC: aot_gpr_31 = (0x08AB6DC4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 789u, 0x08AB6DC4u, 0x089C70D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 713u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 713u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 713u, 0x089C70D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6DC4u) goto L_08AB6DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6DC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); if (aot_gpr_4 != 0u) { @@ -7331,8 +8655,21 @@ L_08AB6DC4: goto L_08AB6DD0; L_08AB6DD0: aot_gpr_31 = (0x08AB6DD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 791u, 0x08AB6DD8u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6DD8u) goto L_08AB6DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6DD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08AB6DDC; @@ -7344,14 +8681,40 @@ L_08AB6DDC: L_08AB6DE4: aot_gpr_31 = (0x08AB6DECu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 794u, 0x08AB6DECu, 0x08941918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 224u, 0x08941918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6DECu) goto L_08AB6DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6DEC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(28))); aot_gpr_31 = (0x08AB6DF8u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(29))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 795u, 0x08AB6DF8u, 0x08941948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 225u, 0x08941948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6DF8u) goto L_08AB6DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6DF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -7369,8 +8732,21 @@ L_08AB6E0C: L_08AB6E10: aot_gpr_31 = (0x08AB6E18u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(184)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 799u, 0x08AB6E18u, 0x089C71B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 733u, 0x089C71B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6E18u) goto L_08AB6E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6E18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); if (aot_gpr_4 != 0u) { @@ -7388,8 +8764,21 @@ L_08AB6E2C: L_08AB6E30: aot_gpr_31 = (0x08AB6E38u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(185))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 803u, 0x08AB6E38u, 0x089C71A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 731u, 0x089C71A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6E38u) goto L_08AB6E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6E38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -7435,8 +8824,8 @@ L_08AB6E50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB6E88: @@ -7484,8 +8873,21 @@ L_08AB6F20: aot_gpr_5 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08AB6F2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 813u, 0x08AB6F2Cu, 0x08869C6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 387u, 0x08869C6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6F2Cu) goto L_08AB6F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6F2C: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2160)); @@ -7496,8 +8898,21 @@ L_08AB6F3C: aot_gpr_5 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08AB6F48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 815u, 0x08AB6F48u, 0x0896DD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 475u, 0x0896DD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6F48u) goto L_08AB6F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6F48: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2152)); @@ -7517,8 +8932,21 @@ L_08AB6F58: ctx.gpr[6] = (aot_gpr_29 + static_cast(24)); aot_gpr_31 = (0x08AB6F88u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 817u, 0x08AB6F88u, 0x08960DF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 186u, 0x08960DF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6F88u) goto L_08AB6F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6F88: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2028)); @@ -7530,8 +8958,21 @@ L_08AB6F98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB6FA8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 819u, 0x08AB6FA8u, 0x0899253Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 600u, 0x0899253Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6FA8u) goto L_08AB6FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6FA8: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2020)); @@ -7563,8 +9004,21 @@ L_08AB6FE8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AB6FF8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 823u, 0x08AB6FF8u, 0x0880DB5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 404u, 0x0880DB5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB6FF8u) goto L_08AB6FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB6FF8: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2012)); @@ -7596,8 +9050,21 @@ L_08AB7034: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB7040u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 828u, 0x08AB7040u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7040u) goto L_08AB7040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7040: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7623,8 +9090,21 @@ L_08AB705C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB7070u); ctx.gpr[7] = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 833u, 0x08AB7070u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7070u) goto L_08AB7070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7070: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -7637,8 +9117,21 @@ L_08AB7070: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8912))); aot_gpr_31 = (0x08AB709Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(688), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 834u, 0x08AB709Cu, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB709Cu) goto L_08AB709C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB709C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); @@ -7706,8 +9199,21 @@ L_08AB70F8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB7104u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 842u, 0x08AB7104u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7104u) goto L_08AB7104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7104: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7733,8 +9239,21 @@ L_08AB7120: ctx.gpr[6] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AB7134u); ctx.gpr[7] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 847u, 0x08AB7134u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7134u) goto L_08AB7134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7134: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = 0u == 0u; @@ -7757,8 +9276,21 @@ L_08AB714C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB7158u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 850u, 0x08AB7158u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7158u) goto L_08AB7158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7158: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7784,8 +9316,21 @@ L_08AB7178: ctx.gpr[6] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AB7188u); ctx.gpr[7] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 855u, 0x08AB7188u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7188u) goto L_08AB7188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7188: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = 0u == 0u; @@ -7808,8 +9353,21 @@ L_08AB71A0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB71ACu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 858u, 0x08AB71ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB71ACu) goto L_08AB71AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB71AC: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7835,8 +9393,21 @@ L_08AB71C8: ctx.gpr[6] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AB71DCu); ctx.gpr[7] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 863u, 0x08AB71DCu, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB71DCu) goto L_08AB71DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB71DC: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = 0u == 0u; @@ -7874,8 +9445,21 @@ L_08AB7214: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB7220u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 868u, 0x08AB7220u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7220u) goto L_08AB7220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7220: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7901,8 +9485,21 @@ L_08AB7240: ctx.gpr[6] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AB7250u); ctx.gpr[7] = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 873u, 0x08AB7250u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7250u) goto L_08AB7250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7250: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); @@ -7923,8 +9520,21 @@ L_08AB7260: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB726Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 876u, 0x08AB726Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB726Cu) goto L_08AB726C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB726C: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7950,8 +9560,21 @@ L_08AB728C: ctx.gpr[6] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AB729Cu); ctx.gpr[7] = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 881u, 0x08AB729Cu, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB729Cu) goto L_08AB729C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB729C: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); goto L_08AB72A0; @@ -7967,8 +9590,21 @@ L_08AB72A8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB72B4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 884u, 0x08AB72B4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB72B4u) goto L_08AB72B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB72B4: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7994,8 +9630,21 @@ L_08AB72D4: ctx.gpr[6] = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08AB72E4u); ctx.gpr[7] = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 889u, 0x08AB72E4u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB72E4u) goto L_08AB72E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB72E4: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -8009,8 +9658,21 @@ L_08AB72F0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB72FCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 891u, 0x08AB72FCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB72FCu) goto L_08AB72FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB72FC: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8036,24 +9698,76 @@ L_08AB731C: ctx.gpr[6] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08AB732Cu); ctx.gpr[7] = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 896u, 0x08AB732Cu, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB732Cu) goto L_08AB732C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB732C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08AB7338u); aot_gpr_5 = (ctx.gpr[28] + static_cast(7344)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 897u, 0x08AB7338u, 0x08A8E188u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 421u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 421u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 421u, 0x08A8E188u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7338u) goto L_08AB7338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7338: aot_gpr_31 = (0x08AB7340u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 898u, 0x08AB7340u, 0x08A8D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 292u, 0x08A8D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7340u) goto L_08AB7340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7340: aot_gpr_31 = (0x08AB7348u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 899u, 0x08AB7348u, 0x089F5B0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 315u, 0x089F5B0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7348u) goto L_08AB7348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7348: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(680))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8119,8 +9833,21 @@ L_08AB73E8: goto L_08AB5CC4; L_08AB73F0: aot_gpr_31 = (0x08AB73F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 906u, 0x08AB73F8u, 0x0898B4B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 839u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 839u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 839u, 0x0898B4B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB73F8u) goto L_08AB73F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB73F8: aot_gpr_2 = (0u | 1u); { std::uint32_t aot_run_words[11]{}; @@ -8139,8 +9866,8 @@ L_08AB73F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(752)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB7430: @@ -8271,8 +9998,8 @@ L_08AB74FC: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[17]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12104))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB7514: @@ -8306,8 +10033,21 @@ L_08AB7540: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2264), 0u); aot_gpr_31 = (0x08AB754Cu); aot_gpr_4 = (0u | 360u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 928u, 0x08AB754Cu, 0x08966EE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 472u, 0x08966EE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB754Cu) goto L_08AB754C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB754C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = 0u == 0u; @@ -8341,8 +10081,21 @@ L_08AB7574: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB7584u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 932u, 0x08AB7584u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7584u) goto L_08AB7584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7584: aot_gpr_31 = (0x08AB758Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -8352,8 +10105,21 @@ L_08AB758C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB7598u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 934u, 0x08AB7598u, 0x0882E99Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 608u, 0x0882E99Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7598u) goto L_08AB7598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7598: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2295), static_cast(0u)); @@ -8377,8 +10143,21 @@ L_08AB75B0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB75C0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 937u, 0x08AB75C0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB75C0u) goto L_08AB75C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB75C0: aot_gpr_31 = (0x08AB75C8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -8388,8 +10167,21 @@ L_08AB75C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB75D4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 939u, 0x08AB75D4u, 0x0882E99Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 608u, 0x0882E99Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB75D4u) goto L_08AB75D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB75D4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2295), static_cast(0u)); @@ -8471,8 +10263,21 @@ L_08AB7648: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_gpr_31 = (0x08AB7654u); aot_gpr_5 = (ctx.gpr[19] + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 950u, 0x08AB7654u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7654u) goto L_08AB7654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7654: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_5 = (0u | 1u); @@ -8527,14 +10332,40 @@ L_08AB76B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_gpr_31 = (0x08AB76BCu); aot_gpr_5 = (ctx.gpr[19] + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 957u, 0x08AB76BCu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB76BCu) goto L_08AB76BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB76BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_31 = (0x08AB76C8u); aot_gpr_5 = (ctx.gpr[20] + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 958u, 0x08AB76C8u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB76C8u) goto L_08AB76C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB76C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); { const bool branch_taken = 0u == 0u; @@ -8571,8 +10402,21 @@ L_08AB76F0: } L_08AB7700: aot_gpr_31 = (0x08AB7708u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 963u, 0x08AB7708u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7708u) goto L_08AB7708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7708: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_5 = (0u + static_cast(-5)); @@ -8593,8 +10437,21 @@ L_08AB772C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB773Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 965u, 0x08AB773Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB773Cu) goto L_08AB773C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB773C: aot_gpr_31 = (0x08AB7744u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -8606,8 +10463,21 @@ L_08AB7744: L_08AB7748: aot_gpr_31 = (0x08AB7750u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 968u, 0x08AB7750u, 0x0882E99Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 608u, 0x0882E99Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7750u) goto L_08AB7750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7750: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2295), static_cast(0u)); @@ -8628,8 +10498,21 @@ L_08AB7758: } L_08AB7768: aot_gpr_31 = (0x08AB7770u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 971u, 0x08AB7770u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7770u) goto L_08AB7770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7770: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_5 = (0u + static_cast(-5)); @@ -8650,8 +10533,21 @@ L_08AB7794: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AB77A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 973u, 0x08AB77A4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB77A4u) goto L_08AB77A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB77A4: aot_gpr_31 = (0x08AB77ACu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-2192)); @@ -8663,8 +10559,21 @@ L_08AB77AC: L_08AB77B0: aot_gpr_31 = (0x08AB77B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 976u, 0x08AB77B8u, 0x0882E99Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 608u, 0x0882E99Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB77B8u) goto L_08AB77B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB77B8: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2295), static_cast(0u)); goto L_08AB77BC; @@ -8715,8 +10624,21 @@ L_08AB77F8: L_08AB7800: aot_gpr_31 = (0x08AB7808u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8872))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 985u, 0x08AB7808u, 0x08A07608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 808u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 808u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 808u, 0x08A07608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7808u) goto L_08AB7808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7808: aot_gpr_2 = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[6]{}; @@ -8730,8 +10652,8 @@ L_08AB7808: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB782C: @@ -8762,8 +10684,21 @@ L_08AB7874: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x08AB7880u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 989u, 0x08AB7880u, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7880u) goto L_08AB7880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7880: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7868))); aot_gpr_5 = (aot_gpr_4 < static_cast(5) ? 1u : 0u); @@ -8898,8 +10833,21 @@ L_08AB794C: ctx.gpr[6] = (0u | 1200u); aot_gpr_31 = (0x08AB7960u); aot_gpr_4 = (aot_gpr_4 + static_cast(-440)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1005u, 0x08AB7960u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7960u) goto L_08AB7960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7960: aot_gpr_4 = (ctx.gpr[17] < static_cast(9) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8914,8 +10862,8 @@ L_08AB796C: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[17]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12144))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB7984: @@ -8938,8 +10886,21 @@ L_08AB79B4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB79C4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1009u, 0x08AB79C4u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB79C4u) goto L_08AB79C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB79C4: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-1956)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(76)); @@ -8952,8 +10913,21 @@ L_08AB79D4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB79E4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1011u, 0x08AB79E4u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB79E4u) goto L_08AB79E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB79E4: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-1948)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(100)); @@ -8966,8 +10940,21 @@ L_08AB79F4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB7A04u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1013u, 0x08AB7A04u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7A04u) goto L_08AB7A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7A04: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(12504)); @@ -8982,30 +10969,82 @@ L_08AB7A04: aot_gpr_4 = (ctx.gpr[17] + static_cast(1500)); aot_gpr_31 = (0x08AB7A38u); ctx.gpr[6] = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1014u, 0x08AB7A38u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7A38u) goto L_08AB7A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7A38: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[17] + static_cast(128)); ctx.gpr[6] = (0u | 127u); aot_gpr_31 = (0x08AB7A4Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(11904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1015u, 0x08AB7A4Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7A4Cu) goto L_08AB7A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7A4C: aot_gpr_4 = (ctx.gpr[17] + static_cast(256)); aot_gpr_5 = (aot_gpr_16 + static_cast(48)); aot_gpr_31 = (0x08AB7A5Cu); ctx.gpr[6] = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1016u, 0x08AB7A5Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7A5Cu) goto L_08AB7A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7A5C: aot_gpr_4 = (ctx.gpr[17] + static_cast(384)); aot_gpr_5 = (aot_gpr_16 + static_cast(176)); aot_gpr_31 = (0x08AB7A6Cu); ctx.gpr[6] = (0u | 1023u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1017u, 0x08AB7A6Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7A6Cu) goto L_08AB7A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7A6C: aot_gpr_4 = (0u | 9u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1408), static_cast(aot_gpr_4)); @@ -9048,29 +11087,81 @@ L_08AB7AA8: L_08AB7AC8: aot_gpr_31 = (0x08AB7AD0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1022u, 0x08AB7AD0u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7AD0u) goto L_08AB7AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7AD0: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7AE4u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1023u, 0x08AB7AE4u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7AE4u) goto L_08AB7AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7AE4: aot_gpr_31 = (0x08AB7AECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1024u, 0x08AB7AECu, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7AECu) goto L_08AB7AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7AEC: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7B00u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1025u, 0x08AB7B00u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7B00u) goto L_08AB7B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7B00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2208))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9093,13 +11184,39 @@ L_08AB7B1C: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AB7B30u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1029u, 0x08AB7B30u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7B30u) goto L_08AB7B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7B30: aot_gpr_31 = (0x08AB7B38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1030u, 0x08AB7B38u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7B38u) goto L_08AB7B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7B38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9113,8 +11230,21 @@ L_08AB7B44: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AB7B50u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1032u, 0x08AB7B50u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7B50u) goto L_08AB7B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7B50: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -9141,8 +11271,21 @@ L_08AB7B70: ctx.gpr[7] = (0u | 127u); aot_gpr_31 = (0x08AB7B84u); ctx.gpr[6] = (ctx.gpr[6] + static_cast(-2236)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1037u, 0x08AB7B84u, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7B84u) goto L_08AB7B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7B84: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19664))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9189,29 +11332,81 @@ L_08AB7BC4: L_08AB7BF0: aot_gpr_31 = (0x08AB7BF8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1042u, 0x08AB7BF8u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7BF8u) goto L_08AB7BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7BF8: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7C0Cu); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1043u, 0x08AB7C0Cu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7C0Cu) goto L_08AB7C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7C0C: aot_gpr_31 = (0x08AB7C14u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1044u, 0x08AB7C14u, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7C14u) goto L_08AB7C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7C14: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7C28u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1045u, 0x08AB7C28u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7C28u) goto L_08AB7C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7C28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2216))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9234,13 +11429,39 @@ L_08AB7C44: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AB7C58u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1049u, 0x08AB7C58u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7C58u) goto L_08AB7C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7C58: aot_gpr_31 = (0x08AB7C60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1050u, 0x08AB7C60u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7C60u) goto L_08AB7C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7C60: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19664))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9287,29 +11508,81 @@ L_08AB7CA0: L_08AB7CCC: aot_gpr_31 = (0x08AB7CD4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1055u, 0x08AB7CD4u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7CD4u) goto L_08AB7CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7CD4: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7CE8u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1056u, 0x08AB7CE8u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7CE8u) goto L_08AB7CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7CE8: aot_gpr_31 = (0x08AB7CF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1057u, 0x08AB7CF0u, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7CF0u) goto L_08AB7CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7CF0: ctx.gpr[20] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7D04u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1058u, 0x08AB7D04u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7D04u) goto L_08AB7D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7D04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2212))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9332,13 +11605,39 @@ L_08AB7D20: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AB7D34u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1062u, 0x08AB7D34u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7D34u) goto L_08AB7D34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7D34: aot_gpr_31 = (0x08AB7D3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1063u, 0x08AB7D3Cu, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7D3Cu) goto L_08AB7D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7D3C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19664))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9377,29 +11676,81 @@ L_08AB7D6C: L_08AB7D88: aot_gpr_31 = (0x08AB7D90u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1068u, 0x08AB7D90u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7D90u) goto L_08AB7D90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7D90: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7DA4u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1069u, 0x08AB7DA4u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7DA4u) goto L_08AB7DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7DA4: aot_gpr_31 = (0x08AB7DACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1070u, 0x08AB7DACu, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7DACu) goto L_08AB7DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7DAC: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7DC0u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1071u, 0x08AB7DC0u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7DC0u) goto L_08AB7DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7DC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2204))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9422,13 +11773,39 @@ L_08AB7DDC: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AB7DF0u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1075u, 0x08AB7DF0u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7DF0u) goto L_08AB7DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7DF0: aot_gpr_31 = (0x08AB7DF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1076u, 0x08AB7DF8u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7DF8u) goto L_08AB7DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7DF8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19664))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9467,29 +11844,81 @@ L_08AB7E28: L_08AB7E44: aot_gpr_31 = (0x08AB7E4Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1081u, 0x08AB7E4Cu, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7E4Cu) goto L_08AB7E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7E4C: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7E60u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1082u, 0x08AB7E60u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7E60u) goto L_08AB7E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7E60: aot_gpr_31 = (0x08AB7E68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1083u, 0x08AB7E68u, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7E68u) goto L_08AB7E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7E68: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB7E7Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1084u, 0x08AB7E7Cu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7E7Cu) goto L_08AB7E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7E7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2200))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9512,13 +11941,39 @@ L_08AB7E98: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AB7EACu); ctx.gpr[6] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1088u, 0x08AB7EACu, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7EACu) goto L_08AB7EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7EAC: aot_gpr_31 = (0x08AB7EB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1089u, 0x08AB7EB4u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7EB4u) goto L_08AB7EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7EB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2216))); aot_gpr_5 = (2236u << 16u); @@ -9575,8 +12030,21 @@ L_08AB7F5C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB7F6Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1093u, 0x08AB7F6Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7F6Cu) goto L_08AB7F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7F6C: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-1880)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(76)); @@ -9589,8 +12057,21 @@ L_08AB7F7C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB7F8Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1095u, 0x08AB7F8Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7F8Cu) goto L_08AB7F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7F8C: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-1876)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(100)); @@ -9603,8 +12084,21 @@ L_08AB7F9C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB7FACu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1097u, 0x08AB7FACu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7FACu) goto L_08AB7FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7FAC: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(12684)); @@ -9619,16 +12113,42 @@ L_08AB7FAC: aot_gpr_4 = (ctx.gpr[17] + static_cast(1500)); aot_gpr_31 = (0x08AB7FE0u); ctx.gpr[6] = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1098u, 0x08AB7FE0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7FE0u) goto L_08AB7FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7FE0: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[17] + static_cast(128)); ctx.gpr[6] = (0u | 127u); aot_gpr_31 = (0x08AB7FF4u); aot_gpr_5 = (aot_gpr_5 + static_cast(11904)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0172->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0172_entry, 1099u, 0x08AB7FF4u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB7FF4u) goto L_08AB7FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB7FF4: aot_gpr_4 = (ctx.gpr[17] + static_cast(256)); aot_gpr_5 = (aot_gpr_16 + static_cast(48)); diff --git a/profiles/vcs/generated/generated_unit_0173.cpp b/profiles/vcs/generated/generated_unit_0173.cpp index fb7978a..0ae84c0 100644 --- a/profiles/vcs/generated/generated_unit_0173.cpp +++ b/profiles/vcs/generated/generated_unit_0173.cpp @@ -805,6 +805,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AB8004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -823,8 +847,21 @@ L_08AB8004: aot_gpr_5 = (ctx.gpr[16] + static_cast(176)); aot_gpr_31 = (0x08AB8014u); aot_gpr_6 = (0u | 1023u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 2u, 0x08AB8014u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8014u) goto L_08AB8014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8014: aot_gpr_4 = (0u | 9u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(1408), static_cast(aot_gpr_4)); @@ -867,29 +904,81 @@ L_08AB8050: L_08AB8070: aot_gpr_31 = (0x08AB8078u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 7u, 0x08AB8078u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8078u) goto L_08AB8078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8078: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB808Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 8u, 0x08AB808Cu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB808Cu) goto L_08AB808C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB808C: aot_gpr_31 = (0x08AB8094u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 9u, 0x08AB8094u, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8094u) goto L_08AB8094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8094: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB80A8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 10u, 0x08AB80A8u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB80A8u) goto L_08AB80A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB80A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2208))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -901,26 +990,78 @@ L_08AB80A8: L_08AB80B4: aot_gpr_31 = (0x08AB80BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2208))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 12u, 0x08AB80BCu, 0x08AB4E74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 185u, 0x08AB4E74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB80BCu) goto L_08AB80BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB80BC: aot_gpr_31 = (0x08AB80C4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 13u, 0x08AB80C4u, 0x08AB4DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 179u, 0x08AB4DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB80C4u) goto L_08AB80C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB80C4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2208), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB80D8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 14u, 0x08AB80D8u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB80D8u) goto L_08AB80D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB80D8: aot_gpr_31 = (0x08AB80E0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 15u, 0x08AB80E0u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB80E0u) goto L_08AB80E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB80E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -934,8 +1075,21 @@ L_08AB80EC: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08AB80F8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 17u, 0x08AB80F8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB80F8u) goto L_08AB80F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB80F8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -962,8 +1116,21 @@ L_08AB8118: aot_gpr_7 = (0u | 127u); aot_gpr_31 = (0x08AB812Cu); aot_gpr_6 = (aot_gpr_6 + static_cast(-2236)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 22u, 0x08AB812Cu, 0x089F63FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 426u, 0x089F63FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB812Cu) goto L_08AB812C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB812C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19664))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1006,29 +1173,81 @@ L_08AB8164: L_08AB8188: aot_gpr_31 = (0x08AB8190u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 27u, 0x08AB8190u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8190u) goto L_08AB8190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8190: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB81A4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 28u, 0x08AB81A4u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB81A4u) goto L_08AB81A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB81A4: aot_gpr_31 = (0x08AB81ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 29u, 0x08AB81ACu, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB81ACu) goto L_08AB81AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB81AC: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB81C0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 30u, 0x08AB81C0u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB81C0u) goto L_08AB81C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB81C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2216))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1040,26 +1259,78 @@ L_08AB81C0: L_08AB81CC: aot_gpr_31 = (0x08AB81D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2216))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 32u, 0x08AB81D4u, 0x08AB4E74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 185u, 0x08AB4E74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB81D4u) goto L_08AB81D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB81D4: aot_gpr_31 = (0x08AB81DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 33u, 0x08AB81DCu, 0x08AB4DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 179u, 0x08AB4DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB81DCu) goto L_08AB81DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB81DC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2216), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB81F0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 34u, 0x08AB81F0u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB81F0u) goto L_08AB81F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB81F0: aot_gpr_31 = (0x08AB81F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 35u, 0x08AB81F8u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB81F8u) goto L_08AB81F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB81F8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19664))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1102,29 +1373,81 @@ L_08AB8230: L_08AB8254: aot_gpr_31 = (0x08AB825Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 40u, 0x08AB825Cu, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB825Cu) goto L_08AB825C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB825C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB8270u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 41u, 0x08AB8270u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8270u) goto L_08AB8270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8270: aot_gpr_31 = (0x08AB8278u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 42u, 0x08AB8278u, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8278u) goto L_08AB8278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8278: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB828Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 43u, 0x08AB828Cu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB828Cu) goto L_08AB828C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB828C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2212))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1136,26 +1459,78 @@ L_08AB828C: L_08AB8298: aot_gpr_31 = (0x08AB82A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2212))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 45u, 0x08AB82A0u, 0x08AB4E74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 185u, 0x08AB4E74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB82A0u) goto L_08AB82A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB82A0: aot_gpr_31 = (0x08AB82A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 46u, 0x08AB82A8u, 0x08AB4DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 179u, 0x08AB4DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB82A8u) goto L_08AB82A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB82A8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2212), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB82BCu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 47u, 0x08AB82BCu, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB82BCu) goto L_08AB82BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB82BC: aot_gpr_31 = (0x08AB82C4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 48u, 0x08AB82C4u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB82C4u) goto L_08AB82C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB82C4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19664))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1194,29 +1569,81 @@ L_08AB82F4: L_08AB8310: aot_gpr_31 = (0x08AB8318u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 53u, 0x08AB8318u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8318u) goto L_08AB8318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8318: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB832Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 54u, 0x08AB832Cu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB832Cu) goto L_08AB832C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB832C: aot_gpr_31 = (0x08AB8334u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 55u, 0x08AB8334u, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8334u) goto L_08AB8334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8334: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB8348u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 56u, 0x08AB8348u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8348u) goto L_08AB8348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8348: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2204))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1228,26 +1655,78 @@ L_08AB8348: L_08AB8354: aot_gpr_31 = (0x08AB835Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2204))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 58u, 0x08AB835Cu, 0x08AB4E74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 185u, 0x08AB4E74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB835Cu) goto L_08AB835C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB835C: aot_gpr_31 = (0x08AB8364u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 59u, 0x08AB8364u, 0x08AB4DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 179u, 0x08AB4DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8364u) goto L_08AB8364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8364: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2204), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB8378u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 60u, 0x08AB8378u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8378u) goto L_08AB8378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8378: aot_gpr_31 = (0x08AB8380u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 61u, 0x08AB8380u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8380u) goto L_08AB8380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8380: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19664))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1286,29 +1765,81 @@ L_08AB83B0: L_08AB83CC: aot_gpr_31 = (0x08AB83D4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 66u, 0x08AB83D4u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB83D4u) goto L_08AB83D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB83D4: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB83E8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 67u, 0x08AB83E8u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB83E8u) goto L_08AB83E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB83E8: aot_gpr_31 = (0x08AB83F0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 68u, 0x08AB83F0u, 0x08939014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 266u, 0x08939014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB83F0u) goto L_08AB83F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB83F0: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AB8404u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 69u, 0x08AB8404u, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8404u) goto L_08AB8404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8404: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2200))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1320,26 +1851,78 @@ L_08AB8404: L_08AB8410: aot_gpr_31 = (0x08AB8418u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2200))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 71u, 0x08AB8418u, 0x08AB4E74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 185u, 0x08AB4E74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8418u) goto L_08AB8418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8418: aot_gpr_31 = (0x08AB8420u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 72u, 0x08AB8420u, 0x08AB4DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 179u, 0x08AB4DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8420u) goto L_08AB8420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8420: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-2200), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB8434u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 73u, 0x08AB8434u, 0x08939050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 270u, 0x08939050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8434u) goto L_08AB8434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8434: aot_gpr_31 = (0x08AB843Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 74u, 0x08AB843Cu, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB843Cu) goto L_08AB843C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB843C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-2216))); aot_gpr_5 = (2236u << 16u); @@ -1376,25 +1959,77 @@ L_08AB843C: } L_08AB84B0: aot_gpr_31 = (0x08AB84B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 76u, 0x08AB84B8u, 0x08AB50BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 212u, 0x08AB50BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB84B8u) goto L_08AB84B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB84B8: aot_gpr_4 = (2u << 16u); ctx.gpr[16] = (aot_gpr_4 + static_cast(-32768)); aot_gpr_31 = (0x08AB84C8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 77u, 0x08AB84C8u, 0x08AB4DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 179u, 0x08AB4DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB84C8u) goto L_08AB84C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB84C8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB84D4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 78u, 0x08AB84D4u, 0x08AB4E7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 186u, 0x08AB4E7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB84D4u) goto L_08AB84D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB84D4: aot_gpr_31 = (0x08AB84DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 79u, 0x08AB84DCu, 0x08AB4EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 189u, 0x08AB4EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB84DCu) goto L_08AB84DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB84DC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); @@ -1415,8 +2050,21 @@ L_08AB84EC: aot_gpr_5 = (ctx.gpr[28] + static_cast(-2232)); aot_gpr_31 = (0x08AB851Cu); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 81u, 0x08AB851Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB851Cu) goto L_08AB851C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB851C: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-2084)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(60)); @@ -1429,8 +2077,21 @@ L_08AB852C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB853Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 83u, 0x08AB853Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB853Cu) goto L_08AB853C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB853C: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-1956)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(76)); @@ -1443,8 +2104,21 @@ L_08AB854C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB855Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 85u, 0x08AB855Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB855Cu) goto L_08AB855C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB855C: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-1948)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(100)); @@ -1457,15 +2131,41 @@ L_08AB856C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB857Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 87u, 0x08AB857Cu, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB857Cu) goto L_08AB857C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB857C: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(12504)); aot_gpr_31 = (0x08AB858Cu); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 88u, 0x08AB858Cu, 0x08AB4EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 189u, 0x08AB4EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB858Cu) goto L_08AB858C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB858C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(116), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -1477,25 +2177,77 @@ L_08AB858C: } L_08AB8598: aot_gpr_31 = (0x08AB85A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 90u, 0x08AB85A0u, 0x08AB50BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 212u, 0x08AB50BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB85A0u) goto L_08AB85A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB85A0: aot_gpr_4 = (2u << 16u); ctx.gpr[16] = (aot_gpr_4 + static_cast(-32768)); aot_gpr_31 = (0x08AB85B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 91u, 0x08AB85B0u, 0x08AB4DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 179u, 0x08AB4DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB85B0u) goto L_08AB85B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB85B0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB85BCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 92u, 0x08AB85BCu, 0x08AB4E7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 186u, 0x08AB4E7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB85BCu) goto L_08AB85BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB85BC: aot_gpr_31 = (0x08AB85C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 93u, 0x08AB85C4u, 0x08AB4EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 189u, 0x08AB4EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB85C4u) goto L_08AB85C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB85C4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); @@ -1516,8 +2268,21 @@ L_08AB85D4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-2232)); aot_gpr_31 = (0x08AB8604u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 95u, 0x08AB8604u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8604u) goto L_08AB8604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8604: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-2084)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(60)); @@ -1530,8 +2295,21 @@ L_08AB8614: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB8624u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 97u, 0x08AB8624u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8624u) goto L_08AB8624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8624: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-1880)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(76)); @@ -1544,8 +2322,21 @@ L_08AB8634: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB8644u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 99u, 0x08AB8644u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8644u) goto L_08AB8644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8644: ctx.gpr[18] = (ctx.gpr[28] + static_cast(-1876)); ctx.gpr[19] = (ctx.gpr[17] + static_cast(100)); @@ -1558,15 +2349,41 @@ L_08AB8654: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AB8664u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 101u, 0x08AB8664u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8664u) goto L_08AB8664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8664: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(12684)); aot_gpr_31 = (0x08AB8674u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 102u, 0x08AB8674u, 0x08AB4EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 189u, 0x08AB4EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8674u) goto L_08AB8674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8674: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(116), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -1581,18 +2398,57 @@ L_08AB8680: ctx.gpr[17] = (aot_gpr_4 + static_cast(-32768)); aot_gpr_31 = (0x08AB8690u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 104u, 0x08AB8690u, 0x08AB4DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 179u, 0x08AB4DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8690u) goto L_08AB8690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8690: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AB869Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 105u, 0x08AB869Cu, 0x08AB4E7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 186u, 0x08AB4E7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB869Cu) goto L_08AB869C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB869C: aot_gpr_31 = (0x08AB86A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 106u, 0x08AB86A4u, 0x08AB4EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 189u, 0x08AB4EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB86A4u) goto L_08AB86A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB86A4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u | 0u); @@ -1612,8 +2468,21 @@ L_08AB86B4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-2232)); aot_gpr_31 = (0x08AB86E0u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 108u, 0x08AB86E0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB86E0u) goto L_08AB86E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB86E0: ctx.gpr[19] = (ctx.gpr[28] + static_cast(-2084)); ctx.gpr[20] = (ctx.gpr[18] + static_cast(60)); @@ -1626,8 +2495,21 @@ L_08AB86F0: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB8700u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 110u, 0x08AB8700u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8700u) goto L_08AB8700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8700: ctx.gpr[19] = (ctx.gpr[28] + static_cast(-1956)); ctx.gpr[20] = (ctx.gpr[18] + static_cast(76)); @@ -1640,8 +2522,21 @@ L_08AB8710: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB8720u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 112u, 0x08AB8720u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8720u) goto L_08AB8720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8720: ctx.gpr[19] = (ctx.gpr[28] + static_cast(-1948)); ctx.gpr[21] = (ctx.gpr[18] + static_cast(100)); @@ -1654,18 +2549,57 @@ L_08AB8730: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB8740u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 114u, 0x08AB8740u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8740u) goto L_08AB8740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8740: aot_gpr_5 = (ctx.gpr[16] + static_cast(28)); aot_gpr_31 = (0x08AB874Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 115u, 0x08AB874Cu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB874Cu) goto L_08AB874C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB874C: aot_gpr_31 = (0x08AB8754u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 116u, 0x08AB8754u, 0x08AB4EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 189u, 0x08AB4EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8754u) goto L_08AB8754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8754: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(116), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -1688,8 +2622,21 @@ L_08AB8760: aot_gpr_5 = (ctx.gpr[28] + static_cast(-2232)); aot_gpr_31 = (0x08AB8790u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 118u, 0x08AB8790u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8790u) goto L_08AB8790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8790: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1710,8 +2657,21 @@ L_08AB8798: aot_gpr_5 = (ctx.gpr[28] + static_cast(-2232)); aot_gpr_31 = (0x08AB87C8u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 120u, 0x08AB87C8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB87C8u) goto L_08AB87C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB87C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1758,8 +2718,21 @@ L_08AB8814: aot_gpr_5 = (ctx.gpr[28] + static_cast(-2232)); aot_gpr_31 = (0x08AB8844u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 125u, 0x08AB8844u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8844u) goto L_08AB8844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8844: ctx.gpr[19] = (ctx.gpr[28] + static_cast(-2084)); ctx.gpr[20] = (ctx.gpr[18] + static_cast(60)); @@ -1772,8 +2745,21 @@ L_08AB8854: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB8864u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 127u, 0x08AB8864u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8864u) goto L_08AB8864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8864: ctx.gpr[19] = (ctx.gpr[28] + static_cast(-1956)); ctx.gpr[20] = (ctx.gpr[18] + static_cast(76)); @@ -1786,8 +2772,21 @@ L_08AB8874: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB8884u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 129u, 0x08AB8884u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8884u) goto L_08AB8884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8884: ctx.gpr[19] = (ctx.gpr[28] + static_cast(-1948)); ctx.gpr[20] = (ctx.gpr[18] + static_cast(100)); @@ -1800,8 +2799,21 @@ L_08AB8894: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB88A4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 131u, 0x08AB88A4u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB88A4u) goto L_08AB88A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB88A4: aot_gpr_4 = (2234u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(12504)); @@ -1857,8 +2869,8 @@ L_08AB8924: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB8948: @@ -1875,8 +2887,8 @@ L_08AB8964: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB8970: @@ -1953,8 +2965,8 @@ L_08AB8A28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB8A34: @@ -1979,8 +2991,8 @@ L_08AB8A40: } L_08AB8A54: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB8A5C: @@ -2055,8 +3067,8 @@ L_08AB8AB8: } L_08AB8AD4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB8ADC: @@ -2178,8 +3190,8 @@ L_08AB8B8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB8BAC: @@ -2416,8 +3428,8 @@ L_08AB8DF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB8E04: @@ -2425,8 +3437,21 @@ L_08AB8E04: { const std::uint32_t aot_run_words[6]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(512), aot_run_words); } aot_gpr_31 = (0x08AB8E28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 188u, 0x08AB8E28u, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8E28u) goto L_08AB8E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8E28: ctx.gpr[18] = (2240u << 16u); ctx.gpr[17] = (2240u << 16u); @@ -2479,8 +3504,21 @@ L_08AB8E9C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AB8EA8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 196u, 0x08AB8EA8u, 0x089BAEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 618u, 0x089BAEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8EA8u) goto L_08AB8EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8EA8: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] & 65535u); @@ -2534,8 +3572,21 @@ L_08AB8F10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AB8F1Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 204u, 0x08AB8F1Cu, 0x089BB208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 676u, 0x089BB208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB8F1Cu) goto L_08AB8F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB8F1C: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(512), aot_run_words); @@ -2548,8 +3599,8 @@ L_08AB8F1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB8F3C: @@ -2669,8 +3720,8 @@ L_08AB9050: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1040)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9068: @@ -2751,8 +3802,8 @@ L_08AB9140: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1056)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9160: @@ -2872,8 +3923,8 @@ L_08AB92D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1040)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB92E8: @@ -2941,8 +3992,8 @@ L_08AB935C: } L_08AB938C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9394: @@ -2969,8 +4020,8 @@ L_08AB93A0: } L_08AB93D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB93D8: @@ -3016,8 +4067,8 @@ L_08AB9428: } L_08AB9440: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9448: @@ -3112,8 +4163,8 @@ L_08AB9524: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1040)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB953C: @@ -3253,8 +4304,8 @@ L_08AB9668: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1040)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9680: @@ -3279,8 +4330,8 @@ L_08AB968C: } L_08AB96B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB96BC: @@ -3509,8 +4560,8 @@ L_08AB984C: L_08AB986C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(512)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9874: @@ -3554,8 +4605,8 @@ L_08AB98D0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12184))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB98E8: @@ -3711,8 +4762,21 @@ L_08AB99D4: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AB99E0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 318u, 0x08AB99E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB99E0u) goto L_08AB99E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB99E0: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3735,14 +4799,40 @@ L_08AB99F8: L_08AB99FC: aot_gpr_31 = (0x08AB9A04u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 323u, 0x08AB9A04u, 0x089F5A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 300u, 0x089F5A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB9A04u) goto L_08AB9A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB9A04: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AB9A10u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 324u, 0x08AB9A10u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AB9A10u) goto L_08AB9A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AB9A10: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0))); @@ -3776,8 +4866,8 @@ L_08AB9A3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9A5C: @@ -4012,8 +5102,8 @@ L_08AB9C4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1120)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9C74: @@ -4144,8 +5234,8 @@ L_08AB9DB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9DE8: @@ -4239,8 +5329,8 @@ L_08AB9EF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AB9F28: @@ -4376,8 +5466,8 @@ L_08ABA0D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABA104: @@ -4468,8 +5558,8 @@ L_08ABA1A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABA21C: @@ -4606,8 +5696,8 @@ L_08ABA354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1072)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABA384: @@ -4670,8 +5760,8 @@ L_08ABA434: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1056)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABA450: @@ -4989,8 +6079,8 @@ L_08ABA6E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABA704: @@ -5170,8 +6260,21 @@ L_08ABA848: L_08ABA850: aot_gpr_31 = (0x08ABA858u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 458u, 0x08ABA858u, 0x089BAEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 618u, 0x089BAEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABA858u) goto L_08ABA858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABA858: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_6 = (0u | 0u); @@ -5335,8 +6438,8 @@ L_08ABA9E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABAA04: @@ -5378,8 +6481,21 @@ L_08ABAA58: aot_gpr_6 = (ctx.gpr[16] & 65535u); aot_gpr_31 = (0x08ABAA64u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 475u, 0x08ABAA64u, 0x089BAEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 618u, 0x089BAEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABAA64u) goto L_08ABAA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABAA64: aot_gpr_5 = (2279u << 16u); aot_fpr_12 = std::bit_cast(0u); @@ -5391,8 +6507,8 @@ L_08ABAA64: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABAA8C: @@ -5418,20 +6534,46 @@ L_08ABAAB0: L_08ABAAB8: aot_gpr_31 = (0x08ABAAC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 481u, 0x08ABAAC0u, 0x089BAB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 573u, 0x089BAB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABAAC0u) goto L_08ABAAC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABAAC0: aot_gpr_4 = (2247u << 16u); aot_gpr_31 = (0x08ABAACCu); aot_gpr_4 = (aot_gpr_4 + static_cast(8968)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 482u, 0x08ABAACCu, 0x0893ABACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 646u, 0x0893ABACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABAACCu) goto L_08ABAACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABAACC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABAAD8: @@ -5450,8 +6592,21 @@ L_08ABAAD8: } L_08ABAAFC: aot_gpr_31 = (0x08ABAB04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 485u, 0x08ABAB04u, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABAB04u) goto L_08ABAB04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABAB04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(-26272))); { std::uint32_t aot_run_words[6]{}; @@ -5493,8 +6648,21 @@ L_08ABAB54: aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(44))); aot_gpr_31 = (0x08ABAB60u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 492u, 0x08ABAB60u, 0x089BB208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 676u, 0x089BB208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABAB60u) goto L_08ABAB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABAB60: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(512), aot_run_words); @@ -5504,8 +6672,8 @@ L_08ABAB60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABAB74: @@ -5701,8 +6869,8 @@ L_08ABAD18: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABAD24: @@ -5747,8 +6915,21 @@ L_08ABAD94: aot_gpr_5 = (aot_gpr_29 + static_cast(10)); aot_gpr_31 = (0x08ABADA4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 519u, 0x08ABADA4u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABADA4u) goto L_08ABADA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABADA4: aot_gpr_5 = (0u | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -6091,8 +7272,21 @@ L_08ABAFBC: aot_gpr_5 = (aot_gpr_29 + static_cast(10)); aot_gpr_31 = (0x08ABAFCCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 561u, 0x08ABAFCCu, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABAFCCu) goto L_08ABAFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABAFCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6143,15 +7337,15 @@ L_08ABB01C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB04C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB054: @@ -6165,8 +7359,21 @@ L_08ABB054: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB07Cu); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 568u, 0x08ABB07Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB07Cu) goto L_08ABB07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB07C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -6198,8 +7405,8 @@ L_08ABB09C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB0B4: @@ -6212,8 +7419,21 @@ L_08ABB0B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB0D8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 573u, 0x08ABB0D8u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB0D8u) goto L_08ABB0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB0D8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6222,8 +7442,21 @@ L_08ABB0D8: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB0F4u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 574u, 0x08ABB0F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB0F4u) goto L_08ABB0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB0F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -6236,8 +7469,8 @@ L_08ABB0F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB114: @@ -6250,8 +7483,21 @@ L_08ABB114: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB138u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 576u, 0x08ABB138u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB138u) goto L_08ABB138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB138: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6260,8 +7506,21 @@ L_08ABB138: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB154u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 577u, 0x08ABB154u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB154u) goto L_08ABB154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB154: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -6274,8 +7533,8 @@ L_08ABB154: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB174: @@ -6288,8 +7547,21 @@ L_08ABB174: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB198u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 579u, 0x08ABB198u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB198u) goto L_08ABB198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB198: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6298,8 +7570,21 @@ L_08ABB198: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB1B4u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 580u, 0x08ABB1B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB1B4u) goto L_08ABB1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB1B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6314,8 +7599,8 @@ L_08ABB1B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB1DC: @@ -6328,8 +7613,21 @@ L_08ABB1DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB200u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 582u, 0x08ABB200u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB200u) goto L_08ABB200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB200: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6338,8 +7636,21 @@ L_08ABB200: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB21Cu); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 583u, 0x08ABB21Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB21Cu) goto L_08ABB21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB21C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6354,8 +7665,8 @@ L_08ABB21C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB244: @@ -6368,8 +7679,21 @@ L_08ABB244: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB268u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 585u, 0x08ABB268u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB268u) goto L_08ABB268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB268: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6378,8 +7702,21 @@ L_08ABB268: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB284u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 586u, 0x08ABB284u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB284u) goto L_08ABB284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB284: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6394,8 +7731,8 @@ L_08ABB284: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB2AC: @@ -6408,8 +7745,21 @@ L_08ABB2AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB2D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 588u, 0x08ABB2D0u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB2D0u) goto L_08ABB2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB2D0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6418,8 +7768,21 @@ L_08ABB2D0: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB2ECu); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 589u, 0x08ABB2ECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB2ECu) goto L_08ABB2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB2EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6434,8 +7797,8 @@ L_08ABB2EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB314: @@ -6448,8 +7811,21 @@ L_08ABB314: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB338u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 591u, 0x08ABB338u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB338u) goto L_08ABB338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB338: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6458,8 +7834,21 @@ L_08ABB338: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB354u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 592u, 0x08ABB354u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB354u) goto L_08ABB354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB354: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6475,8 +7864,8 @@ L_08ABB354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB380: @@ -6489,8 +7878,21 @@ L_08ABB380: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB3A4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 594u, 0x08ABB3A4u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB3A4u) goto L_08ABB3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB3A4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6499,8 +7901,21 @@ L_08ABB3A4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB3C0u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 595u, 0x08ABB3C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB3C0u) goto L_08ABB3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB3C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6515,8 +7930,8 @@ L_08ABB3C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB3E8: @@ -6529,8 +7944,21 @@ L_08ABB3E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB40Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 597u, 0x08ABB40Cu, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB40Cu) goto L_08ABB40C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB40C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6539,8 +7967,21 @@ L_08ABB40C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB428u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 598u, 0x08ABB428u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB428u) goto L_08ABB428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB428: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6556,8 +7997,8 @@ L_08ABB428: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB454: @@ -6570,8 +8011,21 @@ L_08ABB454: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB478u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 600u, 0x08ABB478u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB478u) goto L_08ABB478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB478: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6580,8 +8034,21 @@ L_08ABB478: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABB494u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 601u, 0x08ABB494u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB494u) goto L_08ABB494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB494: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6596,8 +8063,8 @@ L_08ABB494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB4BC: @@ -6613,8 +8080,21 @@ L_08ABB4BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08ABB4ECu); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 603u, 0x08ABB4ECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB4ECu) goto L_08ABB4EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB4EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); @@ -6688,8 +8168,8 @@ L_08ABB568: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB584: @@ -6705,8 +8185,21 @@ L_08ABB584: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08ABB5B4u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 611u, 0x08ABB5B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB5B4u) goto L_08ABB5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB5B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -6787,8 +8280,8 @@ L_08ABB640: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB65C: @@ -6804,8 +8297,21 @@ L_08ABB65C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08ABB68Cu); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 620u, 0x08ABB68Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB68Cu) goto L_08ABB68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB68C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -6880,8 +8386,8 @@ L_08ABB70C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB728: @@ -6897,8 +8403,21 @@ L_08ABB728: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08ABB758u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 628u, 0x08ABB758u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB758u) goto L_08ABB758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB758: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -6979,8 +8498,8 @@ L_08ABB7E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB800: @@ -6996,8 +8515,21 @@ L_08ABB800: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08ABB830u); aot_gpr_7 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 637u, 0x08ABB830u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB830u) goto L_08ABB830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB830: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -7072,8 +8604,8 @@ L_08ABB8B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB8CC: @@ -7087,8 +8619,21 @@ L_08ABB8CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB8F4u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 645u, 0x08ABB8F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB8F4u) goto L_08ABB8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB8F4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(521))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7128,8 +8673,8 @@ L_08ABB920: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB938: @@ -7143,8 +8688,21 @@ L_08ABB938: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABB960u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 651u, 0x08ABB960u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB960u) goto L_08ABB960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB960: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(521))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7184,8 +8742,8 @@ L_08ABB98C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB9A4: @@ -7207,14 +8765,40 @@ L_08ABB9C0: aot_gpr_5 = (ctx.gpr[28] + static_cast(7956)); aot_gpr_31 = (0x08ABB9CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 659u, 0x08ABB9CCu, 0x088626C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 409u, 0x088626C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB9CCu) goto L_08ABB9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB9CC: aot_gpr_5 = (ctx.gpr[28] + static_cast(7960)); aot_gpr_31 = (0x08ABB9D8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 660u, 0x08ABB9D8u, 0x088626F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 415u, 0x088626F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABB9D8u) goto L_08ABB9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABB9D8: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(520), static_cast(0u)); ctx.gpr[2] = (0u | 1u); @@ -7222,8 +8806,8 @@ L_08ABB9D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABB9F0: @@ -7241,8 +8825,21 @@ L_08ABB9F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08ABBA28u); aot_gpr_7 = (ctx.gpr[19] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 662u, 0x08ABBA28u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBA28u) goto L_08ABBA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBA28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -7257,16 +8854,42 @@ L_08ABBA34: L_08ABBA38: aot_gpr_31 = (0x08ABBA40u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 665u, 0x08ABBA40u, 0x08863470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 611u, 0x08863470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBA40u) goto L_08ABBA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBA40: aot_gpr_7 = (ctx.gpr[2] + static_cast(84)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ABBA54u); aot_gpr_6 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 666u, 0x08ABBA54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBA54u) goto L_08ABBA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBA54: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -7279,8 +8902,8 @@ L_08ABBA54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBA74: @@ -7294,8 +8917,21 @@ L_08ABBA74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABBA9Cu); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 668u, 0x08ABBA9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBA9Cu) goto L_08ABBA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBA9C: aot_gpr_4 = (ctx.gpr[16] + static_cast(516)); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0))); @@ -7335,23 +8971,36 @@ L_08ABBADC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBAF4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08ABBB04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 673u, 0x08ABBB04u, 0x0886309Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 575u, 0x0886309Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBB04u) goto L_08ABBB04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBB04: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBB14: @@ -7364,8 +9013,21 @@ L_08ABBB14: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABBB38u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 675u, 0x08ABBB38u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBB38u) goto L_08ABBB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBB38: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7374,8 +9036,21 @@ L_08ABBB38: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABBB54u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 676u, 0x08ABBB54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBB54u) goto L_08ABBB54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBB54: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -7392,8 +9067,8 @@ L_08ABBB54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBB84: @@ -7406,8 +9081,21 @@ L_08ABBB84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABBBA8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 678u, 0x08ABBBA8u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBBA8u) goto L_08ABBBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBBA8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7416,8 +9104,21 @@ L_08ABBBA8: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08ABBBC4u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 679u, 0x08ABBBC4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBBC4u) goto L_08ABBBC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBBC4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); @@ -7434,8 +9135,8 @@ L_08ABBBC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBBF4: @@ -7448,16 +9149,42 @@ L_08ABBBF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABBC18u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 681u, 0x08ABBC18u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBC18u) goto L_08ABBC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBC18: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ABBC2Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 682u, 0x08ABBC2Cu, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBC2Cu) goto L_08ABBC2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBC2C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -7472,8 +9199,8 @@ L_08ABBC2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBC54: @@ -7486,16 +9213,42 @@ L_08ABBC54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABBC78u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 684u, 0x08ABBC78u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBC78u) goto L_08ABBC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBC78: aot_gpr_4 = (ctx.gpr[16] | 0u); ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ABBC8Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 685u, 0x08ABBC8Cu, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBC8Cu) goto L_08ABBC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBC8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7510,8 +9263,8 @@ L_08ABBC8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBCB4: @@ -7520,8 +9273,21 @@ L_08ABBCB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08ABBCC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 687u, 0x08ABBCC8u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBCC8u) goto L_08ABBCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBCC8: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(0))); @@ -7545,8 +9311,8 @@ L_08ABBCE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBCF4: @@ -7555,8 +9321,21 @@ L_08ABBCF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08ABBD08u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 691u, 0x08ABBD08u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBD08u) goto L_08ABBD08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBD08: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -7582,8 +9361,8 @@ L_08ABBD2C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBD40: @@ -7647,15 +9426,28 @@ L_08ABBDAC: goto L_08ABBDB0; L_08ABBDB0: aot_gpr_31 = (0x08ABBDB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 701u, 0x08ABBDB8u, 0x0886309Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 575u, 0x0886309Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBDB8u) goto L_08ABBDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBDB8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBDC8: @@ -7718,15 +9510,28 @@ L_08ABBE30: goto L_08ABBE34; L_08ABBE34: aot_gpr_31 = (0x08ABBE3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 709u, 0x08ABBE3Cu, 0x0886309Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 575u, 0x0886309Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBE3Cu) goto L_08ABBE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBE3C: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBE4C: @@ -7740,8 +9545,21 @@ L_08ABBE4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABBE74u); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 711u, 0x08ABBE74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBE74u) goto L_08ABBE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBE74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(518), static_cast(aot_gpr_4)); @@ -7782,8 +9600,8 @@ L_08ABBEA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBEBC: @@ -7795,13 +9613,39 @@ L_08ABBEBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08ABBEDCu); aot_gpr_7 = (ctx.gpr[16] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 717u, 0x08ABBEDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBEDCu) goto L_08ABBEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBEDC: aot_gpr_31 = (0x08ABBEE4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 718u, 0x08ABBEE4u, 0x08863470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 611u, 0x08863470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBEE4u) goto L_08ABBEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBEE4: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(522), static_cast(aot_gpr_4)); @@ -7810,8 +9654,8 @@ L_08ABBEE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBF00: @@ -7829,15 +9673,28 @@ L_08ABBF14: aot_gpr_4 = (2239u << 16u); aot_gpr_31 = (0x08ABBF24u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 721u, 0x08ABBF24u, 0x08864DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 157u, 0x08864DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBF24u) goto L_08ABBF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBF24: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBF34: @@ -7846,8 +9703,21 @@ L_08ABBF34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08ABBF48u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 723u, 0x08ABBF48u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBF48u) goto L_08ABBF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBF48: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_4 = (ctx.gpr[2] - aot_gpr_4); @@ -7856,8 +9726,8 @@ L_08ABBF48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBF64: @@ -7871,8 +9741,21 @@ L_08ABBF64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABBF8Cu); aot_gpr_7 = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 725u, 0x08ABBF8Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBF8Cu) goto L_08ABBF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBF8C: aot_gpr_4 = (ctx.gpr[16] + static_cast(516)); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0))); @@ -7893,8 +9776,8 @@ L_08ABBF8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABBFCC: @@ -7906,8 +9789,21 @@ L_08ABBFCC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ABBFECu); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0173->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0173_entry, 727u, 0x08ABBFECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABBFECu) goto L_08ABBFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABBFEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { diff --git a/profiles/vcs/generated/generated_unit_0174.cpp b/profiles/vcs/generated/generated_unit_0174.cpp index ae17fee..475a67f 100644 --- a/profiles/vcs/generated/generated_unit_0174.cpp +++ b/profiles/vcs/generated/generated_unit_0174.cpp @@ -929,6 +929,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08ABC000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -950,8 +974,21 @@ L_08ABC004: aot_gpr_4 = (aot_gpr_16 + static_cast(527)); aot_gpr_31 = (0x08ABC014u); aot_gpr_6 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 3u, 0x08ABC014u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC014u) goto L_08ABC014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC014: aot_gpr_4 = (0u | 0u); goto L_08ABC018; @@ -993,15 +1030,15 @@ L_08ABC050: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC064: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC06C: @@ -1014,8 +1051,21 @@ L_08ABC06C: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08ABC090u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 11u, 0x08ABC090u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC090u) goto L_08ABC090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC090: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(8022)))))); { const bool branch_taken = static_cast(aot_gpr_4) <= 0; @@ -1054,8 +1104,21 @@ L_08ABC0C0: } L_08ABC0C8: aot_gpr_31 = (0x08ABC0D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 16u, 0x08ABC0D0u, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC0D0u) goto L_08ABC0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC0D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (2240u << 16u); @@ -1082,8 +1145,21 @@ L_08ABC104: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ABC118u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 19u, 0x08ABC118u, 0x088713F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 363u, 0x088713F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC118u) goto L_08ABC118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC118: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8004))); @@ -1091,18 +1167,57 @@ L_08ABC118: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); aot_gpr_31 = (0x08ABC130u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 20u, 0x08ABC130u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC130u) goto L_08ABC130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC130: aot_gpr_31 = (0x08ABC138u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8004))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 21u, 0x08ABC138u, 0x08863470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 611u, 0x08863470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC138u) goto L_08ABC138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC138: aot_gpr_31 = (0x08ABC140u); aot_gpr_16 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 22u, 0x08ABC140u, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC140u) goto L_08ABC140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC140: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(522), static_cast(aot_gpr_4)); @@ -1122,8 +1237,21 @@ L_08ABC140: L_08ABC174: aot_gpr_31 = (0x08ABC17Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 24u, 0x08ABC17Cu, 0x088624A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 375u, 0x088624A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC17Cu) goto L_08ABC17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC17C: ctx.gpr[2] = (0u | 0u); goto L_08ABC180; @@ -1136,8 +1264,8 @@ L_08ABC180: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC194: @@ -1151,8 +1279,21 @@ L_08ABC194: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x08ABC1C8u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 27u, 0x08ABC1C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC1C8u) goto L_08ABC1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC1C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -1217,8 +1358,21 @@ L_08ABC228: aot_gpr_4 = (ctx.gpr[17] + static_cast(527)); aot_gpr_31 = (0x08ABC234u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 36u, 0x08ABC234u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC234u) goto L_08ABC234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC234: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7956))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1238,8 +1392,21 @@ L_08ABC24C: aot_gpr_4 = (ctx.gpr[17] + static_cast(527)); aot_gpr_31 = (0x08ABC25Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 39u, 0x08ABC25Cu, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC25Cu) goto L_08ABC25C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC25C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1259,8 +1426,21 @@ L_08ABC270: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8024), static_cast(0u)); aot_gpr_31 = (0x08ABC27Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 42u, 0x08ABC27Cu, 0x08A1CC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 125u, 0x08A1CC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC27Cu) goto L_08ABC27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC27C: aot_gpr_31 = (0x08ABC284u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC284u) goto L_08ABC284; @@ -1274,20 +1454,59 @@ L_08ABC28C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08ABC298u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 45u, 0x08ABC298u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC298u) goto L_08ABC298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC298: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ABC2A4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 46u, 0x08ABC2A4u, 0x088626C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 409u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 409u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 409u, 0x088626C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC2A4u) goto L_08ABC2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC2A4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ABC2B0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 47u, 0x08ABC2B0u, 0x088626F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 415u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 415u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 415u, 0x088626F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC2B0u) goto L_08ABC2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC2B0: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(520), static_cast(0u)); goto L_08ABC2B4; @@ -1313,8 +1532,8 @@ L_08ABC2C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC2E8: @@ -1325,8 +1544,21 @@ L_08ABC2E8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08ABC30Cu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 51u, 0x08ABC30Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC30Cu) goto L_08ABC30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC30C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -1384,8 +1616,21 @@ L_08ABC354: L_08ABC35C: aot_gpr_31 = (0x08ABC364u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 61u, 0x08ABC364u, 0x089F6818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 492u, 0x089F6818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC364u) goto L_08ABC364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC364: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -1397,8 +1642,8 @@ L_08ABC364: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC380: @@ -1466,8 +1711,21 @@ L_08ABC3FC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ABC454u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 66u, 0x08ABC454u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC454u) goto L_08ABC454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC454: if (ctx.gpr[19] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(508))); @@ -1485,8 +1743,21 @@ L_08ABC45C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ABC484u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 68u, 0x08ABC484u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC484u) goto L_08ABC484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC484: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(508))); goto L_08ABC488; @@ -1546,15 +1817,15 @@ L_08ABC4F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC50C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC514: @@ -1569,15 +1840,28 @@ L_08ABC514: } L_08ABC528: aot_gpr_31 = (0x08ABC530u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 77u, 0x08ABC530u, 0x0886309Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 575u, 0x0886309Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC530u) goto L_08ABC530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC530: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC540: @@ -1648,15 +1932,28 @@ L_08ABC5B4: goto L_08ABC5B8; L_08ABC5B8: aot_gpr_31 = (0x08ABC5C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 86u, 0x08ABC5C0u, 0x0886309Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 575u, 0x0886309Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC5C0u) goto L_08ABC5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC5C0: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC5D0: @@ -1712,8 +2009,21 @@ L_08ABC62C: aot_gpr_5 = (aot_gpr_4 + static_cast(527)); aot_gpr_31 = (0x08ABC638u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 93u, 0x08ABC638u, 0x08862920u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 436u, 0x08862920u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC638u) goto L_08ABC638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC638: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1735,8 +2045,8 @@ L_08ABC650: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC668: @@ -1872,8 +2182,8 @@ L_08ABC740: goto L_08ABC744; L_08ABC744: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC74C: @@ -1967,8 +2277,8 @@ L_08ABC818: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC824: @@ -2004,8 +2314,8 @@ L_08ABC870: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC888: @@ -2024,8 +2334,8 @@ L_08ABC8A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC8B4: @@ -2059,8 +2369,21 @@ L_08ABC900: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_31 = (0x08ABC910u); aot_gpr_5 = (aot_gpr_5 + static_cast(12224)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 130u, 0x08ABC910u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABC910u) goto L_08ABC910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABC910: aot_gpr_4 = (2u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); @@ -2086,16 +2409,16 @@ L_08ABC91C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC95C: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC968: @@ -2131,8 +2454,8 @@ L_08ABC9AC: goto L_08ABC9B4; L_08ABC9B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABC9BC: @@ -2170,8 +2493,8 @@ L_08ABC9F4: } L_08ABC9FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCA04: @@ -2254,8 +2577,8 @@ L_08ABCA80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCAA0: @@ -2281,8 +2604,8 @@ L_08ABCAB4: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCAD8: @@ -2407,8 +2730,8 @@ L_08ABCBC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCBF4: @@ -2431,8 +2754,8 @@ L_08ABCC20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCC38: @@ -2472,8 +2795,8 @@ L_08ABCC80: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCC8C: @@ -2500,8 +2823,8 @@ L_08ABCCB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCCCC: @@ -2581,8 +2904,8 @@ L_08ABCD40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCD5C: @@ -2614,8 +2937,21 @@ L_08ABCD8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); aot_gpr_31 = (0x08ABCDA4u); aot_gpr_5 = (aot_gpr_5 + static_cast(12252)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0125. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 191u, 0x08ABCDA4u, 0x089FB798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); +#else + recomp_unit_0125_entry(rt, ctx, 543u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0125_entry, 125u, 543u, 0x089FB798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABCDA4u) goto L_08ABCDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABCDA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -2628,8 +2964,8 @@ L_08ABCDB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCDC0: @@ -2653,8 +2989,8 @@ L_08ABCDDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCDFC: @@ -2681,8 +3017,8 @@ L_08ABCE14: goto L_08ABCE20; L_08ABCE20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCE28: @@ -2709,8 +3045,8 @@ L_08ABCE58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCE64: @@ -2724,8 +3060,21 @@ L_08ABCE64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08ABCE90u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 204u, 0x08ABCE90u, 0x08A9402Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 6u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 6u, 0x08A9402Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABCE90u) goto L_08ABCE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABCE90: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -2767,8 +3116,21 @@ L_08ABCED0: ctx.gpr[8] = (ctx.gpr[8] + static_cast(-1)); aot_gpr_31 = (0x08ABCEF4u); ctx.gpr[9] = (ctx.gpr[9] + static_cast(12288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 208u, 0x08ABCEF4u, 0x08A9D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 139u, 0x08A9D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABCEF4u) goto L_08ABCEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABCEF4: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(40))); @@ -2788,8 +3150,21 @@ L_08ABCEFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_31 = (0x08ABCF34u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 210u, 0x08ABCF34u, 0x08A940D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 17u, 0x08A940D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABCF34u) goto L_08ABCF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABCF34: aot_gpr_4 = (0u | 3u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), aot_gpr_4); @@ -2818,8 +3193,8 @@ L_08ABCF60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCF7C: @@ -2840,8 +3215,8 @@ L_08ABCFAC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCFB8: @@ -2858,8 +3233,8 @@ L_08ABCFD8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABCFE4: @@ -2878,8 +3253,8 @@ L_08ABD00C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD018: @@ -2926,8 +3301,8 @@ L_08ABD068: goto L_08ABD08C; L_08ABD08C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD094: @@ -2952,8 +3327,8 @@ L_08ABD0BC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12360))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD0D4: @@ -3050,8 +3425,8 @@ L_08ABD184: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD198: @@ -3085,8 +3460,8 @@ L_08ABD1DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD1F8: @@ -3117,8 +3492,8 @@ L_08ABD230: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12392))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD248: @@ -3222,8 +3597,8 @@ L_08ABD314: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD32C: @@ -3262,8 +3637,8 @@ L_08ABD370: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD384: @@ -3411,8 +3786,8 @@ L_08ABD4C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD4FC: @@ -3450,8 +3825,8 @@ L_08ABD544: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD558: @@ -3529,8 +3904,8 @@ L_08ABD5D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD5E8: @@ -3570,8 +3945,8 @@ L_08ABD630: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD63C: @@ -3691,8 +4066,8 @@ L_08ABD6F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD704: @@ -3843,8 +4218,8 @@ L_08ABD810: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD828: @@ -3904,8 +4279,8 @@ L_08ABD8AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD8D8: @@ -3929,8 +4304,8 @@ L_08ABD8E8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD920: @@ -4012,8 +4387,8 @@ L_08ABD9D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABD9EC: @@ -4115,8 +4490,8 @@ L_08ABDA80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDA94: @@ -4213,8 +4588,8 @@ L_08ABDB1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDB30: @@ -4242,8 +4617,8 @@ L_08ABDB60: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12440))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDB78: @@ -4327,8 +4702,8 @@ L_08ABDC08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDC24: @@ -4347,8 +4722,8 @@ L_08ABDC3C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDC58: @@ -4448,8 +4823,8 @@ L_08ABDD18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDD2C: @@ -4555,8 +4930,8 @@ L_08ABDDD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDDEC: @@ -4646,8 +5021,8 @@ L_08ABDEA0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDEB0: @@ -4658,8 +5033,8 @@ L_08ABDEB0: aot_gpr_4 = (aot_gpr_6 + aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(-4), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDECC: @@ -4696,8 +5071,21 @@ L_08ABDF10: ctx.gpr[8] = (ctx.gpr[8] + static_cast(-3)); aot_gpr_31 = (0x08ABDF34u); ctx.gpr[9] = (ctx.gpr[9] + static_cast(12336)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 429u, 0x08ABDF34u, 0x08A9D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 139u, 0x08A9D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABDF34u) goto L_08ABDF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABDF34: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(12), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); @@ -4728,8 +5116,21 @@ L_08ABDF64: ctx.gpr[8] = (ctx.gpr[8] + static_cast(-3)); aot_gpr_31 = (0x08ABDF88u); ctx.gpr[9] = (ctx.gpr[9] + static_cast(12336)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 432u, 0x08ABDF88u, 0x08A9D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 139u, 0x08A9D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABDF88u) goto L_08ABDF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABDF88: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(20), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); @@ -4753,8 +5154,8 @@ L_08ABDF94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABDFCC: @@ -4774,8 +5175,8 @@ L_08ABDFF8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE004: @@ -4793,8 +5194,8 @@ L_08ABE028: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE034: @@ -5038,8 +5439,8 @@ L_08ABE254: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE278: @@ -5054,8 +5455,8 @@ L_08ABE290: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE29C: @@ -5070,8 +5471,8 @@ L_08ABE2B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE2C0: @@ -5086,8 +5487,8 @@ L_08ABE2D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE2E4: @@ -5102,8 +5503,8 @@ L_08ABE2FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE308: @@ -5118,8 +5519,8 @@ L_08ABE320: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE32C: @@ -5153,8 +5554,8 @@ L_08ABE364: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE378: @@ -5168,8 +5569,8 @@ L_08ABE38C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE398: @@ -5184,8 +5585,8 @@ L_08ABE3B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE3BC: @@ -5197,8 +5598,8 @@ L_08ABE3BC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE3E4: @@ -5354,8 +5755,8 @@ L_08ABE544: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE564: @@ -5364,8 +5765,8 @@ L_08ABE564: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE57C: @@ -5430,8 +5831,21 @@ L_08ABE5D0: L_08ABE5E0: aot_gpr_31 = (0x08ABE5E8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 508u, 0x08ABE5E8u, 0x08AA7154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 466u, 0x08AA7154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABE5E8u) goto L_08ABE5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABE5E8: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08ABE5EC; @@ -5478,8 +5892,8 @@ L_08ABE628: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE63C: @@ -5525,8 +5939,21 @@ L_08ABE688: L_08ABE698: aot_gpr_31 = (0x08ABE6A0u); aot_gpr_4 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 520u, 0x08ABE6A0u, 0x08AA7154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 466u, 0x08AA7154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABE6A0u) goto L_08ABE6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABE6A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5541,8 +5968,8 @@ L_08ABE6B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE6BC: @@ -5793,8 +6220,21 @@ L_08ABE8B4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ABE8C0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 553u, 0x08ABE8C0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABE8C0u) goto L_08ABE8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABE8C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ABE8CCu); @@ -5816,8 +6256,8 @@ L_08ABE8D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE8F4: @@ -5886,8 +6326,8 @@ L_08ABE97C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABE988: @@ -5962,8 +6402,8 @@ L_08ABE9F8: goto L_08ABEA08; L_08ABEA08: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABEA10: @@ -6146,8 +6586,8 @@ L_08ABEB44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABEB54: @@ -6385,8 +6825,21 @@ L_08ABED98: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08ABEDBCu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 615u, 0x08ABEDBCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABEDBCu) goto L_08ABEDBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABEDBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_gpr_4 | ctx.gpr[30]); @@ -6431,8 +6884,8 @@ L_08ABEDFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABEE2C: @@ -6494,8 +6947,8 @@ L_08ABEEA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABEEBC: @@ -6575,8 +7028,8 @@ L_08ABEF48: goto L_08ABEF4C; L_08ABEF4C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABEF54: @@ -6630,14 +7083,14 @@ L_08ABEFC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABEFD4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABEFDC: @@ -6704,8 +7157,8 @@ L_08ABF030: } L_08ABF040: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF048: @@ -6775,8 +7228,8 @@ L_08ABF0B8: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[8]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12704))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF0D0: @@ -6825,8 +7278,8 @@ L_08ABF0F8: } L_08ABF108: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF110: @@ -6944,8 +7397,8 @@ L_08ABF1EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF1F8: @@ -6988,8 +7441,8 @@ L_08ABF22C: goto L_08ABF260; L_08ABF260: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF268: @@ -7025,14 +7478,27 @@ L_08ABF2BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08ABF2CCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0174->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0174_entry, 684u, 0x08ABF2CCu, 0x08AA70F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 463u, 0x08AA70F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ABF2CCu) goto L_08ABF2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ABF2CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF2D8: @@ -7042,8 +7508,8 @@ L_08ABF2D8: aot_gpr_4 = (aot_gpr_5 - aot_gpr_6); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 - ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF2F0: @@ -7069,8 +7535,8 @@ L_08ABF318: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF324: @@ -7095,8 +7561,8 @@ L_08ABF334: goto L_08ABF340; L_08ABF340: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF348: @@ -7233,8 +7699,8 @@ L_08ABF454: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF46C: @@ -7348,8 +7814,8 @@ L_08ABF560: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF578: @@ -7395,8 +7861,8 @@ L_08ABF5A4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF608: @@ -7510,8 +7976,8 @@ L_08ABF6AC: } L_08ABF6B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF6BC: @@ -7534,8 +8000,8 @@ L_08ABF6CC: } L_08ABF6DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF6E4: @@ -7606,8 +8072,8 @@ L_08ABF794: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF7B0: @@ -7715,8 +8181,8 @@ L_08ABF8A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABF8B4: @@ -7876,8 +8342,8 @@ L_08ABFA30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFA50: @@ -8058,14 +8524,14 @@ L_08ABFBE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFC04: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFC0C: @@ -8142,8 +8608,8 @@ L_08ABFCC8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFCD4: @@ -8237,8 +8703,8 @@ L_08ABFD58: goto L_08ABFD64; L_08ABFD64: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFD6C: @@ -8358,8 +8824,8 @@ L_08ABFE34: goto L_08ABFE4C; L_08ABFE4C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFE54: @@ -8376,8 +8842,8 @@ L_08ABFE74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFE80: @@ -8442,8 +8908,8 @@ L_08ABFEFC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFF10: @@ -8543,8 +9009,8 @@ L_08ABFFD4: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[8]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(12752))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ABFFEC: diff --git a/profiles/vcs/generated/generated_unit_0175.cpp b/profiles/vcs/generated/generated_unit_0175.cpp index b5dd029..f3d9b1c 100644 --- a/profiles/vcs/generated/generated_unit_0175.cpp +++ b/profiles/vcs/generated/generated_unit_0175.cpp @@ -1156,6 +1156,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AC0000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1309,39 +1333,117 @@ L_08AC00E4: ctx.gpr[19] = (aot_gpr_5 + static_cast(12508)); aot_gpr_31 = (0x08AC0110u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 19u, 0x08AC0110u, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0110u) goto L_08AC0110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0110: aot_gpr_31 = (0x08AC0118u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1832)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 20u, 0x08AC0118u, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0118u) goto L_08AC0118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0118: aot_gpr_31 = (0x08AC0120u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 21u, 0x08AC0120u, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0120u) goto L_08AC0120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0120: aot_gpr_4 = (2232u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_31 = (0x08AC0130u); aot_gpr_4 = (aot_gpr_4 + static_cast(12584)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 22u, 0x08AC0130u, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0130u) goto L_08AC0130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0130: aot_gpr_4 = (2232u << 16u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC0140u); aot_gpr_4 = (aot_gpr_4 + static_cast(12604)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 23u, 0x08AC0140u, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0140u) goto L_08AC0140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0140: aot_gpr_4 = (2232u << 16u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC0150u); aot_gpr_4 = (aot_gpr_4 + static_cast(12624)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 24u, 0x08AC0150u, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0150u) goto L_08AC0150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0150: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (2232u << 16u); @@ -1350,8 +1452,21 @@ L_08AC0150: aot_gpr_5 = (aot_gpr_6 - ctx.gpr[18]); aot_gpr_31 = (0x08AC016Cu); aot_gpr_5 = (aot_gpr_5 - ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 25u, 0x08AC016Cu, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC016Cu) goto L_08AC016C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC016C: ctx.gpr[21] = (2232u << 16u); ctx.gpr[17] = (0u | 0u); @@ -1402,8 +1517,21 @@ L_08AC01BC: ctx.gpr[7] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AC01CCu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 31u, 0x08AC01CCu, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC01CCu) goto L_08AC01CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC01CC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (ctx.gpr[19] < static_cast(64) ? 1u : 0u); @@ -1418,14 +1546,40 @@ L_08AC01DC: aot_gpr_4 = (ctx.gpr[28] + static_cast(-1820)); aot_gpr_31 = (0x08AC01E8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 33u, 0x08AC01E8u, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC01E8u) goto L_08AC01E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC01E8: aot_gpr_4 = (ctx.gpr[28] + static_cast(-1804)); aot_gpr_31 = (0x08AC01F4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 34u, 0x08AC01F4u, 0x08AB4D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 176u, 0x08AB4D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC01F4u) goto L_08AC01F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC01F4: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(4096), aot_run_words); @@ -1439,8 +1593,8 @@ L_08AC01F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(4128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0218: @@ -1449,14 +1603,27 @@ L_08AC0218: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AC022Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 36u, 0x08AC022Cu, 0x08ABFE80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 833u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 833u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 833u, 0x08ABFE80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC022Cu) goto L_08AC022C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC022C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0238: @@ -1467,14 +1634,27 @@ L_08AC0238: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AC0254u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 38u, 0x08AC0254u, 0x08ADD834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 412u, 0x08ADD834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0254u) goto L_08AC0254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0254: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0260: @@ -1531,8 +1711,21 @@ L_08AC02C8: L_08AC02D0: aot_gpr_31 = (0x08AC02D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 46u, 0x08AC02D8u, 0x08A54FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 256u, 0x08A54FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC02D8u) goto L_08AC02D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC02D8: ctx.gpr[18] = (aot_gpr_2 & 255u); ctx.gpr[17] = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(277))); @@ -1555,16 +1748,42 @@ L_08AC02F8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AC0318u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 48u, 0x08AC0318u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0318u) goto L_08AC0318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0318: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(100))); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08AC032Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 49u, 0x08AC032Cu, 0x08ADD834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 412u, 0x08ADD834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC032Cu) goto L_08AC032C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC032C: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (static_cast(aot_gpr_4) < static_cast(ctx.gpr[18]) ? 1u : 0u); @@ -1634,8 +1853,8 @@ L_08AC0388: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC03A8: @@ -1673,8 +1892,21 @@ L_08AC03E0: L_08AC03E4: aot_gpr_31 = (0x08AC03ECu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 64u, 0x08AC03ECu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC03ECu) goto L_08AC03EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC03EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5860))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), std::bit_cast(ctx.fpr[0])); @@ -1709,8 +1941,8 @@ L_08AC0418: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0430: @@ -1748,8 +1980,21 @@ L_08AC0468: L_08AC046C: aot_gpr_31 = (0x08AC0474u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 76u, 0x08AC0474u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0474u) goto L_08AC0474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0474: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5860))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), std::bit_cast(ctx.fpr[0])); @@ -1784,8 +2029,8 @@ L_08AC04A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC04B8: @@ -1823,8 +2068,21 @@ L_08AC04F0: L_08AC04F4: aot_gpr_31 = (0x08AC04FCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 88u, 0x08AC04FCu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC04FCu) goto L_08AC04FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC04FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5860))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), std::bit_cast(ctx.fpr[0])); @@ -1859,8 +2117,8 @@ L_08AC0528: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0540: @@ -1885,8 +2143,21 @@ L_08AC0570: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC057Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 97u, 0x08AC057Cu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC057Cu) goto L_08AC057C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC057C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -1911,8 +2182,8 @@ L_08AC059C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC05B8: @@ -1946,21 +2217,60 @@ L_08AC05E8: L_08AC05F0: aot_gpr_31 = (0x08AC05F8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 105u, 0x08AC05F8u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC05F8u) goto L_08AC05F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC05F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AC0608u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 106u, 0x08AC0608u, 0x08A54B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 180u, 0x08A54B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0608u) goto L_08AC0608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0608: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08AC0614u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 107u, 0x08AC0614u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0614u) goto L_08AC0614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0614: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (ctx.gpr[28] + static_cast(5824)); @@ -1987,8 +2297,8 @@ L_08AC0630: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0648: @@ -2029,21 +2339,60 @@ L_08AC068C: L_08AC0690: aot_gpr_31 = (0x08AC0698u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 118u, 0x08AC0698u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0698u) goto L_08AC0698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0698: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AC06A8u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 119u, 0x08AC06A8u, 0x08A54B14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 180u, 0x08A54B14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC06A8u) goto L_08AC06A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC06A8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08AC06B4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 120u, 0x08AC06B4u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC06B4u) goto L_08AC06B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC06B4: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (ctx.gpr[28] + static_cast(5824)); @@ -2070,8 +2419,8 @@ L_08AC06D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC06E8: @@ -2111,8 +2460,8 @@ L_08AC0730: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0744: @@ -2144,15 +2493,15 @@ L_08AC0774: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0788: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0790: @@ -2187,8 +2536,21 @@ L_08AC07CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC07E4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 138u, 0x08AC07E4u, 0x08ADD720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 392u, 0x08ADD720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC07E4u) goto L_08AC07E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC07E4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -2200,8 +2562,21 @@ L_08AC07E4: L_08AC07EC: aot_gpr_31 = (0x08AC07F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 140u, 0x08AC07F4u, 0x08ADD768u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 395u, 0x08ADD768u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC07F4u) goto L_08AC07F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC07F4: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2222,8 +2597,8 @@ L_08AC0808: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0820: @@ -2234,8 +2609,21 @@ L_08AC0820: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08AC083Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 144u, 0x08AC083Cu, 0x08ADD6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 382u, 0x08ADD6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC083Cu) goto L_08AC083C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC083C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC0848u); @@ -2248,8 +2636,8 @@ L_08AC0848: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC085C: @@ -2271,8 +2659,8 @@ L_08AC0874: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0898: @@ -2283,8 +2671,21 @@ L_08AC0898: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08AC08B4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 149u, 0x08AC08B4u, 0x08ADD684u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 376u, 0x08ADD684u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC08B4u) goto L_08AC08B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC08B4: aot_fpr_12 = std::bit_cast(aot_gpr_2); { const bool branch_taken = static_cast(aot_gpr_2) >= 0; @@ -2310,8 +2711,8 @@ L_08AC08D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC08E8: @@ -2322,8 +2723,21 @@ L_08AC08E8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08AC0904u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 154u, 0x08AC0904u, 0x08ADD68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 377u, 0x08ADD68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0904u) goto L_08AC0904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0904: aot_fpr_12 = std::bit_cast(aot_gpr_2); { const bool branch_taken = static_cast(aot_gpr_2) >= 0; @@ -2349,8 +2763,8 @@ L_08AC0924: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0938: @@ -2427,14 +2841,40 @@ L_08AC09E4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AC09F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 167u, 0x08AC09F0u, 0x08ADD694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 378u, 0x08ADD694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC09F0u) goto L_08AC09F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC09F0: aot_gpr_4 = (ctx.gpr[17] + static_cast(-28736)); aot_gpr_31 = (0x08AC09FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 168u, 0x08AC09FCu, 0x08ADD69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 379u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 379u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 379u, 0x08ADD69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC09FCu) goto L_08AC09FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC09FC: aot_gpr_2 = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -2447,8 +2887,8 @@ L_08AC09FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0A1C: @@ -2459,8 +2899,21 @@ L_08AC0A1C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08AC0A38u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 170u, 0x08AC0A38u, 0x08ADD68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 377u, 0x08ADD68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0A38u) goto L_08AC0A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0A38: aot_fpr_12 = std::bit_cast(aot_gpr_2); { const bool branch_taken = static_cast(aot_gpr_2) >= 0; @@ -2486,8 +2939,8 @@ L_08AC0A58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0A6C: @@ -2544,8 +2997,21 @@ L_08AC0AE0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AC0AECu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 181u, 0x08AC0AECu, 0x08ADC72Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 136u, 0x08ADC72Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0AECu) goto L_08AC0AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0AEC: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -2591,8 +3057,8 @@ L_08AC0B20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0B38: @@ -2649,8 +3115,21 @@ L_08AC0BAC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AC0BB8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 195u, 0x08AC0BB8u, 0x08ADC73Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 138u, 0x08ADC73Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0BB8u) goto L_08AC0BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0BB8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -2696,8 +3175,8 @@ L_08AC0BEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0C04: @@ -2743,8 +3222,21 @@ L_08AC0C58: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AC0C68u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 208u, 0x08AC0C68u, 0x08ADC77Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 146u, 0x08ADC77Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0C68u) goto L_08AC0C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0C68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2776,8 +3268,21 @@ L_08AC0C90: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AC0CA0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 213u, 0x08AC0CA0u, 0x08ADC78Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 148u, 0x08ADC78Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0CA0u) goto L_08AC0CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0CA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2796,8 +3301,21 @@ L_08AC0CB4: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AC0CC4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 216u, 0x08AC0CC4u, 0x08ADC75Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 142u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 142u, 0x08ADC75Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0CC4u) goto L_08AC0CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0CC4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -2853,8 +3371,21 @@ L_08AC0D04: L_08AC0D10: aot_gpr_31 = (0x08AC0D18u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 225u, 0x08AC0D18u, 0x08ADC794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 149u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 149u, 0x08ADC794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0D18u) goto L_08AC0D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0D18: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2872,8 +3403,21 @@ L_08AC0D28: L_08AC0D30: aot_gpr_31 = (0x08AC0D38u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 228u, 0x08AC0D38u, 0x08ADC764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 143u, 0x08ADC764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0D38u) goto L_08AC0D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0D38: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2895,8 +3439,8 @@ L_08AC0D4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0D68: @@ -2929,8 +3473,21 @@ L_08AC0DA4: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AC0DB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 235u, 0x08AC0DB4u, 0x08ADC76Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 144u, 0x08ADC76Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0DB4u) goto L_08AC0DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0DB4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -2942,8 +3499,21 @@ L_08AC0DB4: L_08AC0DBC: aot_gpr_31 = (0x08AC0DC4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 237u, 0x08AC0DC4u, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0DC4u) goto L_08AC0DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0DC4: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2964,8 +3534,8 @@ L_08AC0DD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0DF0: @@ -3022,8 +3592,21 @@ L_08AC0E64: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AC0E70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 247u, 0x08AC0E70u, 0x08ADD6A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 380u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 380u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 380u, 0x08ADD6A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0E70u) goto L_08AC0E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0E70: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3035,8 +3618,21 @@ L_08AC0E70: L_08AC0E78: aot_gpr_31 = (0x08AC0E80u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 249u, 0x08AC0E80u, 0x08ADD6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 381u, 0x08ADD6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC0E80u) goto L_08AC0E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC0E80: aot_fpr_12 = std::bit_cast(aot_gpr_2); { const bool branch_taken = static_cast(aot_gpr_2) >= 0; @@ -3069,8 +3665,8 @@ L_08AC0EA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0EBC: @@ -3150,8 +3746,8 @@ L_08AC0F3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0F54: @@ -3161,8 +3757,8 @@ L_08AC0F54: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(128), static_cast(aot_gpr_4)); jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0F6C: @@ -3180,8 +3776,8 @@ L_08AC0F88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0F98: @@ -3201,8 +3797,8 @@ L_08AC0FBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC0FCC: @@ -3222,8 +3818,8 @@ L_08AC0FF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1000: @@ -3283,8 +3879,8 @@ L_08AC1068: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1080: @@ -3367,8 +3963,8 @@ L_08AC110C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC112C: @@ -3426,8 +4022,8 @@ L_08AC1188: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC11A8: @@ -3486,8 +4082,8 @@ L_08AC1208: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1228: @@ -3503,8 +4099,8 @@ L_08AC123C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC124C: @@ -3523,8 +4119,8 @@ L_08AC126C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC127C: @@ -3541,8 +4137,8 @@ L_08AC1294: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC12A4: @@ -3553,8 +4149,21 @@ L_08AC12A4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08AC12C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 309u, 0x08AC12C0u, 0x08ADC724u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 135u, 0x08ADC724u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC12C0u) goto L_08AC12C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC12C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC12CCu); @@ -3567,8 +4176,8 @@ L_08AC12CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC12E0: @@ -3590,8 +4199,21 @@ L_08AC1310: aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_31 = (0x08AC1324u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 313u, 0x08AC1324u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1324u) goto L_08AC1324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1324: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -3629,8 +4251,8 @@ L_08AC1360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC137C: @@ -3652,14 +4274,40 @@ L_08AC13AC: aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_31 = (0x08AC13C0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 319u, 0x08AC13C0u, 0x08ADC3C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 72u, 0x08ADC3C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC13C0u) goto L_08AC13C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC13C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC13CCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 320u, 0x08AC13CCu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC13CCu) goto L_08AC13CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC13CC: aot_gpr_2 = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3671,8 +4319,8 @@ L_08AC13CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC13E8: @@ -3694,8 +4342,8 @@ L_08AC1414: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1424: @@ -3716,15 +4364,28 @@ L_08AC143C: L_08AC1444: aot_gpr_31 = (0x08AC144Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 326u, 0x08AC144Cu, 0x08A544B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 64u, 0x08A544B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC144Cu) goto L_08AC144C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC144C: aot_gpr_2 = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC145C: @@ -3734,8 +4395,8 @@ L_08AC145C: aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(13), static_cast(aot_gpr_4)); jump_target = aot_gpr_31; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1474: @@ -3769,8 +4430,21 @@ L_08AC14B0: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08AC14C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 332u, 0x08AC14C4u, 0x08ADD798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 400u, 0x08ADD798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC14C4u) goto L_08AC14C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC14C4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -3782,8 +4456,21 @@ L_08AC14C4: L_08AC14CC: aot_gpr_31 = (0x08AC14D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 334u, 0x08AC14D4u, 0x08ADD7A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 401u, 0x08ADD7A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC14D4u) goto L_08AC14D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC14D4: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3804,8 +4491,8 @@ L_08AC14E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1500: @@ -3863,8 +4550,8 @@ L_08AC1560: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1578: @@ -3975,8 +4662,8 @@ L_08AC1644: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1658: @@ -4065,8 +4752,21 @@ L_08AC1714: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC1728u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 366u, 0x08AC1728u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1728u) goto L_08AC1728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1728: aot_gpr_2 = (0u | 2u); goto L_08AC172C; @@ -4075,8 +4775,8 @@ L_08AC172C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC173C: @@ -4104,15 +4804,28 @@ L_08AC1768: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC1774u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 372u, 0x08AC1774u, 0x08872848u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 607u, 0x08872848u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1774u) goto L_08AC1774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1774: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1784: @@ -4126,8 +4839,21 @@ L_08AC1784: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AC17B4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 374u, 0x08AC17B4u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC17B4u) goto L_08AC17B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC17B4: ctx.gpr[17] = (ctx.gpr[18] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4160,8 +4886,21 @@ L_08AC17DC: } aot_gpr_31 = (0x08AC17F0u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 379u, 0x08AC17F0u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC17F0u) goto L_08AC17F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC17F0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -4207,8 +4946,8 @@ L_08AC1824: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1840: @@ -4248,8 +4987,8 @@ L_08AC1878: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC188C: @@ -4266,8 +5005,8 @@ L_08AC189C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC18B4: @@ -4295,8 +5034,8 @@ L_08AC18E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC18FC: @@ -4313,8 +5052,8 @@ L_08AC190C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1924: @@ -4331,8 +5070,8 @@ L_08AC1934: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC194C: @@ -4350,8 +5089,8 @@ L_08AC195C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1978: @@ -4368,8 +5107,8 @@ L_08AC1988: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC19A0: @@ -4391,8 +5130,21 @@ L_08AC19B8: L_08AC19C0: aot_gpr_31 = (0x08AC19C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 406u, 0x08AC19C8u, 0x08A54FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 256u, 0x08A54FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC19C8u) goto L_08AC19C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC19C8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -4406,8 +5158,8 @@ L_08AC19D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC19EC: @@ -4427,8 +5179,21 @@ L_08AC1A0C: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08AC1A24u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 410u, 0x08AC1A24u, 0x08ADD7A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 402u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 402u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 402u, 0x08ADD7A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1A24u) goto L_08AC1A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1A24: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC1A30u); @@ -4445,8 +5210,8 @@ L_08AC1A30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1A48: @@ -4463,8 +5228,8 @@ L_08AC1A58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1A70: @@ -4500,8 +5265,8 @@ L_08AC1AB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1AC4: @@ -4537,8 +5302,8 @@ L_08AC1B04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1B18: @@ -4570,8 +5335,8 @@ L_08AC1B48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1B5C: @@ -4581,15 +5346,28 @@ L_08AC1B5C: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08AC1B74u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 427u, 0x08AC1B74u, 0x08A89ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 371u, 0x08A89ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1B74u) goto L_08AC1B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1B74: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1B84: @@ -4628,15 +5406,41 @@ L_08AC1BB4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC1BFCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 431u, 0x08AC1BFCu, 0x08A36D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 737u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 737u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 737u, 0x08A36D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1BFCu) goto L_08AC1BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1BFC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC1C0Cu); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 432u, 0x08AC1C0Cu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1C0Cu) goto L_08AC1C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1C0C: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4647,8 +5451,8 @@ L_08AC1C0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1C24: @@ -4724,8 +5528,21 @@ L_08AC1CE0: L_08AC1CE8: aot_gpr_31 = (0x08AC1CF0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 443u, 0x08AC1CF0u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1CF0u) goto L_08AC1CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1CF0: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(0))); @@ -4755,8 +5572,21 @@ L_08AC1D1C: L_08AC1D20: aot_gpr_31 = (0x08AC1D28u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 448u, 0x08AC1D28u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1D28u) goto L_08AC1D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1D28: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4816,15 +5646,41 @@ L_08AC1D74: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC1DB0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 456u, 0x08AC1DB0u, 0x08A36D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 737u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 737u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 737u, 0x08A36D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1DB0u) goto L_08AC1DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1DB0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC1DC0u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 457u, 0x08AC1DC0u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1DC0u) goto L_08AC1DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1DC0: aot_fpr_12 = std::bit_cast(ctx.gpr[18]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -4848,8 +5704,8 @@ L_08AC1DD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1E00: @@ -4865,8 +5721,21 @@ L_08AC1E00: L_08AC1E14: aot_gpr_31 = (0x08AC1E1Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(-1112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 461u, 0x08AC1E1Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1E1Cu) goto L_08AC1E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1E1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4878,15 +5747,28 @@ L_08AC1E24: aot_gpr_5 = (2232u << 16u); aot_gpr_31 = (0x08AC1E30u); aot_gpr_5 = (aot_gpr_5 + static_cast(13936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 463u, 0x08AC1E30u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1E30u) goto L_08AC1E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1E30: aot_gpr_2 = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1E40: @@ -4979,8 +5861,21 @@ L_08AC1ED8: L_08AC1EDC: aot_gpr_31 = (0x08AC1EE4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 477u, 0x08AC1EE4u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1EE4u) goto L_08AC1EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1EE4: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(8), ctx.gpr[16]); aot_gpr_2 = (0u | 0u); @@ -4994,8 +5889,8 @@ L_08AC1EEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1F00: @@ -5088,8 +5983,21 @@ L_08AC1F98: L_08AC1F9C: aot_gpr_31 = (0x08AC1FA4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 492u, 0x08AC1FA4u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC1FA4u) goto L_08AC1FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC1FA4: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(4), ctx.gpr[16]); aot_gpr_2 = (0u | 0u); @@ -5103,8 +6011,8 @@ L_08AC1FAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC1FC0: @@ -5141,8 +6049,21 @@ L_08AC1FF0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AC2018u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 498u, 0x08AC2018u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2018u) goto L_08AC2018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2018: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5189,8 +6110,21 @@ L_08AC204C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC2064u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 505u, 0x08AC2064u, 0x08ADDD28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 492u, 0x08ADDD28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2064u) goto L_08AC2064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2064: aot_gpr_4 = (0u | 21u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(16), static_cast(aot_gpr_4)); @@ -5220,8 +6154,21 @@ L_08AC2064: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC20D4u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 506u, 0x08AC20D4u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC20D4u) goto L_08AC20D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC20D4: aot_gpr_2 = (0u | 0u); goto L_08AC20D8; @@ -5234,8 +6181,8 @@ L_08AC20D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC20EC: @@ -5268,8 +6215,21 @@ L_08AC211C: ctx.gpr[16] = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08AC212Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 513u, 0x08AC212Cu, 0x08ADDEE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 508u, 0x08ADDEE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC212Cu) goto L_08AC212C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC212C: aot_gpr_4 = (0u | 21u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(0), static_cast(aot_gpr_4)); @@ -5282,16 +6242,29 @@ L_08AC212C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AC2158u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 514u, 0x08AC2158u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2158u) goto L_08AC2158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2158: aot_gpr_2 = (0u | 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC216C: @@ -5303,8 +6276,21 @@ L_08AC216C: L_08AC217C: aot_gpr_31 = (0x08AC2184u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 517u, 0x08AC2184u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2184u) goto L_08AC2184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2184: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5316,15 +6302,28 @@ L_08AC2184: L_08AC2190: aot_gpr_31 = (0x08AC2198u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 519u, 0x08AC2198u, 0x0898E288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 761u, 0x0898E288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2198u) goto L_08AC2198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2198: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC21A8: @@ -5336,8 +6335,21 @@ L_08AC21A8: L_08AC21B8: aot_gpr_31 = (0x08AC21C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 522u, 0x08AC21C0u, 0x08946B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 519u, 0x08946B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC21C0u) goto L_08AC21C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC21C0: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5349,15 +6361,28 @@ L_08AC21C0: L_08AC21CC: aot_gpr_31 = (0x08AC21D4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 524u, 0x08AC21D4u, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC21D4u) goto L_08AC21D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC21D4: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC21E4: @@ -5378,8 +6403,8 @@ L_08AC21F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC221C: @@ -5406,8 +6431,8 @@ L_08AC2248: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2260: @@ -5467,8 +6492,21 @@ L_08AC22BC: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AC22E4u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 538u, 0x08AC22E4u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC22E4u) goto L_08AC22E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC22E4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -5497,8 +6535,8 @@ L_08AC2304: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2318: @@ -5511,8 +6549,21 @@ L_08AC2318: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08AC2344u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 543u, 0x08AC2344u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2344u) goto L_08AC2344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2344: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5552,8 +6603,21 @@ L_08AC238C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC239Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 548u, 0x08AC239Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC239Cu) goto L_08AC239C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC239C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -5618,8 +6682,21 @@ L_08AC2400: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AC2414u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 559u, 0x08AC2414u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2414u) goto L_08AC2414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2414: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -5630,8 +6707,8 @@ L_08AC2414: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC242C: @@ -5646,8 +6723,8 @@ L_08AC242C: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2458: @@ -5657,8 +6734,21 @@ L_08AC2458: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AC2470u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1092)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 562u, 0x08AC2470u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2470u) goto L_08AC2470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2470: aot_gpr_5 = (0u | 1u); { const bool branch_taken = ctx.gpr[16] == aot_gpr_5; @@ -5680,8 +6770,21 @@ L_08AC2488: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AC2494u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 565u, 0x08AC2494u, 0x08AAEE00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 610u, 0x08AAEE00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2494u) goto L_08AC2494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2494: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5694,40 +6797,105 @@ L_08AC249C: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08AC24ACu); ctx.gpr[16] = (aot_gpr_4 + static_cast(29232)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 567u, 0x08AC24ACu, 0x08B0C648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 87u, 0x08B0C648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC24ACu) goto L_08AC24AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC24AC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC24B8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 568u, 0x08AC24B8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC24B8u) goto L_08AC24B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC24B8: aot_gpr_31 = (0x08AC24C0u); ctx.gpr[16] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 569u, 0x08AC24C0u, 0x08B0C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 89u, 0x08B0C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC24C0u) goto L_08AC24C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC24C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AC24D4u); aot_gpr_6 = (16u << 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 570u, 0x08AC24D4u, 0x0893681Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 694u, 0x0893681Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC24D4u) goto L_08AC24D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC24D4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC24E0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 571u, 0x08AC24E0u, 0x08AAF460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 721u, 0x08AAF460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC24E0u) goto L_08AC24E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC24E0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC24F0: @@ -5736,13 +6904,39 @@ L_08AC24F0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08AC250Cu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 573u, 0x08AC250Cu, 0x08973864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 743u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 743u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 743u, 0x08973864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC250Cu) goto L_08AC250C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC250C: aot_gpr_31 = (0x08AC2514u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 574u, 0x08AC2514u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2514u) goto L_08AC2514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2514: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-1096))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5755,8 +6949,21 @@ L_08AC2520: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AC252Cu); aot_gpr_4 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 576u, 0x08AC252Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC252Cu) goto L_08AC252C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC252C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5780,15 +6987,41 @@ L_08AC2548: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-1096))); aot_gpr_31 = (0x08AC2554u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 581u, 0x08AC2554u, 0x089748D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 129u, 0x089748D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2554u) goto L_08AC2554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2554: aot_gpr_6 = (ctx.gpr[28] + static_cast(-1084)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC2564u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 582u, 0x08AC2564u, 0x08AF4530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 58u, 0x08AF4530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2564u) goto L_08AC2564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2564: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-1096))); ctx.gpr[17] = (0u | 1u); @@ -5801,8 +7034,21 @@ L_08AC2564: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); aot_gpr_31 = (0x08AC2590u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 583u, 0x08AC2590u, 0x0897386Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 744u, 0x0897386Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2590u) goto L_08AC2590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2590: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-1096))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -5814,13 +7060,39 @@ L_08AC2590: aot_gpr_5 = (aot_gpr_5 << 16u); aot_gpr_31 = (0x08AC25B8u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 584u, 0x08AC25B8u, 0x0897387Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 746u, 0x0897387Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC25B8u) goto L_08AC25B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC25B8: aot_gpr_31 = (0x08AC25C0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-1096))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 585u, 0x08AC25C0u, 0x08AF50F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 102u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 102u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 102u, 0x08AF50F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC25C0u) goto L_08AC25C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC25C0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5831,14 +7103,14 @@ L_08AC25C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC25D8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC25E0: @@ -5886,14 +7158,27 @@ L_08AC25E0: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_13)); aot_gpr_31 = (0x08AC2690u); ctx.gpr[7] = (std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 588u, 0x08AC2690u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2690u) goto L_08AC2690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2690: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC269C: @@ -5904,14 +7189,27 @@ L_08AC269C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AC26B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 590u, 0x08AC26B8u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC26B8u) goto L_08AC26B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC26B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC26C4: @@ -5962,8 +7260,21 @@ L_08AC2744: L_08AC2750: aot_gpr_31 = (0x08AC2758u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 596u, 0x08AC2758u, 0x08973874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 745u, 0x08973874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2758u) goto L_08AC2758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2758: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -5986,8 +7297,21 @@ L_08AC2778: L_08AC2784: aot_gpr_31 = (0x08AC278Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 599u, 0x08AC278Cu, 0x08973884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 747u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 747u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 747u, 0x08973884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC278Cu) goto L_08AC278C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC278C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6016,8 +7340,21 @@ L_08AC27C4: L_08AC27D0: aot_gpr_31 = (0x08AC27D8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 602u, 0x08AC27D8u, 0x08973874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 745u, 0x08973874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC27D8u) goto L_08AC27D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC27D8: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(12))); aot_fpr_12 = std::bit_cast(aot_gpr_2); @@ -6039,8 +7376,21 @@ L_08AC27F4: L_08AC2800: aot_gpr_31 = (0x08AC2808u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 605u, 0x08AC2808u, 0x08973884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 747u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 747u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 747u, 0x08973884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2808u) goto L_08AC2808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2808: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(10))); aot_fpr_12 = std::bit_cast(aot_gpr_2); @@ -6062,8 +7412,21 @@ L_08AC2824: L_08AC2830: aot_gpr_31 = (0x08AC2838u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 608u, 0x08AC2838u, 0x08973874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 745u, 0x08973874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2838u) goto L_08AC2838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2838: aot_fpr_12 = std::bit_cast(aot_gpr_2); ctx.fpr[26] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6087,8 +7450,21 @@ L_08AC285C: L_08AC2868: aot_gpr_31 = (0x08AC2870u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 611u, 0x08AC2870u, 0x08973884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 747u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 747u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 747u, 0x08973884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2870u) goto L_08AC2870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2870: aot_fpr_12 = std::bit_cast(aot_gpr_2); ctx.fpr[24] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6116,8 +7492,21 @@ L_08AC28A4: L_08AC28B0: aot_gpr_31 = (0x08AC28B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 614u, 0x08AC28B8u, 0x08973874u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 745u, 0x08973874u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC28B8u) goto L_08AC28B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC28B8: aot_fpr_12 = std::bit_cast(aot_gpr_2); ctx.fpr[22] = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6141,8 +7530,21 @@ L_08AC28DC: L_08AC28E8: aot_gpr_31 = (0x08AC28F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 617u, 0x08AC28F0u, 0x08973884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 747u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 747u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 747u, 0x08973884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC28F0u) goto L_08AC28F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC28F0: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -6157,8 +7559,21 @@ L_08AC28F0: ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08AC2924u); ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 618u, 0x08AC2924u, 0x08AF43ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 39u, 0x08AF43ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2924u) goto L_08AC2924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2924: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), aot_run_words); @@ -6176,22 +7591,35 @@ L_08AC2924: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2958: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AC2968u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 620u, 0x08AC2968u, 0x08AF447Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 45u, 0x08AF447Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2968u) goto L_08AC2968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2968: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2974: @@ -6229,8 +7657,21 @@ L_08AC29D4: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC29E4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 624u, 0x08AC29E4u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC29E4u) goto L_08AC29E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC29E4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -6240,8 +7681,8 @@ L_08AC29E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC29F8: @@ -6285,8 +7726,21 @@ L_08AC2A74: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC2A84u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 628u, 0x08AC2A84u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2A84u) goto L_08AC2A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2A84: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[16] + static_cast(0), aot_run_words); @@ -6317,8 +7771,21 @@ L_08AC2AC4: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC2AD4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 631u, 0x08AC2AD4u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2AD4u) goto L_08AC2AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2AD4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(12))); @@ -6346,8 +7813,21 @@ L_08AC2B14: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC2B24u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 634u, 0x08AC2B24u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2B24u) goto L_08AC2B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2B24: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(12))); @@ -6375,8 +7855,21 @@ L_08AC2B64: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC2B74u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 637u, 0x08AC2B74u, 0x08AF5130u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 107u, 0x08AF5130u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2B74u) goto L_08AC2B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2B74: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -6390,8 +7883,8 @@ L_08AC2B74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2B98: @@ -6447,8 +7940,21 @@ L_08AC2C0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x08AC2C24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 643u, 0x08AC2C24u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2C24u) goto L_08AC2C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2C24: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -6735,8 +8241,8 @@ L_08AC2DEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2E24: @@ -6748,8 +8254,21 @@ L_08AC2E24: AOT_REGCACHE_SYNC_OUT(); return; L_08AC2E38: aot_gpr_31 = (0x08AC2E40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 683u, 0x08AC2E40u, 0x08B0C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 89u, 0x08B0C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2E40u) goto L_08AC2E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2E40: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6761,8 +8280,21 @@ L_08AC2E48: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08AC2E54u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 685u, 0x08AC2E54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2E54u) goto L_08AC2E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2E54: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -6909,8 +8441,8 @@ L_08AC2F60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2F70: @@ -6932,29 +8464,42 @@ L_08AC2F78: } L_08AC2F94: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2F9C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2FA4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AC2FB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 709u, 0x08AC2FB4u, 0x08871308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 349u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 349u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 349u, 0x08871308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2FB4u) goto L_08AC2FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2FB4: aot_gpr_2 = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC2FC4: @@ -6967,8 +8512,21 @@ L_08AC2FD4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-8740))); aot_gpr_31 = (0x08AC2FE4u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 712u, 0x08AC2FE4u, 0x0893A824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 592u, 0x0893A824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2FE4u) goto L_08AC2FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2FE4: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6982,16 +8540,42 @@ L_08AC2FF0: aot_gpr_5 = (17658u << 16u); aot_gpr_31 = (0x08AC2FFCu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 714u, 0x08AC2FFCu, 0x088907E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 117u, 0x088907E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC2FFCu) goto L_08AC2FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC2FFC: aot_gpr_5 = (16230u << 16u); aot_gpr_5 = (aot_gpr_5 | 26214u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08AC3010u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 715u, 0x08AC3010u, 0x08890798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 111u, 0x08890798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3010u) goto L_08AC3010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3010: aot_gpr_6 = (16179u << 16u); aot_gpr_6 = (aot_gpr_6 | 13107u); @@ -7002,41 +8586,132 @@ L_08AC3010: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AC3034u); aot_fpr_13 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 716u, 0x08AC3034u, 0x0893A7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 586u, 0x0893A7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3034u) goto L_08AC3034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3034: aot_gpr_31 = (0x08AC303Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 624u, 0x088B74ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC303Cu) goto L_08AC303C; AOT_REGCACHE_SYNC_OUT(); return; L_08AC303C: aot_gpr_31 = (0x08AC3044u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 718u, 0x08AC3044u, 0x08944D9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 101u, 0x08944D9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3044u) goto L_08AC3044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3044: aot_gpr_31 = (0x08AC304Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 719u, 0x08AC304Cu, 0x08AAEAA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 549u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 549u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 549u, 0x08AAEAA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC304Cu) goto L_08AC304C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC304C: aot_gpr_6 = (ctx.gpr[28] + static_cast(-1004)); aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AC3060u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 720u, 0x08AC3060u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3060u) goto L_08AC3060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3060: aot_gpr_31 = (0x08AC3068u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 721u, 0x08AC3068u, 0x089352E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 315u, 0x089352E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3068u) goto L_08AC3068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3068: aot_gpr_31 = (0x08AC3070u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 722u, 0x08AC3070u, 0x08A536F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 645u, 0x08A536F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3070u) goto L_08AC3070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3070: aot_gpr_31 = (0x08AC3078u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 723u, 0x08AC3078u, 0x08B0BFA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 703u, 0x08B0BFA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3078u) goto L_08AC3078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3078: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7071,8 +8746,21 @@ L_08AC309C: L_08AC30A0: aot_gpr_31 = (0x08AC30A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 729u, 0x08AC30A8u, 0x089BABC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 583u, 0x089BABC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC30A8u) goto L_08AC30A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC30A8: aot_gpr_2 = (0u | 1u); goto L_08AC30AC; @@ -7080,8 +8768,8 @@ L_08AC30AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC30B8: @@ -7102,8 +8790,21 @@ L_08AC30DC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AC30E8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 733u, 0x08AC30E8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC30E8u) goto L_08AC30E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC30E8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7126,8 +8827,21 @@ L_08AC3100: L_08AC3104: aot_gpr_31 = (0x08AC310Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 738u, 0x08AC310Cu, 0x089F656Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 447u, 0x089F656Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC310Cu) goto L_08AC310C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC310C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7141,8 +8855,21 @@ L_08AC3118: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3124u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 740u, 0x08AC3124u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3124u) goto L_08AC3124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3124: aot_gpr_31 = (0x08AC312Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -7151,22 +8878,74 @@ L_08AC3124: L_08AC312C: aot_gpr_31 = (0x08AC3134u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 742u, 0x08AC3134u, 0x0882DD8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 378u, 0x0882DD8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3134u) goto L_08AC3134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3134: aot_gpr_31 = (0x08AC313Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 743u, 0x08AC313Cu, 0x08A11120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 113u, 0x08A11120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC313Cu) goto L_08AC313C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC313C: aot_gpr_31 = (0x08AC3144u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24056))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0047. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 744u, 0x08AC3144u, 0x088C1830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0047_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0047_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0047_entry, 47u, 269u, 0x088C1830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3144u) goto L_08AC3144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3144: aot_gpr_31 = (0x08AC314Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 745u, 0x08AC314Cu, 0x08A05EBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 491u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 491u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 491u, 0x08A05EBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC314Cu) goto L_08AC314C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC314C: aot_gpr_2 = (0u | 1u); { std::uint32_t aot_run_words[4]{}; @@ -7178,8 +8957,8 @@ L_08AC314C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC3168: @@ -7188,12 +8967,38 @@ L_08AC3168: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08AC3180u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 747u, 0x08AC3180u, 0x08A0603Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 510u, 0x08A0603Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3180u) goto L_08AC3180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3180: aot_gpr_31 = (0x08AC3188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 748u, 0x08AC3188u, 0x0895CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 86u, 0x0895CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3188u) goto L_08AC3188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3188: ctx.gpr[16] = (2238u << 16u); ctx.gpr[17] = (0u | 0u); @@ -7207,8 +9012,21 @@ L_08AC3194: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08AC31B0u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[16]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 750u, 0x08AC31B0u, 0x089606D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 87u, 0x089606D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC31B0u) goto L_08AC31B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC31B0: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (aot_gpr_4 << 16u); @@ -7222,37 +9040,141 @@ L_08AC31B0: } L_08AC31C8: aot_gpr_31 = (0x08AC31D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 752u, 0x08AC31D0u, 0x0896EACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 627u, 0x0896EACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC31D0u) goto L_08AC31D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC31D0: aot_gpr_31 = (0x08AC31D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 753u, 0x08AC31D8u, 0x0896CEFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 266u, 0x0896CEFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC31D8u) goto L_08AC31D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC31D8: aot_gpr_31 = (0x08AC31E0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 754u, 0x08AC31E0u, 0x08864CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 144u, 0x08864CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC31E0u) goto L_08AC31E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC31E0: aot_gpr_31 = (0x08AC31E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 755u, 0x08AC31E8u, 0x08864D6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 150u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 150u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 150u, 0x08864D6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC31E8u) goto L_08AC31E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC31E8: aot_gpr_31 = (0x08AC31F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 756u, 0x08AC31F0u, 0x08896478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 469u, 0x08896478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC31F0u) goto L_08AC31F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC31F0: aot_gpr_31 = (0x08AC31F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 757u, 0x08AC31F8u, 0x08966FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 484u, 0x08966FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC31F8u) goto L_08AC31F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC31F8: aot_gpr_31 = (0x08AC3200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 758u, 0x08AC3200u, 0x08A11200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 126u, 0x08A11200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3200u) goto L_08AC3200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3200: aot_gpr_31 = (0x08AC3208u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 759u, 0x08AC3208u, 0x08AD3110u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 526u, 0x08AD3110u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3208u) goto L_08AC3208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3208: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7270,24 +9192,89 @@ L_08AC321C: goto L_08AC3220; L_08AC3220: aot_gpr_31 = (0x08AC3228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 763u, 0x08AC3228u, 0x0880EA7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 566u, 0x0880EA7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3228u) goto L_08AC3228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3228: aot_gpr_31 = (0x08AC3230u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 764u, 0x08AC3230u, 0x08941F28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 311u, 0x08941F28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3230u) goto L_08AC3230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3230: aot_gpr_31 = (0x08AC3238u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 765u, 0x08AC3238u, 0x08B3E27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 526u, 0x08B3E27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3238u) goto L_08AC3238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3238: aot_gpr_31 = (0x08AC3240u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 766u, 0x08AC3240u, 0x088B9D2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 392u, 0x088B9D2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3240u) goto L_08AC3240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3240: aot_gpr_31 = (0x08AC3248u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 767u, 0x08AC3248u, 0x088ABD90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 597u, 0x088ABD90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3248u) goto L_08AC3248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3248: aot_gpr_31 = (0x08AC3250u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); @@ -7317,8 +9304,8 @@ L_08AC3268: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC327C: @@ -7353,16 +9340,42 @@ L_08AC32D0: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-16967), static_cast(0u)); aot_gpr_31 = (0x08AC32E0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-16966), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 775u, 0x08AC32E0u, 0x08A11120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 113u, 0x08A11120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC32E0u) goto L_08AC32E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC32E0: ctx.gpr[18] = (2236u << 16u); ctx.gpr[18] = (ctx.gpr[18] + static_cast(32304)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2240), static_cast(0u)); aot_gpr_31 = (0x08AC32F4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 776u, 0x08AC32F4u, 0x08A22268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 299u, 0x08A22268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC32F4u) goto L_08AC32F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC32F4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7374,8 +9387,21 @@ L_08AC32F4: } L_08AC3300: aot_gpr_31 = (0x08AC3308u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 778u, 0x08AC3308u, 0x08AB5460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 301u, 0x08AB5460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3308u) goto L_08AC3308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3308: aot_gpr_31 = (0x08AC3310u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); @@ -7391,8 +9417,21 @@ L_08AC3310: } L_08AC331C: aot_gpr_31 = (0x08AC3324u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 781u, 0x08AC3324u, 0x08AB5110u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 219u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 219u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 219u, 0x08AB5110u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3324u) goto L_08AC3324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3324: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[17] != aot_gpr_4; @@ -7405,12 +9444,38 @@ L_08AC3330: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x08AC333Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 783u, 0x08AC333Cu, 0x08A063ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 563u, 0x08A063ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC333Cu) goto L_08AC333C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC333C: aot_gpr_31 = (0x08AC3344u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 784u, 0x08AC3344u, 0x089FD8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 374u, 0x089FD8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3344u) goto L_08AC3344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3344: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7433,19 +9498,58 @@ L_08AC3358: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC3370u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 787u, 0x08AC3370u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3370u) goto L_08AC3370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3370: aot_gpr_31 = (0x08AC3378u); goto L_08AC3168; L_08AC3378: aot_gpr_31 = (0x08AC3380u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 789u, 0x08AC3380u, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3380u) goto L_08AC3380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3380: aot_gpr_31 = (0x08AC3388u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 790u, 0x08AC3388u, 0x08A11120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 113u, 0x08A11120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3388u) goto L_08AC3388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3388: aot_gpr_31 = (0x08AC3390u); aot_gpr_4 = (0u | 0u); @@ -7453,8 +9557,21 @@ L_08AC3388: L_08AC3390: aot_gpr_31 = (0x08AC3398u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7652), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 792u, 0x08AC3398u, 0x0897381Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 738u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 738u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 738u, 0x0897381Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3398u) goto L_08AC3398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3398: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7468,19 +9585,58 @@ L_08AC33A0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC33B4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 794u, 0x08AC33B4u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC33B4u) goto L_08AC33B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC33B4: aot_gpr_31 = (0x08AC33BCu); goto L_08AC3168; L_08AC33BC: aot_gpr_31 = (0x08AC33C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 796u, 0x08AC33C4u, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC33C4u) goto L_08AC33C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC33C4: aot_gpr_31 = (0x08AC33CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 797u, 0x08AC33CCu, 0x08A11120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 113u, 0x08A11120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC33CCu) goto L_08AC33CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC33CC: aot_gpr_31 = (0x08AC33D4u); aot_gpr_4 = (0u | 0u); @@ -7488,20 +9644,59 @@ L_08AC33CC: L_08AC33D4: aot_gpr_31 = (0x08AC33DCu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7652), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 799u, 0x08AC33DCu, 0x0897381Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 738u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 738u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 738u, 0x0897381Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC33DCu) goto L_08AC33DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC33DC: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08AC33E8u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4211), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 800u, 0x08AC33E8u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC33E8u) goto L_08AC33E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC33E8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC33F4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 801u, 0x08AC33F4u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC33F4u) goto L_08AC33F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC33F4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4203), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4204), static_cast(0u)); @@ -7515,8 +9710,8 @@ L_08AC33F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC3418: @@ -7528,42 +9723,146 @@ L_08AC3418: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AC343Cu); aot_gpr_4 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 803u, 0x08AC343Cu, 0x08941918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 224u, 0x08941918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC343Cu) goto L_08AC343C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC343C: aot_gpr_31 = (0x08AC3444u); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 804u, 0x08AC3444u, 0x08966DC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 455u, 0x08966DC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3444u) goto L_08AC3444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3444: aot_gpr_4 = (2236u << 16u); ctx.gpr[16] = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08AC3454u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 805u, 0x08AC3454u, 0x08A22268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 299u, 0x08A22268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3454u) goto L_08AC3454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3454: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08AC3460u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 806u, 0x08AC3460u, 0x08A1D178u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 194u, 0x08A1D178u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3460u) goto L_08AC3460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3460: aot_gpr_31 = (0x08AC3468u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 807u, 0x08AC3468u, 0x08932C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 589u, 0x08932C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3468u) goto L_08AC3468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3468: aot_gpr_31 = (0x08AC3470u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 808u, 0x08AC3470u, 0x08AFB424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 469u, 0x08AFB424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3470u) goto L_08AC3470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3470: aot_gpr_31 = (0x08AC3478u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 809u, 0x08AC3478u, 0x08953898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 799u, 0x08953898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3478u) goto L_08AC3478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3478: aot_gpr_31 = (0x08AC3480u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 810u, 0x08AC3480u, 0x08AB8970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 136u, 0x08AB8970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3480u) goto L_08AC3480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3480: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7579,12 +9878,38 @@ L_08AC348C: L_08AC3494: aot_gpr_31 = (0x08AC349Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 813u, 0x08AC349Cu, 0x0886DB9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 284u, 0x0886DB9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC349Cu) goto L_08AC349C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC349C: aot_gpr_31 = (0x08AC34A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 814u, 0x08AC34A4u, 0x08A94214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 34u, 0x08A94214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC34A4u) goto L_08AC34A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC34A4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8420), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); @@ -7601,8 +9926,21 @@ L_08AC34B4: L_08AC34BC: aot_gpr_31 = (0x08AC34C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 817u, 0x08AC34C4u, 0x089BACF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 608u, 0x089BACF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC34C4u) goto L_08AC34C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC34C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7618,18 +9956,57 @@ L_08AC34D0: L_08AC34D8: aot_gpr_31 = (0x08AC34E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 820u, 0x08AC34E0u, 0x0880CF70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 284u, 0x0880CF70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC34E0u) goto L_08AC34E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC34E0: aot_gpr_31 = (0x08AC34E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 821u, 0x08AC34E8u, 0x08B41148u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 293u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 293u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 293u, 0x08B41148u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC34E8u) goto L_08AC34E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC34E8: aot_gpr_4 = (17136u << 16u); aot_gpr_31 = (0x08AC34F4u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 822u, 0x08AC34F4u, 0x08975D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 437u, 0x08975D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC34F4u) goto L_08AC34F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC34F4: aot_gpr_4 = (17402u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7648,41 +10025,145 @@ L_08AC3508: L_08AC3510: aot_gpr_31 = (0x08AC3518u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 825u, 0x08AC3518u, 0x08953F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 881u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 881u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 881u, 0x08953F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3518u) goto L_08AC3518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3518: aot_gpr_31 = (0x08AC3520u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 826u, 0x08AC3520u, 0x08AD3598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 589u, 0x08AD3598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3520u) goto L_08AC3520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3520: aot_gpr_31 = (0x08AC3528u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 827u, 0x08AC3528u, 0x08AD35A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 590u, 0x08AD35A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3528u) goto L_08AC3528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3528: aot_gpr_31 = (0x08AC3530u); aot_gpr_4 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 828u, 0x08AC3530u, 0x08AD35A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 590u, 0x08AD35A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3530u) goto L_08AC3530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3530: aot_gpr_31 = (0x08AC3538u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 829u, 0x08AC3538u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3538u) goto L_08AC3538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3538: aot_gpr_31 = (0x08AC3540u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-1044), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 830u, 0x08AC3540u, 0x0897FE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 969u, 0x0897FE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3540u) goto L_08AC3540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3540: aot_gpr_31 = (0x08AC3548u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 831u, 0x08AC3548u, 0x08A40AFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 121u, 0x08A40AFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3548u) goto L_08AC3548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3548: aot_gpr_31 = (0x08AC3550u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 832u, 0x08AC3550u, 0x089C7248u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 741u, 0x089C7248u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3550u) goto L_08AC3550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3550: ctx.gpr[16] = (2238u << 16u); ctx.gpr[17] = (0u | 0u); @@ -7696,8 +10177,21 @@ L_08AC355C: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08AC3578u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[16]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 834u, 0x08AC3578u, 0x089606D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 87u, 0x089606D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3578u) goto L_08AC3578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3578: aot_gpr_4 = (ctx.gpr[17] + static_cast(1)); ctx.gpr[17] = (aot_gpr_4 << 16u); @@ -7712,12 +10206,38 @@ L_08AC3578: L_08AC3590: aot_gpr_31 = (0x08AC3598u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7800), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 836u, 0x08AC3598u, 0x089CF18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 558u, 0x089CF18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3598u) goto L_08AC3598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3598: aot_gpr_31 = (0x08AC35A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 837u, 0x08AC35A0u, 0x0882766Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 503u, 0x0882766Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC35A0u) goto L_08AC35A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC35A0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7728,14 +10248,40 @@ L_08AC35A0: } L_08AC35AC: aot_gpr_31 = (0x08AC35B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 839u, 0x08AC35B4u, 0x08991788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 358u, 0x08991788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC35B4u) goto L_08AC35B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC35B4: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x08AC35C0u); aot_gpr_4 = (aot_gpr_4 + static_cast(23472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 840u, 0x08AC35C0u, 0x089F4F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 160u, 0x089F4F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC35C0u) goto L_08AC35C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC35C0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7747,39 +10293,143 @@ L_08AC35C0: L_08AC35CC: aot_gpr_31 = (0x08AC35D4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 842u, 0x08AC35D4u, 0x088690ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 260u, 0x088690ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC35D4u) goto L_08AC35D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC35D4: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_08AC35D8; L_08AC35D8: aot_gpr_31 = (0x08AC35E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 844u, 0x08AC35E0u, 0x08A87458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 495u, 0x08A87458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC35E0u) goto L_08AC35E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC35E0: aot_gpr_31 = (0x08AC35E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 845u, 0x08AC35E8u, 0x08A11120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 113u, 0x08A11120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC35E8u) goto L_08AC35E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC35E8: aot_gpr_31 = (0x08AC35F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 846u, 0x08AC35F0u, 0x08AED434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 319u, 0x08AED434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC35F0u) goto L_08AC35F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC35F0: aot_gpr_31 = (0x08AC35F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 847u, 0x08AC35F8u, 0x089EDEE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 287u, 0x089EDEE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC35F8u) goto L_08AC35F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC35F8: aot_gpr_31 = (0x08AC3600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 848u, 0x08AC3600u, 0x0895CA94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 64u, 0x0895CA94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3600u) goto L_08AC3600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3600: aot_gpr_31 = (0x08AC3608u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 849u, 0x08AC3608u, 0x08A35524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 318u, 0x08A35524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3608u) goto L_08AC3608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3608: aot_gpr_31 = (0x08AC3610u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 850u, 0x08AC3610u, 0x088F27E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 518u, 0x088F27E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3610u) goto L_08AC3610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3610: { const bool branch_taken = ctx.gpr[19] != 0u; if (branch_taken) { @@ -7789,40 +10439,157 @@ L_08AC3610: } L_08AC3618: aot_gpr_31 = (0x08AC3620u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 852u, 0x08AC3620u, 0x0896CE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 258u, 0x0896CE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3620u) goto L_08AC3620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3620: aot_gpr_31 = (0x08AC3628u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 853u, 0x08AC3628u, 0x088ABC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 582u, 0x088ABC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3628u) goto L_08AC3628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3628: aot_gpr_31 = (0x08AC3630u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 854u, 0x08AC3630u, 0x0893F9B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 815u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 815u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 815u, 0x0893F9B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3630u) goto L_08AC3630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3630: aot_gpr_31 = (0x08AC3638u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 855u, 0x08AC3638u, 0x08A8606Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 308u, 0x08A8606Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3638u) goto L_08AC3638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3638: aot_gpr_31 = (0x08AC3640u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 856u, 0x08AC3640u, 0x0895D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 159u, 0x0895D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3640u) goto L_08AC3640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3640: aot_gpr_31 = (0x08AC3648u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 857u, 0x08AC3648u, 0x088FF0A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 718u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 718u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 718u, 0x088FF0A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3648u) goto L_08AC3648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3648: aot_gpr_31 = (0x08AC3650u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 858u, 0x08AC3650u, 0x0896FD74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 858u, 0x0896FD74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3650u) goto L_08AC3650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3650: aot_gpr_31 = (0x08AC3658u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 859u, 0x08AC3658u, 0x089FD8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 374u, 0x089FD8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3658u) goto L_08AC3658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3658: aot_gpr_31 = (0x08AC3660u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 860u, 0x08AC3660u, 0x08AB043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 50u, 0x08AB043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3660u) goto L_08AC3660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3660: aot_gpr_31 = (0x08AC3668u); aot_gpr_4 = (0u | 0u); @@ -7832,8 +10599,21 @@ L_08AC3668: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC3674u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 862u, 0x08AC3674u, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3674u) goto L_08AC3674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3674: aot_gpr_31 = (0x08AC367Cu); aot_gpr_4 = (0u | 1u); @@ -7843,8 +10623,21 @@ L_08AC367C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC3688u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 864u, 0x08AC3688u, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3688u) goto L_08AC3688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3688: aot_gpr_2 = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -7857,8 +10650,8 @@ L_08AC3688: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC36A8: @@ -7874,8 +10667,8 @@ L_08AC36A8: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 | aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC36D8: @@ -7888,8 +10681,8 @@ L_08AC36D8: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 | aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC36FC: @@ -7959,8 +10752,21 @@ L_08AC3780: L_08AC3788: aot_gpr_31 = (0x08AC3790u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 875u, 0x08AC3790u, 0x08AE0790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 126u, 0x08AE0790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3790u) goto L_08AC3790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3790: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7971,8 +10777,21 @@ L_08AC3790: L_08AC3798: aot_gpr_31 = (0x08AC37A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 877u, 0x08AC37A0u, 0x08ADDF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 517u, 0x08ADDF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC37A0u) goto L_08AC37A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC37A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(300))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -7986,12 +10805,38 @@ L_08AC37A0: L_08AC37B4: aot_gpr_31 = (0x08AC37BCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 879u, 0x08AC37BCu, 0x08A39ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 396u, 0x08A39ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC37BCu) goto L_08AC37BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC37BC: aot_gpr_31 = (0x08AC37C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 880u, 0x08AC37C4u, 0x089352E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 315u, 0x089352E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC37C4u) goto L_08AC37C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC37C4: aot_gpr_31 = (0x08AC37CCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC37CCu) goto L_08AC37CC; @@ -8007,8 +10852,21 @@ L_08AC37D4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC37E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 883u, 0x08AC37E0u, 0x08946D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 559u, 0x08946D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC37E0u) goto L_08AC37E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC37E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8022,8 +10880,21 @@ L_08AC37EC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC37F8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 885u, 0x08AC37F8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC37F8u) goto L_08AC37F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC37F8: aot_gpr_31 = (0x08AC3800u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8032,8 +10903,21 @@ L_08AC37F8: L_08AC3800: aot_gpr_31 = (0x08AC3808u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 887u, 0x08AC3808u, 0x0882DD8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 378u, 0x0882DD8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3808u) goto L_08AC3808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3808: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4212), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); @@ -8049,8 +10933,21 @@ L_08AC3818: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3828u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 889u, 0x08AC3828u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3828u) goto L_08AC3828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3828: aot_gpr_31 = (0x08AC3830u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8062,8 +10959,21 @@ L_08AC3830: L_08AC3834: aot_gpr_31 = (0x08AC383Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 892u, 0x08AC383Cu, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC383Cu) goto L_08AC383C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC383C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8078,8 +10988,21 @@ L_08AC3848: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3858u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 894u, 0x08AC3858u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3858u) goto L_08AC3858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3858: aot_gpr_31 = (0x08AC3860u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8092,8 +11015,21 @@ L_08AC3864: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AC3870u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 897u, 0x08AC3870u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3870u) goto L_08AC3870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3870: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(140))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8117,8 +11053,21 @@ L_08AC3888: L_08AC3890: aot_gpr_31 = (0x08AC3898u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 901u, 0x08AC3898u, 0x08A5532Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 300u, 0x08A5532Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3898u) goto L_08AC3898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3898: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8139,8 +11088,21 @@ L_08AC38AC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[18]); aot_gpr_31 = (0x08AC38B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 904u, 0x08AC38B8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC38B8u) goto L_08AC38B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC38B8: aot_gpr_31 = (0x08AC38C0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8150,8 +11112,21 @@ L_08AC38C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC38CCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 906u, 0x08AC38CCu, 0x0882F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 756u, 0x0882F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC38CCu) goto L_08AC38CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC38CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8165,8 +11140,21 @@ L_08AC38D8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[18]); aot_gpr_31 = (0x08AC38E4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 908u, 0x08AC38E4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC38E4u) goto L_08AC38E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC38E4: aot_gpr_31 = (0x08AC38ECu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8179,8 +11167,21 @@ L_08AC38F0: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AC38FCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 911u, 0x08AC38FCu, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC38FCu) goto L_08AC38FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC38FC: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(140), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); @@ -8199,8 +11200,21 @@ L_08AC3914: L_08AC3918: aot_gpr_31 = (0x08AC3920u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 915u, 0x08AC3920u, 0x08A55324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 299u, 0x08A55324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3920u) goto L_08AC3920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3920: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8229,8 +11243,21 @@ L_08AC393C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC394Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 919u, 0x08AC394Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC394Cu) goto L_08AC394C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC394C: aot_gpr_31 = (0x08AC3954u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8243,8 +11270,21 @@ L_08AC3958: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AC3964u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 922u, 0x08AC3964u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3964u) goto L_08AC3964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3964: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8289,8 +11329,21 @@ L_08AC399C: L_08AC39A4: aot_gpr_31 = (0x08AC39ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 930u, 0x08AC39ACu, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC39ACu) goto L_08AC39AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC39AC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8312,8 +11365,21 @@ L_08AC39C0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC39D0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 933u, 0x08AC39D0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC39D0u) goto L_08AC39D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC39D0: aot_gpr_31 = (0x08AC39D8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8326,8 +11392,21 @@ L_08AC39DC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AC39E8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 936u, 0x08AC39E8u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC39E8u) goto L_08AC39E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC39E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8343,8 +11422,21 @@ L_08AC39F4: L_08AC39FC: aot_gpr_31 = (0x08AC3A04u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 939u, 0x08AC3A04u, 0x088739E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 838u, 0x088739E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3A04u) goto L_08AC3A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3A04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8367,8 +11459,21 @@ L_08AC3A18: L_08AC3A20: aot_gpr_31 = (0x08AC3A28u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 943u, 0x08AC3A28u, 0x08A54ED4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 237u, 0x08A54ED4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3A28u) goto L_08AC3A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3A28: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8390,8 +11495,21 @@ L_08AC3A3C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3A4Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 946u, 0x08AC3A4Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3A4Cu) goto L_08AC3A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3A4C: aot_gpr_31 = (0x08AC3A54u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8404,8 +11522,21 @@ L_08AC3A58: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08AC3A64u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 949u, 0x08AC3A64u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3A64u) goto L_08AC3A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3A64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8421,8 +11552,21 @@ L_08AC3A70: L_08AC3A78: aot_gpr_31 = (0x08AC3A80u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 952u, 0x08AC3A80u, 0x088739E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 838u, 0x088739E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3A80u) goto L_08AC3A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3A80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8511,8 +11655,21 @@ L_08AC3B00: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3B10u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 966u, 0x08AC3B10u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3B10u) goto L_08AC3B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3B10: aot_gpr_31 = (0x08AC3B18u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8525,8 +11682,21 @@ L_08AC3B1C: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08AC3B28u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 969u, 0x08AC3B28u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3B28u) goto L_08AC3B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3B28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8542,8 +11712,21 @@ L_08AC3B34: L_08AC3B3C: aot_gpr_31 = (0x08AC3B44u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 972u, 0x08AC3B44u, 0x088739E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 838u, 0x088739E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3B44u) goto L_08AC3B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3B44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8572,8 +11755,21 @@ L_08AC3B60: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3B70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 976u, 0x08AC3B70u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3B70u) goto L_08AC3B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3B70: aot_gpr_31 = (0x08AC3B78u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8586,8 +11782,21 @@ L_08AC3B7C: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08AC3B88u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 979u, 0x08AC3B88u, 0x0882FCA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 942u, 0x0882FCA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3B88u) goto L_08AC3B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3B88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8603,8 +11812,21 @@ L_08AC3B94: L_08AC3B9C: aot_gpr_31 = (0x08AC3BA4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 982u, 0x08AC3BA4u, 0x088739E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 838u, 0x088739E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3BA4u) goto L_08AC3BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3BA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8626,8 +11848,21 @@ L_08AC3BB8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3BC8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 985u, 0x08AC3BC8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3BC8u) goto L_08AC3BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3BC8: aot_gpr_31 = (0x08AC3BD0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8639,8 +11874,21 @@ L_08AC3BD0: L_08AC3BD4: aot_gpr_31 = (0x08AC3BDCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 988u, 0x08AC3BDCu, 0x0882F6E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 832u, 0x0882F6E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3BDCu) goto L_08AC3BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3BDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8654,8 +11902,21 @@ L_08AC3BE8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3BF4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 990u, 0x08AC3BF4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3BF4u) goto L_08AC3BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3BF4: aot_gpr_31 = (0x08AC3BFCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8664,8 +11925,21 @@ L_08AC3BF4: L_08AC3BFC: aot_gpr_31 = (0x08AC3C04u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 992u, 0x08AC3C04u, 0x0882E980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 605u, 0x0882E980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3C04u) goto L_08AC3C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3C04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8681,8 +11955,21 @@ L_08AC3C10: L_08AC3C18: aot_gpr_31 = (0x08AC3C20u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 995u, 0x08AC3C20u, 0x088739E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 838u, 0x088739E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3C20u) goto L_08AC3C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3C20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8698,12 +11985,38 @@ L_08AC3C2C: L_08AC3C34: aot_gpr_31 = (0x08AC3C3Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 998u, 0x08AC3C3Cu, 0x088739A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 832u, 0x088739A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3C3Cu) goto L_08AC3C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3C3C: aot_gpr_31 = (0x08AC3C44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 999u, 0x08AC3C44u, 0x08936810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 693u, 0x08936810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3C44u) goto L_08AC3C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3C44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8718,8 +12031,21 @@ L_08AC3C50: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3C60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1001u, 0x08AC3C60u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3C60u) goto L_08AC3C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3C60: aot_gpr_31 = (0x08AC3C68u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8731,8 +12057,21 @@ L_08AC3C68: L_08AC3C6C: aot_gpr_31 = (0x08AC3C74u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1004u, 0x08AC3C74u, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3C74u) goto L_08AC3C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3C74: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8745,8 +12084,8 @@ L_08AC3C74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC3C94: @@ -8759,14 +12098,40 @@ L_08AC3C94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AC3CB8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1006u, 0x08AC3CB8u, 0x08A0603Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 510u, 0x08A0603Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3CB8u) goto L_08AC3CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3CB8: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-7580), static_cast(0u)); aot_gpr_31 = (0x08AC3CC4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1007u, 0x08AC3CC4u, 0x08A05EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 495u, 0x08A05EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3CC4u) goto L_08AC3CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3CC4: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08AC3CD0u); @@ -8788,8 +12153,21 @@ L_08AC3CE4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC3CF0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1010u, 0x08AC3CF0u, 0x08946D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 559u, 0x08946D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3CF0u) goto L_08AC3CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3CF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8804,8 +12182,21 @@ L_08AC3CFC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3D0Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1012u, 0x08AC3D0Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3D0Cu) goto L_08AC3D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3D0C: aot_gpr_31 = (0x08AC3D14u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8817,8 +12208,21 @@ L_08AC3D14: L_08AC3D18: aot_gpr_31 = (0x08AC3D20u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1015u, 0x08AC3D20u, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3D20u) goto L_08AC3D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3D20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8832,8 +12236,21 @@ L_08AC3D2C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC3D38u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1017u, 0x08AC3D38u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3D38u) goto L_08AC3D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3D38: aot_gpr_31 = (0x08AC3D40u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -8842,20 +12259,59 @@ L_08AC3D38: L_08AC3D40: aot_gpr_31 = (0x08AC3D48u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1019u, 0x08AC3D48u, 0x0882DA4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 328u, 0x0882DA4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3D48u) goto L_08AC3D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3D48: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC3D54u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1020u, 0x08AC3D54u, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3D54u) goto L_08AC3D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3D54: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC3D60u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1021u, 0x08AC3D60u, 0x08A06154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 532u, 0x08A06154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3D60u) goto L_08AC3D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3D60: ctx.gpr[17] = (0u | 0u); aot_fpr_12 = std::bit_cast(0u); @@ -8875,8 +12331,21 @@ L_08AC3D7C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x08AC3D88u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1024u, 0x08AC3D88u, 0x08A063ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 563u, 0x08A063ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3D88u) goto L_08AC3D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3D88: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8888,8 +12357,21 @@ L_08AC3D88: } L_08AC3D94: aot_gpr_31 = (0x08AC3D9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1026u, 0x08AC3D9Cu, 0x08991788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 358u, 0x08991788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3D9Cu) goto L_08AC3D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3D9C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-16130), static_cast(0u)); aot_gpr_5 = (2236u << 16u); @@ -8918,8 +12400,21 @@ L_08AC3DD4: L_08AC3DD8: aot_gpr_31 = (0x08AC3DE0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1031u, 0x08AC3DE0u, 0x089C6DF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 645u, 0x089C6DF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3DE0u) goto L_08AC3DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3DE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8938,8 +12433,21 @@ L_08AC3DF4: L_08AC3DF8: aot_gpr_31 = (0x08AC3E00u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1035u, 0x08AC3E00u, 0x089BB010u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 643u, 0x089BB010u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3E00u) goto L_08AC3E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3E00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8958,8 +12466,21 @@ L_08AC3E14: L_08AC3E18: aot_gpr_31 = (0x08AC3E20u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1039u, 0x08AC3E20u, 0x089BAFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 640u, 0x089BAFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3E20u) goto L_08AC3E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3E20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8978,8 +12499,21 @@ L_08AC3E34: L_08AC3E38: aot_gpr_31 = (0x08AC3E40u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1043u, 0x08AC3E40u, 0x089BB290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 688u, 0x089BB290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3E40u) goto L_08AC3E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3E40: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-8140), 0u); { std::uint32_t aot_run_words[4]{}; @@ -8991,8 +12525,8 @@ L_08AC3E40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC3E5C: @@ -9003,19 +12537,58 @@ L_08AC3E5C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08AC3E88u); ctx.gpr[19] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1045u, 0x08AC3E88u, 0x08935484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 340u, 0x08935484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3E88u) goto L_08AC3E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3E88: aot_gpr_4 = (2280u << 16u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AC3E98u); aot_gpr_4 = (aot_gpr_4 + static_cast(2320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1046u, 0x08AC3E98u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3E98u) goto L_08AC3E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3E98: aot_gpr_31 = (0x08AC3EA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1047u, 0x08AC3EA0u, 0x08990190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 28u, 0x08990190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3EA0u) goto L_08AC3EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3EA0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7652), aot_gpr_4); @@ -9025,65 +12598,234 @@ L_08AC3EA0: ctx.gpr[18] = (ctx.gpr[18] + static_cast(13984)); aot_gpr_31 = (0x08AC3EC0u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(14004)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1048u, 0x08AC3EC0u, 0x089353A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 329u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 329u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 329u, 0x089353A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3EC0u) goto L_08AC3EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3EC0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC3ED4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1049u, 0x08AC3ED4u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3ED4u) goto L_08AC3ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3ED4: aot_gpr_31 = (0x08AC3EDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1050u, 0x08AC3EDCu, 0x08966DC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 455u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 455u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 455u, 0x08966DC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3EDCu) goto L_08AC3EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3EDC: aot_gpr_31 = (0x08AC3EE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1051u, 0x08AC3EE4u, 0x08A92D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 373u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 373u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 373u, 0x08A92D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3EE4u) goto L_08AC3EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3EE4: ctx.gpr[16] = (2236u << 16u); ctx.gpr[16] = (ctx.gpr[16] + static_cast(32304)); aot_gpr_31 = (0x08AC3EF4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1052u, 0x08AC3EF4u, 0x08A22268u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 299u, 0x08A22268u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3EF4u) goto L_08AC3EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3EF4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8896))); aot_gpr_31 = (0x08AC3F00u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1053u, 0x08AC3F00u, 0x08A1D178u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 194u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 194u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 194u, 0x08A1D178u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F00u) goto L_08AC3F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F00: aot_gpr_31 = (0x08AC3F08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1054u, 0x08AC3F08u, 0x08932C94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 589u, 0x08932C94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F08u) goto L_08AC3F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F08: aot_gpr_31 = (0x08AC3F10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1055u, 0x08AC3F10u, 0x0895D300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 159u, 0x0895D300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F10u) goto L_08AC3F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F10: aot_gpr_31 = (0x08AC3F18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1056u, 0x08AC3F18u, 0x08AFB424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 469u, 0x08AFB424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F18u) goto L_08AC3F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F18: aot_gpr_31 = (0x08AC3F20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1057u, 0x08AC3F20u, 0x089737F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 736u, 0x089737F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F20u) goto L_08AC3F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F20: aot_gpr_31 = (0x08AC3F28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1058u, 0x08AC3F28u, 0x08B3E27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 526u, 0x08B3E27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F28u) goto L_08AC3F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F28: aot_gpr_31 = (0x08AC3F30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1059u, 0x08AC3F30u, 0x08953898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 799u, 0x08953898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F30u) goto L_08AC3F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F30: aot_gpr_31 = (0x08AC3F38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1060u, 0x08AC3F38u, 0x08AB8970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 136u, 0x08AB8970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F38u) goto L_08AC3F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); ctx.gpr[20] = (2238u << 16u); @@ -9101,48 +12843,191 @@ L_08AC3F48: L_08AC3F50: aot_gpr_31 = (0x08AC3F58u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1063u, 0x08AC3F58u, 0x0886DB9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 284u, 0x0886DB9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F58u) goto L_08AC3F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F58: aot_gpr_31 = (0x08AC3F60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1064u, 0x08AC3F60u, 0x08ABAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 476u, 0x08ABAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F60u) goto L_08AC3F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F60: aot_gpr_31 = (0x08AC3F68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1065u, 0x08AC3F68u, 0x08990B50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 153u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 153u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 153u, 0x08990B50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F68u) goto L_08AC3F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F68: aot_gpr_31 = (0x08AC3F70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1066u, 0x08AC3F70u, 0x08A94214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 34u, 0x08A94214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F70u) goto L_08AC3F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F70: aot_gpr_31 = (0x08AC3F78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1067u, 0x08AC3F78u, 0x088919FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 223u, 0x088919FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F78u) goto L_08AC3F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F78: aot_gpr_31 = (0x08AC3F80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1068u, 0x08AC3F80u, 0x0898124Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 299u, 0x0898124Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F80u) goto L_08AC3F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F80: aot_gpr_31 = (0x08AC3F88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1069u, 0x08AC3F88u, 0x088FF808u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 775u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 775u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 775u, 0x088FF808u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F88u) goto L_08AC3F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F88: aot_gpr_31 = (0x08AC3F90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1070u, 0x08AC3F90u, 0x08B41098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 286u, 0x08B41098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F90u) goto L_08AC3F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F90: aot_gpr_31 = (0x08AC3F98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1071u, 0x08AC3F98u, 0x088F27E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 518u, 0x088F27E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3F98u) goto L_08AC3F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3F98: aot_gpr_31 = (0x08AC3FA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1072u, 0x08AC3FA0u, 0x08AED434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 319u, 0x08AED434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3FA0u) goto L_08AC3FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3FA0: aot_gpr_31 = (0x08AC3FA8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1073u, 0x08AC3FA8u, 0x088B9D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 394u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 394u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 394u, 0x088B9D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3FA8u) goto L_08AC3FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3FA8: aot_gpr_4 = (0u | 0u); ctx.gpr[21] = (0u | 0u); @@ -9151,8 +13036,21 @@ L_08AC3FA8: L_08AC3FB4: aot_gpr_31 = (0x08AC3FBCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1075u, 0x08AC3FBCu, 0x089606D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 87u, 0x089606D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3FBCu) goto L_08AC3FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3FBC: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[21]) < 1 ? 1u : 0u); @@ -9167,8 +13065,21 @@ L_08AC3FCC: aot_gpr_4 = (17136u << 16u); aot_gpr_31 = (0x08AC3FD8u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1077u, 0x08AC3FD8u, 0x08975D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 437u, 0x08975D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3FD8u) goto L_08AC3FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3FD8: aot_gpr_4 = (17402u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9178,8 +13089,21 @@ L_08AC3FD8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC3FF8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0175->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0175_entry, 1078u, 0x08AC3FF8u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC3FF8u) goto L_08AC3FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC3FF8: aot_gpr_31 = (0x08AC4000u); aot_gpr_4 = (0u | 0u); diff --git a/profiles/vcs/generated/generated_unit_0176.cpp b/profiles/vcs/generated/generated_unit_0176.cpp index 03067f7..7250642 100644 --- a/profiles/vcs/generated/generated_unit_0176.cpp +++ b/profiles/vcs/generated/generated_unit_0176.cpp @@ -1179,6 +1179,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AC4000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1194,51 +1218,181 @@ LOCAL_SCHED_BOUNDARY: return; L_08AC4000: aot_gpr_31 = (0x08AC4008u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 2u, 0x08AC4008u, 0x08AD31CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 536u, 0x08AD31CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4008u) goto L_08AC4008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4008: aot_gpr_31 = (0x08AC4010u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 3u, 0x08AC4010u, 0x08AD312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 528u, 0x08AD312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4010u) goto L_08AC4010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4010: aot_gpr_31 = (0x08AC4018u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 4u, 0x08AC4018u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4018u) goto L_08AC4018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4018: aot_gpr_31 = (0x08AC4020u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 5u, 0x08AC4020u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4020u) goto L_08AC4020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4020: aot_gpr_31 = (0x08AC4028u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 6u, 0x08AC4028u, 0x08AB4B00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 144u, 0x08AB4B00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4028u) goto L_08AC4028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4028: aot_gpr_31 = (0x08AC4030u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 7u, 0x08AC4030u, 0x0897FE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 969u, 0x0897FE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4030u) goto L_08AC4030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4030: aot_gpr_31 = (0x08AC4038u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 8u, 0x08AC4038u, 0x08AD317Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 532u, 0x08AD317Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4038u) goto L_08AC4038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4038: aot_gpr_31 = (0x08AC4040u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 9u, 0x08AC4040u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4040u) goto L_08AC4040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4040: aot_gpr_31 = (0x08AC4048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0157. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 10u, 0x08AC4048u, 0x08A79BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0157_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0157_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0157_entry, 157u, 335u, 0x08A79BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4048u) goto L_08AC4048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4048: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC405Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 11u, 0x08AC405Cu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC405Cu) goto L_08AC405C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC405C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1256,8 +1410,21 @@ L_08AC4070: goto L_08AC4074; L_08AC4074: aot_gpr_31 = (0x08AC407Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 15u, 0x08AC407Cu, 0x0880CF70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 284u, 0x0880CF70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC407Cu) goto L_08AC407C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC407C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1275,12 +1442,38 @@ L_08AC4090: goto L_08AC4094; L_08AC4094: aot_gpr_31 = (0x08AC409Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0003. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 19u, 0x08AC409Cu, 0x088101B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0003_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0003_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0003_entry, 3u, 34u, 0x088101B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC409Cu) goto L_08AC409C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC409C: aot_gpr_31 = (0x08AC40A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 20u, 0x08AC40A4u, 0x08A40AFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 121u, 0x08A40AFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC40A4u) goto L_08AC40A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC40A4: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1288,72 +1481,254 @@ L_08AC40A4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AC40BCu); aot_gpr_5 = (aot_gpr_5 + static_cast(14028)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 21u, 0x08AC40BCu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC40BCu) goto L_08AC40BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC40BC: aot_gpr_31 = (0x08AC40C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 22u, 0x08AC40C4u, 0x08B22EB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 607u, 0x08B22EB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC40C4u) goto L_08AC40C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC40C4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC40D8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 23u, 0x08AC40D8u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC40D8u) goto L_08AC40D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC40D8: aot_gpr_31 = (0x08AC40E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 24u, 0x08AC40E0u, 0x089C7248u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 741u, 0x089C7248u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC40E0u) goto L_08AC40E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC40E0: aot_gpr_31 = (0x08AC40E8u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7800), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 25u, 0x08AC40E8u, 0x08A96074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 304u, 0x08A96074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC40E8u) goto L_08AC40E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC40E8: aot_gpr_31 = (0x08AC40F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0132. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 26u, 0x08AC40F0u, 0x08A17928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0132_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0132_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0132_entry, 132u, 595u, 0x08A17928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC40F0u) goto L_08AC40F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC40F0: aot_gpr_31 = (0x08AC40F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 27u, 0x08AC40F8u, 0x08B20004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 2u, 0x08B20004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC40F8u) goto L_08AC40F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC40F8: aot_gpr_31 = (0x08AC4100u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 28u, 0x08AC4100u, 0x089CF18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 558u, 0x089CF18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4100u) goto L_08AC4100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4100: aot_gpr_31 = (0x08AC4108u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 29u, 0x08AC4108u, 0x0882766Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 503u, 0x0882766Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4108u) goto L_08AC4108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4108: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x08AC4114u); aot_gpr_4 = (aot_gpr_4 + static_cast(23472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 30u, 0x08AC4114u, 0x089F4F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 160u, 0x089F4F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4114u) goto L_08AC4114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4114: aot_gpr_5 = (ctx.gpr[28] + static_cast(-952)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC4128u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 31u, 0x08AC4128u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4128u) goto L_08AC4128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4128: aot_gpr_31 = (0x08AC4130u); aot_gpr_4 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 32u, 0x08AC4130u, 0x08941918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 224u, 0x08941918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4130u) goto L_08AC4130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4130: aot_gpr_31 = (0x08AC4138u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 33u, 0x08AC4138u, 0x08991788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 358u, 0x08991788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4138u) goto L_08AC4138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4138: aot_gpr_31 = (0x08AC4140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 34u, 0x08AC4140u, 0x0896CE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 258u, 0x0896CE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4140u) goto L_08AC4140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4140: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1365,64 +1740,233 @@ L_08AC4140: L_08AC414C: aot_gpr_31 = (0x08AC4154u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 36u, 0x08AC4154u, 0x088690ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 260u, 0x088690ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4154u) goto L_08AC4154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4154: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4211), static_cast(0u)); goto L_08AC415C; L_08AC415C: aot_gpr_31 = (0x08AC4164u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 38u, 0x08AC4164u, 0x08A87458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 495u, 0x08A87458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4164u) goto L_08AC4164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4164: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC4178u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 39u, 0x08AC4178u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4178u) goto L_08AC4178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4178: aot_gpr_31 = (0x08AC4180u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 40u, 0x08AC4180u, 0x089EDEE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 287u, 0x089EDEE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4180u) goto L_08AC4180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4180: aot_gpr_31 = (0x08AC4188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 41u, 0x08AC4188u, 0x0896FD74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 858u, 0x0896FD74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4188u) goto L_08AC4188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4188: aot_gpr_31 = (0x08AC4190u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 42u, 0x08AC4190u, 0x0895CA94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 64u, 0x0895CA94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4190u) goto L_08AC4190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4190: aot_gpr_31 = (0x08AC4198u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 43u, 0x08AC4198u, 0x08A35524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 318u, 0x08A35524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4198u) goto L_08AC4198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4198: aot_gpr_31 = (0x08AC41A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 44u, 0x08AC41A0u, 0x08A906D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 47u, 0x08A906D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC41A0u) goto L_08AC41A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC41A0: aot_gpr_31 = (0x08AC41A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 45u, 0x08AC41A8u, 0x0888CCD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 235u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 235u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 235u, 0x0888CCD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC41A8u) goto L_08AC41A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC41A8: aot_gpr_31 = (0x08AC41B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 46u, 0x08AC41B0u, 0x088ABC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 582u, 0x088ABC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC41B0u) goto L_08AC41B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC41B0: aot_gpr_31 = (0x08AC41B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 47u, 0x08AC41B8u, 0x0893F9B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 815u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 815u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 815u, 0x0893F9B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC41B8u) goto L_08AC41B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC41B8: aot_gpr_31 = (0x08AC41C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 48u, 0x08AC41C0u, 0x08A8606Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 308u, 0x08A8606Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC41C0u) goto L_08AC41C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC41C0: aot_gpr_31 = (0x08AC41C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 49u, 0x08AC41C8u, 0x0886A6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 528u, 0x0886A6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC41C8u) goto L_08AC41C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC41C8: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1430,8 +1974,21 @@ L_08AC41C8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AC41E0u); aot_gpr_5 = (aot_gpr_5 + static_cast(14052)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 50u, 0x08AC41E0u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC41E0u) goto L_08AC41E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC41E0: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1439,33 +1996,111 @@ L_08AC41E0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AC41F8u); aot_gpr_5 = (aot_gpr_5 + static_cast(14080)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 51u, 0x08AC41F8u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC41F8u) goto L_08AC41F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC41F8: aot_gpr_31 = (0x08AC4200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 52u, 0x08AC4200u, 0x089FD8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 374u, 0x089FD8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4200u) goto L_08AC4200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4200: aot_gpr_31 = (0x08AC4208u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 53u, 0x08AC4208u, 0x0897F7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 905u, 0x0897F7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4208u) goto L_08AC4208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4208: aot_gpr_31 = (0x08AC4210u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 54u, 0x08AC4210u, 0x08990B60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 155u, 0x08990B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4210u) goto L_08AC4210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4210: aot_gpr_31 = (0x08AC4218u); ctx.gpr[17] = (ctx.gpr[28] + static_cast(-936)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 55u, 0x08AC4218u, 0x089353A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 329u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 329u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 329u, 0x089353A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4218u) goto L_08AC4218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4218: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AC422Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 56u, 0x08AC422Cu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC422Cu) goto L_08AC422C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC422C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1476,8 +2111,21 @@ L_08AC422C: } L_08AC4238: aot_gpr_31 = (0x08AC4240u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 58u, 0x08AC4240u, 0x088634DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 615u, 0x088634DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4240u) goto L_08AC4240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4240: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1485,12 +2133,38 @@ L_08AC4240: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AC4258u); aot_gpr_5 = (aot_gpr_5 + static_cast(14108)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 59u, 0x08AC4258u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4258u) goto L_08AC4258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4258: aot_gpr_31 = (0x08AC4260u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 60u, 0x08AC4260u, 0x088697ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 356u, 0x088697ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4260u) goto L_08AC4260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4260: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1498,13 +2172,39 @@ L_08AC4260: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AC4278u); aot_gpr_5 = (aot_gpr_5 + static_cast(14132)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 61u, 0x08AC4278u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4278u) goto L_08AC4278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4278: aot_gpr_31 = (0x08AC4280u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 62u, 0x08AC4280u, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4280u) goto L_08AC4280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4280: aot_gpr_5 = (2232u << 16u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -1512,21 +2212,60 @@ L_08AC4280: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AC4298u); aot_gpr_5 = (aot_gpr_5 + static_cast(14152)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 63u, 0x08AC4298u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4298u) goto L_08AC4298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4298: aot_gpr_31 = (0x08AC42A0u); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 64u, 0x08AC42A0u, 0x08AD3558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 585u, 0x08AD3558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC42A0u) goto L_08AC42A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC42A0: aot_gpr_5 = (ctx.gpr[28] + static_cast(-920)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC42B4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 65u, 0x08AC42B4u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC42B4u) goto L_08AC42B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC42B4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7652))); aot_gpr_4 = (0u | 0u); @@ -1538,8 +2277,21 @@ L_08AC42C4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AC42D0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 67u, 0x08AC42D0u, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC42D0u) goto L_08AC42D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC42D0: aot_gpr_31 = (0x08AC42D8u); aot_gpr_4 = (0u | 1u); @@ -1549,14 +2301,40 @@ L_08AC42D8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AC42E4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 69u, 0x08AC42E4u, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC42E4u) goto L_08AC42E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC42E4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08AC42F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 70u, 0x08AC42F0u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC42F0u) goto L_08AC42F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC42F0: ctx.gpr[2] = (ctx.gpr[19] | 0u); { std::uint32_t aot_run_words[7]{}; @@ -1571,8 +2349,8 @@ L_08AC42F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC4318: @@ -1601,24 +2379,76 @@ L_08AC434C: } L_08AC4358: aot_gpr_31 = (0x08AC4360u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 74u, 0x08AC4360u, 0x088634DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 615u, 0x088634DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4360u) goto L_08AC4360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4360: aot_gpr_31 = (0x08AC4368u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 75u, 0x08AC4368u, 0x088697ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 356u, 0x088697ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4368u) goto L_08AC4368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4368: aot_gpr_4 = (2236u << 16u); ctx.gpr[18] = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08AC4378u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 76u, 0x08AC4378u, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4378u) goto L_08AC4378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4378: aot_gpr_31 = (0x08AC4380u); aot_gpr_4 = (ctx.gpr[18] + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 77u, 0x08AC4380u, 0x08AD3558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 585u, 0x08AD3558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4380u) goto L_08AC4380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4380: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); @@ -1635,20 +2465,59 @@ L_08AC4398: ctx.gpr[18] = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08AC43A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 79u, 0x08AC43A8u, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC43A8u) goto L_08AC43A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC43A8: aot_gpr_31 = (0x08AC43B0u); aot_gpr_4 = (ctx.gpr[18] + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 80u, 0x08AC43B0u, 0x08AD3558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 585u, 0x08AD3558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC43B0u) goto L_08AC43B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC43B0: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4211), static_cast(0u)); goto L_08AC43B4; L_08AC43B4: aot_gpr_31 = (0x08AC43BCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 82u, 0x08AC43BCu, 0x0898B448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 829u, 0x0898B448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC43BCu) goto L_08AC43BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC43BC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(300))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -1669,8 +2538,21 @@ L_08AC43D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC43E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 85u, 0x08AC43E0u, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC43E0u) goto L_08AC43E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC43E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1686,8 +2568,21 @@ L_08AC43EC: L_08AC43F4: aot_gpr_31 = (0x08AC43FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 88u, 0x08AC43FCu, 0x0884C998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 100u, 0x0884C998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC43FCu) goto L_08AC43FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC43FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); if (aot_gpr_4 != 0u) { @@ -1723,8 +2618,21 @@ L_08AC4428: } L_08AC4438: aot_gpr_31 = (0x08AC4440u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 94u, 0x08AC4440u, 0x08AB50BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 212u, 0x08AB50BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4440u) goto L_08AC4440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4440: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-2268), static_cast(0u)); goto L_08AC4444; @@ -1740,8 +2648,21 @@ L_08AC4450: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08AC445Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 97u, 0x08AC445Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC445Cu) goto L_08AC445C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC445C: aot_gpr_31 = (0x08AC4464u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-1032)); @@ -1750,8 +2671,21 @@ L_08AC445C: L_08AC4464: aot_gpr_31 = (0x08AC446Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 99u, 0x08AC446Cu, 0x0882E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 450u, 0x0882E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC446Cu) goto L_08AC446C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC446C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7376))); goto L_08AC4470; @@ -1951,8 +2885,21 @@ L_08AC45D4: L_08AC45EC: aot_gpr_31 = (0x08AC45F4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 126u, 0x08AC45F4u, 0x08ADC5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 111u, 0x08ADC5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC45F4u) goto L_08AC45F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC45F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2039,8 +2986,21 @@ L_08AC4670: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC467Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 139u, 0x08AC467Cu, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC467Cu) goto L_08AC467C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC467C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2087,8 +3047,21 @@ L_08AC46BC: L_08AC46C4: aot_gpr_31 = (0x08AC46CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 146u, 0x08AC46CCu, 0x08A53CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 730u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 730u, 0x08A53CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC46CCu) goto L_08AC46CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC46CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -2153,8 +3126,21 @@ L_08AC4764: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08AC4770u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 154u, 0x08AC4770u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4770u) goto L_08AC4770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4770: aot_gpr_31 = (0x08AC4778u); ctx.pc = 0x08B73514u; @@ -2191,8 +3177,21 @@ L_08AC47B4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC47D0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 158u, 0x08AC47D0u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC47D0u) goto L_08AC47D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC47D0: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(8), static_cast(aot_gpr_4)); @@ -2215,8 +3214,21 @@ L_08AC47D0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC4824u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 159u, 0x08AC4824u, 0x08AE00C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 14u, 0x08AE00C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4824u) goto L_08AC4824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4824: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -2276,13 +3288,39 @@ L_08AC4878: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC488Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 168u, 0x08AC488Cu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC488Cu) goto L_08AC488C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC488C: aot_gpr_31 = (0x08AC4894u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 169u, 0x08AC4894u, 0x08ADBA40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 889u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 889u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 889u, 0x08ADBA40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4894u) goto L_08AC4894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4894: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2294,8 +3332,21 @@ L_08AC489C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC48A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 171u, 0x08AC48A8u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC48A8u) goto L_08AC48A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC48A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2307,8 +3358,21 @@ L_08AC48B0: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC48BCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 173u, 0x08AC48BCu, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC48BCu) goto L_08AC48BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC48BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2322,8 +3386,21 @@ L_08AC48C4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC48D8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 175u, 0x08AC48D8u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC48D8u) goto L_08AC48D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC48D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -2396,8 +3473,21 @@ L_08AC4940: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC494Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 186u, 0x08AC494Cu, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC494Cu) goto L_08AC494C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC494C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2408,8 +3498,21 @@ L_08AC494C: L_08AC4954: aot_gpr_31 = (0x08AC495Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 188u, 0x08AC495Cu, 0x08ADBDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 945u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 945u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 945u, 0x08ADBDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC495Cu) goto L_08AC495C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC495C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2477,8 +3580,21 @@ L_08AC49B8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC49D0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 198u, 0x08AC49D0u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC49D0u) goto L_08AC49D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC49D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2498,8 +3614,21 @@ L_08AC49E4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC49F0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 201u, 0x08AC49F0u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC49F0u) goto L_08AC49F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC49F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2514,8 +3643,21 @@ L_08AC49F8: L_08AC4A00: aot_gpr_31 = (0x08AC4A08u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 204u, 0x08AC4A08u, 0x089BAB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 573u, 0x089BAB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4A08u) goto L_08AC4A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4A08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -2589,8 +3731,21 @@ L_08AC4A70: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC4A7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 215u, 0x08AC4A7Cu, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4A7Cu) goto L_08AC4A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4A7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2650,8 +3805,21 @@ L_08AC4ACC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC4AE0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 224u, 0x08AC4AE0u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4AE0u) goto L_08AC4AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4AE0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2672,8 +3840,21 @@ L_08AC4AF4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC4B00u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 227u, 0x08AC4B00u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4B00u) goto L_08AC4B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4B00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2730,8 +3911,21 @@ L_08AC4B44: L_08AC4B50: aot_gpr_31 = (0x08AC4B58u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 236u, 0x08AC4B58u, 0x088690ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 260u, 0x088690ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4B58u) goto L_08AC4B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4B58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2752,8 +3946,21 @@ L_08AC4B6C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC4B78u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 239u, 0x08AC4B78u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4B78u) goto L_08AC4B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4B78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2813,12 +4020,38 @@ L_08AC4BC8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC4BDCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 248u, 0x08AC4BDCu, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4BDCu) goto L_08AC4BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4BDC: aot_gpr_31 = (0x08AC4BE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 249u, 0x08AC4BE4u, 0x088697ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 356u, 0x088697ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4BE4u) goto L_08AC4BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4BE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2839,8 +4072,21 @@ L_08AC4BF8: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC4C04u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 252u, 0x08AC4C04u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4C04u) goto L_08AC4C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4C04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2900,20 +4146,59 @@ L_08AC4C54: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC4C68u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 261u, 0x08AC4C68u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4C68u) goto L_08AC4C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4C68: aot_gpr_31 = (0x08AC4C70u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 262u, 0x08AC4C70u, 0x08ADD460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 347u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 347u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 347u, 0x08ADD460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4C70u) goto L_08AC4C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4C70: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08AC4C80u); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 263u, 0x08AC4C80u, 0x08AD3558u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 585u, 0x08AD3558u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4C80u) goto L_08AC4C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4C80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2934,8 +4219,21 @@ L_08AC4C94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC4CA0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 266u, 0x08AC4CA0u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4CA0u) goto L_08AC4CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4CA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2995,8 +4293,21 @@ L_08AC4CF0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AC4D04u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 275u, 0x08AC4D04u, 0x0893570Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 355u, 0x0893570Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4D04u) goto L_08AC4D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4D04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3008,8 +4319,21 @@ L_08AC4D0C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC4D18u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 277u, 0x08AC4D18u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4D18u) goto L_08AC4D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4D18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3074,8 +4398,21 @@ L_08AC4D74: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC4D80u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 287u, 0x08AC4D80u, 0x08AC36FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 867u, 0x08AC36FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4D80u) goto L_08AC4D80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4D80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3129,8 +4466,21 @@ L_08AC4DDC: L_08AC4DF0: aot_gpr_31 = (0x08AC4DF8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 294u, 0x08AC4DF8u, 0x08A8D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 300u, 0x08A8D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4DF8u) goto L_08AC4DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4DF8: aot_gpr_16 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08AC4E04u); @@ -3146,8 +4496,21 @@ L_08AC4E04: AOT_REGCACHE_SYNC_OUT(); return; L_08AC4E14: aot_gpr_31 = (0x08AC4E1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 297u, 0x08AC4E1Cu, 0x08AD35D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 594u, 0x08AD35D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4E1Cu) goto L_08AC4E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4E1C: aot_gpr_16 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08AC4E28u); @@ -3177,8 +4540,21 @@ L_08AC4E48: L_08AC4E50: aot_gpr_31 = (0x08AC4E58u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 302u, 0x08AC4E58u, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4E58u) goto L_08AC4E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4E58: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(8360))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7713))); @@ -3191,20 +4567,72 @@ L_08AC4E58: } L_08AC4E6C: aot_gpr_31 = (0x08AC4E74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 304u, 0x08AC4E74u, 0x08AF431Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 36u, 0x08AF431Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4E74u) goto L_08AC4E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4E74: aot_gpr_31 = (0x08AC4E7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 305u, 0x08AC4E7Cu, 0x08990B58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 154u, 0x08990B58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4E7Cu) goto L_08AC4E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4E7C: aot_gpr_31 = (0x08AC4E84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 306u, 0x08AC4E84u, 0x08990B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 156u, 0x08990B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4E84u) goto L_08AC4E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4E84: aot_gpr_31 = (0x08AC4E8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 307u, 0x08AC4E8Cu, 0x0898B490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 836u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 836u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 836u, 0x0898B490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4E8Cu) goto L_08AC4E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4E8C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4182))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3215,8 +4643,21 @@ L_08AC4E8C: } L_08AC4E98: aot_gpr_31 = (0x08AC4EA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 309u, 0x08AC4EA0u, 0x089419D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 229u, 0x089419D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4EA0u) goto L_08AC4EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4EA0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3229,8 +4670,21 @@ L_08AC4EAC: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08AC4EB8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 311u, 0x08AC4EB8u, 0x08ADD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 353u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 353u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 353u, 0x08ADD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4EB8u) goto L_08AC4EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4EB8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3241,8 +4695,21 @@ L_08AC4EB8: } L_08AC4EC4: aot_gpr_31 = (0x08AC4ECCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 313u, 0x08AC4ECCu, 0x08AFC6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 19u, 0x08AFC6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4ECCu) goto L_08AC4ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4ECC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3253,8 +4720,21 @@ L_08AC4ECC: } L_08AC4ED8: aot_gpr_31 = (0x08AC4EE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 315u, 0x08AC4EE0u, 0x088697ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 356u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 356u, 0x088697ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4EE0u) goto L_08AC4EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4EE0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3265,50 +4745,193 @@ L_08AC4EE0: } L_08AC4EEC: aot_gpr_31 = (0x08AC4EF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 317u, 0x08AC4EF4u, 0x0895D350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 163u, 0x0895D350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4EF4u) goto L_08AC4EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4EF4: aot_gpr_31 = (0x08AC4EFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 318u, 0x08AC4EFCu, 0x08AB0444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 51u, 0x08AB0444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4EFCu) goto L_08AC4EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4EFC: aot_gpr_31 = (0x08AC4F04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0126. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 319u, 0x08AC4F04u, 0x089FFDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0126_entry(rt, ctx, 707u, aot_mem); +#else + recomp_unit_0126_entry(rt, ctx, 707u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0126_entry, 126u, 707u, 0x089FFDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F04u) goto L_08AC4F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F04: aot_gpr_31 = (0x08AC4F0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 320u, 0x08AC4F0Cu, 0x089F112Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 211u, 0x089F112Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F0Cu) goto L_08AC4F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F0C: aot_gpr_31 = (0x08AC4F14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 321u, 0x08AC4F14u, 0x08A3552Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 319u, 0x08A3552Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F14u) goto L_08AC4F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F14: aot_gpr_31 = (0x08AC4F1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 322u, 0x08AC4F1Cu, 0x08B200E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 12u, 0x08B200E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F1Cu) goto L_08AC4F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F1C: aot_gpr_31 = (0x08AC4F24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 323u, 0x08AC4F24u, 0x089CF1D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 561u, 0x089CF1D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F24u) goto L_08AC4F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F24: aot_gpr_31 = (0x08AC4F2Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 324u, 0x08AC4F2Cu, 0x08827730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 508u, 0x08827730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F2Cu) goto L_08AC4F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F2C: aot_gpr_31 = (0x08AC4F34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0094. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 325u, 0x08AC4F34u, 0x0897FECCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0094_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0094_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0094_entry, 94u, 972u, 0x0897FECCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F34u) goto L_08AC4F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F34: aot_gpr_31 = (0x08AC4F3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 326u, 0x08AC4F3Cu, 0x08900F14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 215u, 0x08900F14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F3Cu) goto L_08AC4F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F3C: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x08AC4F48u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 327u, 0x08AC4F48u, 0x089D0224u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 27u, 0x089D0224u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F48u) goto L_08AC4F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F48: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3333,8 +4956,21 @@ L_08AC4F60: L_08AC4F70: aot_gpr_31 = (0x08AC4F78u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 331u, 0x08AC4F78u, 0x089C72B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 742u, 0x089C72B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F78u) goto L_08AC4F78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F78: aot_gpr_16 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08AC4F84u); @@ -3350,8 +4986,21 @@ L_08AC4F84: AOT_REGCACHE_SYNC_OUT(); return; L_08AC4F94: aot_gpr_31 = (0x08AC4F9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 334u, 0x08AC4F9Cu, 0x08A40B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 126u, 0x08A40B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4F9Cu) goto L_08AC4F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4F9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); if (aot_gpr_4 != 0u) { @@ -3376,24 +5025,89 @@ L_08AC4FB4: } L_08AC4FC0: aot_gpr_31 = (0x08AC4FC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 339u, 0x08AC4FC8u, 0x08AED518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 324u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 324u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 324u, 0x08AED518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4FC8u) goto L_08AC4FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4FC8: aot_gpr_31 = (0x08AC4FD0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 340u, 0x08AC4FD0u, 0x08970014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 2u, 0x08970014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4FD0u) goto L_08AC4FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4FD0: aot_gpr_31 = (0x08AC4FD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 341u, 0x08AC4FD8u, 0x0888CD6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 245u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 245u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 245u, 0x0888CD6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4FD8u) goto L_08AC4FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4FD8: aot_gpr_31 = (0x08AC4FE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0086. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 342u, 0x08AC4FE0u, 0x0895CDA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0086_entry(rt, ctx, 98u, aot_mem); +#else + recomp_unit_0086_entry(rt, ctx, 98u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0086_entry, 86u, 98u, 0x0895CDA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4FE0u) goto L_08AC4FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4FE0: aot_gpr_31 = (0x08AC4FE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 343u, 0x08AC4FE8u, 0x08A861FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 327u, 0x08A861FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC4FE8u) goto L_08AC4FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC4FE8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-19672))); @@ -3406,47 +5120,177 @@ L_08AC4FE8: } L_08AC4FFC: aot_gpr_31 = (0x08AC5004u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 345u, 0x08AC5004u, 0x089538D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 804u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 804u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 804u, 0x089538D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5004u) goto L_08AC5004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5004: aot_gpr_31 = (0x08AC500Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 346u, 0x08AC500Cu, 0x08898CA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 93u, 0x08898CA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC500Cu) goto L_08AC500C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC500C: aot_gpr_4 = (2280u << 16u); aot_gpr_31 = (0x08AC5018u); aot_gpr_4 = (aot_gpr_4 + static_cast(2352)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 347u, 0x08AC5018u, 0x08B20E40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 168u, 0x08B20E40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5018u) goto L_08AC5018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5018: aot_gpr_31 = (0x08AC5020u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 348u, 0x08AC5020u, 0x088F286Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 523u, 0x088F286Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5020u) goto L_08AC5020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5020: aot_gpr_31 = (0x08AC5028u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 349u, 0x08AC5028u, 0x0896CF34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 270u, 0x0896CF34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5028u) goto L_08AC5028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5028: aot_gpr_31 = (0x08AC5030u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 350u, 0x08AC5030u, 0x08A90850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 65u, 0x08A90850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5030u) goto L_08AC5030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5030: aot_gpr_31 = (0x08AC5038u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 351u, 0x08AC5038u, 0x088ABDC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 602u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 602u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 602u, 0x088ABDC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5038u) goto L_08AC5038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5038: aot_gpr_31 = (0x08AC5040u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 352u, 0x08AC5040u, 0x0893F9E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 818u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 818u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 818u, 0x0893F9E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5040u) goto L_08AC5040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5040: aot_gpr_31 = (0x08AC5048u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 353u, 0x08AC5048u, 0x088DE140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 340u, 0x088DE140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5048u) goto L_08AC5048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5048: aot_gpr_31 = (0x08AC5050u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 354u, 0x08AC5050u, 0x08AAE3CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 433u, 0x08AAE3CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5050u) goto L_08AC5050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5050: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4212))); @@ -3461,16 +5305,55 @@ L_08AC5064: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08AC5070u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0135. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 356u, 0x08AC5070u, 0x08A225A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0135_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0135_entry, 135u, 316u, 0x08A225A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5070u) goto L_08AC5070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5070: aot_gpr_31 = (0x08AC5078u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 357u, 0x08AC5078u, 0x0896740Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 537u, 0x0896740Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5078u) goto L_08AC5078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5078: aot_gpr_31 = (0x08AC5080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 358u, 0x08AC5080u, 0x0886AA64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 582u, 0x0886AA64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5080u) goto L_08AC5080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5080: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4211))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3481,42 +5364,159 @@ L_08AC5080: } L_08AC508C: aot_gpr_31 = (0x08AC5094u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 360u, 0x08AC5094u, 0x08981470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 325u, 0x08981470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5094u) goto L_08AC5094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5094: aot_gpr_31 = (0x08AC509Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 361u, 0x08AC509Cu, 0x08981124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 280u, 0x08981124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC509Cu) goto L_08AC509C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC509C: aot_gpr_31 = (0x08AC50A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 362u, 0x08AC50A4u, 0x08A97168u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 462u, 0x08A97168u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC50A4u) goto L_08AC50A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC50A4: aot_gpr_31 = (0x08AC50ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 363u, 0x08AC50ACu, 0x08A971F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 470u, 0x08A971F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC50ACu) goto L_08AC50AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC50AC: aot_gpr_4 = (2246u << 16u); aot_gpr_31 = (0x08AC50B8u); aot_gpr_4 = (aot_gpr_4 + static_cast(23472)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 364u, 0x08AC50B8u, 0x089F5314u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 198u, 0x089F5314u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC50B8u) goto L_08AC50B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC50B8: aot_gpr_31 = (0x08AC50C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 365u, 0x08AC50C0u, 0x08B411BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 298u, 0x08B411BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC50C0u) goto L_08AC50C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC50C0: aot_gpr_31 = (0x08AC50C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 366u, 0x08AC50C8u, 0x08B22F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 616u, 0x08B22F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC50C8u) goto L_08AC50C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC50C8: aot_gpr_31 = (0x08AC50D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 367u, 0x08AC50D0u, 0x08B412D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 321u, 0x08B412D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC50D0u) goto L_08AC50D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC50D0: aot_gpr_31 = (0x08AC50D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 368u, 0x08AC50D8u, 0x08B4142Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 338u, 0x08B4142Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC50D8u) goto L_08AC50D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC50D8: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -3530,8 +5530,8 @@ L_08AC50D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC50FC: @@ -3540,8 +5540,8 @@ L_08AC50FC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5124: @@ -3688,8 +5688,8 @@ L_08AC5214: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(14240))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC522C: @@ -4036,8 +6036,8 @@ L_08AC53F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5410: @@ -4061,8 +6061,8 @@ L_08AC5438: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(14272))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5450: @@ -4087,8 +6087,8 @@ L_08AC5464: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC547C: @@ -4096,20 +6096,20 @@ L_08AC547C: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5490: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5498: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC54A0: @@ -4210,8 +6210,21 @@ L_08AC556C: L_08AC5574: aot_gpr_31 = (0x08AC557Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 410u, 0x08AC557Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC557Cu) goto L_08AC557C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC557C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -4257,8 +6270,21 @@ L_08AC55D0: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AC55E4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 416u, 0x08AC55E4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC55E4u) goto L_08AC55E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC55E4: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[20]); @@ -4303,8 +6329,21 @@ L_08AC562C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AC5640u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 421u, 0x08AC5640u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5640u) goto L_08AC5640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5640: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); goto L_08AC5644; @@ -4369,8 +6408,21 @@ L_08AC56B8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AC56C8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 429u, 0x08AC56C8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC56C8u) goto L_08AC56C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC56C8: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[19]); @@ -4401,8 +6453,8 @@ L_08AC56F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5720: @@ -4504,8 +6556,21 @@ L_08AC57EC: L_08AC57F4: aot_gpr_31 = (0x08AC57FCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 443u, 0x08AC57FCu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC57FCu) goto L_08AC57FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC57FC: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -4551,8 +6616,21 @@ L_08AC5850: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AC5864u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 449u, 0x08AC5864u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5864u) goto L_08AC5864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5864: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[20]); @@ -4585,8 +6663,21 @@ L_08AC5880: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AC5898u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 453u, 0x08AC5898u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5898u) goto L_08AC5898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5898: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); goto L_08AC589C; @@ -4639,8 +6730,21 @@ L_08AC58E4: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AC58F8u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 460u, 0x08AC58F8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC58F8u) goto L_08AC58F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC58F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); @@ -4671,16 +6775,16 @@ L_08AC5920: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5950: ctx.gpr[2] = (2220u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(22864)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC595C: @@ -4692,8 +6796,8 @@ L_08AC596C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5978: @@ -4713,8 +6817,21 @@ L_08AC5994: goto L_08AC599C; L_08AC599C: aot_gpr_31 = (0x08AC59A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 469u, 0x08AC59A4u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC59A4u) goto L_08AC59A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC59A4: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -4738,8 +6855,8 @@ L_08AC59BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC59D4: @@ -4748,8 +6865,21 @@ L_08AC59D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AC59E8u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 473u, 0x08AC59E8u, 0x089806DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 120u, 0x089806DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC59E8u) goto L_08AC59E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC59E8: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-32744)); @@ -4789,16 +6919,29 @@ L_08AC5A30: aot_gpr_6 = (0u | 12u); aot_gpr_31 = (0x08AC5A6Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(21628)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 476u, 0x08AC5A6Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5A6Cu) goto L_08AC5A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5A6C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5A80: @@ -4863,8 +7006,8 @@ L_08AC5AD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5AE8: @@ -4962,8 +7105,21 @@ L_08AC5BD8: ctx.gpr[21] = (aot_gpr_6 - aot_gpr_5); aot_gpr_31 = (0x08AC5BE4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 495u, 0x08AC5BE4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5BE4u) goto L_08AC5BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5BE4: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[21]); @@ -4993,8 +7149,21 @@ L_08AC5C04: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08AC5C24u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(23168)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 498u, 0x08AC5C24u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5C24u) goto L_08AC5C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5C24: { const bool branch_taken = ctx.gpr[23] == 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5027,8 +7196,21 @@ L_08AC5C44: L_08AC5C48: aot_gpr_31 = (0x08AC5C50u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 504u, 0x08AC5C50u, 0x08980740u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 122u, 0x08980740u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5C50u) goto L_08AC5C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5C50: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5057,8 +7239,8 @@ L_08AC5C64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5C90: @@ -5086,8 +7268,8 @@ L_08AC5CB8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5CC8: @@ -5135,8 +7317,8 @@ L_08AC5D34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5D44: @@ -5173,8 +7355,21 @@ L_08AC5DA0: aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); aot_gpr_31 = (0x08AC5DB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 518u, 0x08AC5DB0u, 0x08A00640u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 82u, 0x08A00640u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5DB0u) goto L_08AC5DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5DB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -5203,8 +7398,8 @@ L_08AC5DDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC5DF8: @@ -5220,8 +7415,21 @@ L_08AC5DF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x08AC5E38u); aot_gpr_4 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 521u, 0x08AC5E38u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5E38u) goto L_08AC5E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5E38: aot_gpr_4 = (ctx.gpr[21] + ctx.gpr[21]); aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); @@ -5244,8 +7452,21 @@ L_08AC5E58: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC5E74u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 523u, 0x08AC5E74u, 0x08A00548u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 66u, 0x08A00548u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5E74u) goto L_08AC5E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5E74: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); @@ -5392,8 +7613,21 @@ L_08AC5F84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x08AC5F98u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 539u, 0x08AC5F98u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5F98u) goto L_08AC5F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5F98: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -5437,8 +7671,21 @@ L_08AC5FD0: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC5FE4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 545u, 0x08AC5FE4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC5FE4u) goto L_08AC5FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC5FE4: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[21]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -5501,8 +7748,8 @@ L_08AC6044: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC6068: @@ -5588,8 +7835,21 @@ L_08AC6134: aot_gpr_4 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AC6144u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 561u, 0x08AC6144u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6144u) goto L_08AC6144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6144: { const bool branch_taken = 0u == 0u; aot_gpr_6 = (ctx.gpr[2] + ctx.gpr[17]); @@ -5611,8 +7871,8 @@ L_08AC614C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC6170: @@ -5635,8 +7895,21 @@ L_08AC6194: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AC61A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 565u, 0x08AC61A4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC61A4u) goto L_08AC61A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC61A4: aot_gpr_31 = (0x08AC61ACu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-888)); @@ -5645,8 +7918,21 @@ L_08AC61A4: L_08AC61AC: aot_gpr_31 = (0x08AC61B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 567u, 0x08AC61B4u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC61B4u) goto L_08AC61B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC61B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(48))); { const bool branch_taken = aot_gpr_4 != aot_gpr_16; @@ -5675,8 +7961,8 @@ L_08AC61CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC61E0: @@ -5711,8 +7997,21 @@ L_08AC6218: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x08AC6224u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 576u, 0x08AC6224u, 0x089C6B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 601u, 0x089C6B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6224u) goto L_08AC6224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6224: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5722,8 +8021,8 @@ L_08AC6224: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC6238: @@ -5775,8 +8074,21 @@ L_08AC6280: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(40))); aot_gpr_31 = (0x08AC628Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 584u, 0x08AC628Cu, 0x089C68C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 544u, 0x089C68C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC628Cu) goto L_08AC628C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC628C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5786,8 +8098,8 @@ L_08AC628C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC62A0: @@ -5826,8 +8138,21 @@ L_08AC62C0: L_08AC6304: aot_gpr_31 = (0x08AC630Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(84))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 589u, 0x08AC630Cu, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC630Cu) goto L_08AC630C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC630C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(88))); aot_gpr_5 = (0u | 1u); @@ -5840,8 +8165,8 @@ L_08AC631C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC632C: @@ -5884,8 +8209,21 @@ L_08AC6358: AOT_REGCACHE_SYNC_OUT(); return; L_08AC63A8: aot_gpr_31 = (0x08AC63B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 595u, 0x08AC63B0u, 0x08B0C4CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 63u, 0x08B0C4CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC63B0u) goto L_08AC63B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC63B0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(16), static_cast(aot_gpr_4)); @@ -5907,8 +8245,21 @@ L_08AC63DC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AC63E8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 597u, 0x08AC63E8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC63E8u) goto L_08AC63E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC63E8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -5932,8 +8283,21 @@ L_08AC6404: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08AC6410u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 602u, 0x08AC6410u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6410u) goto L_08AC6410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6410: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(64))); @@ -5946,8 +8310,21 @@ L_08AC6410: ctx.gpr[8] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AC643Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 603u, 0x08AC643Cu, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC643Cu) goto L_08AC643C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC643C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -5959,8 +8336,8 @@ L_08AC643C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC6458: @@ -5969,8 +8346,8 @@ L_08AC6458: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC646C: @@ -5983,8 +8360,21 @@ L_08AC646C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(224), aot_run_words); } aot_gpr_31 = (0x08AC64ACu); ctx.gpr[20] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 606u, 0x08AC64ACu, 0x08980A34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 165u, 0x08980A34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC64ACu) goto L_08AC64AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC64AC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5998,14 +8388,40 @@ L_08AC64B4: aot_gpr_5 = (0u | 142u); aot_gpr_31 = (0x08AC64C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 608u, 0x08AC64C8u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC64C8u) goto L_08AC64C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC64C8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC64D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 609u, 0x08AC64D4u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC64D4u) goto L_08AC64D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC64D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6060,15 +8476,41 @@ L_08AC6528: aot_gpr_5 = (0u | 178u); aot_gpr_31 = (0x08AC653Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 616u, 0x08AC653Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC653Cu) goto L_08AC653C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC653C: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x08AC654Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 617u, 0x08AC654Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC654Cu) goto L_08AC654C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC654C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6092,8 +8534,21 @@ L_08AC6560: L_08AC6570: aot_gpr_31 = (0x08AC6578u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 621u, 0x08AC6578u, 0x08AF6838u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 481u, 0x08AF6838u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6578u) goto L_08AC6578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6578: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6113,14 +8568,40 @@ L_08AC658C: aot_gpr_5 = (0u | 143u); aot_gpr_31 = (0x08AC659Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 624u, 0x08AC659Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC659Cu) goto L_08AC659C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC659C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x08AC65A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 625u, 0x08AC65A8u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC65A8u) goto L_08AC65A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC65A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6161,14 +8642,40 @@ L_08AC65E8: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AC65F8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 631u, 0x08AC65F8u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC65F8u) goto L_08AC65F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC65F8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_gpr_31 = (0x08AC6604u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 632u, 0x08AC6604u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6604u) goto L_08AC6604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6604: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6192,8 +8699,21 @@ L_08AC6618: L_08AC6628: aot_gpr_31 = (0x08AC6630u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 636u, 0x08AC6630u, 0x08AF6B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 539u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 539u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 539u, 0x08AF6B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6630u) goto L_08AC6630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6630: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6212,8 +8732,21 @@ L_08AC6644: ctx.gpr[20] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC6654u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 639u, 0x08AC6654u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6654u) goto L_08AC6654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6654: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6225,8 +8758,21 @@ L_08AC665C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(188))); aot_gpr_31 = (0x08AC6668u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 641u, 0x08AC6668u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6668u) goto L_08AC6668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6668: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AC6674u); @@ -6258,8 +8804,21 @@ L_08AC669C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC66ACu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 645u, 0x08AC66ACu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC66ACu) goto L_08AC66AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC66AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); @@ -6287,8 +8846,21 @@ L_08AC66D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC66E0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 649u, 0x08AC66E0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC66E0u) goto L_08AC66E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC66E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); goto L_08AC66E4; @@ -6313,8 +8885,21 @@ L_08AC66FC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AC670Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 653u, 0x08AC670Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC670Cu) goto L_08AC670C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC670C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); @@ -6333,8 +8918,21 @@ L_08AC6734: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC6740u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 656u, 0x08AC6740u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6740u) goto L_08AC6740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6740: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6346,8 +8944,21 @@ L_08AC6748: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC6754u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 658u, 0x08AC6754u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6754u) goto L_08AC6754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6754: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AC6760u); @@ -6379,8 +8990,21 @@ L_08AC6788: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC6798u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 662u, 0x08AC6798u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6798u) goto L_08AC6798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6798: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -6408,8 +9032,21 @@ L_08AC67C0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC67CCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 666u, 0x08AC67CCu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC67CCu) goto L_08AC67CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC67CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); goto L_08AC67D0; @@ -6434,8 +9071,21 @@ L_08AC67E8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AC67F8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 670u, 0x08AC67F8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC67F8u) goto L_08AC67F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC67F8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -6463,14 +9113,40 @@ L_08AC6838: aot_gpr_5 = (0u | 143u); aot_gpr_31 = (0x08AC6848u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 674u, 0x08AC6848u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6848u) goto L_08AC6848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6848: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); aot_gpr_31 = (0x08AC6854u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 675u, 0x08AC6854u, 0x08984650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 113u, 0x08984650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6854u) goto L_08AC6854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6854: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -6523,14 +9199,40 @@ L_08AC689C: aot_gpr_5 = (0u | 142u); aot_gpr_31 = (0x08AC68ACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 684u, 0x08AC68ACu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC68ACu) goto L_08AC68AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC68AC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x08AC68B8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 685u, 0x08AC68B8u, 0x08984650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 113u, 0x08984650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC68B8u) goto L_08AC68B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC68B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6557,15 +9259,41 @@ L_08AC68D4: aot_gpr_5 = (0u | 144u); aot_gpr_31 = (0x08AC68E4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 689u, 0x08AC68E4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC68E4u) goto L_08AC68E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC68E4: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(204))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC68F4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 690u, 0x08AC68F4u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC68F4u) goto L_08AC68F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC68F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -6592,14 +9320,40 @@ L_08AC6914: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AC6924u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 694u, 0x08AC6924u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6924u) goto L_08AC6924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6924: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_31 = (0x08AC6930u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 695u, 0x08AC6930u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6930u) goto L_08AC6930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6930: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6630,8 +9384,21 @@ L_08AC694C: L_08AC695C: aot_gpr_31 = (0x08AC6964u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 700u, 0x08AC6964u, 0x08AF72ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 701u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 701u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 701u, 0x08AF72ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6964u) goto L_08AC6964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6964: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6650,8 +9417,21 @@ L_08AC6978: aot_gpr_5 = (ctx.gpr[28] + static_cast(-848)); aot_gpr_31 = (0x08AC6984u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 703u, 0x08AC6984u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6984u) goto L_08AC6984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6984: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6670,8 +9450,21 @@ L_08AC6990: L_08AC69A0: aot_gpr_31 = (0x08AC69A8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 706u, 0x08AC69A8u, 0x08AF7800u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 815u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 815u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 815u, 0x08AF7800u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC69A8u) goto L_08AC69A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC69A8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(92))); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6691,14 +9484,40 @@ L_08AC69BC: aot_gpr_5 = (0u | 145u); aot_gpr_31 = (0x08AC69CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 709u, 0x08AC69CCu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC69CCu) goto L_08AC69CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC69CC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC69D8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 710u, 0x08AC69D8u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC69D8u) goto L_08AC69D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC69D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6724,14 +9543,40 @@ L_08AC69F4: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AC6A04u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 714u, 0x08AC6A04u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6A04u) goto L_08AC6A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6A04: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_31 = (0x08AC6A10u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 715u, 0x08AC6A10u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6A10u) goto L_08AC6A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6A10: aot_gpr_31 = (0x08AC6A18u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6760,14 +9605,40 @@ L_08AC6A38: aot_gpr_5 = (0u | 146u); aot_gpr_31 = (0x08AC6A48u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 720u, 0x08AC6A48u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6A48u) goto L_08AC6A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6A48: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC6A54u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 721u, 0x08AC6A54u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6A54u) goto L_08AC6A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6A54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6792,8 +9663,21 @@ L_08AC6A70: aot_gpr_5 = (ctx.gpr[28] + static_cast(-840)); aot_gpr_31 = (0x08AC6A7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 725u, 0x08AC6A7Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6A7Cu) goto L_08AC6A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6A7C: aot_gpr_31 = (0x08AC6A84u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6804,8 +9688,21 @@ L_08AC6A84: aot_gpr_5 = (ctx.gpr[28] + static_cast(-836)); aot_gpr_31 = (0x08AC6A94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 727u, 0x08AC6A94u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6A94u) goto L_08AC6A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6A94: aot_gpr_31 = (0x08AC6A9Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6820,14 +9717,40 @@ L_08AC6AA4: aot_gpr_5 = (0u | 147u); aot_gpr_31 = (0x08AC6AB4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 730u, 0x08AC6AB4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6AB4u) goto L_08AC6AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6AB4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC6AC0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 731u, 0x08AC6AC0u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6AC0u) goto L_08AC6AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6AC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6853,14 +9776,40 @@ L_08AC6ADC: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AC6AECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 735u, 0x08AC6AECu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6AECu) goto L_08AC6AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6AEC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); aot_gpr_31 = (0x08AC6AF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 736u, 0x08AC6AF8u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6AF8u) goto L_08AC6AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6AF8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6958,8 +9907,21 @@ L_08AC6B94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC6BA0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 749u, 0x08AC6BA0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6BA0u) goto L_08AC6BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6BA0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(56))); goto L_08AC6BA4; @@ -7000,14 +9962,40 @@ L_08AC6BE0: aot_gpr_5 = (0u | 148u); aot_gpr_31 = (0x08AC6BF0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 756u, 0x08AC6BF0u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6BF0u) goto L_08AC6BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6BF0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC6BFCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 757u, 0x08AC6BFCu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6BFCu) goto L_08AC6BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6BFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7032,8 +10020,21 @@ L_08AC6C18: aot_gpr_5 = (ctx.gpr[28] + static_cast(-832)); aot_gpr_31 = (0x08AC6C24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 761u, 0x08AC6C24u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6C24u) goto L_08AC6C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6C24: aot_gpr_31 = (0x08AC6C2Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7044,8 +10045,21 @@ L_08AC6C2C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-828)); aot_gpr_31 = (0x08AC6C3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 763u, 0x08AC6C3Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6C3Cu) goto L_08AC6C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6C3C: aot_gpr_31 = (0x08AC6C44u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7056,8 +10070,21 @@ L_08AC6C44: aot_gpr_5 = (ctx.gpr[28] + static_cast(-824)); aot_gpr_31 = (0x08AC6C54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 765u, 0x08AC6C54u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6C54u) goto L_08AC6C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6C54: aot_gpr_31 = (0x08AC6C5Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7068,8 +10095,21 @@ L_08AC6C5C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-820)); aot_gpr_31 = (0x08AC6C6Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 767u, 0x08AC6C6Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6C6Cu) goto L_08AC6C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6C6C: aot_gpr_31 = (0x08AC6C74u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7099,14 +10139,40 @@ L_08AC6CAC: aot_gpr_5 = (0u | 149u); aot_gpr_31 = (0x08AC6CBCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 771u, 0x08AC6CBCu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6CBCu) goto L_08AC6CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6CBC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC6CC8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 772u, 0x08AC6CC8u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6CC8u) goto L_08AC6CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6CC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7131,8 +10197,21 @@ L_08AC6CE4: aot_gpr_5 = (ctx.gpr[28] + static_cast(-832)); aot_gpr_31 = (0x08AC6CF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 776u, 0x08AC6CF0u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6CF0u) goto L_08AC6CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6CF0: aot_gpr_31 = (0x08AC6CF8u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7143,8 +10222,21 @@ L_08AC6CF8: aot_gpr_5 = (ctx.gpr[28] + static_cast(-828)); aot_gpr_31 = (0x08AC6D08u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 778u, 0x08AC6D08u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6D08u) goto L_08AC6D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6D08: aot_gpr_31 = (0x08AC6D10u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7155,8 +10247,21 @@ L_08AC6D10: aot_gpr_5 = (ctx.gpr[28] + static_cast(-824)); aot_gpr_31 = (0x08AC6D20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 780u, 0x08AC6D20u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6D20u) goto L_08AC6D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6D20: aot_gpr_31 = (0x08AC6D28u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7167,8 +10272,21 @@ L_08AC6D28: aot_gpr_5 = (ctx.gpr[28] + static_cast(-820)); aot_gpr_31 = (0x08AC6D38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 782u, 0x08AC6D38u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6D38u) goto L_08AC6D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6D38: aot_gpr_31 = (0x08AC6D40u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7198,14 +10316,40 @@ L_08AC6D78: aot_gpr_5 = (0u | 150u); aot_gpr_31 = (0x08AC6D88u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 786u, 0x08AC6D88u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6D88u) goto L_08AC6D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6D88: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC6D94u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 787u, 0x08AC6D94u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6D94u) goto L_08AC6D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6D94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7233,8 +10377,21 @@ L_08AC6DB0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC6DC8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 791u, 0x08AC6DC8u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6DC8u) goto L_08AC6DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6DC8: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[17] = (ctx.gpr[28] + static_cast(-812)); @@ -7247,8 +10404,21 @@ L_08AC6DD0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC6DDCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 793u, 0x08AC6DDCu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6DDCu) goto L_08AC6DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6DDC: aot_gpr_31 = (0x08AC6DE4u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7267,8 +10437,21 @@ L_08AC6DF4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC6E00u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 797u, 0x08AC6E00u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6E00u) goto L_08AC6E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6E00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7280,8 +10463,21 @@ L_08AC6E08: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC6E14u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 799u, 0x08AC6E14u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6E14u) goto L_08AC6E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6E14: aot_gpr_31 = (0x08AC6E1Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7305,14 +10501,40 @@ L_08AC6E34: aot_gpr_5 = (0u | 151u); aot_gpr_31 = (0x08AC6E44u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 804u, 0x08AC6E44u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6E44u) goto L_08AC6E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6E44: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC6E50u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 805u, 0x08AC6E50u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6E50u) goto L_08AC6E50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6E50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7339,14 +10561,40 @@ L_08AC6E6C: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AC6E80u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 809u, 0x08AC6E80u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6E80u) goto L_08AC6E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6E80: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(156))); aot_gpr_31 = (0x08AC6E8Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 810u, 0x08AC6E8Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6E8Cu) goto L_08AC6E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6E8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(156))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7372,14 +10620,40 @@ L_08AC6EA8: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AC6EB8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 814u, 0x08AC6EB8u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6EB8u) goto L_08AC6EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6EB8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); aot_gpr_31 = (0x08AC6EC4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 815u, 0x08AC6EC4u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6EC4u) goto L_08AC6EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6EC4: aot_gpr_31 = (0x08AC6ECCu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -7407,14 +10681,40 @@ L_08AC6EE4: aot_gpr_5 = (0u | 152u); aot_gpr_31 = (0x08AC6EF4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 820u, 0x08AC6EF4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6EF4u) goto L_08AC6EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6EF4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AC6F00u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 821u, 0x08AC6F00u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6F00u) goto L_08AC6F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6F00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7439,8 +10739,21 @@ L_08AC6F1C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-808)); aot_gpr_31 = (0x08AC6F28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 825u, 0x08AC6F28u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6F28u) goto L_08AC6F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6F28: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7460,8 +10773,21 @@ L_08AC6F40: aot_gpr_5 = (ctx.gpr[28] + static_cast(-796)); aot_gpr_31 = (0x08AC6F4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 829u, 0x08AC6F4Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6F4Cu) goto L_08AC6F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6F4C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7499,8 +10825,8 @@ L_08AC6F68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC6FA0: @@ -7514,8 +10840,21 @@ L_08AC6FA0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08AC6FC8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 835u, 0x08AC6FC8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC6FC8u) goto L_08AC6FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC6FC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AC6FD4u); @@ -7651,8 +10990,8 @@ L_08AC70D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC70EC: @@ -7666,8 +11005,21 @@ L_08AC70EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AC7114u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 851u, 0x08AC7114u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7114u) goto L_08AC7114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7114: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AC7120u); @@ -7809,8 +11161,8 @@ L_08AC7220: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7238: @@ -7824,8 +11176,21 @@ L_08AC7238: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AC7260u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 868u, 0x08AC7260u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7260u) goto L_08AC7260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7260: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AC726Cu); @@ -7937,8 +11302,8 @@ L_08AC730C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7324: @@ -7952,8 +11317,21 @@ L_08AC7324: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AC734Cu); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 882u, 0x08AC734Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC734Cu) goto L_08AC734C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC734C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AC7358u); @@ -8064,8 +11442,8 @@ L_08AC73F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC740C: @@ -8088,8 +11466,8 @@ L_08AC7424: } L_08AC742C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7434: @@ -8145,8 +11523,8 @@ L_08AC7434: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC745C: @@ -8174,8 +11552,8 @@ L_08AC745C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7474: @@ -8203,8 +11581,8 @@ L_08AC7474: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC748C: @@ -8225,8 +11603,8 @@ L_08AC748C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC74A8: @@ -8251,8 +11629,8 @@ L_08AC74C0: } L_08AC74C8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC74D0: @@ -8276,8 +11654,8 @@ L_08AC74E4: } L_08AC74EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC74F4: @@ -8291,8 +11669,8 @@ L_08AC74F4: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7518: @@ -8306,8 +11684,8 @@ L_08AC7518: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC753C: @@ -8322,8 +11700,8 @@ L_08AC753C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7564: @@ -8339,15 +11717,15 @@ L_08AC7564: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<64u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7590: aot_fpr_0 = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC759C: @@ -8355,8 +11733,8 @@ L_08AC759C: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC75B0: @@ -8375,8 +11753,8 @@ L_08AC75B0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC75C0: @@ -8394,8 +11772,8 @@ L_08AC75C0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC75DC: @@ -8413,8 +11791,8 @@ L_08AC75DC: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC75F8: @@ -8431,8 +11809,8 @@ L_08AC75F8: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_0 = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7610: @@ -8451,8 +11829,8 @@ L_08AC7610: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7620: @@ -8474,28 +11852,28 @@ L_08AC7620: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC763C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7644: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC764C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7654: @@ -8509,15 +11887,15 @@ L_08AC7654: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(52), std::bit_cast(aot_fpr_13)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(56), std::bit_cast(aot_fpr_14)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7670: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7678: @@ -8541,8 +11919,21 @@ L_08AC7678: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08AC769Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 926u, 0x08AC769Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC769Cu) goto L_08AC769C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC769C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8552,15 +11943,28 @@ L_08AC769C: } aot_gpr_31 = (0x08AC76B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 927u, 0x08AC76B0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC76B0u) goto L_08AC76B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC76B0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC76C0: @@ -8571,22 +11975,22 @@ L_08AC76C0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC76DC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC76E4: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC76EC: @@ -8594,8 +11998,8 @@ L_08AC76EC: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC76FC: @@ -8603,30 +12007,30 @@ L_08AC76FC: ctx.gpr[2] = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC770C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7714: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC771C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7728: @@ -8635,8 +12039,8 @@ L_08AC7728: ctx.gpr[2] = (aot_gpr_4 ^ 4u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC773C: @@ -8645,8 +12049,8 @@ L_08AC773C: ctx.gpr[2] = (aot_gpr_4 ^ 6u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7750: @@ -8655,8 +12059,8 @@ L_08AC7750: ctx.gpr[2] = (aot_gpr_4 ^ 14u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7764: @@ -8664,8 +12068,8 @@ L_08AC7764: ctx.gpr[2] = (aot_gpr_4 & 14u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7774: @@ -8677,8 +12081,8 @@ L_08AC7774: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(72), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7794: @@ -8686,36 +12090,36 @@ L_08AC7794: ctx.gpr[2] = (aot_gpr_4 & 496u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] >> 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC77A4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC77AC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(28)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC77B4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC77BC: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC77C4: @@ -8730,8 +12134,8 @@ L_08AC77C4: aot_gpr_4 = (aot_gpr_5 - aot_gpr_4); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC77F0: @@ -8740,14 +12144,27 @@ L_08AC77F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AC7804u); aot_fpr_13 = aot_fpr_13 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 948u, 0x08AC7804u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7804u) goto L_08AC7804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7804: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7810: @@ -8761,8 +12178,8 @@ L_08AC7820: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7830: @@ -8805,8 +12222,8 @@ L_08AC7868: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC78A8: @@ -8850,8 +12267,8 @@ L_08AC78A8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC78EC: @@ -8895,85 +12312,85 @@ L_08AC78EC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7930: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7938: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(264))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7940: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7948: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(84))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7950: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(148), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7958: jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(149)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7960: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(149), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7968: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(151), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7970: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(900))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7978: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7980: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(680), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7988: @@ -8981,8 +12398,8 @@ L_08AC7988: aot_gpr_4 = (aot_gpr_5 << 6u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7998: @@ -8990,15 +12407,15 @@ L_08AC7998: ctx.gpr[2] = (aot_gpr_4 & 4u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC79A8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC79B0: @@ -9009,22 +12426,22 @@ L_08AC79B0: ctx.gpr[2] = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(1396)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC79CC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2076))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC79D4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(2228)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC79DC: @@ -9051,22 +12468,22 @@ L_08AC79F8: L_08AC79FC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7A04: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2244))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7A0C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1360))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7A14: @@ -9079,8 +12496,8 @@ L_08AC7A14: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(460), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7A38: @@ -9088,22 +12505,22 @@ L_08AC7A38: ctx.gpr[2] = (aot_gpr_4 & 256u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7A48: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2196))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7A50: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2196), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7A58: @@ -9200,8 +12617,21 @@ L_08AC7AEC: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC7AFCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0177. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 994u, 0x08AC7AFCu, 0x08AC805Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0177_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0177_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0177_entry, 177u, 8u, 0x08AC805Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7AFCu) goto L_08AC7AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7AFC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9226,8 +12656,21 @@ L_08AC7B0C: L_08AC7B14: aot_gpr_31 = (0x08AC7B1Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 998u, 0x08AC7B1Cu, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7B1Cu) goto L_08AC7B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7B1C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC7B28u); @@ -9284,8 +12727,21 @@ L_08AC7B74: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC7B84u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1007u, 0x08AC7B84u, 0x08A08808u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 52u, 0x08A08808u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7B84u) goto L_08AC7B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7B84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9305,8 +12761,8 @@ L_08AC7B8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7BAC: @@ -9377,8 +12833,21 @@ L_08AC7C08: L_08AC7C10: aot_gpr_31 = (0x08AC7C18u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1017u, 0x08AC7C18u, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7C18u) goto L_08AC7C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7C18: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -9397,8 +12866,21 @@ L_08AC7C18: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AC7C30u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1018u, 0x08AC7C30u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7C30u) goto L_08AC7C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7C30: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(672), std::bit_cast(ctx.fpr[20])); goto L_08AC7C34; @@ -9413,22 +12895,22 @@ L_08AC7C34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7C50: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7C58: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1156))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7C60: @@ -9437,8 +12919,21 @@ L_08AC7C60: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08AC7C78u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1023u, 0x08AC7C78u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7C78u) goto L_08AC7C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7C78: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[17] = (0u | 55u); @@ -9483,14 +12978,40 @@ L_08AC7CB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC7CC8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1029u, 0x08AC7CC8u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7CC8u) goto L_08AC7CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7CC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC7CD4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1030u, 0x08AC7CD4u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7CD4u) goto L_08AC7CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7CD4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[17]; @@ -9531,8 +13052,21 @@ L_08AC7D14: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08AC7D28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1035u, 0x08AC7D28u, 0x088E3DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 563u, 0x088E3DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7D28u) goto L_08AC7D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7D28: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1152))); @@ -9558,8 +13092,21 @@ L_08AC7D44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC7D54u); aot_gpr_5 = (0u | 38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1039u, 0x08AC7D54u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7D54u) goto L_08AC7D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7D54: aot_gpr_31 = (0x08AC7D5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -9589,8 +13136,21 @@ L_08AC7D7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC7D8Cu); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1043u, 0x08AC7D8Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7D8Cu) goto L_08AC7D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7D8C: aot_gpr_31 = (0x08AC7D94u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -9625,8 +13185,21 @@ L_08AC7DB8: L_08AC7DC0: aot_gpr_31 = (0x08AC7DC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1049u, 0x08AC7DC8u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7DC8u) goto L_08AC7DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7DC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC7DD4u); @@ -9654,8 +13227,8 @@ L_08AC7DE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7DFC: @@ -9759,8 +13332,8 @@ L_08AC7E74: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_6); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(14336))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7E8C: @@ -9768,8 +13341,8 @@ L_08AC7E8C: goto L_08AC7E90; L_08AC7E90: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7E98: @@ -9812,8 +13385,8 @@ L_08AC7EC4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(14400))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7EDC: @@ -9828,8 +13401,8 @@ L_08AC7EE4: goto L_08AC7EE8; L_08AC7EE8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7EF0: @@ -9885,8 +13458,8 @@ L_08AC7F24: goto L_08AC7F28; L_08AC7F28: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7F30: @@ -9920,8 +13493,8 @@ L_08AC7F58: goto L_08AC7F5C; L_08AC7F5C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC7F64: @@ -10010,8 +13583,21 @@ L_08AC7FE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC7FF0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0176->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0176_entry, 1100u, 0x08AC7FF0u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC7FF0u) goto L_08AC7FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC7FF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2196))); goto L_08AC7FF4; diff --git a/profiles/vcs/generated/generated_unit_0177.cpp b/profiles/vcs/generated/generated_unit_0177.cpp index 894bdd7..5d1dd03 100644 --- a/profiles/vcs/generated/generated_unit_0177.cpp +++ b/profiles/vcs/generated/generated_unit_0177.cpp @@ -1470,6 +1470,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AC8000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1497,8 +1521,21 @@ L_08AC8010: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC8020u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 3u, 0x08AC8020u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8020u) goto L_08AC8020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8020: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1522,15 +1559,15 @@ L_08AC8044: aot_gpr_31 = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(4))); jump_target = aot_gpr_31; ctx.gpr[29] = (ctx.gpr[29] + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC8054: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2192))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC805C: @@ -1582,106 +1619,106 @@ L_08AC80A0: goto L_08AC80A4; L_08AC80A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80AC: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2060))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80B4: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2236))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80BC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2240))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80C4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2240), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80CC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2120))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80D4: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2256))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80DC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2260), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80E4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2264), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80EC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(2274))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80F4: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(2274), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC80FC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(2276))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC8104: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC810C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC8114: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC811C: @@ -1703,8 +1740,21 @@ L_08AC811C: L_08AC816C: aot_gpr_31 = (0x08AC8174u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 31u, 0x08AC8174u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8174u) goto L_08AC8174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8174: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1724,8 +1774,21 @@ L_08AC817C: L_08AC818C: aot_gpr_31 = (0x08AC8194u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 34u, 0x08AC8194u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8194u) goto L_08AC8194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8194: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(464))); aot_gpr_5 = (0u + static_cast(-9)); @@ -1735,8 +1798,21 @@ L_08AC8194: L_08AC81A4: aot_gpr_31 = (0x08AC81ACu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 36u, 0x08AC81ACu, 0x088829F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 466u, 0x088829F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC81ACu) goto L_08AC81AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC81AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2196))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1765,8 +1841,21 @@ L_08AC81C8: L_08AC81D4: aot_gpr_31 = (0x08AC81DCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 40u, 0x08AC81DCu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC81DCu) goto L_08AC81DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC81DC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1804,8 +1893,21 @@ L_08AC8204: L_08AC8214: aot_gpr_31 = (0x08AC821Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 45u, 0x08AC821Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC821Cu) goto L_08AC821C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC821C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1840,8 +1942,21 @@ L_08AC8240: aot_gpr_4 = (ctx.gpr[29] + static_cast(64)); aot_gpr_31 = (0x08AC8250u); aot_gpr_5 = (aot_gpr_5 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 50u, 0x08AC8250u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8250u) goto L_08AC8250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8250: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1852,8 +1967,21 @@ L_08AC8250: L_08AC8258: aot_gpr_31 = (0x08AC8260u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 52u, 0x08AC8260u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8260u) goto L_08AC8260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8260: aot_gpr_4 = (0u | 17u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -1865,8 +1993,21 @@ L_08AC8260: L_08AC826C: aot_gpr_31 = (0x08AC8274u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 54u, 0x08AC8274u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8274u) goto L_08AC8274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8274: aot_gpr_4 = (0u | 18u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1878,14 +2019,40 @@ L_08AC8274: L_08AC8280: aot_gpr_31 = (0x08AC8288u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 56u, 0x08AC8288u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8288u) goto L_08AC8288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8288: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8294u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 57u, 0x08AC8294u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8294u) goto L_08AC8294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8294: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1902,8 +2069,21 @@ L_08AC82A4: aot_gpr_4 = (ctx.gpr[29] + static_cast(64)); aot_gpr_31 = (0x08AC82B0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 60u, 0x08AC82B0u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC82B0u) goto L_08AC82B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC82B0: aot_gpr_31 = (0x08AC82B8u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1922,8 +2102,21 @@ L_08AC82C0: L_08AC82C8: aot_gpr_31 = (0x08AC82D0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 64u, 0x08AC82D0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC82D0u) goto L_08AC82D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC82D0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1983,8 +2176,21 @@ L_08AC8328: aot_gpr_4 = (ctx.gpr[29] + static_cast(48)); aot_gpr_31 = (0x08AC8334u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 75u, 0x08AC8334u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8334u) goto L_08AC8334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8334: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2005,22 +2211,61 @@ L_08AC834C: aot_gpr_4 = (ctx.gpr[29] + static_cast(48)); aot_gpr_31 = (0x08AC8358u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 79u, 0x08AC8358u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8358u) goto L_08AC8358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8358: aot_gpr_16 = (ctx.gpr[29] + static_cast(80)); aot_gpr_5 = (ctx.gpr[29] + static_cast(48)); ctx.gpr[6] = (ctx.gpr[29] + static_cast(64)); aot_gpr_31 = (0x08AC836Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 80u, 0x08AC836Cu, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC836Cu) goto L_08AC836C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC836C: aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08AC8378u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 81u, 0x08AC8378u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8378u) goto L_08AC8378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8378: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2055,27 +2300,79 @@ L_08AC83A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC83B0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 87u, 0x08AC83B0u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC83B0u) goto L_08AC83B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC83B0: ctx.gpr[18] = (ctx.gpr[29] + static_cast(96)); ctx.gpr[6] = (ctx.gpr[29] + static_cast(64)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC83C4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 88u, 0x08AC83C4u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC83C4u) goto L_08AC83C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC83C4: aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08AC83D0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 89u, 0x08AC83D0u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC83D0u) goto L_08AC83D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC83D0: aot_gpr_31 = (0x08AC83D8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 90u, 0x08AC83D8u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC83D8u) goto L_08AC83D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC83D8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_4 + static_cast(-1)); @@ -2093,15 +2390,28 @@ L_08AC83EC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(14608))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AC8404: aot_gpr_31 = (0x08AC840Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 93u, 0x08AC840Cu, 0x08AC79CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 971u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 971u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 971u, 0x08AC79CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC840Cu) goto L_08AC840C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC840C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2126,14 +2436,40 @@ L_08AC841C: L_08AC842C: aot_gpr_31 = (0x08AC8434u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 97u, 0x08AC8434u, 0x08AC79CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 971u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 971u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 971u, 0x08AC79CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8434u) goto L_08AC8434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8434: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8440u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 98u, 0x08AC8440u, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8440u) goto L_08AC8440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8440: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2145,13 +2481,39 @@ L_08AC8448: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8454u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 100u, 0x08AC8454u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8454u) goto L_08AC8454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8454: aot_gpr_31 = (0x08AC845Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 101u, 0x08AC845Cu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC845Cu) goto L_08AC845C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC845C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2162,8 +2524,21 @@ L_08AC845C: L_08AC8464: aot_gpr_31 = (0x08AC846Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 103u, 0x08AC846Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC846Cu) goto L_08AC846C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC846C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2175,13 +2550,39 @@ L_08AC8474: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8480u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 105u, 0x08AC8480u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8480u) goto L_08AC8480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8480: aot_gpr_31 = (0x08AC8488u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 106u, 0x08AC8488u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8488u) goto L_08AC8488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8488: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2191,8 +2592,21 @@ L_08AC8488: } L_08AC8490: aot_gpr_31 = (0x08AC8498u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 108u, 0x08AC8498u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8498u) goto L_08AC8498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8498: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1752))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -2218,8 +2632,21 @@ L_08AC84CC: aot_gpr_4 = (ctx.gpr[29] + static_cast(128)); aot_gpr_31 = (0x08AC84D8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 111u, 0x08AC84D8u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC84D8u) goto L_08AC84D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC84D8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -2234,8 +2661,21 @@ L_08AC84D8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08AC850Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 112u, 0x08AC850Cu, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC850Cu) goto L_08AC850C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC850C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(176)))))); ctx.gpr[18] = (0u | 0u); @@ -2252,8 +2692,21 @@ L_08AC8520: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(144))); aot_gpr_31 = (0x08AC8534u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 114u, 0x08AC8534u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8534u) goto L_08AC8534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8534: aot_gpr_4 = (0u | 36u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -2281,13 +2734,39 @@ L_08AC8550: L_08AC8558: aot_gpr_31 = (0x08AC8560u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 118u, 0x08AC8560u, 0x08AC7930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 956u, 0x08AC7930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8560u) goto L_08AC8560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8560: aot_gpr_31 = (0x08AC8568u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 119u, 0x08AC8568u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8568u) goto L_08AC8568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8568: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -2303,8 +2782,21 @@ L_08AC8568: L_08AC8584: aot_gpr_31 = (0x08AC858Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 121u, 0x08AC858Cu, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC858Cu) goto L_08AC858C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC858C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2337,19 +2829,58 @@ L_08AC85B8: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AC85C8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 126u, 0x08AC85C8u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC85C8u) goto L_08AC85C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC85C8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AC85D4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 127u, 0x08AC85D4u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC85D4u) goto L_08AC85D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC85D4: aot_gpr_31 = (0x08AC85DCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 128u, 0x08AC85DCu, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC85DCu) goto L_08AC85DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC85DC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2361,8 +2892,21 @@ L_08AC85DC: L_08AC85EC: aot_gpr_31 = (0x08AC85F4u); aot_gpr_4 = (ctx.gpr[29] + static_cast(192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 130u, 0x08AC85F4u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC85F4u) goto L_08AC85F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC85F4: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_16 = (ctx.gpr[19] | 0u); @@ -2391,8 +2935,21 @@ L_08AC8620: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08AC8630u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 134u, 0x08AC8630u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8630u) goto L_08AC8630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8630: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2403,13 +2960,39 @@ L_08AC8630: L_08AC8638: aot_gpr_31 = (0x08AC8640u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 136u, 0x08AC8640u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8640u) goto L_08AC8640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8640: aot_gpr_31 = (0x08AC8648u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 137u, 0x08AC8648u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8648u) goto L_08AC8648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8648: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2419,8 +3002,21 @@ L_08AC8648: } L_08AC8650: aot_gpr_31 = (0x08AC8658u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 139u, 0x08AC8658u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8658u) goto L_08AC8658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8658: aot_gpr_4 = (aot_gpr_2 + static_cast(5000)); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1752), aot_gpr_4); @@ -2437,8 +3033,21 @@ L_08AC8668: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8678u); ctx.gpr[6] = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 142u, 0x08AC8678u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8678u) goto L_08AC8678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8678: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2453,8 +3062,21 @@ L_08AC8680: L_08AC8688: aot_gpr_31 = (0x08AC8690u); aot_gpr_16 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 145u, 0x08AC8690u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8690u) goto L_08AC8690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8690: aot_gpr_4 = (aot_gpr_16 < aot_gpr_2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2467,8 +3089,21 @@ L_08AC869C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC86A8u); aot_gpr_5 = (0u | 136u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 147u, 0x08AC86A8u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC86A8u) goto L_08AC86A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC86A8: ctx.gpr[8] = (16512u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(80))); @@ -2477,12 +3112,38 @@ L_08AC86A8: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08AC86C4u); ctx.gpr[7] = (0u | 15u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 148u, 0x08AC86C4u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC86C4u) goto L_08AC86C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC86C4: aot_gpr_31 = (0x08AC86CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 149u, 0x08AC86CCu, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC86CCu) goto L_08AC86CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC86CC: aot_gpr_5 = (aot_gpr_2 + static_cast(2000)); aot_gpr_31 = (0x08AC86D8u); @@ -2498,8 +3159,21 @@ L_08AC86D8: L_08AC86E0: aot_gpr_31 = (0x08AC86E8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 152u, 0x08AC86E8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC86E8u) goto L_08AC86E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC86E8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2511,8 +3185,21 @@ L_08AC86F0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC86FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 154u, 0x08AC86FCu, 0x08AC7A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 982u, 0x08AC7A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC86FCu) goto L_08AC86FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC86FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2524,8 +3211,21 @@ L_08AC8704: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8710u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 156u, 0x08AC8710u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8710u) goto L_08AC8710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8710: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2551,8 +3251,21 @@ L_08AC8730: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC873Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 160u, 0x08AC873Cu, 0x08AC7A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 982u, 0x08AC7A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC873Cu) goto L_08AC873C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC873C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2563,8 +3276,21 @@ L_08AC873C: L_08AC8744: aot_gpr_31 = (0x08AC874Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 162u, 0x08AC874Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC874Cu) goto L_08AC874C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC874C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2583,8 +3309,21 @@ L_08AC8758: } L_08AC8764: aot_gpr_31 = (0x08AC876Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 165u, 0x08AC876Cu, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC876Cu) goto L_08AC876C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC876C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1756))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -2596,15 +3335,41 @@ L_08AC876C: } L_08AC877C: aot_gpr_31 = (0x08AC8784u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 167u, 0x08AC8784u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8784u) goto L_08AC8784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8784: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC8794u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 168u, 0x08AC8794u, 0x08A03194u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 802u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 802u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 802u, 0x08A03194u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8794u) goto L_08AC8794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8794: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1756), 0u); @@ -2617,8 +3382,21 @@ L_08AC879C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC87A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 170u, 0x08AC87A8u, 0x08AC7A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 982u, 0x08AC7A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC87A8u) goto L_08AC87A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC87A8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC87B4u); @@ -2647,21 +3425,60 @@ L_08AC87CC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC87D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 175u, 0x08AC87D8u, 0x08AC7A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 982u, 0x08AC7A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC87D8u) goto L_08AC87D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC87D8: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC87E4u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 176u, 0x08AC87E4u, 0x08AC7830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 951u, 0x08AC7830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC87E4u) goto L_08AC87E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC87E4: aot_gpr_5 = (aot_gpr_2 << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08AC87F4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 177u, 0x08AC87F4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC87F4u) goto L_08AC87F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC87F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2676,8 +3493,21 @@ L_08AC87FC: L_08AC8804: aot_gpr_31 = (0x08AC880Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 180u, 0x08AC880Cu, 0x08AC7A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 978u, 0x08AC7A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC880Cu) goto L_08AC880C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC880C: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -2708,27 +3538,79 @@ L_08AC8838: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8844u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 185u, 0x08AC8844u, 0x08AC7A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 982u, 0x08AC7A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8844u) goto L_08AC8844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8844: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AC8850u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 186u, 0x08AC8850u, 0x08AC7830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 951u, 0x08AC7830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8850u) goto L_08AC8850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8850: aot_gpr_5 = (aot_gpr_2 << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08AC8860u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 187u, 0x08AC8860u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8860u) goto L_08AC8860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8860: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC886Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 188u, 0x08AC886Cu, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC886Cu) goto L_08AC886C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC886C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2739,8 +3621,21 @@ L_08AC886C: L_08AC8874: aot_gpr_31 = (0x08AC887Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 190u, 0x08AC887Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC887Cu) goto L_08AC887C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC887C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2763,16 +3658,42 @@ L_08AC8888: } L_08AC88A8: aot_gpr_31 = (0x08AC88B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 193u, 0x08AC88B0u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC88B0u) goto L_08AC88B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC88B0: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC88C4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 194u, 0x08AC88C4u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC88C4u) goto L_08AC88C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC88C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2783,12 +3704,38 @@ L_08AC88C4: L_08AC88CC: aot_gpr_31 = (0x08AC88D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 196u, 0x08AC88D4u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC88D4u) goto L_08AC88D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC88D4: aot_gpr_31 = (0x08AC88DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 197u, 0x08AC88DCu, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC88DCu) goto L_08AC88DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC88DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_31 = (0x08AC88E8u); @@ -2798,8 +3745,21 @@ L_08AC88E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC88F4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 199u, 0x08AC88F4u, 0x08A03C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 991u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 991u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 991u, 0x08A03C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC88F4u) goto L_08AC88F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC88F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2831,8 +3791,21 @@ L_08AC8914: L_08AC891C: aot_gpr_31 = (0x08AC8924u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 204u, 0x08AC8924u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8924u) goto L_08AC8924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8924: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2843,8 +3816,21 @@ L_08AC8924: L_08AC892C: aot_gpr_31 = (0x08AC8934u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 206u, 0x08AC8934u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8934u) goto L_08AC8934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8934: aot_gpr_31 = (0x08AC893Cu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2866,8 +3852,21 @@ L_08AC8944: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AC8964u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 209u, 0x08AC8964u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8964u) goto L_08AC8964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8964: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2885,8 +3884,21 @@ L_08AC896C: } L_08AC8978: aot_gpr_31 = (0x08AC8980u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 212u, 0x08AC8980u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8980u) goto L_08AC8980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8980: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_31 = (0x08AC898Cu); @@ -2896,8 +3908,21 @@ L_08AC898C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC8998u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 214u, 0x08AC8998u, 0x08A03C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 991u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 991u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 991u, 0x08A03C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8998u) goto L_08AC8998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8998: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -2909,13 +3934,39 @@ L_08AC8998: L_08AC89A4: aot_gpr_31 = (0x08AC89ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 216u, 0x08AC89ACu, 0x08AC7938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 957u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 957u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 957u, 0x08AC7938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC89ACu) goto L_08AC89AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC89AC: aot_gpr_31 = (0x08AC89B4u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 217u, 0x08AC89B4u, 0x08AC76E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 930u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 930u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 930u, 0x08AC76E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC89B4u) goto L_08AC89B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC89B4: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -2933,16 +3984,42 @@ L_08AC89B4: } L_08AC89E0: aot_gpr_31 = (0x08AC89E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 219u, 0x08AC89E8u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC89E8u) goto L_08AC89E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC89E8: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC89FCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 220u, 0x08AC89FCu, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC89FCu) goto L_08AC89FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC89FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2953,8 +4030,21 @@ L_08AC89FC: L_08AC8A04: aot_gpr_31 = (0x08AC8A0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 222u, 0x08AC8A0Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8A0Cu) goto L_08AC8A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8A0C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2965,8 +4055,21 @@ L_08AC8A0C: L_08AC8A14: aot_gpr_31 = (0x08AC8A1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 224u, 0x08AC8A1Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8A1Cu) goto L_08AC8A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8A1C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2977,8 +4080,21 @@ L_08AC8A1C: L_08AC8A24: aot_gpr_31 = (0x08AC8A2Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 226u, 0x08AC8A2Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8A2Cu) goto L_08AC8A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8A2C: aot_gpr_31 = (0x08AC8A34u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2994,8 +4110,21 @@ L_08AC8A34: L_08AC8A3C: aot_gpr_31 = (0x08AC8A44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 229u, 0x08AC8A44u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8A44u) goto L_08AC8A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8A44: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3006,8 +4135,21 @@ L_08AC8A44: L_08AC8A4C: aot_gpr_31 = (0x08AC8A54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 231u, 0x08AC8A54u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8A54u) goto L_08AC8A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8A54: aot_gpr_31 = (0x08AC8A5Cu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3025,8 +4167,21 @@ L_08AC8A5C: L_08AC8A6C: aot_gpr_31 = (0x08AC8A74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 234u, 0x08AC8A74u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8A74u) goto L_08AC8A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8A74: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3037,8 +4192,21 @@ L_08AC8A74: L_08AC8A7C: aot_gpr_31 = (0x08AC8A84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 236u, 0x08AC8A84u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8A84u) goto L_08AC8A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8A84: aot_gpr_31 = (0x08AC8A8Cu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -3055,16 +4223,42 @@ L_08AC8A8C: } L_08AC8A9C: aot_gpr_31 = (0x08AC8AA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 239u, 0x08AC8AA4u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8AA4u) goto L_08AC8AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8AA4: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8AB8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 240u, 0x08AC8AB8u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8AB8u) goto L_08AC8AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8AB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3084,8 +4278,21 @@ L_08AC8AC0: L_08AC8AD0: aot_gpr_31 = (0x08AC8AD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 243u, 0x08AC8AD8u, 0x08AC7794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 941u, 0x08AC7794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8AD8u) goto L_08AC8AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8AD8: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3096,16 +4303,42 @@ L_08AC8AD8: } L_08AC8AE4: aot_gpr_31 = (0x08AC8AECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 245u, 0x08AC8AECu, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8AECu) goto L_08AC8AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8AEC: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8B00u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 246u, 0x08AC8B00u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8B00u) goto L_08AC8B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8B00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3115,16 +4348,42 @@ L_08AC8B00: } L_08AC8B08: aot_gpr_31 = (0x08AC8B10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 248u, 0x08AC8B10u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8B10u) goto L_08AC8B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8B10: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8B24u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 249u, 0x08AC8B24u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8B24u) goto L_08AC8B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8B24: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3142,8 +4401,21 @@ L_08AC8B2C: L_08AC8B34: aot_gpr_31 = (0x08AC8B3Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 252u, 0x08AC8B3Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8B3Cu) goto L_08AC8B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8B3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3180,16 +4452,42 @@ L_08AC8B64: ctx.gpr[6] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AC8BA8u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(244), ctx.gpr[6]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 255u, 0x08AC8BA8u, 0x08AC74A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 902u, 0x08AC74A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8BA8u) goto L_08AC8BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8BA8: ctx.gpr[22] = (ctx.gpr[29] + static_cast(236)); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(236), aot_gpr_2); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC8BBCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 256u, 0x08AC8BBCu, 0x08AC74D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 905u, 0x08AC74D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8BBCu) goto L_08AC8BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8BBC: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(228), aot_gpr_2); ctx.gpr[19] = (ctx.gpr[29] + static_cast(248)); @@ -3197,8 +4495,21 @@ L_08AC8BBC: aot_gpr_4 = (ctx.gpr[29] + static_cast(228)); aot_gpr_31 = (0x08AC8BD4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 257u, 0x08AC8BD4u, 0x08AC74D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 905u, 0x08AC74D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8BD4u) goto L_08AC8BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8BD4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(244), 0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1264), aot_gpr_2); @@ -3220,16 +4531,42 @@ L_08AC8BE8: ctx.gpr[6] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AC8C18u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(232), ctx.gpr[6]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 259u, 0x08AC8C18u, 0x08AC74A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 902u, 0x08AC74A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8C18u) goto L_08AC8C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8C18: ctx.gpr[30] = (ctx.gpr[29] + static_cast(240)); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(240), aot_gpr_2); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AC8C2Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 260u, 0x08AC8C2Cu, 0x08AC74D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 905u, 0x08AC74D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8C2Cu) goto L_08AC8C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8C2C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(248), aot_gpr_2); @@ -3237,8 +4574,21 @@ L_08AC8C2C: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(228), 0u); aot_gpr_31 = (0x08AC8C44u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 261u, 0x08AC8C44u, 0x08AC74D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 905u, 0x08AC74D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8C44u) goto L_08AC8C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8C44: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(244), 0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(1268), aot_gpr_2); @@ -3258,15 +4608,41 @@ L_08AC8C58: ctx.gpr[6] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AC8C80u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(232), ctx.gpr[6]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 263u, 0x08AC8C80u, 0x08AC74A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 902u, 0x08AC74A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8C80u) goto L_08AC8C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8C80: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(240), aot_gpr_2); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AC8C90u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 264u, 0x08AC8C90u, 0x08AC74D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 905u, 0x08AC74D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8C90u) goto L_08AC8C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8C90: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(248), aot_gpr_2); ctx.gpr[21] = (ctx.gpr[29] + static_cast(248)); @@ -3274,8 +4650,21 @@ L_08AC8C90: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AC8CA8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 265u, 0x08AC8CA8u, 0x08AC74A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 902u, 0x08AC74A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8CA8u) goto L_08AC8CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8CA8: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(244), 0u); ctx.gpr[23] = (aot_gpr_2 | 0u); @@ -3295,23 +4684,62 @@ L_08AC8CBC: ctx.gpr[6] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AC8CE4u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(232), ctx.gpr[6]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 267u, 0x08AC8CE4u, 0x08AC74A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 902u, 0x08AC74A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8CE4u) goto L_08AC8CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8CE4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(240), aot_gpr_2); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AC8CF4u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 268u, 0x08AC8CF4u, 0x08AC74D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 905u, 0x08AC74D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8CF4u) goto L_08AC8CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8CF4: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(248), aot_gpr_2); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(228), aot_gpr_16); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AC8D08u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 269u, 0x08AC8D08u, 0x08AC74A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 902u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 902u, 0x08AC74A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8D08u) goto L_08AC8D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8D08: aot_gpr_4 = (17096u << 16u); ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1268))); @@ -3342,18 +4770,57 @@ L_08AC8D38: ctx.gpr[7] = (0u | 1271u); aot_gpr_31 = (0x08AC8D50u); ctx.gpr[6] = (ctx.gpr[6] + static_cast(14304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 272u, 0x08AC8D50u, 0x08AC77C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 946u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 946u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 946u, 0x08AC77C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8D50u) goto L_08AC8D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8D50: aot_gpr_31 = (0x08AC8D58u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 273u, 0x08AC8D58u, 0x08AC77ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 943u, 0x08AC77ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8D58u) goto L_08AC8D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8D58: aot_gpr_31 = (0x08AC8D60u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 274u, 0x08AC8D60u, 0x08AC77A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 942u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 942u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 942u, 0x08AC77A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8D60u) goto L_08AC8D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8D60: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3375,8 +4842,21 @@ L_08AC8D80: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC8D8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 278u, 0x08AC8D8Cu, 0x08AC7764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 939u, 0x08AC7764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8D8Cu) goto L_08AC8D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8D8C: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3397,13 +4877,39 @@ L_08AC8D98: L_08AC8DA8: aot_gpr_31 = (0x08AC8DB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 281u, 0x08AC8DB0u, 0x08AC7930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 956u, 0x08AC7930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8DB0u) goto L_08AC8DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8DB0: aot_gpr_31 = (0x08AC8DB8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 282u, 0x08AC8DB8u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8DB8u) goto L_08AC8DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8DB8: aot_gpr_4 = (14289u << 16u); aot_gpr_4 = (aot_gpr_4 | 46871u); @@ -3434,13 +4940,39 @@ L_08AC8DF0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC8E04u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 286u, 0x08AC8E04u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8E04u) goto L_08AC8E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8E04: aot_gpr_31 = (0x08AC8E0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 287u, 0x08AC8E0Cu, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8E0Cu) goto L_08AC8E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8E0C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(1272))); @@ -3491,8 +5023,21 @@ L_08AC8E54: L_08AC8E5C: aot_gpr_31 = (0x08AC8E64u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 294u, 0x08AC8E64u, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8E64u) goto L_08AC8E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8E64: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(565))); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); @@ -3505,23 +5050,62 @@ L_08AC8E64: } L_08AC8E78: aot_gpr_31 = (0x08AC8E80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 296u, 0x08AC8E80u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8E80u) goto L_08AC8E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8E80: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8E94u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 297u, 0x08AC8E94u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8E94u) goto L_08AC8E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8E94: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 17u); aot_gpr_31 = (0x08AC8EA4u); ctx.gpr[6] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 298u, 0x08AC8EA4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8EA4u) goto L_08AC8EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8EA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(460))); aot_gpr_5 = (4u << 16u); @@ -3538,8 +5122,21 @@ L_08AC8EC4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AC8ED4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 300u, 0x08AC8ED4u, 0x08B00A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 169u, 0x08B00A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8ED4u) goto L_08AC8ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8ED4: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -3551,8 +5148,21 @@ L_08AC8ED4: L_08AC8EDC: aot_gpr_31 = (0x08AC8EE4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 302u, 0x08AC8EE4u, 0x08B00B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 187u, 0x08B00B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8EE4u) goto L_08AC8EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8EE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3576,8 +5186,21 @@ L_08AC8F00: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8F0Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 306u, 0x08AC8F0Cu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8F0Cu) goto L_08AC8F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8F0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3587,8 +5210,21 @@ L_08AC8F0C: } L_08AC8F14: aot_gpr_31 = (0x08AC8F1Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 308u, 0x08AC8F1Cu, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8F1Cu) goto L_08AC8F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8F1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1728))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -3601,8 +5237,21 @@ L_08AC8F1C: L_08AC8F2C: aot_gpr_31 = (0x08AC8F34u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 310u, 0x08AC8F34u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8F34u) goto L_08AC8F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8F34: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3632,8 +5281,21 @@ L_08AC8F54: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08AC8F64u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 315u, 0x08AC8F64u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8F64u) goto L_08AC8F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8F64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(460))); aot_gpr_4 = (aot_gpr_4 | 32768u); @@ -3667,8 +5329,21 @@ L_08AC8F94: aot_gpr_4 = (ctx.gpr[29] + static_cast(280)); aot_gpr_31 = (0x08AC8FA0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 320u, 0x08AC8FA0u, 0x08AC76C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 928u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 928u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 928u, 0x08AC76C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8FA0u) goto L_08AC8FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8FA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(280))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast(284))); @@ -3680,8 +5355,21 @@ L_08AC8FA0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC8FC8u); ctx.gpr[6] = (0u | 10000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 321u, 0x08AC8FC8u, 0x0890B0A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 779u, 0x0890B0A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC8FC8u) goto L_08AC8FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC8FC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -3762,8 +5450,21 @@ L_08AC9048: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9058u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 333u, 0x08AC9058u, 0x0890C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 103u, 0x0890C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9058u) goto L_08AC9058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9058: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3785,8 +5486,21 @@ L_08AC9068: } L_08AC9070: aot_gpr_31 = (0x08AC9078u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 337u, 0x08AC9078u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9078u) goto L_08AC9078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9078: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1756))); aot_gpr_4 = (aot_gpr_2 < aot_gpr_4 ? 1u : 0u); @@ -3834,8 +5548,21 @@ L_08AC90C0: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC90D0u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 344u, 0x08AC90D0u, 0x0890C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 103u, 0x0890C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC90D0u) goto L_08AC90D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC90D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3846,8 +5573,21 @@ L_08AC90D0: L_08AC90D8: aot_gpr_31 = (0x08AC90E0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 346u, 0x08AC90E0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC90E0u) goto L_08AC90E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC90E0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3859,12 +5599,38 @@ L_08AC90E8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC90F4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 348u, 0x08AC90F4u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC90F4u) goto L_08AC90F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC90F4: aot_gpr_31 = (0x08AC90FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 349u, 0x08AC90FCu, 0x08AC7810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 949u, 0x08AC7810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC90FCu) goto L_08AC90FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC90FC: aot_gpr_4 = (aot_gpr_2 | 0u); if (static_cast(aot_gpr_4) >= 0) { @@ -3887,19 +5653,58 @@ L_08AC9118: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08AC9128u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 352u, 0x08AC9128u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9128u) goto L_08AC9128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9128: aot_gpr_31 = (0x08AC9130u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 353u, 0x08AC9130u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9130u) goto L_08AC9130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9130: aot_gpr_4 = (aot_gpr_2 + static_cast(10000)); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1756), aot_gpr_4); aot_gpr_31 = (0x08AC9140u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 354u, 0x08AC9140u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9140u) goto L_08AC9140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9140: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3911,8 +5716,21 @@ L_08AC9148: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9154u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 356u, 0x08AC9154u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9154u) goto L_08AC9154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9154: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3923,18 +5741,57 @@ L_08AC9154: L_08AC915C: aot_gpr_31 = (0x08AC9164u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 358u, 0x08AC9164u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9164u) goto L_08AC9164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9164: aot_gpr_31 = (0x08AC916Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 359u, 0x08AC916Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC916Cu) goto L_08AC916C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC916C: aot_gpr_31 = (0x08AC9174u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 360u, 0x08AC9174u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9174u) goto L_08AC9174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9174: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3946,8 +5803,21 @@ L_08AC917C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9188u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 362u, 0x08AC9188u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9188u) goto L_08AC9188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9188: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3968,8 +5838,21 @@ L_08AC9198: } L_08AC91A0: aot_gpr_31 = (0x08AC91A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 366u, 0x08AC91A8u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC91A8u) goto L_08AC91A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC91A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1756))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -3983,8 +5866,21 @@ L_08AC91B8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC91C4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 368u, 0x08AC91C4u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC91C4u) goto L_08AC91C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC91C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3996,8 +5892,21 @@ L_08AC91CC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC91D8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 370u, 0x08AC91D8u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC91D8u) goto L_08AC91D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC91D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4009,8 +5918,21 @@ L_08AC91E0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC91ECu); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 372u, 0x08AC91ECu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC91ECu) goto L_08AC91EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC91EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4023,8 +5945,21 @@ L_08AC91F4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9204u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 374u, 0x08AC9204u, 0x08A08974u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 69u, 0x08A08974u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9204u) goto L_08AC9204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9204: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4036,8 +5971,21 @@ L_08AC920C: aot_gpr_4 = (ctx.gpr[29] + static_cast(288)); aot_gpr_31 = (0x08AC9218u); aot_gpr_5 = (aot_gpr_17 + static_cast(656)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 376u, 0x08AC9218u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9218u) goto L_08AC9218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9218: ctx.gpr[6] = (16204u << 16u); ctx.gpr[6] = (ctx.gpr[6] | 52429u); @@ -4045,8 +5993,21 @@ L_08AC9218: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08AC9230u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 377u, 0x08AC9230u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9230u) goto L_08AC9230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9230: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4057,8 +6018,21 @@ L_08AC9230: L_08AC9238: aot_gpr_31 = (0x08AC9240u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 379u, 0x08AC9240u, 0x08A08884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 56u, 0x08A08884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9240u) goto L_08AC9240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9240: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4072,20 +6046,59 @@ L_08AC924C: ctx.gpr[18] = (ctx.gpr[29] + static_cast(304)); aot_gpr_31 = (0x08AC925Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 381u, 0x08AC925Cu, 0x08A08884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 56u, 0x08A08884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC925Cu) goto L_08AC925C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC925C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC9268u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 382u, 0x08AC9268u, 0x08AB4D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 174u, 0x08AB4D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9268u) goto L_08AC9268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9268: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC9274u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 383u, 0x08AC9274u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9274u) goto L_08AC9274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9274: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4100,8 +6113,21 @@ L_08AC927C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(460), aot_gpr_5); aot_gpr_31 = (0x08AC9294u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 385u, 0x08AC9294u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9294u) goto L_08AC9294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9294: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4145,8 +6171,21 @@ L_08AC92C4: L_08AC92CC: aot_gpr_31 = (0x08AC92D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 392u, 0x08AC92D4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC92D4u) goto L_08AC92D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC92D4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4162,8 +6201,21 @@ L_08AC92DC: L_08AC92E4: aot_gpr_31 = (0x08AC92ECu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 395u, 0x08AC92ECu, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC92ECu) goto L_08AC92EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC92EC: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC92F8u); @@ -4182,18 +6234,57 @@ L_08AC92F8: L_08AC9308: aot_gpr_31 = (0x08AC9310u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 398u, 0x08AC9310u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9310u) goto L_08AC9310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9310: aot_gpr_31 = (0x08AC9318u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 399u, 0x08AC9318u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9318u) goto L_08AC9318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9318: aot_gpr_31 = (0x08AC9320u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 400u, 0x08AC9320u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9320u) goto L_08AC9320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9320: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4205,8 +6296,21 @@ L_08AC9328: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9334u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 402u, 0x08AC9334u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9334u) goto L_08AC9334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9334: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4240,17 +6344,56 @@ L_08AC9354: L_08AC9364: aot_gpr_31 = (0x08AC936Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 407u, 0x08AC936Cu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC936Cu) goto L_08AC936C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC936C: aot_gpr_31 = (0x08AC9374u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 408u, 0x08AC9374u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9374u) goto L_08AC9374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9374: aot_gpr_31 = (0x08AC937Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 409u, 0x08AC937Cu, 0x08AC7810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 949u, 0x08AC7810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC937Cu) goto L_08AC937C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC937C: aot_gpr_4 = (aot_gpr_2 | 0u); if (static_cast(aot_gpr_4) >= 0) { @@ -4273,8 +6416,21 @@ L_08AC9398: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08AC93A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 412u, 0x08AC93A8u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC93A8u) goto L_08AC93A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC93A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-16385)); @@ -4296,8 +6452,21 @@ L_08AC93BC: } L_08AC93C8: aot_gpr_31 = (0x08AC93D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 415u, 0x08AC93D0u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC93D0u) goto L_08AC93D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC93D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1756))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -4572,20 +6741,59 @@ L_08AC95A0: ctx.gpr[6] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC95B4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 456u, 0x08AC95B4u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC95B4u) goto L_08AC95B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC95B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AC95C0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 457u, 0x08AC95C0u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC95C0u) goto L_08AC95C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC95C0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC95CCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 458u, 0x08AC95CCu, 0x08AC7654u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 923u, 0x08AC7654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC95CCu) goto L_08AC95CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC95CC: aot_gpr_31 = (0x08AC95D4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -4602,8 +6810,21 @@ L_08AC95E0: ctx.gpr[6] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC95F4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 461u, 0x08AC95F4u, 0x089A95B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 231u, 0x089A95B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC95F4u) goto L_08AC95F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC95F4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1756), 0u); goto L_08AC95F8; @@ -4622,8 +6843,21 @@ L_08AC9600: L_08AC9608: aot_gpr_31 = (0x08AC9610u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 465u, 0x08AC9610u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9610u) goto L_08AC9610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9610: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4639,8 +6873,21 @@ L_08AC9618: L_08AC9620: aot_gpr_31 = (0x08AC9628u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 468u, 0x08AC9628u, 0x08AC7750u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 938u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 938u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 938u, 0x08AC7750u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9628u) goto L_08AC9628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9628: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4657,8 +6904,21 @@ L_08AC9630: } L_08AC9638: aot_gpr_31 = (0x08AC9640u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 471u, 0x08AC9640u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9640u) goto L_08AC9640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9640: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1728))); aot_gpr_4 = (aot_gpr_2 < aot_gpr_4 ? 1u : 0u); @@ -4684,8 +6944,21 @@ L_08AC965C: L_08AC9664: aot_gpr_31 = (0x08AC966Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 475u, 0x08AC966Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC966Cu) goto L_08AC966C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC966C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4747,8 +7020,21 @@ L_08AC96BC: L_08AC96CC: aot_gpr_31 = (0x08AC96D4u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 484u, 0x08AC96D4u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC96D4u) goto L_08AC96D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC96D4: aot_gpr_4 = (16800u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4762,8 +7048,21 @@ L_08AC96D4: L_08AC96EC: aot_gpr_31 = (0x08AC96F4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 486u, 0x08AC96F4u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC96F4u) goto L_08AC96F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC96F4: aot_gpr_4 = (0u | 18u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4782,13 +7081,39 @@ L_08AC9700: L_08AC9708: aot_gpr_31 = (0x08AC9710u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 489u, 0x08AC9710u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9710u) goto L_08AC9710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9710: aot_gpr_31 = (0x08AC9718u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 490u, 0x08AC9718u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9718u) goto L_08AC9718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9718: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4804,8 +7129,21 @@ L_08AC9720: L_08AC9728: aot_gpr_31 = (0x08AC9730u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 493u, 0x08AC9730u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9730u) goto L_08AC9730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9730: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4833,13 +7171,39 @@ L_08AC9748: L_08AC9750: aot_gpr_31 = (0x08AC9758u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 498u, 0x08AC9758u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9758u) goto L_08AC9758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9758: aot_gpr_31 = (0x08AC9760u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 499u, 0x08AC9760u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9760u) goto L_08AC9760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9760: aot_gpr_4 = (0u | 9u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -4856,8 +7220,21 @@ L_08AC976C: L_08AC9774: aot_gpr_31 = (0x08AC977Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 502u, 0x08AC977Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC977Cu) goto L_08AC977C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC977C: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9788u); @@ -4880,8 +7257,21 @@ L_08AC9798: aot_gpr_5 = (0u | 17u); aot_gpr_31 = (0x08AC97A8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 506u, 0x08AC97A8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC97A8u) goto L_08AC97A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC97A8: aot_gpr_31 = (0x08AC97B0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -4919,8 +7309,21 @@ L_08AC97D8: L_08AC97E0: aot_gpr_31 = (0x08AC97E8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 512u, 0x08AC97E8u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC97E8u) goto L_08AC97E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC97E8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4931,8 +7334,21 @@ L_08AC97E8: L_08AC97F0: aot_gpr_31 = (0x08AC97F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 514u, 0x08AC97F8u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC97F8u) goto L_08AC97F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC97F8: aot_gpr_4 = (0u | 17u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -4949,8 +7365,21 @@ L_08AC9804: L_08AC980C: aot_gpr_31 = (0x08AC9814u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 517u, 0x08AC9814u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9814u) goto L_08AC9814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9814: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4966,19 +7395,58 @@ L_08AC981C: L_08AC9824: aot_gpr_31 = (0x08AC982Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 520u, 0x08AC982Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC982Cu) goto L_08AC982C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC982C: aot_gpr_31 = (0x08AC9834u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 521u, 0x08AC9834u, 0x08AC7A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 978u, 0x08AC7A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9834u) goto L_08AC9834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9834: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9840u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 522u, 0x08AC9840u, 0x08AC7A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 978u, 0x08AC7A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9840u) goto L_08AC9840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9840: { const bool branch_taken = aot_gpr_16 != aot_gpr_2; if (branch_taken) { @@ -5006,8 +7474,21 @@ L_08AC985C: L_08AC9864: aot_gpr_31 = (0x08AC986Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 527u, 0x08AC986Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC986Cu) goto L_08AC986C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC986C: aot_gpr_31 = (0x08AC9874u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -5030,8 +7511,21 @@ L_08AC9888: aot_gpr_5 = (0u | 17u); aot_gpr_31 = (0x08AC9898u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 531u, 0x08AC9898u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9898u) goto L_08AC9898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9898: aot_gpr_31 = (0x08AC98A0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5052,8 +7546,21 @@ L_08AC98B4: L_08AC98BC: aot_gpr_31 = (0x08AC98C4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 535u, 0x08AC98C4u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC98C4u) goto L_08AC98C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC98C4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5069,8 +7576,21 @@ L_08AC98CC: L_08AC98D4: aot_gpr_31 = (0x08AC98DCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 538u, 0x08AC98DCu, 0x08AC7978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 965u, 0x08AC7978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC98DCu) goto L_08AC98DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC98DC: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5087,8 +7607,21 @@ L_08AC98E8: L_08AC98F0: aot_gpr_31 = (0x08AC98F8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 541u, 0x08AC98F8u, 0x08AC7978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 965u, 0x08AC7978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC98F8u) goto L_08AC98F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC98F8: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5107,13 +7640,39 @@ L_08AC9904: L_08AC990C: aot_gpr_31 = (0x08AC9914u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 544u, 0x08AC9914u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9914u) goto L_08AC9914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9914: aot_gpr_31 = (0x08AC991Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 545u, 0x08AC991Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC991Cu) goto L_08AC991C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC991C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5144,8 +7703,21 @@ L_08AC9944: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9950u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 550u, 0x08AC9950u, 0x089A9810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 277u, 0x089A9810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9950u) goto L_08AC9950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9950: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5177,13 +7749,39 @@ L_08AC9978: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9988u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 555u, 0x08AC9988u, 0x0890C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 103u, 0x0890C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9988u) goto L_08AC9988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9988: aot_gpr_31 = (0x08AC9990u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 556u, 0x08AC9990u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9990u) goto L_08AC9990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9990: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5257,19 +7855,58 @@ L_08AC9A0C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AC9A1Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 567u, 0x08AC9A1Cu, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9A1Cu) goto L_08AC9A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9A1C: aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08AC9A28u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 568u, 0x08AC9A28u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9A28u) goto L_08AC9A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9A28: aot_gpr_31 = (0x08AC9A30u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 569u, 0x08AC9A30u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9A30u) goto L_08AC9A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9A30: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5280,8 +7917,21 @@ L_08AC9A30: L_08AC9A38: aot_gpr_31 = (0x08AC9A40u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 571u, 0x08AC9A40u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9A40u) goto L_08AC9A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9A40: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(-13364)))))); aot_gpr_5 = (16968u << 16u); @@ -5304,8 +7954,21 @@ L_08AC9A68: L_08AC9A70: aot_gpr_31 = (0x08AC9A78u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 574u, 0x08AC9A78u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9A78u) goto L_08AC9A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9A78: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5321,8 +7984,21 @@ L_08AC9A80: L_08AC9A88: aot_gpr_31 = (0x08AC9A90u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 577u, 0x08AC9A90u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9A90u) goto L_08AC9A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9A90: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5333,8 +8009,21 @@ L_08AC9A90: L_08AC9A98: aot_gpr_31 = (0x08AC9AA0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 579u, 0x08AC9AA0u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9AA0u) goto L_08AC9AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9AA0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5351,8 +8040,21 @@ L_08AC9AB0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9ABCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 582u, 0x08AC9ABCu, 0x08A0CAD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 112u, 0x08A0CAD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9ABCu) goto L_08AC9ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9ABC: aot_gpr_31 = (0x08AC9AC4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5402,8 +8104,21 @@ L_08AC9AF8: L_08AC9B04: aot_gpr_31 = (0x08AC9B0Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 590u, 0x08AC9B0Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B0Cu) goto L_08AC9B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B0C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9B18u); @@ -5420,18 +8135,57 @@ L_08AC9B18: L_08AC9B20: aot_gpr_31 = (0x08AC9B28u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 593u, 0x08AC9B28u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B28u) goto L_08AC9B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B28: aot_gpr_31 = (0x08AC9B30u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 594u, 0x08AC9B30u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B30u) goto L_08AC9B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B30: aot_gpr_31 = (0x08AC9B38u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 595u, 0x08AC9B38u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B38u) goto L_08AC9B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B38: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5443,8 +8197,21 @@ L_08AC9B40: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9B4Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 597u, 0x08AC9B4Cu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B4Cu) goto L_08AC9B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5455,8 +8222,21 @@ L_08AC9B4C: L_08AC9B54: aot_gpr_31 = (0x08AC9B5Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 599u, 0x08AC9B5Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B5Cu) goto L_08AC9B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B5C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5467,18 +8247,57 @@ L_08AC9B5C: L_08AC9B64: aot_gpr_31 = (0x08AC9B6Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 601u, 0x08AC9B6Cu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B6Cu) goto L_08AC9B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B6C: aot_gpr_31 = (0x08AC9B74u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 602u, 0x08AC9B74u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B74u) goto L_08AC9B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B74: aot_gpr_31 = (0x08AC9B7Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 603u, 0x08AC9B7Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B7Cu) goto L_08AC9B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B7C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5490,8 +8309,21 @@ L_08AC9B84: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9B90u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 605u, 0x08AC9B90u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9B90u) goto L_08AC9B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9B90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5502,8 +8334,21 @@ L_08AC9B90: L_08AC9B98: aot_gpr_31 = (0x08AC9BA0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 607u, 0x08AC9BA0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9BA0u) goto L_08AC9BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9BA0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5539,8 +8384,21 @@ L_08AC9BCC: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9BDCu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 613u, 0x08AC9BDCu, 0x089AC664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 80u, 0x089AC664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9BDCu) goto L_08AC9BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9BDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5569,8 +8427,21 @@ L_08AC9BFC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(460), aot_gpr_5); aot_gpr_31 = (0x08AC9C14u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 617u, 0x08AC9C14u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9C14u) goto L_08AC9C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9C14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5581,8 +8452,21 @@ L_08AC9C14: L_08AC9C1C: aot_gpr_31 = (0x08AC9C24u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 619u, 0x08AC9C24u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9C24u) goto L_08AC9C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9C24: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5619,8 +8503,21 @@ L_08AC9C4C: L_08AC9C54: aot_gpr_31 = (0x08AC9C5Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 625u, 0x08AC9C5Cu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9C5Cu) goto L_08AC9C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9C5C: aot_gpr_31 = (0x08AC9C64u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5631,8 +8528,21 @@ L_08AC9C64: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9C74u); ctx.gpr[6] = (0u | 6000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 627u, 0x08AC9C74u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9C74u) goto L_08AC9C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9C74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5642,8 +8552,21 @@ L_08AC9C74: } L_08AC9C7C: aot_gpr_31 = (0x08AC9C84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 629u, 0x08AC9C84u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9C84u) goto L_08AC9C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9C84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1728))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -5669,8 +8592,21 @@ L_08AC9C9C: L_08AC9CA8: aot_gpr_31 = (0x08AC9CB0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 633u, 0x08AC9CB0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9CB0u) goto L_08AC9CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9CB0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5698,8 +8634,21 @@ L_08AC9CC8: L_08AC9CD0: aot_gpr_31 = (0x08AC9CD8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 638u, 0x08AC9CD8u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9CD8u) goto L_08AC9CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9CD8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5723,8 +8672,21 @@ L_08AC9CE8: L_08AC9CF0: aot_gpr_31 = (0x08AC9CF8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 642u, 0x08AC9CF8u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9CF8u) goto L_08AC9CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9CF8: { const bool branch_taken = aot_gpr_2 == aot_gpr_17; if (branch_taken) { @@ -5741,8 +8703,21 @@ L_08AC9D08: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9D14u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 645u, 0x08AC9D14u, 0x08B00A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 169u, 0x08B00A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9D14u) goto L_08AC9D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9D14: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5779,8 +8754,21 @@ L_08AC9D30: L_08AC9D38: aot_gpr_31 = (0x08AC9D40u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 651u, 0x08AC9D40u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9D40u) goto L_08AC9D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9D40: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5803,8 +8791,21 @@ L_08AC9D50: L_08AC9D58: aot_gpr_31 = (0x08AC9D60u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 655u, 0x08AC9D60u, 0x08AC7A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 978u, 0x08AC7A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9D60u) goto L_08AC9D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9D60: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5821,8 +8822,21 @@ L_08AC9D6C: L_08AC9D74: aot_gpr_31 = (0x08AC9D7Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 658u, 0x08AC9D7Cu, 0x08AC7978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 965u, 0x08AC7978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9D7Cu) goto L_08AC9D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9D7C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -5840,21 +8854,60 @@ L_08AC9D88: L_08AC9D94: aot_gpr_31 = (0x08AC9D9Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 661u, 0x08AC9D9Cu, 0x08AC7930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 956u, 0x08AC7930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9D9Cu) goto L_08AC9D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9D9C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC9DA8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 662u, 0x08AC9DA8u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9DA8u) goto L_08AC9DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9DA8: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AC9DB8u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(376), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 663u, 0x08AC9DB8u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9DB8u) goto L_08AC9DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9DB8: aot_gpr_4 = (14289u << 16u); aot_gpr_4 = (aot_gpr_4 | 46871u); @@ -5944,8 +8997,21 @@ L_08AC9E3C: L_08AC9E44: aot_gpr_31 = (0x08AC9E4Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 677u, 0x08AC9E4Cu, 0x08AC7978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 965u, 0x08AC7978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9E4Cu) goto L_08AC9E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9E4C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -5963,8 +9029,21 @@ L_08AC9E60: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9E6Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 680u, 0x08AC9E6Cu, 0x089AD800u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 408u, 0x089AD800u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9E6Cu) goto L_08AC9E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9E6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5982,8 +9061,21 @@ L_08AC9E7C: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9E8Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 683u, 0x08AC9E8Cu, 0x089AC664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 80u, 0x089AC664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9E8Cu) goto L_08AC9E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9E8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6001,12 +9093,38 @@ L_08AC9E94: L_08AC9E9C: aot_gpr_31 = (0x08AC9EA4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 686u, 0x08AC9EA4u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9EA4u) goto L_08AC9EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9EA4: aot_gpr_31 = (0x08AC9EACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 687u, 0x08AC9EACu, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9EACu) goto L_08AC9EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9EAC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6016,8 +9134,21 @@ L_08AC9EAC: } L_08AC9EB4: aot_gpr_31 = (0x08AC9EBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 689u, 0x08AC9EBCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9EBCu) goto L_08AC9EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9EBC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6027,14 +9158,40 @@ L_08AC9EBC: } L_08AC9EC4: aot_gpr_31 = (0x08AC9ECCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 691u, 0x08AC9ECCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9ECCu) goto L_08AC9ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9ECC: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9ED8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 692u, 0x08AC9ED8u, 0x08B00A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 169u, 0x08B00A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9ED8u) goto L_08AC9ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9ED8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6062,8 +9219,21 @@ L_08AC9EF0: } L_08AC9EF8: aot_gpr_31 = (0x08AC9F00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 697u, 0x08AC9F00u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9F00u) goto L_08AC9F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9F00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1728))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -6076,8 +9246,21 @@ L_08AC9F00: L_08AC9F10: aot_gpr_31 = (0x08AC9F18u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 699u, 0x08AC9F18u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9F18u) goto L_08AC9F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9F18: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6147,8 +9330,21 @@ L_08AC9F78: L_08AC9F80: aot_gpr_31 = (0x08AC9F88u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 710u, 0x08AC9F88u, 0x08AC7978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 965u, 0x08AC7978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9F88u) goto L_08AC9F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9F88: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6166,8 +9362,21 @@ L_08AC9F9C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AC9FA8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 713u, 0x08AC9FA8u, 0x089AD800u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 408u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 408u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 408u, 0x089AD800u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9FA8u) goto L_08AC9FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9FA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6199,8 +9408,21 @@ L_08AC9FD0: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AC9FE0u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 718u, 0x08AC9FE0u, 0x089AC664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 80u, 0x089AC664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9FE0u) goto L_08AC9FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9FE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6217,8 +9439,21 @@ L_08AC9FE8: L_08AC9FF4: aot_gpr_31 = (0x08AC9FFCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 721u, 0x08AC9FFCu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AC9FFCu) goto L_08AC9FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AC9FFC: { const bool branch_taken = aot_gpr_2 != aot_gpr_17; if (branch_taken) { @@ -6318,8 +9553,21 @@ L_08ACA07C: ctx.gpr[6] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACA090u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 737u, 0x08ACA090u, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA090u) goto L_08ACA090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA090: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6330,8 +9578,21 @@ L_08ACA090: L_08ACA098: aot_gpr_31 = (0x08ACA0A0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 739u, 0x08ACA0A0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA0A0u) goto L_08ACA0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA0A0: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6376,8 +9637,21 @@ L_08ACA0DC: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08ACA0ECu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 746u, 0x08ACA0ECu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA0ECu) goto L_08ACA0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA0EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6426,13 +9700,39 @@ L_08ACA140: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACA14Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 752u, 0x08ACA14Cu, 0x08AC7988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 967u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 967u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 967u, 0x08AC7988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA14Cu) goto L_08ACA14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA14C: aot_gpr_31 = (0x08ACA154u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 753u, 0x08ACA154u, 0x08AC7998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 968u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 968u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 968u, 0x08AC7998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA154u) goto L_08ACA154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA154: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6443,8 +9743,21 @@ L_08ACA154: L_08ACA15C: aot_gpr_31 = (0x08ACA164u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 755u, 0x08ACA164u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA164u) goto L_08ACA164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA164: aot_gpr_4 = (0u | 11u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6462,8 +9775,21 @@ L_08ACA178: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACA188u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 758u, 0x08ACA188u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA188u) goto L_08ACA188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA188: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6480,8 +9806,21 @@ L_08ACA198: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACA1A8u); ctx.gpr[6] = (0u | 6000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 761u, 0x08ACA1A8u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA1A8u) goto L_08ACA1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA1A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -6535,8 +9874,21 @@ L_08ACA200: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08ACA218u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 769u, 0x08ACA218u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA218u) goto L_08ACA218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA218: aot_gpr_31 = (0x08ACA220u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6560,13 +9912,39 @@ L_08ACA234: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA244u); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1736), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 773u, 0x08ACA244u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA244u) goto L_08ACA244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA244: aot_gpr_31 = (0x08ACA24Cu); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 774u, 0x08ACA24Cu, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA24Cu) goto L_08ACA24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA24C: aot_gpr_4 = (16800u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6579,8 +9957,21 @@ L_08ACA24C: } L_08ACA264: aot_gpr_31 = (0x08ACA26Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 776u, 0x08ACA26Cu, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA26Cu) goto L_08ACA26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA26C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1744))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -6607,8 +9998,21 @@ L_08ACA284: L_08ACA294: aot_gpr_31 = (0x08ACA29Cu); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 780u, 0x08ACA29Cu, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA29Cu) goto L_08ACA29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA29C: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6627,20 +10031,59 @@ L_08ACA2BC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA2C8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 783u, 0x08ACA2C8u, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA2C8u) goto L_08ACA2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA2C8: aot_gpr_4 = (0u | 500u); aot_gpr_31 = (0x08ACA2D4u); aot_gpr_5 = (0u | 1500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 784u, 0x08ACA2D4u, 0x08AC7830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 951u, 0x08AC7830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA2D4u) goto L_08ACA2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA2D4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA2E0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 785u, 0x08ACA2E0u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA2E0u) goto L_08ACA2E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA2E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6658,14 +10101,40 @@ L_08ACA2F0: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08ACA304u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 788u, 0x08ACA304u, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA304u) goto L_08ACA304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA304: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA310u); aot_gpr_5 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 789u, 0x08ACA310u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA310u) goto L_08ACA310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA310: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6676,8 +10145,21 @@ L_08ACA310: L_08ACA318: aot_gpr_31 = (0x08ACA320u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 791u, 0x08ACA320u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA320u) goto L_08ACA320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA320: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6688,8 +10170,21 @@ L_08ACA320: L_08ACA328: aot_gpr_31 = (0x08ACA330u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 793u, 0x08ACA330u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA330u) goto L_08ACA330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA330: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6709,14 +10204,40 @@ L_08ACA348: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ACA358u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 796u, 0x08ACA358u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA358u) goto L_08ACA358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA358: aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08ACA364u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 797u, 0x08ACA364u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA364u) goto L_08ACA364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA364: aot_gpr_31 = (0x08ACA36Cu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6739,8 +10260,21 @@ L_08ACA37C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08ACA394u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 801u, 0x08ACA394u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA394u) goto L_08ACA394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA394: aot_gpr_31 = (0x08ACA39Cu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6762,13 +10296,39 @@ L_08ACA3A4: L_08ACA3B0: aot_gpr_31 = (0x08ACA3B8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 805u, 0x08ACA3B8u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA3B8u) goto L_08ACA3B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA3B8: aot_gpr_31 = (0x08ACA3C0u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 806u, 0x08ACA3C0u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA3C0u) goto L_08ACA3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA3C0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2112))); aot_gpr_4 = (16384u << 16u); @@ -6785,15 +10345,41 @@ L_08ACA3E0: aot_gpr_4 = (ctx.gpr[29] + static_cast(384)); aot_gpr_31 = (0x08ACA3ECu); aot_gpr_5 = (aot_gpr_17 + static_cast(2096)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 808u, 0x08ACA3ECu, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA3ECu) goto L_08ACA3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA3EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2112))); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA3FCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 809u, 0x08ACA3FCu, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA3FCu) goto L_08ACA3FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA3FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6832,8 +10418,21 @@ L_08ACA424: } L_08ACA434: aot_gpr_31 = (0x08ACA43Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 816u, 0x08ACA43Cu, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA43Cu) goto L_08ACA43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA43C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1736))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -6846,21 +10445,60 @@ L_08ACA43C: L_08ACA44C: aot_gpr_31 = (0x08ACA454u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 818u, 0x08ACA454u, 0x0891826Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 31u, 0x0891826Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA454u) goto L_08ACA454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA454: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08ACA464u); aot_gpr_5 = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 819u, 0x08ACA464u, 0x08AC7830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 951u, 0x08AC7830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA464u) goto L_08ACA464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA464: aot_gpr_5 = (aot_gpr_2 + static_cast(500)); aot_gpr_31 = (0x08ACA470u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 820u, 0x08ACA470u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA470u) goto L_08ACA470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA470: aot_gpr_4 = (16u << 16u); { const bool branch_taken = aot_gpr_16 == aot_gpr_4; @@ -6909,8 +10547,21 @@ L_08ACA4A4: L_08ACA4AC: aot_gpr_31 = (0x08ACA4B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 828u, 0x08ACA4B4u, 0x08AC7764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 939u, 0x08AC7764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA4B4u) goto L_08ACA4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA4B4: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -6929,8 +10580,21 @@ L_08ACA4C8: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08ACA4D8u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 831u, 0x08ACA4D8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA4D8u) goto L_08ACA4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA4D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6941,8 +10605,21 @@ L_08ACA4D8: L_08ACA4E0: aot_gpr_31 = (0x08ACA4E8u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 833u, 0x08ACA4E8u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA4E8u) goto L_08ACA4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA4E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2112))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -6956,15 +10633,41 @@ L_08ACA4FC: aot_gpr_4 = (ctx.gpr[29] + static_cast(400)); aot_gpr_31 = (0x08ACA508u); aot_gpr_5 = (aot_gpr_17 + static_cast(2096)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 835u, 0x08ACA508u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA508u) goto L_08ACA508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA508: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2112))); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA518u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 836u, 0x08ACA518u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA518u) goto L_08ACA518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA518: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6975,8 +10678,21 @@ L_08ACA518: L_08ACA520: aot_gpr_31 = (0x08ACA528u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 838u, 0x08ACA528u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA528u) goto L_08ACA528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA528: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6996,21 +10712,60 @@ L_08ACA540: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ACA550u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 841u, 0x08ACA550u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA550u) goto L_08ACA550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA550: aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08ACA55Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 842u, 0x08ACA55Cu, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA55Cu) goto L_08ACA55C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA55C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA56Cu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(40), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 843u, 0x08ACA56Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA56Cu) goto L_08ACA56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA56C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7040,8 +10795,21 @@ L_08ACA590: aot_gpr_5 = (aot_gpr_17 + static_cast(656)); aot_gpr_31 = (0x08ACA59Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 848u, 0x08ACA59Cu, 0x08B0DD44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 450u, 0x08B0DD44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA59Cu) goto L_08ACA59C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA59C: aot_gpr_31 = (0x08ACA5A4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -7050,13 +10818,39 @@ L_08ACA59C: L_08ACA5A4: aot_gpr_31 = (0x08ACA5ACu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 850u, 0x08ACA5ACu, 0x08B4214Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 488u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 488u, 0x08B4214Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA5ACu) goto L_08ACA5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA5AC: aot_gpr_31 = (0x08ACA5B4u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 851u, 0x08ACA5B4u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA5B4u) goto L_08ACA5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA5B4: aot_gpr_4 = (17352u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7076,14 +10870,40 @@ L_08ACA5D4: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACA5E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 854u, 0x08ACA5E0u, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA5E0u) goto L_08ACA5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA5E0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA5ECu); aot_gpr_5 = (0u | 23u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 855u, 0x08ACA5ECu, 0x08AC7E98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1068u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1068u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1068u, 0x08AC7E98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA5ECu) goto L_08ACA5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA5EC: aot_gpr_31 = (0x08ACA5F4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -7094,8 +10914,21 @@ L_08ACA5F4: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08ACA604u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 857u, 0x08ACA604u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA604u) goto L_08ACA604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA604: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7106,8 +10939,21 @@ L_08ACA604: L_08ACA60C: aot_gpr_31 = (0x08ACA614u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 859u, 0x08ACA614u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA614u) goto L_08ACA614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA614: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7141,8 +10987,21 @@ L_08ACA64C: aot_gpr_4 = (ctx.gpr[29] + static_cast(432)); aot_gpr_31 = (0x08ACA658u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 864u, 0x08ACA658u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA658u) goto L_08ACA658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA658: aot_gpr_4 = (aot_gpr_2 | 0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); @@ -7158,8 +11017,21 @@ L_08ACA658: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08ACA690u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 865u, 0x08ACA690u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA690u) goto L_08ACA690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA690: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(496)))))); ctx.gpr[18] = (0u | 0u); @@ -7192,19 +11064,58 @@ L_08ACA6CC: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08ACA6DCu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 869u, 0x08ACA6DCu, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA6DCu) goto L_08ACA6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA6DC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08ACA6E8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 870u, 0x08ACA6E8u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA6E8u) goto L_08ACA6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA6E8: aot_gpr_31 = (0x08ACA6F0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 871u, 0x08ACA6F0u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA6F0u) goto L_08ACA6F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA6F0: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -7233,8 +11144,21 @@ L_08ACA718: aot_gpr_16 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACA724u); aot_gpr_4 = (ctx.gpr[29] + static_cast(480)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 876u, 0x08ACA724u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA724u) goto L_08ACA724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA724: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); goto L_08ACA728; @@ -7254,8 +11178,21 @@ L_08ACA744: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA750u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 879u, 0x08ACA750u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA750u) goto L_08ACA750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA750: aot_gpr_31 = (0x08ACA758u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -7277,8 +11214,21 @@ L_08ACA768: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACA774u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 883u, 0x08ACA774u, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA774u) goto L_08ACA774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA774: aot_gpr_31 = (0x08ACA77Cu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -7289,8 +11239,21 @@ L_08ACA77C: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08ACA78Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 885u, 0x08ACA78Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA78Cu) goto L_08ACA78C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA78C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7307,8 +11270,21 @@ L_08ACA79C: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACA7A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 888u, 0x08ACA7A8u, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA7A8u) goto L_08ACA7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA7A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7318,8 +11294,21 @@ L_08ACA7A8: } L_08ACA7B0: aot_gpr_31 = (0x08ACA7B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 890u, 0x08ACA7B8u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA7B8u) goto L_08ACA7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA7B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1756))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -7340,16 +11329,42 @@ L_08ACA7C8: } L_08ACA7D8: aot_gpr_31 = (0x08ACA7E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 893u, 0x08ACA7E0u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA7E0u) goto L_08ACA7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA7E0: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA7F4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 894u, 0x08ACA7F4u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA7F4u) goto L_08ACA7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA7F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7369,8 +11384,21 @@ L_08ACA7FC: L_08ACA80C: aot_gpr_31 = (0x08ACA814u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 897u, 0x08ACA814u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA814u) goto L_08ACA814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA814: aot_gpr_16 = (ctx.gpr[29] + static_cast(528)); ctx.gpr[18] = (aot_gpr_17 + static_cast(656)); @@ -7383,21 +11411,60 @@ L_08ACA824: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ACA834u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 899u, 0x08ACA834u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA834u) goto L_08ACA834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA834: aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08ACA840u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 900u, 0x08ACA840u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA840u) goto L_08ACA840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA840: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA850u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(40), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 901u, 0x08ACA850u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA850u) goto L_08ACA850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA850: aot_gpr_4 = (0u | 45u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7409,8 +11476,21 @@ L_08ACA850: L_08ACA85C: aot_gpr_31 = (0x08ACA864u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 903u, 0x08ACA864u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA864u) goto L_08ACA864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA864: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7422,8 +11502,21 @@ L_08ACA864: L_08ACA870: aot_gpr_31 = (0x08ACA878u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 905u, 0x08ACA878u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA878u) goto L_08ACA878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA878: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7469,8 +11562,21 @@ L_08ACA8CC: L_08ACA8D8: aot_gpr_31 = (0x08ACA8E0u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 911u, 0x08ACA8E0u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA8E0u) goto L_08ACA8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA8E0: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACA8ECu); @@ -7499,16 +11605,42 @@ L_08ACA90C: } L_08ACA914: aot_gpr_31 = (0x08ACA91Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 916u, 0x08ACA91Cu, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA91Cu) goto L_08ACA91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA91C: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACA930u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 917u, 0x08ACA930u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA930u) goto L_08ACA930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA930: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7519,8 +11651,21 @@ L_08ACA930: L_08ACA938: aot_gpr_31 = (0x08ACA940u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 919u, 0x08ACA940u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA940u) goto L_08ACA940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA940: aot_gpr_4 = (0u | 53u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7532,8 +11677,21 @@ L_08ACA940: L_08ACA94C: aot_gpr_31 = (0x08ACA954u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 921u, 0x08ACA954u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA954u) goto L_08ACA954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA954: aot_gpr_4 = (0u | 4u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7545,8 +11703,21 @@ L_08ACA954: L_08ACA960: aot_gpr_31 = (0x08ACA968u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 923u, 0x08ACA968u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA968u) goto L_08ACA968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA968: aot_gpr_4 = (16768u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7571,8 +11742,21 @@ L_08ACA98C: goto L_08ACA99C; L_08ACA99C: aot_gpr_31 = (0x08ACA9A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 927u, 0x08ACA9A4u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA9A4u) goto L_08ACA9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA9A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_31 = (0x08ACA9B0u); @@ -7582,8 +11766,21 @@ L_08ACA9B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACA9BCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 929u, 0x08ACA9BCu, 0x08A03C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 991u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 991u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 991u, 0x08A03C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA9BCu) goto L_08ACA9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA9BC: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7595,13 +11792,39 @@ L_08ACA9BC: L_08ACA9C8: aot_gpr_31 = (0x08ACA9D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 931u, 0x08ACA9D0u, 0x08AC7938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 957u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 957u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 957u, 0x08AC7938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA9D0u) goto L_08ACA9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA9D0: aot_gpr_31 = (0x08ACA9D8u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 932u, 0x08ACA9D8u, 0x08AC76E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 930u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 930u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 930u, 0x08AC76E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACA9D8u) goto L_08ACA9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACA9D8: aot_gpr_4 = (15395u << 16u); aot_gpr_4 = (aot_gpr_4 | 55050u); @@ -7620,8 +11843,21 @@ L_08ACA9D8: L_08ACAA04: aot_gpr_31 = (0x08ACAA0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 934u, 0x08ACAA0Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAA0Cu) goto L_08ACAA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAA0C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7632,8 +11868,21 @@ L_08ACAA0C: L_08ACAA14: aot_gpr_31 = (0x08ACAA1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 936u, 0x08ACAA1Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAA1Cu) goto L_08ACAA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAA1C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7650,16 +11899,42 @@ L_08ACAA24: } L_08ACAA2C: aot_gpr_31 = (0x08ACAA34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 939u, 0x08ACAA34u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAA34u) goto L_08ACAA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAA34: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAA48u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 940u, 0x08ACAA48u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAA48u) goto L_08ACAA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAA48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7669,16 +11944,42 @@ L_08ACAA48: } L_08ACAA50: aot_gpr_31 = (0x08ACAA58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 942u, 0x08ACAA58u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAA58u) goto L_08ACAA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAA58: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAA6Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 943u, 0x08ACAA6Cu, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAA6Cu) goto L_08ACAA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAA6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7689,8 +11990,21 @@ L_08ACAA6C: L_08ACAA74: aot_gpr_31 = (0x08ACAA7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 945u, 0x08ACAA7Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAA7Cu) goto L_08ACAA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAA7C: aot_gpr_31 = (0x08ACAA84u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7706,8 +12020,21 @@ L_08ACAA84: L_08ACAA8C: aot_gpr_31 = (0x08ACAA94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 948u, 0x08ACAA94u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAA94u) goto L_08ACAA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAA94: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7718,8 +12045,21 @@ L_08ACAA94: L_08ACAA9C: aot_gpr_31 = (0x08ACAAA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 950u, 0x08ACAAA4u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAAA4u) goto L_08ACAAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAAA4: aot_gpr_31 = (0x08ACAAACu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7737,8 +12077,21 @@ L_08ACAAAC: L_08ACAABC: aot_gpr_31 = (0x08ACAAC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 953u, 0x08ACAAC4u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAAC4u) goto L_08ACAAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAAC4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7749,8 +12102,21 @@ L_08ACAAC4: L_08ACAACC: aot_gpr_31 = (0x08ACAAD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 955u, 0x08ACAAD4u, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAAD4u) goto L_08ACAAD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAAD4: aot_gpr_31 = (0x08ACAADCu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -7777,8 +12143,21 @@ L_08ACAAEC: L_08ACAAFC: aot_gpr_31 = (0x08ACAB04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 959u, 0x08ACAB04u, 0x08AC7794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 941u, 0x08AC7794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAB04u) goto L_08ACAB04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAB04: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -7789,16 +12168,42 @@ L_08ACAB04: } L_08ACAB10: aot_gpr_31 = (0x08ACAB18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 961u, 0x08ACAB18u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAB18u) goto L_08ACAB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAB18: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAB2Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 962u, 0x08ACAB2Cu, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAB2Cu) goto L_08ACAB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAB2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7808,16 +12213,42 @@ L_08ACAB2C: } L_08ACAB34: aot_gpr_31 = (0x08ACAB3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 964u, 0x08ACAB3Cu, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAB3Cu) goto L_08ACAB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAB3C: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAB50u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 965u, 0x08ACAB50u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAB50u) goto L_08ACAB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAB50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7850,8 +12281,21 @@ L_08ACAB78: aot_fpr_20 = aot_fpr_0 - aot_fpr_20; aot_gpr_31 = (0x08ACAB88u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 970u, 0x08ACAB88u, 0x08AC74F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 908u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 908u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 908u, 0x08AC74F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAB88u) goto L_08ACAB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAB88: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_fpr_12 = std::bit_cast(0u); @@ -7865,8 +12309,21 @@ L_08ACAB88: L_08ACABA0: aot_gpr_31 = (0x08ACABA8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 972u, 0x08ACABA8u, 0x08AC7518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 909u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 909u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 909u, 0x08AC7518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACABA8u) goto L_08ACABA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACABA8: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_fpr_12 = std::bit_cast(0u); @@ -7880,8 +12337,21 @@ L_08ACABA8: L_08ACABC0: aot_gpr_31 = (0x08ACABC8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 974u, 0x08ACABC8u, 0x08AC753Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 910u, 0x08AC753Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACABC8u) goto L_08ACABC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACABC8: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACABD4u); @@ -7899,8 +12369,21 @@ L_08ACABD4: L_08ACABE0: aot_gpr_31 = (0x08ACABE8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 977u, 0x08ACABE8u, 0x08AC7564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 911u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 911u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 911u, 0x08AC7564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACABE8u) goto L_08ACABE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACABE8: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACABF4u); @@ -7929,8 +12412,21 @@ L_08ACAC04: L_08ACAC18: aot_gpr_31 = (0x08ACAC20u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 982u, 0x08ACAC20u, 0x08AC7518u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 909u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 909u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 909u, 0x08AC7518u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAC20u) goto L_08ACAC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAC20: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_fpr_12 = std::bit_cast(0u); @@ -7944,8 +12440,21 @@ L_08ACAC20: L_08ACAC38: aot_gpr_31 = (0x08ACAC40u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 984u, 0x08ACAC40u, 0x08AC753Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 910u, 0x08AC753Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAC40u) goto L_08ACAC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAC40: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACAC4Cu); @@ -7963,8 +12472,21 @@ L_08ACAC4C: L_08ACAC58: aot_gpr_31 = (0x08ACAC60u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 987u, 0x08ACAC60u, 0x08AC7564u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 911u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 911u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 911u, 0x08AC7564u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAC60u) goto L_08ACAC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAC60: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0) ^ 0x80000000u); aot_gpr_31 = (0x08ACAC6Cu); @@ -8002,8 +12524,21 @@ L_08ACACB4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(672))); aot_gpr_31 = (0x08ACACC0u); aot_fpr_12 = aot_fpr_0 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 994u, 0x08ACACC0u, 0x08AC7590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 912u, 0x08AC7590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACACC0u) goto L_08ACACC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACACC0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1332))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_12)) ? 0x00800000u : 0u); @@ -8025,8 +12560,21 @@ L_08ACACDC: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08ACACF8u); aot_fpr_12 = aot_fpr_12 + aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 997u, 0x08ACACF8u, 0x08AC7590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 912u, 0x08AC7590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACACF8u) goto L_08ACACF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACACF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1332))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_12)) ? 0x00800000u : 0u); @@ -8048,8 +12596,21 @@ L_08ACAD14: aot_fpr_13 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08ACAD30u); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1000u, 0x08ACAD30u, 0x08AC7590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 912u, 0x08AC7590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAD30u) goto L_08ACAD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAD30: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1332))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_12)) ? 0x00800000u : 0u); @@ -8079,35 +12640,113 @@ L_08ACAD58: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAD80u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1004u, 0x08ACAD80u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAD80u) goto L_08ACAD80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAD80: aot_gpr_31 = (0x08ACAD88u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1005u, 0x08ACAD88u, 0x0890D7C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 362u, 0x0890D7C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAD88u) goto L_08ACAD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAD88: aot_gpr_31 = (0x08ACAD90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1006u, 0x08ACAD90u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAD90u) goto L_08ACAD90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAD90: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACADA0u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1007u, 0x08ACADA0u, 0x08A03040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 774u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 774u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 774u, 0x08A03040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACADA0u) goto L_08ACADA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACADA0: aot_gpr_31 = (0x08ACADA8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1008u, 0x08ACADA8u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACADA8u) goto L_08ACADA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACADA8: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACADB8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1009u, 0x08ACADB8u, 0x08A032E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 830u, 0x08A032E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACADB8u) goto L_08ACADB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACADB8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8118,8 +12757,21 @@ L_08ACADB8: L_08ACADC0: aot_gpr_31 = (0x08ACADC8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1011u, 0x08ACADC8u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACADC8u) goto L_08ACADC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACADC8: aot_gpr_4 = (0u | 39u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8140,8 +12792,21 @@ L_08ACADD4: L_08ACADE4: aot_gpr_31 = (0x08ACADECu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1014u, 0x08ACADECu, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACADECu) goto L_08ACADEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACADEC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 22u); @@ -8149,8 +12814,21 @@ L_08ACADEC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08ACAE04u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1015u, 0x08ACAE04u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE04u) goto L_08ACAE04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8161,8 +12839,21 @@ L_08ACAE04: L_08ACAE0C: aot_gpr_31 = (0x08ACAE14u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1017u, 0x08ACAE14u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE14u) goto L_08ACAE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE14: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 21u); @@ -8170,8 +12861,21 @@ L_08ACAE14: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08ACAE2Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1018u, 0x08ACAE2Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE2Cu) goto L_08ACAE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8182,8 +12886,21 @@ L_08ACAE2C: L_08ACAE34: aot_gpr_31 = (0x08ACAE3Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1020u, 0x08ACAE3Cu, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE3Cu) goto L_08ACAE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE3C: aot_gpr_4 = (0u | 40u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8195,8 +12912,21 @@ L_08ACAE3C: L_08ACAE48: aot_gpr_31 = (0x08ACAE50u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1022u, 0x08ACAE50u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE50u) goto L_08ACAE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE50: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 25u); @@ -8204,8 +12934,21 @@ L_08ACAE50: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08ACAE68u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1023u, 0x08ACAE68u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE68u) goto L_08ACAE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8216,8 +12959,21 @@ L_08ACAE68: L_08ACAE70: aot_gpr_31 = (0x08ACAE78u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1025u, 0x08ACAE78u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE78u) goto L_08ACAE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE78: aot_gpr_4 = (0u | 43u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8229,14 +12985,40 @@ L_08ACAE78: L_08ACAE84: aot_gpr_31 = (0x08ACAE8Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1027u, 0x08ACAE8Cu, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE8Cu) goto L_08ACAE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE8C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAE98u); aot_gpr_5 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1028u, 0x08ACAE98u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAE98u) goto L_08ACAE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAE98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8247,8 +13029,21 @@ L_08ACAE98: L_08ACAEA0: aot_gpr_31 = (0x08ACAEA8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1030u, 0x08ACAEA8u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAEA8u) goto L_08ACAEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAEA8: aot_gpr_4 = (0u | 44u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8260,15 +13055,41 @@ L_08ACAEA8: L_08ACAEB4: aot_gpr_31 = (0x08ACAEBCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1032u, 0x08ACAEBCu, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAEBCu) goto L_08ACAEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAEBC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(640), 0u); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAECCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1033u, 0x08ACAECCu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAECCu) goto L_08ACAECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAECC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(112))); @@ -8284,8 +13105,21 @@ L_08ACAECC: L_08ACAEE8: aot_gpr_31 = (0x08ACAEF0u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1035u, 0x08ACAEF0u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAEF0u) goto L_08ACAEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAEF0: aot_fpr_12 = std::bit_cast(aot_gpr_2); { const bool branch_taken = static_cast(aot_gpr_2) >= 0; @@ -8340,8 +13174,21 @@ L_08ACAF48: L_08ACAF50: aot_gpr_31 = (0x08ACAF58u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1042u, 0x08ACAF58u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAF58u) goto L_08ACAF58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAF58: aot_gpr_4 = (0u | 45u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8355,8 +13202,21 @@ L_08ACAF64: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAF74u); aot_gpr_5 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1044u, 0x08ACAF74u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAF74u) goto L_08ACAF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAF74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8367,8 +13227,21 @@ L_08ACAF74: L_08ACAF7C: aot_gpr_31 = (0x08ACAF84u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1046u, 0x08ACAF84u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAF84u) goto L_08ACAF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAF84: aot_gpr_4 = (0u | 53u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8382,8 +13255,21 @@ L_08ACAF90: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAFA0u); aot_gpr_5 = (0u | 54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1048u, 0x08ACAFA0u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAFA0u) goto L_08ACAFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAFA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8396,8 +13282,21 @@ L_08ACAFA8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACAFB8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1050u, 0x08ACAFB8u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAFB8u) goto L_08ACAFB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAFB8: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1756), 0u); @@ -8421,8 +13320,21 @@ L_08ACAFCC: } L_08ACAFD4: aot_gpr_31 = (0x08ACAFDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1054u, 0x08ACAFDCu, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACAFDCu) goto L_08ACAFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACAFDC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2072))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -8450,21 +13362,60 @@ L_08ACB004: aot_gpr_16 = (aot_gpr_17 + static_cast(656)); aot_gpr_31 = (0x08ACB010u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1058u, 0x08ACB010u, 0x08AC763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 920u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 920u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 920u, 0x08AC763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB010u) goto L_08ACB010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB010: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB01Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1059u, 0x08ACB01Cu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB01Cu) goto L_08ACB01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB01C: aot_gpr_16 = (ctx.gpr[29] + static_cast(544)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB02Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1060u, 0x08ACB02Cu, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB02Cu) goto L_08ACB02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB02C: aot_gpr_31 = (0x08ACB034u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -8474,8 +13425,21 @@ L_08ACB034: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACB044u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1062u, 0x08ACB044u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB044u) goto L_08ACB044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB044: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8505,8 +13469,21 @@ L_08ACB064: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08ACB074u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1067u, 0x08ACB074u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB074u) goto L_08ACB074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB074: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8527,21 +13504,60 @@ L_08ACB090: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACB0A0u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1070u, 0x08ACB0A0u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB0A0u) goto L_08ACB0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB0A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACB0ACu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1071u, 0x08ACB0ACu, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB0ACu) goto L_08ACB0AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB0AC: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACB0BCu); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(40), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1072u, 0x08ACB0BCu, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB0BCu) goto L_08ACB0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB0BC: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACB0C8u); @@ -8563,8 +13579,21 @@ L_08ACB0D4: } L_08ACB0E8: aot_gpr_31 = (0x08ACB0F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1076u, 0x08ACB0F0u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB0F0u) goto L_08ACB0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB0F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2072))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -8604,25 +13633,77 @@ L_08ACB12C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08ACB140u); ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1081u, 0x08ACB140u, 0x08AC759Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 913u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 913u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 913u, 0x08AC759Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB140u) goto L_08ACB140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB140: aot_gpr_16 = (aot_gpr_17 + static_cast(656)); aot_gpr_31 = (0x08ACB14Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1082u, 0x08ACB14Cu, 0x08AC763Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 920u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 920u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 920u, 0x08AC763Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB14Cu) goto L_08ACB14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB14C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB158u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1083u, 0x08ACB158u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB158u) goto L_08ACB158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB158: aot_gpr_31 = (0x08ACB160u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1084u, 0x08ACB160u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB160u) goto L_08ACB160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB160: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8635,21 +13716,60 @@ L_08ACB168: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB178u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1086u, 0x08ACB178u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB178u) goto L_08ACB178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB178: ctx.gpr[6] = (ctx.gpr[29] + static_cast(592)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB188u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1087u, 0x08ACB188u, 0x089B5A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 358u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 358u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 358u, 0x089B5A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB188u) goto L_08ACB188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB188: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACB194u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1088u, 0x08ACB194u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB194u) goto L_08ACB194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB194: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8669,14 +13789,40 @@ L_08ACB1A4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB1B4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1091u, 0x08ACB1B4u, 0x089105E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 94u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 94u, 0x089105E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB1B4u) goto L_08ACB1B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB1B4: aot_gpr_4 = (ctx.gpr[29] + static_cast(592)); aot_gpr_31 = (0x08ACB1C0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1092u, 0x08ACB1C0u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB1C0u) goto L_08ACB1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB1C0: aot_gpr_16 = (ctx.gpr[29] + static_cast(624)); aot_gpr_31 = (0x08ACB1CCu); @@ -8688,13 +13834,39 @@ L_08ACB1CC: aot_gpr_5 = (ctx.gpr[29] + static_cast(592)); aot_gpr_31 = (0x08ACB1DCu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1094u, 0x08ACB1DCu, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB1DCu) goto L_08ACB1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB1DC: aot_gpr_31 = (0x08ACB1E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1095u, 0x08ACB1E4u, 0x08AC75DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 916u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 916u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 916u, 0x08AC75DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB1E4u) goto L_08ACB1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB1E4: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACB1F0u); @@ -8723,8 +13895,21 @@ L_08ACB208: L_08ACB21C: aot_gpr_31 = (0x08ACB224u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1100u, 0x08ACB224u, 0x0890FCD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 843u, 0x0890FCD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB224u) goto L_08ACB224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB224: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8736,15 +13921,41 @@ L_08ACB22C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08ACB238u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1102u, 0x08ACB238u, 0x08910890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 148u, 0x08910890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB238u) goto L_08ACB238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB238: aot_gpr_16 = (ctx.gpr[29] + static_cast(576)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB248u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1103u, 0x08ACB248u, 0x08910074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 10u, 0x08910074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB248u) goto L_08ACB248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB248: aot_gpr_31 = (0x08ACB250u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -8754,8 +13965,21 @@ L_08ACB250: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACB260u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1105u, 0x08ACB260u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB260u) goto L_08ACB260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB260: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8770,8 +13994,21 @@ L_08ACB268: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(460), aot_gpr_5); aot_gpr_31 = (0x08ACB280u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1107u, 0x08ACB280u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB280u) goto L_08ACB280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB280: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB28Cu); @@ -8788,8 +14025,21 @@ L_08ACB28C: L_08ACB294: aot_gpr_31 = (0x08ACB29Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1110u, 0x08ACB29Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB29Cu) goto L_08ACB29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB29C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8847,8 +14097,21 @@ L_08ACB2E0: L_08ACB2EC: aot_gpr_31 = (0x08ACB2F4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1120u, 0x08ACB2F4u, 0x08AC7A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 978u, 0x08AC7A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB2F4u) goto L_08ACB2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB2F4: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -8882,8 +14145,21 @@ L_08ACB324: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB330u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1125u, 0x08ACB330u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB330u) goto L_08ACB330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB330: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8894,8 +14170,21 @@ L_08ACB330: L_08ACB338: aot_gpr_31 = (0x08ACB340u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1127u, 0x08ACB340u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB340u) goto L_08ACB340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB340: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -8919,8 +14208,21 @@ L_08ACB354: L_08ACB35C: aot_gpr_31 = (0x08ACB364u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1131u, 0x08ACB364u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB364u) goto L_08ACB364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB364: aot_gpr_4 = (16800u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8939,13 +14241,39 @@ L_08ACB37C: L_08ACB384: aot_gpr_31 = (0x08ACB38Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1134u, 0x08ACB38Cu, 0x08AC7930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 956u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 956u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 956u, 0x08AC7930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB38Cu) goto L_08ACB38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB38C: aot_gpr_31 = (0x08ACB394u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1135u, 0x08ACB394u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB394u) goto L_08ACB394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB394: aot_gpr_4 = (14801u << 16u); aot_gpr_4 = (aot_gpr_4 | 46871u); @@ -8964,8 +14292,21 @@ L_08ACB3B0: L_08ACB3B8: aot_gpr_31 = (0x08ACB3C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1138u, 0x08ACB3C0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB3C0u) goto L_08ACB3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB3C0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8980,8 +14321,21 @@ L_08ACB3C8: L_08ACB3D0: aot_gpr_31 = (0x08ACB3D8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1141u, 0x08ACB3D8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB3D8u) goto L_08ACB3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB3D8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9002,8 +14356,21 @@ L_08ACB3F0: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACB3FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1145u, 0x08ACB3FCu, 0x08B012BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 339u, 0x08B012BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB3FCu) goto L_08ACB3FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB3FC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9020,8 +14387,21 @@ L_08ACB40C: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACB418u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1148u, 0x08ACB418u, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB418u) goto L_08ACB418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB418: aot_gpr_31 = (0x08ACB420u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9031,8 +14411,21 @@ L_08ACB420: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACB42Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1150u, 0x08ACB42Cu, 0x08AC7960u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 962u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 962u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 962u, 0x08AC7960u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB42Cu) goto L_08ACB42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB42C: aot_gpr_31 = (0x08ACB434u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9043,8 +14436,21 @@ L_08ACB434: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08ACB444u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1152u, 0x08ACB444u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB444u) goto L_08ACB444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB444: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9060,8 +14466,21 @@ L_08ACB44C: L_08ACB454: aot_gpr_31 = (0x08ACB45Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1155u, 0x08ACB45Cu, 0x08AC7970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 964u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 964u, 0x08AC7970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB45Cu) goto L_08ACB45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB45C: { const bool branch_taken = aot_gpr_2 != aot_gpr_17; if (branch_taken) { @@ -9077,8 +14496,21 @@ L_08ACB464: L_08ACB46C: aot_gpr_31 = (0x08ACB474u); aot_gpr_4 = (aot_gpr_2 + static_cast(384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1158u, 0x08ACB474u, 0x08AC7958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 961u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 961u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 961u, 0x08AC7958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB474u) goto L_08ACB474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB474: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9094,8 +14526,21 @@ L_08ACB47C: L_08ACB484: aot_gpr_31 = (0x08ACB48Cu); aot_gpr_4 = (aot_gpr_2 + static_cast(384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1161u, 0x08ACB48Cu, 0x08AC7958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 961u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 961u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 961u, 0x08AC7958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB48Cu) goto L_08ACB48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB48C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9126,13 +14571,39 @@ L_08ACB4B4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACB4C0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1166u, 0x08ACB4C0u, 0x08AC7774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 940u, 0x08AC7774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB4C0u) goto L_08ACB4C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB4C0: aot_gpr_31 = (0x08ACB4C8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1167u, 0x08ACB4C8u, 0x08AC7A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 978u, 0x08AC7A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB4C8u) goto L_08ACB4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB4C8: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9155,8 +14626,21 @@ L_08ACB4DC: L_08ACB4E8: aot_gpr_31 = (0x08ACB4F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1171u, 0x08ACB4F0u, 0x08AC7948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 959u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 959u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 959u, 0x08AC7948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB4F0u) goto L_08ACB4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB4F0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -9189,8 +14673,21 @@ L_08ACB4F0: aot_gpr_5 = (aot_gpr_5 << 24u); aot_gpr_31 = (0x08ACB56Cu); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1172u, 0x08ACB56Cu, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB56Cu) goto L_08ACB56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB56C: aot_gpr_31 = (0x08ACB574u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9199,14 +14696,40 @@ L_08ACB56C: L_08ACB574: aot_gpr_31 = (0x08ACB57Cu); aot_gpr_16 = (aot_gpr_2 + static_cast(384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1174u, 0x08ACB57Cu, 0x08B0E454u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 555u, 0x08B0E454u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB57Cu) goto L_08ACB57C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB57C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACB588u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1175u, 0x08ACB588u, 0x08AC7960u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 962u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 962u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 962u, 0x08AC7960u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB588u) goto L_08ACB588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB588: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9228,8 +14751,21 @@ L_08ACB598: L_08ACB5A4: aot_gpr_31 = (0x08ACB5ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1179u, 0x08ACB5ACu, 0x08AC7948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 959u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 959u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 959u, 0x08AC7948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB5ACu) goto L_08ACB5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB5AC: aot_gpr_4 = (17008u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9244,8 +14780,21 @@ L_08ACB5AC: aot_gpr_5 = (aot_gpr_5 << 24u); aot_gpr_31 = (0x08ACB5E0u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1180u, 0x08ACB5E0u, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB5E0u) goto L_08ACB5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB5E0: aot_gpr_31 = (0x08ACB5E8u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9255,8 +14804,21 @@ L_08ACB5E8: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACB5F4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1182u, 0x08ACB5F4u, 0x08AC7960u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 962u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 962u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 962u, 0x08AC7960u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB5F4u) goto L_08ACB5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB5F4: aot_gpr_31 = (0x08ACB5FCu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9266,8 +14828,21 @@ L_08ACB5FC: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACB608u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1184u, 0x08ACB608u, 0x08AC7950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 960u, 0x08AC7950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB608u) goto L_08ACB608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB608: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9278,8 +14853,21 @@ L_08ACB608: L_08ACB610: aot_gpr_31 = (0x08ACB618u); aot_gpr_4 = (ctx.gpr[29] + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1186u, 0x08ACB618u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB618u) goto L_08ACB618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB618: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9333,8 +14921,21 @@ L_08ACB670: aot_gpr_4 = (ctx.gpr[29] + static_cast(656)); aot_gpr_31 = (0x08ACB67Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1194u, 0x08ACB67Cu, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB67Cu) goto L_08ACB67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB67C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); @@ -9350,8 +14951,21 @@ L_08ACB67C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08ACB6B4u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1195u, 0x08ACB6B4u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB6B4u) goto L_08ACB6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB6B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(720)))))); ctx.gpr[18] = (0u | 0u); @@ -9384,19 +14998,58 @@ L_08ACB6F0: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08ACB700u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1199u, 0x08ACB700u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB700u) goto L_08ACB700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB700: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08ACB70Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1200u, 0x08ACB70Cu, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB70Cu) goto L_08ACB70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB70C: aot_gpr_31 = (0x08ACB714u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1201u, 0x08ACB714u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB714u) goto L_08ACB714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB714: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -9425,8 +15078,21 @@ L_08ACB734: L_08ACB73C: aot_gpr_31 = (0x08ACB744u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1206u, 0x08ACB744u, 0x08B01088u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 296u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 296u, 0x08B01088u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB744u) goto L_08ACB744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB744: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9448,8 +15114,21 @@ L_08ACB74C: L_08ACB768: aot_gpr_31 = (0x08ACB770u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1209u, 0x08ACB770u, 0x08AC7794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 941u, 0x08AC7794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB770u) goto L_08ACB770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB770: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -9462,8 +15141,21 @@ L_08ACB77C: aot_gpr_16 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACB788u); aot_gpr_4 = (ctx.gpr[29] + static_cast(704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1211u, 0x08ACB788u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB788u) goto L_08ACB788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB788: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); goto L_08ACB78C; @@ -9483,8 +15175,21 @@ L_08ACB7A8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACB7B4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1214u, 0x08ACB7B4u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB7B4u) goto L_08ACB7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB7B4: aot_gpr_31 = (0x08ACB7BCu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9506,8 +15211,21 @@ L_08ACB7CC: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACB7D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1218u, 0x08ACB7D8u, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB7D8u) goto L_08ACB7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB7D8: aot_gpr_31 = (0x08ACB7E0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9518,8 +15236,21 @@ L_08ACB7E0: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08ACB7F0u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1220u, 0x08ACB7F0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB7F0u) goto L_08ACB7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB7F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -9533,8 +15264,21 @@ L_08ACB7F0: L_08ACB800: aot_gpr_31 = (0x08ACB808u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1222u, 0x08ACB808u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB808u) goto L_08ACB808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB808: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -9552,15 +15296,41 @@ L_08ACB81C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACB828u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1225u, 0x08ACB828u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB828u) goto L_08ACB828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB828: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_4 = (ctx.gpr[29] + static_cast(752)); aot_gpr_31 = (0x08ACB838u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1226u, 0x08ACB838u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB838u) goto L_08ACB838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB838: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_2 = (16800u << 16u); @@ -9573,8 +15343,21 @@ L_08ACB838: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08ACB864u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1227u, 0x08ACB864u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB864u) goto L_08ACB864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB864: aot_gpr_16 = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(aot_gpr_16) < 0; @@ -9593,8 +15376,21 @@ L_08ACB870: ctx.gpr[18] = (ctx.gpr[29] + static_cast(880)); aot_gpr_31 = (0x08ACB894u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1229u, 0x08ACB894u, 0x08AC78A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 954u, 0x08AC78A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB894u) goto L_08ACB894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB894: aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(0), 0u); aot_gpr_2 = (16672u << 16u); @@ -9609,8 +15405,21 @@ L_08ACB894: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08ACB8C8u); aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1230u, 0x08ACB8C8u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB8C8u) goto L_08ACB8C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB8C8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[29] + static_cast(772)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -9625,14 +15434,40 @@ L_08ACB8D4: aot_gpr_5 = (ctx.gpr[29] + static_cast(784)); aot_gpr_31 = (0x08ACB8E8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1232u, 0x08ACB8E8u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB8E8u) goto L_08ACB8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB8E8: aot_gpr_5 = (ctx.gpr[29] + static_cast(768)); aot_gpr_31 = (0x08ACB8F4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1233u, 0x08ACB8F4u, 0x08B4237Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 520u, 0x08B4237Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB8F4u) goto L_08ACB8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB8F4: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -9646,8 +15481,21 @@ L_08ACB8F4: L_08ACB904: aot_gpr_31 = (0x08ACB90Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1235u, 0x08ACB90Cu, 0x08AECC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 217u, 0x08AECC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB90Cu) goto L_08ACB90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB90C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9659,8 +15507,21 @@ L_08ACB914: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08ACB920u); aot_gpr_4 = (0u | 1584u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1237u, 0x08ACB920u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB920u) goto L_08ACB920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB920: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -9674,8 +15535,21 @@ L_08ACB92C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ACB938u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1239u, 0x08ACB938u, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB938u) goto L_08ACB938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB938: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_08ACB93C; @@ -9690,8 +15564,21 @@ L_08ACB944: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08ACB950u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1242u, 0x08ACB950u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB950u) goto L_08ACB950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB950: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -9706,8 +15593,21 @@ L_08ACB95C: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08ACB96Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1244u, 0x08ACB96Cu, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB96Cu) goto L_08ACB96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB96C: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_08ACB970; @@ -9728,8 +15628,21 @@ L_08ACB978: aot_gpr_16 = (ctx.gpr[29] + static_cast(928)); aot_gpr_31 = (0x08ACB99Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1247u, 0x08ACB99Cu, 0x08AC78ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 955u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 955u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 955u, 0x08AC78ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB99Cu) goto L_08ACB99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB99C: aot_fpr_20 = std::bit_cast(0u); aot_gpr_5 = (16512u << 16u); @@ -9739,21 +15652,60 @@ L_08ACB99C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08ACB9BCu); ctx.fpr[14] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1248u, 0x08ACB9BCu, 0x08AC759Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 913u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 913u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 913u, 0x08AC759Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB9BCu) goto L_08ACB9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB9BC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACB9CCu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1249u, 0x08ACB9CCu, 0x08AC745Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 899u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 899u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 899u, 0x08AC745Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB9CCu) goto L_08ACB9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB9CC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACB9D8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1250u, 0x08ACB9D8u, 0x08AC7654u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 923u, 0x08AC7654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB9D8u) goto L_08ACB9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB9D8: aot_gpr_5 = (16479u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -9762,31 +15714,96 @@ L_08ACB9D8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACB9F4u); ctx.fpr[14] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1251u, 0x08ACB9F4u, 0x08AC7678u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 925u, 0x08AC7678u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACB9F4u) goto L_08ACB9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACB9F4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACBA00u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1252u, 0x08ACBA00u, 0x08AC7774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 940u, 0x08AC7774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBA00u) goto L_08ACBA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBA00: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACBA0Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1253u, 0x08ACBA0Cu, 0x08AC7980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 966u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 966u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 966u, 0x08AC7980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBA0Cu) goto L_08ACBA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBA0C: aot_gpr_31 = (0x08ACBA14u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1254u, 0x08ACBA14u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBA14u) goto L_08ACBA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBA14: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACBA20u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1255u, 0x08ACBA20u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBA20u) goto L_08ACBA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBA20: aot_gpr_31 = (0x08ACBA28u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9808,8 +15825,21 @@ L_08ACBA38: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACBA44u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1259u, 0x08ACBA44u, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBA44u) goto L_08ACBA44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBA44: aot_gpr_31 = (0x08ACBA4Cu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9820,8 +15850,21 @@ L_08ACBA4C: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08ACBA5Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1261u, 0x08ACBA5Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBA5Cu) goto L_08ACBA5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBA5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -9862,8 +15905,21 @@ L_08ACBA90: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACBA9Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1268u, 0x08ACBA9Cu, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBA9Cu) goto L_08ACBA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBA9C: aot_gpr_31 = (0x08ACBAA4u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9874,8 +15930,21 @@ L_08ACBAA4: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08ACBAB4u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1270u, 0x08ACBAB4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBAB4u) goto L_08ACBAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBAB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -9899,8 +15968,21 @@ L_08ACBACC: L_08ACBAD8: aot_gpr_31 = (0x08ACBAE0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1274u, 0x08ACBAE0u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBAE0u) goto L_08ACBAE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBAE0: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9912,8 +15994,21 @@ L_08ACBAE0: L_08ACBAEC: aot_gpr_31 = (0x08ACBAF4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1276u, 0x08ACBAF4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBAF4u) goto L_08ACBAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBAF4: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9944,8 +16039,21 @@ L_08ACBB18: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08ACBB28u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1281u, 0x08ACBB28u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBB28u) goto L_08ACBB28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBB28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9971,8 +16079,21 @@ L_08ACBB40: L_08ACBB48: aot_gpr_31 = (0x08ACBB50u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1286u, 0x08ACBB50u, 0x08AC79DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 973u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 973u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 973u, 0x08AC79DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBB50u) goto L_08ACBB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBB50: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -10026,8 +16147,21 @@ L_08ACBBA0: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x08ACBBBCu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1293u, 0x08ACBBBCu, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBBBCu) goto L_08ACBBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBBBC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -10041,8 +16175,21 @@ L_08ACBBC4: ctx.gpr[7] = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08ACBBD8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1295u, 0x08ACBBD8u, 0x088A0920u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 120u, 0x088A0920u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBBD8u) goto L_08ACBBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBBD8: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -10057,8 +16204,21 @@ L_08ACBBE0: ctx.gpr[7] = (ctx.gpr[29] + static_cast(32)); aot_gpr_31 = (0x08ACBBF4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1297u, 0x08ACBBF4u, 0x0889F400u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 693u, 0x0889F400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBBF4u) goto L_08ACBBF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBBF4: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_08ACBBF8; @@ -10139,13 +16299,39 @@ L_08ACBC7C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACBC88u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1307u, 0x08ACBC88u, 0x08906484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 501u, 0x08906484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBC88u) goto L_08ACBC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBC88: aot_gpr_31 = (0x08ACBC90u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1308u, 0x08ACBC90u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBC90u) goto L_08ACBC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBC90: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -10187,8 +16373,21 @@ L_08ACBCC4: aot_gpr_5 = (aot_gpr_5 | 128u); aot_gpr_31 = (0x08ACBCD8u); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(460), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1315u, 0x08ACBCD8u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBCD8u) goto L_08ACBCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBCD8: aot_gpr_31 = (0x08ACBCE0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -10197,8 +16396,21 @@ L_08ACBCD8: L_08ACBCE0: aot_gpr_31 = (0x08ACBCE8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1317u, 0x08ACBCE8u, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBCE8u) goto L_08ACBCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBCE8: aot_gpr_31 = (0x08ACBCF0u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -10208,8 +16420,21 @@ L_08ACBCF0: aot_gpr_4 = (aot_gpr_2 + static_cast(384)); aot_gpr_31 = (0x08ACBCFCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1319u, 0x08ACBCFCu, 0x08AC7950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 960u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 960u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 960u, 0x08AC7950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBCFCu) goto L_08ACBCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBCFC: aot_gpr_31 = (0x08ACBD04u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -10224,8 +16449,21 @@ L_08ACBD04: L_08ACBD10: aot_gpr_31 = (0x08ACBD18u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1322u, 0x08ACBD18u, 0x08AC7948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 959u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 959u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 959u, 0x08AC7948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBD18u) goto L_08ACBD18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBD18: aot_gpr_4 = (17008u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -10236,8 +16474,21 @@ L_08ACBD18: aot_gpr_5 = (aot_gpr_5 << 24u); aot_gpr_31 = (0x08ACBD3Cu); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1323u, 0x08ACBD3Cu, 0x08AC7968u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 963u, 0x08AC7968u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBD3Cu) goto L_08ACBD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBD3C: aot_gpr_31 = (0x08ACBD44u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -10247,8 +16498,21 @@ L_08ACBD44: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACBD50u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1325u, 0x08ACBD50u, 0x08AC7774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 940u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 940u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 940u, 0x08AC7774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBD50u) goto L_08ACBD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBD50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10266,8 +16530,21 @@ L_08ACBD60: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08ACBD70u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1328u, 0x08ACBD70u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBD70u) goto L_08ACBD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBD70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10358,8 +16635,21 @@ L_08ACBDF0: L_08ACBE00: aot_gpr_31 = (0x08ACBE08u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1343u, 0x08ACBE08u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBE08u) goto L_08ACBE08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBE08: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -10395,8 +16685,21 @@ L_08ACBE34: L_08ACBE40: aot_gpr_31 = (0x08ACBE48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1300))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1348u, 0x08ACBE48u, 0x08AC7728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 936u, 0x08AC7728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBE48u) goto L_08ACBE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBE48: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -10409,8 +16712,21 @@ L_08ACBE50: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACBE60u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1350u, 0x08ACBE60u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBE60u) goto L_08ACBE60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBE60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10431,8 +16747,21 @@ L_08ACBE74: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1300))); aot_gpr_31 = (0x08ACBE80u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1353u, 0x08ACBE80u, 0x08AC7764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 939u, 0x08AC7764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBE80u) goto L_08ACBE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBE80: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -10444,8 +16773,21 @@ L_08ACBE80: L_08ACBE8C: aot_gpr_31 = (0x08ACBE94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1355u, 0x08ACBE94u, 0x08AC7978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 965u, 0x08AC7978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBE94u) goto L_08ACBE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBE94: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -10457,8 +16799,21 @@ L_08ACBE94: L_08ACBEA0: aot_gpr_31 = (0x08ACBEA8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1357u, 0x08ACBEA8u, 0x08AC7978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 965u, 0x08AC7978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBEA8u) goto L_08ACBEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBEA8: aot_gpr_4 = (0u | 2u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -10473,8 +16828,21 @@ L_08ACBEB4: L_08ACBEB8: aot_gpr_31 = (0x08ACBEC0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1360u, 0x08ACBEC0u, 0x08AC7A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 978u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 978u, 0x08AC7A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBEC0u) goto L_08ACBEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBEC0: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -10559,8 +16927,21 @@ L_08ACBF3C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACBF48u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1375u, 0x08ACBF48u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBF48u) goto L_08ACBF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBF48: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10573,8 +16954,21 @@ L_08ACBF50: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08ACBF60u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1377u, 0x08ACBF60u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBF60u) goto L_08ACBF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBF60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10602,8 +16996,21 @@ L_08ACBF80: aot_gpr_5 = (0u | 9u); aot_gpr_31 = (0x08ACBF90u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1382u, 0x08ACBF90u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBF90u) goto L_08ACBF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBF90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10614,8 +17021,21 @@ L_08ACBF90: L_08ACBF98: aot_gpr_31 = (0x08ACBFA0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1384u, 0x08ACBFA0u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBFA0u) goto L_08ACBFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBFA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10626,8 +17046,21 @@ L_08ACBFA0: L_08ACBFA8: aot_gpr_31 = (0x08ACBFB0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1386u, 0x08ACBFB0u, 0x08AC7A38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 980u, 0x08AC7A38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBFB0u) goto L_08ACBFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBFB0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -10638,8 +17071,21 @@ L_08ACBFB0: L_08ACBFB8: aot_gpr_31 = (0x08ACBFC0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1388u, 0x08ACBFC0u, 0x08909C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 468u, 0x08909C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBFC0u) goto L_08ACBFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBFC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10663,8 +17109,21 @@ L_08ACBFD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ACBFE4u); aot_gpr_16 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0177->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0177_entry, 1392u, 0x08ACBFE4u, 0x08AC7644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 921u, 0x08AC7644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACBFE4u) goto L_08ACBFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACBFE4: ctx.gpr[18] = (ctx.gpr[29] + static_cast(944)); ctx.gpr[6] = (16672u << 16u); diff --git a/profiles/vcs/generated/generated_unit_0178.cpp b/profiles/vcs/generated/generated_unit_0178.cpp index c2c015a..ec24d4b 100644 --- a/profiles/vcs/generated/generated_unit_0178.cpp +++ b/profiles/vcs/generated/generated_unit_0178.cpp @@ -1226,6 +1226,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08ACC000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1244,14 +1268,40 @@ L_08ACC000: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACC010u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 2u, 0x08ACC010u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC010u) goto L_08ACC010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC010: aot_gpr_4 = (aot_gpr_29 + static_cast(960)); aot_gpr_31 = (0x08ACC01Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 3u, 0x08ACC01Cu, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC01Cu) goto L_08ACC01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC01C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 25u); @@ -1329,8 +1379,21 @@ L_08ACC090: L_08ACC0A0: aot_gpr_31 = (0x08ACC0A8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 15u, 0x08ACC0A8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC0A8u) goto L_08ACC0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC0A8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1345,8 +1408,21 @@ L_08ACC0B0: L_08ACC0B8: aot_gpr_31 = (0x08ACC0C0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 18u, 0x08ACC0C0u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC0C0u) goto L_08ACC0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC0C0: aot_gpr_4 = (0u | 14u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1362,13 +1438,39 @@ L_08ACC0CC: L_08ACC0D4: aot_gpr_31 = (0x08ACC0DCu); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 21u, 0x08ACC0DCu, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC0DCu) goto L_08ACC0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC0DC: aot_gpr_31 = (0x08ACC0E4u); ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 22u, 0x08ACC0E4u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC0E4u) goto L_08ACC0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC0E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2072))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -1396,8 +1498,21 @@ L_08ACC10C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08ACC11Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 26u, 0x08ACC11Cu, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC11Cu) goto L_08ACC11C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC11C: aot_gpr_4 = (16544u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1419,8 +1534,21 @@ L_08ACC134: L_08ACC140: aot_gpr_31 = (0x08ACC148u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 29u, 0x08ACC148u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC148u) goto L_08ACC148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC148: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -1432,8 +1560,21 @@ L_08ACC148: L_08ACC154: aot_gpr_31 = (0x08ACC15Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 31u, 0x08ACC15Cu, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC15Cu) goto L_08ACC15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC15C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1508,8 +1649,21 @@ L_08ACC1D4: L_08ACC1DC: aot_gpr_31 = (0x08ACC1E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 42u, 0x08ACC1E4u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC1E4u) goto L_08ACC1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC1E4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC1F0u); @@ -1570,8 +1724,21 @@ L_08ACC238: L_08ACC244: aot_gpr_31 = (0x08ACC24Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 51u, 0x08ACC24Cu, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC24Cu) goto L_08ACC24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC24C: aot_gpr_4 = (0u | 5u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1610,8 +1777,21 @@ L_08ACC280: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC28Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 57u, 0x08ACC28Cu, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC28Cu) goto L_08ACC28C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC28C: aot_gpr_31 = (0x08ACC294u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1640,8 +1820,21 @@ L_08ACC2A4: L_08ACC2BC: aot_gpr_31 = (0x08ACC2C4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 61u, 0x08ACC2C4u, 0x08AC79A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 969u, 0x08AC79A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC2C4u) goto L_08ACC2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC2C4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1652,8 +1845,21 @@ L_08ACC2C4: L_08ACC2CC: aot_gpr_31 = (0x08ACC2D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 63u, 0x08ACC2D4u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC2D4u) goto L_08ACC2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC2D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1716))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1690,8 +1896,21 @@ L_08ACC2FC: L_08ACC308: aot_gpr_31 = (0x08ACC310u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 69u, 0x08ACC310u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC310u) goto L_08ACC310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC310: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1723,8 +1942,21 @@ L_08ACC33C: L_08ACC344: aot_gpr_31 = (0x08ACC34Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 74u, 0x08ACC34Cu, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC34Cu) goto L_08ACC34C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC34C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC358u); @@ -1734,8 +1966,21 @@ L_08ACC34C: L_08ACC358: aot_gpr_31 = (0x08ACC360u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 76u, 0x08ACC360u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC360u) goto L_08ACC360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC360: aot_gpr_4 = (0u | 14u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1748,8 +1993,21 @@ L_08ACC36C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC378u); aot_gpr_5 = (0u | 133u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 78u, 0x08ACC378u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC378u) goto L_08ACC378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC378: aot_gpr_31 = (0x08ACC380u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -1759,18 +2017,57 @@ L_08ACC380: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACC38Cu); aot_gpr_5 = (0u | 125u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 80u, 0x08ACC38Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC38Cu) goto L_08ACC38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC38C: aot_gpr_31 = (0x08ACC394u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 81u, 0x08ACC394u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC394u) goto L_08ACC394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC394: aot_gpr_4 = (aot_gpr_2 + static_cast(3000)); aot_gpr_31 = (0x08ACC3A0u); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1728), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 82u, 0x08ACC3A0u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC3A0u) goto L_08ACC3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC3A0: ctx.gpr[16] = (aot_gpr_2 + static_cast(3000)); aot_gpr_31 = (0x08ACC3ACu); @@ -1833,15 +2130,41 @@ L_08ACC410: ctx.fpr[22] = ctx.fpr[22] - aot_fpr_13; aot_gpr_31 = (0x08ACC424u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 93u, 0x08ACC424u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC424u) goto L_08ACC424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC424: aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(1930), static_cast(aot_gpr_2)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); aot_gpr_31 = (0x08ACC434u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22]) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 94u, 0x08ACC434u, 0x08A8EFB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 570u, 0x08A8EFB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC434u) goto L_08ACC434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC434: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACC440u); @@ -1854,8 +2177,21 @@ L_08ACC440: L_08ACC444: aot_gpr_31 = (0x08ACC44Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 97u, 0x08ACC44Cu, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC44Cu) goto L_08ACC44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC44C: aot_gpr_4 = (0u | 13u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1867,8 +2203,21 @@ L_08ACC44C: L_08ACC458: aot_gpr_31 = (0x08ACC460u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 99u, 0x08ACC460u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC460u) goto L_08ACC460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC460: aot_gpr_4 = (static_cast(aot_gpr_2) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1920,47 +2269,138 @@ L_08ACC4A4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC4B8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 107u, 0x08ACC4B8u, 0x08AC5124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 370u, 0x08AC5124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC4B8u) goto L_08ACC4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC4B8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ACC4C4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 108u, 0x08ACC4C4u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC4C4u) goto L_08ACC4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC4C4: ctx.gpr[19] = (aot_gpr_29 + static_cast(32)); ctx.gpr[6] = (aot_gpr_29 + static_cast(64)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACC4D8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 109u, 0x08ACC4D8u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC4D8u) goto L_08ACC4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC4D8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACC4E4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 110u, 0x08ACC4E4u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC4E4u) goto L_08ACC4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC4E4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACC4F0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 111u, 0x08ACC4F0u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC4F0u) goto L_08ACC4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC4F0: ctx.gpr[6] = (16256u << 16u); aot_gpr_4 = (aot_gpr_17 | 0u); aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08ACC504u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 112u, 0x08ACC504u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC504u) goto L_08ACC504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC504: aot_gpr_31 = (0x08ACC50Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 113u, 0x08ACC50Cu, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC50Cu) goto L_08ACC50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC50C: aot_gpr_4 = (16448u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1975,16 +2415,42 @@ L_08ACC524: aot_gpr_4 = (aot_gpr_29 + static_cast(1024)); aot_gpr_31 = (0x08ACC530u); aot_gpr_5 = (aot_gpr_29 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 115u, 0x08ACC530u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC530u) goto L_08ACC530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC530: ctx.gpr[6] = (16256u << 16u); aot_gpr_4 = (aot_gpr_17 | 0u); aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08ACC544u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 116u, 0x08ACC544u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC544u) goto L_08ACC544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC544: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC550u); @@ -2002,16 +2468,42 @@ L_08ACC558: aot_gpr_4 = (aot_gpr_29 + static_cast(1040)); aot_gpr_31 = (0x08ACC564u); aot_gpr_5 = (aot_gpr_29 + static_cast(992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 119u, 0x08ACC564u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC564u) goto L_08ACC564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC564: ctx.gpr[6] = (16256u << 16u); aot_gpr_4 = (aot_gpr_17 | 0u); aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08ACC578u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 120u, 0x08ACC578u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC578u) goto L_08ACC578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC578: aot_gpr_31 = (0x08ACC580u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2032,8 +2524,21 @@ L_08ACC588: L_08ACC590: aot_gpr_31 = (0x08ACC598u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 124u, 0x08ACC598u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC598u) goto L_08ACC598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC598: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -2050,8 +2555,21 @@ L_08ACC5A4: L_08ACC5AC: aot_gpr_31 = (0x08ACC5B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 127u, 0x08ACC5B4u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC5B4u) goto L_08ACC5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC5B4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC5C0u); @@ -2103,8 +2621,21 @@ L_08ACC5EC: L_08ACC604: aot_gpr_31 = (0x08ACC60Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 135u, 0x08ACC60Cu, 0x08AC79A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 969u, 0x08AC79A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC60Cu) goto L_08ACC60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC60C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2115,19 +2646,58 @@ L_08ACC60C: L_08ACC614: aot_gpr_31 = (0x08ACC61Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 137u, 0x08ACC61Cu, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC61Cu) goto L_08ACC61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC61C: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACC628u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 138u, 0x08ACC628u, 0x08AC79B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 970u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 970u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 970u, 0x08AC79B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC628u) goto L_08ACC628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC628: aot_gpr_31 = (0x08ACC630u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 139u, 0x08ACC630u, 0x08AC7940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 958u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 958u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 958u, 0x08AC7940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC630u) goto L_08ACC630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC630: aot_gpr_31 = (0x08ACC638u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2137,8 +2707,21 @@ L_08ACC638: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACC644u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 141u, 0x08ACC644u, 0x08AC77BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 945u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 945u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 945u, 0x08AC77BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC644u) goto L_08ACC644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC644: ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACC650u); @@ -2168,13 +2751,39 @@ L_08ACC66C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC678u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 146u, 0x08ACC678u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC678u) goto L_08ACC678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC678: aot_gpr_31 = (0x08ACC680u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 147u, 0x08ACC680u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC680u) goto L_08ACC680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC680: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -2192,8 +2801,21 @@ L_08ACC690: L_08ACC6A0: aot_gpr_31 = (0x08ACC6A8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 150u, 0x08ACC6A8u, 0x08AC77B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 944u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 944u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 944u, 0x08AC77B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC6A8u) goto L_08ACC6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC6A8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2241,8 +2863,21 @@ L_08ACC6FC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC708u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 157u, 0x08ACC708u, 0x08AC7A14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 979u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 979u, 0x08AC7A14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC708u) goto L_08ACC708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC708: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-513)); @@ -2256,8 +2891,21 @@ L_08ACC708: } L_08ACC71C: aot_gpr_31 = (0x08ACC724u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 159u, 0x08ACC724u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC724u) goto L_08ACC724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC724: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1744))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -2291,27 +2939,79 @@ L_08ACC74C: aot_fpr_12 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08ACC774u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 163u, 0x08ACC774u, 0x08AC759Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 913u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 913u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 913u, 0x08AC759Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC774u) goto L_08ACC774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC774: ctx.gpr[20] = (aot_gpr_29 + static_cast(1056)); aot_gpr_31 = (0x08ACC780u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 164u, 0x08ACC780u, 0x08AC764Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 922u, 0x08AC764Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC780u) goto L_08ACC780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC780: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACC790u); ctx.gpr[6] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 165u, 0x08ACC790u, 0x08AC7434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 898u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 898u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 898u, 0x08AC7434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC790u) goto L_08ACC790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC790: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACC79Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 166u, 0x08ACC79Cu, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC79Cu) goto L_08ACC79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC79C: aot_gpr_31 = (0x08ACC7A4u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -2321,13 +3021,39 @@ L_08ACC7A4: aot_gpr_4 = (aot_gpr_29 + static_cast(1104)); aot_gpr_31 = (0x08ACC7B0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 168u, 0x08ACC7B0u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC7B0u) goto L_08ACC7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC7B0: aot_gpr_31 = (0x08ACC7B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 169u, 0x08ACC7B8u, 0x08AC77B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 944u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 944u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 944u, 0x08AC77B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC7B8u) goto L_08ACC7B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC7B8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2338,8 +3064,21 @@ L_08ACC7B8: L_08ACC7C0: aot_gpr_31 = (0x08ACC7C8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 171u, 0x08ACC7C8u, 0x08AC77BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 945u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 945u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 945u, 0x08AC77BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC7C8u) goto L_08ACC7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC7C8: { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -2358,19 +3097,58 @@ L_08ACC7D8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACC7ECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 174u, 0x08ACC7ECu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC7ECu) goto L_08ACC7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC7EC: aot_gpr_31 = (0x08ACC7F4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 175u, 0x08ACC7F4u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC7F4u) goto L_08ACC7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC7F4: aot_fpr_12 = ctx.fpr[22] / aot_fpr_0; aot_gpr_31 = (0x08ACC800u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 176u, 0x08ACC800u, 0x08AC7620u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 919u, 0x08AC7620u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC800u) goto L_08ACC800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC800: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACC80Cu); @@ -2392,8 +3170,21 @@ L_08ACC80C: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08ACC84Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 178u, 0x08ACC84Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC84Cu) goto L_08ACC84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC84C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8072), static_cast(0u)); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1072))); @@ -2452,8 +3243,21 @@ L_08ACC8B8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC8C4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 186u, 0x08ACC8C4u, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC8C4u) goto L_08ACC8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC8C4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(92))); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2476,14 +3280,40 @@ L_08ACC8EC: aot_gpr_4 = (0u | 500u); aot_gpr_31 = (0x08ACC8F8u); aot_gpr_5 = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 189u, 0x08ACC8F8u, 0x08AC7830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 951u, 0x08AC7830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC8F8u) goto L_08ACC8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC8F8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC904u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 190u, 0x08ACC904u, 0x0890A5BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 613u, 0x0890A5BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC904u) goto L_08ACC904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC904: aot_gpr_4 = (16672u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2507,14 +3337,40 @@ L_08ACC92C: aot_gpr_4 = (0u | 2000u); aot_gpr_31 = (0x08ACC938u); aot_gpr_5 = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 193u, 0x08ACC938u, 0x08AC7830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 951u, 0x08AC7830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC938u) goto L_08ACC938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC938: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC944u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 194u, 0x08ACC944u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC944u) goto L_08ACC944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC944: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2526,14 +3382,40 @@ L_08ACC94C: aot_gpr_4 = (0u | 50u); aot_gpr_31 = (0x08ACC958u); aot_gpr_5 = (0u | 300u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 196u, 0x08ACC958u, 0x08AC7830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 951u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 951u, 0x08AC7830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC958u) goto L_08ACC958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC958: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC964u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 197u, 0x08ACC964u, 0x0890A484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 598u, 0x0890A484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC964u) goto L_08ACC964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC964: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2586,8 +3468,21 @@ L_08ACC9B4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC9CCu); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 204u, 0x08ACC9CCu, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC9CCu) goto L_08ACC9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC9CC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACC9D8u); @@ -2604,8 +3499,21 @@ L_08ACC9D8: L_08ACC9E0: aot_gpr_31 = (0x08ACC9E8u); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 207u, 0x08ACC9E8u, 0x08AC740Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 895u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 895u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 895u, 0x08AC740Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACC9E8u) goto L_08ACC9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACC9E8: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 <= ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2617,8 +3525,21 @@ L_08ACC9E8: L_08ACC9F8: aot_gpr_31 = (0x08ACCA00u); aot_gpr_4 = (aot_gpr_29 + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 209u, 0x08ACCA00u, 0x08AC740Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 895u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 895u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 895u, 0x08AC740Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCA00u) goto L_08ACCA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCA00: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 <= ctx.fpr[22])) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2669,8 +3590,21 @@ L_08ACCA58: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08ACCA6Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 216u, 0x08ACCA6Cu, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCA6Cu) goto L_08ACCA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCA6C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACCA78u); @@ -2687,8 +3621,21 @@ L_08ACCA78: L_08ACCA80: aot_gpr_31 = (0x08ACCA88u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 219u, 0x08ACCA88u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCA88u) goto L_08ACCA88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCA88: aot_gpr_31 = (0x08ACCA90u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2701,13 +3648,39 @@ L_08ACCA90: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08ACCAA8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 221u, 0x08ACCAA8u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCAA8u) goto L_08ACCAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCAA8: aot_gpr_31 = (0x08ACCAB0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 222u, 0x08ACCAB0u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCAB0u) goto L_08ACCAB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCAB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2755,8 +3728,21 @@ L_08ACCAF4: aot_gpr_4 = (aot_gpr_29 + static_cast(1152)); aot_gpr_31 = (0x08ACCB00u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 230u, 0x08ACCB00u, 0x08AC75B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 914u, 0x08AC75B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCB00u) goto L_08ACCB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCB00: aot_gpr_4 = (aot_gpr_2 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); @@ -2772,8 +3758,21 @@ L_08ACCB00: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08ACCB38u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 231u, 0x08ACCB38u, 0x08899758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 287u, 0x08899758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCB38u) goto L_08ACCB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCB38: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(1216)))))); ctx.gpr[18] = (0u | 0u); @@ -2791,8 +3790,21 @@ L_08ACCB4C: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1168))); aot_gpr_31 = (0x08ACCB60u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 233u, 0x08ACCB60u, 0x08AC7978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 965u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 965u, 0x08AC7978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCB60u) goto L_08ACCB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCB60: aot_gpr_4 = (0u | 3u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -2819,19 +3831,58 @@ L_08ACCB88: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08ACCB98u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 237u, 0x08ACCB98u, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCB98u) goto L_08ACCB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCB98: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08ACCBA4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 238u, 0x08ACCBA4u, 0x08AC7610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 918u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 918u, 0x08AC7610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCBA4u) goto L_08ACCBA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCBA4: aot_gpr_31 = (0x08ACCBACu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 239u, 0x08ACCBACu, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCBACu) goto L_08ACCBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCBAC: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_20)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -2861,8 +3912,21 @@ L_08ACCBD4: ctx.gpr[16] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08ACCBE0u); aot_gpr_4 = (aot_gpr_29 + static_cast(1200)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 244u, 0x08ACCBE0u, 0x08AC75C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 915u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 915u, 0x08AC75C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCBE0u) goto L_08ACCBE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCBE0: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); goto L_08ACCBE4; @@ -2889,8 +3953,21 @@ L_08ACCC08: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACCC14u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 248u, 0x08ACCC14u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCC14u) goto L_08ACCC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCC14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2948,13 +4025,39 @@ L_08ACCC68: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACCC78u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 257u, 0x08ACCC78u, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCC78u) goto L_08ACCC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCC78: aot_gpr_31 = (0x08ACCC80u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 258u, 0x08ACCC80u, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCC80u) goto L_08ACCC80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCC80: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -2966,8 +4069,21 @@ L_08ACCC80: L_08ACCC8C: aot_gpr_31 = (0x08ACCC94u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 260u, 0x08ACCC94u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCC94u) goto L_08ACCC94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCC94: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2987,13 +4103,39 @@ L_08ACCCA4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08ACCCBCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 263u, 0x08ACCCBCu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCCBCu) goto L_08ACCCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCCBC: aot_gpr_31 = (0x08ACCCC4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 264u, 0x08ACCCC4u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCCC4u) goto L_08ACCCC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCCC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3004,8 +4146,21 @@ L_08ACCCC4: L_08ACCCCC: aot_gpr_31 = (0x08ACCCD4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 266u, 0x08ACCCD4u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCCD4u) goto L_08ACCCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCCD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3050,8 +4205,21 @@ L_08ACCD04: L_08ACCD0C: aot_gpr_31 = (0x08ACCD14u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 274u, 0x08ACCD14u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCD14u) goto L_08ACCD14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCD14: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3082,8 +4250,21 @@ L_08ACCD3C: L_08ACCD44: aot_gpr_31 = (0x08ACCD4Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 279u, 0x08ACCD4Cu, 0x08AC7A04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 977u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 977u, 0x08AC7A04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCD4Cu) goto L_08ACCD4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCD4C: aot_gpr_4 = (static_cast(aot_gpr_2) < 3 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3100,8 +4281,21 @@ L_08ACCD58: L_08ACCD60: aot_gpr_31 = (0x08ACCD68u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 282u, 0x08ACCD68u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCD68u) goto L_08ACCD68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCD68: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3120,8 +4314,21 @@ L_08ACCD74: L_08ACCD7C: aot_gpr_31 = (0x08ACCD84u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 285u, 0x08ACCD84u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCD84u) goto L_08ACCD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCD84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3132,8 +4339,21 @@ L_08ACCD84: L_08ACCD8C: aot_gpr_31 = (0x08ACCD94u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 287u, 0x08ACCD94u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCD94u) goto L_08ACCD94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCD94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3211,8 +4431,21 @@ L_08ACCE00: L_08ACCE08: aot_gpr_31 = (0x08ACCE10u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 300u, 0x08ACCE10u, 0x08910150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 20u, 0x08910150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCE10u) goto L_08ACCE10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCE10: { const bool branch_taken = aot_gpr_2 == aot_gpr_17; if (branch_taken) { @@ -3228,8 +4461,21 @@ L_08ACCE18: L_08ACCE20: aot_gpr_31 = (0x08ACCE28u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 303u, 0x08ACCE28u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCE28u) goto L_08ACCE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCE28: aot_gpr_4 = (0u | 10u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3277,13 +4523,39 @@ L_08ACCE6C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ACCE7Cu); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 311u, 0x08ACCE7Cu, 0x08AC7474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 900u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 900u, 0x08AC7474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCE7Cu) goto L_08ACCE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCE7C: aot_gpr_31 = (0x08ACCE84u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 312u, 0x08ACCE84u, 0x08AC75F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 917u, 0x08AC75F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCE84u) goto L_08ACCE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCE84: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); @@ -3298,20 +4570,59 @@ L_08ACCE84: L_08ACCEA0: aot_gpr_31 = (0x08ACCEA8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 314u, 0x08ACCEA8u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCEA8u) goto L_08ACCEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCEA8: aot_gpr_31 = (0x08ACCEB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 315u, 0x08ACCEB0u, 0x08AC7810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 949u, 0x08AC7810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCEB0u) goto L_08ACCEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCEB0: aot_gpr_4 = (aot_gpr_2 & 7u); aot_gpr_5 = (aot_gpr_4 << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08ACCEC4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 316u, 0x08ACCEC4u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCEC4u) goto L_08ACCEC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCEC4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3322,8 +4633,21 @@ L_08ACCEC4: L_08ACCECC: aot_gpr_31 = (0x08ACCED4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 318u, 0x08ACCED4u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCED4u) goto L_08ACCED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCED4: aot_gpr_31 = (0x08ACCEDCu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3334,8 +4658,21 @@ L_08ACCEDC: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACCEECu); ctx.gpr[6] = (0u | 15000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 320u, 0x08ACCEECu, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCEECu) goto L_08ACCEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCEEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -3380,15 +4717,41 @@ L_08ACCF3C: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08ACCF50u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 326u, 0x08ACCF50u, 0x0890AED8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 751u, 0x0890AED8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCF50u) goto L_08ACCF50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCF50: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(80))); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACCF60u); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 327u, 0x08ACCF60u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCF60u) goto L_08ACCF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCF60: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3402,8 +4765,21 @@ L_08ACCF6C: aot_gpr_5 = (aot_gpr_5 | 26214u); aot_gpr_31 = (0x08ACCF7Cu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 329u, 0x08ACCF7Cu, 0x08AC770Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 933u, 0x08AC770Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCF7Cu) goto L_08ACCF7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCF7C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3416,8 +4792,21 @@ L_08ACCF84: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACCF94u); ctx.gpr[6] = (0u | 158u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 331u, 0x08ACCF94u, 0x08908C10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 216u, 0x08908C10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCF94u) goto L_08ACCF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCF94: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACCFA0u); @@ -3458,14 +4847,40 @@ L_08ACCFD4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08ACCFE8u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 338u, 0x08ACCFE8u, 0x08AC77F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 947u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 947u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 947u, 0x08AC77F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCFE8u) goto L_08ACCFE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCFE8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACCFF4u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_0)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0177. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 339u, 0x08ACCFF4u, 0x08AC80DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0177_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0177_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0177_entry, 177u, 21u, 0x08AC80DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACCFF4u) goto L_08ACCFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACCFF4: { const bool branch_taken = ctx.gpr[16] != 0u; if (branch_taken) { @@ -3481,8 +4896,21 @@ L_08ACCFFC: L_08ACD004: aot_gpr_31 = (0x08ACD00Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 342u, 0x08ACD00Cu, 0x08906E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 627u, 0x08906E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD00Cu) goto L_08ACD00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD00C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3493,13 +4921,39 @@ L_08ACD00C: L_08ACD014: aot_gpr_31 = (0x08ACD01Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 344u, 0x08ACD01Cu, 0x08AC79B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 970u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 970u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 970u, 0x08AC79B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD01Cu) goto L_08ACD01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD01C: aot_gpr_31 = (0x08ACD024u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 345u, 0x08ACD024u, 0x08AC7940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 958u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 958u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 958u, 0x08AC7940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD024u) goto L_08ACD024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD024: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3510,13 +4964,39 @@ L_08ACD024: L_08ACD02C: aot_gpr_31 = (0x08ACD034u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 347u, 0x08ACD034u, 0x08AC79B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 970u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 970u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 970u, 0x08AC79B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD034u) goto L_08ACD034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD034: aot_gpr_31 = (0x08ACD03Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 348u, 0x08ACD03Cu, 0x08AC7940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 958u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 958u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 958u, 0x08AC7940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD03Cu) goto L_08ACD03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD03C: aot_gpr_4 = (0u | 6u); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3529,8 +5009,21 @@ L_08ACD048: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACD054u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 350u, 0x08ACD054u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD054u) goto L_08ACD054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD054: ctx.gpr[8] = (16640u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(80))); @@ -3539,21 +5032,60 @@ L_08ACD054: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08ACD070u); ctx.gpr[7] = (0u | 158u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 351u, 0x08ACD070u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD070u) goto L_08ACD070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD070: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACD080u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 352u, 0x08ACD080u, 0x08AC76ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 931u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 931u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 931u, 0x08AC76ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD080u) goto L_08ACD080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD080: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACD08Cu); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 353u, 0x08ACD08Cu, 0x08AC76ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 931u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 931u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 931u, 0x08AC76ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD08Cu) goto L_08ACD08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD08C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3572,8 +5104,21 @@ L_08ACD09C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACD0A8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 356u, 0x08ACD0A8u, 0x08AC76FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 932u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 932u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 932u, 0x08AC76FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD0A8u) goto L_08ACD0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD0A8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3584,14 +5129,40 @@ L_08ACD0A8: L_08ACD0B0: aot_gpr_31 = (0x08ACD0B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 358u, 0x08ACD0B8u, 0x08AC7714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 934u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 934u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 934u, 0x08AC7714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD0B8u) goto L_08ACD0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD0B8: aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08ACD0C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 359u, 0x08ACD0C4u, 0x08AC771Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 935u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 935u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 935u, 0x08AC771Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD0C4u) goto L_08ACD0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD0C4: aot_fpr_12 = aot_fpr_20 / aot_fpr_0; aot_gpr_4 = (16204u << 16u); @@ -3612,21 +5183,60 @@ L_08ACD0E4: ctx.gpr[6] = (0u | 7u); aot_gpr_31 = (0x08ACD100u); ctx.gpr[7] = (0u | 214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 361u, 0x08ACD100u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD100u) goto L_08ACD100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD100: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACD110u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 362u, 0x08ACD110u, 0x08AC76ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 931u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 931u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 931u, 0x08AC76ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD110u) goto L_08ACD110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD110: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACD11Cu); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 363u, 0x08ACD11Cu, 0x08AC76ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 931u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 931u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 931u, 0x08AC76ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD11Cu) goto L_08ACD11C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD11C: aot_gpr_31 = (0x08ACD124u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3636,8 +5246,21 @@ L_08ACD124: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACD130u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 365u, 0x08ACD130u, 0x089387ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 108u, 0x089387ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD130u) goto L_08ACD130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD130: aot_gpr_31 = (0x08ACD138u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3647,22 +5270,61 @@ L_08ACD138: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACD144u); aot_gpr_5 = (0u | 123u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 367u, 0x08ACD144u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD144u) goto L_08ACD144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD144: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACD150u); aot_gpr_5 = (0u | 121u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 368u, 0x08ACD150u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD150u) goto L_08ACD150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD150: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(464))); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (aot_gpr_5 | 64u); aot_gpr_31 = (0x08ACD164u); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(464), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 369u, 0x08ACD164u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD164u) goto L_08ACD164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD164: aot_gpr_31 = (0x08ACD16Cu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3671,8 +5333,21 @@ L_08ACD164: L_08ACD16C: aot_gpr_31 = (0x08ACD174u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 371u, 0x08ACD174u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD174u) goto L_08ACD174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD174: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3738,8 +5413,21 @@ L_08ACD1D8: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACD1E8u); ctx.gpr[6] = (0u | 15000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 382u, 0x08ACD1E8u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD1E8u) goto L_08ACD1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD1E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -3772,17 +5460,56 @@ L_08ACD220: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACD22Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 387u, 0x08ACD22Cu, 0x08AC7A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 982u, 0x08AC7A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD22Cu) goto L_08ACD22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD22C: aot_gpr_31 = (0x08ACD234u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 388u, 0x08ACD234u, 0x08AC7C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1022u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1022u, 0x08AC7C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD234u) goto L_08ACD234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD234: aot_gpr_31 = (0x08ACD23Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 389u, 0x08ACD23Cu, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD23Cu) goto L_08ACD23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD23C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1728))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -3795,8 +5522,21 @@ L_08ACD23C: L_08ACD24C: aot_gpr_31 = (0x08ACD254u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 391u, 0x08ACD254u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD254u) goto L_08ACD254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD254: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3809,14 +5549,40 @@ L_08ACD25C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACD26Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 393u, 0x08ACD26Cu, 0x08AC7A50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 982u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 982u, 0x08AC7A50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD26Cu) goto L_08ACD26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD26C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(1930)))))); aot_gpr_31 = (0x08ACD278u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 394u, 0x08ACD278u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD278u) goto L_08ACD278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD278: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3843,8 +5609,21 @@ L_08ACD290: } L_08ACD29C: aot_gpr_31 = (0x08ACD2A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 398u, 0x08ACD2A4u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD2A4u) goto L_08ACD2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD2A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1756))); aot_gpr_4 = (aot_gpr_4 < aot_gpr_2 ? 1u : 0u); @@ -3858,8 +5637,21 @@ L_08ACD2B4: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08ACD2C0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0177. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 400u, 0x08ACD2C0u, 0x08AC80FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0177_entry(rt, ctx, 25u, aot_mem); +#else + recomp_unit_0177_entry(rt, ctx, 25u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0177_entry, 177u, 25u, 0x08AC80FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD2C0u) goto L_08ACD2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD2C0: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3871,8 +5663,21 @@ L_08ACD2C0: L_08ACD2CC: aot_gpr_31 = (0x08ACD2D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 402u, 0x08ACD2D4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD2D4u) goto L_08ACD2D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD2D4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3895,8 +5700,21 @@ L_08ACD2E0: L_08ACD2EC: aot_gpr_31 = (0x08ACD2F4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 406u, 0x08ACD2F4u, 0x08AC7A48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 981u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 981u, 0x08AC7A48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD2F4u) goto L_08ACD2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD2F4: aot_gpr_4 = (0u | 8u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3933,8 +5751,21 @@ L_08ACD318: L_08ACD330: aot_gpr_31 = (0x08ACD338u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 411u, 0x08ACD338u, 0x08AC79A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 969u, 0x08AC79A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD338u) goto L_08ACD338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD338: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3956,13 +5787,39 @@ L_08ACD340: L_08ACD358: aot_gpr_31 = (0x08ACD360u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 414u, 0x08ACD360u, 0x08AC79A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 969u, 0x08AC79A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD360u) goto L_08ACD360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD360: aot_gpr_31 = (0x08ACD368u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 415u, 0x08ACD368u, 0x08AC773Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 937u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 937u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 937u, 0x08AC773Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD368u) goto L_08ACD368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD368: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3984,13 +5841,39 @@ L_08ACD370: L_08ACD388: aot_gpr_31 = (0x08ACD390u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 418u, 0x08ACD390u, 0x08AC79A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 969u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 969u, 0x08AC79A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD390u) goto L_08ACD390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD390: aot_gpr_31 = (0x08ACD398u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 419u, 0x08ACD398u, 0x08AC79DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 973u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 973u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 973u, 0x08AC79DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD398u) goto L_08ACD398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD398: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4009,16 +5892,42 @@ L_08ACD3A0: } L_08ACD3AC: aot_gpr_31 = (0x08ACD3B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 422u, 0x08ACD3B4u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD3B4u) goto L_08ACD3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD3B4: aot_gpr_4 = (aot_gpr_2 + static_cast(-1)); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1756), aot_gpr_4); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACD3C8u); aot_gpr_5 = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 423u, 0x08ACD3C8u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD3C8u) goto L_08ACD3C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD3C8: { const bool branch_taken = ctx.gpr[18] == 0u; if (branch_taken) { @@ -4029,12 +5938,38 @@ L_08ACD3C8: L_08ACD3D0: aot_gpr_31 = (0x08ACD3D8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 425u, 0x08ACD3D8u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD3D8u) goto L_08ACD3D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD3D8: aot_gpr_31 = (0x08ACD3E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 426u, 0x08ACD3E0u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD3E0u) goto L_08ACD3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD3E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1756))); aot_gpr_4 = (aot_gpr_2 < aot_gpr_4 ? 1u : 0u); @@ -4054,8 +5989,21 @@ L_08ACD3F0: } L_08ACD3FC: aot_gpr_31 = (0x08ACD404u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 429u, 0x08ACD404u, 0x08AC76DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 929u, 0x08AC76DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD404u) goto L_08ACD404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD404: aot_gpr_4 = (aot_gpr_2 + static_cast(-1)); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(1756), aot_gpr_4); @@ -4071,8 +6019,21 @@ L_08ACD414: aot_gpr_4 = (0u | 1u); aot_gpr_31 = (0x08ACD420u); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2228), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 432u, 0x08ACD420u, 0x08AC7810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 949u, 0x08AC7810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD420u) goto L_08ACD420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD420: aot_gpr_4 = (aot_gpr_2 | 0u); if (static_cast(aot_gpr_4) >= 0) { @@ -4095,8 +6056,21 @@ L_08ACD43C: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08ACD44Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 435u, 0x08ACD44Cu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD44Cu) goto L_08ACD44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD44C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4107,8 +6081,21 @@ L_08ACD44C: L_08ACD454: aot_gpr_31 = (0x08ACD45Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 437u, 0x08ACD45Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD45Cu) goto L_08ACD45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD45C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4119,13 +6106,39 @@ L_08ACD45C: L_08ACD464: aot_gpr_31 = (0x08ACD46Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 439u, 0x08ACD46Cu, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD46Cu) goto L_08ACD46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD46C: aot_gpr_31 = (0x08ACD474u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 440u, 0x08ACD474u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD474u) goto L_08ACD474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD474: aot_gpr_31 = (0x08ACD47Cu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -4151,8 +6164,8 @@ L_08ACD47C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1344)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACD4BC: @@ -4251,8 +6264,21 @@ L_08ACD548: L_08ACD554: aot_gpr_31 = (0x08ACD55Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 454u, 0x08ACD55Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD55Cu) goto L_08ACD55C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD55C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4332,8 +6358,21 @@ L_08ACD5C0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACD5CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 465u, 0x08ACD5CCu, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD5CCu) goto L_08ACD5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD5CC: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2196))); { const bool branch_taken = ctx.gpr[18] != ctx.gpr[16]; @@ -4360,8 +6399,21 @@ L_08ACD5E8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACD5F4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 469u, 0x08ACD5F4u, 0x08AC7EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1076u, 0x08AC7EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD5F4u) goto L_08ACD5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD5F4: { const bool branch_taken = aot_gpr_2 == 0u; ctx.gpr[18] = (0u + static_cast(-129)); @@ -4391,8 +6443,21 @@ L_08ACD60C: L_08ACD618: aot_gpr_31 = (0x08ACD620u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 473u, 0x08ACD620u, 0x08AC7DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1053u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1053u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1053u, 0x08AC7DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD620u) goto L_08ACD620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD620: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(460))); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2196), ctx.gpr[16]); @@ -4420,16 +6485,29 @@ L_08ACD640: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[16]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(14824))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACD658: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2240), 0u); aot_gpr_31 = (0x08ACD664u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 478u, 0x08ACD664u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD664u) goto L_08ACD664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD664: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACD670u); @@ -4461,8 +6539,8 @@ L_08ACD680: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACD698: @@ -4677,8 +6755,8 @@ L_08ACD7C8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(15048))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACD7E0: @@ -4779,8 +6857,21 @@ L_08ACD860: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08ACD874u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 521u, 0x08ACD874u, 0x089AB048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 627u, 0x089AB048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD874u) goto L_08ACD874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD874: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4836,8 +6927,21 @@ L_08ACD8B0: L_08ACD8B8: aot_gpr_31 = (0x08ACD8C0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 529u, 0x08ACD8C0u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD8C0u) goto L_08ACD8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD8C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4911,20 +7015,59 @@ L_08ACD914: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x08ACD92Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 539u, 0x08ACD92Cu, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD92Cu) goto L_08ACD92C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD92C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACD938u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 540u, 0x08ACD938u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD938u) goto L_08ACD938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD938: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2196))); aot_gpr_31 = (0x08ACD944u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 541u, 0x08ACD944u, 0x08AC7EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1076u, 0x08AC7EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD944u) goto L_08ACD944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD944: { const bool branch_taken = aot_gpr_2 != 0u; aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4989,8 +7132,21 @@ L_08ACD984: L_08ACD98C: aot_gpr_31 = (0x08ACD994u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 550u, 0x08ACD994u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD994u) goto L_08ACD994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD994: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5015,8 +7171,21 @@ L_08ACD9A4: L_08ACD9AC: aot_gpr_31 = (0x08ACD9B4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 554u, 0x08ACD9B4u, 0x08AC7EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1076u, 0x08AC7EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD9B4u) goto L_08ACD9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD9B4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5044,8 +7213,21 @@ L_08ACD9D0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACD9DCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 558u, 0x08ACD9DCu, 0x08AC7EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1076u, 0x08AC7EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD9DCu) goto L_08ACD9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD9DC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5057,8 +7239,21 @@ L_08ACD9E4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACD9F0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 560u, 0x08ACD9F0u, 0x08AC7E98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1068u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1068u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1068u, 0x08AC7E98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACD9F0u) goto L_08ACD9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACD9F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5069,8 +7264,21 @@ L_08ACD9F0: L_08ACD9F8: aot_gpr_31 = (0x08ACDA00u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 562u, 0x08ACDA00u, 0x08AC7DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1053u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1053u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1053u, 0x08AC7DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDA00u) goto L_08ACDA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDA00: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(2196), ctx.gpr[18]); goto L_08ACDA04; @@ -5090,8 +7298,8 @@ L_08ACDA14: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(15232))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACDA2C: @@ -5177,8 +7385,21 @@ L_08ACDAA8: L_08ACDAB0: aot_gpr_31 = (0x08ACDAB8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 577u, 0x08ACDAB8u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDAB8u) goto L_08ACDAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDAB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5190,14 +7411,40 @@ L_08ACDAC0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDACCu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 579u, 0x08ACDACCu, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDACCu) goto L_08ACDACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDACC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1156))); aot_gpr_31 = (0x08ACDAD8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 580u, 0x08ACDAD8u, 0x0891034Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 50u, 0x0891034Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDAD8u) goto L_08ACDAD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDAD8: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5205,8 +7452,21 @@ L_08ACDAD8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08ACDAF4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 581u, 0x08ACDAF4u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDAF4u) goto L_08ACDAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDAF4: aot_gpr_4 = (0u | 31u); { const bool branch_taken = ctx.gpr[18] != aot_gpr_4; @@ -5272,8 +7532,21 @@ L_08ACDB60: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDB6Cu); aot_gpr_5 = (0u | 14000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 589u, 0x08ACDB6Cu, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDB6Cu) goto L_08ACDB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDB6C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5295,8 +7568,21 @@ L_08ACDB80: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDB8Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 593u, 0x08ACDB8Cu, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDB8Cu) goto L_08ACDB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDB8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5322,8 +7608,21 @@ L_08ACDBAC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDBB8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 597u, 0x08ACDBB8u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDBB8u) goto L_08ACDBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDBB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5351,8 +7650,21 @@ L_08ACDBDC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDBE8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 601u, 0x08ACDBE8u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDBE8u) goto L_08ACDBE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDBE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5364,13 +7676,39 @@ L_08ACDBF0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDBFCu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 603u, 0x08ACDBFCu, 0x0890DF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 475u, 0x0890DF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDBFCu) goto L_08ACDBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDBFC: aot_gpr_31 = (0x08ACDC04u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 604u, 0x08ACDC04u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDC04u) goto L_08ACDC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDC04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5382,8 +7720,21 @@ L_08ACDC0C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDC18u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 606u, 0x08ACDC18u, 0x08910AD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 188u, 0x08910AD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDC18u) goto L_08ACDC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDC18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1156))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(614)))))); @@ -5500,8 +7851,21 @@ L_08ACDCE8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDCF8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 620u, 0x08ACDCF8u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDCF8u) goto L_08ACDCF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDCF8: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5509,8 +7873,21 @@ L_08ACDCF8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08ACDD14u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 621u, 0x08ACDD14u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDD14u) goto L_08ACDD14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDD14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5670,8 +8047,21 @@ L_08ACDE34: aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_31 = (0x08ACDE50u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 639u, 0x08ACDE50u, 0x08A420BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 378u, 0x08A420BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDE50u) goto L_08ACDE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDE50: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5683,8 +8073,21 @@ L_08ACDE58: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDE64u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 641u, 0x08ACDE64u, 0x088A1AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 377u, 0x088A1AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDE64u) goto L_08ACDE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDE64: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5710,8 +8113,21 @@ L_08ACDE84: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDE90u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 645u, 0x08ACDE90u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDE90u) goto L_08ACDE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDE90: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5719,8 +8135,21 @@ L_08ACDE90: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08ACDEACu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 646u, 0x08ACDEACu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDEACu) goto L_08ACDEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDEAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5746,8 +8175,21 @@ L_08ACDECC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDED8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 650u, 0x08ACDED8u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDED8u) goto L_08ACDED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDED8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5773,8 +8215,21 @@ L_08ACDEF8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08ACDF04u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 654u, 0x08ACDF04u, 0x0890FC94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 840u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 840u, 0x0890FC94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDF04u) goto L_08ACDF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDF04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5792,14 +8247,40 @@ L_08ACDF10: L_08ACDF1C: aot_gpr_31 = (0x08ACDF24u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 657u, 0x08ACDF24u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDF24u) goto L_08ACDF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDF24: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2192))); aot_gpr_31 = (0x08ACDF30u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 658u, 0x08ACDF30u, 0x08909270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 319u, 0x08909270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACDF30u) goto L_08ACDF30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACDF30: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5824,8 +8305,8 @@ L_08ACDF40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACDF58: @@ -5923,16 +8404,29 @@ L_08ACDFF0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(15432))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACE008: aot_gpr_4 = (aot_gpr_17 + static_cast(656)); aot_gpr_31 = (0x08ACE014u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 673u, 0x08ACE014u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE014u) goto L_08ACE014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE014: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5966,8 +8460,21 @@ L_08ACE034: L_08ACE03C: aot_gpr_31 = (0x08ACE044u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 678u, 0x08ACE044u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE044u) goto L_08ACE044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE044: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5979,8 +8486,21 @@ L_08ACE04C: aot_gpr_4 = (aot_gpr_17 + static_cast(2096)); aot_gpr_31 = (0x08ACE058u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 680u, 0x08ACE058u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE058u) goto L_08ACE058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE058: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6005,14 +8525,40 @@ L_08ACE068: L_08ACE070: aot_gpr_31 = (0x08ACE078u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 684u, 0x08ACE078u, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE078u) goto L_08ACE078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE078: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACE084u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 685u, 0x08ACE084u, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE084u) goto L_08ACE084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE084: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-129)); @@ -6033,8 +8579,8 @@ L_08ACE0A4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(15616))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACE0BC: @@ -6063,15 +8609,41 @@ L_08ACE0D0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACE0E8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 689u, 0x08ACE0E8u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE0E8u) goto L_08ACE0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE0E8: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08ACE0F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 690u, 0x08ACE0F8u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE0F8u) goto L_08ACE0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE0F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -6179,15 +8751,41 @@ L_08ACE184: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08ACE198u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 695u, 0x08ACE198u, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE198u) goto L_08ACE198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE198: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08ACE1A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 696u, 0x08ACE1A8u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE1A8u) goto L_08ACE1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE1A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(460))); aot_gpr_4 = (aot_gpr_4 & 32u); @@ -6200,8 +8798,21 @@ L_08ACE1A8: L_08ACE1B8: aot_gpr_31 = (0x08ACE1C0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 698u, 0x08ACE1C0u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE1C0u) goto L_08ACE1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE1C0: aot_gpr_4 = (0u | 39u); { const bool branch_taken = ctx.gpr[16] != aot_gpr_4; @@ -6215,8 +8826,21 @@ L_08ACE1CC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACE1DCu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(44))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 700u, 0x08ACE1DCu, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE1DCu) goto L_08ACE1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE1DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -6235,8 +8859,21 @@ L_08ACE1F4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACE204u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(44))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 703u, 0x08ACE204u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE204u) goto L_08ACE204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE204: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -6255,8 +8892,21 @@ L_08ACE21C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACE22Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(44))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 706u, 0x08ACE22Cu, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE22Cu) goto L_08ACE22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE22C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -6275,8 +8925,21 @@ L_08ACE244: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACE254u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(44))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 709u, 0x08ACE254u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE254u) goto L_08ACE254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE254: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -6298,8 +8961,21 @@ L_08ACE26C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(44))); aot_gpr_31 = (0x08ACE288u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 712u, 0x08ACE288u, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE288u) goto L_08ACE288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE288: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -6321,8 +8997,21 @@ L_08ACE2A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(44))); aot_gpr_31 = (0x08ACE2BCu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 715u, 0x08ACE2BCu, 0x089110BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 298u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 298u, 0x089110BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE2BCu) goto L_08ACE2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE2BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1340))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); @@ -6511,8 +9200,21 @@ L_08ACE3C8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(2196))); aot_gpr_31 = (0x08ACE3D4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 730u, 0x08ACE3D4u, 0x08AC7EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1076u, 0x08AC7EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE3D4u) goto L_08ACE3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE3D4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6539,8 +9241,21 @@ L_08ACE3E4: L_08ACE3F0: aot_gpr_31 = (0x08ACE3F8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 734u, 0x08ACE3F8u, 0x08AC7DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1053u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1053u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1053u, 0x08AC7DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE3F8u) goto L_08ACE3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE3F8: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2196), ctx.gpr[16]); goto L_08ACE3FC; @@ -6555,8 +9270,8 @@ L_08ACE3FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACE418: @@ -6655,16 +9370,29 @@ L_08ACE4B0: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(15816))); jump_target = ctx.gpr[1]; ctx.gpr[19] = (static_cast(static_cast(ctx.gpr[19]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACE4C8: aot_gpr_4 = (aot_gpr_17 + static_cast(656)); aot_gpr_31 = (0x08ACE4D4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 748u, 0x08ACE4D4u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE4D4u) goto L_08ACE4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE4D4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6707,8 +9435,21 @@ L_08ACE508: L_08ACE510: aot_gpr_31 = (0x08ACE518u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 754u, 0x08ACE518u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE518u) goto L_08ACE518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE518: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6720,8 +9461,21 @@ L_08ACE520: aot_gpr_4 = (aot_gpr_17 + static_cast(2096)); aot_gpr_31 = (0x08ACE52Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 756u, 0x08ACE52Cu, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE52Cu) goto L_08ACE52C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE52C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6755,14 +9509,40 @@ L_08ACE550: L_08ACE558: aot_gpr_31 = (0x08ACE560u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 761u, 0x08ACE560u, 0x088E34ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 438u, 0x088E34ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE560u) goto L_08ACE560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE560: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08ACE56Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 762u, 0x08ACE56Cu, 0x08AC7F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1084u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1084u, 0x08AC7F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE56Cu) goto L_08ACE56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE56C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-129)); @@ -6771,8 +9551,21 @@ L_08ACE56C: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x08ACE588u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 763u, 0x08ACE588u, 0x08AC7EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1076u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1076u, 0x08AC7EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE588u) goto L_08ACE588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE588: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6799,8 +9592,21 @@ L_08ACE598: L_08ACE5A4: aot_gpr_31 = (0x08ACE5ACu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 767u, 0x08ACE5ACu, 0x08AC7DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1053u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1053u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1053u, 0x08AC7DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE5ACu) goto L_08ACE5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE5AC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2196), ctx.gpr[16]); goto L_08ACE5B0; @@ -6817,8 +9623,8 @@ L_08ACE5B8: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[19]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(16000))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACE5D0: @@ -6843,8 +9649,21 @@ L_08ACE5D8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08ACE5ECu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 772u, 0x08ACE5ECu, 0x08910218u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 34u, 0x08910218u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE5ECu) goto L_08ACE5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE5EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (16384u << 16u); @@ -6861,8 +9680,21 @@ L_08ACE5EC: L_08ACE60C: aot_gpr_31 = (0x08ACE614u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 774u, 0x08ACE614u, 0x0890B488u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 829u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 829u, 0x0890B488u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACE614u) goto L_08ACE614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACE614: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6905,8 +9737,8 @@ L_08ACE634: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACE658: @@ -6932,8 +9764,8 @@ L_08ACE66C: } L_08ACE68C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACE694: @@ -7091,8 +9923,8 @@ L_08ACE7A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACE7C0: @@ -7404,8 +10236,8 @@ L_08ACEA10: goto L_08ACEA14; L_08ACEA14: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACEA1C: @@ -7449,8 +10281,21 @@ L_08ACEA68: L_08ACEA84: aot_gpr_31 = (0x08ACEA8Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 839u, 0x08ACEA8Cu, 0x08906858u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 561u, 0x08906858u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEA8Cu) goto L_08ACEA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEA8C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7642,8 +10487,21 @@ L_08ACEBAC: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08ACEBF8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 852u, 0x08ACEBF8u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEBF8u) goto L_08ACEBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEBF8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7658,8 +10516,21 @@ L_08ACEC00: ctx.gpr[7] = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08ACEC18u); ctx.gpr[8] = (aot_gpr_29 + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 854u, 0x08ACEC18u, 0x08A51450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 169u, 0x08A51450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEC18u) goto L_08ACEC18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEC18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -7702,8 +10573,21 @@ L_08ACEC5C: L_08ACEC68: aot_gpr_31 = (0x08ACEC70u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 859u, 0x08ACEC70u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEC70u) goto L_08ACEC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEC70: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7723,8 +10607,21 @@ L_08ACEC78: L_08ACEC88: aot_gpr_31 = (0x08ACEC90u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 862u, 0x08ACEC90u, 0x08911284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 327u, 0x08911284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEC90u) goto L_08ACEC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEC90: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7735,8 +10632,21 @@ L_08ACEC90: L_08ACEC98: aot_gpr_31 = (0x08ACECA0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 864u, 0x08ACECA0u, 0x088E2A9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 281u, 0x088E2A9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACECA0u) goto L_08ACECA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACECA0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -7755,8 +10665,21 @@ L_08ACECB8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); aot_gpr_31 = (0x08ACECC4u); ctx.gpr[6] = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 868u, 0x08ACECC4u, 0x0893E5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 600u, 0x0893E5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACECC4u) goto L_08ACECC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACECC4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7783,8 +10706,21 @@ L_08ACECE4: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08ACECF4u); ctx.gpr[7] = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 873u, 0x08ACECF4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACECF4u) goto L_08ACECF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACECF4: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (16640u << 16u); @@ -7832,8 +10768,21 @@ L_08ACED08: aot_gpr_5 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x08ACED58u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 875u, 0x08ACED58u, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACED58u) goto L_08ACED58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACED58: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -7845,8 +10794,21 @@ L_08ACED58: ctx.gpr[8] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACED80u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 876u, 0x08ACED80u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACED80u) goto L_08ACED80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACED80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1360))); aot_gpr_5 = (0u | 6u); @@ -7863,8 +10825,21 @@ L_08ACED90: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08ACEDA8u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 878u, 0x08ACEDA8u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEDA8u) goto L_08ACEDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEDA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7879,8 +10854,21 @@ L_08ACEDB0: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08ACEDC8u); ctx.gpr[8] = (0u | 1000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 880u, 0x08ACEDC8u, 0x0898019Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 24u, 0x0898019Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEDC8u) goto L_08ACEDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEDC8: aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(12), static_cast(0u)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); @@ -7969,8 +10957,21 @@ L_08ACEE00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(264), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08ACEE64u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 883u, 0x08ACEE64u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEE64u) goto L_08ACEE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEE64: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8031,8 +11032,21 @@ L_08ACEE7C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08ACEEE0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 886u, 0x08ACEEE0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEEE0u) goto L_08ACEEE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEEE0: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); ctx.gpr[20] = (ctx.gpr[20] & 255u); @@ -8056,8 +11070,21 @@ L_08ACEF04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(80))); aot_gpr_31 = (0x08ACEF10u); aot_gpr_5 = (0u | 4096u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 889u, 0x08ACEF10u, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEF10u) goto L_08ACEF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEF10: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8086,8 +11113,21 @@ L_08ACEF30: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08ACEF48u); ctx.gpr[7] = (0u | 42u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 894u, 0x08ACEF48u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEF48u) goto L_08ACEF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEF48: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_gpr_2 | 0u); @@ -8117,8 +11157,21 @@ L_08ACEF68: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08ACEF80u); ctx.gpr[7] = (0u | 40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 899u, 0x08ACEF80u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEF80u) goto L_08ACEF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEF80: ctx.gpr[19] = (aot_gpr_2 | 0u); goto L_08ACEF84; @@ -8133,8 +11186,21 @@ L_08ACEF8C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08ACEF98u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 902u, 0x08ACEF98u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACEF98u) goto L_08ACEF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACEF98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_5 = (0u + static_cast(-9)); @@ -8336,8 +11402,21 @@ L_08ACF0DC: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08ACF158u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 918u, 0x08ACF158u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF158u) goto L_08ACF158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF158: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] & 255u); @@ -8367,8 +11446,21 @@ L_08ACF174: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(148), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08ACF1A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 921u, 0x08ACF1A0u, 0x08B0452Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 71u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 71u, 0x08B0452Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF1A0u) goto L_08ACF1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF1A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_5 = (0u | 33u); @@ -8389,8 +11481,21 @@ L_08ACF1B0: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08ACF1D8u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 923u, 0x08ACF1D8u, 0x089D1074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 167u, 0x089D1074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF1D8u) goto L_08ACF1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF1D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8450,8 +11555,21 @@ L_08ACF1F0: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08ACF26Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 926u, 0x08ACF26Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF26Cu) goto L_08ACF26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF26C: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); ctx.gpr[19] = (ctx.gpr[19] & 255u); @@ -8521,8 +11639,21 @@ L_08ACF298: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08ACF314u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 930u, 0x08ACF314u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF314u) goto L_08ACF314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF314: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (ctx.gpr[19] < static_cast(8) ? 1u : 0u); @@ -8648,8 +11779,21 @@ L_08ACF3FC: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08ACF424u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 944u, 0x08ACF424u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF424u) goto L_08ACF424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF424: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(72))); aot_gpr_5 = (aot_gpr_5 & 2048u); @@ -8716,8 +11860,21 @@ L_08ACF454: } aot_gpr_31 = (0x08ACF4A4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 949u, 0x08ACF4A4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF4A4u) goto L_08ACF4A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF4A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 24u); @@ -8763,8 +11920,21 @@ L_08ACF4E8: aot_fpr_12 = std::bit_cast(ctx.gpr[6]); aot_gpr_31 = (0x08ACF4FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 955u, 0x08ACF4FCu, 0x0882BFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF4FCu) goto L_08ACF4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF4FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 24u); @@ -8907,8 +12077,21 @@ L_08ACF5E0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08ACF5ECu); aot_gpr_4 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 974u, 0x08ACF5ECu, 0x0884C700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 70u, 0x0884C700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF5ECu) goto L_08ACF5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF5EC: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -8920,8 +12103,21 @@ L_08ACF5EC: L_08ACF5F8: aot_gpr_31 = (0x08ACF600u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 976u, 0x08ACF600u, 0x0884C68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 63u, 0x0884C68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF600u) goto L_08ACF600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF600: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_08ACF604; @@ -8949,8 +12145,21 @@ L_08ACF604: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08ACF634u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 978u, 0x08ACF634u, 0x08A06228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 544u, 0x08A06228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF634u) goto L_08ACF634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF634: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8980,8 +12189,21 @@ L_08ACF654: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08ACF674u); ctx.gpr[6] = (0u | 62u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 982u, 0x08ACF674u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF674u) goto L_08ACF674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF674: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9011,14 +12233,40 @@ L_08ACF694: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08ACF6B4u); ctx.gpr[6] = (0u | 61u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 986u, 0x08ACF6B4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF6B4u) goto L_08ACF6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF6B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_31 = (0x08ACF6C0u); aot_gpr_5 = (0u | 106u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 987u, 0x08ACF6C0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF6C0u) goto L_08ACF6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF6C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9043,8 +12291,21 @@ L_08ACF6E0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08ACF6ECu); aot_gpr_4 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 991u, 0x08ACF6ECu, 0x0884C700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 70u, 0x0884C700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF6ECu) goto L_08ACF6EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF6EC: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -9056,8 +12317,21 @@ L_08ACF6EC: L_08ACF6F8: aot_gpr_31 = (0x08ACF700u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 993u, 0x08ACF700u, 0x0884C68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 63u, 0x0884C68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF700u) goto L_08ACF700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF700: ctx.gpr[19] = (ctx.gpr[20] | 0u); goto L_08ACF704; @@ -9085,8 +12359,21 @@ L_08ACF704: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08ACF734u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 995u, 0x08ACF734u, 0x08A06228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 544u, 0x08A06228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF734u) goto L_08ACF734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF734: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9098,8 +12385,21 @@ L_08ACF73C: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08ACF748u); aot_gpr_4 = (0u | 48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 997u, 0x08ACF748u, 0x0884C700u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 70u, 0x0884C700u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF748u) goto L_08ACF748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF748: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -9111,8 +12411,21 @@ L_08ACF748: L_08ACF754: aot_gpr_31 = (0x08ACF75Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 999u, 0x08ACF75Cu, 0x0884C68Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 63u, 0x0884C68Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF75Cu) goto L_08ACF75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF75C: ctx.gpr[20] = (ctx.gpr[19] | 0u); goto L_08ACF760; @@ -9140,8 +12453,21 @@ L_08ACF760: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08ACF790u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1001u, 0x08ACF790u, 0x08A06228u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 544u, 0x08A06228u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF790u) goto L_08ACF790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF790: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); @@ -9152,13 +12478,39 @@ L_08ACF790: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08ACF7B4u); aot_gpr_5 = (aot_gpr_29 + static_cast(160)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1002u, 0x08ACF7B4u, 0x08827CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 584u, 0x08827CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF7B4u) goto L_08ACF7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF7B4: aot_gpr_31 = (0x08ACF7BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1003u, 0x08ACF7BCu, 0x08A4182Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 290u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 290u, 0x08A4182Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF7BCu) goto L_08ACF7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF7BC: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8072), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8422), static_cast(0u)); @@ -9215,8 +12567,21 @@ L_08ACF7EC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08ACF81Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1006u, 0x08ACF81Cu, 0x089EE05Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 302u, 0x089EE05Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF81Cu) goto L_08ACF81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF81C: aot_gpr_4 = (aot_gpr_29 + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -9255,8 +12620,8 @@ L_08ACF83C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(688)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACF85C: @@ -9312,15 +12677,15 @@ L_08ACF85C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACF884: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACF88C: @@ -9331,8 +12696,21 @@ L_08ACF88C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08ACF8A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1012u, 0x08ACF8A8u, 0x08968F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 226u, 0x08968F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF8A8u) goto L_08ACF8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF8A8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9343,8 +12721,21 @@ L_08ACF8A8: L_08ACF8B0: aot_gpr_31 = (0x08ACF8B8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1014u, 0x08ACF8B8u, 0x0896950Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 287u, 0x0896950Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF8B8u) goto L_08ACF8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF8B8: aot_gpr_17 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -9363,8 +12754,21 @@ L_08ACF8C4: } L_08ACF8D0: aot_gpr_31 = (0x08ACF8D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1017u, 0x08ACF8D8u, 0x089694D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 282u, 0x089694D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF8D8u) goto L_08ACF8D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF8D8: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(8), 0u); goto L_08ACF8DC; @@ -9378,8 +12782,8 @@ L_08ACF8DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACF8F4: @@ -9408,8 +12812,8 @@ L_08ACF91C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(16184))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACF934: @@ -9430,8 +12834,21 @@ L_08ACF93C: } L_08ACF944: aot_gpr_31 = (0x08ACF94Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1025u, 0x08ACF94Cu, 0x08A3CA94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 138u, 0x08A3CA94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF94Cu) goto L_08ACF94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF94C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9441,8 +12858,21 @@ L_08ACF94C: } L_08ACF954: aot_gpr_31 = (0x08ACF95Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1027u, 0x08ACF95Cu, 0x08AFEB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 608u, 0x08AFEB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF95Cu) goto L_08ACF95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF95C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9452,8 +12882,21 @@ L_08ACF95C: } L_08ACF964: aot_gpr_31 = (0x08ACF96Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1029u, 0x08ACF96Cu, 0x089051ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 241u, 0x089051ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF96Cu) goto L_08ACF96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF96C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9463,8 +12906,21 @@ L_08ACF96C: } L_08ACF974: aot_gpr_31 = (0x08ACF97Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1031u, 0x08ACF97Cu, 0x0882B404u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 332u, 0x0882B404u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF97Cu) goto L_08ACF97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF97C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9474,8 +12930,21 @@ L_08ACF97C: } L_08ACF984: aot_gpr_31 = (0x08ACF98Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1033u, 0x08ACF98Cu, 0x08AAFE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 858u, 0x08AAFE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF98Cu) goto L_08ACF98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF98C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9485,8 +12954,21 @@ L_08ACF98C: } L_08ACF994: aot_gpr_31 = (0x08ACF99Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1035u, 0x08ACF99Cu, 0x0887EFDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 639u, 0x0887EFDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF99Cu) goto L_08ACF99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF99C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9509,8 +12991,8 @@ L_08ACF9B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACF9BC: @@ -9531,14 +13013,40 @@ L_08ACF9D8: aot_gpr_4 = (aot_gpr_4 + static_cast(-32624)); aot_gpr_31 = (0x08ACF9E8u); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(92), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1041u, 0x08ACF9E8u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF9E8u) goto L_08ACF9E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF9E8: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08ACF9F4u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1042u, 0x08ACF9F4u, 0x08818AA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 92u, 0x08818AA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACF9F4u) goto L_08ACF9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACF9F4: aot_gpr_31 = (0x08ACF9FCu); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -9546,8 +13054,21 @@ L_08ACF9F4: L_08ACF9FC: aot_gpr_31 = (0x08ACFA04u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1044u, 0x08ACFA04u, 0x08A93058u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 437u, 0x08A93058u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFA04u) goto L_08ACFA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFA04: { const bool branch_taken = aot_gpr_17 == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -9583,8 +13104,21 @@ L_08ACFA24: goto L_08ACFA30; L_08ACFA30: aot_gpr_31 = (0x08ACFA38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1049u, 0x08ACFA38u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFA38u) goto L_08ACFA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFA38: aot_gpr_4 = (ctx.gpr[16] & 1u); goto L_08ACFA3C; @@ -9609,22 +13143,22 @@ L_08ACFA4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFA60: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFA68: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFA70: @@ -9762,8 +13296,21 @@ L_08ACFB48: L_08ACFB50: aot_gpr_31 = (0x08ACFB58u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1071u, 0x08ACFB58u, 0x08AD06F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 79u, 0x08AD06F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFB58u) goto L_08ACFB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFB58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(76))); aot_gpr_5 = (aot_gpr_2 & 1u); @@ -9787,8 +13334,8 @@ L_08ACFB8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFB9C: @@ -9926,8 +13473,21 @@ L_08ACFC74: L_08ACFC7C: aot_gpr_31 = (0x08ACFC84u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1089u, 0x08ACFC84u, 0x08AD06F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 79u, 0x08AD06F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFC84u) goto L_08ACFC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFC84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(76))); aot_gpr_5 = (aot_gpr_2 & 1u); @@ -9940,15 +13500,15 @@ L_08ACFC84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFCB0: jump_target = aot_gpr_31; aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(88)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFCB8: @@ -10055,8 +13615,21 @@ L_08ACFD74: L_08ACFD80: aot_gpr_31 = (0x08ACFD88u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1103u, 0x08ACFD88u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFD88u) goto L_08ACFD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFD88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); goto L_08ACFD8C; @@ -10070,8 +13643,21 @@ L_08ACFD90: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08ACFDA8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1106u, 0x08ACFDA8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFDA8u) goto L_08ACFDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFDA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10108,8 +13694,21 @@ L_08ACFDD0: L_08ACFDDC: aot_gpr_31 = (0x08ACFDE4u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1111u, 0x08ACFDE4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFDE4u) goto L_08ACFDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFDE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); goto L_08ACFDE8; @@ -10123,8 +13722,21 @@ L_08ACFDEC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08ACFE04u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1114u, 0x08ACFE04u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFE04u) goto L_08ACFE04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFE04: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); aot_gpr_31 = (0x08ACFE10u); @@ -10133,8 +13745,21 @@ L_08ACFE04: L_08ACFE10: aot_gpr_31 = (0x08ACFE18u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1116u, 0x08ACFE18u, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFE18u) goto L_08ACFE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFE18: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -10145,8 +13770,8 @@ L_08ACFE18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFE30: @@ -10206,8 +13831,21 @@ L_08ACFE80: L_08ACFE8C: aot_gpr_31 = (0x08ACFE94u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1124u, 0x08ACFE94u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFE94u) goto L_08ACFE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFE94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); goto L_08ACFE98; @@ -10221,8 +13859,21 @@ L_08ACFE9C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08ACFEB4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1127u, 0x08ACFEB4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFEB4u) goto L_08ACFEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFEB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -10259,8 +13910,21 @@ L_08ACFEDC: L_08ACFEE8: aot_gpr_31 = (0x08ACFEF0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1132u, 0x08ACFEF0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFEF0u) goto L_08ACFEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFEF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); goto L_08ACFEF4; @@ -10274,8 +13938,21 @@ L_08ACFEF8: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08ACFF10u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1135u, 0x08ACFF10u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFF10u) goto L_08ACFF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFF10: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -10296,8 +13973,21 @@ L_08ACFF24: L_08ACFF34: aot_gpr_31 = (0x08ACFF3Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1138u, 0x08ACFF3Cu, 0x088DF74Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 458u, 0x088DF74Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFF3Cu) goto L_08ACFF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFF3C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -10307,8 +13997,8 @@ L_08ACFF3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFF50: @@ -10342,8 +14032,21 @@ L_08ACFF7C: goto L_08ACFF8C; L_08ACFF8C: aot_gpr_31 = (0x08ACFF94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1143u, 0x08ACFF94u, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFF94u) goto L_08ACFF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFF94: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(80), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(64))); @@ -10364,16 +14067,29 @@ L_08ACFFA4: } L_08ACFFB4: aot_gpr_31 = (0x08ACFFBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0178->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0178_entry, 1146u, 0x08ACFFBCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ACFFBCu) goto L_08ACFFBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ACFFBC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(64), 0u); ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ACFFD0: diff --git a/profiles/vcs/generated/generated_unit_0179.cpp b/profiles/vcs/generated/generated_unit_0179.cpp index d52aa9f..464a742 100644 --- a/profiles/vcs/generated/generated_unit_0179.cpp +++ b/profiles/vcs/generated/generated_unit_0179.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0179[64] = { 367u, 383u, 389u, 393u, 410u, 413u, 418u, 426u, 439u, 447u, 453u, 460u, 473u, 480u, 495u, 506u, 515u, 525u, 540u, 554u, 565u, 580u, 597u, 614u, 629u, 646u, 661u, 684u, 697u, 713u, 727u, 746u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0179[4095] = { + 1u, 2u, 0u, 3u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 5u, 0u, 0u, 0u, 6u, 0u, 7u, 0u, 8u, 0u, 9u, 0u, 0u, 0u, 10u, 0u, 11u, 0u, 12u, 0u, 13u, + 0u, 0u, 0u, 0u, 14u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 17u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 20u, 0u, 0u, 0u, + 0u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 22u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 0u, 27u, + 0u, 0u, 0u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 30u, 0u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, 32u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, + 0u, 0u, 0u, 0u, 38u, 0u, 0u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 44u, 0u, 45u, 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 51u, 0u, 0u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 53u, 0u, 0u, 0u, 0u, 0u, 0u, 54u, 0u, 55u, 0u, 56u, 0u, 57u, 0u, 0u, + 58u, 0u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 60u, 0u, 0u, 0u, 61u, 0u, 62u, 0u, 63u, 0u, 64u, 0u, 65u, 0u, 66u, 0u, 0u, 0u, 0u, 67u, 0u, 0u, 0u, + 68u, 0u, 69u, 0u, 70u, 0u, 71u, 0u, 72u, 0u, 0u, 73u, 0u, 0u, 0u, 0u, 0u, 74u, 0u, 75u, 0u, 76u, 0u, 77u, 0u, 78u, 0u, 0u, 0u, 79u, 0u, 0u, + 0u, 0u, 80u, 0u, 0u, 81u, 0u, 0u, 82u, 0u, 0u, 83u, 0u, 0u, 84u, 0u, 0u, 85u, 0u, 0u, 86u, 0u, 0u, 87u, 0u, 0u, 88u, 0u, 0u, 89u, 0u, 0u, + 90u, 0u, 0u, 91u, 0u, 92u, 0u, 93u, 0u, 0u, 94u, 0u, 0u, 95u, 0u, 0u, 96u, 0u, 0u, 97u, 0u, 0u, 98u, 0u, 99u, 0u, 100u, 0u, 101u, 0u, 0u, 102u, + 0u, 0u, 103u, 0u, 0u, 0u, 0u, 104u, 0u, 105u, 0u, 106u, 0u, 107u, 0u, 0u, 0u, 0u, 108u, 0u, 0u, 109u, 0u, 110u, 0u, 111u, 112u, 0u, 0u, 0u, 113u, 0u, + 0u, 114u, 0u, 115u, 0u, 116u, 0u, 0u, 0u, 0u, 0u, 0u, 117u, 0u, 0u, 0u, 118u, 0u, 0u, 119u, 0u, 0u, 120u, 0u, 0u, 121u, 0u, 0u, 122u, 0u, 0u, 123u, + 0u, 0u, 124u, 0u, 0u, 125u, 0u, 0u, 126u, 0u, 127u, 128u, 0u, 129u, 0u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 0u, 132u, 0u, 133u, + 0u, 134u, 0u, 135u, 0u, 0u, 0u, 136u, 0u, 0u, 137u, 0u, 138u, 0u, 139u, 0u, 140u, 0u, 141u, 0u, 142u, 0u, 0u, 143u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 144u, + 0u, 0u, 145u, 0u, 0u, 0u, 146u, 0u, 147u, 0u, 148u, 0u, 149u, 0u, 150u, 0u, 151u, 0u, 152u, 0u, 0u, 0u, 0u, 0u, 153u, 0u, 0u, 0u, 0u, 154u, 0u, 155u, + 0u, 0u, 0u, 156u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 161u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 164u, 0u, 165u, 166u, 0u, 0u, 0u, 0u, 0u, 167u, 0u, 0u, + 0u, 0u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 0u, 0u, 170u, 0u, 0u, 171u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 174u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 175u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 178u, 0u, 0u, 0u, 0u, 179u, 0u, 0u, 0u, 180u, 0u, 0u, 0u, 181u, 0u, 0u, 0u, 182u, 0u, 0u, 0u, 183u, 0u, 0u, + 0u, 184u, 0u, 0u, 0u, 185u, 0u, 0u, 0u, 186u, 0u, 187u, 0u, 188u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 189u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 190u, 0u, + 191u, 0u, 192u, 0u, 0u, 0u, 193u, 0u, 0u, 194u, 0u, 195u, 0u, 0u, 0u, 0u, 0u, 196u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 198u, 0u, + 0u, 0u, 0u, 0u, 199u, 0u, 200u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 202u, 0u, 203u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 204u, 205u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 209u, 0u, 0u, 210u, + 0u, 211u, 0u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 215u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 220u, 0u, 221u, 0u, 222u, 0u, 223u, 0u, 224u, 0u, + 225u, 226u, 0u, 227u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 228u, 0u, 0u, 0u, 0u, 0u, 229u, 0u, + 0u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 232u, 0u, 0u, 233u, 0u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 235u, 236u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 239u, 0u, 0u, 0u, 240u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 241u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 246u, 0u, 247u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 248u, 0u, 0u, 249u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, 0u, 251u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, + 0u, 0u, 253u, 0u, 0u, 0u, 0u, 254u, 0u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 256u, 0u, 257u, 0u, 0u, 0u, 258u, 0u, 0u, 259u, 0u, 260u, 0u, 261u, + 0u, 262u, 0u, 263u, 0u, 0u, 264u, 0u, 0u, 265u, 0u, 0u, 266u, 0u, 0u, 267u, 0u, 0u, 268u, 0u, 0u, 269u, 0u, 0u, 0u, 270u, 0u, 0u, 271u, 0u, 272u, 0u, + 273u, 0u, 274u, 0u, 275u, 0u, 0u, 276u, 0u, 0u, 277u, 0u, 0u, 278u, 0u, 0u, 279u, 0u, 0u, 280u, 281u, 0u, 0u, 282u, 0u, 0u, 283u, 0u, 284u, 0u, 0u, 0u, + 285u, 0u, 286u, 0u, 0u, 0u, 0u, 287u, 0u, 0u, 0u, 0u, 0u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 291u, 0u, 0u, 0u, 292u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, 294u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 295u, 0u, 0u, 296u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 297u, 0u, 0u, 298u, 0u, 299u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 300u, 0u, + 0u, 301u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 303u, 0u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 0u, 0u, 306u, 0u, + 0u, 0u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 309u, 0u, 0u, 0u, 310u, 0u, 0u, 311u, 0u, 312u, 0u, 313u, 0u, 314u, 0u, 315u, 0u, 0u, 316u, 0u, 0u, + 317u, 0u, 0u, 318u, 0u, 0u, 319u, 0u, 0u, 320u, 0u, 0u, 321u, 0u, 0u, 0u, 322u, 0u, 0u, 323u, 0u, 324u, 0u, 325u, 0u, 326u, 0u, 327u, 0u, 0u, 328u, 0u, + 0u, 329u, 0u, 0u, 330u, 0u, 0u, 331u, 0u, 0u, 332u, 333u, 0u, 0u, 334u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 337u, 0u, 0u, 338u, 0u, 339u, 0u, + 340u, 0u, 341u, 0u, 342u, 0u, 343u, 0u, 344u, 345u, 0u, 346u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 0u, 354u, 0u, 355u, 0u, 356u, 0u, + 0u, 0u, 357u, 0u, 0u, 358u, 0u, 359u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 363u, 0u, 364u, 0u, 365u, 0u, 0u, 0u, 366u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, 0u, 368u, 0u, 369u, 0u, 0u, 0u, 0u, 370u, 0u, 371u, 0u, 372u, 0u, + 373u, 0u, 374u, 0u, 0u, 0u, 0u, 375u, 0u, 376u, 0u, 377u, 0u, 378u, 0u, 379u, 0u, 0u, 0u, 0u, 380u, 0u, 0u, 0u, 0u, 381u, 0u, 0u, 0u, 0u, 382u, 0u, + 0u, 0u, 383u, 0u, 384u, 0u, 385u, 0u, 386u, 0u, 0u, 0u, 387u, 0u, 0u, 0u, 0u, 0u, 388u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 389u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 392u, 0u, 0u, + 0u, 0u, 393u, 0u, 0u, 0u, 394u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 396u, 0u, 397u, 0u, 0u, 398u, 0u, 0u, 0u, 399u, 0u, 400u, 0u, 401u, 0u, 402u, 0u, 403u, + 0u, 0u, 0u, 404u, 0u, 405u, 0u, 406u, 0u, 407u, 0u, 408u, 0u, 0u, 0u, 409u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 410u, 0u, 411u, 0u, 0u, 0u, 0u, + 412u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 413u, 0u, 414u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 416u, 0u, 417u, 0u, 0u, 0u, + 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, 421u, 0u, 422u, 0u, 423u, 0u, 0u, 0u, 0u, 424u, 0u, 425u, 0u, + 426u, 0u, 0u, 0u, 0u, 427u, 0u, 428u, 0u, 429u, 0u, 0u, 0u, 0u, 430u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 434u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 437u, 0u, 0u, 0u, 0u, 0u, 438u, 0u, 0u, 0u, 0u, + 0u, 439u, 0u, 440u, 0u, 441u, 0u, 442u, 0u, 443u, 0u, 0u, 0u, 0u, 0u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 446u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 448u, 0u, 0u, 449u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, + 0u, 0u, 0u, 0u, 0u, 453u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 454u, 0u, 455u, 0u, 456u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 457u, 0u, 458u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 459u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 460u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, + 0u, 0u, 0u, 0u, 464u, 465u, 466u, 0u, 467u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, 0u, 0u, 469u, 470u, 471u, 0u, 472u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 475u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 476u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, + 0u, 0u, 0u, 480u, 481u, 482u, 0u, 483u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, 0u, 485u, 486u, 487u, 0u, 488u, 0u, 0u, 0u, 0u, 0u, + 0u, 489u, 0u, 0u, 0u, 0u, 0u, 0u, 490u, 0u, 491u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, 494u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 495u, 0u, 0u, 0u, 0u, 0u, 0u, 496u, 497u, 498u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 0u, 0u, + 0u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 503u, 0u, 504u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 505u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 506u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 0u, 0u, 510u, 0u, 0u, 511u, 0u, 512u, 0u, 0u, 0u, 0u, 0u, 513u, 0u, 0u, 0u, 0u, 0u, 0u, 514u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 516u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 517u, 0u, 0u, 0u, 518u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 519u, 520u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 521u, 0u, 0u, 0u, 522u, 523u, 0u, 524u, 0u, 0u, + 0u, 525u, 0u, 0u, 526u, 0u, 0u, 0u, 527u, 0u, 0u, 528u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 0u, 0u, 530u, 0u, 0u, 0u, 531u, 0u, 0u, 0u, 532u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 0u, 0u, 534u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, 536u, 0u, 0u, 0u, 537u, 0u, 0u, 538u, 0u, 0u, 0u, 539u, 0u, + 0u, 540u, 0u, 0u, 0u, 541u, 0u, 0u, 542u, 0u, 0u, 0u, 543u, 0u, 0u, 544u, 0u, 0u, 0u, 545u, 0u, 0u, 546u, 0u, 0u, 0u, 0u, 0u, 0u, 547u, 0u, 0u, + 548u, 0u, 0u, 0u, 0u, 0u, 0u, 549u, 0u, 0u, 550u, 0u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 0u, 0u, 0u, 0u, 553u, 0u, 0u, + 554u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, 556u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, 558u, 0u, 0u, 0u, 0u, 559u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 562u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 563u, 0u, 0u, 0u, 0u, 564u, 0u, + 0u, 0u, 0u, 565u, 0u, 0u, 0u, 0u, 566u, 0u, 0u, 567u, 0u, 0u, 0u, 0u, 0u, 0u, 568u, 0u, 0u, 569u, 0u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 0u, + 571u, 0u, 0u, 572u, 0u, 0u, 0u, 573u, 0u, 0u, 0u, 0u, 574u, 0u, 0u, 575u, 0u, 0u, 0u, 576u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 579u, 0u, + 0u, 0u, 0u, 580u, 0u, 0u, 581u, 0u, 0u, 0u, 0u, 582u, 0u, 0u, 583u, 0u, 0u, 0u, 0u, 584u, 0u, 0u, 585u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 587u, 0u, + 0u, 0u, 0u, 588u, 0u, 0u, 589u, 0u, 590u, 0u, 591u, 0u, 0u, 0u, 0u, 592u, 0u, 0u, 593u, 0u, 594u, 0u, 0u, 0u, 595u, 0u, 0u, 596u, 0u, 0u, 0u, 0u, + 0u, 597u, 0u, 0u, 598u, 0u, 0u, 0u, 0u, 0u, 599u, 0u, 0u, 600u, 0u, 0u, 0u, 601u, 0u, 0u, 602u, 0u, 0u, 0u, 0u, 603u, 0u, 0u, 604u, 0u, 0u, 0u, + 605u, 0u, 0u, 606u, 0u, 0u, 607u, 0u, 0u, 0u, 0u, 608u, 0u, 0u, 609u, 0u, 0u, 0u, 0u, 610u, 0u, 0u, 611u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 0u, 613u, + 0u, 0u, 614u, 0u, 0u, 0u, 0u, 615u, 0u, 0u, 0u, 616u, 0u, 0u, 0u, 0u, 0u, 0u, 617u, 0u, 0u, 0u, 0u, 618u, 0u, 0u, 0u, 619u, 0u, 620u, 0u, 0u, + 621u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 623u, 0u, 0u, 0u, 0u, 624u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 627u, 0u, 0u, 0u, 0u, 628u, 0u, 0u, + 629u, 0u, 0u, 0u, 0u, 630u, 0u, 0u, 631u, 0u, 0u, 0u, 632u, 0u, 0u, 0u, 0u, 633u, 0u, 0u, 634u, 0u, 0u, 0u, 635u, 0u, 0u, 0u, 0u, 636u, 0u, 0u, + 637u, 0u, 0u, 0u, 0u, 638u, 0u, 0u, 639u, 0u, 0u, 0u, 640u, 0u, 0u, 641u, 0u, 0u, 0u, 0u, 642u, 0u, 0u, 643u, 0u, 0u, 0u, 644u, 0u, 0u, 645u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 646u, 647u, 0u, 0u, 648u, 0u, 0u, 0u, 649u, 0u, 0u, 0u, 650u, 0u, 0u, 0u, 0u, 0u, 651u, 0u, + 0u, 652u, 0u, 653u, 0u, 654u, 0u, 655u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 656u, 0u, 0u, 0u, 657u, 0u, 0u, 0u, 658u, 659u, 660u, 0u, + 0u, 0u, 661u, 0u, 0u, 662u, 0u, 0u, 663u, 0u, 664u, 665u, 0u, 666u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 667u, 0u, 668u, 0u, 0u, 669u, 0u, 0u, 670u, + 0u, 0u, 671u, 0u, 672u, 673u, 0u, 674u, 0u, 0u, 0u, 0u, 675u, 0u, 0u, 0u, 676u, 0u, 0u, 0u, 677u, 678u, 679u, 0u, 680u, 0u, 0u, 681u, 0u, 682u, 683u, 0u, + 684u, 0u, 0u, 0u, 0u, 0u, 685u, 0u, 686u, 687u, 0u, 688u, 0u, 0u, 0u, 689u, 0u, 0u, 0u, 690u, 0u, 691u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 692u, 0u, + 0u, 0u, 693u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 694u, 0u, 0u, 0u, 0u, 695u, 0u, 0u, 696u, 0u, 0u, 0u, + 697u, 0u, 0u, 698u, 0u, 0u, 0u, 699u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 701u, 0u, 0u, 0u, 702u, 703u, 0u, + 0u, 704u, 0u, 705u, 0u, 0u, 0u, 0u, 706u, 0u, 0u, 0u, 707u, 708u, 0u, 0u, 0u, 709u, 0u, 0u, 0u, 0u, 0u, 0u, 710u, 0u, 0u, 711u, 0u, 0u, 712u, 0u, + 0u, 0u, 713u, 0u, 714u, 0u, 0u, 715u, 0u, 0u, 0u, 0u, 0u, 716u, 0u, 717u, 0u, 718u, 0u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 720u, 0u, 721u, 0u, 0u, 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 723u, 0u, 724u, 0u, 0u, 0u, 0u, 725u, 0u, 0u, 726u, 0u, + 0u, 0u, 727u, 0u, 728u, 0u, 0u, 729u, 0u, 0u, 730u, 731u, 0u, 0u, 0u, 732u, 0u, 733u, 0u, 0u, 0u, 0u, 0u, 0u, 734u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 735u, 0u, 0u, 736u, 0u, 737u, 0u, 738u, 0u, 739u, 0u, 740u, 0u, 741u, 0u, 742u, 0u, 743u, 0u, 0u, 0u, 744u, 0u, 0u, 0u, 745u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 746u, 0u, 0u, 747u, 0u, 748u, 0u, 0u, 749u, 0u, 750u, 0u, 0u, 0u, 0u, 0u, 751u, 0u, 752u, 0u, 0u, 0u, 753u, 0u, 0u, 0u, 0u, 0u, 0u, 754u, + 755u, 0u, 756u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 757u, 758u, 0u, 0u, 759u, 0u, 0u, 760u, 0u, 0u, 0u, 761u, 0u, 0u, 0u, 762u, +}; void recomp_unit_0179_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,31,16,6 fprs=12,13,14,20 gpr_occ=4405 fpr_occ=704 gpr_total=5490 fpr_total=884 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08AD0000u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0179[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0179[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0179[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08AD0000; @@ -840,6 +963,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AD0000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -857,8 +1004,21 @@ L_08AD0000: goto L_08AD0004; L_08AD0004: aot_gpr_31 = (0x08AD000Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 3u, 0x08AD000Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD000Cu) goto L_08AD000C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD000C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(64), 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); @@ -882,18 +1042,57 @@ L_08AD002C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AD003Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 6u, 0x08AD003Cu, 0x0887F3C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 702u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 702u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 702u, 0x0887F3C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD003Cu) goto L_08AD003C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD003C: aot_gpr_31 = (0x08AD0044u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 7u, 0x08AD0044u, 0x0895B97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 518u, 0x0895B97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0044u) goto L_08AD0044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0044: aot_gpr_31 = (0x08AD004Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 8u, 0x08AD004Cu, 0x089730ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 658u, 0x089730ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD004Cu) goto L_08AD004C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD004C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -913,13 +1112,39 @@ L_08AD0054: L_08AD0064: aot_gpr_31 = (0x08AD006Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 11u, 0x08AD006Cu, 0x0887F3F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 704u, 0x0887F3F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD006Cu) goto L_08AD006C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD006C: aot_gpr_31 = (0x08AD0074u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 12u, 0x08AD0074u, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0074u) goto L_08AD0074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0074: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -933,13 +1158,39 @@ L_08AD007C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AD0090u); aot_gpr_5 = (aot_gpr_5 + static_cast(-1908)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 14u, 0x08AD0090u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0090u) goto L_08AD0090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0090: aot_gpr_31 = (0x08AD0098u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 15u, 0x08AD0098u, 0x089D868Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 74u, 0x089D868Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0098u) goto L_08AD0098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0098: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(80), 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); @@ -960,8 +1211,21 @@ L_08AD00B0: goto L_08AD00C0; L_08AD00C0: aot_gpr_31 = (0x08AD00C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 18u, 0x08AD00C8u, 0x088DF770u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 460u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 460u, 0x088DF770u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD00C8u) goto L_08AD00C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD00C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -989,8 +1253,8 @@ L_08AD00F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0108: @@ -1001,8 +1265,21 @@ L_08AD0108: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AD0134u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 22u, 0x08AD0134u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0134u) goto L_08AD0134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0134: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -1065,8 +1342,21 @@ L_08AD0134: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AD01A4u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 23u, 0x08AD01A4u, 0x088618A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 233u, 0x088618A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD01A4u) goto L_08AD01A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD01A4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -1120,8 +1410,21 @@ L_08AD01FC: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AD0218u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 28u, 0x08AD0218u, 0x088618A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 233u, 0x088618A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0218u) goto L_08AD0218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0218: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -1179,8 +1482,21 @@ L_08AD0270: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AD029Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 33u, 0x08AD029Cu, 0x088618A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 233u, 0x088618A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD029Cu) goto L_08AD029C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD029C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -1234,8 +1550,21 @@ L_08AD02F4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AD0310u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 38u, 0x08AD0310u, 0x088618A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 233u, 0x088618A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0310u) goto L_08AD0310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0310: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); @@ -1297,8 +1626,8 @@ L_08AD0368: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD03B8: @@ -1428,8 +1757,8 @@ L_08AD043C: goto L_08AD0444; L_08AD0444: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD044C: @@ -1456,8 +1785,21 @@ L_08AD044C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AD04B4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 47u, 0x08AD04B4u, 0x08ACF85Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1009u, 0x08ACF85Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD04B4u) goto L_08AD04B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD04B4: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1483,8 +1825,21 @@ L_08AD04B4: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AD04E8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 48u, 0x08AD04E8u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD04E8u) goto L_08AD04E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD04E8: aot_gpr_4 = (0u | 0u); { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); @@ -1518,8 +1873,8 @@ L_08AD0510: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0530: @@ -1621,8 +1976,8 @@ L_08AD0530: ctx.gpr[2] = (aot_gpr_4 & 32u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0598: @@ -1680,8 +2035,8 @@ L_08AD05F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0600: @@ -1712,32 +2067,32 @@ L_08AD0624: goto L_08AD0634; L_08AD0634: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD063C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0644: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD064C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0654: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD065C: @@ -1762,8 +2117,21 @@ L_08AD0670: L_08AD0680: aot_gpr_31 = (0x08AD0688u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 69u, 0x08AD0688u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0688u) goto L_08AD0688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0688: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1781,14 +2149,27 @@ L_08AD0690: L_08AD0698: aot_gpr_31 = (0x08AD06A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 72u, 0x08AD06A0u, 0x08972D80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 621u, 0x08972D80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD06A0u) goto L_08AD06A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD06A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD06AC: @@ -1798,8 +2179,21 @@ L_08AD06AC: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AD06C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 74u, 0x08AD06C4u, 0x0889E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 603u, 0x0889E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD06C4u) goto L_08AD06C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD06C4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1817,20 +2211,46 @@ L_08AD06CC: L_08AD06D4: aot_gpr_31 = (0x08AD06DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 77u, 0x08AD06DCu, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD06DCu) goto L_08AD06DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD06DC: aot_gpr_31 = (0x08AD06E4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 78u, 0x08AD06E4u, 0x089691F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 258u, 0x089691F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD06E4u) goto L_08AD06E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD06E4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD06F4: @@ -2225,8 +2645,8 @@ L_08AD0928: goto L_08AD092C; L_08AD092C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0934: @@ -2314,8 +2734,21 @@ L_08AD09B0: } L_08AD09B8: aot_gpr_31 = (0x08AD09C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 140u, 0x08AD09C0u, 0x0895BBA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 528u, 0x0895BBA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD09C0u) goto L_08AD09C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD09C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2326,14 +2759,27 @@ L_08AD09C0: L_08AD09C8: aot_gpr_31 = (0x08AD09D0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 142u, 0x08AD09D0u, 0x089D8788u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 90u, 0x089D8788u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD09D0u) goto L_08AD09D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD09D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD09DC: @@ -2368,8 +2814,21 @@ L_08AD0A08: } L_08AD0A18: aot_gpr_31 = (0x08AD0A20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 147u, 0x08AD0A20u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0A20u) goto L_08AD0A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0A20: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2423,8 +2882,21 @@ L_08AD0A60: aot_fpr_12 = aot_fpr_12 / aot_fpr_20; aot_gpr_31 = (0x08AD0A74u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 154u, 0x08AD0A74u, 0x0884CC80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 148u, 0x0884CC80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0A74u) goto L_08AD0A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0A74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2463,8 +2935,21 @@ L_08AD0AB0: aot_gpr_5 = (aot_gpr_5 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08AD0AD0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 159u, 0x08AD0AD0u, 0x0884CC80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 148u, 0x0884CC80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0AD0u) goto L_08AD0AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0AD0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2474,8 +2959,8 @@ L_08AD0AD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0AE4: @@ -2488,8 +2973,8 @@ L_08AD0AE4: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0B08: @@ -2527,8 +3012,21 @@ L_08AD0B40: L_08AD0B50: aot_gpr_31 = (0x08AD0B58u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 165u, 0x08AD0B58u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0B58u) goto L_08AD0B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0B58: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), ctx.gpr[18]); goto L_08AD0B5C; @@ -2539,8 +3037,21 @@ L_08AD0B5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x08AD0B74u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 167u, 0x08AD0B74u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0B74u) goto L_08AD0B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0B74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8348))); aot_gpr_4 = (16128u << 16u); @@ -2819,13 +3330,39 @@ L_08AD0DD4: aot_gpr_6 = (aot_gpr_29 + static_cast(52)); aot_gpr_31 = (0x08AD0DF8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 190u, 0x08AD0DF8u, 0x089DD460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 197u, 0x089DD460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0DF8u) goto L_08AD0DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0DF8: aot_gpr_31 = (0x08AD0E00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 191u, 0x08AD0E00u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0E00u) goto L_08AD0E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0E00: aot_gpr_31 = (0x08AD0E08u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2850,8 +3387,21 @@ L_08AD0E18: L_08AD0E24: aot_gpr_31 = (0x08AD0E2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 195u, 0x08AD0E2Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0E2Cu) goto L_08AD0E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0E2C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -2862,8 +3412,8 @@ L_08AD0E2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0E44: @@ -2901,8 +3451,21 @@ L_08AD0E78: L_08AD0E90: aot_gpr_31 = (0x08AD0E98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 200u, 0x08AD0E98u, 0x08827944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 544u, 0x08827944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0E98u) goto L_08AD0E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0E98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (65528u << 16u); @@ -2915,14 +3478,14 @@ L_08AD0EAC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0EBC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD0EC4: @@ -3025,8 +3588,21 @@ L_08AD0F60: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AD0FA4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 207u, 0x08AD0FA4u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0FA4u) goto L_08AD0FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0FA4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_12)); @@ -3043,8 +3619,21 @@ L_08AD0FA4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD0FE0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 208u, 0x08AD0FE0u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD0FE0u) goto L_08AD0FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD0FE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -3065,8 +3654,21 @@ L_08AD0FF0: L_08AD0FFC: aot_gpr_31 = (0x08AD1004u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 211u, 0x08AD1004u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD1004u) goto L_08AD1004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD1004: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(164), aot_run_words); @@ -3078,14 +3680,14 @@ L_08AD1004: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD1020: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD1028: @@ -3320,8 +3922,8 @@ L_08AD1200: L_08AD1204: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD120C: @@ -3472,8 +4074,21 @@ L_08AD12A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08AD1328u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 232u, 0x08AD1328u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD1328u) goto L_08AD1328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD1328: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3522,8 +4137,8 @@ L_08AD135C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD138C: @@ -3940,8 +4555,21 @@ L_08AD16D0: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08AD16DCu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 282u, 0x08AD16DCu, 0x08807C9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD16DCu) goto L_08AD16DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD16DC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4008,8 +4636,8 @@ L_08AD1738: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD1768: @@ -4487,8 +5115,21 @@ L_08AD1B08: } L_08AD1B10: aot_gpr_31 = (0x08AD1B18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 343u, 0x08AD1B18u, 0x08807CB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 595u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 595u, 0x08807CB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD1B18u) goto L_08AD1B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD1B18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4545,8 +5186,8 @@ L_08AD1B58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD1B88: @@ -4555,8 +5196,21 @@ L_08AD1B88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AD1BA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 350u, 0x08AD1BA0u, 0x08AAF864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 783u, 0x08AAF864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD1BA0u) goto L_08AD1BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD1BA0: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-32624)); @@ -4782,8 +5436,8 @@ L_08AD1EDC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD1F18: @@ -4844,8 +5498,21 @@ L_08AD1F88: L_08AD1F94: aot_gpr_31 = (0x08AD1F9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 359u, 0x08AD1F9Cu, 0x0898171Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 344u, 0x0898171Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD1F9Cu) goto L_08AD1F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD1F9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 & 16384u); @@ -4952,13 +5619,39 @@ L_08AD2054: L_08AD2068: aot_gpr_31 = (0x08AD2070u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 371u, 0x08AD2070u, 0x088F3134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 630u, 0x088F3134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2070u) goto L_08AD2070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2070: aot_gpr_31 = (0x08AD2078u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 372u, 0x08AD2078u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2078u) goto L_08AD2078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2078: aot_gpr_31 = (0x08AD2080u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4983,13 +5676,39 @@ L_08AD2088: L_08AD209C: aot_gpr_31 = (0x08AD20A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 376u, 0x08AD20A4u, 0x088F2EB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 622u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 622u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 622u, 0x088F2EB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD20A4u) goto L_08AD20A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD20A4: aot_gpr_31 = (0x08AD20ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 377u, 0x08AD20ACu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD20ACu) goto L_08AD20AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD20AC: aot_gpr_31 = (0x08AD20B4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5043,8 +5762,21 @@ L_08AD20F8: L_08AD2108: aot_gpr_31 = (0x08AD2110u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 384u, 0x08AD2110u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2110u) goto L_08AD2110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2110: aot_gpr_31 = (0x08AD2118u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5131,8 +5863,21 @@ L_08AD2148: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08AD2200u); ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 389u, 0x08AD2200u, 0x08A9628Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 335u, 0x08A9628Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2200u) goto L_08AD2200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2200: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5166,8 +5911,21 @@ L_08AD2200: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AD2258u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 390u, 0x08AD2258u, 0x08B25C64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 403u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 403u, 0x08B25C64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2258u) goto L_08AD2258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2258: aot_gpr_4 = (17279u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5205,8 +5963,21 @@ L_08AD2258: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08AD22ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 391u, 0x08AD22ECu, 0x08983B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 634u, 0x08983B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD22ECu) goto L_08AD22EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD22EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5308,13 +6079,39 @@ L_08AD237C: L_08AD238C: aot_gpr_31 = (0x08AD2394u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 405u, 0x08AD2394u, 0x088F5D98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 465u, 0x088F5D98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2394u) goto L_08AD2394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2394: aot_gpr_31 = (0x08AD239Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 406u, 0x08AD239Cu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD239Cu) goto L_08AD239C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD239C: aot_gpr_31 = (0x08AD23A4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5482,8 +6279,21 @@ L_08AD23BC: ctx.gpr[7] = (0u | 100u); aot_gpr_31 = (0x08AD2464u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 410u, 0x08AD2464u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2464u) goto L_08AD2464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2464: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5648,8 +6458,21 @@ L_08AD2480: ctx.gpr[7] = (0u | 100u); aot_gpr_31 = (0x08AD2528u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 413u, 0x08AD2528u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2528u) goto L_08AD2528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2528: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5813,8 +6636,21 @@ L_08AD2540: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AD25E8u); ctx.gpr[8] = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 416u, 0x08AD25E8u, 0x088AAD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 413u, 0x088AAD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD25E8u) goto L_08AD25E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD25E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5920,8 +6756,21 @@ L_08AD2654: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08AD26B8u); ctx.fpr[18] = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 420u, 0x08AD26B8u, 0x08A9628Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 335u, 0x08A9628Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD26B8u) goto L_08AD26B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD26B8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); @@ -5935,8 +6784,21 @@ L_08AD26B8: L_08AD26CC: aot_gpr_31 = (0x08AD26D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 422u, 0x08AD26D4u, 0x08A0F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 643u, 0x08A0F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD26D4u) goto L_08AD26D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD26D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5957,8 +6819,21 @@ L_08AD26DC: L_08AD26F0: aot_gpr_31 = (0x08AD26F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 425u, 0x08AD26F8u, 0x08A0F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 643u, 0x08A0F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD26F8u) goto L_08AD26F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD26F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5979,8 +6854,21 @@ L_08AD2700: L_08AD2714: aot_gpr_31 = (0x08AD271Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 428u, 0x08AD271Cu, 0x08A0F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 643u, 0x08A0F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD271Cu) goto L_08AD271C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD271C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6001,8 +6889,21 @@ L_08AD2724: L_08AD2738: aot_gpr_31 = (0x08AD2740u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 431u, 0x08AD2740u, 0x08A0F9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 643u, 0x08A0F9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2740u) goto L_08AD2740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2740: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(512), aot_run_words); @@ -6016,8 +6917,8 @@ L_08AD2740: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD2764: @@ -6039,8 +6940,21 @@ L_08AD2764: L_08AD27A4: aot_gpr_31 = (0x08AD27ACu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 434u, 0x08AD27ACu, 0x08AECA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 168u, 0x08AECA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD27ACu) goto L_08AD27AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD27AC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6095,8 +7009,21 @@ L_08AD27EC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08AD2804u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 439u, 0x08AD2804u, 0x08809984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 323u, 0x08809984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2804u) goto L_08AD2804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2804: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6219,8 +7146,21 @@ L_08AD2858: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AD28D0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 446u, 0x08AD28D0u, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD28D0u) goto L_08AD28D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD28D0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_12)); @@ -6243,8 +7183,21 @@ L_08AD28D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD2924u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 447u, 0x08AD2924u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2924u) goto L_08AD2924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2924: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -6265,8 +7218,21 @@ L_08AD2934: L_08AD2940: aot_gpr_31 = (0x08AD2948u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 450u, 0x08AD2948u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2948u) goto L_08AD2948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2948: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_5 = (16u << 16u); @@ -6384,8 +7350,21 @@ L_08AD2A74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08AD2AB4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 457u, 0x08AD2AB4u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2AB4u) goto L_08AD2AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2AB4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6432,8 +7411,21 @@ L_08AD2AE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08AD2B20u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 460u, 0x08AD2B20u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2B20u) goto L_08AD2B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2B20: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6558,8 +7550,21 @@ L_08AD2BEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08AD2C2Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 473u, 0x08AD2C2Cu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2C2Cu) goto L_08AD2C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2C2C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6606,8 +7611,21 @@ L_08AD2C60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08AD2C98u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 476u, 0x08AD2C98u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2C98u) goto L_08AD2C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2C98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6748,8 +7766,21 @@ L_08AD2D84: aot_gpr_4 = (aot_gpr_29 + static_cast(320)); aot_gpr_31 = (0x08AD2DA0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 490u, 0x08AD2DA0u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2DA0u) goto L_08AD2DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2DA0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7008,8 +8039,21 @@ L_08AD2F28: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AD2F5Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 508u, 0x08AD2F5Cu, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2F5Cu) goto L_08AD2F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2F5C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(352))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(384), std::bit_cast(aot_fpr_12)); @@ -7026,8 +8070,21 @@ L_08AD2F5C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD2F98u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 509u, 0x08AD2F98u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2F98u) goto L_08AD2F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2F98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -7048,8 +8105,21 @@ L_08AD2FA8: L_08AD2FB4: aot_gpr_31 = (0x08AD2FBCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(432))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 512u, 0x08AD2FBCu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD2FBCu) goto L_08AD2FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD2FBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(92))); aot_gpr_5 = (aot_gpr_4 + static_cast(176)); @@ -7158,8 +8228,8 @@ L_08AD30B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(560)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD30D8: @@ -7177,8 +8247,8 @@ L_08AD30E8: L_08AD30EC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD30F4: @@ -7191,8 +8261,8 @@ L_08AD3104: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3110: @@ -7205,8 +8275,8 @@ L_08AD3120: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD312C: @@ -7236,8 +8306,8 @@ L_08AD316C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD317C: @@ -7267,8 +8337,8 @@ L_08AD31BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD31CC: @@ -7281,8 +8351,8 @@ L_08AD31DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD31E8: @@ -7295,8 +8365,8 @@ L_08AD31F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3204: @@ -7309,8 +8379,8 @@ L_08AD3214: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3220: @@ -7323,8 +8393,8 @@ L_08AD3230: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD323C: @@ -7337,8 +8407,8 @@ L_08AD324C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3258: @@ -7349,14 +8419,27 @@ L_08AD3258: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3274u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 547u, 0x08AD3274u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3274u) goto L_08AD3274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3274: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3280: @@ -7367,14 +8450,27 @@ L_08AD3280: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD329Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 549u, 0x08AD329Cu, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD329Cu) goto L_08AD329C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD329C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD32A8: @@ -7392,8 +8488,8 @@ L_08AD32C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD32D8: @@ -7404,14 +8500,27 @@ L_08AD32D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD32F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 553u, 0x08AD32F4u, 0x08AD7400u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 879u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 879u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 879u, 0x08AD7400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD32F4u) goto L_08AD32F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD32F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3300: @@ -7422,14 +8531,27 @@ L_08AD3300: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD331Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 555u, 0x08AD331Cu, 0x08AD7400u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 879u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 879u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 879u, 0x08AD7400u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD331Cu) goto L_08AD331C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD331C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3328: @@ -7442,16 +8564,42 @@ L_08AD3328: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AD334Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 557u, 0x08AD334Cu, 0x08AD6118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 559u, 0x08AD6118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD334Cu) goto L_08AD334C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD334C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD3360u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 558u, 0x08AD3360u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3360u) goto L_08AD3360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3360: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7461,8 +8609,8 @@ L_08AD3360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3374: @@ -7475,16 +8623,42 @@ L_08AD3374: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AD3398u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 560u, 0x08AD3398u, 0x08AD610Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 558u, 0x08AD610Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3398u) goto L_08AD3398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3398: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD33ACu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 561u, 0x08AD33ACu, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD33ACu) goto L_08AD33AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD33AC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7494,8 +8668,8 @@ L_08AD33AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD33C0: @@ -7508,16 +8682,42 @@ L_08AD33C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AD33E4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 563u, 0x08AD33E4u, 0x08AD6100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 557u, 0x08AD6100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD33E4u) goto L_08AD33E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD33E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD33F8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 564u, 0x08AD33F8u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD33F8u) goto L_08AD33F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD33F8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7527,8 +8727,8 @@ L_08AD33F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD340C: @@ -7537,14 +8737,27 @@ L_08AD340C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3420u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 566u, 0x08AD3420u, 0x08AD43F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 69u, 0x08AD43F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3420u) goto L_08AD3420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3420: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD342C: @@ -7555,21 +8768,47 @@ L_08AD342C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AD3448u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 568u, 0x08AD3448u, 0x08AD610Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 558u, 0x08AD610Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3448u) goto L_08AD3448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3448: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD3454u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 569u, 0x08AD3454u, 0x08AD43F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 69u, 0x08AD43F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3454u) goto L_08AD3454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3454: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3464: @@ -7580,21 +8819,47 @@ L_08AD3464: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AD3480u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 571u, 0x08AD3480u, 0x08AD6118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 559u, 0x08AD6118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3480u) goto L_08AD3480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3480: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD348Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 572u, 0x08AD348Cu, 0x08AD43F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 69u, 0x08AD43F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD348Cu) goto L_08AD348C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD348C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD349C: @@ -7609,8 +8874,8 @@ L_08AD34B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD34BC: @@ -7618,14 +8883,27 @@ L_08AD34BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD34CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 576u, 0x08AD34CCu, 0x08AD4784u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 126u, 0x08AD4784u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD34CCu) goto L_08AD34CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD34CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD34D8: @@ -7634,14 +8912,27 @@ L_08AD34D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD34ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 578u, 0x08AD34ECu, 0x08AD6100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 557u, 0x08AD6100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD34ECu) goto L_08AD34EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD34EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD34F8: @@ -7650,14 +8941,27 @@ L_08AD34F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD350Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 580u, 0x08AD350Cu, 0x08AD610Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 558u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 558u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 558u, 0x08AD610Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD350Cu) goto L_08AD350C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD350C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3518: @@ -7666,14 +8970,27 @@ L_08AD3518: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD352Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 582u, 0x08AD352Cu, 0x08AD6118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 559u, 0x08AD6118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD352Cu) goto L_08AD352C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD352C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3538: @@ -7687,8 +9004,8 @@ L_08AD354C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3558: @@ -7697,14 +9014,27 @@ L_08AD3558: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD356Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 586u, 0x08AD356Cu, 0x08AD4E5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 236u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 236u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 236u, 0x08AD4E5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD356Cu) goto L_08AD356C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD356C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3578: @@ -7713,26 +9043,39 @@ L_08AD3578: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD358Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 588u, 0x08AD358Cu, 0x08AD4FC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 267u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 267u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 267u, 0x08AD4FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD358Cu) goto L_08AD358C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD358C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3598: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD35A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD35A8: @@ -7741,20 +9084,33 @@ L_08AD35A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD35BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 592u, 0x08AD35BCu, 0x08AD5BACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 479u, 0x08AD5BACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD35BCu) goto L_08AD35BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD35BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD35C8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD35D0: @@ -7767,8 +9123,8 @@ L_08AD35E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD35EC: @@ -7778,14 +9134,27 @@ L_08AD35EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3604u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 597u, 0x08AD3604u, 0x08AD49ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 164u, 0x08AD49ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3604u) goto L_08AD3604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3604: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3610: @@ -7795,14 +9164,27 @@ L_08AD3610: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3628u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 599u, 0x08AD3628u, 0x08AD49ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 164u, 0x08AD49ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3628u) goto L_08AD3628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3628: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3634: @@ -7810,14 +9192,27 @@ L_08AD3634: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3644u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 601u, 0x08AD3644u, 0x08AD4850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 140u, 0x08AD4850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3644u) goto L_08AD3644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3644: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3650: @@ -7826,14 +9221,27 @@ L_08AD3650: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3664u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 603u, 0x08AD3664u, 0x08AD78DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 971u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 971u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 971u, 0x08AD78DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3664u) goto L_08AD3664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3664: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3670: @@ -7841,22 +9249,35 @@ L_08AD3670: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3680u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 605u, 0x08AD3680u, 0x08AD5A3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 458u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 458u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 458u, 0x08AD5A3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3680u) goto L_08AD3680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3680: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD368C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3698: @@ -7865,14 +9286,27 @@ L_08AD3698: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD36ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 608u, 0x08AD36ACu, 0x08AD4E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 234u, 0x08AD4E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD36ACu) goto L_08AD36AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD36AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD36B8: @@ -7886,15 +9320,28 @@ L_08AD36CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD36D8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 611u, 0x08AD36D8u, 0x08AD4E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 234u, 0x08AD4E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD36D8u) goto L_08AD36D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD36D8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD36E8: @@ -7903,14 +9350,27 @@ L_08AD36E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD36FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 613u, 0x08AD36FCu, 0x08AD4E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 234u, 0x08AD4E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD36FCu) goto L_08AD36FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD36FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3708: @@ -7925,8 +9385,8 @@ L_08AD371C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD372C: @@ -7944,8 +9404,8 @@ L_08AD3748: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD375C: @@ -7961,8 +9421,8 @@ L_08AD3774: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3780: @@ -7971,14 +9431,27 @@ L_08AD3780: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3794u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 622u, 0x08AD3794u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3794u) goto L_08AD3794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3794: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD37A0: @@ -7987,14 +9460,27 @@ L_08AD37A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD37B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 624u, 0x08AD37B4u, 0x08AD6020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 541u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 541u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 541u, 0x08AD6020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD37B4u) goto L_08AD37B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD37B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD37C0: @@ -8003,14 +9489,27 @@ L_08AD37C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD37D4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 626u, 0x08AD37D4u, 0x08AD50DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 281u, 0x08AD50DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD37D4u) goto L_08AD37D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD37D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD37E0: @@ -8019,14 +9518,27 @@ L_08AD37E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD37F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 628u, 0x08AD37F4u, 0x08AD52ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 318u, 0x08AD52ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD37F4u) goto L_08AD37F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD37F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3800: @@ -8040,15 +9552,28 @@ L_08AD3814: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD3820u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 631u, 0x08AD3820u, 0x08AD50DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 281u, 0x08AD50DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3820u) goto L_08AD3820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3820: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3830: @@ -8062,15 +9587,28 @@ L_08AD3844: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD3850u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 634u, 0x08AD3850u, 0x08AD50DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 281u, 0x08AD50DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3850u) goto L_08AD3850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3850: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3860: @@ -8079,14 +9617,27 @@ L_08AD3860: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3874u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 636u, 0x08AD3874u, 0x08AD50DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 281u, 0x08AD50DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3874u) goto L_08AD3874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3874: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3880: @@ -8095,14 +9646,27 @@ L_08AD3880: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3894u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 638u, 0x08AD3894u, 0x08AD52ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 318u, 0x08AD52ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3894u) goto L_08AD3894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3894: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD38A0: @@ -8110,14 +9674,27 @@ L_08AD38A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD38B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 640u, 0x08AD38B0u, 0x08AD5DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 503u, 0x08AD5DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD38B0u) goto L_08AD38B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD38B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD38BC: @@ -8126,14 +9703,27 @@ L_08AD38BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD38D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 642u, 0x08AD38D0u, 0x08AD5EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 520u, 0x08AD5EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD38D0u) goto L_08AD38D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD38D0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD38DC: @@ -8141,14 +9731,27 @@ L_08AD38DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD38ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 644u, 0x08AD38ECu, 0x08AD5914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 439u, 0x08AD5914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD38ECu) goto L_08AD38EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD38EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD38F8: @@ -8219,8 +9822,21 @@ L_08AD398C: L_08AD3994: aot_gpr_31 = (0x08AD399Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 655u, 0x08AD399Cu, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD399Cu) goto L_08AD399C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD399C: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(0), static_cast(aot_gpr_4)); @@ -8296,8 +9912,21 @@ L_08AD3A28: L_08AD3A2C: aot_gpr_31 = (0x08AD3A34u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 666u, 0x08AD3A34u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3A34u) goto L_08AD3A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3A34: aot_gpr_4 = (ctx.gpr[2] + static_cast(10)); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -8309,8 +9938,21 @@ L_08AD3A34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08AD3A5Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 667u, 0x08AD3A5Cu, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3A5Cu) goto L_08AD3A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3A5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8348,8 +9990,21 @@ L_08AD3A90: goto L_08AD3A94; L_08AD3A94: aot_gpr_31 = (0x08AD3A9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 674u, 0x08AD3A9Cu, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3A9Cu) goto L_08AD3A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3A9C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4))); @@ -8410,8 +10065,21 @@ L_08AD3AF4: L_08AD3AF8: aot_gpr_31 = (0x08AD3B00u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 684u, 0x08AD3B00u, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3B00u) goto L_08AD3B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3B00: aot_gpr_4 = (ctx.gpr[2] + static_cast(10)); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -8434,8 +10102,21 @@ L_08AD3B20: L_08AD3B24: aot_gpr_31 = (0x08AD3B2Cu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 688u, 0x08AD3B2Cu, 0x08A545ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 80u, 0x08A545ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3B2Cu) goto L_08AD3B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3B2C: aot_gpr_4 = (ctx.gpr[2] + static_cast(10)); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -8469,8 +10150,8 @@ L_08AD3B54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3B78: @@ -8498,8 +10179,8 @@ L_08AD3B88: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3BD0: @@ -8508,14 +10189,27 @@ L_08AD3BD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3BE4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 695u, 0x08AD3BE4u, 0x08AD6070u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 546u, 0x08AD6070u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3BE4u) goto L_08AD3BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3BE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3BF0: @@ -8523,14 +10217,27 @@ L_08AD3BF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3C00u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-664))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 697u, 0x08AD3C00u, 0x08AD6150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 564u, 0x08AD6150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3C00u) goto L_08AD3C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3C00: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3C0C: @@ -8538,8 +10245,8 @@ L_08AD3C0C: aot_gpr_4 = (aot_gpr_4 & 255u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_5 + static_cast(184), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3C1C: @@ -8548,8 +10255,8 @@ L_08AD3C1C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3C44: @@ -8571,8 +10278,21 @@ L_08AD3C64: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AD3C74u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 702u, 0x08AD3C74u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3C74u) goto L_08AD3C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3C74: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08AD3C78; @@ -8599,15 +10319,41 @@ L_08AD3C8C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AD3CA0u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 706u, 0x08AD3CA0u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3CA0u) goto L_08AD3CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3CA0: aot_gpr_4 = (aot_gpr_16 + static_cast(12)); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AD3CB0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 707u, 0x08AD3CB0u, 0x0887F5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 728u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 728u, 0x0887F5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3CB0u) goto L_08AD3CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3CB0: ctx.gpr[2] = (aot_gpr_16 | 0u); goto L_08AD3CB4; @@ -8616,8 +10362,8 @@ L_08AD3CB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3CC4: @@ -8637,8 +10383,21 @@ L_08AD3CE0: aot_gpr_4 = (ctx.gpr[17] + static_cast(12)); aot_gpr_31 = (0x08AD3CECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 711u, 0x08AD3CECu, 0x0887F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 736u, 0x0887F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3CECu) goto L_08AD3CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3CEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8698,8 +10457,8 @@ L_08AD3D44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3D58: @@ -8721,8 +10480,21 @@ L_08AD3D58: L_08AD3D8C: aot_gpr_31 = (0x08AD3D94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 721u, 0x08AD3D94u, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3D94u) goto L_08AD3D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3D94: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(148), ctx.gpr[2]); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(185), static_cast(0u)); @@ -8734,8 +10506,8 @@ L_08AD3D94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3DB0: @@ -8750,8 +10522,21 @@ L_08AD3DB0: L_08AD3DD0: aot_gpr_31 = (0x08AD3DD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 724u, 0x08AD3DD8u, 0x08AD4FFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 270u, 0x08AD4FFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3DD8u) goto L_08AD3DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3DD8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); ctx.gpr[18] = (0u | 0u); @@ -8789,14 +10574,40 @@ L_08AD3E10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD3E1Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 729u, 0x08AD3E1Cu, 0x08AD50DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 281u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 281u, 0x08AD50DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3E1Cu) goto L_08AD3E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3E1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD3E28u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 730u, 0x08AD3E28u, 0x08AD52ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 318u, 0x08AD52ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3E28u) goto L_08AD3E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3E28: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); goto L_08AD3E2C; @@ -8813,8 +10624,21 @@ L_08AD3E2C: L_08AD3E3C: aot_gpr_31 = (0x08AD3E44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 733u, 0x08AD3E44u, 0x08AD4784u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 126u, 0x08AD4784u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3E44u) goto L_08AD3E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3E44: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(0), static_cast(0u)); { std::uint32_t aot_run_words[4]{}; @@ -8826,8 +10650,8 @@ L_08AD3E44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3E60: @@ -8873,37 +10697,102 @@ L_08AD3EA0: L_08AD3EA8: aot_gpr_31 = (0x08AD3EB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 740u, 0x08AD3EB0u, 0x08958764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 61u, 0x08958764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3EB0u) goto L_08AD3EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3EB0: aot_gpr_31 = (0x08AD3EB8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 741u, 0x08AD3EB8u, 0x08AD6158u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 565u, 0x08AD6158u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3EB8u) goto L_08AD3EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3EB8: aot_gpr_31 = (0x08AD3EC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 742u, 0x08AD3EC0u, 0x08AD62DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 597u, 0x08AD62DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3EC0u) goto L_08AD3EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3EC0: aot_gpr_31 = (0x08AD3EC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 743u, 0x08AD3EC8u, 0x08AD63BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 618u, 0x08AD63BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3EC8u) goto L_08AD3EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3EC8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AD3ED8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 744u, 0x08AD3ED8u, 0x08AD49ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 164u, 0x08AD49ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3ED8u) goto L_08AD3ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3ED8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3EE8: @@ -8915,36 +10804,49 @@ L_08AD3EE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD3F08u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0179->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0179_entry, 746u, 0x08AD3F08u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD3F08u) goto L_08AD3F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD3F08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3F14: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3F1C: aot_gpr_5 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3F28: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3F30: @@ -8954,8 +10856,8 @@ L_08AD3F30: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3F48: @@ -8994,8 +10896,8 @@ L_08AD3F7C: L_08AD3F80: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_6 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD3F88: diff --git a/profiles/vcs/generated/generated_unit_0180.cpp b/profiles/vcs/generated/generated_unit_0180.cpp index 3a94276..cc0848f 100644 --- a/profiles/vcs/generated/generated_unit_0180.cpp +++ b/profiles/vcs/generated/generated_unit_0180.cpp @@ -1175,6 +1175,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AD4004u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1193,8 +1217,21 @@ L_08AD4004: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); aot_gpr_31 = (0x08AD4014u); aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(8), ctx.gpr[18]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 2u, 0x08AD4014u, 0x08939138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 278u, 0x08939138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4014u) goto L_08AD4014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4014: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); { const bool branch_taken = ctx.gpr[20] != ctx.gpr[19]; @@ -1215,8 +1252,8 @@ L_08AD4020: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4040: @@ -1280,8 +1317,21 @@ L_08AD40C8: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD40D4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 13u, 0x08AD40D4u, 0x08954B84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 174u, 0x08954B84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD40D4u) goto L_08AD40D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD40D4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1293,8 +1343,21 @@ L_08AD40DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD40E8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 15u, 0x08AD40E8u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD40E8u) goto L_08AD40E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD40E8: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -1393,8 +1456,21 @@ L_08AD4180: aot_gpr_4 = (aot_gpr_4 | ctx.gpr[18]); aot_gpr_31 = (0x08AD41A0u); aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(9), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 26u, 0x08AD41A0u, 0x08A071F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 744u, 0x08A071F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD41A0u) goto L_08AD41A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD41A0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1425,8 +1501,21 @@ L_08AD41C4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AD41D0u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 31u, 0x08AD41D0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD41D0u) goto L_08AD41D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD41D0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1441,8 +1530,21 @@ L_08AD41DC: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD41ECu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 33u, 0x08AD41ECu, 0x08AD3C44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 700u, 0x08AD3C44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD41ECu) goto L_08AD41EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD41EC: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_gpr_4 = (aot_gpr_16 + static_cast(164)); @@ -1493,8 +1595,21 @@ L_08AD4254: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08AD4260u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 40u, 0x08AD4260u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4260u) goto L_08AD4260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4260: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -1508,8 +1623,21 @@ L_08AD426C: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD4278u); ctx.gpr[6] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 42u, 0x08AD4278u, 0x08AD3C44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 700u, 0x08AD3C44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4278u) goto L_08AD4278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4278: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08AD427C; @@ -1522,8 +1650,21 @@ L_08AD427C: aot_gpr_5 = (0u + aot_gpr_5); aot_gpr_31 = (0x08AD429Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 44u, 0x08AD429Cu, 0x08938F7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 258u, 0x08938F7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD429Cu) goto L_08AD429C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD429C: aot_gpr_5 = (ctx.gpr[23] & 32u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -1580,8 +1721,21 @@ L_08AD42E0: ctx.gpr[6] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AD42FCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 52u, 0x08AD42FCu, 0x089390ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 274u, 0x089390ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD42FCu) goto L_08AD42FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD42FC: ctx.gpr[20] = (ctx.gpr[2] | 0u); goto L_08AD4300; @@ -1596,8 +1750,21 @@ L_08AD4308: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AD4314u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 55u, 0x08AD4314u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4314u) goto L_08AD4314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4314: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(164)); @@ -1619,8 +1786,21 @@ L_08AD432C: aot_gpr_5 = (ctx.gpr[28] + static_cast(-624)); aot_gpr_31 = (0x08AD4338u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 58u, 0x08AD4338u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4338u) goto L_08AD4338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4338: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(164)); @@ -1642,8 +1822,21 @@ L_08AD4350: aot_gpr_5 = (ctx.gpr[28] + static_cast(-616)); aot_gpr_31 = (0x08AD435Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 61u, 0x08AD435Cu, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD435Cu) goto L_08AD435C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD435C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(164)); @@ -1665,8 +1858,21 @@ L_08AD4374: aot_gpr_5 = (ctx.gpr[28] + static_cast(-608)); aot_gpr_31 = (0x08AD4380u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 64u, 0x08AD4380u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4380u) goto L_08AD4380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4380: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_16 + static_cast(164)); @@ -1679,8 +1885,21 @@ L_08AD4388: aot_gpr_5 = (ctx.gpr[28] + static_cast(-596)); aot_gpr_31 = (0x08AD4394u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 66u, 0x08AD4394u, 0x08939328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 314u, 0x08939328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4394u) goto L_08AD4394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4394: aot_gpr_4 = (aot_gpr_16 + static_cast(164)); goto L_08AD4398; @@ -1712,8 +1931,8 @@ L_08AD43C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD43F0: @@ -1779,8 +1998,21 @@ L_08AD4484: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(629)))))); aot_gpr_31 = (0x08AD4490u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 75u, 0x08AD4490u, 0x08B41EB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 456u, 0x08B41EB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4490u) goto L_08AD4490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4490: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1801,8 +2033,21 @@ L_08AD44A8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD44B4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 78u, 0x08AD44B4u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD44B4u) goto L_08AD44B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD44B4: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(8))); @@ -1943,8 +2188,21 @@ L_08AD45AC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); aot_gpr_31 = (0x08AD45C0u); aot_gpr_4 = (ctx.gpr[6] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 95u, 0x08AD45C0u, 0x08939138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 278u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 278u, 0x08939138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD45C0u) goto L_08AD45C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD45C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1955,8 +2213,21 @@ L_08AD45C0: L_08AD45C8: aot_gpr_31 = (0x08AD45D0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 97u, 0x08AD45D0u, 0x08AD3CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 709u, 0x08AD3CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD45D0u) goto L_08AD45D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD45D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2034,8 +2305,21 @@ L_08AD4668: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD4678u); aot_gpr_4 = (aot_gpr_4 + static_cast(16260)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 105u, 0x08AD4678u, 0x08AD3C1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 699u, 0x08AD3C1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4678u) goto L_08AD4678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4678: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2060,8 +2344,21 @@ L_08AD4690: L_08AD469C: aot_gpr_31 = (0x08AD46A4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 109u, 0x08AD46A4u, 0x08AAEEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 621u, 0x08AAEEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD46A4u) goto L_08AD46A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD46A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2086,8 +2383,21 @@ L_08AD46BC: L_08AD46C8: aot_gpr_31 = (0x08AD46D0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 113u, 0x08AD46D0u, 0x088093ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 218u, 0x088093ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD46D0u) goto L_08AD46D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD46D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2118,8 +2428,21 @@ L_08AD46FC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AD4708u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 119u, 0x08AD4708u, 0x0893E35Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 556u, 0x0893E35Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4708u) goto L_08AD4708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4708: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2157,8 +2480,21 @@ L_08AD473C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD474Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 124u, 0x08AD474Cu, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD474Cu) goto L_08AD474C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD474C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(16))); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -2179,8 +2515,8 @@ L_08AD4768: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4784: @@ -2193,8 +2529,21 @@ L_08AD4784: goto L_08AD47A0; L_08AD47A0: aot_gpr_31 = (0x08AD47A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 128u, 0x08AD47A8u, 0x08AD38A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 639u, 0x08AD38A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD47A8u) goto L_08AD47A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD47A8: aot_gpr_17 = (aot_gpr_17 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_17) < 20 ? 1u : 0u); @@ -2259,8 +2608,21 @@ L_08AD4814: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD4820u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 137u, 0x08AD4820u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4820u) goto L_08AD4820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4820: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(9), static_cast(0u)); goto L_08AD4824; @@ -2285,8 +2647,8 @@ L_08AD4838: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4850: @@ -2302,8 +2664,21 @@ L_08AD4850: goto L_08AD4880; L_08AD4880: aot_gpr_31 = (0x08AD4888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 142u, 0x08AD4888u, 0x08AD38A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 639u, 0x08AD38A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4888u) goto L_08AD4888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4888: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 20 ? 1u : 0u); @@ -2393,8 +2768,21 @@ L_08AD4920: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AD492Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 154u, 0x08AD492Cu, 0x08AAF2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 687u, 0x08AAF2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD492Cu) goto L_08AD492C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD492C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2464,8 +2852,8 @@ L_08AD4988: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD49AC: @@ -2520,8 +2908,21 @@ L_08AD4A3C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AD4A48u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 169u, 0x08AD4A48u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4A48u) goto L_08AD4A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4A48: aot_gpr_17 = (ctx.gpr[2] | 0u); goto L_08AD4A4C; @@ -2584,8 +2985,21 @@ L_08AD4AA0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD4AACu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 178u, 0x08AD4AACu, 0x08AD3CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 709u, 0x08AD3CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4AACu) goto L_08AD4AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4AAC: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(9))); @@ -2610,8 +3024,21 @@ L_08AD4ACC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08AD4AD8u); aot_gpr_5 = (aot_gpr_29 + static_cast(512)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 181u, 0x08AD4AD8u, 0x08939174u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 282u, 0x08939174u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4AD8u) goto L_08AD4AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4AD8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2629,8 +3056,21 @@ L_08AD4AE0: L_08AD4AE8: aot_gpr_31 = (0x08AD4AF0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 184u, 0x08AD4AF0u, 0x089391C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 286u, 0x089391C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4AF0u) goto L_08AD4AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4AF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(512), ctx.gpr[2]); goto L_08AD4AF4; @@ -2640,8 +3080,21 @@ L_08AD4AF4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); aot_gpr_31 = (0x08AD4B08u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 186u, 0x08AD4B08u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4B08u) goto L_08AD4B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4B08: { const bool branch_taken = aot_gpr_17 != 0u; if (branch_taken) { @@ -2653,8 +3106,21 @@ L_08AD4B10: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD4B1Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 188u, 0x08AD4B1Cu, 0x08AD3CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 709u, 0x08AD3CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4B1Cu) goto L_08AD4B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4B1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2705,8 +3171,21 @@ L_08AD4B6C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD4B7Cu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 195u, 0x08AD4B7Cu, 0x08AD3CC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 709u, 0x08AD3CC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4B7Cu) goto L_08AD4B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4B7C: aot_gpr_4 = (0u | 1u); { const bool branch_taken = 0u == 0u; @@ -2797,8 +3276,8 @@ L_08AD4C00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(576)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4C38: @@ -2847,14 +3326,40 @@ L_08AD4CA0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD4CACu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 210u, 0x08AD4CACu, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4CACu) goto L_08AD4CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4CAC: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_31 = (0x08AD4CB8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 211u, 0x08AD4CB8u, 0x08AD3374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 559u, 0x08AD3374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4CB8u) goto L_08AD4CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4CB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(72)); @@ -2878,16 +3383,42 @@ L_08AD4CDC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD4CE8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 214u, 0x08AD4CE8u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4CE8u) goto L_08AD4CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4CE8: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_5 & 32u); aot_gpr_31 = (0x08AD4CFCu); aot_gpr_5 = (aot_gpr_5 | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 215u, 0x08AD4CFCu, 0x08AD3328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 556u, 0x08AD3328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4CFCu) goto L_08AD4CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4CFC: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2901,8 +3432,8 @@ L_08AD4CFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4D20: @@ -2955,8 +3486,21 @@ L_08AD4D88: aot_gpr_5 = (aot_gpr_4 + ctx.gpr[20]); aot_gpr_31 = (0x08AD4D94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 222u, 0x08AD4D94u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4D94u) goto L_08AD4D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4D94: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3049,16 +3593,29 @@ L_08AD4E14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4E34: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AD4E44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 235u, 0x08AD4E44u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4E44u) goto L_08AD4E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4E44: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(8))); ctx.gpr[2] = (aot_gpr_4 ^ 1u); @@ -3066,8 +3623,8 @@ L_08AD4E44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4E5C: @@ -3080,8 +3637,21 @@ L_08AD4E5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AD4E80u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 237u, 0x08AD4E80u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4E80u) goto L_08AD4E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4E80: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 != 0u; @@ -3112,8 +3682,21 @@ L_08AD4EA0: L_08AD4EA4: aot_gpr_31 = (0x08AD4EACu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 243u, 0x08AD4EACu, 0x08953F94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 887u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 887u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 887u, 0x08953F94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4EACu) goto L_08AD4EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4EAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3129,13 +3712,39 @@ L_08AD4EB8: L_08AD4EC0: aot_gpr_31 = (0x08AD4EC8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 246u, 0x08AD4EC8u, 0x08805340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 162u, 0x08805340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4EC8u) goto L_08AD4EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4EC8: aot_gpr_31 = (0x08AD4ED0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 247u, 0x08AD4ED0u, 0x08AD3F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 756u, 0x08AD3F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4ED0u) goto L_08AD4ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4ED0: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(7640), static_cast(aot_gpr_4)); @@ -3144,8 +3753,21 @@ L_08AD4ED0: goto L_08AD4FFC; L_08AD4EE0: aot_gpr_31 = (0x08AD4EE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 249u, 0x08AD4EE8u, 0x08A7C6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 11u, 0x08A7C6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4EE8u) goto L_08AD4EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4EE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-1044))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3157,8 +3779,21 @@ L_08AD4EE8: L_08AD4EF4: aot_gpr_31 = (0x08AD4EFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 251u, 0x08AD4EFCu, 0x0896E338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 532u, 0x0896E338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4EFCu) goto L_08AD4EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4EFC: ctx.gpr[18] = (0u | 0u); goto L_08AD4F00; @@ -3207,8 +3842,21 @@ L_08AD4F4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD4F58u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 260u, 0x08AD4F58u, 0x08809600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 257u, 0x08809600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4F58u) goto L_08AD4F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4F58: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 1u); @@ -3238,8 +3886,21 @@ L_08AD4F84: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AD4F94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 264u, 0x08AD4F94u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4F94u) goto L_08AD4F94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4F94: aot_gpr_31 = (0x08AD4F9Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-660)); @@ -3249,8 +3910,21 @@ L_08AD4F9C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD4FA8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 266u, 0x08AD4FA8u, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4FA8u) goto L_08AD4FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4FA8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3261,8 +3935,8 @@ L_08AD4FA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4FC0: @@ -3273,8 +3947,21 @@ L_08AD4FC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AD4FDCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 268u, 0x08AD4FDCu, 0x08809600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 257u, 0x08809600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD4FDCu) goto L_08AD4FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD4FDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 1u); @@ -3286,8 +3973,8 @@ L_08AD4FEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD4FFC: @@ -3375,8 +4062,8 @@ L_08AD50C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD50DC: @@ -3398,8 +4085,21 @@ L_08AD5100: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD510Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 283u, 0x08AD510Cu, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD510Cu) goto L_08AD510C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD510C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -3428,14 +4128,40 @@ L_08AD512C: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD513Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(16288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 287u, 0x08AD513Cu, 0x08AD3C1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 699u, 0x08AD3C1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD513Cu) goto L_08AD513C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD513C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD5148u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 288u, 0x08AD5148u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5148u) goto L_08AD5148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5148: aot_gpr_4 = (ctx.gpr[2] + static_cast(9)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -3533,8 +4259,21 @@ L_08AD51EC: L_08AD51F0: aot_gpr_31 = (0x08AD51F8u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 301u, 0x08AD51F8u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD51F8u) goto L_08AD51F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD51F8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 129u); @@ -3560,8 +4299,21 @@ L_08AD521C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD5228u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 305u, 0x08AD5228u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5228u) goto L_08AD5228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5228: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3590,8 +4342,21 @@ L_08AD5244: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD5250u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 309u, 0x08AD5250u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5250u) goto L_08AD5250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5250: aot_gpr_4 = (aot_gpr_16 + static_cast(156)); aot_gpr_4 = (aot_gpr_4 - 0u); @@ -3665,8 +4430,8 @@ L_08AD52D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD52EC: @@ -3677,8 +4442,21 @@ L_08AD52EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AD5308u); aot_gpr_17 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 319u, 0x08AD5308u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5308u) goto L_08AD5308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5308: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 128u); @@ -3693,14 +4471,40 @@ L_08AD5318: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD5328u); aot_gpr_4 = (aot_gpr_4 + static_cast(16332)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 321u, 0x08AD5328u, 0x08AD3C1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 699u, 0x08AD3C1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5328u) goto L_08AD5328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5328: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD5334u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 322u, 0x08AD5334u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5334u) goto L_08AD5334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5334: aot_gpr_4 = (ctx.gpr[2] + static_cast(9)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -3757,8 +4561,21 @@ L_08AD5398: L_08AD539C: aot_gpr_31 = (0x08AD53A4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 330u, 0x08AD53A4u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD53A4u) goto L_08AD53A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD53A4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 3u); @@ -3784,8 +4601,21 @@ L_08AD53C8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD53D4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 334u, 0x08AD53D4u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD53D4u) goto L_08AD53D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD53D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3814,8 +4644,21 @@ L_08AD53F0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD53FCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 338u, 0x08AD53FCu, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD53FCu) goto L_08AD53FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD53FC: aot_gpr_4 = (aot_gpr_17 + static_cast(156)); aot_gpr_4 = (aot_gpr_4 - 0u); @@ -3889,8 +4732,8 @@ L_08AD5484: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5498: @@ -3946,8 +4789,21 @@ L_08AD54F4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD5500u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 353u, 0x08AD5500u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5500u) goto L_08AD5500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5500: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & aot_gpr_16); @@ -4142,8 +4998,8 @@ L_08AD5638: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5658: @@ -4265,8 +5121,21 @@ L_08AD573C: ctx.gpr[22] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AD5748u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 396u, 0x08AD5748u, 0x08AAF2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 687u, 0x08AAF2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5748u) goto L_08AD5748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5748: { const bool branch_taken = static_cast(ctx.gpr[2]) > 0; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4350,8 +5219,21 @@ L_08AD57C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); aot_gpr_31 = (0x08AD57CCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 409u, 0x08AD57CCu, 0x0893EE64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 700u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 700u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 700u, 0x0893EE64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD57CCu) goto L_08AD57CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD57CC: { const bool branch_taken = static_cast(ctx.gpr[2]) > 0; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4483,8 +5365,21 @@ L_08AD5878: L_08AD5880: aot_gpr_31 = (0x08AD5888u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 429u, 0x08AD5888u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5888u) goto L_08AD5888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5888: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & aot_gpr_17); @@ -4563,8 +5458,8 @@ L_08AD58EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5914: @@ -4641,8 +5536,21 @@ L_08AD5994: L_08AD599C: aot_gpr_31 = (0x08AD59A4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 448u, 0x08AD59A4u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD59A4u) goto L_08AD59A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD59A4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 131u); @@ -4721,8 +5629,8 @@ L_08AD5A18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5A3C: @@ -4888,8 +5796,8 @@ L_08AD5B7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5BAC: @@ -5076,8 +5984,8 @@ L_08AD5D5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5D88: @@ -5098,18 +6006,57 @@ L_08AD5DA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08AD5DB4u); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 499u, 0x08AD5DB4u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5DB4u) goto L_08AD5DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5DB4: aot_gpr_31 = (0x08AD5DBCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 500u, 0x08AD5DBCu, 0x08B41D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 443u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 443u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 443u, 0x08B41D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5DBCu) goto L_08AD5DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5DBC: aot_gpr_31 = (0x08AD5DC4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 501u, 0x08AD5DC4u, 0x08B41DB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 450u, 0x08B41DB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5DC4u) goto L_08AD5DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5DC4: ctx.gpr[7] = (ctx.gpr[28] + static_cast(-564)); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5122,8 +6069,8 @@ L_08AD5DD8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5DE8: @@ -5191,8 +6138,21 @@ L_08AD5E58: L_08AD5E60: aot_gpr_31 = (0x08AD5E68u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 511u, 0x08AD5E68u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5E68u) goto L_08AD5E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5E68: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 131u); @@ -5258,8 +6218,8 @@ L_08AD5EC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5EE4: @@ -5268,8 +6228,8 @@ L_08AD5EE4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD5EF8: @@ -5280,8 +6240,21 @@ L_08AD5EF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AD5F14u); aot_gpr_17 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 522u, 0x08AD5F14u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5F14u) goto L_08AD5F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5F14: aot_gpr_4 = (ctx.gpr[2] + static_cast(9)); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0))); @@ -5338,8 +6311,21 @@ L_08AD5F78: L_08AD5F7C: aot_gpr_31 = (0x08AD5F84u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 530u, 0x08AD5F84u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5F84u) goto L_08AD5F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5F84: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 130u); @@ -5365,8 +6351,21 @@ L_08AD5FA8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD5FB4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 534u, 0x08AD5FB4u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5FB4u) goto L_08AD5FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5FB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5395,8 +6394,21 @@ L_08AD5FD0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD5FDCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 538u, 0x08AD5FDCu, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD5FDCu) goto L_08AD5FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD5FDC: aot_gpr_4 = (aot_gpr_17 + static_cast(156)); aot_gpr_4 = (aot_gpr_4 - 0u); @@ -5426,8 +6438,8 @@ L_08AD600C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6020: @@ -5453,8 +6465,21 @@ L_08AD6048: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08AD6058u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 544u, 0x08AD6058u, 0x08AD34F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 579u, 0x08AD34F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6058u) goto L_08AD6058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6058: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AD6064u); @@ -5464,8 +6489,8 @@ L_08AD6064: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6070: @@ -5476,8 +6501,21 @@ L_08AD6070: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08AD6090u); aot_gpr_17 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 547u, 0x08AD6090u, 0x08A076C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 820u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 820u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 820u, 0x08A076C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6090u) goto L_08AD6090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6090: ctx.gpr[18] = (2236u << 16u); ctx.gpr[18] = (ctx.gpr[18] + static_cast(31984)); @@ -5485,8 +6523,21 @@ L_08AD6090: L_08AD6098: aot_gpr_31 = (0x08AD60A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 549u, 0x08AD60A0u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD60A0u) goto L_08AD60A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD60A0: aot_gpr_4 = (ctx.gpr[2] < aot_gpr_16 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5511,8 +6562,21 @@ L_08AD60C0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD60CCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 553u, 0x08AD60CCu, 0x08AD867Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 115u, 0x08AD867Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD60CCu) goto L_08AD60CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD60CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5524,8 +6588,21 @@ L_08AD60D4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD60E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 555u, 0x08AD60E0u, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD60E0u) goto L_08AD60E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD60E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5543,69 +6620,69 @@ L_08AD60E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6100: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 + ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD610C: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 + ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6118: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 + ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6124: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 - ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6130: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 - ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD613C: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 - ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6148: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(172)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6150: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6158: @@ -5679,26 +6756,78 @@ L_08AD61C4: aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); aot_gpr_31 = (0x08AD61DCu); ctx.gpr[18] = (aot_gpr_5 | aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 574u, 0x08AD61DCu, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD61DCu) goto L_08AD61DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD61DC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7652), aot_gpr_17); aot_gpr_17 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD61F0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 575u, 0x08AD61F0u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD61F0u) goto L_08AD61F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD61F0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD61FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 576u, 0x08AD61FCu, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD61FCu) goto L_08AD61FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD61FC: aot_gpr_31 = (0x08AD6204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 577u, 0x08AD6204u, 0x0898B4F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 844u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 844u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 844u, 0x0898B4F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6204u) goto L_08AD6204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6204: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -5725,16 +6854,42 @@ L_08AD6218: L_08AD6224: aot_gpr_31 = (0x08AD622Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 581u, 0x08AD622Cu, 0x08A05EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 495u, 0x08A05EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD622Cu) goto L_08AD622C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD622C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7652))); aot_gpr_4 = (aot_gpr_4 << 2u); aot_gpr_4 = (ctx.gpr[28] + aot_gpr_4); aot_gpr_31 = (0x08AD6240u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(-524))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 582u, 0x08AD6240u, 0x08935AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 430u, 0x08935AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6240u) goto L_08AD6240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6240: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5750,8 +6905,21 @@ L_08AD624C: L_08AD6254: aot_gpr_31 = (0x08AD625Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 585u, 0x08AD625Cu, 0x08805340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 162u, 0x08805340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD625Cu) goto L_08AD625C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD625C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7652))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5762,13 +6930,39 @@ L_08AD625C: } L_08AD6268: aot_gpr_31 = (0x08AD6270u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 587u, 0x08AD6270u, 0x08935474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 339u, 0x08935474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6270u) goto L_08AD6270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6270: aot_gpr_31 = (0x08AD6278u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 588u, 0x08AD6278u, 0x0893509Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 269u, 0x0893509Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6278u) goto L_08AD6278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6278: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); if (aot_gpr_4 != 0u) { @@ -5787,29 +6981,94 @@ L_08AD6290: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7652))); aot_gpr_31 = (0x08AD629Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 592u, 0x08AD629Cu, 0x089579B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 753u, 0x089579B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD629Cu) goto L_08AD629C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD629C: aot_gpr_31 = (0x08AD62A4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 593u, 0x08AD62A4u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD62A4u) goto L_08AD62A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD62A4: aot_gpr_31 = (0x08AD62ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 594u, 0x08AD62ACu, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD62ACu) goto L_08AD62AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD62AC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD62B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 595u, 0x08AD62B8u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD62B8u) goto L_08AD62B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD62B8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD62C4u); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 596u, 0x08AD62C4u, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD62C4u) goto L_08AD62C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD62C4: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5820,8 +7079,8 @@ L_08AD62C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD62DC: @@ -5843,8 +7102,21 @@ L_08AD62F4: L_08AD62FC: aot_gpr_31 = (0x08AD6304u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 600u, 0x08AD6304u, 0x08954778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 121u, 0x08954778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6304u) goto L_08AD6304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6304: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5946,8 +7218,21 @@ L_08AD6390: L_08AD6398: aot_gpr_31 = (0x08AD63A0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 616u, 0x08AD63A0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD63A0u) goto L_08AD63A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD63A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD63ACu); @@ -5958,8 +7243,8 @@ L_08AD63AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD63BC: @@ -6014,20 +7299,59 @@ L_08AD6408: L_08AD6410: aot_gpr_31 = (0x08AD6418u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 626u, 0x08AD6418u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6418u) goto L_08AD6418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6418: aot_gpr_31 = (0x08AD6420u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 627u, 0x08AD6420u, 0x08809870u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 307u, 0x08809870u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6420u) goto L_08AD6420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6420: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AD6430u); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 628u, 0x08AD6430u, 0x08809600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 257u, 0x08809600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6430u) goto L_08AD6430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6430: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6039,21 +7363,47 @@ L_08AD6438: aot_gpr_16 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08AD6444u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 630u, 0x08AD6444u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6444u) goto L_08AD6444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6444: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD6450u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 631u, 0x08AD6450u, 0x08809600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 257u, 0x08809600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6450u) goto L_08AD6450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6450: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6460: @@ -6096,8 +7446,8 @@ L_08AD6490: } L_08AD6498: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD64A0: @@ -6203,8 +7553,21 @@ L_08AD6564: L_08AD657C: aot_gpr_31 = (0x08AD6584u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 650u, 0x08AD6584u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6584u) goto L_08AD6584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6584: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 131u); @@ -6366,8 +7729,21 @@ L_08AD66A0: ctx.gpr[6] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(626)))))); aot_gpr_31 = (0x08AD66ACu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 671u, 0x08AD66ACu, 0x08B41E40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 453u, 0x08B41E40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD66ACu) goto L_08AD66AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD66AC: ctx.gpr[2] = (ctx.gpr[20] | 0u); goto L_08AD66B0; @@ -6385,8 +7761,8 @@ L_08AD66B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD66D8: @@ -6402,8 +7778,21 @@ L_08AD66D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08AD6708u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 674u, 0x08AD6708u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6708u) goto L_08AD6708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6708: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); @@ -6676,8 +8065,8 @@ L_08AD68F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD691C: @@ -6820,8 +8209,21 @@ L_08AD6A0C: L_08AD6A38: aot_gpr_31 = (0x08AD6A40u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(30)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 723u, 0x08AD6A40u, 0x08AAF008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 644u, 0x08AAF008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6A40u) goto L_08AD6A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6A40: { const bool branch_taken = ctx.gpr[20] == ctx.gpr[21]; if (branch_taken) { @@ -6847,26 +8249,78 @@ L_08AD6A5C: L_08AD6A60: aot_gpr_31 = (0x08AD6A68u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 728u, 0x08AD6A68u, 0x0893EDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 695u, 0x0893EDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6A68u) goto L_08AD6A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6A68: aot_gpr_31 = (0x08AD6A70u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(30)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 729u, 0x08AD6A70u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6A70u) goto L_08AD6A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6A70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AD6A80u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0181. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 730u, 0x08AD6A80u, 0x08AD8384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0181_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0181_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0181_entry, 181u, 73u, 0x08AD8384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6A80u) goto L_08AD6A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6A80: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(30)))))); aot_gpr_31 = (0x08AD6A8Cu); aot_gpr_16 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 731u, 0x08AD6A8Cu, 0x08AAF24Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 680u, 0x08AAF24Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6A8Cu) goto L_08AD6A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6A8C: { const bool branch_taken = ctx.gpr[20] == ctx.gpr[21]; if (branch_taken) { @@ -6892,8 +8346,21 @@ L_08AD6AA8: L_08AD6AAC: aot_gpr_31 = (0x08AD6AB4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 736u, 0x08AD6AB4u, 0x0893EE30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 699u, 0x0893EE30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6AB4u) goto L_08AD6AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6AB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6918,8 +8385,8 @@ L_08AD6AC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6AE8: @@ -6934,8 +8401,8 @@ L_08AD6B00: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6B0C: @@ -6951,8 +8418,21 @@ L_08AD6B0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AD6B40u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 742u, 0x08AD6B40u, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6B40u) goto L_08AD6B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6B40: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AD6B4Cu); @@ -6962,8 +8442,21 @@ L_08AD6B4C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD6B58u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 744u, 0x08AD6B58u, 0x08AAF460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 721u, 0x08AAF460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6B58u) goto L_08AD6B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6B58: ctx.gpr[2] = (0u | 1u); { std::uint32_t aot_run_words[4]{}; @@ -6975,8 +8468,8 @@ L_08AD6B58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6B74: @@ -6991,8 +8484,8 @@ L_08AD6B8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6B98: @@ -7005,8 +8498,21 @@ L_08AD6B98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08AD6BC0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 748u, 0x08AD6BC0u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6BC0u) goto L_08AD6BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6BC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(16))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(0))); @@ -7066,8 +8572,21 @@ L_08AD6C1C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AD6C3Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 754u, 0x08AD6C3Cu, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6C3Cu) goto L_08AD6C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6C3C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); @@ -7080,8 +8599,21 @@ L_08AD6C50: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AD6C60u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 756u, 0x08AD6C60u, 0x08809288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 205u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 205u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 205u, 0x08809288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6C60u) goto L_08AD6C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6C60: aot_gpr_4 = (2236u << 16u); aot_gpr_16 = (aot_gpr_4 + static_cast(31984)); @@ -7090,16 +8622,42 @@ L_08AD6C60: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD6C7Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 757u, 0x08AD6C7Cu, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6C7Cu) goto L_08AD6C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6C7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_16 = (0u | 1u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD6C90u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 758u, 0x08AD6C90u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6C90u) goto L_08AD6C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6C90: ctx.gpr[2] = (aot_gpr_16 | 0u); goto L_08AD6C94; @@ -7113,8 +8671,8 @@ L_08AD6C94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6CAC: @@ -7140,15 +8698,28 @@ L_08AD6CD0: L_08AD6CD8: aot_gpr_31 = (0x08AD6CE0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 764u, 0x08AD6CE0u, 0x0893E618u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 606u, 0x0893E618u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6CE0u) goto L_08AD6CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6CE0: ctx.gpr[2] = (0u | 1u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6CF0: @@ -7162,8 +8733,21 @@ L_08AD6CF0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x08AD6D20u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 766u, 0x08AD6D20u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6D20u) goto L_08AD6D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6D20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(16))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(0))); @@ -7215,8 +8799,21 @@ L_08AD6D74: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AD6D94u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 771u, 0x08AD6D94u, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6D94u) goto L_08AD6D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6D94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); @@ -7261,8 +8858,21 @@ L_08AD6DCC: ctx.gpr[6] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AD6DE0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 778u, 0x08AD6DE0u, 0x0893E214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 549u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 549u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 549u, 0x0893E214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6DE0u) goto L_08AD6DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6DE0: aot_gpr_4 = (2236u << 16u); aot_gpr_16 = (aot_gpr_4 + static_cast(31984)); @@ -7271,16 +8881,42 @@ L_08AD6DE0: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD6DFCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 779u, 0x08AD6DFCu, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6DFCu) goto L_08AD6DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6DFC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_16 = (0u | 1u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD6E10u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 780u, 0x08AD6E10u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD6E10u) goto L_08AD6E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD6E10: ctx.gpr[2] = (aot_gpr_16 | 0u); goto L_08AD6E14; @@ -7296,8 +8932,8 @@ L_08AD6E14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6E34: @@ -7375,8 +9011,8 @@ L_08AD6EA8: goto L_08AD6EAC; L_08AD6EAC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6EB4: @@ -7481,8 +9117,8 @@ L_08AD6F60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6F80: @@ -7490,8 +9126,8 @@ L_08AD6F80: aot_gpr_5 = (aot_gpr_5 + ctx.gpr[6]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD6F90: @@ -7556,8 +9192,21 @@ L_08AD7008: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD7018u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 812u, 0x08AD7018u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7018u) goto L_08AD7018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7018: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7645,13 +9294,39 @@ L_08AD70A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD70ACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 824u, 0x08AD70ACu, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD70ACu) goto L_08AD70AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD70AC: aot_gpr_31 = (0x08AD70B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 825u, 0x08AD70B4u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD70B4u) goto L_08AD70B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD70B4: aot_gpr_4 = (ctx.gpr[2] < aot_gpr_16 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7692,8 +9367,8 @@ L_08AD70D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD70FC: @@ -7749,8 +9424,21 @@ L_08AD7160: L_08AD716C: aot_gpr_31 = (0x08AD7174u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 836u, 0x08AD7174u, 0x08AD0598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 51u, 0x08AD0598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7174u) goto L_08AD7174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7174: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7779,8 +9467,21 @@ L_08AD7194: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AD71A4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 840u, 0x08AD71A4u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD71A4u) goto L_08AD71A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD71A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7849,13 +9550,39 @@ L_08AD7210: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD721Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 849u, 0x08AD721Cu, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD721Cu) goto L_08AD721C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD721C: aot_gpr_31 = (0x08AD7224u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 850u, 0x08AD7224u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7224u) goto L_08AD7224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7224: aot_gpr_4 = (ctx.gpr[2] < aot_gpr_16 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7896,8 +9623,8 @@ L_08AD7244: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD726C: @@ -7967,8 +9694,8 @@ L_08AD72D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD72E8: @@ -8028,8 +9755,21 @@ L_08AD7370: ctx.gpr[23] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AD737Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 868u, 0x08AD737Cu, 0x08AAF2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 687u, 0x08AAF2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD737Cu) goto L_08AD737C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD737C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_gpr_17 | 0u); @@ -8058,13 +9798,39 @@ L_08AD73A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD73ACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 873u, 0x08AD73ACu, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD73ACu) goto L_08AD73AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD73AC: aot_gpr_31 = (0x08AD73B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 874u, 0x08AD73B4u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD73B4u) goto L_08AD73B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD73B4: aot_gpr_4 = (ctx.gpr[2] < aot_gpr_16 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8105,8 +9871,8 @@ L_08AD73D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD7400: @@ -8138,20 +9904,59 @@ L_08AD744C: L_08AD745C: aot_gpr_31 = (0x08AD7464u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 882u, 0x08AD7464u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7464u) goto L_08AD7464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7464: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AD7470u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-17528)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 883u, 0x08AD7470u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7470u) goto L_08AD7470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7470: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AD747Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(-488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 884u, 0x08AD747Cu, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD747Cu) goto L_08AD747C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD747C: { const bool branch_taken = aot_gpr_17 != ctx.gpr[2]; if (branch_taken) { @@ -8177,8 +9982,21 @@ L_08AD749C: L_08AD74A0: aot_gpr_31 = (0x08AD74A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 888u, 0x08AD74A8u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD74A8u) goto L_08AD74A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD74A8: { const bool branch_taken = aot_gpr_16 != ctx.gpr[2]; if (branch_taken) { @@ -8208,8 +10026,21 @@ L_08AD74B8: L_08AD74CC: aot_gpr_31 = (0x08AD74D4u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 892u, 0x08AD74D4u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD74D4u) goto L_08AD74D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD74D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -8254,8 +10085,21 @@ L_08AD751C: } L_08AD7524: aot_gpr_31 = (0x08AD752Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 898u, 0x08AD752Cu, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD752Cu) goto L_08AD752C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD752C: { const bool branch_taken = aot_gpr_16 == ctx.gpr[2]; if (branch_taken) { @@ -8406,8 +10250,21 @@ L_08AD7618: L_08AD7620: aot_gpr_31 = (0x08AD7628u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 918u, 0x08AD7628u, 0x0890C80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 140u, 0x0890C80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7628u) goto L_08AD7628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7628: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8418,8 +10275,21 @@ L_08AD7628: L_08AD7630: aot_gpr_31 = (0x08AD7638u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 920u, 0x08AD7638u, 0x08863DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 765u, 0x08863DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7638u) goto L_08AD7638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7638: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_17 | 0u); @@ -8522,8 +10392,21 @@ L_08AD76CC: L_08AD76D8: aot_gpr_31 = (0x08AD76E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 934u, 0x08AD76E0u, 0x0882B9ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 398u, 0x0882B9ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD76E0u) goto L_08AD76E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD76E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8535,13 +10418,39 @@ L_08AD76E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD76F4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 936u, 0x08AD76F4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD76F4u) goto L_08AD76F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD76F4: aot_gpr_31 = (0x08AD76FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 937u, 0x08AD76FCu, 0x0889358Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 537u, 0x0889358Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD76FCu) goto L_08AD76FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD76FC: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -8577,14 +10486,40 @@ L_08AD772C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AD773Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 942u, 0x08AD773Cu, 0x088DF720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 456u, 0x088DF720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD773Cu) goto L_08AD773C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD773C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD7748u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 943u, 0x08AD7748u, 0x08AEC9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 157u, 0x08AEC9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7748u) goto L_08AD7748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7748: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8665,8 +10600,21 @@ L_08AD77C0: L_08AD77C8: aot_gpr_31 = (0x08AD77D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 954u, 0x08AD77D0u, 0x08AAF008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 644u, 0x08AAF008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD77D0u) goto L_08AD77D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD77D0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08AD77DCu); @@ -8675,8 +10623,21 @@ L_08AD77D0: L_08AD77DC: aot_gpr_31 = (0x08AD77E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 956u, 0x08AD77E4u, 0x08AAF24Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 680u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 680u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 680u, 0x08AAF24Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD77E4u) goto L_08AD77E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD77E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8712,18 +10673,57 @@ L_08AD7818: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08AD782Cu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 962u, 0x08AD782Cu, 0x0886A440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 484u, 0x0886A440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD782Cu) goto L_08AD782C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD782C: aot_gpr_31 = (0x08AD7834u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 963u, 0x08AD7834u, 0x088DF80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 470u, 0x088DF80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7834u) goto L_08AD7834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7834: aot_gpr_31 = (0x08AD783Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 964u, 0x08AD783Cu, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD783Cu) goto L_08AD783C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD783C: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; if (branch_taken) { @@ -8735,8 +10735,21 @@ L_08AD7844: aot_gpr_5 = (ctx.gpr[28] + static_cast(-480)); aot_gpr_31 = (0x08AD7850u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 966u, 0x08AD7850u, 0x088DF7B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 465u, 0x088DF7B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7850u) goto L_08AD7850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7850: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(152))); ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -8751,8 +10764,21 @@ L_08AD7860: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AD786Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 968u, 0x08AD786Cu, 0x088DF7B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 465u, 0x088DF7B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD786Cu) goto L_08AD786C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD786C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(152))); ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -8789,8 +10815,8 @@ L_08AD78AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD78DC: @@ -8814,8 +10840,21 @@ L_08AD7918: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AD7928u); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 973u, 0x08AD7928u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7928u) goto L_08AD7928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7928: ctx.gpr[21] = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(70))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(120))); @@ -9207,8 +11246,21 @@ L_08AD7C10: L_08AD7C18: aot_gpr_31 = (0x08AD7C20u); aot_gpr_4 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 1024u, 0x08AD7C20u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7C20u) goto L_08AD7C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7C20: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9226,8 +11278,21 @@ L_08AD7C28: L_08AD7C3C: aot_gpr_31 = (0x08AD7C44u); aot_gpr_4 = (0u | 35u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 1027u, 0x08AD7C44u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7C44u) goto L_08AD7C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7C44: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9528,8 +11593,8 @@ L_08AD7E64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD7E94: @@ -9614,8 +11679,21 @@ L_08AD7F24: L_08AD7F2C: aot_gpr_31 = (0x08AD7F34u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 1080u, 0x08AD7F34u, 0x08AB3F28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1013u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1013u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1013u, 0x08AB3F28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7F34u) goto L_08AD7F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7F34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9684,8 +11762,21 @@ L_08AD7FA8: L_08AD7FB0: aot_gpr_31 = (0x08AD7FB8u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0180->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0180_entry, 1092u, 0x08AD7FB8u, 0x08AB3F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1021u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1021u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1021u, 0x08AB3F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD7FB8u) goto L_08AD7FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD7FB8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0181.cpp b/profiles/vcs/generated/generated_unit_0181.cpp index 7d61db9..8f68a24 100644 --- a/profiles/vcs/generated/generated_unit_0181.cpp +++ b/profiles/vcs/generated/generated_unit_0181.cpp @@ -1054,6 +1054,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AD8000u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1070,8 +1094,21 @@ LOCAL_SCHED_BOUNDARY: L_08AD8000: aot_gpr_31 = (0x08AD8008u); aot_gpr_5 = (0u | 193u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 2u, 0x08AD8008u, 0x08AD4E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 234u, 0x08AD4E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8008u) goto L_08AD8008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8008: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1083,8 +1120,21 @@ L_08AD8010: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD801Cu); aot_gpr_5 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 4u, 0x08AD801Cu, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD801Cu) goto L_08AD801C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD801C: aot_gpr_31 = (0x08AD8024u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8024u) goto L_08AD8024; @@ -1103,8 +1153,21 @@ L_08AD802C: L_08AD8034: aot_gpr_31 = (0x08AD803Cu); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 8u, 0x08AD803Cu, 0x08AB3FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1029u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1029u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1029u, 0x08AB3FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD803Cu) goto L_08AD803C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD803C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1118,24 +1181,63 @@ L_08AD8044: aot_gpr_5 = (0u | 246u); aot_gpr_31 = (0x08AD8058u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 10u, 0x08AD8058u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8058u) goto L_08AD8058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8058: ctx.gpr[7] = (ctx.gpr[28] + static_cast(-336)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 218u); aot_gpr_31 = (0x08AD806Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 11u, 0x08AD806Cu, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD806Cu) goto L_08AD806C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD806C: ctx.gpr[7] = (ctx.gpr[28] + static_cast(-324)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 11u); aot_gpr_31 = (0x08AD8080u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 12u, 0x08AD8080u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8080u) goto L_08AD8080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8080: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1147,20 +1249,59 @@ L_08AD8088: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD8094u); aot_gpr_5 = (0u | 218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 14u, 0x08AD8094u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8094u) goto L_08AD8094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8094: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD80A0u); aot_gpr_5 = (0u | 246u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 15u, 0x08AD80A0u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD80A0u) goto L_08AD80A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD80A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD80ACu); aot_gpr_5 = (0u | 218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 16u, 0x08AD80ACu, 0x08AD4E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 234u, 0x08AD4E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD80ACu) goto L_08AD80AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD80AC: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1172,8 +1313,21 @@ L_08AD80AC: L_08AD80B4: aot_gpr_31 = (0x08AD80BCu); aot_gpr_5 = (0u | 246u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 18u, 0x08AD80BCu, 0x08AD4E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 234u, 0x08AD4E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD80BCu) goto L_08AD80BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD80BC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1185,8 +1339,21 @@ L_08AD80C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD80D0u); aot_gpr_5 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 20u, 0x08AD80D0u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD80D0u) goto L_08AD80D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD80D0: aot_gpr_31 = (0x08AD80D8u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD80D8u) goto L_08AD80D8; @@ -1205,8 +1372,21 @@ L_08AD80E0: L_08AD80E8: aot_gpr_31 = (0x08AD80F0u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 24u, 0x08AD80F0u, 0x08AB4000u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 1u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 1u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 1u, 0x08AB4000u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD80F0u) goto L_08AD80F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD80F0: { const bool branch_taken = static_cast(ctx.gpr[2]) <= 0; if (branch_taken) { @@ -1220,8 +1400,21 @@ L_08AD80F8: aot_gpr_5 = (0u | 261u); aot_gpr_31 = (0x08AD810Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 26u, 0x08AD810Cu, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD810Cu) goto L_08AD810C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD810C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1233,8 +1426,21 @@ L_08AD8114: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD8120u); aot_gpr_5 = (0u | 261u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 28u, 0x08AD8120u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8120u) goto L_08AD8120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8120: aot_gpr_31 = (0x08AD8128u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8128u) goto L_08AD8128; @@ -1253,8 +1459,21 @@ L_08AD8130: L_08AD8138: aot_gpr_31 = (0x08AD8140u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 32u, 0x08AD8140u, 0x08AB3F00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1009u, 0x08AB3F00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8140u) goto L_08AD8140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8140: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1266,22 +1485,61 @@ L_08AD8148: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD8154u); aot_gpr_5 = (0u | 117u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 34u, 0x08AD8154u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8154u) goto L_08AD8154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8154: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD8160u); aot_gpr_5 = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 35u, 0x08AD8160u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8160u) goto L_08AD8160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8160: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 204u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AD8174u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 36u, 0x08AD8174u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8174u) goto L_08AD8174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8174: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-11816))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1313,16 +1571,42 @@ L_08AD8194: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AD81ACu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 40u, 0x08AD81ACu, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD81ACu) goto L_08AD81AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD81AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 118u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AD81C0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 41u, 0x08AD81C0u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD81C0u) goto L_08AD81C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD81C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1341,20 +1625,59 @@ L_08AD81D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD81DCu); aot_gpr_5 = (0u | 204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 44u, 0x08AD81DCu, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD81DCu) goto L_08AD81DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD81DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD81E8u); aot_gpr_5 = (0u | 117u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 45u, 0x08AD81E8u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD81E8u) goto L_08AD81E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD81E8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD81F4u); aot_gpr_5 = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 46u, 0x08AD81F4u, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD81F4u) goto L_08AD81F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD81F4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1398,15 +1721,41 @@ L_08AD821C: L_08AD8230: aot_gpr_31 = (0x08AD8238u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 52u, 0x08AD8238u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8238u) goto L_08AD8238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8238: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08AD8248u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 53u, 0x08AD8248u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8248u) goto L_08AD8248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8248: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5428))); ctx.gpr[20] = (2280u << 16u); @@ -1485,15 +1834,41 @@ L_08AD82BC: L_08AD82D4: aot_gpr_31 = (0x08AD82DCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 63u, 0x08AD82DCu, 0x08B41DB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 450u, 0x08B41DB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD82DCu) goto L_08AD82DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD82DC: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD82ECu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 64u, 0x08AD82ECu, 0x08AD4E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 234u, 0x08AD4E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD82ECu) goto L_08AD82EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD82EC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1535,8 +1910,21 @@ L_08AD8330: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AD8344u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 69u, 0x08AD8344u, 0x08AD4040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 4u, 0x08AD4040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8344u) goto L_08AD8344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8344: aot_gpr_4 = (0u | 350u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-408), aot_gpr_4); @@ -1567,8 +1955,8 @@ L_08AD8364: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD8384: @@ -1602,8 +1990,21 @@ L_08AD83CC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AD83DCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 76u, 0x08AD83DCu, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD83DCu) goto L_08AD83DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD83DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(16))); ctx.gpr[20] = (aot_gpr_16 | 0u); @@ -1656,8 +2057,21 @@ L_08AD8434: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AD8454u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 81u, 0x08AD8454u, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8454u) goto L_08AD8454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8454: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); @@ -1709,8 +2123,21 @@ L_08AD84B4: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AD84C8u); aot_gpr_5 = (aot_gpr_5 + static_cast(12504)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 86u, 0x08AD84C8u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD84C8u) goto L_08AD84C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD84C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); { const bool branch_taken = 0u == 0u; @@ -1761,8 +2188,21 @@ L_08AD8510: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AD851Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 92u, 0x08AD851Cu, 0x08AD30D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 521u, 0x08AD30D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD851Cu) goto L_08AD851C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD851C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(48)); @@ -1779,18 +2219,57 @@ L_08AD8524: L_08AD8534: aot_gpr_31 = (0x08AD853Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 95u, 0x08AD853Cu, 0x088DF79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 463u, 0x088DF79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD853Cu) goto L_08AD853C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD853C: aot_gpr_31 = (0x08AD8544u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 96u, 0x08AD8544u, 0x088DF79Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 463u, 0x088DF79Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8544u) goto L_08AD8544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8544: aot_gpr_31 = (0x08AD854Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 97u, 0x08AD854Cu, 0x088DF818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 471u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 471u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 471u, 0x088DF818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD854Cu) goto L_08AD854C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD854C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(72)); @@ -1839,8 +2318,21 @@ L_08AD85A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AD85ACu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 104u, 0x08AD85ACu, 0x0893EDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 695u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 695u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 695u, 0x0893EDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD85ACu) goto L_08AD85AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD85AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(20))); @@ -1915,16 +2407,42 @@ L_08AD8628: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD8644u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 112u, 0x08AD8644u, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8644u) goto L_08AD8644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8644: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[17] = (0u | 1u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD8658u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 113u, 0x08AD8658u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8658u) goto L_08AD8658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8658: ctx.gpr[2] = (ctx.gpr[17] | 0u); goto L_08AD865C; @@ -1940,8 +2458,8 @@ L_08AD865C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD867C: @@ -1958,15 +2476,41 @@ L_08AD867C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(484), aot_run_words); } aot_gpr_31 = (0x08AD86CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 116u, 0x08AD86CCu, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD86CCu) goto L_08AD86CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD86CC: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); aot_gpr_31 = (0x08AD86DCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(460), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 117u, 0x08AD86DCu, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD86DCu) goto L_08AD86DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD86DC: aot_gpr_4 = (ctx.gpr[2] < aot_gpr_16 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2167,8 +2711,21 @@ L_08AD887C: aot_gpr_5 = (aot_gpr_5 + aot_gpr_16); aot_gpr_31 = (0x08AD8890u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 139u, 0x08AD8890u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8890u) goto L_08AD8890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8890: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2183,8 +2740,21 @@ L_08AD8898: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x08AD88B0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 141u, 0x08AD88B0u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD88B0u) goto L_08AD88B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD88B0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2199,8 +2769,21 @@ L_08AD88B8: aot_gpr_5 = (aot_gpr_5 + static_cast(12)); aot_gpr_31 = (0x08AD88D0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 143u, 0x08AD88D0u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD88D0u) goto L_08AD88D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD88D0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2261,8 +2844,21 @@ L_08AD8914: L_08AD891C: aot_gpr_31 = (0x08AD8924u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 152u, 0x08AD8924u, 0x08AD5914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 439u, 0x08AD5914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8924u) goto L_08AD8924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8924: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2275,13 +2871,39 @@ L_08AD892C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AD893Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 154u, 0x08AD893Cu, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD893Cu) goto L_08AD893C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD893C: aot_gpr_31 = (0x08AD8944u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 155u, 0x08AD8944u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8944u) goto L_08AD8944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8944: aot_gpr_4 = (ctx.gpr[2] < ctx.gpr[19] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2395,8 +3017,21 @@ L_08AD8A10: aot_gpr_5 = (aot_gpr_5 + aot_gpr_16); aot_gpr_31 = (0x08AD8A24u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 169u, 0x08AD8A24u, 0x08AD70FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 830u, 0x08AD70FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8A24u) goto L_08AD8A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8A24: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2411,8 +3046,21 @@ L_08AD8A2C: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x08AD8A44u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 171u, 0x08AD8A44u, 0x08AD70FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 830u, 0x08AD70FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8A44u) goto L_08AD8A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8A44: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2427,8 +3075,21 @@ L_08AD8A4C: aot_gpr_5 = (aot_gpr_5 + static_cast(12)); aot_gpr_31 = (0x08AD8A64u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 173u, 0x08AD8A64u, 0x08AD70FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 830u, 0x08AD70FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8A64u) goto L_08AD8A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8A64: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2486,8 +3147,21 @@ L_08AD8AA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_31 = (0x08AD8AB4u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 181u, 0x08AD8AB4u, 0x08AD72E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 862u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 862u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 862u, 0x08AD72E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8AB4u) goto L_08AD8AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8AB4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2544,8 +3218,21 @@ L_08AD8B0C: aot_gpr_5 = (aot_gpr_5 + aot_gpr_16); aot_gpr_31 = (0x08AD8B20u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 188u, 0x08AD8B20u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8B20u) goto L_08AD8B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8B20: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2560,8 +3247,21 @@ L_08AD8B28: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x08AD8B40u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 190u, 0x08AD8B40u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8B40u) goto L_08AD8B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8B40: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2576,8 +3276,21 @@ L_08AD8B48: aot_gpr_5 = (aot_gpr_5 + static_cast(12)); aot_gpr_31 = (0x08AD8B60u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 192u, 0x08AD8B60u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8B60u) goto L_08AD8B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8B60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2756,8 +3469,21 @@ L_08AD8C9C: aot_gpr_5 = (aot_gpr_5 + aot_gpr_16); aot_gpr_31 = (0x08AD8CB0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 214u, 0x08AD8CB0u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8CB0u) goto L_08AD8CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8CB0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2772,8 +3498,21 @@ L_08AD8CB8: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x08AD8CD0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 216u, 0x08AD8CD0u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8CD0u) goto L_08AD8CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8CD0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2788,8 +3527,21 @@ L_08AD8CD8: aot_gpr_5 = (aot_gpr_5 + static_cast(12)); aot_gpr_31 = (0x08AD8CF0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 218u, 0x08AD8CF0u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8CF0u) goto L_08AD8CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8CF0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2851,8 +3603,21 @@ L_08AD8D34: L_08AD8D3C: aot_gpr_31 = (0x08AD8D44u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 227u, 0x08AD8D44u, 0x08AD5914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 439u, 0x08AD5914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8D44u) goto L_08AD8D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8D44: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2865,13 +3630,39 @@ L_08AD8D4C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AD8D5Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 229u, 0x08AD8D5Cu, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8D5Cu) goto L_08AD8D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8D5C: aot_gpr_31 = (0x08AD8D64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 230u, 0x08AD8D64u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8D64u) goto L_08AD8D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8D64: aot_gpr_4 = (ctx.gpr[2] < ctx.gpr[19] ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2995,8 +3786,21 @@ L_08AD8E48: aot_gpr_5 = (aot_gpr_5 + aot_gpr_16); aot_gpr_31 = (0x08AD8E5Cu); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 245u, 0x08AD8E5Cu, 0x08AD70FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 830u, 0x08AD70FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8E5Cu) goto L_08AD8E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8E5C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3011,8 +3815,21 @@ L_08AD8E64: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x08AD8E7Cu); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 247u, 0x08AD8E7Cu, 0x08AD70FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 830u, 0x08AD70FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8E7Cu) goto L_08AD8E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8E7C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3027,8 +3844,21 @@ L_08AD8E84: aot_gpr_5 = (aot_gpr_5 + static_cast(12)); aot_gpr_31 = (0x08AD8E9Cu); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 249u, 0x08AD8E9Cu, 0x08AD70FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 830u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 830u, 0x08AD70FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8E9Cu) goto L_08AD8E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8E9C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3087,8 +3917,21 @@ L_08AD8EE0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_31 = (0x08AD8EECu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 257u, 0x08AD8EECu, 0x08AD72E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 862u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 862u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 862u, 0x08AD72E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8EECu) goto L_08AD8EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8EEC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3150,8 +3993,21 @@ L_08AD8F4C: aot_gpr_5 = (aot_gpr_5 + aot_gpr_16); aot_gpr_31 = (0x08AD8F60u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 265u, 0x08AD8F60u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8F60u) goto L_08AD8F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8F60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3166,8 +4022,21 @@ L_08AD8F68: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); aot_gpr_31 = (0x08AD8F80u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 267u, 0x08AD8F80u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8F80u) goto L_08AD8F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8F80: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3182,8 +4051,21 @@ L_08AD8F88: aot_gpr_5 = (aot_gpr_5 + static_cast(12)); aot_gpr_31 = (0x08AD8FA0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 269u, 0x08AD8FA0u, 0x08AD6F90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 805u, 0x08AD6F90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8FA0u) goto L_08AD8FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8FA0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3241,8 +4123,21 @@ L_08AD8FD8: L_08AD8FE4: aot_gpr_31 = (0x08AD8FECu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(460))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 277u, 0x08AD8FECu, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD8FECu) goto L_08AD8FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD8FEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -3256,8 +4151,21 @@ L_08AD8FFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_31 = (0x08AD9008u); aot_gpr_5 = (0u | 131u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 279u, 0x08AD9008u, 0x08AD5658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 382u, 0x08AD5658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9008u) goto L_08AD9008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9008: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3276,8 +4184,21 @@ L_08AD9018: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_31 = (0x08AD9024u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 282u, 0x08AD9024u, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9024u) goto L_08AD9024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9024: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3289,13 +4210,39 @@ L_08AD902C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_31 = (0x08AD9038u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 284u, 0x08AD9038u, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9038u) goto L_08AD9038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9038: aot_gpr_31 = (0x08AD9040u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(460))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 285u, 0x08AD9040u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9040u) goto L_08AD9040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9040: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -3309,8 +4256,21 @@ L_08AD9050: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_31 = (0x08AD905Cu); aot_gpr_5 = (0u | 131u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 287u, 0x08AD905Cu, 0x08AD5658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 382u, 0x08AD5658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD905Cu) goto L_08AD905C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD905C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3329,8 +4289,21 @@ L_08AD906C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_31 = (0x08AD9078u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 290u, 0x08AD9078u, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9078u) goto L_08AD9078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9078: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3341,8 +4314,21 @@ L_08AD9078: L_08AD9080: aot_gpr_31 = (0x08AD9088u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(460))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 292u, 0x08AD9088u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9088u) goto L_08AD9088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9088: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -3428,8 +4414,21 @@ L_08AD9100: L_08AD9108: aot_gpr_31 = (0x08AD9110u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 304u, 0x08AD9110u, 0x0890C798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 128u, 0x0890C798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9110u) goto L_08AD9110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9110: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3450,8 +4449,21 @@ L_08AD9120: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_31 = (0x08AD9130u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 307u, 0x08AD9130u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9130u) goto L_08AD9130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9130: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 131u); @@ -3511,8 +4523,21 @@ L_08AD917C: L_08AD9188: aot_gpr_31 = (0x08AD9190u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 315u, 0x08AD9190u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9190u) goto L_08AD9190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9190: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); @@ -3550,8 +4575,21 @@ L_08AD91B0: L_08AD91C0: aot_gpr_31 = (0x08AD91C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(460))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 321u, 0x08AD91C8u, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD91C8u) goto L_08AD91C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD91C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -3636,14 +4674,40 @@ L_08AD9240: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AD925Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 332u, 0x08AD925Cu, 0x08AD5EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 521u, 0x08AD5EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD925Cu) goto L_08AD925C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD925C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD9268u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 333u, 0x08AD9268u, 0x08AD6020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 541u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 541u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 541u, 0x08AD6020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9268u) goto L_08AD9268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9268: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); ctx.gpr[17] = (0u | 0u); @@ -3708,8 +4772,21 @@ L_08AD92BC: L_08AD92C4: aot_gpr_31 = (0x08AD92CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 342u, 0x08AD92CCu, 0x0890C798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 128u, 0x0890C798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD92CCu) goto L_08AD92CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD92CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3728,8 +4805,21 @@ L_08AD92D4: L_08AD92E0: aot_gpr_31 = (0x08AD92E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 345u, 0x08AD92E8u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD92E8u) goto L_08AD92E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD92E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -3747,8 +4837,21 @@ L_08AD92FC: ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_31 = (0x08AD9310u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 347u, 0x08AD9310u, 0x08AD5914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 439u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 439u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 439u, 0x08AD5914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9310u) goto L_08AD9310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9310: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -3760,8 +4863,21 @@ L_08AD9310: L_08AD9318: aot_gpr_31 = (0x08AD9320u); aot_gpr_5 = (0u | 131u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 349u, 0x08AD9320u, 0x08AD5658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 382u, 0x08AD5658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9320u) goto L_08AD9320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9320: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3773,8 +4889,21 @@ L_08AD9328: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_31 = (0x08AD9334u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 351u, 0x08AD9334u, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9334u) goto L_08AD9334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9334: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3789,8 +4918,21 @@ L_08AD933C: L_08AD9344: aot_gpr_31 = (0x08AD934Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(460))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 354u, 0x08AD934Cu, 0x08ABF2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 686u, 0x08ABF2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD934Cu) goto L_08AD934C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD934C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -3873,8 +5015,21 @@ L_08AD93D0: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AD93E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 365u, 0x08AD93E0u, 0x08AD4E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 234u, 0x08AD4E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD93E0u) goto L_08AD93E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD93E0: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3886,8 +5041,21 @@ L_08AD93E0: L_08AD93E8: aot_gpr_31 = (0x08AD93F0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 367u, 0x08AD93F0u, 0x08AD3F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 750u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 750u, 0x08AD3F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD93F0u) goto L_08AD93F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD93F0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(9))); aot_gpr_4 = (aot_gpr_4 & 131u); @@ -3987,8 +5155,21 @@ L_08AD9480: } L_08AD948C: aot_gpr_31 = (0x08AD9494u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 381u, 0x08AD9494u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9494u) goto L_08AD9494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9494: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4128,8 +5309,21 @@ L_08AD9568: L_08AD9574: aot_gpr_31 = (0x08AD957Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 399u, 0x08AD957Cu, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD957Cu) goto L_08AD957C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD957C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4141,8 +5335,21 @@ L_08AD9584: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD9590u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 401u, 0x08AD9590u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9590u) goto L_08AD9590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9590: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -4177,8 +5384,21 @@ L_08AD95C8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(440))); aot_gpr_31 = (0x08AD95D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 405u, 0x08AD95D4u, 0x08AD5DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 503u, 0x08AD5DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD95D4u) goto L_08AD95D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD95D4: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4190,8 +5410,21 @@ L_08AD95D4: L_08AD95DC: aot_gpr_31 = (0x08AD95E4u); aot_gpr_5 = (0u | 131u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0180. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 407u, 0x08AD95E4u, 0x08AD5658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0180_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0180_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0180_entry, 180u, 382u, 0x08AD5658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD95E4u) goto L_08AD95E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD95E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4203,8 +5436,21 @@ L_08AD95EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); aot_gpr_31 = (0x08AD95F8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 409u, 0x08AD95F8u, 0x0887F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 669u, 0x0887F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD95F8u) goto L_08AD95F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD95F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4248,8 +5494,8 @@ L_08AD961C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9658: @@ -4266,8 +5512,8 @@ L_08AD9678: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9684: @@ -4278,8 +5524,21 @@ L_08AD9684: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AD96A0u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 416u, 0x08AD96A0u, 0x0881EEC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 510u, 0x0881EEC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD96A0u) goto L_08AD96A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD96A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_5 = (aot_gpr_4 & 1024u); @@ -4338,15 +5597,15 @@ L_08AD96FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9718: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9720: @@ -4368,8 +5627,21 @@ L_08AD9720: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(28), aot_run_words); } aot_gpr_31 = (0x08AD9774u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 424u, 0x08AD9774u, 0x0881FF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 727u, 0x0881FF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9774u) goto L_08AD9774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9774: aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(8))); ctx.gpr[21] = (ctx.gpr[2] | 0u); @@ -4379,8 +5651,21 @@ L_08AD9774: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AD9794u); ctx.gpr[9] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 425u, 0x08AD9794u, 0x08820384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 55u, 0x08820384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9794u) goto L_08AD9794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9794: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(8), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); @@ -4405,8 +5690,21 @@ L_08AD97C0: ctx.gpr[7] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AD97D8u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 427u, 0x08AD97D8u, 0x0882001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 4u, 0x0882001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD97D8u) goto L_08AD97D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD97D8: { const bool branch_taken = 0u == 0u; ctx.gpr[22] = (ctx.gpr[2] | 0u); @@ -4422,8 +5720,21 @@ L_08AD97E0: aot_gpr_6 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AD97F8u); ctx.gpr[8] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 429u, 0x08AD97F8u, 0x0882001Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 4u, 0x0882001Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD97F8u) goto L_08AD97F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD97F8: ctx.gpr[22] = (ctx.gpr[2] | 0u); goto L_08AD97FC; @@ -4443,8 +5754,21 @@ L_08AD9804: aot_gpr_6 = (aot_gpr_6 >> 5u); aot_gpr_31 = (0x08AD9830u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 432u, 0x08AD9830u, 0x088201D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 26u, 0x088201D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9830u) goto L_08AD9830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9830: ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4453,8 +5777,21 @@ L_08AD9830: ctx.gpr[7] = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AD984Cu); ctx.gpr[9] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 433u, 0x08AD984Cu, 0x08820850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 115u, 0x08820850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD984Cu) goto L_08AD984C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD984C: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(40), static_cast(aot_gpr_4)); @@ -4505,8 +5842,21 @@ L_08AD98B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-27440))); aot_gpr_31 = (0x08AD98BCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 438u, 0x08AD98BCu, 0x088715BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 388u, 0x088715BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD98BCu) goto L_08AD98BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD98BC: ctx.gpr[7] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(42), static_cast(ctx.gpr[2])); @@ -4517,14 +5867,40 @@ L_08AD98BC: ctx.gpr[9] = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AD98E0u); ctx.gpr[10] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 439u, 0x08AD98E0u, 0x0881EB44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 468u, 0x0881EB44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD98E0u) goto L_08AD98E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD98E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AD98ECu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 440u, 0x08AD98ECu, 0x08820E28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 203u, 0x08820E28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD98ECu) goto L_08AD98EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD98EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-280))); ctx.gpr[2] = (ctx.gpr[21] | 0u); @@ -4543,8 +5919,8 @@ L_08AD98EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9924: @@ -4645,8 +6021,8 @@ L_08AD99C0: goto L_08AD99C4; L_08AD99C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD99CC: @@ -4674,8 +6050,21 @@ L_08AD99E8: aot_gpr_6 = (aot_gpr_6 >> 5u); aot_gpr_31 = (0x08AD9A24u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 457u, 0x08AD9A24u, 0x088201D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 26u, 0x088201D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9A24u) goto L_08AD9A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9A24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -4684,16 +6073,42 @@ L_08AD9A24: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08AD9A40u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 458u, 0x08AD9A40u, 0x08820850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 115u, 0x08820850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9A40u) goto L_08AD9A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9A40: aot_gpr_4 = (0u | 255u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(40), static_cast(aot_gpr_4)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-27440))); aot_gpr_31 = (0x08AD9A54u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 459u, 0x08AD9A54u, 0x088715BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 388u, 0x088715BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9A54u) goto L_08AD9A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9A54: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(42), static_cast(ctx.gpr[2])); { std::uint32_t aot_run_words[3]{}; @@ -4704,8 +6119,8 @@ L_08AD9A54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9A6C: @@ -4723,8 +6138,21 @@ L_08AD9A6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AD9AA4u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 461u, 0x08AD9AA4u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9AA4u) goto L_08AD9AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9AA4: ctx.gpr[7] = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4732,8 +6160,21 @@ L_08AD9AA4: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AD9ABCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 462u, 0x08AD9ABCu, 0x088200E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 12u, 0x088200E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9ABCu) goto L_08AD9ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9ABC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4744,8 +6185,8 @@ L_08AD9ABC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9AD4: @@ -4762,8 +6203,21 @@ L_08AD9AD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AD9B08u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 464u, 0x08AD9B08u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9B08u) goto L_08AD9B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9B08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_6 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(8))); @@ -4905,8 +6359,21 @@ L_08AD9BDC: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AD9BF0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 481u, 0x08AD9BF0u, 0x088230BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 576u, 0x088230BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9BF0u) goto L_08AD9BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9BF0: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4918,8 +6385,8 @@ L_08AD9BF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9C0C: @@ -4928,8 +6395,21 @@ L_08AD9C0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AD9C20u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 483u, 0x08AD9C20u, 0x0881E6E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 424u, 0x0881E6E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9C20u) goto L_08AD9C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9C20: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(43)))))); aot_gpr_5 = (2235u << 16u); @@ -4953,8 +6433,8 @@ L_08AD9C20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9C78: @@ -4963,8 +6443,21 @@ L_08AD9C78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AD9C8Cu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 485u, 0x08AD9C8Cu, 0x0881FF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 726u, 0x0881FF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9C8Cu) goto L_08AD9C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9C8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (0u + static_cast(-257)); @@ -4976,8 +6469,21 @@ L_08AD9C8C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(8), aot_gpr_4); aot_gpr_31 = (0x08AD9CB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 486u, 0x08AD9CB4u, 0x0881FA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 664u, 0x0881FA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9CB4u) goto L_08AD9CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9CB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5012,8 +6518,21 @@ L_08AD9CDC: L_08AD9CF4: aot_gpr_31 = (0x08AD9CFCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 490u, 0x08AD9CFCu, 0x0881F274u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 563u, 0x0881F274u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9CFCu) goto L_08AD9CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9CFC: aot_gpr_4 = (0u | 1u); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -5033,8 +6552,8 @@ L_08AD9D18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9D28: @@ -5046,8 +6565,8 @@ L_08AD9D38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9D44: @@ -5072,8 +6591,21 @@ L_08AD9D44: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(24), aot_run_words); } aot_gpr_31 = (0x08AD9DA4u); ctx.gpr[21] = (ctx.gpr[21] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 496u, 0x08AD9DA4u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9DA4u) goto L_08AD9DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9DA4: ctx.gpr[22] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(8))); @@ -5182,8 +6714,21 @@ L_08AD9E70: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AD9E7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 507u, 0x08AD9E7Cu, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9E7Cu) goto L_08AD9E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9E7C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); ctx.gpr[17] = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); @@ -5268,8 +6813,8 @@ L_08AD9EFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AD9F2C: @@ -5289,20 +6834,59 @@ L_08AD9F2C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x08AD9F74u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 517u, 0x08AD9F74u, 0x0881F7A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 620u, 0x0881F7A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9F74u) goto L_08AD9F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9F74: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AD9F80u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 518u, 0x08AD9F80u, 0x0881E25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 348u, 0x0881E25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9F80u) goto L_08AD9F80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9F80: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_31 = (0x08AD9F8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 519u, 0x08AD9F8Cu, 0x0881E7E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 426u, 0x0881E7E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9F8Cu) goto L_08AD9F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9F8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); @@ -5319,8 +6903,21 @@ L_08AD9FA4: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AD9FB4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 521u, 0x08AD9FB4u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9FB4u) goto L_08AD9FB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9FB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(36))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(20), ctx.gpr[2]); @@ -5330,8 +6927,21 @@ L_08AD9FB4: ctx.gpr[21] = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08AD9FD4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 522u, 0x08AD9FD4u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AD9FD4u) goto L_08AD9FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AD9FD4: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); ctx.gpr[11] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -5381,8 +6991,8 @@ L_08ADA020: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADA044: @@ -5393,8 +7003,21 @@ L_08ADA044: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08ADA060u); aot_gpr_16 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 528u, 0x08ADA060u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA060u) goto L_08ADA060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA060: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(13))); @@ -5486,8 +7109,8 @@ L_08ADA0F8: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[10]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(16384))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADA110: @@ -5586,8 +7209,8 @@ L_08ADA19C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADA1AC: @@ -5601,8 +7224,21 @@ L_08ADA1AC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } aot_gpr_31 = (0x08ADA1DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-27440))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 551u, 0x08ADA1DCu, 0x088715BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 388u, 0x088715BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA1DCu) goto L_08ADA1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA1DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-27440))); aot_gpr_5 = (ctx.gpr[2] << 4u); @@ -5626,8 +7262,21 @@ L_08ADA214: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08ADA220u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 553u, 0x08ADA220u, 0x0881E160u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 330u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 330u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 330u, 0x0881E160u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA220u) goto L_08ADA220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA220: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(4))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5669,8 +7318,8 @@ L_08ADA220: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADA2B4: @@ -5688,15 +7337,41 @@ L_08ADA2B4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x08ADA2F8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 555u, 0x08ADA2F8u, 0x0881E8FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 438u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 438u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 438u, 0x0881E8FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA2F8u) goto L_08ADA2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA2F8: ctx.gpr[22] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ADA308u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 556u, 0x08ADA308u, 0x0881F0FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 545u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 545u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 545u, 0x0881F0FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA308u) goto L_08ADA308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA308: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-30640))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(8))); @@ -5759,8 +7434,21 @@ L_08ADA37C: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ADA390u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 562u, 0x08ADA390u, 0x0881F6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 613u, 0x0881F6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA390u) goto L_08ADA390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA390: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5786,8 +7474,21 @@ L_08ADA3B8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08ADA3C8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 565u, 0x08ADA3C8u, 0x088E3E88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 571u, 0x088E3E88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA3C8u) goto L_08ADA3C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA3C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5830,8 +7531,21 @@ L_08ADA3FC: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08ADA410u); ctx.gpr[7] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 569u, 0x08ADA410u, 0x088205F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 87u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 87u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 87u, 0x088205F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA410u) goto L_08ADA410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA410: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(43)))))); aot_gpr_4 = (aot_gpr_4 & 240u); @@ -5889,8 +7603,21 @@ L_08ADA480: aot_gpr_6 = (aot_gpr_6 >> 5u); aot_gpr_31 = (0x08ADA498u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 576u, 0x08ADA498u, 0x088201D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 26u, 0x088201D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA498u) goto L_08ADA498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA498: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -6034,8 +7761,8 @@ L_08ADA598: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADA5C4: @@ -6069,8 +7796,21 @@ L_08ADA5C4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(640), aot_gpr_31); aot_gpr_31 = (0x08ADA644u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 593u, 0x08ADA644u, 0x088717A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 418u, 0x088717A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA644u) goto L_08ADA644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA644: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(40))); ctx.gpr[7] = (ctx.gpr[2] | 0u); @@ -6139,8 +7879,21 @@ L_08ADA6B0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08ADA6C0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 601u, 0x08ADA6C0u, 0x0881F0FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 545u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 545u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 545u, 0x0881F0FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA6C0u) goto L_08ADA6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA6C0: aot_gpr_4 = (17278u << 16u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6152,8 +7905,21 @@ L_08ADA6C0: aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08ADA6E8u); aot_gpr_16 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 602u, 0x08ADA6E8u, 0x0881E21Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 344u, 0x0881E21Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA6E8u) goto L_08ADA6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA6E8: ctx.gpr[23] = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(580), ctx.gpr[2]); @@ -6184,8 +7950,21 @@ L_08ADA70C: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08ADA718u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 606u, 0x08ADA718u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA718u) goto L_08ADA718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA718: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -6327,8 +8106,21 @@ L_08ADA82C: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(7))); aot_gpr_31 = (0x08ADA848u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 622u, 0x08ADA848u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA848u) goto L_08ADA848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA848: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(13))); @@ -6426,8 +8218,21 @@ L_08ADA900: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(588))); aot_gpr_31 = (0x08ADA90Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 633u, 0x08ADA90Cu, 0x08871880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 426u, 0x08871880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA90Cu) goto L_08ADA90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA90C: aot_gpr_4 = (ctx.gpr[21] + ctx.gpr[21]); aot_gpr_4 = (ctx.gpr[21] + aot_gpr_4); @@ -6496,8 +8301,21 @@ L_08ADA9A4: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(7))); aot_gpr_31 = (0x08ADA9C0u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 640u, 0x08ADA9C0u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA9C0u) goto L_08ADA9C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA9C0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); { const bool branch_taken = ctx.gpr[17] == aot_gpr_4; @@ -6530,8 +8348,21 @@ L_08ADA9DC: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(7))); aot_gpr_31 = (0x08ADA9F8u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 644u, 0x08ADA9F8u, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADA9F8u) goto L_08ADA9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADA9F8: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); { const bool branch_taken = ctx.gpr[17] == aot_gpr_4; @@ -6765,8 +8596,21 @@ L_08ADABE0: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(7))); aot_gpr_31 = (0x08ADABFCu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 667u, 0x08ADABFCu, 0x0881E1C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 340u, 0x0881E1C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADABFCu) goto L_08ADABFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADABFC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[20] + static_cast(8))); @@ -6974,8 +8818,8 @@ L_08ADADA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(656)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADADD8: @@ -6988,8 +8832,8 @@ L_08ADADD8: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADADFC: @@ -7034,8 +8878,21 @@ L_08ADADFC: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08ADAEACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 690u, 0x08ADAEACu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADAEACu) goto L_08ADAEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADAEAC: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 != 0u; @@ -7073,8 +8930,21 @@ L_08ADAEC4: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08ADAF14u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 694u, 0x08ADAF14u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADAF14u) goto L_08ADAF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADAF14: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 != 0u; @@ -7118,8 +8988,21 @@ L_08ADAF2C: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08ADAF94u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 698u, 0x08ADAF94u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADAF94u) goto L_08ADAF94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADAF94: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7155,13 +9038,39 @@ L_08ADAFAC: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08ADAFF0u); aot_gpr_4 = (aot_gpr_16 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 702u, 0x08ADAFF0u, 0x08A7620Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 465u, 0x08A7620Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADAFF0u) goto L_08ADAFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADAFF0: aot_gpr_31 = (0x08ADAFF8u); aot_gpr_4 = (aot_gpr_16 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 703u, 0x08ADAFF8u, 0x089414B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 169u, 0x089414B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADAFF8u) goto L_08ADAFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADAFF8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(224), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), 0u); @@ -7173,8 +9082,21 @@ L_08ADAFF8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08ADB020u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 704u, 0x08ADB020u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB020u) goto L_08ADB020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB020: ctx.gpr[18] = (ctx.gpr[2] | 0u); if (ctx.gpr[18] == 0u) { @@ -7185,8 +9107,21 @@ L_08ADB020: L_08ADB02C: aot_gpr_31 = (0x08ADB034u); aot_gpr_4 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 706u, 0x08ADB034u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB034u) goto L_08ADB034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB034: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(4), 0u); @@ -7206,8 +9141,8 @@ L_08ADB04C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADB068: @@ -7254,8 +9189,21 @@ L_08ADB0C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); aot_gpr_31 = (0x08ADB0D0u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 714u, 0x08ADB0D0u, 0x08A87C3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 585u, 0x08A87C3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB0D0u) goto L_08ADB0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB0D0: aot_gpr_4 = (aot_gpr_16 + static_cast(208)); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7374,8 +9322,21 @@ L_08ADB164: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08ADB178u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 731u, 0x08ADB178u, 0x08B6DF1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 422u, 0x08B6DF1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB178u) goto L_08ADB178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB178: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(180))); aot_gpr_5 = (aot_gpr_4 + static_cast(8)); @@ -7501,8 +9462,21 @@ L_08ADB24C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08ADB260u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 748u, 0x08ADB260u, 0x08B6AA64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 462u, 0x08B6AA64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB260u) goto L_08ADB260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB260: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(116))); aot_gpr_5 = (aot_gpr_4 + static_cast(8)); @@ -7623,8 +9597,8 @@ L_08ADB324: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADB348: @@ -7803,15 +9777,28 @@ L_08ADB480: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(16), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08ADB4B4u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 785u, 0x08ADB4B4u, 0x08A884A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 59u, 0x08A884A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB4B4u) goto L_08ADB4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB4B4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADB4C4: @@ -7991,8 +9978,21 @@ L_08ADB614: L_08ADB61C: aot_gpr_31 = (0x08ADB624u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 808u, 0x08ADB624u, 0x08A5306Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 559u, 0x08A5306Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB624u) goto L_08ADB624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB624: ctx.gpr[17] = (ctx.gpr[2] + static_cast(108)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -8015,8 +10015,21 @@ L_08ADB650: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_31 = (0x08ADB660u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 810u, 0x08ADB660u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB660u) goto L_08ADB660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB660: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[2]); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8054,13 +10067,39 @@ L_08ADB68C: L_08ADB6AC: aot_gpr_31 = (0x08ADB6B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 814u, 0x08ADB6B4u, 0x08ADE16Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 565u, 0x08ADE16Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB6B4u) goto L_08ADB6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB6B4: aot_gpr_31 = (0x08ADB6BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 815u, 0x08ADB6BCu, 0x08ADE404u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 610u, 0x08ADE404u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB6BCu) goto L_08ADB6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB6BC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -8152,17 +10191,56 @@ L_08ADB73C: L_08ADB748: aot_gpr_31 = (0x08ADB750u); aot_gpr_4 = (aot_gpr_16 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 829u, 0x08ADB750u, 0x08A76CA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 578u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 578u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 578u, 0x08A76CA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB750u) goto L_08ADB750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB750: aot_gpr_31 = (0x08ADB758u); aot_gpr_4 = (aot_gpr_16 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 830u, 0x08ADB758u, 0x089417B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 212u, 0x089417B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB758u) goto L_08ADB758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB758: aot_gpr_31 = (0x08ADB760u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 831u, 0x08ADB760u, 0x089754A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 308u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 308u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 308u, 0x089754A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB760u) goto L_08ADB760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB760: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); ctx.gpr[17] = (2237u << 16u); @@ -8190,8 +10268,21 @@ L_08ADB778: L_08ADB780: aot_gpr_31 = (0x08ADB788u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 835u, 0x08ADB788u, 0x08AE0790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 126u, 0x08AE0790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB788u) goto L_08ADB788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB788: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(100))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -8330,14 +10421,40 @@ L_08ADB870: L_08ADB874: aot_gpr_31 = (0x08ADB87Cu); aot_gpr_5 = (ctx.gpr[17] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 857u, 0x08ADB87Cu, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB87Cu) goto L_08ADB87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB87C: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x08ADB888u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 858u, 0x08ADB888u, 0x08933D7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 741u, 0x08933D7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB888u) goto L_08ADB888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB888: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -8351,8 +10468,21 @@ L_08ADB890: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x08ADB8A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 860u, 0x08ADB8A0u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB8A0u) goto L_08ADB8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB8A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8363,8 +10493,21 @@ L_08ADB8A0: L_08ADB8A8: aot_gpr_31 = (0x08ADB8B0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 862u, 0x08ADB8B0u, 0x08933E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 751u, 0x08933E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB8B0u) goto L_08ADB8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB8B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(33))); @@ -8407,13 +10550,39 @@ L_08ADB8EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ADB914u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 866u, 0x08ADB914u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB914u) goto L_08ADB914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB914: aot_gpr_31 = (0x08ADB91Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 867u, 0x08ADB91Cu, 0x08A8AFE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 583u, 0x08A8AFE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB91Cu) goto L_08ADB91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB91C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -8424,8 +10593,8 @@ L_08ADB91C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADB934: @@ -8514,15 +10683,28 @@ L_08ADB9BC: L_08ADB9C4: aot_gpr_31 = (0x08ADB9CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 880u, 0x08ADB9CCu, 0x08AE0790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 126u, 0x08AE0790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB9CCu) goto L_08ADB9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB9CC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADB9DC: @@ -8532,44 +10714,135 @@ L_08ADB9DC: aot_gpr_16 = (aot_gpr_4 | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(141), static_cast(0u)); aot_gpr_31 = (0x08ADB9F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 882u, 0x08ADB9F8u, 0x08ADFDB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 984u, 0x08ADFDB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADB9F8u) goto L_08ADB9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADB9F8: aot_gpr_31 = (0x08ADBA00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 883u, 0x08ADBA00u, 0x08AD3634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 600u, 0x08AD3634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBA00u) goto L_08ADBA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBA00: aot_gpr_31 = (0x08ADBA08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 884u, 0x08ADBA08u, 0x08AD34BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 575u, 0x08AD34BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBA08u) goto L_08ADBA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBA08: aot_gpr_31 = (0x08ADBA10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 885u, 0x08ADBA10u, 0x08AD3670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 604u, 0x08AD3670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBA10u) goto L_08ADBA10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBA10: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08ADBA20u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 886u, 0x08ADBA20u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBA20u) goto L_08ADBA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBA20: aot_gpr_31 = (0x08ADBA28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 887u, 0x08ADBA28u, 0x08ADFA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 898u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 898u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 898u, 0x08ADFA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBA28u) goto L_08ADBA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBA28: aot_gpr_31 = (0x08ADBA30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 888u, 0x08ADBA30u, 0x08ADDF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 517u, 0x08ADDF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBA30u) goto L_08ADBA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBA30: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADBA40: @@ -8588,8 +10861,21 @@ L_08ADBA78: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08ADBA84u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 891u, 0x08ADBA84u, 0x08AE0790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 126u, 0x08AE0790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBA84u) goto L_08ADBA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBA84: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8615,8 +10901,21 @@ L_08ADBA8C: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08ADBACCu); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 893u, 0x08ADBACCu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBACCu) goto L_08ADBACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBACC: ctx.gpr[21] = (0u | 0u); ctx.gpr[19] = (aot_gpr_29 + static_cast(208)); @@ -8799,8 +11098,21 @@ L_08ADBBF8: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08ADBC44u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 918u, 0x08ADBC44u, 0x08A89B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 378u, 0x08A89B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBC44u) goto L_08ADBC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBC44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8864,8 +11176,21 @@ L_08ADBCC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(100))); aot_gpr_31 = (0x08ADBCD4u); aot_gpr_5 = (aot_gpr_29 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 926u, 0x08ADBCD4u, 0x08A88164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 17u, 0x08A88164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBCD4u) goto L_08ADBCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBCD4: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); { const bool branch_taken = aot_gpr_16 != 0u; @@ -8884,8 +11209,21 @@ L_08ADBCE8: L_08ADBCEC: aot_gpr_31 = (0x08ADBCF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 930u, 0x08ADBCF4u, 0x08A5306Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 559u, 0x08A5306Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBCF4u) goto L_08ADBCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBCF4: aot_gpr_16 = (ctx.gpr[2] + static_cast(108)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -8919,8 +11257,21 @@ L_08ADBD30: goto L_08ADBD40; L_08ADBD40: aot_gpr_31 = (0x08ADBD48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 934u, 0x08ADBD48u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBD48u) goto L_08ADBD48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBD48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(228), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -8960,8 +11311,21 @@ L_08ADBD88: goto L_08ADBD8C; L_08ADBD8C: aot_gpr_31 = (0x08ADBD94u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 940u, 0x08ADBD94u, 0x08A53344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 598u, 0x08A53344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBD94u) goto L_08ADBD94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBD94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(100))); goto L_08ADBD98; @@ -8970,8 +11334,21 @@ L_08ADBD98: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x08ADBDA8u); aot_gpr_4 = (ctx.gpr[23] + static_cast(116)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 942u, 0x08ADBDA8u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBDA8u) goto L_08ADBDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBDA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast(100))); aot_gpr_5 = (0u | 3u); @@ -8981,8 +11358,21 @@ L_08ADBDA8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08ADBDC8u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 943u, 0x08ADBDC8u, 0x08A88BC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 139u, 0x08A88BC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBDC8u) goto L_08ADBDC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBDC8: ctx.gpr[2] = (aot_gpr_16 | 0u); goto L_08ADBDCC; @@ -9002,8 +11392,8 @@ L_08ADBDCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADBDFC: @@ -9057,8 +11447,21 @@ L_08ADBE40: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(24), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08ADBE98u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 949u, 0x08ADBE98u, 0x08A89DCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 417u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 417u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 417u, 0x08A89DCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBE98u) goto L_08ADBE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBE98: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); goto L_08ADBE9C; @@ -9067,13 +11470,39 @@ L_08ADBE9C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); aot_gpr_31 = (0x08ADBEACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 951u, 0x08ADBEACu, 0x08A884A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 59u, 0x08A884A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBEACu) goto L_08ADBEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBEAC: aot_gpr_31 = (0x08ADBEB4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 952u, 0x08ADBEB4u, 0x08A8AFE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 583u, 0x08A8AFE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBEB4u) goto L_08ADBEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBEB4: ctx.gpr[18] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); @@ -9124,8 +11553,21 @@ L_08ADBF0C: L_08ADBF10: aot_gpr_31 = (0x08ADBF18u); aot_gpr_5 = (ctx.gpr[18] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 961u, 0x08ADBF18u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBF18u) goto L_08ADBF18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBF18: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); @@ -9145,8 +11587,21 @@ L_08ADBF30: L_08ADBF34: aot_gpr_31 = (0x08ADBF3Cu); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0181->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0181_entry, 965u, 0x08ADBF3Cu, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADBF3Cu) goto L_08ADBF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADBF3C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9225,8 +11680,8 @@ L_08ADBFB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADBFCC: diff --git a/profiles/vcs/generated/generated_unit_0182.cpp b/profiles/vcs/generated/generated_unit_0182.cpp index b7f0fa6..a077aec 100644 --- a/profiles/vcs/generated/generated_unit_0182.cpp +++ b/profiles/vcs/generated/generated_unit_0182.cpp @@ -1114,6 +1114,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08ADC000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1163,8 +1187,8 @@ L_08ADC02C: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(12)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC06C: @@ -1189,8 +1213,21 @@ L_08ADC094: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ADC0A4u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 7u, 0x08ADC0A4u, 0x08A5315Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 578u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 578u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 578u, 0x08A5315Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC0A4u) goto L_08ADC0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC0A4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1200,8 +1237,8 @@ L_08ADC0A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC0B8: @@ -1209,14 +1246,27 @@ L_08ADC0B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08ADC0C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 9u, 0x08ADC0C8u, 0x08A8997Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 355u, 0x08A8997Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC0C8u) goto L_08ADC0C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC0C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC0D4: @@ -1224,14 +1274,27 @@ L_08ADC0D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08ADC0E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 11u, 0x08ADC0E4u, 0x08A89998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 357u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 357u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 357u, 0x08A89998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC0E4u) goto L_08ADC0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC0E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC0F0: @@ -1260,8 +1323,8 @@ L_08ADC114: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC120: @@ -1290,8 +1353,8 @@ L_08ADC144: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC150: @@ -1314,15 +1377,28 @@ L_08ADC170: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); aot_gpr_31 = (0x08ADC17Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 23u, 0x08ADC17Cu, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC17Cu) goto L_08ADC17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC17C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC18C: @@ -1348,8 +1424,21 @@ L_08ADC1B4: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); aot_gpr_31 = (0x08ADC1C8u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 27u, 0x08ADC1C8u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC1C8u) goto L_08ADC1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC1C8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1383,8 +1472,8 @@ L_08ADC1F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC204: @@ -1407,8 +1496,21 @@ L_08ADC228: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); aot_gpr_31 = (0x08ADC234u); aot_gpr_5 = (aot_gpr_16 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 35u, 0x08ADC234u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC234u) goto L_08ADC234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC234: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1434,8 +1536,21 @@ L_08ADC254: L_08ADC258: aot_gpr_31 = (0x08ADC260u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 40u, 0x08ADC260u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC260u) goto L_08ADC260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC260: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1454,8 +1569,21 @@ L_08ADC274: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08ADC280u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 43u, 0x08ADC280u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC280u) goto L_08ADC280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC280: aot_gpr_16 = (ctx.gpr[2] | 0u); if (aot_gpr_16 == 0u) { @@ -1478,13 +1606,39 @@ L_08ADC29C: L_08ADC2A0: aot_gpr_31 = (0x08ADC2A8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-220)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 48u, 0x08ADC2A8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC2A8u) goto L_08ADC2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC2A8: aot_gpr_31 = (0x08ADC2B0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 49u, 0x08ADC2B0u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC2B0u) goto L_08ADC2B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC2B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1495,8 +1649,21 @@ L_08ADC2B0: L_08ADC2B8: aot_gpr_31 = (0x08ADC2C0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 51u, 0x08ADC2C0u, 0x08A52A78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 467u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 467u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 467u, 0x08A52A78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC2C0u) goto L_08ADC2C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC2C0: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_31 = (0x08ADC2CCu); @@ -1533,13 +1700,39 @@ L_08ADC304: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ADC314u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 56u, 0x08ADC314u, 0x08887B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 843u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 843u, 0x08887B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC314u) goto L_08ADC314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC314: aot_gpr_31 = (0x08ADC31Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 57u, 0x08ADC31Cu, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC31Cu) goto L_08ADC31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC31C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -1576,8 +1769,21 @@ L_08ADC350: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08ADC35Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 62u, 0x08ADC35Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC35Cu) goto L_08ADC35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC35C: aot_gpr_16 = (ctx.gpr[2] | 0u); if (aot_gpr_16 == 0u) { @@ -1600,13 +1806,39 @@ L_08ADC378: L_08ADC37C: aot_gpr_31 = (0x08ADC384u); aot_gpr_5 = (ctx.gpr[28] + static_cast(-220)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 67u, 0x08ADC384u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC384u) goto L_08ADC384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC384: aot_gpr_31 = (0x08ADC38Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 68u, 0x08ADC38Cu, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC38Cu) goto L_08ADC38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC38C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -1636,8 +1868,8 @@ L_08ADC3B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC3C4: @@ -1667,8 +1899,21 @@ L_08ADC400: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08ADC40Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 75u, 0x08ADC40Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC40Cu) goto L_08ADC40C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC40C: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -1695,13 +1940,39 @@ L_08ADC430: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08ADC444u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 80u, 0x08ADC444u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC444u) goto L_08ADC444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC444: aot_gpr_31 = (0x08ADC44Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 81u, 0x08ADC44Cu, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC44Cu) goto L_08ADC44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC44C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1720,8 +1991,21 @@ L_08ADC45C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08ADC468u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 84u, 0x08ADC468u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC468u) goto L_08ADC468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC468: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -1748,13 +2032,39 @@ L_08ADC48C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08ADC4A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 89u, 0x08ADC4A0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC4A0u) goto L_08ADC4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC4A0: aot_gpr_31 = (0x08ADC4A8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 90u, 0x08ADC4A8u, 0x089F5AC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 309u, 0x089F5AC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC4A8u) goto L_08ADC4A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC4A8: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1766,8 +2076,8 @@ L_08ADC4A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC4C4: @@ -1820,8 +2130,21 @@ L_08ADC524: L_08ADC52C: aot_gpr_31 = (0x08ADC534u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 98u, 0x08ADC534u, 0x089D3458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 597u, 0x089D3458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC534u) goto L_08ADC534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC534: ctx.gpr[19] = (ctx.gpr[2] & 255u); goto L_08ADC538; @@ -1841,8 +2164,8 @@ L_08ADC544: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC560: @@ -1893,8 +2216,21 @@ L_08ADC5B0: L_08ADC5B8: aot_gpr_31 = (0x08ADC5C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 108u, 0x08ADC5C0u, 0x089D3458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 597u, 0x089D3458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC5C0u) goto L_08ADC5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC5C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1914,8 +2250,8 @@ L_08ADC5CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC5E0: @@ -1993,8 +2329,21 @@ L_08ADC678: L_08ADC680: aot_gpr_31 = (0x08ADC688u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 122u, 0x08ADC688u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC688u) goto L_08ADC688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC688: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(0))); @@ -2093,29 +2442,29 @@ L_08ADC700: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC724: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC72C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC734: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC73C: @@ -2132,99 +2481,99 @@ L_08ADC748: L_08ADC74C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC754: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC75C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC764: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(28))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC76C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC774: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC77C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(40), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC784: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC78C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC794: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC79C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(57), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC7A4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(57))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC7AC: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(58), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC7B4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(58))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC7BC: @@ -2235,8 +2584,8 @@ L_08ADC7BC: aot_gpr_4 = (aot_gpr_4 + static_cast(13104)); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC7D8: @@ -2246,8 +2595,8 @@ L_08ADC7D8: aot_gpr_4 = (aot_gpr_4 + static_cast(13104)); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC7F0: @@ -2300,8 +2649,21 @@ L_08ADC84C: L_08ADC854: aot_gpr_31 = (0x08ADC85Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 163u, 0x08ADC85Cu, 0x089D3458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 597u, 0x089D3458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC85Cu) goto L_08ADC85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC85C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ADC868u); @@ -2327,8 +2689,8 @@ L_08ADC874: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC88C: @@ -2373,8 +2735,8 @@ L_08ADC8C0: goto L_08ADC8CC; L_08ADC8CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC8D4: @@ -2447,8 +2809,21 @@ L_08ADC95C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ADC970u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 181u, 0x08ADC970u, 0x08AE0010u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 3u, 0x08AE0010u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC970u) goto L_08ADC970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC970: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -2464,8 +2839,8 @@ L_08ADC980: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC994: @@ -2485,8 +2860,21 @@ L_08ADC994: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08ADC9D8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 184u, 0x08ADC9D8u, 0x08AE0010u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 3u, 0x08AE0010u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADC9D8u) goto L_08ADC9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADC9D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -2502,8 +2890,8 @@ L_08ADC9E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADC9FC: @@ -2524,14 +2912,27 @@ L_08ADCA18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(100))); aot_gpr_31 = (0x08ADCA28u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 188u, 0x08ADCA28u, 0x08A88B10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 130u, 0x08A88B10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCA28u) goto L_08ADCA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCA28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADCA34: @@ -2552,14 +2953,27 @@ L_08ADCA50: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(100))); aot_gpr_31 = (0x08ADCA60u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 191u, 0x08ADCA60u, 0x08A88BC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 139u, 0x08A88BC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCA60u) goto L_08ADCA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCA60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADCA6C: @@ -2585,8 +2999,21 @@ L_08ADCA94: L_08ADCA98: aot_gpr_31 = (0x08ADCAA0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 196u, 0x08ADCAA0u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCAA0u) goto L_08ADCAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCAA0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2612,8 +3039,21 @@ L_08ADCABC: L_08ADCAC0: aot_gpr_31 = (0x08ADCAC8u); aot_gpr_5 = (ctx.gpr[17] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 201u, 0x08ADCAC8u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCAC8u) goto L_08ADCAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCAC8: aot_gpr_4 = (ctx.gpr[2] + static_cast(108)); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -2714,8 +3154,8 @@ L_08ADCB70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADCB84: @@ -2742,8 +3182,21 @@ L_08ADCBB8: L_08ADCBBC: aot_gpr_31 = (0x08ADCBC4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 219u, 0x08ADCBC4u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCBC4u) goto L_08ADCBC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCBC4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2769,8 +3222,21 @@ L_08ADCBE0: L_08ADCBE4: aot_gpr_31 = (0x08ADCBECu); aot_gpr_5 = (ctx.gpr[18] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 224u, 0x08ADCBECu, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCBECu) goto L_08ADCBEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCBEC: ctx.gpr[18] = (ctx.gpr[2] + static_cast(108)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); @@ -2823,8 +3289,21 @@ L_08ADCC50: L_08ADCC5C: aot_gpr_31 = (0x08ADCC64u); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 230u, 0x08ADCC64u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCC64u) goto L_08ADCC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCC64: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -2876,8 +3355,8 @@ L_08ADCCA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADCCC4: @@ -2904,8 +3383,21 @@ L_08ADCD08: L_08ADCD0C: aot_gpr_31 = (0x08ADCD14u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 241u, 0x08ADCD14u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCD14u) goto L_08ADCD14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCD14: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2931,8 +3423,21 @@ L_08ADCD30: L_08ADCD34: aot_gpr_31 = (0x08ADCD3Cu); aot_gpr_5 = (ctx.gpr[17] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 246u, 0x08ADCD3Cu, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCD3Cu) goto L_08ADCD3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCD3C: ctx.gpr[17] = (ctx.gpr[2] + static_cast(108)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), 0u); @@ -3029,8 +3534,21 @@ L_08ADCDFC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08ADCE0Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 256u, 0x08ADCE0Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCE0Cu) goto L_08ADCE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCE0C: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(28))); @@ -3059,8 +3577,21 @@ L_08ADCE2C: L_08ADCE3C: aot_gpr_31 = (0x08ADCE44u); ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 260u, 0x08ADCE44u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCE44u) goto L_08ADCE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCE44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -3098,8 +3629,8 @@ L_08ADCE74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADCEA0: @@ -3113,8 +3644,8 @@ L_08ADCEB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADCEC0: @@ -3152,8 +3683,21 @@ L_08ADCF14: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x08ADCF28u); ctx.gpr[19] = (aot_gpr_16 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 269u, 0x08ADCF28u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCF28u) goto L_08ADCF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCF28: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -3188,8 +3732,21 @@ L_08ADCF48: } L_08ADCF50: aot_gpr_31 = (0x08ADCF58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 274u, 0x08ADCF58u, 0x0888F890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 542u, 0x0888F890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADCF58u) goto L_08ADCF58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADCF58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3266,8 +3823,8 @@ L_08ADCFDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADCFF8: @@ -3291,8 +3848,21 @@ L_08ADD030: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x08ADD044u); ctx.gpr[21] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 284u, 0x08ADD044u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADD044u) goto L_08ADD044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADD044: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -3343,8 +3913,21 @@ L_08ADD070: } L_08ADD090: aot_gpr_31 = (0x08ADD098u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 291u, 0x08ADD098u, 0x0888F890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 542u, 0x0888F890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADD098u) goto L_08ADD098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADD098: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3478,8 +4061,8 @@ L_08ADD188: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD1AC: @@ -3503,8 +4086,21 @@ L_08ADD1D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); aot_gpr_31 = (0x08ADD1E4u); aot_gpr_5 = (ctx.gpr[17] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 308u, 0x08ADD1E4u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADD1E4u) goto L_08ADD1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADD1E4: ctx.gpr[17] = (ctx.gpr[2] + static_cast(108)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); @@ -3548,8 +4144,21 @@ L_08ADD23C: L_08ADD244: aot_gpr_31 = (0x08ADD24Cu); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 313u, 0x08ADD24Cu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADD24Cu) goto L_08ADD24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADD24C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -3601,8 +4210,8 @@ L_08ADD290: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD2A8: @@ -3759,8 +4368,8 @@ L_08ADD3CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD3DC: @@ -3820,14 +4429,14 @@ L_08ADD450: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD460: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD468: @@ -3858,15 +4467,15 @@ L_08ADD488: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD4B4: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5472))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD4BC: @@ -4076,50 +4685,50 @@ L_08ADD674: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD684: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(64))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD68C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(68))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD694: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(64), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD69C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(68), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD6A4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(80), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD6AC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD6B4: @@ -4183,8 +4792,8 @@ L_08ADD710: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD720: @@ -4213,16 +4822,16 @@ L_08ADD75C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD768: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD774: @@ -4247,22 +4856,22 @@ L_08ADD78C: goto L_08ADD790; L_08ADD790: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD798: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(8), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD7A0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD7A8: @@ -4286,16 +4895,29 @@ L_08ADD7CC: L_08ADD7D0: aot_gpr_31 = (0x08ADD7D8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 406u, 0x08ADD7D8u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADD7D8u) goto L_08ADD7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADD7D8: ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(24))); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD7EC: @@ -4319,8 +4941,21 @@ L_08ADD810: L_08ADD814: aot_gpr_31 = (0x08ADD81Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 411u, 0x08ADD81Cu, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADD81Cu) goto L_08ADD81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADD81C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(24), static_cast(aot_gpr_4)); @@ -4328,8 +4963,8 @@ L_08ADD81C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD834: @@ -4341,8 +4976,8 @@ L_08ADD834: aot_gpr_5 = (aot_gpr_6 | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(277), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADD854: @@ -4413,8 +5048,21 @@ L_08ADD8CC: L_08ADD8D4: aot_gpr_31 = (0x08ADD8DCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 423u, 0x08ADD8DCu, 0x08A5306Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 559u, 0x08A5306Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADD8DCu) goto L_08ADD8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADD8DC: ctx.gpr[21] = (ctx.gpr[2] + static_cast(108)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); @@ -4531,8 +5179,21 @@ L_08ADD9C0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_31 = (0x08ADD9CCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 436u, 0x08ADD9CCu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADD9CCu) goto L_08ADD9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADD9CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(0))); @@ -4564,8 +5225,8 @@ L_08ADD9F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADDA1C: @@ -4658,8 +5319,21 @@ L_08ADDAE4: L_08ADDAE8: aot_gpr_31 = (0x08ADDAF0u); aot_gpr_5 = (ctx.gpr[18] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 453u, 0x08ADDAF0u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDAF0u) goto L_08ADDAF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDAF0: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x08ADDAFCu); @@ -4688,8 +5362,21 @@ L_08ADDB10: L_08ADDB18: aot_gpr_31 = (0x08ADDB20u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 458u, 0x08ADDB20u, 0x08A532B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 594u, 0x08A532B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDB20u) goto L_08ADDB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDB20: ctx.gpr[18] = (0u | 0u); ctx.gpr[19] = (0u | 0u); @@ -4820,8 +5507,21 @@ L_08ADDC10: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ADDC38u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 474u, 0x08ADDC38u, 0x08A54A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 158u, 0x08A54A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDC38u) goto L_08ADDC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDC38: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(276))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4895,8 +5595,21 @@ L_08ADDCB4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ADDCC0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 486u, 0x08ADDCC0u, 0x088851D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 260u, 0x088851D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDCC0u) goto L_08ADDCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDCC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (ctx.gpr[28] + static_cast(5824)); @@ -4919,14 +5632,40 @@ L_08ADDCDC: aot_gpr_4 = (aot_gpr_16 + static_cast(116)); aot_gpr_31 = (0x08ADDCF0u); aot_gpr_5 = (ctx.gpr[17] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 489u, 0x08ADDCF0u, 0x08934048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 4u, 0x08934048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDCF0u) goto L_08ADDCF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDCF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); aot_gpr_31 = (0x08ADDCFCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 490u, 0x08ADDCFCu, 0x08A8A094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 434u, 0x08A8A094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDCFCu) goto L_08ADDCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDCFC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(11), static_cast(0u)); goto L_08ADDD00; @@ -4944,8 +5683,8 @@ L_08ADDD00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADDD28: @@ -4965,8 +5704,21 @@ L_08ADDD50: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08ADDD5Cu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 494u, 0x08ADDD5Cu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDD5Cu) goto L_08ADDD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDD5C: ctx.gpr[18] = (ctx.gpr[2] | 0u); if (ctx.gpr[18] != 0u) { @@ -4995,8 +5747,21 @@ L_08ADDD78: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ADDD88u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 498u, 0x08ADDD88u, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDD88u) goto L_08ADDD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDD88: ctx.gpr[19] = (ctx.gpr[18] | 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(224), ctx.gpr[19]); @@ -5038,8 +5803,21 @@ L_08ADDD98: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08ADDDD8u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 501u, 0x08ADDDD8u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDDD8u) goto L_08ADDDD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDDD8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5049,18 +5827,57 @@ L_08ADDDD8: } aot_gpr_31 = (0x08ADDDECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 502u, 0x08ADDDECu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDDECu) goto L_08ADDDEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDDEC: aot_gpr_31 = (0x08ADDDF4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 503u, 0x08ADDDF4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDDF4u) goto L_08ADDDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDDF4: aot_gpr_31 = (0x08ADDDFCu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 504u, 0x08ADDDFCu, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDDFCu) goto L_08ADDDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDDFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(224))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -5111,8 +5928,21 @@ L_08ADDDFC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(76), aot_gpr_5); aot_gpr_31 = (0x08ADDEC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 505u, 0x08ADDEC0u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDEC0u) goto L_08ADDEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDEC0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -5135,8 +5965,8 @@ L_08ADDECC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADDEE8: @@ -5154,8 +5984,21 @@ L_08ADDEE8: L_08ADDF04: aot_gpr_31 = (0x08ADDF0Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 510u, 0x08ADDF0Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDF0Cu) goto L_08ADDF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDF0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); if (aot_gpr_4 != 0u) { @@ -5198,8 +6041,8 @@ L_08ADDF48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADDF58: @@ -5220,8 +6063,8 @@ L_08ADDF58: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADDF74: @@ -5242,8 +6085,21 @@ L_08ADDF90: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08ADDFA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 519u, 0x08ADDFA0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDFA0u) goto L_08ADDFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDFA0: aot_gpr_31 = (0x08ADDFA8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -5253,8 +6109,21 @@ L_08ADDFA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08ADDFB4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 521u, 0x08ADDFB4u, 0x0882E99Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 608u, 0x0882E99Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDFB4u) goto L_08ADDFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDFB4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-7080), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); @@ -5269,8 +6138,21 @@ L_08ADDFC4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08ADDFD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 523u, 0x08ADDFD0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDFD0u) goto L_08ADDFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDFD0: aot_gpr_31 = (0x08ADDFD8u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -5279,8 +6161,21 @@ L_08ADDFD0: L_08ADDFD8: aot_gpr_31 = (0x08ADDFE0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 525u, 0x08ADDFE0u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADDFE0u) goto L_08ADDFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADDFE0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5301,8 +6196,21 @@ L_08ADDFF4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08ADE000u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 528u, 0x08ADE000u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE000u) goto L_08ADE000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE000: aot_gpr_31 = (0x08ADE008u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -5311,8 +6219,21 @@ L_08ADE000: L_08ADE008: aot_gpr_31 = (0x08ADE010u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 530u, 0x08ADE010u, 0x0882DD8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 378u, 0x0882DD8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE010u) goto L_08ADE010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE010: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5327,8 +6248,21 @@ L_08ADE01C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08ADE02Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 532u, 0x08ADE02Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE02Cu) goto L_08ADE02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE02C: aot_gpr_31 = (0x08ADE034u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -5340,8 +6274,21 @@ L_08ADE034: L_08ADE038: aot_gpr_31 = (0x08ADE040u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 535u, 0x08ADE040u, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE040u) goto L_08ADE040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE040: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5356,8 +6303,21 @@ L_08ADE04C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08ADE05Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 537u, 0x08ADE05Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE05Cu) goto L_08ADE05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE05C: aot_gpr_31 = (0x08ADE064u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -5369,8 +6329,21 @@ L_08ADE064: L_08ADE068: aot_gpr_31 = (0x08ADE070u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 540u, 0x08ADE070u, 0x0882F210u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 756u, 0x0882F210u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE070u) goto L_08ADE070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE070: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5385,8 +6358,21 @@ L_08ADE07C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08ADE08Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 542u, 0x08ADE08Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE08Cu) goto L_08ADE08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE08C: aot_gpr_31 = (0x08ADE094u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -5398,8 +6384,21 @@ L_08ADE094: L_08ADE098: aot_gpr_31 = (0x08ADE0A0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 545u, 0x08ADE0A0u, 0x0882E9ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 610u, 0x0882E9ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE0A0u) goto L_08ADE0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE0A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5414,8 +6413,21 @@ L_08ADE0AC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08ADE0BCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 547u, 0x08ADE0BCu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE0BCu) goto L_08ADE0BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE0BC: aot_gpr_31 = (0x08ADE0C4u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -5427,8 +6439,21 @@ L_08ADE0C4: L_08ADE0C8: aot_gpr_31 = (0x08ADE0D0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 550u, 0x08ADE0D0u, 0x0882F6E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 832u, 0x0882F6E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE0D0u) goto L_08ADE0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE0D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5442,8 +6467,21 @@ L_08ADE0DC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08ADE0E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 552u, 0x08ADE0E8u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE0E8u) goto L_08ADE0E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE0E8: aot_gpr_31 = (0x08ADE0F0u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -5452,8 +6490,21 @@ L_08ADE0E8: L_08ADE0F0: aot_gpr_31 = (0x08ADE0F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 554u, 0x08ADE0F8u, 0x0882E98Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 606u, 0x0882E98Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE0F8u) goto L_08ADE0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE0F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); if (aot_gpr_4 != 0u) { @@ -5514,15 +6565,28 @@ L_08ADE14C: L_08ADE154: aot_gpr_31 = (0x08ADE15Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 564u, 0x08ADE15Cu, 0x088739E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 838u, 0x088739E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE15Cu) goto L_08ADE15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE15C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADE16C: @@ -5537,8 +6601,21 @@ L_08ADE16C: aot_gpr_4 = (aot_gpr_16 + static_cast(116)); aot_gpr_31 = (0x08ADE1ACu); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 566u, 0x08ADE1ACu, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE1ACu) goto L_08ADE1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE1AC: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); @@ -5588,8 +6665,21 @@ L_08ADE20C: L_08ADE210: aot_gpr_31 = (0x08ADE218u); aot_gpr_5 = (ctx.gpr[19] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 574u, 0x08ADE218u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE218u) goto L_08ADE218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE218: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(0))); @@ -5637,8 +6727,21 @@ L_08ADE268: L_08ADE26C: aot_gpr_31 = (0x08ADE274u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 581u, 0x08ADE274u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE274u) goto L_08ADE274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE274: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -5650,8 +6753,21 @@ L_08ADE274: L_08ADE27C: aot_gpr_31 = (0x08ADE284u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 583u, 0x08ADE284u, 0x088BAEF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 613u, 0x088BAEF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE284u) goto L_08ADE284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE284: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5664,8 +6780,21 @@ L_08ADE28C: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(10), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08ADE29Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 585u, 0x08ADE29Cu, 0x08A52B08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 476u, 0x08A52B08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE29Cu) goto L_08ADE29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE29C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(20)))))); @@ -5699,21 +6828,60 @@ L_08ADE2DC: L_08ADE2E0: aot_gpr_31 = (0x08ADE2E8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 590u, 0x08ADE2E8u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE2E8u) goto L_08ADE2E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE2E8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08ADE2F4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 591u, 0x08ADE2F4u, 0x088BAEF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 613u, 0x088BAEF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE2F4u) goto L_08ADE2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE2F4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(0)))))); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(14), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08ADE304u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 592u, 0x08ADE304u, 0x08A52B08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 476u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 476u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 476u, 0x08A52B08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE304u) goto L_08ADE304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE304: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(24)))))); @@ -5743,8 +6911,21 @@ L_08ADE330: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); aot_gpr_31 = (0x08ADE340u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 597u, 0x08ADE340u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE340u) goto L_08ADE340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE340: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(233), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); @@ -5838,8 +7019,8 @@ L_08ADE3E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADE404: @@ -5912,16 +7093,42 @@ L_08ADE494: L_08ADE498: aot_gpr_31 = (0x08ADE4A0u); aot_gpr_5 = (ctx.gpr[20] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 621u, 0x08ADE4A0u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE4A0u) goto L_08ADE4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE4A0: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(16), static_cast(0u)); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(18), static_cast(0u)); aot_gpr_31 = (0x08ADE4B4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 622u, 0x08ADE4B4u, 0x08A52A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 459u, 0x08A52A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE4B4u) goto L_08ADE4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE4B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5971,8 +7178,21 @@ L_08ADE4E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); aot_gpr_31 = (0x08ADE534u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 626u, 0x08ADE534u, 0x08A88CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 155u, 0x08A88CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE534u) goto L_08ADE534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE534: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(228), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(228)))))); @@ -6118,8 +7338,21 @@ L_08ADE6E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); aot_gpr_31 = (0x08ADE6F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 638u, 0x08ADE6F4u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE6F4u) goto L_08ADE6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE6F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), ctx.gpr[2]); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6177,8 +7410,21 @@ L_08ADE768: aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(78), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08ADE798u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 642u, 0x08ADE798u, 0x08A88CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 155u, 0x08A88CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE798u) goto L_08ADE798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE798: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(232), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(232)))))); @@ -6187,8 +7433,21 @@ L_08ADE798: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(78)))))); aot_gpr_31 = (0x08ADE7B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 643u, 0x08ADE7B4u, 0x08A9AF60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 366u, 0x08A9AF60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE7B4u) goto L_08ADE7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE7B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(108))); aot_gpr_5 = (aot_gpr_4 + static_cast(72)); @@ -6312,8 +7571,8 @@ L_08ADE8FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADE91C: @@ -6338,8 +7597,21 @@ L_08ADE944: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_31 = (0x08ADE954u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 653u, 0x08ADE954u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADE954u) goto L_08ADE954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADE954: aot_gpr_4 = (ctx.gpr[2] + static_cast(108)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); @@ -6560,8 +7832,8 @@ L_08ADEB30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADEB44: @@ -6676,8 +7948,21 @@ L_08ADEC04: L_08ADEC30: aot_gpr_31 = (0x08ADEC38u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 694u, 0x08ADEC38u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADEC38u) goto L_08ADEC38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADEC38: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -6779,8 +8064,21 @@ L_08ADED18: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); aot_gpr_31 = (0x08ADED28u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 704u, 0x08ADED28u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADED28u) goto L_08ADED28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADED28: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); @@ -6789,8 +8087,21 @@ L_08ADED28: aot_gpr_6 = (ctx.gpr[7] + static_cast(8)); aot_gpr_31 = (0x08ADED44u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 705u, 0x08ADED44u, 0x08B6AC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 484u, 0x08B6AC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADED44u) goto L_08ADED44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADED44: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 == 0u) { @@ -6832,8 +8143,8 @@ L_08ADED80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADEDA4: @@ -6859,8 +8170,21 @@ L_08ADEDD0: L_08ADEDD4: aot_gpr_31 = (0x08ADEDDCu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 714u, 0x08ADEDDCu, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADEDDCu) goto L_08ADEDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADEDDC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6887,8 +8211,21 @@ L_08ADEE00: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08ADEE0Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 719u, 0x08ADEE0Cu, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADEE0Cu) goto L_08ADEE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADEE0C: ctx.gpr[18] = (ctx.gpr[2] + static_cast(108)); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -6966,8 +8303,21 @@ L_08ADEE88: aot_gpr_6 = (ctx.gpr[7] + static_cast(8)); aot_gpr_31 = (0x08ADEEACu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 730u, 0x08ADEEACu, 0x08B6AC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 484u, 0x08B6AC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADEEACu) goto L_08ADEEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADEEAC: aot_gpr_6 = (ctx.gpr[2] | 0u); if (aot_gpr_6 == 0u) { @@ -7009,8 +8359,8 @@ L_08ADEEE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADEF00: @@ -7149,8 +8499,8 @@ L_08ADF014: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADF02C: @@ -7173,8 +8523,21 @@ L_08ADF058: L_08ADF060: aot_gpr_31 = (0x08ADF068u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 756u, 0x08ADF068u, 0x08A5306Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 559u, 0x08A5306Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF068u) goto L_08ADF068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF068: ctx.gpr[19] = (ctx.gpr[2] + static_cast(108)); ctx.gpr[17] = (0u | 1u); @@ -7225,8 +8588,21 @@ L_08ADF0B8: L_08ADF0CC: aot_gpr_31 = (0x08ADF0D4u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 762u, 0x08ADF0D4u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF0D4u) goto L_08ADF0D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF0D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); @@ -7264,8 +8640,8 @@ L_08ADF100: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADF130: @@ -7287,8 +8663,21 @@ L_08ADF15C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08ADF170u); ctx.gpr[20] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 767u, 0x08ADF170u, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF170u) goto L_08ADF170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF170: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -7326,8 +8715,21 @@ L_08ADF194: } L_08ADF19C: aot_gpr_31 = (0x08ADF1A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 773u, 0x08ADF1A4u, 0x0888F890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 542u, 0x0888F890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF1A4u) goto L_08ADF1A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF1A4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7371,8 +8773,8 @@ L_08ADF1F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADF210: @@ -7399,8 +8801,21 @@ L_08ADF24C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); aot_gpr_31 = (0x08ADF258u); aot_gpr_5 = (ctx.gpr[18] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 780u, 0x08ADF258u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF258u) goto L_08ADF258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF258: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(233))); @@ -7412,8 +8827,21 @@ L_08ADF258: } L_08ADF268: aot_gpr_31 = (0x08ADF270u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 782u, 0x08ADF270u, 0x08A52A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 459u, 0x08A52A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF270u) goto L_08ADF270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF270: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7549,8 +8977,8 @@ L_08ADF354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADF370: @@ -7592,8 +9020,21 @@ L_08ADF3DC: goto L_08ADF3E0; L_08ADF3E0: aot_gpr_31 = (0x08ADF3E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 804u, 0x08ADF3E8u, 0x08A5306Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 559u, 0x08A5306Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF3E8u) goto L_08ADF3E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF3E8: aot_gpr_4 = (ctx.gpr[2] + static_cast(108)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -7758,8 +9199,21 @@ L_08ADF52C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08ADF538u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 825u, 0x08ADF538u, 0x08A53124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 573u, 0x08A53124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF538u) goto L_08ADF538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF538: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7793,8 +9247,21 @@ L_08ADF564: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08ADF574u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 831u, 0x08ADF574u, 0x08A52FF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 553u, 0x08A52FF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF574u) goto L_08ADF574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF574: ctx.gpr[20] = (ctx.gpr[2] + static_cast(108)); ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); @@ -8008,8 +9475,21 @@ L_08ADF748: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08ADF75Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 855u, 0x08ADF75Cu, 0x08B112B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 291u, 0x08B112B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF75Cu) goto L_08ADF75C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF75C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8027,8 +9507,21 @@ L_08ADF770: goto L_08ADF774; L_08ADF774: aot_gpr_31 = (0x08ADF77Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 859u, 0x08ADF77Cu, 0x08A5306Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 559u, 0x08A5306Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF77Cu) goto L_08ADF77C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF77C: aot_gpr_4 = (ctx.gpr[2] + static_cast(108)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -8135,8 +9628,8 @@ L_08ADF848: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADF870: @@ -8274,8 +9767,8 @@ L_08ADF998: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADF9A4: @@ -8283,99 +9776,307 @@ L_08ADF9A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08ADF9B4u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(54))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 888u, 0x08ADF9B4u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9B4u) goto L_08ADF9B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9B4: aot_gpr_31 = (0x08ADF9BCu); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 889u, 0x08ADF9BCu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9BCu) goto L_08ADF9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9BC: aot_gpr_31 = (0x08ADF9C4u); aot_gpr_4 = (0u | 199u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 890u, 0x08ADF9C4u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9C4u) goto L_08ADF9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9C4: aot_gpr_31 = (0x08ADF9CCu); aot_gpr_4 = (0u | 254u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 891u, 0x08ADF9CCu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9CCu) goto L_08ADF9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9CC: aot_gpr_31 = (0x08ADF9D4u); aot_gpr_4 = (0u | 210u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 892u, 0x08ADF9D4u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9D4u) goto L_08ADF9D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9D4: aot_gpr_31 = (0x08ADF9DCu); aot_gpr_4 = (0u | 228u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 893u, 0x08ADF9DCu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9DCu) goto L_08ADF9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9DC: aot_gpr_31 = (0x08ADF9E4u); aot_gpr_4 = (0u | 246u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 894u, 0x08ADF9E4u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9E4u) goto L_08ADF9E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_31 = (0x08ADF9F0u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(294))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 895u, 0x08ADF9F0u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9F0u) goto L_08ADF9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_31 = (0x08ADF9FCu); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(296))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 896u, 0x08ADF9FCu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADF9FCu) goto L_08ADF9FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADF9FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_31 = (0x08ADFA08u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(298))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 897u, 0x08ADFA08u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFA08u) goto L_08ADFA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFA08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADFA14: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08ADFA24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 899u, 0x08ADFA24u, 0x08AD312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 528u, 0x08AD312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFA24u) goto L_08ADFA24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFA24: aot_gpr_31 = (0x08ADFA2Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 900u, 0x08ADFA2Cu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFA2Cu) goto L_08ADFA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFA2C: aot_gpr_31 = (0x08ADFA34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 901u, 0x08ADFA34u, 0x08AD317Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 532u, 0x08AD317Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFA34u) goto L_08ADFA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFA34: aot_gpr_31 = (0x08ADFA3Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 902u, 0x08ADFA3Cu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFA3Cu) goto L_08ADFA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFA3C: aot_gpr_31 = (0x08ADFA44u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 903u, 0x08ADFA44u, 0x08AD31CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 536u, 0x08AD31CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFA44u) goto L_08ADFA44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFA44: aot_gpr_31 = (0x08ADFA4Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 904u, 0x08ADFA4Cu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFA4Cu) goto L_08ADFA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFA4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADFA58: @@ -8428,8 +10129,21 @@ L_08ADFABC: L_08ADFAC0: aot_gpr_31 = (0x08ADFAC8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 914u, 0x08ADFAC8u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFAC8u) goto L_08ADFAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFAC8: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(4), ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); @@ -8449,8 +10163,21 @@ L_08ADFAE0: L_08ADFAE4: aot_gpr_31 = (0x08ADFAECu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 918u, 0x08ADFAECu, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFAECu) goto L_08ADFAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFAEC: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), ctx.gpr[18]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); @@ -8470,8 +10197,21 @@ L_08ADFB04: L_08ADFB08: aot_gpr_31 = (0x08ADFB10u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 922u, 0x08ADFB10u, 0x089EC170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 13u, 0x089EC170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB10u) goto L_08ADFB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB10: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(16), 0u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -8498,13 +10238,39 @@ L_08ADFB30: goto L_08ADFB34; L_08ADFB34: aot_gpr_31 = (0x08ADFB3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 927u, 0x08ADFB3Cu, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB3Cu) goto L_08ADFB3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB3C: aot_gpr_31 = (0x08ADFB44u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 928u, 0x08ADFB44u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB44u) goto L_08ADFB44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8522,42 +10288,146 @@ L_08ADFB58: goto L_08ADFB5C; L_08ADFB5C: aot_gpr_31 = (0x08ADFB64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 932u, 0x08ADFB64u, 0x089EC260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 27u, 0x089EC260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB64u) goto L_08ADFB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB64: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08ADFB74u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 933u, 0x08ADFB74u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB74u) goto L_08ADFB74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB74: aot_gpr_31 = (0x08ADFB7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 934u, 0x08ADFB7Cu, 0x08AD312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 528u, 0x08AD312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB7Cu) goto L_08ADFB7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB7C: aot_gpr_31 = (0x08ADFB84u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 935u, 0x08ADFB84u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB84u) goto L_08ADFB84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB84: aot_gpr_31 = (0x08ADFB8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 936u, 0x08ADFB8Cu, 0x08AD317Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 532u, 0x08AD317Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB8Cu) goto L_08ADFB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB8C: aot_gpr_31 = (0x08ADFB94u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 937u, 0x08ADFB94u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB94u) goto L_08ADFB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB94: aot_gpr_31 = (0x08ADFB9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 938u, 0x08ADFB9Cu, 0x08AD31CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 536u, 0x08AD31CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFB9Cu) goto L_08ADFB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFB9C: aot_gpr_31 = (0x08ADFBA4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 939u, 0x08ADFBA4u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFBA4u) goto L_08ADFBA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFBA4: aot_gpr_31 = (0x08ADFBACu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8577,8 +10447,8 @@ L_08ADFBBC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(16480))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADFBD4: @@ -8620,8 +10490,21 @@ L_08ADFC00: L_08ADFC08: aot_gpr_31 = (0x08ADFC10u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 949u, 0x08ADFC10u, 0x08AE1590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 423u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 423u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 423u, 0x08AE1590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFC10u) goto L_08ADFC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFC10: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8671,8 +10554,21 @@ L_08ADFC50: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08ADFC60u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 957u, 0x08ADFC60u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFC60u) goto L_08ADFC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFC60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8685,8 +10581,21 @@ L_08ADFC68: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08ADFC78u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 959u, 0x08ADFC78u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFC78u) goto L_08ADFC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFC78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8697,8 +10606,21 @@ L_08ADFC78: L_08ADFC80: aot_gpr_31 = (0x08ADFC88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 961u, 0x08ADFC88u, 0x08AE11B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 335u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 335u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 335u, 0x08AE11B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFC88u) goto L_08ADFC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFC88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8709,8 +10631,21 @@ L_08ADFC88: L_08ADFC90: aot_gpr_31 = (0x08ADFC98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 963u, 0x08ADFC98u, 0x08AE0D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 241u, 0x08AE0D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFC98u) goto L_08ADFC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFC98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8723,8 +10658,21 @@ L_08ADFCA0: aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x08ADFCB0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 965u, 0x08ADFCB0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFCB0u) goto L_08ADFCB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFCB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8737,22 +10685,61 @@ L_08ADFCB8: aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x08ADFCC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 967u, 0x08ADFCC8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFCC8u) goto L_08ADFCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFCC8: aot_gpr_4 = (0u | 254u); aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x08ADFCD8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 968u, 0x08ADFCD8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFCD8u) goto L_08ADFCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFCD8: aot_gpr_4 = (0u | 175u); aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x08ADFCE8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 969u, 0x08ADFCE8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFCE8u) goto L_08ADFCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFCE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8766,8 +10753,21 @@ L_08ADFCF0: aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x08ADFD04u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 971u, 0x08ADFD04u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFD04u) goto L_08ADFD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFD04: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8781,8 +10781,21 @@ L_08ADFD0C: aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x08ADFD20u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 973u, 0x08ADFD20u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFD20u) goto L_08ADFD20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFD20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8795,12 +10808,38 @@ L_08ADFD28: aot_gpr_5 = (0u | 7u); aot_gpr_31 = (0x08ADFD38u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 975u, 0x08ADFD38u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFD38u) goto L_08ADFD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFD38: aot_gpr_31 = (0x08ADFD40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 976u, 0x08ADFD40u, 0x08AD38F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 645u, 0x08AD38F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFD40u) goto L_08ADFD40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFD40: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); @@ -8825,8 +10864,21 @@ L_08ADFD68: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08ADFD78u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 980u, 0x08ADFD78u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFD78u) goto L_08ADFD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFD78: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 8 ? 1u : 0u); @@ -8839,13 +10891,39 @@ L_08ADFD78: } L_08ADFD88: aot_gpr_31 = (0x08ADFD90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 982u, 0x08ADFD90u, 0x08A30794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 69u, 0x08A30794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFD90u) goto L_08ADFD90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFD90: aot_gpr_31 = (0x08ADFD98u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 983u, 0x08ADFD98u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFD98u) goto L_08ADFD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFD98: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8857,8 +10935,8 @@ L_08ADFD98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADFDB4: @@ -8879,20 +10957,72 @@ L_08ADFDDC: L_08ADFDE4: aot_gpr_31 = (0x08ADFDECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 987u, 0x08ADFDECu, 0x089EC3FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 47u, 0x089EC3FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFDECu) goto L_08ADFDEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFDEC: aot_gpr_31 = (0x08ADFDF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 988u, 0x08ADFDF4u, 0x08AD3BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 696u, 0x08AD3BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFDF4u) goto L_08ADFDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFDF4: aot_gpr_31 = (0x08ADFDFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 989u, 0x08ADFDFCu, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFDFCu) goto L_08ADFDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFDFC: aot_gpr_31 = (0x08ADFE04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 990u, 0x08ADFE04u, 0x08AD38A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 639u, 0x08AD38A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE04u) goto L_08ADFE04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE04: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8902,8 +11032,21 @@ L_08ADFE04: } L_08ADFE0C: aot_gpr_31 = (0x08ADFE14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 992u, 0x08ADFE14u, 0x08AD38DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 643u, 0x08AD38DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE14u) goto L_08ADFE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE14: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8921,8 +11064,21 @@ L_08ADFE1C: L_08ADFE30: aot_gpr_31 = (0x08ADFE38u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 995u, 0x08ADFE38u, 0x08AD3538u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 583u, 0x08AD3538u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE38u) goto L_08ADFE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE38: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8933,8 +11089,21 @@ L_08ADFE38: L_08ADFE40: aot_gpr_31 = (0x08ADFE48u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 997u, 0x08ADFE48u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE48u) goto L_08ADFE48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8945,8 +11114,21 @@ L_08ADFE48: L_08ADFE50: aot_gpr_31 = (0x08ADFE58u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 999u, 0x08ADFE58u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE58u) goto L_08ADFE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE58: aot_gpr_4 = (ctx.gpr[2] & 64u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8958,8 +11140,21 @@ L_08ADFE58: L_08ADFE64: aot_gpr_31 = (0x08ADFE6Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1001u, 0x08ADFE6Cu, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE6Cu) goto L_08ADFE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE6C: aot_gpr_4 = (ctx.gpr[2] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8971,13 +11166,39 @@ L_08ADFE6C: L_08ADFE78: aot_gpr_31 = (0x08ADFE80u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1003u, 0x08ADFE80u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE80u) goto L_08ADFE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE80: aot_gpr_31 = (0x08ADFE88u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1004u, 0x08ADFE88u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE88u) goto L_08ADFE88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE88: aot_gpr_4 = (ctx.gpr[2] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8989,13 +11210,39 @@ L_08ADFE88: L_08ADFE94: aot_gpr_31 = (0x08ADFE9Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1006u, 0x08ADFE9Cu, 0x08AD37C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 625u, 0x08AD37C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFE9Cu) goto L_08ADFE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFE9C: aot_gpr_31 = (0x08ADFEA4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1007u, 0x08ADFEA4u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFEA4u) goto L_08ADFEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFEA4: aot_gpr_4 = (ctx.gpr[2] & 128u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9007,19 +11254,58 @@ L_08ADFEA4: L_08ADFEB0: aot_gpr_31 = (0x08ADFEB8u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1009u, 0x08ADFEB8u, 0x08AD37E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 627u, 0x08AD37E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFEB8u) goto L_08ADFEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFEB8: aot_gpr_31 = (0x08ADFEC0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1010u, 0x08ADFEC0u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFEC0u) goto L_08ADFEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFEC0: aot_gpr_5 = (ctx.gpr[2] & ctx.gpr[19]); aot_gpr_31 = (0x08ADFECCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1011u, 0x08ADFECCu, 0x08AD372Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 616u, 0x08AD372Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFECCu) goto L_08ADFECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFECC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_4 = (static_cast(ctx.gpr[20]) < static_cast(aot_gpr_4) ? 1u : 0u); @@ -9046,8 +11332,21 @@ L_08ADFEE8: } L_08ADFEF4: aot_gpr_31 = (0x08ADFEFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1015u, 0x08ADFEFCu, 0x08AD38A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 639u, 0x08AD38A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFEFCu) goto L_08ADFEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFEFC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9085,8 +11384,21 @@ L_08ADFF20: } L_08ADFF2C: aot_gpr_31 = (0x08ADFF34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1021u, 0x08ADFF34u, 0x08AD38DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 643u, 0x08AD38DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF34u) goto L_08ADFF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF34: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9106,49 +11418,179 @@ L_08ADFF3C: } L_08ADFF4C: aot_gpr_31 = (0x08ADFF54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1024u, 0x08ADFF54u, 0x088099B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 327u, 0x088099B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF54u) goto L_08ADFF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF54: aot_gpr_31 = (0x08ADFF5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1025u, 0x08ADFF5Cu, 0x08AD3BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 696u, 0x08AD3BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF5Cu) goto L_08ADFF5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF5C: aot_gpr_31 = (0x08ADFF64u); aot_gpr_4 = (0u | 207u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1026u, 0x08ADFF64u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF64u) goto L_08ADFF64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF64: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08ADFF70u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1027u, 0x08ADFF70u, 0x08AD372Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 616u, 0x08AD372Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF70u) goto L_08ADFF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF70: aot_gpr_31 = (0x08ADFF78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1028u, 0x08ADFF78u, 0x08AD34BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 575u, 0x08AD34BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF78u) goto L_08ADFF78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF78: aot_gpr_31 = (0x08ADFF80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1029u, 0x08ADFF80u, 0x08AD3634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 600u, 0x08AD3634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF80u) goto L_08ADFF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF80: aot_gpr_31 = (0x08ADFF88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1030u, 0x08ADFF88u, 0x08AD3BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 696u, 0x08AD3BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF88u) goto L_08ADFF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF88: aot_gpr_31 = (0x08ADFF90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1031u, 0x08ADFF90u, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF90u) goto L_08ADFF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF90: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08ADFF9Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(31984)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1032u, 0x08ADFF9Cu, 0x08ABEE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 620u, 0x08ABEE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFF9Cu) goto L_08ADFF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFF9C: aot_gpr_31 = (0x08ADFFA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1033u, 0x08ADFFA4u, 0x0887F804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 746u, 0x0887F804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFFA4u) goto L_08ADFFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFFA4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4206), static_cast(0u)); { std::uint32_t aot_run_words[6]{}; @@ -9162,8 +11604,8 @@ L_08ADFFA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADFFC8: @@ -9173,14 +11615,27 @@ L_08ADFFC8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08ADFFE0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0182->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0182_entry, 1035u, 0x08ADFFE0u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08ADFFE0u) goto L_08ADFFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08ADFFE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08ADFFEC: diff --git a/profiles/vcs/generated/generated_unit_0183.cpp b/profiles/vcs/generated/generated_unit_0183.cpp index 417c49c..bf61da4 100644 --- a/profiles/vcs/generated/generated_unit_0183.cpp +++ b/profiles/vcs/generated/generated_unit_0183.cpp @@ -1114,6 +1114,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AE0000u; + if (local_delta_v813 >= 16364u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1134,8 +1158,8 @@ L_08AE0004: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE0010: @@ -1162,14 +1186,40 @@ L_08AE0040: aot_gpr_5 = (aot_gpr_5 + static_cast(16456)); aot_gpr_31 = (0x08AE0058u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 6u, 0x08AE0058u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0058u) goto L_08AE0058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0058: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE0064u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 7u, 0x08AE0064u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0064u) goto L_08AE0064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0064: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE0070u); @@ -1187,21 +1237,60 @@ L_08AE0078: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE0084u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 10u, 0x08AE0084u, 0x08B156A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 284u, 0x08B156A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0084u) goto L_08AE0084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0084: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(3))); aot_gpr_31 = (0x08AE0090u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 11u, 0x08AE0090u, 0x08B156A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 284u, 0x08B156A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0090u) goto L_08AE0090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0090: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AE00A0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 12u, 0x08AE00A0u, 0x089753F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 299u, 0x089753F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE00A0u) goto L_08AE00A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE00A0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1212,14 +1301,14 @@ L_08AE00A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE00B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE00C0: @@ -1252,19 +1341,58 @@ L_08AE0120: L_08AE0128: aot_gpr_31 = (0x08AE0130u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 17u, 0x08AE0130u, 0x08953F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 881u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 881u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 881u, 0x08953F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0130u) goto L_08AE0130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0130: aot_gpr_31 = (0x08AE0138u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 18u, 0x08AE0138u, 0x08ADFDB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 984u, 0x08ADFDB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0138u) goto L_08AE0138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0138: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08AE0144u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 19u, 0x08AE0144u, 0x08A39A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 391u, 0x08A39A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0144u) goto L_08AE0144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0144: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(136), aot_gpr_4); @@ -1303,8 +1431,21 @@ L_08AE01AC: goto L_08AE01B0; L_08AE01B0: aot_gpr_31 = (0x08AE01B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 23u, 0x08AE01B8u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE01B8u) goto L_08AE01B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE01B8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(0)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(2)))))); @@ -1328,8 +1469,21 @@ L_08AE01E4: goto L_08AE01E8; L_08AE01E8: aot_gpr_31 = (0x08AE01F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 27u, 0x08AE01F0u, 0x08A54F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 247u, 0x08A54F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE01F0u) goto L_08AE01F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE01F0: ctx.gpr[18] = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -1399,8 +1553,21 @@ L_08AE026C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AE0278u); aot_gpr_4 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 37u, 0x08AE0278u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0278u) goto L_08AE0278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0278: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1413,8 +1580,21 @@ L_08AE0278: L_08AE0284: aot_gpr_31 = (0x08AE028Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 39u, 0x08AE028Cu, 0x08804D84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 114u, 0x08804D84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE028Cu) goto L_08AE028C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE028C: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_08AE0290; @@ -1430,8 +1610,21 @@ L_08AE0298: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AE02A4u); aot_gpr_4 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 42u, 0x08AE02A4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE02A4u) goto L_08AE02A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE02A4: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1444,8 +1637,21 @@ L_08AE02A4: L_08AE02B0: aot_gpr_31 = (0x08AE02B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 44u, 0x08AE02B8u, 0x08804D84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 114u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 114u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 114u, 0x08804D84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE02B8u) goto L_08AE02B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE02B8: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_08AE02BC; @@ -1458,8 +1664,21 @@ L_08AE02C0: aot_gpr_5 = (1u << 16u); aot_gpr_31 = (0x08AE02D4u); aot_gpr_5 = (aot_gpr_5 + static_cast(2440)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 47u, 0x08AE02D4u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE02D4u) goto L_08AE02D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE02D4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(100), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -1474,8 +1693,21 @@ L_08AE02E4: aot_gpr_5 = (aot_gpr_5 + static_cast(17221)); aot_gpr_31 = (0x08AE02F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 49u, 0x08AE02F0u, 0x08A87AC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 580u, 0x08A87AC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE02F0u) goto L_08AE02F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE02F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); goto L_08AE02F4; @@ -1483,8 +1715,21 @@ L_08AE02F4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AE0300u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 51u, 0x08AE0300u, 0x08A87E54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 634u, 0x08A87E54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0300u) goto L_08AE0300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0300: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1505,15 +1750,41 @@ L_08AE0314: L_08AE031C: aot_gpr_31 = (0x08AE0324u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 55u, 0x08AE0324u, 0x08A52C54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 496u, 0x08A52C54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0324u) goto L_08AE0324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0324: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(4156))); aot_gpr_31 = (0x08AE0334u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 56u, 0x08AE0334u, 0x08A88108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 11u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 11u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 11u, 0x08A88108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0334u) goto L_08AE0334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0334: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-272))); @@ -1524,8 +1795,21 @@ L_08AE0334: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), aot_gpr_4); aot_gpr_31 = (0x08AE0360u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 57u, 0x08AE0360u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0360u) goto L_08AE0360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0360: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1629,8 +1913,21 @@ L_08AE0400: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AE0428u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 72u, 0x08AE0428u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0428u) goto L_08AE0428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0428: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1667,8 +1964,21 @@ L_08AE0458: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE0468u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 78u, 0x08AE0468u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0468u) goto L_08AE0468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0468: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1701,8 +2011,21 @@ L_08AE048C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AE04B4u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 82u, 0x08AE04B4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE04B4u) goto L_08AE04B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE04B4: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1739,8 +2062,21 @@ L_08AE04E4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE04F4u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 88u, 0x08AE04F4u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE04F4u) goto L_08AE04F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE04F4: ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -1769,8 +2105,21 @@ L_08AE0518: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AE0528u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 92u, 0x08AE0528u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0528u) goto L_08AE0528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0528: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1810,8 +2159,21 @@ L_08AE0570: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE0580u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 97u, 0x08AE0580u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0580u) goto L_08AE0580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0580: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1837,12 +2199,38 @@ L_08AE059C: AOT_REGCACHE_SYNC_OUT(); return; L_08AE05A4: aot_gpr_31 = (0x08AE05ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 101u, 0x08AE05ACu, 0x08A37E44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 963u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 963u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 963u, 0x08A37E44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE05ACu) goto L_08AE05AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE05AC: aot_gpr_31 = (0x08AE05B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 102u, 0x08AE05B4u, 0x0887CD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 241u, 0x0887CD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE05B4u) goto L_08AE05B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE05B4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4203), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4204), static_cast(0u)); @@ -1851,38 +2239,129 @@ L_08AE05B4: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(4209), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08AE05D0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 103u, 0x08AE05D0u, 0x08B4262Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 572u, 0x08B4262Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE05D0u) goto L_08AE05D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE05D0: aot_gpr_31 = (0x08AE05D8u); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 104u, 0x08AE05D8u, 0x08B42624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 571u, 0x08B42624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE05D8u) goto L_08AE05D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE05D8: aot_gpr_31 = (0x08AE05E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 105u, 0x08AE05E0u, 0x0886A6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 530u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 530u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 530u, 0x0886A6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE05E0u) goto L_08AE05E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE05E0: aot_gpr_31 = (0x08AE05E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 106u, 0x08AE05E8u, 0x08A35524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 318u, 0x08A35524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE05E8u) goto L_08AE05E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE05E8: aot_gpr_31 = (0x08AE05F0u); aot_gpr_4 = (aot_gpr_16 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 107u, 0x08AE05F0u, 0x08A762B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 470u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 470u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 470u, 0x08A762B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE05F0u) goto L_08AE05F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE05F0: aot_gpr_31 = (0x08AE05F8u); aot_gpr_4 = (aot_gpr_16 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 108u, 0x08AE05F8u, 0x089414D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 170u, 0x089414D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE05F8u) goto L_08AE05F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE05F8: aot_gpr_4 = (aot_gpr_16 + static_cast(116)); ctx.gpr[17] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AE0608u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 109u, 0x08AE0608u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0608u) goto L_08AE0608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0608: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1893,8 +2372,21 @@ L_08AE0608: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(232), static_cast(0u)); aot_gpr_31 = (0x08AE062Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 110u, 0x08AE062Cu, 0x08ADC774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 145u, 0x08ADC774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE062Cu) goto L_08AE062C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE062C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(64), ctx.gpr[2]); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(68), 0u); @@ -1910,12 +2402,38 @@ L_08AE062C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(12), static_cast(0u)); aot_gpr_31 = (0x08AE0664u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 111u, 0x08AE0664u, 0x08ADFA58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 905u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 905u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 905u, 0x08ADFA58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0664u) goto L_08AE0664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0664: aot_gpr_31 = (0x08AE066Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 112u, 0x08AE066Cu, 0x08AD3204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 540u, 0x08AD3204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE066Cu) goto L_08AE066C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE066C: aot_gpr_4 = (0u | 100u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(16), aot_gpr_4); @@ -1927,15 +2445,41 @@ L_08AE066C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-23440))); aot_gpr_31 = (0x08AE0694u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 113u, 0x08AE0694u, 0x088DE1D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 350u, 0x088DE1D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0694u) goto L_08AE0694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0694: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(128), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08AE06A4u); aot_gpr_4 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 114u, 0x08AE06A4u, 0x08AFB4E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 474u, 0x08AFB4E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE06A4u) goto L_08AE06A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE06A4: aot_gpr_4 = (49024u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1943,8 +2487,21 @@ L_08AE06A4: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x08AE06BCu); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 115u, 0x08AE06BCu, 0x089D03FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 47u, 0x089D03FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE06BCu) goto L_08AE06BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE06BC: aot_gpr_4 = (18371u << 16u); aot_gpr_4 = (aot_gpr_4 | 20352u); @@ -2000,8 +2557,21 @@ L_08AE072C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AE0738u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 121u, 0x08AE0738u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0738u) goto L_08AE0738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0738: aot_gpr_31 = (0x08AE0740u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-248)); @@ -2010,8 +2580,21 @@ L_08AE0738: L_08AE0740: aot_gpr_31 = (0x08AE0748u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 123u, 0x08AE0748u, 0x0882DAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 341u, 0x0882DAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0748u) goto L_08AE0748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0748: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_4 = (ctx.gpr[28] + static_cast(5824)); @@ -2043,8 +2626,8 @@ L_08AE0764: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE0790: @@ -2104,66 +2687,235 @@ L_08AE0818: aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(2052), static_cast(0u)); aot_gpr_31 = (0x08AE0828u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 134u, 0x08AE0828u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0828u) goto L_08AE0828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0828: aot_gpr_31 = (0x08AE0830u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 135u, 0x08AE0830u, 0x088703ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 42u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 42u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 42u, 0x088703ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0830u) goto L_08AE0830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0830: aot_gpr_31 = (0x08AE0838u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 136u, 0x08AE0838u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0838u) goto L_08AE0838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0838: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-4784), static_cast(ctx.gpr[17])); aot_gpr_31 = (0x08AE0844u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 137u, 0x08AE0844u, 0x089E8AF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 116u, 0x089E8AF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0844u) goto L_08AE0844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0844: aot_gpr_31 = (0x08AE084Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 138u, 0x08AE084Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE084Cu) goto L_08AE084C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE084C: aot_gpr_31 = (0x08AE0854u); aot_gpr_4 = (aot_gpr_16 + static_cast(176)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 139u, 0x08AE0854u, 0x08A76D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 593u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 593u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 593u, 0x08A76D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0854u) goto L_08AE0854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0854: aot_gpr_31 = (0x08AE085Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 140u, 0x08AE085Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE085Cu) goto L_08AE085C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE085C: aot_gpr_31 = (0x08AE0864u); aot_gpr_4 = (aot_gpr_16 + static_cast(208)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 141u, 0x08AE0864u, 0x08941748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 207u, 0x08941748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0864u) goto L_08AE0864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0864: aot_gpr_31 = (0x08AE086Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 142u, 0x08AE086Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE086Cu) goto L_08AE086C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE086C: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-4784), static_cast(0u)); aot_gpr_31 = (0x08AE0878u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 143u, 0x08AE0878u, 0x0886A6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 530u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 530u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 530u, 0x0886A6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0878u) goto L_08AE0878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0878: aot_gpr_31 = (0x08AE0880u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 144u, 0x08AE0880u, 0x08A35524u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 318u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 318u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 318u, 0x08A35524u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0880u) goto L_08AE0880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0880: aot_gpr_31 = (0x08AE0888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 145u, 0x08AE0888u, 0x0887CD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 241u, 0x0887CD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0888u) goto L_08AE0888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0888: aot_gpr_4 = (2238u << 16u); aot_gpr_31 = (0x08AE0894u); aot_gpr_4 = (aot_gpr_4 + static_cast(14864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 146u, 0x08AE0894u, 0x089D03FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 47u, 0x089D03FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0894u) goto L_08AE0894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0894: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(252))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -2202,8 +2954,21 @@ L_08AE08C8: L_08AE08DC: aot_gpr_31 = (0x08AE08E4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 151u, 0x08AE08E4u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE08E4u) goto L_08AE08E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE08E4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2215,8 +2980,21 @@ L_08AE08E4: L_08AE08F0: aot_gpr_31 = (0x08AE08F8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 153u, 0x08AE08F8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE08F8u) goto L_08AE08F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE08F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(224))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2243,18 +3021,57 @@ L_08AE0920: L_08AE0924: aot_gpr_31 = (0x08AE092Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 157u, 0x08AE092Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE092Cu) goto L_08AE092C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE092C: aot_gpr_31 = (0x08AE0934u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 158u, 0x08AE0934u, 0x08ADF9A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 887u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 887u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 887u, 0x08ADF9A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0934u) goto L_08AE0934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0934: aot_gpr_31 = (0x08AE093Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 159u, 0x08AE093Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE093Cu) goto L_08AE093C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE093C: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(10340))); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2331,18 +3148,57 @@ L_08AE09AC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(11), static_cast(ctx.gpr[17])); aot_gpr_31 = (0x08AE09C0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 170u, 0x08AE09C0u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE09C0u) goto L_08AE09C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE09C0: aot_gpr_31 = (0x08AE09C8u); aot_gpr_4 = (aot_gpr_16 + static_cast(116)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 171u, 0x08AE09C8u, 0x08933CF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 735u, 0x08933CF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE09C8u) goto L_08AE09C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE09C8: aot_gpr_31 = (0x08AE09D0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 172u, 0x08AE09D0u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE09D0u) goto L_08AE09D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE09D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2360,13 +3216,39 @@ L_08AE09E4: goto L_08AE09E8; L_08AE09E8: aot_gpr_31 = (0x08AE09F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 176u, 0x08AE09F0u, 0x08A52C60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 497u, 0x08A52C60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE09F0u) goto L_08AE09F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE09F0: aot_gpr_31 = (0x08AE09F8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 177u, 0x08AE09F8u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE09F8u) goto L_08AE09F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE09F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2388,14 +3270,40 @@ L_08AE0A04: } L_08AE0A1C: aot_gpr_31 = (0x08AE0A24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0161. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 180u, 0x08AE0A24u, 0x08A886C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0161_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0161_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0161_entry, 161u, 74u, 0x08A886C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0A24u) goto L_08AE0A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0A24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(100))); aot_gpr_31 = (0x08AE0A30u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 181u, 0x08AE0A30u, 0x08A87C3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 585u, 0x08A87C3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0A30u) goto L_08AE0A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0A30: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); @@ -2421,8 +3329,21 @@ L_08AE0A48: L_08AE0A50: aot_gpr_31 = (0x08AE0A58u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 185u, 0x08AE0A58u, 0x08A87C3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 585u, 0x08A87C3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0A58u) goto L_08AE0A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0A58: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); @@ -2436,21 +3357,60 @@ L_08AE0A68: L_08AE0A6C: aot_gpr_31 = (0x08AE0A74u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 188u, 0x08AE0A74u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0A74u) goto L_08AE0A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0A74: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(11), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(233), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(240), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AE0A88u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 189u, 0x08AE0A88u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0A88u) goto L_08AE0A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0A88: aot_gpr_31 = (0x08AE0A90u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 190u, 0x08AE0A90u, 0x08864CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 144u, 0x08864CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0A90u) goto L_08AE0A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0A90: aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(160), static_cast(0u)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(84), 0u); @@ -2475,8 +3435,21 @@ L_08AE0A90: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(8), static_cast(ctx.gpr[17])); aot_gpr_31 = (0x08AE0AECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 191u, 0x08AE0AECu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0AECu) goto L_08AE0AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0AEC: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -2495,13 +3468,39 @@ L_08AE0B00: L_08AE0B04: aot_gpr_31 = (0x08AE0B0Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 195u, 0x08AE0B0Cu, 0x0880DCB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 418u, 0x0880DCB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0B0Cu) goto L_08AE0B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0B0C: aot_gpr_31 = (0x08AE0B14u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 196u, 0x08AE0B14u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0B14u) goto L_08AE0B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0B14: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (ctx.gpr[17] != 0u) { @@ -2519,8 +3518,21 @@ L_08AE0B28: goto L_08AE0B30; L_08AE0B30: aot_gpr_31 = (0x08AE0B38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 200u, 0x08AE0B38u, 0x08AB9680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 271u, 0x08AB9680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0B38u) goto L_08AE0B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0B38: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -2534,8 +3546,21 @@ L_08AE0B44: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE0B50u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 202u, 0x08AE0B50u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0B50u) goto L_08AE0B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0B50: ctx.gpr[20] = (ctx.gpr[2] | 0u); if (ctx.gpr[20] == 0u) { @@ -2558,8 +3583,21 @@ L_08AE0B6C: L_08AE0B70: aot_gpr_31 = (0x08AE0B78u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 207u, 0x08AE0B78u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0B78u) goto L_08AE0B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0B78: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -2570,22 +3608,74 @@ L_08AE0B78: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AE0B9Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 208u, 0x08AE0B9Cu, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0B9Cu) goto L_08AE0B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0B9C: aot_gpr_31 = (0x08AE0BA4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 209u, 0x08AE0BA4u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BA4u) goto L_08AE0BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BA4: aot_gpr_31 = (0x08AE0BACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 210u, 0x08AE0BACu, 0x0882C3C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 62u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 62u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 62u, 0x0882C3C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BACu) goto L_08AE0BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BAC: aot_gpr_31 = (0x08AE0BB4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 211u, 0x08AE0BB4u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BB4u) goto L_08AE0BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BB4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(140))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2597,66 +3687,222 @@ L_08AE0BB4: L_08AE0BC0: aot_gpr_31 = (0x08AE0BC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 213u, 0x08AE0BC8u, 0x08ADFDB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 984u, 0x08ADFDB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BC8u) goto L_08AE0BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BC8: aot_gpr_31 = (0x08AE0BD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 214u, 0x08AE0BD0u, 0x08ADFA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 898u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 898u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 898u, 0x08ADFA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BD0u) goto L_08AE0BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BD0: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AE0BDCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 215u, 0x08AE0BDCu, 0x08AD372Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 616u, 0x08AD372Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BDCu) goto L_08AE0BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BDC: aot_gpr_31 = (0x08AE0BE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 216u, 0x08AE0BE4u, 0x08AD34BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 575u, 0x08AD34BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BE4u) goto L_08AE0BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BE4: aot_gpr_31 = (0x08AE0BECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 217u, 0x08AE0BECu, 0x08AD3634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 600u, 0x08AD3634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BECu) goto L_08AE0BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BEC: aot_gpr_31 = (0x08AE0BF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 218u, 0x08AE0BF4u, 0x08AD3670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 604u, 0x08AD3670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0BF4u) goto L_08AE0BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0BF4: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AE0C04u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 219u, 0x08AE0C04u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C04u) goto L_08AE0C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C04: aot_gpr_31 = (0x08AE0C0Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 220u, 0x08AE0C0Cu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C0Cu) goto L_08AE0C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C0C: aot_gpr_31 = (0x08AE0C14u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 221u, 0x08AE0C14u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C14u) goto L_08AE0C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C14: aot_gpr_31 = (0x08AE0C1Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 222u, 0x08AE0C1Cu, 0x08ABFF10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 842u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 842u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 842u, 0x08ABFF10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C1Cu) goto L_08AE0C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C1C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(268), ctx.gpr[21]); aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(-29156), static_cast(0u)); aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08AE0C30u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0141. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 223u, 0x08AE0C30u, 0x08A39ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0141_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0141_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0141_entry, 141u, 396u, 0x08A39ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C30u) goto L_08AE0C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C30: aot_gpr_31 = (0x08AE0C38u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 224u, 0x08AE0C38u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C38u) goto L_08AE0C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C38: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(140))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2671,62 +3917,205 @@ L_08AE0C44: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE0C58u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 226u, 0x08AE0C58u, 0x089B9BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 336u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 336u, 0x089B9BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C58u) goto L_08AE0C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C58: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE0C64u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 227u, 0x08AE0C64u, 0x089B9ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 323u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 323u, 0x089B9ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C64u) goto L_08AE0C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C64: aot_gpr_31 = (0x08AE0C6Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 228u, 0x08AE0C6Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C6Cu) goto L_08AE0C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C6C: aot_gpr_31 = (0x08AE0C74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 229u, 0x08AE0C74u, 0x08AD31E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 538u, 0x08AD31E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C74u) goto L_08AE0C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C74: aot_gpr_31 = (0x08AE0C7Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 230u, 0x08AE0C7Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C7Cu) goto L_08AE0C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C7C: aot_gpr_31 = (0x08AE0C84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 231u, 0x08AE0C84u, 0x0896E260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 519u, 0x0896E260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C84u) goto L_08AE0C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C84: aot_gpr_31 = (0x08AE0C8Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 232u, 0x08AE0C8Cu, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C8Cu) goto L_08AE0C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(280))); aot_gpr_31 = (0x08AE0C98u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 233u, 0x08AE0C98u, 0x08804DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 116u, 0x08804DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0C98u) goto L_08AE0C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0C98: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(280), 0u); aot_gpr_31 = (0x08AE0CA4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 234u, 0x08AE0CA4u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0CA4u) goto L_08AE0CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0CA4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AE0CB8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 235u, 0x08AE0CB8u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0CB8u) goto L_08AE0CB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0CB8: aot_gpr_31 = (0x08AE0CC0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 236u, 0x08AE0CC0u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0CC0u) goto L_08AE0CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0CC0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-24260), std::bit_cast(aot_fpr_20)); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(140))); @@ -2739,18 +4128,57 @@ L_08AE0CC0: L_08AE0CD0: aot_gpr_31 = (0x08AE0CD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 238u, 0x08AE0CD8u, 0x08ADDF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 517u, 0x08ADDF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0CD8u) goto L_08AE0CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0CD8: aot_gpr_31 = (0x08AE0CE0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 239u, 0x08AE0CE0u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0CE0u) goto L_08AE0CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0CE0: aot_gpr_31 = (0x08AE0CE8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 240u, 0x08AE0CE8u, 0x08ABEFD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 640u, 0x08ABEFD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0CE8u) goto L_08AE0CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0CE8: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2766,8 +4194,8 @@ L_08AE0CE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE0D14: @@ -2793,8 +4221,8 @@ L_08AE0D3C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(16520))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE0D54: @@ -2812,8 +4240,8 @@ L_08AE0D64: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_16); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(16568))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE0D7C: @@ -2821,8 +4249,21 @@ L_08AE0D7C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0D8Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 247u, 0x08AE0D8Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0D8Cu) goto L_08AE0D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0D8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2835,15 +4276,41 @@ L_08AE0D94: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0DA4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 249u, 0x08AE0DA4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0DA4u) goto L_08AE0DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0DA4: aot_gpr_4 = (0u | 258u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0DB4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 250u, 0x08AE0DB4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0DB4u) goto L_08AE0DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0DB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2856,8 +4323,21 @@ L_08AE0DBC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0DCCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 252u, 0x08AE0DCCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0DCCu) goto L_08AE0DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0DCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2870,15 +4350,41 @@ L_08AE0DD4: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0DE4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 254u, 0x08AE0DE4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0DE4u) goto L_08AE0DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0DE4: aot_gpr_4 = (0u | 258u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0DF4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 255u, 0x08AE0DF4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0DF4u) goto L_08AE0DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0DF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2891,8 +4397,21 @@ L_08AE0DFC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0E0Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 257u, 0x08AE0E0Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0E0Cu) goto L_08AE0E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0E0C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2905,8 +4424,21 @@ L_08AE0E14: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0E24u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 259u, 0x08AE0E24u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0E24u) goto L_08AE0E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0E24: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2919,15 +4451,41 @@ L_08AE0E2C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0E3Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 261u, 0x08AE0E3Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0E3Cu) goto L_08AE0E3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0E3C: aot_gpr_4 = (0u | 258u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0E4Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 262u, 0x08AE0E4Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0E4Cu) goto L_08AE0E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0E4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2940,15 +4498,41 @@ L_08AE0E54: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0E64u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 264u, 0x08AE0E64u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0E64u) goto L_08AE0E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0E64: aot_gpr_4 = (0u | 228u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0E74u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 265u, 0x08AE0E74u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0E74u) goto L_08AE0E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0E74: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2969,15 +4553,41 @@ L_08AE0E88: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0E98u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 268u, 0x08AE0E98u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0E98u) goto L_08AE0E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0E98: aot_gpr_4 = (0u | 234u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0EA8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 269u, 0x08AE0EA8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0EA8u) goto L_08AE0EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0EA8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3013,15 +4623,41 @@ L_08AE0ECC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0EDCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 274u, 0x08AE0EDCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0EDCu) goto L_08AE0EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0EDC: aot_gpr_4 = (0u | 258u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0EECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 275u, 0x08AE0EECu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0EECu) goto L_08AE0EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0EEC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3056,8 +4692,21 @@ L_08AE0F0C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0F1Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 280u, 0x08AE0F1Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0F1Cu) goto L_08AE0F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0F1C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3070,15 +4719,41 @@ L_08AE0F24: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0F34u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 282u, 0x08AE0F34u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0F34u) goto L_08AE0F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0F34: aot_gpr_4 = (0u | 270u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0F44u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 283u, 0x08AE0F44u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0F44u) goto L_08AE0F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0F44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3106,8 +4781,21 @@ L_08AE0F60: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0F70u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 287u, 0x08AE0F70u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0F70u) goto L_08AE0F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0F70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3161,8 +4849,21 @@ L_08AE0FAC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0FBCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 294u, 0x08AE0FBCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0FBCu) goto L_08AE0FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0FBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3175,22 +4876,61 @@ L_08AE0FC4: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0FD4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 296u, 0x08AE0FD4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0FD4u) goto L_08AE0FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0FD4: aot_gpr_4 = (0u | 197u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0FE4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 297u, 0x08AE0FE4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0FE4u) goto L_08AE0FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0FE4: aot_gpr_4 = (0u | 186u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE0FF4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 298u, 0x08AE0FF4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE0FF4u) goto L_08AE0FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE0FF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3203,15 +4943,41 @@ L_08AE0FFC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE100Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 300u, 0x08AE100Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE100Cu) goto L_08AE100C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE100C: aot_gpr_4 = (0u | 228u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE101Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 301u, 0x08AE101Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE101Cu) goto L_08AE101C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE101C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3224,15 +4990,41 @@ L_08AE1024: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1034u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 303u, 0x08AE1034u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1034u) goto L_08AE1034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1034: aot_gpr_4 = (0u | 186u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1044u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 304u, 0x08AE1044u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1044u) goto L_08AE1044; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1044: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3286,15 +5078,41 @@ L_08AE1080: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1090u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 311u, 0x08AE1090u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1090u) goto L_08AE1090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1090: aot_gpr_4 = (0u | 270u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE10A0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 312u, 0x08AE10A0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE10A0u) goto L_08AE10A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE10A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3307,8 +5125,21 @@ L_08AE10A8: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE10B8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 314u, 0x08AE10B8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE10B8u) goto L_08AE10B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE10B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3321,15 +5152,41 @@ L_08AE10C0: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE10D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 316u, 0x08AE10D0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE10D0u) goto L_08AE10D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE10D0: aot_gpr_4 = (0u | 270u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE10E0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 317u, 0x08AE10E0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE10E0u) goto L_08AE10E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE10E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3342,8 +5199,21 @@ L_08AE10E8: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE10F8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 319u, 0x08AE10F8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE10F8u) goto L_08AE10F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE10F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3356,8 +5226,21 @@ L_08AE1100: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1110u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 321u, 0x08AE1110u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1110u) goto L_08AE1110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1110: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3386,8 +5269,21 @@ L_08AE112C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE113Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 325u, 0x08AE113Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE113Cu) goto L_08AE113C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE113C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3407,15 +5303,41 @@ L_08AE114C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE115Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 328u, 0x08AE115Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE115Cu) goto L_08AE115C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE115C: aot_gpr_4 = (0u | 258u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE116Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 329u, 0x08AE116Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE116Cu) goto L_08AE116C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE116C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3450,15 +5372,28 @@ L_08AE1190: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE11A0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 334u, 0x08AE11A0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE11A0u) goto L_08AE11A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE11A0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE11B0: @@ -3484,8 +5419,8 @@ L_08AE11D8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(16600))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE11F0: @@ -3501,8 +5436,21 @@ L_08AE11FC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE120Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 340u, 0x08AE120Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE120Cu) goto L_08AE120C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE120C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3531,8 +5479,21 @@ L_08AE1228: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1238u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 344u, 0x08AE1238u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1238u) goto L_08AE1238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1238: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3567,8 +5528,21 @@ L_08AE1258: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1268u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 349u, 0x08AE1268u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1268u) goto L_08AE1268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1268: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3581,8 +5555,21 @@ L_08AE1270: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1280u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 351u, 0x08AE1280u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1280u) goto L_08AE1280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1280: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3611,8 +5598,21 @@ L_08AE129C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE12ACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 355u, 0x08AE12ACu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE12ACu) goto L_08AE12AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE12AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3647,8 +5647,21 @@ L_08AE12CC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE12DCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 360u, 0x08AE12DCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE12DCu) goto L_08AE12DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE12DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3661,8 +5674,21 @@ L_08AE12E4: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE12F4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 362u, 0x08AE12F4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE12F4u) goto L_08AE12F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE12F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3691,8 +5717,21 @@ L_08AE1310: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1320u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 366u, 0x08AE1320u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1320u) goto L_08AE1320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1320: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3727,8 +5766,21 @@ L_08AE1340: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1350u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 371u, 0x08AE1350u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1350u) goto L_08AE1350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1350: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3741,8 +5793,21 @@ L_08AE1358: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1368u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 373u, 0x08AE1368u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1368u) goto L_08AE1368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1368: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3776,8 +5841,21 @@ L_08AE138C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE139Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 378u, 0x08AE139Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE139Cu) goto L_08AE139C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE139C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3797,8 +5875,21 @@ L_08AE13AC: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE13BCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 381u, 0x08AE13BCu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE13BCu) goto L_08AE13BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE13BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3852,8 +5943,21 @@ L_08AE13F8: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1408u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 388u, 0x08AE1408u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1408u) goto L_08AE1408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1408: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3866,8 +5970,21 @@ L_08AE1410: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1420u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 390u, 0x08AE1420u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1420u) goto L_08AE1420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1420: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3880,8 +5997,21 @@ L_08AE1428: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1438u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 392u, 0x08AE1438u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1438u) goto L_08AE1438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1438: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3894,15 +6024,41 @@ L_08AE1440: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1450u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 394u, 0x08AE1450u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1450u) goto L_08AE1450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1450: aot_gpr_4 = (0u | 193u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1460u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 395u, 0x08AE1460u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1460u) goto L_08AE1460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1460: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3915,8 +6071,21 @@ L_08AE1468: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1478u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 397u, 0x08AE1478u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1478u) goto L_08AE1478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1478: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3943,8 +6112,21 @@ L_08AE1494: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE14A4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 401u, 0x08AE14A4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE14A4u) goto L_08AE14A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE14A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3964,8 +6146,21 @@ L_08AE14B4: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE14C4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 404u, 0x08AE14C4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE14C4u) goto L_08AE14C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE14C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3986,8 +6181,21 @@ L_08AE14D8: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE14E8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 407u, 0x08AE14E8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE14E8u) goto L_08AE14E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE14E8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(52))); goto L_08AE14EC; @@ -4013,8 +6221,21 @@ L_08AE1500: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1510u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 412u, 0x08AE1510u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1510u) goto L_08AE1510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1510: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4041,8 +6262,21 @@ L_08AE152C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE153Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 416u, 0x08AE153Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE153Cu) goto L_08AE153C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE153C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4062,8 +6296,21 @@ L_08AE154C: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE155Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 419u, 0x08AE155Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE155Cu) goto L_08AE155C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE155C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4084,15 +6331,28 @@ L_08AE1570: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1580u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 422u, 0x08AE1580u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1580u) goto L_08AE1580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1580: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE1590: @@ -4154,29 +6414,81 @@ L_08AE15E0: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE15F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 431u, 0x08AE15F0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE15F0u) goto L_08AE15F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE15F0: aot_gpr_4 = (0u | 212u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1600u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 432u, 0x08AE1600u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1600u) goto L_08AE1600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1600: aot_gpr_4 = (0u | 259u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1610u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 433u, 0x08AE1610u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1610u) goto L_08AE1610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1610: aot_gpr_4 = (0u | 215u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1620u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 434u, 0x08AE1620u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1620u) goto L_08AE1620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1620: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4211,29 +6523,81 @@ L_08AE1640: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1650u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 439u, 0x08AE1650u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1650u) goto L_08AE1650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1650: aot_gpr_4 = (0u | 212u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1660u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 440u, 0x08AE1660u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1660u) goto L_08AE1660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1660: aot_gpr_4 = (0u | 258u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1670u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 441u, 0x08AE1670u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1670u) goto L_08AE1670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1670: aot_gpr_4 = (0u | 261u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1680u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 442u, 0x08AE1680u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1680u) goto L_08AE1680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1680: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4246,29 +6610,81 @@ L_08AE1688: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1698u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 444u, 0x08AE1698u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1698u) goto L_08AE1698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1698: aot_gpr_4 = (0u | 215u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE16A8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 445u, 0x08AE16A8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE16A8u) goto L_08AE16A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE16A8: aot_gpr_4 = (0u | 191u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE16B8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 446u, 0x08AE16B8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE16B8u) goto L_08AE16B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE16B8: aot_gpr_4 = (0u | 233u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE16C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 447u, 0x08AE16C8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE16C8u) goto L_08AE16C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE16C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4297,29 +6713,81 @@ L_08AE16E4: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE16F4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 451u, 0x08AE16F4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE16F4u) goto L_08AE16F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE16F4: aot_gpr_4 = (0u | 270u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1704u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 452u, 0x08AE1704u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1704u) goto L_08AE1704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1704: aot_gpr_4 = (0u | 198u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1714u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 453u, 0x08AE1714u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1714u) goto L_08AE1714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1714: aot_gpr_4 = (0u | 275u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1724u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 454u, 0x08AE1724u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1724u) goto L_08AE1724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1724: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4339,36 +6807,88 @@ L_08AE1734: aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1744u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 457u, 0x08AE1744u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1744u) goto L_08AE1744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1744: aot_gpr_4 = (0u | 212u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1754u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 458u, 0x08AE1754u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1754u) goto L_08AE1754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1754: aot_gpr_4 = (0u | 233u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1764u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 459u, 0x08AE1764u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1764u) goto L_08AE1764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1764: aot_gpr_4 = (0u | 270u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08AE1774u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 460u, 0x08AE1774u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1774u) goto L_08AE1774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1774: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE1784: @@ -4524,8 +7044,8 @@ L_08AE1938: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE1948: @@ -4627,8 +7147,21 @@ L_08AE1A14: L_08AE1A1C: aot_gpr_31 = (0x08AE1A24u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 486u, 0x08AE1A24u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1A24u) goto L_08AE1A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1A24: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -4674,8 +7207,21 @@ L_08AE1A78: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AE1A8Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 492u, 0x08AE1A8Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1A8Cu) goto L_08AE1A8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1A8C: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[20]); @@ -4708,8 +7254,21 @@ L_08AE1AA8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AE1AC0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 496u, 0x08AE1AC0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1AC0u) goto L_08AE1AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1AC0: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); goto L_08AE1AC4; @@ -4762,8 +7321,21 @@ L_08AE1B0C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08AE1B20u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 503u, 0x08AE1B20u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1B20u) goto L_08AE1B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1B20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); @@ -4794,8 +7366,8 @@ L_08AE1B48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE1B78: @@ -4842,8 +7414,21 @@ L_08AE1BEC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7872), aot_gpr_4); aot_gpr_31 = (0x08AE1BFCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(7864)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 510u, 0x08AE1BFCu, 0x089C6318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 464u, 0x089C6318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1BFCu) goto L_08AE1BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1BFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7868))); aot_gpr_5 = (aot_gpr_4 < static_cast(5) ? 1u : 0u); @@ -4938,8 +7523,21 @@ L_08AE1C58: L_08AE1C74: aot_gpr_31 = (0x08AE1C7Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 522u, 0x08AE1C7Cu, 0x08938F04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 250u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 250u, 0x08938F04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1C7Cu) goto L_08AE1C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1C7C: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -4967,8 +7565,21 @@ L_08AE1CA0: L_08AE1CA8: aot_gpr_31 = (0x08AE1CB0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 526u, 0x08AE1CB0u, 0x08938F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 254u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 254u, 0x08938F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1CB0u) goto L_08AE1CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1CB0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE1CBCu); @@ -4987,8 +7598,8 @@ L_08AE1CBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1056)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE1CE0: @@ -5182,8 +7793,8 @@ L_08AE1E24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE1E48: @@ -5239,8 +7850,21 @@ L_08AE1ED4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[19]); aot_gpr_31 = (0x08AE1EE0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 557u, 0x08AE1EE0u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1EE0u) goto L_08AE1EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1EE0: aot_gpr_31 = (0x08AE1EE8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5249,8 +7873,21 @@ L_08AE1EE0: L_08AE1EE8: aot_gpr_31 = (0x08AE1EF0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 559u, 0x08AE1EF0u, 0x0882E9B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 611u, 0x0882E9B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1EF0u) goto L_08AE1EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1EF0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5269,8 +7906,21 @@ L_08AE1F04: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[19]); aot_gpr_31 = (0x08AE1F10u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 562u, 0x08AE1F10u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE1F10u) goto L_08AE1F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE1F10: aot_gpr_31 = (0x08AE1F18u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5321,8 +7971,8 @@ L_08AE1F54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE1F78: @@ -5387,8 +8037,8 @@ L_08AE2008: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE2020: @@ -5453,8 +8103,8 @@ L_08AE20B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE20C8: @@ -5514,8 +8164,21 @@ L_08AE2154: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[20]); aot_gpr_31 = (0x08AE2160u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 582u, 0x08AE2160u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2160u) goto L_08AE2160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2160: aot_gpr_31 = (0x08AE2168u); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -5524,8 +8187,21 @@ L_08AE2160: L_08AE2168: aot_gpr_31 = (0x08AE2170u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 584u, 0x08AE2170u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2170u) goto L_08AE2170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2170: { const bool branch_taken = ctx.gpr[2] != aot_gpr_16; if (branch_taken) { @@ -5610,8 +8286,8 @@ L_08AE2200: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE2228: @@ -5634,8 +8310,21 @@ L_08AE224C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08AE225Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 594u, 0x08AE225Cu, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE225Cu) goto L_08AE225C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE225C: aot_gpr_31 = (0x08AE2264u); aot_gpr_4 = (ctx.gpr[28] + static_cast(-128)); @@ -5645,8 +8334,21 @@ L_08AE2264: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE2270u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 596u, 0x08AE2270u, 0x0882E704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 553u, 0x0882E704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2270u) goto L_08AE2270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2270: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5706,8 +8408,8 @@ L_08AE22C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE22DC: @@ -5741,8 +8443,21 @@ L_08AE2330: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08AE2348u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 605u, 0x08AE2348u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2348u) goto L_08AE2348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2348: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (0u | 0u); @@ -5800,8 +8515,8 @@ L_08AE237C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE23A0: @@ -5832,8 +8547,21 @@ L_08AE23D4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x08AE23E8u); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 616u, 0x08AE23E8u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE23E8u) goto L_08AE23E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE23E8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -5888,8 +8616,8 @@ L_08AE241C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE2438: @@ -5929,8 +8657,21 @@ L_08AE2498: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x08AE24ACu); ctx.gpr[21] = (ctx.gpr[19] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 626u, 0x08AE24ACu, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE24ACu) goto L_08AE24AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE24AC: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -6005,8 +8746,8 @@ L_08AE251C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE2540: @@ -6071,8 +8812,8 @@ L_08AE25D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE25E8: @@ -6102,8 +8843,8 @@ L_08AE2624: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE2634: @@ -6119,8 +8860,8 @@ L_08AE2648: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE265C: @@ -6208,8 +8949,21 @@ L_08AE2700: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_5); aot_gpr_31 = (0x08AE2714u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 652u, 0x08AE2714u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2714u) goto L_08AE2714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2714: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -6253,8 +9007,21 @@ L_08AE274C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AE2760u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 658u, 0x08AE2760u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2760u) goto L_08AE2760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2760: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[20]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -6313,8 +9080,8 @@ L_08AE27B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE27D8: @@ -6338,8 +9105,8 @@ L_08AE27EC: goto L_08AE27F0; L_08AE27F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE27F8: @@ -6348,8 +9115,8 @@ L_08AE27F8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE280C: @@ -6365,8 +9132,21 @@ L_08AE280C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(188), aot_run_words); } aot_gpr_31 = (0x08AE2848u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 672u, 0x08AE2848u, 0x08985908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 436u, 0x08985908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2848u) goto L_08AE2848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2848: ctx.gpr[20] = (2234u << 16u); ctx.gpr[20] = (ctx.gpr[20] + static_cast(22832)); @@ -6375,8 +9155,21 @@ L_08AE2848: L_08AE2854: aot_gpr_31 = (0x08AE285Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 674u, 0x08AE285Cu, 0x089859A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 440u, 0x089859A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE285Cu) goto L_08AE285C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE285C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6386,8 +9179,21 @@ L_08AE285C: } L_08AE2864: aot_gpr_31 = (0x08AE286Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 676u, 0x08AE286Cu, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE286Cu) goto L_08AE286C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE286C: aot_gpr_31 = (0x08AE2874u); aot_gpr_4 = (0u | 1000u); @@ -6404,22 +9210,61 @@ L_08AE2874: L_08AE287C: aot_gpr_31 = (0x08AE2884u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 679u, 0x08AE2884u, 0x089846E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 127u, 0x089846E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2884u) goto L_08AE2884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2884: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (0u | 131u); aot_gpr_31 = (0x08AE2898u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 680u, 0x08AE2898u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2898u) goto L_08AE2898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2898: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AE28A4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 681u, 0x08AE28A4u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE28A4u) goto L_08AE28A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE28A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6460,8 +9305,21 @@ L_08AE28D4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AE28ECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 687u, 0x08AE28ECu, 0x089843C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 69u, 0x089843C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE28ECu) goto L_08AE28EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE28EC: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -6475,14 +9333,40 @@ L_08AE28F4: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AE2904u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 689u, 0x08AE2904u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2904u) goto L_08AE2904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2904: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AE2910u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 690u, 0x08AE2910u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2910u) goto L_08AE2910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2910: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AE291Cu); @@ -6514,8 +9398,21 @@ L_08AE2944: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE2954u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 694u, 0x08AE2954u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2954u) goto L_08AE2954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2954: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); @@ -6543,8 +9440,21 @@ L_08AE297C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AE2988u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 698u, 0x08AE2988u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2988u) goto L_08AE2988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2988: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); goto L_08AE298C; @@ -6572,8 +9482,21 @@ L_08AE29A8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AE29B8u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 703u, 0x08AE29B8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE29B8u) goto L_08AE29B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE29B8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(0))); @@ -6608,14 +9531,40 @@ L_08AE29F4: aot_gpr_5 = (0u | 130u); aot_gpr_31 = (0x08AE2A04u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 709u, 0x08AE2A04u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2A04u) goto L_08AE2A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2A04: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AE2A10u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 710u, 0x08AE2A10u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2A10u) goto L_08AE2A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2A10: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6655,8 +9604,21 @@ L_08AE2A40: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AE2A58u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 716u, 0x08AE2A58u, 0x089843C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 69u, 0x089843C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2A58u) goto L_08AE2A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2A58: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -6670,14 +9632,40 @@ L_08AE2A60: aot_gpr_5 = (0u | 175u); aot_gpr_31 = (0x08AE2A70u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 718u, 0x08AE2A70u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2A70u) goto L_08AE2A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2A70: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AE2A7Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 719u, 0x08AE2A7Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2A7Cu) goto L_08AE2A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2A7C: aot_gpr_31 = (0x08AE2A84u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6701,14 +9689,40 @@ L_08AE2A98: aot_gpr_5 = (0u | 176u); aot_gpr_31 = (0x08AE2AA8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 723u, 0x08AE2AA8u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2AA8u) goto L_08AE2AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2AA8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AE2AB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 724u, 0x08AE2AB4u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2AB4u) goto L_08AE2AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2AB4: aot_gpr_31 = (0x08AE2ABCu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6733,14 +9747,40 @@ L_08AE2AD0: aot_gpr_5 = (0u | 132u); aot_gpr_31 = (0x08AE2AE0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 728u, 0x08AE2AE0u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2AE0u) goto L_08AE2AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2AE0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AE2AECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 729u, 0x08AE2AECu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2AECu) goto L_08AE2AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2AEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6781,8 +9821,21 @@ L_08AE2B1C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AE2B34u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 735u, 0x08AE2B34u, 0x089843C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 69u, 0x089843C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2B34u) goto L_08AE2B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2B34: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -6796,14 +9849,40 @@ L_08AE2B3C: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AE2B4Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 737u, 0x08AE2B4Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2B4Cu) goto L_08AE2B4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2B4C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AE2B58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 738u, 0x08AE2B58u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2B58u) goto L_08AE2B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2B58: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AE2B64u); @@ -6837,8 +9916,21 @@ L_08AE2B8C: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE2B9Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 742u, 0x08AE2B9Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2B9Cu) goto L_08AE2B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2B9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(28))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(24))); @@ -6866,8 +9958,21 @@ L_08AE2BC4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AE2BD0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 746u, 0x08AE2BD0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2BD0u) goto L_08AE2BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2BD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(28))); goto L_08AE2BD4; @@ -6896,8 +10001,21 @@ L_08AE2BF4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AE2C04u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 751u, 0x08AE2C04u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2C04u) goto L_08AE2C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2C04: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(28))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(24))); @@ -6932,14 +10050,40 @@ L_08AE2C40: aot_gpr_5 = (0u | 133u); aot_gpr_31 = (0x08AE2C50u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 757u, 0x08AE2C50u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2C50u) goto L_08AE2C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2C50: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08AE2C5Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 758u, 0x08AE2C5Cu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2C5Cu) goto L_08AE2C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2C5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6991,22 +10135,61 @@ L_08AE2C78: goto L_08AE2CE0; L_08AE2CE0: aot_gpr_31 = (0x08AE2CE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 763u, 0x08AE2CE8u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2CE8u) goto L_08AE2CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2CE8: ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 134u); aot_gpr_31 = (0x08AE2CFCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 764u, 0x08AE2CFCu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2CFCu) goto L_08AE2CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2CFC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_gpr_31 = (0x08AE2D08u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 765u, 0x08AE2D08u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2D08u) goto L_08AE2D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2D08: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7041,8 +10224,21 @@ L_08AE2D2C: L_08AE2D34: aot_gpr_31 = (0x08AE2D3Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(156))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 770u, 0x08AE2D3Cu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2D3Cu) goto L_08AE2D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2D3C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7054,8 +10250,21 @@ L_08AE2D44: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE2D50u); aot_gpr_4 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 772u, 0x08AE2D50u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2D50u) goto L_08AE2D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2D50: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7067,8 +10276,21 @@ L_08AE2D50: L_08AE2D5C: aot_gpr_31 = (0x08AE2D64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 774u, 0x08AE2D64u, 0x08971F74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 377u, 0x08971F74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2D64u) goto L_08AE2D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2D64: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE2D68; @@ -7099,8 +10321,21 @@ L_08AE2D7C: L_08AE2D84: aot_gpr_31 = (0x08AE2D8Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 779u, 0x08AE2D8Cu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2D8Cu) goto L_08AE2D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2D8C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7112,8 +10347,21 @@ L_08AE2D94: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE2DA0u); aot_gpr_4 = (0u | 200u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 781u, 0x08AE2DA0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2DA0u) goto L_08AE2DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2DA0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7125,8 +10373,21 @@ L_08AE2DA0: L_08AE2DAC: aot_gpr_31 = (0x08AE2DB4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 783u, 0x08AE2DB4u, 0x089B9D74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 368u, 0x089B9D74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2DB4u) goto L_08AE2DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2DB4: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE2DB8; @@ -7157,8 +10418,21 @@ L_08AE2DCC: L_08AE2DD4: aot_gpr_31 = (0x08AE2DDCu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 788u, 0x08AE2DDCu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2DDCu) goto L_08AE2DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2DDC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7170,8 +10444,21 @@ L_08AE2DE4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE2DF0u); aot_gpr_4 = (0u | 212u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 790u, 0x08AE2DF0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2DF0u) goto L_08AE2DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2DF0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7183,8 +10470,21 @@ L_08AE2DF0: L_08AE2DFC: aot_gpr_31 = (0x08AE2E04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 792u, 0x08AE2E04u, 0x08904258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 41u, 0x08904258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2E04u) goto L_08AE2E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2E04: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE2E08; @@ -7215,8 +10515,21 @@ L_08AE2E1C: L_08AE2E24: aot_gpr_31 = (0x08AE2E2Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(140))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 797u, 0x08AE2E2Cu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2E2Cu) goto L_08AE2E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2E2C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7228,8 +10541,21 @@ L_08AE2E34: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE2E40u); aot_gpr_4 = (0u | 252u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 799u, 0x08AE2E40u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2E40u) goto L_08AE2E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2E40: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7241,8 +10567,21 @@ L_08AE2E40: L_08AE2E4C: aot_gpr_31 = (0x08AE2E54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 801u, 0x08AE2E54u, 0x0884EA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 496u, 0x0884EA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2E54u) goto L_08AE2E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2E54: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE2E58; @@ -7273,8 +10612,21 @@ L_08AE2E6C: L_08AE2E74: aot_gpr_31 = (0x08AE2E7Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 806u, 0x08AE2E7Cu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2E7Cu) goto L_08AE2E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2E7C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7286,8 +10638,21 @@ L_08AE2E84: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE2E90u); aot_gpr_4 = (0u | 276u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 808u, 0x08AE2E90u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2E90u) goto L_08AE2E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2E90: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7299,8 +10664,21 @@ L_08AE2E90: L_08AE2E9C: aot_gpr_31 = (0x08AE2EA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 810u, 0x08AE2EA4u, 0x08B3EE44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 637u, 0x08B3EE44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2EA4u) goto L_08AE2EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2EA4: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE2EA8; @@ -7330,8 +10708,21 @@ L_08AE2EC4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); aot_gpr_31 = (0x08AE2ED0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 815u, 0x08AE2ED0u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2ED0u) goto L_08AE2ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2ED0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7344,14 +10735,40 @@ L_08AE2ED8: aot_gpr_5 = (0u | 170u); aot_gpr_31 = (0x08AE2EE8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 817u, 0x08AE2EE8u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2EE8u) goto L_08AE2EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2EE8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_31 = (0x08AE2EF4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 818u, 0x08AE2EF4u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2EF4u) goto L_08AE2EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2EF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7370,14 +10787,40 @@ L_08AE2F08: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08AE2F18u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 821u, 0x08AE2F18u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2F18u) goto L_08AE2F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2F18: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_31 = (0x08AE2F24u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 822u, 0x08AE2F24u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2F24u) goto L_08AE2F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2F24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7395,8 +10838,21 @@ L_08AE2F38: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_gpr_31 = (0x08AE2F44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 825u, 0x08AE2F44u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2F44u) goto L_08AE2F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2F44: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7408,8 +10864,21 @@ L_08AE2F4C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE2F58u); aot_gpr_4 = (0u | 236u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 827u, 0x08AE2F58u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2F58u) goto L_08AE2F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2F58: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7421,8 +10890,21 @@ L_08AE2F58: L_08AE2F64: aot_gpr_31 = (0x08AE2F6Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 829u, 0x08AE2F6Cu, 0x0897B55Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 446u, 0x0897B55Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2F6Cu) goto L_08AE2F6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2F6C: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE2F70; @@ -7437,8 +10919,21 @@ L_08AE2F78: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(124))); aot_gpr_31 = (0x08AE2F84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 832u, 0x08AE2F84u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2F84u) goto L_08AE2F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2F84: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7450,8 +10945,21 @@ L_08AE2F8C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE2F98u); aot_gpr_4 = (0u | 260u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 834u, 0x08AE2F98u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2F98u) goto L_08AE2F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2F98: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7463,8 +10971,21 @@ L_08AE2F98: L_08AE2FA4: aot_gpr_31 = (0x08AE2FACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 836u, 0x08AE2FACu, 0x08B4FF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 580u, 0x08B4FF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2FACu) goto L_08AE2FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2FAC: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE2FB0; @@ -7479,8 +11000,21 @@ L_08AE2FB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE2FC4u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 839u, 0x08AE2FC4u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2FC4u) goto L_08AE2FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2FC4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7492,8 +11026,21 @@ L_08AE2FCC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE2FD8u); aot_gpr_4 = (0u | 184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 841u, 0x08AE2FD8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2FD8u) goto L_08AE2FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2FD8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7505,8 +11052,21 @@ L_08AE2FD8: L_08AE2FE4: aot_gpr_31 = (0x08AE2FECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 843u, 0x08AE2FECu, 0x08B1F920u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 677u, 0x08B1F920u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE2FECu) goto L_08AE2FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE2FEC: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE2FF0; @@ -7521,8 +11081,21 @@ L_08AE2FF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE3004u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 846u, 0x08AE3004u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3004u) goto L_08AE3004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3004: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7534,8 +11107,21 @@ L_08AE300C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AE3018u); aot_gpr_4 = (0u | 332u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 848u, 0x08AE3018u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3018u) goto L_08AE3018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3018: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7547,8 +11133,21 @@ L_08AE3018: L_08AE3024: aot_gpr_31 = (0x08AE302Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 850u, 0x08AE302Cu, 0x088B89FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 111u, 0x088B89FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE302Cu) goto L_08AE302C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE302C: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AE3030; @@ -7581,14 +11180,40 @@ L_08AE3060: aot_gpr_5 = (0u | 133u); aot_gpr_31 = (0x08AE3070u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 855u, 0x08AE3070u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3070u) goto L_08AE3070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3070: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_gpr_31 = (0x08AE307Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 856u, 0x08AE307Cu, 0x08984650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 113u, 0x08984650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE307Cu) goto L_08AE307C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE307C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7630,8 +11255,21 @@ L_08AE30B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), 0u); aot_gpr_31 = (0x08AE30C8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 862u, 0x08AE30C8u, 0x089843C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 69u, 0x089843C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE30C8u) goto L_08AE30C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE30C8: ctx.gpr[2] = (0u | 1u); goto L_08AE30CC; @@ -7651,8 +11289,8 @@ L_08AE30CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE30FC: @@ -7717,8 +11355,8 @@ L_08AE30FC: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(85), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE31F0: @@ -7846,8 +11484,8 @@ L_08AE3340: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3358: @@ -7935,8 +11573,8 @@ L_08AE33F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3404: @@ -7970,8 +11608,8 @@ L_08AE3424: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3444: @@ -7983,8 +11621,8 @@ L_08AE3444: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3464: @@ -8033,15 +11671,15 @@ L_08AE3498: goto L_08AE34A8; L_08AE34A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE34B0: jump_target = aot_gpr_31; aot_fpr_0 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE34B8: @@ -8142,8 +11780,8 @@ L_08AE3530: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE353C: @@ -8159,8 +11797,8 @@ L_08AE3550: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3564: @@ -8171,8 +11809,8 @@ L_08AE3564: aot_gpr_5 = (aot_gpr_5 | 2u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(84), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3580: @@ -8383,8 +12021,21 @@ L_08AE374C: aot_gpr_5 = (aot_gpr_5 | 4u); aot_gpr_31 = (0x08AE3770u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(100), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 921u, 0x08AE3770u, 0x08A2FBA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 597u, 0x08A2FBA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3770u) goto L_08AE3770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3770: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(3964))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_0 < aot_fpr_12)) ? 0x00800000u : 0u); @@ -8397,8 +12048,21 @@ L_08AE3770: L_08AE3784: aot_gpr_31 = (0x08AE378Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 923u, 0x08AE378Cu, 0x08B24720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 56u, 0x08B24720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE378Cu) goto L_08AE378C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE378C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(4)))))); aot_gpr_5 = (0u | 0u); @@ -8515,8 +12179,8 @@ L_08AE3874: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3890: @@ -8538,8 +12202,21 @@ L_08AE3890: L_08AE38BC: aot_gpr_31 = (0x08AE38C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 938u, 0x08AE38C4u, 0x08B2477Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 61u, 0x08B2477Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE38C4u) goto L_08AE38C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE38C4: ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); @@ -8584,8 +12261,21 @@ L_08AE3908: L_08AE3914: aot_gpr_31 = (0x08AE391Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 942u, 0x08AE391Cu, 0x08B24720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 56u, 0x08B24720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE391Cu) goto L_08AE391C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE391C: aot_gpr_6 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-3)); @@ -8647,15 +12337,15 @@ L_08AE3980: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE39B4: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(4), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE39BC: @@ -8695,8 +12385,21 @@ L_08AE3A18: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); aot_gpr_31 = (0x08AE3A24u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 953u, 0x08AE3A24u, 0x08A2F9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 583u, 0x08A2F9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3A24u) goto L_08AE3A24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3A24: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(36)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8744,15 +12447,41 @@ L_08AE3A64: L_08AE3A6C: aot_gpr_31 = (0x08AE3A74u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0138. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 959u, 0x08AE3A74u, 0x08A2FBA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0138_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0138_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0138_entry, 138u, 597u, 0x08A2FBA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3A74u) goto L_08AE3A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3A74: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_0)); aot_gpr_31 = (0x08AE3A84u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 960u, 0x08AE3A84u, 0x08A9FC58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 602u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 602u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 602u, 0x08A9FC58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3A84u) goto L_08AE3A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3A84: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < aot_fpr_0)) ? 0x00800000u : 0u); { const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u); @@ -8765,8 +12494,21 @@ L_08AE3A84: L_08AE3A94: aot_gpr_31 = (0x08AE3A9Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 962u, 0x08AE3A9Cu, 0x08A9FAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 583u, 0x08A9FAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3A9Cu) goto L_08AE3A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3A9C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8778,8 +12520,21 @@ L_08AE3AA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08AE3AB0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 964u, 0x08AE3AB0u, 0x08A9FA5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 577u, 0x08A9FA5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3AB0u) goto L_08AE3AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3AB0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8790,8 +12545,21 @@ L_08AE3AB0: L_08AE3AB8: aot_gpr_31 = (0x08AE3AC0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 966u, 0x08AE3AC0u, 0x08A9FB14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 586u, 0x08A9FB14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3AC0u) goto L_08AE3AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3AC0: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -8819,8 +12587,21 @@ L_08AE3AD0: L_08AE3ADC: aot_gpr_31 = (0x08AE3AE4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 970u, 0x08AE3AE4u, 0x08A9FA5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 577u, 0x08A9FA5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3AE4u) goto L_08AE3AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3AE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8841,8 +12622,21 @@ L_08AE3AF0: L_08AE3AF8: aot_gpr_31 = (0x08AE3B00u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 974u, 0x08AE3B00u, 0x08A9FAD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 583u, 0x08A9FAD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3B00u) goto L_08AE3B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3B00: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8880,8 +12674,21 @@ L_08AE3B2C: L_08AE3B34: aot_gpr_31 = (0x08AE3B3Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 979u, 0x08AE3B3Cu, 0x08A9F9F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 570u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 570u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 570u, 0x08A9F9F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3B3Cu) goto L_08AE3B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3B3C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8897,8 +12704,21 @@ L_08AE3B48: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AE3B58u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 982u, 0x08AE3B58u, 0x08B247A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 63u, 0x08B247A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3B58u) goto L_08AE3B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3B58: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -8911,8 +12731,8 @@ L_08AE3B58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3B78: @@ -8950,22 +12770,35 @@ L_08AE3BB0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(28), 0u); aot_gpr_31 = (0x08AE3BC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 988u, 0x08AE3BC0u, 0x08B247B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 65u, 0x08B247B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3BC0u) goto L_08AE3BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3BC0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3BD0: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3BD8: @@ -9148,8 +12981,21 @@ L_08AE3CF4: aot_gpr_5 = (aot_gpr_16 + static_cast(24)); aot_gpr_31 = (0x08AE3D00u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0183->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0183_entry, 1002u, 0x08AE3D00u, 0x08B24820u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 67u, 0x08B24820u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE3D00u) goto L_08AE3D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE3D00: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(84)))))); aot_gpr_5 = (0u + static_cast(-3)); @@ -9166,8 +13012,8 @@ L_08AE3D10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3D28: @@ -9279,8 +13125,8 @@ L_08AE3E3C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3E58: @@ -9336,8 +13182,8 @@ L_08AE3E58: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3E80: @@ -9395,8 +13241,8 @@ L_08AE3EC4: goto L_08AE3EC8; L_08AE3EC8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3ED0: @@ -9521,8 +13367,8 @@ L_08AE3F7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3F8C: @@ -9592,8 +13438,8 @@ L_08AE3F8C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE3FE8: diff --git a/profiles/vcs/generated/generated_unit_0184.cpp b/profiles/vcs/generated/generated_unit_0184.cpp index adfdfa4..6f8401d 100644 --- a/profiles/vcs/generated/generated_unit_0184.cpp +++ b/profiles/vcs/generated/generated_unit_0184.cpp @@ -842,6 +842,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AE4000u; + if (local_delta_v813 >= 16364u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -861,8 +885,21 @@ L_08AE4000: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE4014u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 2u, 0x08AE4014u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4014u) goto L_08AE4014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4014: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4020u); @@ -886,8 +923,21 @@ L_08AE402C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08AE4048u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 5u, 0x08AE4048u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4048u) goto L_08AE4048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4048: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -899,13 +949,39 @@ L_08AE4050: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AE405Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 7u, 0x08AE405Cu, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE405Cu) goto L_08AE405C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE405C: aot_gpr_31 = (0x08AE4064u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 8u, 0x08AE4064u, 0x0889358Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 537u, 0x0889358Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4064u) goto L_08AE4064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4064: { const bool branch_taken = aot_gpr_17 == 0u; if (branch_taken) { @@ -936,8 +1012,8 @@ L_08AE4088: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE40A4: @@ -955,8 +1031,21 @@ L_08AE40A4: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE40E4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 12u, 0x08AE40E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE40E4u) goto L_08AE40E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE40E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE40F0u); @@ -994,8 +1083,21 @@ L_08AE412C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08AE4138u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 16u, 0x08AE4138u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4138u) goto L_08AE4138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4138: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08AE413C; @@ -1003,8 +1105,21 @@ L_08AE413C: ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AE4148u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 18u, 0x08AE4148u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4148u) goto L_08AE4148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4148: aot_fpr_13 = ctx.fpr[24] + ctx.fpr[0]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_22)); @@ -1094,8 +1209,21 @@ L_08AE41B8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AE41D4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 22u, 0x08AE41D4u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE41D4u) goto L_08AE41D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE41D4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1167,8 +1295,8 @@ L_08AE4248: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE426C: @@ -1180,8 +1308,21 @@ L_08AE426C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE428Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 30u, 0x08AE428Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE428Cu) goto L_08AE428C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE428C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4298u); @@ -1192,8 +1333,21 @@ L_08AE4298: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AE42A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 32u, 0x08AE42A4u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE42A4u) goto L_08AE42A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE42A4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); aot_gpr_4 = (0u | 1u); @@ -1218,8 +1372,8 @@ L_08AE42C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE42F0: @@ -1231,8 +1385,21 @@ L_08AE42F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AE4310u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 35u, 0x08AE4310u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4310u) goto L_08AE4310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4310: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE431Cu); @@ -1247,8 +1414,8 @@ L_08AE431C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4338: @@ -1263,8 +1430,21 @@ L_08AE4338: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AE4370u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 38u, 0x08AE4370u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4370u) goto L_08AE4370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4370: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE437Cu); @@ -1310,8 +1490,8 @@ L_08AE43B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE43D0: @@ -1329,8 +1509,21 @@ L_08AE43D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AE4408u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 42u, 0x08AE4408u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4408u) goto L_08AE4408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4408: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4414u); @@ -1368,8 +1561,21 @@ L_08AE4450: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08AE445Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 46u, 0x08AE445Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE445Cu) goto L_08AE445C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE445C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08AE4460; @@ -1381,8 +1587,21 @@ L_08AE4460: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08AE447Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0185. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 48u, 0x08AE447Cu, 0x08AEBC84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0185_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0185_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0185_entry, 185u, 699u, 0x08AEBC84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE447Cu) goto L_08AE447C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE447C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -1396,8 +1615,8 @@ L_08AE447C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE44A0: @@ -1411,8 +1630,21 @@ L_08AE44A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE44C8u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 50u, 0x08AE44C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE44C8u) goto L_08AE44C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE44C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE44D4u); @@ -1430,8 +1662,21 @@ L_08AE44D4: L_08AE44E0: aot_gpr_31 = (0x08AE44E8u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 53u, 0x08AE44E8u, 0x08AE3E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1011u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1011u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1011u, 0x08AE3E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE44E8u) goto L_08AE44E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE44E8: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -1529,8 +1774,8 @@ L_08AE4578: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4590: @@ -1544,8 +1789,21 @@ L_08AE4590: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AE45B8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 65u, 0x08AE45B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE45B8u) goto L_08AE45B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE45B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE45C4u); @@ -1589,8 +1847,8 @@ L_08AE4610: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE463C: @@ -1604,8 +1862,21 @@ L_08AE463C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE4664u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 69u, 0x08AE4664u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4664u) goto L_08AE4664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4664: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4670u); @@ -1626,8 +1897,8 @@ L_08AE4670: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4698: @@ -1641,8 +1912,21 @@ L_08AE4698: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE46C0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 72u, 0x08AE46C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE46C0u) goto L_08AE46C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE46C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE46CCu); @@ -1724,8 +2008,21 @@ L_08AE4718: L_08AE4734: aot_gpr_31 = (0x08AE473Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 83u, 0x08AE473Cu, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE473Cu) goto L_08AE473C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE473C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(504), aot_gpr_4); @@ -1743,8 +2040,8 @@ L_08AE4744: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4768: @@ -1760,8 +2057,21 @@ L_08AE4768: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE4798u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 86u, 0x08AE4798u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4798u) goto L_08AE4798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4798: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE47A4u); @@ -1778,8 +2088,21 @@ L_08AE47A4: } aot_gpr_31 = (0x08AE47BCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 88u, 0x08AE47BCu, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE47BCu) goto L_08AE47BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE47BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1877,8 +2200,21 @@ L_08AE4848: ctx.fpr[16] = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08AE486Cu); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 99u, 0x08AE486Cu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE486Cu) goto L_08AE486C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE486C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1898,8 +2234,8 @@ L_08AE4878: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4894: @@ -1915,8 +2251,21 @@ L_08AE4894: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE48C4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 102u, 0x08AE48C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE48C4u) goto L_08AE48C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE48C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE48D0u); @@ -1935,8 +2284,21 @@ L_08AE48D0: } aot_gpr_31 = (0x08AE48F0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 104u, 0x08AE48F0u, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE48F0u) goto L_08AE48F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE48F0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2035,8 +2397,21 @@ L_08AE497C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(16))); aot_gpr_31 = (0x08AE49B0u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 115u, 0x08AE49B0u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE49B0u) goto L_08AE49B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE49B0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2056,8 +2431,8 @@ L_08AE49BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE49D8: @@ -2071,8 +2446,21 @@ L_08AE49D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE4A00u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 118u, 0x08AE4A00u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4A00u) goto L_08AE4A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4A00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4A0Cu); @@ -2090,8 +2478,21 @@ L_08AE4A0C: L_08AE4A18: aot_gpr_31 = (0x08AE4A20u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 121u, 0x08AE4A20u, 0x08AE3E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1011u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1011u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1011u, 0x08AE3E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4A20u) goto L_08AE4A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4A20: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -2189,8 +2590,8 @@ L_08AE4AB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4AC8: @@ -2206,8 +2607,21 @@ L_08AE4AC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE4AF8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 133u, 0x08AE4AF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4AF8u) goto L_08AE4AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4AF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4B04u); @@ -2303,8 +2717,8 @@ L_08AE4B8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4BA8: @@ -2316,8 +2730,21 @@ L_08AE4BA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AE4BC8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 145u, 0x08AE4BC8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4BC8u) goto L_08AE4BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4BC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4BD4u); @@ -2332,8 +2759,8 @@ L_08AE4BD4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4BF0: @@ -2347,14 +2774,40 @@ L_08AE4BF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE4C18u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 148u, 0x08AE4C18u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4C18u) goto L_08AE4C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4C18: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); aot_gpr_31 = (0x08AE4C24u); aot_gpr_17 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 149u, 0x08AE4C24u, 0x0896D734u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 378u, 0x0896D734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4C24u) goto L_08AE4C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4C24: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2435,8 +2888,8 @@ L_08AE4CA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4CBC: @@ -2453,8 +2906,21 @@ L_08AE4CBC: ctx.gpr[6] = (0u | 12u); aot_gpr_31 = (0x08AE4CF8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 159u, 0x08AE4CF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4CF8u) goto L_08AE4CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4CF8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -2477,8 +2943,21 @@ L_08AE4CF8: ctx.gpr[10] = (ctx.gpr[10] & 65535u); aot_gpr_31 = (0x08AE4D40u); ctx.gpr[11] = (ctx.gpr[11] & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 160u, 0x08AE4D40u, 0x08AED448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 320u, 0x08AED448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4D40u) goto L_08AE4D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4D40: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2499,8 +2978,8 @@ L_08AE4D54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4D74: @@ -2514,8 +2993,21 @@ L_08AE4D74: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE4D9Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 163u, 0x08AE4D9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4D9Cu) goto L_08AE4D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4D9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 & 65535u); @@ -2536,8 +3028,21 @@ L_08AE4D9C: L_08AE4DCC: aot_gpr_31 = (0x08AE4DD4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 165u, 0x08AE4DD4u, 0x08AED2F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 301u, 0x08AED2F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4DD4u) goto L_08AE4DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4DD4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2556,8 +3061,21 @@ L_08AE4DDC: L_08AE4DE8: aot_gpr_31 = (0x08AE4DF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 168u, 0x08AE4DF0u, 0x08AED308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 302u, 0x08AED308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4DF0u) goto L_08AE4DF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4DF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2569,8 +3087,21 @@ L_08AE4DF8: aot_gpr_17 = (aot_gpr_4 & 65535u); aot_gpr_31 = (0x08AE4E04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 170u, 0x08AE4E04u, 0x08AED308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 302u, 0x08AED308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4E04u) goto L_08AE4E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4E04: aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(44), static_cast(aot_gpr_17)); goto L_08AE4E08; @@ -2584,8 +3115,8 @@ L_08AE4E08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4E20: @@ -2603,8 +3134,21 @@ L_08AE4E20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x08AE4E5Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 173u, 0x08AE4E5Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4E5Cu) goto L_08AE4E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4E5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4E68u); @@ -2645,8 +3189,21 @@ L_08AE4EA4: } L_08AE4EAC: aot_gpr_31 = (0x08AE4EB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 178u, 0x08AE4EB4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4EB4u) goto L_08AE4EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4EB4: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_22; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_22 = std::bit_cast(0x7FC00000u); else aot_fpr_22 = fs * ft; } goto L_08AE4EB8; @@ -2699,8 +3256,8 @@ L_08AE4F08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4F30: @@ -2714,8 +3271,21 @@ L_08AE4F30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE4F58u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 186u, 0x08AE4F58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4F58u) goto L_08AE4F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4F58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4F64u); @@ -2733,8 +3303,21 @@ L_08AE4F64: aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x08AE4F8Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 188u, 0x08AE4F8Cu, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4F8Cu) goto L_08AE4F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4F8C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2745,8 +3328,8 @@ L_08AE4F8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE4FA4: @@ -2762,8 +3345,21 @@ L_08AE4FA4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE4FD4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 190u, 0x08AE4FD4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE4FD4u) goto L_08AE4FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE4FD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE4FE0u); @@ -2862,8 +3458,8 @@ L_08AE5078: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5094: @@ -2878,8 +3474,21 @@ L_08AE5094: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE50C0u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 202u, 0x08AE50C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE50C0u) goto L_08AE50C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE50C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE50CCu); @@ -2893,8 +3502,21 @@ L_08AE50CC: ctx.gpr[6] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE50E4u); aot_gpr_4 = (aot_gpr_4 + static_cast(22192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 204u, 0x08AE50E4u, 0x08861FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 321u, 0x08861FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE50E4u) goto L_08AE50E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE50E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2976,8 +3598,8 @@ L_08AE5164: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5180: @@ -2991,8 +3613,21 @@ L_08AE5180: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE51A8u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 214u, 0x08AE51A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE51A8u) goto L_08AE51A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE51A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE51B4u); @@ -3005,8 +3640,21 @@ L_08AE51B4: ctx.gpr[6] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE51C8u); aot_gpr_4 = (aot_gpr_4 + static_cast(22192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 216u, 0x08AE51C8u, 0x08861F44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 309u, 0x08861F44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE51C8u) goto L_08AE51C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE51C8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3017,8 +3665,8 @@ L_08AE51C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE51E0: @@ -3030,23 +3678,49 @@ L_08AE51E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AE5200u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 218u, 0x08AE5200u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5200u) goto L_08AE5200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5200: aot_gpr_4 = (2239u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08AE5210u); aot_gpr_4 = (aot_gpr_4 + static_cast(22192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 219u, 0x08AE5210u, 0x08861FA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 316u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 316u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 316u, 0x08861FA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5210u) goto L_08AE5210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5210: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5224: @@ -3054,15 +3728,28 @@ L_08AE5224: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AE5234u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 221u, 0x08AE5234u, 0x0886769Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 827u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 827u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 827u, 0x0886769Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5234u) goto L_08AE5234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5234: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5244: @@ -3075,8 +3762,21 @@ L_08AE5244: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE5268u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 223u, 0x08AE5268u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5268u) goto L_08AE5268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5268: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5274u); @@ -3089,8 +3789,21 @@ L_08AE5274: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08AE5288u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 225u, 0x08AE5288u, 0x08863D9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 761u, 0x08863D9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5288u) goto L_08AE5288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5288: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -3169,8 +3882,8 @@ L_08AE530C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5320: @@ -3184,8 +3897,21 @@ L_08AE5320: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE5348u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 235u, 0x08AE5348u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5348u) goto L_08AE5348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5348: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5354u); @@ -3195,8 +3921,21 @@ L_08AE5348: L_08AE5354: aot_gpr_31 = (0x08AE535Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 237u, 0x08AE535Cu, 0x0886417Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 24u, 0x0886417Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE535Cu) goto L_08AE535C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE535C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3213,8 +3952,21 @@ L_08AE5368: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08AE5384u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 239u, 0x08AE5384u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5384u) goto L_08AE5384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5384: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3225,8 +3977,8 @@ L_08AE5384: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE539C: @@ -3240,8 +3992,21 @@ L_08AE539C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE53C4u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 241u, 0x08AE53C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE53C4u) goto L_08AE53C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE53C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE53D0u); @@ -3256,8 +4021,21 @@ L_08AE53D0: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08AE53ECu); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 243u, 0x08AE53ECu, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE53ECu) goto L_08AE53EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE53EC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3268,8 +4046,8 @@ L_08AE53EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5404: @@ -3285,8 +4063,21 @@ L_08AE5404: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE5434u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 245u, 0x08AE5434u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5434u) goto L_08AE5434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5434: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5440u); @@ -3296,8 +4087,21 @@ L_08AE5434: L_08AE5440: aot_gpr_31 = (0x08AE5448u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 247u, 0x08AE5448u, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5448u) goto L_08AE5448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5448: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3317,8 +4121,8 @@ L_08AE545C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5478: @@ -3334,8 +4138,21 @@ L_08AE5478: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE54A8u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 250u, 0x08AE54A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE54A8u) goto L_08AE54A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE54A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE54B4u); @@ -3362,8 +4179,8 @@ L_08AE54CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE54E8: @@ -3375,8 +4192,21 @@ L_08AE54E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AE5508u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 254u, 0x08AE5508u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5508u) goto L_08AE5508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5508: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[2] = (0u | 0u); @@ -3385,8 +4215,8 @@ L_08AE5508: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5524: @@ -3402,8 +4232,21 @@ L_08AE5524: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE5554u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 256u, 0x08AE5554u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5554u) goto L_08AE5554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5554: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5560u); @@ -3493,8 +4336,8 @@ L_08AE5614: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5630: @@ -3508,8 +4351,21 @@ L_08AE5630: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE5658u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 266u, 0x08AE5658u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5658u) goto L_08AE5658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5658: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5664u); @@ -3603,8 +4459,8 @@ L_08AE56E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5700: @@ -3617,8 +4473,21 @@ L_08AE5700: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE5728u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 278u, 0x08AE5728u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5728u) goto L_08AE5728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5728: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5734u); @@ -3732,8 +4601,8 @@ L_08AE57E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE57F8: @@ -3747,8 +4616,21 @@ L_08AE57F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE5820u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 290u, 0x08AE5820u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5820u) goto L_08AE5820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5820: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE582Cu); @@ -3767,8 +4649,8 @@ L_08AE582C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE584C: @@ -3780,8 +4662,21 @@ L_08AE584C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AE586Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 293u, 0x08AE586Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE586Cu) goto L_08AE586C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE586C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5878u); @@ -3810,8 +4705,8 @@ L_08AE58A4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE58B8: @@ -3824,8 +4719,21 @@ L_08AE58B8: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE58E0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 297u, 0x08AE58E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE58E0u) goto L_08AE58E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE58E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE58ECu); @@ -3937,8 +4845,8 @@ L_08AE5990: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE59A8: @@ -3952,8 +4860,21 @@ L_08AE59A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE59D0u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 309u, 0x08AE59D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE59D0u) goto L_08AE59D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE59D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE59DCu); @@ -4043,8 +4964,8 @@ L_08AE5A64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5A7C: @@ -4058,8 +4979,21 @@ L_08AE5A7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE5AA4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 320u, 0x08AE5AA4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5AA4u) goto L_08AE5AA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5AA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5AB0u); @@ -4080,8 +5014,8 @@ L_08AE5AB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5AD8: @@ -4097,8 +5031,21 @@ L_08AE5AD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE5B08u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 323u, 0x08AE5B08u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5B08u) goto L_08AE5B08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5B08: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5B14u); @@ -4127,8 +5074,8 @@ L_08AE5B34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5B50: @@ -4144,8 +5091,21 @@ L_08AE5B50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AE5B80u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 327u, 0x08AE5B80u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5B80u) goto L_08AE5B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5B80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5B8Cu); @@ -4237,8 +5197,8 @@ L_08AE5C18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5C34: @@ -4252,8 +5212,21 @@ L_08AE5C34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(284), aot_gpr_31); aot_gpr_31 = (0x08AE5C5Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 338u, 0x08AE5C5Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5C5Cu) goto L_08AE5C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5C5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5C68u); @@ -4375,8 +5348,8 @@ L_08AE5D54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5D94: @@ -4390,8 +5363,21 @@ L_08AE5D94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE5DBCu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 352u, 0x08AE5DBCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5DBCu) goto L_08AE5DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5DBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5DC8u); @@ -4422,8 +5408,8 @@ L_08AE5DF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5E0C: @@ -4437,8 +5423,21 @@ L_08AE5E0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE5E34u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 356u, 0x08AE5E34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5E34u) goto L_08AE5E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5E34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5E40u); @@ -4479,8 +5478,8 @@ L_08AE5E68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5E80: @@ -4494,8 +5493,21 @@ L_08AE5E80: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE5EA8u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 362u, 0x08AE5EA8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5EA8u) goto L_08AE5EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5EA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5EB4u); @@ -4589,8 +5601,8 @@ L_08AE5F44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5F5C: @@ -4604,8 +5616,21 @@ L_08AE5F5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE5F84u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 374u, 0x08AE5F84u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE5F84u) goto L_08AE5F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE5F84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE5F90u); @@ -4648,8 +5673,8 @@ L_08AE5FC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE5FD8: @@ -4663,8 +5688,21 @@ L_08AE5FD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE6000u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 380u, 0x08AE6000u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6000u) goto L_08AE6000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6000: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE600Cu); @@ -4807,8 +5845,8 @@ L_08AE60FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6114: @@ -4822,8 +5860,21 @@ L_08AE6114: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AE613Cu); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 398u, 0x08AE613Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE613Cu) goto L_08AE613C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE613C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6148u); @@ -4921,8 +5972,8 @@ L_08AE61DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE61F4: @@ -4940,8 +5991,21 @@ L_08AE61F4: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE6234u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 410u, 0x08AE6234u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6234u) goto L_08AE6234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6234: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6240u); @@ -4979,8 +6043,21 @@ L_08AE627C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08AE6288u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 414u, 0x08AE6288u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6288u) goto L_08AE6288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6288: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08AE628C; @@ -4988,8 +6065,21 @@ L_08AE628C: ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AE6298u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 416u, 0x08AE6298u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6298u) goto L_08AE6298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6298: aot_fpr_13 = ctx.fpr[24] + ctx.fpr[0]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_22)); @@ -5067,8 +6157,21 @@ L_08AE6308: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AE6324u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 420u, 0x08AE6324u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6324u) goto L_08AE6324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6324: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5140,8 +6243,8 @@ L_08AE6398: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE63BC: @@ -5154,8 +6257,21 @@ L_08AE63BC: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE63E4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 428u, 0x08AE63E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE63E4u) goto L_08AE63E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE63E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE63F0u); @@ -5381,8 +6497,8 @@ L_08AE6530: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6548: @@ -5395,8 +6511,21 @@ L_08AE6548: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE6578u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 441u, 0x08AE6578u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6578u) goto L_08AE6578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6578: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6584u); @@ -5437,8 +6566,21 @@ L_08AE65C0: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08AE65D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 445u, 0x08AE65D8u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE65D8u) goto L_08AE65D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE65D8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (0u | 14u); @@ -5478,8 +6620,8 @@ L_08AE6624: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6658: @@ -5491,8 +6633,21 @@ L_08AE6658: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE6678u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 448u, 0x08AE6678u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6678u) goto L_08AE6678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6678: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6684u); @@ -5518,8 +6673,8 @@ L_08AE6684: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE66CC: @@ -5532,8 +6687,21 @@ L_08AE66CC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE66F4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 451u, 0x08AE66F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE66F4u) goto L_08AE66F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE66F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6700u); @@ -5556,8 +6724,8 @@ L_08AE6700: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6730: @@ -5571,8 +6739,21 @@ L_08AE6730: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AE6760u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 454u, 0x08AE6760u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6760u) goto L_08AE6760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6760: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE676Cu); @@ -5650,8 +6831,8 @@ L_08AE67D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE67F4: @@ -5665,8 +6846,21 @@ L_08AE67F4: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AE6824u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 460u, 0x08AE6824u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6824u) goto L_08AE6824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6824: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6830u); @@ -5701,8 +6895,8 @@ L_08AE6868: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6884: @@ -5716,8 +6910,21 @@ L_08AE6884: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AE68B4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 464u, 0x08AE68B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE68B4u) goto L_08AE68B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE68B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE68C0u); @@ -5752,8 +6959,8 @@ L_08AE68F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6914: @@ -5767,8 +6974,21 @@ L_08AE6914: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE6944u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 468u, 0x08AE6944u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6944u) goto L_08AE6944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6944: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6950u); @@ -5808,8 +7028,21 @@ L_08AE697C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE698Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 473u, 0x08AE698Cu, 0x08862E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 518u, 0x08862E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE698Cu) goto L_08AE698C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE698C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5906,8 +7139,8 @@ L_08AE6A1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6A38: @@ -5920,8 +7153,21 @@ L_08AE6A38: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE6A60u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 485u, 0x08AE6A60u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6A60u) goto L_08AE6A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6A60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6A6Cu); @@ -5962,8 +7208,8 @@ L_08AE6A94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6AAC: @@ -5978,8 +7224,21 @@ L_08AE6AAC: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AE6AF8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 491u, 0x08AE6AF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6AF8u) goto L_08AE6AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6AF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -6134,8 +7393,21 @@ L_08AE6BEC: } aot_gpr_31 = (0x08AE6C04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 511u, 0x08AE6C04u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6C04u) goto L_08AE6C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6C04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6147,8 +7419,21 @@ L_08AE6C0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6C18u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 513u, 0x08AE6C18u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6C18u) goto L_08AE6C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6C18: aot_gpr_4 = (0u | 2u); ctx.gpr[20] = (ctx.gpr[2] | 0u); @@ -6172,8 +7457,21 @@ L_08AE6C48: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AE6C5Cu); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 515u, 0x08AE6C5Cu, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6C5Cu) goto L_08AE6C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6C5C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6207,8 +7505,8 @@ L_08AE6C78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6CAC: @@ -6221,8 +7519,21 @@ L_08AE6CAC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE6CD4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 519u, 0x08AE6CD4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6CD4u) goto L_08AE6CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6CD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6CE0u); @@ -6240,8 +7551,21 @@ L_08AE6CF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE6CFCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 522u, 0x08AE6CFCu, 0x08B0E3F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 552u, 0x08B0E3F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6CFCu) goto L_08AE6CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6CFC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6252,8 +7576,8 @@ L_08AE6CFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6D14: @@ -6266,8 +7590,21 @@ L_08AE6D14: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE6D3Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 524u, 0x08AE6D3Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6D3Cu) goto L_08AE6D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6D3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6D48u); @@ -6308,8 +7645,8 @@ L_08AE6D70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6D88: @@ -6322,8 +7659,21 @@ L_08AE6D88: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE6DB0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 530u, 0x08AE6DB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6DB0u) goto L_08AE6DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6DB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6DBCu); @@ -6366,8 +7716,8 @@ L_08AE6DEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6E04: @@ -6379,8 +7729,21 @@ L_08AE6E04: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE6E24u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 536u, 0x08AE6E24u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6E24u) goto L_08AE6E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6E24: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -6393,8 +7756,21 @@ L_08AE6E24: L_08AE6E30: aot_gpr_31 = (0x08AE6E38u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 538u, 0x08AE6E38u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6E38u) goto L_08AE6E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6E38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6405,16 +7781,29 @@ L_08AE6E38: L_08AE6E40: aot_gpr_31 = (0x08AE6E48u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 540u, 0x08AE6E48u, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6E48u) goto L_08AE6E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6E48: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6E5C: @@ -6427,8 +7816,21 @@ L_08AE6E5C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE6E84u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 542u, 0x08AE6E84u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6E84u) goto L_08AE6E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6E84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6E90u); @@ -6469,8 +7871,8 @@ L_08AE6EB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6ED0: @@ -6483,8 +7885,21 @@ L_08AE6ED0: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE6EF8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 548u, 0x08AE6EF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6EF8u) goto L_08AE6EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6EF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6F04u); @@ -6569,8 +7984,8 @@ L_08AE6F6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE6F84: @@ -6583,8 +7998,21 @@ L_08AE6F84: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08AE6FB0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 559u, 0x08AE6FB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE6FB0u) goto L_08AE6FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE6FB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE6FBCu); @@ -6655,8 +8083,21 @@ L_08AE6FBC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_31 = (0x08AE7014u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 561u, 0x08AE7014u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7014u) goto L_08AE7014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7014: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16585u << 16u); @@ -6686,8 +8127,21 @@ L_08AE7054: L_08AE7058: aot_gpr_31 = (0x08AE7060u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 565u, 0x08AE7060u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7060u) goto L_08AE7060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7060: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -6699,8 +8153,8 @@ L_08AE7060: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE707C: @@ -6713,8 +8167,21 @@ L_08AE707C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE70A4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 567u, 0x08AE70A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE70A4u) goto L_08AE70A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE70A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE70B0u); @@ -6739,8 +8206,8 @@ L_08AE70B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE70E8: @@ -6753,8 +8220,21 @@ L_08AE70E8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE7110u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 570u, 0x08AE7110u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7110u) goto L_08AE7110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7110: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE711Cu); @@ -6795,8 +8275,8 @@ L_08AE7144: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE715C: @@ -6809,8 +8289,21 @@ L_08AE715C: ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08AE7184u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 576u, 0x08AE7184u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7184u) goto L_08AE7184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7184: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6868,8 +8361,21 @@ L_08AE71F4: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16])); aot_gpr_31 = (0x08AE7214u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 583u, 0x08AE7214u, 0x08894898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 108u, 0x08894898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7214u) goto L_08AE7214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7214: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6880,8 +8386,8 @@ L_08AE7214: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE722C: @@ -6894,8 +8400,21 @@ L_08AE722C: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE7254u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 585u, 0x08AE7254u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7254u) goto L_08AE7254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7254: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7260u); @@ -6985,8 +8504,8 @@ L_08AE72EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7304: @@ -7000,8 +8519,21 @@ L_08AE7304: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08AE7334u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 596u, 0x08AE7334u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7334u) goto L_08AE7334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7334: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7340u); @@ -7016,8 +8548,21 @@ L_08AE7340: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_gpr_31 = (0x08AE735Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 598u, 0x08AE735Cu, 0x0886221Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 344u, 0x0886221Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE735Cu) goto L_08AE735C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE735C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -7029,8 +8574,8 @@ L_08AE735C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7378: @@ -7042,23 +8587,49 @@ L_08AE7378: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE7398u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 600u, 0x08AE7398u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7398u) goto L_08AE7398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7398: aot_gpr_4 = (2239u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(22240)); aot_gpr_31 = (0x08AE73A8u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 601u, 0x08AE73A8u, 0x088622F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 354u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 354u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 354u, 0x088622F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE73A8u) goto L_08AE73A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE73A8: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE73BC: @@ -7071,8 +8642,21 @@ L_08AE73BC: ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); aot_gpr_31 = (0x08AE73E8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 603u, 0x08AE73E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE73E8u) goto L_08AE73E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE73E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE73F4u); @@ -7086,8 +8670,21 @@ L_08AE73F4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_31 = (0x08AE740Cu); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 605u, 0x08AE740Cu, 0x08862374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 359u, 0x08862374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE740Cu) goto L_08AE740C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE740C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7169,8 +8766,8 @@ L_08AE748C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE74A8: @@ -7183,8 +8780,21 @@ L_08AE74A8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE74D0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 615u, 0x08AE74D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE74D0u) goto L_08AE74D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE74D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE74DCu); @@ -7225,8 +8835,8 @@ L_08AE7504: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE751C: @@ -7240,8 +8850,21 @@ L_08AE751C: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AE754Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 621u, 0x08AE754Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE754Cu) goto L_08AE754C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE754C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7558u); @@ -7266,8 +8889,8 @@ L_08AE7568: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7584: @@ -7279,8 +8902,21 @@ L_08AE7584: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE75A4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 625u, 0x08AE75A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE75A4u) goto L_08AE75A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE75A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7292,8 +8928,21 @@ L_08AE75A4: L_08AE75B0: aot_gpr_31 = (0x08AE75B8u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 627u, 0x08AE75B8u, 0x08894CA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 165u, 0x08894CA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE75B8u) goto L_08AE75B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE75B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7304,28 +8953,67 @@ L_08AE75B8: L_08AE75C0: aot_gpr_31 = (0x08AE75C8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 629u, 0x08AE75C8u, 0x08894CA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 165u, 0x08894CA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE75C8u) goto L_08AE75C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE75C8: aot_gpr_31 = (0x08AE75D0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 630u, 0x08AE75D0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE75D0u) goto L_08AE75D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE75D0: aot_gpr_4 = (17786u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08AE75E0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 631u, 0x08AE75E0u, 0x08894D40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 177u, 0x08894D40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE75E0u) goto L_08AE75E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE75E0: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE75F4: @@ -7338,8 +9026,21 @@ L_08AE75F4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE7620u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 633u, 0x08AE7620u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7620u) goto L_08AE7620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7620: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE762Cu); @@ -7370,8 +9071,21 @@ L_08AE763C: L_08AE7650: aot_gpr_31 = (0x08AE7658u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 637u, 0x08AE7658u, 0x08B01C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 479u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 479u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 479u, 0x08B01C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7658u) goto L_08AE7658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7658: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_17 + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 & aot_gpr_16); @@ -7388,8 +9102,8 @@ L_08AE7664: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7680: @@ -7404,8 +9118,21 @@ L_08AE7680: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE76B8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 640u, 0x08AE76B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE76B8u) goto L_08AE76B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE76B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE76C4u); @@ -7519,8 +9246,8 @@ L_08AE773C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE775C: @@ -7533,8 +9260,21 @@ L_08AE775C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE7784u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 645u, 0x08AE7784u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7784u) goto L_08AE7784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7784: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7545,8 +9285,21 @@ L_08AE7784: } L_08AE7790: aot_gpr_31 = (0x08AE7798u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 647u, 0x08AE7798u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7798u) goto L_08AE7798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7798: aot_gpr_31 = (0x08AE77A0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); @@ -7565,8 +9318,21 @@ L_08AE77A8: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08AE77BCu); ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 650u, 0x08AE77BCu, 0x08A067B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 629u, 0x08A067B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE77BCu) goto L_08AE77BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE77BC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7577,8 +9343,8 @@ L_08AE77BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE77D4: @@ -7591,8 +9357,21 @@ L_08AE77D4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE77FCu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 652u, 0x08AE77FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE77FCu) goto L_08AE77FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE77FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7808u); @@ -7646,8 +9425,8 @@ L_08AE783C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7854: @@ -7660,8 +9439,21 @@ L_08AE7854: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE787Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 660u, 0x08AE787Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE787Cu) goto L_08AE787C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE787C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7888u); @@ -7702,8 +9494,8 @@ L_08AE78B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE78C8: @@ -7717,8 +9509,21 @@ L_08AE78C8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE78F8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 666u, 0x08AE78F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE78F8u) goto L_08AE78F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE78F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7904u); @@ -7825,8 +9630,8 @@ L_08AE79AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE79C8: @@ -7840,8 +9645,21 @@ L_08AE79C8: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AE79F8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 679u, 0x08AE79F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE79F8u) goto L_08AE79F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE79F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7A04u); @@ -7868,8 +9686,8 @@ L_08AE7A1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7A38: @@ -7881,8 +9699,21 @@ L_08AE7A38: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE7A58u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 683u, 0x08AE7A58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7A58u) goto L_08AE7A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7A58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7A64u); @@ -7892,16 +9723,29 @@ L_08AE7A58: L_08AE7A64: aot_gpr_31 = (0x08AE7A6Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 685u, 0x08AE7A6Cu, 0x08B0E0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 502u, 0x08B0E0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7A6Cu) goto L_08AE7A6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7A6C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7A80: @@ -7914,8 +9758,21 @@ L_08AE7A80: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE7AA8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 687u, 0x08AE7AA8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7AA8u) goto L_08AE7AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7AA8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7AB4u); @@ -7956,8 +9813,8 @@ L_08AE7ADC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7AF4: @@ -7969,8 +9826,21 @@ L_08AE7AF4: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE7B14u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 693u, 0x08AE7B14u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7B14u) goto L_08AE7B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7B14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7B20u); @@ -7995,8 +9865,8 @@ L_08AE7B34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7B48: @@ -8010,8 +9880,21 @@ L_08AE7B48: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AE7B78u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 698u, 0x08AE7B78u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7B78u) goto L_08AE7B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7B78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7B84u); @@ -8062,8 +9945,8 @@ L_08AE7BB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7BD4: @@ -8076,8 +9959,21 @@ L_08AE7BD4: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08AE7BFCu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 706u, 0x08AE7BFCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7BFCu) goto L_08AE7BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7BFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7C08u); @@ -8102,8 +9998,8 @@ L_08AE7C08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7C40: @@ -8115,8 +10011,21 @@ L_08AE7C40: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE7C60u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 709u, 0x08AE7C60u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7C60u) goto L_08AE7C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7C60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -8127,8 +10036,8 @@ L_08AE7C60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7C84: @@ -8141,8 +10050,21 @@ L_08AE7C84: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE7CACu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 711u, 0x08AE7CACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7CACu) goto L_08AE7CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7CAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7CB8u); @@ -8161,8 +10083,8 @@ L_08AE7CB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7CD8: @@ -8175,8 +10097,21 @@ L_08AE7CD8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE7D00u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 714u, 0x08AE7D00u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7D00u) goto L_08AE7D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7D00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7D0Cu); @@ -8217,8 +10152,8 @@ L_08AE7D34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7D4C: @@ -8231,8 +10166,21 @@ L_08AE7D4C: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE7D78u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 720u, 0x08AE7D78u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7D78u) goto L_08AE7D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7D78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7D84u); @@ -8263,8 +10211,21 @@ L_08AE7D9C: L_08AE7DA8: aot_gpr_31 = (0x08AE7DB0u); aot_gpr_4 = (ctx.gpr[18] + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 725u, 0x08AE7DB0u, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7DB0u) goto L_08AE7DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7DB0: aot_gpr_4 = (ctx.gpr[2] < static_cast(225) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8361,8 +10322,8 @@ L_08AE7E54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE7E70: @@ -8377,8 +10338,21 @@ L_08AE7E70: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE7EACu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 737u, 0x08AE7EACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7EACu) goto L_08AE7EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7EAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE7EB8u); @@ -8503,8 +10477,21 @@ L_08AE7F70: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AE7F7Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 754u, 0x08AE7F7Cu, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7F7Cu) goto L_08AE7F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7F7C: { const bool branch_taken = ctx.gpr[2] != ctx.gpr[20]; if (branch_taken) { @@ -8535,8 +10522,21 @@ L_08AE7F98: L_08AE7FA0: aot_gpr_31 = (0x08AE7FA8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0184->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0184_entry, 759u, 0x08AE7FA8u, 0x08B0D8F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 376u, 0x08B0D8F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE7FA8u) goto L_08AE7FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE7FA8: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); diff --git a/profiles/vcs/generated/generated_unit_0185.cpp b/profiles/vcs/generated/generated_unit_0185.cpp index 0027e3f..545254e 100644 --- a/profiles/vcs/generated/generated_unit_0185.cpp +++ b/profiles/vcs/generated/generated_unit_0185.cpp @@ -821,6 +821,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AE8000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -878,8 +902,8 @@ L_08AE8030: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8054: @@ -892,8 +916,21 @@ L_08AE8054: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AE807Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 7u, 0x08AE807Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE807Cu) goto L_08AE807C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE807C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8088u); @@ -911,8 +948,21 @@ L_08AE8088: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08AE80A4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 9u, 0x08AE80A4u, 0x08832C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 645u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 645u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 645u, 0x08832C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE80A4u) goto L_08AE80A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE80A4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -923,8 +973,8 @@ L_08AE80A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE80BC: @@ -937,8 +987,21 @@ L_08AE80BC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE80E4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 11u, 0x08AE80E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE80E4u) goto L_08AE80E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE80E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE80F0u); @@ -971,8 +1034,21 @@ L_08AE80F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE8128u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 13u, 0x08AE8128u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8128u) goto L_08AE8128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8128: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(208))); @@ -1010,8 +1086,8 @@ L_08AE8164: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE817C: @@ -1024,8 +1100,21 @@ L_08AE817C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE81A4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 18u, 0x08AE81A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE81A4u) goto L_08AE81A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE81A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE81B0u); @@ -1066,8 +1155,8 @@ L_08AE81D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE81F0: @@ -1080,8 +1169,21 @@ L_08AE81F0: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE8218u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 24u, 0x08AE8218u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8218u) goto L_08AE8218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8218: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8224u); @@ -1141,8 +1243,21 @@ L_08AE8294: L_08AE82A8: aot_gpr_31 = (0x08AE82B0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 30u, 0x08AE82B0u, 0x08832D48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 652u, 0x08832D48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE82B0u) goto L_08AE82B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE82B0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1153,8 +1268,8 @@ L_08AE82B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE82C8: @@ -1166,8 +1281,21 @@ L_08AE82C8: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE82E8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 32u, 0x08AE82E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE82E8u) goto L_08AE82E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE82E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE82F4u); @@ -1177,16 +1305,29 @@ L_08AE82E8: L_08AE82F4: aot_gpr_31 = (0x08AE82FCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 34u, 0x08AE82FCu, 0x08832D50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 653u, 0x08832D50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE82FCu) goto L_08AE82FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE82FC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8310: @@ -1199,8 +1340,21 @@ L_08AE8310: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AE8338u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 36u, 0x08AE8338u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8338u) goto L_08AE8338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8338: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8344u); @@ -1218,8 +1372,21 @@ L_08AE8344: aot_gpr_5 = (aot_gpr_5 & 255u); aot_gpr_31 = (0x08AE8360u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 38u, 0x08AE8360u, 0x08832D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 654u, 0x08832D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8360u) goto L_08AE8360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8360: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1230,8 +1397,8 @@ L_08AE8360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8378: @@ -1244,8 +1411,21 @@ L_08AE8378: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE83A0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 40u, 0x08AE83A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE83A0u) goto L_08AE83A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE83A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE83ACu); @@ -1286,8 +1466,8 @@ L_08AE83D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE83EC: @@ -1300,8 +1480,21 @@ L_08AE83EC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE8414u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 46u, 0x08AE8414u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8414u) goto L_08AE8414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8414: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8420u); @@ -1313,8 +1506,21 @@ L_08AE8420: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_31 = (0x08AE8430u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 48u, 0x08AE8430u, 0x089DD23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 180u, 0x089DD23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8430u) goto L_08AE8430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8430: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1325,8 +1531,8 @@ L_08AE8430: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8448: @@ -1338,8 +1544,21 @@ L_08AE8448: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE8468u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 50u, 0x08AE8468u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8468u) goto L_08AE8468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8468: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8474u); @@ -1349,16 +1568,29 @@ L_08AE8468: L_08AE8474: aot_gpr_31 = (0x08AE847Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 52u, 0x08AE847Cu, 0x08832E04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 660u, 0x08832E04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE847Cu) goto L_08AE847C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE847C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8490: @@ -1372,8 +1604,21 @@ L_08AE8490: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE84C0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 54u, 0x08AE84C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE84C0u) goto L_08AE84C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE84C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE84CCu); @@ -1465,8 +1710,8 @@ L_08AE8558: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8574: @@ -1479,8 +1724,21 @@ L_08AE8574: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08AE8598u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 65u, 0x08AE8598u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8598u) goto L_08AE8598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8598: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_gpr_4 << 24u); @@ -1497,8 +1755,8 @@ L_08AE8598: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE85D4: @@ -1510,8 +1768,21 @@ L_08AE85D4: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE85F4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 67u, 0x08AE85F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE85F4u) goto L_08AE85F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE85F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8600u); @@ -1530,13 +1801,39 @@ L_08AE8600: L_08AE8610: aot_gpr_31 = (0x08AE8618u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 70u, 0x08AE8618u, 0x088331D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 711u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 711u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 711u, 0x088331D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8618u) goto L_08AE8618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8618: aot_gpr_31 = (0x08AE8620u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 71u, 0x08AE8620u, 0x08832FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 681u, 0x08832FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8620u) goto L_08AE8620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8620: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1555,16 +1852,29 @@ L_08AE8628: L_08AE8634: aot_gpr_31 = (0x08AE863Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 74u, 0x08AE863Cu, 0x089F1478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 265u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 265u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 265u, 0x089F1478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE863Cu) goto L_08AE863C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE863C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8650: @@ -1576,8 +1886,21 @@ L_08AE8650: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE8670u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 76u, 0x08AE8670u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8670u) goto L_08AE8670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8670: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE867Cu); @@ -1587,16 +1910,29 @@ L_08AE8670: L_08AE867C: aot_gpr_31 = (0x08AE8684u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 78u, 0x08AE8684u, 0x08832F40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 676u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 676u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 676u, 0x08832F40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8684u) goto L_08AE8684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8684: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8698: @@ -1609,8 +1945,21 @@ L_08AE8698: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE86C0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 80u, 0x08AE86C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE86C0u) goto L_08AE86C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE86C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE86CCu); @@ -1649,8 +1998,21 @@ L_08AE86F4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x08AE8718u); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 84u, 0x08AE8718u, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8718u) goto L_08AE8718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8718: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1684,8 +2046,8 @@ L_08AE874C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8764: @@ -1699,8 +2061,21 @@ L_08AE8764: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE8798u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 88u, 0x08AE8798u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8798u) goto L_08AE8798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8798: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE87A4u); @@ -1744,8 +2119,21 @@ L_08AE87D8: L_08AE87DC: aot_gpr_31 = (0x08AE87E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 95u, 0x08AE87E4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE87E4u) goto L_08AE87E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE87E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1837,8 +2225,8 @@ L_08AE8874: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8894: @@ -1853,8 +2241,21 @@ L_08AE8894: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE88C8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 106u, 0x08AE88C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE88C8u) goto L_08AE88C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE88C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE88D4u); @@ -1966,8 +2367,8 @@ L_08AE8980: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE899C: @@ -1978,8 +2379,21 @@ L_08AE899C: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AE89BCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 120u, 0x08AE89BCu, 0x08A06778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 625u, 0x08A06778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE89BCu) goto L_08AE89BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE89BC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -2036,8 +2450,8 @@ L_08AE8A00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8A18: @@ -2052,8 +2466,21 @@ L_08AE8A18: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AE8A64u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 129u, 0x08AE8A64u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8A64u) goto L_08AE8A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8A64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -2198,8 +2625,21 @@ L_08AE8B44: } aot_gpr_31 = (0x08AE8B5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 148u, 0x08AE8B5Cu, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8B5Cu) goto L_08AE8B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8B5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2211,8 +2651,21 @@ L_08AE8B64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8B70u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 150u, 0x08AE8B70u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8B70u) goto L_08AE8B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8B70: ctx.gpr[22] = (ctx.gpr[2] | 0u); goto L_08AE8B74; @@ -2249,8 +2702,8 @@ L_08AE8B90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8BC4: @@ -2263,8 +2716,21 @@ L_08AE8BC4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE8BECu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 155u, 0x08AE8BECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8BECu) goto L_08AE8BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8BEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8BF8u); @@ -2305,8 +2771,8 @@ L_08AE8C20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8C38: @@ -2318,8 +2784,21 @@ L_08AE8C38: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE8C68u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 161u, 0x08AE8C68u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8C68u) goto L_08AE8C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8C68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8C74u); @@ -2344,8 +2823,21 @@ L_08AE8C90: aot_gpr_5 = (0u | 37u); aot_gpr_31 = (0x08AE8CA4u); ctx.gpr[6] = (0u | 5000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 164u, 0x08AE8CA4u, 0x08A40A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 117u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 117u, 0x08A40A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8CA4u) goto L_08AE8CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8CA4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7616)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2367,8 +2859,21 @@ L_08AE8CA4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE8CC8u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 165u, 0x08AE8CC8u, 0x08AE3E58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1010u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1010u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1010u, 0x08AE3E58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8CC8u) goto L_08AE8CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8CC8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2432,8 +2937,21 @@ L_08AE8CC8: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08AE8D1Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0145. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 166u, 0x08AE8D1Cu, 0x08A4842Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); +#else + recomp_unit_0145_entry(rt, ctx, 46u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0145_entry, 145u, 46u, 0x08A4842Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8D1Cu) goto L_08AE8D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8D1C: aot_fpr_20 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(aot_fpr_20)); @@ -2448,8 +2966,21 @@ L_08AE8D1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE8D50u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 167u, 0x08AE8D50u, 0x08A41568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 255u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 255u, 0x08A41568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8D50u) goto L_08AE8D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8D50: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -2458,8 +2989,21 @@ L_08AE8D50: ctx.gpr[6] = (0u | 55u); aot_gpr_31 = (0x08AE8D6Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 168u, 0x08AE8D6Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8D6Cu) goto L_08AE8D6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8D6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(656), aot_gpr_4); @@ -2477,8 +3021,8 @@ L_08AE8D74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8D98: @@ -2490,8 +3034,21 @@ L_08AE8D98: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE8DB8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 171u, 0x08AE8DB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8DB8u) goto L_08AE8DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8DB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8DC4u); @@ -2515,8 +3072,8 @@ L_08AE8DD4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8DE8: @@ -2529,8 +3086,21 @@ L_08AE8DE8: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE8E10u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 176u, 0x08AE8E10u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8E10u) goto L_08AE8E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8E10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8E1Cu); @@ -2635,8 +3205,8 @@ L_08AE8EB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8ED0: @@ -2648,8 +3218,21 @@ L_08AE8ED0: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE8EF0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 189u, 0x08AE8EF0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8EF0u) goto L_08AE8EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8EF0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2676,8 +3259,8 @@ L_08AE8F0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE8F20: @@ -2691,8 +3274,21 @@ L_08AE8F20: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE8F50u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 194u, 0x08AE8F50u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8F50u) goto L_08AE8F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8F50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE8F5Cu); @@ -2726,16 +3322,42 @@ L_08AE8F8C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AE8F98u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 198u, 0x08AE8F98u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8F98u) goto L_08AE8F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8F98: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 2048u); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(76), aot_gpr_4); aot_gpr_31 = (0x08AE8FACu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 199u, 0x08AE8FACu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8FACu) goto L_08AE8FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8FAC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2753,8 +3375,21 @@ L_08AE8FB4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x08AE8FD8u); aot_gpr_4 = (aot_gpr_17 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 201u, 0x08AE8FD8u, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE8FD8u) goto L_08AE8FD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE8FD8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2789,8 +3424,8 @@ L_08AE900C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9028: @@ -2804,8 +3439,21 @@ L_08AE9028: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE9058u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 205u, 0x08AE9058u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9058u) goto L_08AE9058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9058: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9064u); @@ -2837,16 +3485,42 @@ L_08AE908C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE9098u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 209u, 0x08AE9098u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9098u) goto L_08AE9098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9098: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 2048u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(76), aot_gpr_4); aot_gpr_31 = (0x08AE90ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 210u, 0x08AE90ACu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE90ACu) goto L_08AE90AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE90AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2902,8 +3576,21 @@ L_08AE9100: L_08AE9108: aot_gpr_31 = (0x08AE9110u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 217u, 0x08AE9110u, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9110u) goto L_08AE9110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9110: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -2915,8 +3602,8 @@ L_08AE9110: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE912C: @@ -2929,8 +3616,21 @@ L_08AE912C: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE9170u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 219u, 0x08AE9170u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9170u) goto L_08AE9170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9170: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -3014,8 +3714,21 @@ L_08AE91F4: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08AE920Cu); ctx.fpr[15] = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 229u, 0x08AE920Cu, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE920Cu) goto L_08AE920C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE920C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3054,8 +3767,8 @@ L_08AE922C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9260: @@ -3068,8 +3781,21 @@ L_08AE9260: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE9288u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 234u, 0x08AE9288u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9288u) goto L_08AE9288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9288: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9294u); @@ -3080,8 +3806,21 @@ L_08AE9294: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(80))); aot_gpr_31 = (0x08AE92A0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 236u, 0x08AE92A0u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE92A0u) goto L_08AE92A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE92A0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3092,8 +3831,8 @@ L_08AE92A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE92B8: @@ -3105,8 +3844,21 @@ L_08AE92B8: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AE92D8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 238u, 0x08AE92D8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE92D8u) goto L_08AE92D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE92D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE92E4u); @@ -3144,8 +3896,8 @@ L_08AE9318: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE932C: @@ -3158,8 +3910,21 @@ L_08AE932C: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE9354u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 244u, 0x08AE9354u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9354u) goto L_08AE9354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9354: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9360u); @@ -3257,8 +4022,8 @@ L_08AE93F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE940C: @@ -3271,8 +4036,21 @@ L_08AE940C: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE9434u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 256u, 0x08AE9434u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9434u) goto L_08AE9434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9434: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9440u); @@ -3362,8 +4140,8 @@ L_08AE94CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE94E4: @@ -3376,8 +4154,21 @@ L_08AE94E4: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE950Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 267u, 0x08AE950Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE950Cu) goto L_08AE950C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE950C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9518u); @@ -3467,8 +4258,8 @@ L_08AE95A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE95BC: @@ -3481,8 +4272,21 @@ L_08AE95BC: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE95E4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 278u, 0x08AE95E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE95E4u) goto L_08AE95E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE95E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE95F0u); @@ -3572,8 +4376,8 @@ L_08AE967C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9694: @@ -3586,8 +4390,21 @@ L_08AE9694: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE96BCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 289u, 0x08AE96BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE96BCu) goto L_08AE96BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE96BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE96C8u); @@ -3677,8 +4494,8 @@ L_08AE9754: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE976C: @@ -3691,8 +4508,21 @@ L_08AE976C: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AE9794u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 300u, 0x08AE9794u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9794u) goto L_08AE9794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9794: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE97A0u); @@ -3782,8 +4612,8 @@ L_08AE982C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9844: @@ -3796,8 +4626,21 @@ L_08AE9844: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE9878u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 311u, 0x08AE9878u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9878u) goto L_08AE9878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9878: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9884u); @@ -3840,8 +4683,21 @@ L_08AE98B4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08AE98F8u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 315u, 0x08AE98F8u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE98F8u) goto L_08AE98F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE98F8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -3850,8 +4706,21 @@ L_08AE98F8: ctx.gpr[6] = (0u | 23u); aot_gpr_31 = (0x08AE9914u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 316u, 0x08AE9914u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9914u) goto L_08AE9914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9914: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -3865,8 +4734,8 @@ L_08AE9914: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9938: @@ -3882,8 +4751,21 @@ L_08AE9938: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE9988u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 318u, 0x08AE9988u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9988u) goto L_08AE9988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9988: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -3974,8 +4856,21 @@ L_08AE9A10: } aot_gpr_31 = (0x08AE9A28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 329u, 0x08AE9A28u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9A28u) goto L_08AE9A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9A28: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3987,8 +4882,21 @@ L_08AE9A30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9A3Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 331u, 0x08AE9A3Cu, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9A3Cu) goto L_08AE9A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9A3C: ctx.gpr[21] = (ctx.gpr[2] | 0u); goto L_08AE9A40; @@ -4025,8 +4933,8 @@ L_08AE9A5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9A90: @@ -4040,8 +4948,21 @@ L_08AE9A90: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AE9AC4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 336u, 0x08AE9AC4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9AC4u) goto L_08AE9AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9AC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9AD0u); @@ -4068,8 +4989,21 @@ L_08AE9ADC: L_08AE9AE8: aot_gpr_31 = (0x08AE9AF0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 340u, 0x08AE9AF0u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9AF0u) goto L_08AE9AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9AF0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -4102,8 +5036,8 @@ L_08AE9B14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9B34: @@ -4118,8 +5052,21 @@ L_08AE9B34: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE9B68u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 345u, 0x08AE9B68u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9B68u) goto L_08AE9B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9B68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9B74u); @@ -4148,8 +5095,21 @@ L_08AE9BA8: aot_gpr_17 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AE9BB4u); aot_gpr_4 = (aot_gpr_17 + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 348u, 0x08AE9BB4u, 0x08B0DB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 420u, 0x08B0DB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9BB4u) goto L_08AE9BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9BB4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_17 + static_cast(86)))))); aot_gpr_5 = (0u + static_cast(-943)); @@ -4165,64 +5125,168 @@ L_08AE9BC4: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AE9BD8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 350u, 0x08AE9BD8u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9BD8u) goto L_08AE9BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9BD8: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 13u); ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08AE9BECu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 351u, 0x08AE9BECu, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9BECu) goto L_08AE9BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9BEC: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 18u); ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08AE9C00u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 352u, 0x08AE9C00u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9C00u) goto L_08AE9C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9C00: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 19u); ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AE9C14u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 353u, 0x08AE9C14u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9C14u) goto L_08AE9C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9C14: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 10u); ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AE9C28u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 354u, 0x08AE9C28u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9C28u) goto L_08AE9C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9C28: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 8u); ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08AE9C3Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 355u, 0x08AE9C3Cu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9C3Cu) goto L_08AE9C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9C3C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 11u); ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE9C50u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 356u, 0x08AE9C50u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9C50u) goto L_08AE9C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9C50: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 9u); ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AE9C64u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 357u, 0x08AE9C64u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9C64u) goto L_08AE9C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9C64: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(636), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store16(aot_gpr_17 + static_cast(666), static_cast(0u)); @@ -4258,8 +5322,8 @@ L_08AE9C8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9CD8: @@ -4272,8 +5336,21 @@ L_08AE9CD8: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE9D00u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 360u, 0x08AE9D00u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9D00u) goto L_08AE9D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9D00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9D0Cu); @@ -4318,8 +5395,8 @@ L_08AE9D0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9D5C: @@ -4332,8 +5409,21 @@ L_08AE9D5C: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AE9D84u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 363u, 0x08AE9D84u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9D84u) goto L_08AE9D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9D84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9D90u); @@ -4354,8 +5444,21 @@ L_08AE9D90: aot_fpr_14 = aot_fpr_14 / ctx.fpr[15]; aot_gpr_31 = (0x08AE9DB8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 365u, 0x08AE9DB8u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9DB8u) goto L_08AE9DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9DB8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4366,8 +5469,8 @@ L_08AE9DB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AE9DD0: @@ -4382,8 +5485,21 @@ L_08AE9DD0: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AE9E1Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 367u, 0x08AE9E1Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9E1Cu) goto L_08AE9E1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9E1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AE9E28u); @@ -4442,8 +5558,21 @@ L_08AE9EA4: } L_08AE9EAC: aot_gpr_31 = (0x08AE9EB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 372u, 0x08AE9EB4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9EB4u) goto L_08AE9EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9EB4: { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } goto L_08AE9EB8; @@ -4480,8 +5609,21 @@ L_08AE9EE8: } L_08AE9EF8: aot_gpr_31 = (0x08AE9F00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 377u, 0x08AE9F00u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AE9F00u) goto L_08AE9F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AE9F00: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -4606,8 +5748,8 @@ L_08AE9FD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA00C: @@ -4620,8 +5762,21 @@ L_08AEA00C: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AEA034u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 393u, 0x08AEA034u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA034u) goto L_08AEA034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA034: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA040u); @@ -4664,8 +5819,21 @@ L_08AEA040: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08AEA0A0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 395u, 0x08AEA0A0u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA0A0u) goto L_08AEA0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA0A0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4675,8 +5843,21 @@ L_08AEA0A0: } aot_gpr_31 = (0x08AEA0B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 396u, 0x08AEA0B4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA0B4u) goto L_08AEA0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA0B4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4687,8 +5868,8 @@ L_08AEA0B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA0CC: @@ -4700,8 +5881,21 @@ L_08AEA0CC: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AEA0F0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 398u, 0x08AEA0F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA0F0u) goto L_08AEA0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA0F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA0FCu); @@ -4749,8 +5943,8 @@ L_08AEA150: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA168: @@ -4769,8 +5963,21 @@ L_08AEA168: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AEA1C8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 403u, 0x08AEA1C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA1C8u) goto L_08AEA1C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA1C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -4921,8 +6128,21 @@ L_08AEA2B0: } aot_gpr_31 = (0x08AEA2C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 423u, 0x08AEA2C8u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA2C8u) goto L_08AEA2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA2C8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4934,8 +6154,21 @@ L_08AEA2D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA2DCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 425u, 0x08AEA2DCu, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA2DCu) goto L_08AEA2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA2DC: ctx.gpr[21] = (ctx.gpr[2] | 0u); goto L_08AEA2E0; @@ -4973,8 +6206,8 @@ L_08AEA2FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA334: @@ -4986,8 +6219,21 @@ L_08AEA334: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AEA358u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 430u, 0x08AEA358u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA358u) goto L_08AEA358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA358: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA364u); @@ -5001,31 +6247,83 @@ L_08AEA364: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AEA37Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 432u, 0x08AEA37Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA37Cu) goto L_08AEA37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA37C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 19u); ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AEA390u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 433u, 0x08AEA390u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA390u) goto L_08AEA390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA390: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AEA3A0u); ctx.gpr[6] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 434u, 0x08AEA3A0u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA3A0u) goto L_08AEA3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA3A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 19u); ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AEA3B4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 435u, 0x08AEA3B4u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA3B4u) goto L_08AEA3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA3B4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5036,8 +6334,8 @@ L_08AEA3B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA3CC: @@ -5049,8 +6347,21 @@ L_08AEA3CC: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AEA3ECu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 437u, 0x08AEA3ECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA3ECu) goto L_08AEA3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA3EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA3F8u); @@ -5083,8 +6394,8 @@ L_08AEA420: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA434: @@ -5097,8 +6408,21 @@ L_08AEA434: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEA45Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 443u, 0x08AEA45Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA45Cu) goto L_08AEA45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA45C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA468u); @@ -5139,8 +6463,8 @@ L_08AEA490: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA4A8: @@ -5154,8 +6478,21 @@ L_08AEA4A8: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AEA4E0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 449u, 0x08AEA4E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA4E0u) goto L_08AEA4E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA4E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA4ECu); @@ -5192,8 +6529,21 @@ L_08AEA528: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08AEA534u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 453u, 0x08AEA534u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA534u) goto L_08AEA534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA534: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); @@ -5219,8 +6569,8 @@ L_08AEA554: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA578: @@ -5233,8 +6583,21 @@ L_08AEA578: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AEA5A0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 457u, 0x08AEA5A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA5A0u) goto L_08AEA5A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA5A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA5ACu); @@ -5324,8 +6687,8 @@ L_08AEA638: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA650: @@ -5338,8 +6701,21 @@ L_08AEA650: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEA678u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 468u, 0x08AEA678u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA678u) goto L_08AEA678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA678: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA684u); @@ -5361,8 +6737,8 @@ L_08AEA684: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA6B0: @@ -5376,8 +6752,21 @@ L_08AEA6B0: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AEA6E0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 471u, 0x08AEA6E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA6E0u) goto L_08AEA6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA6E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA6ECu); @@ -5406,8 +6795,8 @@ L_08AEA70C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA728: @@ -5420,8 +6809,21 @@ L_08AEA728: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEA750u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 475u, 0x08AEA750u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA750u) goto L_08AEA750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA750: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA75Cu); @@ -5462,8 +6864,8 @@ L_08AEA784: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA79C: @@ -5476,8 +6878,21 @@ L_08AEA79C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEA7D8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 481u, 0x08AEA7D8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA7D8u) goto L_08AEA7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA7D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEA7E4u); @@ -5520,8 +6935,21 @@ L_08AEA828: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AEA83Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 487u, 0x08AEA83Cu, 0x08B0D978u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 388u, 0x08B0D978u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA83Cu) goto L_08AEA83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA83C: aot_gpr_4 = (aot_gpr_17 + static_cast(-5)); aot_gpr_5 = (aot_gpr_4 < static_cast(13) ? 1u : 0u); @@ -5537,8 +6965,8 @@ L_08AEA84C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(17064))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEA864: @@ -5547,8 +6975,21 @@ L_08AEA864: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08AEA878u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 490u, 0x08AEA878u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA878u) goto L_08AEA878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA878: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5562,8 +7003,21 @@ L_08AEA880: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AEA894u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 492u, 0x08AEA894u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA894u) goto L_08AEA894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA894: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5577,8 +7031,21 @@ L_08AEA89C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEA8B0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 494u, 0x08AEA8B0u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA8B0u) goto L_08AEA8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA8B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5592,8 +7059,21 @@ L_08AEA8B8: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08AEA8CCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 496u, 0x08AEA8CCu, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA8CCu) goto L_08AEA8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA8CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5607,8 +7087,21 @@ L_08AEA8D4: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AEA8E8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 498u, 0x08AEA8E8u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA8E8u) goto L_08AEA8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA8E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5622,8 +7115,21 @@ L_08AEA8F0: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AEA904u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 500u, 0x08AEA904u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA904u) goto L_08AEA904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA904: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5637,8 +7143,21 @@ L_08AEA90C: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08AEA920u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 502u, 0x08AEA920u, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA920u) goto L_08AEA920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA920: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5652,8 +7171,21 @@ L_08AEA928: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AEA93Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 504u, 0x08AEA93Cu, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA93Cu) goto L_08AEA93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA93C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5667,8 +7199,21 @@ L_08AEA944: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEA958u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 506u, 0x08AEA958u, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA958u) goto L_08AEA958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA958: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5682,8 +7227,21 @@ L_08AEA960: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08AEA974u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 508u, 0x08AEA974u, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA974u) goto L_08AEA974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA974: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5697,8 +7255,21 @@ L_08AEA97C: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AEA990u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 510u, 0x08AEA990u, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA990u) goto L_08AEA990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA990: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5712,8 +7283,21 @@ L_08AEA998: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08AEA9ACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 512u, 0x08AEA9ACu, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA9ACu) goto L_08AEA9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA9AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5727,8 +7311,21 @@ L_08AEA9B4: ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08AEA9C8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 514u, 0x08AEA9C8u, 0x08831790u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 322u, 0x08831790u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEA9C8u) goto L_08AEA9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEA9C8: aot_gpr_17 = (aot_gpr_17 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_17) < 18 ? 1u : 0u); @@ -5753,8 +7350,8 @@ L_08AEA9D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEAA04: @@ -5767,8 +7364,21 @@ L_08AEAA04: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AEAA2Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 517u, 0x08AEAA2Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAA2Cu) goto L_08AEAA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAA2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEAA38u); @@ -5862,8 +7472,8 @@ L_08AEAAD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEAAEC: @@ -5873,8 +7483,21 @@ L_08AEAAEC: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEAB14u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 528u, 0x08AEAB14u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAB14u) goto L_08AEAB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAB14: aot_gpr_17 = (aot_gpr_16 + static_cast(16)); ctx.gpr[18] = (2236u << 16u); @@ -5884,8 +7507,21 @@ L_08AEAB14: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08AEAB34u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 529u, 0x08AEAB34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAB34u) goto L_08AEAB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAB34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEAB40u); @@ -5897,8 +7533,21 @@ L_08AEAB40: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AEAB50u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 531u, 0x08AEAB50u, 0x08AE3F8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1035u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1035u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1035u, 0x08AE3F8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAB50u) goto L_08AEAB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAB50: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5956,8 +7605,21 @@ L_08AEAB98: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AEAC00u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 533u, 0x08AEAC00u, 0x088631C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAC00u) goto L_08AEAC00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAC00: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -5971,8 +7633,21 @@ L_08AEAC00: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AEAC34u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 534u, 0x08AEAC34u, 0x088631C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAC34u) goto L_08AEAC34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAC34: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -5986,8 +7661,21 @@ L_08AEAC34: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AEAC68u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 535u, 0x08AEAC68u, 0x088631C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAC68u) goto L_08AEAC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAC68: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -6001,8 +7689,21 @@ L_08AEAC68: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AEAC9Cu); ctx.gpr[8] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 536u, 0x08AEAC9Cu, 0x088631C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAC9Cu) goto L_08AEAC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAC9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), aot_gpr_4); @@ -6031,8 +7732,8 @@ L_08AEACCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEACF0: @@ -6045,8 +7746,21 @@ L_08AEACF0: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEAD1Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 539u, 0x08AEAD1Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAD1Cu) goto L_08AEAD1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAD1C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); @@ -6132,8 +7846,21 @@ L_08AEADBC: L_08AEADCC: aot_gpr_31 = (0x08AEADD4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 550u, 0x08AEADD4u, 0x08AA2FB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 764u, 0x08AA2FB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEADD4u) goto L_08AEADD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEADD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(260), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); @@ -6166,8 +7893,21 @@ L_08AEAE24: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AEAE30u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 553u, 0x08AEAE30u, 0x08AA3070u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 774u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 774u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 774u, 0x08AA3070u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAE30u) goto L_08AEAE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAE30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(264), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(264))); @@ -6195,8 +7935,8 @@ L_08AEAE30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEAE8C: @@ -6209,8 +7949,21 @@ L_08AEAE8C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEAEB8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 555u, 0x08AEAEB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAEB8u) goto L_08AEAEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAEB8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); @@ -6296,8 +8049,21 @@ L_08AEAF58: L_08AEAF68: aot_gpr_31 = (0x08AEAF70u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 566u, 0x08AEAF70u, 0x08AA312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 784u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 784u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 784u, 0x08AA312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAF70u) goto L_08AEAF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAF70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(260), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); @@ -6330,8 +8096,21 @@ L_08AEAFC0: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AEAFCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 569u, 0x08AEAFCCu, 0x08AA31E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 794u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 794u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 794u, 0x08AA31E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEAFCCu) goto L_08AEAFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEAFCC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(264), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(264))); @@ -6359,8 +8138,8 @@ L_08AEAFCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB028: @@ -6374,8 +8153,21 @@ L_08AEB028: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AEB058u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 571u, 0x08AEB058u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB058u) goto L_08AEB058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB058: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB064u); @@ -6402,8 +8194,8 @@ L_08AEB07C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB098: @@ -6417,8 +8209,21 @@ L_08AEB098: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AEB0C8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 575u, 0x08AEB0C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB0C8u) goto L_08AEB0C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB0C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB0D4u); @@ -6445,8 +8250,8 @@ L_08AEB0EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB108: @@ -6460,8 +8265,21 @@ L_08AEB108: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AEB138u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 579u, 0x08AEB138u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB138u) goto L_08AEB138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB138: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB144u); @@ -6505,8 +8323,8 @@ L_08AEB180: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB19C: @@ -6520,8 +8338,21 @@ L_08AEB19C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AEB1CCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 585u, 0x08AEB1CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB1CCu) goto L_08AEB1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB1CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB1D8u); @@ -6565,8 +8396,8 @@ L_08AEB214: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB230: @@ -6578,8 +8409,21 @@ L_08AEB230: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AEB254u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 591u, 0x08AEB254u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB254u) goto L_08AEB254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB254: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB260u); @@ -6592,8 +8436,21 @@ L_08AEB260: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEB274u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 593u, 0x08AEB274u, 0x08B0D940u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 382u, 0x08B0D940u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB274u) goto L_08AEB274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB274: aot_gpr_4 = (ctx.gpr[2] & 255u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6615,15 +8472,41 @@ L_08AEB28C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AEB29Cu); ctx.gpr[6] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 596u, 0x08AEB29Cu, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB29Cu) goto L_08AEB29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB29C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(1336))); aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AEB2ACu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 597u, 0x08AEB2ACu, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB2ACu) goto L_08AEB2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB2AC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6634,8 +8517,8 @@ L_08AEB2AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB2C4: @@ -6648,8 +8531,21 @@ L_08AEB2C4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEB2ECu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 599u, 0x08AEB2ECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB2ECu) goto L_08AEB2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB2EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB2F8u); @@ -6725,8 +8621,21 @@ L_08AEB308: ctx.gpr[6] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AEB344u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 602u, 0x08AEB344u, 0x0893FA88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 828u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 828u, 0x0893FA88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB344u) goto L_08AEB344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB344: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6737,8 +8646,8 @@ L_08AEB344: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB35C: @@ -6750,8 +8659,21 @@ L_08AEB35C: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AEB37Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 604u, 0x08AEB37Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB37Cu) goto L_08AEB37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB37C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB388u); @@ -6765,8 +8687,8 @@ L_08AEB388: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB3A0: @@ -6780,8 +8702,21 @@ L_08AEB3A0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AEB3D0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 607u, 0x08AEB3D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB3D0u) goto L_08AEB3D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB3D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB3DCu); @@ -6791,8 +8726,21 @@ L_08AEB3D0: L_08AEB3DC: aot_gpr_31 = (0x08AEB3E4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 609u, 0x08AEB3E4u, 0x08B00BC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 198u, 0x08B00BC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB3E4u) goto L_08AEB3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB3E4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6849,8 +8797,8 @@ L_08AEB434: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB450: @@ -6864,8 +8812,21 @@ L_08AEB450: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AEB480u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 617u, 0x08AEB480u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB480u) goto L_08AEB480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB480: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB48Cu); @@ -6875,8 +8836,21 @@ L_08AEB480: L_08AEB48C: aot_gpr_31 = (0x08AEB494u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 619u, 0x08AEB494u, 0x08B00BC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 198u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 198u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 198u, 0x08B00BC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB494u) goto L_08AEB494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB494: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6901,8 +8875,21 @@ L_08AEB4A0: L_08AEB4BC: aot_gpr_31 = (0x08AEB4C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 622u, 0x08AEB4C4u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB4C4u) goto L_08AEB4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB4C4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(29704), ctx.gpr[2]); @@ -6933,8 +8920,8 @@ L_08AEB4E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB500: @@ -6947,8 +8934,21 @@ L_08AEB500: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEB528u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 627u, 0x08AEB528u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB528u) goto L_08AEB528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB528: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08AEB534u); @@ -6977,8 +8977,8 @@ L_08AEB534: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB57C: @@ -6991,8 +8991,21 @@ L_08AEB57C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEB5A4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 630u, 0x08AEB5A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB5A4u) goto L_08AEB5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB5A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB5B0u); @@ -7021,8 +9034,8 @@ L_08AEB5B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB5F8: @@ -7035,8 +9048,21 @@ L_08AEB5F8: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AEB620u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 633u, 0x08AEB620u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB620u) goto L_08AEB620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB620: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB62Cu); @@ -7061,8 +9087,8 @@ L_08AEB62C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB65C: @@ -7076,8 +9102,21 @@ L_08AEB65C: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AEB68Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 636u, 0x08AEB68Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB68Cu) goto L_08AEB68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB68C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB698u); @@ -7087,8 +9126,21 @@ L_08AEB68C: L_08AEB698: aot_gpr_31 = (0x08AEB6A0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 638u, 0x08AEB6A0u, 0x08B00BF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 203u, 0x08B00BF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB6A0u) goto L_08AEB6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB6A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08AEB6ACu); @@ -7114,8 +9166,8 @@ L_08AEB6C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB6DC: @@ -7128,8 +9180,21 @@ L_08AEB6DC: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08AEB70Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 642u, 0x08AEB70Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB70Cu) goto L_08AEB70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB70C: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); @@ -7191,8 +9256,8 @@ L_08AEB764: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB7A0: @@ -7204,8 +9269,21 @@ L_08AEB7A0: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AEB7C0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 649u, 0x08AEB7C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB7C0u) goto L_08AEB7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB7C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB7CCu); @@ -7220,8 +9298,8 @@ L_08AEB7CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB7E8: @@ -7234,8 +9312,21 @@ L_08AEB7E8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEB810u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 652u, 0x08AEB810u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB810u) goto L_08AEB810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB810: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB81Cu); @@ -7261,8 +9352,8 @@ L_08AEB81C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB858: @@ -7274,8 +9365,21 @@ L_08AEB858: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AEB878u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 655u, 0x08AEB878u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB878u) goto L_08AEB878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB878: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB884u); @@ -7286,16 +9390,29 @@ L_08AEB884: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(80))); aot_gpr_31 = (0x08AEB890u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 657u, 0x08AEB890u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB890u) goto L_08AEB890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB890: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB8A4: @@ -7308,8 +9425,21 @@ L_08AEB8A4: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AEB8CCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 659u, 0x08AEB8CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB8CCu) goto L_08AEB8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB8CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB8D8u); @@ -7320,8 +9450,21 @@ L_08AEB8D8: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AEB8E4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 661u, 0x08AEB8E4u, 0x08AE3ED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1019u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1019u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1019u, 0x08AE3ED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB8E4u) goto L_08AEB8E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB8E4: aot_gpr_4 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); @@ -7392,8 +9535,8 @@ L_08AEB958: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEB970: @@ -7406,8 +9549,21 @@ L_08AEB970: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08AEB998u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 669u, 0x08AEB998u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB998u) goto L_08AEB998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB998: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEB9A4u); @@ -7418,8 +9574,21 @@ L_08AEB9A4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AEB9B0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 671u, 0x08AEB9B0u, 0x08AE3ED0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1019u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1019u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1019u, 0x08AE3ED0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEB9B0u) goto L_08AEB9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEB9B0: aot_gpr_4 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_4 = (aot_gpr_4 & 255u); @@ -7490,8 +9659,8 @@ L_08AEBA24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEBA3C: @@ -7504,8 +9673,21 @@ L_08AEBA3C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEBA64u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 679u, 0x08AEBA64u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBA64u) goto L_08AEBA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBA64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEBA70u); @@ -7531,8 +9713,8 @@ L_08AEBA70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEBAAC: @@ -7546,8 +9728,21 @@ L_08AEBAAC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEBADCu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 682u, 0x08AEBADCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBADCu) goto L_08AEBADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBADC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEBAE8u); @@ -7600,8 +9795,21 @@ L_08AEBB48: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(0))); aot_gpr_31 = (0x08AEBB60u); ctx.gpr[6] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 687u, 0x08AEBB60u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBB60u) goto L_08AEBB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBB60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(16))); aot_gpr_4 = (aot_gpr_4 << 2u); @@ -7610,8 +9818,21 @@ L_08AEBB60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEBB7Cu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 688u, 0x08AEBB7Cu, 0x08B00014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 3u, 0x08B00014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBB7Cu) goto L_08AEBB7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBB7C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -7623,8 +9844,8 @@ L_08AEBB7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEBB98: @@ -7636,8 +9857,21 @@ L_08AEBB98: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08AEBBB8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 690u, 0x08AEBBB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBBB8u) goto L_08AEBBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBBB8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7664,8 +9898,8 @@ L_08AEBBD4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEBBE8: @@ -7680,8 +9914,21 @@ L_08AEBBE8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08AEBC20u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 695u, 0x08AEBC20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBC20u) goto L_08AEBC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBC20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEBC2Cu); @@ -7693,8 +9940,21 @@ L_08AEBC2C: aot_gpr_4 = (ctx.gpr[2] + static_cast(384)); aot_gpr_31 = (0x08AEBC3Cu); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 697u, 0x08AEBC3Cu, 0x089DCF78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 165u, 0x089DCF78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBC3Cu) goto L_08AEBC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBC3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), aot_gpr_4); @@ -7720,8 +9980,8 @@ L_08AEBC64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEBC84: @@ -7743,8 +10003,21 @@ L_08AEBC84: L_08AEBCC0: aot_gpr_31 = (0x08AEBCC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 701u, 0x08AEBCC8u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBCC8u) goto L_08AEBCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBCC8: aot_fpr_20 = aot_fpr_20 + ctx.fpr[0]; goto L_08AEBCCC; @@ -7795,8 +10068,21 @@ L_08AEBD34: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEBD50u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 706u, 0x08AEBD50u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBD50u) goto L_08AEBD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBD50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7826,8 +10112,21 @@ L_08AEBD84: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEBDA0u); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 709u, 0x08AEBDA0u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBDA0u) goto L_08AEBDA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBDA0: aot_gpr_17 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(533)))))); aot_gpr_4 = (aot_gpr_17 < static_cast(23) ? 1u : 0u); @@ -7843,8 +10142,8 @@ L_08AEBDB0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_17); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(17120))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEBDC8: @@ -7857,8 +10156,21 @@ L_08AEBDC8: L_08AEBDD0: aot_gpr_31 = (0x08AEBDD8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 713u, 0x08AEBDD8u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBDD8u) goto L_08AEBDD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBDD8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7870,15 +10182,41 @@ L_08AEBDE0: aot_gpr_17 = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08AEBDECu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 715u, 0x08AEBDECu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBDECu) goto L_08AEBDEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBDEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08AEBDFCu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 716u, 0x08AEBDFCu, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBDFCu) goto L_08AEBDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBDFC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7912,8 +10250,21 @@ L_08AEBE0C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEBE28u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 719u, 0x08AEBE28u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBE28u) goto L_08AEBE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBE28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7947,8 +10298,21 @@ L_08AEBE38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEBE54u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 722u, 0x08AEBE54u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBE54u) goto L_08AEBE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBE54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7991,8 +10355,21 @@ L_08AEBE70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEBE90u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 726u, 0x08AEBE90u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBE90u) goto L_08AEBE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBE90: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8019,8 +10396,21 @@ L_08AEBE98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEBEB4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 728u, 0x08AEBEB4u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBEB4u) goto L_08AEBEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBEB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8048,8 +10438,8 @@ L_08AEBEC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEBEE8: @@ -8067,13 +10457,39 @@ L_08AEBEE8: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08AEBF4Cu); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 732u, 0x08AEBF4Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBF4Cu) goto L_08AEBF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBF4C: aot_gpr_31 = (0x08AEBF54u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 733u, 0x08AEBF54u, 0x08AECA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 168u, 0x08AECA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBF54u) goto L_08AEBF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBF54: aot_gpr_4 = (49864u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); @@ -8088,8 +10504,21 @@ L_08AEBF64: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AEBF70u); aot_gpr_4 = (0u | 1184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 735u, 0x08AEBF70u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBF70u) goto L_08AEBF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBF70: aot_gpr_16 = (ctx.gpr[2] | 0u); if (aot_gpr_16 == 0u) { @@ -8102,8 +10531,21 @@ L_08AEBF7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEBF8Cu); ctx.gpr[6] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 737u, 0x08AEBF8Cu, 0x088A2F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 689u, 0x088A2F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBF8Cu) goto L_08AEBF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBF8C: ctx.gpr[18] = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -8138,8 +10580,21 @@ L_08AEBFC8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08AEBFD4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 741u, 0x08AEBFD4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBFD4u) goto L_08AEBFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBFD4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[18] = (0u + static_cast(-497)); @@ -8147,8 +10602,21 @@ L_08AEBFD4: L_08AEBFDC: aot_gpr_31 = (0x08AEBFE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0185->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0185_entry, 743u, 0x08AEBFE4u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEBFE4u) goto L_08AEBFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEBFE4: aot_fpr_12 = aot_fpr_20 + ctx.fpr[0]; { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[22]), std::bit_cast(aot_fpr_12)}; diff --git a/profiles/vcs/generated/generated_unit_0186.cpp b/profiles/vcs/generated/generated_unit_0186.cpp index 6c807be..d001e8a 100644 --- a/profiles/vcs/generated/generated_unit_0186.cpp +++ b/profiles/vcs/generated/generated_unit_0186.cpp @@ -937,6 +937,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AEC000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -955,8 +979,21 @@ L_08AEC000: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEC010u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 2u, 0x08AEC010u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC010u) goto L_08AEC010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC010: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); @@ -989,14 +1026,40 @@ L_08AEC05C: L_08AEC068: aot_gpr_31 = (0x08AEC070u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 5u, 0x08AEC070u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC070u) goto L_08AEC070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC070: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEC07Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 6u, 0x08AEC07Cu, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC07Cu) goto L_08AEC07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC07C: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -1027,8 +1090,21 @@ L_08AEC0A8: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08AEC0B4u); aot_gpr_4 = (0u | 1584u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 11u, 0x08AEC0B4u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC0B4u) goto L_08AEC0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC0B4: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1042,8 +1118,21 @@ L_08AEC0C0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEC0D0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 13u, 0x08AEC0D0u, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC0D0u) goto L_08AEC0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC0D0: ctx.gpr[20] = (aot_gpr_16 | 0u); goto L_08AEC0D4; @@ -1076,8 +1165,21 @@ L_08AEC100: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08AEC110u); aot_gpr_4 = (0u | 1632u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 18u, 0x08AEC110u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC110u) goto L_08AEC110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC110: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1091,8 +1193,21 @@ L_08AEC11C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEC12Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 20u, 0x08AEC12Cu, 0x08969648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 304u, 0x08969648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC12Cu) goto L_08AEC12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC12C: ctx.gpr[20] = (aot_gpr_16 | 0u); goto L_08AEC130; @@ -1123,8 +1238,21 @@ L_08AEC154: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEC164u); aot_gpr_4 = (0u | 1984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 25u, 0x08AEC164u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC164u) goto L_08AEC164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC164: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1169,8 +1297,21 @@ L_08AEC1A0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEC1B0u); aot_gpr_4 = (0u | 2080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 32u, 0x08AEC1B0u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC1B0u) goto L_08AEC1B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC1B0: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1185,8 +1326,21 @@ L_08AEC1BC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEC1CCu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 34u, 0x08AEC1CCu, 0x089ED94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 226u, 0x089ED94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC1CCu) goto L_08AEC1CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC1CC: ctx.gpr[17] = (aot_gpr_16 | 0u); ctx.gpr[19] = (ctx.gpr[17] | 0u); @@ -1215,8 +1369,21 @@ L_08AEC1EC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEC1FCu); aot_gpr_4 = (0u | 2064u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 39u, 0x08AEC1FCu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC1FCu) goto L_08AEC1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC1FC: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1231,8 +1398,21 @@ L_08AEC208: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEC218u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 41u, 0x08AEC218u, 0x089D96B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 257u, 0x089D96B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC218u) goto L_08AEC218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC218: ctx.gpr[17] = (aot_gpr_16 | 0u); ctx.gpr[19] = (ctx.gpr[17] | 0u); @@ -1250,8 +1430,21 @@ L_08AEC228: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEC238u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 44u, 0x08AEC238u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC238u) goto L_08AEC238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC238: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1267,8 +1460,21 @@ L_08AEC244: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AEC258u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 46u, 0x08AEC258u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC258u) goto L_08AEC258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC258: ctx.gpr[17] = (aot_gpr_16 | 0u); ctx.gpr[19] = (ctx.gpr[17] | 0u); @@ -1304,16 +1510,42 @@ L_08AEC294: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AEC2A0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 51u, 0x08AEC2A0u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC2A0u) goto L_08AEC2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC2A0: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08AEC2A4; L_08AEC2A4: aot_gpr_31 = (0x08AEC2ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 53u, 0x08AEC2ACu, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC2ACu) goto L_08AEC2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC2AC: aot_fpr_12 = ctx.fpr[24] + ctx.fpr[0]; { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(aot_fpr_12)}; @@ -1344,8 +1576,21 @@ L_08AEC2AC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEC2F0u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 54u, 0x08AEC2F0u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC2F0u) goto L_08AEC2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC2F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[18]); @@ -1356,8 +1601,21 @@ L_08AEC2F0: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(613), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08AEC314u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 55u, 0x08AEC314u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC314u) goto L_08AEC314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC314: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(533), static_cast(aot_gpr_4)); @@ -1381,8 +1639,21 @@ L_08AEC314: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08AEC36Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 56u, 0x08AEC36Cu, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC36Cu) goto L_08AEC36C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC36C: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(615)))))); @@ -1403,14 +1674,40 @@ L_08AEC388: L_08AEC394: aot_gpr_31 = (0x08AEC39Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 59u, 0x08AEC39Cu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC39Cu) goto L_08AEC39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC39C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEC3A8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 60u, 0x08AEC3A8u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC3A8u) goto L_08AEC3A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC3A8: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[23] | 0u); @@ -1443,8 +1740,21 @@ L_08AEC3D0: L_08AEC3DC: aot_gpr_31 = (0x08AEC3E4u); aot_gpr_4 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 65u, 0x08AEC3E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC3E4u) goto L_08AEC3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC3E4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1456,8 +1766,21 @@ L_08AEC3E4: L_08AEC3F0: aot_gpr_31 = (0x08AEC3F8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 67u, 0x08AEC3F8u, 0x08AA4C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 120u, 0x08AA4C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC3F8u) goto L_08AEC3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC3F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1468,8 +1791,21 @@ L_08AEC3F8: L_08AEC400: aot_gpr_31 = (0x08AEC408u); aot_gpr_4 = (0u | 408u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 69u, 0x08AEC408u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC408u) goto L_08AEC408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC408: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1481,8 +1817,21 @@ L_08AEC408: L_08AEC414: aot_gpr_31 = (0x08AEC41Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 71u, 0x08AEC41Cu, 0x089F75BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 655u, 0x089F75BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC41Cu) goto L_08AEC41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC41C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[23] + static_cast(522))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1498,8 +1847,21 @@ L_08AEC428: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AEC440u); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 73u, 0x08AEC440u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC440u) goto L_08AEC440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC440: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[13]{}; @@ -1520,8 +1882,8 @@ L_08AEC440: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEC480: @@ -1535,8 +1897,21 @@ L_08AEC480: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AEC4D4u); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 75u, 0x08AEC4D4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC4D4u) goto L_08AEC4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC4D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5436))); aot_gpr_4 = (static_cast(aot_gpr_4) < 30 ? 1u : 0u); @@ -1589,8 +1964,21 @@ L_08AEC534: L_08AEC53C: aot_gpr_31 = (0x08AEC544u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 82u, 0x08AEC544u, 0x08AD38BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 641u, 0x08AD38BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC544u) goto L_08AEC544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC544: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -1811,8 +2199,8 @@ L_08AEC654: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(17216))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEC66C: @@ -1861,8 +2249,21 @@ L_08AEC6AC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEC6B8u); aot_gpr_4 = (0u | 1584u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 121u, 0x08AEC6B8u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC6B8u) goto L_08AEC6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC6B8: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1876,8 +2277,21 @@ L_08AEC6C4: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AEC6D0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 123u, 0x08AEC6D0u, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC6D0u) goto L_08AEC6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC6D0: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_08AEC6D4; @@ -1896,8 +2310,21 @@ L_08AEC6E8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEC6F4u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 126u, 0x08AEC6F4u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC6F4u) goto L_08AEC6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC6F4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1912,8 +2339,21 @@ L_08AEC700: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AEC710u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 128u, 0x08AEC710u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC710u) goto L_08AEC710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC710: ctx.gpr[17] = (ctx.gpr[18] | 0u); goto L_08AEC714; @@ -1970,15 +2410,41 @@ L_08AEC73C: aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x08AEC798u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 132u, 0x08AEC798u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC798u) goto L_08AEC798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC798: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEC7A8u); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 133u, 0x08AEC7A8u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC7A8u) goto L_08AEC7A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC7A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -1994,8 +2460,21 @@ L_08AEC7A8: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(616), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08AEC7E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 134u, 0x08AEC7E0u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC7E0u) goto L_08AEC7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC7E0: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(533), static_cast(aot_gpr_4)); @@ -2019,14 +2498,40 @@ L_08AEC7E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08AEC838u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 135u, 0x08AEC838u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC838u) goto L_08AEC838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC838: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_31 = (0x08AEC844u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 136u, 0x08AEC844u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC844u) goto L_08AEC844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC844: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[13]{}; @@ -2047,8 +2552,8 @@ L_08AEC844: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEC884: @@ -2110,8 +2615,21 @@ L_08AEC8F4: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08AEC904u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 144u, 0x08AEC904u, 0x08AA25E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 565u, 0x08AA25E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC904u) goto L_08AEC904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC904: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -2134,8 +2652,8 @@ L_08AEC918: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEC930: @@ -2144,8 +2662,21 @@ L_08AEC930: aot_gpr_16 = (aot_gpr_5 | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AEC948u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 147u, 0x08AEC948u, 0x08A8C7F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 79u, 0x08A8C7F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEC948u) goto L_08AEC948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEC948: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_5 = (0u | 0u); @@ -2211,8 +2742,8 @@ L_08AEC9A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEC9B0: @@ -2276,15 +2807,15 @@ L_08AECA04: goto L_08AECA08; L_08AECA08: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECA10: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8672), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECA18: @@ -2379,8 +2910,8 @@ L_08AECA9C: goto L_08AECAA0; L_08AECAA0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECAA8: @@ -2466,8 +2997,8 @@ L_08AECB20: goto L_08AECB24; L_08AECB24: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECB2C: @@ -2554,8 +3085,8 @@ L_08AECBA8: goto L_08AECBAC; L_08AECBAC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECBB4: @@ -2642,8 +3173,8 @@ L_08AECC30: goto L_08AECC34; L_08AECC34: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECC3C: @@ -2729,8 +3260,8 @@ L_08AECCB4: goto L_08AECCB8; L_08AECCB8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECCC0: @@ -2817,8 +3348,8 @@ L_08AECD3C: goto L_08AECD40; L_08AECD40: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECD48: @@ -2905,16 +3436,16 @@ L_08AECDC4: goto L_08AECDC8; L_08AECDC8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECDD0: ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AECDDC: @@ -2953,8 +3484,21 @@ L_08AECDDC: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08AECE7Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 255u, 0x08AECE7Cu, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AECE7Cu) goto L_08AECE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AECE7C: ctx.gpr[8] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_gpr_4 = (0u | 0u); @@ -3049,8 +3593,21 @@ L_08AECF28: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08AECF7Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 262u, 0x08AECF7Cu, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AECF7Cu) goto L_08AECF7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AECF7C: ctx.gpr[18] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(64)))))); aot_gpr_4 = (0u | 0u); @@ -3139,8 +3696,8 @@ L_08AED02C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED054: @@ -3150,8 +3707,21 @@ L_08AED054: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AED07Cu); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 271u, 0x08AED07Cu, 0x08960450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED07Cu) goto L_08AED07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED07C: ctx.gpr[17] = (0u | 0u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); @@ -3304,8 +3874,21 @@ L_08AED174: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08AED198u); aot_fpr_12 = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 280u, 0x08AED198u, 0x08B12378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 497u, 0x08B12378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED198u) goto L_08AED198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED198: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3386,8 +3969,21 @@ L_08AED214: } L_08AED21C: aot_gpr_31 = (0x08AED224u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 291u, 0x08AED224u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED224u) goto L_08AED224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED224: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const float fs = ctx.fpr[24]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -3460,8 +4056,8 @@ L_08AED280: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED2A0: @@ -3484,8 +4080,8 @@ L_08AED2A0: aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(44), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(46), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED2F4: @@ -3494,8 +4090,8 @@ L_08AED2F4: aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10352), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED308: @@ -3517,8 +4113,8 @@ L_08AED328: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED348: @@ -3645,8 +4241,8 @@ L_08AED420: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED434: @@ -3655,8 +4251,8 @@ L_08AED434: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10356), static_cast(0u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10357), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED448: @@ -3722,8 +4318,8 @@ L_08AED508: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED518: @@ -3731,8 +4327,21 @@ L_08AED518: { const std::uint32_t aot_run_words[3]{aot_gpr_16, ctx.gpr[17], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08AED530u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 325u, 0x08AED530u, 0x089603D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 39u, 0x089603D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED530u) goto L_08AED530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED530: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3845,8 +4454,8 @@ L_08AED5E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AED5F8: @@ -3897,8 +4506,21 @@ L_08AED670: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x08AED67Cu); aot_gpr_4 = (0u - aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 347u, 0x08AED67Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED67Cu) goto L_08AED67C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED67C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3919,26 +4541,78 @@ L_08AED690: aot_gpr_16 = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x08AED69Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 350u, 0x08AED69Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED69Cu) goto L_08AED69C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED69C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); ctx.gpr[17] = (aot_gpr_29 + static_cast(84)); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AED6B0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 351u, 0x08AED6B0u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED6B0u) goto L_08AED6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED6B0: aot_gpr_31 = (0x08AED6B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 352u, 0x08AED6B8u, 0x08B41D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 443u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 443u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 443u, 0x08B41D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED6B8u) goto L_08AED6B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED6B8: aot_gpr_31 = (0x08AED6C0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 353u, 0x08AED6C0u, 0x08B42280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 511u, 0x08B42280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED6C0u) goto L_08AED6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED6C0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = static_cast(ctx.gpr[19]) >= 0; @@ -3973,8 +4647,21 @@ L_08AED6E8: L_08AED6F0: aot_gpr_31 = (0x08AED6F8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 359u, 0x08AED6F8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED6F8u) goto L_08AED6F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED6F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4034,8 +4721,21 @@ L_08AED748: aot_gpr_6 = (ctx.gpr[28] + static_cast(48)); aot_gpr_31 = (0x08AED758u); aot_gpr_5 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 368u, 0x08AED758u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED758u) goto L_08AED758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED758: { const bool branch_taken = 0u == 0u; ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -4058,8 +4758,21 @@ L_08AED774: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AED780u); aot_gpr_4 = (0u | 1184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 371u, 0x08AED780u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED780u) goto L_08AED780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED780: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (16457u << 16u); @@ -4084,8 +4797,21 @@ L_08AED7B4: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AED7C4u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 373u, 0x08AED7C4u, 0x088A2F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 689u, 0x088A2F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED7C4u) goto L_08AED7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED7C4: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AED7C8; @@ -4117,8 +4843,21 @@ L_08AED804: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x08AED810u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 377u, 0x08AED810u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED810u) goto L_08AED810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED810: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4220,8 +4959,21 @@ L_08AED8A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08AED8F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 387u, 0x08AED8F8u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED8F8u) goto L_08AED8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED8F8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(16), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -4245,8 +4997,21 @@ L_08AED910: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08AED924u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 390u, 0x08AED924u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED924u) goto L_08AED924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED924: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08AED928; @@ -4338,8 +5103,21 @@ L_08AED9BC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AED9C8u); aot_gpr_4 = (0u | 1984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 401u, 0x08AED9C8u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED9C8u) goto L_08AED9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED9C8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4371,8 +5149,21 @@ L_08AED9F0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AED9FCu); aot_gpr_4 = (0u | 2080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 406u, 0x08AED9FCu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AED9FCu) goto L_08AED9FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AED9FC: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4386,8 +5177,21 @@ L_08AEDA08: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AEDA14u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 408u, 0x08AEDA14u, 0x089ED94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 226u, 0x089ED94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDA14u) goto L_08AEDA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDA14: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AEDA18; @@ -4404,8 +5208,21 @@ L_08AEDA24: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEDA30u); aot_gpr_4 = (0u | 2064u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 411u, 0x08AEDA30u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDA30u) goto L_08AEDA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDA30: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4419,8 +5236,21 @@ L_08AEDA3C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AEDA48u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 413u, 0x08AEDA48u, 0x089D96B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 257u, 0x089D96B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDA48u) goto L_08AEDA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDA48: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AEDA4C; @@ -4437,8 +5267,21 @@ L_08AEDA58: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEDA64u); aot_gpr_4 = (0u | 1584u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 416u, 0x08AEDA64u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDA64u) goto L_08AEDA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDA64: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4452,8 +5295,21 @@ L_08AEDA70: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AEDA7Cu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 418u, 0x08AEDA7Cu, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDA7Cu) goto L_08AEDA7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDA7C: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AEDA80; @@ -4473,8 +5329,21 @@ L_08AEDA98: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEDAA4u); aot_gpr_4 = (0u | 1632u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 421u, 0x08AEDAA4u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDAA4u) goto L_08AEDAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDAA4: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4488,8 +5357,21 @@ L_08AEDAB0: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AEDABCu); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 423u, 0x08AEDABCu, 0x08969648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 304u, 0x08969648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDABCu) goto L_08AEDABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDABC: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AEDAC0; @@ -4509,8 +5391,21 @@ L_08AEDAD8: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AEDAE4u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 426u, 0x08AEDAE4u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDAE4u) goto L_08AEDAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDAE4: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4525,8 +5420,21 @@ L_08AEDAF0: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AEDB00u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 428u, 0x08AEDB00u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDB00u) goto L_08AEDB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDB00: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08AEDB04; @@ -4537,8 +5445,21 @@ L_08AEDB04: L_08AEDB0C: aot_gpr_31 = (0x08AEDB14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 431u, 0x08AEDB14u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDB14u) goto L_08AEDB14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDB14: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); aot_gpr_5 = (0u + static_cast(-65)); @@ -4568,8 +5489,21 @@ L_08AEDB30: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(613), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08AEDB58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 434u, 0x08AEDB58u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDB58u) goto L_08AEDB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDB58: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); @@ -4596,8 +5530,21 @@ L_08AEDB58: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08AEDB94u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 435u, 0x08AEDB94u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDB94u) goto L_08AEDB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDB94: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(192), aot_run_words); @@ -4607,8 +5554,21 @@ L_08AEDB94: } aot_gpr_31 = (0x08AEDBA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 436u, 0x08AEDBA8u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDBA8u) goto L_08AEDBA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDBA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[23]); @@ -4617,8 +5577,21 @@ L_08AEDBA8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(680), ctx.gpr[22]); aot_gpr_31 = (0x08AEDBC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 437u, 0x08AEDBC4u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDBC4u) goto L_08AEDBC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDBC4: aot_gpr_31 = (0x08AEDBCCu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDBCCu) goto L_08AEDBCC; @@ -4708,8 +5681,21 @@ L_08AEDC84: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_gpr_31 = (0x08AEDC90u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 449u, 0x08AEDC90u, 0x08AA2FB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 764u, 0x08AA2FB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDC90u) goto L_08AEDC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDC90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(208), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(208))); @@ -4742,8 +5728,21 @@ L_08AEDCE0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(20))); aot_gpr_31 = (0x08AEDCECu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 452u, 0x08AEDCECu, 0x08AA3070u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 774u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 774u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 774u, 0x08AA3070u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDCECu) goto L_08AEDCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDCEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(212), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); @@ -4797,8 +5796,21 @@ L_08AEDD68: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(24))); aot_gpr_31 = (0x08AEDD74u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 457u, 0x08AEDD74u, 0x08AA312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 784u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 784u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 784u, 0x08AA312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDD74u) goto L_08AEDD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDD74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(216), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(216))); @@ -4833,8 +5845,21 @@ L_08AEDDC4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AEDDD8u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 460u, 0x08AEDDD8u, 0x08AA31E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 794u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 794u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 794u, 0x08AA31E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDDD8u) goto L_08AEDDD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDDD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(220), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(220))); @@ -4858,14 +5883,40 @@ L_08AEDE1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08AEDE28u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 462u, 0x08AEDE28u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDE28u) goto L_08AEDE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDE28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AEDE34u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 463u, 0x08AEDE34u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDE34u) goto L_08AEDE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDE34: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(40), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(44))); @@ -4919,20 +5970,20 @@ L_08AEDE78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEDEB8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEDEC0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEDEC8: @@ -4943,8 +5994,21 @@ L_08AEDEC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AEDEE4u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 472u, 0x08AEDEE4u, 0x08B21418u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 251u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 251u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 251u, 0x08B21418u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEDEE4u) goto L_08AEDEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEDEE4: aot_gpr_5 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_5 == 0u; @@ -5010,8 +6074,8 @@ L_08AEDF74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEDF88: @@ -5056,8 +6120,21 @@ L_08AEDFFC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AEE028u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 479u, 0x08AEE028u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEE028u) goto L_08AEE028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEE028: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-25556))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5148,8 +6225,8 @@ L_08AEE0EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE120: @@ -5179,8 +6256,21 @@ L_08AEE158: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AEE184u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 488u, 0x08AEE184u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEE184u) goto L_08AEE184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEE184: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-25556))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5277,8 +6367,8 @@ L_08AEE24C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE294: @@ -5311,8 +6401,21 @@ L_08AEE2E0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AEE30Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 497u, 0x08AEE30Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEE30Cu) goto L_08AEE30C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEE30C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-25556))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5361,8 +6464,21 @@ L_08AEE368: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08AEE388u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 502u, 0x08AEE388u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEE388u) goto L_08AEE388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEE388: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(29552))); aot_gpr_5 = (4736u << 16u); @@ -5452,8 +6568,8 @@ L_08AEE44C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE49C: @@ -5507,8 +6623,8 @@ L_08AEE520: goto L_08AEE560; L_08AEE560: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE568: @@ -5527,8 +6643,21 @@ L_08AEE568: aot_gpr_6 = (aot_gpr_6 + aot_gpr_4); aot_gpr_31 = (0x08AEE5A4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 512u, 0x08AEE5A4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEE5A4u) goto L_08AEE5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEE5A4: aot_gpr_4 = (0u | 0u); aot_gpr_6 = (aot_gpr_4 < ctx.gpr[17] ? 1u : 0u); @@ -5572,8 +6701,8 @@ L_08AEE5F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE610: @@ -5615,8 +6744,21 @@ L_08AEE668: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AEE678u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 518u, 0x08AEE678u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEE678u) goto L_08AEE678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEE678: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5682,8 +6824,8 @@ L_08AEE6F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE70C: @@ -5718,8 +6860,8 @@ L_08AEE70C: aot_gpr_5 = (aot_gpr_5 + static_cast(48)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE7B0: @@ -5825,8 +6967,8 @@ L_08AEE8B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE8D0: @@ -5834,8 +6976,8 @@ L_08AEE8D0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(92), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEE8E0: @@ -5881,8 +7023,21 @@ L_08AEE94C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEE970u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 539u, 0x08AEE970u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEE970u) goto L_08AEE970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEE970: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(96))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(88))); @@ -5989,8 +7144,8 @@ L_08AEEA70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEEA94: @@ -6046,8 +7201,8 @@ L_08AEEB00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEEB18: @@ -6115,8 +7270,8 @@ L_08AEEBA0: goto L_08AEEBA4; L_08AEEBA4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEEBAC: @@ -6178,8 +7333,8 @@ L_08AEEC30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEEC48: @@ -6237,8 +7392,8 @@ L_08AEEC48: aot_fpr_12 = aot_fpr_13 + aot_fpr_12; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEECF8: @@ -6368,8 +7523,21 @@ L_08AEED94: } L_08AEED9C: aot_gpr_31 = (0x08AEEDA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 581u, 0x08AEEDA4u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEDA4u) goto L_08AEEDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEDA4: { const bool branch_taken = static_cast(ctx.gpr[2]) >= 0; if (branch_taken) { @@ -6394,8 +7562,21 @@ L_08AEEDB4: } L_08AEEDBC: aot_gpr_31 = (0x08AEEDC4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 585u, 0x08AEEDC4u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEDC4u) goto L_08AEEDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEDC4: { const bool branch_taken = static_cast(ctx.gpr[2]) > 0; if (branch_taken) { @@ -6420,8 +7601,21 @@ L_08AEEDD4: } L_08AEEDDC: aot_gpr_31 = (0x08AEEDE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 589u, 0x08AEEDE4u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEDE4u) goto L_08AEEDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEDE4: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 3 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6468,14 +7662,27 @@ L_08AEEE14: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(17720))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEEE2C: aot_gpr_31 = (0x08AEEE34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 596u, 0x08AEEE34u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEE34u) goto L_08AEEE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEE34: { const bool branch_taken = static_cast(ctx.gpr[2]) >= 0; if (branch_taken) { @@ -6501,8 +7708,21 @@ L_08AEEE44: } L_08AEEE4C: aot_gpr_31 = (0x08AEEE54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 600u, 0x08AEEE54u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEE54u) goto L_08AEEE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEE54: { const bool branch_taken = static_cast(ctx.gpr[2]) > 0; if (branch_taken) { @@ -6527,8 +7747,21 @@ L_08AEEE64: } L_08AEEE6C: aot_gpr_31 = (0x08AEEE74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 604u, 0x08AEEE74u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEE74u) goto L_08AEEE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEE74: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6554,8 +7787,21 @@ L_08AEEE88: } L_08AEEE90: aot_gpr_31 = (0x08AEEE98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 608u, 0x08AEEE98u, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEE98u) goto L_08AEEE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEE98: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 3 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6581,8 +7827,21 @@ L_08AEEEAC: } L_08AEEEB4: aot_gpr_31 = (0x08AEEEBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 612u, 0x08AEEEBCu, 0x08A01484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 359u, 0x08A01484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEEBCu) goto L_08AEEEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEEBC: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 4 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6606,8 +7865,8 @@ L_08AEEED4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEEEE4: @@ -6622,8 +7881,21 @@ L_08AEEEE4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AEEF10u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 617u, 0x08AEEF10u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEF10u) goto L_08AEEF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEF10: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (ctx.gpr[17] != 0u) { @@ -6648,8 +7920,21 @@ L_08AEEF28: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AEEF3Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 621u, 0x08AEEF3Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEF3Cu) goto L_08AEEF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEF3C: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); if (ctx.gpr[18] != 0u) { @@ -6672,8 +7957,21 @@ L_08AEEF54: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEEF60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 625u, 0x08AEEF60u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEEF60u) goto L_08AEEF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEEF60: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); @@ -6745,8 +8043,8 @@ L_08AEEFD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEEFF0: @@ -6768,8 +8066,21 @@ L_08AEF01C: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF028u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 634u, 0x08AEF028u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF028u) goto L_08AEF028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF028: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6796,8 +8107,21 @@ L_08AEF044: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AEF05Cu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 639u, 0x08AEF05Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF05Cu) goto L_08AEF05C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF05C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -6820,8 +8144,21 @@ L_08AEF074: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF080u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 643u, 0x08AEF080u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF080u) goto L_08AEF080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF080: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -6831,8 +8168,21 @@ L_08AEF080: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AEF0A0u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 644u, 0x08AEF0A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF0A0u) goto L_08AEF0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF0A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); @@ -6840,8 +8190,21 @@ L_08AEF0A0: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08AEF0B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 645u, 0x08AEF0B8u, 0x08AB9448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 246u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 246u, 0x08AB9448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF0B8u) goto L_08AEF0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF0B8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6855,8 +8218,8 @@ L_08AEF0B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF0DC: @@ -6878,8 +8241,21 @@ L_08AEF108: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF114u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 648u, 0x08AEF114u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF114u) goto L_08AEF114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF114: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6906,8 +8282,21 @@ L_08AEF130: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AEF148u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 653u, 0x08AEF148u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF148u) goto L_08AEF148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF148: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -6930,8 +8319,21 @@ L_08AEF160: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF16Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 657u, 0x08AEF16Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF16Cu) goto L_08AEF16C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF16C: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -6941,16 +8343,42 @@ L_08AEF16C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AEF18Cu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 658u, 0x08AEF18Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF18Cu) goto L_08AEF18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF18C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AEF1A0u); aot_gpr_6 = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 659u, 0x08AEF1A0u, 0x08AB8F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 205u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 205u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 205u, 0x08AB8F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF1A0u) goto L_08AEF1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF1A0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6964,8 +8392,8 @@ L_08AEF1A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF1C4: @@ -6987,8 +8415,21 @@ L_08AEF1F0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF1FCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 662u, 0x08AEF1FCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF1FCu) goto L_08AEF1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF1FC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7015,8 +8456,21 @@ L_08AEF218: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AEF230u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 667u, 0x08AEF230u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF230u) goto L_08AEF230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF230: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -7039,8 +8493,21 @@ L_08AEF248: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF254u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 671u, 0x08AEF254u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF254u) goto L_08AEF254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF254: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -7050,8 +8517,21 @@ L_08AEF254: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AEF274u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 672u, 0x08AEF274u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF274u) goto L_08AEF274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF274: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -7060,8 +8540,21 @@ L_08AEF274: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AEF290u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 673u, 0x08AEF290u, 0x08AB9068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 216u, 0x08AB9068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF290u) goto L_08AEF290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF290: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -7075,8 +8568,8 @@ L_08AEF290: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF2B4: @@ -7098,8 +8591,21 @@ L_08AEF2E0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF2ECu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 676u, 0x08AEF2ECu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF2ECu) goto L_08AEF2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF2EC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7126,8 +8632,21 @@ L_08AEF308: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AEF320u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 681u, 0x08AEF320u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF320u) goto L_08AEF320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF320: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -7150,8 +8669,21 @@ L_08AEF338: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF344u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 685u, 0x08AEF344u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF344u) goto L_08AEF344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF344: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -7161,16 +8693,42 @@ L_08AEF344: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AEF364u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 686u, 0x08AEF364u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF364u) goto L_08AEF364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF364: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AEF378u); aot_gpr_6 = (aot_gpr_6 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 687u, 0x08AEF378u, 0x08AB9160u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 222u, 0x08AB9160u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF378u) goto L_08AEF378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF378: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -7184,23 +8742,36 @@ L_08AEF378: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF39C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AEF3ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 689u, 0x08AEF3ACu, 0x08AB92E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 231u, 0x08AB92E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF3ACu) goto L_08AEF3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF3AC: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF3BC: @@ -7222,8 +8793,21 @@ L_08AEF3E8: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF3F4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 692u, 0x08AEF3F4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF3F4u) goto L_08AEF3F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF3F4: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7250,8 +8834,21 @@ L_08AEF410: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEF428u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 697u, 0x08AEF428u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF428u) goto L_08AEF428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF428: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -7274,8 +8871,21 @@ L_08AEF440: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF44Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 701u, 0x08AEF44Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF44Cu) goto L_08AEF44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF44C: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -7285,8 +8895,21 @@ L_08AEF44C: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AEF46Cu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 702u, 0x08AEF46Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF46Cu) goto L_08AEF46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF46C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -7301,8 +8924,21 @@ L_08AEF46C: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEF4A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 703u, 0x08AEF4A0u, 0x08ABA104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 377u, 0x08ABA104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF4A0u) goto L_08AEF4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF4A0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -7316,8 +8952,8 @@ L_08AEF4A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF4C4: @@ -7339,8 +8975,21 @@ L_08AEF4F0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF4FCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 706u, 0x08AEF4FCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF4FCu) goto L_08AEF4FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF4FC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7367,8 +9016,21 @@ L_08AEF518: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEF530u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 711u, 0x08AEF530u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF530u) goto L_08AEF530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF530: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -7391,8 +9053,21 @@ L_08AEF548: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF554u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 715u, 0x08AEF554u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF554u) goto L_08AEF554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF554: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -7402,8 +9077,21 @@ L_08AEF554: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AEF574u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 716u, 0x08AEF574u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF574u) goto L_08AEF574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF574: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -7417,8 +9105,21 @@ L_08AEF574: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEF5A4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 717u, 0x08AEF5A4u, 0x08AB9C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 351u, 0x08AB9C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF5A4u) goto L_08AEF5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF5A4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -7432,8 +9133,8 @@ L_08AEF5A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF5C8: @@ -7455,8 +9156,21 @@ L_08AEF5F4: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF600u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 720u, 0x08AEF600u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF600u) goto L_08AEF600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF600: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7483,8 +9197,21 @@ L_08AEF61C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEF634u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 725u, 0x08AEF634u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF634u) goto L_08AEF634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF634: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -7507,8 +9234,21 @@ L_08AEF64C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF658u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 729u, 0x08AEF658u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF658u) goto L_08AEF658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF658: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -7518,8 +9258,21 @@ L_08AEF658: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AEF678u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 730u, 0x08AEF678u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF678u) goto L_08AEF678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF678: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -7535,8 +9288,21 @@ L_08AEF678: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEF6B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 731u, 0x08AEF6B0u, 0x08AB9DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 362u, 0x08AB9DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF6B0u) goto L_08AEF6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF6B0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -7550,8 +9316,8 @@ L_08AEF6B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF6D4: @@ -7573,8 +9339,21 @@ L_08AEF700: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF70Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 734u, 0x08AEF70Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF70Cu) goto L_08AEF70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF70C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7601,8 +9380,21 @@ L_08AEF728: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEF740u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 739u, 0x08AEF740u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF740u) goto L_08AEF740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF740: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -7625,8 +9417,21 @@ L_08AEF758: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF764u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 743u, 0x08AEF764u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF764u) goto L_08AEF764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF764: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -7636,8 +9441,21 @@ L_08AEF764: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AEF784u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 744u, 0x08AEF784u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF784u) goto L_08AEF784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF784: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -7651,8 +9469,21 @@ L_08AEF784: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEF7B4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 745u, 0x08AEF7B4u, 0x08AB9F28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 368u, 0x08AB9F28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF7B4u) goto L_08AEF7B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF7B4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -7666,8 +9497,8 @@ L_08AEF7B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF7D8: @@ -7689,8 +9520,21 @@ L_08AEF804: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF810u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 748u, 0x08AEF810u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF810u) goto L_08AEF810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF810: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7717,8 +9561,21 @@ L_08AEF82C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AEF844u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 753u, 0x08AEF844u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF844u) goto L_08AEF844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF844: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -7741,8 +9598,21 @@ L_08AEF85C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF868u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 757u, 0x08AEF868u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF868u) goto L_08AEF868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF868: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -7752,8 +9622,21 @@ L_08AEF868: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AEF888u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 758u, 0x08AEF888u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF888u) goto L_08AEF888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF888: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); @@ -7761,8 +9644,21 @@ L_08AEF888: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08AEF8A0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 759u, 0x08AEF8A0u, 0x08AB953Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 256u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 256u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 256u, 0x08AB953Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF8A0u) goto L_08AEF8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF8A0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -7776,8 +9672,8 @@ L_08AEF8A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF8C4: @@ -7799,8 +9695,21 @@ L_08AEF8F0: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEF8FCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 762u, 0x08AEF8FCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF8FCu) goto L_08AEF8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF8FC: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7827,8 +9736,21 @@ L_08AEF918: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEF930u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 767u, 0x08AEF930u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF930u) goto L_08AEF930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF930: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -7851,8 +9773,21 @@ L_08AEF948: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEF954u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 771u, 0x08AEF954u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF954u) goto L_08AEF954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF954: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -7862,8 +9797,21 @@ L_08AEF954: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AEF974u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 772u, 0x08AEF974u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF974u) goto L_08AEF974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF974: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -7878,8 +9826,21 @@ L_08AEF974: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEF9A8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 773u, 0x08AEF9A8u, 0x08ABA21Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 385u, 0x08ABA21Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF9A8u) goto L_08AEF9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF9A8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -7893,8 +9854,8 @@ L_08AEF9A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEF9CC: @@ -7910,8 +9871,21 @@ L_08AEF9CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AEF9FCu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 775u, 0x08AEF9FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEF9FCu) goto L_08AEF9FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEF9FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -7939,8 +9913,8 @@ L_08AEFA20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEFA3C: @@ -7962,8 +9936,21 @@ L_08AEFA68: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEFA74u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 780u, 0x08AEFA74u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFA74u) goto L_08AEFA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFA74: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7990,8 +9977,21 @@ L_08AEFA90: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEFAA8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 785u, 0x08AEFAA8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFAA8u) goto L_08AEFAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFAA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -8014,8 +10014,21 @@ L_08AEFAC0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEFACCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 789u, 0x08AEFACCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFACCu) goto L_08AEFACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFACC: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -8025,8 +10038,21 @@ L_08AEFACC: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AEFAECu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 790u, 0x08AEFAECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFAECu) goto L_08AEFAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFAEC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); @@ -8040,8 +10066,21 @@ L_08AEFAEC: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEFB1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 791u, 0x08AEFB1Cu, 0x08AB9C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 351u, 0x08AB9C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFB1Cu) goto L_08AEFB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFB1C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -8055,8 +10094,8 @@ L_08AEFB1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEFB40: @@ -8078,8 +10117,21 @@ L_08AEFB6C: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEFB78u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 794u, 0x08AEFB78u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFB78u) goto L_08AEFB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFB78: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8106,8 +10158,21 @@ L_08AEFB94: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEFBACu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 799u, 0x08AEFBACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFBACu) goto L_08AEFBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFBAC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -8130,8 +10195,21 @@ L_08AEFBC4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEFBD0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 803u, 0x08AEFBD0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFBD0u) goto L_08AEFBD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFBD0: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -8141,8 +10219,21 @@ L_08AEFBD0: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AEFBF0u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 804u, 0x08AEFBF0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFBF0u) goto L_08AEFBF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFBF0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); @@ -8158,8 +10249,21 @@ L_08AEFBF0: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEFC28u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 805u, 0x08AEFC28u, 0x08AB9DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 362u, 0x08AB9DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFC28u) goto L_08AEFC28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFC28: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -8173,8 +10277,8 @@ L_08AEFC28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEFC4C: @@ -8196,8 +10300,21 @@ L_08AEFC78: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEFC84u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 808u, 0x08AEFC84u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFC84u) goto L_08AEFC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFC84: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8224,8 +10341,21 @@ L_08AEFCA0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEFCB8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 813u, 0x08AEFCB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFCB8u) goto L_08AEFCB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFCB8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -8248,8 +10378,21 @@ L_08AEFCD0: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEFCDCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 817u, 0x08AEFCDCu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFCDCu) goto L_08AEFCDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFCDC: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -8259,8 +10402,21 @@ L_08AEFCDC: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AEFCFCu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 818u, 0x08AEFCFCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFCFCu) goto L_08AEFCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFCFC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); @@ -8274,8 +10430,21 @@ L_08AEFCFC: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEFD2Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 819u, 0x08AEFD2Cu, 0x08AB9F28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 368u, 0x08AB9F28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFD2Cu) goto L_08AEFD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFD2C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -8289,8 +10458,8 @@ L_08AEFD2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEFD50: @@ -8312,8 +10481,21 @@ L_08AEFD7C: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEFD88u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 822u, 0x08AEFD88u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFD88u) goto L_08AEFD88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFD88: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8340,8 +10522,21 @@ L_08AEFDA4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEFDBCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 827u, 0x08AEFDBCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFDBCu) goto L_08AEFDBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFDBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -8364,8 +10559,21 @@ L_08AEFDD4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEFDE0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 831u, 0x08AEFDE0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFDE0u) goto L_08AEFDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFDE0: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -8375,8 +10583,21 @@ L_08AEFDE0: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08AEFE00u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 832u, 0x08AEFE00u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFE00u) goto L_08AEFE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFE00: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); @@ -8390,8 +10611,21 @@ L_08AEFE00: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEFE30u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 833u, 0x08AEFE30u, 0x08AB9C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 351u, 0x08AB9C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFE30u) goto L_08AEFE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFE30: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -8405,8 +10639,8 @@ L_08AEFE30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEFE54: @@ -8428,8 +10662,21 @@ L_08AEFE80: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEFE8Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 836u, 0x08AEFE8Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFE8Cu) goto L_08AEFE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFE8C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8456,8 +10703,21 @@ L_08AEFEA8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEFEC0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 841u, 0x08AEFEC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFEC0u) goto L_08AEFEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFEC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -8480,8 +10740,21 @@ L_08AEFED8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEFEE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 845u, 0x08AEFEE4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFEE4u) goto L_08AEFEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFEE4: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -8491,8 +10764,21 @@ L_08AEFEE4: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08AEFF04u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 846u, 0x08AEFF04u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFF04u) goto L_08AEFF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFF04: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); @@ -8508,8 +10794,21 @@ L_08AEFF04: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AEFF3Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 847u, 0x08AEFF3Cu, 0x08AB9DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 362u, 0x08AB9DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFF3Cu) goto L_08AEFF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFF3C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -8523,8 +10822,8 @@ L_08AEFF3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AEFF60: @@ -8546,8 +10845,21 @@ L_08AEFF8C: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AEFF98u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 850u, 0x08AEFF98u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFF98u) goto L_08AEFF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFF98: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -8574,8 +10886,21 @@ L_08AEFFB4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AEFFCCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 855u, 0x08AEFFCCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFFCCu) goto L_08AEFFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFFCC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -8598,8 +10923,21 @@ L_08AEFFE4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AEFFF0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0186->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0186_entry, 859u, 0x08AEFFF0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AEFFF0u) goto L_08AEFFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AEFFF0: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); diff --git a/profiles/vcs/generated/generated_unit_0187.cpp b/profiles/vcs/generated/generated_unit_0187.cpp index 4051465..2731430 100644 --- a/profiles/vcs/generated/generated_unit_0187.cpp +++ b/profiles/vcs/generated/generated_unit_0187.cpp @@ -970,6 +970,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AF0000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -988,8 +1012,21 @@ L_08AF0000: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08AF0010u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 2u, 0x08AF0010u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0010u) goto L_08AF0010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0010: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(20))); @@ -1006,8 +1043,21 @@ L_08AF0010: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF0040u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 3u, 0x08AF0040u, 0x08AB9C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 351u, 0x08AB9C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0040u) goto L_08AF0040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0040: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -1021,8 +1071,8 @@ L_08AF0040: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0064: @@ -1044,8 +1094,21 @@ L_08AF0090: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AF009Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 6u, 0x08AF009Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF009Cu) goto L_08AF009C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF009C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1072,8 +1135,21 @@ L_08AF00B8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF00D0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 11u, 0x08AF00D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF00D0u) goto L_08AF00D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF00D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -1096,8 +1172,21 @@ L_08AF00E8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF00F4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 15u, 0x08AF00F4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF00F4u) goto L_08AF00F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF00F4: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -1107,8 +1196,21 @@ L_08AF00F4: aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08AF0114u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 16u, 0x08AF0114u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0114u) goto L_08AF0114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0114: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(24))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(28))); @@ -1125,8 +1227,21 @@ L_08AF0114: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AF0144u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 17u, 0x08AF0144u, 0x08AB9C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 351u, 0x08AB9C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0144u) goto L_08AF0144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0144: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -1140,8 +1255,8 @@ L_08AF0144: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0168: @@ -1160,8 +1275,21 @@ L_08AF0168: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x08AF01A8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 19u, 0x08AF01A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF01A8u) goto L_08AF01A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF01A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1175,8 +1303,21 @@ L_08AF01B4: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08AF01C0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 21u, 0x08AF01C0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF01C0u) goto L_08AF01C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF01C0: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -1203,8 +1344,21 @@ L_08AF01E0: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF01F4u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 26u, 0x08AF01F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF01F4u) goto L_08AF01F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF01F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -1227,8 +1381,21 @@ L_08AF020C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF0218u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 30u, 0x08AF0218u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0218u) goto L_08AF0218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0218: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (static_cast(aot_gpr_4) < 20 ? 1u : 0u); @@ -1380,8 +1547,8 @@ L_08AF0338: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF035C: @@ -1395,8 +1562,21 @@ L_08AF035C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF0384u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 46u, 0x08AF0384u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0384u) goto L_08AF0384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0384: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -1420,8 +1600,8 @@ L_08AF0384: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF03D0: @@ -1435,8 +1615,21 @@ L_08AF03D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AF03F8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 48u, 0x08AF03F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF03F8u) goto L_08AF03F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF03F8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -1488,8 +1681,8 @@ L_08AF0420: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF049C: @@ -1501,8 +1694,21 @@ L_08AF049C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF04BCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 51u, 0x08AF04BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF04BCu) goto L_08AF04BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF04BC: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -1541,8 +1747,8 @@ L_08AF0504: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0518: @@ -1554,8 +1760,21 @@ L_08AF0518: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF0538u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 56u, 0x08AF0538u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0538u) goto L_08AF0538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0538: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -1594,8 +1813,8 @@ L_08AF0580: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0594: @@ -1607,8 +1826,21 @@ L_08AF0594: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF05B4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 61u, 0x08AF05B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF05B4u) goto L_08AF05B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF05B4: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -1639,8 +1871,8 @@ L_08AF05F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF060C: @@ -1652,8 +1884,21 @@ L_08AF060C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF062Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 65u, 0x08AF062Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF062Cu) goto L_08AF062C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF062C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -1692,8 +1937,8 @@ L_08AF0674: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0688: @@ -1705,8 +1950,21 @@ L_08AF0688: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF06A8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 70u, 0x08AF06A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF06A8u) goto L_08AF06A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF06A8: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -1745,8 +2003,8 @@ L_08AF06F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0704: @@ -1768,8 +2026,21 @@ L_08AF0730: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AF073Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 76u, 0x08AF073Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF073Cu) goto L_08AF073C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF073C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1796,8 +2067,21 @@ L_08AF0758: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF0770u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 81u, 0x08AF0770u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0770u) goto L_08AF0770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0770: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -1820,8 +2104,21 @@ L_08AF0788: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF0794u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 85u, 0x08AF0794u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0794u) goto L_08AF0794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0794: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -1831,8 +2128,21 @@ L_08AF0794: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF07B4u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 86u, 0x08AF07B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF07B4u) goto L_08AF07B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF07B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -1847,8 +2157,21 @@ L_08AF07B4: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF07E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 87u, 0x08AF07E8u, 0x08ABA104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 377u, 0x08ABA104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF07E8u) goto L_08AF07E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF07E8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -1862,8 +2185,8 @@ L_08AF07E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF080C: @@ -1885,8 +2208,21 @@ L_08AF0838: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AF0844u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 90u, 0x08AF0844u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0844u) goto L_08AF0844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0844: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1913,8 +2249,21 @@ L_08AF0860: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF0878u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 95u, 0x08AF0878u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0878u) goto L_08AF0878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0878: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -1937,8 +2286,21 @@ L_08AF0890: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF089Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 99u, 0x08AF089Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF089Cu) goto L_08AF089C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF089C: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -1948,8 +2310,21 @@ L_08AF089C: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08AF08BCu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 100u, 0x08AF08BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF08BCu) goto L_08AF08BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF08BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); @@ -1964,8 +2339,21 @@ L_08AF08BC: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF08F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 101u, 0x08AF08F0u, 0x08ABA104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 377u, 0x08ABA104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF08F0u) goto L_08AF08F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF08F0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -1979,8 +2367,8 @@ L_08AF08F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0914: @@ -2003,8 +2391,21 @@ L_08AF0944: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF0950u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 104u, 0x08AF0950u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0950u) goto L_08AF0950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0950: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -2030,8 +2431,21 @@ L_08AF096C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF0980u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 109u, 0x08AF0980u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0980u) goto L_08AF0980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0980: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (ctx.gpr[19] != 0u) { @@ -2054,8 +2468,21 @@ L_08AF0998: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF09A4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 113u, 0x08AF09A4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF09A4u) goto L_08AF09A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF09A4: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -2069,8 +2496,21 @@ L_08AF09B0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF09BCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 115u, 0x08AF09BCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF09BCu) goto L_08AF09BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF09BC: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2096,8 +2536,21 @@ L_08AF09D8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AF09ECu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 120u, 0x08AF09ECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF09ECu) goto L_08AF09EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF09EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); if (aot_gpr_4 != 0u) { @@ -2120,8 +2573,21 @@ L_08AF0A04: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF0A10u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 124u, 0x08AF0A10u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0A10u) goto L_08AF0A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0A10: ctx.gpr[20] = (2236u << 16u); ctx.gpr[21] = (ctx.gpr[20] + static_cast(29704)); @@ -2131,8 +2597,21 @@ L_08AF0A10: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AF0A30u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 125u, 0x08AF0A30u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0A30u) goto L_08AF0A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0A30: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); @@ -2140,8 +2619,21 @@ L_08AF0A30: aot_gpr_6 = (aot_gpr_6 & 65535u); aot_gpr_31 = (0x08AF0A48u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 126u, 0x08AF0A48u, 0x08ABA384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 399u, 0x08ABA384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0A48u) goto L_08AF0A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0A48: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -2156,8 +2648,8 @@ L_08AF0A48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0A70: @@ -2176,8 +2668,21 @@ L_08AF0A90: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF0A9Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 129u, 0x08AF0A9Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0A9Cu) goto L_08AF0A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0A9C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2204,8 +2709,21 @@ L_08AF0AB8: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF0AD0u); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 134u, 0x08AF0AD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0AD0u) goto L_08AF0AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0AD0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -2228,13 +2746,39 @@ L_08AF0AE8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF0AF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 138u, 0x08AF0AF4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0AF4u) goto L_08AF0AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0AF4: aot_gpr_31 = (0x08AF0AFCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 139u, 0x08AF0AFCu, 0x08ABA450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 405u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 405u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 405u, 0x08ABA450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0AFCu) goto L_08AF0AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0AFC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -2246,8 +2790,8 @@ L_08AF0AFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0B18: @@ -2266,8 +2810,21 @@ L_08AF0B38: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF0B44u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 142u, 0x08AF0B44u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0B44u) goto L_08AF0B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0B44: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2294,8 +2851,21 @@ L_08AF0B60: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF0B78u); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 147u, 0x08AF0B78u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0B78u) goto L_08AF0B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0B78: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -2318,13 +2888,39 @@ L_08AF0B90: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF0B9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 151u, 0x08AF0B9Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0B9Cu) goto L_08AF0B9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0B9C: aot_gpr_31 = (0x08AF0BA4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 152u, 0x08AF0BA4u, 0x08ABA704u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 436u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 436u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 436u, 0x08ABA704u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0BA4u) goto L_08AF0BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0BA4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -2336,8 +2932,8 @@ L_08AF0BA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0BC0: @@ -2349,8 +2945,21 @@ L_08AF0BC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF0BE0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 154u, 0x08AF0BE0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0BE0u) goto L_08AF0BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0BE0: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (aot_gpr_4 << 6u); @@ -2389,8 +2998,8 @@ L_08AF0C28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0C3C: @@ -2409,8 +3018,21 @@ L_08AF0C5C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF0C68u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 160u, 0x08AF0C68u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0C68u) goto L_08AF0C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0C68: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2437,8 +3059,21 @@ L_08AF0C84: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF0C9Cu); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 165u, 0x08AF0C9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0C9Cu) goto L_08AF0C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0C9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -2461,8 +3096,21 @@ L_08AF0CB4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF0CC0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 169u, 0x08AF0CC0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0CC0u) goto L_08AF0CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0CC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2483,8 +3131,21 @@ L_08AF0CD4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF0CECu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 172u, 0x08AF0CECu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0CECu) goto L_08AF0CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0CEC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -2496,8 +3157,8 @@ L_08AF0CEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0D08: @@ -2520,8 +3181,21 @@ L_08AF0D24: L_08AF0D28: aot_gpr_31 = (0x08AF0D30u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 177u, 0x08AF0D30u, 0x089BB200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 675u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 675u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 675u, 0x089BB200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0D30u) goto L_08AF0D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0D30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2544,23 +3218,49 @@ L_08AF0D4C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF0D5Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 181u, 0x08AF0D5Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0D5Cu) goto L_08AF0D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0D5C: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0D6C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AF0D7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 183u, 0x08AF0D7Cu, 0x08AB9394u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 238u, 0x08AB9394u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0D7Cu) goto L_08AF0D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0D7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2576,15 +3276,28 @@ L_08AF0D88: L_08AF0D90: aot_gpr_31 = (0x08AF0D98u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 186u, 0x08AF0D98u, 0x089BA65Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 475u, 0x089BA65Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0D98u) goto L_08AF0D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0D98: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0DA8: @@ -2596,8 +3309,21 @@ L_08AF0DA8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF0DC8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 188u, 0x08AF0DC8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0DC8u) goto L_08AF0DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0DC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2625,8 +3351,8 @@ L_08AF0DE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0DFC: @@ -2645,8 +3371,21 @@ L_08AF0DFC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x08AF0E40u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 193u, 0x08AF0E40u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0E40u) goto L_08AF0E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0E40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); ctx.gpr[22] = (2239u << 16u); @@ -2661,8 +3400,21 @@ L_08AF0E50: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08AF0E5Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 195u, 0x08AF0E5Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0E5Cu) goto L_08AF0E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0E5C: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -2689,8 +3441,21 @@ L_08AF0E78: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF0E90u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 200u, 0x08AF0E90u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0E90u) goto L_08AF0E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0E90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -2713,8 +3478,21 @@ L_08AF0EA8: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF0EB4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 204u, 0x08AF0EB4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0EB4u) goto L_08AF0EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0EB4: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); @@ -2737,8 +3515,21 @@ L_08AF0EB4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF0F08u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 205u, 0x08AF0F08u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0F08u) goto L_08AF0F08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0F08: aot_gpr_16 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_4 = (static_cast(aot_gpr_16) < 20 ? 1u : 0u); @@ -2773,8 +3564,21 @@ L_08AF0F20: ctx.gpr[9] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF0F60u); ctx.gpr[10] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 208u, 0x08AF0F60u, 0x08ABAD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0F60u) goto L_08AF0F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0F60: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); ctx.gpr[2] = (0u | 0u); @@ -2795,8 +3599,8 @@ L_08AF0F70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF0F98: @@ -2815,8 +3619,21 @@ L_08AF0F98: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x08AF0FDCu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 211u, 0x08AF0FDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0FDCu) goto L_08AF0FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0FDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); ctx.gpr[22] = (2239u << 16u); @@ -2831,8 +3648,21 @@ L_08AF0FEC: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08AF0FF8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 213u, 0x08AF0FF8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF0FF8u) goto L_08AF0FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF0FF8: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -2859,8 +3689,21 @@ L_08AF1014: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF102Cu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 218u, 0x08AF102Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF102Cu) goto L_08AF102C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF102C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -2883,8 +3726,21 @@ L_08AF1044: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1050u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 222u, 0x08AF1050u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1050u) goto L_08AF1050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1050: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); @@ -2907,8 +3763,21 @@ L_08AF1050: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AF10A4u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 223u, 0x08AF10A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF10A4u) goto L_08AF10A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF10A4: aot_gpr_16 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_4 = (static_cast(aot_gpr_16) < 20 ? 1u : 0u); @@ -2943,8 +3812,21 @@ L_08AF10BC: ctx.gpr[9] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF10FCu); ctx.gpr[10] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 226u, 0x08AF10FCu, 0x08ABAD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 515u, 0x08ABAD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF10FCu) goto L_08AF10FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF10FC: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); ctx.gpr[2] = (0u | 0u); @@ -2965,8 +3847,8 @@ L_08AF110C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1134: @@ -2985,8 +3867,21 @@ L_08AF1154: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF1160u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 230u, 0x08AF1160u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1160u) goto L_08AF1160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1160: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3013,8 +3908,21 @@ L_08AF117C: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF1194u); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 235u, 0x08AF1194u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1194u) goto L_08AF1194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1194: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -3037,8 +3945,21 @@ L_08AF11AC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF11B8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 239u, 0x08AF11B8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF11B8u) goto L_08AF11B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF11B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3061,8 +3982,21 @@ L_08AF11D0: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08AF11E4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 243u, 0x08AF11E4u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF11E4u) goto L_08AF11E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF11E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3080,8 +4014,21 @@ L_08AF11F8: goto L_08AF11FC; L_08AF11FC: aot_gpr_31 = (0x08AF1204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 247u, 0x08AF1204u, 0x089BAA78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 556u, 0x089BAA78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1204u) goto L_08AF1204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1204: { const bool branch_taken = aot_gpr_16 == ctx.gpr[2]; if (branch_taken) { @@ -3107,15 +4054,41 @@ L_08AF1220: L_08AF1224: aot_gpr_31 = (0x08AF122Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 252u, 0x08AF122Cu, 0x089BB200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 675u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 675u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 675u, 0x089BB200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF122Cu) goto L_08AF122C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF122C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_5 = (0u | 180u); aot_gpr_31 = (0x08AF123Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 253u, 0x08AF123Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF123Cu) goto L_08AF123C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF123C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3127,16 +4100,29 @@ L_08AF123C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1258: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AF1268u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 255u, 0x08AF1268u, 0x08AB93D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 241u, 0x08AB93D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1268u) goto L_08AF1268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1268: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -3155,8 +4141,21 @@ L_08AF1280: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08AF128Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 259u, 0x08AF128Cu, 0x089BA604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 468u, 0x089BA604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF128Cu) goto L_08AF128C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF128C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-17340))); ctx.gpr[2] = (0u | 0u); @@ -3164,8 +4163,8 @@ L_08AF128C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF12A4: @@ -3191,8 +4190,21 @@ L_08AF12D0: L_08AF12D4: aot_gpr_31 = (0x08AF12DCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 264u, 0x08AF12DCu, 0x089BAEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 617u, 0x089BAEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF12DCu) goto L_08AF12DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF12DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3206,8 +4218,21 @@ L_08AF12E8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF12F4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 266u, 0x08AF12F4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF12F4u) goto L_08AF12F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF12F4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3234,8 +4259,21 @@ L_08AF1314: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF1328u); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 271u, 0x08AF1328u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1328u) goto L_08AF1328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1328: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -3258,8 +4296,21 @@ L_08AF1340: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF134Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 275u, 0x08AF134Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF134Cu) goto L_08AF134C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF134C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3282,8 +4333,21 @@ L_08AF1364: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF1378u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 279u, 0x08AF1378u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1378u) goto L_08AF1378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1378: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3295,8 +4359,8 @@ L_08AF1378: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1394: @@ -3322,8 +4386,21 @@ L_08AF13C0: L_08AF13C4: aot_gpr_31 = (0x08AF13CCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 284u, 0x08AF13CCu, 0x089BAEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 617u, 0x089BAEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF13CCu) goto L_08AF13CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF13CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3337,8 +4414,21 @@ L_08AF13D8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF13E4u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 286u, 0x08AF13E4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF13E4u) goto L_08AF13E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF13E4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3365,8 +4455,21 @@ L_08AF1404: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF1418u); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 291u, 0x08AF1418u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1418u) goto L_08AF1418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1418: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -3389,8 +4492,21 @@ L_08AF1430: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF143Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 295u, 0x08AF143Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF143Cu) goto L_08AF143C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF143C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3413,8 +4529,21 @@ L_08AF1454: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08AF1468u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 299u, 0x08AF1468u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1468u) goto L_08AF1468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1468: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3426,8 +4555,8 @@ L_08AF1468: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1484: @@ -3453,8 +4582,21 @@ L_08AF14BC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF14C8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 302u, 0x08AF14C8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF14C8u) goto L_08AF14C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF14C8: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3481,8 +4623,21 @@ L_08AF14E4: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF14FCu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 307u, 0x08AF14FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF14FCu) goto L_08AF14FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF14FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -3505,8 +4660,21 @@ L_08AF1514: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1520u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 311u, 0x08AF1520u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1520u) goto L_08AF1520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1520: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3514,8 +4682,21 @@ L_08AF1520: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AF1538u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 312u, 0x08AF1538u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1538u) goto L_08AF1538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1538: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3531,8 +4712,21 @@ L_08AF1544: L_08AF154C: aot_gpr_31 = (0x08AF1554u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 315u, 0x08AF1554u, 0x089C6D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 629u, 0x089C6D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1554u) goto L_08AF1554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1554: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3548,8 +4742,21 @@ L_08AF155C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF1578u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 317u, 0x08AF1578u, 0x08AB9068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 216u, 0x08AB9068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1578u) goto L_08AF1578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1578: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3567,8 +4774,21 @@ L_08AF1580: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF15A4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 319u, 0x08AF15A4u, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF15A4u) goto L_08AF15A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF15A4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -3583,8 +4803,8 @@ L_08AF15A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF15CC: @@ -3610,8 +4830,21 @@ L_08AF1604: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF1610u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 322u, 0x08AF1610u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1610u) goto L_08AF1610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1610: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3638,8 +4871,21 @@ L_08AF162C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF1644u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 327u, 0x08AF1644u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1644u) goto L_08AF1644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1644: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -3662,8 +4908,21 @@ L_08AF165C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1668u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 331u, 0x08AF1668u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1668u) goto L_08AF1668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1668: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3671,8 +4930,21 @@ L_08AF1668: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AF1680u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 332u, 0x08AF1680u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1680u) goto L_08AF1680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1680: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3688,8 +4960,21 @@ L_08AF168C: L_08AF1694: aot_gpr_31 = (0x08AF169Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 335u, 0x08AF169Cu, 0x089C6D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 629u, 0x089C6D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF169Cu) goto L_08AF169C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF169C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3705,8 +4990,21 @@ L_08AF16A4: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08AF16C0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 337u, 0x08AF16C0u, 0x08AB9068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 216u, 0x08AB9068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF16C0u) goto L_08AF16C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF16C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3724,8 +5022,21 @@ L_08AF16C8: ctx.gpr[10] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF16ECu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 339u, 0x08AF16ECu, 0x08ABAB74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 493u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 493u, 0x08ABAB74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF16ECu) goto L_08AF16EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF16EC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -3740,8 +5051,8 @@ L_08AF16EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1714: @@ -3763,8 +5074,21 @@ L_08AF1740: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AF174Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 342u, 0x08AF174Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF174Cu) goto L_08AF174C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF174C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3791,8 +5115,21 @@ L_08AF1768: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF1780u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 347u, 0x08AF1780u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1780u) goto L_08AF1780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1780: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -3815,8 +5152,21 @@ L_08AF1798: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF17A4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 351u, 0x08AF17A4u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF17A4u) goto L_08AF17A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF17A4: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -3826,8 +5176,21 @@ L_08AF17A4: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AF17C4u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 352u, 0x08AF17C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF17C4u) goto L_08AF17C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF17C4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); @@ -3836,8 +5199,21 @@ L_08AF17C4: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF17E0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 353u, 0x08AF17E0u, 0x08AB9068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 216u, 0x08AB9068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF17E0u) goto L_08AF17E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF17E0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -3851,8 +5227,8 @@ L_08AF17E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1804: @@ -3874,8 +5250,21 @@ L_08AF1830: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AF183Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 356u, 0x08AF183Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF183Cu) goto L_08AF183C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF183C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3902,8 +5291,21 @@ L_08AF1858: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF1870u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 361u, 0x08AF1870u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1870u) goto L_08AF1870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1870: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -3926,8 +5328,21 @@ L_08AF1888: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1894u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 365u, 0x08AF1894u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1894u) goto L_08AF1894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1894: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -3937,8 +5352,21 @@ L_08AF1894: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AF18B4u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 366u, 0x08AF18B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF18B4u) goto L_08AF18B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF18B4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3953,8 +5381,21 @@ L_08AF18B4: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF18E8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 367u, 0x08AF18E8u, 0x08AB9DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 362u, 0x08AB9DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF18E8u) goto L_08AF18E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF18E8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -3968,8 +5409,8 @@ L_08AF18E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF190C: @@ -3991,8 +5432,21 @@ L_08AF1938: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AF1944u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 370u, 0x08AF1944u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1944u) goto L_08AF1944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1944: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4019,8 +5473,21 @@ L_08AF1960: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF1978u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 375u, 0x08AF1978u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1978u) goto L_08AF1978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1978: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -4043,8 +5510,21 @@ L_08AF1990: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF199Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 379u, 0x08AF199Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF199Cu) goto L_08AF199C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF199C: ctx.gpr[19] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[19] + static_cast(29704)); @@ -4054,8 +5534,21 @@ L_08AF199C: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF19BCu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 380u, 0x08AF19BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF19BCu) goto L_08AF19BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF19BC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); @@ -4070,8 +5563,21 @@ L_08AF19BC: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08AF19F0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 381u, 0x08AF19F0u, 0x08AB9DE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 362u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 362u, 0x08AB9DE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF19F0u) goto L_08AF19F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF19F0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -4085,8 +5591,8 @@ L_08AF19F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1A14: @@ -4108,8 +5614,21 @@ L_08AF1A38: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08AF1A44u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 384u, 0x08AF1A44u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1A44u) goto L_08AF1A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1A44: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4135,8 +5654,21 @@ L_08AF1A64: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF1A74u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 389u, 0x08AF1A74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1A74u) goto L_08AF1A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1A74: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (ctx.gpr[17] != 0u) { @@ -4159,8 +5691,21 @@ L_08AF1A8C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1A98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 393u, 0x08AF1A98u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1A98u) goto L_08AF1A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1A98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4181,8 +5726,21 @@ L_08AF1AAC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF1AC4u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 396u, 0x08AF1AC4u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1AC4u) goto L_08AF1AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1AC4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4194,8 +5752,8 @@ L_08AF1AC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1AE0: @@ -4214,8 +5772,21 @@ L_08AF1B00: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF1B0Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 399u, 0x08AF1B0Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1B0Cu) goto L_08AF1B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1B0C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4242,8 +5813,21 @@ L_08AF1B28: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF1B40u); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 404u, 0x08AF1B40u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1B40u) goto L_08AF1B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1B40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -4266,8 +5850,21 @@ L_08AF1B58: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1B64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 408u, 0x08AF1B64u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1B64u) goto L_08AF1B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1B64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4288,8 +5885,21 @@ L_08AF1B78: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08AF1B90u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 411u, 0x08AF1B90u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1B90u) goto L_08AF1B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1B90: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4301,8 +5911,8 @@ L_08AF1B90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1BAC: @@ -4328,8 +5938,21 @@ L_08AF1BD8: L_08AF1BDC: aot_gpr_31 = (0x08AF1BE4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 416u, 0x08AF1BE4u, 0x089BAEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 617u, 0x089BAEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1BE4u) goto L_08AF1BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1BE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4343,8 +5966,21 @@ L_08AF1BF0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF1BFCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 418u, 0x08AF1BFCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1BFCu) goto L_08AF1BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1BFC: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4371,8 +6007,21 @@ L_08AF1C1C: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF1C30u); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 423u, 0x08AF1C30u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1C30u) goto L_08AF1C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1C30: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -4395,8 +6044,21 @@ L_08AF1C48: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1C54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 427u, 0x08AF1C54u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1C54u) goto L_08AF1C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1C54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4419,8 +6081,21 @@ L_08AF1C6C: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF1C80u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 431u, 0x08AF1C80u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1C80u) goto L_08AF1C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1C80: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4432,8 +6107,8 @@ L_08AF1C80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1C9C: @@ -4459,8 +6134,21 @@ L_08AF1CC8: L_08AF1CCC: aot_gpr_31 = (0x08AF1CD4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 436u, 0x08AF1CD4u, 0x089BAEB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 617u, 0x089BAEB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1CD4u) goto L_08AF1CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1CD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4474,8 +6162,21 @@ L_08AF1CE0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF1CECu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 438u, 0x08AF1CECu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1CECu) goto L_08AF1CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1CEC: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4502,8 +6203,21 @@ L_08AF1D0C: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF1D20u); aot_gpr_5 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 443u, 0x08AF1D20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1D20u) goto L_08AF1D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1D20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -4526,8 +6240,21 @@ L_08AF1D38: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1D44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 447u, 0x08AF1D44u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1D44u) goto L_08AF1D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1D44: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4550,8 +6277,21 @@ L_08AF1D5C: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08AF1D70u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 451u, 0x08AF1D70u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1D70u) goto L_08AF1D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1D70: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4563,8 +6303,8 @@ L_08AF1D70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1D8C: @@ -4579,8 +6319,21 @@ L_08AF1D8C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x08AF1DC0u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 453u, 0x08AF1DC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1DC0u) goto L_08AF1DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1DC0: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_6 != 0u) { @@ -4608,8 +6361,21 @@ L_08AF1DD8: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AF1DF8u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 457u, 0x08AF1DF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1DF8u) goto L_08AF1DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1DF8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -4656,8 +6422,8 @@ L_08AF1E50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1E74: @@ -4672,8 +6438,21 @@ L_08AF1E74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AF1EA0u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 462u, 0x08AF1EA0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1EA0u) goto L_08AF1EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1EA0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_16 != 0u) { @@ -4698,8 +6477,21 @@ L_08AF1EB8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AF1ECCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 466u, 0x08AF1ECCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1ECCu) goto L_08AF1ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1ECC: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); if (ctx.gpr[17] != 0u) { @@ -4722,8 +6514,21 @@ L_08AF1EE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AF1EF0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 470u, 0x08AF1EF0u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1EF0u) goto L_08AF1EF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1EF0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4735,8 +6540,8 @@ L_08AF1EF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF1F0C: @@ -4760,8 +6565,21 @@ L_08AF1F3C: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08AF1F48u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 473u, 0x08AF1F48u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1F48u) goto L_08AF1F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1F48: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4788,8 +6606,21 @@ L_08AF1F64: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF1F7Cu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 478u, 0x08AF1F7Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1F7Cu) goto L_08AF1F7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1F7C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -4812,8 +6643,21 @@ L_08AF1F94: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF1FA0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 482u, 0x08AF1FA0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF1FA0u) goto L_08AF1FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF1FA0: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(29704), 0u); @@ -4856,8 +6700,8 @@ L_08AF1FE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2004: @@ -4882,8 +6726,21 @@ L_08AF2034: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF2040u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 488u, 0x08AF2040u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2040u) goto L_08AF2040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2040: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4910,8 +6767,21 @@ L_08AF205C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF2074u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 493u, 0x08AF2074u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2074u) goto L_08AF2074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2074: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -4934,8 +6804,21 @@ L_08AF208C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF2098u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 497u, 0x08AF2098u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2098u) goto L_08AF2098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2098: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_16 = (2236u << 16u); @@ -4944,8 +6827,21 @@ L_08AF2098: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF20B4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 498u, 0x08AF20B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF20B4u) goto L_08AF20B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF20B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4974,13 +6870,39 @@ L_08AF20D0: L_08AF20D8: aot_gpr_31 = (0x08AF20E0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 503u, 0x08AF20E0u, 0x089BB290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 688u, 0x089BB290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF20E0u) goto L_08AF20E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF20E0: aot_gpr_31 = (0x08AF20E8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 504u, 0x08AF20E8u, 0x08953614u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 745u, 0x08953614u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF20E8u) goto L_08AF20E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF20E8: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_16 != 0u) { @@ -5014,8 +6936,21 @@ L_08AF2114: L_08AF2118: aot_gpr_31 = (0x08AF2120u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 511u, 0x08AF2120u, 0x089BB280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 686u, 0x089BB280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2120u) goto L_08AF2120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2120: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5042,13 +6977,39 @@ L_08AF2138: L_08AF2140: aot_gpr_31 = (0x08AF2148u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 516u, 0x08AF2148u, 0x089BB290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 688u, 0x089BB290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2148u) goto L_08AF2148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2148: aot_gpr_31 = (0x08AF2150u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0083. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 517u, 0x08AF2150u, 0x08953614u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0083_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0083_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0083_entry, 83u, 745u, 0x08953614u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2150u) goto L_08AF2150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2150: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_16 != 0u) { @@ -5078,14 +7039,40 @@ L_08AF2174: L_08AF217C: aot_gpr_31 = (0x08AF2184u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 523u, 0x08AF2184u, 0x089BABB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 581u, 0x089BABB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2184u) goto L_08AF2184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2184: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08AF2190u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 524u, 0x08AF2190u, 0x089BB288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 687u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 687u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 687u, 0x089BB288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2190u) goto L_08AF2190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2190: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_16 != 0u) { @@ -5119,8 +7106,21 @@ L_08AF21BC: L_08AF21C0: aot_gpr_31 = (0x08AF21C8u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 531u, 0x08AF21C8u, 0x089BB280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 686u, 0x089BB280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF21C8u) goto L_08AF21C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF21C8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -5134,8 +7134,8 @@ L_08AF21C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF21EC: @@ -5154,8 +7154,21 @@ L_08AF21EC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x08AF222Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 533u, 0x08AF222Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF222Cu) goto L_08AF222C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF222C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5169,8 +7182,21 @@ L_08AF2238: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08AF2244u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 535u, 0x08AF2244u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2244u) goto L_08AF2244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2244: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -5197,8 +7223,21 @@ L_08AF2264: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF2278u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 540u, 0x08AF2278u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2278u) goto L_08AF2278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2278: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -5221,8 +7260,21 @@ L_08AF2290: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF229Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 544u, 0x08AF229Cu, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF229Cu) goto L_08AF229C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF229C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_5 = (static_cast(aot_gpr_4) < 20 ? 1u : 0u); @@ -5373,8 +7425,8 @@ L_08AF23B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF23DC: @@ -5386,8 +7438,21 @@ L_08AF23DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF23FCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 560u, 0x08AF23FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF23FCu) goto L_08AF23FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF23FC: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(7986))); aot_gpr_6 = (aot_gpr_4 << 6u); @@ -5405,8 +7470,8 @@ L_08AF23FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF243C: @@ -5420,8 +7485,21 @@ L_08AF243C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2464u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 562u, 0x08AF2464u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2464u) goto L_08AF2464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2464: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = static_cast(aot_gpr_16) < 0; @@ -5464,15 +7542,41 @@ L_08AF2494: } L_08AF24AC: aot_gpr_31 = (0x08AF24B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 568u, 0x08AF24B4u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF24B4u) goto L_08AF24B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF24B4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF24C4u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 569u, 0x08AF24C4u, 0x088191BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 184u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 184u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 184u, 0x088191BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF24C4u) goto L_08AF24C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF24C4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5483,8 +7587,8 @@ L_08AF24C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF24DC: @@ -5496,26 +7600,65 @@ L_08AF24DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF24FCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 571u, 0x08AF24FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF24FCu) goto L_08AF24FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF24FC: aot_gpr_31 = (0x08AF2504u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 572u, 0x08AF2504u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2504u) goto L_08AF2504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2504: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08AF2510u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 573u, 0x08AF2510u, 0x08819248u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 191u, 0x08819248u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2510u) goto L_08AF2510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2510: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2524: @@ -5527,27 +7670,66 @@ L_08AF2524: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF2544u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 575u, 0x08AF2544u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2544u) goto L_08AF2544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2544: aot_gpr_31 = (0x08AF254Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 576u, 0x08AF254Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF254Cu) goto L_08AF254C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF254C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF255Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 577u, 0x08AF255Cu, 0x08818BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 112u, 0x08818BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF255Cu) goto L_08AF255C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF255C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2570: @@ -5559,27 +7741,66 @@ L_08AF2570: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF2590u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 579u, 0x08AF2590u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2590u) goto L_08AF2590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2590: aot_gpr_31 = (0x08AF2598u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 580u, 0x08AF2598u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2598u) goto L_08AF2598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2598: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF25A8u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 581u, 0x08AF25A8u, 0x08818BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 112u, 0x08818BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF25A8u) goto L_08AF25A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF25A8: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF25BC: @@ -5595,8 +7816,21 @@ L_08AF25BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08AF25F0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 583u, 0x08AF25F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF25F0u) goto L_08AF25F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF25F0: aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(12))); @@ -5624,16 +7858,42 @@ L_08AF2628: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08AF2634u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 586u, 0x08AF2634u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2634u) goto L_08AF2634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2634: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08AF2638; L_08AF2638: aot_gpr_31 = (0x08AF2640u); ctx.fpr[24] = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 588u, 0x08AF2640u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2640u) goto L_08AF2640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2640: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_22), std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[24])}; @@ -5642,8 +7902,21 @@ L_08AF2640: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF2660u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 589u, 0x08AF2660u, 0x08818E30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 145u, 0x08818E30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2660u) goto L_08AF2660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2660: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -5657,8 +7930,8 @@ L_08AF2660: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2684: @@ -5674,8 +7947,21 @@ L_08AF2684: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x08AF26BCu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 591u, 0x08AF26BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF26BCu) goto L_08AF26BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF26BC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(4), aot_run_words); @@ -5720,8 +8006,21 @@ L_08AF2704: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AF272Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 596u, 0x08AF272Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF272Cu) goto L_08AF272C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF272C: ctx.fpr[26] = aot_fpr_20 - ctx.fpr[26]; aot_fpr_12 = aot_fpr_22 - ctx.fpr[24]; @@ -5745,8 +8044,21 @@ L_08AF274C: goto L_08AF2750; L_08AF2750: aot_gpr_31 = (0x08AF2758u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 600u, 0x08AF2758u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2758u) goto L_08AF2758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2758: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -5756,8 +8068,21 @@ L_08AF2758: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF277Cu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 601u, 0x08AF277Cu, 0x08818F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 158u, 0x08818F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF277Cu) goto L_08AF277C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF277C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -5772,8 +8097,8 @@ L_08AF277C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF27A4: @@ -5785,27 +8110,66 @@ L_08AF27A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF27C4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 603u, 0x08AF27C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF27C4u) goto L_08AF27C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF27C4: aot_gpr_31 = (0x08AF27CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 604u, 0x08AF27CCu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF27CCu) goto L_08AF27CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF27CC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF27DCu); aot_gpr_6 = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 605u, 0x08AF27DCu, 0x08818BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 112u, 0x08818BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF27DCu) goto L_08AF27DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF27DC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF27F0: @@ -5819,8 +8183,21 @@ L_08AF27F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2818u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 607u, 0x08AF2818u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2818u) goto L_08AF2818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2818: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF2824u); @@ -5830,16 +8207,42 @@ L_08AF2818: L_08AF2824: aot_gpr_31 = (0x08AF282Cu); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 609u, 0x08AF282Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF282Cu) goto L_08AF282C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF282C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 8u); aot_gpr_31 = (0x08AF2840u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 610u, 0x08AF2840u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2840u) goto L_08AF2840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2840: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5850,8 +8253,8 @@ L_08AF2840: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2858: @@ -5865,8 +8268,21 @@ L_08AF2858: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2880u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 612u, 0x08AF2880u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2880u) goto L_08AF2880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2880: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF288Cu); @@ -5876,16 +8292,42 @@ L_08AF2880: L_08AF288C: aot_gpr_31 = (0x08AF2894u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 614u, 0x08AF2894u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2894u) goto L_08AF2894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2894: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 9u); aot_gpr_31 = (0x08AF28A8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 615u, 0x08AF28A8u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF28A8u) goto L_08AF28A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF28A8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5896,8 +8338,8 @@ L_08AF28A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF28C0: @@ -5911,8 +8353,21 @@ L_08AF28C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF28E8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 617u, 0x08AF28E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF28E8u) goto L_08AF28E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF28E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF28F4u); @@ -5922,16 +8377,42 @@ L_08AF28E8: L_08AF28F4: aot_gpr_31 = (0x08AF28FCu); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 619u, 0x08AF28FCu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF28FCu) goto L_08AF28FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF28FC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 11u); aot_gpr_31 = (0x08AF2910u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 620u, 0x08AF2910u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2910u) goto L_08AF2910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2910: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5942,8 +8423,8 @@ L_08AF2910: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2928: @@ -5957,8 +8438,21 @@ L_08AF2928: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2950u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 622u, 0x08AF2950u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2950u) goto L_08AF2950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2950: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF295Cu); @@ -5968,16 +8462,42 @@ L_08AF2950: L_08AF295C: aot_gpr_31 = (0x08AF2964u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 624u, 0x08AF2964u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2964u) goto L_08AF2964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2964: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 12u); aot_gpr_31 = (0x08AF2978u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 625u, 0x08AF2978u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2978u) goto L_08AF2978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2978: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5988,8 +8508,8 @@ L_08AF2978: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2990: @@ -6003,8 +8523,21 @@ L_08AF2990: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF29B8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 627u, 0x08AF29B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF29B8u) goto L_08AF29B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF29B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AF29C4u); @@ -6014,16 +8547,42 @@ L_08AF29B8: L_08AF29C4: aot_gpr_31 = (0x08AF29CCu); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 629u, 0x08AF29CCu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF29CCu) goto L_08AF29CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF29CC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 16u); aot_gpr_31 = (0x08AF29E0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 630u, 0x08AF29E0u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF29E0u) goto L_08AF29E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF29E0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6034,8 +8593,8 @@ L_08AF29E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF29F8: @@ -6049,8 +8608,21 @@ L_08AF29F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2A20u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 632u, 0x08AF2A20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2A20u) goto L_08AF2A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2A20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AF2A2Cu); @@ -6060,16 +8632,42 @@ L_08AF2A20: L_08AF2A2C: aot_gpr_31 = (0x08AF2A34u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 634u, 0x08AF2A34u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2A34u) goto L_08AF2A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2A34: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 17u); aot_gpr_31 = (0x08AF2A48u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 635u, 0x08AF2A48u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2A48u) goto L_08AF2A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2A48: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6080,8 +8678,8 @@ L_08AF2A48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2A60: @@ -6095,8 +8693,21 @@ L_08AF2A60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2A88u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 637u, 0x08AF2A88u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2A88u) goto L_08AF2A88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2A88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AF2A94u); @@ -6106,16 +8717,42 @@ L_08AF2A88: L_08AF2A94: aot_gpr_31 = (0x08AF2A9Cu); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 639u, 0x08AF2A9Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2A9Cu) goto L_08AF2A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2A9C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 18u); aot_gpr_31 = (0x08AF2AB0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 640u, 0x08AF2AB0u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2AB0u) goto L_08AF2AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2AB0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6126,8 +8763,8 @@ L_08AF2AB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2AC8: @@ -6141,8 +8778,21 @@ L_08AF2AC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2AF0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 642u, 0x08AF2AF0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2AF0u) goto L_08AF2AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2AF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15960))); aot_gpr_31 = (0x08AF2AFCu); @@ -6152,16 +8802,42 @@ L_08AF2AF0: L_08AF2AFC: aot_gpr_31 = (0x08AF2B04u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 644u, 0x08AF2B04u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2B04u) goto L_08AF2B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2B04: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 21u); aot_gpr_31 = (0x08AF2B18u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 645u, 0x08AF2B18u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2B18u) goto L_08AF2B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2B18: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6172,8 +8848,8 @@ L_08AF2B18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2B30: @@ -6187,8 +8863,21 @@ L_08AF2B30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2B58u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 647u, 0x08AF2B58u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2B58u) goto L_08AF2B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2B58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AF2B64u); @@ -6198,16 +8887,42 @@ L_08AF2B58: L_08AF2B64: aot_gpr_31 = (0x08AF2B6Cu); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 649u, 0x08AF2B6Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2B6Cu) goto L_08AF2B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2B6C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 22u); aot_gpr_31 = (0x08AF2B80u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 650u, 0x08AF2B80u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2B80u) goto L_08AF2B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2B80: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6218,8 +8933,8 @@ L_08AF2B80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2B98: @@ -6235,8 +8950,21 @@ L_08AF2B98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x08AF2BD0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 652u, 0x08AF2BD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2BD0u) goto L_08AF2BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2BD0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(4), aot_run_words); @@ -6281,8 +9009,21 @@ L_08AF2C18: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AF2C40u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 657u, 0x08AF2C40u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2C40u) goto L_08AF2C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2C40: ctx.fpr[26] = aot_fpr_20 - ctx.fpr[26]; aot_fpr_12 = aot_fpr_22 - ctx.fpr[24]; @@ -6306,8 +9047,21 @@ L_08AF2C60: goto L_08AF2C64; L_08AF2C64: aot_gpr_31 = (0x08AF2C6Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 661u, 0x08AF2C6Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2C6Cu) goto L_08AF2C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2C6C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -6317,8 +9071,21 @@ L_08AF2C6C: aot_gpr_6 = (0u | 24u); aot_gpr_31 = (0x08AF2C90u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 662u, 0x08AF2C90u, 0x08818F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 158u, 0x08818F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2C90u) goto L_08AF2C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2C90: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -6333,8 +9100,8 @@ L_08AF2C90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2CB8: @@ -6350,21 +9117,60 @@ L_08AF2CB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08AF2CECu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 664u, 0x08AF2CECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2CECu) goto L_08AF2CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2CEC: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AF2D00u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 665u, 0x08AF2D00u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2D00u) goto L_08AF2D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2D00: aot_gpr_31 = (0x08AF2D08u); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 666u, 0x08AF2D08u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2D08u) goto L_08AF2D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2D08: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_22), std::bit_cast(ctx.fpr[24])}; @@ -6373,8 +9179,21 @@ L_08AF2D08: aot_gpr_6 = (0u | 24u); aot_gpr_31 = (0x08AF2D28u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 667u, 0x08AF2D28u, 0x08818E30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 145u, 0x08818E30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2D28u) goto L_08AF2D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2D28: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6388,8 +9207,8 @@ L_08AF2D28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2D4C: @@ -6404,8 +9223,21 @@ L_08AF2D4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AF2D78u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 669u, 0x08AF2D78u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2D78u) goto L_08AF2D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2D78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF2D84u); @@ -6415,16 +9247,42 @@ L_08AF2D78: L_08AF2D84: aot_gpr_31 = (0x08AF2D8Cu); ctx.gpr[18] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 671u, 0x08AF2D8Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2D8Cu) goto L_08AF2D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2D8C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF2DA0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 672u, 0x08AF2DA0u, 0x088192E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 197u, 0x088192E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2DA0u) goto L_08AF2DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2DA0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -6436,8 +9294,8 @@ L_08AF2DA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2DBC: @@ -6449,27 +9307,66 @@ L_08AF2DBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF2DDCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 674u, 0x08AF2DDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2DDCu) goto L_08AF2DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2DDC: aot_gpr_31 = (0x08AF2DE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 675u, 0x08AF2DE4u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2DE4u) goto L_08AF2DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2DE4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF2DF4u); aot_gpr_6 = (0u | 35u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 676u, 0x08AF2DF4u, 0x08818BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 112u, 0x08818BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2DF4u) goto L_08AF2DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2DF4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2E08: @@ -6481,27 +9378,66 @@ L_08AF2E08: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF2E28u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 678u, 0x08AF2E28u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2E28u) goto L_08AF2E28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2E28: aot_gpr_31 = (0x08AF2E30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 679u, 0x08AF2E30u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2E30u) goto L_08AF2E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2E30: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF2E40u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 680u, 0x08AF2E40u, 0x08818BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 112u, 0x08818BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2E40u) goto L_08AF2E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2E40: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2E54: @@ -6515,8 +9451,21 @@ L_08AF2E54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2E7Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 682u, 0x08AF2E7Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2E7Cu) goto L_08AF2E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2E7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08AF2E88u); @@ -6526,16 +9475,42 @@ L_08AF2E7C: L_08AF2E88: aot_gpr_31 = (0x08AF2E90u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 684u, 0x08AF2E90u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2E90u) goto L_08AF2E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2E90: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 41u); aot_gpr_31 = (0x08AF2EA4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 685u, 0x08AF2EA4u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2EA4u) goto L_08AF2EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2EA4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6546,8 +9521,8 @@ L_08AF2EA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2EBC: @@ -6561,8 +9536,21 @@ L_08AF2EBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2EE4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 687u, 0x08AF2EE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2EE4u) goto L_08AF2EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2EE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF2EF0u); @@ -6572,16 +9560,42 @@ L_08AF2EE4: L_08AF2EF0: aot_gpr_31 = (0x08AF2EF8u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 689u, 0x08AF2EF8u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2EF8u) goto L_08AF2EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2EF8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 13u); aot_gpr_31 = (0x08AF2F0Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 690u, 0x08AF2F0Cu, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2F0Cu) goto L_08AF2F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2F0C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6592,8 +9606,8 @@ L_08AF2F0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2F24: @@ -6607,8 +9621,21 @@ L_08AF2F24: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF2F4Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 692u, 0x08AF2F4Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2F4Cu) goto L_08AF2F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2F4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF2F58u); @@ -6618,16 +9645,42 @@ L_08AF2F4C: L_08AF2F58: aot_gpr_31 = (0x08AF2F60u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 694u, 0x08AF2F60u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2F60u) goto L_08AF2F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2F60: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_6 = (0u | 46u); aot_gpr_31 = (0x08AF2F74u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 695u, 0x08AF2F74u, 0x08818D20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 132u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 132u, 0x08818D20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2F74u) goto L_08AF2F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2F74: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6638,8 +9691,8 @@ L_08AF2F74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF2F8C: @@ -6655,21 +9708,60 @@ L_08AF2F8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08AF2FC0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 697u, 0x08AF2FC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2FC0u) goto L_08AF2FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2FC0: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AF2FD4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 698u, 0x08AF2FD4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2FD4u) goto L_08AF2FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2FD4: aot_gpr_31 = (0x08AF2FDCu); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 699u, 0x08AF2FDCu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2FDCu) goto L_08AF2FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2FDC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_22), std::bit_cast(ctx.fpr[24])}; @@ -6678,8 +9770,21 @@ L_08AF2FDC: aot_gpr_6 = (0u | 49u); aot_gpr_31 = (0x08AF2FFCu); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 700u, 0x08AF2FFCu, 0x08818E30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 145u, 0x08818E30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF2FFCu) goto L_08AF2FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF2FFC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6693,8 +9798,8 @@ L_08AF2FFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3020: @@ -6708,12 +9813,38 @@ L_08AF3020: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF3048u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 702u, 0x08AF3048u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3048u) goto L_08AF3048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3048: aot_gpr_31 = (0x08AF3050u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 703u, 0x08AF3050u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3050u) goto L_08AF3050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3050: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); @@ -6725,8 +9856,21 @@ L_08AF3050: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF3078u); aot_gpr_6 = (0u | 30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 704u, 0x08AF3078u, 0x08819094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 171u, 0x08819094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3078u) goto L_08AF3078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3078: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6737,8 +9881,8 @@ L_08AF3078: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3090: @@ -6754,21 +9898,60 @@ L_08AF3090: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08AF30C4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 706u, 0x08AF30C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF30C4u) goto L_08AF30C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF30C4: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AF30D8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 707u, 0x08AF30D8u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF30D8u) goto L_08AF30D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF30D8: aot_gpr_31 = (0x08AF30E0u); ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 708u, 0x08AF30E0u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF30E0u) goto L_08AF30E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF30E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(aot_fpr_22), std::bit_cast(ctx.fpr[24])}; @@ -6777,8 +9960,21 @@ L_08AF30E0: aot_gpr_6 = (0u | 25u); aot_gpr_31 = (0x08AF3100u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 709u, 0x08AF3100u, 0x08818E30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 145u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 145u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 145u, 0x08818E30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3100u) goto L_08AF3100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3100: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6792,8 +9988,8 @@ L_08AF3100: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3124: @@ -6805,27 +10001,66 @@ L_08AF3124: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF3144u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 711u, 0x08AF3144u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3144u) goto L_08AF3144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3144: aot_gpr_31 = (0x08AF314Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 712u, 0x08AF314Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF314Cu) goto L_08AF314C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF314C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF315Cu); aot_gpr_6 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 713u, 0x08AF315Cu, 0x08818BD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 112u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 112u, 0x08818BD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF315Cu) goto L_08AF315C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF315C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3170: @@ -6838,8 +10073,21 @@ L_08AF3170: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08AF31A4u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 715u, 0x08AF31A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF31A4u) goto L_08AF31A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF31A4: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(12))); @@ -6867,8 +10115,21 @@ L_08AF31DC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08AF31E8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 718u, 0x08AF31E8u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF31E8u) goto L_08AF31E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF31E8: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08AF31EC; @@ -6917,8 +10178,21 @@ L_08AF3224: goto L_08AF3228; L_08AF3228: aot_gpr_31 = (0x08AF3230u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 726u, 0x08AF3230u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3230u) goto L_08AF3230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3230: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(ctx.fpr[26])); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -6930,8 +10204,21 @@ L_08AF3230: aot_gpr_6 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF3258u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 727u, 0x08AF3258u, 0x088193FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 211u, 0x088193FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3258u) goto L_08AF3258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3258: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -6952,8 +10239,8 @@ L_08AF3260: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3280: @@ -6965,26 +10252,65 @@ L_08AF3280: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF32A0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 730u, 0x08AF32A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF32A0u) goto L_08AF32A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF32A0: aot_gpr_31 = (0x08AF32A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 731u, 0x08AF32A8u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF32A8u) goto L_08AF32A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF32A8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08AF32B4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 732u, 0x08AF32B4u, 0x0881951Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 225u, 0x0881951Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF32B4u) goto L_08AF32B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF32B4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF32C8: @@ -7000,8 +10326,21 @@ L_08AF32C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AF32F8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 734u, 0x08AF32F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF32F8u) goto L_08AF32F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF32F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF3304u); @@ -7011,15 +10350,41 @@ L_08AF32F8: L_08AF3304: aot_gpr_31 = (0x08AF330Cu); ctx.gpr[18] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 736u, 0x08AF330Cu, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF330Cu) goto L_08AF330C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF330C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF331Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 737u, 0x08AF331Cu, 0x08818918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 72u, 0x08818918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF331Cu) goto L_08AF331C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF331C: aot_gpr_4 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); @@ -7091,8 +10456,8 @@ L_08AF3390: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF33AC: @@ -7106,8 +10471,21 @@ L_08AF33AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF33D4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 745u, 0x08AF33D4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF33D4u) goto L_08AF33D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF33D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF33E0u); @@ -7117,15 +10495,41 @@ L_08AF33D4: L_08AF33E0: aot_gpr_31 = (0x08AF33E8u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 747u, 0x08AF33E8u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF33E8u) goto L_08AF33E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF33E8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF33F8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 748u, 0x08AF33F8u, 0x08818A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 84u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 84u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 84u, 0x08818A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF33F8u) goto L_08AF33F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF33F8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7136,8 +10540,8 @@ L_08AF33F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3410: @@ -7149,8 +10553,21 @@ L_08AF3410: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF3430u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 750u, 0x08AF3430u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3430u) goto L_08AF3430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3430: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF343Cu); @@ -7160,22 +10577,48 @@ L_08AF3430: L_08AF343C: aot_gpr_31 = (0x08AF3444u); aot_gpr_16 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 752u, 0x08AF3444u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3444u) goto L_08AF3444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3444: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF3450u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 753u, 0x08AF3450u, 0x08818AA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 92u, 0x08818AA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3450u) goto L_08AF3450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3450: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3464: @@ -7193,16 +10636,42 @@ L_08AF3464: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF34A0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 755u, 0x08AF34A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF34A0u) goto L_08AF34A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF34A0: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AF34B4u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 756u, 0x08AF34B4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF34B4u) goto L_08AF34B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF34B4: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(12))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -7211,8 +10680,21 @@ L_08AF34B4: ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08AF34D0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 757u, 0x08AF34D0u, 0x088638D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 674u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 674u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 674u, 0x088638D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF34D0u) goto L_08AF34D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF34D0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_5 = (ctx.gpr[2] & 255u); @@ -7284,8 +10766,8 @@ L_08AF353C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3560: @@ -7301,15 +10783,41 @@ L_08AF3560: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AF3590u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 765u, 0x08AF3590u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3590u) goto L_08AF3590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3590: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_31 = (0x08AF35A0u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 766u, 0x08AF35A0u, 0x08863B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 719u, 0x08863B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF35A0u) goto L_08AF35A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF35A0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_5 = (ctx.gpr[2] & 255u); @@ -7379,8 +10887,8 @@ L_08AF360C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3628: @@ -7392,26 +10900,65 @@ L_08AF3628: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF3648u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 774u, 0x08AF3648u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3648u) goto L_08AF3648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3648: aot_gpr_31 = (0x08AF3650u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 775u, 0x08AF3650u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3650u) goto L_08AF3650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3650: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08AF365Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 776u, 0x08AF365Cu, 0x088189B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 80u, 0x088189B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF365Cu) goto L_08AF365C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF365C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3670: @@ -7427,12 +10974,38 @@ L_08AF3670: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08AF36A8u); ctx.gpr[7] = (ctx.gpr[21] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 778u, 0x08AF36A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF36A8u) goto L_08AF36A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF36A8: aot_gpr_31 = (0x08AF36B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 779u, 0x08AF36B0u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF36B0u) goto L_08AF36B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF36B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(29704))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -7456,8 +11029,21 @@ L_08AF36E0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AF36F0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 781u, 0x08AF36F0u, 0x08818B00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 96u, 0x08818B00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF36F0u) goto L_08AF36F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF36F0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -7473,8 +11059,21 @@ L_08AF36F0: } L_08AF3710: aot_gpr_31 = (0x08AF3718u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 783u, 0x08AF3718u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3718u) goto L_08AF3718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3718: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7573,8 +11172,8 @@ L_08AF37AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF37D4: @@ -7582,15 +11181,28 @@ L_08AF37D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AF37E4u); aot_gpr_6 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 794u, 0x08AF37E4u, 0x08867D0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 920u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 920u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 920u, 0x08867D0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF37E4u) goto L_08AF37E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF37E4: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF37F4: @@ -7598,15 +11210,28 @@ L_08AF37F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AF3804u); aot_gpr_6 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 796u, 0x08AF3804u, 0x088681F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 36u, 0x088681F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3804u) goto L_08AF3804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3804: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3814: @@ -7614,15 +11239,28 @@ L_08AF3814: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AF3824u); aot_gpr_6 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 798u, 0x08AF3824u, 0x088686D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 110u, 0x088686D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3824u) goto L_08AF3824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3824: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3834: @@ -7630,15 +11268,28 @@ L_08AF3834: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AF3844u); aot_gpr_6 = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 800u, 0x08AF3844u, 0x08868B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 180u, 0x08868B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3844u) goto L_08AF3844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3844: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3854: @@ -7654,8 +11305,21 @@ L_08AF3854: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AF3884u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 802u, 0x08AF3884u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3884u) goto L_08AF3884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3884: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08AF3890u); @@ -7665,8 +11329,21 @@ L_08AF3884: L_08AF3890: aot_gpr_31 = (0x08AF3898u); ctx.gpr[18] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 804u, 0x08AF3898u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3898u) goto L_08AF3898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3898: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.gpr[8] = (aot_gpr_29 + static_cast(4)); @@ -7674,8 +11351,21 @@ L_08AF3898: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AF38B0u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 805u, 0x08AF38B0u, 0x08818B84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 106u, 0x08818B84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF38B0u) goto L_08AF38B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF38B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7763,8 +11453,8 @@ L_08AF3930: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF394C: @@ -7780,12 +11470,38 @@ L_08AF394C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08AF397Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 816u, 0x08AF397Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF397Cu) goto L_08AF397C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF397C: aot_gpr_31 = (0x08AF3984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 817u, 0x08AF3984u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3984u) goto L_08AF3984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3984: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_gpr_6 = (aot_gpr_4 << 5u); @@ -7812,8 +11528,8 @@ L_08AF39B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF39D0: @@ -7827,18 +11543,57 @@ L_08AF39D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF39F8u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 820u, 0x08AF39F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF39F8u) goto L_08AF39F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF39F8: aot_gpr_31 = (0x08AF3A00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 821u, 0x08AF3A00u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3A00u) goto L_08AF3A00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3A00: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08AF3A0Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 822u, 0x08AF3A0Cu, 0x08819688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 244u, 0x08819688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3A0Cu) goto L_08AF3A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3A0C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_5 = (ctx.gpr[2] & 255u); @@ -7907,8 +11662,8 @@ L_08AF3A78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3A90: @@ -7922,12 +11677,38 @@ L_08AF3A90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF3AB8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 830u, 0x08AF3AB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3AB8u) goto L_08AF3AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3AB8: aot_gpr_31 = (0x08AF3AC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 831u, 0x08AF3AC0u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3AC0u) goto L_08AF3AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3AC0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -7937,8 +11718,21 @@ L_08AF3AC0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF3AE0u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 832u, 0x08AF3AE0u, 0x088195BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 235u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 235u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 235u, 0x088195BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3AE0u) goto L_08AF3AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3AE0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7949,8 +11743,8 @@ L_08AF3AE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3AF8: @@ -7964,12 +11758,38 @@ L_08AF3AF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF3B20u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 834u, 0x08AF3B20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3B20u) goto L_08AF3B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3B20: aot_gpr_31 = (0x08AF3B28u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 835u, 0x08AF3B28u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3B28u) goto L_08AF3B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3B28: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -7979,8 +11799,21 @@ L_08AF3B28: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08AF3B48u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 836u, 0x08AF3B48u, 0x088195BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 235u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 235u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 235u, 0x088195BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3B48u) goto L_08AF3B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3B48: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7991,16 +11824,29 @@ L_08AF3B48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3B60: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AF3B70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 838u, 0x08AF3B70u, 0x088188D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 69u, 0x088188D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3B70u) goto L_08AF3B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3B70: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(0), static_cast(aot_gpr_4)); @@ -8008,8 +11854,8 @@ L_08AF3B70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3B88: @@ -8023,8 +11869,21 @@ L_08AF3B88: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF3BB0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 840u, 0x08AF3BB0u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3BB0u) goto L_08AF3BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3BB0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8034,8 +11893,21 @@ L_08AF3BB0: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF3BD0u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 841u, 0x08AF3BD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3BD0u) goto L_08AF3BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3BD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8051,8 +11923,21 @@ L_08AF3BDC: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08AF3BF4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 843u, 0x08AF3BF4u, 0x08AA3BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 914u, 0x08AA3BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3BF4u) goto L_08AF3BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3BF4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8067,8 +11952,21 @@ L_08AF3BFC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF3C14u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 845u, 0x08AF3C14u, 0x08AA3BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 914u, 0x08AA3BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3C14u) goto L_08AF3C14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3C14: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8086,8 +11984,8 @@ L_08AF3C1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3C30: @@ -8096,16 +11994,42 @@ L_08AF3C30: aot_gpr_5 = (aot_gpr_4 + static_cast(16)); aot_gpr_31 = (0x08AF3C44u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 848u, 0x08AF3C44u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3C44u) goto L_08AF3C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3C44: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_4 = (2240u << 16u); aot_gpr_5 = (ctx.gpr[2] - aot_gpr_5); aot_gpr_31 = (0x08AF3C58u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 849u, 0x08AF3C58u, 0x08AA3D1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 933u, 0x08AA3D1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3C58u) goto L_08AF3C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3C58: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8118,8 +12042,8 @@ L_08AF3C60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3C6C: @@ -8133,8 +12057,21 @@ L_08AF3C6C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF3C94u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 852u, 0x08AF3C94u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3C94u) goto L_08AF3C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3C94: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8144,8 +12081,21 @@ L_08AF3C94: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF3CB4u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 853u, 0x08AF3CB4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3CB4u) goto L_08AF3CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3CB4: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_4 = (2240u << 16u); @@ -8158,8 +12108,21 @@ L_08AF3CB4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08AF3CE0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 854u, 0x08AF3CE0u, 0x08AA3E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 949u, 0x08AA3E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3CE0u) goto L_08AF3CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3CE0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8177,8 +12140,8 @@ L_08AF3CE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3CFC: @@ -8187,16 +12150,42 @@ L_08AF3CFC: aot_gpr_5 = (aot_gpr_4 + static_cast(16)); aot_gpr_31 = (0x08AF3D10u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 857u, 0x08AF3D10u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3D10u) goto L_08AF3D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3D10: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_4 = (2240u << 16u); aot_gpr_5 = (ctx.gpr[2] - aot_gpr_5); aot_gpr_31 = (0x08AF3D24u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 858u, 0x08AF3D24u, 0x08AA3D70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 938u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 938u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 938u, 0x08AA3D70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3D24u) goto L_08AF3D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3D24: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -8209,8 +12198,8 @@ L_08AF3D2C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3D38: @@ -8229,8 +12218,8 @@ L_08AF3D58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3D68: @@ -8242,8 +12231,21 @@ L_08AF3D68: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AF3D88u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 863u, 0x08AF3D88u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3D88u) goto L_08AF3D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3D88: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (2240u << 16u); @@ -8272,8 +12274,8 @@ L_08AF3DA8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3DBC: @@ -8289,8 +12291,21 @@ L_08AF3DBC: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AF3DECu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 868u, 0x08AF3DECu, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3DECu) goto L_08AF3DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3DEC: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_16 = (2236u << 16u); @@ -8300,8 +12315,21 @@ L_08AF3DEC: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF3E0Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 869u, 0x08AF3E0Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3E0Cu) goto L_08AF3E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3E0C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8329,8 +12357,21 @@ L_08AF3E24: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF3E40u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 873u, 0x08AF3E40u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3E40u) goto L_08AF3E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3E40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -8355,8 +12396,21 @@ L_08AF3E58: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AF3E6Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 877u, 0x08AF3E6Cu, 0x08AA3BE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 914u, 0x08AA3BE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3E6Cu) goto L_08AF3E6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3E6C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -8369,8 +12423,8 @@ L_08AF3E6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3E8C: @@ -8385,8 +12439,21 @@ L_08AF3E8C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AF3EC0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 879u, 0x08AF3EC0u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3EC0u) goto L_08AF3EC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3EC0: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_16 = (2236u << 16u); @@ -8396,8 +12463,21 @@ L_08AF3EC0: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF3EE0u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 880u, 0x08AF3EE0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3EE0u) goto L_08AF3EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3EE0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8408,8 +12488,21 @@ L_08AF3EE0: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF3F04u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 881u, 0x08AF3F04u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3F04u) goto L_08AF3F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3F04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); if (aot_gpr_4 != 0u) { @@ -8438,8 +12531,21 @@ L_08AF3F1C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08AF3F40u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 885u, 0x08AF3F40u, 0x08AA3E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 949u, 0x08AA3E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3F40u) goto L_08AF3F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3F40: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -8452,8 +12558,8 @@ L_08AF3F40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF3F60: @@ -8472,8 +12578,21 @@ L_08AF3F60: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AF3FA4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 887u, 0x08AF3FA4u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3FA4u) goto L_08AF3FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3FA4: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -8482,8 +12601,21 @@ L_08AF3FA4: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AF3FC0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 888u, 0x08AF3FC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3FC0u) goto L_08AF3FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3FC0: aot_gpr_16 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); ctx.gpr[17] = (2240u << 16u); @@ -8494,8 +12626,21 @@ L_08AF3FC0: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF3FE4u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0187->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0187_entry, 889u, 0x08AF3FE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF3FE4u) goto L_08AF3FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF3FE4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); if (aot_gpr_4 != 0u) { diff --git a/profiles/vcs/generated/generated_unit_0188.cpp b/profiles/vcs/generated/generated_unit_0188.cpp index aef554b..dec27a4 100644 --- a/profiles/vcs/generated/generated_unit_0188.cpp +++ b/profiles/vcs/generated/generated_unit_0188.cpp @@ -1052,6 +1052,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AF4000u; + if (local_delta_v813 >= 16352u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1076,8 +1100,21 @@ L_08AF4000: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08AF4028u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 2u, 0x08AF4028u, 0x08AA3E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 949u, 0x08AA3E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4028u) goto L_08AF4028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4028: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -1092,8 +1129,8 @@ L_08AF4028: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4050: @@ -1107,8 +1144,21 @@ L_08AF4050: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF4078u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 4u, 0x08AF4078u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4078u) goto L_08AF4078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4078: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -1118,8 +1168,21 @@ L_08AF4078: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF4098u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 5u, 0x08AF4098u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4098u) goto L_08AF4098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4098: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1145,8 +1208,21 @@ L_08AF40B0: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF40C4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 9u, 0x08AF40C4u, 0x08AA3DD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 943u, 0x08AA3DD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF40C4u) goto L_08AF40C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF40C4: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1157,8 +1233,8 @@ L_08AF40C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF40DC: @@ -1175,8 +1251,21 @@ L_08AF40DC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF4114u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 11u, 0x08AF4114u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4114u) goto L_08AF4114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4114: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); ctx.gpr[20] = (ctx.gpr[18] + static_cast(29704)); @@ -1186,8 +1275,21 @@ L_08AF4114: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AF4134u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 12u, 0x08AF4134u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4134u) goto L_08AF4134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4134: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -1198,8 +1300,21 @@ L_08AF4134: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AF4158u); ctx.gpr[17] = (ctx.gpr[17] + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 13u, 0x08AF4158u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4158u) goto L_08AF4158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4158: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -1228,8 +1343,21 @@ L_08AF4170: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08AF4194u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 17u, 0x08AF4194u, 0x08AA3E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 949u, 0x08AA3E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4194u) goto L_08AF4194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4194: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -1243,8 +1371,8 @@ L_08AF4194: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF41B8: @@ -1264,8 +1392,21 @@ L_08AF41B8: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AF41F8u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 19u, 0x08AF41F8u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF41F8u) goto L_08AF41F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF41F8: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-29148))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -1274,16 +1415,42 @@ L_08AF41F8: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08AF4214u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 20u, 0x08AF4214u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4214u) goto L_08AF4214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4214: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08AF4228u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 21u, 0x08AF4228u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4228u) goto L_08AF4228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4228: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (ctx.gpr[16] != 0u) { @@ -1308,8 +1475,21 @@ L_08AF4240: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AF4254u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 25u, 0x08AF4254u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4254u) goto L_08AF4254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4254: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); if (ctx.gpr[20] != 0u) { @@ -1341,8 +1521,21 @@ L_08AF426C: ctx.gpr[10] = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF429Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-25888)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 29u, 0x08AF429Cu, 0x08AA3E10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 949u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 949u, 0x08AA3E10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF429Cu) goto L_08AF429C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF429C: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -1357,16 +1550,16 @@ L_08AF429C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF42C4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), 0u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF42D0: @@ -1408,8 +1601,8 @@ L_08AF4308: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF431C: @@ -1419,8 +1612,21 @@ L_08AF431C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AF4334u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10372), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 37u, 0x08AF4334u, 0x08890830u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 122u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 122u, 0x08890830u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4334u) goto L_08AF4334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4334: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1449,16 +1655,16 @@ L_08AF4334: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF43A0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(448), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(452), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF43AC: @@ -1516,8 +1722,8 @@ L_08AF4450: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF445C: @@ -1529,8 +1735,8 @@ L_08AF445C: aot_gpr_4 = (aot_gpr_4 ^ 1u); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 | aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF447C: @@ -1558,8 +1764,21 @@ L_08AF449C: aot_gpr_5 = (aot_gpr_5 + static_cast(-272)); aot_gpr_31 = (0x08AF44BCu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(12016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 48u, 0x08AF44BCu, 0x08AEE294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 495u, 0x08AEE294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF44BCu) goto L_08AF44BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF44BC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10368), 0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10372), 0u); @@ -1568,8 +1787,8 @@ L_08AF44C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF44D0: @@ -1585,8 +1804,8 @@ L_08AF44DC: goto L_08AF44E0; L_08AF44E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF44E8: @@ -1609,8 +1828,21 @@ L_08AF450C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF4518u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 56u, 0x08AF4518u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4518u) goto L_08AF4518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4518: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), aot_gpr_2); goto L_08AF451C; @@ -1623,8 +1855,8 @@ L_08AF451C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4530: @@ -1651,8 +1883,21 @@ L_08AF4550: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08AF4560u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 61u, 0x08AF4560u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4560u) goto L_08AF4560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4560: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), aot_gpr_2); goto L_08AF4564; @@ -1661,8 +1906,8 @@ L_08AF4564: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4574: @@ -1716,8 +1961,21 @@ L_08AF4600: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF4614u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 69u, 0x08AF4614u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4614u) goto L_08AF4614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4614: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08AF4620u); @@ -1743,8 +2001,8 @@ L_08AF462C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4650: @@ -1769,15 +2027,28 @@ L_08AF4680: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF4694u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 75u, 0x08AF4694u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4694u) goto L_08AF4694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4694: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF46A4: @@ -1803,15 +2074,28 @@ L_08AF46D8: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF46ECu); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 79u, 0x08AF46ECu, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF46ECu) goto L_08AF46EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF46EC: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF46FC: @@ -1844,15 +2128,28 @@ L_08AF474C: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF4760u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 83u, 0x08AF4760u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF4760u) goto L_08AF4760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF4760: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4770: @@ -1876,15 +2173,28 @@ L_08AF479C: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF47B0u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 87u, 0x08AF47B0u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF47B0u) goto L_08AF47B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF47B0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF47C0: @@ -2027,8 +2337,8 @@ L_08AF4834: aot_mem.aot_direct_store8(ctx.gpr[11] + static_cast(55), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF49B4: @@ -2143,8 +2453,8 @@ L_08AF49B4: aot_mem.aot_direct_store8(ctx.gpr[11] + static_cast(54), static_cast(ctx.gpr[7])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[11] + static_cast(55), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4B70: @@ -2273,8 +2583,8 @@ L_08AF4B70: aot_mem.aot_direct_store8(ctx.gpr[9] + static_cast(55), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4D64: @@ -2351,8 +2661,8 @@ L_08AF4DB0: } L_08AF4E4C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4E54: @@ -2405,8 +2715,8 @@ L_08AF4E80: } L_08AF4EDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF4EE4: @@ -2541,8 +2851,8 @@ L_08AF4EE4: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(55), static_cast(aot_gpr_6)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF50F0: @@ -2578,8 +2888,8 @@ L_08AF5124: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5130: @@ -2651,8 +2961,21 @@ L_08AF51B4: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF51C8u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 117u, 0x08AF51C8u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF51C8u) goto L_08AF51C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF51C8: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08AF51D4u); @@ -2676,8 +2999,8 @@ L_08AF51EC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF51FC: @@ -2695,14 +3018,27 @@ L_08AF5218: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF522Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 123u, 0x08AF522Cu, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF522Cu) goto L_08AF522C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF522C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5238: @@ -2783,8 +3119,21 @@ L_08AF52E0: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF52F4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 134u, 0x08AF52F4u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF52F4u) goto L_08AF52F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF52F4: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08AF5300u); @@ -2808,8 +3157,8 @@ L_08AF5318: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5328: @@ -2848,8 +3197,21 @@ L_08AF5368: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF537Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 144u, 0x08AF537Cu, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF537Cu) goto L_08AF537C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF537C: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08AF5388u); @@ -2866,8 +3228,8 @@ L_08AF5394: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF53A0: @@ -2964,8 +3326,21 @@ L_08AF5450: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08AF5464u); aot_gpr_5 = (aot_gpr_5 + static_cast(-8272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 160u, 0x08AF5464u, 0x08AEE120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 486u, 0x08AEE120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5464u) goto L_08AF5464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5464: aot_gpr_4 = (0u | 4u); aot_gpr_31 = (0x08AF5470u); @@ -2995,8 +3370,8 @@ L_08AF5488: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF54A4: @@ -3041,8 +3416,21 @@ L_08AF54E8: aot_gpr_6 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF54F4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 169u, 0x08AF54F4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF54F4u) goto L_08AF54F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF54F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3111,8 +3499,8 @@ L_08AF5558: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5564: @@ -3142,8 +3530,8 @@ L_08AF5598: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF55AC: @@ -3188,8 +3576,21 @@ L_08AF561C: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AF5630u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 186u, 0x08AF5630u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5630u) goto L_08AF5630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5630: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF563Cu); @@ -3208,8 +3609,8 @@ L_08AF563C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF565C: @@ -3258,8 +3659,21 @@ L_08AF56D4: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AF56ECu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 193u, 0x08AF56ECu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF56ECu) goto L_08AF56EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF56EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF56F8u); @@ -3279,8 +3693,8 @@ L_08AF56F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF571C: @@ -3443,8 +3857,8 @@ L_08AF58B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF58C8: @@ -3467,8 +3881,8 @@ L_08AF58DC: } L_08AF58F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF58F8: @@ -3507,8 +3921,8 @@ L_08AF592C: } L_08AF5940: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5948: @@ -3519,8 +3933,8 @@ L_08AF5948: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(24), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5964: @@ -3531,8 +3945,8 @@ L_08AF5964: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5980: @@ -3543,8 +3957,8 @@ L_08AF5980: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(28), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF599C: @@ -3652,8 +4066,8 @@ L_08AF5A28: goto L_08AF5A34; L_08AF5A34: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5A3C: @@ -3766,8 +4180,8 @@ L_08AF5AD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5ADC: @@ -3864,8 +4278,21 @@ L_08AF5B70: aot_gpr_6 = (aot_mem.aot_direct_load16(ctx.gpr[7] + static_cast(2274))); aot_gpr_31 = (0x08AF5B84u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 273u, 0x08AF5B84u, 0x089B16E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 395u, 0x089B16E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5B84u) goto L_08AF5B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5B84: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3954,8 +4381,21 @@ L_08AF5C14: ctx.gpr[19] = (ctx.gpr[19] & 255u); aot_gpr_31 = (0x08AF5C24u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 282u, 0x08AF5C24u, 0x08B012BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 339u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 339u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 339u, 0x08B012BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5C24u) goto L_08AF5C24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5C24: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4123,8 +4563,21 @@ L_08AF5D2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_31 = (0x08AF5D38u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 303u, 0x08AF5D38u, 0x0883365Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 752u, 0x0883365Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5D38u) goto L_08AF5D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5D38: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 13u); @@ -4210,8 +4663,8 @@ L_08AF5D9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5DB8: @@ -4243,8 +4696,21 @@ L_08AF5DEC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF5DF8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 319u, 0x08AF5DF8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5DF8u) goto L_08AF5DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5DF8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4268,8 +4734,21 @@ L_08AF5E14: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08AF5E20u); aot_gpr_5 = (ctx.gpr[28] + static_cast(488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 324u, 0x08AF5E20u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E20u) goto L_08AF5E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5E20: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4277,8 +4756,21 @@ L_08AF5E20: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF5E38u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 325u, 0x08AF5E38u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E38u) goto L_08AF5E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5E38: aot_gpr_31 = (0x08AF5E40u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E40u) goto L_08AF5E40; @@ -4289,8 +4781,21 @@ L_08AF5E40: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AF5E54u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 327u, 0x08AF5E54u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E54u) goto L_08AF5E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5E54: aot_gpr_31 = (0x08AF5E5Cu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E5Cu) goto L_08AF5E5C; @@ -4301,8 +4806,21 @@ L_08AF5E5C: aot_gpr_6 = (0u | 100u); aot_gpr_31 = (0x08AF5E70u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 329u, 0x08AF5E70u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E70u) goto L_08AF5E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5E70: aot_gpr_31 = (0x08AF5E78u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E78u) goto L_08AF5E78; @@ -4313,8 +4831,21 @@ L_08AF5E78: aot_gpr_6 = (0u | 100u); aot_gpr_31 = (0x08AF5E8Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 331u, 0x08AF5E8Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E8Cu) goto L_08AF5E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5E8C: aot_gpr_31 = (0x08AF5E94u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5E94u) goto L_08AF5E94; @@ -4325,8 +4856,21 @@ L_08AF5E94: aot_gpr_6 = (0u | 20u); aot_gpr_31 = (0x08AF5EA8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 333u, 0x08AF5EA8u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5EA8u) goto L_08AF5EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5EA8: aot_gpr_31 = (0x08AF5EB0u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5EB0u) goto L_08AF5EB0; @@ -4337,8 +4881,21 @@ L_08AF5EB0: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08AF5EC4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 335u, 0x08AF5EC4u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5EC4u) goto L_08AF5EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5EC4: aot_gpr_31 = (0x08AF5ECCu); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5ECCu) goto L_08AF5ECC; @@ -4349,8 +4906,21 @@ L_08AF5ECC: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08AF5EE0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 337u, 0x08AF5EE0u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5EE0u) goto L_08AF5EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5EE0: aot_gpr_31 = (0x08AF5EE8u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5EE8u) goto L_08AF5EE8; @@ -4361,8 +4931,21 @@ L_08AF5EE8: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08AF5EFCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 339u, 0x08AF5EFCu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5EFCu) goto L_08AF5EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5EFC: aot_gpr_31 = (0x08AF5F04u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5F04u) goto L_08AF5F04; @@ -4373,8 +4956,21 @@ L_08AF5F04: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08AF5F18u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 341u, 0x08AF5F18u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5F18u) goto L_08AF5F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5F18: aot_gpr_31 = (0x08AF5F20u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5F20u) goto L_08AF5F20; @@ -4385,8 +4981,21 @@ L_08AF5F20: aot_gpr_6 = (0u | 200u); aot_gpr_31 = (0x08AF5F34u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 343u, 0x08AF5F34u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5F34u) goto L_08AF5F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5F34: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4398,8 +5007,8 @@ L_08AF5F34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF5F50: @@ -4445,8 +5054,21 @@ L_08AF5FBC: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF5FC8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 349u, 0x08AF5FC8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5FC8u) goto L_08AF5FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5FC8: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4470,8 +5092,21 @@ L_08AF5FE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08AF5FF0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(496)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 354u, 0x08AF5FF0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF5FF0u) goto L_08AF5FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF5FF0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4479,8 +5114,21 @@ L_08AF5FF0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF6008u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 355u, 0x08AF6008u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6008u) goto L_08AF6008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6008: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4492,8 +5140,8 @@ L_08AF6008: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF6024: @@ -4525,8 +5173,21 @@ L_08AF605C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF6068u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 361u, 0x08AF6068u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6068u) goto L_08AF6068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6068: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4550,8 +5211,21 @@ L_08AF6084: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08AF6090u); aot_gpr_5 = (ctx.gpr[28] + static_cast(504)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 366u, 0x08AF6090u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6090u) goto L_08AF6090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6090: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4559,8 +5233,21 @@ L_08AF6090: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF60A8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 367u, 0x08AF60A8u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF60A8u) goto L_08AF60A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF60A8: aot_gpr_4 = (17096u << 16u); aot_gpr_31 = (0x08AF60B4u); @@ -4580,8 +5267,8 @@ L_08AF60B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF60D8: @@ -4613,8 +5300,21 @@ L_08AF6110: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF611Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 374u, 0x08AF611Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF611Cu) goto L_08AF611C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF611C: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4638,8 +5338,21 @@ L_08AF6138: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08AF6144u); aot_gpr_5 = (ctx.gpr[28] + static_cast(512)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 379u, 0x08AF6144u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6144u) goto L_08AF6144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6144: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4647,8 +5360,21 @@ L_08AF6144: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF615Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 380u, 0x08AF615Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF615Cu) goto L_08AF615C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF615C: aot_gpr_4 = (17096u << 16u); aot_gpr_31 = (0x08AF6168u); @@ -4658,8 +5384,21 @@ L_08AF615C: L_08AF6168: aot_gpr_31 = (0x08AF6170u); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(1252), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 382u, 0x08AF6170u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6170u) goto L_08AF6170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6170: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4671,13 +5410,39 @@ L_08AF6178: aot_gpr_4 = (17530u << 16u); aot_gpr_31 = (0x08AF6184u); ctx.fpr[20] = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 384u, 0x08AF6184u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6184u) goto L_08AF6184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6184: aot_gpr_31 = (0x08AF618Cu); aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(636), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 385u, 0x08AF618Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF618Cu) goto L_08AF618C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF618C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4688,14 +5453,40 @@ L_08AF618C: } L_08AF6198: aot_gpr_31 = (0x08AF61A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 387u, 0x08AF61A0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF61A0u) goto L_08AF61A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF61A0: aot_gpr_4 = (aot_gpr_2 + static_cast(944)); aot_gpr_31 = (0x08AF61ACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 388u, 0x08AF61ACu, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF61ACu) goto L_08AF61AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF61AC: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -4708,8 +5499,8 @@ L_08AF61AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF61CC: @@ -4741,8 +5532,21 @@ L_08AF6200: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08AF620Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 394u, 0x08AF620Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF620Cu) goto L_08AF620C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF620C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4766,8 +5570,21 @@ L_08AF6228: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08AF6234u); aot_gpr_5 = (ctx.gpr[28] + static_cast(520)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 399u, 0x08AF6234u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6234u) goto L_08AF6234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6234: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -4775,8 +5592,21 @@ L_08AF6234: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08AF624Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 400u, 0x08AF624Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF624Cu) goto L_08AF624C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF624C: aot_gpr_31 = (0x08AF6254u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6254u) goto L_08AF6254; @@ -4800,8 +5630,21 @@ L_08AF6274: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AF6280u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 404u, 0x08AF6280u, 0x08947470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 655u, 0x08947470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6280u) goto L_08AF6280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6280: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4813,8 +5656,8 @@ L_08AF6280: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF629C: @@ -4858,8 +5701,8 @@ L_08AF629C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF62E0: @@ -4883,33 +5726,98 @@ L_08AF630C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF6318u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 409u, 0x08AF6318u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6318u) goto L_08AF6318; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6318: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); goto L_08AF6320; L_08AF6320: aot_gpr_31 = (0x08AF6328u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 411u, 0x08AF6328u, 0x08AD323Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 544u, 0x08AD323Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6328u) goto L_08AF6328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6328: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AF6338u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 412u, 0x08AF6338u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6338u) goto L_08AF6338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6338: aot_gpr_31 = (0x08AF6340u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 413u, 0x08AF6340u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6340u) goto L_08AF6340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6340: aot_gpr_31 = (0x08AF6348u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 414u, 0x08AF6348u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6348u) goto L_08AF6348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6348: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4921,8 +5829,21 @@ L_08AF6350: ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_31 = (0x08AF635Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 416u, 0x08AF635Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF635Cu) goto L_08AF635C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF635C: aot_gpr_2 = (17096u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4935,8 +5856,21 @@ L_08AF635C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08AF6388u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 417u, 0x08AF6388u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6388u) goto L_08AF6388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6388: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(ctx.gpr[17]) < 0; @@ -4949,8 +5883,21 @@ L_08AF6394: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08AF63A0u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 419u, 0x08AF63A0u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF63A0u) goto L_08AF63A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF63A0: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4965,8 +5912,21 @@ L_08AF63AC: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AF63BCu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 421u, 0x08AF63BCu, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF63BCu) goto L_08AF63BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF63BC: ctx.gpr[16] = (ctx.gpr[19] | 0u); goto L_08AF63C0; @@ -5049,8 +6009,21 @@ L_08AF63EC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF645Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 425u, 0x08AF645Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF645Cu) goto L_08AF645C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF645C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -5060,8 +6033,21 @@ L_08AF645C: } aot_gpr_31 = (0x08AF6470u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 426u, 0x08AF6470u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6470u) goto L_08AF6470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6470: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -5072,8 +6058,21 @@ L_08AF6470: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(680), aot_gpr_4); aot_gpr_31 = (0x08AF6494u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 427u, 0x08AF6494u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6494u) goto L_08AF6494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6494: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -5086,8 +6085,8 @@ L_08AF6494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF64B4: @@ -5111,16 +6110,42 @@ L_08AF64D4: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x08AF64E8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 431u, 0x08AF64E8u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF64E8u) goto L_08AF64E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF64E8: aot_gpr_5 = (2223u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AF64FCu); aot_gpr_5 = (aot_gpr_5 + static_cast(23992)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 432u, 0x08AF64FCu, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF64FCu) goto L_08AF64FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF64FC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF6508u); @@ -5131,16 +6156,42 @@ L_08AF6508: aot_gpr_5 = (ctx.gpr[28] + static_cast(544)); aot_gpr_31 = (0x08AF6514u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 434u, 0x08AF6514u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6514u) goto L_08AF6514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6514: aot_gpr_5 = (2223u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AF6528u); aot_gpr_5 = (aot_gpr_5 + static_cast(24400)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 435u, 0x08AF6528u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6528u) goto L_08AF6528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6528: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF6534u); @@ -5151,16 +6202,42 @@ L_08AF6534: aot_gpr_5 = (ctx.gpr[28] + static_cast(556)); aot_gpr_31 = (0x08AF6540u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 437u, 0x08AF6540u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6540u) goto L_08AF6540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6540: aot_gpr_5 = (2223u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AF6554u); aot_gpr_5 = (aot_gpr_5 + static_cast(24612)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 438u, 0x08AF6554u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6554u) goto L_08AF6554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6554: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF6560u); @@ -5171,16 +6248,42 @@ L_08AF6560: aot_gpr_5 = (ctx.gpr[28] + static_cast(568)); aot_gpr_31 = (0x08AF656Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 440u, 0x08AF656Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF656Cu) goto L_08AF656C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF656C: aot_gpr_5 = (2223u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AF6580u); aot_gpr_5 = (aot_gpr_5 + static_cast(24792)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 441u, 0x08AF6580u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6580u) goto L_08AF6580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6580: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF658Cu); @@ -5191,16 +6294,42 @@ L_08AF658C: aot_gpr_5 = (ctx.gpr[28] + static_cast(580)); aot_gpr_31 = (0x08AF6598u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 443u, 0x08AF6598u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF6598u) goto L_08AF6598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF6598: aot_gpr_5 = (2223u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AF65ACu); aot_gpr_5 = (aot_gpr_5 + static_cast(25036)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 444u, 0x08AF65ACu, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF65ACu) goto L_08AF65AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF65AC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF65B8u); @@ -5211,16 +6340,42 @@ L_08AF65B8: aot_gpr_5 = (ctx.gpr[28] + static_cast(592)); aot_gpr_31 = (0x08AF65C4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 446u, 0x08AF65C4u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF65C4u) goto L_08AF65C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF65C4: aot_gpr_5 = (2223u << 16u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AF65D8u); aot_gpr_5 = (aot_gpr_5 + static_cast(25312)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 447u, 0x08AF65D8u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF65D8u) goto L_08AF65D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF65D8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AF65E4u); @@ -5232,8 +6387,8 @@ L_08AF65E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF65F4: @@ -5335,8 +6490,21 @@ L_08AF66C0: L_08AF66C8: aot_gpr_31 = (0x08AF66D0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0188->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0188_entry, 460u, 0x08AF66D0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF66D0u) goto L_08AF66D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF66D0: ctx.gpr[20] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -5499,8 +6667,8 @@ L_08AF67F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF6824: @@ -5509,8 +6677,8 @@ L_08AF6824: aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF6838: @@ -5953,8 +7121,8 @@ L_08AF6AEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF6B04: @@ -7189,8 +8357,8 @@ L_08AF7294: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF72AC: @@ -8054,8 +9222,8 @@ L_08AF77E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF7800: @@ -8190,8 +9358,8 @@ L_08AF78C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF78E0: @@ -8451,8 +9619,8 @@ L_08AF7A74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF7A8C: @@ -8483,8 +9651,8 @@ L_08AF7ABC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30248))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF7AD4: diff --git a/profiles/vcs/generated/generated_unit_0189.cpp b/profiles/vcs/generated/generated_unit_0189.cpp index e16b905..9aa216e 100644 --- a/profiles/vcs/generated/generated_unit_0189.cpp +++ b/profiles/vcs/generated/generated_unit_0189.cpp @@ -655,6 +655,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AF8000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -680,8 +704,21 @@ L_08AF8008: aot_gpr_5 = (aot_gpr_29 + static_cast(56)); aot_gpr_31 = (0x08AF8014u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 3u, 0x08AF8014u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8014u) goto L_08AF8014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8014: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); @@ -707,8 +744,21 @@ L_08AF803C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF8048u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 6u, 0x08AF8048u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8048u) goto L_08AF8048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8048: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_5 = (ctx.gpr[18] - ctx.gpr[17]); @@ -733,8 +783,21 @@ L_08AF805C: L_08AF806C: aot_gpr_31 = (0x08AF8074u); aot_gpr_5 = (aot_gpr_29 + static_cast(56)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 9u, 0x08AF8074u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8074u) goto L_08AF8074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8074: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); @@ -747,14 +810,40 @@ L_08AF8074: aot_gpr_7 = (aot_gpr_29 + static_cast(77)); aot_gpr_31 = (0x08AF80A0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 10u, 0x08AF80A0u, 0x08AF65F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 449u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 449u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 449u, 0x08AF65F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF80A0u) goto L_08AF80A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF80A0: aot_gpr_5 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08AF80ACu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 11u, 0x08AF80ACu, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF80ACu) goto L_08AF80AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF80AC: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -792,8 +881,8 @@ L_08AF80D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF80F0: @@ -806,8 +895,8 @@ L_08AF8100: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF810C: @@ -863,8 +952,21 @@ L_08AF8180: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_5); aot_gpr_31 = (0x08AF8198u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 23u, 0x08AF8198u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8198u) goto L_08AF8198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8198: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -1151,8 +1253,8 @@ L_08AF8360: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8398: @@ -1168,8 +1270,21 @@ L_08AF83B4: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08AF83C0u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 64u, 0x08AF83C0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF83C0u) goto L_08AF83C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF83C0: aot_gpr_4 = (2236u << 16u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -1313,18 +1428,57 @@ L_08AF84C4: AOT_REGCACHE_SYNC_OUT(); return; L_08AF84CC: aot_gpr_31 = (0x08AF84D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 83u, 0x08AF84D4u, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF84D4u) goto L_08AF84D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF84D4: aot_gpr_31 = (0x08AF84DCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(1420)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 84u, 0x08AF84DCu, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF84DCu) goto L_08AF84DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF84DC: aot_gpr_31 = (0x08AF84E4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 85u, 0x08AF84E4u, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF84E4u) goto L_08AF84E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF84E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1364))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1337,8 +1491,21 @@ L_08AF84F0: aot_gpr_4 = (ctx.gpr[28] + static_cast(1432)); aot_gpr_31 = (0x08AF84FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 87u, 0x08AF84FCu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF84FCu) goto L_08AF84FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF84FC: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1364), ctx.gpr[2]); goto L_08AF8500; @@ -1357,8 +1524,21 @@ L_08AF8514: aot_gpr_4 = (ctx.gpr[28] + static_cast(1448)); aot_gpr_31 = (0x08AF8520u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 90u, 0x08AF8520u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8520u) goto L_08AF8520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8520: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1372), ctx.gpr[2]); goto L_08AF8524; @@ -1378,8 +1558,21 @@ L_08AF8538: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08AF8548u); aot_gpr_4 = (aot_gpr_4 + static_cast(30456)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 93u, 0x08AF8548u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8548u) goto L_08AF8548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8548: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1380), ctx.gpr[2]); goto L_08AF854C; @@ -1398,8 +1591,21 @@ L_08AF8560: aot_gpr_4 = (ctx.gpr[28] + static_cast(1456)); aot_gpr_31 = (0x08AF856Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 96u, 0x08AF856Cu, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF856Cu) goto L_08AF856C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF856C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1388), ctx.gpr[2]); goto L_08AF8570; @@ -1418,8 +1624,21 @@ L_08AF8584: aot_gpr_4 = (ctx.gpr[28] + static_cast(1468)); aot_gpr_31 = (0x08AF8590u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 99u, 0x08AF8590u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8590u) goto L_08AF8590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8590: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1396), ctx.gpr[2]); goto L_08AF8594; @@ -1428,15 +1647,28 @@ L_08AF8594: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08AF85A4u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1392), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 101u, 0x08AF85A4u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF85A4u) goto L_08AF85A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF85A4: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF85B4: @@ -1447,8 +1679,21 @@ L_08AF85B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AF85D0u); aot_gpr_4 = (0u | 30384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 103u, 0x08AF85D0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF85D0u) goto L_08AF85D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF85D0: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1462,8 +1707,21 @@ L_08AF85DC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF85E8u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 105u, 0x08AF85E8u, 0x08A852A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 174u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 174u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 174u, 0x08A852A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF85E8u) goto L_08AF85E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF85E8: ctx.gpr[16] = (ctx.gpr[17] | 0u); goto L_08AF85EC; @@ -1472,8 +1730,21 @@ L_08AF85EC: ctx.gpr[16] = (0u | 0u); aot_gpr_31 = (0x08AF85FCu); aot_gpr_4 = (0u | 17888u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 107u, 0x08AF85FCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF85FCu) goto L_08AF85FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF85FC: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1488,8 +1759,21 @@ L_08AF8608: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AF8618u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 109u, 0x08AF8618u, 0x088176C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 757u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 757u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 757u, 0x088176C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8618u) goto L_08AF8618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8618: ctx.gpr[16] = (ctx.gpr[17] | 0u); goto L_08AF861C; @@ -1498,8 +1782,21 @@ L_08AF861C: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08AF862Cu); aot_gpr_4 = (0u | 96u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 111u, 0x08AF862Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF862Cu) goto L_08AF862C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF862C: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -1515,8 +1812,21 @@ L_08AF8638: aot_gpr_5 = (16896u << 16u); aot_gpr_31 = (0x08AF864Cu); aot_fpr_13 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 113u, 0x08AF864Cu, 0x089F1EECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 364u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 364u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 364u, 0x089F1EECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF864Cu) goto L_08AF864C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF864C: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08AF8650; @@ -1530,8 +1840,8 @@ L_08AF8650: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8668: @@ -1631,8 +1941,21 @@ L_08AF8758: aot_gpr_7 = (aot_gpr_29 + static_cast(8)); aot_gpr_31 = (0x08AF8780u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 121u, 0x08AF8780u, 0x08817F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 801u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 801u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 801u, 0x08817F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8780u) goto L_08AF8780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8780: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1324))); aot_gpr_5 = (aot_gpr_4 + ctx.gpr[17]); @@ -1814,8 +2137,8 @@ L_08AF88EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8918: @@ -1881,8 +2204,8 @@ L_08AF8990: goto L_08AF89A8; L_08AF89A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF89B0: @@ -1898,8 +2221,21 @@ L_08AF89B0: aot_gpr_6 = (aot_gpr_29 + static_cast(68)); aot_gpr_31 = (0x08AF89E0u); aot_gpr_7 = (aot_gpr_29 + static_cast(72)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 145u, 0x08AF89E0u, 0x08817F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 801u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 801u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 801u, 0x08817F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF89E0u) goto L_08AF89E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF89E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); { std::uint32_t aot_run_words[3]{}; @@ -2111,8 +2447,8 @@ L_08AF89E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(212))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8B48: @@ -2289,8 +2625,21 @@ L_08AF8D2C: aot_gpr_7 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08AF8D40u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 162u, 0x08AF8D40u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8D40u) goto L_08AF8D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8D40: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08AF8D4Cu); @@ -2312,8 +2661,21 @@ L_08AF8D5C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08AF8D68u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0156. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 166u, 0x08AF8D68u, 0x08A775F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0156_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0156_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0156_entry, 156u, 679u, 0x08A775F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF8D68u) goto L_08AF8D68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF8D68: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1412))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -2379,20 +2741,20 @@ L_08AF8DC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8DFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8E04: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8E0C: @@ -2418,8 +2780,8 @@ L_08AF8E38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8E44: @@ -2555,8 +2917,8 @@ L_08AF8FDC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF8FE8: @@ -2589,8 +2951,21 @@ L_08AF8FE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), aot_gpr_31); aot_gpr_31 = (0x08AF905Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 193u, 0x08AF905Cu, 0x08B133A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 636u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 636u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 636u, 0x08B133A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF905Cu) goto L_08AF905C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF905C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2632,8 +3007,21 @@ L_08AF9080: L_08AF908C: aot_gpr_31 = (0x08AF9094u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7760))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0005. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 199u, 0x08AF9094u, 0x08818338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0005_entry(rt, ctx, 23u, aot_mem); +#else + recomp_unit_0005_entry(rt, ctx, 23u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0005_entry, 5u, 23u, 0x08818338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9094u) goto L_08AF9094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9094: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); @@ -2670,8 +3058,21 @@ L_08AF90DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08AF9114u); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 202u, 0x08AF9114u, 0x08817AACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 789u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 789u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 789u, 0x08817AACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9114u) goto L_08AF9114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9114: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(68), aot_run_words); @@ -2683,8 +3084,8 @@ L_08AF9114: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF9130: @@ -2899,8 +3300,8 @@ L_08AF9334: goto L_08AF9348; L_08AF9348: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF9350: @@ -2921,8 +3322,21 @@ L_08AF9378: aot_gpr_7 = (0u | 1u); aot_gpr_31 = (0x08AF9390u); aot_gpr_4 = (aot_gpr_4 + static_cast(-272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 225u, 0x08AF9390u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9390u) goto L_08AF9390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9390: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2969,12 +3383,38 @@ L_08AF9398: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x08AF9430u); aot_gpr_5 = (aot_gpr_5 + static_cast(12016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 227u, 0x08AF9430u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9430u) goto L_08AF9430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9430: aot_gpr_31 = (0x08AF9438u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 228u, 0x08AF9438u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9438u) goto L_08AF9438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9438: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29552))); @@ -3015,8 +3455,8 @@ L_08AF9498: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF94C0: @@ -3041,8 +3481,21 @@ L_08AF94C0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } ctx.gpr[16] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7648))); aot_gpr_31 = (0x08AF94F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 231u, 0x08AF94F8u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF94F8u) goto L_08AF94F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF94F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3052,8 +3505,21 @@ L_08AF94F8: } L_08AF9500: aot_gpr_31 = (0x08AF9508u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 233u, 0x08AF9508u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9508u) goto L_08AF9508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9508: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3302,8 +3768,21 @@ L_08AF96FC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08AF9738u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(52), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 253u, 0x08AF9738u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9738u) goto L_08AF9738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9738: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3339,8 +3818,8 @@ L_08AF9750: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF976C: @@ -3596,8 +4075,21 @@ L_08AF9994: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08AF99C0u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 275u, 0x08AF99C0u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF99C0u) goto L_08AF99C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF99C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3634,15 +4126,15 @@ L_08AF99D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF99F8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1332))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF9A00: @@ -3754,8 +4246,8 @@ L_08AF9AC4: goto L_08AF9AC8; L_08AF9AC8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF9AD0: @@ -3801,13 +4293,39 @@ L_08AF9B00: L_08AF9B08: aot_gpr_31 = (0x08AF9B10u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1340))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 298u, 0x08AF9B10u, 0x08A854E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 192u, 0x08A854E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9B10u) goto L_08AF9B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9B10: aot_gpr_31 = (0x08AF9B18u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 299u, 0x08AF9B18u, 0x088178A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 774u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 774u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 774u, 0x088178A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9B18u) goto L_08AF9B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9B18: ctx.gpr[17] = (0u | 0u); ctx.gpr[16] = (ctx.gpr[28] | 0u); @@ -3815,8 +4333,21 @@ L_08AF9B18: L_08AF9B20: aot_gpr_31 = (0x08AF9B28u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1348))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 301u, 0x08AF9B28u, 0x089F1F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 365u, 0x089F1F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9B28u) goto L_08AF9B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9B28: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 1 ? 1u : 0u); @@ -3837,13 +4368,39 @@ L_08AF9B38: L_08AF9B40: aot_gpr_31 = (0x08AF9B48u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1340))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 304u, 0x08AF9B48u, 0x08A856A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 204u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 204u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 204u, 0x08A856A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9B48u) goto L_08AF9B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9B48: aot_gpr_31 = (0x08AF9B50u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1344))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0004. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 305u, 0x08AF9B50u, 0x08817A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0004_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0004_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0004_entry, 4u, 788u, 0x08817A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9B50u) goto L_08AF9B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9B50: ctx.gpr[17] = (0u | 0u); ctx.gpr[16] = (ctx.gpr[28] | 0u); @@ -3851,8 +4408,21 @@ L_08AF9B50: L_08AF9B58: aot_gpr_31 = (0x08AF9B60u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1348))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 307u, 0x08AF9B60u, 0x089F20CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 375u, 0x089F20CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9B60u) goto L_08AF9B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9B60: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 1 ? 1u : 0u); @@ -3872,8 +4442,8 @@ L_08AF9B70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF9B84: @@ -3945,8 +4515,8 @@ L_08AF9BEC: } L_08AF9BF8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AF9C00: @@ -3975,8 +4545,21 @@ L_08AF9C54: goto L_08AF9C5C; L_08AF9C5C: aot_gpr_31 = (0x08AF9C64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 322u, 0x08AF9C64u, 0x08AC36D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 866u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 866u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 866u, 0x08AC36D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9C64u) goto L_08AF9C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9C64: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4016,8 +4599,21 @@ L_08AF9C7C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08AF9CD0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 326u, 0x08AF9CD0u, 0x08AEEA94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 547u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 547u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 547u, 0x08AEEA94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AF9CD0u) goto L_08AF9CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AF9CD0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1404))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1408))); @@ -4255,8 +4851,21 @@ L_08AF9FFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1340))); aot_gpr_31 = (0x08AFA008u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 335u, 0x08AFA008u, 0x08A85850u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 207u, 0x08A85850u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFA008u) goto L_08AFA008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFA008: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1340))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); @@ -4268,8 +4877,21 @@ L_08AFA008: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08AFA030u); aot_gpr_5 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 336u, 0x08AFA030u, 0x08A856B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 205u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 205u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 205u, 0x08A856B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFA030u) goto L_08AFA030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFA030: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -4310,8 +4932,21 @@ L_08AFA0A4: goto L_08AF8E0C; L_08AFA0AC: aot_gpr_31 = (0x08AFA0B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 340u, 0x08AFA0B4u, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFA0B4u) goto L_08AFA0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFA0B4: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -4326,8 +4961,8 @@ L_08AFA0B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFA0DC: @@ -4342,8 +4977,21 @@ L_08AFA0DC: ctx.gpr[18] = (0u | 0u); ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08AFA144u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0175. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 342u, 0x08AFA144u, 0x08AC36D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0175_entry(rt, ctx, 866u, aot_mem); +#else + recomp_unit_0175_entry(rt, ctx, 866u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0175_entry, 175u, 866u, 0x08AC36D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFA144u) goto L_08AFA144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFA144: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4353,8 +5001,21 @@ L_08AFA144: } L_08AFA14C: aot_gpr_31 = (0x08AFA154u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 344u, 0x08AFA154u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFA154u) goto L_08AFA154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFA154: ctx.gpr[20] = (0u | 1u); aot_gpr_4 = (2236u << 16u); @@ -4393,8 +5054,21 @@ L_08AFA19C: } L_08AFA1A4: aot_gpr_31 = (0x08AFA1ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 348u, 0x08AFA1ACu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFA1ACu) goto L_08AFA1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFA1AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 == ctx.gpr[20]; @@ -4405,8 +5079,21 @@ L_08AFA1AC: } L_08AFA1B8: aot_gpr_31 = (0x08AFA1C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 350u, 0x08AFA1C0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFA1C0u) goto L_08AFA1C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFA1C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 2u); @@ -5729,8 +6416,21 @@ L_08AFAEE0: aot_gpr_6 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08AFAF1Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 450u, 0x08AFAF1Cu, 0x089F20D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 376u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 376u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 376u, 0x089F20D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFAF1Cu) goto L_08AFAF1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFAF1C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); @@ -5813,8 +6513,21 @@ L_08AFAFCC: goto L_08AF9350; L_08AFAFD4: aot_gpr_31 = (0x08AFAFDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 460u, 0x08AFAFDCu, 0x0889E7C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 579u, 0x0889E7C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFAFDCu) goto L_08AFAFDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFAFDC: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(184), aot_run_words); @@ -5837,8 +6550,8 @@ L_08AFAFDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFB024: @@ -6119,8 +6832,8 @@ L_08AFB254: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFB424: @@ -6142,8 +6855,21 @@ L_08AFB424: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08AFB46Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 470u, 0x08AFB46Cu, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFB46Cu) goto L_08AFB46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFB46C: { const bool branch_taken = static_cast(ctx.gpr[2]) < 0; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1552), ctx.gpr[2]); @@ -6157,8 +6883,21 @@ L_08AFB474: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFB484u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 472u, 0x08AFB484u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFB484u) goto L_08AFB484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFB484: aot_gpr_4 = (16179u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -6206,15 +6945,15 @@ L_08AFB484: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFB4E0: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(10284), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFB4E8: @@ -6222,16 +6961,16 @@ L_08AFB4E8: aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(8344), static_cast(aot_gpr_4)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(8352), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFB4F8: aot_gpr_4 = (0u + static_cast(-1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(10284), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFB504: @@ -6339,8 +7078,21 @@ L_08AFB5C4: } aot_gpr_31 = (0x08AFB5D8u); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 485u, 0x08AFB5D8u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFB5D8u) goto L_08AFB5D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFB5D8: aot_gpr_4 = (15948u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6480,8 +7232,21 @@ L_08AFB6D0: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08AFB770u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 496u, 0x08AFB770u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFB770u) goto L_08AFB770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFB770: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 20 ? 1u : 0u); @@ -6522,8 +7287,8 @@ L_08AFB794: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFB7D0: @@ -6597,8 +7362,21 @@ L_08AFB858: } aot_gpr_31 = (0x08AFB86Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 504u, 0x08AFB86Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFB86Cu) goto L_08AFB86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFB86C: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -6759,8 +7537,21 @@ L_08AFB9E4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08AFBA34u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 516u, 0x08AFBA34u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBA34u) goto L_08AFBA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBA34: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[19]) < 20 ? 1u : 0u); @@ -6789,8 +7580,8 @@ L_08AFBA44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFBA80: @@ -6798,8 +7589,21 @@ L_08AFBA80: { const std::uint32_t aot_run_words[13]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[28]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(120), aot_run_words); } aot_gpr_31 = (0x08AFBAC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 519u, 0x08AFBAC0u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBAC0u) goto L_08AFBAC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBAC0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6809,8 +7613,21 @@ L_08AFBAC0: } L_08AFBAC8: aot_gpr_31 = (0x08AFBAD0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 521u, 0x08AFBAD0u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBAD0u) goto L_08AFBAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBAD0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6833,8 +7650,21 @@ L_08AFBAF4: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08AFBB00u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 524u, 0x08AFBB00u, 0x08A1C714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 68u, 0x08A1C714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBB00u) goto L_08AFBB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBB00: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6858,8 +7688,21 @@ L_08AFBB10: } L_08AFBB18: aot_gpr_31 = (0x08AFBB20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 528u, 0x08AFBB20u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBB20u) goto L_08AFBB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBB20: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6870,8 +7713,21 @@ L_08AFBB20: } L_08AFBB2C: aot_gpr_31 = (0x08AFBB34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 530u, 0x08AFBB34u, 0x08B01038u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 289u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 289u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 289u, 0x08B01038u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBB34u) goto L_08AFBB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBB34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6882,8 +7738,21 @@ L_08AFBB34: L_08AFBB3C: aot_gpr_31 = (0x08AFBB44u); aot_gpr_4 = (0u | 85u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 532u, 0x08AFBB44u, 0x088FF1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 729u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 729u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 729u, 0x088FF1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBB44u) goto L_08AFBB44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBB44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7080,8 +7949,21 @@ L_08AFBD00: aot_fpr_12 = ctx.fpr[22] + aot_fpr_12; aot_gpr_31 = (0x08AFBD34u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 552u, 0x08AFBD34u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBD34u) goto L_08AFBD34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBD34: aot_gpr_31 = (0x08AFBD3Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBD3Cu) goto L_08AFBD3C; @@ -7168,8 +8050,21 @@ L_08AFBE10: aot_fpr_12 = ctx.fpr[22] + aot_fpr_12; aot_gpr_31 = (0x08AFBE44u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 559u, 0x08AFBE44u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBE44u) goto L_08AFBE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBE44: aot_gpr_31 = (0x08AFBE4Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, ctx.gpr[2], aot_gpr_4, aot_gpr_5, aot_gpr_6, aot_gpr_7, ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBE4Cu) goto L_08AFBE4C; @@ -7224,8 +8119,21 @@ L_08AFBEB8: aot_fpr_12 = ctx.fpr[22] + aot_fpr_12; aot_gpr_31 = (0x08AFBEECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 564u, 0x08AFBEECu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBEECu) goto L_08AFBEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBEEC: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); @@ -7256,14 +8164,14 @@ L_08AFBF04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFBF40: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFBF48: @@ -7271,8 +8179,21 @@ L_08AFBF48: { const std::uint32_t aot_run_words[5]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), ctx.gpr[16], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x08AFBF68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0189->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0189_entry, 568u, 0x08AFBF68u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFBF68u) goto L_08AFBF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFBF68: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0190.cpp b/profiles/vcs/generated/generated_unit_0190.cpp index 3803958..d25efde 100644 --- a/profiles/vcs/generated/generated_unit_0190.cpp +++ b/profiles/vcs/generated/generated_unit_0190.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0190[64] = { 399u, 416u, 432u, 447u, 474u, 487u, 511u, 533u, 561u, 578u, 587u, 604u, 624u, 634u, 646u, 656u, 671u, 694u, 716u, 736u, 757u, 772u, 792u, 815u, 834u, 854u, 863u, 879u, 899u, 920u, 934u, 948u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0190[4090] = { + 1u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 0u, 0u, 0u, 5u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 6u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 8u, 9u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 14u, 0u, 0u, + 15u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 22u, 0u, 0u, 23u, 0u, 0u, 0u, 24u, + 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 27u, 0u, 28u, 29u, 0u, 0u, 30u, 0u, 0u, 0u, 31u, 0u, 0u, 32u, 33u, 34u, 0u, + 35u, 0u, 36u, 0u, 0u, 0u, 37u, 0u, 0u, 38u, 39u, 40u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 43u, 0u, 0u, 44u, 0u, 45u, 0u, 46u, + 0u, 47u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 50u, 0u, 51u, 0u, 0u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 53u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 54u, 0u, 0u, 0u, 0u, 55u, 0u, 56u, 0u, 0u, 0u, 0u, 0u, 57u, 0u, 58u, 0u, 59u, 0u, 60u, 0u, 0u, 0u, 0u, 61u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 63u, 0u, 64u, 0u, 0u, 65u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, 0u, 67u, 0u, 0u, 68u, 0u, 0u, 69u, 0u, + 70u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 72u, 0u, 0u, 73u, 0u, 0u, 74u, 0u, 75u, 0u, 76u, 0u, 77u, 0u, 0u, 0u, 78u, 0u, 79u, + 0u, 80u, 0u, 0u, 81u, 82u, 0u, 83u, 0u, 84u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 88u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 89u, 0u, 90u, 0u, 0u, 91u, 0u, 0u, 92u, 0u, 0u, 0u, 93u, 0u, 0u, 0u, 94u, 0u, 95u, 96u, 0u, 97u, 0u, 98u, 0u, 99u, 0u, 100u, + 0u, 0u, 101u, 0u, 102u, 0u, 103u, 0u, 104u, 0u, 0u, 0u, 105u, 0u, 106u, 0u, 107u, 0u, 0u, 108u, 0u, 109u, 0u, 0u, 0u, 110u, 0u, 111u, 0u, 112u, 0u, 113u, + 0u, 0u, 114u, 0u, 115u, 0u, 116u, 0u, 0u, 0u, 117u, 0u, 118u, 0u, 119u, 0u, 120u, 0u, 121u, 0u, 0u, 0u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 123u, 0u, 124u, + 0u, 0u, 0u, 0u, 0u, 0u, 125u, 0u, 0u, 0u, 0u, 0u, 126u, 0u, 127u, 128u, 0u, 129u, 0u, 130u, 0u, 0u, 131u, 0u, 0u, 132u, 0u, 133u, 0u, 134u, 0u, 0u, + 135u, 0u, 0u, 0u, 136u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 137u, 0u, 0u, 0u, 0u, 0u, 0u, 138u, 0u, 0u, 0u, 139u, 0u, 0u, 0u, 140u, + 0u, 141u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 142u, 143u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 144u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 145u, 0u, 146u, 0u, 0u, 147u, 0u, 0u, 0u, 0u, 0u, 148u, 0u, 0u, 149u, 0u, + 0u, 150u, 0u, 0u, 151u, 0u, 0u, 0u, 0u, 0u, 0u, 152u, 153u, 0u, 0u, 0u, 154u, 0u, 155u, 0u, 0u, 0u, 156u, 0u, 157u, 0u, 0u, 0u, 158u, 0u, 159u, 0u, + 160u, 0u, 0u, 161u, 0u, 162u, 0u, 163u, 164u, 0u, 165u, 0u, 0u, 166u, 0u, 167u, 0u, 168u, 0u, 169u, 0u, 0u, 0u, 170u, 0u, 171u, 0u, 172u, 0u, 173u, 0u, 174u, + 0u, 175u, 0u, 176u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 178u, 179u, 0u, 0u, 180u, 0u, 181u, 0u, 182u, 0u, 0u, 183u, 0u, 184u, 0u, 185u, 186u, 0u, 187u, + 0u, 0u, 188u, 0u, 189u, 0u, 190u, 0u, 191u, 0u, 192u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 194u, 0u, 195u, 0u, 196u, 0u, 197u, 0u, 0u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 199u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 203u, 0u, 204u, 0u, 205u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, + 0u, 207u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 210u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 0u, 0u, 213u, 0u, 0u, + 0u, 0u, 0u, 214u, 215u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, 0u, + 218u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 220u, 0u, 0u, 0u, 0u, 0u, 221u, 222u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 225u, 0u, 226u, 0u, 227u, 0u, 0u, 0u, 228u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 229u, 0u, 230u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 232u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 233u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 0u, 236u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 239u, 0u, 0u, 240u, 0u, 0u, 241u, 0u, 0u, 242u, 0u, 0u, 243u, 0u, 0u, 244u, 0u, 0u, 245u, 0u, 0u, 246u, 0u, + 0u, 247u, 0u, 0u, 0u, 248u, 0u, 0u, 0u, 0u, 0u, 249u, 0u, 250u, 0u, 0u, 0u, 0u, 251u, 0u, 252u, 0u, 0u, 253u, 0u, 0u, 254u, 0u, 0u, 255u, 0u, 0u, + 256u, 0u, 0u, 257u, 0u, 0u, 258u, 0u, 259u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 261u, 0u, 262u, 0u, + 263u, 0u, 264u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 266u, 0u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 268u, 0u, 0u, 269u, 0u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, 272u, 0u, 273u, 0u, 274u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 276u, + 0u, 277u, 0u, 0u, 278u, 0u, 0u, 0u, 0u, 279u, 0u, 0u, 280u, 0u, 281u, 282u, 0u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, 0u, 0u, 284u, 0u, 285u, 0u, + 0u, 286u, 0u, 0u, 287u, 0u, 288u, 0u, 0u, 0u, 289u, 290u, 0u, 291u, 0u, 0u, 0u, 0u, 292u, 0u, 293u, 0u, 0u, 0u, 294u, 0u, 0u, 295u, 296u, 0u, 297u, 0u, + 298u, 0u, 299u, 0u, 300u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 303u, 0u, 0u, 304u, 0u, 0u, 305u, 0u, 306u, 0u, 307u, 0u, 308u, 309u, 0u, 0u, 0u, 0u, + 310u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 0u, 312u, 0u, 313u, 0u, 314u, 0u, 0u, 0u, 315u, 0u, 0u, 0u, 0u, 316u, 0u, 0u, + 0u, 0u, 317u, 0u, 0u, 0u, 318u, 0u, 319u, 0u, 320u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 323u, 0u, 0u, 324u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 0u, 329u, 0u, 330u, 0u, 331u, 0u, 332u, 0u, 333u, 0u, 334u, + 0u, 335u, 0u, 336u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 338u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 339u, 0u, 0u, 340u, 0u, 0u, 341u, 0u, 342u, 0u, + 0u, 343u, 0u, 344u, 0u, 345u, 0u, 346u, 347u, 0u, 348u, 0u, 349u, 0u, 350u, 0u, 351u, 0u, 352u, 353u, 0u, 0u, 0u, 0u, 0u, 0u, 354u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 355u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 356u, 0u, 357u, 0u, 0u, 0u, 358u, 0u, 0u, 359u, 0u, + 360u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 363u, 0u, 0u, 364u, 0u, 365u, 0u, 366u, 0u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 368u, 0u, 369u, 370u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 371u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 0u, + 0u, 374u, 375u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 377u, 0u, 378u, 0u, 379u, 0u, 0u, 0u, 380u, 0u, 381u, 0u, 382u, 0u, 0u, 0u, 0u, 0u, 0u, 383u, 0u, 384u, 0u, 385u, 0u, 0u, 0u, 386u, 0u, 0u, 0u, + 387u, 0u, 388u, 0u, 0u, 389u, 0u, 0u, 0u, 390u, 0u, 391u, 0u, 392u, 0u, 393u, 0u, 0u, 394u, 0u, 395u, 0u, 0u, 0u, 0u, 396u, 0u, 397u, 0u, 398u, 0u, 0u, + 399u, 0u, 0u, 0u, 400u, 0u, 401u, 0u, 402u, 0u, 0u, 0u, 0u, 0u, 403u, 0u, 404u, 0u, 405u, 406u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 409u, 0u, 410u, 0u, 0u, 411u, 0u, 0u, 0u, 412u, 0u, 413u, 0u, 0u, 0u, 0u, 0u, 414u, 0u, 415u, 0u, + 416u, 0u, 0u, 0u, 0u, 0u, 0u, 417u, 0u, 418u, 0u, 419u, 0u, 0u, 0u, 0u, 420u, 0u, 0u, 0u, 0u, 0u, 0u, 421u, 0u, 422u, 0u, 423u, 0u, 0u, 0u, 0u, + 424u, 0u, 425u, 0u, 426u, 0u, 427u, 0u, 0u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 0u, 431u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, 433u, 0u, 0u, 0u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 436u, 0u, 437u, 0u, 0u, 0u, + 438u, 0u, 439u, 0u, 0u, 440u, 0u, 441u, 0u, 0u, 442u, 0u, 0u, 0u, 443u, 0u, 0u, 0u, 444u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 446u, + 0u, 447u, 0u, 0u, 448u, 0u, 449u, 0u, 0u, 450u, 0u, 451u, 0u, 452u, 0u, 453u, 0u, 454u, 0u, 0u, 455u, 0u, 456u, 0u, 0u, 457u, 0u, 0u, 458u, 0u, 0u, 459u, + 0u, 0u, 460u, 461u, 0u, 462u, 0u, 0u, 463u, 0u, 0u, 464u, 0u, 0u, 465u, 0u, 0u, 466u, 0u, 467u, 0u, 468u, 0u, 469u, 0u, 470u, 0u, 471u, 472u, 0u, 473u, 0u, + 0u, 0u, 474u, 0u, 475u, 476u, 0u, 0u, 477u, 0u, 0u, 478u, 0u, 0u, 479u, 0u, 0u, 480u, 0u, 481u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 483u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 485u, 0u, 486u, + 0u, 0u, 487u, 0u, 0u, 0u, 488u, 0u, 489u, 0u, 0u, 0u, 490u, 0u, 0u, 491u, 0u, 0u, 492u, 0u, 493u, 0u, 0u, 0u, 494u, 0u, 495u, 0u, 0u, 496u, 0u, 0u, + 497u, 0u, 498u, 0u, 499u, 0u, 0u, 500u, 0u, 501u, 0u, 502u, 0u, 503u, 0u, 504u, 0u, 505u, 0u, 0u, 506u, 0u, 507u, 0u, 508u, 0u, 0u, 0u, 0u, 509u, 0u, 510u, + 0u, 0u, 511u, 0u, 0u, 0u, 0u, 512u, 0u, 0u, 513u, 0u, 514u, 0u, 0u, 0u, 515u, 0u, 516u, 0u, 517u, 0u, 518u, 0u, 519u, 0u, 520u, 0u, 521u, 0u, 522u, 0u, + 523u, 0u, 524u, 0u, 525u, 0u, 526u, 0u, 527u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 529u, 0u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 531u, 0u, 0u, 532u, 0u, + 533u, 0u, 0u, 0u, 534u, 0u, 0u, 535u, 0u, 0u, 536u, 0u, 0u, 537u, 0u, 538u, 0u, 539u, 0u, 0u, 0u, 540u, 0u, 541u, 0u, 542u, 0u, 543u, 0u, 544u, 0u, 545u, + 0u, 546u, 0u, 547u, 0u, 548u, 0u, 549u, 0u, 550u, 0u, 551u, 0u, 552u, 0u, 553u, 0u, 554u, 0u, 555u, 0u, 0u, 556u, 0u, 557u, 558u, 0u, 559u, 0u, 560u, 0u, 0u, + 0u, 0u, 0u, 0u, 561u, 0u, 0u, 562u, 0u, 563u, 0u, 0u, 564u, 0u, 0u, 565u, 0u, 0u, 566u, 0u, 567u, 0u, 0u, 568u, 0u, 569u, 0u, 570u, 0u, 571u, 0u, 572u, + 0u, 0u, 573u, 0u, 574u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 578u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, 0u, 0u, 0u, + 582u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 0u, 0u, 0u, 584u, 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, + 587u, 0u, 588u, 0u, 589u, 0u, 0u, 0u, 0u, 0u, 590u, 0u, 591u, 0u, 592u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 593u, 0u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 0u, + 595u, 0u, 0u, 0u, 0u, 596u, 0u, 0u, 597u, 0u, 598u, 0u, 0u, 599u, 0u, 0u, 0u, 600u, 0u, 0u, 601u, 0u, 0u, 0u, 0u, 0u, 602u, 0u, 0u, 0u, 0u, 603u, + 0u, 0u, 604u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 0u, 606u, 0u, 0u, 0u, 0u, 607u, 0u, 608u, 0u, 0u, 0u, 0u, 609u, 0u, 610u, 0u, 0u, 0u, 611u, 0u, 612u, + 0u, 613u, 0u, 614u, 615u, 616u, 0u, 0u, 0u, 617u, 0u, 0u, 0u, 618u, 0u, 619u, 0u, 0u, 620u, 0u, 0u, 0u, 621u, 0u, 0u, 622u, 0u, 0u, 623u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 624u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 627u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 628u, 0u, 0u, 629u, 0u, 0u, 0u, 0u, 630u, 0u, 631u, 0u, 0u, 0u, 0u, 632u, 0u, 633u, + 0u, 0u, 0u, 0u, 634u, 0u, 0u, 0u, 635u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 636u, 0u, 0u, 0u, 0u, 0u, 0u, 637u, 0u, 0u, 0u, 638u, 0u, 0u, + 0u, 0u, 0u, 0u, 639u, 0u, 640u, 0u, 641u, 0u, 642u, 0u, 643u, 0u, 644u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 0u, + 646u, 0u, 0u, 0u, 0u, 0u, 0u, 647u, 0u, 648u, 0u, 649u, 0u, 650u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, 0u, 653u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 654u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 656u, 0u, 0u, 0u, 657u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 658u, 0u, 0u, 0u, 659u, 0u, 660u, 0u, 661u, 0u, 0u, 662u, 0u, 663u, + 0u, 0u, 0u, 0u, 664u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 665u, 0u, 666u, 0u, 667u, 0u, 0u, 668u, 0u, 669u, 0u, 0u, 0u, 0u, 670u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 671u, 0u, 0u, 0u, 672u, 0u, 673u, 0u, 674u, 0u, 675u, 0u, 676u, 0u, 677u, 0u, 0u, 0u, 678u, 0u, 0u, 679u, 0u, 680u, 0u, 681u, 0u, 682u, + 0u, 683u, 0u, 0u, 0u, 684u, 0u, 0u, 685u, 0u, 686u, 0u, 0u, 0u, 687u, 0u, 0u, 688u, 0u, 689u, 0u, 690u, 0u, 691u, 0u, 692u, 0u, 0u, 0u, 0u, 0u, 693u, + 0u, 0u, 0u, 0u, 694u, 0u, 0u, 695u, 0u, 696u, 0u, 0u, 0u, 697u, 0u, 698u, 0u, 699u, 0u, 700u, 0u, 0u, 0u, 701u, 0u, 0u, 702u, 0u, 703u, 0u, 704u, 0u, + 705u, 0u, 706u, 0u, 0u, 0u, 707u, 0u, 0u, 708u, 0u, 709u, 0u, 710u, 0u, 711u, 0u, 712u, 0u, 713u, 0u, 0u, 0u, 0u, 0u, 714u, 0u, 0u, 0u, 0u, 715u, 0u, + 0u, 716u, 0u, 717u, 0u, 0u, 0u, 718u, 0u, 719u, 0u, 720u, 0u, 721u, 0u, 0u, 0u, 722u, 0u, 0u, 723u, 0u, 724u, 0u, 725u, 0u, 726u, 0u, 727u, 0u, 0u, 0u, + 728u, 0u, 0u, 729u, 0u, 730u, 0u, 0u, 0u, 0u, 731u, 0u, 0u, 0u, 0u, 0u, 0u, 732u, 0u, 0u, 0u, 733u, 0u, 0u, 734u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, + 736u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 737u, 0u, 0u, 0u, 0u, 0u, 0u, 738u, 0u, 0u, 739u, 0u, 740u, 0u, 0u, 741u, 0u, 742u, 743u, 0u, 0u, 744u, 0u, 0u, + 0u, 745u, 0u, 0u, 0u, 0u, 746u, 747u, 0u, 0u, 0u, 748u, 0u, 749u, 0u, 750u, 0u, 0u, 751u, 0u, 752u, 0u, 0u, 753u, 0u, 754u, 0u, 0u, 755u, 0u, 756u, 0u, + 0u, 757u, 0u, 0u, 0u, 758u, 0u, 0u, 0u, 0u, 0u, 0u, 759u, 0u, 0u, 0u, 760u, 0u, 0u, 0u, 0u, 0u, 0u, 761u, 0u, 0u, 762u, 0u, 0u, 763u, 0u, 764u, + 765u, 0u, 766u, 0u, 0u, 767u, 0u, 768u, 0u, 0u, 0u, 0u, 0u, 769u, 0u, 0u, 0u, 0u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 0u, 0u, + 0u, 0u, 772u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 774u, 0u, 0u, 775u, 0u, 776u, 0u, 777u, 0u, 778u, 0u, 0u, 779u, 0u, 0u, 0u, 780u, + 0u, 0u, 0u, 781u, 0u, 0u, 0u, 0u, 782u, 0u, 783u, 0u, 784u, 0u, 785u, 0u, 0u, 786u, 0u, 787u, 0u, 788u, 0u, 0u, 789u, 0u, 790u, 0u, 0u, 0u, 791u, 0u, + 792u, 0u, 0u, 0u, 793u, 0u, 0u, 794u, 0u, 795u, 0u, 796u, 0u, 797u, 0u, 798u, 0u, 0u, 0u, 799u, 0u, 800u, 0u, 0u, 0u, 801u, 0u, 0u, 0u, 0u, 0u, 802u, + 0u, 803u, 0u, 804u, 0u, 0u, 0u, 805u, 0u, 806u, 0u, 807u, 0u, 808u, 0u, 809u, 0u, 810u, 0u, 811u, 0u, 812u, 813u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 814u, 0u, + 815u, 0u, 816u, 0u, 817u, 0u, 818u, 0u, 819u, 0u, 820u, 0u, 821u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 822u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 823u, 0u, 824u, 0u, 825u, 0u, 0u, 0u, 826u, 0u, 827u, 828u, 0u, 0u, 0u, 0u, 0u, 829u, 0u, 0u, 0u, 0u, 830u, 0u, 831u, 0u, 0u, 832u, 0u, 833u, + 0u, 0u, 834u, 0u, 0u, 835u, 0u, 836u, 0u, 837u, 0u, 0u, 838u, 0u, 839u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 840u, 0u, 841u, 0u, 0u, 842u, 0u, 843u, 0u, + 0u, 844u, 0u, 0u, 845u, 0u, 846u, 0u, 847u, 0u, 0u, 848u, 0u, 0u, 0u, 0u, 849u, 0u, 850u, 0u, 0u, 0u, 851u, 0u, 0u, 852u, 0u, 853u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 854u, 0u, 855u, 0u, 856u, 0u, 857u, 0u, 858u, 0u, 859u, 0u, 860u, 0u, 861u, 0u, 862u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 863u, 0u, 864u, 0u, 0u, 865u, 0u, 866u, 867u, 0u, 0u, 0u, 0u, 868u, 0u, 0u, 0u, 0u, 0u, 869u, 0u, 0u, 0u, 870u, 0u, + 0u, 871u, 0u, 872u, 0u, 0u, 873u, 0u, 0u, 0u, 874u, 875u, 0u, 0u, 876u, 0u, 0u, 0u, 877u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 878u, 0u, + 0u, 0u, 879u, 0u, 0u, 880u, 0u, 881u, 0u, 882u, 0u, 0u, 0u, 883u, 0u, 0u, 0u, 884u, 0u, 885u, 0u, 0u, 0u, 886u, 887u, 0u, 888u, 0u, 0u, 0u, 889u, 0u, + 890u, 0u, 891u, 0u, 0u, 0u, 0u, 0u, 892u, 0u, 893u, 0u, 0u, 894u, 0u, 0u, 0u, 895u, 0u, 896u, 0u, 897u, 0u, 0u, 0u, 0u, 0u, 0u, 898u, 0u, 0u, 0u, + 0u, 899u, 0u, 900u, 0u, 0u, 901u, 0u, 902u, 0u, 0u, 903u, 0u, 904u, 0u, 905u, 0u, 906u, 0u, 907u, 0u, 0u, 0u, 0u, 0u, 908u, 0u, 0u, 909u, 0u, 0u, 910u, + 0u, 0u, 0u, 911u, 0u, 0u, 912u, 0u, 0u, 913u, 0u, 914u, 0u, 915u, 0u, 0u, 0u, 0u, 0u, 916u, 0u, 917u, 0u, 0u, 918u, 0u, 0u, 0u, 0u, 0u, 919u, 0u, + 920u, 0u, 0u, 0u, 0u, 921u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 922u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 923u, 0u, 0u, 924u, 0u, 925u, 0u, 0u, + 0u, 0u, 926u, 0u, 927u, 0u, 928u, 929u, 0u, 0u, 0u, 0u, 930u, 0u, 0u, 0u, 0u, 931u, 0u, 0u, 0u, 932u, 0u, 933u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 934u, 0u, 0u, 0u, 935u, 0u, 0u, 936u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 937u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 938u, 0u, 0u, 0u, 0u, 0u, 0u, + 939u, 0u, 940u, 0u, 0u, 0u, 0u, 941u, 942u, 0u, 0u, 0u, 0u, 0u, 0u, 943u, 0u, 944u, 0u, 945u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 946u, 0u, 947u, + 0u, 0u, 0u, 0u, 0u, 0u, 948u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 949u, 0u, 0u, 950u, 0u, 0u, 0u, 0u, 951u, 0u, 0u, 952u, 0u, 0u, 0u, 953u, + 0u, 0u, 0u, 954u, 0u, 955u, 0u, 0u, 0u, 0u, 956u, 0u, 0u, 0u, 0u, 957u, 0u, 0u, 0u, 0u, 0u, 0u, 958u, 959u, 0u, 960u, +}; void recomp_unit_0190_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,31,29,6,2 fprs=12,13,15,14 gpr_occ=3682 fpr_occ=751 gpr_total=5275 fpr_total=1098 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08AFC000u; - entry_id = 0u; - if (entry_delta < 16360u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0190[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0190[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16360u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0190[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08AFC000; @@ -1038,6 +1161,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08AFC000u; + if (local_delta_v813 >= 16360u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1107,8 +1254,21 @@ L_08AFC06C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08AFC0B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 4u, 0x08AFC0B8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFC0B8u) goto L_08AFC0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFC0B8: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -1120,8 +1280,8 @@ L_08AFC0B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFC0D4: @@ -1136,8 +1296,8 @@ L_08AFC0D4: aot_gpr_4 = (0u | 1u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10436), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFC100: @@ -1150,8 +1310,8 @@ L_08AFC100: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8664), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7896), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFC124: @@ -1596,8 +1756,8 @@ L_08AFC54C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(8456), aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFC6BC: @@ -1819,8 +1979,21 @@ L_08AFC860: } L_08AFC86C: aot_gpr_31 = (0x08AFC874u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 45u, 0x08AFC874u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFC874u) goto L_08AFC874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFC874: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1830,8 +2003,21 @@ L_08AFC874: } L_08AFC87C: aot_gpr_31 = (0x08AFC884u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 47u, 0x08AFC884u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFC884u) goto L_08AFC884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFC884: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2017,8 +2203,21 @@ L_08AFC9EC: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08AFC9F8u); aot_gpr_6 = (0u | 184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 69u, 0x08AFC9F8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFC9F8u) goto L_08AFC9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFC9F8: aot_gpr_31 = (0x08AFCA00u); aot_gpr_4 = (0u | 0u); @@ -2037,8 +2236,21 @@ L_08AFCA00: aot_gpr_6 = (aot_gpr_6 & 255u); aot_gpr_31 = (0x08AFCA30u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 71u, 0x08AFCA30u, 0x0898BB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 954u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 954u, 0x0898BB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFCA30u) goto L_08AFCA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFCA30: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10416), 0u); goto L_08AFCA34; @@ -2751,8 +2963,21 @@ L_08AFCEF0: L_08AFCEF8: aot_gpr_31 = (0x08AFCF00u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9748), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 160u, 0x08AFCF00u, 0x08AFBA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 518u, 0x08AFBA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFCF00u) goto L_08AFCF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFCF00: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(8352)))))); if (aot_gpr_4 == 0u) { @@ -2823,8 +3048,21 @@ L_08AFCF5C: L_08AFCF64: aot_gpr_31 = (0x08AFCF6Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 172u, 0x08AFCF6Cu, 0x08909D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 491u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 491u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 491u, 0x08909D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFCF6Cu) goto L_08AFCF6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFCF6C: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7648))); @@ -2838,8 +3076,21 @@ L_08AFCF74: L_08AFCF7C: aot_gpr_31 = (0x08AFCF84u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 175u, 0x08AFCF84u, 0x08909D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 491u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 491u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 491u, 0x08909D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFCF84u) goto L_08AFCF84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFCF84: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2884,8 +3135,21 @@ L_08AFCFC4: } L_08AFCFCC: aot_gpr_31 = (0x08AFCFD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 182u, 0x08AFCFD4u, 0x08AFBF40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 566u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 566u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 566u, 0x08AFBF40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFCFD4u) goto L_08AFCFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFCFD4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast(8352)))))); if (aot_gpr_4 == 0u) { @@ -2942,8 +3206,21 @@ L_08AFD018: } L_08AFD020: aot_gpr_31 = (0x08AFD028u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 192u, 0x08AFD028u, 0x08AFBF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 567u, 0x08AFBF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFD028u) goto L_08AFD028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFD028: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(28), aot_run_words); @@ -2959,8 +3236,8 @@ L_08AFD028: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD054: @@ -2968,8 +3245,21 @@ L_08AFD054: { const std::uint32_t aot_run_words[16]{std::bit_cast(ctx.fpr[20]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[24]), std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[28]), std::bit_cast(ctx.fpr[30]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], aot_gpr_31}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(112), aot_run_words); } aot_gpr_31 = (0x08AFD0A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 194u, 0x08AFD0A0u, 0x08AAE9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 538u, 0x08AAE9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFD0A0u) goto L_08AFD0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFD0A0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2979,8 +3269,21 @@ L_08AFD0A0: } L_08AFD0A8: aot_gpr_31 = (0x08AFD0B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 196u, 0x08AFD0B0u, 0x08AAE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 542u, 0x08AAE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFD0B0u) goto L_08AFD0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFD0B0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3491,8 +3794,21 @@ L_08AFD4E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(100), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08AFD4F8u); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 232u, 0x08AFD4F8u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFD4F8u) goto L_08AFD4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFD4F8: aot_gpr_4 = (16230u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); @@ -3507,8 +3823,21 @@ L_08AFD4F8: aot_fpr_12 = ctx.fpr[20] + aot_fpr_12; aot_gpr_31 = (0x08AFD52Cu); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(0), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 233u, 0x08AFD52Cu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFD52Cu) goto L_08AFD52C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFD52C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); @@ -3657,8 +3986,21 @@ L_08AFD694: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08AFD6ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(-272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 249u, 0x08AFD6ACu, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFD6ACu) goto L_08AFD6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFD6AC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3672,12 +4014,38 @@ L_08AFD6B4: aot_gpr_4 = (0u | 3u); aot_gpr_31 = (0x08AFD6C8u); aot_gpr_5 = (aot_gpr_5 + static_cast(12016)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 251u, 0x08AFD6C8u, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFD6C8u) goto L_08AFD6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFD6C8: aot_gpr_31 = (0x08AFD6D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 252u, 0x08AFD6D0u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFD6D0u) goto L_08AFD6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFD6D0: aot_gpr_4 = (0u | 6u); aot_gpr_31 = (0x08AFD6DCu); @@ -3740,36 +4108,36 @@ L_08AFD720: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD768: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD770: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(2))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD778: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD780: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(6))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD788: @@ -3872,8 +4240,8 @@ L_08AFD840: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD854: @@ -3940,8 +4308,8 @@ L_08AFD8BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD8D8: @@ -4007,15 +4375,15 @@ L_08AFD934: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD948: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(16), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD950: @@ -4068,8 +4436,8 @@ L_08AFD988: goto L_08AFD990; L_08AFD990: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFD998: @@ -4135,8 +4503,8 @@ L_08AFD9EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDA00: @@ -4151,8 +4519,21 @@ L_08AFDA00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AFDA2Cu); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 311u, 0x08AFDA2Cu, 0x0886A614u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 517u, 0x0886A614u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDA2Cu) goto L_08AFDA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDA2C: aot_gpr_4 = (aot_gpr_2 | 0u); { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(ctx.gpr[16]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } @@ -4180,8 +4561,8 @@ L_08AFDA50: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDA60: @@ -4197,8 +4578,8 @@ L_08AFDA74: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDA88: @@ -4226,8 +4607,8 @@ L_08AFDAA8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDAB4: @@ -4319,8 +4700,8 @@ L_08AFDB9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDBC0: @@ -4329,8 +4710,21 @@ L_08AFDBC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AFDBD4u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 329u, 0x08AFDBD4u, 0x08B63230u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 686u, 0x08B63230u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDBD4u) goto L_08AFDBD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDBD4: aot_gpr_31 = (0x08AFDBDCu); aot_gpr_4 = (ctx.gpr[16] + static_cast(28)); @@ -4377,8 +4771,8 @@ L_08AFDC1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDC2C: @@ -4393,14 +4787,40 @@ L_08AFDC2C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AFDC58u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 339u, 0x08AFDC58u, 0x08A19F84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 248u, 0x08A19F84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDC58u) goto L_08AFDC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDC58: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AFDC64u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 340u, 0x08AFDC64u, 0x08AAF6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 753u, 0x08AAF6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDC64u) goto L_08AFDC64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDC64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4413,8 +4833,21 @@ L_08AFDC64: L_08AFDC70: aot_gpr_31 = (0x08AFDC78u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 342u, 0x08AFDC78u, 0x088E1B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 41u, 0x088E1B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDC78u) goto L_08AFDC78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDC78: aot_gpr_4 = (ctx.gpr[18] | aot_gpr_2); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4433,8 +4866,21 @@ L_08AFDC84: L_08AFDC8C: aot_gpr_31 = (0x08AFDC94u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 345u, 0x08AFDC94u, 0x08A115C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 180u, 0x08A115C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDC94u) goto L_08AFDC94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDC94: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -4470,8 +4916,21 @@ L_08AFDCB0: L_08AFDCB8: aot_gpr_31 = (0x08AFDCC0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 351u, 0x08AFDCC0u, 0x08A115C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 180u, 0x08A115C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDCC0u) goto L_08AFDCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDCC0: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -4494,8 +4953,8 @@ L_08AFDCCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDCE8: @@ -4518,8 +4977,21 @@ L_08AFDCE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(2072), aot_gpr_31); aot_gpr_31 = (0x08AFDD34u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 355u, 0x08AFDD34u, 0x0886A630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 519u, 0x0886A630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDD34u) goto L_08AFDD34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDD34: aot_gpr_4 = (ctx.gpr[3] ^ ctx.gpr[21]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -4546,8 +5018,21 @@ L_08AFDD5C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AFDD6Cu); aot_gpr_6 = (0u | 2048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 358u, 0x08AFDD6Cu, 0x0886A614u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 517u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 517u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 517u, 0x0886A614u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDD6Cu) goto L_08AFDD6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDD6C: aot_gpr_4 = (static_cast(aot_gpr_2) < 2048 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4613,8 +5098,21 @@ L_08AFDDBC: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08AFDDD0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 367u, 0x08AFDDD0u, 0x0886A630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 519u, 0x0886A630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDDD0u) goto L_08AFDDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDDD0: aot_gpr_4 = (ctx.gpr[3] ^ ctx.gpr[21]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -4652,8 +5150,8 @@ L_08AFDDFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(2080)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDE20: @@ -4709,8 +5207,8 @@ L_08AFDE88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFDEA4: @@ -4734,8 +5232,21 @@ L_08AFDEA4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_31 = (0x08AFDF04u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 377u, 0x08AFDF04u, 0x0886A540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 501u, 0x0886A540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDF04u) goto L_08AFDF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDF04: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; if (branch_taken) { @@ -4755,8 +5266,21 @@ L_08AFDF14: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08AFDF24u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 380u, 0x08AFDF24u, 0x0886A548u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 502u, 0x0886A548u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFDF24u) goto L_08AFDF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFDF24: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; if (branch_taken) { @@ -4979,8 +5503,21 @@ L_08AFE08C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08AFE0A4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-32768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 408u, 0x08AFE0A4u, 0x08A19C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 225u, 0x08A19C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE0A4u) goto L_08AFE0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE0A4: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; if (branch_taken) { @@ -5026,8 +5563,21 @@ L_08AFE0D8: aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); aot_gpr_31 = (0x08AFE0F0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 414u, 0x08AFE0F0u, 0x088E18B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 13u, 0x088E18B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE0F0u) goto L_08AFE0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE0F0: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; if (branch_taken) { @@ -5051,8 +5601,21 @@ L_08AFE100: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08AFE11Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 417u, 0x08AFE11Cu, 0x08AAF568u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 735u, 0x08AAF568u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE11Cu) goto L_08AFE11C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE11C: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; if (branch_taken) { @@ -5086,8 +5649,21 @@ L_08AFE140: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AFE15Cu); ctx.gpr[7] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 421u, 0x08AFE15Cu, 0x08A1158Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 176u, 0x08A1158Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE15Cu) goto L_08AFE15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE15C: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; if (branch_taken) { @@ -5108,8 +5684,21 @@ L_08AFE16C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AFE180u); ctx.gpr[7] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 424u, 0x08AFE180u, 0x08A1158Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 176u, 0x08A1158Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE180u) goto L_08AFE180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE180: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; if (branch_taken) { @@ -5188,8 +5777,21 @@ L_08AFE220: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AFE238u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 434u, 0x08AFE238u, 0x0886A630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 519u, 0x0886A630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE238u) goto L_08AFE238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE238: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1636))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1632))); @@ -5225,24 +5827,76 @@ L_08AFE270: aot_gpr_4 = (aot_gpr_4 + static_cast(416)); aot_gpr_31 = (0x08AFE280u); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 438u, 0x08AFE280u, 0x088E1994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 24u, 0x088E1994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE280u) goto L_08AFE280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE280: aot_gpr_31 = (0x08AFE288u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 439u, 0x08AFE288u, 0x08A19D68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 229u, 0x08A19D68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE288u) goto L_08AFE288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE288: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(320))); aot_gpr_31 = (0x08AFE294u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 440u, 0x08AFE294u, 0x08AAF5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 737u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 737u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 737u, 0x08AAF5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE294u) goto L_08AFE294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE294: aot_gpr_31 = (0x08AFE29Cu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 441u, 0x08AFE29Cu, 0x08A115A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 177u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 177u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 177u, 0x08A115A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE29Cu) goto L_08AFE29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE29C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5439,13 +6093,39 @@ L_08AFE3D4: L_08AFE3DC: aot_gpr_31 = (0x08AFE3E4u); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 470u, 0x08AFE3E4u, 0x08A115C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 179u, 0x08A115C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE3E4u) goto L_08AFE3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE3E4: aot_gpr_31 = (0x08AFE3ECu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 471u, 0x08AFE3ECu, 0x08AAF5D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 739u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 739u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 739u, 0x08AAF5D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE3ECu) goto L_08AFE3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE3EC: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); goto L_08AFE3F0; @@ -5461,13 +6141,39 @@ L_08AFE3F8: aot_gpr_4 = (aot_gpr_4 + static_cast(416)); aot_gpr_31 = (0x08AFE408u); aot_gpr_4 = (ctx.gpr[16] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 474u, 0x08AFE408u, 0x088E19ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 26u, 0x088E19ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE408u) goto L_08AFE408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE408: aot_gpr_31 = (0x08AFE410u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 475u, 0x08AFE410u, 0x08A19DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 234u, 0x08A19DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE410u) goto L_08AFE410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE410: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(16920))); goto L_08AFE414; @@ -5500,13 +6206,39 @@ L_08AFE438: L_08AFE444: aot_gpr_31 = (0x08AFE44Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 481u, 0x08AFE44Cu, 0x0886A5E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 514u, 0x0886A5E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE44Cu) goto L_08AFE44C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE44C: aot_gpr_31 = (0x08AFE454u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 482u, 0x08AFE454u, 0x0886A60Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 516u, 0x0886A60Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE454u) goto L_08AFE454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE454: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5523,8 +6255,8 @@ L_08AFE454: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE484: @@ -5552,8 +6284,21 @@ L_08AFE484: goto L_08AFE4EC; L_08AFE4EC: aot_gpr_31 = (0x08AFE4F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 485u, 0x08AFE4F4u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE4F4u) goto L_08AFE4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE4F4: aot_gpr_31 = (0x08AFE4FCu); aot_gpr_4 = (0u | 0u); @@ -5643,8 +6388,21 @@ L_08AFE574: L_08AFE580: aot_gpr_31 = (0x08AFE588u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 498u, 0x08AFE588u, 0x08AAF6A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 752u, 0x08AAF6A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE588u) goto L_08AFE588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE588: { const bool branch_taken = aot_gpr_2 != ctx.gpr[20]; if (branch_taken) { @@ -5676,8 +6434,21 @@ L_08AFE5A4: L_08AFE5AC: aot_gpr_31 = (0x08AFE5B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 503u, 0x08AFE5B4u, 0x08AAF5CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 738u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 738u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 738u, 0x08AAF5CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE5B4u) goto L_08AFE5B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE5B4: { const bool branch_taken = aot_gpr_2 != ctx.gpr[20]; if (branch_taken) { @@ -5704,8 +6475,21 @@ L_08AFE5C4: L_08AFE5D0: aot_gpr_31 = (0x08AFE5D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 507u, 0x08AFE5D8u, 0x088E1B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 41u, 0x088E1B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE5D8u) goto L_08AFE5D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE5D8: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; if (branch_taken) { @@ -5732,8 +6516,21 @@ L_08AFE5FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x08AFE608u); aot_gpr_5 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 511u, 0x08AFE608u, 0x088E1A20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 29u, 0x088E1A20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE608u) goto L_08AFE608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE608: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -5762,8 +6559,21 @@ L_08AFE630: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08AFE640u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 515u, 0x08AFE640u, 0x088E1A7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 34u, 0x088E1A7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE640u) goto L_08AFE640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE640: { const bool branch_taken = ctx.gpr[23] != 0u; if (branch_taken) { @@ -5774,8 +6584,21 @@ L_08AFE640: L_08AFE648: aot_gpr_31 = (0x08AFE650u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 517u, 0x08AFE650u, 0x088E1ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 38u, 0x088E1ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE650u) goto L_08AFE650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE650: { const bool branch_taken = 0u == 0u; ctx.gpr[23] = (0u | 0u); @@ -5787,8 +6610,21 @@ L_08AFE650: L_08AFE658: aot_gpr_31 = (0x08AFE660u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 519u, 0x08AFE660u, 0x08AAF6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 753u, 0x08AAF6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE660u) goto L_08AFE660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE660: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5799,8 +6635,21 @@ L_08AFE660: L_08AFE668: aot_gpr_31 = (0x08AFE670u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 521u, 0x08AFE670u, 0x08AAF5F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 741u, 0x08AAF5F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE670u) goto L_08AFE670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE670: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5811,8 +6660,21 @@ L_08AFE670: L_08AFE678: aot_gpr_31 = (0x08AFE680u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 523u, 0x08AFE680u, 0x08AAF6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 753u, 0x08AAF6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE680u) goto L_08AFE680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE680: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5823,13 +6685,39 @@ L_08AFE680: L_08AFE688: aot_gpr_31 = (0x08AFE690u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 525u, 0x08AFE690u, 0x08AAF5F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 741u, 0x08AAF5F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE690u) goto L_08AFE690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE690: aot_gpr_31 = (0x08AFE698u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 526u, 0x08AFE698u, 0x08A19F84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 248u, 0x08A19F84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE698u) goto L_08AFE698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE698: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; if (branch_taken) { @@ -5857,8 +6745,21 @@ L_08AFE6C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08AFE6CCu); aot_gpr_5 = (aot_gpr_29 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 530u, 0x08AFE6CCu, 0x08A19E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 238u, 0x08A19E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE6CCu) goto L_08AFE6CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE6CC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_4 = (ctx.gpr[22] | 0u); @@ -5890,8 +6791,21 @@ L_08AFE700: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AFE710u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 534u, 0x08AFE710u, 0x08A1161Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 185u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 185u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 185u, 0x08A1161Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE710u) goto L_08AFE710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE710: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[20]; @@ -5904,19 +6818,58 @@ L_08AFE71C: aot_gpr_5 = (aot_gpr_29 + static_cast(4)); aot_gpr_31 = (0x08AFE728u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 536u, 0x08AFE728u, 0x08A11668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 188u, 0x08A11668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE728u) goto L_08AFE728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE728: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08AFE734u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 537u, 0x08AFE734u, 0x08A19EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 243u, 0x08A19EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE734u) goto L_08AFE734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE734: aot_gpr_31 = (0x08AFE73Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 538u, 0x08AFE73Cu, 0x08A19EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 245u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 245u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 245u, 0x08A19EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE73Cu) goto L_08AFE73C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE73C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5944,8 +6897,21 @@ L_08AFE754: L_08AFE75C: aot_gpr_31 = (0x08AFE764u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 542u, 0x08AFE764u, 0x08AAF6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 753u, 0x08AAF6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE764u) goto L_08AFE764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE764: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5956,8 +6922,21 @@ L_08AFE764: L_08AFE76C: aot_gpr_31 = (0x08AFE774u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 544u, 0x08AFE774u, 0x08AAF5F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 741u, 0x08AAF5F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE774u) goto L_08AFE774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE774: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5968,8 +6947,21 @@ L_08AFE774: L_08AFE77C: aot_gpr_31 = (0x08AFE784u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 546u, 0x08AFE784u, 0x08AAF6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 753u, 0x08AAF6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE784u) goto L_08AFE784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE784: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5980,13 +6972,39 @@ L_08AFE784: L_08AFE78C: aot_gpr_31 = (0x08AFE794u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 548u, 0x08AFE794u, 0x08AAF5F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 741u, 0x08AAF5F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE794u) goto L_08AFE794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE794: aot_gpr_31 = (0x08AFE79Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 549u, 0x08AFE79Cu, 0x08AAF6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 753u, 0x08AAF6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE79Cu) goto L_08AFE79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE79C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -5997,8 +7015,21 @@ L_08AFE79C: L_08AFE7A4: aot_gpr_31 = (0x08AFE7ACu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 551u, 0x08AFE7ACu, 0x08AAF5F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 741u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 741u, 0x08AAF5F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE7ACu) goto L_08AFE7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE7AC: aot_gpr_31 = (0x08AFE7B4u); ctx.pc = 0x08B7348Cu; @@ -6013,13 +7044,39 @@ L_08AFE7B4: L_08AFE7BC: aot_gpr_31 = (0x08AFE7C4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 554u, 0x08AFE7C4u, 0x08A115C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 180u, 0x08A115C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE7C4u) goto L_08AFE7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE7C4: aot_gpr_31 = (0x08AFE7CCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 555u, 0x08AFE7CCu, 0x08AAF6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 758u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 758u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 758u, 0x08AAF6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE7CCu) goto L_08AFE7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE7CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6031,16 +7088,42 @@ L_08AFE7CC: L_08AFE7D8: aot_gpr_31 = (0x08AFE7E0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 557u, 0x08AFE7E0u, 0x088E1B60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 43u, 0x088E1B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE7E0u) goto L_08AFE7E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE7E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); goto L_08AFE7E4; L_08AFE7E4: aot_gpr_31 = (0x08AFE7ECu); aot_gpr_5 = (aot_gpr_29 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 559u, 0x08AFE7ECu, 0x08A19E38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 238u, 0x08A19E38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE7ECu) goto L_08AFE7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE7EC: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; if (branch_taken) { @@ -6086,25 +7169,77 @@ L_08AFE830: aot_gpr_5 = (aot_gpr_29 + static_cast(4)); aot_gpr_31 = (0x08AFE83Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 565u, 0x08AFE83Cu, 0x08A11668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 188u, 0x08A11668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE83Cu) goto L_08AFE83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE83C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08AFE848u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 566u, 0x08AFE848u, 0x08A19EA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 243u, 0x08A19EA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE848u) goto L_08AFE848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE848: aot_gpr_31 = (0x08AFE850u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 567u, 0x08AFE850u, 0x08A19EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 245u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 245u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 245u, 0x08A19EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE850u) goto L_08AFE850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE850: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08AFE85Cu); aot_gpr_5 = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 568u, 0x08AFE85Cu, 0x08A19FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 252u, 0x08A19FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE85Cu) goto L_08AFE85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE85C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6115,8 +7250,21 @@ L_08AFE85C: L_08AFE864: aot_gpr_31 = (0x08AFE86Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 570u, 0x08AFE86Cu, 0x08A1A1F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 288u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 288u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 288u, 0x08A1A1F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE86Cu) goto L_08AFE86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE86C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -6128,8 +7276,21 @@ L_08AFE86C: L_08AFE874: aot_gpr_31 = (0x08AFE87Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 572u, 0x08AFE87Cu, 0x08AAF6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 758u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 758u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 758u, 0x08AAF6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE87Cu) goto L_08AFE87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE87C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6141,14 +7302,40 @@ L_08AFE87C: L_08AFE888: aot_gpr_31 = (0x08AFE890u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 574u, 0x08AFE890u, 0x088E1B60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 43u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 43u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 43u, 0x088E1B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE890u) goto L_08AFE890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE890: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08AFE89Cu); aot_gpr_5 = (0u | 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 575u, 0x08AFE89Cu, 0x08A19FE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 252u, 0x08A19FE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFE89Cu) goto L_08AFE89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFE89C: aot_gpr_2 = (ctx.gpr[16] | 0u); { std::uint32_t aot_run_words[10]{}; @@ -6166,8 +7353,8 @@ L_08AFE89C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE8D0: @@ -6195,8 +7382,8 @@ L_08AFE8D0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE8E8: @@ -6242,8 +7429,8 @@ L_08AFE8E8: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE908: @@ -6289,8 +7476,8 @@ L_08AFE908: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE928: @@ -6346,8 +7533,8 @@ L_08AFE928: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE950: @@ -6373,8 +7560,8 @@ L_08AFE950: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE96C: @@ -6393,8 +7580,8 @@ L_08AFE96C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE980: @@ -6422,8 +7609,8 @@ L_08AFE980: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE998: @@ -6451,8 +7638,8 @@ L_08AFE998: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE9B0: @@ -6473,8 +7660,8 @@ L_08AFE9B0: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE9CC: @@ -6495,8 +7682,8 @@ L_08AFE9CC: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFE9E8: @@ -6519,8 +7706,8 @@ L_08AFEA00: } L_08AFEA08: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEA10: @@ -6543,8 +7730,8 @@ L_08AFEA28: } L_08AFEA30: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEA38: @@ -6564,8 +7751,21 @@ L_08AFEA58: aot_gpr_5 = (0u | 48u); aot_gpr_31 = (0x08AFEA64u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 594u, 0x08AFEA64u, 0x08A360ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 510u, 0x08A360ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFEA64u) goto L_08AFEA64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFEA64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(900))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(92))); @@ -6610,8 +7810,21 @@ L_08AFEAB4: aot_gpr_5 = (0u | 48u); aot_gpr_31 = (0x08AFEAC4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 600u, 0x08AFEAC4u, 0x08A360ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 510u, 0x08A360ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFEAC4u) goto L_08AFEAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFEAC4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFEAD0u); @@ -6642,8 +7855,21 @@ L_08AFEAFC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFEB08u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 604u, 0x08AFEB08u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFEB08u) goto L_08AFEB08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFEB08: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -6672,15 +7898,15 @@ L_08AFEB2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEB40: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(852))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEB48: @@ -6741,8 +7967,8 @@ L_08AFEB94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEBA4: @@ -6778,16 +8004,16 @@ L_08AFEBD8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEBE4: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEBF0: @@ -6801,8 +8027,8 @@ L_08AFEBF0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEC14: @@ -6816,8 +8042,8 @@ L_08AFEC14: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEC38: @@ -6832,8 +8058,8 @@ L_08AFEC38: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<0u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEC60: @@ -6849,8 +8075,8 @@ L_08AFEC60: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<64u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEC8C: @@ -6864,15 +8090,15 @@ L_08AFEC8C: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFECB8: ctx.fpr[0] = std::bit_cast(std::bit_cast(aot_fpr_12) & 0x7FFFFFFFu); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFECC4: @@ -6885,8 +8111,8 @@ L_08AFECC4: goto L_08AFECD8; L_08AFECD8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFECE0: @@ -6899,8 +8125,8 @@ L_08AFECE0: goto L_08AFECF4; L_08AFECF4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFECFC: @@ -6908,8 +8134,8 @@ L_08AFECFC: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFED10: @@ -6928,8 +8154,8 @@ L_08AFED10: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFED20: @@ -6954,8 +8180,8 @@ L_08AFED20: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFED48: @@ -6973,8 +8199,8 @@ L_08AFED48: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFED64: @@ -6993,8 +8219,8 @@ L_08AFED64: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFED74: @@ -7016,43 +8242,43 @@ L_08AFED74: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFED90: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFED98: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEDA0: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEDA8: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEDB0: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEDB8: @@ -7094,29 +8320,29 @@ L_08AFEE00: goto L_08AFEE1C; L_08AFEE1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEE24: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEE2C: jump_target = aot_gpr_31; aot_gpr_2 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEE34: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEE3C: @@ -7126,14 +8352,27 @@ L_08AFEE3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AFEE54u); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 652u, 0x08AFEE54u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFEE54u) goto L_08AFEE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFEE54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEE60: @@ -7149,14 +8388,27 @@ L_08AFEE60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08AFEE84u); ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 654u, 0x08AFEE84u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFEE84u) goto L_08AFEE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFEE84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEE90: @@ -7270,8 +8522,8 @@ L_08AFEE90: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEF10: @@ -7279,8 +8531,8 @@ L_08AFEF10: aot_gpr_2 = (aot_gpr_4 & aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEF20: @@ -7289,8 +8541,8 @@ L_08AFEF20: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEF48: @@ -7318,14 +8570,14 @@ L_08AFEF68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEF74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEF7C: @@ -7334,8 +8586,8 @@ L_08AFEF7C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEF90: @@ -7388,8 +8640,8 @@ L_08AFEFD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFEFEC: @@ -7401,8 +8653,21 @@ L_08AFEFEC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x08AFF010u); ctx.gpr[16] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 671u, 0x08AFF010u, 0x08B02090u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 542u, 0x08B02090u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF010u) goto L_08AFF010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF010: aot_gpr_5 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(2274))); aot_gpr_4 = (0u | 10u); @@ -7447,8 +8712,21 @@ L_08AFF048: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AFF058u); ctx.gpr[7] = (0u | 78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 678u, 0x08AFF058u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF058u) goto L_08AFF058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF058: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF064u); @@ -7481,8 +8759,21 @@ L_08AFF084: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AFF094u); ctx.gpr[7] = (0u | 79u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 684u, 0x08AFF094u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF094u) goto L_08AFF094; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF094: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF0A0u); @@ -7552,8 +8843,21 @@ L_08AFF0FC: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AFF110u); ctx.gpr[7] = (0u | 208u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 694u, 0x08AFF110u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF110u) goto L_08AFF110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF110: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF11Cu); @@ -7595,8 +8899,21 @@ L_08AFF14C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AFF15Cu); ctx.gpr[7] = (0u | 72u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 701u, 0x08AFF15Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF15Cu) goto L_08AFF15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF15C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF168u); @@ -7629,8 +8946,21 @@ L_08AFF188: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AFF198u); ctx.gpr[7] = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 707u, 0x08AFF198u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF198u) goto L_08AFF198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF198: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF1A4u); @@ -7682,8 +9012,21 @@ L_08AFF1E4: aot_gpr_6 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08AFF1F8u); ctx.gpr[7] = (0u | 209u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 715u, 0x08AFF1F8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF1F8u) goto L_08AFF1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF1F8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF204u); @@ -7725,8 +9068,21 @@ L_08AFF234: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AFF244u); ctx.gpr[7] = (0u | 92u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 722u, 0x08AFF244u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF244u) goto L_08AFF244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF244: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF250u); @@ -7759,8 +9115,21 @@ L_08AFF270: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08AFF280u); ctx.gpr[7] = (0u | 91u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 728u, 0x08AFF280u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF280u) goto L_08AFF280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF280: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF28Cu); @@ -7791,8 +9160,8 @@ L_08AFF2A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF2C4: @@ -7806,8 +9175,8 @@ L_08AFF2D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF2E0: @@ -7822,8 +9191,8 @@ L_08AFF2F4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF300: @@ -7855,8 +9224,21 @@ L_08AFF33C: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AFF348u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 739u, 0x08AFF348u, 0x08A05F3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 499u, 0x08A05F3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF348u) goto L_08AFF348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF348: aot_gpr_4 = (0u + static_cast(-5)); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_4); @@ -7879,15 +9261,41 @@ L_08AFF368: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); aot_gpr_31 = (0x08AFF374u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 744u, 0x08AFF374u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF374u) goto L_08AFF374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF374: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08AFF384u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 745u, 0x08AFF384u, 0x0880DD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 422u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 422u, 0x0880DD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF384u) goto L_08AFF384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF384: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(565))); aot_gpr_4 = (0u | 0u); @@ -7958,14 +9366,40 @@ L_08AFF3E4: } L_08AFF3F0: aot_gpr_31 = (0x08AFF3F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 756u, 0x08AFF3F8u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF3F8u) goto L_08AFF3F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF3F8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFF404u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 757u, 0x08AFF404u, 0x08B41BC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 407u, 0x08B41BC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF404u) goto L_08AFF404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF404: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 & 2u); @@ -8029,8 +9463,21 @@ L_08AFF47C: L_08AFF480: aot_gpr_31 = (0x08AFF488u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 766u, 0x08AFF488u, 0x08A66220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 501u, 0x08A66220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF488u) goto L_08AFF488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF488: aot_gpr_4 = (ctx.gpr[17] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8053,8 +9500,8 @@ L_08AFF49C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF4B4: @@ -8065,8 +9512,21 @@ L_08AFF4B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08AFF4D0u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 770u, 0x08AFF4D0u, 0x08ACFA70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 1055u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 1055u, 0x08ACFA70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF4D0u) goto L_08AFF4D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF4D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-3208))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(4)))))); @@ -8076,8 +9536,21 @@ L_08AFF4D0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(5)))))); aot_gpr_31 = (0x08AFF4F0u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(557), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 771u, 0x08AFF4F0u, 0x08AA22DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 514u, 0x08AA22DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF4F0u) goto L_08AFF4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF4F0: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(565), static_cast(aot_gpr_2)); { std::uint32_t aot_run_words[3]{}; @@ -8088,8 +9561,8 @@ L_08AFF4F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF508: @@ -8413,53 +9886,53 @@ L_08AFF6D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF6F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF700: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF708: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF710: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF718: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF720: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF728: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF730: @@ -8523,8 +9996,21 @@ L_08AFF798: L_08AFF7A8: aot_gpr_31 = (0x08AFF7B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 827u, 0x08AFF7B0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF7B0u) goto L_08AFF7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF7B0: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); goto L_08AFF7B4; @@ -8535,8 +10021,21 @@ L_08AFF7B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08AFF7CCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 829u, 0x08AFF7CCu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF7CCu) goto L_08AFF7CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF7CC: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8569,8 +10068,21 @@ L_08AFF7E8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AFF7F4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 832u, 0x08AFF7F4u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF7F4u) goto L_08AFF7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF7F4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8590,8 +10102,21 @@ L_08AFF808: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AFF814u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 835u, 0x08AFF814u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF814u) goto L_08AFF814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF814: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8610,8 +10135,21 @@ L_08AFF824: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AFF830u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 838u, 0x08AFF830u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF830u) goto L_08AFF830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF830: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8643,8 +10181,21 @@ L_08AFF838: } aot_gpr_31 = (0x08AFF85Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 840u, 0x08AFF85Cu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF85Cu) goto L_08AFF85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF85C: { const bool branch_taken = ctx.gpr[16] != ctx.gpr[18]; if (branch_taken) { @@ -8656,8 +10207,21 @@ L_08AFF864: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AFF870u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 842u, 0x08AFF870u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF870u) goto L_08AFF870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF870: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8677,8 +10241,21 @@ L_08AFF884: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AFF890u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 845u, 0x08AFF890u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF890u) goto L_08AFF890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF890: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8697,8 +10274,21 @@ L_08AFF8A0: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08AFF8ACu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 848u, 0x08AFF8ACu, 0x0885FB5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 924u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 924u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 924u, 0x0885FB5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF8ACu) goto L_08AFF8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF8AC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -8708,13 +10298,39 @@ L_08AFF8AC: } aot_gpr_31 = (0x08AFF8C0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 849u, 0x08AFF8C0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF8C0u) goto L_08AFF8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF8C0: aot_gpr_31 = (0x08AFF8C8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 850u, 0x08AFF8C8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF8C8u) goto L_08AFF8C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF8C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8735,8 +10351,21 @@ L_08AFF8D8: L_08AFF8E4: aot_gpr_31 = (0x08AFF8ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 853u, 0x08AFF8ECu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFF8ECu) goto L_08AFF8EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFF8EC: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -8751,61 +10380,61 @@ L_08AFF8EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF914: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF91C: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF924: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF92C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF934: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF93C: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF944: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF94C: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFF954: @@ -8897,8 +10526,21 @@ L_08AFF954: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08AFFA1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 863u, 0x08AFFA1Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFA1Cu) goto L_08AFFA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFA1C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8934,8 +10576,8 @@ L_08AFFA3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFA50: @@ -8945,8 +10587,21 @@ L_08AFFA50: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08AFFA68u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 869u, 0x08AFFA68u, 0x0894530Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 191u, 0x0894530Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFA68u) goto L_08AFFA68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFA68: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(615)))))); aot_gpr_5 = (aot_gpr_5 & 8u); @@ -8997,15 +10652,28 @@ L_08AFFAAC: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08AFFAB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 876u, 0x08AFFAB8u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFAB8u) goto L_08AFFAB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFAB8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFAC8: @@ -9029,8 +10697,21 @@ L_08AFFAF8: aot_gpr_5 = (0u | 44u); aot_gpr_31 = (0x08AFFB08u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 879u, 0x08AFFB08u, 0x08A360ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 510u, 0x08A360ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFB08u) goto L_08AFFB08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFB08: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9075,15 +10756,41 @@ L_08AFFB34: L_08AFFB44: aot_gpr_31 = (0x08AFFB4Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 885u, 0x08AFFB4Cu, 0x088F3BA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 744u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 744u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 744u, 0x088F3BA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFB4Cu) goto L_08AFFB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFB4C: aot_gpr_4 = (2237u << 16u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08AFFB5Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 886u, 0x08AFFB5Cu, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFB5Cu) goto L_08AFFB5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFB5C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); goto L_08AFFB60; @@ -9137,8 +10844,21 @@ L_08AFFBA8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AFFBB4u); aot_gpr_5 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 894u, 0x08AFFBB4u, 0x08910CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 222u, 0x08910CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFBB4u) goto L_08AFFBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFBB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); aot_gpr_5 = (8u << 16u); @@ -9148,8 +10868,21 @@ L_08AFFBB4: L_08AFFBC4: aot_gpr_31 = (0x08AFFBCCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 896u, 0x08AFFBCCu, 0x0890B608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 854u, 0x0890B608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFBCCu) goto L_08AFFBCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFBCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9165,8 +10898,21 @@ L_08AFFBD4: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08AFFBF0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 898u, 0x08AFFBF0u, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFBF0u) goto L_08AFFBF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFBF0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(565))); ctx.gpr[19] = (0u | 0u); @@ -9239,8 +10985,21 @@ L_08AFFC64: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08AFFC70u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 909u, 0x08AFFC70u, 0x08ADC8D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 173u, 0x08ADC8D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFC70u) goto L_08AFFC70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFC70: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AFFC7Cu); @@ -9251,8 +11010,21 @@ L_08AFFC7C: aot_gpr_5 = (0u | 44u); aot_gpr_31 = (0x08AFFC8Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 911u, 0x08AFFC8Cu, 0x08A360ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 510u, 0x08A360ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFC8Cu) goto L_08AFFC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFC8C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08AFFC98u); @@ -9300,8 +11072,21 @@ L_08AFFCD4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08AFFCE0u); aot_gpr_5 = (0u | 57u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 918u, 0x08AFFCE0u, 0x08910CCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 222u, 0x08910CCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFCE0u) goto L_08AFFCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFCE0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -9309,13 +11094,39 @@ L_08AFFCE0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(76), aot_gpr_5); aot_gpr_31 = (0x08AFFCF8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 919u, 0x08AFFCF8u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFCF8u) goto L_08AFFCF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFCF8: aot_gpr_31 = (0x08AFFD00u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 920u, 0x08AFFD00u, 0x0890B608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 854u, 0x0890B608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFD00u) goto L_08AFFD00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFD00: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(565))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -9339,8 +11150,8 @@ L_08AFFD14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFD38: @@ -9407,8 +11218,8 @@ L_08AFFD9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFDB0: @@ -9430,8 +11241,8 @@ L_08AFFDC4: goto L_08AFFDD4; L_08AFFDD4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFDDC: @@ -9459,8 +11270,21 @@ L_08AFFE10: aot_gpr_5 = (ctx.gpr[16] + static_cast(548)); aot_gpr_31 = (0x08AFFE1Cu); aot_gpr_6 = (ctx.gpr[16] + static_cast(552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 936u, 0x08AFFE1Cu, 0x08AA1CC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 451u, 0x08AA1CC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFE1Cu) goto L_08AFFE1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFE1C: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(896), static_cast(aot_gpr_2)); aot_gpr_4 = (0u + static_cast(-1)); @@ -9470,8 +11294,8 @@ L_08AFFE1C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFE3C: @@ -9488,8 +11312,21 @@ L_08AFFE3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08AFFE64u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 938u, 0x08AFFE64u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFE64u) goto L_08AFFE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFE64: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); @@ -9498,8 +11335,21 @@ L_08AFFE64: aot_gpr_4 = (aot_gpr_29 + static_cast(4)); aot_gpr_31 = (0x08AFFE80u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 939u, 0x08AFFE80u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFE80u) goto L_08AFFE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFE80: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9530,22 +11380,22 @@ L_08AFFEA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFEBC: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFEC4: jump_target = aot_gpr_31; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFECC: @@ -9559,14 +11409,14 @@ L_08AFFECC: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFEF4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08AFFEFC: @@ -9672,8 +11522,21 @@ L_08AFFFBC: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08AFFFD8u); aot_gpr_6 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0190->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0190_entry, 958u, 0x08AFFFD8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08AFFFD8u) goto L_08AFFFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08AFFFD8: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(666))); goto L_08AFFFDC; diff --git a/profiles/vcs/generated/generated_unit_0191.cpp b/profiles/vcs/generated/generated_unit_0191.cpp index d2a4492..ba864ab 100644 --- a/profiles/vcs/generated/generated_unit_0191.cpp +++ b/profiles/vcs/generated/generated_unit_0191.cpp @@ -1088,6 +1088,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B00000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1109,8 +1133,8 @@ L_08B00004: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00014: @@ -1123,14 +1147,27 @@ L_08B00014: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B00038u); aot_gpr_5 = (ctx.gpr[8] + static_cast(912)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 4u, 0x08B00038u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00038u) goto L_08B00038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00038: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00044: @@ -1175,8 +1212,8 @@ L_08B0008C: aot_gpr_5 = (aot_gpr_5 | aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(613), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B000AC: @@ -1263,8 +1300,21 @@ L_08B000E4: } aot_gpr_31 = (0x08B00158u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 13u, 0x08B00158u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00158u) goto L_08B00158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00158: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1288,8 +1338,21 @@ L_08B00160: ctx.fpr[15] = ctx.fpr[16] - ctx.fpr[18]; aot_gpr_31 = (0x08B0019Cu); ctx.fpr[16] = ctx.fpr[19] - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 15u, 0x08B0019Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0019Cu) goto L_08B0019C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0019C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(565))); ctx.gpr[18] = (0u | 0u); @@ -1335,8 +1398,21 @@ L_08B001E0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B001F0u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 21u, 0x08B001F0u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B001F0u) goto L_08B001F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B001F0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1358,8 +1434,8 @@ L_08B001FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00214: @@ -1475,8 +1551,21 @@ L_08B00278: } aot_gpr_31 = (0x08B002ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 31u, 0x08B002ECu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B002ECu) goto L_08B002EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B002EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1500,8 +1589,21 @@ L_08B002F4: ctx.fpr[15] = ctx.fpr[16] - ctx.fpr[18]; aot_gpr_31 = (0x08B00330u); ctx.fpr[16] = ctx.fpr[19] - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 33u, 0x08B00330u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00330u) goto L_08B00330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00330: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(565))); aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(aot_gpr_4) ? 1u : 0u); @@ -1529,8 +1631,21 @@ L_08B00350: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B00360u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 37u, 0x08B00360u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00360u) goto L_08B00360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00360: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -1552,8 +1667,8 @@ L_08B0036C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00384: @@ -1596,8 +1711,21 @@ L_08B003C8: L_08B003D0: aot_gpr_31 = (0x08B003D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 45u, 0x08B003D8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B003D8u) goto L_08B003D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B003D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1609,15 +1737,41 @@ L_08B003E0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B003ECu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 47u, 0x08B003ECu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B003ECu) goto L_08B003EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B003EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B003FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 48u, 0x08B003FCu, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B003FCu) goto L_08B003FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B003FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1667,8 +1821,21 @@ L_08B0043C: L_08B00444: aot_gpr_31 = (0x08B0044Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 55u, 0x08B0044Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0044Cu) goto L_08B0044C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0044C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1680,8 +1847,21 @@ L_08B00454: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B00460u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 57u, 0x08B00460u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00460u) goto L_08B00460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00460: aot_gpr_4 = (ctx.gpr[17] | 0u); { const bool branch_taken = static_cast(aot_gpr_4) > 0; @@ -1753,8 +1933,21 @@ L_08B004AC: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B004BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 67u, 0x08B004BCu, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B004BCu) goto L_08B004BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B004BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(563))); @@ -1770,8 +1963,21 @@ L_08B004DC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B004ECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 69u, 0x08B004ECu, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B004ECu) goto L_08B004EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B004EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1799,8 +2005,8 @@ L_08B00508: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00520: @@ -1852,8 +2058,8 @@ L_08B00564: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00578: @@ -1892,8 +2098,21 @@ L_08B005B8: L_08B005C8: aot_gpr_31 = (0x08B005D0u); aot_gpr_4 = (0u | 349u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 82u, 0x08B005D0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B005D0u) goto L_08B005D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B005D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1915,8 +2134,21 @@ L_08B005E8: aot_gpr_5 = (0u | 21u); aot_gpr_31 = (0x08B005F8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 85u, 0x08B005F8u, 0x08947340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 630u, 0x08947340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B005F8u) goto L_08B005F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B005F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -1931,8 +2163,21 @@ L_08B00604: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08B00614u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 87u, 0x08B00614u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00614u) goto L_08B00614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00614: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); { const bool branch_taken = 0u == 0u; @@ -1946,8 +2191,21 @@ L_08B00620: aot_gpr_5 = (0u | 21u); aot_gpr_31 = (0x08B0062Cu); aot_gpr_6 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 89u, 0x08B0062Cu, 0x089082C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 53u, 0x089082C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0062Cu) goto L_08B0062C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0062C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); ctx.gpr[17] = (aot_gpr_4 & ctx.gpr[17]); @@ -1958,8 +2216,21 @@ L_08B00634: L_08B00638: aot_gpr_31 = (0x08B00640u); aot_gpr_4 = (0u | 349u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 92u, 0x08B00640u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00640u) goto L_08B00640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00640: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1979,8 +2250,21 @@ L_08B00648: L_08B00658: aot_gpr_31 = (0x08B00660u); aot_gpr_4 = (0u | 333u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 95u, 0x08B00660u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00660u) goto L_08B00660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00660: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1993,8 +2277,21 @@ L_08B00668: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08B00678u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 97u, 0x08B00678u, 0x08947340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 630u, 0x08947340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00678u) goto L_08B00678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00678: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2008,18 +2305,57 @@ L_08B00680: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B00694u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 99u, 0x08B00694u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00694u) goto L_08B00694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00694: aot_gpr_31 = (0x08B0069Cu); aot_gpr_4 = (0u | 333u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 100u, 0x08B0069Cu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0069Cu) goto L_08B0069C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0069C: aot_gpr_31 = (0x08B006A4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 101u, 0x08B006A4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B006A4u) goto L_08B006A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B006A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2031,15 +2367,41 @@ L_08B006AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x08B006B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 103u, 0x08B006B8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B006B8u) goto L_08B006B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B006B8: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B006C8u); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 104u, 0x08B006C8u, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B006C8u) goto L_08B006C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B006C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(563))); @@ -2062,8 +2424,8 @@ L_08B006F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00708: @@ -2107,34 +2469,99 @@ L_08B00744: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B00750u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 111u, 0x08B00750u, 0x089CA714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 641u, 0x089CA714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00750u) goto L_08B00750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00750: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B00760u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 112u, 0x08B00760u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00760u) goto L_08B00760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00760: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0076Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 113u, 0x08B0076Cu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0076Cu) goto L_08B0076C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0076C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B00778u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 114u, 0x08B00778u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00778u) goto L_08B00778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00778: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B00788u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 115u, 0x08B00788u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00788u) goto L_08B00788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00788: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B00794u); @@ -2175,8 +2602,8 @@ L_08B007C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B007DC: @@ -2294,8 +2721,21 @@ L_08B00890: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B008A0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 136u, 0x08B008A0u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B008A0u) goto L_08B008A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B008A0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(614)))))); { const bool branch_taken = 0u == 0u; @@ -2309,8 +2749,21 @@ L_08B008AC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B008B8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 138u, 0x08B008B8u, 0x089CA714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 641u, 0x089CA714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B008B8u) goto L_08B008B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B008B8: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[19] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(86)))))); @@ -2318,33 +2771,98 @@ L_08B008B8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B008D0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 139u, 0x08B008D0u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B008D0u) goto L_08B008D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B008D0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B008DCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 140u, 0x08B008DCu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B008DCu) goto L_08B008DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B008DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B008E8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 141u, 0x08B008E8u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B008E8u) goto L_08B008E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B008E8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B008F4u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 142u, 0x08B008F4u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B008F4u) goto L_08B008F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B008F4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B00904u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 143u, 0x08B00904u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00904u) goto L_08B00904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00904: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1360))); ctx.gpr[20] = (0u | 4u); @@ -2383,13 +2901,39 @@ L_08B00934: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B00944u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 148u, 0x08B00944u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00944u) goto L_08B00944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00944: aot_gpr_31 = (0x08B0094Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 149u, 0x08B0094Cu, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0094Cu) goto L_08B0094C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0094C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2462,13 +3006,39 @@ L_08B009AC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B009BCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 159u, 0x08B009BCu, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B009BCu) goto L_08B009BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B009BC: aot_gpr_31 = (0x08B009C4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 160u, 0x08B009C4u, 0x089C7804u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 809u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 809u, 0x089C7804u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B009C4u) goto L_08B009C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B009C4: ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[22]) < static_cast(ctx.gpr[17]) ? 1u : 0u); @@ -2537,8 +3107,8 @@ L_08B00A24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00A50: @@ -2617,8 +3187,8 @@ L_08B00AC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00AD8: @@ -2696,8 +3266,8 @@ L_08B00B50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00B68: @@ -2736,8 +3306,8 @@ L_08B00B8C: goto L_08B00B90; L_08B00B90: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00B98: @@ -2769,16 +3339,29 @@ L_08B00BB8: goto L_08B00BBC; L_08B00BBC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00BC4: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B00BD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 199u, 0x08B00BD4u, 0x089401B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 22u, 0x089401B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00BD4u) goto L_08B00BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00BD4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2802,16 +3385,29 @@ L_08B00BEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00BF8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B00C08u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 204u, 0x08B00C08u, 0x089401B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 22u, 0x089401B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00C08u) goto L_08B00C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00C08: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2835,15 +3431,15 @@ L_08B00C20: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00C2C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00C34: @@ -2916,8 +3512,8 @@ L_08B00C84: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); jump_target = aot_gpr_31; { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[0] = std::bit_cast(0x7FC00000u); else ctx.fpr[0] = fs * ft; } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00C90: @@ -3069,8 +3665,8 @@ L_08B00D6C: L_08B00D70: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00D78: @@ -3114,8 +3710,8 @@ L_08B00DB0: L_08B00DB4: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00DBC: @@ -3170,8 +3766,8 @@ L_08B00E0C: L_08B00E10: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00E18: @@ -3326,8 +3922,8 @@ L_08B00EC8: goto L_08B00ECC; L_08B00ECC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00ED4: @@ -3368,8 +3964,8 @@ L_08B00F00: goto L_08B00F04; L_08B00F04: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B00F0C: @@ -3436,8 +4032,21 @@ L_08B00F74: } L_08B00F7C: aot_gpr_31 = (0x08B00F84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 273u, 0x08B00F84u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B00F84u) goto L_08B00F84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B00F84: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { @@ -3552,8 +4161,8 @@ L_08B01020: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01038: @@ -3605,8 +4214,8 @@ L_08B0107C: goto L_08B01080; L_08B01080: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01088: @@ -3728,8 +4337,21 @@ L_08B01120: L_08B0112C: aot_gpr_31 = (0x08B01134u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 312u, 0x08B01134u, 0x0890EF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 696u, 0x0890EF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01134u) goto L_08B01134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01134: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 != 0u; @@ -3797,8 +4419,8 @@ L_08B01184: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01198: @@ -3838,8 +4460,8 @@ L_08B011BC: goto L_08B011C0; L_08B011C0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B011C8: @@ -3983,8 +4605,8 @@ L_08B012B0: L_08B012B4: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B012BC: @@ -4035,8 +4657,21 @@ L_08B012FC: L_08B0131C: aot_gpr_31 = (0x08B01324u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 342u, 0x08B01324u, 0x08AFFE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 937u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 937u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 937u, 0x08AFFE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01324u) goto L_08B01324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01324: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4440,8 +5075,8 @@ L_08B015DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B015F0: @@ -4559,8 +5194,8 @@ L_08B016D8: goto L_08B016DC; L_08B016DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B016E4: @@ -4583,8 +5218,21 @@ L_08B016E4: L_08B01710: aot_gpr_31 = (0x08B01718u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 400u, 0x08B01718u, 0x08AFFE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 937u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 937u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 937u, 0x08AFFE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01718u) goto L_08B01718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01718: aot_gpr_4 = (16752u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4668,8 +5316,8 @@ L_08B01798: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B017A8: @@ -4743,8 +5391,8 @@ L_08B017F8: goto L_08B017FC; L_08B017FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01804: @@ -4846,16 +5494,42 @@ L_08B018B4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08B018C0u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 425u, 0x08B018C0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B018C0u) goto L_08B018C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B018C0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B018C4; L_08B018C4: aot_gpr_31 = (0x08B018CCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 427u, 0x08B018CCu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B018CCu) goto L_08B018CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B018CC: aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -4877,8 +5551,21 @@ L_08B018CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B018F0u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 428u, 0x08B018F0u, 0x08AFE928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 579u, 0x08AFE928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B018F0u) goto L_08B018F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B018F0: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4912,8 +5599,21 @@ L_08B01908: L_08B01914: aot_gpr_31 = (0x08B0191Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 431u, 0x08B0191Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0191Cu) goto L_08B0191C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0191C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5137,8 +5837,8 @@ L_08B01A80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01AA8: @@ -5215,21 +5915,21 @@ L_08B01B24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01B3C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(856))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01B44: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01B4C: @@ -5278,8 +5978,8 @@ L_08B01B84: goto L_08B01B9C; L_08B01B9C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01BA4: @@ -5409,8 +6109,8 @@ L_08B01C3C: goto L_08B01C40; L_08B01C40: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01C48: @@ -5427,8 +6127,21 @@ L_08B01C48: } L_08B01C64: aot_gpr_31 = (0x08B01C6Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 476u, 0x08B01C6Cu, 0x08A0BDACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 609u, 0x08A0BDACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01C6Cu) goto L_08B01C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01C6C: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(372))); { const bool branch_taken = aot_gpr_16 == 0u; @@ -5440,15 +6153,28 @@ L_08B01C6C: L_08B01C78: aot_gpr_31 = (0x08B01C80u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 478u, 0x08B01C80u, 0x08A0BDACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 609u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 609u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 609u, 0x08A0BDACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01C80u) goto L_08B01C80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01C80: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01C90: @@ -5487,8 +6213,21 @@ L_08B01CC8: } L_08B01CD0: aot_gpr_31 = (0x08B01CD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 483u, 0x08B01CD8u, 0x089CF934u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 649u, 0x089CF934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01CD8u) goto L_08B01CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01CD8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5501,8 +6240,21 @@ L_08B01CE4: ctx.gpr[17] = (aot_gpr_16 + static_cast(944)); aot_gpr_31 = (0x08B01CF0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 485u, 0x08B01CF0u, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01CF0u) goto L_08B01CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01CF0: aot_gpr_4 = (ctx.gpr[2] < static_cast(225) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5515,8 +6267,21 @@ L_08B01CFC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B01D08u); aot_gpr_5 = (0u | 215u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 487u, 0x08B01D08u, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01D08u) goto L_08B01D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01D08: aot_fpr_12 = std::bit_cast(0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1752), std::bit_cast(aot_fpr_12)); @@ -5530,8 +6295,8 @@ L_08B01D10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01D24: @@ -5636,8 +6401,8 @@ L_08B01DC4: goto L_08B01DC8; L_08B01DC8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01DD0: @@ -5650,14 +6415,27 @@ L_08B01DD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B01DF4u); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(2), static_cast(ctx.gpr[7])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0006. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 503u, 0x08B01DF4u, 0x0881DCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0006_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0006_entry, 6u, 248u, 0x0881DCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01DF4u) goto L_08B01DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01DF4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01E00: @@ -5746,14 +6524,14 @@ L_08B01E94: goto L_08B01E98; L_08B01E98: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01EA0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B01EA8: @@ -5819,8 +6597,21 @@ L_08B01F14: L_08B01F24: aot_gpr_31 = (0x08B01F2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 521u, 0x08B01F2Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01F2Cu) goto L_08B01F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01F2C: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); goto L_08B01F30; @@ -5831,8 +6622,21 @@ L_08B01F30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08B01F48u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 523u, 0x08B01F48u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01F48u) goto L_08B01F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01F48: aot_gpr_4 = (aot_gpr_29 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -5884,8 +6688,21 @@ L_08B01F9C: } L_08B01FA4: aot_gpr_31 = (0x08B01FACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 527u, 0x08B01FACu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01FACu) goto L_08B01FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01FAC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); goto L_08B01FB0; @@ -5915,8 +6732,21 @@ L_08B01FE0: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B01FECu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 531u, 0x08B01FECu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B01FECu) goto L_08B01FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B01FEC: { const bool branch_taken = 0u == 0u; ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -5942,14 +6772,40 @@ L_08B0200C: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B02018u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 535u, 0x08B02018u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02018u) goto L_08B02018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02018: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B02024u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 536u, 0x08B02024u, 0x0885FC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 925u, 0x0885FC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02024u) goto L_08B02024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02024: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -5959,13 +6815,39 @@ L_08B02024: } aot_gpr_31 = (0x08B02038u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 537u, 0x08B02038u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02038u) goto L_08B02038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02038: aot_gpr_31 = (0x08B02040u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 538u, 0x08B02040u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02040u) goto L_08B02040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02040: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -5986,8 +6868,21 @@ L_08B02050: L_08B0205C: aot_gpr_31 = (0x08B02064u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 541u, 0x08B02064u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02064u) goto L_08B02064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02064: { std::uint32_t aot_run_words[9]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -6003,8 +6898,8 @@ L_08B02064: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B02090: @@ -6037,8 +6932,8 @@ L_08B020C4: L_08B020C8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B020D0: @@ -6066,8 +6961,8 @@ L_08B020F4: goto L_08B020F8; L_08B020F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B02100: @@ -6154,8 +7049,8 @@ L_08B0219C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B021B0: @@ -6195,8 +7090,8 @@ L_08B021D8: } L_08B021E8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B021F0: @@ -6450,8 +7345,8 @@ L_08B02370: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B02384: @@ -6668,8 +7563,21 @@ L_08B02524: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B02538u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 619u, 0x08B02538u, 0x0890F43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 751u, 0x0890F43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02538u) goto L_08B02538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02538: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6720,8 +7628,21 @@ L_08B025A4: ctx.fpr[17] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_31 = (0x08B025D0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 623u, 0x08B025D0u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B025D0u) goto L_08B025D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B025D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6751,8 +7672,8 @@ L_08B025F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B02610: @@ -6784,8 +7705,21 @@ L_08B0264C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08B02668u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 628u, 0x08B02668u, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02668u) goto L_08B02668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02668: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); @@ -6805,8 +7739,21 @@ L_08B02668: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08B026B0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 629u, 0x08B026B0u, 0x08A69104u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 161u, 0x08A69104u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B026B0u) goto L_08B026B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B026B0: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7203,8 +8150,21 @@ L_08B0291C: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08B02950u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 639u, 0x08B02950u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02950u) goto L_08B02950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02950: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7286,15 +8246,41 @@ L_08B029AC: } aot_gpr_31 = (0x08B029C0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 644u, 0x08B029C0u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B029C0u) goto L_08B029C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B029C0: aot_gpr_6 = (aot_gpr_29 + static_cast(128)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B029D0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 645u, 0x08B029D0u, 0x08A66F58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 620u, 0x08A66F58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B029D0u) goto L_08B029D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B029D0: aot_gpr_31 = (0x08B029D8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7415,8 +8401,8 @@ L_08B02AA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B02AC8: @@ -7637,8 +8623,21 @@ L_08B02C38: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B02C48u); ctx.gpr[7] = (0u | 63u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 685u, 0x08B02C48u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02C48u) goto L_08B02C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02C48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02C54u); @@ -7695,14 +8694,40 @@ L_08B02CA8: L_08B02CB4: aot_gpr_31 = (0x08B02CBCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 693u, 0x08B02CBCu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02CBCu) goto L_08B02CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02CBC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x08B02CC8u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 694u, 0x08B02CC8u, 0x08A346B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 108u, 0x08A346B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02CC8u) goto L_08B02CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02CC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); @@ -7718,13 +8743,39 @@ L_08B02CD8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B02CECu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 696u, 0x08B02CECu, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02CECu) goto L_08B02CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02CEC: aot_gpr_31 = (0x08B02CF4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 697u, 0x08B02CF4u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02CF4u) goto L_08B02CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02CF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7736,8 +8787,21 @@ L_08B02CFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(900))); aot_gpr_31 = (0x08B02D08u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 699u, 0x08B02D08u, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02D08u) goto L_08B02D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02D08: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7830,8 +8894,21 @@ L_08B02D9C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B02DACu); ctx.gpr[7] = (0u | 77u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 712u, 0x08B02DACu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02DACu) goto L_08B02DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02DAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02DB8u); @@ -7877,8 +8954,21 @@ L_08B02DF4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B02E04u); ctx.gpr[7] = (0u | 67u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 720u, 0x08B02E04u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02E04u) goto L_08B02E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02E04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02E10u); @@ -7911,8 +9001,21 @@ L_08B02E30: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B02E40u); ctx.gpr[7] = (0u | 182u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 726u, 0x08B02E40u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02E40u) goto L_08B02E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02E40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02E4Cu); @@ -7945,8 +9048,21 @@ L_08B02E6C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B02E7Cu); ctx.gpr[7] = (0u | 174u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 732u, 0x08B02E7Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02E7Cu) goto L_08B02E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02E7C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02E88u); @@ -7995,8 +9111,21 @@ L_08B02EC0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B02ED0u); ctx.gpr[7] = (0u | 87u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 740u, 0x08B02ED0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02ED0u) goto L_08B02ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02ED0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02EDCu); @@ -8029,8 +9158,21 @@ L_08B02EFC: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B02F0Cu); ctx.gpr[7] = (0u | 183u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 746u, 0x08B02F0Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02F0Cu) goto L_08B02F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02F0C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02F18u); @@ -8063,8 +9205,21 @@ L_08B02F38: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B02F48u); ctx.gpr[7] = (0u | 178u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 752u, 0x08B02F48u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02F48u) goto L_08B02F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02F48: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02F54u); @@ -8113,8 +9268,21 @@ L_08B02F88: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B02F98u); ctx.gpr[7] = (0u | 68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 760u, 0x08B02F98u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02F98u) goto L_08B02F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02F98: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02FA4u); @@ -8147,8 +9315,21 @@ L_08B02FC4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B02FD4u); ctx.gpr[7] = (0u | 88u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 766u, 0x08B02FD4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B02FD4u) goto L_08B02FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B02FD4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B02FE0u); @@ -8171,8 +9352,21 @@ L_08B02FE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B0301Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 768u, 0x08B0301Cu, 0x089B8320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 35u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 35u, 0x089B8320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0301Cu) goto L_08B0301C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0301C: aot_gpr_31 = (0x08B03024u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -8209,8 +9403,21 @@ L_08B03050: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B0305Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 774u, 0x08B0305Cu, 0x089B2EE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 735u, 0x089B2EE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0305Cu) goto L_08B0305C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0305C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8278,8 +9485,21 @@ L_08B030C4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B030D0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0107. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 783u, 0x08B030D0u, 0x089B2EE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0107_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0107_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0107_entry, 107u, 735u, 0x089B2EE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B030D0u) goto L_08B030D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B030D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8339,8 +9559,21 @@ L_08B03124: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B03134u); ctx.gpr[7] = (0u | 70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 792u, 0x08B03134u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03134u) goto L_08B03134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03134: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03140u); @@ -8373,8 +9606,21 @@ L_08B03160: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B03170u); ctx.gpr[7] = (0u | 69u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 798u, 0x08B03170u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03170u) goto L_08B03170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03170: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0317Cu); @@ -8454,8 +9700,21 @@ L_08B031E8: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B031F8u); ctx.gpr[7] = (0u | 184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 810u, 0x08B031F8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B031F8u) goto L_08B031F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B031F8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03204u); @@ -8497,8 +9756,21 @@ L_08B03234: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B03244u); ctx.gpr[7] = (0u | 72u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 817u, 0x08B03244u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03244u) goto L_08B03244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03244: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03250u); @@ -8542,8 +9814,21 @@ L_08B03280: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B03290u); ctx.gpr[7] = (0u | 78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 825u, 0x08B03290u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03290u) goto L_08B03290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03290: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0329Cu); @@ -8576,8 +9861,21 @@ L_08B032BC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B032CCu); ctx.gpr[7] = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 831u, 0x08B032CCu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B032CCu) goto L_08B032CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B032CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B032D8u); @@ -8610,8 +9908,21 @@ L_08B032F8: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B03308u); ctx.gpr[7] = (0u | 175u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 837u, 0x08B03308u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03308u) goto L_08B03308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03308: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03314u); @@ -8660,8 +9971,21 @@ L_08B0334C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B0335Cu); ctx.gpr[7] = (0u | 185u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 845u, 0x08B0335Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0335Cu) goto L_08B0335C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0335C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03368u); @@ -8703,8 +10027,21 @@ L_08B03398: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B033A8u); ctx.gpr[7] = (0u | 92u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 852u, 0x08B033A8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B033A8u) goto L_08B033A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B033A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B033B4u); @@ -8748,8 +10085,21 @@ L_08B033E4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B033F4u); ctx.gpr[7] = (0u | 79u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 860u, 0x08B033F4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B033F4u) goto L_08B033F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B033F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03400u); @@ -8782,8 +10132,21 @@ L_08B03420: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B03430u); ctx.gpr[7] = (0u | 91u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 866u, 0x08B03430u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03430u) goto L_08B03430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03430: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0343Cu); @@ -8816,8 +10179,21 @@ L_08B0345C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B0346Cu); ctx.gpr[7] = (0u | 179u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 872u, 0x08B0346Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0346Cu) goto L_08B0346C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0346C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03478u); @@ -8848,8 +10224,8 @@ L_08B03494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B034B0: @@ -8950,8 +10326,21 @@ L_08B03548: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B03558u); ctx.gpr[7] = (0u | 72u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 889u, 0x08B03558u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03558u) goto L_08B03558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03558: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03564u); @@ -8986,8 +10375,21 @@ L_08B03584: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B03594u); ctx.gpr[7] = (0u | 71u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 895u, 0x08B03594u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03594u) goto L_08B03594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03594: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B035A0u); @@ -9022,8 +10424,21 @@ L_08B035C0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B035D0u); ctx.gpr[7] = (0u | 184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 901u, 0x08B035D0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B035D0u) goto L_08B035D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B035D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B035DCu); @@ -9058,8 +10473,21 @@ L_08B035FC: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B0360Cu); ctx.gpr[7] = (0u | 175u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 907u, 0x08B0360Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0360Cu) goto L_08B0360C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0360C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03618u); @@ -9117,8 +10545,21 @@ L_08B03658: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B03668u); ctx.gpr[7] = (0u | 92u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 916u, 0x08B03668u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03668u) goto L_08B03668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03668: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03674u); @@ -9154,8 +10595,21 @@ L_08B03694: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B036A4u); ctx.gpr[7] = (0u | 91u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 922u, 0x08B036A4u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B036A4u) goto L_08B036A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B036A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B036B0u); @@ -9191,8 +10645,21 @@ L_08B036D0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B036E0u); ctx.gpr[7] = (0u | 185u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 928u, 0x08B036E0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B036E0u) goto L_08B036E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B036E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B036ECu); @@ -9228,8 +10695,21 @@ L_08B0370C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B0371Cu); ctx.gpr[7] = (0u | 179u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 934u, 0x08B0371Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0371Cu) goto L_08B0371C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0371C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03728u); @@ -9383,8 +10863,21 @@ L_08B037F4: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B03804u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 956u, 0x08B03804u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03804u) goto L_08B03804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03804: aot_gpr_31 = (0x08B0380Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -9407,8 +10900,8 @@ L_08B03820: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B03834: @@ -9437,8 +10930,21 @@ L_08B03834: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), aot_gpr_31); aot_gpr_31 = (0x08B038A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0153. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 960u, 0x08B038A8u, 0x08A696F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); +#else + recomp_unit_0153_entry(rt, ctx, 258u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0153_entry, 153u, 258u, 0x08A696F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B038A8u) goto L_08B038A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B038A8: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-32232)); @@ -9447,8 +10953,21 @@ L_08B038A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x08B038C4u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(372), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 961u, 0x08B038C4u, 0x089DC94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 123u, 0x089DC94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B038C4u) goto L_08B038C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B038C4: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(644), static_cast(aot_gpr_4)); @@ -9545,8 +11064,21 @@ L_08B038C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B03A18u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 962u, 0x08B03A18u, 0x08B41BC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 407u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 407u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 407u, 0x08B41BC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03A18u) goto L_08B03A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03A18: aot_gpr_4 = (17530u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9751,8 +11283,21 @@ L_08B03C3C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B03CFCu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 967u, 0x08B03CFCu, 0x08A05F1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 497u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 497u, 0x08A05F1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03CFCu) goto L_08B03CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03CFC: { const bool branch_taken = static_cast(ctx.gpr[2]) < 0; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -9766,8 +11311,21 @@ L_08B03D04: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B03D14u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 969u, 0x08B03D14u, 0x08A05F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 501u, 0x08A05F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03D14u) goto L_08B03D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03D14: aot_gpr_31 = (0x08B03D1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -9795,8 +11353,21 @@ L_08B03D1C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B03D74u); aot_gpr_5 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 971u, 0x08B03D74u, 0x089DD23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 180u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 180u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 180u, 0x089DD23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03D74u) goto L_08B03D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03D74: ctx.gpr[2] = (aot_gpr_16 | 0u); { std::uint32_t aot_run_words[12]{}; @@ -9816,8 +11387,8 @@ L_08B03D74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B03DB0: @@ -9979,8 +11550,21 @@ L_08B03EDC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B03EECu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0191->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0191_entry, 991u, 0x08B03EECu, 0x089A8ACCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 78u, 0x089A8ACCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B03EECu) goto L_08B03EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B03EEC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[21]; diff --git a/profiles/vcs/generated/generated_unit_0192.cpp b/profiles/vcs/generated/generated_unit_0192.cpp index c5cbefd..e98c9f5 100644 --- a/profiles/vcs/generated/generated_unit_0192.cpp +++ b/profiles/vcs/generated/generated_unit_0192.cpp @@ -918,6 +918,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B04000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -972,8 +996,21 @@ L_08B04048: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B04054u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 6u, 0x08B04054u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04054u) goto L_08B04054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04054: aot_gpr_31 = (0x08B0405Cu); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0405Cu) goto L_08B0405C; @@ -1186,8 +1223,8 @@ L_08B041E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B04218: @@ -1209,8 +1246,21 @@ L_08B04218: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x08B04260u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 31u, 0x08B04260u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04260u) goto L_08B04260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04260: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -1339,8 +1389,21 @@ L_08B04314: aot_gpr_4 = (0u | 349u); aot_gpr_31 = (0x08B04324u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 48u, 0x08B04324u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04324u) goto L_08B04324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04324: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(613)))))); aot_gpr_4 = (aot_gpr_4 | 128u); @@ -1474,8 +1537,21 @@ L_08B04440: aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08B0444Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 62u, 0x08B0444Cu, 0x08947340u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 630u, 0x08947340u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0444Cu) goto L_08B0444C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0444C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1495,8 +1571,21 @@ L_08B0445C: aot_gpr_4 = (0u | 333u); aot_gpr_31 = (0x08B0446Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 65u, 0x08B0446Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0446Cu) goto L_08B0446C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0446C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(852))); aot_gpr_5 = (0u | 6u); @@ -1548,8 +1637,21 @@ L_08B0448C: } aot_gpr_31 = (0x08B044D0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 68u, 0x08B044D0u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B044D0u) goto L_08B044D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B044D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1573,8 +1675,21 @@ L_08B044D8: ctx.fpr[15] = ctx.fpr[16] - ctx.fpr[18]; aot_gpr_31 = (0x08B04514u); ctx.fpr[16] = ctx.fpr[19] - ctx.fpr[0]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 70u, 0x08B04514u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04514u) goto L_08B04514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04514: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -1585,8 +1700,8 @@ L_08B04514: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0452C: @@ -1644,8 +1759,21 @@ L_08B04598: } L_08B045A0: aot_gpr_31 = (0x08B045A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 77u, 0x08B045A8u, 0x0899103Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 223u, 0x0899103Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B045A8u) goto L_08B045A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B045A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); aot_gpr_5 = (17096u << 16u); @@ -1692,8 +1820,21 @@ L_08B045F0: } L_08B045F8: aot_gpr_31 = (0x08B04600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 84u, 0x08B04600u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04600u) goto L_08B04600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04600: { const bool branch_taken = ctx.gpr[17] != aot_gpr_2; if (branch_taken) { @@ -1703,8 +1844,21 @@ L_08B04600: } L_08B04608: aot_gpr_31 = (0x08B04610u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 86u, 0x08B04610u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04610u) goto L_08B04610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04610: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1748,8 +1902,21 @@ L_08B04648: goto L_08B04650; L_08B04650: aot_gpr_31 = (0x08B04658u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 93u, 0x08B04658u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04658u) goto L_08B04658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04658: { const bool branch_taken = ctx.gpr[17] != aot_gpr_2; if (branch_taken) { @@ -1806,8 +1973,8 @@ L_08B046D4: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30536))); jump_target = ctx.gpr[1]; ctx.gpr[18] = (static_cast(static_cast(ctx.gpr[18]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B046EC: @@ -2027,8 +2194,8 @@ L_08B04834: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30720))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0484C: @@ -2167,8 +2334,21 @@ L_08B04910: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08B04928u); ctx.gpr[20] = (ctx.gpr[16] + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 144u, 0x08B04928u, 0x08B00C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 216u, 0x08B00C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04928u) goto L_08B04928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04928: aot_gpr_5 = (aot_gpr_2 + static_cast(13)); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -2194,8 +2374,21 @@ L_08B04948: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[19] + static_cast(0)))))); aot_gpr_31 = (0x08B04960u); ctx.gpr[20] = (ctx.gpr[16] + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 147u, 0x08B04960u, 0x08B00C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 216u, 0x08B00C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04960u) goto L_08B04960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04960: aot_gpr_5 = (aot_gpr_2 + static_cast(13)); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -2276,8 +2469,21 @@ L_08B049D0: L_08B049F0: aot_gpr_31 = (0x08B049F8u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 156u, 0x08B049F8u, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B049F8u) goto L_08B049F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B049F8: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(532), static_cast(aot_gpr_4)); @@ -2348,8 +2554,21 @@ L_08B04A8C: L_08B04A98: aot_gpr_31 = (0x08B04AA0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 164u, 0x08B04AA0u, 0x08AD0600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 58u, 0x08AD0600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04AA0u) goto L_08B04AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04AA0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2360,8 +2579,21 @@ L_08B04AA0: L_08B04AA8: aot_gpr_31 = (0x08B04AB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(352))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 166u, 0x08B04AB0u, 0x08A9B980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 450u, 0x08A9B980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04AB0u) goto L_08B04AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04AB0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(636))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -2381,8 +2613,21 @@ L_08B04AD8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B04AECu); ctx.gpr[20] = (std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 168u, 0x08B04AECu, 0x08824A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 108u, 0x08824A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04AECu) goto L_08B04AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04AEC: { const bool branch_taken = ctx.gpr[22] == aot_gpr_2; if (branch_taken) { @@ -2393,8 +2638,21 @@ L_08B04AEC: L_08B04AF4: aot_gpr_31 = (0x08B04AFCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 170u, 0x08B04AFCu, 0x08824A0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 108u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 108u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 108u, 0x08824A0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04AFCu) goto L_08B04AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04AFC: aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast(692), static_cast(ctx.gpr[20])); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(694), static_cast(aot_gpr_2)); @@ -2472,8 +2730,21 @@ L_08B04B70: } L_08B04B78: aot_gpr_31 = (0x08B04B80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 182u, 0x08B04B80u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04B80u) goto L_08B04B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04B80: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2483,8 +2754,21 @@ L_08B04B80: } L_08B04B88: aot_gpr_31 = (0x08B04B90u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 184u, 0x08B04B90u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04B90u) goto L_08B04B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04B90: { const bool branch_taken = aot_gpr_2 != ctx.gpr[16]; if (branch_taken) { @@ -2494,8 +2778,21 @@ L_08B04B90: } L_08B04B98: aot_gpr_31 = (0x08B04BA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 186u, 0x08B04BA0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04BA0u) goto L_08B04BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04BA0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_2 + static_cast(86)))))); aot_gpr_5 = (0u | 275u); @@ -2535,8 +2832,21 @@ L_08B04BD4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B04BECu); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(636), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 191u, 0x08B04BECu, 0x08B0A360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 425u, 0x08B0A360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04BECu) goto L_08B04BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04BEC: aot_gpr_4 = (17274u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); @@ -2568,8 +2878,21 @@ L_08B04C24: aot_gpr_4 = (ctx.gpr[16] + static_cast(944)); aot_gpr_31 = (0x08B04C30u); aot_gpr_5 = (0u | 225u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 195u, 0x08B04C30u, 0x08B0D94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 383u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 383u, 0x08B0D94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04C30u) goto L_08B04C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04C30: { const bool branch_taken = ctx.gpr[17] == 0u; aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1840), ctx.gpr[17]); @@ -2711,8 +3034,8 @@ L_08B04CE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B04D14: @@ -2789,8 +3112,21 @@ L_08B04DD0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B04DDCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 219u, 0x08B04DDCu, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04DDCu) goto L_08B04DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04DDC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2811,8 +3147,21 @@ L_08B04DF0: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08B04E00u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 222u, 0x08B04E00u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04E00u) goto L_08B04E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04E00: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2825,8 +3174,21 @@ L_08B04E08: aot_gpr_5 = (0u | 17u); aot_gpr_31 = (0x08B04E18u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 224u, 0x08B04E18u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04E18u) goto L_08B04E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04E18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2878,8 +3240,21 @@ L_08B04E60: } L_08B04E70: aot_gpr_31 = (0x08B04E78u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 231u, 0x08B04E78u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04E78u) goto L_08B04E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04E78: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2912,8 +3287,21 @@ L_08B04EA4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B04EB4u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 235u, 0x08B04EB4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04EB4u) goto L_08B04EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04EB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2952,8 +3340,21 @@ L_08B04EE4: } L_08B04EF4: aot_gpr_31 = (0x08B04EFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 240u, 0x08B04EFCu, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04EFCu) goto L_08B04EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04EFC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2966,8 +3367,21 @@ L_08B04F04: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B04F14u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 242u, 0x08B04F14u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04F14u) goto L_08B04F14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04F14: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3006,8 +3420,21 @@ L_08B04F44: } L_08B04F54: aot_gpr_31 = (0x08B04F5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 247u, 0x08B04F5Cu, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04F5Cu) goto L_08B04F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04F5C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3019,8 +3446,21 @@ L_08B04F64: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B04F70u); aot_gpr_5 = (0u | 47u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 249u, 0x08B04F70u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04F70u) goto L_08B04F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04F70: aot_gpr_31 = (0x08B04F78u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, aot_gpr_6, ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04F78u) goto L_08B04F78; @@ -3057,8 +3497,21 @@ L_08B04FC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_gpr_31 = (0x08B04FCCu); aot_gpr_5 = (0u | 8192u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 254u, 0x08B04FCCu, 0x0886D4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 211u, 0x0886D4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04FCCu) goto L_08B04FCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04FCC: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3073,8 +3526,21 @@ L_08B04FD8: aot_gpr_6 = (aot_gpr_6 | 4u); aot_gpr_31 = (0x08B04FECu); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 256u, 0x08B04FECu, 0x0886D53Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 217u, 0x0886D53Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B04FECu) goto L_08B04FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B04FEC: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3087,8 +3553,21 @@ L_08B04FF8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B05004u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 258u, 0x08B05004u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05004u) goto L_08B05004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05004: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); if (aot_gpr_4 != 0u) { @@ -3110,22 +3589,61 @@ L_08B0501C: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x08B05034u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 262u, 0x08B05034u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05034u) goto L_08B05034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05034: aot_gpr_4 = (0u | 10u); aot_mem.aot_direct_store16(ctx.gpr[18] + static_cast(2274), static_cast(aot_gpr_4)); aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B05048u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0072. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 263u, 0x08B05048u, 0x089266D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0072_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0072_entry, 72u, 588u, 0x089266D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05048u) goto L_08B05048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05048: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B05054u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 264u, 0x08B05054u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05054u) goto L_08B05054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05054: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B05060u); @@ -3173,22 +3691,61 @@ L_08B050A8: } L_08B050B0: aot_gpr_31 = (0x08B050B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 270u, 0x08B050B8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B050B8u) goto L_08B050B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B050B8: ctx.fpr[22] = ctx.fpr[0] + ctx.fpr[22]; goto L_08B050BC; L_08B050BC: aot_gpr_31 = (0x08B050C4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 272u, 0x08B050C4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B050C4u) goto L_08B050C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B050C4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B050D0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 273u, 0x08B050D0u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B050D0u) goto L_08B050D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B050D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3225,16 +3782,42 @@ L_08B05100: } L_08B05108: aot_gpr_31 = (0x08B05110u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 278u, 0x08B05110u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05110u) goto L_08B05110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05110: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B05114; L_08B05114: aot_gpr_31 = (0x08B0511Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 280u, 0x08B0511Cu, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0511Cu) goto L_08B0511C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0511C: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(208))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(208))); @@ -3253,8 +3836,8 @@ L_08B05134: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(30832))); jump_target = ctx.gpr[1]; ctx.gpr[17] = (static_cast(static_cast(ctx.gpr[17]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0514C: @@ -3264,8 +3847,21 @@ L_08B0514C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B05164u); aot_gpr_5 = (aot_gpr_5 + static_cast(320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 283u, 0x08B05164u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05164u) goto L_08B05164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05164: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1752))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(268))); @@ -3290,8 +3886,21 @@ L_08B05198: { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_gpr_31 = (0x08B051B4u); aot_fpr_14 = ctx.fpr[30] + aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 285u, 0x08B051B4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B051B4u) goto L_08B051B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B051B4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(2116), ctx.gpr[16]); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1200))); @@ -3499,8 +4108,21 @@ L_08B052C4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B052D0u); aot_gpr_5 = (0u | 103u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 314u, 0x08B052D0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B052D0u) goto L_08B052D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B052D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3515,8 +4137,21 @@ L_08B052D8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B052F0u); aot_gpr_5 = (aot_gpr_5 + static_cast(320)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 316u, 0x08B052F0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B052F0u) goto L_08B052F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B052F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1752))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(268))); @@ -3539,8 +4174,21 @@ L_08B0531C: { const float fs = ctx.fpr[16]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_gpr_31 = (0x08B05338u); aot_fpr_14 = ctx.fpr[30] + aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 318u, 0x08B05338u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05338u) goto L_08B05338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05338: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(2116), ctx.gpr[16]); ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1204))); @@ -3564,8 +4212,21 @@ L_08B05354: aot_gpr_5 = (ctx.gpr[16] + static_cast(320)); aot_gpr_31 = (0x08B05364u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 321u, 0x08B05364u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05364u) goto L_08B05364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05364: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(2116), ctx.gpr[16]); @@ -3601,8 +4262,21 @@ L_08B0536C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(120), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B053A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 323u, 0x08B053A8u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B053A8u) goto L_08B053A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B053A8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(2116), ctx.gpr[16]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1212), ctx.gpr[16]); @@ -3665,8 +4339,21 @@ L_08B05438: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B05488u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 326u, 0x08B05488u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05488u) goto L_08B05488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05488: aot_gpr_4 = (16396u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -3737,8 +4424,21 @@ L_08B05488: aot_gpr_4 = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x08B054ECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 327u, 0x08B054ECu, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B054ECu) goto L_08B054EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B054EC: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1208))); { const bool branch_taken = aot_gpr_2 == 0u; @@ -3767,8 +4467,21 @@ L_08B05500: ctx.gpr[7] = (0u | 200u); aot_gpr_31 = (0x08B05538u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0079. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 330u, 0x08B05538u, 0x089421CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0079_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0079_entry, 79u, 352u, 0x089421CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05538u) goto L_08B05538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05538: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3829,8 +4542,21 @@ L_08B05570: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B05590u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 338u, 0x08B05590u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05590u) goto L_08B05590; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05590: aot_gpr_4 = (ctx.gpr[16] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -3927,8 +4653,21 @@ L_08B055C0: } aot_gpr_31 = (0x08B0562Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 340u, 0x08B0562Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0562Cu) goto L_08B0562C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0562C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(2116), ctx.gpr[16]); @@ -3986,8 +4725,21 @@ L_08B05664: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B05698u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 343u, 0x08B05698u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05698u) goto L_08B05698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05698: ctx.gpr[20] = (aot_gpr_29 + static_cast(256)); aot_gpr_4 = (16576u << 16u); @@ -3995,8 +4747,21 @@ L_08B05698: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B056B0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 344u, 0x08B056B0u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B056B0u) goto L_08B056B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B056B0: ctx.gpr[22] = (aot_gpr_29 + static_cast(272)); aot_gpr_4 = (16544u << 16u); @@ -4004,15 +4769,41 @@ L_08B056B0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B056C8u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 345u, 0x08B056C8u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B056C8u) goto L_08B056C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B056C8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B056D8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 346u, 0x08B056D8u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B056D8u) goto L_08B056D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B056D8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(240), aot_run_words); @@ -4022,8 +4813,21 @@ L_08B056D8: } aot_gpr_31 = (0x08B056ECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 347u, 0x08B056ECu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B056ECu) goto L_08B056EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B056EC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4036,8 +4840,21 @@ L_08B056F4: ctx.gpr[21] = (0u | 26u); aot_gpr_31 = (0x08B05704u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 349u, 0x08B05704u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05704u) goto L_08B05704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05704: ctx.gpr[19] = (aot_gpr_29 + static_cast(304)); aot_gpr_6 = (16640u << 16u); @@ -4045,8 +4862,21 @@ L_08B05704: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B0571Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 350u, 0x08B0571Cu, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0571Cu) goto L_08B0571C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0571C: ctx.gpr[20] = (aot_gpr_29 + static_cast(320)); aot_gpr_6 = (16512u << 16u); @@ -4054,15 +4884,41 @@ L_08B0571C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B05734u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 351u, 0x08B05734u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05734u) goto L_08B05734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05734: aot_gpr_4 = (aot_gpr_29 + static_cast(288)); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B05744u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 352u, 0x08B05744u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05744u) goto L_08B05744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05744: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(288), aot_run_words); @@ -4072,8 +4928,21 @@ L_08B05744: } aot_gpr_31 = (0x08B05758u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 353u, 0x08B05758u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05758u) goto L_08B05758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05758: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4131,8 +5000,21 @@ L_08B05790: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B057C4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 356u, 0x08B057C4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B057C4u) goto L_08B057C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B057C4: aot_gpr_4 = (49344u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4203,8 +5085,21 @@ L_08B057C4: } aot_gpr_31 = (0x08B05828u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 357u, 0x08B05828u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05828u) goto L_08B05828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05828: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4216,8 +5111,21 @@ L_08B05830: ctx.gpr[21] = (0u | 27u); aot_gpr_31 = (0x08B0583Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 359u, 0x08B0583Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0583Cu) goto L_08B0583C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0583C: aot_gpr_4 = (49408u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4289,8 +5197,21 @@ L_08B0583C: } aot_gpr_31 = (0x08B058A4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 360u, 0x08B058A4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B058A4u) goto L_08B058A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B058A4: aot_gpr_4 = (0u | 46u); { const bool branch_taken = ctx.gpr[17] != aot_gpr_4; @@ -4336,8 +5257,21 @@ L_08B05908: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B05920u); ctx.gpr[7] = (0u | 139u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 365u, 0x08B05920u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05920u) goto L_08B05920; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05920: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4367,8 +5301,21 @@ L_08B05944: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B05958u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 369u, 0x08B05958u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05958u) goto L_08B05958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05958: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4384,8 +5331,21 @@ L_08B05960: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B0597Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 371u, 0x08B0597Cu, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0597Cu) goto L_08B0597C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0597C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(456))); aot_gpr_5 = (0u + static_cast(-2)); @@ -4448,8 +5408,21 @@ L_08B0598C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B059F4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 373u, 0x08B059F4u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B059F4u) goto L_08B059F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B059F4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_2); { const bool branch_taken = aot_gpr_2 != 0u; @@ -4517,8 +5490,21 @@ L_08B05A00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B05A74u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 375u, 0x08B05A74u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05A74u) goto L_08B05A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05A74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_2); goto L_08B05A78; @@ -4629,8 +5615,21 @@ L_08B05A84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B05B20u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 378u, 0x08B05B20u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05B20u) goto L_08B05B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05B20: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_2); goto L_08B05B24; @@ -4744,8 +5743,21 @@ L_08B05B30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B05BD8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 381u, 0x08B05BD8u, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05BD8u) goto L_08B05BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05BD8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_2); goto L_08B05BDC; @@ -4788,8 +5800,21 @@ L_08B05BE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08B05C34u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 384u, 0x08B05C34u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05C34u) goto L_08B05C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05C34: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (ctx.gpr[16] + static_cast(48)); @@ -4809,8 +5834,21 @@ L_08B05C3C: L_08B05C48: aot_gpr_31 = (0x08B05C50u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 387u, 0x08B05C50u, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05C50u) goto L_08B05C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05C50: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); @@ -4823,19 +5861,58 @@ L_08B05C58: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B05C64u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 389u, 0x08B05C64u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05C64u) goto L_08B05C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05C64: aot_gpr_31 = (0x08B05C6Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 390u, 0x08B05C6Cu, 0x08A0CDECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 138u, 0x08A0CDECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05C6Cu) goto L_08B05C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05C6C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B05C78u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 391u, 0x08B05C78u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05C78u) goto L_08B05C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05C78: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); @@ -4916,8 +5993,21 @@ L_08B05CC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B05D2Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 396u, 0x08B05D2Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05D2Cu) goto L_08B05D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05D2C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -4966,8 +6056,21 @@ L_08B05D70: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B05D7Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 399u, 0x08B05D7Cu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05D7Cu) goto L_08B05D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05D7C: aot_gpr_2 = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[16]{}; @@ -4991,8 +6094,8 @@ L_08B05D7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1280)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B05DC8: @@ -5003,8 +6106,21 @@ L_08B05DC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B05DE4u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 401u, 0x08B05DE4u, 0x08B021B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 559u, 0x08B021B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05DE4u) goto L_08B05DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05DE4: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(565))); aot_gpr_4 = (static_cast(aot_gpr_2) < static_cast(aot_gpr_4) ? 1u : 0u); @@ -5098,15 +6214,41 @@ L_08B05E80: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08B05E90u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 413u, 0x08B05E90u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05E90u) goto L_08B05E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05E90: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B05EA0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 414u, 0x08B05EA0u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05EA0u) goto L_08B05EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05EA0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B05EACu); @@ -5172,15 +6314,41 @@ L_08B05F08: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B05F18u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 423u, 0x08B05F18u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05F18u) goto L_08B05F18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05F18: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B05F28u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 424u, 0x08B05F28u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05F28u) goto L_08B05F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05F28: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B05F34u); @@ -5281,15 +6449,41 @@ L_08B05FD0: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B05FE0u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 437u, 0x08B05FE0u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05FE0u) goto L_08B05FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05FE0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08B05FF0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 438u, 0x08B05FF0u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B05FF0u) goto L_08B05FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B05FF0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B05FFCu); @@ -5355,15 +6549,41 @@ L_08B06058: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B06068u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 447u, 0x08B06068u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06068u) goto L_08B06068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06068: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08B06078u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 448u, 0x08B06078u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06078u) goto L_08B06078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06078: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B06084u); @@ -5480,15 +6700,41 @@ L_08B0613C: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B0614Cu); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 463u, 0x08B0614Cu, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0614Cu) goto L_08B0614C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0614C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B0615Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 464u, 0x08B0615Cu, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0615Cu) goto L_08B0615C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0615C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B06168u); @@ -5538,15 +6784,41 @@ L_08B061A8: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08B061B8u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 471u, 0x08B061B8u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B061B8u) goto L_08B061B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B061B8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B061C8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 472u, 0x08B061C8u, 0x08AFEF90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 664u, 0x08AFEF90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B061C8u) goto L_08B061C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B061C8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B061D4u); @@ -5568,8 +6840,8 @@ L_08B061E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B061F8: @@ -5708,8 +6980,21 @@ L_08B062FC: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B06328u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 488u, 0x08B06328u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06328u) goto L_08B06328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06328: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1628), ctx.gpr[16]); goto L_08B0632C; @@ -5776,8 +7061,8 @@ L_08B06360: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31032))); jump_target = ctx.gpr[1]; ctx.gpr[30] = (static_cast(static_cast(ctx.gpr[30]) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B06378: @@ -6016,8 +7301,21 @@ L_08B064BC: } aot_gpr_31 = (0x08B0650Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 505u, 0x08B0650Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0650Cu) goto L_08B0650C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0650C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6065,8 +7363,21 @@ L_08B0650C: } aot_gpr_31 = (0x08B06560u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 506u, 0x08B06560u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06560u) goto L_08B06560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06560: aot_gpr_4 = (16384u << 16u); ctx.fpr[22] = std::bit_cast(aot_gpr_4); @@ -6102,8 +7413,21 @@ L_08B06560: } aot_gpr_31 = (0x08B065A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 507u, 0x08B065A4u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B065A4u) goto L_08B065A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B065A4: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6151,8 +7475,21 @@ L_08B065A4: L_08B065E0: aot_gpr_31 = (0x08B065E8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 509u, 0x08B065E8u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B065E8u) goto L_08B065E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B065E8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (48128u << 16u); @@ -6218,8 +7555,21 @@ L_08B065FC: } aot_gpr_31 = (0x08B06670u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 511u, 0x08B06670u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06670u) goto L_08B06670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06670: aot_gpr_31 = (0x08B06678u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); @@ -6344,8 +7694,21 @@ L_08B06780: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B06794u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 527u, 0x08B06794u, 0x08B01D24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 489u, 0x08B01D24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06794u) goto L_08B06794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06794: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -6482,8 +7845,21 @@ L_08B067F4: } aot_gpr_31 = (0x08B06854u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 535u, 0x08B06854u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06854u) goto L_08B06854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06854: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(208), aot_run_words); @@ -6499,8 +7875,21 @@ L_08B06854: } aot_gpr_31 = (0x08B06874u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 536u, 0x08B06874u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06874u) goto L_08B06874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06874: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16230u << 16u); @@ -6557,8 +7946,21 @@ L_08B068FC: L_08B06904: aot_gpr_31 = (0x08B0690Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 540u, 0x08B0690Cu, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0690Cu) goto L_08B0690C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0690C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (15360u << 16u); @@ -6617,8 +8019,21 @@ L_08B0696C: L_08B06984: aot_gpr_31 = (0x08B0698Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 547u, 0x08B0698Cu, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0698Cu) goto L_08B0698C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0698C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (15360u << 16u); @@ -6652,8 +8067,21 @@ L_08B069C0: L_08B069CC: aot_gpr_31 = (0x08B069D4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 552u, 0x08B069D4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B069D4u) goto L_08B069D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B069D4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B069D8; @@ -6997,8 +8425,21 @@ L_08B06BF4: } aot_gpr_31 = (0x08B06C94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 570u, 0x08B06C94u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06C94u) goto L_08B06C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06C94: aot_gpr_4 = (50716u << 16u); aot_gpr_4 = (aot_gpr_4 | 16374u); @@ -7022,14 +8463,40 @@ L_08B06CB0: L_08B06CB8: aot_gpr_31 = (0x08B06CC0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 573u, 0x08B06CC0u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06CC0u) goto L_08B06CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06CC0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B06CCCu); ctx.gpr[22] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 574u, 0x08B06CCCu, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B06CCCu) goto L_08B06CCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B06CCC: aot_gpr_4 = (ctx.gpr[22] - aot_gpr_2); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7602,8 +9069,21 @@ L_08B07090: } aot_gpr_31 = (0x08B07110u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 615u, 0x08B07110u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07110u) goto L_08B07110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07110: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7703,8 +9183,21 @@ L_08B07110: } aot_gpr_31 = (0x08B0719Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 616u, 0x08B0719Cu, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0719Cu) goto L_08B0719C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0719C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7940,8 +9433,21 @@ L_08B072A8: L_08B072FC: aot_gpr_31 = (0x08B07304u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1640), std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 624u, 0x08B07304u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07304u) goto L_08B07304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07304: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1624))); @@ -7951,8 +9457,21 @@ L_08B07304: { const float fs = aot_fpr_14; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08B07324u); { const float fs = aot_fpr_13; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[28] = std::bit_cast(0x7FC00000u); else ctx.fpr[28] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 625u, 0x08B07324u, 0x08AFECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 628u, 0x08AFECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07324u) goto L_08B07324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07324: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); @@ -7964,8 +9483,21 @@ L_08B07324: { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B0734Cu); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 626u, 0x08B0734Cu, 0x08AFED74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 638u, 0x08AFED74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0734Cu) goto L_08B0734C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0734C: ctx.fpr[28] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1640))); goto L_08B07350; @@ -7975,15 +9507,41 @@ L_08B07350: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B07364u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 628u, 0x08B07364u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07364u) goto L_08B07364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07364: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07374u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 629u, 0x08B07374u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07374u) goto L_08B07374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07374: aot_gpr_31 = (0x08B0737Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7992,14 +9550,40 @@ L_08B07374: L_08B0737C: aot_gpr_31 = (0x08B07384u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 631u, 0x08B07384u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07384u) goto L_08B07384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07384: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07390u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 632u, 0x08B07390u, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07390u) goto L_08B07390; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07390: aot_gpr_4 = (50716u << 16u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1620))); @@ -8014,8 +9598,21 @@ L_08B07390: } L_08B073B0: aot_gpr_31 = (0x08B073B8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 634u, 0x08B073B8u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B073B8u) goto L_08B073B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B073B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1624))); @@ -8027,8 +9624,21 @@ L_08B073B8: { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B073E0u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 635u, 0x08B073E0u, 0x08AFED74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 638u, 0x08AFED74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B073E0u) goto L_08B073E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B073E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8039,8 +9649,21 @@ L_08B073E0: L_08B073E8: aot_gpr_31 = (0x08B073F0u); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 637u, 0x08B073F0u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B073F0u) goto L_08B073F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B073F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(20))); @@ -8051,8 +9674,21 @@ L_08B073F0: { const float fs = aot_fpr_13; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B07414u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 638u, 0x08B07414u, 0x08AFED74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 638u, 0x08AFED74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07414u) goto L_08B07414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07414: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1644), ctx.gpr[22]); aot_gpr_31 = (0x08B07420u); @@ -8062,22 +9698,61 @@ L_08B07414: L_08B07420: aot_gpr_31 = (0x08B07428u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 640u, 0x08B07428u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07428u) goto L_08B07428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07428: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B07438u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 641u, 0x08B07438u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07438u) goto L_08B07438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07438: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07448u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 642u, 0x08B07448u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07448u) goto L_08B07448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07448: aot_gpr_31 = (0x08B07450u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8086,8 +9761,21 @@ L_08B07448: L_08B07450: aot_gpr_31 = (0x08B07458u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 644u, 0x08B07458u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07458u) goto L_08B07458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07458: ctx.gpr[22] = (aot_gpr_2 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -8095,21 +9783,60 @@ L_08B07458: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B07470u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 645u, 0x08B07470u, 0x08AFECFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 633u, 0x08AFECFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07470u) goto L_08B07470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07470: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B07480u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 646u, 0x08B07480u, 0x08AFE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 576u, 0x08AFE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07480u) goto L_08B07480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07480: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B0748Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 647u, 0x08B0748Cu, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0748Cu) goto L_08B0748C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0748C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08B07498u); @@ -8119,8 +9846,21 @@ L_08B0748C: L_08B07498: aot_gpr_31 = (0x08B074A0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 649u, 0x08B074A0u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B074A0u) goto L_08B074A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B074A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[24])) ? 0x00800000u : 0u); @@ -8139,8 +9879,21 @@ L_08B074B4: L_08B074BC: aot_gpr_31 = (0x08B074C4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 652u, 0x08B074C4u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B074C4u) goto L_08B074C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B074C4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[24])) ? 0x00800000u : 0u); @@ -8165,8 +9918,21 @@ L_08B074E4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B074F8u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 655u, 0x08B074F8u, 0x08AFED74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 638u, 0x08AFED74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B074F8u) goto L_08B074F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B074F8: aot_gpr_31 = (0x08B07500u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8175,8 +9941,21 @@ L_08B074F8: L_08B07500: aot_gpr_31 = (0x08B07508u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 657u, 0x08B07508u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07508u) goto L_08B07508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07508: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[24])) ? 0x00800000u : 0u); @@ -8197,14 +9976,40 @@ L_08B07520: L_08B07528: aot_gpr_31 = (0x08B07530u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 661u, 0x08B07530u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07530u) goto L_08B07530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07530: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B0753Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 662u, 0x08B0753Cu, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0753Cu) goto L_08B0753C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0753C: aot_fpr_12 = ctx.fpr[30] - ctx.fpr[0]; aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8215,26 +10020,78 @@ L_08B0753C: L_08B0754C: aot_gpr_31 = (0x08B07554u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 664u, 0x08B07554u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07554u) goto L_08B07554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07554: aot_gpr_31 = (0x08B0755Cu); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 665u, 0x08B0755Cu, 0x08AFECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 628u, 0x08AFECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0755Cu) goto L_08B0755C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0755C: aot_fpr_13 = ctx.fpr[30] - ctx.fpr[0]; aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0756Cu); { const float fs = aot_fpr_20; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 666u, 0x08B0756Cu, 0x08AFFDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 930u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 930u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 930u, 0x08AFFDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0756Cu) goto L_08B0756C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0756C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B07578u); aot_gpr_5 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 667u, 0x08B07578u, 0x08AFEF10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 656u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 656u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 656u, 0x08AFEF10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07578u) goto L_08B07578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07578: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8249,8 +10106,21 @@ L_08B07580: goto L_08B0758C; L_08B0758C: aot_gpr_31 = (0x08B07594u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 670u, 0x08B07594u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07594u) goto L_08B07594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07594: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); @@ -8268,15 +10138,41 @@ L_08B07594: L_08B075C0: aot_gpr_31 = (0x08B075C8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 672u, 0x08B075C8u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B075C8u) goto L_08B075C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B075C8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B075D8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 673u, 0x08B075D8u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B075D8u) goto L_08B075D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B075D8: aot_gpr_31 = (0x08B075E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8285,22 +10181,61 @@ L_08B075D8: L_08B075E0: aot_gpr_31 = (0x08B075E8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 675u, 0x08B075E8u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B075E8u) goto L_08B075E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B075E8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B075F8u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 676u, 0x08B075F8u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B075F8u) goto L_08B075F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B075F8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B07608u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 677u, 0x08B07608u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07608u) goto L_08B07608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07608: aot_gpr_31 = (0x08B07610u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8309,21 +10244,60 @@ L_08B07608: L_08B07610: aot_gpr_31 = (0x08B07618u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 679u, 0x08B07618u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07618u) goto L_08B07618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07618: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07624u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 680u, 0x08B07624u, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07624u) goto L_08B07624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07624: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B07634u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 681u, 0x08B07634u, 0x08AFEE90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 655u, 0x08AFEE90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07634u) goto L_08B07634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07634: aot_gpr_31 = (0x08B0763Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8332,19 +10306,58 @@ L_08B07634: L_08B0763C: aot_gpr_31 = (0x08B07644u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 683u, 0x08B07644u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07644u) goto L_08B07644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07644: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B07650u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 684u, 0x08B07650u, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07650u) goto L_08B07650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07650: aot_gpr_31 = (0x08B07658u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 685u, 0x08B07658u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07658u) goto L_08B07658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07658: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1632))); @@ -8354,8 +10367,21 @@ L_08B07658: { const float fs = aot_fpr_14; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08B07678u); { const float fs = aot_fpr_13; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 686u, 0x08B07678u, 0x08AFECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 628u, 0x08AFECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07678u) goto L_08B07678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07678: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(32))); @@ -8367,22 +10393,61 @@ L_08B07678: { const float fs = aot_fpr_12; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B076A0u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 687u, 0x08B076A0u, 0x08AFED74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 638u, 0x08AFED74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B076A0u) goto L_08B076A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B076A0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B076B0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 688u, 0x08B076B0u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B076B0u) goto L_08B076B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B076B0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B076C0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 689u, 0x08B076C0u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B076C0u) goto L_08B076C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B076C0: aot_gpr_31 = (0x08B076C8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8391,14 +10456,40 @@ L_08B076C0: L_08B076C8: aot_gpr_31 = (0x08B076D0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 691u, 0x08B076D0u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B076D0u) goto L_08B076D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B076D0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B076DCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 692u, 0x08B076DCu, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B076DCu) goto L_08B076DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B076DC: aot_gpr_5 = (15395u << 16u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -8406,38 +10497,116 @@ L_08B076DC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B076F4u); ctx.fpr[22] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 693u, 0x08B076F4u, 0x08AFED48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 636u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 636u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 636u, 0x08AFED48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B076F4u) goto L_08B076F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B076F4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B07700u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 694u, 0x08B07700u, 0x08AFECE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 631u, 0x08AFECE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07700u) goto L_08B07700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07700: aot_fpr_13 = aot_fpr_20 / ctx.fpr[0]; aot_gpr_31 = (0x08B0770Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 695u, 0x08B0770Cu, 0x08AFECC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 629u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 629u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 629u, 0x08AFECC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0770Cu) goto L_08B0770C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0770C: aot_gpr_4 = (49024u << 16u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B0771Cu); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 696u, 0x08B0771Cu, 0x08AFECE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 631u, 0x08AFECE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0771Cu) goto L_08B0771C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0771C: aot_gpr_31 = (0x08B07724u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 697u, 0x08B07724u, 0x08AFEC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 625u, 0x08AFEC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07724u) goto L_08B07724; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07724: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); aot_gpr_31 = (0x08B07730u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 698u, 0x08B07730u, 0x08AFEB40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 607u, 0x08AFEB40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07730u) goto L_08B07730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07730: { const bool branch_taken = aot_gpr_2 != ctx.gpr[22]; if (branch_taken) { @@ -8456,8 +10625,21 @@ L_08B07738: } L_08B0774C: aot_gpr_31 = (0x08B07754u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 701u, 0x08B07754u, 0x08AFEDB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 644u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 644u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 644u, 0x08AFEDB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07754u) goto L_08B07754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07754: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1944))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_2); @@ -8502,8 +10684,21 @@ L_08B077A4: L_08B077AC: aot_gpr_31 = (0x08B077B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 707u, 0x08B077B4u, 0x08AFEB40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 607u, 0x08AFEB40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B077B4u) goto L_08B077B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B077B4: { const bool branch_taken = aot_gpr_2 != ctx.gpr[22]; if (branch_taken) { @@ -8527,8 +10722,21 @@ L_08B077D0: goto L_08B077DC; L_08B077DC: aot_gpr_31 = (0x08B077E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 711u, 0x08B077E4u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B077E4u) goto L_08B077E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B077E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); @@ -8539,8 +10747,21 @@ L_08B077E4: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x08B07808u); { const float fs = aot_fpr_20; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 712u, 0x08B07808u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07808u) goto L_08B07808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07808: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); @@ -8555,15 +10776,41 @@ L_08B07808: L_08B07824: aot_gpr_31 = (0x08B0782Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 714u, 0x08B0782Cu, 0x08AFEDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 643u, 0x08AFEDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0782Cu) goto L_08B0782C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0782C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0783Cu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 715u, 0x08B0783Cu, 0x08B01D24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 489u, 0x08B01D24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0783Cu) goto L_08B0783C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0783C: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -8574,22 +10821,61 @@ L_08B0783C: } L_08B0784C: aot_gpr_31 = (0x08B07854u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 717u, 0x08B07854u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07854u) goto L_08B07854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07854: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(528), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B07864u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 718u, 0x08B07864u, 0x08AFEDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 643u, 0x08AFEDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07864u) goto L_08B07864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07864: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B07874u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 719u, 0x08B07874u, 0x08B01D24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 489u, 0x08B01D24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07874u) goto L_08B07874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07874: aot_gpr_4 = (16968u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8599,8 +10885,21 @@ L_08B07874: aot_fpr_12 = ctx.fpr[30] - aot_fpr_12; aot_gpr_31 = (0x08B07894u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(532), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 720u, 0x08B07894u, 0x08AFEA10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 589u, 0x08AFEA10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07894u) goto L_08B07894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07894: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); @@ -8615,27 +10914,79 @@ L_08B078A4: L_08B078AC: aot_gpr_31 = (0x08B078B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 723u, 0x08B078B4u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B078B4u) goto L_08B078B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B078B4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B078C4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 724u, 0x08B078C4u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B078C4u) goto L_08B078C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B078C4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B078D0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 725u, 0x08B078D0u, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B078D0u) goto L_08B078D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B078D0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B078DCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 726u, 0x08B078DCu, 0x08AFEE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 651u, 0x08AFEE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B078DCu) goto L_08B078DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B078DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8647,27 +10998,79 @@ L_08B078E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_gpr_31 = (0x08B078F0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(44))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 728u, 0x08B078F0u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B078F0u) goto L_08B078F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B078F0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B078FCu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 729u, 0x08B078FCu, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B078FCu) goto L_08B078FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B078FC: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.gpr[16] = (aot_gpr_29 + static_cast(624)); aot_gpr_31 = (0x08B0790Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 730u, 0x08B0790Cu, 0x08AFEE34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 650u, 0x08AFEE34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0790Cu) goto L_08B0790C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0790C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07918u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 731u, 0x08B07918u, 0x08AFED10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 634u, 0x08AFED10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07918u) goto L_08B07918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07918: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(624))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(628))); @@ -8681,8 +11084,21 @@ L_08B07918: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(628), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08B07948u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(632), std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 732u, 0x08B07948u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07948u) goto L_08B07948; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07948: aot_gpr_5 = (50716u << 16u); aot_gpr_5 = (aot_gpr_5 | 16374u); @@ -8702,14 +11118,40 @@ L_08B0795C: L_08B07964: aot_gpr_31 = (0x08B0796Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 735u, 0x08B0796Cu, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0796Cu) goto L_08B0796C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0796C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B07978u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 736u, 0x08B07978u, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07978u) goto L_08B07978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07978: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(640), std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[22]) || std::isnan(ctx.fpr[26])) && ctx.fpr[22] == ctx.fpr[26])) ? 0x00800000u : 0u); @@ -8734,14 +11176,40 @@ L_08B07994: L_08B0799C: aot_gpr_31 = (0x08B079A4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 739u, 0x08B079A4u, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B079A4u) goto L_08B079A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B079A4: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B079B0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 740u, 0x08B079B0u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B079B0u) goto L_08B079B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B079B0: aot_gpr_4 = (ctx.gpr[16] - aot_gpr_2); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8794,8 +11262,21 @@ L_08B07A0C: aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; aot_gpr_31 = (0x08B07A3Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(756), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 746u, 0x08B07A3Cu, 0x08AFE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 586u, 0x08AFE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07A3Cu) goto L_08B07A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07A3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -8809,39 +11290,117 @@ L_08B07A48: L_08B07A50: aot_gpr_31 = (0x08B07A58u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 749u, 0x08B07A58u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07A58u) goto L_08B07A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07A58: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B07A68u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 750u, 0x08B07A68u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07A68u) goto L_08B07A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07A68: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B07A78u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 751u, 0x08B07A78u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07A78u) goto L_08B07A78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07A78: aot_gpr_31 = (0x08B07A80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 752u, 0x08B07A80u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07A80u) goto L_08B07A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07A80: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B07A90u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 753u, 0x08B07A90u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07A90u) goto L_08B07A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07A90: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B07A9Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 754u, 0x08B07A9Cu, 0x08AFEE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 651u, 0x08AFEE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07A9Cu) goto L_08B07A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07A9C: aot_gpr_31 = (0x08B07AA4u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8850,8 +11409,21 @@ L_08B07A9C: L_08B07AA4: aot_gpr_31 = (0x08B07AACu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 756u, 0x08B07AACu, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07AACu) goto L_08B07AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07AAC: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1720))); @@ -8862,33 +11434,98 @@ L_08B07AAC: L_08B07ABC: aot_gpr_31 = (0x08B07AC4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 758u, 0x08B07AC4u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07AC4u) goto L_08B07AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07AC4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B07AD4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 759u, 0x08B07AD4u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07AD4u) goto L_08B07AD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07AD4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07AE4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 760u, 0x08B07AE4u, 0x08AFE998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 583u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 583u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 583u, 0x08AFE998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07AE4u) goto L_08B07AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07AE4: aot_gpr_31 = (0x08B07AECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 761u, 0x08B07AECu, 0x08AFED20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 635u, 0x08AFED20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07AECu) goto L_08B07AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07AEC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B07AF8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 762u, 0x08B07AF8u, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07AF8u) goto L_08B07AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07AF8: aot_gpr_4 = (15969u << 16u); aot_gpr_4 = (aot_gpr_4 | 18350u); @@ -8896,8 +11533,21 @@ L_08B07AF8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(640), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B07B10u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 763u, 0x08B07B10u, 0x08B01B3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 448u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 448u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 448u, 0x08B01B3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07B10u) goto L_08B07B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07B10: if (aot_gpr_2 != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1712))); @@ -8913,21 +11563,60 @@ L_08B07B18: aot_gpr_4 = (aot_gpr_29 + static_cast(768)); aot_gpr_31 = (0x08B07B38u); aot_gpr_5 = (aot_gpr_29 + static_cast(640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 765u, 0x08B07B38u, 0x08AFEA10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 589u, 0x08AFEA10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07B38u) goto L_08B07B38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07B38: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(764), std::bit_cast(ctx.fpr[0])); aot_gpr_5 = (aot_gpr_29 + static_cast(764)); aot_gpr_31 = (0x08B07B48u); aot_gpr_4 = (aot_gpr_29 + static_cast(760)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 766u, 0x08B07B48u, 0x08AFE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 586u, 0x08AFE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07B48u) goto L_08B07B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07B48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(640), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B07B54u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1640))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 767u, 0x08B07B54u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07B54u) goto L_08B07B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07B54: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1700))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(640))); @@ -8937,14 +11626,40 @@ L_08B07B54: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(1640), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B07B74u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1708))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 768u, 0x08B07B74u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07B74u) goto L_08B07B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07B74: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B07B80u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 769u, 0x08B07B80u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07B80u) goto L_08B07B80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07B80: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1640))); aot_gpr_4 = (16076u << 16u); @@ -8999,39 +11714,117 @@ L_08B07BD8: aot_fpr_20 = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x08B07C08u); aot_fpr_12 = std::bit_cast(aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 775u, 0x08B07C08u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C08u) goto L_08B07C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C08: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B07C18u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 776u, 0x08B07C18u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C18u) goto L_08B07C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C18: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B07C28u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 777u, 0x08B07C28u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C28u) goto L_08B07C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C28: aot_gpr_31 = (0x08B07C30u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 778u, 0x08B07C30u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C30u) goto L_08B07C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C30: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B07C40u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 779u, 0x08B07C40u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C40u) goto L_08B07C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C40: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B07C4Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 780u, 0x08B07C4Cu, 0x08AFEE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 651u, 0x08AFEE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C4Cu) goto L_08B07C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9048,14 +11841,40 @@ L_08B07C54: L_08B07C60: aot_gpr_31 = (0x08B07C68u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 783u, 0x08B07C68u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C68u) goto L_08B07C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C68: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B07C74u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 784u, 0x08B07C74u, 0x08AFED10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 634u, 0x08AFED10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C74u) goto L_08B07C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C74: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(617)))))); ctx.gpr[19] = (aot_gpr_29 + static_cast(800)); @@ -9072,37 +11891,115 @@ L_08B07C74: L_08B07C90: aot_gpr_31 = (0x08B07C98u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(864))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 786u, 0x08B07C98u, 0x08AFEC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 625u, 0x08AFEC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07C98u) goto L_08B07C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07C98: aot_gpr_4 = (16512u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B07CA8u); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 787u, 0x08B07CA8u, 0x08AFEBF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 623u, 0x08AFEBF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07CA8u) goto L_08B07CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07CA8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(868))); aot_gpr_31 = (0x08B07CB4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(864), std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 788u, 0x08B07CB4u, 0x08AFEC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 625u, 0x08AFEC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07CB4u) goto L_08B07CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07CB4: aot_gpr_31 = (0x08B07CBCu); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 789u, 0x08B07CBCu, 0x08AFEBF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 623u, 0x08AFEBF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07CBCu) goto L_08B07CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07CBC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(872))); aot_gpr_31 = (0x08B07CC8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(868), std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 790u, 0x08B07CC8u, 0x08AFEC60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 626u, 0x08AFEC60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07CC8u) goto L_08B07CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07CC8: aot_gpr_31 = (0x08B07CD0u); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 791u, 0x08B07CD0u, 0x08AFEC14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 624u, 0x08AFEC14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07CD0u) goto L_08B07CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07CD0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(872), std::bit_cast(ctx.fpr[0])); @@ -9114,8 +12011,21 @@ L_08B07CD0: L_08B07CD8: aot_gpr_31 = (0x08B07CE0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 793u, 0x08B07CE0u, 0x08AFEE2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 649u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 649u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 649u, 0x08AFEE2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07CE0u) goto L_08B07CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07CE0: aot_gpr_4 = (0u + static_cast(-983)); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -9142,8 +12052,21 @@ L_08B07CEC: aot_fpr_20 = aot_fpr_12 / aot_fpr_13; aot_gpr_31 = (0x08B07D30u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 795u, 0x08B07D30u, 0x08AFEC14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 624u, 0x08AFEC14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07D30u) goto L_08B07D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07D30: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B07D3Cu); @@ -9153,21 +12076,60 @@ L_08B07D30: L_08B07D3C: aot_gpr_31 = (0x08B07D44u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 797u, 0x08B07D44u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07D44u) goto L_08B07D44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07D44: ctx.gpr[21] = (aot_gpr_29 + static_cast(896)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B07D58u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 798u, 0x08B07D58u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07D58u) goto L_08B07D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07D58: aot_gpr_31 = (0x08B07D60u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 799u, 0x08B07D60u, 0x08AFEBF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 623u, 0x08AFEBF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07D60u) goto L_08B07D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07D60: ctx.fpr[30] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B07D6Cu); @@ -9177,30 +12139,82 @@ L_08B07D60: L_08B07D6C: aot_gpr_31 = (0x08B07D74u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 801u, 0x08B07D74u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07D74u) goto L_08B07D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07D74: ctx.gpr[16] = (aot_gpr_29 + static_cast(912)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07D88u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 802u, 0x08B07D88u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07D88u) goto L_08B07D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07D88: ctx.gpr[18] = (aot_gpr_29 + static_cast(880)); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B07D9Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 803u, 0x08B07D9Cu, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07D9Cu) goto L_08B07D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07D9C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B07DA8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 804u, 0x08B07DA8u, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07DA8u) goto L_08B07DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07DA8: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1640), aot_run_words); @@ -9214,8 +12228,21 @@ L_08B07DB8: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B07DC4u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 806u, 0x08B07DC4u, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07DC4u) goto L_08B07DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07DC4: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -9251,14 +12278,40 @@ L_08B07E00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1652), ctx.gpr[21]); aot_gpr_31 = (0x08B07E0Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 811u, 0x08B07E0Cu, 0x0898D2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 430u, 0x0898D2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07E0Cu) goto L_08B07E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07E0C: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B07E18u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 812u, 0x08B07E18u, 0x0898D140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 388u, 0x0898D140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07E18u) goto L_08B07E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07E18: aot_gpr_4 = (ctx.gpr[21] - aot_gpr_2); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9268,14 +12321,40 @@ L_08B07E18: ctx.fpr[22] = ctx.fpr[22] / aot_fpr_13; aot_gpr_31 = (0x08B07E38u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 813u, 0x08B07E38u, 0x0898C3A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 90u, 0x0898C3A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07E38u) goto L_08B07E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07E38: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_31 = (0x08B07E44u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 814u, 0x08B07E44u, 0x08AFECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 628u, 0x08AFECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07E44u) goto L_08B07E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07E44: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[30])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -9288,8 +12367,21 @@ L_08B07E44: L_08B07E54: aot_gpr_31 = (0x08B07E5Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 816u, 0x08B07E5Cu, 0x0898C3A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 90u, 0x0898C3A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07E5Cu) goto L_08B07E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07E5C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (15360u << 16u); @@ -9313,14 +12405,40 @@ L_08B07E74: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08B07EA4u); aot_fpr_20 = ctx.fpr[15] + ctx.fpr[16]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 819u, 0x08B07EA4u, 0x08AFECFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 633u, 0x08AFECFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07EA4u) goto L_08B07EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07EA4: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B07EB0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 820u, 0x08B07EB0u, 0x08AFEE34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 650u, 0x08AFEE34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07EB0u) goto L_08B07EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07EB0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (16128u << 16u); @@ -9329,8 +12447,21 @@ L_08B07EB0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07ECCu); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 821u, 0x08B07ECCu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07ECCu) goto L_08B07ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07ECC: aot_gpr_4 = (15363u << 16u); aot_gpr_4 = (aot_gpr_4 | 4719u); @@ -9338,33 +12469,98 @@ L_08B07ECC: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07EE4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 822u, 0x08B07EE4u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07EE4u) goto L_08B07EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07EE4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B07EF4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 823u, 0x08B07EF4u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07EF4u) goto L_08B07EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07EF4: aot_gpr_31 = (0x08B07EFCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 824u, 0x08B07EFCu, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07EFCu) goto L_08B07EFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07EFC: ctx.gpr[21] = (aot_gpr_29 + static_cast(784)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B07F10u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 825u, 0x08B07F10u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07F10u) goto L_08B07F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07F10: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B07F1Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 826u, 0x08B07F1Cu, 0x08AFEE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 651u, 0x08AFEE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07F1Cu) goto L_08B07F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07F1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(640))); @@ -9373,15 +12569,41 @@ L_08B07F1C: { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B07F38u); aot_fpr_20 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 827u, 0x08B07F38u, 0x08AFEDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 643u, 0x08AFEDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07F38u) goto L_08B07F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07F38: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08B07F48u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 828u, 0x08B07F48u, 0x08B01D24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 489u, 0x08B01D24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07F48u) goto L_08B07F48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07F48: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[24])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -9394,15 +12616,41 @@ L_08B07F48: L_08B07F58: aot_gpr_31 = (0x08B07F60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 830u, 0x08B07F60u, 0x08AFEDB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 643u, 0x08AFEDB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07F60u) goto L_08B07F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07F60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B07F70u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 831u, 0x08B07F70u, 0x08B01D24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 489u, 0x08B01D24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07F70u) goto L_08B07F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07F70: aot_gpr_4 = (16672u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -9417,39 +12665,117 @@ L_08B07F84: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B07F9Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 833u, 0x08B07F9Cu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07F9Cu) goto L_08B07F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07F9C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B07FACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 834u, 0x08B07FACu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07FACu) goto L_08B07FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07FAC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B07FBCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 835u, 0x08B07FBCu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07FBCu) goto L_08B07FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07FBC: aot_gpr_31 = (0x08B07FC4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 836u, 0x08B07FC4u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07FC4u) goto L_08B07FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07FC4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B07FD4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 837u, 0x08B07FD4u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07FD4u) goto L_08B07FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07FD4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B07FE0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 838u, 0x08B07FE0u, 0x08AFEE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 651u, 0x08AFEE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07FE0u) goto L_08B07FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07FE0: aot_gpr_31 = (0x08B07FE8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -9458,8 +12784,21 @@ L_08B07FE0: L_08B07FE8: aot_gpr_31 = (0x08B07FF0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0192->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0192_entry, 840u, 0x08B07FF0u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B07FF0u) goto L_08B07FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B07FF0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 <= ctx.fpr[24])) ? 0x00800000u : 0u); diff --git a/profiles/vcs/generated/generated_unit_0193.cpp b/profiles/vcs/generated/generated_unit_0193.cpp index cc8b70f..d423ee8 100644 --- a/profiles/vcs/generated/generated_unit_0193.cpp +++ b/profiles/vcs/generated/generated_unit_0193.cpp @@ -788,6 +788,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B08004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -810,8 +834,21 @@ L_08B08004: ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08B08024u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 2u, 0x08B08024u, 0x08AFECFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 633u, 0x08AFECFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08024u) goto L_08B08024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08024: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); ctx.gpr[18] = (aot_gpr_29 + static_cast(928)); @@ -819,8 +856,21 @@ L_08B08024: aot_gpr_5 = (ctx.gpr[28] + static_cast(10384)); aot_gpr_31 = (0x08B0803Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 3u, 0x08B0803Cu, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0803Cu) goto L_08B0803C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0803C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08048u); @@ -830,8 +880,21 @@ L_08B0803C: L_08B08048: aot_gpr_31 = (0x08B08050u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 5u, 0x08B08050u, 0x08AFED20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 635u, 0x08AFED20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08050u) goto L_08B08050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08050: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); ctx.gpr[19] = (aot_gpr_29 + static_cast(948)); @@ -846,35 +909,100 @@ L_08B08050: L_08B08070: aot_gpr_31 = (0x08B08078u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 7u, 0x08B08078u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08078u) goto L_08B08078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08078: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08084u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 8u, 0x08B08084u, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08084u) goto L_08B08084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08084: ctx.gpr[23] = (aot_gpr_29 + static_cast(952)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(952), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B08098u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 9u, 0x08B08098u, 0x08AFEA10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 589u, 0x08AFEA10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08098u) goto L_08B08098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08098: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[20] = (aot_gpr_29 + static_cast(944)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(944), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B080ACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 10u, 0x08B080ACu, 0x08AFE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 586u, 0x08AFE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B080ACu) goto L_08B080AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B080AC: aot_gpr_31 = (0x08B080B4u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 11u, 0x08B080B4u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B080B4u) goto L_08B080B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B080B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); @@ -889,15 +1017,41 @@ L_08B080B4: L_08B080D4: aot_gpr_31 = (0x08B080DCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 13u, 0x08B080DCu, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B080DCu) goto L_08B080DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B080DC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B080ECu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 14u, 0x08B080ECu, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B080ECu) goto L_08B080EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B080EC: aot_gpr_31 = (0x08B080F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -906,23 +1060,62 @@ L_08B080EC: L_08B080F4: aot_gpr_31 = (0x08B080FCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 16u, 0x08B080FCu, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B080FCu) goto L_08B080FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B080FC: ctx.gpr[22] = (aot_gpr_29 + static_cast(960)); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08110u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 17u, 0x08B08110u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08110u) goto L_08B08110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08110: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08120u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 18u, 0x08B08120u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08120u) goto L_08B08120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08120: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -936,33 +1129,98 @@ L_08B08120: L_08B0813C: aot_gpr_31 = (0x08B08144u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 20u, 0x08B08144u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08144u) goto L_08B08144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08144: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08150u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 21u, 0x08B08150u, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08150u) goto L_08B08150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08150: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(944), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B08160u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 22u, 0x08B08160u, 0x08AFEA10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 589u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 589u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 589u, 0x08AFEA10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08160u) goto L_08B08160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08160: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(952), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08170u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 23u, 0x08B08170u, 0x08AFE9E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 586u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 586u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 586u, 0x08AFE9E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08170u) goto L_08B08170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08170: aot_gpr_31 = (0x08B08178u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 24u, 0x08B08178u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08178u) goto L_08B08178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08178: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); @@ -977,15 +1235,41 @@ L_08B08178: L_08B08198: aot_gpr_31 = (0x08B081A0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 26u, 0x08B081A0u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B081A0u) goto L_08B081A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B081A0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B081B0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 27u, 0x08B081B0u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B081B0u) goto L_08B081B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B081B0: aot_gpr_31 = (0x08B081B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -994,23 +1278,62 @@ L_08B081B0: L_08B081B8: aot_gpr_31 = (0x08B081C0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 29u, 0x08B081C0u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B081C0u) goto L_08B081C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B081C0: ctx.gpr[16] = (aot_gpr_29 + static_cast(928)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B081D4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 30u, 0x08B081D4u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B081D4u) goto L_08B081D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B081D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B081E4u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 31u, 0x08B081E4u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B081E4u) goto L_08B081E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B081E4: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1652))); { const bool branch_taken = 0u == 0u; @@ -1028,8 +1351,21 @@ L_08B081F0: L_08B081F8: aot_gpr_31 = (0x08B08200u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 34u, 0x08B08200u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08200u) goto L_08B08200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08200: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.gpr[18] = (aot_gpr_29 + static_cast(992)); @@ -1057,8 +1393,21 @@ L_08B08224: goto L_08B08230; L_08B08230: aot_gpr_31 = (0x08B08238u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 38u, 0x08B08238u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08238u) goto L_08B08238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08238: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); @@ -1073,15 +1422,41 @@ L_08B08238: L_08B08258: aot_gpr_31 = (0x08B08260u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 40u, 0x08B08260u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08260u) goto L_08B08260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08260: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B08270u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 41u, 0x08B08270u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08270u) goto L_08B08270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08270: aot_gpr_31 = (0x08B08278u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1090,22 +1465,61 @@ L_08B08270: L_08B08278: aot_gpr_31 = (0x08B08280u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 43u, 0x08B08280u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08280u) goto L_08B08280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08280: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08290u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 44u, 0x08B08290u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08290u) goto L_08B08290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08290: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B082A0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 45u, 0x08B082A0u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B082A0u) goto L_08B082A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B082A0: aot_gpr_31 = (0x08B082A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1114,8 +1528,21 @@ L_08B082A0: L_08B082A8: aot_gpr_31 = (0x08B082B0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 47u, 0x08B082B0u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B082B0u) goto L_08B082B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B082B0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -1141,8 +1568,21 @@ L_08B082D0: goto L_08B082DC; L_08B082DC: aot_gpr_31 = (0x08B082E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 51u, 0x08B082E4u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B082E4u) goto L_08B082E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B082E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); @@ -1157,15 +1597,41 @@ L_08B082E4: L_08B08304: aot_gpr_31 = (0x08B0830Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 53u, 0x08B0830Cu, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0830Cu) goto L_08B0830C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0830C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B0831Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 54u, 0x08B0831Cu, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0831Cu) goto L_08B0831C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0831C: aot_gpr_31 = (0x08B08324u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1174,22 +1640,61 @@ L_08B0831C: L_08B08324: aot_gpr_31 = (0x08B0832Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 56u, 0x08B0832Cu, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0832Cu) goto L_08B0832C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0832C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B0833Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 57u, 0x08B0833Cu, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0833Cu) goto L_08B0833C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0833C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B0834Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 58u, 0x08B0834Cu, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0834Cu) goto L_08B0834C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0834C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-9979))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1218,8 +1723,21 @@ L_08B0836C: L_08B08374: aot_gpr_31 = (0x08B0837Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 62u, 0x08B0837Cu, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0837Cu) goto L_08B0837C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0837C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (15360u << 16u); @@ -1247,8 +1765,21 @@ L_08B083A4: L_08B083AC: aot_gpr_31 = (0x08B083B4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 66u, 0x08B083B4u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B083B4u) goto L_08B083B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B083B4: aot_gpr_4 = (0u - aot_gpr_2); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1276,15 +1807,41 @@ L_08B083DC: L_08B083E4: aot_gpr_31 = (0x08B083ECu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 70u, 0x08B083ECu, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B083ECu) goto L_08B083EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B083EC: ctx.fpr[28] = std::bit_cast(aot_gpr_2); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B083FCu); ctx.fpr[28] = static_cast(static_cast(std::bit_cast(ctx.fpr[28]))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 71u, 0x08B083FCu, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B083FCu) goto L_08B083FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B083FC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1300,14 +1857,40 @@ L_08B0840C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B08418u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 74u, 0x08B08418u, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08418u) goto L_08B08418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08418: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_31 = (0x08B08424u); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 75u, 0x08B08424u, 0x08AFECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 628u, 0x08AFECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08424u) goto L_08B08424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08424: ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] <= ctx.fpr[30])) ? 0x00800000u : 0u); { const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u); @@ -1320,8 +1903,21 @@ L_08B08434: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B08440u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 77u, 0x08B08440u, 0x0898C2B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 73u, 0x0898C2B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08440u) goto L_08B08440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08440: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (15360u << 16u); @@ -1355,8 +1951,21 @@ L_08B0846C: L_08B08474: aot_gpr_31 = (0x08B0847Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 81u, 0x08B0847Cu, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0847Cu) goto L_08B0847C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0847C: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (15360u << 16u); @@ -1383,8 +1992,21 @@ L_08B084A0: L_08B084A8: aot_gpr_31 = (0x08B084B0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 85u, 0x08B084B0u, 0x0898C6D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 148u, 0x0898C6D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B084B0u) goto L_08B084B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B084B0: aot_fpr_22 = std::bit_cast(aot_gpr_2); aot_fpr_22 = static_cast(static_cast(std::bit_cast(aot_fpr_22))); @@ -1408,8 +2030,21 @@ L_08B084C8: L_08B084D0: aot_gpr_31 = (0x08B084D8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 89u, 0x08B084D8u, 0x0898C924u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 200u, 0x0898C924u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B084D8u) goto L_08B084D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B084D8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1424,8 +2059,21 @@ L_08B084E0: L_08B084E8: aot_gpr_31 = (0x08B084F0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 92u, 0x08B084F0u, 0x0898F36Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 1086u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 1086u, 0x0898F36Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B084F0u) goto L_08B084F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B084F0: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_gpr_4 = (15360u << 16u); @@ -1448,15 +2096,41 @@ L_08B08514: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_31 = (0x08B0852Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 95u, 0x08B0852Cu, 0x08AFEC38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 625u, 0x08AFEC38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0852Cu) goto L_08B0852C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0852C: aot_gpr_4 = (16000u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B0853Cu); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 96u, 0x08B0853Cu, 0x08AFEBF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 623u, 0x08AFEBF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0853Cu) goto L_08B0853C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0853C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); @@ -1478,41 +2152,119 @@ L_08B08558: L_08B08570: aot_gpr_31 = (0x08B08578u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 99u, 0x08B08578u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08578u) goto L_08B08578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08578: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08588u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 100u, 0x08B08588u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08588u) goto L_08B08588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08588: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(28))); aot_gpr_31 = (0x08B0859Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 101u, 0x08B0859Cu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0859Cu) goto L_08B0859C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0859C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B085ACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 102u, 0x08B085ACu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B085ACu) goto L_08B085AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B085AC: aot_gpr_31 = (0x08B085B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 103u, 0x08B085B4u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B085B4u) goto L_08B085B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B085B4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B085C4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 104u, 0x08B085C4u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B085C4u) goto L_08B085C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B085C4: ctx.gpr[22] = (aot_gpr_29 + static_cast(608)); aot_gpr_31 = (0x08B085D0u); @@ -1522,22 +2274,61 @@ L_08B085C4: L_08B085D0: aot_gpr_31 = (0x08B085D8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 106u, 0x08B085D8u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B085D8u) goto L_08B085D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B085D8: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B085E8u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 107u, 0x08B085E8u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B085E8u) goto L_08B085E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B085E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B085F8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 108u, 0x08B085F8u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B085F8u) goto L_08B085F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B085F8: aot_gpr_31 = (0x08B08600u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1546,41 +2337,119 @@ L_08B085F8: L_08B08600: aot_gpr_31 = (0x08B08608u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 110u, 0x08B08608u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08608u) goto L_08B08608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08608: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B08618u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 111u, 0x08B08618u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08618u) goto L_08B08618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08618: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(20))); aot_gpr_31 = (0x08B0862Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 112u, 0x08B0862Cu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0862Cu) goto L_08B0862C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0862C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B0863Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 113u, 0x08B0863Cu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0863Cu) goto L_08B0863C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0863C: aot_gpr_31 = (0x08B08644u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 114u, 0x08B08644u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08644u) goto L_08B08644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08644: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B08654u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 115u, 0x08B08654u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08654u) goto L_08B08654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08654: aot_gpr_31 = (0x08B0865Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1589,22 +2458,61 @@ L_08B08654: L_08B0865C: aot_gpr_31 = (0x08B08664u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 117u, 0x08B08664u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08664u) goto L_08B08664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08664: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08674u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 118u, 0x08B08674u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08674u) goto L_08B08674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08674: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B08684u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 119u, 0x08B08684u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08684u) goto L_08B08684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08684: aot_gpr_31 = (0x08B0868Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1613,14 +2521,40 @@ L_08B08684: L_08B0868C: aot_gpr_31 = (0x08B08694u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 121u, 0x08B08694u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08694u) goto L_08B08694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08694: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B086A0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 122u, 0x08B086A0u, 0x08AFE950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 580u, 0x08AFE950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B086A0u) goto L_08B086A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B086A0: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0]) ^ 0x80000000u); ctx.gpr[23] = (aot_gpr_29 + static_cast(656)); @@ -1631,19 +2565,58 @@ L_08B086A0: L_08B086B0: aot_gpr_31 = (0x08B086B8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 124u, 0x08B086B8u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B086B8u) goto L_08B086B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B086B8: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B086C4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 125u, 0x08B086C4u, 0x08AFED10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 634u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 634u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 634u, 0x08AFED10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B086C4u) goto L_08B086C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B086C4: aot_gpr_31 = (0x08B086CCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 126u, 0x08B086CCu, 0x08AFECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 628u, 0x08AFECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B086CCu) goto L_08B086CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B086CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -1651,32 +2624,97 @@ L_08B086CC: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B086E4u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 127u, 0x08B086E4u, 0x08AFED74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 638u, 0x08AFED74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B086E4u) goto L_08B086E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B086E4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B086F4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 128u, 0x08B086F4u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B086F4u) goto L_08B086F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B086F4: aot_gpr_31 = (0x08B086FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 129u, 0x08B086FCu, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B086FCu) goto L_08B086FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B086FC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B0870Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 130u, 0x08B0870Cu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0870Cu) goto L_08B0870C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0870C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B08718u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 131u, 0x08B08718u, 0x08AFEE3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 651u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 651u, 0x08AFEE3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08718u) goto L_08B08718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08718: aot_gpr_31 = (0x08B08720u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1685,18 +2723,57 @@ L_08B08718: L_08B08720: aot_gpr_31 = (0x08B08728u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 133u, 0x08B08728u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08728u) goto L_08B08728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08728: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B08734u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 134u, 0x08B08734u, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08734u) goto L_08B08734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08734: aot_gpr_31 = (0x08B0873Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 135u, 0x08B0873Cu, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0873Cu) goto L_08B0873C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0873C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -1704,8 +2781,21 @@ L_08B0873C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_31 = (0x08B08754u); { const float fs = aot_fpr_13; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 136u, 0x08B08754u, 0x08AFECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 628u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 628u, 0x08AFECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08754u) goto L_08B08754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08754: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); @@ -1717,8 +2807,21 @@ L_08B08754: { const float fs = aot_fpr_12; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B0877Cu); { const float fs = aot_fpr_12; const float ft = aot_fpr_22; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 137u, 0x08B0877Cu, 0x08AFED74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 638u, 0x08AFED74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0877Cu) goto L_08B0877C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0877C: aot_gpr_31 = (0x08B08784u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1727,28 +2830,80 @@ L_08B0877C: L_08B08784: aot_gpr_31 = (0x08B0878Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 139u, 0x08B0878Cu, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0878Cu) goto L_08B0878C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0878C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B08798u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 140u, 0x08B08798u, 0x08AFE96Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 581u, 0x08AFE96Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08798u) goto L_08B08798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08798: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B087A8u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 141u, 0x08B087A8u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B087A8u) goto L_08B087A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B087A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B087B8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 142u, 0x08B087B8u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B087B8u) goto L_08B087B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B087B8: aot_gpr_31 = (0x08B087C0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1757,41 +2912,119 @@ L_08B087B8: L_08B087C0: aot_gpr_31 = (0x08B087C8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 144u, 0x08B087C8u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B087C8u) goto L_08B087C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B087C8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08B087D8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 145u, 0x08B087D8u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B087D8u) goto L_08B087D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B087D8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8))); aot_gpr_31 = (0x08B087ECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 146u, 0x08B087ECu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B087ECu) goto L_08B087EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B087EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B087FCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 147u, 0x08B087FCu, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B087FCu) goto L_08B087FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B087FC: aot_gpr_31 = (0x08B08804u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 148u, 0x08B08804u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08804u) goto L_08B08804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08804: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B08814u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 149u, 0x08B08814u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08814u) goto L_08B08814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08814: aot_gpr_31 = (0x08B0881Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1800,70 +3033,200 @@ L_08B08814: L_08B0881C: aot_gpr_31 = (0x08B08824u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 151u, 0x08B08824u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08824u) goto L_08B08824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08824: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08834u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 152u, 0x08B08834u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08834u) goto L_08B08834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08834: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B08844u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 153u, 0x08B08844u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08844u) goto L_08B08844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08844: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B08858u); ctx.fpr[14] = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 154u, 0x08B08858u, 0x08AFECFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 633u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 633u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 633u, 0x08AFECFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08858u) goto L_08B08858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08858: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_gpr_31 = (0x08B08864u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(48))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 155u, 0x08B08864u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08864u) goto L_08B08864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08864: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08870u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 156u, 0x08B08870u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08870u) goto L_08B08870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08870: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08884u); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 157u, 0x08B08884u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08884u) goto L_08B08884; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08884: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B08890u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 158u, 0x08B08890u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08890u) goto L_08B08890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08890: aot_fpr_22 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(356))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B088A4u); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(56))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 159u, 0x08B088A4u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B088A4u) goto L_08B088A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B088A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08B088B0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 160u, 0x08B088B0u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B088B0u) goto L_08B088B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B088B0: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1877,8 +3240,21 @@ L_08B088C0: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B088D4u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 162u, 0x08B088D4u, 0x08AFE908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 578u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 578u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 578u, 0x08AFE908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B088D4u) goto L_08B088D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B088D4: aot_gpr_4 = (0u | 3u); { const bool branch_taken = ctx.gpr[30] == aot_gpr_4; @@ -1907,13 +3283,39 @@ L_08B088EC: L_08B088F4: aot_gpr_31 = (0x08B088FCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 166u, 0x08B088FCu, 0x08AFEE34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 650u, 0x08AFEE34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B088FCu) goto L_08B088FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B088FC: aot_gpr_31 = (0x08B08904u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 167u, 0x08B08904u, 0x08AFED48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 636u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 636u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 636u, 0x08AFED48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08904u) goto L_08B08904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08904: aot_gpr_4 = (16384u << 16u); ctx.fpr[28] = std::bit_cast(aot_gpr_4); @@ -1935,13 +3337,39 @@ L_08B08914: L_08B08920: aot_gpr_31 = (0x08B08928u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 170u, 0x08B08928u, 0x08AFEE34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 650u, 0x08AFEE34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08928u) goto L_08B08928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08928: aot_gpr_31 = (0x08B08930u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 171u, 0x08B08930u, 0x08AFED48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 636u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 636u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 636u, 0x08AFED48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08930u) goto L_08B08930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08930: aot_gpr_4 = (16576u << 16u); ctx.fpr[28] = std::bit_cast(aot_gpr_4); @@ -1971,13 +3399,39 @@ L_08B0894C: L_08B08954: aot_gpr_31 = (0x08B0895Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 175u, 0x08B0895Cu, 0x08AFEE34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 650u, 0x08AFEE34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0895Cu) goto L_08B0895C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0895C: aot_gpr_31 = (0x08B08964u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 176u, 0x08B08964u, 0x08AFED48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 636u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 636u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 636u, 0x08AFED48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08964u) goto L_08B08964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08964: ctx.fpr[28] = ctx.fpr[0] + ctx.fpr[30]; goto L_08B08968; @@ -2001,14 +3455,40 @@ L_08B08980: aot_fpr_20 = aot_fpr_20 / aot_fpr_12; aot_gpr_31 = (0x08B089A4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 179u, 0x08B089A4u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B089A4u) goto L_08B089A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B089A4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B089B0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 180u, 0x08B089B0u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B089B0u) goto L_08B089B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B089B0: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } @@ -2025,8 +3505,21 @@ L_08B089C8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B089D4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 182u, 0x08B089D4u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B089D4u) goto L_08B089D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B089D4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -2052,14 +3545,40 @@ L_08B089F8: aot_fpr_20 = aot_fpr_22 / aot_fpr_12; aot_gpr_31 = (0x08B08A1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 185u, 0x08B08A1Cu, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08A1Cu) goto L_08B08A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08A1C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08A28u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 186u, 0x08B08A28u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08A28u) goto L_08B08A28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08A28: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } @@ -2076,8 +3595,21 @@ L_08B08A40: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B08A4Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 188u, 0x08B08A4Cu, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08A4Cu) goto L_08B08A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08A4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -2103,14 +3635,40 @@ L_08B08A70: aot_fpr_20 = ctx.fpr[26] / aot_fpr_12; aot_gpr_31 = (0x08B08A94u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 191u, 0x08B08A94u, 0x08AFEE24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 648u, 0x08AFEE24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08A94u) goto L_08B08A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08A94: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08AA0u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 192u, 0x08B08AA0u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08AA0u) goto L_08B08AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08AA0: ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); { const float fs = ctx.fpr[14]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } @@ -2127,8 +3685,21 @@ L_08B08AB8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08B08AC4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 194u, 0x08B08AC4u, 0x08AFEC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 627u, 0x08AFEC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08AC4u) goto L_08B08AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08AC4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -2145,20 +3716,59 @@ L_08B08ADC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08AECu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 197u, 0x08B08AECu, 0x08AFE8E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 577u, 0x08AFE8E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08AECu) goto L_08B08AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08AEC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08AF8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 198u, 0x08B08AF8u, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08AF8u) goto L_08B08AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08AF8: aot_gpr_4 = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08B08B04u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 199u, 0x08B08B04u, 0x08AFED74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 638u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 638u, 0x08AFED74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08B04u) goto L_08B08B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08B04: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[24])) && aot_fpr_12 == ctx.fpr[24])) ? 0x00800000u : 0u); @@ -2182,35 +3792,100 @@ L_08B08B18: L_08B08B38: aot_gpr_31 = (0x08B08B40u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 202u, 0x08B08B40u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08B40u) goto L_08B08B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08B40: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08B50u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 203u, 0x08B08B50u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08B50u) goto L_08B08B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08B50: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B08B60u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 204u, 0x08B08B60u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08B60u) goto L_08B08B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08B60: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08B70u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 205u, 0x08B08B70u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08B70u) goto L_08B08B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08B70: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08B7Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 206u, 0x08B08B7Cu, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08B7Cu) goto L_08B08B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08B7C: ctx.gpr[18] = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08B08B88u); @@ -2220,28 +3895,80 @@ L_08B08B7C: L_08B08B88: aot_gpr_31 = (0x08B08B90u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 208u, 0x08B08B90u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08B90u) goto L_08B08B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08B90: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08BA0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 209u, 0x08B08BA0u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08BA0u) goto L_08B08BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08BA0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08BACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 210u, 0x08B08BACu, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08BACu) goto L_08B08BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08BAC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08BBCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 211u, 0x08B08BBCu, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08BBCu) goto L_08B08BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08BBC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[24])) && aot_fpr_12 == ctx.fpr[24])) ? 0x00800000u : 0u); @@ -2265,35 +3992,100 @@ L_08B08BD0: L_08B08BF0: aot_gpr_31 = (0x08B08BF8u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 214u, 0x08B08BF8u, 0x08AFEDA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 641u, 0x08AFEDA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08BF8u) goto L_08B08BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08BF8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08C08u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 215u, 0x08B08C08u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08C08u) goto L_08B08C08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08C08: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B08C18u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 216u, 0x08B08C18u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08C18u) goto L_08B08C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08C18: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08C28u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 217u, 0x08B08C28u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08C28u) goto L_08B08C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08C28: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08C34u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 218u, 0x08B08C34u, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08C34u) goto L_08B08C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08C34: ctx.gpr[18] = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08B08C40u); @@ -2303,28 +4095,80 @@ L_08B08C34: L_08B08C40: aot_gpr_31 = (0x08B08C48u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 220u, 0x08B08C48u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08C48u) goto L_08B08C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08C48: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08C58u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 221u, 0x08B08C58u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08C58u) goto L_08B08C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08C58: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08C64u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 222u, 0x08B08C64u, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08C64u) goto L_08B08C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08C64: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08C74u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 223u, 0x08B08C74u, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08C74u) goto L_08B08C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08C74: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(aot_fpr_12) || std::isnan(ctx.fpr[24])) && aot_fpr_12 == ctx.fpr[24])) ? 0x00800000u : 0u); @@ -2348,35 +4192,100 @@ L_08B08C88: L_08B08CA8: aot_gpr_31 = (0x08B08CB0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 226u, 0x08B08CB0u, 0x08AFED90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 639u, 0x08AFED90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08CB0u) goto L_08B08CB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08CB0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08CC0u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 227u, 0x08B08CC0u, 0x08AFE9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 584u, 0x08AFE9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08CC0u) goto L_08B08CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08CC0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B08CD0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 228u, 0x08B08CD0u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08CD0u) goto L_08B08CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08CD0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(212))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08CE0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 229u, 0x08B08CE0u, 0x08AFE9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 585u, 0x08AFE9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08CE0u) goto L_08B08CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08CE0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08CECu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 230u, 0x08B08CECu, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08CECu) goto L_08B08CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08CEC: ctx.gpr[18] = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08B08CF8u); @@ -2386,28 +4295,80 @@ L_08B08CEC: L_08B08CF8: aot_gpr_31 = (0x08B08D00u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 232u, 0x08B08D00u, 0x08AFED98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 640u, 0x08AFED98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08D00u) goto L_08B08D00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08D00: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B08D10u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 233u, 0x08B08D10u, 0x08AFE980u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 582u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 582u, 0x08AFE980u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08D10u) goto L_08B08D10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08D10: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B08D1Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 234u, 0x08B08D1Cu, 0x08AFED64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 637u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 637u, 0x08AFED64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08D1Cu) goto L_08B08D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08D1C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08D2Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 235u, 0x08B08D2Cu, 0x08AFEE60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 653u, 0x08AFEE60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08D2Cu) goto L_08B08D2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08D2C: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1660), aot_run_words); @@ -2430,8 +4391,8 @@ L_08B08D2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1728)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B08D74: @@ -2489,8 +4450,8 @@ L_08B08E24: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31072))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B08E3C: @@ -2543,15 +4504,41 @@ L_08B08E90: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B08EA0u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 244u, 0x08B08EA0u, 0x088B9CB0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 388u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 388u, 0x088B9CB0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08EA0u) goto L_08B08EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08EA0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B08EB0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 245u, 0x08B08EB0u, 0x08A19410u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 123u, 0x08A19410u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08EB0u) goto L_08B08EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08EB0: aot_gpr_4 = (2236u << 16u); ctx.gpr[16] = (aot_gpr_4 + static_cast(12560)); @@ -2561,8 +4548,21 @@ L_08B08EB0: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B08ED0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 246u, 0x08B08ED0u, 0x08A1943Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 124u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 124u, 0x08A1943Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B08ED0u) goto L_08B08ED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B08ED0: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(56), ctx.gpr[16]); aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(52), static_cast(ctx.gpr[22])); @@ -2759,8 +4759,21 @@ L_08B09030: } L_08B09040: aot_gpr_31 = (0x08B09048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 261u, 0x08B09048u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09048u) goto L_08B09048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09048: aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(ctx.gpr[22])); goto L_08B0904C; @@ -3041,8 +5054,8 @@ L_08B0926C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B092BC: @@ -3082,8 +5095,8 @@ L_08B0932C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31104))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B09348: @@ -3351,8 +5364,21 @@ L_08B09434: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B0948Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 308u, 0x08B0948Cu, 0x08AFE928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 579u, 0x08AFE928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0948Cu) goto L_08B0948C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0948C: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3437,8 +5463,21 @@ L_08B09514: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(80))); aot_gpr_31 = (0x08B09520u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 316u, 0x08B09520u, 0x089039E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 664u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 664u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 664u, 0x089039E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09520u) goto L_08B09520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09520: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (aot_gpr_2 | 0u); @@ -3577,8 +5616,21 @@ L_08B09630: aot_gpr_5 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08B0963Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 328u, 0x08B0963Cu, 0x08906DC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 618u, 0x08906DC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0963Cu) goto L_08B0963C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0963C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(2120))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3609,8 +5661,21 @@ L_08B09648: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(112), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B09698u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(116), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 330u, 0x08B09698u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09698u) goto L_08B09698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09698: ctx.gpr[10] = (17530u << 16u); ctx.gpr[8] = (ctx.gpr[20] & 255u); @@ -3621,8 +5686,21 @@ L_08B09698: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B096BCu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 331u, 0x08B096BCu, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B096BCu) goto L_08B096BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B096BC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-1040))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3660,8 +5738,21 @@ L_08B096C8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B0970Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 333u, 0x08B0970Cu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0970Cu) goto L_08B0970C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0970C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3689,8 +5780,21 @@ L_08B09724: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08B0974Cu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 336u, 0x08B0974Cu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0974Cu) goto L_08B0974C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0974C: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); ctx.gpr[21] = (ctx.gpr[21] & 255u); @@ -3724,8 +5828,21 @@ L_08B09760: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08B097B8u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 338u, 0x08B097B8u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B097B8u) goto L_08B097B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B097B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), std::bit_cast(aot_fpr_22)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(180), std::bit_cast(aot_fpr_22)); @@ -3773,8 +5890,21 @@ L_08B097B8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08B09824u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 339u, 0x08B09824u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09824u) goto L_08B09824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09824: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3992,8 +6122,21 @@ L_08B09958: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08B0998Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 347u, 0x08B0998Cu, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0998Cu) goto L_08B0998C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0998C: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4138,8 +6281,21 @@ L_08B099D8: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08B09A48u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 349u, 0x08B09A48u, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09A48u) goto L_08B09A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09A48: aot_gpr_4 = (ctx.gpr[23] << 5u); aot_gpr_5 = (2246u << 16u); @@ -4181,8 +6337,21 @@ L_08B09A48: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08B09ABCu); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0062. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 350u, 0x08B09ABCu, 0x088FF060u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0062_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09ABCu) goto L_08B09ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09ABC: aot_gpr_4 = (ctx.gpr[30] + static_cast(1)); ctx.gpr[30] = (aot_gpr_4 << 16u); @@ -4224,8 +6393,21 @@ L_08B09B08: aot_gpr_6 = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x08B09B24u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 354u, 0x08B09B24u, 0x08A67C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 749u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 749u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 749u, 0x08A67C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09B24u) goto L_08B09B24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09B24: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(212))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1744))); @@ -4288,8 +6470,21 @@ L_08B09B24: } aot_gpr_31 = (0x08B09B88u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 355u, 0x08B09B88u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09B88u) goto L_08B09B88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09B88: aot_gpr_4 = (15897u << 16u); aot_gpr_4 = (aot_gpr_4 | 39322u); @@ -4434,8 +6629,21 @@ L_08B09CB8: ctx.gpr[7] = (0u | 10u); aot_gpr_31 = (0x08B09CE4u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 368u, 0x08B09CE4u, 0x08A062C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 551u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 551u, 0x08A062C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B09CE4u) goto L_08B09CE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B09CE4: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(224), std::bit_cast(aot_fpr_22)); goto L_08B09CE8; @@ -4466,8 +6674,8 @@ L_08B09CF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(704)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B09D30: @@ -4782,8 +6990,21 @@ L_08B0A024: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B0A058u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 391u, 0x08B0A058u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A058u) goto L_08B0A058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A058: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4812,8 +7033,21 @@ L_08B0A074: aot_gpr_4 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08B0A090u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 395u, 0x08B0A090u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A090u) goto L_08B0A090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A090: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4860,8 +7094,21 @@ L_08B0A0CC: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08B0A0ECu); aot_gpr_6 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 401u, 0x08B0A0ECu, 0x088DDFD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 325u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 325u, 0x088DDFD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A0ECu) goto L_08B0A0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A0EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(160), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); @@ -4889,8 +7136,21 @@ L_08B0A110: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B0A13Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 403u, 0x08B0A13Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A13Cu) goto L_08B0A13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A13C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4957,8 +7217,21 @@ L_08B0A1B8: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_13)); aot_gpr_31 = (0x08B0A1FCu); ctx.gpr[10] = (std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 409u, 0x08B0A1FCu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A1FCu) goto L_08B0A1FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A1FC: ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); goto L_08B0A200; @@ -4984,8 +7257,8 @@ L_08B0A218: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31136))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0A230: @@ -5082,8 +7355,21 @@ L_08B0A2CC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B0A2F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 422u, 0x08B0A2F8u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A2F8u) goto L_08B0A2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A2F8: ctx.gpr[18] = (ctx.gpr[18] + static_cast(-1)); ctx.gpr[18] = (ctx.gpr[18] & 255u); @@ -5120,8 +7406,8 @@ L_08B0A318: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0A360: @@ -5242,8 +7528,21 @@ L_08B0A42C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B0A438u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 440u, 0x08B0A438u, 0x089474A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 659u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 659u, 0x089474A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A438u) goto L_08B0A438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A438: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5372,8 +7671,21 @@ L_08B0A4FC: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08B0A528u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 455u, 0x08B0A528u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A528u) goto L_08B0A528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A528: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(565))); ctx.gpr[20] = (0u | 0u); @@ -5437,8 +7749,21 @@ L_08B0A584: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08B0A594u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 464u, 0x08B0A594u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A594u) goto L_08B0A594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A594: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5591,14 +7916,40 @@ L_08B0A6A4: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B0A6D4u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 481u, 0x08B0A6D4u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A6D4u) goto L_08B0A6D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A6D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0A6E0u); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 482u, 0x08B0A6E0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A6E0u) goto L_08B0A6E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A6E0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(565))); ctx.gpr[20] = (0u | 0u); @@ -5676,8 +8027,21 @@ L_08B0A760: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B0A770u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 493u, 0x08B0A770u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A770u) goto L_08B0A770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A770: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5697,8 +8061,21 @@ L_08B0A794: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B0A7A0u); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 496u, 0x08B0A7A0u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0A7A0u) goto L_08B0A7A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0A7A0: ctx.gpr[19] = (ctx.gpr[19] + static_cast(200)); goto L_08B0A7A4; @@ -5728,8 +8105,8 @@ L_08B0A7B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0A7E8: @@ -6491,8 +8868,21 @@ L_08B0ADB0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B0ADF0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 566u, 0x08B0ADF0u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0ADF0u) goto L_08B0ADF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0ADF0: aot_gpr_4 = (0u | 1u); { const bool branch_taken = 0u == 0u; @@ -6551,8 +8941,21 @@ L_08B0AE08: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B0AE54u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 569u, 0x08B0AE54u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0AE54u) goto L_08B0AE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0AE54: aot_gpr_4 = (0u | 1u); goto L_08B0AE58; @@ -6896,8 +9299,21 @@ L_08B0AF2C: } aot_gpr_31 = (0x08B0AFE4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 581u, 0x08B0AFE4u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0AFE4u) goto L_08B0AFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0AFE4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -6913,8 +9329,21 @@ L_08B0AFE4: } aot_gpr_31 = (0x08B0B004u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 582u, 0x08B0B004u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0B004u) goto L_08B0B004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0B004: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(496), aot_run_words); @@ -6937,8 +9366,8 @@ L_08B0B004: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(560)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0B04C: @@ -7756,8 +10185,21 @@ L_08B0B56C: } aot_gpr_31 = (0x08B0B674u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 651u, 0x08B0B674u, 0x08A66CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0B674u) goto L_08B0B674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0B674: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7955,8 +10397,21 @@ L_08B0B6D4: } aot_gpr_31 = (0x08B0B768u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 654u, 0x08B0B768u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0B768u) goto L_08B0B768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0B768: aot_gpr_4 = (std::bit_cast(ctx.fpr[24])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -8004,8 +10459,21 @@ L_08B0B768: } aot_gpr_31 = (0x08B0B7B0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 655u, 0x08B0B7B0u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0B7B0u) goto L_08B0B7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0B7B0: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(412), aot_run_words); @@ -8027,8 +10495,8 @@ L_08B0B7B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(480)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0B7F4: @@ -8079,8 +10547,21 @@ L_08B0B894: aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08B0B8A0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(564), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 659u, 0x08B0B8A0u, 0x08A1C6C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 63u, 0x08A1C6C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0B8A0u) goto L_08B0B8A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0B8A0: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8091,8 +10572,21 @@ L_08B0B8A0: L_08B0B8A8: aot_gpr_31 = (0x08B0B8B0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 661u, 0x08B0B8B0u, 0x08AD0598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 51u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 51u, 0x08AD0598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0B8B0u) goto L_08B0B8B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0B8B0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8236,8 +10730,21 @@ L_08B0B9A4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B0B9B0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 667u, 0x08B0B9B0u, 0x08A931D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 464u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 464u, 0x08A931D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0B9B0u) goto L_08B0B9B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0B9B0: aot_gpr_4 = (ctx.gpr[18] + static_cast(112)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8566,8 +11073,21 @@ L_08B0BB68: } aot_gpr_31 = (0x08B0BB90u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 676u, 0x08B0BB90u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BB90u) goto L_08B0BB90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BB90: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(120))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -8585,8 +11105,21 @@ L_08B0BB90: L_08B0BBB4: aot_gpr_31 = (0x08B0BBBCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 678u, 0x08B0BBBCu, 0x0894624Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 400u, 0x0894624Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BBBCu) goto L_08B0BBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BBBC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1952))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[30]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -8664,8 +11197,21 @@ L_08B0BC44: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B0BC9Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 682u, 0x08B0BC9Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BC9Cu) goto L_08B0BC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BC9C: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -8707,8 +11253,21 @@ L_08B0BCCC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B0BD24u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 685u, 0x08B0BD24u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BD24u) goto L_08B0BD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BD24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(372))); { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); @@ -8754,8 +11313,21 @@ L_08B0BD24: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B0BD50u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 686u, 0x08B0BD50u, 0x08A0B7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 579u, 0x08A0B7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BD50u) goto L_08B0BD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BD50: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(580), aot_run_words); @@ -8780,8 +11352,21 @@ L_08B0BD64: } aot_gpr_31 = (0x08B0BD84u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), std::bit_cast(ctx.fpr[15])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 689u, 0x08B0BD84u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BD84u) goto L_08B0BD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BD84: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -8796,8 +11381,21 @@ L_08B0BD84: L_08B0BDA0: aot_gpr_31 = (0x08B0BDA8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 691u, 0x08B0BDA8u, 0x0894624Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 400u, 0x0894624Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BDA8u) goto L_08B0BDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BDA8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(1952))); { const float fs = aot_fpr_12; const float ft = ctx.fpr[30]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -8873,8 +11471,21 @@ L_08B0BE24: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B0BE7Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 695u, 0x08B0BE7Cu, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BE7Cu) goto L_08B0BE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BE7C: aot_gpr_4 = (16076u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -8916,8 +11527,21 @@ L_08B0BEAC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B0BF04u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_2); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 698u, 0x08B0BF04u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BF04u) goto L_08B0BF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BF04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(368))); { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); @@ -8964,8 +11588,21 @@ L_08B0BF04: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B0BF34u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 699u, 0x08B0BF34u, 0x08A0B7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 579u, 0x08A0B7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BF34u) goto L_08B0BF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BF34: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(596), aot_run_words); @@ -8988,8 +11625,8 @@ L_08B0BF34: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(672)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0BF7C: @@ -8998,8 +11635,21 @@ L_08B0BF7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B0BF90u); aot_gpr_4 = (aot_gpr_4 + static_cast(13328)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 701u, 0x08B0BF90u, 0x089903B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 67u, 0x089903B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BF90u) goto L_08B0BF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BF90: aot_gpr_31 = (0x08B0BF98u); aot_gpr_4 = (ctx.gpr[28] + static_cast(1956)); @@ -9009,8 +11659,8 @@ L_08B0BF98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0BFA4: @@ -9034,8 +11684,21 @@ L_08B0BFC0: L_08B0BFC8: aot_gpr_31 = (0x08B0BFD0u); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0193->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0193_entry, 706u, 0x08B0BFD0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0BFD0u) goto L_08B0BFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0BFD0: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1968), aot_gpr_2); aot_gpr_4 = (aot_gpr_2 | 0u); diff --git a/profiles/vcs/generated/generated_unit_0194.cpp b/profiles/vcs/generated/generated_unit_0194.cpp index de49849..ed9a701 100644 --- a/profiles/vcs/generated/generated_unit_0194.cpp +++ b/profiles/vcs/generated/generated_unit_0194.cpp @@ -1008,6 +1008,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B0C000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1041,15 +1065,41 @@ L_08B0C01C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); aot_gpr_31 = (0x08B0C02Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 5u, 0x08B0C02Cu, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C02Cu) goto L_08B0C02C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C02C: aot_gpr_5 = (ctx.gpr[17] << 24u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08B0C03Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 6u, 0x08B0C03Cu, 0x08AFD948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 292u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 292u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 292u, 0x08AFD948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C03Cu) goto L_08B0C03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C03C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); { const bool branch_taken = 0u == 0u; @@ -1068,8 +1118,8 @@ L_08B0C048: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C05C: @@ -1149,8 +1199,8 @@ L_08B0C128: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C138: @@ -1193,8 +1243,8 @@ L_08B0C190: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C1B0: @@ -1235,8 +1285,21 @@ L_08B0C220: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0C22Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 28u, 0x08B0C22Cu, 0x08974134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 15u, 0x08974134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C22Cu) goto L_08B0C22C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C22C: aot_gpr_31 = (0x08B0C234u); goto L_08B0C5FC; @@ -1244,8 +1307,21 @@ L_08B0C234: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0C240u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 30u, 0x08B0C240u, 0x08974144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 17u, 0x08974144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C240u) goto L_08B0C240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C240: aot_gpr_31 = (0x08B0C248u); goto L_08B0C638; @@ -1253,8 +1329,21 @@ L_08B0C248: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0C254u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 32u, 0x08B0C254u, 0x08974154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 19u, 0x08974154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C254u) goto L_08B0C254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C254: aot_gpr_31 = (0x08B0C25Cu); goto L_08B0C7D0; @@ -1267,8 +1356,21 @@ L_08B0C264: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B0C274u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 35u, 0x08B0C274u, 0x089748D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 130u, 0x089748D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C274u) goto L_08B0C274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C274: aot_gpr_31 = (0x08B0C27Cu); goto L_08B0C838; @@ -1281,8 +1383,21 @@ L_08B0C284: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B0C294u); ctx.gpr[6] = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 38u, 0x08B0C294u, 0x08974914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 133u, 0x08974914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C294u) goto L_08B0C294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C294: aot_gpr_31 = (0x08B0C29Cu); goto L_08B0C87C; @@ -1290,8 +1405,21 @@ L_08B0C29C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0C2A8u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 40u, 0x08B0C2A8u, 0x08974950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 136u, 0x08974950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C2A8u) goto L_08B0C2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C2A8: aot_gpr_31 = (0x08B0C2B0u); goto L_08B0C4A0; @@ -1413,8 +1541,21 @@ L_08B0C3BC: ctx.gpr[10] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B0C3E0u); ctx.gpr[11] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 54u, 0x08B0C3E0u, 0x08974960u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 138u, 0x08974960u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C3E0u) goto L_08B0C3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C3E0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); goto L_08B0C3E4; @@ -1428,8 +1569,21 @@ L_08B0C3E4: ctx.gpr[10] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B0C408u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 56u, 0x08B0C408u, 0x08974960u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 138u, 0x08974960u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C408u) goto L_08B0C408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C408: aot_gpr_4 = (0u | 255u); aot_gpr_5 = (0u | 0u); @@ -1471,30 +1625,30 @@ L_08B0C45C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C48C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1968))); jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C498: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1972), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C4A0: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1972))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C4A8: @@ -1507,15 +1661,15 @@ L_08B0C4A8: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10442), static_cast(ctx.gpr[7])); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10443), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C4CC: jump_target = aot_gpr_31; aot_gpr_2 = (ctx.gpr[28] + static_cast(10440)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C4D4: @@ -1535,29 +1689,29 @@ L_08B0C4D4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10456), aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10460), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C508: jump_target = aot_gpr_31; aot_gpr_2 = (ctx.gpr[28] + static_cast(10448)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C510: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(1976), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C518: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(1976))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C520: @@ -1573,21 +1727,34 @@ L_08B0C530: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08B0C548u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1980))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 70u, 0x08B0C548u, 0x08974134u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 15u, 0x08974134u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C548u) goto L_08B0C548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C548: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C554: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1980))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C55C: @@ -1598,14 +1765,27 @@ L_08B0C55C: L_08B0C56C: aot_gpr_31 = (0x08B0C574u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 74u, 0x08B0C574u, 0x08AFD780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 263u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 263u, 0x08AFD780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C574u) goto L_08B0C574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C574: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C580: @@ -1630,8 +1810,8 @@ L_08B0C59C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C5C8: @@ -1647,21 +1827,34 @@ L_08B0C5D8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08B0C5F0u); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(1984))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 80u, 0x08B0C5F0u, 0x08974144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 17u, 0x08974144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C5F0u) goto L_08B0C5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C5F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C5FC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(1984))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C604: @@ -1677,49 +1870,62 @@ L_08B0C614: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08B0C62Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1988))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 84u, 0x08B0C62Cu, 0x08974154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 19u, 0x08974154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C62Cu) goto L_08B0C62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C62C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C638: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1988))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C640: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1992), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C648: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1992))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C650: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(1996), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C658: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(1996))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C660: @@ -1746,8 +1952,21 @@ L_08B0C694: ctx.gpr[8] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0C6BCu); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 92u, 0x08B0C6BCu, 0x089743F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 65u, 0x089743F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C6BCu) goto L_08B0C6BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C6BC: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1760,8 +1979,8 @@ L_08B0C6BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C6DC: @@ -1786,8 +2005,21 @@ L_08B0C708: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0C72Cu); ctx.gpr[8] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 95u, 0x08B0C72Cu, 0x089746F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 110u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 110u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 110u, 0x089746F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C72Cu) goto L_08B0C72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C72C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1799,8 +2031,8 @@ L_08B0C72C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C748: @@ -1814,14 +2046,27 @@ L_08B0C758: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B0C76Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 98u, 0x08B0C76Cu, 0x0897385Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 742u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 742u, 0x0897385Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C76Cu) goto L_08B0C76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C76C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C778: @@ -1846,28 +2091,41 @@ L_08B0C7A8: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(2000))); aot_gpr_31 = (0x08B0C7C4u); ctx.gpr[6] = (ctx.gpr[28] + static_cast(10464)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 101u, 0x08B0C7C4u, 0x089748D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 130u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 130u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 130u, 0x089748D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C7C4u) goto L_08B0C7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C7C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C7D0: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(2000))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C7D8: jump_target = aot_gpr_31; aot_gpr_2 = (ctx.gpr[28] + static_cast(10464)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C7E0: @@ -1892,28 +2150,41 @@ L_08B0C810: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(2001))); aot_gpr_31 = (0x08B0C82Cu); ctx.gpr[6] = (ctx.gpr[28] + static_cast(10468)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 106u, 0x08B0C82Cu, 0x08974914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 133u, 0x08974914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C82Cu) goto L_08B0C82C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C82C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C838: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(2001))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C840: jump_target = aot_gpr_31; aot_gpr_2 = (ctx.gpr[28] + static_cast(10468)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C848: @@ -1929,21 +2200,34 @@ L_08B0C858: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08B0C870u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(2004))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 111u, 0x08B0C870u, 0x08974950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 136u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 136u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 136u, 0x08974950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C870u) goto L_08B0C870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C870: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C87C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(2004))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C884: @@ -1984,8 +2268,8 @@ L_08B0C8C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C90C: @@ -2003,8 +2287,21 @@ L_08B0C934: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B0C940u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 117u, 0x08B0C940u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C940u) goto L_08B0C940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C940: aot_gpr_16 = (aot_gpr_2 | 0u); if (aot_gpr_16 == 0u) { @@ -2027,8 +2324,21 @@ L_08B0C95C: L_08B0C960: aot_gpr_31 = (0x08B0C968u); aot_gpr_5 = (ctx.gpr[18] + static_cast(11)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 122u, 0x08B0C968u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C968u) goto L_08B0C968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C968: aot_gpr_5 = (aot_mem.aot_direct_load_word_right(ctx.gpr[18] + static_cast(3), aot_gpr_5)); aot_gpr_5 = (aot_mem.aot_direct_load_word_left(ctx.gpr[18] + static_cast(6), aot_gpr_5)); @@ -2039,8 +2349,21 @@ L_08B0C968: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B0C98Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 123u, 0x08B0C98Cu, 0x08AB9068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 216u, 0x08AB9068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C98Cu) goto L_08B0C98C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C98C: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2051,8 +2374,8 @@ L_08B0C98C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0C9A4: @@ -2062,8 +2385,21 @@ L_08B0C9A4: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B0C9CCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 125u, 0x08B0C9CCu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C9CCu) goto L_08B0C9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C9CC: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); @@ -2071,23 +2407,62 @@ L_08B0C9CC: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08B0C9E4u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 126u, 0x08B0C9E4u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C9E4u) goto L_08B0C9E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C9E4: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0C9F4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 127u, 0x08B0C9F4u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0C9F4u) goto L_08B0C9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0C9F4: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[20] = (std::bit_cast(aot_fpr_12)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0CA08u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 128u, 0x08B0CA08u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CA08u) goto L_08B0CA08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CA08: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_16 = (std::bit_cast(aot_fpr_13)); @@ -2109,16 +2484,42 @@ L_08B0CA18: aot_gpr_4 = (aot_gpr_29 + static_cast(27)); aot_gpr_31 = (0x08B0CA4Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 130u, 0x08B0CA4Cu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CA4Cu) goto L_08B0CA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CA4C: aot_gpr_16 = (2237u << 16u); aot_gpr_16 = (aot_gpr_16 + static_cast(-28736)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0CA60u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 131u, 0x08B0CA60u, 0x08ADC0B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 8u, 0x08ADC0B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CA60u) goto L_08B0CA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CA60: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2139,8 +2540,21 @@ L_08B0CA80: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0CA90u); ctx.gpr[6] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 134u, 0x08B0CA90u, 0x08ADC9FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 186u, 0x08ADC9FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CA90u) goto L_08B0CA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CA90: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -2154,8 +2568,8 @@ L_08B0CA90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0CAB4: @@ -2164,8 +2578,21 @@ L_08B0CAB4: ctx.gpr[6] = (ctx.gpr[28] + static_cast(2148)); aot_gpr_31 = (0x08B0CAC8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 136u, 0x08B0CAC8u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CAC8u) goto L_08B0CAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CAC8: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2190,8 +2617,21 @@ L_08B0CAE4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_31 = (0x08B0CAF8u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 139u, 0x08B0CAF8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CAF8u) goto L_08B0CAF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CAF8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2206,8 +2646,8 @@ L_08B0CB04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0CB10: @@ -2218,21 +2658,60 @@ L_08B0CB10: ctx.gpr[17] = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(8))); aot_gpr_31 = (0x08B0CB30u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 143u, 0x08B0CB30u, 0x088079D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 555u, 0x088079D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CB30u) goto L_08B0CB30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CB30: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(0), ctx.gpr[17]); aot_gpr_5 = (ctx.gpr[28] + static_cast(2148)); aot_gpr_31 = (0x08B0CB40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 144u, 0x08B0CB40u, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CB40u) goto L_08B0CB40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CB40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0CB4Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 145u, 0x08B0CB4Cu, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CB4Cu) goto L_08B0CB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CB4C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2242,8 +2721,8 @@ L_08B0CB4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0CB60: @@ -2276,8 +2755,21 @@ L_08B0CBB8: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B0CBC8u); aot_gpr_4 = (0u | 112u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 150u, 0x08B0CBC8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CBC8u) goto L_08B0CBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CBC8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2301,8 +2793,21 @@ L_08B0CBE0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B0CBFCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 153u, 0x08B0CBFCu, 0x08965650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 170u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 170u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 170u, 0x08965650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CBFCu) goto L_08B0CBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CBFC: ctx.gpr[18] = (ctx.gpr[17] | 0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2326,8 +2831,8 @@ L_08B0CC0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0CC38: @@ -2363,8 +2868,21 @@ L_08B0CC74: L_08B0CC80: aot_gpr_31 = (0x08B0CC88u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 161u, 0x08B0CC88u, 0x089659ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 203u, 0x089659ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CC88u) goto L_08B0CC88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CC88: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08B0CC94u); @@ -2374,8 +2892,21 @@ L_08B0CC88: L_08B0CC94: aot_gpr_31 = (0x08B0CC9Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 163u, 0x08B0CC9Cu, 0x089659ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 203u, 0x089659ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CC9Cu) goto L_08B0CC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CC9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_31 = (0x08B0CCA8u); @@ -2402,15 +2933,41 @@ L_08B0CCB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0CCC4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 167u, 0x08B0CCC4u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CCC4u) goto L_08B0CCC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CCC4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0CCD4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 168u, 0x08B0CCD4u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CCD4u) goto L_08B0CCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CCD4: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2424,8 +2981,21 @@ L_08B0CCE4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B0CCF8u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 170u, 0x08B0CCF8u, 0x08965864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 196u, 0x08965864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CCF8u) goto L_08B0CCF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CCF8: aot_gpr_2 = (0u | 0u); goto L_08B0CCFC; @@ -2441,8 +3011,8 @@ L_08B0CCFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0CD1C: @@ -2480,8 +3050,21 @@ L_08B0CD60: aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08B0CD70u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 177u, 0x08B0CD70u, 0x0889D50Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 277u, 0x0889D50Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CD70u) goto L_08B0CD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CD70: aot_gpr_16 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B0CD7Cu); @@ -2499,8 +3082,21 @@ L_08B0CD8C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0CD98u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 180u, 0x08B0CD98u, 0x089657B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 187u, 0x089657B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CD98u) goto L_08B0CD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CD98: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (ctx.gpr[28] + static_cast(5824)); @@ -2521,14 +3117,40 @@ L_08B0CDA8: L_08B0CDB0: aot_gpr_31 = (0x08B0CDB8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 183u, 0x08B0CDB8u, 0x08965818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 192u, 0x08965818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CDB8u) goto L_08B0CDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CDB8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_31 = (0x08B0CDC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 184u, 0x08B0CDC4u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CDC4u) goto L_08B0CDC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CDC4: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -2564,8 +3186,8 @@ L_08B0CDE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0CDFC: @@ -2633,8 +3255,21 @@ L_08B0CE74: L_08B0CE7C: aot_gpr_31 = (0x08B0CE84u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 198u, 0x08B0CE84u, 0x08965AACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 211u, 0x08965AACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CE84u) goto L_08B0CE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CE84: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08B0CE90u); @@ -2644,8 +3279,21 @@ L_08B0CE84: L_08B0CE90: aot_gpr_31 = (0x08B0CE98u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 200u, 0x08B0CE98u, 0x08965AACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 211u, 0x08965AACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CE98u) goto L_08B0CE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CE98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_31 = (0x08B0CEA4u); @@ -2676,8 +3324,21 @@ L_08B0CEBC: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B0CEC8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 205u, 0x08B0CEC8u, 0x08965A38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 207u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 207u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 207u, 0x08965A38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CEC8u) goto L_08B0CEC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CEC8: aot_gpr_2 = (0u | 0u); goto L_08B0CECC; @@ -2692,8 +3353,8 @@ L_08B0CECC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0CEE8: @@ -2744,8 +3405,21 @@ L_08B0CF34: L_08B0CF3C: aot_gpr_31 = (0x08B0CF44u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 214u, 0x08B0CF44u, 0x089E84ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 57u, 0x089E84ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CF44u) goto L_08B0CF44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CF44: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 24u); @@ -2800,8 +3474,21 @@ L_08B0CFA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0CFB4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 221u, 0x08B0CFB4u, 0x08931D08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 355u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 355u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 355u, 0x08931D08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CFB4u) goto L_08B0CFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CFB4: aot_gpr_4 = (aot_gpr_2 << 8u); aot_gpr_4 = (aot_gpr_4 + static_cast(255)); @@ -2815,8 +3502,21 @@ L_08B0CFB4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0CFE4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 222u, 0x08B0CFE4u, 0x089E8474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 53u, 0x089E8474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CFE4u) goto L_08B0CFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CFE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2828,8 +3528,21 @@ L_08B0CFEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0CFF8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 224u, 0x08B0CFF8u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0CFF8u) goto L_08B0CFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0CFF8: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2837,8 +3550,21 @@ L_08B0CFF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D010u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 225u, 0x08B0D010u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D010u) goto L_08B0D010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D010: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); @@ -2846,8 +3572,21 @@ L_08B0D010: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D028u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 226u, 0x08B0D028u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D028u) goto L_08B0D028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D028: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_12)); @@ -2855,8 +3594,21 @@ L_08B0D028: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D040u); aot_gpr_5 = (0u | 5u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 227u, 0x08B0D040u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D040u) goto L_08B0D040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D040: aot_fpr_13 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_4 = (std::bit_cast(aot_fpr_13)); @@ -2864,8 +3616,21 @@ L_08B0D040: aot_gpr_5 = (aot_gpr_29 + static_cast(4)); aot_gpr_31 = (0x08B0D058u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 228u, 0x08B0D058u, 0x089E8474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 53u, 0x089E8474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D058u) goto L_08B0D058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D058: aot_gpr_2 = (0u | 0u); goto L_08B0D05C; @@ -2879,8 +3644,8 @@ L_08B0D05C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D074: @@ -2916,8 +3681,21 @@ L_08B0D0AC: L_08B0D0B8: aot_gpr_31 = (0x08B0D0C0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 235u, 0x08B0D0C0u, 0x08965C98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 235u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 235u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 235u, 0x08965C98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D0C0u) goto L_08B0D0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D0C0: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2945,15 +3723,41 @@ L_08B0D0E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D0ECu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 239u, 0x08B0D0ECu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D0ECu) goto L_08B0D0EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D0EC: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B0D0FCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 240u, 0x08B0D0FCu, 0x08965C40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 231u, 0x08965C40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D0FCu) goto L_08B0D0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D0FC: aot_gpr_2 = (0u | 0u); goto L_08B0D100; @@ -2967,8 +3771,8 @@ L_08B0D100: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D118: @@ -3004,8 +3808,21 @@ L_08B0D150: L_08B0D15C: aot_gpr_31 = (0x08B0D164u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 247u, 0x08B0D164u, 0x08965B50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 219u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 219u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 219u, 0x08965B50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D164u) goto L_08B0D164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D164: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3033,15 +3850,41 @@ L_08B0D184: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D190u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 251u, 0x08B0D190u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D190u) goto L_08B0D190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D190: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B0D1A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 252u, 0x08B0D1A0u, 0x08965AF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 215u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 215u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 215u, 0x08965AF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D1A0u) goto L_08B0D1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D1A0: aot_gpr_2 = (0u | 0u); goto L_08B0D1A4; @@ -3055,8 +3898,8 @@ L_08B0D1A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D1BC: @@ -3092,8 +3935,21 @@ L_08B0D1F4: L_08B0D200: aot_gpr_31 = (0x08B0D208u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 259u, 0x08B0D208u, 0x08965BF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 227u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 227u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 227u, 0x08965BF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D208u) goto L_08B0D208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D208: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3121,15 +3977,41 @@ L_08B0D228: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D234u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 263u, 0x08B0D234u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D234u) goto L_08B0D234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D234: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B0D244u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 264u, 0x08B0D244u, 0x08965B9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 223u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 223u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 223u, 0x08965B9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D244u) goto L_08B0D244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D244: aot_gpr_2 = (0u | 0u); goto L_08B0D248; @@ -3143,8 +4025,8 @@ L_08B0D248: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D260: @@ -3154,8 +4036,21 @@ L_08B0D260: ctx.gpr[6] = (ctx.gpr[28] + static_cast(2148)); aot_gpr_31 = (0x08B0D27Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 267u, 0x08B0D27Cu, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D27Cu) goto L_08B0D27C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D27C: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3180,8 +4075,21 @@ L_08B0D298: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_31 = (0x08B0D2ACu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 270u, 0x08B0D2ACu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D2ACu) goto L_08B0D2AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D2AC: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3215,8 +4123,8 @@ L_08B0D2D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D2F0: @@ -3239,15 +4147,28 @@ L_08B0D310: aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x08B0D31Cu); ctx.gpr[6] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 278u, 0x08B0D31Cu, 0x089BA604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 468u, 0x089BA604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D31Cu) goto L_08B0D31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D31C: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D32C: @@ -3283,8 +4204,21 @@ L_08B0D364: L_08B0D370: aot_gpr_31 = (0x08B0D378u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 284u, 0x08B0D378u, 0x089E8590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 65u, 0x089E8590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D378u) goto L_08B0D378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D378: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D384u); @@ -3311,14 +4245,40 @@ L_08B0D394: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D3A0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 288u, 0x08B0D3A0u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D3A0u) goto L_08B0D3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D3A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0D3ACu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 289u, 0x08B0D3ACu, 0x089E8538u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 61u, 0x089E8538u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D3ACu) goto L_08B0D3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D3AC: aot_gpr_2 = (0u | 0u); goto L_08B0D3B0; @@ -3332,8 +4292,8 @@ L_08B0D3B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D3C8: @@ -3369,8 +4329,21 @@ L_08B0D400: L_08B0D40C: aot_gpr_31 = (0x08B0D414u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 296u, 0x08B0D414u, 0x08965D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 243u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 243u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 243u, 0x08965D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D414u) goto L_08B0D414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D414: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -3398,15 +4371,41 @@ L_08B0D434: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0D440u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 300u, 0x08B0D440u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D440u) goto L_08B0D440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D440: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B0D450u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 301u, 0x08B0D450u, 0x08965CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 239u, 0x08965CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D450u) goto L_08B0D450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D450: aot_gpr_2 = (0u | 0u); goto L_08B0D454; @@ -3420,8 +4419,8 @@ L_08B0D454: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D46C: @@ -3434,8 +4433,21 @@ L_08B0D46C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08B0D498u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 304u, 0x08B0D498u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D498u) goto L_08B0D498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D498: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3475,8 +4487,21 @@ L_08B0D4E0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B0D4F0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 309u, 0x08B0D4F0u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D4F0u) goto L_08B0D4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D4F0: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3521,8 +4546,21 @@ L_08B0D530: aot_gpr_5 = (aot_gpr_5 + static_cast(31272)); aot_gpr_31 = (0x08B0D53Cu); ctx.gpr[6] = (ctx.gpr[28] + static_cast(2148)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 316u, 0x08B0D53Cu, 0x08885284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 270u, 0x08885284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D53Cu) goto L_08B0D53C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D53C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3544,8 +4582,21 @@ L_08B0D558: aot_gpr_5 = (aot_gpr_5 + static_cast(31368)); aot_gpr_31 = (0x08B0D564u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 320u, 0x08B0D564u, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0D564u) goto L_08B0D564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0D564: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -3556,8 +4607,8 @@ L_08B0D564: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D57C: @@ -3571,8 +4622,8 @@ L_08B0D57C: aot_gpr_5 = (aot_gpr_5 + ctx.gpr[6]); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D5A4: @@ -3713,8 +4764,8 @@ L_08B0D66C: goto L_08B0D670; L_08B0D670: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D678: @@ -3727,8 +4778,8 @@ L_08B0D678: } L_08B0D680: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D688: @@ -3776,8 +4827,8 @@ L_08B0D6D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D6E8: @@ -3826,8 +4877,8 @@ L_08B0D738: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D74C: @@ -3876,8 +4927,8 @@ L_08B0D79C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D7B0: @@ -3926,8 +4977,8 @@ L_08B0D800: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D814: @@ -3963,8 +5014,8 @@ L_08B0D850: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D85C: @@ -3980,8 +5031,8 @@ L_08B0D85C: aot_gpr_5 = (ctx.gpr[7] | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D88C: @@ -3991,8 +5042,8 @@ L_08B0D88C: aot_gpr_2 = (aot_gpr_4 >> (aot_gpr_5 & 31u)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 & 3u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D8A4: @@ -4008,8 +5059,8 @@ L_08B0D8A4: aot_gpr_5 = (ctx.gpr[7] | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D8D4: @@ -4019,24 +5070,24 @@ L_08B0D8D4: aot_gpr_2 = (aot_gpr_4 >> (aot_gpr_5 & 31u)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 & 15u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D8EC: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(6), static_cast(ctx.gpr[6])); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D8F8: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(6))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D904: @@ -4072,16 +5123,16 @@ L_08B0D92C: goto L_08B0D938; L_08B0D938: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D940: aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(10))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D94C: @@ -4106,15 +5157,15 @@ L_08B0D964: goto L_08B0D968; L_08B0D968: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D970: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(5))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0D978: @@ -4341,8 +5392,8 @@ L_08B0DAF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DB1C: @@ -4360,8 +5411,8 @@ L_08B0DB1C: aot_gpr_5 = (ctx.gpr[7] | aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(20), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DB54: @@ -4373,8 +5424,8 @@ L_08B0DB54: aot_gpr_2 = (aot_gpr_4 >> (aot_gpr_5 & 31u)); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_2 & 3u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DB74: @@ -4456,8 +5507,8 @@ L_08B0DC20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DC34: @@ -4465,8 +5516,8 @@ L_08B0DC34: ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; ctx.fpr[0] = static_cast(static_cast(std::bit_cast(ctx.fpr[0]))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DC44: @@ -4495,8 +5546,8 @@ L_08B0DC60: goto L_08B0DC74; L_08B0DC74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DC7C: @@ -4552,8 +5603,21 @@ L_08B0DCCC: } L_08B0DCDC: aot_gpr_31 = (0x08B0DCE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 443u, 0x08B0DCE4u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DCE4u) goto L_08B0DCE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DCE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4564,8 +5628,21 @@ L_08B0DCE4: L_08B0DCEC: aot_gpr_31 = (0x08B0DCF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 445u, 0x08B0DCF4u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DCF4u) goto L_08B0DCF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DCF4: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_4)); @@ -4576,8 +5653,21 @@ L_08B0DCF4: aot_gpr_4 = (aot_gpr_5 & aot_gpr_4); aot_gpr_31 = (0x08B0DD18u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(618), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 446u, 0x08B0DD18u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DD18u) goto L_08B0DD18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DD18: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4594,16 +5684,16 @@ L_08B0DD28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DD38: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(504), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DD44: @@ -4675,8 +5765,21 @@ L_08B0DDE0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0DDF0u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 457u, 0x08B0DDF0u, 0x089DD29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 187u, 0x089DD29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DDF0u) goto L_08B0DDF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DDF0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[17] + static_cast(48)); @@ -4716,8 +5819,21 @@ L_08B0DDF8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0DE44u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 459u, 0x08B0DE44u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DE44u) goto L_08B0DE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DE44: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4760,8 +5876,8 @@ L_08B0DE64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DEA0: @@ -4798,8 +5914,8 @@ L_08B0DEBC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0DF10: @@ -4900,8 +6016,21 @@ L_08B0DF8C: L_08B0DF94: aot_gpr_31 = (0x08B0DF9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 478u, 0x08B0DF9Cu, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DF9Cu) goto L_08B0DF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DF9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4912,8 +6041,21 @@ L_08B0DF9C: L_08B0DFA4: aot_gpr_31 = (0x08B0DFACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 480u, 0x08B0DFACu, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DFACu) goto L_08B0DFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DFAC: aot_gpr_31 = (0x08B0DFB4u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DFB4u) goto L_08B0DFB4; @@ -4931,8 +6073,21 @@ L_08B0DFC4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0DFD0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 483u, 0x08B0DFD0u, 0x08B007DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 120u, 0x08B007DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DFD0u) goto L_08B0DFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DFD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4943,26 +6098,78 @@ L_08B0DFD0: L_08B0DFD8: aot_gpr_31 = (0x08B0DFE0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 485u, 0x08B0DFE0u, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DFE0u) goto L_08B0DFE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DFE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0DFECu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 486u, 0x08B0DFECu, 0x08B007DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 120u, 0x08B007DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DFECu) goto L_08B0DFEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DFEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0DFF8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 487u, 0x08B0DFF8u, 0x08B007DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 120u, 0x08B007DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0DFF8u) goto L_08B0DFF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0DFF8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0E004u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 488u, 0x08B0E004u, 0x08B007DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 120u, 0x08B007DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E004u) goto L_08B0E004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E004: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4973,8 +6180,21 @@ L_08B0E004: L_08B0E00C: aot_gpr_31 = (0x08B0E014u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 490u, 0x08B0E014u, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E014u) goto L_08B0E014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E014: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(464))); ctx.gpr[17] = (32u << 16u); @@ -4983,8 +6203,21 @@ L_08B0E014: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0E030u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 491u, 0x08B0E030u, 0x08B007DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 120u, 0x08B007DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E030u) goto L_08B0E030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E030: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(464))); aot_gpr_4 = (aot_gpr_4 | ctx.gpr[17]); @@ -5032,8 +6265,8 @@ L_08B0E078: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E08C: @@ -5042,21 +6275,47 @@ L_08B0E08C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B0E0A0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 497u, 0x08B0E0A0u, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E0A0u) goto L_08B0E0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E0A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0E0ACu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 498u, 0x08B0E0ACu, 0x08B007DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 120u, 0x08B007DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E0ACu) goto L_08B0E0AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E0AC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E0BC: @@ -5065,21 +6324,47 @@ L_08B0E0BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B0E0D0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 500u, 0x08B0E0D0u, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E0D0u) goto L_08B0E0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E0D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0E0DCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 501u, 0x08B0E0DCu, 0x08B007DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 120u, 0x08B007DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E0DCu) goto L_08B0E0DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E0DC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E0EC: @@ -5099,8 +6384,21 @@ L_08B0E11C: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B0E128u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 504u, 0x08B0E128u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E128u) goto L_08B0E128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E128: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (0u | 246u); @@ -5169,8 +6467,21 @@ L_08B0E170: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x08B0E17Cu); aot_gpr_5 = (0u | 140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 513u, 0x08B0E17Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E17Cu) goto L_08B0E17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E17C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5226,8 +6537,21 @@ L_08B0E1D8: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B0E1E8u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 521u, 0x08B0E1E8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E1E8u) goto L_08B0E1E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E1E8: aot_gpr_31 = (0x08B0E1F0u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E1F0u) goto L_08B0E1F0; @@ -5276,8 +6600,8 @@ L_08B0E244: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E268: @@ -5308,8 +6632,21 @@ L_08B0E2A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x08B0E2B4u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 530u, 0x08B0E2B4u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E2B4u) goto L_08B0E2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E2B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (0u | 246u); @@ -5378,8 +6715,21 @@ L_08B0E2FC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); aot_gpr_31 = (0x08B0E308u); aot_gpr_5 = (0u | 140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 539u, 0x08B0E308u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E308u) goto L_08B0E308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E308: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5434,8 +6784,21 @@ L_08B0E364: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B0E370u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 547u, 0x08B0E370u, 0x08ACD4BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 442u, 0x08ACD4BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E370u) goto L_08B0E370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E370: aot_gpr_31 = (0x08B0E378u); if (([&]() { /*PSPRECOMP_RESIDENT_SCHED_SAFE*/ if (rt.resident_generated_leaf_fast_allowed()) return rt.invoke_resident_generated_leaf<&vcs_resident_region_08B20934, 199u, 110u, 0x08B20934u>(ctx, &aot_mem, ctx.pc, ctx.hi, ctx.lo, aot_gpr_2, aot_gpr_4, aot_gpr_5, ctx.gpr[6], ctx.gpr[7], ctx.gpr[28], aot_gpr_31); AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_resident_scheduler_fallback<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E378u) goto L_08B0E378; @@ -5484,8 +6847,8 @@ L_08B0E3CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E3F0: @@ -5497,8 +6860,21 @@ L_08B0E3F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B0E410u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 553u, 0x08B0E410u, 0x089DD244u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 181u, 0x089DD244u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E410u) goto L_08B0E410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E410: aot_gpr_4 = (0u | 15u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); @@ -5521,8 +6897,8 @@ L_08B0E438: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E454: @@ -5552,8 +6928,8 @@ L_08B0E494: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31400))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E4AC: @@ -5683,8 +7059,8 @@ L_08B0E560: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E56C: @@ -5759,8 +7135,8 @@ L_08B0E5D8: goto L_08B0E5DC; L_08B0E5DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E5E4: @@ -5830,8 +7206,8 @@ L_08B0E66C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31432))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E684: @@ -5946,8 +7322,8 @@ L_08B0E764: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0E778: @@ -5978,8 +7354,21 @@ L_08B0E7C8: ctx.gpr[17] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B0E7D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 604u, 0x08B0E7D4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E7D4u) goto L_08B0E7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E7D4: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6019,8 +7408,21 @@ L_08B0E7D4: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B0E804u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 605u, 0x08B0E804u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E804u) goto L_08B0E804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E804: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6144,8 +7546,21 @@ L_08B0E8E4: ctx.gpr[17] = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08B0E8F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 619u, 0x08B0E8F0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E8F0u) goto L_08B0E8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E8F0: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6186,8 +7601,21 @@ L_08B0E8F0: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<28u>()); aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B0E924u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 620u, 0x08B0E924u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E924u) goto L_08B0E924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E924: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6286,8 +7714,21 @@ L_08B0E9C8: goto L_08B0E9D0; L_08B0E9D0: aot_gpr_31 = (0x08B0E9D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 632u, 0x08B0E9D8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0E9D8u) goto L_08B0E9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0E9D8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6328,8 +7769,21 @@ L_08B0EA1C: ctx.gpr[17] = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08B0EA28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 636u, 0x08B0EA28u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EA28u) goto L_08B0EA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EA28: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6402,8 +7856,8 @@ L_08B0EA8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(192)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0EAA4: @@ -6431,8 +7885,8 @@ L_08B0EADC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31464))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0EAF4: @@ -6495,8 +7949,8 @@ L_08B0EB3C: goto L_08B0EB44; L_08B0EB44: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0EB4C: @@ -6515,8 +7969,21 @@ L_08B0EB4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B0EB88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 651u, 0x08B0EB88u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EB88u) goto L_08B0EB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EB88: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6564,8 +8031,8 @@ L_08B0EBCC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0EBDC: @@ -6646,8 +8113,8 @@ L_08B0EC80: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31496))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0EC98: @@ -6686,8 +8153,21 @@ L_08B0ECC4: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B0ECFCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 670u, 0x08B0ECFCu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0ECFCu) goto L_08B0ECFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0ECFC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6719,15 +8199,28 @@ L_08B0ED2C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(31552))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B0ED44: aot_gpr_31 = (0x08B0ED4Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 675u, 0x08B0ED4Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0ED4Cu) goto L_08B0ED4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0ED4C: ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); @@ -6735,8 +8228,21 @@ L_08B0ED4C: aot_gpr_4 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08B0ED64u); aot_fpr_20 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 676u, 0x08B0ED64u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0ED64u) goto L_08B0ED64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0ED64: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -6744,16 +8250,42 @@ L_08B0ED64: aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; aot_gpr_31 = (0x08B0ED7Cu); { const float fs = aot_fpr_20; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 677u, 0x08B0ED7Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0ED7Cu) goto L_08B0ED7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0ED7C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08B0ED90u); ctx.fpr[22] = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 678u, 0x08B0ED90u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0ED90u) goto L_08B0ED90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0ED90: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -6788,8 +8320,21 @@ L_08B0EDD8: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B0EDE8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 682u, 0x08B0EDE8u, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EDE8u) goto L_08B0EDE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EDE8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6816,8 +8361,21 @@ L_08B0EE04: L_08B0EE0C: aot_gpr_31 = (0x08B0EE14u); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 687u, 0x08B0EE14u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EE14u) goto L_08B0EE14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EE14: ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); @@ -6825,8 +8383,21 @@ L_08B0EE14: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08B0EE2Cu); aot_fpr_20 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 688u, 0x08B0EE2Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EE2Cu) goto L_08B0EE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EE2C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -6834,16 +8405,42 @@ L_08B0EE2C: aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; aot_gpr_31 = (0x08B0EE44u); { const float fs = aot_fpr_20; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 689u, 0x08B0EE44u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EE44u) goto L_08B0EE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EE44: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08B0EE58u); ctx.fpr[22] = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 690u, 0x08B0EE58u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EE58u) goto L_08B0EE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EE58: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -6877,15 +8474,41 @@ L_08B0EEA0: ctx.gpr[17] = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x08B0EEACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 694u, 0x08B0EEACu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EEACu) goto L_08B0EEAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EEAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0EEBCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 695u, 0x08B0EEBCu, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EEBCu) goto L_08B0EEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EEBC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6911,8 +8534,21 @@ L_08B0EEE0: } L_08B0EEE8: aot_gpr_31 = (0x08B0EEF0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 699u, 0x08B0EEF0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EEF0u) goto L_08B0EEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EEF0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6922,14 +8558,40 @@ L_08B0EEF0: } L_08B0EEF8: aot_gpr_31 = (0x08B0EF00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 701u, 0x08B0EF00u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EF00u) goto L_08B0EF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EF00: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0EF0Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 702u, 0x08B0EF0Cu, 0x08A66C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EF0Cu) goto L_08B0EF0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EF0C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6957,8 +8619,21 @@ L_08B0EF24: } L_08B0EF34: aot_gpr_31 = (0x08B0EF3Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 706u, 0x08B0EF3Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EF3Cu) goto L_08B0EF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EF3C: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7005,8 +8680,21 @@ L_08B0EF88: goto L_08B0EF9C; L_08B0EF9C: aot_gpr_31 = (0x08B0EFA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 710u, 0x08B0EFA4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EFA4u) goto L_08B0EFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EFA4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7016,8 +8704,21 @@ L_08B0EFA4: } L_08B0EFAC: aot_gpr_31 = (0x08B0EFB4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 712u, 0x08B0EFB4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0EFB4u) goto L_08B0EFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0EFB4: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7067,8 +8768,21 @@ L_08B0F01C: goto L_08B0F020; L_08B0F020: aot_gpr_31 = (0x08B0F028u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 716u, 0x08B0F028u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F028u) goto L_08B0F028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F028: if (aot_gpr_2 == 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); @@ -7077,13 +8791,39 @@ L_08B0F028: goto L_08B0F030; L_08B0F030: aot_gpr_31 = (0x08B0F038u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 718u, 0x08B0F038u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F038u) goto L_08B0F038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F038: aot_gpr_31 = (0x08B0F040u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 719u, 0x08B0F040u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F040u) goto L_08B0F040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F040: if (aot_gpr_2 != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); @@ -7092,8 +8832,21 @@ L_08B0F040: goto L_08B0F048; L_08B0F048: aot_gpr_31 = (0x08B0F050u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 721u, 0x08B0F050u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F050u) goto L_08B0F050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F050: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7227,8 +8980,21 @@ L_08B0F144: L_08B0F14C: aot_gpr_31 = (0x08B0F154u); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 738u, 0x08B0F154u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F154u) goto L_08B0F154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F154: ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); @@ -7236,8 +9002,21 @@ L_08B0F154: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08B0F16Cu); aot_fpr_20 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 739u, 0x08B0F16Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F16Cu) goto L_08B0F16C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F16C: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -7245,16 +9024,42 @@ L_08B0F16C: aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; aot_gpr_31 = (0x08B0F184u); { const float fs = aot_fpr_20; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 740u, 0x08B0F184u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F184u) goto L_08B0F184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F184: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08B0F198u); ctx.fpr[22] = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 741u, 0x08B0F198u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F198u) goto L_08B0F198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F198: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -7289,8 +9094,21 @@ L_08B0F1E0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B0F1F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 745u, 0x08B0F1F0u, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F1F0u) goto L_08B0F1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F1F0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7317,8 +9135,21 @@ L_08B0F20C: L_08B0F214: aot_gpr_31 = (0x08B0F21Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 750u, 0x08B0F21Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F21Cu) goto L_08B0F21C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F21C: ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); @@ -7326,8 +9157,21 @@ L_08B0F21C: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08B0F234u); aot_fpr_20 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 751u, 0x08B0F234u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F234u) goto L_08B0F234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F234: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -7335,16 +9179,42 @@ L_08B0F234: aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; aot_gpr_31 = (0x08B0F24Cu); { const float fs = aot_fpr_20; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 752u, 0x08B0F24Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F24Cu) goto L_08B0F24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F24C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08B0F260u); ctx.fpr[22] = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 753u, 0x08B0F260u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F260u) goto L_08B0F260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F260: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -7378,15 +9248,41 @@ L_08B0F2A8: ctx.gpr[17] = (aot_gpr_29 + static_cast(176)); aot_gpr_31 = (0x08B0F2B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 757u, 0x08B0F2B4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F2B4u) goto L_08B0F2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F2B4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0F2C4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 758u, 0x08B0F2C4u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F2C4u) goto L_08B0F2C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F2C4: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -7412,8 +9308,21 @@ L_08B0F2E8: } L_08B0F2F0: aot_gpr_31 = (0x08B0F2F8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 762u, 0x08B0F2F8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F2F8u) goto L_08B0F2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F2F8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7423,8 +9332,21 @@ L_08B0F2F8: } L_08B0F300: aot_gpr_31 = (0x08B0F308u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 764u, 0x08B0F308u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F308u) goto L_08B0F308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F308: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7474,8 +9396,21 @@ L_08B0F370: goto L_08B0F374; L_08B0F374: aot_gpr_31 = (0x08B0F37Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 768u, 0x08B0F37Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F37Cu) goto L_08B0F37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F37C: if (aot_gpr_2 == 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); @@ -7484,13 +9419,39 @@ L_08B0F37C: goto L_08B0F384; L_08B0F384: aot_gpr_31 = (0x08B0F38Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 770u, 0x08B0F38Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F38Cu) goto L_08B0F38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F38C: aot_gpr_31 = (0x08B0F394u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 771u, 0x08B0F394u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F394u) goto L_08B0F394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F394: if (aot_gpr_2 != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); @@ -7499,8 +9460,21 @@ L_08B0F394: goto L_08B0F39C; L_08B0F39C: aot_gpr_31 = (0x08B0F3A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 773u, 0x08B0F3A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F3A4u) goto L_08B0F3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F3A4: aot_gpr_4 = (aot_gpr_2 + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -7853,8 +9827,21 @@ L_08B0F68C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0F6B0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 809u, 0x08B0F6B0u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F6B0u) goto L_08B0F6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F6B0: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7984,8 +9971,21 @@ L_08B0F7A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B0F7C4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 821u, 0x08B0F7C4u, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F7C4u) goto L_08B0F7C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F7C4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8062,8 +10062,21 @@ L_08B0F82C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B0F858u); ctx.gpr[6] = (aot_gpr_29 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 828u, 0x08B0F858u, 0x08B20EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 175u, 0x08B20EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F858u) goto L_08B0F858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F858: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8087,8 +10100,21 @@ L_08B0F868: L_08B0F874: aot_gpr_31 = (0x08B0F87Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 832u, 0x08B0F87Cu, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F87Cu) goto L_08B0F87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F87C: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(618)))))); @@ -8154,8 +10180,21 @@ L_08B0F8E0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B0F90Cu); ctx.gpr[6] = (aot_gpr_29 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 837u, 0x08B0F90Cu, 0x089CFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 688u, 0x089CFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F90Cu) goto L_08B0F90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F90C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8179,8 +10218,21 @@ L_08B0F91C: L_08B0F928: aot_gpr_31 = (0x08B0F930u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 841u, 0x08B0F930u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0F930u) goto L_08B0F930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0F930: aot_gpr_4 = (0u | 1u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(618)))))); @@ -8345,8 +10397,21 @@ L_08B0FAC0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B0FAD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 857u, 0x08B0FAD0u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FAD0u) goto L_08B0FAD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FAD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8358,8 +10423,21 @@ L_08B0FAD8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(440))); aot_gpr_31 = (0x08B0FAE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 859u, 0x08B0FAE4u, 0x08A66C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FAE4u) goto L_08B0FAE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FAE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8471,8 +10549,21 @@ L_08B0FBD4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B0FBE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 869u, 0x08B0FBE4u, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FBE4u) goto L_08B0FBE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FBE4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8562,8 +10653,21 @@ L_08B0FC98: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(700), 0u); aot_gpr_31 = (0x08B0FCBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 878u, 0x08B0FCBCu, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FCBCu) goto L_08B0FCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FCBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8621,8 +10725,21 @@ L_08B0FD28: L_08B0FD30: aot_gpr_31 = (0x08B0FD38u); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 886u, 0x08B0FD38u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FD38u) goto L_08B0FD38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FD38: ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); @@ -8630,8 +10747,21 @@ L_08B0FD38: aot_gpr_4 = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08B0FD50u); aot_fpr_20 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 887u, 0x08B0FD50u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FD50u) goto L_08B0FD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FD50: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -8639,16 +10769,42 @@ L_08B0FD50: aot_fpr_14 = aot_fpr_14 - ctx.fpr[15]; aot_gpr_31 = (0x08B0FD68u); { const float fs = aot_fpr_20; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 888u, 0x08B0FD68u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FD68u) goto L_08B0FD68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FD68: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08B0FD7Cu); ctx.fpr[22] = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 889u, 0x08B0FD7Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FD7Cu) goto L_08B0FD7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FD7C: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -8734,8 +10890,21 @@ L_08B0FE20: } L_08B0FE30: aot_gpr_31 = (0x08B0FE38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 901u, 0x08B0FE38u, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FE38u) goto L_08B0FE38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FE38: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8764,8 +10933,21 @@ L_08B0FE60: ctx.gpr[17] = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08B0FE6Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 906u, 0x08B0FE6Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FE6Cu) goto L_08B0FE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FE6C: ctx.gpr[18] = (aot_gpr_16 + static_cast(48)); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); @@ -8773,8 +10955,21 @@ L_08B0FE6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B0FE84u); ctx.fpr[22] = ctx.fpr[22] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 907u, 0x08B0FE84u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FE84u) goto L_08B0FE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FE84: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -8796,8 +10991,21 @@ L_08B0FEBC: ctx.fpr[22] = ctx.fpr[22] / aot_fpr_12; aot_fpr_20 = aot_fpr_20 / aot_fpr_12; aot_gpr_31 = (0x08B0FECCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 909u, 0x08B0FECCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FECCu) goto L_08B0FECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FECC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8807,14 +11015,40 @@ L_08B0FECC: } L_08B0FED4: aot_gpr_31 = (0x08B0FEDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 911u, 0x08B0FEDCu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FEDCu) goto L_08B0FEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FEDC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); aot_gpr_31 = (0x08B0FEE8u); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 912u, 0x08B0FEE8u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FEE8u) goto L_08B0FEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FEE8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); aot_gpr_4 = (15692u << 16u); @@ -8891,8 +11125,21 @@ L_08B0FF68: } L_08B0FF74: aot_gpr_31 = (0x08B0FF7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 924u, 0x08B0FF7Cu, 0x08AAE958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 526u, 0x08AAE958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FF7Cu) goto L_08B0FF7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FF7C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -8903,8 +11150,21 @@ L_08B0FF7C: L_08B0FF84: aot_gpr_31 = (0x08B0FF8Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 926u, 0x08B0FF8Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FF8Cu) goto L_08B0FF8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FF8C: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_13 = std::bit_cast(0u); @@ -8930,8 +11190,21 @@ L_08B0FFB0: L_08B0FFC8: aot_gpr_31 = (0x08B0FFD0u); aot_gpr_4 = (aot_gpr_29 + static_cast(304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0194->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0194_entry, 929u, 0x08B0FFD0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B0FFD0u) goto L_08B0FFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B0FFD0: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_13 = std::bit_cast(0u); diff --git a/profiles/vcs/generated/generated_unit_0195.cpp b/profiles/vcs/generated/generated_unit_0195.cpp index b0163d8..5fdc33e 100644 --- a/profiles/vcs/generated/generated_unit_0195.cpp +++ b/profiles/vcs/generated/generated_unit_0195.cpp @@ -883,6 +883,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B10000u; + if (local_delta_v813 >= 16356u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -906,8 +930,21 @@ L_08B10000: L_08B1000C: aot_gpr_31 = (0x08B10014u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 3u, 0x08B10014u, 0x08B0E5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 584u, 0x08B0E5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10014u) goto L_08B10014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10014: aot_gpr_4 = (aot_gpr_2 << 24u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); @@ -931,8 +968,21 @@ L_08B1003C: } L_08B10048: aot_gpr_31 = (0x08B10050u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 6u, 0x08B10050u, 0x08B0E56Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 575u, 0x08B0E56Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10050u) goto L_08B10050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10050: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_2)); @@ -952,8 +1002,21 @@ L_08B10058: } L_08B10068: aot_gpr_31 = (0x08B10070u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 9u, 0x08B10070u, 0x08B0EB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 650u, 0x08B0EB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10070u) goto L_08B10070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10070: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_2)); @@ -964,8 +1027,21 @@ L_08B10070: } L_08B10078: aot_gpr_31 = (0x08B10080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 11u, 0x08B10080u, 0x08B0E454u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 555u, 0x08B0E454u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10080u) goto L_08B10080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10080: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_2)); goto L_08B10084; @@ -1004,8 +1080,21 @@ L_08B100B0: } L_08B100BC: aot_gpr_31 = (0x08B100C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 17u, 0x08B100C4u, 0x08B0E56Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 575u, 0x08B0E56Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B100C4u) goto L_08B100C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B100C4: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(533), static_cast(aot_gpr_2)); aot_gpr_4 = (0u | 0u); @@ -1026,8 +1115,21 @@ L_08B100DC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08B100F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 19u, 0x08B100F8u, 0x08B0E0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 502u, 0x08B0E0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B100F8u) goto L_08B100F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B100F8: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(535), static_cast(aot_gpr_4)); @@ -1090,8 +1192,21 @@ L_08B10160: goto L_08B1016C; L_08B1016C: aot_gpr_31 = (0x08B10174u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 28u, 0x08B10174u, 0x08AAE97Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 530u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 530u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 530u, 0x08AAE97Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10174u) goto L_08B10174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10174: if (aot_gpr_2 == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(320))); @@ -1101,8 +1216,21 @@ L_08B10174: L_08B1017C: aot_gpr_31 = (0x08B10184u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 30u, 0x08B10184u, 0x08B0E0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 502u, 0x08B0E0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10184u) goto L_08B10184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10184: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(535), static_cast(aot_gpr_4)); @@ -1390,8 +1518,21 @@ L_08B103B4: L_08B103C4: aot_gpr_31 = (0x08B103CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 64u, 0x08B103CCu, 0x08A0F37Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 561u, 0x08A0F37Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B103CCu) goto L_08B103CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B103CC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -1407,8 +1548,21 @@ L_08B103D4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08B103F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 66u, 0x08B103F0u, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B103F0u) goto L_08B103F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B103F0: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(532), static_cast(aot_gpr_4)); @@ -1446,8 +1600,21 @@ L_08B10428: } L_08B10438: aot_gpr_31 = (0x08B10440u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 71u, 0x08B10440u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10440u) goto L_08B10440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10440: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1457,8 +1624,21 @@ L_08B10440: } L_08B10448: aot_gpr_31 = (0x08B10450u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 73u, 0x08B10450u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10450u) goto L_08B10450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10450: aot_gpr_31 = (0x08B10458u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1522,8 +1702,21 @@ L_08B104BC: } L_08B104C4: aot_gpr_31 = (0x08B104CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 82u, 0x08B104CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B104CCu) goto L_08B104CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B104CC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1533,8 +1726,21 @@ L_08B104CC: } L_08B104D4: aot_gpr_31 = (0x08B104DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 84u, 0x08B104DCu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B104DCu) goto L_08B104DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B104DC: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1572,8 +1778,21 @@ L_08B104DC: } L_08B10518: aot_gpr_31 = (0x08B10520u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 86u, 0x08B10520u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10520u) goto L_08B10520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10520: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1600,8 +1819,21 @@ L_08B10520: } L_08B10550: aot_gpr_31 = (0x08B10558u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 88u, 0x08B10558u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10558u) goto L_08B10558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10558: aot_gpr_4 = (aot_gpr_2 + static_cast(16)); ctx.gpr[17] = (aot_gpr_16 + static_cast(16)); @@ -1609,8 +1841,21 @@ L_08B10558: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08B10570u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 89u, 0x08B10570u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10570u) goto L_08B10570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10570: aot_gpr_4 = (aot_gpr_2 + static_cast(16)); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -1629,8 +1874,21 @@ L_08B10598: ctx.gpr[17] = (aot_gpr_29 + static_cast(336)); aot_gpr_31 = (0x08B105A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 91u, 0x08B105A4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B105A4u) goto L_08B105A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B105A4: ctx.gpr[18] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(336))); @@ -1638,8 +1896,21 @@ L_08B105A4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B105BCu); ctx.fpr[20] = aot_fpr_13 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 92u, 0x08B105BCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B105BCu) goto L_08B105BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B105BC: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(340))); aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -1649,13 +1920,39 @@ L_08B105BC: aot_fpr_12 = ctx.fpr[16] + aot_fpr_13; ctx.fpr[24] = std::sqrt(aot_fpr_12); aot_gpr_31 = (0x08B105E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 93u, 0x08B105E0u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B105E0u) goto L_08B105E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B105E0: aot_gpr_31 = (0x08B105E8u); ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 94u, 0x08B105E8u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B105E8u) goto L_08B105E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B105E8: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_2 + static_cast(4))); { const float fs = ctx.fpr[26]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_15 = std::bit_cast(0x7FC00000u); else aot_fpr_15 = fs * ft; } @@ -1680,8 +1977,21 @@ L_08B10628: ctx.gpr[17] = (aot_gpr_29 + static_cast(368)); aot_gpr_31 = (0x08B10634u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 96u, 0x08B10634u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10634u) goto L_08B10634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10634: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1759,8 +2069,21 @@ L_08B106AC: ctx.gpr[17] = (aot_gpr_29 + static_cast(400)); aot_gpr_31 = (0x08B106B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 101u, 0x08B106B8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B106B8u) goto L_08B106B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B106B8: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1811,8 +2134,21 @@ L_08B106B8: } L_08B106FC: aot_gpr_31 = (0x08B10704u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 103u, 0x08B10704u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10704u) goto L_08B10704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10704: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1822,14 +2158,40 @@ L_08B10704: } L_08B1070C: aot_gpr_31 = (0x08B10714u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 105u, 0x08B10714u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10714u) goto L_08B10714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10714: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10720u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 106u, 0x08B10720u, 0x08A66C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10720u) goto L_08B10720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10720: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2010,8 +2372,21 @@ L_08B1086C: } L_08B10878: aot_gpr_31 = (0x08B10880u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 130u, 0x08B10880u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10880u) goto L_08B10880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10880: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2021,8 +2396,21 @@ L_08B10880: } L_08B10888: aot_gpr_31 = (0x08B10890u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 132u, 0x08B10890u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10890u) goto L_08B10890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10890: aot_gpr_31 = (0x08B10898u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2038,8 +2426,21 @@ L_08B10898: } L_08B108A4: aot_gpr_31 = (0x08B108ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 135u, 0x08B108ACu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B108ACu) goto L_08B108AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B108AC: aot_gpr_31 = (0x08B108B4u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2080,8 +2481,21 @@ L_08B108D4: } L_08B108EC: aot_gpr_31 = (0x08B108F4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 141u, 0x08B108F4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B108F4u) goto L_08B108F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B108F4: aot_gpr_31 = (0x08B108FCu); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2142,8 +2556,8 @@ L_08B10944: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(512)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1096C: @@ -2572,8 +2986,8 @@ L_08B10CDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B10CF0: @@ -2600,8 +3014,21 @@ L_08B10D14: L_08B10D20: aot_gpr_31 = (0x08B10D28u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 197u, 0x08B10D28u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10D28u) goto L_08B10D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10D28: aot_gpr_4 = (65280u << 16u); aot_gpr_4 = (aot_gpr_2 & aot_gpr_4); @@ -2626,8 +3053,8 @@ L_08B10D40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B10D5C: @@ -2650,8 +3077,21 @@ L_08B10D80: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B10D8Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 203u, 0x08B10D8Cu, 0x08B15604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 274u, 0x08B15604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10D8Cu) goto L_08B10D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10D8C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2665,15 +3105,41 @@ L_08B10D94: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B10DA8u); aot_gpr_16 = (ctx.gpr[6] + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 205u, 0x08B10DA8u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10DA8u) goto L_08B10DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10DA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B10DB8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 206u, 0x08B10DB8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10DB8u) goto L_08B10DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10DB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2701,8 +3167,21 @@ L_08B10DD4: ctx.gpr[6] = (aot_gpr_2 & 65535u); aot_gpr_31 = (0x08B10DECu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 210u, 0x08B10DECu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10DECu) goto L_08B10DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10DEC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2712,8 +3191,8 @@ L_08B10DEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B10E00: @@ -2724,15 +3203,41 @@ L_08B10E00: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08B10E20u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 212u, 0x08B10E20u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10E20u) goto L_08B10E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10E20: ctx.gpr[18] = (aot_gpr_2 | 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(2260)); aot_gpr_31 = (0x08B10E30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 213u, 0x08B10E30u, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10E30u) goto L_08B10E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10E30: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B10E3Cu); @@ -2769,8 +3274,21 @@ L_08B10E64: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B10E70u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 219u, 0x08B10E70u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10E70u) goto L_08B10E70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10E70: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B10E7Cu); @@ -2788,8 +3306,21 @@ L_08B10E84: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B10E90u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 222u, 0x08B10E90u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10E90u) goto L_08B10E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10E90: ctx.gpr[18] = (aot_gpr_2 | 0u); goto L_08B10E94; @@ -2810,8 +3341,8 @@ L_08B10EA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B10EBC: @@ -2829,15 +3360,41 @@ L_08B10EBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B10EF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 226u, 0x08B10EF4u, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10EF4u) goto L_08B10EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10EF4: ctx.gpr[17] = (ctx.gpr[28] + static_cast(2260)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10F04u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 227u, 0x08B10F04u, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10F04u) goto L_08B10F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10F04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10F10u); @@ -2861,28 +3418,80 @@ L_08B10F24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10F30u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 231u, 0x08B10F30u, 0x0889D28Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 234u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 234u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 234u, 0x0889D28Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10F30u) goto L_08B10F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10F30: aot_gpr_5 = (ctx.gpr[28] + static_cast(2272)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10F40u); ctx.gpr[6] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 232u, 0x08B10F40u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10F40u) goto L_08B10F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10F40: aot_gpr_5 = (ctx.gpr[28] + static_cast(2280)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10F50u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 233u, 0x08B10F50u, 0x08806DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 426u, 0x08806DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10F50u) goto L_08B10F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10F50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10F5Cu); aot_gpr_5 = (0u + static_cast(-3)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 234u, 0x08B10F5Cu, 0x08807414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 486u, 0x08807414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10F5Cu) goto L_08B10F5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10F5C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10F68u); @@ -2905,8 +3514,21 @@ L_08B10F80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B10F8Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 238u, 0x08B10F8Cu, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10F8Cu) goto L_08B10F8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10F8C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2916,8 +3538,8 @@ L_08B10F8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B10FA0: @@ -2947,8 +3569,21 @@ L_08B10FD8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(0)))))); aot_gpr_31 = (0x08B10FECu); ctx.gpr[20] = (ctx.gpr[18] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 242u, 0x08B10FECu, 0x08823710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 639u, 0x08823710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B10FECu) goto L_08B10FEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B10FEC: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -2969,8 +3604,21 @@ L_08B10FFC: L_08B11004: aot_gpr_31 = (0x08B1100Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 245u, 0x08B1100Cu, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1100Cu) goto L_08B1100C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1100C: { const std::uint32_t vfpu_address = aot_gpr_2 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3011,8 +3659,21 @@ L_08B11030: ctx.gpr[6] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08B11040u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 249u, 0x08B11040u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11040u) goto L_08B11040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11040: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32))); @@ -3039,8 +3700,21 @@ L_08B1105C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B11068u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 252u, 0x08B11068u, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11068u) goto L_08B11068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11068: aot_gpr_2 = (ctx.gpr[19] | 0u); goto L_08B1106C; @@ -3056,8 +3730,8 @@ L_08B1106C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1108C: @@ -3072,8 +3746,21 @@ L_08B1108C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(36), aot_run_words); } aot_gpr_31 = (0x08B110BCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 255u, 0x08B110BCu, 0x08B15604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 274u, 0x08B15604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B110BCu) goto L_08B110BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B110BC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3087,15 +3774,41 @@ L_08B110C4: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B110D8u); ctx.gpr[17] = (ctx.gpr[6] + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 257u, 0x08B110D8u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B110D8u) goto L_08B110D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B110D8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B110E8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 258u, 0x08B110E8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B110E8u) goto L_08B110E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B110E8: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (aot_gpr_2 | 0u); @@ -3134,8 +3847,21 @@ L_08B11110: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x08B11124u); ctx.gpr[21] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 264u, 0x08B11124u, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11124u) goto L_08B11124; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11124: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -3164,8 +3890,21 @@ L_08B11148: ctx.gpr[6] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B11158u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 268u, 0x08B11158u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11158u) goto L_08B11158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11158: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -3188,8 +3927,21 @@ L_08B11178: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(0)))))); aot_gpr_31 = (0x08B1118Cu); ctx.gpr[21] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 271u, 0x08B1118Cu, 0x08823710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 639u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 639u, 0x08823710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1118Cu) goto L_08B1118C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1118C: ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(4))); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -3212,8 +3964,21 @@ L_08B111A4: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08B111B8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 274u, 0x08B111B8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B111B8u) goto L_08B111B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B111B8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3234,8 +3999,21 @@ L_08B111D0: ctx.gpr[6] = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08B111E0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 277u, 0x08B111E0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B111E0u) goto L_08B111E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B111E0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -3278,8 +4056,8 @@ L_08B11224: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1124C: @@ -3327,14 +4105,27 @@ L_08B11294: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B112A8u); ctx.gpr[6] = (ctx.gpr[6] + static_cast(31656)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 290u, 0x08B112A8u, 0x0889D80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 328u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 328u, 0x0889D80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B112A8u) goto L_08B112A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B112A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B112B4: @@ -3365,8 +4156,21 @@ L_08B112F0: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); aot_gpr_31 = (0x08B11304u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 294u, 0x08B11304u, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11304u) goto L_08B11304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11304: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B11310u); @@ -3393,8 +4197,21 @@ L_08B11318: aot_gpr_16 = (aot_gpr_16 | aot_gpr_5); aot_gpr_31 = (0x08B11348u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 297u, 0x08B11348u, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11348u) goto L_08B11348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11348: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -3419,8 +4236,21 @@ L_08B1135C: L_08B11364: aot_gpr_31 = (0x08B1136Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 301u, 0x08B1136Cu, 0x088078B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 540u, 0x088078B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1136Cu) goto L_08B1136C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1136C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -3432,8 +4262,21 @@ L_08B11374: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B11380u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 303u, 0x08B11380u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11380u) goto L_08B11380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11380: { const bool branch_taken = aot_gpr_2 != aot_gpr_16; if (branch_taken) { @@ -3445,8 +4288,21 @@ L_08B11388: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B11394u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 305u, 0x08B11394u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11394u) goto L_08B11394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11394: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -3458,8 +4314,21 @@ L_08B113A4: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B113B0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 307u, 0x08B113B0u, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B113B0u) goto L_08B113B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B113B0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B113BCu); @@ -3470,8 +4339,21 @@ L_08B113BC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B113C8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 309u, 0x08B113C8u, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B113C8u) goto L_08B113C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B113C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3511,8 +4393,8 @@ L_08B113F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11410: @@ -3525,8 +4407,8 @@ L_08B11410: goto L_08B11420; L_08B11420: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11428: @@ -3539,8 +4421,21 @@ L_08B11428: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1144Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 317u, 0x08B1144Cu, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1144Cu) goto L_08B1144C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1144C: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -3563,15 +4458,41 @@ L_08B1145C: L_08B11464: aot_gpr_31 = (0x08B1146Cu); aot_gpr_4 = (aot_gpr_2 + static_cast(1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 321u, 0x08B1146Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1146Cu) goto L_08B1146C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1146C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(64), aot_gpr_2); aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B1147Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 322u, 0x08B1147Cu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1147Cu) goto L_08B1147C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1147C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3581,8 +4502,8 @@ L_08B1147C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11490: @@ -3631,8 +4552,21 @@ L_08B114D4: L_08B114D8: aot_gpr_31 = (0x08B114E0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 330u, 0x08B114E0u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B114E0u) goto L_08B114E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B114E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(64))); aot_gpr_31 = (0x08B114ECu); @@ -3651,22 +4585,22 @@ L_08B114F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11504: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(64))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1150C: jump_target = aot_gpr_31; aot_gpr_2 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(60))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11514: @@ -3678,8 +4612,21 @@ L_08B11514: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B11534u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 336u, 0x08B11534u, 0x088DF69Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 451u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 451u, 0x088DF69Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11534u) goto L_08B11534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11534: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-31808)); @@ -3697,15 +4644,28 @@ L_08B11550: ctx.gpr[7] = (0u | 40u); aot_gpr_31 = (0x08B11568u); aot_gpr_5 = (aot_gpr_5 + static_cast(31680)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 338u, 0x08B11568u, 0x08A312B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 279u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 279u, 0x08A312B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B11568u) goto L_08B11568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B11568: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11578: @@ -3761,8 +4721,8 @@ L_08B11578: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B115A0: @@ -3864,8 +4824,8 @@ L_08B116A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B116BC: @@ -3938,8 +4898,8 @@ L_08B11758: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11768: @@ -3965,8 +4925,8 @@ L_08B11768: L_08B117AC: jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B117B4: @@ -4156,8 +5116,8 @@ L_08B1193C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1195C: @@ -4186,8 +5146,8 @@ L_08B11988: goto L_08B1198C; L_08B1198C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11994: @@ -4695,8 +5655,8 @@ L_08B11D24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11D58: @@ -4800,8 +5760,8 @@ L_08B11E30: aot_gpr_2 = (aot_gpr_5 & 255u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11E3C: @@ -4881,8 +5841,8 @@ L_08B11EC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11EEC: @@ -4894,8 +5854,8 @@ L_08B11EEC: aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(2326), static_cast(aot_gpr_4)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(2328), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B11F0C: @@ -5297,8 +6257,8 @@ L_08B12200: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B12224: @@ -5445,8 +6405,8 @@ L_08B12348: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B12378: @@ -5593,8 +6553,8 @@ L_08B12470: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1248C: @@ -7580,8 +8540,8 @@ L_08B12EA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(832)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B12ED0: @@ -8152,8 +9112,8 @@ L_08B1335C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(352)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B133A0: @@ -8598,8 +9558,8 @@ L_08B13700: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13748: @@ -8812,8 +9772,8 @@ L_08B13A10: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(268))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13A20: @@ -8868,8 +9828,8 @@ L_08B13A68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13A78: @@ -8899,8 +9859,21 @@ L_08B13AA8: } L_08B13AB4: aot_gpr_31 = (0x08B13ABCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 705u, 0x08B13ABCu, 0x08AD0600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 58u, 0x08AD0600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B13ABCu) goto L_08B13ABC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B13ABC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -8911,8 +9884,21 @@ L_08B13ABC: L_08B13AC4: aot_gpr_31 = (0x08B13ACCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 707u, 0x08B13ACCu, 0x0890EF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 696u, 0x0890EF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B13ACCu) goto L_08B13ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B13ACC: aot_gpr_31 = (0x08B13AD4u); aot_gpr_16 = (aot_gpr_2 | 0u); @@ -8921,8 +9907,21 @@ L_08B13ACC: L_08B13AD4: aot_gpr_31 = (0x08B13ADCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 709u, 0x08B13ADCu, 0x0890EF94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 696u, 0x0890EF94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B13ADCu) goto L_08B13ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B13ADC: { const bool branch_taken = aot_gpr_16 == aot_gpr_2; if (branch_taken) { @@ -8946,8 +9945,8 @@ L_08B13AF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13B00: @@ -8985,8 +9984,8 @@ L_08B13B38: goto L_08B13B3C; L_08B13B3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13B44: @@ -9133,8 +10132,8 @@ L_08B13C14: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13C28: @@ -9177,8 +10176,8 @@ L_08B13C74: goto L_08B13C78; L_08B13C78: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13C80: @@ -9216,8 +10215,8 @@ L_08B13CB8: goto L_08B13CBC; L_08B13CBC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13CC4: @@ -9239,8 +10238,21 @@ L_08B13CC4: L_08B13CF0: aot_gpr_31 = (0x08B13CF8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 749u, 0x08B13CF8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B13CF8u) goto L_08B13CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B13CF8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -9281,8 +10293,8 @@ L_08B13D28: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13D38: @@ -9306,8 +10318,8 @@ L_08B13D4C: goto L_08B13D50; L_08B13D50: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13D58: @@ -9336,8 +10348,8 @@ L_08B13D80: goto L_08B13D84; L_08B13D84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13D8C: @@ -9431,8 +10443,8 @@ L_08B13E24: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13E34: @@ -9530,8 +10542,8 @@ L_08B13EB8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13EC8: @@ -9542,8 +10554,21 @@ L_08B13EC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B13EE4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 791u, 0x08B13EE4u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B13EE4u) goto L_08B13EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B13EE4: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (aot_gpr_2 | 0u); @@ -9572,8 +10597,8 @@ L_08B13F08: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13F24: @@ -9600,8 +10625,21 @@ L_08B13F40: L_08B13F48: aot_gpr_31 = (0x08B13F50u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0195->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0195_entry, 798u, 0x08B13F50u, 0x08B6BAECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 721u, 0x08B6BAECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B13F50u) goto L_08B13F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B13F50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); if (aot_gpr_4 == 0u) { @@ -9637,8 +10675,8 @@ L_08B13F78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B13F8C: diff --git a/profiles/vcs/generated/generated_unit_0196.cpp b/profiles/vcs/generated/generated_unit_0196.cpp index df9692c..3724fd0 100644 --- a/profiles/vcs/generated/generated_unit_0196.cpp +++ b/profiles/vcs/generated/generated_unit_0196.cpp @@ -973,6 +973,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B14000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1105,8 +1129,21 @@ L_08B14128: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(76), aot_gpr_5); aot_gpr_31 = (0x08B1414Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 7u, 0x08B1414Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1414Cu) goto L_08B1414C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1414C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -1165,8 +1202,8 @@ L_08B141D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B141E4: @@ -1247,8 +1284,8 @@ L_08B14304: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B14310: @@ -1311,8 +1348,8 @@ L_08B14394: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B143A4: @@ -1340,8 +1377,21 @@ L_08B143A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x08B14404u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 24u, 0x08B14404u, 0x08B60E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 178u, 0x08B60E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14404u) goto L_08B14404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14404: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(2452))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(2448))); @@ -1404,8 +1454,21 @@ L_08B1447C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B14494u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 31u, 0x08B14494u, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14494u) goto L_08B14494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14494: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 & 14u); @@ -1431,8 +1494,21 @@ L_08B144C0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B144CCu); aot_gpr_5 = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 34u, 0x08B144CCu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B144CCu) goto L_08B144CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B144CC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1534,8 +1610,8 @@ L_08B1458C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B145B0: @@ -1602,8 +1678,21 @@ L_08B1466C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B14678u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 50u, 0x08B14678u, 0x089068C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 571u, 0x089068C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14678u) goto L_08B14678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14678: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -1635,8 +1724,21 @@ L_08B14680: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B146B4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 52u, 0x08B146B4u, 0x08949B54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 385u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 385u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 385u, 0x08949B54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B146B4u) goto L_08B146B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B146B4: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -1770,8 +1872,8 @@ L_08B147AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B147E4: @@ -1917,8 +2019,8 @@ L_08B14914: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B14940: @@ -1961,8 +2063,21 @@ L_08B14988: L_08B149A4: aot_gpr_31 = (0x08B149ACu); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 85u, 0x08B149ACu, 0x08B13E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 776u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 776u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 776u, 0x08B13E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B149ACu) goto L_08B149AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B149AC: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -2033,8 +2148,8 @@ L_08B14A18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B14A2C: @@ -2079,8 +2194,21 @@ L_08B14A78: L_08B14A94: aot_gpr_31 = (0x08B14A9Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 98u, 0x08B14A9Cu, 0x08B13E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 776u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 776u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 776u, 0x08B13E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14A9Cu) goto L_08B14A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14A9C: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -2132,8 +2260,8 @@ L_08B14AF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B14B08: @@ -2178,8 +2306,21 @@ L_08B14B54: L_08B14B70: aot_gpr_31 = (0x08B14B78u); aot_gpr_4 = (aot_gpr_4 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 108u, 0x08B14B78u, 0x08B13E34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 776u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 776u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 776u, 0x08B13E34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14B78u) goto L_08B14B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14B78: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -2226,8 +2367,8 @@ L_08B14BC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B14BD8: @@ -2241,8 +2382,21 @@ L_08B14BD8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(40), aot_run_words); } aot_gpr_31 = (0x08B14C18u); aot_gpr_4 = (aot_gpr_4 + static_cast(6000)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 114u, 0x08B14C18u, 0x08B6BAECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 721u, 0x08B6BAECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14C18u) goto L_08B14C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14C18: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -2367,8 +2521,21 @@ L_08B14CEC: L_08B14CF4: aot_gpr_31 = (0x08B14CFCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 129u, 0x08B14CFCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14CFCu) goto L_08B14CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14CFC: if (aot_gpr_2 == 0u) { aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(676))); @@ -2423,8 +2590,21 @@ L_08B14D40: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B14D50u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 137u, 0x08B14D50u, 0x08B13F8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 804u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 804u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 804u, 0x08B13F8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14D50u) goto L_08B14D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14D50: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(1914))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -2602,8 +2782,21 @@ L_08B14E48: L_08B14E50: aot_gpr_31 = (0x08B14E58u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 160u, 0x08B14E58u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14E58u) goto L_08B14E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14E58: if (aot_gpr_2 == 0u) { aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(676))); @@ -2658,8 +2851,21 @@ L_08B14E9C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B14EACu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 168u, 0x08B14EACu, 0x08B13F8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 804u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 804u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 804u, 0x08B13F8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14EACu) goto L_08B14EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14EAC: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[17] = (ctx.gpr[21] + static_cast(-1)); @@ -2713,8 +2919,21 @@ L_08B14F00: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08B14F10u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 175u, 0x08B14F10u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14F10u) goto L_08B14F10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14F10: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -2743,8 +2962,21 @@ L_08B14F3C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B14F4Cu); aot_gpr_6 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 179u, 0x08B14F4Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14F4Cu) goto L_08B14F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14F4C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -2815,8 +3047,21 @@ L_08B14FB0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B14FC0u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 189u, 0x08B14FC0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14FC0u) goto L_08B14FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14FC0: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(19))); @@ -2846,8 +3091,21 @@ L_08B14FEC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B14FFCu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 193u, 0x08B14FFCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B14FFCu) goto L_08B14FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B14FFC: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(20))); @@ -2877,8 +3135,21 @@ L_08B15028: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B15038u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 197u, 0x08B15038u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15038u) goto L_08B15038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15038: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(21))); @@ -2898,8 +3169,21 @@ L_08B1504C: L_08B1505C: aot_gpr_31 = (0x08B15064u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 200u, 0x08B15064u, 0x08AD0600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 58u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 58u, 0x08AD0600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15064u) goto L_08B15064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15064: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2921,16 +3205,42 @@ L_08B1506C: L_08B15084: aot_gpr_31 = (0x08B1508Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 203u, 0x08B1508Cu, 0x089D3458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 597u, 0x089D3458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1508Cu) goto L_08B1508C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1508C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(100))); ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(52))); aot_gpr_31 = (0x08B150A0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 204u, 0x08B150A0u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B150A0u) goto L_08B150A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B150A0: { const bool branch_taken = ctx.gpr[16] == aot_gpr_2; if (branch_taken) { @@ -2943,8 +3253,21 @@ L_08B150A8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B150B8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 206u, 0x08B150B8u, 0x08B13F8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 804u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 804u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 804u, 0x08B13F8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B150B8u) goto L_08B150B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B150B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9628))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(4)); @@ -2988,8 +3311,21 @@ L_08B15100: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B15110u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 212u, 0x08B15110u, 0x08B13F8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 804u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 804u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 804u, 0x08B13F8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15110u) goto L_08B15110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15110: ctx.gpr[16] = (ctx.gpr[16] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[16]) < 4 ? 1u : 0u); @@ -3035,8 +3371,8 @@ L_08B1513C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15190: @@ -3266,8 +3602,21 @@ L_08B15358: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B15370u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 241u, 0x08B15370u, 0x089069ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 579u, 0x089069ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15370u) goto L_08B15370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15370: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -3338,8 +3687,21 @@ L_08B153EC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B15408u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 250u, 0x08B15408u, 0x089069ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 579u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 579u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 579u, 0x089069ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15408u) goto L_08B15408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15408: if (aot_gpr_2 == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(3292))); @@ -3374,8 +3736,21 @@ L_08B15440: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B15458u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 254u, 0x08B15458u, 0x088EB074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 594u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 594u, 0x088EB074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15458u) goto L_08B15458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15458: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[16] | 0u); @@ -3414,8 +3789,8 @@ L_08B15494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B154AC: @@ -3434,8 +3809,8 @@ L_08B154AC: aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast(4), aot_run_words); } jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(24), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15504: @@ -3455,8 +3830,8 @@ L_08B15504: aot_mem.aot_direct_store_word_right(aot_gpr_6 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15544: @@ -3556,8 +3931,8 @@ L_08B155F8: L_08B155FC: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15604: @@ -3565,15 +3940,28 @@ L_08B15604: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B15614u); aot_gpr_6 = (ctx.gpr[28] + static_cast(2876)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 275u, 0x08B15614u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15614u) goto L_08B15614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15614: aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15624: @@ -3581,8 +3969,21 @@ L_08B15624: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B15634u); aot_gpr_6 = (ctx.gpr[28] + static_cast(2876)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 277u, 0x08B15634u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15634u) goto L_08B15634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15634: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_2 = (0u + static_cast(-1)); @@ -3595,8 +3996,8 @@ L_08B15644: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15650: @@ -3620,8 +4021,21 @@ L_08B15678: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1568Cu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 282u, 0x08B1568Cu, 0x0889CFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 201u, 0x0889CFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1568Cu) goto L_08B1568C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1568C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3638,8 +4052,8 @@ L_08B15694: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B156A8: @@ -3655,15 +4069,41 @@ L_08B156C8: aot_gpr_5 = (ctx.gpr[28] + static_cast(2876)); aot_gpr_31 = (0x08B156D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 286u, 0x08B156D4u, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B156D4u) goto L_08B156D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B156D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u + static_cast(-1)); aot_gpr_31 = (0x08B156E4u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 287u, 0x08B156E4u, 0x088071ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 459u, 0x088071ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B156E4u) goto L_08B156E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B156E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B156F0u); @@ -3687,8 +4127,21 @@ L_08B15704: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B15710u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 291u, 0x08B15710u, 0x088079D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 555u, 0x088079D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15710u) goto L_08B15710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15710: aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(0), ctx.gpr[16]); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -3700,8 +4153,21 @@ L_08B15720: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1572Cu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 293u, 0x08B1572Cu, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1572Cu) goto L_08B1572C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1572C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B15738u); @@ -3713,14 +4179,40 @@ L_08B15738: aot_gpr_5 = (0u + static_cast(-3)); aot_gpr_31 = (0x08B15748u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 295u, 0x08B15748u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15748u) goto L_08B15748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15748: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B15754u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 296u, 0x08B15754u, 0x088066C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 310u, 0x088066C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15754u) goto L_08B15754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15754: aot_gpr_31 = (0x08B1575Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -3735,8 +4227,8 @@ L_08B1575C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15770: @@ -3746,14 +4238,40 @@ L_08B15770: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B1578Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(3120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 299u, 0x08B1578Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1578Cu) goto L_08B1578C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1578C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B15798u); aot_gpr_5 = (0u + static_cast(-10001)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 300u, 0x08B15798u, 0x088070DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 453u, 0x088070DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15798u) goto L_08B15798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15798: ctx.gpr[17] = (0u | 1u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -3772,8 +4290,21 @@ L_08B157B8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B157C8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 303u, 0x08B157C8u, 0x08807644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 508u, 0x08807644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B157C8u) goto L_08B157C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B157C8: aot_gpr_2 = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3784,8 +4315,8 @@ L_08B157C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B157E0: @@ -3807,8 +4338,21 @@ L_08B15810: aot_gpr_5 = (aot_gpr_5 & 65535u); aot_gpr_31 = (0x08B15824u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 306u, 0x08B15824u, 0x08ADC7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 155u, 0x08ADC7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15824u) goto L_08B15824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15824: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -3846,8 +4390,8 @@ L_08B15860: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1587C: @@ -3866,8 +4410,21 @@ L_08B158AC: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_31 = (0x08B158B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 312u, 0x08B158B8u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B158B8u) goto L_08B158B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B158B8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -3905,8 +4462,8 @@ L_08B158F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15910: @@ -3925,8 +4482,21 @@ L_08B15940: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_31 = (0x08B1594Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 318u, 0x08B1594Cu, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1594Cu) goto L_08B1594C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1594C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 24u); @@ -3967,8 +4537,8 @@ L_08B15994: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B159B0: @@ -3987,8 +4557,21 @@ L_08B159E0: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_31 = (0x08B159ECu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 324u, 0x08B159ECu, 0x08ADC7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 156u, 0x08ADC7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B159ECu) goto L_08B159EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B159EC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -4026,8 +4609,8 @@ L_08B15A28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15A44: @@ -4042,8 +4625,21 @@ L_08B15A44: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B15A90u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 329u, 0x08B15A90u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15A90u) goto L_08B15A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15A90: aot_gpr_4 = (16544u << 16u); aot_fpr_20 = std::bit_cast(aot_gpr_4); @@ -4083,8 +4679,21 @@ L_08B15AF0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B15AFCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 333u, 0x08B15AFCu, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15AFCu) goto L_08B15AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15AFC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4097,8 +4706,21 @@ L_08B15B04: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B15B14u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 335u, 0x08B15B14u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15B14u) goto L_08B15B14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15B14: ctx.gpr[21] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[21] == 0u; @@ -4119,8 +4741,21 @@ L_08B15B2C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B15B3Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 338u, 0x08B15B3Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15B3Cu) goto L_08B15B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15B3C: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(64))); @@ -4218,8 +4853,8 @@ L_08B15BAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15BDC: @@ -4241,8 +4876,21 @@ L_08B15C1C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B15C3Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 348u, 0x08B15C3Cu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15C3Cu) goto L_08B15C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15C3C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_4 = (49864u << 16u); @@ -4279,8 +4927,21 @@ L_08B15C84: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08B15C9Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 352u, 0x08B15C9Cu, 0x08932014u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 406u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 406u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 406u, 0x08932014u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15C9Cu) goto L_08B15C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15C9C: { const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4333,8 +4994,21 @@ L_08B15CF8: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08B15D08u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 357u, 0x08B15D08u, 0x08ADC0D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 10u, 0x08ADC0D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15D08u) goto L_08B15D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15D08: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4347,8 +5021,21 @@ L_08B15D10: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B15D20u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 359u, 0x08B15D20u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15D20u) goto L_08B15D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15D20: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4390,8 +5077,21 @@ L_08B15D50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B15D60u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 365u, 0x08B15D60u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15D60u) goto L_08B15D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15D60: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(80))); @@ -4506,8 +5206,8 @@ L_08B15E04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15E34: @@ -4520,8 +5220,8 @@ L_08B15E44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15E50: @@ -4564,8 +5264,21 @@ L_08B15E80: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B15E90u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 383u, 0x08B15E90u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15E90u) goto L_08B15E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15E90: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -4595,8 +5308,21 @@ L_08B15EB8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); aot_gpr_31 = (0x08B15EC8u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 387u, 0x08B15EC8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15EC8u) goto L_08B15EC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15EC8: aot_gpr_2 = (0u < aot_gpr_2 ? 1u : 0u); goto L_08B15ECC; @@ -4605,8 +5331,8 @@ L_08B15ECC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15EDC: @@ -4649,8 +5375,21 @@ L_08B15F0C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B15F1Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 394u, 0x08B15F1Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15F1Cu) goto L_08B15F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15F1C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -4680,8 +5419,21 @@ L_08B15F44: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(3)))))); aot_gpr_31 = (0x08B15F54u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 398u, 0x08B15F54u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15F54u) goto L_08B15F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15F54: aot_gpr_2 = (aot_gpr_2 < static_cast(1) ? 1u : 0u); goto L_08B15F58; @@ -4690,8 +5442,8 @@ L_08B15F58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15F68: @@ -4705,8 +5457,8 @@ L_08B15F7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15F88: @@ -4720,22 +5472,35 @@ L_08B15F9C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15FA8: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B15FB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 405u, 0x08B15FB8u, 0x08B10FA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 239u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 239u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 239u, 0x08B10FA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15FB8u) goto L_08B15FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15FB8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B15FC4: @@ -4746,8 +5511,21 @@ L_08B15FC4: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B15FE8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 407u, 0x08B15FE8u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B15FE8u) goto L_08B15FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B15FE8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4763,8 +5541,21 @@ L_08B15FF8: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B16004u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 410u, 0x08B16004u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16004u) goto L_08B16004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16004: if (aot_gpr_2 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); @@ -4824,8 +5615,21 @@ L_08B1605C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B1607Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 417u, 0x08B1607Cu, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1607Cu) goto L_08B1607C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1607C: aot_gpr_2 = (ctx.gpr[18] | 0u); goto L_08B16080; @@ -4839,8 +5643,8 @@ L_08B16080: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16098: @@ -4851,8 +5655,21 @@ L_08B16098: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B160BCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 420u, 0x08B160BCu, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B160BCu) goto L_08B160BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B160BC: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -4868,8 +5685,21 @@ L_08B160CC: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B160D8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 423u, 0x08B160D8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B160D8u) goto L_08B160D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B160D8: if (aot_gpr_2 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1152))); @@ -4926,8 +5756,21 @@ L_08B16124: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16144u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 430u, 0x08B16144u, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16144u) goto L_08B16144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16144: aot_gpr_2 = (ctx.gpr[18] | 0u); goto L_08B16148; @@ -4941,8 +5784,8 @@ L_08B16148: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16160: @@ -4979,8 +5822,21 @@ L_08B161B4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B161C4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 437u, 0x08B161C4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B161C4u) goto L_08B161C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B161C4: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4992,8 +5848,21 @@ L_08B161C4: L_08B161D0: aot_gpr_31 = (0x08B161D8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 439u, 0x08B161D8u, 0x088242B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 30u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 30u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 30u, 0x088242B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B161D8u) goto L_08B161D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B161D8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B161E4u); @@ -5022,8 +5891,8 @@ L_08B161F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1620C: @@ -5069,8 +5938,21 @@ L_08B16268: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B16278u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 449u, 0x08B16278u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16278u) goto L_08B16278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16278: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -5141,8 +6023,21 @@ L_08B162D4: L_08B162D8: aot_gpr_31 = (0x08B162E0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(112))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 461u, 0x08B162E0u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B162E0u) goto L_08B162E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B162E0: aot_gpr_4 = (aot_gpr_2 << 4u); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -5178,8 +6073,8 @@ L_08B16324: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16340: @@ -5249,8 +6144,21 @@ L_08B163C0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B163D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 475u, 0x08B163D0u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B163D0u) goto L_08B163D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B163D0: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5286,8 +6194,21 @@ L_08B16404: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(112))); aot_gpr_31 = (0x08B16410u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 481u, 0x08B16410u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16410u) goto L_08B16410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16410: aot_gpr_2 = (0u | 0u); goto L_08B16414; @@ -5302,8 +6223,8 @@ L_08B16414: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16430: @@ -5340,8 +6261,21 @@ L_08B16484: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B16494u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 488u, 0x08B16494u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16494u) goto L_08B16494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16494: ctx.gpr[19] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5353,8 +6287,21 @@ L_08B16494: L_08B164A0: aot_gpr_31 = (0x08B164A8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 490u, 0x08B164A8u, 0x08824300u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 34u, 0x08824300u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B164A8u) goto L_08B164A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B164A8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B164B4u); @@ -5383,8 +6330,8 @@ L_08B164C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B164DC: @@ -5421,8 +6368,21 @@ L_08B16534: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B16544u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 499u, 0x08B16544u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16544u) goto L_08B16544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16544: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -5445,8 +6405,21 @@ L_08B1655C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1656Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 502u, 0x08B1656Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1656Cu) goto L_08B1656C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1656C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -5474,8 +6447,21 @@ L_08B16590: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(3)))))); aot_gpr_31 = (0x08B1659Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 506u, 0x08B1659Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1659Cu) goto L_08B1659C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1659C: aot_gpr_4 = (aot_gpr_2 | 0u); goto L_08B165A0; @@ -5498,8 +6484,21 @@ L_08B165B4: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08B165C4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 510u, 0x08B165C4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B165C4u) goto L_08B165C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B165C4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -5527,8 +6526,21 @@ L_08B165E8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(3)))))); aot_gpr_31 = (0x08B165F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 514u, 0x08B165F4u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B165F4u) goto L_08B165F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B165F4: ctx.gpr[17] = (aot_gpr_2 | 0u); goto L_08B165F8; @@ -5536,8 +6548,21 @@ L_08B165F8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16604u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 516u, 0x08B16604u, 0x08B10EBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 225u, 0x08B10EBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16604u) goto L_08B16604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16604: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[19] | 0u); @@ -5561,8 +6586,8 @@ L_08B16610: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16630: @@ -5641,8 +6666,8 @@ L_08B166B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B166C8: @@ -5654,8 +6679,21 @@ L_08B166C8: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B166F4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 531u, 0x08B166F4u, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B166F4u) goto L_08B166F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B166F4: ctx.gpr[19] = (0u | 1u); ctx.gpr[18] = (0u | 0u); @@ -5690,8 +6728,21 @@ L_08B16740: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1674Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 535u, 0x08B1674Cu, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1674Cu) goto L_08B1674C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1674C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5710,8 +6761,21 @@ L_08B16760: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16774u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 538u, 0x08B16774u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16774u) goto L_08B16774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16774: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); { const bool branch_taken = 0u == 0u; @@ -5733,8 +6797,8 @@ L_08B16780: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B167A0: @@ -5746,8 +6810,21 @@ L_08B167A0: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B167CCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 541u, 0x08B167CCu, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B167CCu) goto L_08B167CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B167CC: ctx.gpr[19] = (0u | 1u); ctx.gpr[18] = (0u | 0u); @@ -5789,8 +6866,21 @@ L_08B16820: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1682Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 546u, 0x08B1682Cu, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1682Cu) goto L_08B1682C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1682C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -5809,8 +6899,21 @@ L_08B16840: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16854u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 549u, 0x08B16854u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16854u) goto L_08B16854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16854: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); { const bool branch_taken = 0u == 0u; @@ -5832,8 +6935,8 @@ L_08B16860: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16880: @@ -5872,8 +6975,21 @@ L_08B168CC: ctx.gpr[20] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B168DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 556u, 0x08B168DCu, 0x08807220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 462u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 462u, 0x08807220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B168DCu) goto L_08B168DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B168DC: ctx.gpr[19] = (ctx.gpr[21] | 0u); ctx.gpr[18] = (0u | 0u); @@ -5910,8 +7026,21 @@ L_08B16930: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1693Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 560u, 0x08B1693Cu, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1693Cu) goto L_08B1693C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1693C: { const bool branch_taken = aot_gpr_2 == 0u; aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -5923,8 +7052,21 @@ L_08B1693C: L_08B16944: aot_gpr_31 = (0x08B1694Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 562u, 0x08B1694Cu, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1694Cu) goto L_08B1694C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1694C: { const bool branch_taken = aot_gpr_2 != ctx.gpr[20]; if (branch_taken) { @@ -5943,8 +7085,21 @@ L_08B16960: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16974u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 565u, 0x08B16974u, 0x0880748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 489u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 489u, 0x0880748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16974u) goto L_08B16974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16974: ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); { const bool branch_taken = 0u == 0u; @@ -5970,8 +7125,8 @@ L_08B16984: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B169A8: @@ -5982,8 +7137,21 @@ L_08B169A8: ctx.gpr[19] = (0u | 1u); aot_gpr_31 = (0x08B169D0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 569u, 0x08B169D0u, 0x08806984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 344u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 344u, 0x08806984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B169D0u) goto L_08B169D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B169D0: ctx.gpr[18] = (2237u << 16u); { const bool branch_taken = aot_gpr_2 != 0u; @@ -6018,14 +7186,40 @@ L_08B16A00: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16A0Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 574u, 0x08B16A0Cu, 0x08806B2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 375u, 0x08806B2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16A0Cu) goto L_08B16A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16A0C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B16A18u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 575u, 0x08B16A18u, 0x08ADC18Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 24u, 0x08ADC18Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16A18u) goto L_08B16A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16A18: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -6046,8 +7240,21 @@ L_08B16A30: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B16A3Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 579u, 0x08B16A3Cu, 0x08ADC150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 20u, 0x08ADC150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16A3Cu) goto L_08B16A3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16A3C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -6059,14 +7266,40 @@ L_08B16A44: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B16A50u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 581u, 0x08B16A50u, 0x08ADC204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 32u, 0x08ADC204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16A50u) goto L_08B16A50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16A50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16A5Cu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 582u, 0x08B16A5Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16A5Cu) goto L_08B16A5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16A5C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6078,8 +7311,21 @@ L_08B16A64: aot_gpr_5 = (ctx.gpr[28] + static_cast(3132)); aot_gpr_31 = (0x08B16A70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 584u, 0x08B16A70u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16A70u) goto L_08B16A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16A70: aot_gpr_2 = (ctx.gpr[19] | 0u); goto L_08B16A74; @@ -6094,8 +7340,8 @@ L_08B16A74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16A90: @@ -6145,8 +7391,8 @@ L_08B16AF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16B0C: @@ -6182,14 +7428,40 @@ L_08B16B60: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B16B6Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 597u, 0x08B16B6Cu, 0x08ADC4C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 91u, 0x08ADC4C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16B6Cu) goto L_08B16B6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16B6C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16B78u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 598u, 0x08B16B78u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16B78u) goto L_08B16B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16B78: aot_gpr_2 = (ctx.gpr[17] | 0u); { std::uint32_t aot_run_words[5]{}; @@ -6202,8 +7474,8 @@ L_08B16B78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16B98: @@ -6239,8 +7511,21 @@ L_08B16BEC: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B16BF8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 604u, 0x08B16BF8u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16BF8u) goto L_08B16BF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16BF8: aot_fpr_12 = std::bit_cast(aot_gpr_2); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -6260,8 +7545,8 @@ L_08B16C08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16C28: @@ -6297,8 +7582,21 @@ L_08B16C7C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B16C88u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 611u, 0x08B16C88u, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16C88u) goto L_08B16C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16C88: { const bool branch_taken = aot_gpr_2 != 0u; ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); @@ -6372,8 +7670,8 @@ L_08B16CF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16D18: @@ -6403,8 +7701,21 @@ L_08B16D54: L_08B16D58: aot_gpr_31 = (0x08B16D60u); aot_gpr_5 = (ctx.gpr[17] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 627u, 0x08B16D60u, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16D60u) goto L_08B16D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16D60: aot_gpr_4 = (aot_gpr_2 | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(40))); @@ -6464,8 +7775,8 @@ L_08B16DC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16DE0: @@ -6482,8 +7793,21 @@ L_08B16E00: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08B16E10u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 636u, 0x08B16E10u, 0x08ADC150u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 20u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 20u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 20u, 0x08ADC150u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16E10u) goto L_08B16E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16E10: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16E1Cu); @@ -6500,8 +7824,8 @@ L_08B16E1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16E34: @@ -6511,15 +7835,41 @@ L_08B16E34: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B16E58u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 639u, 0x08B16E58u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16E58u) goto L_08B16E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16E58: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16E68u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 640u, 0x08B16E68u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16E68u) goto L_08B16E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16E68: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (49864u << 16u); @@ -6540,8 +7890,21 @@ L_08B16E88: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16E94u); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 643u, 0x08B16E94u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16E94u) goto L_08B16E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16E94: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B16E98; @@ -6552,8 +7915,21 @@ L_08B16E98: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B16EB4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 645u, 0x08B16EB4u, 0x08ADDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 516u, 0x08ADDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16EB4u) goto L_08B16EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16EB4: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -6566,8 +7942,8 @@ L_08B16EB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16ED4: @@ -6584,8 +7960,8 @@ L_08B16EEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16EFC: @@ -6643,8 +8019,8 @@ L_08B16F54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B16F6C: @@ -6657,15 +8033,41 @@ L_08B16F6C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16F9Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 656u, 0x08B16F9Cu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16F9Cu) goto L_08B16F9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16F9C: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); aot_gpr_5 = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B16FACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 657u, 0x08B16FACu, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16FACu) goto L_08B16FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16FAC: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B16FB8u); @@ -6676,8 +8078,21 @@ L_08B16FB8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B16FC8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 659u, 0x08B16FC8u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B16FC8u) goto L_08B16FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B16FC8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6739,8 +8154,21 @@ L_08B17030: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08B17040u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 666u, 0x08B17040u, 0x08ADCEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 264u, 0x08ADCEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17040u) goto L_08B17040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17040: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B1704Cu); @@ -6773,8 +8201,21 @@ L_08B17068: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B17074u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 671u, 0x08B17074u, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17074u) goto L_08B17074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17074: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(104))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(104))); @@ -6783,21 +8224,60 @@ L_08B17074: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(104))); aot_gpr_31 = (0x08B17090u); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 672u, 0x08B17090u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17090u) goto L_08B17090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17090: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(104))); aot_gpr_31 = (0x08B1709Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(104))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 673u, 0x08B1709Cu, 0x0892BA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 878u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 878u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 878u, 0x0892BA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1709Cu) goto L_08B1709C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1709C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(104))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2116), 0u); aot_gpr_31 = (0x08B170ACu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(104))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 674u, 0x08B170ACu, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B170ACu) goto L_08B170AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B170AC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B170B8u); @@ -6807,13 +8287,39 @@ L_08B170AC: L_08B170B8: aot_gpr_31 = (0x08B170C0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 676u, 0x08B170C0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B170C0u) goto L_08B170C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B170C0: aot_gpr_31 = (0x08B170C8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 677u, 0x08B170C8u, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B170C8u) goto L_08B170C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B170C8: { const bool branch_taken = aot_gpr_2 != 0u; if (branch_taken) { @@ -6825,13 +8331,39 @@ L_08B170D0: ctx.gpr[16] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B170DCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 679u, 0x08B170DCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B170DCu) goto L_08B170DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B170DC: aot_gpr_31 = (0x08B170E4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 680u, 0x08B170E4u, 0x08AD3578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 587u, 0x08AD3578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B170E4u) goto L_08B170E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B170E4: aot_gpr_4 = (2236u << 16u); ctx.gpr[16] = (aot_gpr_4 + static_cast(32304)); @@ -6840,20 +8372,59 @@ L_08B170E4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B17100u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 681u, 0x08B17100u, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17100u) goto L_08B17100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17100: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B17110u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 682u, 0x08B17110u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17110u) goto L_08B17110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17110: aot_gpr_31 = (0x08B17118u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 683u, 0x08B17118u, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17118u) goto L_08B17118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17118: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6861,8 +8432,21 @@ L_08B17118: ctx.gpr[16] = (0u | 1u); aot_gpr_31 = (0x08B17130u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 684u, 0x08B17130u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17130u) goto L_08B17130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17130: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[16] | 0u); @@ -6882,8 +8466,8 @@ L_08B17138: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17154: @@ -6915,8 +8499,8 @@ L_08B1718C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1719C: @@ -6924,15 +8508,28 @@ L_08B1719C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B171ACu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 691u, 0x08B171ACu, 0x08946EA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 571u, 0x08946EA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B171ACu) goto L_08B171AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B171AC: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B171BC: @@ -7019,8 +8616,8 @@ L_08B1723C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17248: @@ -7030,8 +8627,21 @@ L_08B17248: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B17268u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 705u, 0x08B17268u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17268u) goto L_08B17268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17268: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); @@ -7064,8 +8674,21 @@ L_08B1727C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B172D8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 707u, 0x08B172D8u, 0x08ADC0B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 8u, 0x08ADC0B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B172D8u) goto L_08B172D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B172D8: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7086,8 +8709,21 @@ L_08B172F8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B17308u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 710u, 0x08B17308u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17308u) goto L_08B17308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17308: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -7099,8 +8735,8 @@ L_08B17308: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17324: @@ -7110,8 +8746,21 @@ L_08B17324: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B17344u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 712u, 0x08B17344u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17344u) goto L_08B17344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17344: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); @@ -7144,8 +8793,21 @@ L_08B17358: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B173B4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 714u, 0x08B173B4u, 0x08ADC0B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 8u, 0x08ADC0B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B173B4u) goto L_08B173B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B173B4: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7166,8 +8828,21 @@ L_08B173D4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B173E4u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 717u, 0x08B173E4u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B173E4u) goto L_08B173E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B173E4: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -7179,8 +8854,8 @@ L_08B173E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17400: @@ -7229,8 +8904,8 @@ L_08B1744C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1745C: @@ -7257,8 +8932,8 @@ L_08B1746C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B174AC: @@ -7291,8 +8966,21 @@ L_08B174E4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B1752Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 729u, 0x08B1752Cu, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1752Cu) goto L_08B1752C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1752C: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7300,8 +8988,21 @@ L_08B1752C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B17544u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 730u, 0x08B17544u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17544u) goto L_08B17544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17544: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -7371,8 +9072,8 @@ L_08B175A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B175C0: @@ -7388,8 +9089,21 @@ L_08B175E0: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B175ECu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 737u, 0x08B175ECu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B175ECu) goto L_08B175EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B175EC: ctx.gpr[1] = (aot_mem.aot_direct_load_word_right(ctx.gpr[17] + static_cast(3), ctx.gpr[1])); ctx.gpr[1] = (aot_mem.aot_direct_load_word_left(ctx.gpr[17] + static_cast(6), ctx.gpr[1])); @@ -7417,8 +9131,21 @@ L_08B17614: L_08B17620: aot_fpr_12 = aot_fpr_13 / aot_fpr_12; aot_gpr_31 = (0x08B1762Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 740u, 0x08B1762Cu, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1762Cu) goto L_08B1762C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1762C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7437,8 +9164,21 @@ L_08B17634: aot_fpr_12 = aot_fpr_13 / aot_fpr_12; aot_gpr_31 = (0x08B1765Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 742u, 0x08B1765Cu, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1765Cu) goto L_08B1765C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1765C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7448,8 +9188,8 @@ L_08B1765C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17670: @@ -7468,8 +9208,21 @@ L_08B17690: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B176ACu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 745u, 0x08B176ACu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B176ACu) goto L_08B176AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B176AC: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B176B8u); @@ -7551,8 +9304,21 @@ L_08B177A0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B177B0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 750u, 0x08B177B0u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B177B0u) goto L_08B177B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B177B0: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -7564,8 +9330,8 @@ L_08B177B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B177CC: @@ -7623,8 +9389,21 @@ L_08B17854: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B17864u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 757u, 0x08B17864u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17864u) goto L_08B17864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17864: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -7636,8 +9415,8 @@ L_08B17864: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17880: @@ -7700,8 +9479,8 @@ L_08B178E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B178F8: @@ -7742,8 +9521,21 @@ L_08B17940: L_08B1794C: aot_gpr_31 = (0x08B17954u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 771u, 0x08B17954u, 0x0898BC8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 980u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 980u, 0x0898BC8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17954u) goto L_08B17954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17954: if (aot_gpr_2 != 0u) { ctx.gpr[18] = (ctx.gpr[17] | 0u); @@ -7758,8 +9550,21 @@ L_08B1795C: L_08B17964: aot_gpr_31 = (0x08B1796Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 774u, 0x08B1796Cu, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1796Cu) goto L_08B1796C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1796C: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7800,8 +9605,8 @@ L_08B17990: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B179A8: @@ -7842,8 +9647,21 @@ L_08B179F0: L_08B179FC: aot_gpr_31 = (0x08B17A04u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 786u, 0x08B17A04u, 0x0898BCACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 984u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 984u, 0x0898BCACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17A04u) goto L_08B17A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17A04: if (aot_gpr_2 != 0u) { ctx.gpr[18] = (ctx.gpr[17] | 0u); @@ -7858,8 +9676,21 @@ L_08B17A0C: L_08B17A14: aot_gpr_31 = (0x08B17A1Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 789u, 0x08B17A1Cu, 0x0898C420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 100u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 100u, 0x0898C420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17A1Cu) goto L_08B17A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17A1C: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -7900,8 +9731,8 @@ L_08B17A40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17A58: @@ -7942,8 +9773,21 @@ L_08B17AA0: L_08B17AAC: aot_gpr_31 = (0x08B17AB4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 801u, 0x08B17AB4u, 0x0898BC4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 972u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 972u, 0x0898BC4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17AB4u) goto L_08B17AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17AB4: if (aot_gpr_2 != 0u) { ctx.gpr[18] = (ctx.gpr[17] | 0u); @@ -7958,8 +9802,21 @@ L_08B17ABC: L_08B17AC4: aot_gpr_31 = (0x08B17ACCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 804u, 0x08B17ACCu, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17ACCu) goto L_08B17ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17ACC: { const bool branch_taken = static_cast(aot_gpr_2) >= 0; aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8000,8 +9857,8 @@ L_08B17AF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17B08: @@ -8042,8 +9899,21 @@ L_08B17B50: L_08B17B5C: aot_gpr_31 = (0x08B17B64u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 816u, 0x08B17B64u, 0x0898BC6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 976u, 0x0898BC6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17B64u) goto L_08B17B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17B64: if (aot_gpr_2 != 0u) { ctx.gpr[18] = (ctx.gpr[17] | 0u); @@ -8058,8 +9928,21 @@ L_08B17B6C: L_08B17B74: aot_gpr_31 = (0x08B17B7Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 819u, 0x08B17B7Cu, 0x0898C604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 134u, 0x0898C604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17B7Cu) goto L_08B17B7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17B7C: { const bool branch_taken = static_cast(aot_gpr_2) <= 0; aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8100,8 +9983,8 @@ L_08B17BA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17BB8: @@ -8164,8 +10047,8 @@ L_08B17C1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17C30: @@ -8228,8 +10111,8 @@ L_08B17C94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17CA8: @@ -8292,8 +10175,8 @@ L_08B17D0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17D20: @@ -8312,8 +10195,21 @@ L_08B17D40: L_08B17D48: aot_gpr_31 = (0x08B17D50u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 853u, 0x08B17D50u, 0x089476E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 710u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 710u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 710u, 0x089476E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17D50u) goto L_08B17D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17D50: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B17D5Cu); @@ -8330,8 +10226,8 @@ L_08B17D5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17D74: @@ -8347,15 +10243,28 @@ L_08B17D84: L_08B17D8C: aot_gpr_31 = (0x08B17D94u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 858u, 0x08B17D94u, 0x08947890u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 736u, 0x08947890u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17D94u) goto L_08B17D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17D94: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17DA4: @@ -8371,15 +10280,28 @@ L_08B17DB4: L_08B17DBC: aot_gpr_31 = (0x08B17DC4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 862u, 0x08B17DC4u, 0x08947870u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 733u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 733u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 733u, 0x08947870u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17DC4u) goto L_08B17DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17DC4: aot_gpr_2 = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17DD4: @@ -8409,8 +10331,8 @@ L_08B17E00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17E1C: @@ -8439,8 +10361,21 @@ L_08B17E4C: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B17E60u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 870u, 0x08B17E60u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17E60u) goto L_08B17E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17E60: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8461,8 +10396,21 @@ L_08B17E78: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B17E88u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 873u, 0x08B17E88u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17E88u) goto L_08B17E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17E88: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -8503,8 +10451,8 @@ L_08B17EC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17ED8: @@ -8551,8 +10499,8 @@ L_08B17F20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B17F38: @@ -8612,8 +10560,21 @@ L_08B17FBC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B17FC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 892u, 0x08B17FC8u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17FC8u) goto L_08B17FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17FC8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8634,8 +10595,21 @@ L_08B17FE0: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B17FF0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0196->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0196_entry, 895u, 0x08B17FF0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B17FF0u) goto L_08B17FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B17FF0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); diff --git a/profiles/vcs/generated/generated_unit_0197.cpp b/profiles/vcs/generated/generated_unit_0197.cpp index 8304908..21c406e 100644 --- a/profiles/vcs/generated/generated_unit_0197.cpp +++ b/profiles/vcs/generated/generated_unit_0197.cpp @@ -990,6 +990,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B18000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1031,8 +1055,8 @@ L_08B1801C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18034: @@ -1042,8 +1066,21 @@ L_08B18034: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B18058u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 6u, 0x08B18058u, 0x08B15604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 274u, 0x08B15604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18058u) goto L_08B18058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18058: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1055,8 +1092,21 @@ L_08B18060: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1806Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 8u, 0x08B1806Cu, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1806Cu) goto L_08B1806C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1806C: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (2237u << 16u); @@ -1065,16 +1115,42 @@ L_08B1806C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B18088u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 9u, 0x08B18088u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18088u) goto L_08B18088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18088: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B1809Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 10u, 0x08B1809Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1809Cu) goto L_08B1809C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1809C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -1154,8 +1230,21 @@ L_08B1811C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1812Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 19u, 0x08B1812Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1812Cu) goto L_08B1812C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1812C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -1177,8 +1266,21 @@ L_08B1814C: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08B1815Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 23u, 0x08B1815Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1815Cu) goto L_08B1815C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1815C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -1206,8 +1308,21 @@ L_08B18188: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08B18198u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 27u, 0x08B18198u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18198u) goto L_08B18198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18198: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -1236,8 +1351,21 @@ L_08B181C8: aot_gpr_6 = (aot_gpr_29 + static_cast(19)); aot_gpr_31 = (0x08B181D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 31u, 0x08B181D8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B181D8u) goto L_08B181D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B181D8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(19))); @@ -1302,8 +1430,8 @@ L_08B18230: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1824C: @@ -1396,8 +1524,8 @@ L_08B182F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18314: @@ -1407,8 +1535,21 @@ L_08B18314: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B18330u); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 53u, 0x08B18330u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18330u) goto L_08B18330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18330: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B1833Cu); @@ -1440,14 +1581,40 @@ L_08B18358: L_08B18360: aot_gpr_31 = (0x08B18368u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 58u, 0x08B18368u, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18368u) goto L_08B18368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18368: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18374u); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 59u, 0x08B18374u, 0x088067C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 320u, 0x088067C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18374u) goto L_08B18374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18374: ctx.gpr[2] = (0u | 0u); goto L_08B18378; @@ -1460,8 +1627,8 @@ L_08B18378: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1838C: @@ -1471,8 +1638,21 @@ L_08B1838C: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B183A4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 62u, 0x08B183A4u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B183A4u) goto L_08B183A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B183A4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -1500,22 +1680,61 @@ L_08B183D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B183DCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 66u, 0x08B183DCu, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B183DCu) goto L_08B183DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B183DC: aot_gpr_5 = (2226u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-31980)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B183F0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 67u, 0x08B183F0u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B183F0u) goto L_08B183F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B183F0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B183FCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 68u, 0x08B183FCu, 0x08872848u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 607u, 0x08872848u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B183FCu) goto L_08B183FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B183FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1531,8 +1750,8 @@ L_08B18408: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18418: @@ -1542,8 +1761,21 @@ L_08B18418: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B18438u); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 72u, 0x08B18438u, 0x08806C5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 397u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 397u, 0x08806C5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18438u) goto L_08B18438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18438: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B18444u); @@ -1563,8 +1795,21 @@ L_08B18450: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x08B18468u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 75u, 0x08B18468u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18468u) goto L_08B18468; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18468: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(8))); aot_fpr_12 = aot_fpr_12 - ctx.fpr[0]; @@ -1611,14 +1856,40 @@ L_08B184B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B184C4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 81u, 0x08B184C4u, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B184C4u) goto L_08B184C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B184C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B184D0u); aot_gpr_5 = (0u + static_cast(-10002)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 82u, 0x08B184D0u, 0x088067C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 320u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 320u, 0x088067C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B184D0u) goto L_08B184D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B184D0: ctx.gpr[2] = (0u | 0u); goto L_08B184D4; @@ -1632,8 +1903,8 @@ L_08B184D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B184EC: @@ -1643,8 +1914,21 @@ L_08B184EC: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B18504u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 85u, 0x08B18504u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18504u) goto L_08B18504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18504: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -1672,22 +1956,61 @@ L_08B18530: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1853Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 89u, 0x08B1853Cu, 0x088070BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 452u, 0x088070BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1853Cu) goto L_08B1853C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1853C: aot_gpr_5 = (2226u << 16u); aot_gpr_5 = (aot_gpr_5 + static_cast(-31720)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18550u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 90u, 0x08B18550u, 0x08806FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 444u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 444u, 0x08806FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18550u) goto L_08B18550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18550: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1855Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 91u, 0x08B1855Cu, 0x08872848u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 607u, 0x08872848u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1855Cu) goto L_08B1855C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1855C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1703,8 +2026,8 @@ L_08B18568: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18578: @@ -1713,8 +2036,21 @@ L_08B18578: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B1859Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 95u, 0x08B1859Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1859Cu) goto L_08B1859C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1859C: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -1760,34 +2096,112 @@ L_08B185D8: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(1752), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B185E4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 101u, 0x08B185E4u, 0x088327B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 576u, 0x088327B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B185E4u) goto L_08B185E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B185E4: aot_gpr_31 = (0x08B185ECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 102u, 0x08B185ECu, 0x088331D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 711u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 711u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 711u, 0x088331D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B185ECu) goto L_08B185EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B185EC: aot_gpr_31 = (0x08B185F4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 103u, 0x08B185F4u, 0x08832FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 681u, 0x08832FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B185F4u) goto L_08B185F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B185F4: aot_gpr_31 = (0x08B185FCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 104u, 0x08B185FCu, 0x088330BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 696u, 0x088330BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B185FCu) goto L_08B185FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B185FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B18608u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 105u, 0x08B18608u, 0x08B15544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 260u, 0x08B15544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18608u) goto L_08B18608; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18608: aot_gpr_31 = (0x08B18610u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 106u, 0x08B18610u, 0x089F79E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 704u, 0x089F79E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18610u) goto L_08B18610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18610: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1799,19 +2213,58 @@ L_08B18618: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(1400), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B18624u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 108u, 0x08B18624u, 0x08A5959Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 311u, 0x08A5959Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18624u) goto L_08B18624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18624: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B18630u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 109u, 0x08B18630u, 0x08B15544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 260u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 260u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 260u, 0x08B15544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18630u) goto L_08B18630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18630: aot_gpr_31 = (0x08B18638u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 110u, 0x08B18638u, 0x08AA5240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 178u, 0x08AA5240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18638u) goto L_08B18638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18638: aot_gpr_4 = (17530u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1836,8 +2289,8 @@ L_08B18658: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18674: @@ -1846,8 +2299,21 @@ L_08B18674: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B18690u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 114u, 0x08B18690u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18690u) goto L_08B18690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18690: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1892,8 +2358,8 @@ L_08B186CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B186E0: @@ -1902,8 +2368,21 @@ L_08B186E0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B18700u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 121u, 0x08B18700u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18700u) goto L_08B18700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18700: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2046,8 +2525,8 @@ L_08B1880C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18824: @@ -2059,13 +2538,39 @@ L_08B18824: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08B18844u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 137u, 0x08B18844u, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18844u) goto L_08B18844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18844: aot_gpr_31 = (0x08B1884Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 138u, 0x08B1884Cu, 0x08B15E50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 378u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 378u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 378u, 0x08B15E50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1884Cu) goto L_08B1884C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1884C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18858u); @@ -2078,8 +2583,8 @@ L_08B18858: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1886C: @@ -2118,8 +2623,8 @@ L_08B188B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B188C4: @@ -2132,15 +2637,28 @@ L_08B188D4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B188E0u); aot_gpr_5 = (0u | 30000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 147u, 0x08B188E0u, 0x089477FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 726u, 0x089477FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B188E0u) goto L_08B188E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B188E0: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B188F0: @@ -2157,8 +2675,8 @@ L_08B18900: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1891C: @@ -2176,8 +2694,8 @@ L_08B1892C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1894C: @@ -2193,8 +2711,21 @@ L_08B1894C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18988u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 153u, 0x08B18988u, 0x08B15604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 274u, 0x08B15604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18988u) goto L_08B18988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18988: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2206,8 +2737,21 @@ L_08B18990: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1899Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 155u, 0x08B1899Cu, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1899Cu) goto L_08B1899C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1899C: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_08B189A0; @@ -2215,8 +2759,21 @@ L_08B189A0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B189ACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 157u, 0x08B189ACu, 0x08ADC120u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 16u, 0x08ADC120u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B189ACu) goto L_08B189AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B189AC: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -2237,8 +2794,21 @@ L_08B189C4: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B189D4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 160u, 0x08B189D4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B189D4u) goto L_08B189D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B189D4: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -2267,8 +2837,21 @@ L_08B189FC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(3)))))); aot_gpr_31 = (0x08B18A08u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 164u, 0x08B18A08u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18A08u) goto L_08B18A08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18A08: ctx.gpr[19] = (ctx.gpr[2] | 0u); goto L_08B18A0C; @@ -2330,8 +2913,8 @@ L_08B18A54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18A70: @@ -2347,8 +2930,21 @@ L_08B18A70: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18AACu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 174u, 0x08B18AACu, 0x08B15604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 274u, 0x08B15604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18AACu) goto L_08B18AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18AAC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2360,8 +2956,21 @@ L_08B18AB4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18AC0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 176u, 0x08B18AC0u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18AC0u) goto L_08B18AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18AC0: ctx.gpr[18] = (ctx.gpr[2] | 0u); goto L_08B18AC4; @@ -2369,8 +2978,21 @@ L_08B18AC4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B18AD0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 178u, 0x08B18AD0u, 0x08ADD774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 396u, 0x08ADD774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18AD0u) goto L_08B18AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18AD0: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); @@ -2390,8 +3012,8 @@ L_08B18AE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18B00: @@ -2406,8 +3028,21 @@ L_08B18B24: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B18B30u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 182u, 0x08B18B30u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18B30u) goto L_08B18B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18B30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2533,8 +3168,21 @@ L_08B18C08: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); aot_gpr_31 = (0x08B18C1Cu); ctx.gpr[19] = (ctx.gpr[17] + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 199u, 0x08B18C1Cu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18C1Cu) goto L_08B18C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18C1C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -2570,8 +3218,21 @@ L_08B18C44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18C50u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 204u, 0x08B18C50u, 0x08B10EBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 225u, 0x08B10EBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18C50u) goto L_08B18C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18C50: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -2594,8 +3255,8 @@ L_08B18C5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18C78: @@ -2607,8 +3268,21 @@ L_08B18C78: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B18CA0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 208u, 0x08B18CA0u, 0x08B15604u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 274u, 0x08B15604u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18CA0u) goto L_08B18CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18CA0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2620,8 +3294,21 @@ L_08B18CA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18CB4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 210u, 0x08B18CB4u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18CB4u) goto L_08B18CB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18CB4: { const bool branch_taken = 0u == 0u; ctx.gpr[17] = (ctx.gpr[2] | 0u); @@ -2713,8 +3400,21 @@ L_08B18D4C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B18D60u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 222u, 0x08B18D60u, 0x08825204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 176u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 176u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 176u, 0x08825204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18D60u) goto L_08B18D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18D60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2726,8 +3426,21 @@ L_08B18D68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18D74u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 224u, 0x08B18D74u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18D74u) goto L_08B18D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18D74: ctx.gpr[2] = (0u | 0u); goto L_08B18D78; @@ -2741,8 +3454,8 @@ L_08B18D78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18D90: @@ -2755,15 +3468,28 @@ L_08B18DA0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B18DACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0081. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 228u, 0x08B18DACu, 0x08948114u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0081_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0081_entry, 81u, 16u, 0x08948114u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18DACu) goto L_08B18DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18DAC: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18DBC: @@ -2798,8 +3524,8 @@ L_08B18DFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18E14: @@ -2819,8 +3545,21 @@ L_08B18E34: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08B18E4Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 235u, 0x08B18E4Cu, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18E4Cu) goto L_08B18E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18E4C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 24u); @@ -2860,8 +3599,8 @@ L_08B18E94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18EAC: @@ -2872,8 +3611,21 @@ L_08B18EAC: ctx.gpr[17] = (0u | 1u); aot_gpr_31 = (0x08B18ECCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 240u, 0x08B18ECCu, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18ECCu) goto L_08B18ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18ECC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B18ED8u); @@ -2921,8 +3673,8 @@ L_08B18F10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B18F24: @@ -2935,8 +3687,21 @@ L_08B18F24: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B18F54u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 248u, 0x08B18F54u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18F54u) goto L_08B18F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18F54: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2977,8 +3742,21 @@ L_08B18FA0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B18FB0u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 253u, 0x08B18FB0u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18FB0u) goto L_08B18FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18FB0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3007,8 +3785,21 @@ L_08B18FD4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B18FE4u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 257u, 0x08B18FE4u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B18FE4u) goto L_08B18FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B18FE4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3048,8 +3839,21 @@ L_08B1902C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1903Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 262u, 0x08B1903Cu, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1903Cu) goto L_08B1903C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1903C: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3078,8 +3882,21 @@ L_08B19060: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B19070u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 266u, 0x08B19070u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19070u) goto L_08B19070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19070: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3119,8 +3936,21 @@ L_08B190B8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B190C8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 271u, 0x08B190C8u, 0x08ADD3DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 340u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 340u, 0x08ADD3DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B190C8u) goto L_08B190C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B190C8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3165,8 +3995,21 @@ L_08B19108: aot_gpr_5 = (aot_gpr_5 + static_cast(31828)); aot_gpr_31 = (0x08B19114u); aot_gpr_6 = (ctx.gpr[28] + static_cast(2876)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 278u, 0x08B19114u, 0x08885284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 270u, 0x08885284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19114u) goto L_08B19114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19114: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3188,8 +4031,21 @@ L_08B19130: aot_gpr_5 = (aot_gpr_5 + static_cast(-32656)); aot_gpr_31 = (0x08B1913Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 282u, 0x08B1913Cu, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1913Cu) goto L_08B1913C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1913C: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -3201,8 +4057,8 @@ L_08B1913C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19158: @@ -3212,8 +4068,21 @@ L_08B19158: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B19178u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0196. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 284u, 0x08B19178u, 0x08B15624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0196_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0196_entry, 196u, 276u, 0x08B15624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19178u) goto L_08B19178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19178: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -3240,8 +4109,21 @@ L_08B1919C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B191B0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 287u, 0x08B191B0u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B191B0u) goto L_08B191B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B191B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B191BCu); @@ -3342,8 +4224,21 @@ L_08B19278: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); aot_gpr_31 = (0x08B19288u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 299u, 0x08B19288u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19288u) goto L_08B19288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19288: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); @@ -3377,8 +4272,21 @@ L_08B192BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1152))); aot_gpr_31 = (0x08B192CCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 303u, 0x08B192CCu, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B192CCu) goto L_08B192CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B192CC: aot_gpr_4 = (0u + static_cast(-1)); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -3421,8 +4329,21 @@ L_08B19334: goto L_08B19350; L_08B19350: aot_gpr_31 = (0x08B19358u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 306u, 0x08B19358u, 0x088099B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 327u, 0x088099B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19358u) goto L_08B19358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19358: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (2236u << 16u); @@ -3430,8 +4351,21 @@ L_08B19358: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(1936), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B19370u); aot_gpr_4 = (ctx.gpr[17] + static_cast(2856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 307u, 0x08B19370u, 0x088BA740u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 518u, 0x088BA740u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19370u) goto L_08B19370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19370: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(90), static_cast(aot_gpr_4)); @@ -3456,8 +4390,21 @@ L_08B193A4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_31 = (0x08B193B0u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 310u, 0x08B193B0u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B193B0u) goto L_08B193B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B193B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), std::bit_cast(ctx.fpr[0])); goto L_08B193B4; @@ -3480,8 +4427,21 @@ L_08B193B4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B193D0u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 312u, 0x08B193D0u, 0x08968320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 61u, 0x08968320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B193D0u) goto L_08B193D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B193D0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(208), static_cast(0u)); aot_gpr_4 = (2237u << 16u); @@ -3527,38 +4487,103 @@ L_08B19408: aot_gpr_6 = (0u | 50u); aot_gpr_31 = (0x08B1941Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 318u, 0x08B1941Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1941Cu) goto L_08B1941C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1941C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 21u); aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08B19430u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 319u, 0x08B19430u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19430u) goto L_08B19430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19430: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 12u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B19444u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 320u, 0x08B19444u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19444u) goto L_08B19444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19444: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 32u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B19458u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 321u, 0x08B19458u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19458u) goto L_08B19458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19458: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08B19464u); aot_gpr_5 = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 322u, 0x08B19464u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19464u) goto L_08B19464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19464: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3656,22 +4681,61 @@ L_08B194F0: aot_gpr_6 = (0u | 200u); aot_gpr_31 = (0x08B19504u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 336u, 0x08B19504u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19504u) goto L_08B19504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19504: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 32u); aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08B19518u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 337u, 0x08B19518u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19518u) goto L_08B19518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19518: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08B19524u); aot_gpr_5 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 338u, 0x08B19524u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19524u) goto L_08B19524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19524: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3685,38 +4749,103 @@ L_08B1952C: aot_gpr_6 = (0u | 250u); aot_gpr_31 = (0x08B19540u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 340u, 0x08B19540u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19540u) goto L_08B19540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19540: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 21u); aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08B19554u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 341u, 0x08B19554u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19554u) goto L_08B19554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19554: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 32u); aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x08B19568u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 342u, 0x08B19568u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19568u) goto L_08B19568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19568: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 30u); aot_gpr_6 = (0u | 30u); aot_gpr_31 = (0x08B1957Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 343u, 0x08B1957Cu, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1957Cu) goto L_08B1957C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1957C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08B19588u); aot_gpr_5 = (0u | 29u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 344u, 0x08B19588u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19588u) goto L_08B19588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19588: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3730,22 +4859,61 @@ L_08B19590: aot_gpr_6 = (0u | 34u); aot_gpr_31 = (0x08B195A4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 346u, 0x08B195A4u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B195A4u) goto L_08B195A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B195A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (0u | 24u); aot_gpr_6 = (0u | 100u); aot_gpr_31 = (0x08B195B8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 347u, 0x08B195B8u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B195B8u) goto L_08B195B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B195B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08B195C4u); aot_gpr_5 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 348u, 0x08B195C4u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B195C4u) goto L_08B195C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B195C4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(456))); @@ -3762,8 +4930,21 @@ L_08B195C4: L_08B195F0: aot_gpr_31 = (0x08B195F8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 350u, 0x08B195F8u, 0x08947944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 745u, 0x08947944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B195F8u) goto L_08B195F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B195F8: aot_gpr_31 = (0x08B19600u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19600u) goto L_08B19600; @@ -3785,8 +4966,21 @@ L_08B19614: L_08B1961C: aot_gpr_31 = (0x08B19624u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 354u, 0x08B19624u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19624u) goto L_08B19624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19624: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3867,8 +5061,21 @@ L_08B196B8: L_08B196C0: aot_gpr_31 = (0x08B196C8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 365u, 0x08B196C8u, 0x08909180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 301u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 301u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 301u, 0x08909180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B196C8u) goto L_08B196C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B196C8: aot_gpr_31 = (0x08B196D0u); aot_gpr_4 = (0u | 0u); @@ -3878,73 +5085,229 @@ L_08B196D0: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B196DCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 367u, 0x08B196DCu, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B196DCu) goto L_08B196DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B196DC: aot_gpr_31 = (0x08B196E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 368u, 0x08B196E4u, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B196E4u) goto L_08B196E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B196E4: aot_gpr_16 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B196F4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 369u, 0x08B196F4u, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B196F4u) goto L_08B196F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B196F4: aot_gpr_31 = (0x08B196FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 370u, 0x08B196FCu, 0x0898B4F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 844u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 844u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 844u, 0x0898B4F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B196FCu) goto L_08B196FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B196FC: aot_gpr_31 = (0x08B19704u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 371u, 0x08B19704u, 0x08A05EFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 495u, 0x08A05EFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19704u) goto L_08B19704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19704: aot_gpr_31 = (0x08B1970Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 372u, 0x08B1970Cu, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1970Cu) goto L_08B1970C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1970C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B19718u); aot_gpr_5 = (0u | 127u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 373u, 0x08B19718u, 0x08A0611Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 528u, 0x08A0611Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19718u) goto L_08B19718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19718: aot_gpr_4 = (2236u << 16u); aot_gpr_16 = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08B19728u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 374u, 0x08B19728u, 0x08A1CC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 125u, 0x08A1CC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19728u) goto L_08B19728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19728: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1973Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 375u, 0x08B1973Cu, 0x08A1CF7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 156u, 0x08A1CF7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1973Cu) goto L_08B1973C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1973C: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1974Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 376u, 0x08B1974Cu, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1974Cu) goto L_08B1974C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1974C: aot_gpr_31 = (0x08B19754u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 377u, 0x08B19754u, 0x08A1C8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 91u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 91u, 0x08A1C8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19754u) goto L_08B19754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19754: aot_gpr_4 = (16512u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B19768u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 378u, 0x08B19768u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19768u) goto L_08B19768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19768: aot_gpr_4 = (0u | 3u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(64), static_cast(aot_gpr_4)); @@ -3960,15 +5323,41 @@ L_08B19768: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B197A0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 379u, 0x08B197A0u, 0x08825280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 182u, 0x08825280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B197A0u) goto L_08B197A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B197A0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B197B0u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 380u, 0x08B197B0u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B197B0u) goto L_08B197B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B197B0: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -3990,8 +5379,8 @@ L_08B197BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B197D4: @@ -4019,8 +5408,8 @@ L_08B197D4: aot_gpr_5 = (aot_gpr_5 + aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19834: @@ -4030,8 +5419,8 @@ L_08B19834: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19850: @@ -4111,8 +5500,8 @@ L_08B198C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B198DC: @@ -4141,8 +5530,21 @@ L_08B1990C: aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); aot_gpr_31 = (0x08B1991Cu); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 399u, 0x08B1991Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1991Cu) goto L_08B1991C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1991C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(16), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_16); @@ -4154,8 +5556,8 @@ L_08B1991C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19938: @@ -4209,21 +5611,21 @@ L_08B19998: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B199B8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B199C0: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1704))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B199C8: @@ -4237,16 +5639,42 @@ L_08B199C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B199F0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 407u, 0x08B199F0u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B199F0u) goto L_08B199F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B199F0: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-31712)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(92), aot_gpr_4); aot_gpr_31 = (0x08B19A04u); aot_gpr_4 = (ctx.gpr[17] + static_cast(1924)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 408u, 0x08B19A04u, 0x08AFEF20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 657u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 657u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 657u, 0x08AFEF20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19A04u) goto L_08B19A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19A04: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_5 = (static_cast(aot_gpr_16) < static_cast(aot_gpr_5) ? 1u : 0u); @@ -4298,8 +5726,8 @@ L_08B19A7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19A98: @@ -4322,14 +5750,40 @@ L_08B19AB4: aot_gpr_4 = (ctx.gpr[17] + static_cast(1924)); aot_gpr_31 = (0x08B19ACCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 415u, 0x08B19ACCu, 0x08AFEF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 658u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 658u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 658u, 0x08AFEF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19ACCu) goto L_08B19ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19ACC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B19AD8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 416u, 0x08B19AD8u, 0x08831598u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 297u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 297u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 297u, 0x08831598u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19AD8u) goto L_08B19AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19AD8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4341,8 +5795,21 @@ L_08B19AD8: L_08B19AE4: aot_gpr_31 = (0x08B19AECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 418u, 0x08B19AECu, 0x08AFF2E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 734u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 734u, 0x08AFF2E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19AECu) goto L_08B19AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19AEC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4352,8 +5819,8 @@ L_08B19AEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19B00: @@ -4363,28 +5830,54 @@ L_08B19B00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B19B18u); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(1952), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 420u, 0x08B19B18u, 0x08836628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 352u, 0x08836628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19B18u) goto L_08B19B18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19B18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19B24: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B19B34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 422u, 0x08B19B34u, 0x08831BF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 395u, 0x08831BF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19B34u) goto L_08B19B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19B34: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19B40: @@ -4397,8 +5890,21 @@ L_08B19B40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08B19B64u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0014. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 424u, 0x08B19B64u, 0x0883CD44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0014_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0014_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0014_entry, 14u, 197u, 0x0883CD44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19B64u) goto L_08B19B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19B64: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1940))); aot_gpr_31 = (0x08B19B70u); @@ -4408,8 +5914,21 @@ L_08B19B64: L_08B19B70: aot_gpr_31 = (0x08B19B78u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0098. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 426u, 0x08B19B78u, 0x0898C1C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0098_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0098_entry, 98u, 52u, 0x0898C1C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19B78u) goto L_08B19B78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19B78: aot_gpr_4 = (0u - ctx.gpr[2]); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4472,8 +5991,8 @@ L_08B19C08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19C20: @@ -4502,14 +6021,27 @@ L_08B19C48: aot_gpr_6 = (aot_gpr_5 + static_cast(1924)); aot_gpr_31 = (0x08B19C58u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0151. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 435u, 0x08B19C58u, 0x08A63FD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0151_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0151_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0151_entry, 151u, 671u, 0x08A63FD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19C58u) goto L_08B19C58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19C58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19C64: @@ -4518,8 +6050,21 @@ L_08B19C64: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(128), aot_run_words); } aot_gpr_31 = (0x08B19C90u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0014. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 437u, 0x08B19C90u, 0x0883D320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0014_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0014_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0014_entry, 14u, 287u, 0x0883D320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19C90u) goto L_08B19C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19C90: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -4551,8 +6096,21 @@ L_08B19CBC: aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B19CE8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 440u, 0x08B19CE8u, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19CE8u) goto L_08B19CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19CE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1332))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1624))); @@ -4573,16 +6131,42 @@ L_08B19CE8: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B19D08u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 441u, 0x08B19D08u, 0x08B01EA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 515u, 0x08B01EA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19D08u) goto L_08B19D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19D08: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_6 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B19D1Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 442u, 0x08B19D1Cu, 0x08AA1844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 384u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 384u, 0x08AA1844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19D1Cu) goto L_08B19D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19D1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1328))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4616,8 +6200,21 @@ L_08B19D40: L_08B19D50: aot_gpr_31 = (0x08B19D58u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 446u, 0x08B19D58u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19D58u) goto L_08B19D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19D58: aot_gpr_4 = (ctx.gpr[21] + static_cast(16)); goto L_08B19D5C; @@ -4628,8 +6225,21 @@ L_08B19D5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x08B19D74u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 448u, 0x08B19D74u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19D74u) goto L_08B19D74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19D74: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4666,8 +6276,21 @@ L_08B19DA0: } L_08B19DB0: aot_gpr_31 = (0x08B19DB8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 451u, 0x08B19DB8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19DB8u) goto L_08B19DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19DB8: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4680,8 +6303,21 @@ L_08B19DC0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B19DCCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 453u, 0x08B19DCCu, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19DCCu) goto L_08B19DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19DCC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -4691,13 +6327,39 @@ L_08B19DCC: } aot_gpr_31 = (0x08B19DE0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 454u, 0x08B19DE0u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19DE0u) goto L_08B19DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19DE0: aot_gpr_31 = (0x08B19DE8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 455u, 0x08B19DE8u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19DE8u) goto L_08B19DE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19DE8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1324))); if (aot_gpr_4 == 0u) { @@ -4730,8 +6392,21 @@ L_08B19E0C: L_08B19E1C: aot_gpr_31 = (0x08B19E24u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 459u, 0x08B19E24u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19E24u) goto L_08B19E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19E24: aot_gpr_4 = (ctx.gpr[21] + static_cast(16)); goto L_08B19E28; @@ -4742,8 +6417,21 @@ L_08B19E28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_4); aot_gpr_31 = (0x08B19E40u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 461u, 0x08B19E40u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19E40u) goto L_08B19E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19E40: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4780,8 +6468,21 @@ L_08B19E6C: } L_08B19E7C: aot_gpr_31 = (0x08B19E84u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 464u, 0x08B19E84u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19E84u) goto L_08B19E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19E84: { const bool branch_taken = 0u == 0u; ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -4794,8 +6495,21 @@ L_08B19E8C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20]) ^ 0x80000000u); aot_gpr_31 = (0x08B19E98u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 466u, 0x08B19E98u, 0x0885F9D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 919u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 919u, 0x0885F9D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19E98u) goto L_08B19E98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19E98: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -4805,13 +6519,39 @@ L_08B19E98: } aot_gpr_31 = (0x08B19EACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 467u, 0x08B19EACu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19EACu) goto L_08B19EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19EAC: aot_gpr_31 = (0x08B19EB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 468u, 0x08B19EB4u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19EB4u) goto L_08B19EB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19EB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); goto L_08B19EB8; @@ -4834,8 +6574,21 @@ L_08B19EC4: L_08B19ED0: aot_gpr_31 = (0x08B19ED8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 472u, 0x08B19ED8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19ED8u) goto L_08B19ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19ED8: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(128), aot_run_words); @@ -4850,8 +6603,8 @@ L_08B19ED8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19F00: @@ -4863,36 +6616,101 @@ L_08B19F00: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B19F20u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 474u, 0x08B19F20u, 0x08B0D814u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 366u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 366u, 0x08B0D814u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19F20u) goto L_08B19F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19F20: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08B19F30u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 475u, 0x08B19F30u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19F30u) goto L_08B19F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19F30: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08B19F40u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 476u, 0x08B19F40u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19F40u) goto L_08B19F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19F40: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08B19F50u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 477u, 0x08B19F50u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19F50u) goto L_08B19F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19F50: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 5u); aot_gpr_31 = (0x08B19F60u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 478u, 0x08B19F60u, 0x08B0D904u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 377u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 377u, 0x08B0D904u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19F60u) goto L_08B19F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19F60: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(615)))))); aot_gpr_5 = (0u + static_cast(-3)); @@ -4904,36 +6722,101 @@ L_08B19F60: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B19F88u); aot_gpr_5 = (aot_gpr_5 + static_cast(9288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 479u, 0x08B19F88u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19F88u) goto L_08B19F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19F88: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B19F98u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 480u, 0x08B19F98u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19F98u) goto L_08B19F98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19F98: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B19FA8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 481u, 0x08B19FA8u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19FA8u) goto L_08B19FA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19FA8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 2u); aot_gpr_31 = (0x08B19FB8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 482u, 0x08B19FB8u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19FB8u) goto L_08B19FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19FB8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 3u); aot_gpr_31 = (0x08B19FC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 483u, 0x08B19FC8u, 0x08B0D8ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 375u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 375u, 0x08B0D8ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B19FC8u) goto L_08B19FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B19FC8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4943,8 +6826,8 @@ L_08B19FC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B19FDC: @@ -4965,8 +6848,21 @@ L_08B19FF4: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08B1A008u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 486u, 0x08B1A008u, 0x088316CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 310u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 310u, 0x088316CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A008u) goto L_08B1A008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A008: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1320))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4981,29 +6877,42 @@ L_08B1A014: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1A028u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 488u, 0x08B1A028u, 0x088318B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 341u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 341u, 0x088318B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A028u) goto L_08B1A028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A028: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1A038: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1924))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1A040: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(1920))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1A048: @@ -5048,8 +6957,21 @@ L_08B1A094: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1924))); aot_gpr_31 = (0x08B1A0A0u); ctx.gpr[7] = (0u | 194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 497u, 0x08B1A0A0u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A0A0u) goto L_08B1A0A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A0A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1A0ACu); @@ -5081,8 +7003,21 @@ L_08B1A0CC: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1924))); aot_gpr_31 = (0x08B1A0D8u); ctx.gpr[7] = (0u | 195u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 503u, 0x08B1A0D8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A0D8u) goto L_08B1A0D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A0D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1A0E4u); @@ -5116,14 +7051,14 @@ L_08B1A100: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1A128: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1A130: @@ -5545,8 +7480,21 @@ L_08B1A320: } aot_gpr_31 = (0x08B1A46Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 524u, 0x08B1A46Cu, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A46Cu) goto L_08B1A46C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A46C: aot_gpr_4 = (std::bit_cast(ctx.fpr[22])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -5685,13 +7633,39 @@ L_08B1A46C: } aot_gpr_31 = (0x08B1A4F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 525u, 0x08B1A4F0u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A4F0u) goto L_08B1A4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A4F0: aot_gpr_31 = (0x08B1A4F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 526u, 0x08B1A4F8u, 0x08837B78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 525u, 0x08837B78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A4F8u) goto L_08B1A4F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A4F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[20])) ? 0x00800000u : 0u); @@ -5716,8 +7690,21 @@ L_08B1A518: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1A530u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0192. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 529u, 0x08B1A530u, 0x08B04D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); +#else + recomp_unit_0192_entry(rt, ctx, 212u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0192_entry, 192u, 212u, 0x08B04D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A530u) goto L_08B1A530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A530: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (2u << 16u); @@ -5747,8 +7734,8 @@ L_08B1A54C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1A580: @@ -5802,8 +7789,21 @@ L_08B1A5DC: L_08B1A5E4: aot_gpr_31 = (0x08B1A5ECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 535u, 0x08B1A5ECu, 0x08A930F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 450u, 0x08A930F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A5ECu) goto L_08B1A5EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A5EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6019,8 +8019,21 @@ L_08B1A720: } aot_gpr_31 = (0x08B1A774u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 549u, 0x08B1A774u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A774u) goto L_08B1A774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A774: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6171,8 +8184,21 @@ L_08B1A838: } aot_gpr_31 = (0x08B1A890u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 558u, 0x08B1A890u, 0x08A66E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A890u) goto L_08B1A890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A890: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1920))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(24))); @@ -6228,8 +8254,8 @@ L_08B1A92C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1A948: @@ -6297,8 +8323,21 @@ L_08B1A9C8: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1A9D8u); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 568u, 0x08B1A9D8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1A9D8u) goto L_08B1A9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1A9D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1A9E4u); @@ -6331,8 +8370,21 @@ L_08B1AA04: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1AA14u); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 574u, 0x08B1AA14u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AA14u) goto L_08B1AA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AA14: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AA20u); @@ -6394,8 +8446,21 @@ L_08B1AA78: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x08B1AA94u); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 582u, 0x08B1AA94u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AA94u) goto L_08B1AA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AA94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AAA0u); @@ -6491,8 +8556,21 @@ L_08B1AB40: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1924))); aot_gpr_31 = (0x08B1AB50u); ctx.gpr[7] = (0u | 194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 595u, 0x08B1AB50u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AB50u) goto L_08B1AB50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AB50: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AB5Cu); @@ -6525,8 +8603,21 @@ L_08B1AB7C: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1924))); aot_gpr_31 = (0x08B1AB8Cu); ctx.gpr[7] = (0u | 195u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 601u, 0x08B1AB8Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AB8Cu) goto L_08B1AB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AB8C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AB98u); @@ -6595,8 +8686,21 @@ L_08B1ABF4: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1AC04u); ctx.gpr[7] = (0u | 114u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 612u, 0x08B1AC04u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AC04u) goto L_08B1AC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AC04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AC10u); @@ -6629,8 +8733,21 @@ L_08B1AC30: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1AC40u); ctx.gpr[7] = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 618u, 0x08B1AC40u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AC40u) goto L_08B1AC40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AC40: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AC4Cu); @@ -6672,8 +8789,21 @@ L_08B1AC80: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1AC90u); ctx.gpr[7] = (0u | 115u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 625u, 0x08B1AC90u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AC90u) goto L_08B1AC90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AC90: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AC9Cu); @@ -6706,8 +8836,21 @@ L_08B1ACBC: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1ACCCu); ctx.gpr[7] = (0u | 117u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 631u, 0x08B1ACCCu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1ACCCu) goto L_08B1ACCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1ACCC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1ACD8u); @@ -6795,8 +8938,21 @@ L_08B1AD60: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x08B1AD7Cu); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 642u, 0x08B1AD7Cu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AD7Cu) goto L_08B1AD7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AD7C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(780), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -6816,8 +8972,21 @@ L_08B1AD90: L_08B1AD98: aot_gpr_31 = (0x08B1ADA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 645u, 0x08B1ADA0u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1ADA0u) goto L_08B1ADA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1ADA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6847,8 +9016,21 @@ L_08B1ADC0: aot_fpr_12 = std::bit_cast(ctx.gpr[8]); aot_gpr_31 = (0x08B1ADDCu); ctx.gpr[7] = (0u | 196u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 649u, 0x08B1ADDCu, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1ADDCu) goto L_08B1ADDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1ADDC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1ADE8u); @@ -6926,8 +9108,21 @@ L_08B1AE28: L_08B1AE5C: aot_gpr_31 = (0x08B1AE64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 658u, 0x08B1AE64u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AE64u) goto L_08B1AE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AE64: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); aot_gpr_5 = (0u | 10u); @@ -6952,8 +9147,21 @@ L_08B1AE84: aot_gpr_6 = (0u | 31u); aot_gpr_31 = (0x08B1AE98u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 661u, 0x08B1AE98u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AE98u) goto L_08B1AE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AE98: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6967,8 +9175,21 @@ L_08B1AEA0: aot_gpr_6 = (0u | 29u); aot_gpr_31 = (0x08B1AEB4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 663u, 0x08B1AEB4u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AEB4u) goto L_08B1AEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AEB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7027,8 +9248,21 @@ L_08B1AF14: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1AF24u); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 671u, 0x08B1AF24u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AF24u) goto L_08B1AF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AF24: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AF30u); @@ -7061,8 +9295,21 @@ L_08B1AF50: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1AF60u); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 677u, 0x08B1AF60u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AF60u) goto L_08B1AF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AF60: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AF6Cu); @@ -7094,8 +9341,21 @@ L_08B1AF84: L_08B1AF94: aot_gpr_31 = (0x08B1AF9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 682u, 0x08B1AF9Cu, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AF9Cu) goto L_08B1AF9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AF9C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7131,8 +9391,21 @@ L_08B1AFC8: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1924))); aot_gpr_31 = (0x08B1AFD8u); ctx.gpr[7] = (0u | 194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 688u, 0x08B1AFD8u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1AFD8u) goto L_08B1AFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1AFD8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1AFE4u); @@ -7165,8 +9438,21 @@ L_08B1B004: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1924))); aot_gpr_31 = (0x08B1B014u); ctx.gpr[7] = (0u | 195u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 694u, 0x08B1B014u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B014u) goto L_08B1B014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B014: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1B020u); @@ -7233,8 +9519,21 @@ L_08B1B054: L_08B1B088: aot_gpr_31 = (0x08B1B090u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 702u, 0x08B1B090u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B090u) goto L_08B1B090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B090: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2274))); aot_gpr_5 = (0u | 10u); @@ -7259,8 +9558,21 @@ L_08B1B0B0: aot_gpr_6 = (0u | 31u); aot_gpr_31 = (0x08B1B0C4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 705u, 0x08B1B0C4u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B0C4u) goto L_08B1B0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B0C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7274,8 +9586,21 @@ L_08B1B0CC: aot_gpr_6 = (0u | 29u); aot_gpr_31 = (0x08B1B0E0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 707u, 0x08B1B0E0u, 0x0891C0E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 14u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 14u, 0x0891C0E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B0E0u) goto L_08B1B0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B0E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7345,8 +9670,21 @@ L_08B1B150: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1B160u); ctx.gpr[7] = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 717u, 0x08B1B160u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B160u) goto L_08B1B160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B160: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1B16Cu); @@ -7379,8 +9717,21 @@ L_08B1B18C: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B1B19Cu); ctx.gpr[7] = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 723u, 0x08B1B19Cu, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B19Cu) goto L_08B1B19C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B19C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1B1A8u); @@ -7418,8 +9769,21 @@ L_08B1B1CC: L_08B1B1DC: aot_gpr_31 = (0x08B1B1E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 729u, 0x08B1B1E4u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B1E4u) goto L_08B1B1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B1E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7456,8 +9820,21 @@ L_08B1B214: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1924))); aot_gpr_31 = (0x08B1B224u); ctx.gpr[7] = (0u | 194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 735u, 0x08B1B224u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B224u) goto L_08B1B224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B224: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1B230u); @@ -7490,8 +9867,21 @@ L_08B1B250: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(1924))); aot_gpr_31 = (0x08B1B260u); ctx.gpr[7] = (0u | 195u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 741u, 0x08B1B260u, 0x0893E914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 635u, 0x0893E914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B260u) goto L_08B1B260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B260: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1B26Cu); @@ -7523,13 +9913,39 @@ L_08B1B28C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1B2A0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 746u, 0x08B1B2A0u, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B2A0u) goto L_08B1B2A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B2A0: aot_gpr_31 = (0x08B1B2A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 747u, 0x08B1B2A8u, 0x0890D46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 319u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 319u, 0x0890D46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B2A8u) goto L_08B1B2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B2A8: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[19] = (0u | 6u); @@ -7542,8 +9958,21 @@ L_08B1B2B0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B1B2BCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 749u, 0x08B1B2BCu, 0x089B4624u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 119u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 119u, 0x089B4624u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B2BCu) goto L_08B1B2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B2BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[19]; @@ -7608,8 +10037,21 @@ L_08B1B314: aot_gpr_6 = (0u | 11u); aot_gpr_31 = (0x08B1B328u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 759u, 0x08B1B328u, 0x089AE4F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 567u, 0x089AE4F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B328u) goto L_08B1B328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B328: { std::uint32_t aot_run_words[6]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7622,8 +10064,8 @@ L_08B1B328: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B348: @@ -7636,8 +10078,8 @@ L_08B1B348: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10564), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10568), std::bit_cast(aot_fpr_13)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B36C: @@ -7650,8 +10092,8 @@ L_08B1B37C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B388: @@ -7672,8 +10114,8 @@ L_08B1B3A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B3B4: @@ -7703,8 +10145,8 @@ L_08B1B3DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B3E8: @@ -7813,8 +10255,8 @@ L_08B1B4BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B4DC: @@ -7833,19 +10275,58 @@ L_08B1B4DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(108), aot_gpr_31); aot_gpr_31 = (0x08B1B518u); aot_gpr_5 = (aot_gpr_5 + static_cast(-32128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 784u, 0x08B1B518u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B518u) goto L_08B1B518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B518: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B1B524u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 785u, 0x08B1B524u, 0x08B58238u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 45u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 45u, 0x08B58238u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B524u) goto L_08B1B524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B524: aot_gpr_31 = (0x08B1B52Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 786u, 0x08B1B52Cu, 0x08B59EE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 542u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 542u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 542u, 0x08B59EE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B52Cu) goto L_08B1B52C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B52C: aot_gpr_31 = (0x08B1B534u); ctx.pc = 0x08B73114u; @@ -8007,8 +10488,8 @@ L_08B1B634: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B654: @@ -8074,8 +10555,8 @@ L_08B1B6C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B6D0: @@ -8108,8 +10589,8 @@ L_08B1B6E8: L_08B1B70C: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B714: @@ -8118,8 +10599,8 @@ L_08B1B714: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1B728: @@ -8139,8 +10620,21 @@ L_08B1B728: aot_gpr_4 = (aot_gpr_16 + static_cast(16)); aot_gpr_31 = (0x08B1B76Cu); aot_gpr_5 = (ctx.gpr[17] + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 821u, 0x08B1B76Cu, 0x0885F828u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1B76Cu) goto L_08B1B76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1B76C: aot_gpr_4 = (ctx.gpr[17] + static_cast(96)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8487,8 +10981,8 @@ L_08B1BA3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BB04: @@ -8515,8 +11009,8 @@ L_08B1BB04: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BB34: @@ -8525,8 +11019,21 @@ L_08B1BB34: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1BB48u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 840u, 0x08B1BB48u, 0x08AAC48Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 74u, 0x08AAC48Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BB48u) goto L_08B1BB48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BB48: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25444)); @@ -8536,8 +11043,8 @@ L_08B1BB48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BB68: @@ -8551,8 +11058,21 @@ L_08B1BB68: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1BB94u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 842u, 0x08B1BB94u, 0x08AAC5E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 101u, 0x08AAC5E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BB94u) goto L_08B1BB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BB94: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25444)); @@ -8588,8 +11108,21 @@ L_08B1BBF0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B1BBFCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 845u, 0x08B1BBFCu, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BBFCu) goto L_08B1BBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BBFC: ctx.gpr[19] = (ctx.gpr[19] + static_cast(32)); aot_gpr_16 = (aot_gpr_16 + static_cast(-1)); @@ -8612,16 +11145,16 @@ L_08B1BC0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BC2C: ctx.gpr[2] = (2226u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-17364)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BC38: @@ -8633,8 +11166,8 @@ L_08B1BC48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BC54: @@ -8655,8 +11188,21 @@ L_08B1BC7C: L_08B1BC84: aot_gpr_31 = (0x08B1BC8Cu); ctx.gpr[19] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 853u, 0x08B1BC8Cu, 0x08AACA60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 139u, 0x08AACA60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BC8Cu) goto L_08B1BC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BC8C: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[19] = (0u | 1u); @@ -8666,8 +11212,21 @@ L_08B1BC8C: L_08B1BC94: aot_gpr_31 = (0x08B1BC9Cu); ctx.gpr[18] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 855u, 0x08B1BC9Cu, 0x08A7FAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 666u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 666u, 0x08A7FAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BC9Cu) goto L_08B1BC9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BC9C: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[18] = (0u | 1u); @@ -8677,8 +11236,21 @@ L_08B1BC9C: L_08B1BCA4: aot_gpr_31 = (0x08B1BCACu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0034. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 857u, 0x08B1BCACu, 0x0888E51Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); +#else + recomp_unit_0034_entry(rt, ctx, 400u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0034_entry, 34u, 400u, 0x0888E51Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BCACu) goto L_08B1BCAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BCAC: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -8687,8 +11259,21 @@ L_08B1BCAC: goto L_08B1BCB4; L_08B1BCB4: aot_gpr_31 = (0x08B1BCBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 859u, 0x08B1BCBCu, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BCBCu) goto L_08B1BCBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BCBC: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -8757,8 +11342,8 @@ L_08B1BD04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BD28: @@ -8780,14 +11365,40 @@ L_08B1BD44: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B1BD58u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 873u, 0x08B1BD58u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BD58u) goto L_08B1BD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BD58: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1BD64u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 874u, 0x08B1BD64u, 0x08AACB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BD64u) goto L_08B1BD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BD64: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8810,15 +11421,15 @@ L_08B1BD78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BD8C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 4u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BD94: @@ -8831,8 +11442,21 @@ L_08B1BD94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1BDB8u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 879u, 0x08B1BDB8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BDB8u) goto L_08B1BDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BDB8: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -8854,8 +11478,8 @@ L_08B1BDD0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BDE0: @@ -8884,8 +11508,8 @@ L_08B1BE0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BE18: @@ -8900,8 +11524,21 @@ L_08B1BE18: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B1BE44u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 887u, 0x08B1BE44u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BE44u) goto L_08B1BE44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BE44: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8929,8 +11566,21 @@ L_08B1BE5C: aot_gpr_6 = (0u | 32u); aot_gpr_31 = (0x08B1BE8Cu); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-17660)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 890u, 0x08B1BE8Cu, 0x08B6095Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 115u, 0x08B6095Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BE8Cu) goto L_08B1BE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BE8C: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25444)); @@ -8946,8 +11596,8 @@ L_08B1BE9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BEB0: @@ -8956,14 +11606,27 @@ L_08B1BEB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B1BEC4u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 893u, 0x08B1BEC4u, 0x08A7FA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 660u, 0x08A7FA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BEC4u) goto L_08B1BEC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BEC4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BED0: @@ -8972,8 +11635,21 @@ L_08B1BED0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B1BEECu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 895u, 0x08B1BEECu, 0x08AACB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 158u, 0x08AACB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BEECu) goto L_08B1BEEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BEEC: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-31008)); @@ -8981,8 +11657,21 @@ L_08B1BEEC: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B1BF04u); aot_gpr_4 = (0u | 400u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 896u, 0x08B1BF04u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BF04u) goto L_08B1BF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BF04: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -8995,8 +11684,21 @@ L_08B1BF04: L_08B1BF10: aot_gpr_31 = (0x08B1BF18u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 898u, 0x08B1BF18u, 0x08B1C6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 73u, 0x08B1C6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BF18u) goto L_08B1BF18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BF18: ctx.gpr[18] = (ctx.gpr[17] | 0u); goto L_08B1BF1C; @@ -9012,8 +11714,8 @@ L_08B1BF1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1BF3C: @@ -9025,8 +11727,21 @@ L_08B1BF3C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x08B1BF60u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 901u, 0x08B1BF60u, 0x08AACB34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 158u, 0x08AACB34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BF60u) goto L_08B1BF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BF60: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-31008)); @@ -9036,15 +11751,41 @@ L_08B1BF60: aot_gpr_6 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1BF80u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 902u, 0x08B1BF80u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BF80u) goto L_08B1BF80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BF80: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(104), aot_gpr_16); ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B1BF90u); aot_gpr_4 = (0u | 400u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 903u, 0x08B1BF90u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BF90u) goto L_08B1BF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BF90: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -9057,8 +11798,21 @@ L_08B1BF90: L_08B1BF9C: aot_gpr_31 = (0x08B1BFA4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 905u, 0x08B1BFA4u, 0x08B1C6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 73u, 0x08B1C6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BFA4u) goto L_08B1BFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BFA4: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_08B1BFA8; @@ -9066,8 +11820,21 @@ L_08B1BFA8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(112), ctx.gpr[18]); aot_gpr_31 = (0x08B1BFB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 907u, 0x08B1BFB4u, 0x08B1C024u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 2u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 2u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 2u, 0x08B1C024u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BFB4u) goto L_08B1BFB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BFB4: aot_gpr_4 = (0u | 0u); ctx.gpr[19] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(10)))))); @@ -9076,8 +11843,21 @@ L_08B1BFB4: aot_gpr_5 = (0u | 752u); aot_gpr_31 = (0x08B1BFD0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 908u, 0x08B1BFD0u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BFD0u) goto L_08B1BFD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BFD0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -9100,8 +11880,21 @@ L_08B1BFEC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1BFFCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0197->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0197_entry, 912u, 0x08B1BFFCu, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1BFFCu) goto L_08B1BFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1BFFC: aot_gpr_31 = (0x08B1C004u); aot_gpr_4 = (ctx.gpr[17] | 0u); diff --git a/profiles/vcs/generated/generated_unit_0198.cpp b/profiles/vcs/generated/generated_unit_0198.cpp index f545919..f8dd7c0 100644 --- a/profiles/vcs/generated/generated_unit_0198.cpp +++ b/profiles/vcs/generated/generated_unit_0198.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0198[64] = { 348u, 368u, 377u, 384u, 396u, 406u, 416u, 437u, 452u, 465u, 478u, 487u, 494u, 507u, 519u, 531u, 544u, 565u, 575u, 580u, 587u, 603u, 623u, 645u, 659u, 676u, 693u, 713u, 720u, 728u, 738u, 738u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0198[4095] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 3u, 0u, 0u, 4u, 0u, 0u, 0u, 0u, 5u, 0u, 0u, 6u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 7u, 0u, 0u, 8u, 0u, 0u, 0u, 9u, 0u, 0u, 10u, 0u, 0u, 0u, 11u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 13u, + 0u, 14u, 0u, 0u, 15u, 0u, 0u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 0u, 17u, 0u, 0u, 18u, 0u, 0u, 19u, 20u, 0u, 0u, 0u, 21u, 0u, 22u, + 0u, 0u, 0u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 25u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 0u, + 27u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 30u, 0u, 0u, 31u, 32u, 0u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, + 38u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, + 0u, 0u, 0u, 43u, 0u, 0u, 0u, 0u, 44u, 0u, 45u, 0u, 46u, 0u, 0u, 47u, 48u, 0u, 49u, 0u, 0u, 50u, 51u, 0u, 52u, 0u, 0u, 53u, 54u, 0u, 55u, 0u, + 0u, 56u, 57u, 0u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 0u, 0u, + 0u, 61u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 0u, 64u, 0u, 0u, 65u, 0u, 0u, 66u, 0u, 0u, 0u, 0u, + 67u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 68u, 0u, 0u, 0u, 0u, 0u, + 69u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 71u, 0u, 0u, 0u, 72u, 0u, 0u, 73u, 0u, 0u, 0u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, + 0u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 79u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 83u, 0u, 84u, 0u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 87u, 0u, + 0u, 0u, 88u, 89u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 92u, 0u, 93u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, + 95u, 0u, 0u, 0u, 96u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 98u, 0u, 0u, 99u, 0u, 0u, 100u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 102u, 0u, 0u, 103u, 0u, 0u, + 104u, 0u, 0u, 0u, 105u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 107u, 0u, 0u, 0u, 108u, 0u, 109u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 110u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 112u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 113u, 0u, 0u, 114u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 115u, 0u, + 0u, 0u, 0u, 116u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 118u, 0u, 0u, 0u, 0u, 0u, 119u, 0u, 0u, 0u, 120u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 123u, 0u, 0u, 0u, 124u, 0u, 0u, 125u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 0u, 128u, 129u, 0u, 0u, 0u, 0u, 130u, 131u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 135u, 136u, 0u, 0u, 0u, 0u, 137u, 138u, 0u, 0u, 139u, + 0u, 0u, 0u, 0u, 140u, 0u, 0u, 0u, 141u, 0u, 142u, 143u, 0u, 0u, 0u, 0u, 0u, 144u, 0u, 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 146u, 0u, 147u, 0u, 0u, + 148u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, 150u, 0u, 151u, 152u, 0u, 0u, 0u, 0u, 0u, 153u, 0u, 0u, 0u, 0u, 154u, 0u, 0u, 0u, 0u, 155u, 0u, 156u, 0u, + 0u, 157u, 0u, 0u, 0u, 0u, 158u, 0u, 0u, 0u, 159u, 0u, 160u, 161u, 0u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 0u, 164u, 0u, 165u, + 0u, 0u, 166u, 0u, 0u, 0u, 0u, 167u, 0u, 0u, 0u, 168u, 0u, 169u, 170u, 0u, 0u, 0u, 0u, 0u, 171u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, 0u, 173u, 0u, + 174u, 175u, 0u, 0u, 176u, 0u, 0u, 177u, 0u, 178u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 181u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 182u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 183u, 0u, 0u, 0u, 0u, 0u, 184u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 185u, 0u, 0u, 0u, 0u, 0u, 186u, 0u, 0u, 187u, 0u, + 0u, 0u, 0u, 188u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 189u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 190u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 191u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 192u, + 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 194u, 195u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 196u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 197u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 199u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 201u, 202u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 0u, 204u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, + 210u, 0u, 0u, 0u, 0u, 0u, 211u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 212u, 0u, 0u, 213u, 0u, 214u, 215u, 0u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 218u, 0u, 0u, 219u, 0u, 0u, 220u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 224u, 0u, 225u, 0u, + 226u, 227u, 0u, 0u, 0u, 228u, 0u, 229u, 230u, 0u, 231u, 0u, 232u, 0u, 233u, 0u, 234u, 235u, 0u, 0u, 0u, 0u, 236u, 0u, 237u, 238u, 0u, 239u, 0u, 0u, 0u, 0u, + 240u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 241u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 243u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 245u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 247u, 0u, 0u, 248u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 249u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, 251u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 253u, 0u, 254u, 0u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 256u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 257u, 258u, 0u, 0u, 0u, 259u, 0u, 0u, 260u, 0u, 261u, 0u, 262u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 264u, 0u, 0u, 0u, + 0u, 265u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 266u, 0u, 0u, 267u, 0u, 268u, 269u, 0u, 0u, 0u, 270u, 0u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 272u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 273u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 278u, 0u, 0u, 279u, 0u, 0u, 0u, 280u, 0u, 0u, 0u, 0u, + 281u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 282u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, 284u, 285u, 0u, 0u, 0u, 0u, 286u, 0u, 287u, 0u, 0u, + 0u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 290u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 295u, 0u, 0u, 0u, 296u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 297u, 0u, 0u, 0u, 0u, 298u, 0u, 299u, 0u, 0u, 300u, 0u, 301u, 302u, 0u, 303u, 0u, 304u, 0u, 305u, 0u, 0u, 306u, 0u, 307u, 308u, 0u, 309u, 0u, 0u, 0u, + 0u, 0u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 312u, 0u, 313u, 314u, 0u, 315u, 0u, 316u, 0u, 0u, 317u, 0u, 0u, 318u, 0u, 319u, 0u, + 320u, 0u, 321u, 0u, 0u, 322u, 0u, 323u, 0u, 324u, 0u, 325u, 0u, 0u, 326u, 0u, 327u, 0u, 328u, 0u, 329u, 0u, 0u, 330u, 0u, 331u, 332u, 0u, 333u, 0u, 0u, 0u, + 0u, 0u, 334u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 335u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 336u, 0u, 0u, 0u, + 0u, 0u, 337u, 0u, 0u, 338u, 339u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 340u, 0u, 0u, 341u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, + 0u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 346u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, + 0u, 348u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 349u, 0u, 0u, 350u, 0u, 0u, 0u, 0u, 351u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 352u, 0u, 0u, 353u, 0u, 354u, 355u, + 0u, 0u, 356u, 0u, 357u, 0u, 358u, 359u, 0u, 360u, 0u, 361u, 0u, 362u, 0u, 363u, 364u, 0u, 365u, 0u, 0u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 367u, + 0u, 0u, 368u, 0u, 369u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 371u, 0u, 0u, 372u, 0u, 373u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 374u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 375u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 378u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 379u, 0u, 0u, 380u, 0u, 381u, 382u, 0u, 0u, 0u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 0u, + 384u, 0u, 0u, 0u, 0u, 0u, 385u, 0u, 386u, 0u, 387u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 388u, 0u, 389u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 0u, + 391u, 0u, 0u, 0u, 0u, 0u, 392u, 393u, 0u, 0u, 0u, 0u, 394u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 396u, 0u, 0u, 0u, 0u, 397u, 0u, 0u, 398u, 0u, 0u, 0u, 0u, 0u, 0u, 399u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 400u, 0u, 0u, 0u, + 401u, 0u, 0u, 0u, 0u, 0u, 0u, 402u, 0u, 0u, 0u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 405u, 0u, 0u, 0u, 0u, 0u, + 0u, 406u, 0u, 0u, 0u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 408u, 0u, 0u, 0u, 0u, 0u, 409u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, 0u, 412u, 0u, 0u, 0u, 413u, 0u, 0u, 0u, 414u, 0u, 0u, 0u, 415u, 0u, + 416u, 417u, 418u, 0u, 419u, 420u, 0u, 0u, 0u, 0u, 0u, 421u, 0u, 0u, 422u, 0u, 0u, 0u, 423u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 426u, + 0u, 427u, 0u, 428u, 0u, 429u, 0u, 0u, 0u, 0u, 430u, 431u, 432u, 0u, 433u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 0u, + 0u, 0u, 437u, 0u, 0u, 438u, 0u, 0u, 439u, 0u, 440u, 0u, 0u, 0u, 0u, 441u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 443u, 0u, 0u, 444u, 0u, 445u, + 446u, 0u, 0u, 0u, 447u, 0u, 0u, 0u, 448u, 0u, 0u, 0u, 0u, 0u, 0u, 449u, 0u, 0u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, + 452u, 0u, 0u, 453u, 454u, 0u, 0u, 0u, 455u, 0u, 0u, 0u, 0u, 456u, 0u, 0u, 457u, 0u, 0u, 0u, 0u, 458u, 0u, 0u, 0u, 0u, 459u, 0u, 0u, 0u, 0u, 0u, + 460u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 0u, 0u, 463u, 0u, 0u, 0u, 0u, 0u, 0u, 464u, + 0u, 0u, 0u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 466u, 467u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, 469u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 474u, 0u, 0u, 475u, 0u, 0u, 476u, 0u, 477u, 0u, 0u, 0u, + 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, 0u, 0u, 480u, 0u, 0u, 0u, 0u, + 481u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 482u, 0u, 483u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, + 0u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 488u, 0u, 0u, 489u, 0u, 0u, 490u, 0u, 0u, + 0u, 0u, 491u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 493u, + 0u, 0u, 494u, 0u, 0u, 0u, 0u, 495u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 498u, 0u, 0u, 499u, 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 501u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, 503u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 504u, 0u, 0u, 0u, 505u, 0u, 0u, 506u, 0u, 0u, + 0u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 509u, 0u, 0u, 510u, 0u, 0u, 0u, 0u, 0u, 511u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 512u, + 0u, 0u, 0u, 513u, 0u, 0u, 514u, 0u, 0u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 0u, 0u, 0u, 516u, 0u, 0u, 0u, 517u, 0u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, + 519u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 520u, 0u, 0u, 0u, 521u, 0u, 0u, 522u, 0u, 0u, 0u, 0u, 0u, 0u, 523u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 0u, + 525u, 0u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 527u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 0u, 529u, 0u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 0u, + 531u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 532u, 0u, 0u, 0u, 533u, 0u, 0u, 534u, 0u, 0u, 535u, 0u, 536u, 537u, 0u, 0u, 0u, 538u, 0u, 0u, 0u, 0u, 539u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 540u, 0u, 0u, 0u, 0u, 541u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 543u, 0u, 0u, 0u, + 0u, 0u, 0u, 544u, 545u, 546u, 0u, 547u, 0u, 0u, 0u, 548u, 0u, 0u, 0u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 0u, 0u, 0u, 550u, 551u, 552u, 0u, 553u, 0u, 0u, + 554u, 0u, 0u, 0u, 555u, 0u, 0u, 556u, 0u, 0u, 0u, 557u, 0u, 0u, 558u, 0u, 0u, 0u, 559u, 0u, 0u, 0u, 560u, 0u, 561u, 562u, 563u, 0u, 0u, 0u, 564u, 0u, + 0u, 565u, 0u, 0u, 0u, 0u, 0u, 0u, 566u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 567u, 0u, 0u, 0u, 0u, 568u, 0u, 0u, + 569u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 0u, 571u, 0u, 572u, 573u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, 576u, 0u, 0u, 577u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 579u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 580u, 0u, 0u, 581u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 582u, 0u, 0u, 583u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 584u, 0u, 0u, 585u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, + 0u, 587u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 588u, 0u, 0u, 589u, 0u, 0u, 0u, 0u, 590u, 0u, 0u, 0u, 591u, 0u, 592u, + 0u, 0u, 593u, 0u, 594u, 0u, 595u, 0u, 596u, 0u, 597u, 0u, 0u, 0u, 0u, 598u, 0u, 0u, 0u, 0u, 599u, 0u, 600u, 0u, 601u, 0u, 0u, 0u, 602u, 0u, 0u, 0u, + 603u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 604u, 0u, 605u, 0u, 0u, 606u, 0u, 607u, 0u, 608u, 0u, 609u, 0u, 610u, 0u, 611u, 612u, 0u, 0u, 613u, 0u, 614u, + 615u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 616u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 617u, 0u, 618u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 620u, 0u, 621u, 0u, 622u, + 0u, 623u, 0u, 624u, 0u, 625u, 626u, 0u, 0u, 627u, 0u, 628u, 629u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 630u, 0u, 631u, 0u, 632u, 0u, 633u, 0u, 634u, + 0u, 635u, 0u, 636u, 637u, 0u, 0u, 638u, 0u, 639u, 640u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 641u, 642u, 0u, 643u, 0u, 0u, 0u, 0u, 644u, 0u, 0u, + 645u, 0u, 0u, 646u, 0u, 647u, 0u, 648u, 0u, 0u, 0u, 649u, 0u, 0u, 650u, 0u, 651u, 0u, 652u, 0u, 653u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 654u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, 0u, 656u, 0u, 657u, 0u, 0u, 0u, 0u, 0u, 0u, 658u, 0u, + 0u, 0u, 0u, 0u, 659u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 660u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 661u, 0u, 662u, 0u, 663u, 0u, 0u, 664u, + 0u, 0u, 0u, 665u, 0u, 0u, 666u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 667u, 0u, 668u, 0u, 669u, 0u, 670u, 0u, 671u, 0u, 0u, 0u, 0u, 672u, 673u, 674u, 0u, 675u, + 676u, 0u, 0u, 0u, 0u, 0u, 0u, 677u, 0u, 0u, 0u, 0u, 678u, 0u, 0u, 0u, 0u, 0u, 679u, 0u, 680u, 0u, 681u, 0u, 0u, 0u, 0u, 682u, 0u, 0u, 0u, 0u, + 0u, 0u, 683u, 0u, 0u, 0u, 0u, 0u, 684u, 0u, 0u, 685u, 0u, 686u, 0u, 0u, 0u, 0u, 687u, 0u, 688u, 0u, 689u, 0u, 0u, 0u, 0u, 690u, 0u, 691u, 0u, 692u, + 0u, 0u, 693u, 0u, 0u, 0u, 0u, 694u, 0u, 695u, 0u, 696u, 0u, 0u, 697u, 0u, 0u, 0u, 0u, 698u, 0u, 699u, 0u, 700u, 0u, 0u, 701u, 0u, 702u, 0u, 703u, 0u, + 0u, 0u, 704u, 0u, 705u, 0u, 706u, 707u, 0u, 0u, 708u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 709u, 0u, 710u, 0u, 0u, 711u, 712u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 713u, 0u, 0u, 714u, 0u, 715u, 716u, 0u, 0u, 0u, 717u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 718u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 720u, 0u, 721u, 0u, 722u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 723u, 0u, 724u, 725u, 0u, 0u, 0u, 0u, 726u, 0u, 0u, 0u, 0u, 0u, 727u, + 0u, 0u, 0u, 0u, 0u, 728u, 729u, 0u, 0u, 0u, 0u, 0u, 730u, 731u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 732u, 0u, 733u, 0u, 0u, 0u, 0u, + 0u, 734u, 0u, 0u, 735u, 0u, 736u, 0u, 737u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 738u, +}; void recomp_unit_0198_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,29,5,31,16,6 fprs=12,13,14,15 gpr_occ=4233 fpr_occ=645 gpr_total=5930 fpr_total=893 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08B1C004u; - entry_id = 0u; - if (entry_delta < 16380u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0198[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0198[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16380u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0198[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08B1C004; @@ -816,6 +939,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B1C004u; + if (local_delta_v813 >= 16380u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -841,22 +988,35 @@ L_08B1C004: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C024: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B1C034u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 3u, 0x08B1C034u, 0x08AACBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 166u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 166u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 166u, 0x08AACBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C034u) goto L_08B1C034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C034: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C040: @@ -865,14 +1025,27 @@ L_08B1C040: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B1C054u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 5u, 0x08B1C054u, 0x08AACC08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 169u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 169u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 169u, 0x08AACC08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C054u) goto L_08B1C054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C054: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C060: @@ -910,8 +1083,21 @@ L_08B1C0B4: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1C0C4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 9u, 0x08B1C0C4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C0C4u) goto L_08B1C0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C0C4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -922,8 +1108,21 @@ L_08B1C0D0: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x08B1C0E0u); aot_gpr_4 = (0u | 2080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 11u, 0x08B1C0E0u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C0E0u) goto L_08B1C0E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C0E0: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -939,8 +1138,21 @@ L_08B1C0EC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); aot_gpr_31 = (0x08B1C100u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 13u, 0x08B1C100u, 0x089ED94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 226u, 0x089ED94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C100u) goto L_08B1C100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C100: ctx.gpr[21] = (ctx.gpr[22] | 0u); aot_gpr_4 = (ctx.gpr[19] | 0u); @@ -949,8 +1161,21 @@ L_08B1C108: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1C114u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 15u, 0x08B1C114u, 0x08ADEF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 736u, 0x08ADEF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C114u) goto L_08B1C114; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C114: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(104), ctx.gpr[21]); ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(104))); @@ -959,8 +1184,21 @@ L_08B1C114: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1C130u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 16u, 0x08B1C130u, 0x08AACC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 171u, 0x08AACC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C130u) goto L_08B1C130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C130: aot_gpr_4 = (0u | 0u); ctx.gpr[17] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(10)))))); @@ -969,8 +1207,21 @@ L_08B1C130: aot_gpr_5 = (0u | 752u); aot_gpr_31 = (0x08B1C14Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 17u, 0x08B1C14Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C14Cu) goto L_08B1C14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C14C: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -994,8 +1245,21 @@ L_08B1C168: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1C178u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 21u, 0x08B1C178u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C178u) goto L_08B1C178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C178: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1009,8 +1273,21 @@ L_08B1C180: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1C194u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 23u, 0x08B1C194u, 0x08AACC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 171u, 0x08AACC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C194u) goto L_08B1C194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C194: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -1025,8 +1302,8 @@ L_08B1C194: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C1BC: @@ -1076,8 +1353,21 @@ L_08B1C20C: aot_gpr_5 = (0u | 752u); aot_gpr_31 = (0x08B1C228u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 29u, 0x08B1C228u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C228u) goto L_08B1C228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C228: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1101,8 +1391,21 @@ L_08B1C244: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1C254u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 33u, 0x08B1C254u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C254u) goto L_08B1C254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C254: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -1113,8 +1416,8 @@ L_08B1C254: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C26C: @@ -1150,8 +1453,21 @@ L_08B1C2C0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(56)))))); aot_gpr_31 = (0x08B1C2D8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 36u, 0x08B1C2D8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C2D8u) goto L_08B1C2D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C2D8: ctx.gpr[18] = (aot_gpr_29 + static_cast(16)); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -1183,8 +1499,21 @@ L_08B1C30C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(58)))))); aot_gpr_31 = (0x08B1C324u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 40u, 0x08B1C324u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C324u) goto L_08B1C324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C324: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -1192,8 +1521,21 @@ L_08B1C324: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(60)))))); aot_gpr_31 = (0x08B1C33Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 41u, 0x08B1C33Cu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C33Cu) goto L_08B1C33C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C33C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(100)))))); @@ -1221,8 +1563,8 @@ L_08B1C374: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C390: @@ -1231,18 +1573,57 @@ L_08B1C390: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1C3A4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 44u, 0x08B1C3A4u, 0x08AACCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 178u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 178u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 178u, 0x08AACCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C3A4u) goto L_08B1C3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C3A4: aot_gpr_31 = (0x08B1C3ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 45u, 0x08B1C3ACu, 0x08AAD414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 232u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 232u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 232u, 0x08AAD414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C3ACu) goto L_08B1C3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C3AC: aot_gpr_31 = (0x08B1C3B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 46u, 0x08B1C3B4u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C3B4u) goto L_08B1C3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C3B4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1257,8 +1638,21 @@ L_08B1C3C0: L_08B1C3C4: aot_gpr_31 = (0x08B1C3CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(184))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 49u, 0x08B1C3CCu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C3CCu) goto L_08B1C3CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C3CC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1273,8 +1667,21 @@ L_08B1C3D8: L_08B1C3DC: aot_gpr_31 = (0x08B1C3E4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(204))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 52u, 0x08B1C3E4u, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C3E4u) goto L_08B1C3E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C3E4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1289,8 +1696,21 @@ L_08B1C3F0: L_08B1C3F4: aot_gpr_31 = (0x08B1C3FCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(192))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 55u, 0x08B1C3FCu, 0x0889E930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 598u, 0x0889E930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C3FCu) goto L_08B1C3FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C3FC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1307,8 +1727,8 @@ L_08B1C40C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C41C: @@ -1357,8 +1777,8 @@ L_08B1C488: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C4AC: @@ -1370,8 +1790,21 @@ L_08B1C4AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1C4CCu); ctx.gpr[8] = (aot_gpr_16 + static_cast(4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 63u, 0x08B1C4CCu, 0x08AACD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 182u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 182u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 182u, 0x08AACD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C4CCu) goto L_08B1C4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C4CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1402,8 +1835,8 @@ L_08B1C4F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C504: @@ -1477,14 +1910,27 @@ L_08B1C5EC: aot_gpr_6 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x08B1C604u); ctx.gpr[7] = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 69u, 0x08B1C604u, 0x08AACEA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 206u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 206u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 206u, 0x08AACEA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C604u) goto L_08B1C604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C604: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C610: @@ -1530,14 +1976,27 @@ L_08B1C690: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B1C6A0u); aot_gpr_5 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 72u, 0x08B1C6A0u, 0x08AAD1E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 217u, 0x08AAD1E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C6A0u) goto L_08B1C6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C6A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C6AC: @@ -1546,8 +2005,21 @@ L_08B1C6AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B1C6C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 74u, 0x08B1C6C4u, 0x08AAD80Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 264u, 0x08AAD80Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C6C4u) goto L_08B1C6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C6C4: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-31224)); @@ -1562,8 +2034,8 @@ L_08B1C6C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C6F8: @@ -1585,8 +2057,21 @@ L_08B1C714: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1C72Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 77u, 0x08B1C72Cu, 0x08AAD844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 266u, 0x08AAD844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C72Cu) goto L_08B1C72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C72C: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1609,8 +2094,8 @@ L_08B1C740: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1C754: @@ -1643,8 +2128,21 @@ L_08B1C754: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(30)))))); aot_gpr_31 = (0x08B1C7F0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 81u, 0x08B1C7F0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C7F0u) goto L_08B1C7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C7F0: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), 0u); @@ -1681,8 +2179,21 @@ L_08B1C848: ctx.gpr[7] = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08B1C85Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 85u, 0x08B1C85Cu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C85Cu) goto L_08B1C85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C85C: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(3268))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(3264))); @@ -1695,8 +2206,21 @@ L_08B1C870: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08B1C87Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 87u, 0x08B1C87Cu, 0x08B626A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 496u, 0x08B626A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C87Cu) goto L_08B1C87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C87C: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(ctx.gpr[18]) < 256 ? 1u : 0u); @@ -1751,8 +2275,21 @@ L_08B1C8E4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B1C8F8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 94u, 0x08B1C8F8u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C8F8u) goto L_08B1C8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C8F8: ctx.gpr[22] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -1766,8 +2303,21 @@ L_08B1C904: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B1C914u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 96u, 0x08B1C914u, 0x08A823FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 201u, 0x08A823FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C914u) goto L_08B1C914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C914: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(232))); @@ -1782,8 +2332,21 @@ L_08B1C924: aot_gpr_5 = (aot_gpr_5 + static_cast(992)); aot_gpr_31 = (0x08B1C934u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 98u, 0x08B1C934u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C934u) goto L_08B1C934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C934: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1797,8 +2360,21 @@ L_08B1C940: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1C94Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 100u, 0x08B1C94Cu, 0x08A823FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 201u, 0x08A823FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C94Cu) goto L_08B1C94C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C94C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(228))); @@ -1813,8 +2389,21 @@ L_08B1C95C: aot_gpr_5 = (aot_gpr_5 + static_cast(992)); aot_gpr_31 = (0x08B1C96Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 102u, 0x08B1C96Cu, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C96Cu) goto L_08B1C96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C96C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1828,8 +2417,21 @@ L_08B1C978: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1C984u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 104u, 0x08B1C984u, 0x08A823FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 201u, 0x08A823FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C984u) goto L_08B1C984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C984: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); @@ -1845,8 +2447,21 @@ L_08B1C994: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1C9A8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 106u, 0x08B1C9A8u, 0x08972E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 626u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 626u, 0x08972E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C9A8u) goto L_08B1C9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C9A8: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -1860,13 +2475,39 @@ L_08B1C9B4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B1C9C4u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 108u, 0x08B1C9C4u, 0x08A823FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 201u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 201u, 0x08A823FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C9C4u) goto L_08B1C9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C9C4: aot_gpr_31 = (0x08B1C9CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 109u, 0x08B1C9CCu, 0x08AAD998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 280u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 280u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 280u, 0x08AAD998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1C9CCu) goto L_08B1C9CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1C9CC: { std::uint32_t aot_run_words[12]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -1885,8 +2526,8 @@ L_08B1C9CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1CA04: @@ -1895,8 +2536,21 @@ L_08B1CA04: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(160), aot_run_words); } aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B1CA40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 111u, 0x08B1CA40u, 0x08AAD8A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 271u, 0x08AAD8A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CA40u) goto L_08B1CA40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CA40: ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(352))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), 0u); @@ -1924,8 +2578,21 @@ L_08B1CA40: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(158)))))); aot_gpr_31 = (0x08B1CAA8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 112u, 0x08B1CAA8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CAA8u) goto L_08B1CAA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CAA8: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); @@ -1968,8 +2635,21 @@ L_08B1CAFC: ctx.gpr[21] = (aot_gpr_29 + static_cast(128)); aot_gpr_31 = (0x08B1CB10u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 116u, 0x08B1CB10u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CB10u) goto L_08B1CB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CB10: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); @@ -1986,8 +2666,21 @@ L_08B1CB10: ctx.fpr[20] = ctx.fpr[20] + aot_fpr_12; aot_gpr_31 = (0x08B1CB4Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 117u, 0x08B1CB4Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CB4Cu) goto L_08B1CB4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CB4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(136))); aot_gpr_4 = (16384u << 16u); @@ -2012,8 +2705,21 @@ L_08B1CB84: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1CB9Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0193. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 119u, 0x08B1CB9Cu, 0x08B09D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0193_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0193_entry, 193u, 371u, 0x08B09D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CB9Cu) goto L_08B1CB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CB9C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(86)))))); aot_gpr_5 = (0u + static_cast(-995)); @@ -2207,8 +2913,21 @@ L_08B1CD14: L_08B1CD24: aot_gpr_31 = (0x08B1CD2Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 142u, 0x08B1CD2Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CD2Cu) goto L_08B1CD2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CD2C: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08B1CD30; @@ -2219,8 +2938,21 @@ L_08B1CD30: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x08B1CD48u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 144u, 0x08B1CD48u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CD48u) goto L_08B1CD48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CD48: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2238,8 +2970,21 @@ L_08B1CD48: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(384))); aot_gpr_31 = (0x08B1CD5Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 145u, 0x08B1CD5Cu, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CD5Cu) goto L_08B1CD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CD5C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -2249,13 +2994,39 @@ L_08B1CD5C: } aot_gpr_31 = (0x08B1CD70u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 146u, 0x08B1CD70u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CD70u) goto L_08B1CD70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CD70: aot_gpr_31 = (0x08B1CD78u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 147u, 0x08B1CD78u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CD78u) goto L_08B1CD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CD78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(228))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2288,8 +3059,21 @@ L_08B1CD98: L_08B1CDA8: aot_gpr_31 = (0x08B1CDB0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 151u, 0x08B1CDB0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CDB0u) goto L_08B1CDB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CDB0: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08B1CDB4; @@ -2300,8 +3084,21 @@ L_08B1CDB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x08B1CDCCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 153u, 0x08B1CDCCu, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CDCCu) goto L_08B1CDCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CDCC: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2319,8 +3116,21 @@ L_08B1CDCC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(384))); aot_gpr_31 = (0x08B1CDE0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 154u, 0x08B1CDE0u, 0x0885FA00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 921u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 921u, 0x0885FA00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CDE0u) goto L_08B1CDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CDE0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -2330,13 +3140,39 @@ L_08B1CDE0: } aot_gpr_31 = (0x08B1CDF4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 155u, 0x08B1CDF4u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CDF4u) goto L_08B1CDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CDF4: aot_gpr_31 = (0x08B1CDFCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 156u, 0x08B1CDFCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CDFCu) goto L_08B1CDFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CDFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(232))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2369,8 +3205,21 @@ L_08B1CE1C: L_08B1CE2C: aot_gpr_31 = (0x08B1CE34u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 160u, 0x08B1CE34u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CE34u) goto L_08B1CE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CE34: aot_gpr_4 = (ctx.gpr[20] + static_cast(16)); goto L_08B1CE38; @@ -2381,8 +3230,21 @@ L_08B1CE38: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x08B1CE50u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 162u, 0x08B1CE50u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CE50u) goto L_08B1CE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CE50: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2400,8 +3262,21 @@ L_08B1CE50: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(388))); aot_gpr_31 = (0x08B1CE64u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 163u, 0x08B1CE64u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CE64u) goto L_08B1CE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CE64: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -2411,13 +3286,39 @@ L_08B1CE64: } aot_gpr_31 = (0x08B1CE78u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 164u, 0x08B1CE78u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CE78u) goto L_08B1CE78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CE78: aot_gpr_31 = (0x08B1CE80u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 165u, 0x08B1CE80u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CE80u) goto L_08B1CE80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CE80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(236))); if (aot_gpr_4 == 0u) { @@ -2449,8 +3350,21 @@ L_08B1CEA0: L_08B1CEB0: aot_gpr_31 = (0x08B1CEB8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 169u, 0x08B1CEB8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CEB8u) goto L_08B1CEB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CEB8: aot_gpr_4 = (ctx.gpr[21] + static_cast(16)); goto L_08B1CEBC; @@ -2461,8 +3375,21 @@ L_08B1CEBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_4); aot_gpr_31 = (0x08B1CED4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 171u, 0x08B1CED4u, 0x0885FF48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 939u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 939u, 0x0885FF48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CED4u) goto L_08B1CED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CED4: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2480,8 +3407,21 @@ L_08B1CED4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(388))); aot_gpr_31 = (0x08B1CEE8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 172u, 0x08B1CEE8u, 0x0885F9B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 917u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 917u, 0x0885F9B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CEE8u) goto L_08B1CEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CEE8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(112), aot_run_words); @@ -2491,13 +3431,39 @@ L_08B1CEE8: } aot_gpr_31 = (0x08B1CEFCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 173u, 0x08B1CEFCu, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CEFCu) goto L_08B1CEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CEFC: aot_gpr_31 = (0x08B1CF04u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 174u, 0x08B1CF04u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CF04u) goto L_08B1CF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CF04: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); goto L_08B1CF08; @@ -2520,8 +3486,21 @@ L_08B1CF14: L_08B1CF20: aot_gpr_31 = (0x08B1CF28u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 178u, 0x08B1CF28u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1CF28u) goto L_08B1CF28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1CF28: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(160), aot_run_words); @@ -2539,8 +3518,8 @@ L_08B1CF28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1CF5C: @@ -2605,8 +3584,8 @@ L_08B1CF5C: aot_fpr_12 = aot_fpr_14 + aot_fpr_12; jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D050: @@ -2632,8 +3611,8 @@ L_08B1D050: const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D07C: @@ -2689,8 +3668,8 @@ L_08B1D07C: const std::uint32_t vfpu_address = aot_gpr_5 + static_cast(48); const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D0D8: @@ -2712,8 +3691,21 @@ L_08B1D0D8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B1D120u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 183u, 0x08B1D120u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D120u) goto L_08B1D120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D120: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[19] + static_cast(16)); @@ -2721,8 +3713,21 @@ L_08B1D120: aot_gpr_6 = (0u | 9u); aot_gpr_31 = (0x08B1D138u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 184u, 0x08B1D138u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D138u) goto L_08B1D138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D138: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -2749,8 +3754,21 @@ L_08B1D170: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B1D17Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 187u, 0x08B1D17Cu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D17Cu) goto L_08B1D17C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D17C: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -2787,8 +3805,21 @@ L_08B1D190: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08B1D200u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 189u, 0x08B1D200u, 0x08981324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 311u, 0x08981324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D200u) goto L_08B1D200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D200: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -2803,8 +3834,8 @@ L_08B1D200: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D228: @@ -2822,8 +3853,21 @@ L_08B1D228: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(68), aot_gpr_31); aot_gpr_31 = (0x08B1D260u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 191u, 0x08B1D260u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D260u) goto L_08B1D260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D260: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); @@ -2851,8 +3895,21 @@ L_08B1D298: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B1D2A4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 194u, 0x08B1D2A4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D2A4u) goto L_08B1D2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D2A4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B1D2A8; @@ -2888,8 +3945,21 @@ L_08B1D2A8: ctx.gpr[11] = (0u | 2048u); aot_gpr_31 = (0x08B1D2FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 196u, 0x08B1D2FCu, 0x088ABA2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 572u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 572u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 572u, 0x088ABA2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D2FCu) goto L_08B1D2FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D2FC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -2903,8 +3973,8 @@ L_08B1D2FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D320: @@ -2925,8 +3995,21 @@ L_08B1D320: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x08B1D364u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 198u, 0x08B1D364u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D364u) goto L_08B1D364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D364: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -2955,8 +4038,21 @@ L_08B1D3A0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B1D3ACu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 201u, 0x08B1D3ACu, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D3ACu) goto L_08B1D3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D3AC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B1D3B0; @@ -2980,14 +4076,40 @@ L_08B1D3B0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08B1D3D4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 203u, 0x08B1D3D4u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D3D4u) goto L_08B1D3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D3D4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B1D3E0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 204u, 0x08B1D3E0u, 0x088645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 52u, 0x088645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D3E0u) goto L_08B1D3E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D3E0: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -3017,8 +4139,21 @@ L_08B1D3EC: aot_gpr_6 = (0u | 6u); aot_gpr_31 = (0x08B1D410u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 206u, 0x08B1D410u, 0x08864760u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 68u, 0x08864760u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D410u) goto L_08B1D410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D410: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -3042,8 +4177,8 @@ L_08B1D424: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D450: @@ -3057,14 +4192,40 @@ L_08B1D450: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1D478u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 209u, 0x08B1D478u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D478u) goto L_08B1D478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D478: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08B1D484u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 210u, 0x08B1D484u, 0x088647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 74u, 0x088647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D484u) goto L_08B1D484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D484: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3075,8 +4236,8 @@ L_08B1D484: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D49C: @@ -3088,8 +4249,21 @@ L_08B1D49C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1D4BCu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 212u, 0x08B1D4BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D4BCu) goto L_08B1D4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D4BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -3109,16 +4283,29 @@ L_08B1D4D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); aot_gpr_31 = (0x08B1D4E4u); aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 216u, 0x08B1D4E4u, 0x089BB19Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 669u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 669u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 669u, 0x089BB19Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D4E4u) goto L_08B1D4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D4E4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D4F8: @@ -3130,8 +4317,21 @@ L_08B1D4F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1D518u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 218u, 0x08B1D518u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D518u) goto L_08B1D518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D518: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3158,8 +4358,8 @@ L_08B1D534: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D548: @@ -3171,8 +4371,21 @@ L_08B1D548: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1D568u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 223u, 0x08B1D568u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D568u) goto L_08B1D568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D568: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { const bool branch_taken = aot_gpr_5 == 0u; @@ -3215,8 +4428,21 @@ L_08B1D5A0: L_08B1D5A4: aot_gpr_31 = (0x08B1D5ACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 231u, 0x08B1D5ACu, 0x089BB258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 681u, 0x089BB258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D5ACu) goto L_08B1D5AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D5AC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3258,16 +4484,29 @@ L_08B1D5E4: L_08B1D5E8: aot_gpr_31 = (0x08B1D5F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 239u, 0x08B1D5F0u, 0x089BB258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 681u, 0x089BB258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D5F0u) goto L_08B1D5F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D5F0: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D604: @@ -3281,16 +4520,42 @@ L_08B1D604: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1D62Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 241u, 0x08B1D62Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D62Cu) goto L_08B1D62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D62C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08B1D640u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 242u, 0x08B1D640u, 0x0887CCD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 236u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 236u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 236u, 0x0887CCD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D640u) goto L_08B1D640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D640: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -3301,23 +4566,36 @@ L_08B1D640: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D658: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B1D668u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 244u, 0x08B1D668u, 0x0887CD60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 241u, 0x0887CD60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D668u) goto L_08B1D668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D668: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D678: @@ -3332,14 +4610,40 @@ L_08B1D678: aot_gpr_6 = (0u | 9u); aot_gpr_31 = (0x08B1D6A4u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 246u, 0x08B1D6A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D6A4u) goto L_08B1D6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D6A4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B1D6B0u); aot_gpr_4 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 247u, 0x08B1D6B0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D6B0u) goto L_08B1D6B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D6B0: aot_gpr_4 = (ctx.gpr[2] | 0u); if (aot_gpr_4 != 0u) { @@ -3385,8 +4689,21 @@ L_08B1D708: L_08B1D720: aot_gpr_31 = (0x08B1D728u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 251u, 0x08B1D728u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D728u) goto L_08B1D728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D728: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (2236u << 16u); @@ -3434,8 +4751,8 @@ L_08B1D794: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D7A8: @@ -3447,8 +4764,21 @@ L_08B1D7A8: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B1D7C8u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 256u, 0x08B1D7C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D7C8u) goto L_08B1D7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D7C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(8036))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); @@ -3530,8 +4860,8 @@ L_08B1D874: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D888: @@ -3543,8 +4873,21 @@ L_08B1D888: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1D8A8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 266u, 0x08B1D8A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D8A8u) goto L_08B1D8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D8A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -3564,16 +4907,29 @@ L_08B1D8C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); aot_gpr_31 = (0x08B1D8D0u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 270u, 0x08B1D8D0u, 0x089BB270u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 684u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 684u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 684u, 0x089BB270u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D8D0u) goto L_08B1D8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D8D0: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D8E4: @@ -3587,8 +4943,21 @@ L_08B1D8E4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B1D90Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 272u, 0x08B1D90Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D90Cu) goto L_08B1D90C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D90C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -3623,8 +4992,8 @@ L_08B1D934: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D96C: @@ -3638,8 +5007,21 @@ L_08B1D96C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B1D994u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 275u, 0x08B1D994u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1D994u) goto L_08B1D994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1D994: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -3674,8 +5056,8 @@ L_08B1D9BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1D9F4: @@ -3702,8 +5084,21 @@ L_08B1D9F4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1DA54u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 278u, 0x08B1DA54u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DA54u) goto L_08B1DA54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DA54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7552))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3724,8 +5119,21 @@ L_08B1DA70: aot_gpr_6 = (0u | 7u); aot_gpr_31 = (0x08B1DA84u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 281u, 0x08B1DA84u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DA84u) goto L_08B1DA84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DA84: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -3757,8 +5165,21 @@ L_08B1DAC8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08B1DAD8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 284u, 0x08B1DAD8u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DAD8u) goto L_08B1DAD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DAD8: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B1DADC; @@ -3768,8 +5189,21 @@ L_08B1DADC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B1DAF0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 286u, 0x08B1DAF0u, 0x08A93198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 461u, 0x08A93198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DAF0u) goto L_08B1DAF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DAF0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3783,8 +5217,21 @@ L_08B1DAF8: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B1DB0Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0041. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 288u, 0x08B1DB0Cu, 0x088ABB58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0041_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0041_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0041_entry, 41u, 575u, 0x088ABB58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DB0Cu) goto L_08B1DB0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DB0C: aot_gpr_4 = (16179u << 16u); aot_gpr_4 = (aot_gpr_4 | 13107u); @@ -3809,8 +5256,21 @@ L_08B1DB0C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B1DB6Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 289u, 0x08B1DB6Cu, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DB6Cu) goto L_08B1DB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DB6C: { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3841,8 +5301,8 @@ L_08B1DB6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1DBA8: @@ -3857,8 +5317,21 @@ L_08B1DBA8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1DBDCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 291u, 0x08B1DBDCu, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DBDCu) goto L_08B1DBDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DBDC: ctx.gpr[18] = (2236u << 16u); ctx.gpr[19] = (ctx.gpr[18] + static_cast(29704)); @@ -3868,8 +5341,21 @@ L_08B1DBDC: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08B1DBFCu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 292u, 0x08B1DBFCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DBFCu) goto L_08B1DBFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DBFC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); @@ -3912,8 +5398,21 @@ L_08B1DBFC: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B1DCA0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 293u, 0x08B1DCA0u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DCA0u) goto L_08B1DCA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DCA0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -3926,23 +5425,36 @@ L_08B1DCA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1DCC0: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B1DCD0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 295u, 0x08B1DCD0u, 0x08936810u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 693u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 693u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 693u, 0x08936810u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DCD0u) goto L_08B1DCD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DCD0: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1DCE0: @@ -3956,8 +5468,21 @@ L_08B1DCE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1DD08u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 297u, 0x08B1DD08u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DD08u) goto L_08B1DD08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DD08: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_16 = (2237u << 16u); @@ -3981,8 +5506,21 @@ L_08B1DD24: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08B1DD30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 300u, 0x08B1DD30u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DD30u) goto L_08B1DD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DD30: aot_gpr_31 = (0x08B1DD38u); aot_gpr_4 = (ctx.gpr[28] + static_cast(3308)); @@ -3994,8 +5532,21 @@ L_08B1DD38: L_08B1DD3C: aot_gpr_31 = (0x08B1DD44u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 303u, 0x08B1DD44u, 0x0882E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 607u, 0x0882E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DD44u) goto L_08B1DD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DD44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4015,8 +5566,21 @@ L_08B1DD54: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[17]); aot_gpr_31 = (0x08B1DD60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 306u, 0x08B1DD60u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DD60u) goto L_08B1DD60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DD60: aot_gpr_31 = (0x08B1DD68u); aot_gpr_4 = (ctx.gpr[28] + static_cast(3308)); @@ -4028,8 +5592,21 @@ L_08B1DD68: L_08B1DD6C: aot_gpr_31 = (0x08B1DD74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 309u, 0x08B1DD74u, 0x0882E994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 607u, 0x0882E994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DD74u) goto L_08B1DD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DD74: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4040,8 +5617,8 @@ L_08B1DD74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1DD8C: @@ -4055,8 +5632,21 @@ L_08B1DD8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1DDB4u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 311u, 0x08B1DDB4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DDB4u) goto L_08B1DDB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DDB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4074,8 +5664,21 @@ L_08B1DDC8: goto L_08B1DDCC; L_08B1DDCC: aot_gpr_31 = (0x08B1DDD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 315u, 0x08B1DDD4u, 0x089BAA60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 553u, 0x089BAA60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DDD4u) goto L_08B1DDD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DDD4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4109,8 +5712,21 @@ L_08B1DDFC: L_08B1DE04: aot_gpr_31 = (0x08B1DE0Cu); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 321u, 0x08B1DE0Cu, 0x089BB000u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 641u, 0x089BB000u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DE0Cu) goto L_08B1DE0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DE0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -4129,8 +5745,21 @@ L_08B1DE20: L_08B1DE28: aot_gpr_31 = (0x08B1DE30u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 325u, 0x08B1DE30u, 0x089BB008u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 642u, 0x089BB008u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DE30u) goto L_08B1DE30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DE30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -4149,8 +5778,21 @@ L_08B1DE44: L_08B1DE4C: aot_gpr_31 = (0x08B1DE54u); aot_gpr_5 = (aot_gpr_5 & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 329u, 0x08B1DE54u, 0x089BB010u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 643u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 643u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 643u, 0x089BB010u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DE54u) goto L_08B1DE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DE54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4169,8 +5811,21 @@ L_08B1DE68: L_08B1DE6C: aot_gpr_31 = (0x08B1DE74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 333u, 0x08B1DE74u, 0x089BAFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 640u, 0x089BAFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DE74u) goto L_08B1DE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DE74: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4181,8 +5836,8 @@ L_08B1DE74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1DE8C: @@ -4203,8 +5858,21 @@ L_08B1DE8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_31); aot_gpr_31 = (0x08B1DED0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 335u, 0x08B1DED0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DED0u) goto L_08B1DED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DED0: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(29704))); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(4))); @@ -4233,8 +5901,21 @@ L_08B1DF0C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B1DF18u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 338u, 0x08B1DF18u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DF18u) goto L_08B1DF18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DF18: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B1DF1C; @@ -4258,14 +5939,40 @@ L_08B1DF1C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_31 = (0x08B1DF40u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 340u, 0x08B1DF40u, 0x0886271Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 418u, 0x0886271Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DF40u) goto L_08B1DF40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DF40: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B1DF4Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 341u, 0x08B1DF4Cu, 0x088645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 52u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 52u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 52u, 0x088645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DF4Cu) goto L_08B1DF4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DF4C: aot_gpr_4 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] == aot_gpr_4; @@ -4295,8 +6002,21 @@ L_08B1DF58: aot_gpr_6 = (0u | 7u); aot_gpr_31 = (0x08B1DF7Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 343u, 0x08B1DF7Cu, 0x08864760u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 68u, 0x08864760u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DF7Cu) goto L_08B1DF7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DF7C: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4320,8 +6040,8 @@ L_08B1DF90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1DFBC: @@ -4335,14 +6055,40 @@ L_08B1DFBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1DFE4u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 346u, 0x08B1DFE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DFE4u) goto L_08B1DFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DFE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(29704))); aot_gpr_31 = (0x08B1DFF0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 347u, 0x08B1DFF0u, 0x088647D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 74u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 74u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 74u, 0x088647D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1DFF0u) goto L_08B1DFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1DFF0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4353,8 +6099,8 @@ L_08B1DFF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E008: @@ -4366,22 +6112,48 @@ L_08B1E008: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1E028u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 349u, 0x08B1E028u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E028u) goto L_08B1E028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E028: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_31 = (0x08B1E034u); aot_gpr_4 = (aot_gpr_4 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 350u, 0x08B1E034u, 0x088AC35Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 29u, 0x088AC35Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E034u) goto L_08B1E034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E034: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E048: @@ -4393,8 +6165,21 @@ L_08B1E048: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1E068u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 352u, 0x08B1E068u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E068u) goto L_08B1E068; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E068: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4437,8 +6222,21 @@ L_08B1E09C: L_08B1E0A0: aot_gpr_31 = (0x08B1E0A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 360u, 0x08B1E0A8u, 0x089BB258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 681u, 0x089BB258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E0A8u) goto L_08B1E0A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E0A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4463,16 +6261,29 @@ L_08B1E0C0: L_08B1E0C4: aot_gpr_31 = (0x08B1E0CCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 365u, 0x08B1E0CCu, 0x089BB258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 681u, 0x089BB258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E0CCu) goto L_08B1E0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E0CC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E0E0: @@ -4484,8 +6295,21 @@ L_08B1E0E0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1E100u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 367u, 0x08B1E100u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E100u) goto L_08B1E100; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E100: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4509,8 +6333,8 @@ L_08B1E114: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E13C: @@ -4522,8 +6346,21 @@ L_08B1E13C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1E15Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 371u, 0x08B1E15Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E15Cu) goto L_08B1E15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E15C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4548,8 +6385,8 @@ L_08B1E170: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E19C: @@ -4564,8 +6401,21 @@ L_08B1E19C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(56), aot_run_words); } aot_gpr_31 = (0x08B1E1D0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 375u, 0x08B1E1D0u, 0x088623D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 367u, 0x088623D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E1D0u) goto L_08B1E1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E1D0: ctx.gpr[18] = (2236u << 16u); ctx.gpr[19] = (ctx.gpr[18] + static_cast(29704)); @@ -4575,8 +6425,21 @@ L_08B1E1D0: aot_gpr_6 = (0u | 10u); aot_gpr_31 = (0x08B1E1F0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 376u, 0x08B1E1F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E1F0u) goto L_08B1E1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E1F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -4614,8 +6477,21 @@ L_08B1E1F0: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B1E274u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0042. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 377u, 0x08B1E274u, 0x088AEFC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0042_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0042_entry, 42u, 276u, 0x088AEFC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E274u) goto L_08B1E274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E274: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -4628,8 +6504,8 @@ L_08B1E274: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E294: @@ -4643,8 +6519,21 @@ L_08B1E294: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1E2BCu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 379u, 0x08B1E2BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E2BCu) goto L_08B1E2BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E2BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -4666,8 +6555,21 @@ L_08B1E2D4: aot_gpr_6 = (0u < aot_gpr_6 ? 1u : 0u); aot_gpr_31 = (0x08B1E2ECu); aot_gpr_6 = (aot_gpr_6 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 383u, 0x08B1E2ECu, 0x089BB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 674u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 674u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 674u, 0x089BB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E2ECu) goto L_08B1E2EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E2EC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4678,8 +6580,8 @@ L_08B1E2EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E304: @@ -4701,8 +6603,21 @@ L_08B1E31C: L_08B1E324: aot_gpr_31 = (0x08B1E32Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 387u, 0x08B1E32Cu, 0x089BABACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 580u, 0x089BABACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E32Cu) goto L_08B1E32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E32C: aot_gpr_4 = (0u < ctx.gpr[2] ? 1u : 0u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); @@ -4769,8 +6684,8 @@ L_08B1E3A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E3B4: @@ -4782,8 +6697,21 @@ L_08B1E3B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1E3D4u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 395u, 0x08B1E3D4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E3D4u) goto L_08B1E3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E3D4: aot_gpr_4 = (2236u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); @@ -4802,8 +6730,8 @@ L_08B1E3D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E418: @@ -4812,14 +6740,27 @@ L_08B1E418: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B1E42Cu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 397u, 0x08B1E42Cu, 0x08A9AC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E42Cu) goto L_08B1E42C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E42C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E438: @@ -4828,8 +6769,21 @@ L_08B1E438: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B1E454u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 399u, 0x08B1E454u, 0x089E7E00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 844u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 844u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 844u, 0x089E7E00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E454u) goto L_08B1E454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E454: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25252)); @@ -4859,8 +6813,8 @@ L_08B1E484: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E4A0: @@ -4869,8 +6823,21 @@ L_08B1E4A0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B1E4BCu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 403u, 0x08B1E4BCu, 0x089E7E64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 846u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 846u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 846u, 0x089E7E64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E4BCu) goto L_08B1E4BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E4BC: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25252)); @@ -4900,8 +6867,8 @@ L_08B1E4EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E508: @@ -4912,8 +6879,21 @@ L_08B1E508: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1E524u); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 407u, 0x08B1E524u, 0x089E7EF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 848u, 0x089E7EF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E524u) goto L_08B1E524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E524: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-25252)); @@ -4942,8 +6922,8 @@ L_08B1E560: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E578: @@ -5042,16 +7022,16 @@ L_08B1E618: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E630: ctx.gpr[2] = (2226u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-6608)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E63C: @@ -5063,8 +7043,8 @@ L_08B1E64C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E658: @@ -5085,8 +7065,21 @@ L_08B1E678: L_08B1E680: aot_gpr_31 = (0x08B1E688u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 427u, 0x08B1E688u, 0x089E7F48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 849u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 849u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 849u, 0x089E7F48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E688u) goto L_08B1E688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E688: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -5095,8 +7088,21 @@ L_08B1E688: goto L_08B1E690; L_08B1E690: aot_gpr_31 = (0x08B1E698u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 429u, 0x08B1E698u, 0x08A9A6CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 295u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 295u, 0x08A9A6CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E698u) goto L_08B1E698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E698: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -5135,8 +7141,8 @@ L_08B1E6C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E6DC: @@ -5158,14 +7164,40 @@ L_08B1E6F8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B1E70Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 437u, 0x08B1E70Cu, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E70Cu) goto L_08B1E70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E70C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1E718u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 438u, 0x08B1E718u, 0x089E815Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 24u, 0x089E815Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E718u) goto L_08B1E718; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E718: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5188,15 +7220,15 @@ L_08B1E72C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E740: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 12u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E748: @@ -5209,8 +7241,21 @@ L_08B1E748: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B1E76Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 443u, 0x08B1E76Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E76Cu) goto L_08B1E76C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E76C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -5232,8 +7277,8 @@ L_08B1E784: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E794: @@ -5262,8 +7307,8 @@ L_08B1E7C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E7CC: @@ -5277,8 +7322,21 @@ L_08B1E7CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B1E7F4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 451u, 0x08B1E7F4u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E7F4u) goto L_08B1E7F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E7F4: aot_gpr_16 = (ctx.gpr[2] | 0u); ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5302,8 +7360,8 @@ L_08B1E814: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E824: @@ -5317,8 +7375,8 @@ L_08B1E838: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E844: @@ -5327,16 +7385,42 @@ L_08B1E844: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1E858u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 458u, 0x08B1E858u, 0x089E7FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 858u, 0x089E7FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E858u) goto L_08B1E858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E858: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-30816)); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B1E86Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 459u, 0x08B1E86Cu, 0x08AAFA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 814u, 0x08AAFA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E86Cu) goto L_08B1E86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E86C: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(113), static_cast(0u)); ctx.gpr[2] = (aot_gpr_16 | 0u); @@ -5344,8 +7428,8 @@ L_08B1E86C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E884: @@ -5360,16 +7444,42 @@ L_08B1E884: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(48), aot_run_words); } aot_gpr_31 = (0x08B1E8B8u); aot_gpr_16 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0120. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 461u, 0x08B1E8B8u, 0x089E7FCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0120_entry(rt, ctx, 858u, aot_mem); +#else + recomp_unit_0120_entry(rt, ctx, 858u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0120_entry, 120u, 858u, 0x089E7FCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E8B8u) goto L_08B1E8B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E8B8: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-30816)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B1E8CCu); aot_gpr_4 = (ctx.gpr[17] + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 462u, 0x08B1E8CCu, 0x08AAFA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 814u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 814u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 814u, 0x08AAFA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E8CCu) goto L_08B1E8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E8CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(108))); aot_gpr_4 = (aot_gpr_4 + static_cast(152)); @@ -5389,8 +7499,21 @@ L_08B1E8E4: aot_gpr_5 = (0u | 52u); aot_gpr_31 = (0x08B1E900u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29120)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 464u, 0x08B1E900u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E900u) goto L_08B1E900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E900: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(20), aot_run_words); @@ -5425,22 +7548,61 @@ L_08B1E940: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1E950u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 468u, 0x08B1E950u, 0x08A9B9F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 456u, 0x08A9B9F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E950u) goto L_08B1E950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E950: aot_gpr_4 = (2237u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_4 = (aot_gpr_4 + static_cast(116)); aot_gpr_31 = (0x08B1E964u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 469u, 0x08B1E964u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E964u) goto L_08B1E964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E964: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B1E970u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 470u, 0x08B1E970u, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E970u) goto L_08B1E970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E970: aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(113), static_cast(0u)); ctx.gpr[2] = (ctx.gpr[17] | 0u); @@ -5454,8 +7616,8 @@ L_08B1E970: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1E994: @@ -5487,14 +7649,40 @@ L_08B1E9C0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B1E9D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 474u, 0x08B1E9D4u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E9D4u) goto L_08B1E9D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E9D4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1E9E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 475u, 0x08B1E9E0u, 0x089E815Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 24u, 0x089E815Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1E9E0u) goto L_08B1E9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1E9E0: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5517,8 +7705,8 @@ L_08B1E9F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EA08: @@ -5554,8 +7742,21 @@ L_08B1EA58: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(24)))))); aot_gpr_31 = (0x08B1EA70u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 480u, 0x08B1EA70u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EA70u) goto L_08B1EA70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EA70: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); @@ -5589,8 +7790,21 @@ L_08B1EAAC: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(26)))))); aot_gpr_31 = (0x08B1EAC4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 484u, 0x08B1EAC4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EAC4u) goto L_08B1EAC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EAC4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(68)))))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -5598,8 +7812,21 @@ L_08B1EAC4: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(28)))))); aot_gpr_31 = (0x08B1EADCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 485u, 0x08B1EADCu, 0x08A9B864u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 440u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 440u, 0x08A9B864u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EADCu) goto L_08B1EADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EADC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -5617,8 +7844,8 @@ L_08B1EAF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EB08: @@ -5653,8 +7880,21 @@ L_08B1EB60: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B1EB6Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 489u, 0x08B1EB6Cu, 0x089E825Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 40u, 0x089E825Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EB6Cu) goto L_08B1EB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EB6C: aot_gpr_4 = (ctx.gpr[17] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5748,8 +7988,21 @@ L_08B1EC4C: aot_gpr_5 = (ctx.gpr[19] + static_cast(44)); aot_gpr_31 = (0x08B1EC58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 499u, 0x08B1EC58u, 0x08964EE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 81u, 0x08964EE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EC58u) goto L_08B1EC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EC58: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5761,8 +8014,8 @@ L_08B1EC58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EC74: @@ -5775,23 +8028,49 @@ L_08B1EC74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08B1EC98u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 501u, 0x08B1EC98u, 0x08A9AC30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 338u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 338u, 0x08A9AC30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EC98u) goto L_08B1EC98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EC98: aot_gpr_5 = (15523u << 16u); aot_gpr_5 = (aot_gpr_5 | 55050u); aot_gpr_4 = (aot_gpr_16 + static_cast(112)); aot_gpr_31 = (0x08B1ECACu); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 502u, 0x08B1ECACu, 0x08AAFA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 815u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 815u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 815u, 0x08AAFA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1ECACu) goto L_08B1ECAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1ECAC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1ECBC: @@ -5813,8 +8092,21 @@ L_08B1ECDC: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1ECECu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 505u, 0x08B1ECECu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1ECECu) goto L_08B1ECEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1ECEC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5831,8 +8123,8 @@ L_08B1ECF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1ED14: @@ -5852,8 +8144,21 @@ L_08B1ED2C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1ED3Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 509u, 0x08B1ED3Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1ED3Cu) goto L_08B1ED3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1ED3C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5866,8 +8171,8 @@ L_08B1ED48: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1ED60: @@ -5889,8 +8194,21 @@ L_08B1ED80: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1ED90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 513u, 0x08B1ED90u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1ED90u) goto L_08B1ED90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1ED90: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5907,8 +8225,8 @@ L_08B1ED9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EDB8: @@ -5928,8 +8246,21 @@ L_08B1EDD0: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1EDE0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 517u, 0x08B1EDE0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EDE0u) goto L_08B1EDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EDE0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5942,8 +8273,8 @@ L_08B1EDEC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EE04: @@ -5965,8 +8296,21 @@ L_08B1EE24: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1EE34u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 521u, 0x08B1EE34u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EE34u) goto L_08B1EE34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EE34: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -5983,8 +8327,8 @@ L_08B1EE40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EE5C: @@ -6004,8 +8348,21 @@ L_08B1EE74: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1EE84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 525u, 0x08B1EE84u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EE84u) goto L_08B1EE84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EE84: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -6019,8 +8376,8 @@ L_08B1EE90: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EEAC: @@ -6042,8 +8399,21 @@ L_08B1EECC: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1EEDCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 529u, 0x08B1EEDCu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EEDCu) goto L_08B1EEDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EEDC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(96), ctx.gpr[2]); @@ -6060,8 +8430,8 @@ L_08B1EEE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EF04: @@ -6083,8 +8453,21 @@ L_08B1EF24: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B1EF34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 533u, 0x08B1EF34u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EF34u) goto L_08B1EF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EF34: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); @@ -6123,8 +8506,8 @@ L_08B1EF68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1EF7C: @@ -6138,8 +8521,21 @@ L_08B1EF7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B1EFA8u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 540u, 0x08B1EFA8u, 0x089E85DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 69u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 69u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 69u, 0x089E85DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1EFA8u) goto L_08B1EFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1EFA8: aot_gpr_5 = (46470u << 16u); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(2))); @@ -6328,8 +8724,8 @@ L_08B1F108: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F124: @@ -6406,8 +8802,8 @@ L_08B1F1B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F1D8: @@ -6451,8 +8847,21 @@ L_08B1F260: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1F270u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 576u, 0x08B1F270u, 0x089E87C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 103u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 103u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 103u, 0x089E87C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F270u) goto L_08B1F270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F270: aot_gpr_4 = (ctx.gpr[18] & 2u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6583,8 +8992,21 @@ L_08B1F3E4: aot_gpr_5 = (aot_gpr_16 + static_cast(44)); aot_gpr_31 = (0x08B1F3F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 586u, 0x08B1F3F0u, 0x08964B98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 75u, 0x08964B98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F3F0u) goto L_08B1F3F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F3F0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -6595,8 +9017,8 @@ L_08B1F3F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F408: @@ -6633,8 +9055,21 @@ L_08B1F468: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(0)))))); aot_gpr_31 = (0x08B1F478u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 591u, 0x08B1F478u, 0x08ADC0B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 8u, 0x08ADC0B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F478u) goto L_08B1F478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F478: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6674,8 +9109,21 @@ L_08B1F49C: L_08B1F4A4: aot_gpr_31 = (0x08B1F4ACu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0121. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 597u, 0x08B1F4ACu, 0x089E8590u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0121_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0121_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0121_entry, 121u, 65u, 0x089E8590u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F4ACu) goto L_08B1F4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F4AC: aot_fpr_12 = std::bit_cast(0u); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[0] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -6716,8 +9164,21 @@ L_08B1F4E4: aot_gpr_6 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08B1F4F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 602u, 0x08B1F4F4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F4F4u) goto L_08B1F4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F4F4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(80))); @@ -6818,8 +9279,21 @@ L_08B1F5A4: ctx.gpr[8] = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B1F5C4u); ctx.gpr[9] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 617u, 0x08B1F5C4u, 0x08AAFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 835u, 0x08AAFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F5C4u) goto L_08B1F5C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F5C4: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(41))); @@ -6907,8 +9381,21 @@ L_08B1F634: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B1F660u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 630u, 0x08B1F660u, 0x08AAFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 835u, 0x08AAFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F660u) goto L_08B1F660; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F660: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(41))); @@ -6976,8 +9463,21 @@ L_08B1F6AC: aot_gpr_6 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B1F6D8u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 641u, 0x08B1F6D8u, 0x08AAFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 835u, 0x08AAFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F6D8u) goto L_08B1F6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F6D8: ctx.gpr[18] = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(41))); goto L_08B1F6DC; @@ -7003,8 +9503,21 @@ L_08B1F6F8: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08B1F704u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 645u, 0x08B1F704u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F704u) goto L_08B1F704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F704: ctx.gpr[21] = (ctx.gpr[2] | 0u); if (ctx.gpr[21] == 0u) { @@ -7026,8 +9539,21 @@ L_08B1F720: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08B1F730u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(48))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 649u, 0x08B1F730u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F730u) goto L_08B1F730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F730: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B1F73Cu); @@ -7041,8 +9567,21 @@ L_08B1F73C: L_08B1F744: aot_gpr_31 = (0x08B1F74Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 652u, 0x08B1F74Cu, 0x088733D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 731u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 731u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 731u, 0x088733D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F74Cu) goto L_08B1F74C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F74C: aot_gpr_31 = (0x08B1F754u); aot_gpr_4 = (0u | 1u); @@ -7078,8 +9617,21 @@ L_08B1F780: aot_gpr_4 = (aot_gpr_4 | 11534u); aot_gpr_31 = (0x08B1F7C0u); aot_fpr_12 = std::bit_cast(aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 655u, 0x08B1F7C0u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F7C0u) goto L_08B1F7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F7C0: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(76), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(77), static_cast(0u)); @@ -7126,8 +9678,21 @@ L_08B1F814: ctx.gpr[8] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B1F834u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 660u, 0x08B1F834u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F834u) goto L_08B1F834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F834: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(84), aot_run_words); @@ -7144,28 +9709,28 @@ L_08B1F834: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F864: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F86C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F874: ctx.gpr[2] = (2226u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-1932)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F880: @@ -7177,8 +9742,8 @@ L_08B1F890: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F89C: @@ -7199,8 +9764,21 @@ L_08B1F8BC: L_08B1F8C4: aot_gpr_31 = (0x08B1F8CCu); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 669u, 0x08B1F8CCu, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F8CCu) goto L_08B1F8CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F8CC: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -7209,8 +9787,21 @@ L_08B1F8CC: goto L_08B1F8D4; L_08B1F8D4: aot_gpr_31 = (0x08B1F8DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 671u, 0x08B1F8DCu, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F8DCu) goto L_08B1F8DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F8DC: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -7249,8 +9840,8 @@ L_08B1F904: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F920: @@ -7259,8 +9850,21 @@ L_08B1F920: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B1F934u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 678u, 0x08B1F934u, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F934u) goto L_08B1F934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F934: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-30640)); @@ -7279,16 +9883,29 @@ L_08B1F94C: L_08B1F954: aot_gpr_31 = (0x08B1F95Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 681u, 0x08B1F95Cu, 0x08873600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 760u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 760u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 760u, 0x08873600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F95Cu) goto L_08B1F95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F95C: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F970: @@ -7311,8 +9928,21 @@ L_08B1F98C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B1F9A4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 684u, 0x08B1F9A4u, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1F9A4u) goto L_08B1F9A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1F9A4: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7335,20 +9965,20 @@ L_08B1F9B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F9CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F9D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1F9DC: @@ -7368,14 +9998,27 @@ L_08B1F9F0: L_08B1F9F8: aot_gpr_31 = (0x08B1FA00u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 692u, 0x08B1FA00u, 0x0887394Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 828u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 828u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 828u, 0x0887394Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1FA00u) goto L_08B1FA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1FA00: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FA0C: @@ -7395,14 +10038,27 @@ L_08B1FA20: L_08B1FA28: aot_gpr_31 = (0x08B1FA30u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 696u, 0x08B1FA30u, 0x0887394Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 828u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 828u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 828u, 0x0887394Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1FA30u) goto L_08B1FA30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1FA30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FA3C: @@ -7422,34 +10078,60 @@ L_08B1FA50: L_08B1FA58: aot_gpr_31 = (0x08B1FA60u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 700u, 0x08B1FA60u, 0x088736E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 776u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 776u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 776u, 0x088736E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1FA60u) goto L_08B1FA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1FA60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FA6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FA74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FA7C: aot_gpr_29 = (aot_gpr_29 + static_cast(-16)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B1FA8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 704u, 0x08B1FA8Cu, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1FA8Cu) goto L_08B1FA8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1FA8C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7472,8 +10154,8 @@ L_08B1FAA0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FAAC: @@ -7521,8 +10203,21 @@ L_08B1FAF0: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B1FB20u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 713u, 0x08B1FB20u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1FB20u) goto L_08B1FB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1FB20: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(16)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7547,8 +10242,8 @@ L_08B1FB38: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FB48: @@ -7580,14 +10275,27 @@ L_08B1FB48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B1FB8Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 718u, 0x08B1FB8Cu, 0x0889ACD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 487u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 487u, 0x0889ACD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1FB8Cu) goto L_08B1FB8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1FB8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FB98: @@ -7663,8 +10371,21 @@ L_08B1FB98: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08B1FC60u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 720u, 0x08B1FC60u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1FC60u) goto L_08B1FC60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1FC60: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (15820u << 16u); @@ -7700,8 +10421,21 @@ L_08B1FC70: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B1FCC8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0198->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0198_entry, 723u, 0x08B1FCC8u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B1FCC8u) goto L_08B1FCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B1FCC8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7775,15 +10509,15 @@ L_08B1FD38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FD68: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10576), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FD70: @@ -7813,8 +10547,8 @@ L_08B1FD94: goto L_08B1FD9C; L_08B1FD9C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FDA4: @@ -7939,15 +10673,15 @@ L_08B1FDA4: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(628), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(632), std::bit_cast(aot_fpr_12)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B1FFFC: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; } diff --git a/profiles/vcs/generated/generated_unit_0199.cpp b/profiles/vcs/generated/generated_unit_0199.cpp index 46344e4..39e6147 100644 --- a/profiles/vcs/generated/generated_unit_0199.cpp +++ b/profiles/vcs/generated/generated_unit_0199.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0199[64] = { 407u, 423u, 434u, 450u, 469u, 476u, 489u, 504u, 513u, 523u, 536u, 549u, 567u, 583u, 601u, 610u, 619u, 622u, 633u, 645u, 649u, 659u, 681u, 694u, 700u, 702u, 720u, 724u, 733u, 744u, 758u, 764u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0199[4089] = { + 1u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 4u, 0u, 5u, 0u, 0u, 6u, 0u, 7u, 0u, 0u, 8u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 9u, 0u, 0u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 13u, 0u, 0u, 0u, 0u, 14u, 0u, 15u, 0u, 16u, 0u, 17u, 0u, 18u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 0u, 0u, 21u, 0u, + 0u, 22u, 0u, 0u, 0u, 23u, 0u, 0u, 24u, 0u, 25u, 0u, 0u, 0u, 26u, 0u, 0u, 27u, 0u, 0u, 0u, 0u, 0u, 28u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, 0u, + 30u, 0u, 0u, 31u, 0u, 0u, 32u, 0u, 0u, 33u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 35u, 36u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, + 38u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 39u, 0u, 40u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 43u, 0u, 44u, 0u, 45u, 0u, 0u, 0u, 0u, + 0u, 46u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 48u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 51u, 0u, 0u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 53u, 0u, 54u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 56u, 0u, 57u, 0u, 0u, 58u, 0u, 0u, 0u, + 0u, 59u, 60u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 61u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 63u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 64u, 0u, 65u, 0u, 0u, + 0u, 66u, 0u, 0u, 67u, 0u, 0u, 68u, 0u, 0u, 69u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 0u, 0u, 0u, 71u, 0u, 72u, 0u, 0u, 0u, 73u, 0u, 0u, 74u, + 0u, 0u, 0u, 0u, 75u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 78u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 79u, 0u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 81u, 0u, 82u, 0u, 0u, 83u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 84u, 0u, 0u, 0u, 85u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 89u, 0u, 0u, 0u, 90u, 91u, 0u, 92u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 93u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 94u, 0u, 95u, 0u, 96u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 98u, 0u, 99u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 0u, 101u, 102u, 0u, 103u, 104u, 0u, 105u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 106u, 0u, 0u, 107u, 0u, 0u, 0u, 108u, 0u, 109u, 0u, 0u, 0u, 110u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 111u, 0u, 0u, 0u, 112u, 0u, 113u, 0u, 0u, 0u, 114u, 0u, 0u, 115u, 0u, 0u, 116u, 0u, 0u, 0u, 0u, 0u, 117u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 118u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 119u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 0u, 0u, 0u, 122u, + 0u, 123u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 124u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 125u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, + 0u, 0u, 127u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 0u, 132u, 0u, 133u, 0u, 134u, 0u, 0u, 135u, 0u, 0u, 136u, 0u, 0u, 137u, 0u, 0u, 0u, 0u, 138u, + 0u, 139u, 0u, 140u, 141u, 0u, 142u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 143u, 0u, 144u, 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 0u, 147u, + 0u, 0u, 0u, 0u, 148u, 0u, 0u, 0u, 149u, 0u, 150u, 0u, 151u, 0u, 0u, 152u, 0u, 0u, 153u, 0u, 0u, 0u, 154u, 0u, 155u, 0u, 156u, 0u, 0u, 157u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, 0u, 159u, 0u, 160u, 0u, 0u, 161u, 0u, 162u, 0u, 163u, 0u, + 164u, 0u, 165u, 0u, 0u, 166u, 0u, 0u, 0u, 0u, 167u, 0u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 170u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 171u, 0u, 0u, 172u, 0u, 0u, 173u, 0u, 174u, 0u, 0u, 0u, 175u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 0u, 177u, 0u, 0u, 178u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 181u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 182u, 0u, 0u, 0u, 183u, 0u, 184u, 0u, 0u, 0u, 185u, 0u, 186u, 0u, 0u, 0u, 187u, 0u, + 188u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 189u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 190u, 0u, 191u, + 0u, 192u, 0u, 0u, 0u, 0u, 0u, 0u, 193u, 0u, 0u, 194u, 0u, 0u, 0u, 0u, 0u, 195u, 0u, 196u, 197u, 0u, 0u, 0u, 0u, 0u, 0u, 198u, 0u, 0u, 0u, 199u, + 0u, 0u, 0u, 0u, 0u, 200u, 0u, 201u, 202u, 0u, 203u, 204u, 0u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 207u, 0u, 208u, 209u, 0u, + 210u, 0u, 0u, 0u, 0u, 211u, 0u, 212u, 0u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 215u, 0u, 0u, 0u, 0u, 0u, 216u, 0u, 0u, 217u, 0u, 0u, 0u, + 0u, 218u, 0u, 0u, 0u, 0u, 219u, 0u, 220u, 0u, 221u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 224u, 0u, 225u, 0u, 226u, 0u, 227u, 0u, 0u, 0u, 0u, + 0u, 228u, 0u, 0u, 229u, 0u, 0u, 230u, 0u, 0u, 231u, 0u, 232u, 0u, 233u, 0u, 234u, 0u, 235u, 0u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 0u, 237u, 0u, 238u, 0u, + 239u, 0u, 0u, 0u, 0u, 240u, 241u, 0u, 242u, 0u, 243u, 244u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 247u, 0u, 0u, 248u, 0u, 0u, 0u, 249u, + 0u, 250u, 0u, 0u, 0u, 0u, 251u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 253u, 0u, 0u, 254u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 256u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, + 0u, 0u, 259u, 0u, 0u, 0u, 0u, 0u, 0u, 260u, 0u, 0u, 261u, 0u, 0u, 0u, 0u, 0u, 0u, 262u, 0u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 264u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 265u, 0u, 0u, 266u, 0u, 0u, 267u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 268u, 0u, 0u, 0u, 0u, 0u, 0u, 269u, 0u, 0u, 0u, 270u, 0u, 0u, 0u, 271u, 0u, 0u, 0u, 272u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 273u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 274u, + 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 0u, 278u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 279u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 280u, 281u, 0u, 0u, 0u, 0u, 282u, 0u, 0u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 284u, 0u, 285u, + 0u, 286u, 0u, 287u, 0u, 0u, 288u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 290u, 0u, 291u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 296u, 0u, 0u, 0u, 0u, 0u, 0u, + 297u, 298u, 0u, 0u, 0u, 0u, 0u, 299u, 0u, 0u, 0u, 300u, 0u, 0u, 0u, 0u, 0u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 0u, 303u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 304u, 0u, 305u, 0u, 0u, 0u, 0u, 0u, 0u, 306u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 309u, 0u, 0u, 0u, 0u, 310u, 0u, + 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 0u, 0u, 312u, 0u, 0u, 313u, 0u, 314u, 0u, 0u, 0u, 0u, 315u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 317u, 0u, 318u, 319u, 0u, 320u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 322u, + 0u, 0u, 0u, 323u, 0u, 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 326u, 0u, 327u, 0u, 328u, 0u, 329u, 0u, 330u, 0u, 331u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 332u, 0u, 333u, 0u, 0u, 0u, 334u, 0u, 0u, 335u, 0u, 336u, 0u, 337u, 0u, 338u, 0u, 339u, 0u, 340u, 0u, 341u, 0u, 342u, 0u, 343u, 0u, + 344u, 0u, 345u, 0u, 0u, 0u, 346u, 0u, 0u, 347u, 0u, 348u, 0u, 349u, 0u, 350u, 0u, 351u, 0u, 352u, 0u, 0u, 0u, 353u, 0u, 354u, 0u, 355u, 0u, 356u, 0u, 357u, + 0u, 358u, 0u, 359u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 363u, 0u, 364u, 0u, 365u, 0u, 0u, 366u, 0u, 0u, 0u, 0u, + 367u, 0u, 368u, 0u, 0u, 0u, 369u, 0u, 370u, 0u, 371u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 373u, 0u, 0u, 374u, 0u, 375u, 0u, 0u, 0u, 0u, 0u, 0u, 376u, 0u, + 377u, 0u, 378u, 0u, 0u, 0u, 379u, 0u, 380u, 0u, 381u, 0u, 0u, 0u, 382u, 0u, 0u, 383u, 0u, 384u, 0u, 385u, 0u, 386u, 0u, 0u, 387u, 0u, 0u, 0u, 388u, 0u, + 0u, 0u, 389u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 391u, 0u, 0u, 0u, 0u, 0u, 0u, 392u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 393u, 0u, 0u, 0u, 0u, 0u, 394u, 0u, 0u, 395u, 0u, 396u, 0u, 0u, 0u, 397u, 0u, 0u, 0u, 398u, 0u, 0u, 399u, 0u, 400u, 0u, 0u, 0u, 401u, 0u, + 0u, 0u, 0u, 402u, 0u, 0u, 0u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 405u, 406u, 0u, 0u, 0u, 0u, 0u, + 407u, 0u, 408u, 0u, 0u, 0u, 0u, 409u, 0u, 410u, 0u, 411u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 412u, 0u, 0u, 0u, 0u, 0u, 0u, 413u, + 0u, 414u, 0u, 415u, 0u, 0u, 0u, 416u, 0u, 0u, 0u, 417u, 0u, 0u, 418u, 0u, 419u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 421u, 0u, 0u, 0u, 0u, 0u, 422u, 0u, + 423u, 0u, 0u, 424u, 0u, 425u, 0u, 426u, 0u, 427u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 0u, 429u, 0u, 0u, 430u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, + 0u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 436u, 0u, 437u, 0u, 438u, 0u, 0u, 0u, 439u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 441u, + 0u, 0u, 0u, 442u, 0u, 443u, 0u, 0u, 0u, 444u, 0u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 446u, 0u, 0u, 0u, 0u, 447u, 0u, 448u, 0u, 0u, 0u, 449u, 0u, + 0u, 0u, 450u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, 452u, 0u, 453u, 0u, 0u, 0u, 454u, 0u, 455u, 0u, 0u, 456u, 0u, 0u, 0u, 457u, 0u, 0u, 0u, 458u, 0u, 459u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 460u, 0u, 0u, 461u, 0u, 0u, 462u, 0u, 0u, 0u, 463u, 0u, 0u, 464u, 0u, 0u, 465u, 0u, 0u, 466u, 0u, 467u, 0u, 0u, 468u, + 0u, 0u, 0u, 0u, 0u, 469u, 0u, 0u, 0u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 471u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 0u, 0u, 0u, 474u, 0u, 0u, 0u, 475u, 0u, + 0u, 0u, 0u, 0u, 0u, 476u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 0u, 0u, 0u, 0u, 480u, 0u, 0u, 0u, + 0u, 0u, 0u, 481u, 0u, 0u, 0u, 482u, 0u, 483u, 0u, 484u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, 487u, 0u, 0u, 488u, 0u, + 0u, 0u, 0u, 0u, 489u, 0u, 0u, 490u, 0u, 0u, 491u, 0u, 0u, 0u, 0u, 0u, 492u, 0u, 0u, 493u, 0u, 0u, 494u, 0u, 0u, 0u, 495u, 0u, 496u, 0u, 0u, 0u, + 0u, 497u, 0u, 498u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 499u, 0u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 501u, 502u, 0u, 0u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, + 504u, 0u, 0u, 0u, 0u, 0u, 0u, 505u, 0u, 0u, 506u, 0u, 0u, 0u, 0u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 0u, 510u, 0u, 0u, 0u, 0u, 511u, 0u, 512u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 513u, 0u, 0u, 0u, 0u, 0u, 0u, 514u, 0u, 0u, 515u, 0u, 0u, 0u, 0u, 0u, 516u, 0u, 517u, 0u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, 0u, 519u, 0u, 0u, 520u, + 0u, 0u, 0u, 0u, 0u, 521u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 523u, 0u, 0u, 524u, 0u, 0u, 0u, 0u, 525u, 0u, 526u, 0u, 0u, 0u, 0u, 527u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 529u, 0u, 0u, 530u, 0u, 0u, + 0u, 0u, 0u, 531u, 0u, 0u, 0u, 0u, 0u, 0u, 532u, 0u, 0u, 533u, 0u, 534u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 535u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 536u, 0u, 0u, 537u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, 539u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 540u, 0u, 541u, 0u, 0u, 542u, 0u, 543u, 0u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 0u, 546u, 0u, 0u, 0u, 547u, 0u, 548u, + 0u, 0u, 0u, 549u, 0u, 550u, 0u, 0u, 551u, 0u, 552u, 0u, 553u, 0u, 554u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, 556u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, + 0u, 0u, 558u, 0u, 559u, 0u, 560u, 0u, 561u, 0u, 0u, 562u, 0u, 0u, 0u, 563u, 0u, 0u, 0u, 564u, 0u, 0u, 565u, 0u, 566u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 567u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 568u, 0u, 569u, 0u, 570u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 573u, 0u, 0u, 574u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 575u, 0u, 0u, 576u, 0u, 0u, 577u, 0u, 578u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 579u, 0u, 0u, 580u, 0u, 0u, 581u, 0u, 0u, 582u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 583u, 0u, 0u, 584u, 0u, 0u, 585u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 588u, 0u, 589u, 0u, 590u, 0u, 0u, 0u, 591u, + 0u, 592u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 593u, 0u, 594u, 0u, 595u, 0u, 0u, 596u, 0u, 597u, 0u, 0u, 598u, 0u, 599u, 0u, 0u, 600u, 0u, 0u, + 0u, 601u, 0u, 0u, 0u, 602u, 0u, 0u, 0u, 0u, 603u, 0u, 604u, 0u, 0u, 0u, 0u, 605u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 606u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 607u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 608u, 0u, 0u, 0u, 0u, 0u, 609u, 0u, 0u, 0u, 0u, + 0u, 610u, 0u, 611u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 0u, 0u, 0u, 613u, 0u, 0u, 0u, 0u, 614u, 0u, 615u, 0u, 0u, 616u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 617u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 618u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 620u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 623u, 0u, 624u, 0u, 625u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 626u, 0u, 627u, 0u, 628u, 629u, 0u, 0u, 0u, 630u, 0u, 0u, 0u, 631u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 632u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 633u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 634u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 635u, 636u, 637u, 0u, 0u, 638u, 0u, 0u, 639u, 0u, 640u, 641u, 0u, 0u, 642u, 0u, 0u, 643u, 0u, 644u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 646u, 0u, 0u, 0u, 0u, 647u, 0u, 648u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 649u, 0u, 650u, 0u, 651u, 0u, 652u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 653u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 654u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, 0u, 656u, 0u, 657u, 0u, 658u, 0u, + 659u, 0u, 0u, 660u, 0u, 0u, 661u, 0u, 0u, 662u, 0u, 0u, 663u, 0u, 664u, 0u, 665u, 0u, 666u, 0u, 0u, 667u, 0u, 0u, 668u, 0u, 0u, 669u, 670u, 0u, 0u, 671u, + 0u, 0u, 672u, 0u, 673u, 0u, 0u, 674u, 0u, 0u, 675u, 0u, 0u, 676u, 677u, 0u, 0u, 0u, 678u, 679u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 0u, 682u, 0u, 0u, 0u, 683u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 684u, 0u, 0u, 685u, 0u, 0u, 0u, + 686u, 0u, 0u, 0u, 0u, 687u, 0u, 0u, 688u, 0u, 689u, 0u, 0u, 0u, 0u, 0u, 0u, 690u, 0u, 0u, 691u, 0u, 0u, 692u, 0u, 0u, 0u, 0u, 0u, 0u, 693u, 0u, + 694u, 0u, 0u, 0u, 695u, 0u, 0u, 0u, 696u, 0u, 0u, 697u, 0u, 698u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 699u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 701u, 0u, 0u, + 0u, 0u, 702u, 0u, 703u, 0u, 704u, 0u, 705u, 0u, 706u, 0u, 707u, 0u, 708u, 0u, 709u, 0u, 710u, 0u, 711u, 0u, 712u, 0u, 713u, 0u, 714u, 715u, 0u, 716u, 0u, 717u, + 0u, 718u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 720u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 721u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 723u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 724u, 0u, 725u, 0u, 0u, 0u, 726u, 0u, 0u, 0u, 727u, 0u, 728u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 730u, 0u, 731u, 0u, 0u, 0u, 732u, 0u, 0u, + 733u, 0u, 0u, 734u, 0u, 0u, 0u, 0u, 735u, 0u, 736u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 737u, 0u, 0u, 0u, 0u, 0u, 738u, 0u, 739u, 0u, + 0u, 0u, 0u, 0u, 740u, 0u, 0u, 0u, 741u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 742u, 0u, 743u, 0u, + 744u, 0u, 0u, 0u, 745u, 0u, 0u, 746u, 0u, 0u, 0u, 0u, 0u, 747u, 0u, 0u, 748u, 0u, 749u, 0u, 0u, 0u, 0u, 0u, 750u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 751u, 0u, 752u, 0u, 753u, 0u, 0u, 0u, 754u, 0u, 755u, 0u, 0u, 0u, 0u, 0u, 0u, 756u, 0u, 0u, 0u, 0u, 757u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 758u, 0u, 0u, 759u, 0u, 760u, 0u, 0u, 0u, 761u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 762u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 763u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 764u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 765u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 766u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 767u, +}; void recomp_unit_0199_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,31,29,16,6 fprs=12,13,14,15 gpr_occ=4172 fpr_occ=530 gpr_total=5667 fpr_total=803 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08B20000u; - entry_id = 0u; - if (entry_delta < 16356u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0199[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0199[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16356u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0199[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08B20000; @@ -845,6 +968,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B20000u; + if (local_delta_v813 >= 16356u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -871,29 +1018,94 @@ L_08B20004: ctx.gpr[17] = (ctx.gpr[17] + static_cast(12592)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B2002Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 3u, 0x08B2002Cu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2002Cu) goto L_08B2002C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2002C: aot_gpr_31 = (0x08B20034u); aot_gpr_4 = (ctx.gpr[28] + static_cast(3612)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 4u, 0x08B20034u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20034u) goto L_08B20034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20034: aot_gpr_31 = (0x08B2003Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 5u, 0x08B2003Cu, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2003Cu) goto L_08B2003C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2003C: aot_gpr_4 = (ctx.gpr[28] + static_cast(3624)); aot_gpr_31 = (0x08B20048u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 6u, 0x08B20048u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20048u) goto L_08B20048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20048: aot_gpr_31 = (0x08B20050u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(3608), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 7u, 0x08B20050u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20050u) goto L_08B20050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20050: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u + static_cast(-128)); @@ -951,8 +1163,8 @@ L_08B200D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B200E4: @@ -1092,8 +1304,8 @@ L_08B201C4: } L_08B201DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B201E4: @@ -1449,8 +1661,21 @@ L_08B20524: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08B20544u); aot_gpr_4 = (aot_gpr_4 + static_cast(-272)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 62u, 0x08B20544u, 0x08AEE610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 515u, 0x08AEE610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20544u) goto L_08B20544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20544: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1467,12 +1692,38 @@ L_08B2054C: aot_gpr_6 = (aot_gpr_6 + aot_gpr_6); aot_gpr_31 = (0x08B2056Cu); aot_gpr_4 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 64u, 0x08B2056Cu, 0x08AEE8E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 536u, 0x08AEE8E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2056Cu) goto L_08B2056C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2056C: aot_gpr_31 = (0x08B20574u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 65u, 0x08B20574u, 0x08AEE8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 535u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 535u, 0x08AEE8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20574u) goto L_08B20574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20574: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[17]) < 32 ? 1u : 0u); @@ -1510,8 +1761,8 @@ L_08B205A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B205BC: @@ -1897,8 +2148,8 @@ L_08B208D0: goto L_08B208D4; L_08B208D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B208DC: @@ -1911,14 +2162,27 @@ L_08B208DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B20900u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(-4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 106u, 0x08B20900u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20900u) goto L_08B20900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20900: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2090C: @@ -1934,8 +2198,8 @@ L_08B20924: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20934: @@ -1967,8 +2231,8 @@ L_08B20980: goto L_08B20990; L_08B20990: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20998: @@ -1997,8 +2261,8 @@ L_08B209C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B209D8: @@ -2031,8 +2295,8 @@ L_08B209F8: L_08B20A24: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(3652), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20A2C: @@ -2178,8 +2442,8 @@ L_08B20B88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20BD8: @@ -2187,8 +2451,8 @@ L_08B20BD8: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20BEC: @@ -2201,16 +2465,29 @@ L_08B20BEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B20C10u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(3032)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 130u, 0x08B20C10u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20C10u) goto L_08B20C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20C10: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20C24: @@ -2238,8 +2515,8 @@ L_08B20C44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20C50: @@ -2286,8 +2563,8 @@ L_08B20C8C: goto L_08B20C90; L_08B20C90: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20C98: @@ -2450,8 +2727,21 @@ L_08B20D74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08B20DCCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 158u, 0x08B20DCCu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20DCCu) goto L_08B20DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20DCC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2523,8 +2813,8 @@ L_08B20E28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20E40: @@ -2535,8 +2825,21 @@ L_08B20E40: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B20E5Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 169u, 0x08B20E5Cu, 0x08980080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 9u, 0x08980080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20E5Cu) goto L_08B20E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20E5C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2554,8 +2857,21 @@ L_08B20E64: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B20E88u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 171u, 0x08B20E88u, 0x089902D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 54u, 0x089902D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20E88u) goto L_08B20E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20E88: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2572,15 +2888,28 @@ L_08B20E94: L_08B20EA0: aot_gpr_31 = (0x08B20EA8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 174u, 0x08B20EA8u, 0x08980164u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 21u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 21u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 21u, 0x08980164u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B20EA8u) goto L_08B20EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B20EA8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B20EB8: @@ -2789,8 +3118,8 @@ L_08B210C4: L_08B210F4: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B210FC: @@ -2828,8 +3157,8 @@ L_08B2112C: L_08B21144: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_6 & 65535u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2114C: @@ -2880,8 +3209,8 @@ L_08B2119C: goto L_08B211A0; L_08B211A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B211A8: @@ -2931,8 +3260,8 @@ L_08B211F4: goto L_08B211F8; L_08B211F8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21200: @@ -2951,8 +3280,8 @@ L_08B2121C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21228: @@ -2997,8 +3326,8 @@ L_08B21270: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21284: @@ -3026,8 +3355,8 @@ L_08B212A8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B212B4: @@ -3078,8 +3407,8 @@ L_08B21304: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21310: @@ -3117,8 +3446,8 @@ L_08B21338: goto L_08B21340; L_08B21340: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21348: @@ -3184,8 +3513,8 @@ L_08B213AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B213BC: @@ -3229,15 +3558,15 @@ L_08B21404: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21418: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(3696))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21420: @@ -3537,8 +3866,8 @@ L_08B21714: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21720: @@ -3552,8 +3881,21 @@ L_08B21720: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08B21748u); aot_gpr_6 = (0u | 2048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 277u, 0x08B21748u, 0x088DF9D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 498u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 498u, 0x088DF9D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21748u) goto L_08B21748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21748: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B21754u); @@ -3575,8 +3917,21 @@ L_08B21754: aot_gpr_5 = (aot_gpr_5 + static_cast(12)); aot_gpr_31 = (0x08B21784u); aot_gpr_4 = (aot_gpr_4 + static_cast(29232)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 279u, 0x08B21784u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21784u) goto L_08B21784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21784: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(3700))); @@ -3600,8 +3955,21 @@ L_08B217A8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08B217BCu); aot_gpr_4 = (ctx.gpr[17] + static_cast(12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 282u, 0x08B217BCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B217BCu) goto L_08B217BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B217BC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(0), ctx.gpr[17]); { std::uint32_t aot_run_words[3]{}; @@ -3612,8 +3980,8 @@ L_08B217BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B217D4: @@ -3798,8 +4166,8 @@ L_08B21984: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2199C: @@ -3807,8 +4175,8 @@ L_08B2199C: ctx.gpr[2] = (aot_gpr_4 & 2u); jump_target = aot_gpr_31; ctx.gpr[2] = (0u < ctx.gpr[2] ? 1u : 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B219AC: @@ -3819,8 +4187,21 @@ L_08B219AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B219C8u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 301u, 0x08B219C8u, 0x08913670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 838u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 838u, 0x08913670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B219C8u) goto L_08B219C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B219C8: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-30520)); @@ -3911,8 +4292,8 @@ L_08B21A64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21A78: @@ -3935,8 +4316,21 @@ L_08B21A94: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B21AACu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 312u, 0x08B21AACu, 0x08905FECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 416u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 416u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 416u, 0x08905FECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21AACu) goto L_08B21AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21AAC: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3948,8 +4342,21 @@ L_08B21AAC: L_08B21AB8: aot_gpr_31 = (0x08B21AC0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 314u, 0x08B21AC0u, 0x08906308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 477u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 477u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 477u, 0x08906308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21AC0u) goto L_08B21AC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21AC0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3959,8 +4366,8 @@ L_08B21AC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21AD4: @@ -4049,8 +4456,8 @@ L_08B21B40: L_08B21B44: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21B4C: @@ -4059,8 +4466,21 @@ L_08B21B4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B21B60u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 321u, 0x08B21B60u, 0x0891FD10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 832u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 832u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 832u, 0x0891FD10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21B60u) goto L_08B21B60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21B60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (2u << 16u); @@ -4100,13 +4520,39 @@ L_08B21B98: aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); aot_gpr_31 = (0x08B21BBCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0144. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 325u, 0x08B21BBCu, 0x08A45F20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0144_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0144_entry, 144u, 382u, 0x08A45F20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21BBCu) goto L_08B21BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21BBC: aot_gpr_31 = (0x08B21BC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 326u, 0x08B21BC4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21BC4u) goto L_08B21BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21BC4: if (ctx.gpr[2] != 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1940))); @@ -4158,8 +4604,21 @@ L_08B21BEC: L_08B21C14: aot_gpr_31 = (0x08B21C1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 333u, 0x08B21C1Cu, 0x0890748Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 753u, 0x0890748Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21C1Cu) goto L_08B21C1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21C1C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (static_cast(aot_gpr_4) < 7 ? 1u : 0u); @@ -4193,8 +4652,21 @@ L_08B21C40: L_08B21C48: aot_gpr_31 = (0x08B21C50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 338u, 0x08B21C50u, 0x08910020u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 3u, 0x08910020u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21C50u) goto L_08B21C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21C50: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4205,13 +4677,39 @@ L_08B21C50: L_08B21C58: aot_gpr_31 = (0x08B21C60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 340u, 0x08B21C60u, 0x08910510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 85u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 85u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 85u, 0x08910510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21C60u) goto L_08B21C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21C60: aot_gpr_31 = (0x08B21C68u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 341u, 0x08B21C68u, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21C68u) goto L_08B21C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21C68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4222,8 +4720,21 @@ L_08B21C68: L_08B21C70: aot_gpr_31 = (0x08B21C78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 343u, 0x08B21C78u, 0x0890B078u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 777u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 777u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 777u, 0x0890B078u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21C78u) goto L_08B21C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21C78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4234,8 +4745,21 @@ L_08B21C78: L_08B21C80: aot_gpr_31 = (0x08B21C88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0068. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 345u, 0x08B21C88u, 0x08916ABCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); +#else + recomp_unit_0068_entry(rt, ctx, 461u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0068_entry, 68u, 461u, 0x08916ABCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21C88u) goto L_08B21C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21C88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1360))); aot_gpr_5 = (static_cast(aot_gpr_4) < 17 ? 1u : 0u); @@ -4276,8 +4800,21 @@ L_08B21CB4: L_08B21CBC: aot_gpr_31 = (0x08B21CC4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 351u, 0x08B21CC4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21CC4u) goto L_08B21CC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21CC4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4308,8 +4845,21 @@ L_08B21CE4: L_08B21CEC: aot_gpr_31 = (0x08B21CF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 356u, 0x08B21CF4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21CF4u) goto L_08B21CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21CF4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4333,8 +4883,8 @@ L_08B21D0C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B21D1C: @@ -4343,8 +4893,21 @@ L_08B21D1C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(356), aot_run_words); } aot_gpr_31 = (0x08B21D40u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 361u, 0x08B21D40u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21D40u) goto L_08B21D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21D40: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4355,8 +4918,21 @@ L_08B21D40: L_08B21D48: aot_gpr_31 = (0x08B21D50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 363u, 0x08B21D50u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21D50u) goto L_08B21D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21D50: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4367,8 +4943,21 @@ L_08B21D50: L_08B21D58: aot_gpr_31 = (0x08B21D60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 365u, 0x08B21D60u, 0x089079CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 813u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 813u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 813u, 0x089079CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21D60u) goto L_08B21D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21D60: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1900))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4390,8 +4979,21 @@ L_08B21D6C: L_08B21D80: aot_gpr_31 = (0x08B21D88u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 368u, 0x08B21D88u, 0x08907A54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 824u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 824u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 824u, 0x08907A54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21D88u) goto L_08B21D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21D88: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1900), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(1904), 0u); @@ -4448,8 +5050,21 @@ L_08B21DDC: aot_gpr_4 = (ctx.gpr[17] + aot_gpr_4); aot_gpr_31 = (0x08B21DF8u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 376u, 0x08B21DF8u, 0x08A40D34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 159u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 159u, 0x08A40D34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21DF8u) goto L_08B21DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21DF8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4467,8 +5082,21 @@ L_08B21E08: aot_gpr_5 = (0u | 8u); aot_gpr_31 = (0x08B21E18u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 379u, 0x08B21E18u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21E18u) goto L_08B21E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21E18: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4486,14 +5114,40 @@ L_08B21E28: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B21E38u); aot_gpr_6 = (0u | 6000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 382u, 0x08B21E38u, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21E38u) goto L_08B21E38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21E38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B21E44u); aot_gpr_5 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 383u, 0x08B21E44u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21E44u) goto L_08B21E44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21E44: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4504,8 +5158,21 @@ L_08B21E44: L_08B21E4C: aot_gpr_31 = (0x08B21E54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 385u, 0x08B21E54u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21E54u) goto L_08B21E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21E54: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4612,14 +5279,40 @@ L_08B21F08: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B21F20u); aot_gpr_5 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 394u, 0x08B21F20u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21F20u) goto L_08B21F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21F20: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B21F2Cu); aot_gpr_5 = (0u | 140u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 395u, 0x08B21F2Cu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B21F2Cu) goto L_08B21F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B21F2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4757,8 +5450,21 @@ L_08B2201C: L_08B22024: aot_gpr_31 = (0x08B2202Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 411u, 0x08B2202Cu, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2202Cu) goto L_08B2202C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2202C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(618)))))); aot_gpr_4 = (0u | 1u); @@ -4789,8 +5495,21 @@ L_08B22060: L_08B2207C: aot_gpr_31 = (0x08B22084u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 414u, 0x08B22084u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22084u) goto L_08B22084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22084: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4837,8 +5556,8 @@ L_08B220C0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-32040))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B220D8: @@ -4950,8 +5669,21 @@ L_08B2216C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B22188u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 432u, 0x08B22188u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22188u) goto L_08B22188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22188: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); aot_gpr_4 = (aot_gpr_4 + static_cast(816)); @@ -4959,8 +5691,21 @@ L_08B22188: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B221A0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 433u, 0x08B221A0u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B221A0u) goto L_08B221A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B221A0: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5051,8 +5796,21 @@ L_08B221A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22208u); aot_gpr_5 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 434u, 0x08B22208u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22208u) goto L_08B22208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22208: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -5079,8 +5837,21 @@ L_08B22230: L_08B2223C: aot_gpr_31 = (0x08B22244u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 437u, 0x08B22244u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22244u) goto L_08B22244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22244: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5120,8 +5891,21 @@ L_08B2227C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2228Cu); aot_gpr_5 = (0u | 18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 442u, 0x08B2228Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2228Cu) goto L_08B2228C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2228C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5164,8 +5948,21 @@ L_08B222CC: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(900))); aot_gpr_31 = (0x08B222E0u); aot_gpr_5 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 447u, 0x08B222E0u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B222E0u) goto L_08B222E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B222E0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5205,8 +6002,21 @@ L_08B22318: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22328u); aot_gpr_5 = (0u | 17u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 452u, 0x08B22328u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22328u) goto L_08B22328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22328: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5248,8 +6058,21 @@ L_08B22364: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08B22374u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 458u, 0x08B22374u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22374u) goto L_08B22374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22374: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5346,8 +6169,21 @@ L_08B223FC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B22414u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 469u, 0x08B22414u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22414u) goto L_08B22414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22414: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); aot_gpr_4 = (aot_gpr_4 + static_cast(816)); @@ -5355,8 +6191,21 @@ L_08B22414: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B2242Cu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 470u, 0x08B2242Cu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2242Cu) goto L_08B2242C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2242C: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5431,8 +6280,21 @@ L_08B2242C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22480u); aot_gpr_5 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 471u, 0x08B22480u, 0x08ACDF58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 661u, 0x08ACDF58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22480u) goto L_08B22480; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22480: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 16384u); @@ -5611,8 +6473,21 @@ L_08B22610: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2261Cu); aot_gpr_5 = (0u | 27u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 490u, 0x08B2261Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2261Cu) goto L_08B2261C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2261C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22628u); @@ -5626,20 +6501,59 @@ L_08B22628: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B22640u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 492u, 0x08B22640u, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22640u) goto L_08B22640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22640: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2264Cu); aot_gpr_5 = (0u | 500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 493u, 0x08B2264Cu, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2264Cu) goto L_08B2264C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2264C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22658u); aot_gpr_5 = (0u | 139u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 494u, 0x08B22658u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22658u) goto L_08B22658; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22658: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2296))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -5652,16 +6566,42 @@ L_08B22658: L_08B22668: aot_gpr_31 = (0x08B22670u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 496u, 0x08B22670u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22670u) goto L_08B22670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22670: aot_gpr_4 = (0u | 128u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2292), aot_gpr_4); aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22684u); aot_gpr_5 = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 497u, 0x08B22684u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22684u) goto L_08B22684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22684: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2296))); @@ -5680,8 +6620,21 @@ L_08B2268C: aot_gpr_6 = (0u | 26u); aot_gpr_31 = (0x08B226B0u); ctx.gpr[7] = (0u | 223u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 499u, 0x08B226B0u, 0x089088F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 163u, 0x089088F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B226B0u) goto L_08B226B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B226B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B226BCu); @@ -5695,8 +6648,21 @@ L_08B226BC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(460), aot_gpr_5); aot_gpr_31 = (0x08B226D4u); aot_gpr_5 = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 501u, 0x08B226D4u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B226D4u) goto L_08B226D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B226D4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2296))); goto L_08B226D8; @@ -5748,8 +6714,21 @@ L_08B22728: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B22740u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 507u, 0x08B22740u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22740u) goto L_08B22740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22740: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); aot_gpr_4 = (aot_gpr_4 + static_cast(816)); @@ -5757,8 +6736,21 @@ L_08B22740: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B22758u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 508u, 0x08B22758u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22758u) goto L_08B22758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22758: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -5825,14 +6817,40 @@ L_08B22758: aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B227B8u); aot_fpr_13 = aot_fpr_13 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 509u, 0x08B227B8u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B227B8u) goto L_08B227B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B227B8: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B227C4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 510u, 0x08B227C4u, 0x08A8EF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 563u, 0x08A8EF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B227C4u) goto L_08B227C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B227C4: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); @@ -5844,8 +6862,21 @@ L_08B227C4: L_08B227D8: aot_gpr_31 = (0x08B227E0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 512u, 0x08B227E0u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B227E0u) goto L_08B227E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B227E0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2256))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2260))); @@ -5926,8 +6957,21 @@ L_08B2287C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B22894u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 521u, 0x08B22894u, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22894u) goto L_08B22894; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22894: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); aot_gpr_4 = (aot_gpr_4 + static_cast(816)); @@ -5935,8 +6979,21 @@ L_08B22894: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B228ACu); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0123. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 522u, 0x08B228ACu, 0x089F3910u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); +#else + recomp_unit_0123_entry(rt, ctx, 608u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0123_entry, 123u, 608u, 0x089F3910u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B228ACu) goto L_08B228AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B228AC: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6003,14 +7060,40 @@ L_08B228AC: aot_fpr_15 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B2290Cu); aot_fpr_13 = aot_fpr_13 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 523u, 0x08B2290Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2290Cu) goto L_08B2290C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2290C: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B22918u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 524u, 0x08B22918u, 0x08A8EF4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 563u, 0x08A8EF4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22918u) goto L_08B22918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22918: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2260), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); @@ -6022,8 +7105,21 @@ L_08B22918: L_08B2292C: aot_gpr_31 = (0x08B22934u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 526u, 0x08B22934u, 0x0890932Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 332u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 332u, 0x0890932Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22934u) goto L_08B22934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22934: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1736))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -6040,8 +7136,21 @@ L_08B22948: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2295Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 528u, 0x08B2295Cu, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2295Cu) goto L_08B2295C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2295C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22968u); @@ -6073,8 +7182,21 @@ L_08B2298C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B229A8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 532u, 0x08B229A8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B229A8u) goto L_08B229A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B229A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); aot_gpr_31 = (0x08B229B4u); @@ -6084,8 +7206,21 @@ L_08B229A8: L_08B229B4: aot_gpr_31 = (0x08B229BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 534u, 0x08B229BCu, 0x0891C44Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 70u, 0x0891C44Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B229BCu) goto L_08B229BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B229BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); aot_gpr_5 = (0u | 1u); @@ -6136,8 +7271,21 @@ L_08B22A18: L_08B22A38: aot_gpr_31 = (0x08B22A40u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 539u, 0x08B22A40u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22A40u) goto L_08B22A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22A40: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); aot_gpr_5 = (57344u << 16u); @@ -6160,8 +7308,21 @@ L_08B22A40: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(2116), 0u); aot_gpr_31 = (0x08B22A94u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2288))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 540u, 0x08B22A94u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22A94u) goto L_08B22A94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22A94: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6267,8 +7428,21 @@ L_08B22B38: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22B54u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 555u, 0x08B22B54u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22B54u) goto L_08B22B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22B54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2296))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6297,8 +7471,21 @@ L_08B22B7C: L_08B22B88: aot_gpr_31 = (0x08B22B90u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 559u, 0x08B22B90u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22B90u) goto L_08B22B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22B90: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6331,8 +7518,21 @@ L_08B22BBC: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08B22BCCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 564u, 0x08B22BCCu, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22BCCu) goto L_08B22BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22BCC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22BD8u); @@ -6355,8 +7555,8 @@ L_08B22BE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B22C00: @@ -6416,8 +7616,21 @@ L_08B22C3C: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B22C5Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 572u, 0x08B22C5Cu, 0x089CFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 688u, 0x089CFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22C5Cu) goto L_08B22C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22C5C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6430,8 +7643,21 @@ L_08B22C68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22C74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 574u, 0x08B22C74u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22C74u) goto L_08B22C74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22C74: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6452,8 +7678,21 @@ L_08B22C74: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B22C94u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 575u, 0x08B22C94u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22C94u) goto L_08B22C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22C94: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22CA0u); @@ -6492,8 +7731,21 @@ L_08B22CB4: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B22CD4u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 579u, 0x08B22CD4u, 0x089CFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 688u, 0x089CFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22CD4u) goto L_08B22CD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22CD4: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6514,8 +7766,21 @@ L_08B22CEC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22CF8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 582u, 0x08B22CF8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22CF8u) goto L_08B22CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22CF8: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -6536,8 +7801,21 @@ L_08B22CF8: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B22D18u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 583u, 0x08B22D18u, 0x0890AA84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 686u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 686u, 0x0890AA84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22D18u) goto L_08B22D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22D18: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22D24u); @@ -6570,8 +7848,21 @@ L_08B22D38: L_08B22D54: aot_gpr_31 = (0x08B22D5Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 588u, 0x08B22D5Cu, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22D5Cu) goto L_08B22D5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22D5C: aot_gpr_4 = (0u | 128u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2292), aot_gpr_4); @@ -6619,8 +7910,21 @@ L_08B22D84: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B22DB0u); aot_gpr_6 = (aot_gpr_29 + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 593u, 0x08B22DB0u, 0x089CFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 688u, 0x089CFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22DB0u) goto L_08B22DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22DB0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6636,8 +7940,21 @@ L_08B22DC0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22DCCu); aot_gpr_5 = (0u | 150u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 596u, 0x08B22DCCu, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22DCCu) goto L_08B22DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22DCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6649,8 +7966,21 @@ L_08B22DD4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B22DE0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 598u, 0x08B22DE0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22DE0u) goto L_08B22DE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22DE0: aot_gpr_31 = (0x08B22DE8u); goto L_08B20934; @@ -6676,8 +8006,21 @@ L_08B22E04: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 24u)); aot_gpr_31 = (0x08B22E14u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 602u, 0x08B22E14u, 0x0890A728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 631u, 0x0890A728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22E14u) goto L_08B22E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22E14: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2300), 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(2292), 0u); @@ -6702,8 +8045,8 @@ L_08B22E30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B22E44: @@ -6759,8 +8102,8 @@ L_08B22E44: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B22E6C: @@ -6804,8 +8147,8 @@ L_08B22E6C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B22EB0: @@ -6886,8 +8229,8 @@ L_08B22F54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B22F60: @@ -6907,8 +8250,21 @@ L_08B22F60: aot_gpr_16 = (aot_gpr_4 & 15u); aot_gpr_31 = (0x08B22FD4u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 617u, 0x08B22FD4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22FD4u) goto L_08B22FD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22FD4: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6929,8 +8285,21 @@ L_08B22FD4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(256), std::bit_cast(aot_fpr_12)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(260), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08B22FF8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 618u, 0x08B22FF8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B22FF8u) goto L_08B22FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B22FF8: ctx.gpr[30] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_16 << 6u); @@ -7067,8 +8436,21 @@ L_08B2314C: L_08B23184: aot_gpr_31 = (0x08B2318Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 627u, 0x08B2318Cu, 0x08B24190u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 17u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 17u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 17u, 0x08B24190u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2318Cu) goto L_08B2318C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2318C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7171,8 +8553,21 @@ L_08B231E0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B23230u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 633u, 0x08B23230u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23230u) goto L_08B23230; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23230: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7273,8 +8668,21 @@ L_08B232A0: L_08B232AC: aot_gpr_31 = (0x08B232B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 640u, 0x08B232B4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B232B4u) goto L_08B232B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B232B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); goto L_08B232B8; @@ -7297,8 +8705,21 @@ L_08B232C4: L_08B232D0: aot_gpr_31 = (0x08B232D8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 644u, 0x08B232D8u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B232D8u) goto L_08B232D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B232D8: { std::uint32_t aot_run_words[15]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(444), aot_run_words); @@ -7320,8 +8741,8 @@ L_08B232D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(512)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2331C: @@ -7342,8 +8763,8 @@ L_08B23328: } L_08B2333C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B23344: @@ -7391,8 +8812,21 @@ L_08B23344: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(296), aot_run_words); } aot_gpr_31 = (0x08B23414u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 649u, 0x08B23414u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23414u) goto L_08B23414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23414: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.gpr[20] = (ctx.gpr[20] + ctx.gpr[20]); @@ -7403,8 +8837,21 @@ L_08B23414: } L_08B2341C: aot_gpr_31 = (0x08B23424u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 651u, 0x08B23424u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23424u) goto L_08B23424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23424: { const bool branch_taken = 0u == 0u; ctx.gpr[22] = (ctx.gpr[2] | 0u); @@ -7559,8 +9006,21 @@ L_08B23530: goto L_08B23538; L_08B23538: aot_gpr_31 = (0x08B23540u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 665u, 0x08B23540u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23540u) goto L_08B23540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23540: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7572,8 +9032,21 @@ L_08B23548: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B23554u); aot_gpr_4 = (0u | 2352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 667u, 0x08B23554u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23554u) goto L_08B23554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23554: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7587,8 +9060,21 @@ L_08B23560: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2356Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 669u, 0x08B2356Cu, 0x08A31EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 437u, 0x08A31EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2356Cu) goto L_08B2356C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2356C: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08B23570; @@ -7605,8 +9091,21 @@ L_08B2357C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B23588u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 672u, 0x08B23588u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23588u) goto L_08B23588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23588: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7618,8 +9117,21 @@ L_08B23590: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B2359Cu); aot_gpr_4 = (0u | 2352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 674u, 0x08B2359Cu, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2359Cu) goto L_08B2359C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2359C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7633,8 +9145,21 @@ L_08B235A8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B235B4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 676u, 0x08B235B4u, 0x08A31EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 437u, 0x08A31EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B235B4u) goto L_08B235B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B235B4: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08B235B8; @@ -7643,8 +9168,21 @@ L_08B235B8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B235C8u); aot_gpr_5 = (0u | 19u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 678u, 0x08B235C8u, 0x0890816Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 28u, 0x0890816Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B235C8u) goto L_08B235C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B235C8: ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); goto L_08B235CC; @@ -7652,8 +9190,21 @@ L_08B235CC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B235D8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0198. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 680u, 0x08B235D8u, 0x08B1FB98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0198_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0198_entry, 198u, 719u, 0x08B1FB98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B235D8u) goto L_08B235D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B235D8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(176), aot_run_words); @@ -7682,8 +9233,21 @@ L_08B235D8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08B23610u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 681u, 0x08B23610u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23610u) goto L_08B23610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23610: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(240), aot_run_words); @@ -7693,15 +9257,41 @@ L_08B23610: } aot_gpr_31 = (0x08B23624u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 682u, 0x08B23624u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23624u) goto L_08B23624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23624: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2297), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B23634u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 683u, 0x08B23634u, 0x0890905Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 282u, 0x0890905Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23634u) goto L_08B23634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23634: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_4 = (aot_gpr_4 | 512u); @@ -7773,14 +9363,40 @@ L_08B236C4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B236D0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0056. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 691u, 0x08B236D0u, 0x088E76D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); +#else + recomp_unit_0056_entry(rt, ctx, 716u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0056_entry, 56u, 716u, 0x088E76D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B236D0u) goto L_08B236D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B236D0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B236DCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 692u, 0x08B236DCu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B236DCu) goto L_08B236DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B236DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(464))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); @@ -7789,13 +9405,39 @@ L_08B236DC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B236F8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 693u, 0x08B236F8u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B236F8u) goto L_08B236F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B236F8: aot_gpr_31 = (0x08B23700u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 694u, 0x08B23700u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23700u) goto L_08B23700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23700: ctx.gpr[21] = (ctx.gpr[21] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[21]) < 2 ? 1u : 0u); @@ -7826,8 +9468,21 @@ L_08B23720: L_08B2372C: aot_gpr_31 = (0x08B23734u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 698u, 0x08B23734u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23734u) goto L_08B23734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23734: ctx.gpr[2] = (0u | 1u); { std::uint32_t aot_run_words[13]{}; @@ -7848,8 +9503,8 @@ L_08B23734: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B23774: @@ -8032,8 +9687,21 @@ L_08B23774: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B238B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 700u, 0x08B238B0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B238B0u) goto L_08B238B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B238B0: { const std::uint32_t vfpu_address = aot_gpr_16 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8116,8 +9784,21 @@ L_08B23908: L_08B23910: aot_gpr_31 = (0x08B23918u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 704u, 0x08B23918u, 0x08AB3FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1029u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1029u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1029u, 0x08AB3FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23918u) goto L_08B23918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23918: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8140,8 +9821,21 @@ L_08B23928: L_08B23930: aot_gpr_31 = (0x08B23938u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 708u, 0x08B23938u, 0x08AB3F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1021u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1021u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1021u, 0x08AB3F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23938u) goto L_08B23938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23938: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8164,8 +9858,21 @@ L_08B23948: L_08B23950: aot_gpr_31 = (0x08B23958u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 712u, 0x08B23958u, 0x08AB3F28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1013u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1013u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1013u, 0x08AB3F28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23958u) goto L_08B23958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23958: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8187,8 +9894,21 @@ L_08B23968: L_08B2396C: aot_gpr_31 = (0x08B23974u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 716u, 0x08B23974u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23974u) goto L_08B23974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23974: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); @@ -8281,8 +10001,21 @@ L_08B23A70: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B23A98u); ctx.fpr[20] = ctx.fpr[20] + aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 722u, 0x08B23A98u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23A98u) goto L_08B23A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23A98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); @@ -8314,8 +10047,21 @@ L_08B23AD8: aot_fpr_12 = aot_fpr_12 - aot_fpr_13; aot_gpr_31 = (0x08B23B0Cu); { const float fs = aot_fpr_12; const float ft = aot_fpr_14; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 724u, 0x08B23B0Cu, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23B0Cu) goto L_08B23B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23B0C: aot_gpr_31 = (0x08B23B14u); goto L_08B20934; @@ -8334,8 +10080,21 @@ L_08B23B24: aot_gpr_5 = (aot_gpr_5 | 4059u); aot_gpr_31 = (0x08B23B34u); aot_fpr_12 = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 727u, 0x08B23B34u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23B34u) goto L_08B23B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23B34: ctx.gpr[17] = (0u | 0u); aot_gpr_16 = (aot_gpr_29 | 0u); @@ -8430,8 +10189,21 @@ L_08B23B3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B23BD0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 729u, 0x08B23BD0u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23BD0u) goto L_08B23BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23BD0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(240)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8461,8 +10233,21 @@ L_08B23BF4: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B23C00u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 733u, 0x08B23C00u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23C00u) goto L_08B23C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23C00: aot_gpr_16 = (ctx.gpr[2] | 0u); if (aot_gpr_16 == 0u) { @@ -8476,8 +10261,21 @@ L_08B23C0C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B23C20u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 735u, 0x08B23C20u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23C20u) goto L_08B23C20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23C20: ctx.gpr[17] = (aot_gpr_16 | 0u); aot_gpr_16 = (ctx.gpr[17] | 0u); @@ -8506,13 +10304,39 @@ L_08B23C58: aot_fpr_12 = ctx.fpr[20] + aot_fpr_12; aot_gpr_31 = (0x08B23C70u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(216), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 738u, 0x08B23C70u, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23C70u) goto L_08B23C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23C70: aot_gpr_31 = (0x08B23C78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0017. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 739u, 0x08B23C78u, 0x08848E78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0017_entry(rt, ctx, 155u, aot_mem); +#else + recomp_unit_0017_entry(rt, ctx, 155u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0017_entry, 17u, 155u, 0x08848E78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23C78u) goto L_08B23C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23C78: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(72))); aot_gpr_5 = (0u + static_cast(-2049)); @@ -8520,15 +10344,41 @@ L_08B23C78: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B23C90u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(72), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 740u, 0x08B23C90u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23C90u) goto L_08B23C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23C90: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(680), aot_gpr_4); aot_gpr_31 = (0x08B23CA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 741u, 0x08B23CA0u, 0x08B41694u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 374u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 374u, 0x08B41694u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23CA0u) goto L_08B23CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23CA0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); aot_gpr_4 = (0u + static_cast(-9)); @@ -8550,8 +10400,21 @@ L_08B23CA0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(614), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B23CF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 742u, 0x08B23CF0u, 0x08B00E18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 238u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 238u, 0x08B00E18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23CF0u) goto L_08B23CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23CF0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8590,13 +10453,39 @@ L_08B23D34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_31 = (0x08B23D40u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 748u, 0x08B23D40u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23D40u) goto L_08B23D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23D40: aot_gpr_31 = (0x08B23D48u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 749u, 0x08B23D48u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23D48u) goto L_08B23D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23D48: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 | 32u); @@ -8604,8 +10493,21 @@ L_08B23D48: ctx.gpr[17] = (aot_gpr_29 + static_cast(352)); aot_gpr_31 = (0x08B23D60u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 750u, 0x08B23D60u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23D60u) goto L_08B23D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23D60: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -8727,14 +10629,40 @@ L_08B23DF4: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B23E34u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(648), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 758u, 0x08B23E34u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23E34u) goto L_08B23E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23E34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(104))); aot_gpr_31 = (0x08B23E40u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(68))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 759u, 0x08B23E40u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23E40u) goto L_08B23E40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23E40: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(232))); @@ -8790,8 +10718,21 @@ L_08B23EB8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B23EE8u); aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 763u, 0x08B23EE8u, 0x0885FFE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 943u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 943u, 0x0885FFE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23EE8u) goto L_08B23EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23EE8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), std::bit_cast(aot_fpr_13)); @@ -8820,8 +10761,21 @@ L_08B23F2C: { const float fs = aot_fpr_12; const float ft = ctx.fpr[30]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B23F54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0199->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0199_entry, 765u, 0x08B23F54u, 0x0885FD1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 926u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 926u, 0x0885FD1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B23F54u) goto L_08B23F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B23F54: aot_gpr_4 = (std::bit_cast(ctx.fpr[28])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); diff --git a/profiles/vcs/generated/generated_unit_0200.cpp b/profiles/vcs/generated/generated_unit_0200.cpp index b63c8a2..2260688 100644 --- a/profiles/vcs/generated/generated_unit_0200.cpp +++ b/profiles/vcs/generated/generated_unit_0200.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0200[64] = { 432u, 441u, 450u, 466u, 475u, 485u, 491u, 496u, 500u, 510u, 520u, 527u, 532u, 541u, 554u, 568u, 577u, 594u, 608u, 624u, 636u, 650u, 667u, 677u, 693u, 710u, 726u, 737u, 757u, 769u, 785u, 801u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0200[4087] = { + 1u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 5u, 0u, 0u, 6u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 8u, 9u, 0u, 0u, 10u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 11u, 0u, 0u, 0u, 0u, 12u, 13u, 0u, 0u, 14u, 0u, 0u, 15u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 21u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 22u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 23u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, + 0u, 25u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 27u, 0u, 28u, 0u, 0u, + 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 30u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 33u, 0u, 0u, 34u, 0u, 0u, + 0u, 35u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 38u, + 0u, 0u, 39u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 43u, 0u, 44u, + 0u, 0u, 45u, 0u, 0u, 0u, 46u, 0u, 47u, 0u, 0u, 0u, 48u, 0u, 0u, 49u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 51u, 0u, 52u, 0u, 0u, 53u, 0u, 0u, 0u, + 0u, 54u, 0u, 0u, 55u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, 0u, 57u, 0u, 0u, 58u, 0u, 0u, 0u, 59u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 0u, 61u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 62u, 0u, 0u, 63u, 0u, 64u, 0u, 65u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 66u, 0u, 67u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 68u, 0u, 69u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 70u, 0u, 0u, 0u, 71u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 72u, 0u, 0u, + 0u, 73u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 77u, 0u, + 0u, 78u, 0u, 0u, 0u, 79u, 0u, 80u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 82u, 0u, 83u, 84u, 0u, 0u, 85u, 0u, 0u, 86u, 0u, 0u, 87u, + 0u, 88u, 89u, 0u, 0u, 90u, 0u, 0u, 91u, 0u, 0u, 92u, 0u, 93u, 94u, 0u, 95u, 0u, 96u, 97u, 0u, 98u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 100u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 102u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 0u, 0u, 104u, 0u, 0u, 0u, 105u, 0u, 0u, 106u, 0u, 107u, 0u, 0u, 108u, 0u, 109u, 110u, 0u, 0u, 0u, 0u, 0u, + 0u, 111u, 0u, 0u, 112u, 0u, 0u, 113u, 0u, 0u, 114u, 0u, 0u, 0u, 115u, 0u, 116u, 0u, 0u, 0u, 117u, 0u, 0u, 118u, 0u, 119u, 120u, 0u, 0u, 121u, 0u, 122u, + 0u, 0u, 123u, 0u, 124u, 0u, 125u, 0u, 0u, 126u, 0u, 127u, 128u, 0u, 129u, 0u, 130u, 131u, 0u, 132u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 134u, 0u, 0u, 135u, 0u, 0u, 136u, 0u, 137u, 138u, 0u, 0u, 139u, 0u, 0u, 140u, 0u, 0u, 141u, 0u, 142u, 143u, 0u, 144u, 0u, 145u, 146u, 0u, 147u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 149u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 150u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 151u, 0u, 0u, 152u, 0u, 0u, 0u, 0u, 0u, 153u, 0u, 0u, 154u, 0u, 0u, 155u, 0u, 156u, 0u, 157u, 0u, 0u, 158u, 0u, 159u, + 0u, 0u, 160u, 0u, 161u, 162u, 0u, 0u, 0u, 0u, 0u, 0u, 163u, 0u, 0u, 164u, 0u, 0u, 165u, 0u, 0u, 166u, 0u, 0u, 0u, 167u, 0u, 168u, 0u, 0u, 0u, 169u, + 0u, 0u, 170u, 0u, 171u, 172u, 0u, 0u, 173u, 0u, 0u, 0u, 174u, 175u, 0u, 0u, 0u, 0u, 0u, 0u, 176u, 0u, 0u, 0u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, + 178u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 180u, 0u, 181u, 0u, 182u, 183u, 0u, 184u, 0u, 0u, 0u, 0u, 185u, 0u, 186u, 187u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 188u, 0u, 189u, 190u, 0u, 0u, 0u, 0u, 191u, 0u, 192u, 0u, 193u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 194u, 0u, 195u, 0u, 196u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 197u, 0u, 198u, 199u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 201u, 0u, 0u, 202u, 0u, 0u, 0u, 203u, 0u, 0u, 0u, 0u, 0u, 204u, + 0u, 0u, 205u, 0u, 0u, 0u, 0u, 206u, 0u, 0u, 207u, 0u, 208u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 209u, 0u, 0u, 0u, 0u, 0u, 210u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 211u, 0u, 0u, 212u, 0u, 0u, 0u, 213u, 0u, 0u, 0u, 0u, 0u, 214u, 0u, 0u, 215u, 0u, 0u, 216u, 0u, 0u, 0u, 0u, 0u, 217u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 218u, 0u, 219u, 0u, 220u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 223u, 0u, 224u, 0u, 225u, 0u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, + 227u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 228u, 0u, 0u, 229u, 0u, 0u, 0u, 230u, 0u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 232u, 0u, 0u, 0u, 0u, 233u, 0u, 0u, + 0u, 0u, 0u, 0u, 234u, 0u, 0u, 235u, 0u, 0u, 0u, 0u, 236u, 0u, 0u, 0u, 237u, 238u, 0u, 239u, 0u, 240u, 241u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, + 0u, 243u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 245u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 0u, 0u, 0u, 247u, 0u, 0u, 248u, 0u, 0u, 0u, 0u, 249u, + 0u, 0u, 0u, 0u, 0u, 0u, 250u, 0u, 0u, 251u, 0u, 0u, 0u, 252u, 0u, 0u, 253u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 254u, 0u, 255u, + 0u, 0u, 0u, 0u, 0u, 256u, 0u, 0u, 0u, 0u, 0u, 257u, 0u, 0u, 0u, 0u, 0u, 0u, 258u, 0u, 0u, 259u, 0u, 0u, 0u, 260u, 0u, 0u, 0u, 0u, 0u, 261u, + 0u, 0u, 262u, 0u, 263u, 0u, 0u, 0u, 0u, 0u, 0u, 264u, 265u, 0u, 0u, 0u, 0u, 0u, 266u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, 0u, 268u, 0u, 0u, 0u, 0u, + 269u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 271u, 0u, 0u, 272u, 0u, 0u, 273u, 0u, 0u, 274u, 0u, 275u, 276u, 0u, 277u, 0u, 0u, 278u, 0u, 279u, 280u, 0u, + 281u, 0u, 282u, 0u, 0u, 283u, 0u, 284u, 285u, 0u, 0u, 0u, 0u, 286u, 287u, 0u, 0u, 0u, 0u, 288u, 0u, 0u, 0u, 0u, 289u, 0u, 290u, 0u, 291u, 0u, 0u, 292u, + 0u, 0u, 293u, 0u, 294u, 0u, 295u, 0u, 0u, 296u, 0u, 0u, 297u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 298u, 0u, 0u, 0u, 299u, 0u, 300u, 0u, 0u, 301u, 0u, 0u, 302u, 0u, 0u, 303u, 0u, 304u, 305u, 0u, 306u, 307u, 0u, 308u, 0u, 0u, 0u, 309u, 0u, 0u, + 310u, 0u, 0u, 311u, 0u, 0u, 0u, 0u, 312u, 0u, 0u, 313u, 0u, 314u, 315u, 0u, 0u, 0u, 0u, 0u, 0u, 316u, 0u, 0u, 0u, 317u, 0u, 318u, 319u, 0u, 0u, 320u, + 0u, 0u, 321u, 0u, 322u, 323u, 0u, 0u, 324u, 0u, 325u, 0u, 0u, 326u, 0u, 0u, 0u, 327u, 0u, 0u, 328u, 0u, 329u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, + 0u, 0u, 332u, 0u, 333u, 334u, 0u, 0u, 335u, 0u, 0u, 336u, 0u, 337u, 338u, 0u, 0u, 339u, 0u, 340u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 341u, + 0u, 0u, 0u, 0u, 342u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 346u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 348u, 0u, 0u, 0u, + 349u, 0u, 0u, 0u, 350u, 0u, 0u, 0u, 351u, 0u, 0u, 0u, 352u, 0u, 0u, 0u, 353u, 0u, 0u, 0u, 354u, 0u, 0u, 0u, 355u, 0u, 0u, 0u, 356u, 0u, 0u, 0u, + 357u, 0u, 0u, 358u, 0u, 0u, 0u, 359u, 0u, 0u, 0u, 360u, 0u, 0u, 0u, 361u, 0u, 0u, 362u, 0u, 0u, 0u, 363u, 0u, 0u, 0u, 364u, 0u, 0u, 365u, 0u, 0u, + 0u, 366u, 0u, 0u, 0u, 367u, 0u, 0u, 0u, 368u, 0u, 0u, 369u, 0u, 0u, 0u, 370u, 0u, 0u, 0u, 371u, 0u, 0u, 0u, 372u, 0u, 0u, 0u, 373u, 0u, 0u, 374u, + 0u, 0u, 0u, 375u, 0u, 0u, 0u, 376u, 0u, 0u, 377u, 0u, 0u, 0u, 378u, 0u, 0u, 0u, 379u, 0u, 0u, 0u, 380u, 0u, 0u, 0u, 381u, 0u, 0u, 382u, 0u, 0u, + 0u, 383u, 0u, 0u, 0u, 384u, 0u, 0u, 385u, 0u, 0u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 387u, 0u, 0u, 0u, 388u, 389u, 0u, 0u, 390u, 0u, 391u, 392u, 0u, 0u, + 0u, 0u, 0u, 0u, 393u, 0u, 0u, 0u, 394u, 0u, 395u, 396u, 0u, 0u, 397u, 398u, 0u, 0u, 0u, 0u, 399u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 400u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 401u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 402u, 0u, 403u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 404u, 0u, 0u, 0u, 0u, 0u, 405u, 0u, 0u, 0u, 0u, 0u, 0u, 406u, 0u, 0u, 0u, 407u, 0u, 0u, 0u, 408u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 409u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 410u, 0u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 412u, + 0u, 0u, 413u, 0u, 414u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 416u, 0u, 0u, 0u, 0u, 417u, 0u, 0u, 418u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 419u, 0u, 0u, + 420u, 0u, 0u, 421u, 0u, 0u, 0u, 0u, 422u, 0u, 423u, 0u, 424u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 426u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 427u, 428u, 0u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 430u, 0u, 0u, 0u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 433u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 435u, 0u, 0u, 436u, 0u, 437u, 0u, 0u, 0u, 438u, 0u, 439u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 440u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 441u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 443u, 0u, 0u, 444u, 445u, 0u, 0u, 0u, 0u, + 446u, 447u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 448u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 449u, 0u, + 450u, 451u, 0u, 0u, 452u, 0u, 0u, 453u, 0u, 0u, 454u, 0u, 0u, 455u, 0u, 0u, 456u, 0u, 0u, 457u, 0u, 0u, 0u, 0u, 0u, 458u, 0u, 459u, 0u, 460u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 461u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 462u, 0u, 0u, 0u, 463u, 0u, 0u, 464u, 0u, 465u, + 466u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 469u, 0u, + 0u, 0u, 0u, 470u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 0u, 474u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 475u, 0u, 0u, 0u, 0u, 0u, 0u, 476u, 0u, 0u, 0u, 477u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 480u, 0u, 0u, 0u, 0u, 481u, 0u, 0u, 0u, 482u, 0u, 0u, 483u, 0u, 0u, 484u, 0u, 0u, 0u, 0u, 0u, + 485u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 487u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 488u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 489u, 0u, 490u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 0u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 493u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 494u, 0u, 495u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 498u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 499u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 500u, 0u, 0u, 0u, 0u, 0u, 501u, 0u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, 503u, 0u, 0u, 504u, 0u, 0u, 0u, 505u, 0u, 0u, 0u, + 506u, 0u, 0u, 0u, 0u, 507u, 0u, 508u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 509u, 0u, 0u, + 0u, 0u, 510u, 0u, 0u, 511u, 0u, 0u, 0u, 512u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 513u, + 0u, 0u, 514u, 0u, 0u, 0u, 0u, 515u, 0u, 0u, 0u, 516u, 0u, 0u, 517u, 0u, 0u, 0u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 519u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 520u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 521u, 0u, 0u, 0u, 522u, + 0u, 523u, 0u, 524u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 525u, 0u, 526u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 527u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 529u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 530u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 531u, + 0u, 532u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 0u, 0u, 0u, 0u, 0u, 534u, 0u, 535u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 536u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 537u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, 0u, 0u, 0u, 0u, 539u, 0u, 0u, 540u, 0u, 0u, 0u, 0u, + 541u, 0u, 0u, 0u, 0u, 0u, 542u, 0u, 0u, 0u, 543u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 545u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 546u, 0u, 0u, 547u, 0u, 0u, 548u, 0u, 549u, 0u, 550u, 0u, 551u, 0u, 552u, 0u, 553u, 0u, + 0u, 554u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 556u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 558u, 0u, + 0u, 559u, 0u, 0u, 560u, 0u, 561u, 0u, 562u, 563u, 0u, 564u, 0u, 0u, 0u, 0u, 565u, 0u, 0u, 566u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 567u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 568u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 569u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 0u, 0u, 573u, 0u, 0u, 574u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 579u, 0u, 0u, 580u, 0u, 581u, 0u, 582u, 0u, 583u, 0u, 0u, 0u, + 0u, 0u, 584u, 585u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 588u, 0u, 589u, 0u, 590u, 0u, 0u, 0u, 591u, 0u, 0u, 0u, 592u, 0u, 593u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 594u, 0u, 0u, 595u, 0u, 0u, 0u, 0u, 0u, 596u, 597u, 0u, 0u, 0u, 0u, 0u, 0u, 598u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 599u, 0u, 0u, 600u, 0u, 0u, 601u, 0u, 602u, 0u, 0u, 603u, 0u, 0u, 0u, 0u, 604u, 0u, 605u, 0u, 0u, 0u, 0u, 606u, 0u, 607u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 608u, 0u, 0u, 0u, 609u, 0u, 610u, 0u, 611u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 612u, 0u, 0u, 0u, 613u, 0u, 614u, 615u, 0u, 0u, 0u, 616u, + 0u, 617u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 618u, 0u, 0u, 619u, 0u, 0u, 0u, 0u, 0u, 620u, 621u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 623u, + 0u, 0u, 624u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 627u, 0u, 0u, 628u, 0u, 629u, + 0u, 0u, 630u, 0u, 0u, 0u, 0u, 0u, 0u, 631u, 0u, 632u, 0u, 0u, 0u, 0u, 0u, 0u, 633u, 0u, 634u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 635u, + 0u, 0u, 0u, 636u, 0u, 637u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 639u, 0u, 0u, 0u, 640u, 0u, 641u, 642u, 0u, 0u, 0u, 643u, 0u, 644u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 646u, 0u, 0u, 0u, 0u, 0u, 647u, 648u, 0u, 0u, 649u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 650u, 0u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 653u, 0u, 0u, 654u, 0u, + 0u, 655u, 0u, 656u, 0u, 657u, 658u, 0u, 0u, 659u, 0u, 0u, 0u, 660u, 0u, 0u, 661u, 0u, 0u, 662u, 0u, 0u, 663u, 0u, 664u, 0u, 0u, 0u, 665u, 0u, 0u, 666u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 667u, 0u, 0u, 0u, 0u, 668u, 0u, 669u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 670u, 0u, 671u, 0u, 672u, 0u, 0u, 673u, 0u, 0u, 674u, 0u, 675u, 0u, 676u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 677u, 0u, 678u, 679u, 0u, 0u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 682u, 0u, 0u, 683u, 0u, 0u, 0u, 684u, 0u, 0u, 685u, 0u, 686u, 0u, 687u, 688u, 0u, 689u, 0u, 690u, 0u, 691u, 692u, 0u, 0u, 0u, 0u, 0u, 0u, + 693u, 0u, 694u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 695u, 0u, 0u, 696u, 0u, 0u, 0u, 0u, 0u, 697u, 698u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 699u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 700u, 0u, 0u, 701u, 0u, 0u, 702u, 0u, 703u, 0u, 704u, 705u, 0u, 706u, 0u, 0u, 0u, 707u, 0u, 708u, 709u, 0u, 0u, 0u, + 0u, 0u, 0u, 710u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 713u, 0u, 0u, 0u, 0u, 0u, 714u, 715u, 0u, 0u, 0u, 0u, 0u, 0u, 716u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 717u, 0u, 0u, 718u, 0u, 0u, 719u, 0u, 720u, 0u, 0u, 721u, 0u, 722u, 723u, 0u, 0u, 0u, 0u, 0u, 0u, 724u, 0u, 725u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 726u, 0u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, 728u, 729u, 0u, 0u, 0u, 0u, 0u, 730u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 731u, 0u, 0u, 732u, 0u, 0u, 0u, 733u, 0u, 0u, 0u, 0u, 0u, 734u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 736u, 0u, 0u, + 737u, 0u, 738u, 0u, 739u, 0u, 740u, 0u, 0u, 0u, 0u, 741u, 0u, 742u, 743u, 0u, 744u, 0u, 0u, 0u, 0u, 0u, 745u, 0u, 0u, 746u, 0u, 0u, 0u, 747u, 0u, 748u, + 0u, 749u, 0u, 0u, 0u, 750u, 0u, 0u, 0u, 751u, 0u, 752u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 753u, 0u, 0u, 754u, 0u, 0u, 0u, 0u, 0u, 755u, 756u, 0u, 0u, + 0u, 0u, 0u, 0u, 757u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 758u, 0u, 0u, 759u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 760u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 761u, 0u, 0u, 762u, 0u, 0u, 0u, 0u, 0u, 763u, 0u, 0u, 764u, 0u, 765u, 0u, 766u, 0u, 0u, 0u, 767u, 0u, 0u, 768u, 0u, + 769u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 0u, 772u, 0u, 0u, 773u, 0u, 0u, 0u, 774u, 0u, 775u, 0u, 776u, 777u, 0u, 0u, 0u, 0u, 0u, 0u, 778u, + 0u, 779u, 0u, 0u, 0u, 0u, 0u, 780u, 0u, 0u, 0u, 0u, 781u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 782u, 783u, 0u, 0u, 0u, 0u, 0u, 0u, 784u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 785u, 0u, 0u, 786u, 0u, 0u, 787u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 788u, 0u, 789u, 790u, + 0u, 791u, 0u, 0u, 0u, 0u, 0u, 792u, 0u, 0u, 0u, 793u, 0u, 794u, 0u, 795u, 796u, 0u, 0u, 797u, 0u, 0u, 0u, 0u, 0u, 798u, 0u, 0u, 0u, 799u, 0u, 800u, + 0u, 801u, 802u, 803u, 0u, 0u, 0u, 804u, 805u, 0u, 0u, 0u, 806u, 807u, 0u, 0u, 0u, 0u, 0u, 808u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 809u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 810u, 0u, 0u, 811u, 0u, 0u, 812u, 0u, 813u, 0u, 814u, 815u, 0u, 816u, +}; void recomp_unit_0200_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,31,6,16 fprs=12,13,14,16 gpr_occ=4034 fpr_occ=659 gpr_total=5647 fpr_total=1124 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08B24000u; - entry_id = 0u; - if (entry_delta < 16348u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0200[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0200[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16348u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0200[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08B24000; @@ -894,6 +1017,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B24000u; + if (local_delta_v813 >= 16348u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -912,8 +1059,21 @@ L_08B24000: aot_fpr_14 = aot_fpr_14 + ctx.fpr[20]; aot_gpr_31 = (0x08B24010u); aot_gpr_4 = (aot_gpr_29 + static_cast(242)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 2u, 0x08B24010u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24010u) goto L_08B24010; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24010: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(216), std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(242))); @@ -969,8 +1129,21 @@ L_08B24020: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B240A4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 4u, 0x08B240A4u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B240A4u) goto L_08B240A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B240A4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(240)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -983,8 +1156,21 @@ L_08B240B0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B240BCu); aot_gpr_4 = (0u | 496u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 6u, 0x08B240BCu, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B240BCu) goto L_08B240BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B240BC: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -999,8 +1185,21 @@ L_08B240C8: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(68))); aot_gpr_31 = (0x08B240DCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 8u, 0x08B240DCu, 0x0882B688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 351u, 0x0882B688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B240DCu) goto L_08B240DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B240DC: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08B240E0; @@ -1008,8 +1207,21 @@ L_08B240E0: aot_gpr_5 = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x08B240ECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 10u, 0x08B240ECu, 0x08860358u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B240ECu) goto L_08B240EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B240EC: aot_gpr_4 = (0u | 3u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(476), static_cast(aot_gpr_4)); @@ -1020,8 +1232,21 @@ L_08B240EC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(464), aot_gpr_4); aot_gpr_31 = (0x08B24110u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 11u, 0x08B24110u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24110u) goto L_08B24110; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24110: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(644))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -1055,8 +1280,21 @@ L_08B24134: L_08B24140: aot_gpr_31 = (0x08B24148u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(224))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 16u, 0x08B24148u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24148u) goto L_08B24148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24148: { std::uint32_t aot_run_words[16]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(672), aot_run_words); @@ -1079,8 +1317,8 @@ L_08B24148: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(736)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24190: @@ -1146,8 +1384,21 @@ L_08B2423C: ctx.gpr[18] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08B2428Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 19u, 0x08B2428Cu, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2428Cu) goto L_08B2428C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2428C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -1163,8 +1414,21 @@ L_08B2428C: ctx.gpr[19] = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08B242C4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 20u, 0x08B242C4u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B242C4u) goto L_08B242C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B242C4: { const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1246,8 +1510,21 @@ L_08B2433C: ctx.gpr[18] = (aot_gpr_29 + static_cast(112)); aot_gpr_31 = (0x08B24370u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 22u, 0x08B24370u, 0x08B22E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 606u, 0x08B22E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24370u) goto L_08B24370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24370: ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[22]; aot_gpr_4 = (std::bit_cast(ctx.fpr[20])); @@ -1297,8 +1574,21 @@ L_08B24370: ctx.gpr[21] = (aot_gpr_29 + static_cast(160)); aot_gpr_31 = (0x08B243B8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 23u, 0x08B243B8u, 0x08B22E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 606u, 0x08B22E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B243B8u) goto L_08B243B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B243B8: aot_gpr_4 = (std::bit_cast(ctx.fpr[22])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1344,16 +1634,42 @@ L_08B243B8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B243F0u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 24u, 0x08B243F0u, 0x08B23774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 699u, 0x08B23774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B243F0u) goto L_08B243F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B243F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08B24404u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 25u, 0x08B24404u, 0x08B22E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 606u, 0x08B22E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24404u) goto L_08B24404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24404: aot_gpr_4 = (std::bit_cast(ctx.fpr[22])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1399,8 +1715,21 @@ L_08B24404: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08B2443Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 26u, 0x08B2443Cu, 0x08B22E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 606u, 0x08B22E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2443Cu) goto L_08B2443C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2443C: aot_gpr_4 = (std::bit_cast(ctx.fpr[20])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1444,8 +1773,21 @@ L_08B2443C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B2446Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 27u, 0x08B2446Cu, 0x08B23774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 699u, 0x08B23774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2446Cu) goto L_08B2446C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2446C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1460,8 +1802,21 @@ L_08B24474: ctx.gpr[18] = (aot_gpr_29 + static_cast(208)); aot_gpr_31 = (0x08B2448Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 29u, 0x08B2448Cu, 0x08B22E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 606u, 0x08B22E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2448Cu) goto L_08B2448C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2448C: aot_gpr_4 = (std::bit_cast(ctx.fpr[20])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1510,8 +1865,21 @@ L_08B2448C: ctx.gpr[17] = (aot_gpr_29 + static_cast(256)); aot_gpr_31 = (0x08B244D0u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 30u, 0x08B244D0u, 0x08B22E6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 606u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 606u, 0x08B22E6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B244D0u) goto L_08B244D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B244D0: aot_gpr_4 = (std::bit_cast(ctx.fpr[20])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -1556,8 +1924,21 @@ L_08B244D0: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B24504u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 31u, 0x08B24504u, 0x08B23774u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 699u, 0x08B23774u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24504u) goto L_08B24504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24504: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(496), aot_run_words); @@ -1575,8 +1956,8 @@ L_08B24504: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(544)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24538: @@ -1604,8 +1985,21 @@ L_08B24574: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B24584u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 35u, 0x08B24584u, 0x089D1D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 314u, 0x089D1D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24584u) goto L_08B24584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24584: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -1638,8 +2032,8 @@ L_08B245BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B245DC: @@ -1651,8 +2045,21 @@ L_08B245DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B245FCu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 38u, 0x08B245FCu, 0x08A93FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 640u, 0x08A93FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B245FCu) goto L_08B245FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B245FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1684,8 +2091,8 @@ L_08B24628: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2463C: @@ -1734,8 +2141,21 @@ L_08B24688: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08B24698u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 46u, 0x08B24698u, 0x08A93FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 640u, 0x08A93FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24698u) goto L_08B24698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24698: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1748,14 +2168,27 @@ L_08B246A0: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08B246B0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 48u, 0x08B246B0u, 0x08A93FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 640u, 0x08A93FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B246B0u) goto L_08B246B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B246B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B246BC: @@ -1786,8 +2219,8 @@ L_08B246E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B246F0: @@ -1796,21 +2229,47 @@ L_08B246F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B24704u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 54u, 0x08B24704u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24704u) goto L_08B24704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24704: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(0))); aot_gpr_31 = (0x08B24710u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 55u, 0x08B24710u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24710u) goto L_08B24710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24710: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24720: @@ -1819,21 +2278,47 @@ L_08B24720: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B24734u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 57u, 0x08B24734u, 0x0890482Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 131u, 0x0890482Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24734u) goto L_08B24734; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24734: aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(2))); aot_gpr_31 = (0x08B24740u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 58u, 0x08B24740u, 0x08904AA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 165u, 0x08904AA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24740u) goto L_08B24740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24740: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24750: @@ -1853,8 +2338,8 @@ L_08B24770: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2477C: @@ -1874,21 +2359,21 @@ L_08B2479C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B247A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B247B0: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 2u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B247B8: @@ -1916,15 +2401,15 @@ L_08B247B8: aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(4), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24818: jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(3960))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24820: @@ -1954,8 +2439,21 @@ L_08B24820: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(84), aot_gpr_31); aot_gpr_31 = (0x08B24888u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 68u, 0x08B24888u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24888u) goto L_08B24888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24888: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1994,8 +2492,8 @@ L_08B248C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(84))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B248D4: @@ -2007,21 +2505,60 @@ L_08B248D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B248F4u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 72u, 0x08B248F4u, 0x088079D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 555u, 0x088079D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B248F4u) goto L_08B248F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B248F4: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), aot_gpr_16); aot_gpr_5 = (ctx.gpr[28] + static_cast(4096)); aot_gpr_31 = (0x08B24904u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 73u, 0x08B24904u, 0x0889D344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 249u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 249u, 0x0889D344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24904u) goto L_08B24904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24904: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B24910u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 74u, 0x08B24910u, 0x08807510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 492u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 492u, 0x08807510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24910u) goto L_08B24910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24910: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2031,8 +2568,8 @@ L_08B24910: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24924: @@ -2056,14 +2593,40 @@ L_08B24958: ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B24978u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 77u, 0x08B24978u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24978u) goto L_08B24978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24978: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B24984u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 78u, 0x08B24984u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24984u) goto L_08B24984; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24984: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); ctx.gpr[22] = (2237u << 16u); @@ -2098,8 +2661,21 @@ L_08B2499C: ctx.gpr[7] = (0u | 5u); aot_gpr_31 = (0x08B249BCu); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 81u, 0x08B249BCu, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B249BCu) goto L_08B249BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B249BC: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -2119,14 +2695,40 @@ L_08B249D8: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B249E4u); aot_gpr_6 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 85u, 0x08B249E4u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B249E4u) goto L_08B249E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B249E4: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x08B249F0u); aot_gpr_4 = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 86u, 0x08B249F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B249F0u) goto L_08B249F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B249F0: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -2139,8 +2741,21 @@ L_08B249F0: L_08B249FC: aot_gpr_31 = (0x08B24A04u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 88u, 0x08B24A04u, 0x08A3EDBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 446u, 0x08A3EDBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24A04u) goto L_08B24A04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24A04: ctx.gpr[21] = (ctx.gpr[19] | 0u); goto L_08B24A08; @@ -2148,14 +2763,40 @@ L_08B24A08: aot_gpr_4 = (ctx.gpr[22] + static_cast(116)); aot_gpr_31 = (0x08B24A14u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 90u, 0x08B24A14u, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24A14u) goto L_08B24A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24A14: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B24A20u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 91u, 0x08B24A20u, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24A20u) goto L_08B24A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24A20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2186,8 +2827,21 @@ L_08B24A48: L_08B24A4C: aot_gpr_31 = (0x08B24A54u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 98u, 0x08B24A54u, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24A54u) goto L_08B24A54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24A54: aot_gpr_4 = (ctx.gpr[2] << 4u); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2197,8 +2851,21 @@ L_08B24A54: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B24A74u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 99u, 0x08B24A74u, 0x08ADC0B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 8u, 0x08ADC0B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24A74u) goto L_08B24A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24A74: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0)))))); @@ -2227,8 +2894,8 @@ L_08B24AA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24ACC: @@ -2252,8 +2919,21 @@ L_08B24B00: ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B24B20u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 103u, 0x08B24B20u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24B20u) goto L_08B24B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24B20: ctx.gpr[20] = (0u | 5u); aot_gpr_31 = (0x08B24B2Cu); @@ -2313,8 +2993,21 @@ L_08B24B68: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B24B84u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 111u, 0x08B24B84u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24B84u) goto L_08B24B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24B84: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B24B90u); @@ -2354,8 +3047,21 @@ L_08B24BC0: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B24BD0u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 117u, 0x08B24BD0u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24BD0u) goto L_08B24BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24BD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2374,8 +3080,21 @@ L_08B24BE8: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B24BF4u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 121u, 0x08B24BF4u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24BF4u) goto L_08B24BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24BF4: aot_gpr_31 = (0x08B24BFCu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2432,8 +3151,21 @@ L_08B24C40: L_08B24C44: aot_gpr_31 = (0x08B24C4Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 132u, 0x08B24C4Cu, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24C4Cu) goto L_08B24C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24C4C: aot_gpr_4 = (ctx.gpr[2] << 4u); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2459,8 +3191,21 @@ L_08B24C8C: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B24C98u); aot_gpr_4 = (0u | 116u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 135u, 0x08B24C98u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24C98u) goto L_08B24C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24C98: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -2473,8 +3218,21 @@ L_08B24C98: L_08B24CA4: aot_gpr_31 = (0x08B24CACu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 137u, 0x08B24CACu, 0x08A3EDBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 446u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 446u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 446u, 0x08A3EDBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24CACu) goto L_08B24CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24CAC: ctx.gpr[22] = (ctx.gpr[20] | 0u); goto L_08B24CB0; @@ -2482,14 +3240,40 @@ L_08B24CB0: aot_gpr_4 = (ctx.gpr[21] + static_cast(116)); aot_gpr_31 = (0x08B24CBCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 139u, 0x08B24CBCu, 0x08933F0Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 759u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 759u, 0x08933F0Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24CBCu) goto L_08B24CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24CBC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B24CC8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 140u, 0x08B24CC8u, 0x088BAFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 623u, 0x088BAFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24CC8u) goto L_08B24CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24CC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2520,8 +3304,21 @@ L_08B24CF0: L_08B24CF4: aot_gpr_31 = (0x08B24CFCu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 147u, 0x08B24CFCu, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24CFCu) goto L_08B24CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24CFC: aot_gpr_4 = (ctx.gpr[2] << 4u); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -2531,8 +3328,21 @@ L_08B24CFC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B24D1Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 148u, 0x08B24D1Cu, 0x08ADC0B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 8u, 0x08ADC0B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24D1Cu) goto L_08B24D1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24D1C: aot_gpr_4 = (ctx.gpr[2] < static_cast(1) ? 1u : 0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0)))))); @@ -2561,8 +3371,8 @@ L_08B24D48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24D74: @@ -2593,8 +3403,21 @@ L_08B24DA8: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B24DC0u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 153u, 0x08B24DC0u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24DC0u) goto L_08B24DC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24DC0: ctx.gpr[17] = (0u | 5u); aot_gpr_31 = (0x08B24DCCu); @@ -2667,8 +3490,21 @@ L_08B24E14: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B24E30u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 163u, 0x08B24E30u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24E30u) goto L_08B24E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24E30: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B24E3Cu); @@ -2708,8 +3544,21 @@ L_08B24E6C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B24E7Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 169u, 0x08B24E7Cu, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24E7Cu) goto L_08B24E7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24E7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -2728,8 +3577,21 @@ L_08B24E94: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B24EA0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 173u, 0x08B24EA0u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24EA0u) goto L_08B24EA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24EA0: aot_fpr_12 = std::bit_cast(ctx.gpr[17]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2751,8 +3613,8 @@ L_08B24EB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B24ED0: @@ -2808,8 +3670,21 @@ L_08B24F30: L_08B24F34: aot_gpr_31 = (0x08B24F3Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 184u, 0x08B24F3Cu, 0x0880E450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 495u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 495u, 0x0880E450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B24F3Cu) goto L_08B24F3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B24F3C: aot_gpr_16 = (ctx.gpr[2] << 4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -2918,8 +3793,8 @@ L_08B2500C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B25028: @@ -2931,8 +3806,21 @@ L_08B25028: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08B25048u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 201u, 0x08B25048u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25048u) goto L_08B25048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25048: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2957,8 +3845,21 @@ L_08B25064: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08B2507Cu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 204u, 0x08B2507Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2507Cu) goto L_08B2507C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2507C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2973,8 +3874,21 @@ L_08B25088: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B2509Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 206u, 0x08B2509Cu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2509Cu) goto L_08B2509C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2509C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3019,8 +3933,8 @@ L_08B250D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B250E8: @@ -3032,8 +3946,21 @@ L_08B250E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B25108u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 211u, 0x08B25108u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25108u) goto L_08B25108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25108: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3058,8 +3985,21 @@ L_08B25124: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B2513Cu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 214u, 0x08B2513Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2513Cu) goto L_08B2513C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2513C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3158,8 +4098,8 @@ L_08B251E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B25200: @@ -3171,8 +4111,21 @@ L_08B25200: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B25220u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 228u, 0x08B25220u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25220u) goto L_08B25220; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25220: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3197,8 +4150,21 @@ L_08B2523C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_31 = (0x08B25254u); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 231u, 0x08B25254u, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25254u) goto L_08B25254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25254: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3286,8 +4252,8 @@ L_08B252EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B25304: @@ -3299,8 +4265,21 @@ L_08B25304: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B25324u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 244u, 0x08B25324u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25324u) goto L_08B25324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25324: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3326,8 +4305,21 @@ L_08B25340: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2535Cu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 247u, 0x08B2535Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2535Cu) goto L_08B2535C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2535C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3373,8 +4365,21 @@ L_08B253B4: aot_gpr_5 = (aot_gpr_4 & 65535u); aot_gpr_31 = (0x08B253C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 253u, 0x08B253C0u, 0x08ADC7BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 154u, 0x08ADC7BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B253C0u) goto L_08B253C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B253C0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1))); @@ -3415,8 +4420,8 @@ L_08B25414: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2542C: @@ -3426,8 +4431,21 @@ L_08B2542C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B25448u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 258u, 0x08B25448u, 0x0889D374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 252u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 252u, 0x0889D374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25448u) goto L_08B25448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25448: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -3452,8 +4470,21 @@ L_08B25464: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(100))); aot_gpr_31 = (0x08B2547Cu); aot_gpr_5 = (aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(52))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 261u, 0x08B2547Cu, 0x08ADCA6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 192u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 192u, 0x08ADCA6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2547Cu) goto L_08B2547C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2547C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3494,8 +4525,8 @@ L_08B254B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B254C8: @@ -3505,22 +4536,48 @@ L_08B254C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B254E0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 267u, 0x08B254E0u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B254E0u) goto L_08B254E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B254E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B254ECu); aot_gpr_5 = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 268u, 0x08B254ECu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B254ECu) goto L_08B254EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B254EC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B25500: @@ -3637,8 +4694,8 @@ L_08B255B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B255CC: @@ -3664,8 +4721,21 @@ L_08B255F0: aot_gpr_6 = (ctx.gpr[28] + static_cast(4096)); aot_gpr_31 = (0x08B255FCu); aot_gpr_5 = (aot_gpr_5 + static_cast(-31800)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 292u, 0x08B255FCu, 0x08885284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 270u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 270u, 0x08885284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B255FCu) goto L_08B255FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B255FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3687,14 +4757,27 @@ L_08B25618: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B25624u); aot_gpr_5 = (aot_gpr_5 + static_cast(-31620)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 296u, 0x08B25624u, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25624u) goto L_08B25624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25624: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B25630: @@ -3764,8 +4847,21 @@ L_08B256CC: L_08B256D0: aot_gpr_31 = (0x08B256D8u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 306u, 0x08B256D8u, 0x0880DC1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 412u, 0x0880DC1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B256D8u) goto L_08B256D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B256D8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), 0u); goto L_08B256DC; @@ -3842,8 +4938,21 @@ L_08B25738: ctx.gpr[7] = (0u | 4u); aot_gpr_31 = (0x08B25754u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 316u, 0x08B25754u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25754u) goto L_08B25754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25754: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -3863,8 +4972,21 @@ L_08B25770: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2577Cu); aot_gpr_6 = (0u | 52u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 320u, 0x08B2577Cu, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2577Cu) goto L_08B2577C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2577C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -3883,8 +5005,21 @@ L_08B25794: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B257A0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 324u, 0x08B257A0u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B257A0u) goto L_08B257A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B257A0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_16); @@ -3943,8 +5078,21 @@ L_08B257DC: ctx.gpr[7] = (0u | 4u); aot_gpr_31 = (0x08B257F8u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 331u, 0x08B257F8u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B257F8u) goto L_08B257F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B257F8: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -3964,8 +5112,21 @@ L_08B25814: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B25820u); aot_gpr_6 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 335u, 0x08B25820u, 0x0880E240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 466u, 0x0880E240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25820u) goto L_08B25820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25820: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); if (aot_gpr_4 != 0u) { @@ -3984,8 +5145,21 @@ L_08B25838: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B25844u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 339u, 0x08B25844u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25844u) goto L_08B25844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25844: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_16); @@ -4034,8 +5208,21 @@ L_08B2584C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); aot_gpr_31 = (0x08B2587Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 341u, 0x08B2587Cu, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2587Cu) goto L_08B2587C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2587C: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < aot_fpr_12)) ? 0x00800000u : 0u); @@ -4501,8 +5688,21 @@ L_08B25B74: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B25B90u); ctx.gpr[8] = (0u | 3u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 393u, 0x08B25B90u, 0x0880E03Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 447u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 447u, 0x0880E03Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25B90u) goto L_08B25B90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25B90: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); @@ -4522,8 +5722,21 @@ L_08B25BAC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B25BB8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 397u, 0x08B25BB8u, 0x0880E374u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 483u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 483u, 0x0880E374u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B25BB8u) goto L_08B25BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B25BB8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), aot_gpr_16); goto L_08B25BBC; @@ -4556,8 +5769,8 @@ L_08B25BD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B25C08: @@ -4603,8 +5816,8 @@ L_08B25C3C: L_08B25C5C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B25C64: @@ -4777,8 +5990,8 @@ L_08B25DFC: goto L_08B25E08; L_08B25E08: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B25E10: @@ -5038,8 +6251,8 @@ L_08B25FEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B26030: @@ -5052,8 +6265,8 @@ L_08B26040: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2604C: @@ -5078,8 +6291,21 @@ L_08B2608C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B26098u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 436u, 0x08B26098u, 0x08A93144u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 456u, 0x08A93144u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26098u) goto L_08B26098; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26098: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5135,8 +6361,21 @@ L_08B260D8: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B26118u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 441u, 0x08B26118u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26118u) goto L_08B26118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26118: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5215,8 +6454,8 @@ L_08B26184: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B261A8: @@ -5679,8 +6918,21 @@ L_08B26584: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B265DCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 489u, 0x08B265DCu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B265DCu) goto L_08B265DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B265DC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (16294u << 16u); @@ -5770,8 +7022,21 @@ L_08B26688: aot_fpr_12 = ctx.fpr[24] - aot_fpr_12; aot_gpr_31 = (0x08B266F4u); { const float fs = ctx.fpr[20]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 494u, 0x08B266F4u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B266F4u) goto L_08B266F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B266F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5852,8 +7117,21 @@ L_08B267C4: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08B267F8u); ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 499u, 0x08B267F8u, 0x08AA9F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 157u, 0x08AA9F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B267F8u) goto L_08B267F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B267F8: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(312))); ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(316))); @@ -6159,8 +7437,21 @@ L_08B26A8C: { const float fs = ctx.fpr[26]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B26AD8u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast(0x7FC00000u); else ctx.fpr[20] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 525u, 0x08B26AD8u, 0x08AA82D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 32u, 0x08AA82D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26AD8u) goto L_08B26AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26AD8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6241,8 +7532,21 @@ L_08B26BA8: ctx.gpr[8] = (0u | 255u); aot_gpr_31 = (0x08B26BDCu); ctx.fpr[18] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 530u, 0x08B26BDCu, 0x08AA9F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 157u, 0x08AA9F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26BDCu) goto L_08B26BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26BDC: ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(332))); ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(328))); @@ -6285,8 +7589,21 @@ L_08B26C1C: } L_08B26C38: aot_gpr_31 = (0x08B26C40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 535u, 0x08B26C40u, 0x08AA8BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 59u, 0x08AA8BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26C40u) goto L_08B26C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26C40: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(300)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7908))); @@ -6323,8 +7640,8 @@ L_08B26C60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(416)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B26CA8: @@ -6351,8 +7668,8 @@ L_08B26CE0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B26CEC: @@ -6371,8 +7688,8 @@ L_08B26D00: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31368))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B26D18: @@ -6387,8 +7704,8 @@ L_08B26D18: } L_08B26D28: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B26D30: @@ -6458,8 +7775,8 @@ L_08B26D30: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B26D8C: @@ -6474,8 +7791,21 @@ L_08B26D8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B26DB8u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 546u, 0x08B26DB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26DB8u) goto L_08B26DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26DB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B26DC4u); @@ -6520,8 +7850,21 @@ L_08B26DE8: L_08B26DF0: aot_gpr_31 = (0x08B26DF8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 553u, 0x08B26DF8u, 0x08863DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 765u, 0x08863DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26DF8u) goto L_08B26DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26DF8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6538,8 +7881,21 @@ L_08B26E04: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08B26E20u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 555u, 0x08B26E20u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26E20u) goto L_08B26E20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26E20: ctx.gpr[2] = (0u | 0u); goto L_08B26E24; @@ -6553,8 +7909,8 @@ L_08B26E24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B26E3C: @@ -6573,8 +7929,21 @@ L_08B26E3C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08B26E78u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 558u, 0x08B26E78u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26E78u) goto L_08B26E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26E78: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B26E84u); @@ -6585,8 +7954,21 @@ L_08B26E84: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B26E90u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 560u, 0x08B26E90u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26E90u) goto L_08B26E90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26E90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6675,8 +8057,8 @@ L_08B26EF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B26F18: @@ -6694,8 +8076,21 @@ L_08B26F18: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_31); aot_gpr_31 = (0x08B26F54u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 569u, 0x08B26F54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26F54u) goto L_08B26F54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26F54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B26F60u); @@ -6716,8 +8111,21 @@ L_08B26F60: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B26F88u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 571u, 0x08B26F88u, 0x08809600u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 257u, 0x08809600u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26F88u) goto L_08B26F88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26F88: aot_gpr_4 = (49864u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -6743,8 +8151,21 @@ L_08B26FB8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B26FC4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 574u, 0x08B26FC4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26FC4u) goto L_08B26FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26FC4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B26FC8; @@ -6757,8 +8178,21 @@ L_08B26FC8: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08B26FE8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 576u, 0x08B26FE8u, 0x08B312F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 211u, 0x08B312F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B26FE8u) goto L_08B26FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B26FE8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -6773,8 +8207,8 @@ L_08B26FE8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27010: @@ -6790,8 +8224,21 @@ L_08B27010: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B27040u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 578u, 0x08B27040u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27040u) goto L_08B27040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27040: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2704Cu); @@ -6955,8 +8402,8 @@ L_08B2713C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27158: @@ -6973,8 +8420,21 @@ L_08B27158: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B2718Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 599u, 0x08B2718Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2718Cu) goto L_08B2718C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2718C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27198u); @@ -6985,8 +8445,21 @@ L_08B27198: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B271A4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 601u, 0x08B271A4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B271A4u) goto L_08B271A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B271A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6998,8 +8471,21 @@ L_08B271AC: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); aot_gpr_31 = (0x08B271B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 603u, 0x08B271B8u, 0x08AE3E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1011u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1011u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1011u, 0x08AE3E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B271B8u) goto L_08B271B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B271B8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(4), aot_run_words); @@ -7048,8 +8534,21 @@ L_08B271F0: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_16)); aot_gpr_31 = (0x08B27210u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 608u, 0x08B27210u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27210u) goto L_08B27210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27210: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); ctx.gpr[18] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -7085,8 +8584,21 @@ L_08B27230: aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_16)); aot_gpr_31 = (0x08B27250u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[17])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 612u, 0x08B27250u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27250u) goto L_08B27250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27250: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); ctx.gpr[18] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -7184,8 +8696,21 @@ L_08B272D8: aot_fpr_16 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08B272FCu); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 623u, 0x08B272FCu, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B272FCu) goto L_08B272FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B272FC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7206,8 +8731,8 @@ L_08B27308: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27328: @@ -7224,8 +8749,21 @@ L_08B27328: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B2735Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 626u, 0x08B2735Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2735Cu) goto L_08B2735C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2735C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27368u); @@ -7236,8 +8774,21 @@ L_08B27368: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B27374u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 628u, 0x08B27374u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27374u) goto L_08B27374; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27374: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7249,8 +8800,21 @@ L_08B2737C: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(1152))); aot_gpr_31 = (0x08B27388u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 630u, 0x08B27388u, 0x08AE3E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 1011u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 1011u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 1011u, 0x08AE3E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27388u) goto L_08B27388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27388: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(ctx.gpr[17] + static_cast(4), aot_run_words); @@ -7306,8 +8870,21 @@ L_08B273D0: aot_fpr_16 = std::bit_cast(std::bit_cast(ctx.fpr[19])); aot_gpr_31 = (0x08B273FCu); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 635u, 0x08B273FCu, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B273FCu) goto L_08B273FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B273FC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); ctx.gpr[18] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -7346,8 +8923,21 @@ L_08B2741C: aot_fpr_16 = std::bit_cast(std::bit_cast(ctx.fpr[19])); aot_gpr_31 = (0x08B27448u); ctx.fpr[17] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 639u, 0x08B27448u, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27448u) goto L_08B27448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27448: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); ctx.gpr[18] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -7446,8 +9036,21 @@ L_08B274D0: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(16))); aot_gpr_31 = (0x08B27504u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 650u, 0x08B27504u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27504u) goto L_08B27504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27504: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7468,8 +9071,8 @@ L_08B27510: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27530: @@ -7487,8 +9090,21 @@ L_08B27530: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(16), aot_run_words); } aot_gpr_31 = (0x08B2756Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 653u, 0x08B2756Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2756Cu) goto L_08B2756C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2756C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27578u); @@ -7499,8 +9115,21 @@ L_08B27578: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B27584u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 655u, 0x08B27584u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27584u) goto L_08B27584; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27584: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7523,8 +9152,21 @@ L_08B27598: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08B275A4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 659u, 0x08B275A4u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B275A4u) goto L_08B275A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B275A4: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7996))); ctx.gpr[20] = (ctx.gpr[2] | 0u); @@ -7559,8 +9201,21 @@ L_08B275CC: L_08B275D8: aot_gpr_31 = (0x08B275E0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 664u, 0x08B275E0u, 0x08B41658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 369u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 369u, 0x08B41658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B275E0u) goto L_08B275E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B275E0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(612))); aot_gpr_5 = (0u | 2u); @@ -7598,8 +9253,21 @@ L_08B275FC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08B27644u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 667u, 0x08B27644u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27644u) goto L_08B27644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27644: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7996), ctx.gpr[20]); ctx.gpr[20] = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(612))); @@ -7635,8 +9303,21 @@ L_08B27660: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2769Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 670u, 0x08B2769Cu, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2769Cu) goto L_08B2769C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2769C: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7996))); @@ -7701,8 +9382,21 @@ L_08B276D4: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B27710u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 677u, 0x08B27710u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27710u) goto L_08B27710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27710: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7996))); @@ -7736,8 +9430,8 @@ L_08B27730: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27758: @@ -7754,8 +9448,21 @@ L_08B27758: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B2778Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 682u, 0x08B2778Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2778Cu) goto L_08B2778C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2778C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27798u); @@ -7773,8 +9480,21 @@ L_08B277A8: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B277B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 685u, 0x08B277B4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B277B4u) goto L_08B277B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B277B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7888,8 +9608,8 @@ L_08B27850: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27870: @@ -7905,8 +9625,21 @@ L_08B27870: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B278A0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 700u, 0x08B278A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B278A0u) goto L_08B278A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B278A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B278ACu); @@ -7917,8 +9650,21 @@ L_08B278AC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B278B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 702u, 0x08B278B8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B278B8u) goto L_08B278B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B278B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8033,8 +9779,8 @@ L_08B2795C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27978: @@ -8048,8 +9794,21 @@ L_08B27978: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B279A0u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 717u, 0x08B279A0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B279A0u) goto L_08B279A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B279A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B279ACu); @@ -8060,8 +9819,21 @@ L_08B279AC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B279B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 719u, 0x08B279B8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B279B8u) goto L_08B279B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B279B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8156,8 +9928,8 @@ L_08B27A44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27A5C: @@ -8171,8 +9943,21 @@ L_08B27A5C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B27A84u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 731u, 0x08B27A84u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27A84u) goto L_08B27A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27A84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27A90u); @@ -8184,8 +9969,21 @@ L_08B27A90: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(8))); aot_gpr_31 = (0x08B27AA0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 733u, 0x08B27AA0u, 0x089082C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 53u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 53u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 53u, 0x089082C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27AA0u) goto L_08B27AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27AA0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8196,8 +9994,8 @@ L_08B27AA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27AB8: @@ -8213,8 +10011,21 @@ L_08B27AB8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B27AE8u); ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 735u, 0x08B27AE8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27AE8u) goto L_08B27AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27AE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27AF4u); @@ -8392,8 +10203,8 @@ L_08B27BF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27C10: @@ -8407,8 +10218,21 @@ L_08B27C10: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B27C38u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 758u, 0x08B27C38u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27C38u) goto L_08B27C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27C38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27C44u); @@ -8429,8 +10253,8 @@ L_08B27C44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27C6C: @@ -8446,8 +10270,21 @@ L_08B27C6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08B27C9Cu); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 761u, 0x08B27C9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27C9Cu) goto L_08B27C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27C9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27CA8u); @@ -8461,8 +10298,21 @@ L_08B27CA8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B27CC0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 763u, 0x08B27CC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27CC0u) goto L_08B27CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27CC0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); if (aot_gpr_4 != 0u) { @@ -8487,14 +10337,40 @@ L_08B27CDC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B27CECu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 767u, 0x08B27CECu, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27CECu) goto L_08B27CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27CEC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B27CF8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 768u, 0x08B27CF8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27CF8u) goto L_08B27CF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27CF8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8552,15 +10428,41 @@ L_08B27D30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B27D3Cu); aot_gpr_5 = (ctx.gpr[17] & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 773u, 0x08B27D3Cu, 0x08A8EA74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 516u, 0x08A8EA74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27D3Cu) goto L_08B27D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27D3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B27D4Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 774u, 0x08B27D4Cu, 0x08A8DAA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 313u, 0x08A8DAA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27D4Cu) goto L_08B27D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27D4C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8650,8 +10552,8 @@ L_08B27DD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27DF0: @@ -8670,8 +10572,21 @@ L_08B27DF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_31); aot_gpr_31 = (0x08B27E34u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 785u, 0x08B27E34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27E34u) goto L_08B27E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27E34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27E40u); @@ -8682,8 +10597,21 @@ L_08B27E40: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B27E4Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 787u, 0x08B27E4Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27E4Cu) goto L_08B27E4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27E4C: aot_gpr_4 = (16457u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -8746,8 +10674,21 @@ L_08B27EAC: } L_08B27EB4: aot_gpr_31 = (0x08B27EBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 795u, 0x08B27EBCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27EBCu) goto L_08B27EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27EBC: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } goto L_08B27EC0; @@ -8788,8 +10729,21 @@ L_08B27EF4: } L_08B27EFC: aot_gpr_31 = (0x08B27F04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 801u, 0x08B27F04u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27F04u) goto L_08B27F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27F04: { const float fs = ctx.fpr[0]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } goto L_08B27F08; @@ -8843,8 +10797,8 @@ L_08B27F4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B27F7C: @@ -8858,8 +10812,21 @@ L_08B27F7C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B27FA4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 810u, 0x08B27FA4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27FA4u) goto L_08B27FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27FA4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B27FB0u); @@ -8870,8 +10837,21 @@ L_08B27FB0: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B27FBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0200->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0200_entry, 812u, 0x08B27FBCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B27FBCu) goto L_08B27FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B27FBC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0201.cpp b/profiles/vcs/generated/generated_unit_0201.cpp index 5acc28f..e81c999 100644 --- a/profiles/vcs/generated/generated_unit_0201.cpp +++ b/profiles/vcs/generated/generated_unit_0201.cpp @@ -907,6 +907,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B28000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -926,8 +950,21 @@ L_08B28000: { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x08B28018u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 2u, 0x08B28018u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28018u) goto L_08B28018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28018: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -938,8 +975,8 @@ L_08B28018: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28030: @@ -956,8 +993,21 @@ L_08B28030: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B28064u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 4u, 0x08B28064u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28064u) goto L_08B28064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28070u); @@ -976,8 +1026,21 @@ L_08B28080: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08B28090u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 7u, 0x08B28090u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28090u) goto L_08B28090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28090: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -996,8 +1059,21 @@ L_08B28098: L_08B280A4: aot_gpr_31 = (0x08B280ACu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 10u, 0x08B280ACu, 0x08A66C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B280ACu) goto L_08B280AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B280AC: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); ctx.gpr[18] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -1020,8 +1096,21 @@ L_08B280C4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B280D0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 13u, 0x08B280D0u, 0x08A66C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B280D0u) goto L_08B280D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B280D0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); ctx.gpr[18] = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(518))); @@ -1104,8 +1193,8 @@ L_08B2814C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2816C: @@ -1119,8 +1208,21 @@ L_08B2816C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B28194u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 23u, 0x08B28194u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28194u) goto L_08B28194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28194: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B281A0u); @@ -1132,8 +1234,21 @@ L_08B281A0: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); aot_gpr_31 = (0x08B281B0u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 25u, 0x08B281B0u, 0x089083B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 66u, 0x089083B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B281B0u) goto L_08B281B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B281B0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1144,8 +1259,8 @@ L_08B281B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B281C8: @@ -1161,8 +1276,21 @@ L_08B281C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B281F8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 27u, 0x08B281F8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B281F8u) goto L_08B281F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B281F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28204u); @@ -1261,8 +1389,8 @@ L_08B2829C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B282B8: @@ -1270,15 +1398,28 @@ L_08B282B8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B282C8u); ctx.gpr[6] = (aot_gpr_4 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 39u, 0x08B282C8u, 0x088671E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 747u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 747u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 747u, 0x088671E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B282C8u) goto L_08B282C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B282C8: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B282D8: @@ -1293,8 +1434,21 @@ L_08B282D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B28304u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 41u, 0x08B28304u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28304u) goto L_08B28304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28304: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28310u); @@ -1308,20 +1462,59 @@ L_08B28310: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B28328u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 43u, 0x08B28328u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28328u) goto L_08B28328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28328: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B28334u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 44u, 0x08B28334u, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28334u) goto L_08B28334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28334: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08B28340u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 45u, 0x08B28340u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28340u) goto L_08B28340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28340: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1352,8 +1545,21 @@ L_08B28358: L_08B28368: aot_gpr_31 = (0x08B28370u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 50u, 0x08B28370u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28370u) goto L_08B28370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28370: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1372,8 +1578,21 @@ L_08B28378: L_08B28384: aot_gpr_31 = (0x08B2838Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 53u, 0x08B2838Cu, 0x08B00B68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 187u, 0x08B00B68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2838Cu) goto L_08B2838C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2838C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1396,8 +1615,21 @@ L_08B283B4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x08B283C0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 56u, 0x08B283C0u, 0x08907F9Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 922u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 922u, 0x08907F9Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B283C0u) goto L_08B283C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B283C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1443,8 +1675,21 @@ L_08B28400: aot_gpr_4 = (aot_gpr_17 + aot_gpr_4); aot_gpr_31 = (0x08B2841Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 62u, 0x08B2841Cu, 0x08A40D58u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 161u, 0x08A40D58u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2841Cu) goto L_08B2841C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2841C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1461,13 +1706,39 @@ L_08B28424: L_08B28430: aot_gpr_31 = (0x08B28438u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 65u, 0x08B28438u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28438u) goto L_08B28438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28438: aot_gpr_31 = (0x08B28440u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 66u, 0x08B28440u, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28440u) goto L_08B28440; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28440: ctx.gpr[6] = (0u | 33u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(80))); @@ -1475,8 +1746,21 @@ L_08B28440: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B28458u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 67u, 0x08B28458u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28458u) goto L_08B28458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28458: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1493,13 +1777,39 @@ L_08B28460: L_08B2846C: aot_gpr_31 = (0x08B28474u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 70u, 0x08B28474u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28474u) goto L_08B28474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28474: aot_gpr_31 = (0x08B2847Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 71u, 0x08B2847Cu, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2847Cu) goto L_08B2847C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2847C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(80))); aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(776), 0u); @@ -1507,8 +1817,21 @@ L_08B2847C: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08B28494u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 72u, 0x08B28494u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28494u) goto L_08B28494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28494: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -1520,8 +1843,8 @@ L_08B28494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B284B0: @@ -1537,8 +1860,21 @@ L_08B284B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B284E0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 74u, 0x08B284E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B284E0u) goto L_08B284E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B284E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B284ECu); @@ -1558,8 +1894,21 @@ L_08B284F8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B28504u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 77u, 0x08B28504u, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28504u) goto L_08B28504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28504: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(2228))); aot_gpr_5 = (0u | 55u); @@ -1592,13 +1941,39 @@ L_08B2852C: L_08B28538: aot_gpr_31 = (0x08B28540u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 82u, 0x08B28540u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28540u) goto L_08B28540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28540: aot_gpr_31 = (0x08B28548u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 83u, 0x08B28548u, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28548u) goto L_08B28548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28548: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(80))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(776), 0u); @@ -1606,8 +1981,21 @@ L_08B28548: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08B28560u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 84u, 0x08B28560u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28560u) goto L_08B28560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28560: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1632,8 +2020,21 @@ L_08B28580: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2858Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 88u, 0x08B2858Cu, 0x08908080u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 15u, 0x08908080u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2858Cu) goto L_08B2858C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2858C: aot_gpr_17 = (aot_gpr_17 + static_cast(1)); aot_gpr_4 = (aot_gpr_17 < static_cast(10) ? 1u : 0u); @@ -1656,8 +2057,8 @@ L_08B2859C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B285BC: @@ -1673,8 +2074,21 @@ L_08B285BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(96), aot_gpr_31); aot_gpr_31 = (0x08B285ECu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 91u, 0x08B285ECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B285ECu) goto L_08B285EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B285EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B285F8u); @@ -1685,8 +2099,21 @@ L_08B285F8: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B28604u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 93u, 0x08B28604u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28604u) goto L_08B28604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28604: aot_gpr_5 = (16585u << 16u); aot_gpr_5 = (aot_gpr_5 | 4059u); @@ -1795,8 +2222,21 @@ L_08B2864C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x08B28690u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 98u, 0x08B28690u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28690u) goto L_08B28690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28690: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -1833,8 +2273,21 @@ L_08B286D4: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(2260), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B286E4u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 103u, 0x08B286E4u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B286E4u) goto L_08B286E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B286E4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[5]{}; @@ -1847,8 +2300,8 @@ L_08B286E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28704: @@ -1862,8 +2315,21 @@ L_08B28704: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B2872Cu); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 105u, 0x08B2872Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2872Cu) goto L_08B2872C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2872C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28738u); @@ -1882,8 +2348,21 @@ L_08B28744: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B28750u); ctx.gpr[6] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 108u, 0x08B28750u, 0x08863EF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 786u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 786u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 786u, 0x08863EF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28750u) goto L_08B28750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28750: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1900,8 +2379,21 @@ L_08B2875C: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08B28778u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 110u, 0x08B28778u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28778u) goto L_08B28778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28778: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1912,8 +2404,8 @@ L_08B28778: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28790: @@ -1927,8 +2419,21 @@ L_08B28790: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B287B8u); ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 112u, 0x08B287B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B287B8u) goto L_08B287B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B287B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B287C4u); @@ -1946,8 +2451,21 @@ L_08B287C4: L_08B287D0: aot_gpr_31 = (0x08B287D8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 115u, 0x08B287D8u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B287D8u) goto L_08B287D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B287D8: aot_gpr_4 = (2239u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); @@ -1956,8 +2474,21 @@ L_08B287D8: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08B287F4u); aot_gpr_4 = (aot_gpr_4 + static_cast(21784)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 116u, 0x08B287F4u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B287F4u) goto L_08B287F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B287F4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1968,8 +2499,8 @@ L_08B287F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2880C: @@ -1983,8 +2514,21 @@ L_08B2880C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B28834u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 118u, 0x08B28834u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28834u) goto L_08B28834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28834: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28840u); @@ -2003,8 +2547,21 @@ L_08B28850: aot_gpr_5 = (0u | 29u); aot_gpr_31 = (0x08B28860u); ctx.gpr[6] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 121u, 0x08B28860u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28860u) goto L_08B28860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28860: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2015,8 +2572,8 @@ L_08B28860: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28878: @@ -2028,8 +2585,21 @@ L_08B28878: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B28898u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 123u, 0x08B28898u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28898u) goto L_08B28898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28898: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B288A4u); @@ -2039,16 +2609,29 @@ L_08B28898: L_08B288A4: aot_gpr_31 = (0x08B288ACu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 125u, 0x08B288ACu, 0x08882930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 452u, 0x08882930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B288ACu) goto L_08B288AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B288AC: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B288C0: @@ -2062,8 +2645,21 @@ L_08B288C0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08B288E8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 127u, 0x08B288E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B288E8u) goto L_08B288E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B288E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -2079,8 +2675,21 @@ L_08B288E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), std::bit_cast(aot_fpr_14)); aot_gpr_31 = (0x08B28914u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 128u, 0x08B28914u, 0x08AB4B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 147u, 0x08AB4B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28914u) goto L_08B28914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28914: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2091,8 +2700,8 @@ L_08B28914: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2892C: @@ -2104,8 +2713,21 @@ L_08B2892C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B2894Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 130u, 0x08B2894Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2894Cu) goto L_08B2894C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2894C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28958u); @@ -2117,16 +2739,29 @@ L_08B28958: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B28968u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 132u, 0x08B28968u, 0x08907DB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 890u, 0x08907DB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28968u) goto L_08B28968; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28968: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2897C: @@ -2142,8 +2777,21 @@ L_08B2897C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(92), aot_run_words); } aot_gpr_31 = (0x08B289B4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 134u, 0x08B289B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B289B4u) goto L_08B289B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B289B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B289C0u); @@ -2161,8 +2809,21 @@ L_08B289D0: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B289DCu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 137u, 0x08B289DCu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B289DCu) goto L_08B289DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B289DC: aot_gpr_4 = (16585u << 16u); aot_gpr_4 = (aot_gpr_4 | 4059u); @@ -2225,8 +2886,21 @@ L_08B28A18: L_08B28A28: aot_gpr_31 = (0x08B28A30u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 142u, 0x08B28A30u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28A30u) goto L_08B28A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28A30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2321,8 +2995,21 @@ L_08B28A68: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08B28A90u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 147u, 0x08B28A90u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28A90u) goto L_08B28A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28A90: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -2359,8 +3046,21 @@ L_08B28AD4: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(2260), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B28AE4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 152u, 0x08B28AE4u, 0x08AAF8ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 785u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 785u, 0x08AAF8ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28AE4u) goto L_08B28AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28AE4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[7]{}; @@ -2375,8 +3075,8 @@ L_08B28AE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28B0C: @@ -2390,8 +3090,21 @@ L_08B28B0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B28B34u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 154u, 0x08B28B34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28B34u) goto L_08B28B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28B34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28B40u); @@ -2410,8 +3123,21 @@ L_08B28B40: L_08B28B4C: aot_gpr_31 = (0x08B28B54u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 157u, 0x08B28B54u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28B54u) goto L_08B28B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28B54: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2430,8 +3156,21 @@ L_08B28B5C: L_08B28B68: aot_gpr_31 = (0x08B28B70u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 160u, 0x08B28B70u, 0x0890B608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 854u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 854u, 0x0890B608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28B70u) goto L_08B28B70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28B70: aot_gpr_31 = (0x08B28B78u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -2470,8 +3209,21 @@ L_08B28BA0: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B28BBCu); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 165u, 0x08B28BBCu, 0x0891F338u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 653u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 653u, 0x0891F338u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28BBCu) goto L_08B28BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28BBC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2494,8 +3246,8 @@ L_08B28BD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28BE8: @@ -2511,8 +3263,21 @@ L_08B28BE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B28C18u); ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 169u, 0x08B28C18u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28C18u) goto L_08B28C18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28C18: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28C24u); @@ -2541,8 +3306,8 @@ L_08B28C44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28C60: @@ -2556,8 +3321,21 @@ L_08B28C60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B28C88u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 173u, 0x08B28C88u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28C88u) goto L_08B28C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28C88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28C94u); @@ -2578,14 +3356,40 @@ L_08B28CA4: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08B28CBCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 176u, 0x08B28CBCu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28CBCu) goto L_08B28CBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28CBC: aot_gpr_5 = (0u | 60000u); aot_gpr_31 = (0x08B28CC8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 177u, 0x08B28CC8u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28CC8u) goto L_08B28CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28CC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 | 64u); @@ -2599,8 +3403,8 @@ L_08B28CC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28CEC: @@ -2612,8 +3416,21 @@ L_08B28CEC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B28D0Cu); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 179u, 0x08B28D0Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28D0Cu) goto L_08B28D0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28D0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28D18u); @@ -2654,16 +3471,29 @@ L_08B28D54: L_08B28D5C: aot_gpr_31 = (0x08B28D64u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0129. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 184u, 0x08B28D64u, 0x08A08AE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0129_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0129_entry, 129u, 78u, 0x08A08AE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28D64u) goto L_08B28D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28D64: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28D78: @@ -2677,8 +3507,21 @@ L_08B28D78: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B28DA0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 186u, 0x08B28DA0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28DA0u) goto L_08B28DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28DA0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28DACu); @@ -2689,8 +3532,21 @@ L_08B28DAC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_31 = (0x08B28DB8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 188u, 0x08B28DB8u, 0x08906484u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 501u, 0x08906484u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28DB8u) goto L_08B28DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28DB8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2701,8 +3557,8 @@ L_08B28DB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28DD0: @@ -2716,8 +3572,21 @@ L_08B28DD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B28DF8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 190u, 0x08B28DF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28DF8u) goto L_08B28DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28DF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28E04u); @@ -2741,8 +3610,8 @@ L_08B28E04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28E38: @@ -2756,8 +3625,21 @@ L_08B28E38: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B28E60u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 193u, 0x08B28E60u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28E60u) goto L_08B28E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28E60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28E6Cu); @@ -2800,8 +3682,8 @@ L_08B28E9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28EB4: @@ -2814,8 +3696,21 @@ L_08B28EB4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B28ED8u); ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 199u, 0x08B28ED8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28ED8u) goto L_08B28ED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28ED8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28EE4u); @@ -2828,8 +3723,21 @@ L_08B28EE4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08B28EF8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 201u, 0x08B28EF8u, 0x08863CB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 745u, 0x08863CB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28EF8u) goto L_08B28EF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28EF8: aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -2908,8 +3816,8 @@ L_08B28F7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B28F90: @@ -2923,8 +3831,21 @@ L_08B28F90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B28FB8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 211u, 0x08B28FB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B28FB8u) goto L_08B28FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B28FB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B28FC4u); @@ -2967,8 +3888,8 @@ L_08B28FF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2900C: @@ -2982,8 +3903,21 @@ L_08B2900C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B29034u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 217u, 0x08B29034u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29034u) goto L_08B29034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29034: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29040u); @@ -3126,8 +4060,8 @@ L_08B29130: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29148: @@ -3140,8 +4074,21 @@ L_08B29148: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B29170u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 235u, 0x08B29170u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29170u) goto L_08B29170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29170: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2917Cu); @@ -3367,8 +4314,8 @@ L_08B292BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B292D4: @@ -3382,8 +4329,21 @@ L_08B292D4: ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08B29304u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 248u, 0x08B29304u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29304u) goto L_08B29304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29304: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29310u); @@ -3411,8 +4371,21 @@ L_08B2932C: } aot_gpr_31 = (0x08B29340u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 251u, 0x08B29340u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29340u) goto L_08B29340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29340: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3504,8 +4477,21 @@ L_08B293CC: aot_gpr_5 = (49864u << 16u); aot_gpr_31 = (0x08B293F0u); ctx.fpr[16] = std::bit_cast(aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 261u, 0x08B293F0u, 0x088637CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 662u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 662u, 0x088637CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B293F0u) goto L_08B293F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B293F0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7728))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3525,8 +4511,8 @@ L_08B293FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29418: @@ -3540,8 +4526,21 @@ L_08B29418: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B29448u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 264u, 0x08B29448u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29448u) goto L_08B29448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29448: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29454u); @@ -3638,8 +4637,8 @@ L_08B294F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29514: @@ -3655,8 +4654,21 @@ L_08B29514: ctx.gpr[6] = (0u | 7u); aot_gpr_31 = (0x08B2957Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 275u, 0x08B2957Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2957Cu) goto L_08B2957C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2957C: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -3670,8 +4682,21 @@ L_08B2957C: ctx.gpr[18] = (0u + static_cast(-1)); aot_gpr_31 = (0x08B295A0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 276u, 0x08B295A0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B295A0u) goto L_08B295A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B295A0: ctx.fpr[30] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (16544u << 16u); @@ -3784,8 +4809,21 @@ L_08B29654: L_08B29664: aot_gpr_31 = (0x08B2966Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 290u, 0x08B2966Cu, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2966Cu) goto L_08B2966C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2966C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3830,8 +4868,21 @@ L_08B296A0: } aot_gpr_31 = (0x08B296B8u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 295u, 0x08B296B8u, 0x08863028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 563u, 0x08863028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B296B8u) goto L_08B296B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B296B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3846,8 +4897,21 @@ L_08B296C0: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B296D8u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 297u, 0x08B296D8u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B296D8u) goto L_08B296D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B296D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3885,8 +4949,21 @@ L_08B29714: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B29728u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 302u, 0x08B29728u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29728u) goto L_08B29728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29728: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]); @@ -3904,8 +4981,21 @@ L_08B29740: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B29754u); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 304u, 0x08B29754u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29754u) goto L_08B29754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29754: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_17 | 0u); @@ -3948,8 +5038,8 @@ L_08B29774: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B297C0: @@ -3962,8 +5052,21 @@ L_08B297C0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B29810u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 309u, 0x08B29810u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29810u) goto L_08B29810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29810: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3992,14 +5095,40 @@ L_08B29830: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B29844u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 313u, 0x08B29844u, 0x08A8DB38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 322u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 322u, 0x08A8DB38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29844u) goto L_08B29844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29844: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B29850u); aot_gpr_5 = (ctx.gpr[2] & 65535u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 314u, 0x08B29850u, 0x08A8EA74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 516u, 0x08A8EA74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29850u) goto L_08B29850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29850: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[21] = (ctx.gpr[30] + static_cast(29704)); @@ -4008,15 +5137,41 @@ L_08B29850: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08B2986Cu); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 315u, 0x08B2986Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2986Cu) goto L_08B2986C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2986C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_17 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); aot_gpr_31 = (0x08B2987Cu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 316u, 0x08B2987Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2987Cu) goto L_08B2987C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2987C: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[23] = (aot_gpr_29 + static_cast(16)); @@ -4132,8 +5287,21 @@ L_08B29940: L_08B29950: aot_gpr_31 = (0x08B29958u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 330u, 0x08B29958u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29958u) goto L_08B29958; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29958: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4175,8 +5343,21 @@ L_08B2998C: ctx.gpr[8] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(8))); aot_gpr_31 = (0x08B299A4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 335u, 0x08B299A4u, 0x08863028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 563u, 0x08863028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B299A4u) goto L_08B299A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B299A4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (2u << 16u); @@ -4222,8 +5403,21 @@ L_08B299C8: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_31 = (0x08B299E8u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 339u, 0x08B299E8u, 0x08A8DAA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 313u, 0x08A8DAA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B299E8u) goto L_08B299E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B299E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4259,8 +5453,21 @@ L_08B29A1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B29A30u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 344u, 0x08B29A30u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29A30u) goto L_08B29A30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29A30: aot_gpr_4 = (65532u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); @@ -4280,8 +5487,21 @@ L_08B29A50: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B29A64u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 346u, 0x08B29A64u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29A64u) goto L_08B29A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29A64: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_17 | 0u); @@ -4318,8 +5538,8 @@ L_08B29A80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29AC0: @@ -4332,8 +5552,21 @@ L_08B29AC0: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B29AE8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 350u, 0x08B29AE8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29AE8u) goto L_08B29AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29AE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29AF4u); @@ -4424,8 +5657,8 @@ L_08B29B84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29B9C: @@ -4438,8 +5671,21 @@ L_08B29B9C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B29BC4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 361u, 0x08B29BC4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29BC4u) goto L_08B29BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29BC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29BD0u); @@ -4477,8 +5723,8 @@ L_08B29C0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29C30: @@ -4492,8 +5738,21 @@ L_08B29C30: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B29C60u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 365u, 0x08B29C60u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29C60u) goto L_08B29C60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29C60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29C6Cu); @@ -4584,8 +5843,8 @@ L_08B29CF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29D14: @@ -4598,8 +5857,21 @@ L_08B29D14: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B29D3Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 376u, 0x08B29D3Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29D3Cu) goto L_08B29D3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29D3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29D48u); @@ -4640,8 +5912,8 @@ L_08B29D70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29D88: @@ -4655,8 +5927,21 @@ L_08B29D88: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B29DB8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 382u, 0x08B29DB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29DB8u) goto L_08B29DB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29DB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29DC4u); @@ -4696,8 +5981,21 @@ L_08B29DF0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B29E00u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 387u, 0x08B29E00u, 0x08862E80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 518u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 518u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 518u, 0x08862E80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29E00u) goto L_08B29E00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29E00: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4794,8 +6092,8 @@ L_08B29E90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29EAC: @@ -4809,8 +6107,21 @@ L_08B29EAC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B29EDCu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 399u, 0x08B29EDCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29EDCu) goto L_08B29EDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29EDC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29EE8u); @@ -4917,8 +6228,8 @@ L_08B29F94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B29FB0: @@ -4930,8 +6241,21 @@ L_08B29FB0: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B29FD0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 412u, 0x08B29FD0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B29FD0u) goto L_08B29FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B29FD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B29FDCu); @@ -4948,16 +6272,29 @@ L_08B29FDC: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08B2A000u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 414u, 0x08B2A000u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A000u) goto L_08B2A000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A000: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A014: @@ -4970,8 +6307,21 @@ L_08B2A014: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2A03Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 416u, 0x08B2A03Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A03Cu) goto L_08B2A03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A03C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A048u); @@ -5014,8 +6364,8 @@ L_08B2A078: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A090: @@ -5028,8 +6378,21 @@ L_08B2A090: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2A0B8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 422u, 0x08B2A0B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A0B8u) goto L_08B2A0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A0B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A0C4u); @@ -5077,8 +6440,8 @@ L_08B2A108: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A120: @@ -5091,8 +6454,21 @@ L_08B2A120: ctx.gpr[7] = (ctx.gpr[18] + static_cast(29704)); aot_gpr_31 = (0x08B2A14Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 428u, 0x08B2A14Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A14Cu) goto L_08B2A14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A14C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A158u); @@ -5131,8 +6507,21 @@ L_08B2A174: L_08B2A184: aot_gpr_31 = (0x08B2A18Cu); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 434u, 0x08B2A18Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A18Cu) goto L_08B2A18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A18C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5151,8 +6540,21 @@ L_08B2A194: L_08B2A1A0: aot_gpr_31 = (0x08B2A1A8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 437u, 0x08B2A1A8u, 0x08863DD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 765u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 765u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 765u, 0x08863DD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A1A8u) goto L_08B2A1A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A1A8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5164,8 +6566,21 @@ L_08B2A1B0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2A1BCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 439u, 0x08B2A1BCu, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A1BCu) goto L_08B2A1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A1BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (65532u << 16u); @@ -5180,8 +6595,21 @@ L_08B2A1BC: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x08B2A1F0u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 440u, 0x08B2A1F0u, 0x08882930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 452u, 0x08882930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A1F0u) goto L_08B2A1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A1F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(460))); aot_gpr_5 = (32768u << 16u); @@ -5189,8 +6617,21 @@ L_08B2A1F0: aot_mem.aot_direct_store32(aot_gpr_17 + static_cast(460), aot_gpr_4); aot_gpr_31 = (0x08B2A208u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 441u, 0x08B2A208u, 0x0889358Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 537u, 0x0889358Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A208u) goto L_08B2A208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A208: aot_gpr_31 = (0x08B2A210u); aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5219,8 +6660,21 @@ L_08B2A224: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2A240u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 445u, 0x08B2A240u, 0x0886565Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 331u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 331u, 0x0886565Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A240u) goto L_08B2A240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A240: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -5232,8 +6686,8 @@ L_08B2A240: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A25C: @@ -5246,8 +6700,21 @@ L_08B2A25C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2A284u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 447u, 0x08B2A284u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A284u) goto L_08B2A284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A284: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A290u); @@ -5288,8 +6755,8 @@ L_08B2A2B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A2D0: @@ -5303,8 +6770,21 @@ L_08B2A2D0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2A300u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 453u, 0x08B2A300u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A300u) goto L_08B2A300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A300: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A30Cu); @@ -5318,8 +6798,21 @@ L_08B2A30C: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08B2A324u); ctx.gpr[7] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 455u, 0x08B2A324u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A324u) goto L_08B2A324; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A324: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); if (aot_gpr_4 != 0u) { @@ -5384,26 +6877,91 @@ L_08B2A388: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2A394u); aot_gpr_5 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 464u, 0x08B2A394u, 0x0890EE04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 671u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 671u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 671u, 0x0890EE04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A394u) goto L_08B2A394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A394: aot_gpr_31 = (0x08B2A39Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 465u, 0x08B2A39Cu, 0x08A11208u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 127u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 127u, 0x08A11208u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A39Cu) goto L_08B2A39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A39C: aot_gpr_31 = (0x08B2A3A4u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 466u, 0x08B2A3A4u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A3A4u) goto L_08B2A3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A3A4: aot_gpr_31 = (0x08B2A3ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 467u, 0x08B2A3ACu, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A3ACu) goto L_08B2A3AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A3AC: aot_gpr_31 = (0x08B2A3B4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 468u, 0x08B2A3B4u, 0x0890EF00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 688u, 0x0890EF00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A3B4u) goto L_08B2A3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A3B4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -5415,8 +6973,8 @@ L_08B2A3B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A3D0: @@ -5429,8 +6987,21 @@ L_08B2A3D0: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2A3FCu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 470u, 0x08B2A3FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A3FCu) goto L_08B2A3FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A3FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A408u); @@ -5540,8 +7111,8 @@ L_08B2A4AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A4CC: @@ -5556,8 +7127,21 @@ L_08B2A4CC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2A504u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 484u, 0x08B2A504u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A504u) goto L_08B2A504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A504: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A510u); @@ -5577,8 +7161,21 @@ L_08B2A520: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B2A534u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 487u, 0x08B2A534u, 0x089068C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 571u, 0x089068C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A534u) goto L_08B2A534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A534: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5661,8 +7258,8 @@ L_08B2A5B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A5D4: @@ -5675,8 +7272,21 @@ L_08B2A5D4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2A5FCu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 497u, 0x08B2A5FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A5FCu) goto L_08B2A5FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A5FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A608u); @@ -5696,19 +7306,58 @@ L_08B2A618: aot_gpr_5 = (0u | 18u); aot_gpr_31 = (0x08B2A62Cu); ctx.gpr[6] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 500u, 0x08B2A62Cu, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A62Cu) goto L_08B2A62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A62C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2A638u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 501u, 0x08B2A638u, 0x0892BA54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 878u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 878u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 878u, 0x0892BA54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A638u) goto L_08B2A638; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A638: aot_gpr_31 = (0x08B2A640u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 502u, 0x08B2A640u, 0x08AC7F64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 1089u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 1089u, 0x08AC7F64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A640u) goto L_08B2A640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A640: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5719,8 +7368,8 @@ L_08B2A640: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A658: @@ -5733,8 +7382,21 @@ L_08B2A658: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08B2A680u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 504u, 0x08B2A680u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A680u) goto L_08B2A680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A680: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A68Cu); @@ -5766,8 +7428,21 @@ L_08B2A6AC: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B2A6C0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 508u, 0x08B2A6C0u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A6C0u) goto L_08B2A6C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A6C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5781,8 +7456,21 @@ L_08B2A6C8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B2A6DCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 510u, 0x08B2A6DCu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A6DCu) goto L_08B2A6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A6DC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5793,8 +7481,8 @@ L_08B2A6DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A6F4: @@ -5807,8 +7495,21 @@ L_08B2A6F4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2A71Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 512u, 0x08B2A71Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A71Cu) goto L_08B2A71C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A71C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A728u); @@ -5851,8 +7552,8 @@ L_08B2A758: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A770: @@ -5865,8 +7566,21 @@ L_08B2A770: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2A798u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 518u, 0x08B2A798u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A798u) goto L_08B2A798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A798: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A7A4u); @@ -5966,8 +7680,8 @@ L_08B2A840: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A858: @@ -5979,23 +7693,49 @@ L_08B2A858: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2A878u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 530u, 0x08B2A878u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A878u) goto L_08B2A878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A878: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 << 16u); aot_gpr_31 = (0x08B2A888u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 16u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 531u, 0x08B2A888u, 0x08AB4BCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 152u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 152u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 152u, 0x08AB4BCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A888u) goto L_08B2A888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A888: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A89C: @@ -6009,8 +7749,21 @@ L_08B2A89C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B2A8D0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 533u, 0x08B2A8D0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A8D0u) goto L_08B2A8D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A8D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A8DCu); @@ -6021,8 +7774,21 @@ L_08B2A8DC: aot_gpr_17 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B2A8E8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 535u, 0x08B2A8E8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A8E8u) goto L_08B2A8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A8E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6045,8 +7811,21 @@ L_08B2A8FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08B2A908u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 539u, 0x08B2A908u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A908u) goto L_08B2A908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A908: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -6067,8 +7846,8 @@ L_08B2A91C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A93C: @@ -6080,8 +7859,21 @@ L_08B2A93C: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2A95Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 542u, 0x08B2A95Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A95Cu) goto L_08B2A95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A95C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11836), std::bit_cast(aot_fpr_12)); @@ -6090,8 +7882,8 @@ L_08B2A95C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A978: @@ -6103,8 +7895,21 @@ L_08B2A978: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2A998u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 544u, 0x08B2A998u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A998u) goto L_08B2A998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A998: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11832), aot_gpr_4); @@ -6113,8 +7918,8 @@ L_08B2A998: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2A9B4: @@ -6127,8 +7932,21 @@ L_08B2A9B4: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2A9DCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 546u, 0x08B2A9DCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A9DCu) goto L_08B2A9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A9DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2A9E8u); @@ -6139,8 +7957,21 @@ L_08B2A9E8: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08B2A9F4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 548u, 0x08B2A9F4u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2A9F4u) goto L_08B2A9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2A9F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6221,8 +8052,8 @@ L_08B2AA74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AA8C: @@ -6235,8 +8066,21 @@ L_08B2AA8C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2AAB4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 558u, 0x08B2AAB4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AAB4u) goto L_08B2AAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AAB4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_gpr_4 << 2u); @@ -6259,8 +8103,8 @@ L_08B2AAB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AAFC: @@ -6273,8 +8117,21 @@ L_08B2AAFC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2AB24u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 560u, 0x08B2AB24u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AB24u) goto L_08B2AB24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AB24: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_gpr_4 << 2u); @@ -6298,8 +8155,8 @@ L_08B2AB24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AB70: @@ -6312,8 +8169,21 @@ L_08B2AB70: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08B2AB9Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 562u, 0x08B2AB9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AB9Cu) goto L_08B2AB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AB9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2ABA8u); @@ -6333,15 +8203,41 @@ L_08B2ABB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2ABCCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 565u, 0x08B2ABCCu, 0x0890C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 65u, 0x0890C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ABCCu) goto L_08B2ABCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2ABCC: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(8))); aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2ABDCu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 566u, 0x08B2ABDCu, 0x0890C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 65u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 65u, 0x0890C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ABDCu) goto L_08B2ABDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2ABDC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -6353,8 +8249,8 @@ L_08B2ABDC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2ABF8: @@ -6367,8 +8263,21 @@ L_08B2ABF8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2AC20u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 568u, 0x08B2AC20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AC20u) goto L_08B2AC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AC20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2AC2Cu); @@ -6391,8 +8300,8 @@ L_08B2AC2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AC5C: @@ -6405,8 +8314,21 @@ L_08B2AC5C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2AC84u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 571u, 0x08B2AC84u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AC84u) goto L_08B2AC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AC84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2AC90u); @@ -6463,8 +8385,8 @@ L_08B2ACF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AD08: @@ -6477,8 +8399,21 @@ L_08B2AD08: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2AD30u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 578u, 0x08B2AD30u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AD30u) goto L_08B2AD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AD30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2AD3Cu); @@ -6498,8 +8433,21 @@ L_08B2AD3C: L_08B2AD50: aot_gpr_31 = (0x08B2AD58u); aot_gpr_5 = (0u | 146u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 581u, 0x08B2AD58u, 0x08860424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 16u, 0x08860424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AD58u) goto L_08B2AD58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AD58: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6510,8 +8458,8 @@ L_08B2AD58: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AD70: @@ -6524,8 +8472,21 @@ L_08B2AD70: ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08B2AD98u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 583u, 0x08B2AD98u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AD98u) goto L_08B2AD98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AD98: ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); ctx.fpr[19] = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6583,8 +8544,21 @@ L_08B2AE08: ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[16])); aot_gpr_31 = (0x08B2AE28u); ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[18])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 590u, 0x08B2AE28u, 0x08894B04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 143u, 0x08894B04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AE28u) goto L_08B2AE28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AE28: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6595,8 +8569,8 @@ L_08B2AE28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AE40: @@ -6609,8 +8583,21 @@ L_08B2AE40: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08B2AE68u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 592u, 0x08B2AE68u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AE68u) goto L_08B2AE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AE68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2AE74u); @@ -6638,8 +8625,21 @@ L_08B2AE94: ctx.gpr[6] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B2AEA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 596u, 0x08B2AEA0u, 0x0892BDC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 933u, 0x0892BDC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AEA0u) goto L_08B2AEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AEA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6650,8 +8650,21 @@ L_08B2AEA0: L_08B2AEA8: aot_gpr_31 = (0x08B2AEB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 598u, 0x08B2AEB0u, 0x0892BDC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 933u, 0x0892BDC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AEB0u) goto L_08B2AEB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AEB0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6662,8 +8675,8 @@ L_08B2AEB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AEC8: @@ -6678,8 +8691,21 @@ L_08B2AEC8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2AF04u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 600u, 0x08B2AF04u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AF04u) goto L_08B2AF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AF04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08B2AF10u); @@ -6744,8 +8770,8 @@ L_08B2AF60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AF84: @@ -6758,8 +8784,21 @@ L_08B2AF84: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2AFACu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 610u, 0x08B2AFACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2AFACu) goto L_08B2AFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2AFAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2AFB8u); @@ -6800,8 +8839,8 @@ L_08B2AFE0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2AFF8: @@ -6814,8 +8853,21 @@ L_08B2AFF8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2B020u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 616u, 0x08B2B020u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B020u) goto L_08B2B020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B020: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B02Cu); @@ -6856,8 +8908,8 @@ L_08B2B054: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B06C: @@ -6871,8 +8923,21 @@ L_08B2B06C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2B09Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 622u, 0x08B2B09Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B09Cu) goto L_08B2B09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B09C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B0A8u); @@ -7001,8 +9066,8 @@ L_08B2B168: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B184: @@ -7015,8 +9080,21 @@ L_08B2B184: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2B1ACu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 638u, 0x08B2B1ACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B1ACu) goto L_08B2B1AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B1AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B1B8u); @@ -7121,8 +9199,8 @@ L_08B2B254: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B26C: @@ -7135,8 +9213,21 @@ L_08B2B26C: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2B298u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 651u, 0x08B2B298u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B298u) goto L_08B2B298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B298: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B2A4u); @@ -7148,8 +9239,21 @@ L_08B2B2A4: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08B2B2B4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 653u, 0x08B2B2B4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B2B4u) goto L_08B2B2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B2B4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7248,8 +9352,8 @@ L_08B2B34C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B368: @@ -7263,8 +9367,21 @@ L_08B2B368: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2B398u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 665u, 0x08B2B398u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B398u) goto L_08B2B398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B398: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B3A4u); @@ -7381,8 +9498,8 @@ L_08B2B464: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B480: @@ -7396,8 +9513,21 @@ L_08B2B480: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2B4B0u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 679u, 0x08B2B4B0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B4B0u) goto L_08B2B4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B4B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B4BCu); @@ -7514,8 +9644,8 @@ L_08B2B57C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B598: @@ -7528,8 +9658,21 @@ L_08B2B598: ctx.gpr[6] = (0u | 8u); aot_gpr_31 = (0x08B2B5C0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 693u, 0x08B2B5C0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B5C0u) goto L_08B2B5C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B5C0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B5CCu); @@ -7567,8 +9710,21 @@ L_08B2B5DC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B2B630u); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 696u, 0x08B2B630u, 0x0892C914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 76u, 0x0892C914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B630u) goto L_08B2B630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B630: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7579,8 +9735,8 @@ L_08B2B630: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B648: @@ -7592,8 +9748,21 @@ L_08B2B648: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2B668u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 698u, 0x08B2B668u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B668u) goto L_08B2B668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B668: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B674u); @@ -7619,8 +9788,21 @@ L_08B2B680: L_08B2B68C: aot_gpr_31 = (0x08B2B694u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0066. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 702u, 0x08B2B694u, 0x0890EAA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0066_entry(rt, ctx, 636u, aot_mem); +#else + recomp_unit_0066_entry(rt, ctx, 636u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0066_entry, 66u, 636u, 0x0890EAA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B694u) goto L_08B2B694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B694: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (0u + static_cast(-257)); @@ -7648,8 +9830,8 @@ L_08B2B6C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B6D4: @@ -7662,8 +9844,21 @@ L_08B2B6D4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2B6FCu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 707u, 0x08B2B6FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B6FCu) goto L_08B2B6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B6FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B708u); @@ -7723,8 +9918,8 @@ L_08B2B764: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B77C: @@ -7736,8 +9931,21 @@ L_08B2B77C: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2B79Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 715u, 0x08B2B79Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B79Cu) goto L_08B2B79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B79C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2B7A8u); @@ -7762,8 +9970,8 @@ L_08B2B7BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2B7D0: @@ -7778,16 +9986,42 @@ L_08B2B7D0: ctx.gpr[6] = (0u | 9u); aot_gpr_31 = (0x08B2B824u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 720u, 0x08B2B824u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B824u) goto L_08B2B824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B824: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); ctx.gpr[19] = (0u + static_cast(-1)); aot_gpr_31 = (0x08B2B838u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 721u, 0x08B2B838u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B838u) goto L_08B2B838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B838: ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (16672u << 16u); @@ -7907,8 +10141,21 @@ L_08B2B8F8: } aot_gpr_31 = (0x08B2B918u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 735u, 0x08B2B918u, 0x08862F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 534u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 534u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 534u, 0x08862F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B918u) goto L_08B2B918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B918: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7928,8 +10175,21 @@ L_08B2B920: L_08B2B930: aot_gpr_31 = (0x08B2B938u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 738u, 0x08B2B938u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B938u) goto L_08B2B938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B938: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); @@ -8001,8 +10261,21 @@ L_08B2B990: } aot_gpr_31 = (0x08B2B9A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 747u, 0x08B2B9A8u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B9A8u) goto L_08B2B9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B9A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8040,8 +10313,21 @@ L_08B2B9E4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2B9F8u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 752u, 0x08B2B9F8u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2B9F8u) goto L_08B2B9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2B9F8: aot_gpr_4 = (65532u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-1)); @@ -8061,8 +10347,21 @@ L_08B2BA18: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2BA2Cu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 754u, 0x08B2BA2Cu, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BA2Cu) goto L_08B2BA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BA2C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -8098,8 +10397,8 @@ L_08B2BA48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2BA84: @@ -8113,8 +10412,21 @@ L_08B2BA84: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2BAB4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 758u, 0x08B2BAB4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BAB4u) goto L_08B2BAB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BAB4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2BAC0u); @@ -8231,8 +10543,8 @@ L_08B2BB6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2BB88: @@ -8246,8 +10558,21 @@ L_08B2BB88: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2BBB8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 774u, 0x08B2BBB8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BBB8u) goto L_08B2BBB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BBB8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2BBC4u); @@ -8280,8 +10605,8 @@ L_08B2BBF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2BC10: @@ -8294,8 +10619,21 @@ L_08B2BC10: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2BC3Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 778u, 0x08B2BC3Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BC3Cu) goto L_08B2BC3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BC3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2BC48u); @@ -8307,8 +10645,21 @@ L_08B2BC48: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08B2BC58u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 780u, 0x08B2BC58u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BC58u) goto L_08B2BC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BC58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8411,8 +10762,8 @@ L_08B2BCF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2BD14: @@ -8427,8 +10778,21 @@ L_08B2BD14: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2BD50u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 793u, 0x08B2BD50u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BD50u) goto L_08B2BD50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BD50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2BD5Cu); @@ -8474,8 +10838,21 @@ L_08B2BDAC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B2BDB8u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 798u, 0x08B2BDB8u, 0x089068C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 571u, 0x089068C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BDB8u) goto L_08B2BDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BDB8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8576,8 +10953,8 @@ L_08B2BE5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2BE7C: @@ -8589,8 +10966,21 @@ L_08B2BE7C: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2BE9Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 810u, 0x08B2BE9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BE9Cu) goto L_08B2BE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BE9C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(aot_fpr_12)); @@ -8611,8 +11001,8 @@ L_08B2BEC0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2BED8: @@ -8625,8 +11015,21 @@ L_08B2BED8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2BF00u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 813u, 0x08B2BF00u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BF00u) goto L_08B2BF00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BF00: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2BF0Cu); @@ -8645,8 +11048,8 @@ L_08B2BF0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2BF2C: @@ -8659,8 +11062,21 @@ L_08B2BF2C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2BF54u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 816u, 0x08B2BF54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BF54u) goto L_08B2BF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BF54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2BF60u); @@ -8680,8 +11096,21 @@ L_08B2BF60: L_08B2BF70: aot_gpr_31 = (0x08B2BF78u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 819u, 0x08B2BF78u, 0x08A067DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 631u, 0x08A067DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BF78u) goto L_08B2BF78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BF78: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8692,8 +11121,21 @@ L_08B2BF78: L_08B2BF80: aot_gpr_31 = (0x08B2BF88u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 821u, 0x08B2BF88u, 0x08A067DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 631u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 631u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 631u, 0x08A067DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BF88u) goto L_08B2BF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BF88: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -8704,8 +11146,8 @@ L_08B2BF88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2BFA0: @@ -8717,8 +11159,21 @@ L_08B2BFA0: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2BFC0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 823u, 0x08B2BFC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BFC0u) goto L_08B2BFC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BFC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2BFCCu); @@ -8747,13 +11202,39 @@ L_08B2BFE0: L_08B2BFEC: aot_gpr_31 = (0x08B2BFF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 828u, 0x08B2BFF4u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BFF4u) goto L_08B2BFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BFF4: aot_gpr_31 = (0x08B2BFFCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0201->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0201_entry, 829u, 0x08B2BFFCu, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2BFFCu) goto L_08B2BFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2BFFC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), 0u); ctx.pc = 0x08B2C000u; AOT_REGCACHE_SYNC_OUT(); return; diff --git a/profiles/vcs/generated/generated_unit_0202.cpp b/profiles/vcs/generated/generated_unit_0202.cpp index c9d74a3..65951cb 100644 --- a/profiles/vcs/generated/generated_unit_0202.cpp +++ b/profiles/vcs/generated/generated_unit_0202.cpp @@ -857,6 +857,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B2C000u; + if (local_delta_v813 >= 16344u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -876,21 +900,47 @@ L_08B2C000: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08B2C014u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 2u, 0x08B2C014u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C014u) goto L_08B2C014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C014: aot_gpr_31 = (0x08B2C01Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 3u, 0x08B2C01Cu, 0x0890849Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 79u, 0x0890849Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C01Cu) goto L_08B2C01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C01C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C030: @@ -904,8 +954,21 @@ L_08B2C030: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2C060u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 5u, 0x08B2C060u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C060u) goto L_08B2C060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C060: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C06Cu); @@ -1015,8 +1078,8 @@ L_08B2C10C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C128: @@ -1031,8 +1094,21 @@ L_08B2C128: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08B2C160u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 19u, 0x08B2C160u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C160u) goto L_08B2C160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C160: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C16Cu); @@ -1045,8 +1121,21 @@ L_08B2C16C: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B2C180u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0060. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 21u, 0x08B2C180u, 0x088F7DF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0060_entry(rt, ctx, 869u, aot_mem); +#else + recomp_unit_0060_entry(rt, ctx, 869u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0060_entry, 60u, 869u, 0x088F7DF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C180u) goto L_08B2C180; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C180: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), aot_gpr_4); @@ -1072,8 +1161,8 @@ L_08B2C1A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C1C8: @@ -1086,8 +1175,21 @@ L_08B2C1C8: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2C1F0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 24u, 0x08B2C1F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C1F0u) goto L_08B2C1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C1F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C1FCu); @@ -1185,8 +1287,8 @@ L_08B2C294: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C2AC: @@ -1201,8 +1303,21 @@ L_08B2C2AC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2C2E4u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 36u, 0x08B2C2E4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C2E4u) goto L_08B2C2E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C2E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C2F0u); @@ -1222,8 +1337,21 @@ L_08B2C2F0: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(4), aot_gpr_4); aot_gpr_31 = (0x08B2C320u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(29704))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0059. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 38u, 0x08B2C320u, 0x088F2CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0059_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0059_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0059_entry, 59u, 587u, 0x088F2CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C320u) goto L_08B2C320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C320: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -1244,8 +1372,8 @@ L_08B2C334: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C354: @@ -1260,8 +1388,21 @@ L_08B2C354: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08B2C38Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 41u, 0x08B2C38Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C38Cu) goto L_08B2C38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C38C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C398u); @@ -1375,8 +1516,8 @@ L_08B2C410: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C430: @@ -1389,8 +1530,21 @@ L_08B2C430: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2C458u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 46u, 0x08B2C458u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C458u) goto L_08B2C458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C458: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C464u); @@ -1486,8 +1640,8 @@ L_08B2C508: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C520: @@ -1500,8 +1654,21 @@ L_08B2C520: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2C548u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 57u, 0x08B2C548u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C548u) goto L_08B2C548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C548: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C554u); @@ -1535,8 +1702,21 @@ L_08B2C574: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(236), aot_gpr_4); aot_gpr_31 = (0x08B2C58Cu); aot_gpr_4 = (aot_gpr_16 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0001. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 61u, 0x08B2C58Cu, 0x08809958u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); +#else + recomp_unit_0001_entry(rt, ctx, 321u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0001_entry, 1u, 321u, 0x08809958u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C58Cu) goto L_08B2C58C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C58C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1570,8 +1750,8 @@ L_08B2C5C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C5D8: @@ -1584,8 +1764,21 @@ L_08B2C5D8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2C600u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 65u, 0x08B2C600u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C600u) goto L_08B2C600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C600: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C60Cu); @@ -1628,8 +1821,8 @@ L_08B2C63C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C654: @@ -1643,8 +1836,21 @@ L_08B2C654: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2C684u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 71u, 0x08B2C684u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C684u) goto L_08B2C684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C684: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C690u); @@ -1673,8 +1879,8 @@ L_08B2C6B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C6CC: @@ -1687,8 +1893,21 @@ L_08B2C6CC: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08B2C6F4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 75u, 0x08B2C6F4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C6F4u) goto L_08B2C6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C6F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C700u); @@ -1712,8 +1931,21 @@ L_08B2C710: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2C72Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 78u, 0x08B2C72Cu, 0x089AB1F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 654u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 654u, 0x089AB1F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C72Cu) goto L_08B2C72C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C72C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1725,8 +1957,21 @@ L_08B2C734: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2C740u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 80u, 0x08B2C740u, 0x089AB4FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 696u, 0x089AB4FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C740u) goto L_08B2C740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C740: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(460))); aot_gpr_5 = (0u + static_cast(-4097)); @@ -1743,8 +1988,8 @@ L_08B2C750: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C768: @@ -1756,8 +2001,21 @@ L_08B2C768: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2C788u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 83u, 0x08B2C788u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C788u) goto L_08B2C788; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C788: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C794u); @@ -1767,16 +2025,29 @@ L_08B2C788: L_08B2C794: aot_gpr_31 = (0x08B2C79Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 85u, 0x08B2C79Cu, 0x089AB948u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 766u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 766u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 766u, 0x089AB948u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C79Cu) goto L_08B2C79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C79C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C7B0: @@ -1789,8 +2060,21 @@ L_08B2C7B0: ctx.gpr[6] = (0u | 8u); aot_gpr_31 = (0x08B2C7D8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 87u, 0x08B2C7D8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C7D8u) goto L_08B2C7D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C7D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C7E4u); @@ -1828,8 +2112,21 @@ L_08B2C7F4: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B2C848u); ctx.gpr[6] = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 90u, 0x08B2C848u, 0x0892C914u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 76u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 76u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 76u, 0x0892C914u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C848u) goto L_08B2C848; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C848: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1840,8 +2137,8 @@ L_08B2C848: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C860: @@ -1854,8 +2151,21 @@ L_08B2C860: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08B2C888u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 92u, 0x08B2C888u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C888u) goto L_08B2C888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C888: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C894u); @@ -1913,8 +2223,8 @@ L_08B2C8E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C900: @@ -1927,8 +2237,21 @@ L_08B2C900: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2C928u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 100u, 0x08B2C928u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2C928u) goto L_08B2C928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2C928: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2C934u); @@ -2018,8 +2341,8 @@ L_08B2C9C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2C9D8: @@ -2034,8 +2357,21 @@ L_08B2C9D8: ctx.gpr[6] = (0u | 5u); aot_gpr_31 = (0x08B2CA0Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 111u, 0x08B2CA0Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CA0Cu) goto L_08B2CA0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CA0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2CA18u); @@ -2058,8 +2394,21 @@ L_08B2CA18: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[15])); aot_gpr_31 = (0x08B2CA4Cu); ctx.gpr[6] = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 113u, 0x08B2CA4Cu, 0x08891FDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 302u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 302u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 302u, 0x08891FDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CA4Cu) goto L_08B2CA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CA4C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2148,8 +2497,8 @@ L_08B2CADC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2CAF4: @@ -2162,8 +2511,21 @@ L_08B2CAF4: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08B2CB1Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 124u, 0x08B2CB1Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CB1Cu) goto L_08B2CB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CB1C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2CB28u); @@ -2208,8 +2570,8 @@ L_08B2CB60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2CB78: @@ -2223,8 +2585,21 @@ L_08B2CB78: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2CBACu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 130u, 0x08B2CBACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CBACu) goto L_08B2CBAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CBAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2CBB8u); @@ -2268,8 +2643,21 @@ L_08B2CBEC: L_08B2CBF0: aot_gpr_31 = (0x08B2CBF8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 137u, 0x08B2CBF8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CBF8u) goto L_08B2CBF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CBF8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2361,8 +2749,8 @@ L_08B2CC88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2CCA8: @@ -2376,8 +2764,21 @@ L_08B2CCA8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2CCD8u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 148u, 0x08B2CCD8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CCD8u) goto L_08B2CCD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CCD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2CCE4u); @@ -2489,8 +2890,8 @@ L_08B2CD90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2CDAC: @@ -2503,8 +2904,21 @@ L_08B2CDAC: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2CDD4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 162u, 0x08B2CDD4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CDD4u) goto L_08B2CDD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CDD4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2CDE0u); @@ -2604,8 +3018,8 @@ L_08B2CE80: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2CE98: @@ -2618,8 +3032,21 @@ L_08B2CE98: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2CEC0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 174u, 0x08B2CEC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CEC0u) goto L_08B2CEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CEC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2CECCu); @@ -2662,8 +3089,8 @@ L_08B2CEFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2CF14: @@ -2676,8 +3103,21 @@ L_08B2CF14: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2CF3Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 180u, 0x08B2CF3Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CF3Cu) goto L_08B2CF3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CF3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2CF48u); @@ -2695,8 +3135,21 @@ L_08B2CF48: } L_08B2CF58: aot_gpr_31 = (0x08B2CF60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 183u, 0x08B2CF60u, 0x0890BA20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 912u, 0x0890BA20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CF60u) goto L_08B2CF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CF60: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2706,8 +3159,21 @@ L_08B2CF60: } L_08B2CF68: aot_gpr_31 = (0x08B2CF70u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 185u, 0x08B2CF70u, 0x0890BB1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 925u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 925u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 925u, 0x0890BB1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CF70u) goto L_08B2CF70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CF70: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2718,8 +3184,8 @@ L_08B2CF70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2CF88: @@ -2732,8 +3198,21 @@ L_08B2CF88: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2CFB0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 187u, 0x08B2CFB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2CFB0u) goto L_08B2CFB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2CFB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2CFBCu); @@ -2774,8 +3253,8 @@ L_08B2CFE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2CFFC: @@ -2787,8 +3266,21 @@ L_08B2CFFC: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2D01Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 193u, 0x08B2D01Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D01Cu) goto L_08B2D01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D01C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D028u); @@ -2798,16 +3290,29 @@ L_08B2D01C: L_08B2D028: aot_gpr_31 = (0x08B2D030u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0073. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 195u, 0x08B2D030u, 0x08929C28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0073_entry(rt, ctx, 396u, aot_mem); +#else + recomp_unit_0073_entry(rt, ctx, 396u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0073_entry, 73u, 396u, 0x08929C28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D030u) goto L_08B2D030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D030: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D044: @@ -2821,8 +3326,21 @@ L_08B2D044: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2D078u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 197u, 0x08B2D078u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D078u) goto L_08B2D078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D078: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D084u); @@ -2841,8 +3359,21 @@ L_08B2D094: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08B2D0A4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 200u, 0x08B2D0A4u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D0A4u) goto L_08B2D0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D0A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2861,8 +3392,21 @@ L_08B2D0AC: L_08B2D0B8: aot_gpr_31 = (0x08B2D0C0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 203u, 0x08B2D0C0u, 0x08A66C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D0C0u) goto L_08B2D0C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D0C0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -2885,8 +3429,21 @@ L_08B2D0D8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B2D0E4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 206u, 0x08B2D0E4u, 0x08A66C04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 587u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 587u, 0x08A66C04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D0E4u) goto L_08B2D0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D0E4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(524))); aot_gpr_4 = (0u < aot_gpr_4 ? 1u : 0u); @@ -2969,8 +3526,8 @@ L_08B2D160: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D180: @@ -2984,8 +3541,21 @@ L_08B2D180: ctx.gpr[6] = (0u | 6u); aot_gpr_31 = (0x08B2D1D4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 216u, 0x08B2D1D4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D1D4u) goto L_08B2D1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D1D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D1E0u); @@ -3110,8 +3680,21 @@ L_08B2D2B0: ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08B2D2CCu); ctx.fpr[17] = std::bit_cast(std::bit_cast(aot_fpr_30)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 230u, 0x08B2D2CCu, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D2CCu) goto L_08B2D2CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D2CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3212,8 +3795,8 @@ L_08B2D354: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D394: @@ -3226,8 +3809,21 @@ L_08B2D394: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2D3BCu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 242u, 0x08B2D3BCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D3BCu) goto L_08B2D3BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D3BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D3C8u); @@ -3268,8 +3864,8 @@ L_08B2D3F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D408: @@ -3281,8 +3877,21 @@ L_08B2D408: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2D428u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 248u, 0x08B2D428u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D428u) goto L_08B2D428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D428: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D434u); @@ -3306,8 +3915,8 @@ L_08B2D444: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D458: @@ -3322,8 +3931,21 @@ L_08B2D458: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B2D49Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 253u, 0x08B2D49Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D49Cu) goto L_08B2D49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D49C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08B2D4A8u); @@ -3335,8 +3957,21 @@ L_08B2D4A8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B2D4B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 255u, 0x08B2D4B8u, 0x089CA714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 641u, 0x089CA714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D4B8u) goto L_08B2D4B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D4B8: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3350,8 +3985,21 @@ L_08B2D4C4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2D4D4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 257u, 0x08B2D4D4u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D4D4u) goto L_08B2D4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D4D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(456))); aot_gpr_5 = (65532u << 16u); @@ -3401,33 +4049,98 @@ L_08B2D534: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2D54Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 260u, 0x08B2D54Cu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D54Cu) goto L_08B2D54C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D54C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2D558u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 261u, 0x08B2D558u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D558u) goto L_08B2D558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D558: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2D564u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 262u, 0x08B2D564u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D564u) goto L_08B2D564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D564: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B2D574u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 263u, 0x08B2D574u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D574u) goto L_08B2D574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D574: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B2D580u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 264u, 0x08B2D580u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D580u) goto L_08B2D580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D580: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -3460,14 +4173,40 @@ L_08B2D5B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B2D5CCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 268u, 0x08B2D5CCu, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D5CCu) goto L_08B2D5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D5CC: aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_31 = (0x08B2D5D8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 269u, 0x08B2D5D8u, 0x08B26CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 540u, 0x08B26CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D5D8u) goto L_08B2D5D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D5D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D5E4u); @@ -3497,8 +4236,21 @@ L_08B2D604: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2D61Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 273u, 0x08B2D61Cu, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D61Cu) goto L_08B2D61C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D61C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3530,8 +4282,8 @@ L_08B2D63C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D668: @@ -3546,8 +4298,21 @@ L_08B2D668: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2D6A8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 277u, 0x08B2D6A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D6A8u) goto L_08B2D6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D6A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08B2D6B4u); @@ -3559,8 +4324,21 @@ L_08B2D6B4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2D6C4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 279u, 0x08B2D6C4u, 0x089CA714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 641u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 641u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 641u, 0x089CA714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D6C4u) goto L_08B2D6C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D6C4: aot_gpr_17 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_17 == 0u; @@ -3573,8 +4351,21 @@ L_08B2D6D0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2D6DCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 281u, 0x08B2D6DCu, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D6DCu) goto L_08B2D6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D6DC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(456))); aot_gpr_5 = (65532u << 16u); @@ -3624,8 +4415,21 @@ L_08B2D73C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B2D754u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 284u, 0x08B2D754u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D754u) goto L_08B2D754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D754: aot_mem.aot_direct_store8(aot_gpr_17 + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); @@ -3639,8 +4443,21 @@ L_08B2D764: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2D770u); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 286u, 0x08B2D770u, 0x08B000ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 10u, 0x08B000ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D770u) goto L_08B2D770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D770: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3654,38 +4471,116 @@ L_08B2D778: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2D78Cu); aot_gpr_5 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 288u, 0x08B2D78Cu, 0x08B00214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 24u, 0x08B00214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D78Cu) goto L_08B2D78C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D78C: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2D798u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 289u, 0x08B2D798u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D798u) goto L_08B2D798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D798: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2D7A4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 290u, 0x08B2D7A4u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7A4u) goto L_08B2D7A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D7A4: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2D7B0u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 291u, 0x08B2D7B0u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7B0u) goto L_08B2D7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D7B0: aot_gpr_4 = (aot_gpr_17 | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2D7C0u); ctx.gpr[6] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 292u, 0x08B2D7C0u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7C0u) goto L_08B2D7C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D7C0: aot_gpr_31 = (0x08B2D7C8u); aot_gpr_4 = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 293u, 0x08B2D7C8u, 0x08B26CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 540u, 0x08B26CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D7C8u) goto L_08B2D7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D7C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D7D4u); @@ -3715,8 +4610,21 @@ L_08B2D7F4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2D80Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 297u, 0x08B2D80Cu, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D80Cu) goto L_08B2D80C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D80C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3747,8 +4655,8 @@ L_08B2D82C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D854: @@ -3761,8 +4669,21 @@ L_08B2D854: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2D87Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 301u, 0x08B2D87Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D87Cu) goto L_08B2D87C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D87C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D888u); @@ -3803,8 +4724,8 @@ L_08B2D8B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D8C8: @@ -3817,8 +4738,21 @@ L_08B2D8C8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2D8F0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 307u, 0x08B2D8F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D8F0u) goto L_08B2D8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D8F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D8FCu); @@ -3859,8 +4793,8 @@ L_08B2D924: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D93C: @@ -3873,8 +4807,21 @@ L_08B2D93C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2D964u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 313u, 0x08B2D964u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D964u) goto L_08B2D964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D964: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D970u); @@ -3915,8 +4862,8 @@ L_08B2D998: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2D9B0: @@ -3929,8 +4876,21 @@ L_08B2D9B0: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2D9DCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 319u, 0x08B2D9DCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D9DCu) goto L_08B2D9DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D9DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2D9E8u); @@ -3942,8 +4902,21 @@ L_08B2D9E8: aot_gpr_17 = (0u | 0u); aot_gpr_31 = (0x08B2D9F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 321u, 0x08B2D9F8u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2D9F8u) goto L_08B2D9F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2D9F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3961,8 +4934,21 @@ L_08B2DA00: } L_08B2DA0C: aot_gpr_31 = (0x08B2DA14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 324u, 0x08B2DA14u, 0x08B01BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 456u, 0x08B01BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DA14u) goto L_08B2DA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DA14: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4054,8 +5040,8 @@ L_08B2DAA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2DAC4: @@ -4068,8 +5054,21 @@ L_08B2DAC4: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2DAECu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 335u, 0x08B2DAECu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DAECu) goto L_08B2DAEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DAEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2DAF8u); @@ -4157,8 +5156,8 @@ L_08B2DB7C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2DB94: @@ -4171,8 +5170,21 @@ L_08B2DB94: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2DBBCu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 346u, 0x08B2DBBCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DBBCu) goto L_08B2DBBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DBBC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2DBC8u); @@ -4262,8 +5274,8 @@ L_08B2DC54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2DC6C: @@ -4276,8 +5288,21 @@ L_08B2DC6C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2DC94u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 357u, 0x08B2DC94u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DC94u) goto L_08B2DC94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DC94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2DCA0u); @@ -4337,8 +5362,8 @@ L_08B2DD08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2DD20: @@ -4350,8 +5375,21 @@ L_08B2DD20: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2DD40u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 364u, 0x08B2DD40u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DD40u) goto L_08B2DD40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DD40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2DD4Cu); @@ -4392,8 +5430,21 @@ L_08B2DD70: L_08B2DD7C: aot_gpr_31 = (0x08B2DD84u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 370u, 0x08B2DD84u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DD84u) goto L_08B2DD84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DD84: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(2228))); aot_gpr_5 = (0u | 61u); @@ -4414,19 +5465,58 @@ L_08B2DD94: L_08B2DD9C: aot_gpr_31 = (0x08B2DDA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 373u, 0x08B2DDA4u, 0x089AA5B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 441u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 441u, 0x089AA5B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDA4u) goto L_08B2DDA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DDA4: aot_gpr_31 = (0x08B2DDACu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 374u, 0x08B2DDACu, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDACu) goto L_08B2DDAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DDAC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2DDB8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 375u, 0x08B2DDB8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDB8u) goto L_08B2DDB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DDB8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2DDC4u); @@ -4449,8 +5539,21 @@ L_08B2DDD0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(456), aot_gpr_4); aot_gpr_31 = (0x08B2DDF4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 378u, 0x08B2DDF4u, 0x08909880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 410u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 410u, 0x08909880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DDF4u) goto L_08B2DDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DDF4: aot_gpr_31 = (0x08B2DDFCu); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4487,8 +5590,21 @@ L_08B2DE30: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2DE3Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 383u, 0x08B2DE3Cu, 0x08911138u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 304u, 0x08911138u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DE3Cu) goto L_08B2DE3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DE3C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(776))); @@ -4498,8 +5614,21 @@ L_08B2DE44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2DE54u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 385u, 0x08B2DE54u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DE54u) goto L_08B2DE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DE54: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_5 = (57344u << 16u); @@ -4513,8 +5642,8 @@ L_08B2DE68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2DE7C: @@ -4526,8 +5655,21 @@ L_08B2DE7C: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2DE9Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 388u, 0x08B2DE9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DE9Cu) goto L_08B2DE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DE9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2DEA8u); @@ -4545,24 +5687,50 @@ L_08B2DEA8: } L_08B2DEB8: aot_gpr_31 = (0x08B2DEC0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 391u, 0x08B2DEC0u, 0x08A01528u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 371u, 0x08A01528u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DEC0u) goto L_08B2DEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DEC0: ctx.gpr[6] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1340))); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2DED4u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0127. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 392u, 0x08B2DED4u, 0x08A02EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); +#else + recomp_unit_0127_entry(rt, ctx, 746u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0127_entry, 127u, 746u, 0x08A02EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DED4u) goto L_08B2DED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DED4: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2DEE8: @@ -4575,8 +5743,21 @@ L_08B2DEE8: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2DF10u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 394u, 0x08B2DF10u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DF10u) goto L_08B2DF10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DF10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2DF1Cu); @@ -4667,8 +5848,8 @@ L_08B2DFAC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2DFC4: @@ -4682,8 +5863,21 @@ L_08B2DFC4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2DFF4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 405u, 0x08B2DFF4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2DFF4u) goto L_08B2DFF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2DFF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2E000u); @@ -4715,16 +5909,42 @@ L_08B2E028: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2E034u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 409u, 0x08B2E034u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E034u) goto L_08B2E034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E034: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(76))); aot_gpr_4 = (aot_gpr_4 | 2048u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(76), aot_gpr_4); aot_gpr_31 = (0x08B2E048u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 410u, 0x08B2E048u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E048u) goto L_08B2E048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E048: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4780,8 +6000,21 @@ L_08B2E09C: L_08B2E0A4: aot_gpr_31 = (0x08B2E0ACu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 417u, 0x08B2E0ACu, 0x08A66048u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E0ACu) goto L_08B2E0AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E0AC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -4793,8 +6026,8 @@ L_08B2E0AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E0C8: @@ -4807,8 +6040,21 @@ L_08B2E0C8: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2E0F0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 419u, 0x08B2E0F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E0F0u) goto L_08B2E0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E0F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2E0FCu); @@ -4898,8 +6144,8 @@ L_08B2E188: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E1A0: @@ -4914,8 +6160,21 @@ L_08B2E1A0: ctx.gpr[6] = (0u | 7u); aot_gpr_31 = (0x08B2E204u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 430u, 0x08B2E204u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E204u) goto L_08B2E204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E204: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -4929,8 +6188,21 @@ L_08B2E204: ctx.gpr[18] = (0u + static_cast(-1)); aot_gpr_31 = (0x08B2E228u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 431u, 0x08B2E228u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E228u) goto L_08B2E228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E228: aot_fpr_30 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_4 = (16544u << 16u); @@ -5044,8 +6316,21 @@ L_08B2E2E0: L_08B2E2F0: aot_gpr_31 = (0x08B2E2F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 445u, 0x08B2E2F8u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E2F8u) goto L_08B2E2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E2F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5108,8 +6393,21 @@ L_08B2E348: } aot_gpr_31 = (0x08B2E360u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 452u, 0x08B2E360u, 0x08863028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 563u, 0x08863028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E360u) goto L_08B2E360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E360: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (2u << 16u); @@ -5142,8 +6440,21 @@ L_08B2E384: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B2E39Cu); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 456u, 0x08B2E39Cu, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E39Cu) goto L_08B2E39C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E39C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5181,8 +6492,21 @@ L_08B2E3D8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2E3ECu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 461u, 0x08B2E3ECu, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E3ECu) goto L_08B2E3EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E3EC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]); @@ -5200,8 +6524,21 @@ L_08B2E404: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2E418u); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 463u, 0x08B2E418u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E418u) goto L_08B2E418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E418: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5244,8 +6581,8 @@ L_08B2E438: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E484: @@ -5258,8 +6595,21 @@ L_08B2E484: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2E4ACu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 468u, 0x08B2E4ACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E4ACu) goto L_08B2E4AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E4AC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_4 = (aot_gpr_4 + static_cast(7)); @@ -5267,8 +6617,21 @@ L_08B2E4AC: aot_gpr_5 = (0u < aot_gpr_5 ? 1u : 0u); aot_gpr_31 = (0x08B2E4C4u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 469u, 0x08B2E4C4u, 0x08A87734u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 531u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 531u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 531u, 0x08A87734u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E4C4u) goto L_08B2E4C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E4C4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -5279,8 +6642,8 @@ L_08B2E4C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E4DC: @@ -5293,8 +6656,21 @@ L_08B2E4DC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2E504u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 471u, 0x08B2E504u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E504u) goto L_08B2E504; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E504: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2E510u); @@ -5345,8 +6721,8 @@ L_08B2E560: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E578: @@ -5360,8 +6736,21 @@ L_08B2E578: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2E5A4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 477u, 0x08B2E5A4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E5A4u) goto L_08B2E5A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E5A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2E5B0u); @@ -5469,8 +6858,8 @@ L_08B2E654: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E668: @@ -5483,8 +6872,21 @@ L_08B2E668: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2E690u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 491u, 0x08B2E690u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E690u) goto L_08B2E690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E690: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2E69Cu); @@ -5513,8 +6915,8 @@ L_08B2E69C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E6E4: @@ -5527,8 +6929,21 @@ L_08B2E6E4: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2E70Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 494u, 0x08B2E70Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E70Cu) goto L_08B2E70C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E70C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2E718u); @@ -5557,8 +6972,8 @@ L_08B2E718: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E760: @@ -5574,8 +6989,21 @@ L_08B2E760: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08B2E7C8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 497u, 0x08B2E7C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E7C8u) goto L_08B2E7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E7C8: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -5589,8 +7017,21 @@ L_08B2E7C8: ctx.gpr[18] = (0u + static_cast(-1)); aot_gpr_31 = (0x08B2E7ECu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 498u, 0x08B2E7ECu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E7ECu) goto L_08B2E7EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E7EC: aot_fpr_30 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[30] = (32768u << 16u); @@ -5723,8 +7164,21 @@ L_08B2E8C8: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B2E8E0u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 514u, 0x08B2E8E0u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E8E0u) goto L_08B2E8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E8E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5762,8 +7216,21 @@ L_08B2E91C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2E930u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 519u, 0x08B2E930u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E930u) goto L_08B2E930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E930: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[23]); @@ -5781,8 +7248,21 @@ L_08B2E948: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2E95Cu); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 521u, 0x08B2E95Cu, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E95Cu) goto L_08B2E95C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E95C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_17 | 0u); @@ -5825,8 +7305,8 @@ L_08B2E97C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2E9C8: @@ -5839,8 +7319,21 @@ L_08B2E9C8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2E9F0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 526u, 0x08B2E9F0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2E9F0u) goto L_08B2E9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2E9F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2E9FCu); @@ -5866,8 +7359,8 @@ L_08B2E9FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2EA38: @@ -5880,8 +7373,21 @@ L_08B2EA38: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2EA60u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 529u, 0x08B2EA60u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EA60u) goto L_08B2EA60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EA60: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2EA6Cu); @@ -5971,8 +7477,8 @@ L_08B2EAF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2EB10: @@ -5985,8 +7491,21 @@ L_08B2EB10: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2EB38u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 540u, 0x08B2EB38u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EB38u) goto L_08B2EB38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EB38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2EB44u); @@ -6009,8 +7528,21 @@ L_08B2EB54: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B2EB74u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 543u, 0x08B2EB74u, 0x0891ECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 550u, 0x0891ECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EB74u) goto L_08B2EB74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EB74: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6021,8 +7553,8 @@ L_08B2EB74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2EB8C: @@ -6036,8 +7568,21 @@ L_08B2EB8C: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B2EBC0u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 545u, 0x08B2EBC0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EBC0u) goto L_08B2EBC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EBC0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2EBCCu); @@ -6116,8 +7661,8 @@ L_08B2EC3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2EC5C: @@ -6130,8 +7675,21 @@ L_08B2EC5C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2EC84u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 557u, 0x08B2EC84u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EC84u) goto L_08B2EC84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EC84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2EC90u); @@ -6153,8 +7711,8 @@ L_08B2EC90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2ECBC: @@ -6167,8 +7725,21 @@ L_08B2ECBC: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2ECE4u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 560u, 0x08B2ECE4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ECE4u) goto L_08B2ECE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2ECE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2ECF0u); @@ -6187,8 +7758,8 @@ L_08B2ECF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2ED10: @@ -6201,8 +7772,21 @@ L_08B2ED10: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2ED38u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 563u, 0x08B2ED38u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ED38u) goto L_08B2ED38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2ED38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2ED44u); @@ -6221,8 +7805,8 @@ L_08B2ED44: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2ED64: @@ -6235,8 +7819,21 @@ L_08B2ED64: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2ED8Cu); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 566u, 0x08B2ED8Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2ED8Cu) goto L_08B2ED8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2ED8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2ED98u); @@ -6262,8 +7859,8 @@ L_08B2ED98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2EDD4: @@ -6275,8 +7872,21 @@ L_08B2EDD4: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B2EDF4u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 569u, 0x08B2EDF4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EDF4u) goto L_08B2EDF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EDF4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2EE00u); @@ -6293,8 +7903,8 @@ L_08B2EE00: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2EE24: @@ -6307,8 +7917,21 @@ L_08B2EE24: ctx.gpr[6] = (0u | 3u); aot_gpr_31 = (0x08B2EE4Cu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 572u, 0x08B2EE4Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EE4Cu) goto L_08B2EE4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EE4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2EE58u); @@ -6340,8 +7963,21 @@ L_08B2EE78: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08B2EE8Cu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 576u, 0x08B2EE8Cu, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EE8Cu) goto L_08B2EE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EE8C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6355,8 +7991,21 @@ L_08B2EE94: ctx.gpr[7] = (0u | 1u); aot_gpr_31 = (0x08B2EEA8u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0074. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 578u, 0x08B2EEA8u, 0x0892F140u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0074_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0074_entry, 74u, 613u, 0x0892F140u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EEA8u) goto L_08B2EEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EEA8: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -6367,8 +8016,8 @@ L_08B2EEA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2EEC0: @@ -6381,8 +8030,21 @@ L_08B2EEC0: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2EEE8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 580u, 0x08B2EEE8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EEE8u) goto L_08B2EEE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EEE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2EEF4u); @@ -6426,8 +8088,8 @@ L_08B2EF28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2EF40: @@ -6443,8 +8105,21 @@ L_08B2EF40: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08B2EFA8u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 586u, 0x08B2EFA8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EFA8u) goto L_08B2EFA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EFA8: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[3]{}; @@ -6458,8 +8133,21 @@ L_08B2EFA8: ctx.gpr[18] = (0u + static_cast(-1)); aot_gpr_31 = (0x08B2EFCCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 587u, 0x08B2EFCCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2EFCCu) goto L_08B2EFCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2EFCC: aot_fpr_30 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); ctx.gpr[30] = (32768u << 16u); @@ -6588,8 +8276,21 @@ L_08B2F09C: L_08B2F0A8: aot_gpr_31 = (0x08B2F0B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 603u, 0x08B2F0B0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F0B0u) goto L_08B2F0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F0B0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6604,8 +8305,21 @@ L_08B2F0B8: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B2F0D0u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 605u, 0x08B2F0D0u, 0x08AAF8F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 788u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 788u, 0x08AAF8F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F0D0u) goto L_08B2F0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F0D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6643,8 +8357,21 @@ L_08B2F10C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2F120u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 610u, 0x08B2F120u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F120u) goto L_08B2F120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F120: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[23]); @@ -6662,8 +8389,21 @@ L_08B2F138: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2F14Cu); ctx.gpr[7] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 612u, 0x08B2F14Cu, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F14Cu) goto L_08B2F14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F14C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_17 | 0u); @@ -6706,8 +8446,8 @@ L_08B2F16C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F1B8: @@ -6720,8 +8460,21 @@ L_08B2F1B8: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2F1E0u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 617u, 0x08B2F1E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F1E0u) goto L_08B2F1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F1E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F1ECu); @@ -6740,8 +8493,8 @@ L_08B2F1EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F20C: @@ -6755,8 +8508,21 @@ L_08B2F20C: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2F23Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 620u, 0x08B2F23Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F23Cu) goto L_08B2F23C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F23C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F248u); @@ -6783,8 +8549,8 @@ L_08B2F260: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F27C: @@ -6798,8 +8564,21 @@ L_08B2F27C: ctx.gpr[6] = (0u | 4u); aot_gpr_31 = (0x08B2F2B4u); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 624u, 0x08B2F2B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F2B4u) goto L_08B2F2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F2B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F2C0u); @@ -6836,8 +8615,21 @@ L_08B2F2FC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B2F308u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 628u, 0x08B2F308u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F308u) goto L_08B2F308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F308: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); @@ -6850,8 +8642,21 @@ L_08B2F310: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08B2F32Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 630u, 0x08B2F32Cu, 0x08B312F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 211u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 211u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 211u, 0x08B312F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F32Cu) goto L_08B2F32C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F32C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[6]{}; @@ -6865,8 +8670,8 @@ L_08B2F32C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F350: @@ -6881,8 +8686,21 @@ L_08B2F350: ctx.gpr[6] = (0u | 8u); aot_gpr_31 = (0x08B2F3B4u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 632u, 0x08B2F3B4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F3B4u) goto L_08B2F3B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F3B4: ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); { std::uint32_t aot_run_words[5]{}; @@ -6986,8 +8804,21 @@ L_08B2F45C: L_08B2F46C: aot_gpr_31 = (0x08B2F474u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 644u, 0x08B2F474u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F474u) goto L_08B2F474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F474: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7040,8 +8871,21 @@ L_08B2F4B8: ctx.fpr[16] = std::bit_cast(std::bit_cast(ctx.fpr[28])); aot_gpr_31 = (0x08B2F4D8u); ctx.fpr[17] = std::bit_cast(std::bit_cast(aot_fpr_30)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 650u, 0x08B2F4D8u, 0x08AAF984u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 799u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 799u, 0x08AAF984u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F4D8u) goto L_08B2F4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F4D8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7054,8 +8898,21 @@ L_08B2F4E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2F4F0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 652u, 0x08B2F4F0u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F4F0u) goto L_08B2F4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F4F0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(456))); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[30]); @@ -7080,8 +8937,21 @@ L_08B2F514: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2F528u); ctx.gpr[7] = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 655u, 0x08B2F528u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F528u) goto L_08B2F528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F528: ctx.gpr[20] = (0u | 1u); goto L_08B2F52C; @@ -7150,8 +9020,8 @@ L_08B2F56C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F5B8: @@ -7165,8 +9035,21 @@ L_08B2F5B8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2F5E8u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 664u, 0x08B2F5E8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F5E8u) goto L_08B2F5E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F5E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F5F4u); @@ -7230,8 +9113,8 @@ L_08B2F650: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F66C: @@ -7244,8 +9127,21 @@ L_08B2F66C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2F694u); ctx.gpr[7] = (aot_gpr_17 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 673u, 0x08B2F694u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F694u) goto L_08B2F694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F694: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F6A0u); @@ -7274,13 +9170,39 @@ L_08B2F6B4: L_08B2F6C0: aot_gpr_31 = (0x08B2F6C8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 678u, 0x08B2F6C8u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6C8u) goto L_08B2F6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F6C8: aot_gpr_31 = (0x08B2F6D0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 679u, 0x08B2F6D0u, 0x0886D420u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 195u, 0x0886D420u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6D0u) goto L_08B2F6D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F6D0: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(776), 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); @@ -7288,8 +9210,21 @@ L_08B2F6D0: ctx.gpr[6] = (0u | 0u); aot_gpr_31 = (0x08B2F6E8u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 680u, 0x08B2F6E8u, 0x089089B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 175u, 0x089089B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F6E8u) goto L_08B2F6E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F6E8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_17 + static_cast(4))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -7298,8 +9233,21 @@ L_08B2F6E8: aot_gpr_4 = (aot_gpr_16 + aot_gpr_4); aot_gpr_31 = (0x08B2F704u); aot_gpr_4 = (aot_gpr_4 + static_cast(1396)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0143. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 681u, 0x08B2F704u, 0x08A40C70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0143_entry(rt, ctx, 148u, aot_mem); +#else + recomp_unit_0143_entry(rt, ctx, 148u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0143_entry, 143u, 148u, 0x08A40C70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F704u) goto L_08B2F704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F704: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7310,8 +9258,8 @@ L_08B2F704: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F71C: @@ -7325,8 +9273,21 @@ L_08B2F71C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2F74Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 683u, 0x08B2F74Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F74Cu) goto L_08B2F74C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F74C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F758u); @@ -7425,8 +9386,8 @@ L_08B2F7F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F80C: @@ -7440,8 +9401,21 @@ L_08B2F80C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2F83Cu); ctx.gpr[7] = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 695u, 0x08B2F83Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F83Cu) goto L_08B2F83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F83C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F848u); @@ -7537,8 +9511,8 @@ L_08B2F8D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F8EC: @@ -7552,8 +9526,21 @@ L_08B2F8EC: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2F91Cu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 707u, 0x08B2F91Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F91Cu) goto L_08B2F91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F91C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F928u); @@ -7588,8 +9575,8 @@ L_08B2F960: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2F97C: @@ -7603,8 +9590,21 @@ L_08B2F97C: aot_gpr_5 = (aot_gpr_17 | 0u); aot_gpr_31 = (0x08B2F9ACu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 711u, 0x08B2F9ACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2F9ACu) goto L_08B2F9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2F9AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2F9B8u); @@ -7639,8 +9639,8 @@ L_08B2F9F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2FA0C: @@ -7653,8 +9653,21 @@ L_08B2FA0C: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2FA34u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 715u, 0x08B2FA34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FA34u) goto L_08B2FA34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FA34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2FA40u); @@ -7689,8 +9702,8 @@ L_08B2FA6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2FA84: @@ -7703,8 +9716,21 @@ L_08B2FA84: ctx.gpr[7] = (aot_gpr_17 + static_cast(29704)); aot_gpr_31 = (0x08B2FAACu); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 720u, 0x08B2FAACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FAACu) goto L_08B2FAAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FAAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2FAB8u); @@ -7807,8 +9833,8 @@ L_08B2FB48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2FB60: @@ -7823,8 +9849,21 @@ L_08B2FB60: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08B2FB98u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 733u, 0x08B2FB98u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FB98u) goto L_08B2FB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FB98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2FBA4u); @@ -7857,8 +9896,8 @@ L_08B2FBD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2FBF0: @@ -7872,8 +9911,21 @@ L_08B2FBF0: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B2FC20u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 737u, 0x08B2FC20u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FC20u) goto L_08B2FC20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FC20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2FC2Cu); @@ -7917,8 +9969,8 @@ L_08B2FC68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2FC84: @@ -7931,8 +9983,21 @@ L_08B2FC84: ctx.gpr[6] = (0u | 2u); aot_gpr_31 = (0x08B2FCACu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 743u, 0x08B2FCACu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FCACu) goto L_08B2FCAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FCAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2FCB8u); @@ -7961,8 +10026,21 @@ L_08B2FCE0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_31 = (0x08B2FCECu); ctx.gpr[6] = (ctx.gpr[6] + static_cast(1276)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 747u, 0x08B2FCECu, 0x08903654u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 632u, 0x08903654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FCECu) goto L_08B2FCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FCEC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7973,8 +10051,8 @@ L_08B2FCEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2FD04: @@ -7988,8 +10066,21 @@ L_08B2FD04: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B2FD30u); ctx.gpr[6] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 749u, 0x08B2FD30u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FD30u) goto L_08B2FD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FD30: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2FD3Cu); @@ -8089,8 +10180,21 @@ L_08B2FDC8: L_08B2FDD8: aot_gpr_31 = (0x08B2FDE0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 761u, 0x08B2FDE0u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FDE0u) goto L_08B2FDE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FDE0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8186,8 +10290,8 @@ L_08B2FE78: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B2FE8C: @@ -8197,8 +10301,21 @@ L_08B2FE8C: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B2FEB4u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0115. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 773u, 0x08B2FEB4u, 0x089D1AECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); +#else + recomp_unit_0115_entry(rt, ctx, 291u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0115_entry, 115u, 291u, 0x089D1AECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FEB4u) goto L_08B2FEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FEB4: aot_gpr_17 = (aot_gpr_16 + static_cast(16)); ctx.gpr[18] = (2236u << 16u); @@ -8208,8 +10325,21 @@ L_08B2FEB4: ctx.gpr[6] = (0u | 1u); aot_gpr_31 = (0x08B2FED4u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 774u, 0x08B2FED4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FED4u) goto L_08B2FED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FED4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B2FEE0u); @@ -8221,8 +10351,21 @@ L_08B2FEE0: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B2FEF0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 776u, 0x08B2FEF0u, 0x08B26D30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 544u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 544u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 544u, 0x08B26D30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FEF0u) goto L_08B2FEF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FEF0: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -8280,8 +10423,21 @@ L_08B2FF38: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B2FFA0u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 778u, 0x08B2FFA0u, 0x088631C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FFA0u) goto L_08B2FFA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FFA0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -8295,8 +10451,21 @@ L_08B2FFA0: ctx.gpr[8] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B2FFD4u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0202->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0202_entry, 779u, 0x08B2FFD4u, 0x088631C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B2FFD4u) goto L_08B2FFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B2FFD4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); diff --git a/profiles/vcs/generated/generated_unit_0203.cpp b/profiles/vcs/generated/generated_unit_0203.cpp index 06cf052..fddf1b5 100644 --- a/profiles/vcs/generated/generated_unit_0203.cpp +++ b/profiles/vcs/generated/generated_unit_0203.cpp @@ -900,6 +900,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B30000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -916,8 +940,21 @@ LOCAL_SCHED_BOUNDARY: L_08B30000: aot_gpr_31 = (0x08B30008u); ctx.gpr[9] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 2u, 0x08B30008u, 0x088631C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30008u) goto L_08B30008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30008: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -931,8 +968,21 @@ L_08B30008: ctx.gpr[7] = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B3003Cu); ctx.gpr[8] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 3u, 0x08B3003Cu, 0x088631C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 584u, 0x088631C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3003Cu) goto L_08B3003C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3003C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(29704), aot_gpr_4); @@ -961,8 +1011,8 @@ L_08B3006C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30090: @@ -975,8 +1025,21 @@ L_08B30090: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08B300B8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 6u, 0x08B300B8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B300B8u) goto L_08B300B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B300B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B300C4u); @@ -1003,8 +1066,8 @@ L_08B300C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30104: @@ -1017,8 +1080,21 @@ L_08B30104: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B3012Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 9u, 0x08B3012Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3012Cu) goto L_08B3012C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3012C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30138u); @@ -1036,8 +1112,21 @@ L_08B30148: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B30154u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 12u, 0x08B30154u, 0x08907DB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 890u, 0x08907DB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30154u) goto L_08B30154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30154: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1048,8 +1137,8 @@ L_08B30154: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3016C: @@ -1062,8 +1151,21 @@ L_08B3016C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30194u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 14u, 0x08B30194u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30194u) goto L_08B30194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30194: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B301A0u); @@ -1081,8 +1183,21 @@ L_08B301B0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B301BCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 17u, 0x08B301BCu, 0x08907DB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 890u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 890u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 890u, 0x08907DB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B301BCu) goto L_08B301BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B301BC: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1093,8 +1208,8 @@ L_08B301BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B301D4: @@ -1107,8 +1222,21 @@ L_08B301D4: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30200u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 19u, 0x08B30200u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30200u) goto L_08B30200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30200: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); @@ -1157,8 +1285,21 @@ L_08B3025C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B3026Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 25u, 0x08B3026Cu, 0x08903654u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 632u, 0x08903654u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3026Cu) goto L_08B3026C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3026C: aot_gpr_4 = (ctx.gpr[17] << 24u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 24u)); @@ -1175,8 +1316,8 @@ L_08B3026C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3029C: @@ -1189,8 +1330,21 @@ L_08B3029C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B302C8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 27u, 0x08B302C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B302C8u) goto L_08B302C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B302C8: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); @@ -1239,8 +1393,21 @@ L_08B30324: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B30334u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 33u, 0x08B30334u, 0x08903730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 640u, 0x08903730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30334u) goto L_08B30334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30334: aot_gpr_4 = (0u + static_cast(-1)); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(2272), static_cast(aot_gpr_4)); @@ -1257,8 +1424,8 @@ L_08B30334: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30364: @@ -1272,8 +1439,21 @@ L_08B30364: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B30394u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 35u, 0x08B30394u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30394u) goto L_08B30394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30394: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B303A0u); @@ -1300,8 +1480,8 @@ L_08B303B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B303D4: @@ -1315,8 +1495,21 @@ L_08B303D4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B30404u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 39u, 0x08B30404u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30404u) goto L_08B30404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30404: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30410u); @@ -1343,8 +1536,8 @@ L_08B30428: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30444: @@ -1358,8 +1551,21 @@ L_08B30444: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B30474u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 43u, 0x08B30474u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30474u) goto L_08B30474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30474: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30480u); @@ -1403,8 +1609,8 @@ L_08B304BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B304D8: @@ -1418,8 +1624,21 @@ L_08B304D8: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B30508u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 49u, 0x08B30508u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30508u) goto L_08B30508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30508: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30514u); @@ -1463,8 +1682,8 @@ L_08B30550: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3056C: @@ -1477,8 +1696,21 @@ L_08B3056C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30594u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 55u, 0x08B30594u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30594u) goto L_08B30594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30594: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B305A0u); @@ -1506,8 +1738,8 @@ L_08B305A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B305E4: @@ -1520,8 +1752,21 @@ L_08B305E4: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B3060Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 58u, 0x08B3060Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3060Cu) goto L_08B3060C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3060C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30618u); @@ -1564,8 +1809,8 @@ L_08B30648: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30660: @@ -1578,8 +1823,21 @@ L_08B30660: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30688u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 64u, 0x08B30688u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30688u) goto L_08B30688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30688: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30694u); @@ -1620,8 +1878,8 @@ L_08B306BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B306D4: @@ -1634,8 +1892,21 @@ L_08B306D4: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08B306FCu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 70u, 0x08B306FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B306FCu) goto L_08B306FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B306FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30708u); @@ -1742,8 +2013,8 @@ L_08B307C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B307E0: @@ -1756,8 +2027,21 @@ L_08B307E0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30808u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 83u, 0x08B30808u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30808u) goto L_08B30808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30808: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30814u); @@ -1782,8 +2066,8 @@ L_08B30814: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3084C: @@ -1795,8 +2079,21 @@ L_08B3084C: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B3086Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 86u, 0x08B3086Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3086Cu) goto L_08B3086C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3086C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(29704))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-24276))); @@ -1810,8 +2107,8 @@ L_08B3086C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3089C: @@ -1824,8 +2121,21 @@ L_08B3089C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B308C4u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 88u, 0x08B308C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B308C4u) goto L_08B308C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B308C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B308D0u); @@ -1881,8 +2191,8 @@ L_08B3091C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30934: @@ -1895,8 +2205,21 @@ L_08B30934: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B3095Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 96u, 0x08B3095Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3095Cu) goto L_08B3095C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3095C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30968u); @@ -1952,8 +2275,8 @@ L_08B309B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B309CC: @@ -1967,8 +2290,21 @@ L_08B309CC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B309FCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 104u, 0x08B309FCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B309FCu) goto L_08B309FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B309FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30A08u); @@ -1998,8 +2334,21 @@ L_08B30A20: } L_08B30A30: aot_gpr_31 = (0x08B30A38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0031. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 108u, 0x08B30A38u, 0x08882930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); +#else + recomp_unit_0031_entry(rt, ctx, 452u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0031_entry, 31u, 452u, 0x08882930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30A38u) goto L_08B30A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30A38: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(1914))); @@ -2022,8 +2371,8 @@ L_08B30A4C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30A68: @@ -2036,8 +2385,21 @@ L_08B30A68: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30A90u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 111u, 0x08B30A90u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30A90u) goto L_08B30A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30A90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30A9Cu); @@ -2078,8 +2440,8 @@ L_08B30AC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30ADC: @@ -2092,8 +2454,21 @@ L_08B30ADC: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30B04u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 117u, 0x08B30B04u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30B04u) goto L_08B30B04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30B04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30B10u); @@ -2128,8 +2503,8 @@ L_08B30B3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30B54: @@ -2141,8 +2516,21 @@ L_08B30B54: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B30B74u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 122u, 0x08B30B74u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30B74u) goto L_08B30B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30B74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30B80u); @@ -2153,16 +2541,29 @@ L_08B30B80: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(80))); aot_gpr_31 = (0x08B30B8Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 124u, 0x08B30B8Cu, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30B8Cu) goto L_08B30B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30B8C: ctx.gpr[2] = (0u | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30BA0: @@ -2175,8 +2576,21 @@ L_08B30BA0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30BC8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 126u, 0x08B30BC8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30BC8u) goto L_08B30BC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30BC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30BD4u); @@ -2199,8 +2613,8 @@ L_08B30BD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30C04: @@ -2213,8 +2627,21 @@ L_08B30C04: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30C2Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 129u, 0x08B30C2Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30C2Cu) goto L_08B30C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30C2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30C38u); @@ -2238,8 +2665,8 @@ L_08B30C38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30C6C: @@ -2251,8 +2678,21 @@ L_08B30C6C: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B30C8Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 132u, 0x08B30C8Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30C8Cu) goto L_08B30C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30C8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30C98u); @@ -2266,8 +2706,8 @@ L_08B30C98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30CB0: @@ -2280,8 +2720,21 @@ L_08B30CB0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30CD8u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 135u, 0x08B30CD8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30CD8u) goto L_08B30CD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30CD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30CE4u); @@ -2319,8 +2772,8 @@ L_08B30D1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30D34: @@ -2332,8 +2785,21 @@ L_08B30D34: ctx.gpr[7] = (aot_gpr_16 + static_cast(29704)); aot_gpr_31 = (0x08B30D54u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 140u, 0x08B30D54u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30D54u) goto L_08B30D54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30D54: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30D60u); @@ -2346,8 +2812,8 @@ L_08B30D60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30D74: @@ -2360,8 +2826,21 @@ L_08B30D74: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08B30D9Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 143u, 0x08B30D9Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30D9Cu) goto L_08B30D9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30D9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30DA8u); @@ -2408,8 +2887,21 @@ L_08B30DE4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B30DF4u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 150u, 0x08B30DF4u, 0x08911494u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 348u, 0x08911494u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30DF4u) goto L_08B30DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30DF4: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2420,8 +2912,8 @@ L_08B30DF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30E0C: @@ -2434,8 +2926,21 @@ L_08B30E0C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30E34u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 152u, 0x08B30E34u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30E34u) goto L_08B30E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30E34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30E40u); @@ -2478,8 +2983,8 @@ L_08B30E70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30E88: @@ -2492,8 +2997,21 @@ L_08B30E88: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30EB0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 158u, 0x08B30EB0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30EB0u) goto L_08B30EB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30EB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30EBCu); @@ -2534,8 +3052,8 @@ L_08B30EE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30EFC: @@ -2548,8 +3066,21 @@ L_08B30EFC: ctx.gpr[7] = (ctx.gpr[17] + static_cast(29704)); aot_gpr_31 = (0x08B30F24u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 164u, 0x08B30F24u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30F24u) goto L_08B30F24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30F24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B30F30u); @@ -2638,8 +3169,8 @@ L_08B30FB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B30FD0: @@ -2652,8 +3183,21 @@ L_08B30FD0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B30FF8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 175u, 0x08B30FF8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B30FF8u) goto L_08B30FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B30FF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B31004u); @@ -2678,8 +3222,8 @@ L_08B31004: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3103C: @@ -2692,8 +3236,21 @@ L_08B3103C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B31064u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 178u, 0x08B31064u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31064u) goto L_08B31064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31064: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B31070u); @@ -2734,8 +3291,8 @@ L_08B31098: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B310B0: @@ -2748,8 +3305,21 @@ L_08B310B0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B310D8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 184u, 0x08B310D8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B310D8u) goto L_08B310D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B310D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B310E4u); @@ -2790,8 +3360,8 @@ L_08B3110C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B31124: @@ -2804,8 +3374,21 @@ L_08B31124: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08B3114Cu); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 190u, 0x08B3114Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3114Cu) goto L_08B3114C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3114C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B31158u); @@ -2859,8 +3442,8 @@ L_08B311A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B311B8: @@ -2873,8 +3456,21 @@ L_08B311B8: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B311E0u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 197u, 0x08B311E0u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B311E0u) goto L_08B311E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B311E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B311ECu); @@ -2915,8 +3511,8 @@ L_08B31214: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3122C: @@ -2929,8 +3525,21 @@ L_08B3122C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B31254u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 203u, 0x08B31254u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31254u) goto L_08B31254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31254: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B31260u); @@ -2971,8 +3580,8 @@ L_08B31288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B312A0: @@ -2985,8 +3594,21 @@ L_08B312A0: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B312C8u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 209u, 0x08B312C8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B312C8u) goto L_08B312C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B312C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B312D4u); @@ -3005,8 +3627,8 @@ L_08B312D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B312F4: @@ -3021,8 +3643,21 @@ L_08B312F4: aot_gpr_16 = (ctx.gpr[7] & 255u); aot_gpr_31 = (0x08B31350u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 212u, 0x08B31350u, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31350u) goto L_08B31350; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31350: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3058,8 +3693,21 @@ L_08B3136C: L_08B31374: aot_gpr_31 = (0x08B3137Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 218u, 0x08B3137Cu, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3137Cu) goto L_08B3137C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3137C: ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[0]; goto L_08B31380; @@ -3094,8 +3742,21 @@ L_08B313BC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B313D8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 222u, 0x08B313D8u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B313D8u) goto L_08B313D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B313D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3134,8 +3795,21 @@ L_08B3141C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B31438u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 226u, 0x08B31438u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31438u) goto L_08B31438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31438: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3174,8 +3848,21 @@ L_08B3147C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B31498u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 230u, 0x08B31498u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31498u) goto L_08B31498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31498: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3205,8 +3892,21 @@ L_08B314CC: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B314E8u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 233u, 0x08B314E8u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B314E8u) goto L_08B314E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B314E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3223,8 +3923,21 @@ L_08B314F0: L_08B314F8: aot_gpr_31 = (0x08B31500u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 236u, 0x08B31500u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31500u) goto L_08B31500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31500: ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[0]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(260), ctx.gpr[19]); @@ -3251,8 +3964,21 @@ L_08B31534: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B31550u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 239u, 0x08B31550u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31550u) goto L_08B31550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31550: ctx.gpr[22] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(1914))); @@ -3319,15 +4045,41 @@ L_08B315CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); aot_gpr_31 = (0x08B315D8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 247u, 0x08B315D8u, 0x08AC5124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 370u, 0x08AC5124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B315D8u) goto L_08B315D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B315D8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); aot_gpr_31 = (0x08B315E8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 248u, 0x08B315E8u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B315E8u) goto L_08B315E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B315E8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(112), static_cast(0u)); { std::uint32_t aot_run_words[3]{}; @@ -3339,8 +4091,21 @@ L_08B315E8: aot_fpr_14 = aot_fpr_14 + ctx.fpr[26]; aot_gpr_31 = (0x08B31604u); aot_gpr_4 = (aot_gpr_29 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 249u, 0x08B31604u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31604u) goto L_08B31604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31604: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[26]; aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(112))); @@ -3363,8 +4128,21 @@ L_08B31614: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B31644u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 251u, 0x08B31644u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31644u) goto L_08B31644; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31644: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3483,8 +4261,21 @@ L_08B316E0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); aot_gpr_31 = (0x08B316ECu); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 259u, 0x08B316ECu, 0x08AC5124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 370u, 0x08AC5124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B316ECu) goto L_08B316EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B316EC: { const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3505,8 +4296,21 @@ L_08B316F4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(260))); aot_gpr_31 = (0x08B31704u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 261u, 0x08B31704u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31704u) goto L_08B31704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31704: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(160), static_cast(0u)); { std::uint32_t aot_run_words[3]{}; @@ -3518,8 +4322,21 @@ L_08B31704: aot_fpr_14 = aot_fpr_14 + ctx.fpr[26]; aot_gpr_31 = (0x08B31720u); aot_gpr_4 = (aot_gpr_29 + static_cast(160)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 262u, 0x08B31720u, 0x08893460u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 519u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 519u, 0x08893460u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31720u) goto L_08B31720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31720: aot_fpr_12 = ctx.fpr[0] + ctx.fpr[26]; aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(160))); @@ -3542,8 +4359,21 @@ L_08B31730: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); aot_gpr_31 = (0x08B31760u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 264u, 0x08B31760u, 0x088967ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 527u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 527u, 0x088967ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31760u) goto L_08B31760; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31760: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3621,8 +4451,21 @@ L_08B317BC: L_08B317E8: aot_gpr_31 = (0x08B317F0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1784))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 271u, 0x08B317F0u, 0x08A0C494u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 66u, 0x08A0C494u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B317F0u) goto L_08B317F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B317F0: ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(1914))); @@ -3654,8 +4497,8 @@ L_08B31804: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B31844: @@ -3670,8 +4513,21 @@ L_08B31844: aot_gpr_6 = (0u | 5u); aot_gpr_31 = (0x08B31890u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 274u, 0x08B31890u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31890u) goto L_08B31890; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31890: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_6 = (static_cast(aot_gpr_4) < 14 ? 1u : 0u); @@ -3890,8 +4746,21 @@ L_08B319B4: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08B319C0u); aot_gpr_4 = (0u | 2352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 306u, 0x08B319C0u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B319C0u) goto L_08B319C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B319C0: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -3905,8 +4774,21 @@ L_08B319CC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B319DCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 308u, 0x08B319DCu, 0x08A31EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 437u, 0x08A31EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B319DCu) goto L_08B319DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B319DC: ctx.gpr[20] = (ctx.gpr[22] | 0u); goto L_08B319E0; @@ -3940,8 +4822,21 @@ L_08B31A08: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08B31A14u); aot_gpr_4 = (0u | 2320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 313u, 0x08B31A14u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31A14u) goto L_08B31A14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31A14: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -3954,8 +4849,21 @@ L_08B31A20: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_31 = (0x08B31A2Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 315u, 0x08B31A2Cu, 0x08B219ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 300u, 0x08B219ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31A2Cu) goto L_08B31A2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31A2C: ctx.gpr[20] = (ctx.gpr[22] | 0u); goto L_08B31A30; @@ -3971,8 +4879,21 @@ L_08B31A38: ctx.gpr[20] = (0u | 0u); aot_gpr_31 = (0x08B31A44u); aot_gpr_4 = (0u | 2384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 318u, 0x08B31A44u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31A44u) goto L_08B31A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31A44: ctx.gpr[22] = (ctx.gpr[2] | 0u); if (ctx.gpr[22] == 0u) { @@ -3985,8 +4906,21 @@ L_08B31A50: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(4))); aot_gpr_31 = (0x08B31A60u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 320u, 0x08B31A60u, 0x089E2490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 453u, 0x089E2490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31A60u) goto L_08B31A60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31A60: ctx.gpr[20] = (ctx.gpr[22] | 0u); ctx.gpr[22] = (ctx.gpr[20] + static_cast(48)); @@ -3995,8 +4929,21 @@ L_08B31A68: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B31A74u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 322u, 0x08B31A74u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31A74u) goto L_08B31A74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31A74: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(456))); aot_gpr_5 = (65532u << 16u); @@ -4042,8 +4989,21 @@ L_08B31AE8: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B31AF4u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 325u, 0x08B31AF4u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31AF4u) goto L_08B31AF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31AF4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B31AF8; @@ -4093,8 +5053,21 @@ L_08B31AF8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B31B50u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 327u, 0x08B31B50u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31B50u) goto L_08B31B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31B50: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -4104,15 +5077,41 @@ L_08B31B50: } aot_gpr_31 = (0x08B31B64u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 328u, 0x08B31B64u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31B64u) goto L_08B31B64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31B64: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B31B74u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 329u, 0x08B31B74u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31B74u) goto L_08B31B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31B74: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4129,20 +5128,59 @@ L_08B31B80: L_08B31B8C: aot_gpr_31 = (0x08B31B94u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 332u, 0x08B31B94u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31B94u) goto L_08B31B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31B94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B31BA0u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 333u, 0x08B31BA0u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31BA0u) goto L_08B31BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31BA0: aot_mem.aot_direct_store8(ctx.gpr[20] + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_31 = (0x08B31BACu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 334u, 0x08B31BACu, 0x08B26CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 540u, 0x08B26CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31BACu) goto L_08B31BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31BAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B31BB8u); @@ -4172,8 +5210,21 @@ L_08B31BD8: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B31BF0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 338u, 0x08B31BF0u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31BF0u) goto L_08B31BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31BF0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[10]{}; @@ -4191,8 +5242,8 @@ L_08B31BF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B31C24: @@ -4207,8 +5258,21 @@ L_08B31C24: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08B31C6Cu); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 340u, 0x08B31C6Cu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31C6Cu) goto L_08B31C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31C6C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08B31C78u); @@ -4433,8 +5497,21 @@ L_08B31D9C: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B31DA8u); aot_gpr_4 = (0u | 2352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 373u, 0x08B31DA8u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31DA8u) goto L_08B31DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31DA8: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -4448,8 +5525,21 @@ L_08B31DB4: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B31DC4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 375u, 0x08B31DC4u, 0x08A31EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 437u, 0x08A31EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31DC4u) goto L_08B31DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31DC4: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B31DC8; @@ -4482,8 +5572,21 @@ L_08B31DF0: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B31DFCu); aot_gpr_4 = (0u | 2320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 380u, 0x08B31DFCu, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31DFCu) goto L_08B31DFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31DFC: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -4496,8 +5599,21 @@ L_08B31E08: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08B31E14u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 382u, 0x08B31E14u, 0x08B219ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 300u, 0x08B219ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31E14u) goto L_08B31E14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31E14: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B31E18; @@ -4512,8 +5628,21 @@ L_08B31E20: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B31E2Cu); aot_gpr_4 = (0u | 2384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 385u, 0x08B31E2Cu, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31E2Cu) goto L_08B31E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31E2C: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -4527,8 +5656,21 @@ L_08B31E38: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08B31E48u); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 387u, 0x08B31E48u, 0x089E2490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 453u, 0x089E2490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31E48u) goto L_08B31E48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31E48: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B31E4C; @@ -4544,8 +5686,21 @@ L_08B31E54: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B31E64u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 390u, 0x08B31E64u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31E64u) goto L_08B31E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31E64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(456))); aot_gpr_5 = (65532u << 16u); @@ -4620,8 +5775,21 @@ L_08B31EC4: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B31F0Cu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 393u, 0x08B31F0Cu, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31F0Cu) goto L_08B31F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31F0C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4631,32 +5799,97 @@ L_08B31F0C: } aot_gpr_31 = (0x08B31F20u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 394u, 0x08B31F20u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31F20u) goto L_08B31F20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31F20: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B31F2Cu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 395u, 0x08B31F2Cu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31F2Cu) goto L_08B31F2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31F2C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B31F38u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 396u, 0x08B31F38u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31F38u) goto L_08B31F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31F38: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B31F44u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 397u, 0x08B31F44u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31F44u) goto L_08B31F44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31F44: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B31F50u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 398u, 0x08B31F50u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31F50u) goto L_08B31F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31F50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -4694,25 +5927,77 @@ L_08B31F84: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B31FB0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 402u, 0x08B31FB0u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31FB0u) goto L_08B31FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31FB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B31FBCu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 403u, 0x08B31FBCu, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31FBCu) goto L_08B31FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31FBC: aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_31 = (0x08B31FC8u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 404u, 0x08B31FC8u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31FC8u) goto L_08B31FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31FC8: aot_gpr_31 = (0x08B31FD0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 405u, 0x08B31FD0u, 0x08B26CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 540u, 0x08B26CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B31FD0u) goto L_08B31FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B31FD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B31FDCu); @@ -4742,8 +6027,21 @@ L_08B31FFC: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B32014u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 409u, 0x08B32014u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32014u) goto L_08B32014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32014: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4776,8 +6074,8 @@ L_08B32034: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B32064: @@ -4792,8 +6090,21 @@ L_08B32064: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08B320A8u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 413u, 0x08B320A8u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B320A8u) goto L_08B320A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B320A8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08B320B4u); @@ -5018,8 +6329,21 @@ L_08B321D8: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x08B321E4u); aot_gpr_4 = (0u | 2352u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 446u, 0x08B321E4u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B321E4u) goto L_08B321E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B321E4: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -5033,8 +6357,21 @@ L_08B321F0: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B32200u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 448u, 0x08B32200u, 0x08A31EA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 437u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 437u, 0x08A31EA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32200u) goto L_08B32200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32200: ctx.gpr[21] = (ctx.gpr[22] | 0u); goto L_08B32204; @@ -5067,8 +6404,21 @@ L_08B3222C: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x08B32238u); aot_gpr_4 = (0u | 2320u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 453u, 0x08B32238u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32238u) goto L_08B32238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32238: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -5081,8 +6431,21 @@ L_08B32244: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08B32250u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 455u, 0x08B32250u, 0x08B219ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 300u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 300u, 0x08B219ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32250u) goto L_08B32250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32250: ctx.gpr[21] = (ctx.gpr[22] | 0u); goto L_08B32254; @@ -5097,8 +6460,21 @@ L_08B3225C: ctx.gpr[21] = (0u | 0u); aot_gpr_31 = (0x08B32268u); aot_gpr_4 = (0u | 2384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 458u, 0x08B32268u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32268u) goto L_08B32268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32268: ctx.gpr[22] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[22] == 0u; @@ -5112,8 +6488,21 @@ L_08B32274: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); aot_gpr_31 = (0x08B32284u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 460u, 0x08B32284u, 0x089E2490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 453u, 0x089E2490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32284u) goto L_08B32284; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32284: ctx.gpr[21] = (ctx.gpr[22] | 0u); goto L_08B32288; @@ -5128,8 +6517,21 @@ L_08B32290: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B3229Cu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 463u, 0x08B3229Cu, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3229Cu) goto L_08B3229C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3229C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(456))); aot_gpr_5 = (65532u << 16u); @@ -5204,8 +6606,21 @@ L_08B322FC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B32344u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 466u, 0x08B32344u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32344u) goto L_08B32344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32344: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -5215,20 +6630,59 @@ L_08B32344: } aot_gpr_31 = (0x08B32358u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 467u, 0x08B32358u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32358u) goto L_08B32358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32358: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B32364u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 468u, 0x08B32364u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32364u) goto L_08B32364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32364: aot_mem.aot_direct_store8(ctx.gpr[21] + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_31 = (0x08B32370u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 469u, 0x08B32370u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32370u) goto L_08B32370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32370: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(12))); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -5241,8 +6695,21 @@ L_08B3237C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B32388u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 471u, 0x08B32388u, 0x08B000ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 10u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 10u, 0x08B000ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32388u) goto L_08B32388; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32388: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5256,26 +6723,78 @@ L_08B32390: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B323A4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 473u, 0x08B323A4u, 0x08B00214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 24u, 0x08B00214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B323A4u) goto L_08B323A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B323A4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B323B0u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 474u, 0x08B323B0u, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B323B0u) goto L_08B323B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B323B0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B323BCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 475u, 0x08B323BCu, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B323BCu) goto L_08B323BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B323BC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B323C8u); aot_gpr_5 = (0u | 55u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 476u, 0x08B323C8u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B323C8u) goto L_08B323C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B323C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); @@ -5285,13 +6804,39 @@ L_08B323C8: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B323E8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0108. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 477u, 0x08B323E8u, 0x089B56FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); +#else + recomp_unit_0108_entry(rt, ctx, 307u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0108_entry, 108u, 307u, 0x089B56FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B323E8u) goto L_08B323E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B323E8: aot_gpr_31 = (0x08B323F0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 478u, 0x08B323F0u, 0x08B26CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 540u, 0x08B26CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B323F0u) goto L_08B323F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B323F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B323FCu); @@ -5321,8 +6866,21 @@ L_08B3241C: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B32434u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 482u, 0x08B32434u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32434u) goto L_08B32434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32434: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5354,8 +6912,8 @@ L_08B32454: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B32480: @@ -5369,8 +6927,21 @@ L_08B32480: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08B324C4u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 486u, 0x08B324C4u, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B324C4u) goto L_08B324C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B324C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B324D0u); @@ -5410,16 +6981,42 @@ L_08B32514: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08B32520u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 490u, 0x08B32520u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32520u) goto L_08B32520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32520: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B32524; L_08B32524: aot_gpr_31 = (0x08B3252Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 492u, 0x08B3252Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3252Cu) goto L_08B3252C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3252C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5463,8 +7060,21 @@ L_08B32564: L_08B32574: aot_gpr_31 = (0x08B3257Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 498u, 0x08B3257Cu, 0x08B00578u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 78u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 78u, 0x08B00578u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3257Cu) goto L_08B3257C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3257C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(72))); @@ -5489,8 +7099,21 @@ L_08B3257C: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B325D8u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 499u, 0x08B325D8u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B325D8u) goto L_08B325D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B325D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); aot_gpr_4 = (aot_gpr_4 + static_cast(112)); @@ -5520,8 +7143,21 @@ L_08B32600: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(1152))); aot_gpr_31 = (0x08B3260Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 501u, 0x08B3260Cu, 0x08B00384u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 40u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 40u, 0x08B00384u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3260Cu) goto L_08B3260C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3260C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(2274))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5853,20 +7489,59 @@ L_08B32810: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B3281Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0105. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 542u, 0x08B3281Cu, 0x089AB8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0105_entry(rt, ctx, 756u, aot_mem); +#else + recomp_unit_0105_entry(rt, ctx, 756u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0105_entry, 105u, 756u, 0x089AB8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3281Cu) goto L_08B3281C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3281C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B32828u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 543u, 0x08B32828u, 0x08910BDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 209u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 209u, 0x08910BDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32828u) goto L_08B32828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32828: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B32834u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 544u, 0x08B32834u, 0x08908D60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 240u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 240u, 0x08908D60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32834u) goto L_08B32834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32834: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B32840u); @@ -5877,8 +7552,21 @@ L_08B32840: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B3284Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 546u, 0x08B3284Cu, 0x08910A24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 171u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 171u, 0x08910A24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3284Cu) goto L_08B3284C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3284C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-513)); @@ -5890,13 +7578,39 @@ L_08B3284C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B32878u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 547u, 0x08B32878u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32878u) goto L_08B32878; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32878: aot_gpr_31 = (0x08B32880u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 548u, 0x08B32880u, 0x08908630u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 107u, 0x08908630u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32880u) goto L_08B32880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32880: aot_gpr_31 = (0x08B32888u); aot_gpr_4 = (ctx.gpr[18] | 0u); @@ -5928,8 +7642,21 @@ L_08B328A4: L_08B328B0: aot_gpr_31 = (0x08B328B8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 554u, 0x08B328B8u, 0x0890BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 976u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 976u, 0x0890BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B328B8u) goto L_08B328B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B328B8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B328C4u); @@ -5957,13 +7684,39 @@ L_08B328DC: aot_fpr_12 = std::bit_cast(ctx.gpr[7]); aot_gpr_31 = (0x08B328F4u); ctx.gpr[7] = (0u | 6u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 559u, 0x08B328F4u, 0x0893EA14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 650u, 0x0893EA14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B328F4u) goto L_08B328F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B328F4: aot_gpr_31 = (0x08B328FCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 560u, 0x08B328FCu, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B328FCu) goto L_08B328FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B328FC: aot_fpr_20 = ctx.fpr[22] + ctx.fpr[0]; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(92))); @@ -5986,8 +7739,21 @@ L_08B32928: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B32944u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 562u, 0x08B32944u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32944u) goto L_08B32944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32944: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[9]{}; @@ -6004,8 +7770,8 @@ L_08B32944: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B32974: @@ -6021,8 +7787,21 @@ L_08B32974: aot_gpr_6 = (0u | 3u); aot_gpr_31 = (0x08B329CCu); ctx.gpr[7] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0024. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 564u, 0x08B329CCu, 0x0886589Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); +#else + recomp_unit_0024_entry(rt, ctx, 371u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0024_entry, 24u, 371u, 0x0886589Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B329CCu) goto L_08B329CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B329CC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); aot_gpr_5 = (aot_gpr_4 << 8u); @@ -6035,8 +7814,21 @@ L_08B329CC: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B329F8u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 565u, 0x08B329F8u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B329F8u) goto L_08B329F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B329F8: { const std::uint32_t vfpu_address = aot_gpr_29 + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6055,8 +7847,21 @@ L_08B329F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B32A10u); aot_gpr_6 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 566u, 0x08B32A10u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32A10u) goto L_08B32A10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32A10: ctx.gpr[21] = (0u | 6u); ctx.gpr[22] = (0u | 0u); @@ -6088,8 +7893,21 @@ L_08B32A30: L_08B32A38: aot_gpr_31 = (0x08B32A40u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(102))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0113. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 571u, 0x08B32A40u, 0x089C81D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0113_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0113_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0113_entry, 113u, 31u, 0x089C81D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32A40u) goto L_08B32A40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32A40: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); @@ -6210,8 +8028,21 @@ L_08B32B1C: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B32B28u); aot_gpr_4 = (0u | 2384u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 587u, 0x08B32B28u, 0x089062ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 475u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 475u, 0x089062ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32B28u) goto L_08B32B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32B28: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -6225,8 +8056,21 @@ L_08B32B34: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B32B40u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0119. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 589u, 0x08B32B40u, 0x089E2490u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); +#else + recomp_unit_0119_entry(rt, ctx, 453u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0119_entry, 119u, 453u, 0x089E2490u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32B40u) goto L_08B32B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32B40: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B32B44; @@ -6241,8 +8085,21 @@ L_08B32B4C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B32B58u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 592u, 0x08B32B58u, 0x08911320u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 334u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 334u, 0x08911320u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32B58u) goto L_08B32B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32B58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(456))); aot_gpr_5 = (65532u << 16u); @@ -6285,8 +8142,21 @@ L_08B32BCC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B32BD8u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 595u, 0x08B32BD8u, 0x088933E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 514u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 514u, 0x088933E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32BD8u) goto L_08B32BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32BD8: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B32BDC; @@ -6339,8 +8209,21 @@ L_08B32BDC: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B32C40u); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 597u, 0x08B32C40u, 0x0885FA28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 923u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 923u, 0x0885FA28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32C40u) goto L_08B32C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32C40: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(144), aot_run_words); @@ -6350,21 +8233,60 @@ L_08B32C40: } aot_gpr_31 = (0x08B32C54u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 598u, 0x08B32C54u, 0x08860094u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 4u, 0x08860094u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32C54u) goto L_08B32C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32C54: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B32C64u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 599u, 0x08B32C64u, 0x0886A030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 424u, 0x0886A030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32C64u) goto L_08B32C64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32C64: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); aot_gpr_31 = (0x08B32C70u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 600u, 0x08B32C70u, 0x08A8DF08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 382u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 382u, 0x08A8DF08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32C70u) goto L_08B32C70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32C70: aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(312), static_cast(ctx.gpr[2])); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(522))); @@ -6382,13 +8304,39 @@ L_08B32C80: L_08B32C8C: aot_gpr_31 = (0x08B32C94u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 603u, 0x08B32C94u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32C94u) goto L_08B32C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32C94: aot_gpr_31 = (0x08B32C9Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0200. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 604u, 0x08B32C9Cu, 0x08B26CECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); +#else + recomp_unit_0200_entry(rt, ctx, 540u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0200_entry, 200u, 540u, 0x08B26CECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32C9Cu) goto L_08B32C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32C9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15976))); aot_gpr_31 = (0x08B32CA8u); @@ -6418,8 +8366,21 @@ L_08B32CC8: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B32CE0u); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 608u, 0x08B32CE0u, 0x08861C90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 275u, 0x08861C90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32CE0u) goto L_08B32CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32CE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6455,8 +8416,8 @@ L_08B32D00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B32D3C: @@ -6512,8 +8473,8 @@ L_08B32D3C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B32D64: @@ -6527,8 +8488,8 @@ L_08B32D64: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<32u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B32D90: @@ -6537,8 +8498,8 @@ L_08B32D90: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-3208))); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(7), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B32DA4: @@ -6577,8 +8538,8 @@ L_08B32DA4: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(172), static_cast(0u)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B32E84: @@ -6743,8 +8704,21 @@ L_08B32FCC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B32FFCu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 627u, 0x08B32FFCu, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B32FFCu) goto L_08B32FFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B32FFC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6789,8 +8763,8 @@ L_08B3302C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B33054: @@ -6823,8 +8797,8 @@ L_08B33070: goto L_08B33078; L_08B33078: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B33080: @@ -6850,8 +8824,8 @@ L_08B33098: goto L_08B330A0; L_08B330A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B330A8: @@ -6873,8 +8847,21 @@ L_08B330C8: L_08B330D0: aot_gpr_31 = (0x08B330D8u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(61))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 644u, 0x08B330D8u, 0x0896E7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 597u, 0x0896E7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B330D8u) goto L_08B330D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B330D8: aot_gpr_4 = (ctx.gpr[2] << 6u); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -6882,14 +8869,40 @@ L_08B330D8: aot_gpr_5 = (aot_gpr_5 + ctx.gpr[18]); aot_gpr_31 = (0x08B330F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 645u, 0x08B330F0u, 0x08B34FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 220u, 0x08B34FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B330F0u) goto L_08B330F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B330F0: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B330FCu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 646u, 0x08B330FCu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B330FCu) goto L_08B330FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B330FC: { const bool branch_taken = ctx.gpr[17] != 0u; if (branch_taken) { @@ -6919,8 +8932,8 @@ L_08B33114: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3312C: @@ -7008,8 +9021,8 @@ L_08B331B8: goto L_08B331C4; L_08B331C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B331CC: @@ -7018,8 +9031,21 @@ L_08B331CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B331E0u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 662u, 0x08B331E0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B331E0u) goto L_08B331E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B331E0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7029,8 +9055,21 @@ L_08B331E0: } L_08B331E8: aot_gpr_31 = (0x08B331F0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 664u, 0x08B331F0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B331F0u) goto L_08B331F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B331F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7056,8 +9095,21 @@ L_08B33204: } L_08B3320C: aot_gpr_31 = (0x08B33214u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 668u, 0x08B33214u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33214u) goto L_08B33214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33214: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 6u); @@ -7069,8 +9121,21 @@ L_08B33214: } L_08B33224: aot_gpr_31 = (0x08B3322Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 670u, 0x08B3322Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3322Cu) goto L_08B3322C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3322C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 9u); @@ -7082,8 +9147,21 @@ L_08B3322C: } L_08B3323C: aot_gpr_31 = (0x08B33244u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 672u, 0x08B33244u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33244u) goto L_08B33244; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33244: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 8u); @@ -7095,8 +9173,21 @@ L_08B33244: } L_08B33254: aot_gpr_31 = (0x08B3325Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 674u, 0x08B3325Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3325Cu) goto L_08B3325C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3325C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 4u); @@ -7108,8 +9199,21 @@ L_08B3325C: } L_08B3326C: aot_gpr_31 = (0x08B33274u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 676u, 0x08B33274u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33274u) goto L_08B33274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33274: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 5u); @@ -7148,8 +9252,21 @@ L_08B332A8: } L_08B332B8: aot_gpr_31 = (0x08B332C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 682u, 0x08B332C0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B332C0u) goto L_08B332C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B332C0: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_gpr_5 + static_cast(48)); @@ -7335,8 +9452,8 @@ L_08B33414: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B33424: @@ -7479,8 +9596,21 @@ L_08B33534: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B33564u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 714u, 0x08B33564u, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33564u) goto L_08B33564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33564: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7525,8 +9655,8 @@ L_08B33594: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B335BC: @@ -7559,8 +9689,21 @@ L_08B335BC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(128), aot_gpr_31); aot_gpr_31 = (0x08B33634u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 720u, 0x08B33634u, 0x0889A478u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 406u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 406u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 406u, 0x0889A478u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33634u) goto L_08B33634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33634: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); ctx.gpr[17] = (0u | 0u); @@ -7618,8 +9761,8 @@ L_08B3368C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B336A4: @@ -7628,8 +9771,21 @@ L_08B336A4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B336BCu); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 728u, 0x08B336BCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B336BCu) goto L_08B336BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B336BC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_fpr_20 = std::bit_cast(0u); @@ -7640,8 +9796,21 @@ L_08B336BC: } L_08B336C4: aot_gpr_31 = (0x08B336CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 730u, 0x08B336CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B336CCu) goto L_08B336CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B336CC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -7674,8 +9843,8 @@ L_08B336FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B33710: @@ -7843,8 +10012,21 @@ L_08B33870: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B33898u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 747u, 0x08B33898u, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33898u) goto L_08B33898; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33898: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7888,8 +10070,8 @@ L_08B338C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B338E8: @@ -7973,8 +10155,21 @@ L_08B33980: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B339ACu); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 756u, 0x08B339ACu, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B339ACu) goto L_08B339AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B339AC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8019,8 +10214,8 @@ L_08B339D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B33A00: @@ -8199,8 +10394,21 @@ L_08B33B40: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B33B68u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 777u, 0x08B33B68u, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33B68u) goto L_08B33B68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33B68: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -8258,8 +10466,8 @@ L_08B33BA8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B33BD8: @@ -8439,8 +10647,21 @@ L_08B33D44: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B33D64u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 799u, 0x08B33D64u, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33D64u) goto L_08B33D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33D64: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -8545,8 +10766,21 @@ L_08B33D6C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B33E18u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 801u, 0x08B33E18u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33E18u) goto L_08B33E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33E18: aot_gpr_16 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(52))); goto L_08B33E1C; @@ -8594,8 +10828,8 @@ L_08B33E54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B33E90: @@ -8763,8 +10997,21 @@ L_08B33FB8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B33FE0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0203->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0203_entry, 820u, 0x08B33FE0u, 0x08B356F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 314u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 314u, 0x08B356F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B33FE0u) goto L_08B33FE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B33FE0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { diff --git a/profiles/vcs/generated/generated_unit_0204.cpp b/profiles/vcs/generated/generated_unit_0204.cpp index f054da1..6d6ff05 100644 --- a/profiles/vcs/generated/generated_unit_0204.cpp +++ b/profiles/vcs/generated/generated_unit_0204.cpp @@ -1017,6 +1017,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B34004u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1061,8 +1085,8 @@ L_08B34020: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B34050: @@ -1149,8 +1173,21 @@ L_08B340F8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B34104u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 14u, 0x08B34104u, 0x08B33710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 735u, 0x08B33710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34104u) goto L_08B34104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34104: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1188,8 +1225,21 @@ L_08B34138: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B34168u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 17u, 0x08B34168u, 0x08B32D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 611u, 0x08B32D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34168u) goto L_08B34168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34168: { const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1281,8 +1331,8 @@ L_08B341D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B34200: @@ -1427,8 +1477,8 @@ L_08B342E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3430C: @@ -1508,8 +1558,21 @@ L_08B34390: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B3439Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 48u, 0x08B3439Cu, 0x08B33710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 735u, 0x08B33710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3439Cu) goto L_08B3439C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3439C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1555,8 +1618,21 @@ L_08B343C4: L_08B343D4: aot_gpr_31 = (0x08B343DCu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 53u, 0x08B343DCu, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B343DCu) goto L_08B343DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B343DC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1568,8 +1644,21 @@ L_08B343E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B343F0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 55u, 0x08B343F0u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B343F0u) goto L_08B343F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B343F0: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -1616,8 +1705,8 @@ L_08B34428: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B34444: @@ -1684,13 +1773,39 @@ L_08B344F4: goto L_08B344F8; L_08B344F8: aot_gpr_31 = (0x08B34500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 66u, 0x08B34500u, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34500u) goto L_08B34500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34500: aot_gpr_31 = (0x08B34508u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 67u, 0x08B34508u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34508u) goto L_08B34508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34508: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1747,20 +1862,46 @@ L_08B345A0: goto L_08B345A4; L_08B345A4: aot_gpr_31 = (0x08B345ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 72u, 0x08B345ACu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B345ACu) goto L_08B345AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B345AC: aot_gpr_31 = (0x08B345B4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 73u, 0x08B345B4u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B345B4u) goto L_08B345B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B345B4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B345C4: @@ -1833,8 +1974,8 @@ L_08B345C4: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(40), std::bit_cast(aot_fpr_12)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B34680: @@ -1853,25 +1994,64 @@ L_08B34698: aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08B346B4u); aot_fpr_12 = aot_fpr_13 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 77u, 0x08B346B4u, 0x0885F854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 914u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 914u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 914u, 0x0885F854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B346B4u) goto L_08B346B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B346B4: aot_gpr_31 = (0x08B346BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0022. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 78u, 0x08B346BCu, 0x0885FF14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); +#else + recomp_unit_0022_entry(rt, ctx, 936u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0022_entry, 22u, 936u, 0x0885FF14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B346BCu) goto L_08B346BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B346BC: aot_gpr_31 = (0x08B346C4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 79u, 0x08B346C4u, 0x08AD065Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 66u, 0x08AD065Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B346C4u) goto L_08B346C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B346C4: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B346D4: @@ -1967,8 +2147,21 @@ L_08B34774: L_08B34778: aot_gpr_31 = (0x08B34780u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 92u, 0x08B34780u, 0x0896DA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 426u, 0x0896DA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34780u) goto L_08B34780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34780: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2033,8 +2226,21 @@ L_08B347E0: L_08B347E4: aot_gpr_31 = (0x08B347ECu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 101u, 0x08B347ECu, 0x0896DA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 426u, 0x0896DA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B347ECu) goto L_08B347EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B347EC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2110,8 +2316,21 @@ L_08B34860: L_08B34864: aot_gpr_31 = (0x08B3486Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 112u, 0x08B3486Cu, 0x0896DA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 426u, 0x0896DA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3486Cu) goto L_08B3486C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3486C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2176,8 +2395,21 @@ L_08B348CC: L_08B348D0: aot_gpr_31 = (0x08B348D8u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 121u, 0x08B348D8u, 0x0896DA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 426u, 0x0896DA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B348D8u) goto L_08B348D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B348D8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2209,8 +2441,8 @@ L_08B348F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3490C: @@ -2302,8 +2534,8 @@ L_08B34998: goto L_08B3499C; L_08B3499C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B349A4: @@ -2318,8 +2550,8 @@ L_08B349A4: L_08B349B8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B349C0: @@ -2442,8 +2674,8 @@ L_08B34A84: goto L_08B34A88; L_08B34A88: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B34A90: @@ -2565,8 +2797,8 @@ L_08B34BA0: L_08B34BB4: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B34BBC: @@ -2614,8 +2846,21 @@ L_08B34C18: L_08B34C20: aot_gpr_31 = (0x08B34C28u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 171u, 0x08B34C28u, 0x0896DA80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 426u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 426u, 0x0896DA80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34C28u) goto L_08B34C28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34C28: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2768,8 +3013,8 @@ L_08B34D2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B34D54: @@ -2940,8 +3185,21 @@ L_08B34EB4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08B34EC4u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 207u, 0x08B34EC4u, 0x08B338E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 752u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 752u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 752u, 0x08B338E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34EC4u) goto L_08B34EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34EC4: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -2977,14 +3235,40 @@ L_08B34EF8: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B34F1Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 212u, 0x08B34F1Cu, 0x089616E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 264u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 264u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 264u, 0x089616E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34F1Cu) goto L_08B34F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34F1C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B34F28u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 213u, 0x08B34F28u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B34F28u) goto L_08B34F28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B34F28: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -3058,8 +3342,8 @@ L_08B34F90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B34FC4: @@ -3097,8 +3381,21 @@ L_08B35004: } L_08B35010: aot_gpr_31 = (0x08B35018u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 225u, 0x08B35018u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35018u) goto L_08B35018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35018: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), 0u); goto L_08B3501C; @@ -3157,8 +3454,8 @@ L_08B35060: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3507C: @@ -3324,8 +3621,21 @@ L_08B351A8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B351B4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 251u, 0x08B351B4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B351B4u) goto L_08B351B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B351B4: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -3371,8 +3681,8 @@ L_08B351E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B35218: @@ -3505,8 +3815,21 @@ L_08B35320: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B3532Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 271u, 0x08B3532Cu, 0x08B33710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 735u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 735u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 735u, 0x08B33710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3532Cu) goto L_08B3532C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3532C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3561,8 +3884,21 @@ L_08B35374: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B353A4u); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 276u, 0x08B353A4u, 0x08B32D3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 611u, 0x08B32D3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B353A4u) goto L_08B353A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B353A4: { const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3629,8 +3965,21 @@ L_08B353F4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B35400u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 282u, 0x08B35400u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35400u) goto L_08B35400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35400: { const bool branch_taken = ctx.gpr[30] == 0u; if (branch_taken) { @@ -3679,8 +4028,8 @@ L_08B35440: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B35470: @@ -3691,14 +4040,40 @@ L_08B35470: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_31); aot_gpr_31 = (0x08B3548Cu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 287u, 0x08B3548Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3548Cu) goto L_08B3548C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3548C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B35498u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 288u, 0x08B35498u, 0x08B33A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 761u, 0x08B33A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35498u) goto L_08B35498; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35498: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3714,8 +4089,21 @@ L_08B354A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B354B4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 291u, 0x08B354B4u, 0x08B33E90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 805u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 805u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 805u, 0x08B33E90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B354B4u) goto L_08B354B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B354B4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3869,8 +4257,21 @@ L_08B355B8: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B355D0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 297u, 0x08B355D0u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B355D0u) goto L_08B355D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B355D0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3897,8 +4298,8 @@ L_08B355F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B35604: @@ -4024,8 +4425,8 @@ L_08B356EC: goto L_08B356F0; L_08B356F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B356F8: @@ -4155,8 +4556,8 @@ L_08B357F0: goto L_08B357F4; L_08B357F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B357FC: @@ -4219,8 +4620,21 @@ L_08B35844: L_08B3584C: aot_gpr_31 = (0x08B35854u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 336u, 0x08B35854u, 0x08B335BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 719u, 0x08B335BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35854u) goto L_08B35854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35854: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4293,8 +4707,21 @@ L_08B358C8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B358E8u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 345u, 0x08B358E8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B358E8u) goto L_08B358E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B358E8: aot_gpr_31 = (0x08B358F0u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4302,8 +4729,21 @@ L_08B358E8: L_08B358F0: aot_gpr_31 = (0x08B358F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 347u, 0x08B358F8u, 0x08B335BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 719u, 0x08B335BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B358F8u) goto L_08B358F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B358F8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4377,8 +4817,21 @@ L_08B3596C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B35990u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 356u, 0x08B35990u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35990u) goto L_08B35990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35990: aot_gpr_31 = (0x08B35998u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4395,8 +4848,8 @@ L_08B359A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B359B0: @@ -4487,8 +4940,21 @@ L_08B35A44: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B35A68u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 369u, 0x08B35A68u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35A68u) goto L_08B35A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35A68: aot_gpr_31 = (0x08B35A70u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4505,8 +4971,8 @@ L_08B35A78: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B35A88: @@ -4627,8 +5093,21 @@ L_08B35B3C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B35B5Cu); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 386u, 0x08B35B5Cu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35B5Cu) goto L_08B35B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35B5C: aot_gpr_31 = (0x08B35B64u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4695,8 +5174,21 @@ L_08B35BC8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B35BECu); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 394u, 0x08B35BECu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35BECu) goto L_08B35BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35BEC: aot_gpr_31 = (0x08B35BF4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4713,8 +5205,8 @@ L_08B35BFC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B35C0C: @@ -4787,8 +5279,21 @@ L_08B35C68: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08B35C78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 406u, 0x08B35C78u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35C78u) goto L_08B35C78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35C78: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4810,8 +5315,21 @@ L_08B35C88: L_08B35C90: aot_gpr_31 = (0x08B35C98u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 410u, 0x08B35C98u, 0x08B336A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 727u, 0x08B336A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35C98u) goto L_08B35C98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35C98: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4892,8 +5410,21 @@ L_08B35D24: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B35D40u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 420u, 0x08B35D40u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35D40u) goto L_08B35D40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35D40: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(0u)); aot_gpr_31 = (0x08B35D4Cu); @@ -4972,8 +5503,21 @@ L_08B35DC8: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B35DECu); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 430u, 0x08B35DECu, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B35DECu) goto L_08B35DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B35DEC: aot_gpr_31 = (0x08B35DF4u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4990,8 +5534,8 @@ L_08B35DFC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B35E0C: @@ -5344,8 +5888,8 @@ L_08B360F8: goto L_08B36100; L_08B36100: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B36108: @@ -5360,8 +5904,21 @@ L_08B36108: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x08B36138u); aot_gpr_5 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 477u, 0x08B36138u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36138u) goto L_08B36138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36138: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); aot_gpr_4 = (aot_gpr_4 & 32768u); @@ -5377,8 +5934,21 @@ L_08B36148: L_08B3614C: aot_gpr_31 = (0x08B36154u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 480u, 0x08B36154u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36154u) goto L_08B36154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36154: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5390,13 +5960,39 @@ L_08B3615C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(45)))))); aot_gpr_31 = (0x08B36168u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(46)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 482u, 0x08B36168u, 0x08B32D90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 613u, 0x08B32D90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36168u) goto L_08B36168; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36168: aot_gpr_31 = (0x08B36170u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 483u, 0x08B36170u, 0x08AECC3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 217u, 0x08AECC3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36170u) goto L_08B36170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36170: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5408,8 +6004,21 @@ L_08B36178: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B36184u); aot_gpr_4 = (0u | 1584u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 485u, 0x08B36184u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36184u) goto L_08B36184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36184: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5423,8 +6032,21 @@ L_08B36190: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B361A0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 487u, 0x08B361A0u, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B361A0u) goto L_08B361A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B361A0: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_08B361A4; @@ -5444,8 +6066,21 @@ L_08B361A4: L_08B361C0: aot_gpr_31 = (0x08B361C8u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 490u, 0x08B361C8u, 0x08AECA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 168u, 0x08AECA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B361C8u) goto L_08B361C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B361C8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5457,8 +6092,21 @@ L_08B361D0: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B361DCu); aot_gpr_4 = (0u | 1184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 492u, 0x08B361DCu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B361DCu) goto L_08B361DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B361DC: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -5471,8 +6119,21 @@ L_08B361E8: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B361F8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 494u, 0x08B361F8u, 0x088A2F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 689u, 0x088A2F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B361F8u) goto L_08B361F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B361F8: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -5489,8 +6150,21 @@ L_08B36200: L_08B3620C: aot_gpr_31 = (0x08B36214u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 497u, 0x08B36214u, 0x08AECAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 181u, 0x08AECAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36214u) goto L_08B36214; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36214: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5502,8 +6176,21 @@ L_08B3621C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B36228u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 499u, 0x08B36228u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36228u) goto L_08B36228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36228: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -5517,8 +6204,21 @@ L_08B36234: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B36248u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 501u, 0x08B36248u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36248u) goto L_08B36248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36248: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -5535,8 +6235,21 @@ L_08B36250: L_08B3625C: aot_gpr_31 = (0x08B36264u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 504u, 0x08B36264u, 0x08AECCC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 229u, 0x08AECCC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36264u) goto L_08B36264; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36264: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5548,8 +6261,21 @@ L_08B3626C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B36278u); aot_gpr_4 = (0u | 1632u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 506u, 0x08B36278u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36278u) goto L_08B36278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36278: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -5563,8 +6289,21 @@ L_08B36284: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B36294u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 508u, 0x08B36294u, 0x08969648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 304u, 0x08969648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36294u) goto L_08B36294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36294: ctx.gpr[18] = (ctx.gpr[19] | 0u); goto L_08B36298; @@ -5584,8 +6323,21 @@ L_08B36298: L_08B362B4: aot_gpr_31 = (0x08B362BCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 511u, 0x08B362BCu, 0x08AECD48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 241u, 0x08AECD48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B362BCu) goto L_08B362BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B362BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5597,8 +6349,21 @@ L_08B362C4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B362D0u); aot_gpr_4 = (0u | 1984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 513u, 0x08B362D0u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B362D0u) goto L_08B362D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B362D0: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -5629,8 +6394,21 @@ L_08B362F4: L_08B36300: aot_gpr_31 = (0x08B36308u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 518u, 0x08B36308u, 0x08AECB2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 193u, 0x08AECB2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36308u) goto L_08B36308; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36308: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5642,8 +6420,21 @@ L_08B36310: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B3631Cu); aot_gpr_4 = (0u | 2080u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 520u, 0x08B3631Cu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3631Cu) goto L_08B3631C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3631C: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -5656,8 +6447,21 @@ L_08B36328: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B36338u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 522u, 0x08B36338u, 0x089ED94Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 226u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 226u, 0x089ED94Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36338u) goto L_08B36338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36338: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -5674,8 +6478,21 @@ L_08B36340: L_08B3634C: aot_gpr_31 = (0x08B36354u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 525u, 0x08B36354u, 0x08AECBB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 205u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 205u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 205u, 0x08AECBB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36354u) goto L_08B36354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36354: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5687,8 +6504,21 @@ L_08B3635C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B36368u); aot_gpr_4 = (0u | 2064u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 527u, 0x08B36368u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36368u) goto L_08B36368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36368: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -5701,8 +6531,21 @@ L_08B36374: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B36384u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 529u, 0x08B36384u, 0x089D96B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 257u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 257u, 0x089D96B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36384u) goto L_08B36384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36384: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -5720,8 +6563,21 @@ L_08B36398: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B363A4u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 532u, 0x08B363A4u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B363A4u) goto L_08B363A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B363A4: ctx.gpr[19] = (ctx.gpr[2] | 0u); if (ctx.gpr[19] == 0u) { @@ -5735,8 +6591,21 @@ L_08B363B0: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B363C4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 534u, 0x08B363C4u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B363C4u) goto L_08B363C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B363C4: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -5775,8 +6644,21 @@ L_08B363D4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(40), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B36448u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 537u, 0x08B36448u, 0x08B00520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 72u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 72u, 0x08B00520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36448u) goto L_08B36448; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36448: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(36))); aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(548), static_cast(aot_gpr_4)); @@ -6169,8 +7051,8 @@ L_08B36774: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B36790: @@ -6262,8 +7144,21 @@ L_08B3681C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B36830u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 595u, 0x08B36830u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36830u) goto L_08B36830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36830: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6280,8 +7175,21 @@ L_08B36838: goto L_08B3684C; L_08B3684C: aot_gpr_31 = (0x08B36854u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 598u, 0x08B36854u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36854u) goto L_08B36854; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36854: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6295,8 +7203,21 @@ L_08B36860: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B36870u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 600u, 0x08B36870u, 0x08B33424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 703u, 0x08B33424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36870u) goto L_08B36870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36870: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -6561,8 +7482,8 @@ L_08B36A60: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31328))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B36A78: @@ -6590,8 +7511,21 @@ L_08B36A90: L_08B36A98: aot_gpr_31 = (0x08B36AA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 636u, 0x08B36AA0u, 0x08B38938u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 193u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 193u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 193u, 0x08B38938u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36AA0u) goto L_08B36AA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36AA0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6602,8 +7536,21 @@ L_08B36AA0: L_08B36AA8: aot_gpr_31 = (0x08B36AB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 638u, 0x08B36AB0u, 0x08B38D54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 259u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 259u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 259u, 0x08B38D54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36AB0u) goto L_08B36AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36AB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6625,8 +7572,21 @@ L_08B36AC0: L_08B36AC8: aot_gpr_31 = (0x08B36AD0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 642u, 0x08B36AD0u, 0x08B3939Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 372u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 372u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 372u, 0x08B3939Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36AD0u) goto L_08B36AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36AD0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6637,8 +7597,21 @@ L_08B36AD0: L_08B36AD8: aot_gpr_31 = (0x08B36AE0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 644u, 0x08B36AE0u, 0x08B397DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 445u, 0x08B397DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36AE0u) goto L_08B36AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36AE0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6649,8 +7622,21 @@ L_08B36AE0: L_08B36AE8: aot_gpr_31 = (0x08B36AF0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 646u, 0x08B36AF0u, 0x08B39E2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 522u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 522u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 522u, 0x08B39E2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36AF0u) goto L_08B36AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36AF0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6683,8 +7669,21 @@ L_08B36B10: L_08B36B18: aot_gpr_31 = (0x08B36B20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 652u, 0x08B36B20u, 0x08B3A25Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 590u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 590u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 590u, 0x08B3A25Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36B20u) goto L_08B36B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36B20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6695,8 +7694,21 @@ L_08B36B20: L_08B36B28: aot_gpr_31 = (0x08B36B30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 654u, 0x08B36B30u, 0x08B3A750u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 677u, 0x08B3A750u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36B30u) goto L_08B36B30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36B30: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6717,8 +7729,8 @@ L_08B36B40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B36B54: @@ -6882,8 +7894,21 @@ L_08B36CF4: } L_08B36CFC: aot_gpr_31 = (0x08B36D04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 672u, 0x08B36D04u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B36D04u) goto L_08B36D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B36D04: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -7092,8 +8117,8 @@ L_08B36EB8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B36EEC: @@ -7114,8 +8139,8 @@ L_08B36F00: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31208))); jump_target = ctx.gpr[1]; aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(62))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B36F18: @@ -7204,8 +8229,8 @@ L_08B36F78: } L_08B36F80: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B36F88: @@ -7261,8 +8286,21 @@ L_08B36FF4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B37004u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(140), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 716u, 0x08B37004u, 0x08B331CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 661u, 0x08B331CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37004u) goto L_08B37004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37004: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7272,13 +8310,39 @@ L_08B37004: } L_08B3700C: aot_gpr_31 = (0x08B37014u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 718u, 0x08B37014u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37014u) goto L_08B37014; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37014: aot_gpr_31 = (0x08B3701Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 719u, 0x08B3701Cu, 0x0896E470u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 550u, 0x0896E470u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3701Cu) goto L_08B3701C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3701C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7314,13 +8378,39 @@ L_08B37058: } L_08B37064: aot_gpr_31 = (0x08B3706Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 723u, 0x08B3706Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3706Cu) goto L_08B3706C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3706C: aot_gpr_31 = (0x08B37074u); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(636))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 724u, 0x08B37074u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37074u) goto L_08B37074; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37074: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(632))); aot_fpr_12 = ctx.fpr[20] / aot_fpr_12; @@ -7377,8 +8467,21 @@ L_08B370E0: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B370F4u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 731u, 0x08B370F4u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B370F4u) goto L_08B370F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B370F4: aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_4)); @@ -7386,8 +8489,21 @@ L_08B370F4: aot_gpr_5 = (0u | 63u); aot_gpr_31 = (0x08B3710Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 732u, 0x08B3710Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3710Cu) goto L_08B3710C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3710C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7401,8 +8517,21 @@ L_08B37114: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B37128u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 734u, 0x08B37128u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37128u) goto L_08B37128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37128: aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_4)); @@ -7410,12 +8539,38 @@ L_08B37128: aot_gpr_5 = (0u | 64u); aot_gpr_31 = (0x08B37140u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 735u, 0x08B37140u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37140u) goto L_08B37140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37140: aot_gpr_31 = (0x08B37148u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 736u, 0x08B37148u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37148u) goto L_08B37148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37148: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7425,22 +8580,61 @@ L_08B37148: } L_08B37150: aot_gpr_31 = (0x08B37158u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 738u, 0x08B37158u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37158u) goto L_08B37158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37158: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x08B37164u); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 739u, 0x08B37164u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37164u) goto L_08B37164; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37164: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B37178u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 740u, 0x08B37178u, 0x08B3312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 650u, 0x08B3312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37178u) goto L_08B37178; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37178: aot_gpr_4 = (17024u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -7463,8 +8657,21 @@ L_08B37190: aot_fpr_14 = aot_fpr_14 + aot_fpr_15; aot_gpr_31 = (0x08B371BCu); aot_fpr_15 = ctx.fpr[16] + aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 742u, 0x08B371BCu, 0x08894E50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 190u, 0x08894E50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B371BCu) goto L_08B371BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B371BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7474,8 +8681,21 @@ L_08B371BC: } L_08B371C4: aot_gpr_31 = (0x08B371CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 744u, 0x08B371CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B371CCu) goto L_08B371CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B371CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7485,14 +8705,40 @@ L_08B371CC: } L_08B371D4: aot_gpr_31 = (0x08B371DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 746u, 0x08B371DCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B371DCu) goto L_08B371DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B371DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B371E8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 747u, 0x08B371E8u, 0x08B33BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 783u, 0x08B33BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B371E8u) goto L_08B371E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B371E8: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(77))); aot_fpr_12 = std::bit_cast(0u); @@ -7550,20 +8796,59 @@ L_08B37244: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B37270u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 753u, 0x08B37270u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37270u) goto L_08B37270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37270: aot_gpr_31 = (0x08B37278u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 754u, 0x08B37278u, 0x089910C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 232u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 232u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 232u, 0x089910C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37278u) goto L_08B37278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37278: aot_gpr_31 = (0x08B37280u); aot_gpr_4 = (aot_gpr_16 | 0u); goto L_08B34444; L_08B37280: aot_gpr_31 = (0x08B37288u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 756u, 0x08B37288u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37288u) goto L_08B37288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37288: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -7572,8 +8857,21 @@ L_08B37288: goto L_08B37290; L_08B37290: aot_gpr_31 = (0x08B37298u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 758u, 0x08B37298u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37298u) goto L_08B37298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37298: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -7596,15 +8894,28 @@ L_08B372AC: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31088))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B372C4: aot_gpr_31 = (0x08B372CCu); ctx.fpr[20] = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 762u, 0x08B372CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B372CCu) goto L_08B372CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B372CC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1752), std::bit_cast(ctx.fpr[20])); @@ -7616,8 +8927,21 @@ L_08B372CC: L_08B372D4: aot_gpr_31 = (0x08B372DCu); ctx.fpr[20] = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 764u, 0x08B372DCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B372DCu) goto L_08B372DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B372DC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1400), std::bit_cast(ctx.fpr[20])); @@ -7629,8 +8953,21 @@ L_08B372DC: L_08B372E4: aot_gpr_31 = (0x08B372ECu); ctx.fpr[20] = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 766u, 0x08B372ECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B372ECu) goto L_08B372EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B372EC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1752), std::bit_cast(ctx.fpr[20])); @@ -7642,8 +8979,21 @@ L_08B372EC: L_08B372F4: aot_gpr_31 = (0x08B372FCu); ctx.fpr[20] = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 768u, 0x08B372FCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B372FCu) goto L_08B372FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B372FC: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1400), std::bit_cast(ctx.fpr[20])); @@ -7655,8 +9005,21 @@ L_08B372FC: L_08B37304: aot_gpr_31 = (0x08B3730Cu); ctx.gpr[17] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 770u, 0x08B3730Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3730Cu) goto L_08B3730C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3730C: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(627), static_cast(ctx.gpr[17])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -7672,8 +9035,21 @@ L_08B37314: aot_fpr_14 = aot_fpr_14 + aot_fpr_15; aot_gpr_31 = (0x08B3733Cu); aot_fpr_15 = ctx.fpr[16] + aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 772u, 0x08B3733Cu, 0x08894E50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 190u, 0x08894E50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3733Cu) goto L_08B3733C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3733C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7699,8 +9075,21 @@ L_08B37360: aot_gpr_5 = (0u | 65u); aot_gpr_31 = (0x08B37378u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 775u, 0x08B37378u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37378u) goto L_08B37378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37378: aot_gpr_31 = (0x08B37380u); ctx.gpr[17] = (0u | 0u); @@ -7766,8 +9155,21 @@ L_08B373DC: L_08B373E4: aot_gpr_31 = (0x08B373ECu); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 787u, 0x08B373ECu, 0x08AB4098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 16u, 0x08AB4098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B373ECu) goto L_08B373EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B373EC: aot_gpr_31 = (0x08B373F4u); aot_gpr_4 = (0u | 0u); @@ -7788,8 +9190,21 @@ L_08B37408: aot_gpr_5 = (aot_gpr_5 & aot_gpr_6); aot_gpr_31 = (0x08B37420u); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 790u, 0x08B37420u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37420u) goto L_08B37420; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37420: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7799,8 +9214,21 @@ L_08B37420: } L_08B37428: aot_gpr_31 = (0x08B37430u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 792u, 0x08B37430u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37430u) goto L_08B37430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37430: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7811,8 +9239,21 @@ L_08B37430: } L_08B3743C: aot_gpr_31 = (0x08B37444u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 794u, 0x08B37444u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37444u) goto L_08B37444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37444: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 6u); @@ -7824,8 +9265,21 @@ L_08B37444: } L_08B37454: aot_gpr_31 = (0x08B3745Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 796u, 0x08B3745Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3745Cu) goto L_08B3745C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3745C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 8u); @@ -7837,8 +9291,21 @@ L_08B3745C: } L_08B3746C: aot_gpr_31 = (0x08B37474u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 798u, 0x08B37474u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37474u) goto L_08B37474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37474: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 9u); @@ -7850,13 +9317,39 @@ L_08B37474: } L_08B37484: aot_gpr_31 = (0x08B3748Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 800u, 0x08B3748Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3748Cu) goto L_08B3748C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3748C: aot_gpr_31 = (0x08B37494u); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(636))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 801u, 0x08B37494u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37494u) goto L_08B37494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37494: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(632))); aot_fpr_12 = ctx.fpr[20] / aot_fpr_12; @@ -7875,18 +9368,57 @@ L_08B374B8: goto L_08B374BC; L_08B374BC: aot_gpr_31 = (0x08B374C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 804u, 0x08B374C4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B374C4u) goto L_08B374C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B374C4: aot_gpr_31 = (0x08B374CCu); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(632))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 805u, 0x08B374CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B374CCu) goto L_08B374CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B374CC: aot_gpr_31 = (0x08B374D4u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(636), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 806u, 0x08B374D4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B374D4u) goto L_08B374D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B374D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -7909,52 +9441,169 @@ L_08B374E8: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31048))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B37500: aot_gpr_31 = (0x08B37508u); ctx.fpr[20] = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 810u, 0x08B37508u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37508u) goto L_08B37508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37508: aot_gpr_31 = (0x08B37510u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1752), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 811u, 0x08B37510u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37510u) goto L_08B37510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37510: aot_gpr_31 = (0x08B37518u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 812u, 0x08B37518u, 0x088327B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 576u, 0x088327B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37518u) goto L_08B37518; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37518: aot_gpr_31 = (0x08B37520u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 813u, 0x08B37520u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37520u) goto L_08B37520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37520: aot_gpr_31 = (0x08B37528u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 814u, 0x08B37528u, 0x088331D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 711u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 711u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 711u, 0x088331D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37528u) goto L_08B37528; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37528: aot_gpr_31 = (0x08B37530u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 815u, 0x08B37530u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37530u) goto L_08B37530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37530: aot_gpr_31 = (0x08B37538u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 816u, 0x08B37538u, 0x08832FA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 681u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 681u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 681u, 0x08832FA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37538u) goto L_08B37538; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37538: aot_gpr_31 = (0x08B37540u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 817u, 0x08B37540u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37540u) goto L_08B37540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37540: aot_gpr_31 = (0x08B37548u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0011. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 818u, 0x08B37548u, 0x088330BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0011_entry(rt, ctx, 696u, aot_mem); +#else + recomp_unit_0011_entry(rt, ctx, 696u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0011_entry, 11u, 696u, 0x088330BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37548u) goto L_08B37548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37548: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7965,18 +9614,57 @@ L_08B37548: L_08B37550: aot_gpr_31 = (0x08B37558u); ctx.fpr[20] = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 820u, 0x08B37558u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37558u) goto L_08B37558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37558: aot_gpr_31 = (0x08B37560u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1400), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 821u, 0x08B37560u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37560u) goto L_08B37560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37560: aot_gpr_31 = (0x08B37568u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 822u, 0x08B37568u, 0x08A5959Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 311u, 0x08A5959Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37568u) goto L_08B37568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37568: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7987,13 +9675,39 @@ L_08B37568: L_08B37570: aot_gpr_31 = (0x08B37578u); ctx.fpr[20] = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 824u, 0x08B37578u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37578u) goto L_08B37578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37578: aot_gpr_31 = (0x08B37580u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1752), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 825u, 0x08B37580u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37580u) goto L_08B37580; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37580: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(92))); aot_gpr_4 = (aot_gpr_4 + static_cast(464)); @@ -8015,18 +9729,57 @@ L_08B37598: L_08B375A0: aot_gpr_31 = (0x08B375A8u); ctx.fpr[20] = std::bit_cast(0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 828u, 0x08B375A8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B375A8u) goto L_08B375A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B375A8: aot_gpr_31 = (0x08B375B0u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1400), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 829u, 0x08B375B0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B375B0u) goto L_08B375B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B375B0: aot_gpr_31 = (0x08B375B8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 830u, 0x08B375B8u, 0x08A5959Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 311u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 311u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 311u, 0x08A5959Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B375B8u) goto L_08B375B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B375B8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8036,8 +9789,21 @@ L_08B375B8: } L_08B375C0: aot_gpr_31 = (0x08B375C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 832u, 0x08B375C8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B375C8u) goto L_08B375C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B375C8: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(680), aot_gpr_4); @@ -8045,8 +9811,21 @@ L_08B375C8: aot_gpr_4 = (aot_gpr_4 + static_cast(1)); aot_gpr_31 = (0x08B375E0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9344), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 833u, 0x08B375E0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B375E0u) goto L_08B375E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B375E0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(40))); aot_fpr_13 = std::bit_cast(0u); @@ -8059,69 +9838,225 @@ L_08B375E0: } L_08B375F8: aot_gpr_31 = (0x08B37600u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 835u, 0x08B37600u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37600u) goto L_08B37600; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37600: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(32))); aot_gpr_31 = (0x08B3760Cu); ctx.fpr[20] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 836u, 0x08B3760Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3760Cu) goto L_08B3760C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3760C: aot_gpr_31 = (0x08B37614u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(32), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 837u, 0x08B37614u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37614u) goto L_08B37614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37614: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(36))); aot_gpr_31 = (0x08B37620u); ctx.fpr[20] = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 838u, 0x08B37620u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37620u) goto L_08B37620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37620: aot_gpr_31 = (0x08B37628u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(36), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 839u, 0x08B37628u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37628u) goto L_08B37628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37628: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(40))); aot_gpr_31 = (0x08B37634u); ctx.fpr[20] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 840u, 0x08B37634u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37634u) goto L_08B37634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37634: aot_gpr_31 = (0x08B3763Cu); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(40), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 841u, 0x08B3763Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3763Cu) goto L_08B3763C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3763C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_gpr_31 = (0x08B37648u); ctx.fpr[20] = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 842u, 0x08B37648u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37648u) goto L_08B37648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37648: aot_gpr_31 = (0x08B37650u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(0), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 843u, 0x08B37650u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37650u) goto L_08B37650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37650: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_gpr_31 = (0x08B3765Cu); ctx.fpr[20] = std::bit_cast(std::bit_cast(aot_fpr_12) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 844u, 0x08B3765Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3765Cu) goto L_08B3765C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3765C: aot_gpr_31 = (0x08B37664u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(4), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 845u, 0x08B37664u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37664u) goto L_08B37664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37664: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(8))); aot_gpr_31 = (0x08B37670u); ctx.fpr[20] = std::bit_cast(std::bit_cast(aot_fpr_13) ^ 0x80000000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 846u, 0x08B37670u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37670u) goto L_08B37670; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37670: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), std::bit_cast(ctx.fpr[20])); goto L_08B37674; @@ -8129,8 +10064,21 @@ L_08B37674: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B37680u); ctx.gpr[19] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 848u, 0x08B37680u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37680u) goto L_08B37680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37680: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8141,8 +10089,21 @@ L_08B37680: } L_08B3768C: aot_gpr_31 = (0x08B37694u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 850u, 0x08B37694u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37694u) goto L_08B37694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37694: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 6u); @@ -8154,8 +10115,21 @@ L_08B37694: } L_08B376A4: aot_gpr_31 = (0x08B376ACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 852u, 0x08B376ACu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B376ACu) goto L_08B376AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B376AC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 8u); @@ -8167,8 +10141,21 @@ L_08B376AC: } L_08B376BC: aot_gpr_31 = (0x08B376C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 854u, 0x08B376C4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B376C4u) goto L_08B376C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B376C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 9u); @@ -8180,8 +10167,21 @@ L_08B376C4: } L_08B376D4: aot_gpr_31 = (0x08B376DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 856u, 0x08B376DCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B376DCu) goto L_08B376DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B376DC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(616)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -8203,18 +10203,57 @@ L_08B376F0: } L_08B376F8: aot_gpr_31 = (0x08B37700u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 860u, 0x08B37700u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37700u) goto L_08B37700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37700: aot_gpr_31 = (0x08B37708u); ctx.gpr[18] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(896)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 861u, 0x08B37708u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37708u) goto L_08B37708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37708: aot_gpr_31 = (0x08B37710u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 862u, 0x08B37710u, 0x08AFFDDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 933u, 0x08AFFDDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37710u) goto L_08B37710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37710: ctx.gpr[19] = (0u | 0u); goto L_08B37714; @@ -8228,8 +10267,21 @@ L_08B37714: } L_08B37720: aot_gpr_31 = (0x08B37728u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 865u, 0x08B37728u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37728u) goto L_08B37728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37728: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(896)))))); { const bool branch_taken = aot_gpr_4 != ctx.gpr[18]; @@ -8240,13 +10292,39 @@ L_08B37728: } L_08B37734: aot_gpr_31 = (0x08B3773Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 867u, 0x08B3773Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3773Cu) goto L_08B3773C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3773C: aot_gpr_31 = (0x08B37744u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 868u, 0x08B37744u, 0x08AFFDDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 933u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 933u, 0x08AFFDDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37744u) goto L_08B37744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37744: ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); { const bool branch_taken = 0u == 0u; @@ -8277,15 +10355,41 @@ L_08B37764: goto L_08B37768; L_08B37768: aot_gpr_31 = (0x08B37770u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 873u, 0x08B37770u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37770u) goto L_08B37770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37770: aot_gpr_4 = (ctx.gpr[2] + static_cast(548)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08B37780u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 874u, 0x08B37780u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37780u) goto L_08B37780; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37780: aot_gpr_4 = (ctx.gpr[2] + static_cast(552)); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -9123,8 +11227,21 @@ L_08B37C5C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B37CC0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0063. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 888u, 0x08B37CC0u, 0x0890043Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0063_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0063_entry, 63u, 90u, 0x0890043Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37CC0u) goto L_08B37CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37CC0: aot_gpr_4 = (ctx.gpr[21] + static_cast(1)); ctx.gpr[21] = (aot_gpr_4 << 16u); @@ -9139,8 +11256,21 @@ L_08B37CC0: } L_08B37CD8: aot_gpr_31 = (0x08B37CE0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 890u, 0x08B37CE0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37CE0u) goto L_08B37CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37CE0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B37CECu); @@ -9197,8 +11327,21 @@ L_08B37D3C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(172), aot_gpr_5); aot_gpr_31 = (0x08B37D7Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(9396), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 895u, 0x08B37D7Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37D7Cu) goto L_08B37D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37D7C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9208,8 +11351,21 @@ L_08B37D7C: } L_08B37D84: aot_gpr_31 = (0x08B37D8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 897u, 0x08B37D8Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37D8Cu) goto L_08B37D8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37D8C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 8u); @@ -9225,8 +11381,21 @@ L_08B37D9C: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B37DB0u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 899u, 0x08B37DB0u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37DB0u) goto L_08B37DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37DB0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9240,8 +11409,21 @@ L_08B37DB8: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B37DCCu); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 901u, 0x08B37DCCu, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37DCCu) goto L_08B37DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37DCC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9251,8 +11433,21 @@ L_08B37DCC: } L_08B37DD4: aot_gpr_31 = (0x08B37DDCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 903u, 0x08B37DDCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37DDCu) goto L_08B37DDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37DDC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9262,8 +11457,21 @@ L_08B37DDC: } L_08B37DE4: aot_gpr_31 = (0x08B37DECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 905u, 0x08B37DECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37DECu) goto L_08B37DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37DEC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); aot_gpr_5 = (0u | 8u); @@ -9279,8 +11487,21 @@ L_08B37DFC: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B37E10u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 907u, 0x08B37E10u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37E10u) goto L_08B37E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37E10: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9294,8 +11515,21 @@ L_08B37E18: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B37E2Cu); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 909u, 0x08B37E2Cu, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37E2Cu) goto L_08B37E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37E2C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9329,8 +11563,21 @@ L_08B37E54: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B37E68u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 914u, 0x08B37E68u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37E68u) goto L_08B37E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37E68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9344,8 +11591,21 @@ L_08B37E70: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B37E84u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 916u, 0x08B37E84u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37E84u) goto L_08B37E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37E84: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(65), static_cast(aot_gpr_4)); @@ -9362,8 +11622,21 @@ L_08B37E90: aot_fpr_14 = aot_fpr_14 + aot_fpr_15; aot_gpr_31 = (0x08B37EB8u); aot_fpr_15 = ctx.fpr[16] + aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 918u, 0x08B37EB8u, 0x08894E50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 190u, 0x08894E50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37EB8u) goto L_08B37EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37EB8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -9426,8 +11699,21 @@ L_08B37F1C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B37F40u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 925u, 0x08B37F40u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37F40u) goto L_08B37F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37F40: aot_gpr_31 = (0x08B37F48u); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -9441,8 +11727,21 @@ L_08B37F48: } L_08B37F50: aot_gpr_31 = (0x08B37F58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 928u, 0x08B37F58u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37F58u) goto L_08B37F58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37F58: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9452,16 +11751,42 @@ L_08B37F58: } L_08B37F60: aot_gpr_31 = (0x08B37F68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 930u, 0x08B37F68u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37F68u) goto L_08B37F68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37F68: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(627), static_cast(0u)); goto L_08B37F6C; L_08B37F6C: aot_gpr_31 = (0x08B37F74u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0204->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0204_entry, 932u, 0x08B37F74u, 0x08B336A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 727u, 0x08B336A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B37F74u) goto L_08B37F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B37F74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9499,8 +11824,8 @@ L_08B37F8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(784)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B37FC8: diff --git a/profiles/vcs/generated/generated_unit_0205.cpp b/profiles/vcs/generated/generated_unit_0205.cpp index 461e999..de490c6 100644 --- a/profiles/vcs/generated/generated_unit_0205.cpp +++ b/profiles/vcs/generated/generated_unit_0205.cpp @@ -1139,6 +1139,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B38000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1193,13 +1217,39 @@ L_08B38020: L_08B38028: aot_gpr_31 = (0x08B38030u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 7u, 0x08B38030u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38030u) goto L_08B38030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38030: aot_gpr_31 = (0x08B38038u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 8u, 0x08B38038u, 0x08B331CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 661u, 0x08B331CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38038u) goto L_08B38038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38038: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1209,13 +1259,39 @@ L_08B38038: } L_08B38040: aot_gpr_31 = (0x08B38048u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 10u, 0x08B38048u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38048u) goto L_08B38048; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38048: aot_gpr_31 = (0x08B38050u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 11u, 0x08B38050u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38050u) goto L_08B38050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38050: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1230,8 +1306,21 @@ L_08B3805C: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B38070u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 13u, 0x08B38070u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38070u) goto L_08B38070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38070: aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_4)); @@ -1239,8 +1328,21 @@ L_08B38070: aot_gpr_5 = (0u | 66u); aot_gpr_31 = (0x08B38088u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 14u, 0x08B38088u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38088u) goto L_08B38088; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38088: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1257,8 +1359,21 @@ L_08B38090: } L_08B38098: aot_gpr_31 = (0x08B380A0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 17u, 0x08B380A0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B380A0u) goto L_08B380A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B380A0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(1653)))))); aot_gpr_4 = (aot_gpr_4 & 7u); @@ -1325,8 +1440,21 @@ L_08B38124: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B38138u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 24u, 0x08B38138u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38138u) goto L_08B38138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38138: aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_4)); @@ -1334,8 +1462,21 @@ L_08B38138: aot_gpr_5 = (0u | 63u); aot_gpr_31 = (0x08B38150u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 25u, 0x08B38150u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38150u) goto L_08B38150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38150: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1349,8 +1490,21 @@ L_08B38158: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B3816Cu); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 27u, 0x08B3816Cu, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3816Cu) goto L_08B3816C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3816C: aot_gpr_4 = (0u | 4u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_4)); @@ -1358,8 +1512,21 @@ L_08B3816C: aot_gpr_5 = (0u | 66u); aot_gpr_31 = (0x08B38184u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 28u, 0x08B38184u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38184u) goto L_08B38184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38184: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1369,8 +1536,21 @@ L_08B38184: } L_08B3818C: aot_gpr_31 = (0x08B38194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 30u, 0x08B38194u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38194u) goto L_08B38194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38194: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1380,14 +1560,40 @@ L_08B38194: } L_08B3819C: aot_gpr_31 = (0x08B381A4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 32u, 0x08B381A4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B381A4u) goto L_08B381A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B381A4: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B381B0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 33u, 0x08B381B0u, 0x08B33BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 783u, 0x08B33BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B381B0u) goto L_08B381B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B381B0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(77))); aot_fpr_12 = std::bit_cast(0u); @@ -1445,12 +1651,38 @@ L_08B3820C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B38238u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 39u, 0x08B38238u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38238u) goto L_08B38238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38238: aot_gpr_31 = (0x08B38240u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 40u, 0x08B38240u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38240u) goto L_08B38240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38240: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1461,16 +1693,42 @@ L_08B38240: L_08B38248: aot_gpr_31 = (0x08B38250u); ctx.gpr[17] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 42u, 0x08B38250u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38250u) goto L_08B38250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38250: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(627), static_cast(ctx.gpr[17])); goto L_08B38254; L_08B38254: aot_gpr_31 = (0x08B3825Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 44u, 0x08B3825Cu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3825Cu) goto L_08B3825C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3825C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(61))); aot_gpr_5 = (0u | 4u); @@ -1485,8 +1743,21 @@ L_08B3826C: aot_gpr_4 = (0u | 363u); aot_gpr_31 = (0x08B3827Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 46u, 0x08B3827Cu, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3827Cu) goto L_08B3827C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3827C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1516,8 +1787,21 @@ L_08B38298: L_08B382A8: aot_gpr_31 = (0x08B382B0u); aot_gpr_4 = (0u | 363u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 50u, 0x08B382B0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B382B0u) goto L_08B382B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B382B0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1530,8 +1814,21 @@ L_08B382B8: aot_gpr_4 = (0u | 363u); aot_gpr_31 = (0x08B382C8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 52u, 0x08B382C8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B382C8u) goto L_08B382C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B382C8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1562,8 +1859,21 @@ L_08B382EC: aot_gpr_5 = (0u | 67u); aot_gpr_31 = (0x08B382FCu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 56u, 0x08B382FCu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B382FCu) goto L_08B382FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B382FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1598,8 +1908,21 @@ L_08B3831C: aot_gpr_5 = (0u | 68u); aot_gpr_31 = (0x08B3832Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 61u, 0x08B3832Cu, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3832Cu) goto L_08B3832C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3832C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1612,8 +1935,21 @@ L_08B38334: aot_gpr_5 = (0u | 69u); aot_gpr_31 = (0x08B38344u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 63u, 0x08B38344u, 0x08A062F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 553u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 553u, 0x08A062F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38344u) goto L_08B38344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38344: aot_gpr_4 = (0u | 3u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_4)); @@ -1657,8 +1993,21 @@ L_08B38394: goto L_08B383BC; L_08B383BC: aot_gpr_31 = (0x08B383C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 67u, 0x08B383C4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B383C4u) goto L_08B383C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B383C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1668,8 +2017,21 @@ L_08B383C4: } L_08B383CC: aot_gpr_31 = (0x08B383D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 69u, 0x08B383D4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B383D4u) goto L_08B383D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B383D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1680,8 +2042,21 @@ L_08B383D4: } L_08B383E0: aot_gpr_31 = (0x08B383E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 71u, 0x08B383E8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B383E8u) goto L_08B383E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B383E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(852))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1692,8 +2067,21 @@ L_08B383E8: } L_08B383F4: aot_gpr_31 = (0x08B383FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 73u, 0x08B383FCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B383FCu) goto L_08B383FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B383FC: aot_gpr_4 = (ctx.gpr[2] + static_cast(1653)); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); @@ -1711,8 +2099,21 @@ L_08B383FC: L_08B38428: aot_gpr_31 = (0x08B38430u); ctx.gpr[17] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 75u, 0x08B38430u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38430u) goto L_08B38430; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38430: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(1656), ctx.gpr[17]); @@ -1829,8 +2230,21 @@ L_08B384D4: } L_08B384E4: aot_gpr_31 = (0x08B384ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 90u, 0x08B384ECu, 0x0896E500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 564u, 0x0896E500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B384ECu) goto L_08B384EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B384EC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(9324))); aot_gpr_4 = (aot_gpr_4 + static_cast(10)); @@ -1950,8 +2364,21 @@ L_08B3858C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08B38598u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 108u, 0x08B38598u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38598u) goto L_08B38598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38598: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1975,8 +2402,21 @@ L_08B385B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08B385C0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(4392)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 113u, 0x08B385C0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B385C0u) goto L_08B385C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B385C0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -1984,8 +2424,21 @@ L_08B385C0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B385D8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 114u, 0x08B385D8u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B385D8u) goto L_08B385D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B385D8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2019,8 +2472,21 @@ L_08B38600: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08B3860Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 120u, 0x08B3860Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3860Cu) goto L_08B3860C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3860C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2044,8 +2510,21 @@ L_08B38628: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08B38634u); aot_gpr_5 = (ctx.gpr[28] + static_cast(4400)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 125u, 0x08B38634u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38634u) goto L_08B38634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38634: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -2053,8 +2532,21 @@ L_08B38634: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B3864Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 126u, 0x08B3864Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3864Cu) goto L_08B3864C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3864C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2129,8 +2621,21 @@ L_08B386AC: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08B386B8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 138u, 0x08B386B8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B386B8u) goto L_08B386B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B386B8: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2154,8 +2659,21 @@ L_08B386D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08B386E0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(4408)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 143u, 0x08B386E0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B386E0u) goto L_08B386E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B386E0: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -2163,8 +2681,21 @@ L_08B386E0: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B386F8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 144u, 0x08B386F8u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B386F8u) goto L_08B386F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B386F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2198,8 +2729,21 @@ L_08B38720: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08B3872Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 150u, 0x08B3872Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3872Cu) goto L_08B3872C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3872C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -2223,8 +2767,21 @@ L_08B38748: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08B38754u); aot_gpr_5 = (ctx.gpr[28] + static_cast(4416)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 155u, 0x08B38754u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38754u) goto L_08B38754; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38754: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -2232,8 +2789,21 @@ L_08B38754: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B3876Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 156u, 0x08B3876Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3876Cu) goto L_08B3876C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3876C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2267,8 +2837,21 @@ L_08B38794: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B387A0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 162u, 0x08B387A0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B387A0u) goto L_08B387A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B387A0: ctx.gpr[18] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -2292,8 +2875,21 @@ L_08B387BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08B387C8u); aot_gpr_5 = (ctx.gpr[28] + static_cast(4424)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 167u, 0x08B387C8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B387C8u) goto L_08B387C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B387C8: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -2301,8 +2897,21 @@ L_08B387C8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B387E0u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 168u, 0x08B387E0u, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B387E0u) goto L_08B387E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B387E0: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-17331))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2317,8 +2926,21 @@ L_08B387EC: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B38800u); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 170u, 0x08B38800u, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38800u) goto L_08B38800; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38800: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2332,8 +2954,21 @@ L_08B38808: aot_gpr_6 = (0u | 4000u); aot_gpr_31 = (0x08B3881Cu); ctx.gpr[7] = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 172u, 0x08B3881Cu, 0x0896D898u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 399u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 399u, 0x0896D898u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3881Cu) goto L_08B3881C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3881C: aot_gpr_31 = (0x08B38824u); aot_gpr_4 = (0u | 0u); @@ -2416,13 +3051,39 @@ L_08B388B0: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B388D4u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 182u, 0x08B388D4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B388D4u) goto L_08B388D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B388D4: aot_gpr_31 = (0x08B388DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 183u, 0x08B388DCu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B388DCu) goto L_08B388DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B388DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2432,8 +3093,21 @@ L_08B388DC: } L_08B388E4: aot_gpr_31 = (0x08B388ECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 185u, 0x08B388ECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B388ECu) goto L_08B388EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B388EC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2443,16 +3117,42 @@ L_08B388EC: } L_08B388F4: aot_gpr_31 = (0x08B388FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 187u, 0x08B388FCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B388FCu) goto L_08B388FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B388FC: aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(627), static_cast(0u)); goto L_08B38900; L_08B38900: aot_gpr_31 = (0x08B38908u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 189u, 0x08B38908u, 0x08B336A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 727u, 0x08B336A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38908u) goto L_08B38908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38908: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2481,8 +3181,8 @@ L_08B38920: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B38938: @@ -2560,8 +3260,21 @@ L_08B38998: L_08B389A8: aot_gpr_31 = (0x08B389B0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 202u, 0x08B389B0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B389B0u) goto L_08B389B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B389B0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -2573,8 +3286,21 @@ L_08B389B0: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B389D8u); ctx.fpr[22] = aot_fpr_14 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 203u, 0x08B389D8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B389D8u) goto L_08B389D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B389D8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -2585,8 +3311,21 @@ L_08B389D8: aot_fpr_12 = ctx.fpr[16] - aot_fpr_13; aot_gpr_31 = (0x08B389FCu); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 204u, 0x08B389FCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B389FCu) goto L_08B389FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B389FC: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -2596,8 +3335,21 @@ L_08B389FC: { const float fs = aot_fpr_14; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08B38A1Cu); ctx.fpr[24] = ctx.fpr[17] - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 205u, 0x08B38A1Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38A1Cu) goto L_08B38A1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38A1C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -2629,8 +3381,21 @@ L_08B38A64: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B38A70u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 208u, 0x08B38A70u, 0x08B33A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 761u, 0x08B33A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38A70u) goto L_08B38A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38A70: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2662,8 +3427,21 @@ L_08B38A98: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08B38AA8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 212u, 0x08B38AA8u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38AA8u) goto L_08B38AA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38AA8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2681,8 +3459,21 @@ L_08B38AB8: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B38ACCu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 215u, 0x08B38ACCu, 0x08B33424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 703u, 0x08B33424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38ACCu) goto L_08B38ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38ACC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2730,8 +3521,21 @@ L_08B38B1C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); aot_gpr_31 = (0x08B38B28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 222u, 0x08B38B28u, 0x08B33BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 783u, 0x08B33BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38B28u) goto L_08B38B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38B28: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(77))); aot_fpr_14 = std::bit_cast(0u); @@ -2778,8 +3582,21 @@ L_08B38B78: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B38B8Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 228u, 0x08B38B8Cu, 0x08B33424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 703u, 0x08B33424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38B8Cu) goto L_08B38B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38B8C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2814,8 +3631,21 @@ L_08B38BB8: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B38BD4u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 232u, 0x08B38BD4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38BD4u) goto L_08B38BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38BD4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(63))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2838,8 +3668,21 @@ L_08B38BEC: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B38C00u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 235u, 0x08B38C00u, 0x08AFEA38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 592u, 0x08AFEA38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38C00u) goto L_08B38C00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38C00: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(164), 0u); @@ -2882,8 +3725,21 @@ L_08B38C40: L_08B38C44: aot_gpr_31 = (0x08B38C4Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 242u, 0x08B38C4Cu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38C4Cu) goto L_08B38C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38C4C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2893,8 +3749,21 @@ L_08B38C4C: } L_08B38C54: aot_gpr_31 = (0x08B38C5Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 244u, 0x08B38C5Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38C5Cu) goto L_08B38C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38C5C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -2913,22 +3782,61 @@ L_08B38C68: } L_08B38C74: aot_gpr_31 = (0x08B38C7Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 247u, 0x08B38C7Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38C7Cu) goto L_08B38C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38C7C: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x08B38C88u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 248u, 0x08B38C88u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38C88u) goto L_08B38C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38C88: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B38C9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 249u, 0x08B38C9Cu, 0x08B3312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 650u, 0x08B3312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38C9Cu) goto L_08B38C9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38C9C: aot_gpr_4 = (17024u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -2986,13 +3894,39 @@ L_08B38D04: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B38D28u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 256u, 0x08B38D28u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38D28u) goto L_08B38D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38D28: aot_gpr_31 = (0x08B38D30u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 257u, 0x08B38D30u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38D30u) goto L_08B38D30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38D30: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3011,8 +3945,8 @@ L_08B38D38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B38D54: @@ -3069,8 +4003,21 @@ L_08B38DA0: } L_08B38DA8: aot_gpr_31 = (0x08B38DB0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 266u, 0x08B38DB0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38DB0u) goto L_08B38DB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38DB0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3087,8 +4034,21 @@ L_08B38DB8: } L_08B38DC0: aot_gpr_31 = (0x08B38DC8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 269u, 0x08B38DC8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38DC8u) goto L_08B38DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38DC8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3098,14 +4058,40 @@ L_08B38DC8: } L_08B38DD0: aot_gpr_31 = (0x08B38DD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 271u, 0x08B38DD8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38DD8u) goto L_08B38DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38DD8: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(86)))))); aot_gpr_31 = (0x08B38DE4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 272u, 0x08B38DE4u, 0x08B3490Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 126u, 0x08B3490Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38DE4u) goto L_08B38DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38DE4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3115,8 +4101,21 @@ L_08B38DE4: } L_08B38DEC: aot_gpr_31 = (0x08B38DF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 274u, 0x08B38DF4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38DF4u) goto L_08B38DF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38DF4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(164), ctx.gpr[2]); @@ -3134,8 +4133,21 @@ L_08B38DFC: L_08B38E08: aot_gpr_31 = (0x08B38E10u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 277u, 0x08B38E10u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38E10u) goto L_08B38E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38E10: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -3165,8 +4177,21 @@ L_08B38E44: L_08B38E5C: aot_gpr_31 = (0x08B38E64u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 280u, 0x08B38E64u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38E64u) goto L_08B38E64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38E64: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -3196,8 +4221,21 @@ L_08B38E98: L_08B38EB0: aot_gpr_31 = (0x08B38EB8u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 283u, 0x08B38EB8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38EB8u) goto L_08B38EB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38EB8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -3228,8 +4266,21 @@ L_08B38EE0: } L_08B38EEC: aot_gpr_31 = (0x08B38EF4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 287u, 0x08B38EF4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38EF4u) goto L_08B38EF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38EF4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3242,8 +4293,21 @@ L_08B38EFC: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08B38F0Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 289u, 0x08B38F0Cu, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38F0Cu) goto L_08B38F0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38F0C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3261,8 +4325,21 @@ L_08B38F1C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B38F30u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 292u, 0x08B38F30u, 0x08B33424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 703u, 0x08B33424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38F30u) goto L_08B38F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38F30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3365,8 +4442,21 @@ L_08B38FE4: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); aot_gpr_31 = (0x08B38FF0u); aot_gpr_4 = (ctx.gpr[18] + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 305u, 0x08B38FF0u, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B38FF0u) goto L_08B38FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B38FF0: aot_gpr_4 = (ctx.gpr[2] < static_cast(226) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3408,8 +4498,21 @@ L_08B39030: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); aot_gpr_31 = (0x08B3903Cu); aot_gpr_4 = (ctx.gpr[18] + static_cast(944)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 311u, 0x08B3903Cu, 0x08B0D970u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 387u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 387u, 0x08B0D970u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3903Cu) goto L_08B3903C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3903C: aot_gpr_4 = (ctx.gpr[2] < static_cast(226) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3472,8 +4575,21 @@ L_08B390A0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_6)); aot_gpr_31 = (0x08B390C4u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 319u, 0x08B390C4u, 0x08A1CE7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 141u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 141u, 0x08A1CE7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B390C4u) goto L_08B390C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B390C4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3493,8 +4609,21 @@ L_08B390D8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); aot_gpr_31 = (0x08B390E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 322u, 0x08B390E4u, 0x08B33BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 783u, 0x08B33BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B390E4u) goto L_08B390E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B390E4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(77))); aot_fpr_14 = std::bit_cast(0u); @@ -3549,8 +4678,21 @@ L_08B39140: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B39160u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 328u, 0x08B39160u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39160u) goto L_08B39160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39160: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3564,13 +4706,39 @@ L_08B3916C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B3917Cu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_5 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 330u, 0x08B3917Cu, 0x08B349C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 140u, 0x08B349C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3917Cu) goto L_08B3917C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3917C: aot_gpr_31 = (0x08B39184u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 331u, 0x08B39184u, 0x08AFEA38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 592u, 0x08AFEA38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39184u) goto L_08B39184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39184: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(164), 0u); aot_gpr_31 = (0x08B39190u); @@ -3595,8 +4763,21 @@ L_08B391A4: L_08B391B8: aot_gpr_31 = (0x08B391C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 335u, 0x08B391C0u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B391C0u) goto L_08B391C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B391C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3606,8 +4787,21 @@ L_08B391C0: } L_08B391C8: aot_gpr_31 = (0x08B391D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 337u, 0x08B391D0u, 0x088634F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 617u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 617u, 0x088634F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B391D0u) goto L_08B391D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B391D0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3624,8 +4818,21 @@ L_08B391E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B391F0u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 340u, 0x08B391F0u, 0x08B33424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 703u, 0x08B33424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B391F0u) goto L_08B391F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B391F0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3639,8 +4846,21 @@ L_08B391F8: goto L_08B39200; L_08B39200: aot_gpr_31 = (0x08B39208u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 343u, 0x08B39208u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39208u) goto L_08B39208; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39208: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3650,22 +4870,61 @@ L_08B39208: } L_08B39210: aot_gpr_31 = (0x08B39218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 345u, 0x08B39218u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39218u) goto L_08B39218; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39218: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x08B39224u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 346u, 0x08B39224u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39224u) goto L_08B39224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39224: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B39238u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 347u, 0x08B39238u, 0x08B34A90u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 156u, 0x08B34A90u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39238u) goto L_08B39238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39238: aot_gpr_4 = (17024u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3678,8 +4937,21 @@ L_08B39238: } L_08B39250: aot_gpr_31 = (0x08B39258u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 349u, 0x08B39258u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39258u) goto L_08B39258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39258: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); @@ -3693,14 +4965,40 @@ L_08B39258: } L_08B39274: aot_gpr_31 = (0x08B3927Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 351u, 0x08B3927Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3927Cu) goto L_08B3927C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3927C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(86)))))); aot_gpr_31 = (0x08B39288u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 352u, 0x08B39288u, 0x08B3490Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 126u, 0x08B3490Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39288u) goto L_08B39288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39288: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3710,8 +5008,21 @@ L_08B39288: } L_08B39290: aot_gpr_31 = (0x08B39298u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 354u, 0x08B39298u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39298u) goto L_08B39298; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39298: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(612))); aot_gpr_5 = (0u | 2u); @@ -3735,14 +5046,40 @@ L_08B392B0: } L_08B392B8: aot_gpr_31 = (0x08B392C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 358u, 0x08B392C0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B392C0u) goto L_08B392C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B392C0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(86)))))); aot_gpr_31 = (0x08B392CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 359u, 0x08B392CCu, 0x08B3490Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 126u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 126u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 126u, 0x08B3490Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B392CCu) goto L_08B392CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B392CC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3752,8 +5089,21 @@ L_08B392CC: } L_08B392D4: aot_gpr_31 = (0x08B392DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 361u, 0x08B392DCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B392DCu) goto L_08B392DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B392DC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(164), ctx.gpr[2]); @@ -3823,13 +5173,39 @@ L_08B3934C: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B39370u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 369u, 0x08B39370u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39370u) goto L_08B39370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39370: aot_gpr_31 = (0x08B39378u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 370u, 0x08B39378u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39378u) goto L_08B39378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39378: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3848,8 +5224,8 @@ L_08B39380: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3939C: @@ -3945,8 +5321,21 @@ L_08B39420: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B39434u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(104))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 383u, 0x08B39434u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39434u) goto L_08B39434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39434: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4034,8 +5423,21 @@ L_08B394AC: } L_08B394B8: aot_gpr_31 = (0x08B394C0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 396u, 0x08B394C0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B394C0u) goto L_08B394C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B394C0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4063,8 +5465,21 @@ L_08B394E4: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B394F8u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 400u, 0x08B394F8u, 0x08B33424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 703u, 0x08B33424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B394F8u) goto L_08B394F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B394F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4112,8 +5527,21 @@ L_08B39544: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_31 = (0x08B39550u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 407u, 0x08B39550u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39550u) goto L_08B39550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39550: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4229,8 +5657,21 @@ L_08B3962C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B39640u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(104))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 420u, 0x08B39640u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39640u) goto L_08B39640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39640: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4264,8 +5705,21 @@ L_08B3966C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_31 = (0x08B39678u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 425u, 0x08B39678u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39678u) goto L_08B39678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39678: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4302,13 +5756,39 @@ L_08B396B4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B396D4u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 429u, 0x08B396D4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B396D4u) goto L_08B396D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B396D4: aot_gpr_31 = (0x08B396DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 430u, 0x08B396DCu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B396DCu) goto L_08B396DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B396DC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4344,8 +5824,21 @@ L_08B39714: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B39728u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 435u, 0x08B39728u, 0x08B3312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 650u, 0x08B3312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39728u) goto L_08B39728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39728: aot_gpr_4 = (17096u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -4404,13 +5897,39 @@ L_08B39790: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B397B8u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 442u, 0x08B397B8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B397B8u) goto L_08B397B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B397B8: aot_gpr_31 = (0x08B397C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 443u, 0x08B397C0u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B397C0u) goto L_08B397C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B397C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4427,8 +5946,8 @@ L_08B397C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B397DC: @@ -4453,8 +5972,8 @@ L_08B39814: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-31008))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3982C: @@ -4571,8 +6090,21 @@ L_08B39908: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B39918u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 459u, 0x08B39918u, 0x08B32E84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 615u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 615u, 0x08B32E84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39918u) goto L_08B39918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39918: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_4 = (ctx.gpr[19] + static_cast(1)); @@ -4731,8 +6263,21 @@ L_08B39A34: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(236), aot_gpr_5); aot_gpr_31 = (0x08B39A70u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 476u, 0x08B39A70u, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39A70u) goto L_08B39A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39A70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4747,8 +6292,21 @@ L_08B39A78: aot_fpr_12 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B39A90u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 478u, 0x08B39A90u, 0x08B32D64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 612u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 612u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 612u, 0x08B32D64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39A90u) goto L_08B39A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39A90: aot_gpr_4 = (std::bit_cast(ctx.fpr[0])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -4770,8 +6328,21 @@ L_08B39A90: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B39AB4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 479u, 0x08B39AB4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39AB4u) goto L_08B39AB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39AB4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(140))); aot_fpr_13 = std::bit_cast(0u); @@ -4786,8 +6357,21 @@ L_08B39ACC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-15972))); aot_gpr_31 = (0x08B39AD8u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 481u, 0x08B39AD8u, 0x08B6CC28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 139u, 0x08B6CC28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39AD8u) goto L_08B39AD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39AD8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-17296), ctx.gpr[2]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); @@ -4858,8 +6442,21 @@ L_08B39B9C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B39BA8u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 487u, 0x08B39BA8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39BA8u) goto L_08B39BA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39BA8: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -4883,8 +6480,21 @@ L_08B39BC0: L_08B39BC8: aot_gpr_31 = (0x08B39BD0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(4448)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 492u, 0x08B39BD0u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39BD0u) goto L_08B39BD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39BD0: ctx.gpr[3] = (0u + static_cast(-1)); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -4897,13 +6507,39 @@ L_08B39BD0: ctx.gpr[11] = (0u + static_cast(-1)); aot_gpr_31 = (0x08B39BFCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), ctx.gpr[3]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 493u, 0x08B39BFCu, 0x08AB9C74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 351u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 351u, 0x08AB9C74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39BFCu) goto L_08B39BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39BFC: aot_gpr_31 = (0x08B39C04u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 494u, 0x08B39C04u, 0x08AFEA38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 592u, 0x08AFEA38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39C04u) goto L_08B39C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39C04: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(164), 0u); aot_gpr_4 = (0u | 6u); @@ -4918,8 +6554,21 @@ L_08B39C04: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B39C38u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 495u, 0x08B39C38u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39C38u) goto L_08B39C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39C38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4934,8 +6583,21 @@ L_08B39C40: L_08B39C48: aot_gpr_31 = (0x08B39C50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 498u, 0x08B39C50u, 0x08B34680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 75u, 0x08B34680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39C50u) goto L_08B39C50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39C50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5003,13 +6665,39 @@ L_08B39CD0: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B39CF4u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 505u, 0x08B39CF4u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39CF4u) goto L_08B39CF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39CF4: aot_gpr_31 = (0x08B39CFCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 506u, 0x08B39CFCu, 0x08B34680u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 75u, 0x08B34680u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39CFCu) goto L_08B39CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39CFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_5 = (0u | 23u); @@ -5023,8 +6711,21 @@ L_08B39CFC: L_08B39D10: aot_gpr_31 = (0x08B39D18u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 508u, 0x08B39D18u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39D18u) goto L_08B39D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39D18: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); @@ -5038,8 +6739,21 @@ L_08B39D18: L_08B39D30: aot_gpr_31 = (0x08B39D38u); aot_gpr_4 = (aot_gpr_29 + static_cast(80)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 510u, 0x08B39D38u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39D38u) goto L_08B39D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39D38: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -5053,8 +6767,21 @@ L_08B39D38: L_08B39D50: aot_gpr_31 = (0x08B39D58u); aot_gpr_4 = (aot_gpr_29 + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 512u, 0x08B39D58u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39D58u) goto L_08B39D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39D58: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); @@ -5068,8 +6795,21 @@ L_08B39D58: L_08B39D70: aot_gpr_31 = (0x08B39D78u); aot_gpr_4 = (aot_gpr_29 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 514u, 0x08B39D78u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39D78u) goto L_08B39D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39D78: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -5083,8 +6823,21 @@ L_08B39D78: L_08B39D90: aot_gpr_31 = (0x08B39D98u); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 516u, 0x08B39D98u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39D98u) goto L_08B39D98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39D98: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); aot_gpr_4 = (16256u << 16u); @@ -5101,8 +6854,21 @@ L_08B39D98: L_08B39DBC: aot_gpr_31 = (0x08B39DC4u); aot_gpr_4 = (aot_gpr_29 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 518u, 0x08B39DC4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39DC4u) goto L_08B39DC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39DC4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(96))); @@ -5127,8 +6893,21 @@ L_08B39DE4: ctx.gpr[8] = (0u | 0u); aot_gpr_31 = (0x08B39E08u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0057. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 521u, 0x08B39E08u, 0x088EB674u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); +#else + recomp_unit_0057_entry(rt, ctx, 692u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0057_entry, 57u, 692u, 0x088EB674u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39E08u) goto L_08B39E08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39E08: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(180), aot_run_words); @@ -5142,8 +6921,8 @@ L_08B39E08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B39E2C: @@ -5205,13 +6984,39 @@ L_08B39E7C: L_08B39E84: aot_gpr_31 = (0x08B39E8Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 529u, 0x08B39E8Cu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39E8Cu) goto L_08B39E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39E8C: aot_gpr_31 = (0x08B39E94u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 530u, 0x08B39E94u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39E94u) goto L_08B39E94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39E94: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -5223,8 +7028,21 @@ L_08B39E94: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B39EBCu); ctx.fpr[22] = aot_fpr_14 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 531u, 0x08B39EBCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39EBCu) goto L_08B39EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39EBC: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -5235,8 +7053,21 @@ L_08B39EBC: aot_fpr_12 = ctx.fpr[16] - aot_fpr_13; aot_gpr_31 = (0x08B39EE0u); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 532u, 0x08B39EE0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39EE0u) goto L_08B39EE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39EE0: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -5246,8 +7077,21 @@ L_08B39EE0: { const float fs = aot_fpr_14; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08B39F00u); ctx.fpr[24] = ctx.fpr[17] - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 533u, 0x08B39F00u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39F00u) goto L_08B39F00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39F00: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -5287,8 +7131,21 @@ L_08B39F54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B39F60u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 537u, 0x08B39F60u, 0x08B33A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 761u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 761u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 761u, 0x08B33A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39F60u) goto L_08B39F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39F60: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5318,8 +7175,21 @@ L_08B39F7C: L_08B39F88: aot_gpr_31 = (0x08B39F90u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 541u, 0x08B39F90u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39F90u) goto L_08B39F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39F90: { const bool branch_taken = ctx.gpr[17] != ctx.gpr[2]; if (branch_taken) { @@ -5330,8 +7200,21 @@ L_08B39F90: L_08B39F98: aot_gpr_31 = (0x08B39FA0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 543u, 0x08B39FA0u, 0x08B331CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 661u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 661u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 661u, 0x08B331CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39FA0u) goto L_08B39FA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39FA0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5342,8 +7225,21 @@ L_08B39FA0: L_08B39FA8: aot_gpr_31 = (0x08B39FB0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 545u, 0x08B39FB0u, 0x08B34050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 4u, 0x08B34050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B39FB0u) goto L_08B39FB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B39FB0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5391,8 +7287,21 @@ L_08B3A000: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); aot_gpr_31 = (0x08B3A00Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 552u, 0x08B3A00Cu, 0x08B33BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 783u, 0x08B33BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A00Cu) goto L_08B3A00C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A00C: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(77))); aot_fpr_14 = std::bit_cast(0u); @@ -5446,8 +7355,21 @@ L_08B3A068: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B3A084u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 558u, 0x08B3A084u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A084u) goto L_08B3A084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A084: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(63))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5511,8 +7433,21 @@ L_08B3A0F0: L_08B3A0F4: aot_gpr_31 = (0x08B3A0FCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 567u, 0x08B3A0FCu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A0FCu) goto L_08B3A0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A0FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5522,8 +7457,21 @@ L_08B3A0FC: } L_08B3A104: aot_gpr_31 = (0x08B3A10Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 569u, 0x08B3A10Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A10Cu) goto L_08B3A10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A10C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -5542,22 +7490,61 @@ L_08B3A118: } L_08B3A124: aot_gpr_31 = (0x08B3A12Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 572u, 0x08B3A12Cu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A12Cu) goto L_08B3A12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A12C: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x08B3A138u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 573u, 0x08B3A138u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A138u) goto L_08B3A138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A138: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B3A14Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 574u, 0x08B3A14Cu, 0x08B3312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 650u, 0x08B3312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A14Cu) goto L_08B3A14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A14C: aot_gpr_4 = (17296u << 16u); aot_gpr_4 = (aot_gpr_4 | 32768u); @@ -5635,13 +7622,39 @@ L_08B3A1D4: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B3A1F8u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 583u, 0x08B3A1F8u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A1F8u) goto L_08B3A1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A1F8: aot_gpr_31 = (0x08B3A200u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 584u, 0x08B3A200u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A200u) goto L_08B3A200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A200: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5691,8 +7704,8 @@ L_08B3A23C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3A25C: @@ -5772,21 +7785,60 @@ L_08B3A2C4: L_08B3A2D4: aot_gpr_31 = (0x08B3A2DCu); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 600u, 0x08B3A2DCu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A2DCu) goto L_08B3A2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A2DC: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08B3A2E8u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 601u, 0x08B3A2E8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A2E8u) goto L_08B3A2E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A2E8: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B3A2F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 602u, 0x08B3A2F8u, 0x08B3312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 650u, 0x08B3312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A2F8u) goto L_08B3A2F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A2F8: aot_gpr_4 = (17249u << 16u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -5811,8 +7863,21 @@ L_08B3A314: } L_08B3A32C: aot_gpr_31 = (0x08B3A334u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 605u, 0x08B3A334u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A334u) goto L_08B3A334; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A334: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5823,8 +7888,21 @@ L_08B3A334: L_08B3A33C: aot_gpr_31 = (0x08B3A344u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 607u, 0x08B3A344u, 0x08B34050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 4u, 0x08B34050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A344u) goto L_08B3A344; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A344: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5834,8 +7912,21 @@ L_08B3A344: } L_08B3A34C: aot_gpr_31 = (0x08B3A354u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 609u, 0x08B3A354u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A354u) goto L_08B3A354; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A354: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5845,20 +7936,59 @@ L_08B3A354: } L_08B3A35C: aot_gpr_31 = (0x08B3A364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 611u, 0x08B3A364u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A364u) goto L_08B3A364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A364: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B3A370u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 612u, 0x08B3A370u, 0x08B34200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 24u, 0x08B34200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A370u) goto L_08B3A370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A370: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B3A37Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 613u, 0x08B3A37Cu, 0x08B349A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 138u, 0x08B349A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A37Cu) goto L_08B3A37C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A37C: aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[2]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -5892,8 +8022,21 @@ L_08B3A3B0: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B3A3C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 617u, 0x08B3A3C0u, 0x08B3430Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 39u, 0x08B3430Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A3C0u) goto L_08B3A3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A3C0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5940,8 +8083,21 @@ L_08B3A410: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(140), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B3A41Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 623u, 0x08B3A41Cu, 0x08B336A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 727u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 727u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 727u, 0x08B336A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A41Cu) goto L_08B3A41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A41C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5976,14 +8132,40 @@ L_08B3A448: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B3A464u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 627u, 0x08B3A464u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A464u) goto L_08B3A464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A464: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(61))); aot_gpr_31 = (0x08B3A470u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 628u, 0x08B3A470u, 0x0896E7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 597u, 0x0896E7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A470u) goto L_08B3A470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A470: aot_gpr_4 = (ctx.gpr[2] << 6u); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -5994,13 +8176,39 @@ L_08B3A470: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B3A494u); aot_gpr_6 = (0u | 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 629u, 0x08B3A494u, 0x08B34D54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 189u, 0x08B34D54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A494u) goto L_08B3A494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A494: aot_gpr_31 = (0x08B3A49Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 630u, 0x08B3A49Cu, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A49Cu) goto L_08B3A49C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A49C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6027,21 +8235,60 @@ L_08B3A4A4: L_08B3A4D0: aot_gpr_31 = (0x08B3A4D8u); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 633u, 0x08B3A4D8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A4D8u) goto L_08B3A4D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A4D8: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_31 = (0x08B3A4E4u); aot_gpr_4 = (aot_gpr_29 + static_cast(64)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 634u, 0x08B3A4E4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A4E4u) goto L_08B3A4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A4E4: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B3A4F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 635u, 0x08B3A4F4u, 0x08B3312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 650u, 0x08B3312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A4F4u) goto L_08B3A4F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A4F4: { const bool branch_taken = 0u == 0u; aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -6078,8 +8325,21 @@ L_08B3A524: } L_08B3A538: aot_gpr_31 = (0x08B3A540u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 640u, 0x08B3A540u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A540u) goto L_08B3A540; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A540: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6089,8 +8349,21 @@ L_08B3A540: } L_08B3A548: aot_gpr_31 = (0x08B3A550u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 642u, 0x08B3A550u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A550u) goto L_08B3A550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A550: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6101,14 +8374,40 @@ L_08B3A550: L_08B3A558: aot_gpr_31 = (0x08B3A560u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(61))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 644u, 0x08B3A560u, 0x0896E710u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 591u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 591u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 591u, 0x0896E710u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A560u) goto L_08B3A560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A560: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B3A56Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 645u, 0x08B3A56Cu, 0x08B349A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 138u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 138u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 138u, 0x08B349A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A56Cu) goto L_08B3A56C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A56C: aot_gpr_4 = (static_cast(ctx.gpr[17]) < static_cast(ctx.gpr[2]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6130,8 +8429,21 @@ L_08B3A584: aot_gpr_4 = (aot_gpr_4 + static_cast(48)); aot_gpr_31 = (0x08B3A594u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 648u, 0x08B3A594u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A594u) goto L_08B3A594; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A594: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -6140,8 +8452,21 @@ L_08B3A594: aot_gpr_4 = (aot_gpr_4 + static_cast(48)); aot_gpr_31 = (0x08B3A5B0u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 649u, 0x08B3A5B0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A5B0u) goto L_08B3A5B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A5B0: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -6203,8 +8528,21 @@ L_08B3A620: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B3A62Cu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 657u, 0x08B3A62Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A62Cu) goto L_08B3A62C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A62C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -6228,8 +8566,21 @@ L_08B3A648: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-9752))); aot_gpr_31 = (0x08B3A654u); aot_gpr_5 = (ctx.gpr[28] + static_cast(4456)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 662u, 0x08B3A654u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A654u) goto L_08B3A654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A654: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -6237,8 +8588,21 @@ L_08B3A654: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B3A66Cu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 663u, 0x08B3A66Cu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A66Cu) goto L_08B3A66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A66C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-17292), aot_gpr_4); @@ -6253,8 +8617,21 @@ L_08B3A674: L_08B3A67C: aot_gpr_31 = (0x08B3A684u); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(61))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 666u, 0x08B3A684u, 0x0896E7A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 597u, 0x0896E7A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A684u) goto L_08B3A684; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A684: aot_gpr_4 = (ctx.gpr[2] << 6u); aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); @@ -6264,8 +8641,21 @@ L_08B3A684: aot_gpr_5 = (aot_gpr_5 + aot_gpr_4); aot_gpr_31 = (0x08B3A6A4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 667u, 0x08B3A6A4u, 0x08B34FC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 220u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 220u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 220u, 0x08B34FC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A6A4u) goto L_08B3A6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A6A4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6320,13 +8710,39 @@ L_08B3A6FC: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B3A720u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 674u, 0x08B3A720u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A720u) goto L_08B3A720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A720: aot_gpr_31 = (0x08B3A728u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 675u, 0x08B3A728u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A728u) goto L_08B3A728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A728: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6346,8 +8762,8 @@ L_08B3A730: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3A750: @@ -6425,8 +8841,21 @@ L_08B3A7B0: L_08B3A7C0: aot_gpr_31 = (0x08B3A7C8u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 686u, 0x08B3A7C8u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A7C8u) goto L_08B3A7C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A7C8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -6438,8 +8867,21 @@ L_08B3A7C8: { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B3A7F0u); ctx.fpr[22] = aot_fpr_14 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 687u, 0x08B3A7F0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A7F0u) goto L_08B3A7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A7F0: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -6450,8 +8892,21 @@ L_08B3A7F0: aot_fpr_12 = ctx.fpr[16] - aot_fpr_13; aot_gpr_31 = (0x08B3A814u); { const float fs = ctx.fpr[22]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 688u, 0x08B3A814u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A814u) goto L_08B3A814; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A814: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -6461,8 +8916,21 @@ L_08B3A814: { const float fs = aot_fpr_14; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_13 = std::bit_cast(0x7FC00000u); else aot_fpr_13 = fs * ft; } aot_gpr_31 = (0x08B3A834u); ctx.fpr[24] = ctx.fpr[17] - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 689u, 0x08B3A834u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A834u) goto L_08B3A834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A834: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(24))); ctx.fpr[16] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(28))); @@ -6494,8 +8962,21 @@ L_08B3A878: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08B3A888u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 692u, 0x08B3A888u, 0x08B33424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 703u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 703u, 0x08B33424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A888u) goto L_08B3A888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A888: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6528,8 +9009,21 @@ L_08B3A8B4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); aot_gpr_31 = (0x08B3A8C0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 697u, 0x08B3A8C0u, 0x08B33BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 783u, 0x08B33BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A8C0u) goto L_08B3A8C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A8C0: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(77))); aot_fpr_14 = std::bit_cast(0u); @@ -6583,16 +9077,42 @@ L_08B3A91C: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B3A938u); aot_gpr_6 = (0u | 74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 703u, 0x08B3A938u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A938u) goto L_08B3A938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A938: aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(62), static_cast(0u)); goto L_08B3A93C; L_08B3A93C: aot_gpr_31 = (0x08B3A944u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 705u, 0x08B3A944u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A944u) goto L_08B3A944; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A944: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6602,8 +9122,21 @@ L_08B3A944: } L_08B3A94C: aot_gpr_31 = (0x08B3A954u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 707u, 0x08B3A954u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A954u) goto L_08B3A954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A954: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(164))); { const bool branch_taken = ctx.gpr[2] != aot_gpr_4; @@ -6622,22 +9155,61 @@ L_08B3A960: } L_08B3A96C: aot_gpr_31 = (0x08B3A974u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 710u, 0x08B3A974u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A974u) goto L_08B3A974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A974: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_gpr_31 = (0x08B3A980u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 711u, 0x08B3A980u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A980u) goto L_08B3A980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A980: aot_gpr_4 = (ctx.gpr[2] + static_cast(48)); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B3A994u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0203. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 712u, 0x08B3A994u, 0x08B3312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0203_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0203_entry, 203u, 650u, 0x08B3312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3A994u) goto L_08B3A994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3A994: aot_gpr_4 = (17024u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6695,13 +9267,39 @@ L_08B3A9FC: aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B3AA20u); aot_gpr_6 = (0u | 75u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 719u, 0x08B3AA20u, 0x08A05F80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 503u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 503u, 0x08A05F80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3AA20u) goto L_08B3AA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3AA20: aot_gpr_31 = (0x08B3AA28u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0204. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 720u, 0x08B3AA28u, 0x08B34444u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); +#else + recomp_unit_0204_entry(rt, ctx, 60u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0204_entry, 204u, 60u, 0x08B34444u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3AA28u) goto L_08B3AA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3AA28: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6720,8 +9318,8 @@ L_08B3AA30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AA4C: @@ -6775,8 +9373,8 @@ L_08B3AA98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AAA4: @@ -6792,8 +9390,8 @@ L_08B3AABC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AAC8: @@ -6808,22 +9406,22 @@ L_08B3AADC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AAE8: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4488))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AAF0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(4489))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AAF8: @@ -6895,8 +9493,21 @@ L_08B3AB64: L_08B3AB68: aot_gpr_31 = (0x08B3AB70u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 746u, 0x08B3AB70u, 0x08A55324u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 299u, 0x08A55324u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3AB70u) goto L_08B3AB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3AB70: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6921,8 +9532,8 @@ L_08B3AB8C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AB9C: @@ -7038,8 +9649,8 @@ L_08B3AC4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AC60: @@ -7053,8 +9664,8 @@ L_08B3AC70: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AC80: @@ -7088,8 +9699,8 @@ L_08B3ACB0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3ACBC: @@ -7343,8 +9954,8 @@ L_08B3AE4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AE5C: @@ -7394,8 +10005,8 @@ L_08B3AEB8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3AEC4: @@ -7427,8 +10038,21 @@ L_08B3AF04: } L_08B3AF10: aot_gpr_31 = (0x08B3AF18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 826u, 0x08B3AF18u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3AF18u) goto L_08B3AF18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3AF18: aot_gpr_31 = (0x08B3AF20u); aot_gpr_4 = (0u | 0u); @@ -7524,8 +10148,21 @@ L_08B3AF90: } L_08B3AF9C: aot_gpr_31 = (0x08B3AFA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 842u, 0x08B3AFA4u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3AFA4u) goto L_08B3AFA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3AFA4: aot_gpr_31 = (0x08B3AFACu); aot_gpr_4 = (0u | 0u); @@ -7557,8 +10194,21 @@ L_08B3AFC4: AOT_REGCACHE_SYNC_OUT(); return; L_08B3AFCC: aot_gpr_31 = (0x08B3AFD4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 848u, 0x08B3AFD4u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3AFD4u) goto L_08B3AFD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3AFD4: aot_gpr_31 = (0x08B3AFDCu); aot_gpr_4 = (0u | 0u); @@ -7607,8 +10257,8 @@ L_08B3B004: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B024: @@ -7692,8 +10342,8 @@ L_08B3B0C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B0E4: @@ -7726,8 +10376,21 @@ L_08B3B128: } L_08B3B134: aot_gpr_31 = (0x08B3B13Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 868u, 0x08B3B13Cu, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B13Cu) goto L_08B3B13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B13C: aot_gpr_31 = (0x08B3B144u); aot_gpr_4 = (0u | 0u); @@ -7830,8 +10493,21 @@ L_08B3B1C4: } L_08B3B1D0: aot_gpr_31 = (0x08B3B1D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 885u, 0x08B3B1D8u, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B1D8u) goto L_08B3B1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B1D8: aot_gpr_31 = (0x08B3B1E0u); aot_gpr_4 = (0u | 0u); @@ -7864,8 +10540,21 @@ L_08B3B1FC: AOT_REGCACHE_SYNC_OUT(); return; L_08B3B204: aot_gpr_31 = (0x08B3B20Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 891u, 0x08B3B20Cu, 0x08A07260u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 751u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 751u, 0x08A07260u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B20Cu) goto L_08B3B20C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B20C: aot_gpr_31 = (0x08B3B214u); aot_gpr_4 = (0u | 0u); @@ -7916,8 +10605,8 @@ L_08B3B240: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B264: @@ -8021,8 +10710,8 @@ L_08B3B328: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B344: @@ -8180,8 +10869,8 @@ L_08B3B41C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B43C: @@ -8272,8 +10961,8 @@ L_08B3B4A8: goto L_08B3B4B0; L_08B3B4B0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B4B8: @@ -8285,14 +10974,40 @@ L_08B3B4B8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(20), aot_run_words); } aot_gpr_31 = (0x08B3B4DCu); ctx.gpr[18] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 943u, 0x08B3B4DCu, 0x0895B9F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 525u, 0x0895B9F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B4DCu) goto L_08B3B4DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B4DC: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(12))); aot_gpr_31 = (0x08B3B4E8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0085. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 944u, 0x08B3B4E8u, 0x0895B9F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0085_entry(rt, ctx, 525u, aot_mem); +#else + recomp_unit_0085_entry(rt, ctx, 525u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0085_entry, 85u, 525u, 0x0895B9F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B4E8u) goto L_08B3B4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B4E8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); @@ -8316,8 +11031,21 @@ L_08B3B51C: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B3B530u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 946u, 0x08B3B530u, 0x088618A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 233u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 233u, 0x088618A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B530u) goto L_08B3B530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B530: ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -8363,8 +11091,8 @@ L_08B3B580: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B5A0: @@ -8385,8 +11113,21 @@ L_08B3B5A0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), aot_gpr_31); aot_gpr_31 = (0x08B3B5E4u); aot_gpr_6 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 952u, 0x08B3B5E4u, 0x089D86FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 82u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 82u, 0x089D86FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B5E4u) goto L_08B3B5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B5E4: aot_gpr_4 = (16800u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8458,8 +11199,8 @@ L_08B3B618: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B670: @@ -8473,8 +11214,21 @@ L_08B3B670: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_31); aot_gpr_31 = (0x08B3B698u); ctx.gpr[18] = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 958u, 0x08B3B698u, 0x0889EB08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 621u, 0x0889EB08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B698u) goto L_08B3B698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B698: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B3B6A4u); @@ -8493,8 +11247,8 @@ L_08B3B6A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B6C4: @@ -8584,8 +11338,21 @@ L_08B3B78C: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B3B798u); aot_gpr_4 = (0u | 544u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0009. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 969u, 0x08B3B798u, 0x0882B994u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); +#else + recomp_unit_0009_entry(rt, ctx, 392u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0009_entry, 9u, 392u, 0x0882B994u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B798u) goto L_08B3B798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B798: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -8598,8 +11365,21 @@ L_08B3B798: L_08B3B7A4: aot_gpr_31 = (0x08B3B7ACu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 971u, 0x08B3B7ACu, 0x08A196ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 144u, 0x08A196ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B7ACu) goto L_08B3B7AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B7AC: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_gpr_5 = (aot_gpr_16 | 0u); @@ -8626,8 +11406,21 @@ L_08B3B7D0: L_08B3B7DC: aot_gpr_31 = (0x08B3B7E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 975u, 0x08B3B7E4u, 0x08A197FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 156u, 0x08A197FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B7E4u) goto L_08B3B7E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B7E4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(80))); goto L_08B3B7E8; @@ -8650,8 +11443,8 @@ L_08B3B7E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B824: @@ -8670,8 +11463,21 @@ L_08B3B83C: aot_gpr_16 = (0u | 0u); aot_gpr_31 = (0x08B3B84Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 979u, 0x08B3B84Cu, 0x08A1C768u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 73u, 0x08A1C768u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B84Cu) goto L_08B3B84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B84C: aot_gpr_4 = (16256u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -8697,8 +11503,8 @@ L_08B3B870: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B880: @@ -8731,8 +11537,8 @@ L_08B3B8B4: goto L_08B3B8C4; L_08B3B8C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B8CC: @@ -8743,15 +11549,41 @@ L_08B3B8CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B3B8E8u); aot_gpr_4 = (aot_gpr_4 + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 988u, 0x08B3B8E8u, 0x088E2728u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 222u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 222u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 222u, 0x088E2728u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B8E8u) goto L_08B3B8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B8E8: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08B3B8F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 989u, 0x08B3B8F8u, 0x08890474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 73u, 0x08890474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B8F8u) goto L_08B3B8F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B8F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_4 = (aot_gpr_4 | 64u); @@ -8782,8 +11614,8 @@ L_08B3B92C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B948: @@ -8805,19 +11637,58 @@ L_08B3B968: aot_gpr_5 = (aot_gpr_4 + static_cast(96)); aot_gpr_31 = (0x08B3B97Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 994u, 0x08B3B97Cu, 0x08A1CE68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 140u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 140u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 140u, 0x08A1CE68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B97Cu) goto L_08B3B97C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B97C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B3B988u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 995u, 0x08B3B988u, 0x08A1D5F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 268u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 268u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 268u, 0x08A1D5F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B988u) goto L_08B3B988; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B988: aot_gpr_31 = (0x08B3B990u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 996u, 0x08B3B990u, 0x08A1D29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 218u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 218u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 218u, 0x08A1D29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B990u) goto L_08B3B990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B990: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); if (aot_gpr_4 != 0u) { @@ -8838,15 +11709,28 @@ L_08B3B9A8: ctx.gpr[7] = (0u | 0u); aot_gpr_31 = (0x08B3B9BCu); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1000u, 0x08B3B9BCu, 0x089BB028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 646u, 0x089BB028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3B9BCu) goto L_08B3B9BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3B9BC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3B9CC: @@ -8888,8 +11772,21 @@ L_08B3BA34: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(7740))); aot_gpr_31 = (0x08B3BA48u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1004u, 0x08B3BA48u, 0x0884D5D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 271u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 271u, 0x0884D5D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BA48u) goto L_08B3BA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BA48: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -9075,8 +11972,21 @@ L_08B3BB78: aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); aot_gpr_31 = (0x08B3BB88u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(7740))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1014u, 0x08B3BB88u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BB88u) goto L_08B3BB88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BB88: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(160))); aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); @@ -9094,8 +12004,21 @@ L_08B3BBA4: aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); aot_gpr_31 = (0x08B3BBB4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(7740))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1016u, 0x08B3BBB4u, 0x08AD06ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 73u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 73u, 0x08AD06ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BBB4u) goto L_08B3BBB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BBB4: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[21] = (ctx.gpr[23] + static_cast(-1)); @@ -9109,12 +12032,38 @@ L_08B3BBB4: } L_08B3BBC8: aot_gpr_31 = (0x08B3BBD0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1018u, 0x08B3BBD0u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BBD0u) goto L_08B3BBD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BBD0: aot_gpr_31 = (0x08B3BBD8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1019u, 0x08B3BBD8u, 0x08A11214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 128u, 0x08A11214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BBD8u) goto L_08B3BBD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BBD8: aot_fpr_12 = std::bit_cast(0u); aot_gpr_4 = (0u | 1u); @@ -9137,8 +12086,8 @@ L_08B3BBD8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3BC20: @@ -9158,8 +12107,21 @@ L_08B3BC3C: ctx.gpr[17] = (ctx.gpr[17] + static_cast(32304)); aot_gpr_31 = (0x08B3BC4Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1022u, 0x08B3BC4Cu, 0x08A1C544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 41u, 0x08A1C544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BC4Cu) goto L_08B3BC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BC4C: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); { const bool branch_taken = static_cast(ctx.gpr[2]) >= 0; @@ -9181,8 +12143,21 @@ L_08B3BC64: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3BC7Cu); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(32), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1025u, 0x08B3BC7Cu, 0x08A1C504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 39u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 39u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 39u, 0x08A1C504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BC7Cu) goto L_08B3BC7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BC7C: aot_gpr_31 = (0x08B3BC84u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BC84u) goto L_08B3BC84; @@ -9203,8 +12178,21 @@ L_08B3BC84: aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(72), aot_gpr_5); aot_gpr_31 = (0x08B3BCC0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1027u, 0x08B3BCC0u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BCC0u) goto L_08B3BCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BCC0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -9214,8 +12202,8 @@ L_08B3BCC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3BCD4: @@ -9252,8 +12240,21 @@ L_08B3BD40: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[21]); aot_gpr_31 = (0x08B3BD54u); aot_gpr_4 = (aot_gpr_4 + static_cast(4488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1031u, 0x08B3BD54u, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BD54u) goto L_08B3BD54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BD54: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9283,8 +12284,21 @@ L_08B3BD5C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B3BDB4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[23]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1033u, 0x08B3BDB4u, 0x08899BB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 327u, 0x08899BB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BDB4u) goto L_08B3BDB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BDB4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(20)))))); ctx.gpr[18] = (0u | 0u); @@ -9386,8 +12400,8 @@ L_08B3BE74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3BEA8: @@ -9428,8 +12442,21 @@ L_08B3BEF4: } L_08B3BEFC: aot_gpr_31 = (0x08B3BF04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1046u, 0x08B3BF04u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BF04u) goto L_08B3BF04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BF04: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -9465,8 +12492,21 @@ L_08B3BF28: L_08B3BF30: aot_gpr_31 = (0x08B3BF38u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0205->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0205_entry, 1051u, 0x08B3BF38u, 0x08B3C030u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 3u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 3u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 3u, 0x08B3C030u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3BF38u) goto L_08B3BF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3BF38: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(60))); ctx.gpr[17] = (0u | 0u); diff --git a/profiles/vcs/generated/generated_unit_0206.cpp b/profiles/vcs/generated/generated_unit_0206.cpp index f690626..de5a77c 100644 --- a/profiles/vcs/generated/generated_unit_0206.cpp +++ b/profiles/vcs/generated/generated_unit_0206.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0206[64] = { 488u, 505u, 520u, 528u, 539u, 544u, 545u, 546u, 553u, 560u, 574u, 588u, 598u, 616u, 631u, 643u, 656u, 672u, 683u, 712u, 731u, 755u, 783u, 793u, 805u, 816u, 836u, 847u, 861u, 871u, 878u, 883u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0206[4096] = { + 1u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 0u, 0u, 5u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 0u, 0u, 0u, 9u, 0u, 10u, 0u, 0u, 11u, 0u, + 0u, 0u, 0u, 12u, 13u, 0u, 14u, 0u, 0u, 0u, 15u, 0u, 0u, 0u, 0u, 16u, 0u, 0u, 0u, 0u, 17u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 18u, 0u, 0u, 0u, + 19u, 0u, 20u, 21u, 0u, 22u, 0u, 0u, 23u, 0u, 24u, 25u, 0u, 0u, 0u, 26u, 0u, 0u, 0u, 0u, 27u, 0u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, + 30u, 31u, 0u, 0u, 0u, 0u, 32u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 35u, 0u, 36u, 0u, 0u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, + 38u, 0u, 0u, 0u, 0u, 39u, 0u, 0u, 0u, 0u, 40u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 0u, 0u, 43u, 0u, 44u, 45u, + 0u, 46u, 0u, 0u, 0u, 47u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, + 0u, 51u, 0u, 52u, 0u, 0u, 53u, 0u, 54u, 0u, 55u, 0u, 0u, 0u, 0u, 56u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 57u, 0u, 0u, 58u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 59u, 0u, 60u, 0u, 61u, 0u, 0u, 0u, 0u, 62u, 0u, 63u, 0u, 64u, 0u, 0u, 0u, + 0u, 65u, 0u, 66u, 0u, 67u, 0u, 0u, 68u, 0u, 0u, 69u, 0u, 70u, 0u, 71u, 0u, 0u, 0u, 72u, 0u, 73u, 0u, 0u, 0u, 74u, 0u, 0u, 75u, 0u, 0u, 76u, + 0u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 0u, 79u, 0u, 80u, 0u, 81u, 0u, 82u, 0u, 83u, 0u, 0u, 0u, 84u, 0u, 0u, 85u, 0u, 86u, 0u, 0u, 0u, 87u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, + 0u, 89u, 0u, 90u, 0u, 0u, 0u, 0u, 0u, 0u, 91u, 0u, 92u, 0u, 93u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 0u, 96u, 0u, 0u, 0u, 97u, 0u, 0u, 0u, 0u, 98u, 0u, 99u, 0u, 100u, 0u, 101u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 102u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 103u, 0u, 0u, 0u, 104u, 0u, 0u, 0u, 105u, 0u, 0u, 0u, 106u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 107u, 0u, 0u, 0u, + 0u, 108u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 109u, 0u, 0u, 110u, 0u, 111u, 0u, 0u, 0u, 112u, 0u, 0u, 0u, 113u, 0u, 114u, 0u, 0u, 115u, 0u, + 0u, 116u, 0u, 117u, 0u, 118u, 0u, 0u, 119u, 0u, 0u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 123u, 0u, 124u, 0u, 0u, 125u, + 0u, 0u, 126u, 0u, 127u, 0u, 128u, 0u, 129u, 0u, 0u, 0u, 0u, 130u, 0u, 0u, 0u, 131u, 0u, 132u, 0u, 0u, 133u, 0u, 0u, 134u, 0u, 135u, 0u, 136u, 137u, 0u, + 0u, 0u, 138u, 0u, 0u, 0u, 139u, 0u, 140u, 0u, 0u, 141u, 0u, 0u, 142u, 0u, 143u, 0u, 144u, 145u, 0u, 0u, 0u, 146u, 0u, 0u, 0u, 147u, 0u, 148u, 0u, 0u, + 149u, 0u, 0u, 150u, 0u, 151u, 0u, 152u, 153u, 0u, 0u, 0u, 154u, 0u, 0u, 0u, 155u, 0u, 156u, 0u, 0u, 157u, 0u, 0u, 158u, 0u, 159u, 0u, 160u, 161u, 0u, 0u, + 0u, 162u, 0u, 0u, 0u, 163u, 0u, 164u, 0u, 0u, 165u, 0u, 0u, 166u, 0u, 167u, 0u, 168u, 169u, 0u, 0u, 0u, 170u, 0u, 0u, 0u, 171u, 0u, 172u, 0u, 0u, 173u, + 0u, 0u, 174u, 0u, 175u, 0u, 176u, 0u, 177u, 0u, 0u, 0u, 178u, 0u, 0u, 0u, 179u, 0u, 180u, 0u, 0u, 181u, 0u, 0u, 182u, 0u, 183u, 0u, 184u, 0u, 185u, 0u, + 186u, 0u, 0u, 187u, 0u, 0u, 0u, 188u, 0u, 0u, 189u, 0u, 190u, 0u, 0u, 0u, 0u, 0u, 191u, 192u, 0u, 193u, 0u, 0u, 194u, 0u, 0u, 0u, 195u, 0u, 196u, 0u, + 197u, 0u, 198u, 0u, 0u, 0u, 199u, 200u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 203u, 0u, 204u, 0u, 0u, 205u, 0u, 206u, 0u, 0u, 0u, 0u, 207u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 208u, 0u, 209u, 0u, 0u, 210u, 0u, 0u, 0u, 211u, 0u, 0u, 212u, 0u, 0u, 213u, 0u, 0u, 214u, 0u, 0u, 215u, 0u, 216u, 0u, 0u, + 0u, 217u, 0u, 218u, 0u, 0u, 0u, 0u, 0u, 0u, 219u, 0u, 0u, 0u, 0u, 0u, 0u, 220u, 0u, 221u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 222u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 223u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 0u, 225u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 227u, 228u, 0u, 229u, 0u, 0u, + 230u, 0u, 0u, 0u, 0u, 231u, 0u, 0u, 0u, 232u, 0u, 0u, 233u, 0u, 0u, 234u, 0u, 0u, 0u, 0u, 0u, 0u, 235u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 236u, 0u, 0u, 237u, 0u, 0u, 238u, 0u, 239u, 0u, 0u, 0u, 0u, 0u, 240u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 241u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 243u, + 0u, 0u, 0u, 244u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 246u, 0u, 0u, 0u, 247u, 0u, 0u, 0u, 248u, 0u, 0u, 249u, 0u, 250u, 0u, 0u, + 0u, 251u, 0u, 252u, 0u, 0u, 0u, 253u, 0u, 254u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 256u, 0u, 0u, 257u, 0u, 258u, 0u, 0u, 259u, 0u, 0u, 0u, 260u, 0u, 261u, + 0u, 0u, 262u, 0u, 0u, 0u, 263u, 0u, 264u, 0u, 0u, 265u, 0u, 0u, 0u, 266u, 0u, 267u, 0u, 0u, 268u, 0u, 0u, 0u, 269u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, + 0u, 272u, 0u, 273u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 277u, 0u, 278u, 0u, 279u, 0u, 0u, 280u, 0u, 0u, 0u, 0u, 281u, 0u, 282u, 0u, 283u, + 0u, 284u, 0u, 0u, 0u, 285u, 0u, 0u, 0u, 0u, 286u, 0u, 287u, 0u, 0u, 0u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 0u, 0u, 0u, 290u, 0u, 291u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 292u, 0u, 293u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 294u, 0u, 295u, 0u, 296u, 0u, 297u, 0u, 0u, 298u, 0u, + 299u, 0u, 0u, 0u, 0u, 300u, 0u, 0u, 0u, 301u, 0u, 0u, 0u, 0u, 0u, 302u, 0u, 303u, 0u, 304u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 305u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 306u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 309u, + 0u, 310u, 0u, 311u, 0u, 312u, 313u, 0u, 0u, 0u, 314u, 0u, 315u, 0u, 0u, 0u, 0u, 316u, 0u, 317u, 0u, 0u, 318u, 0u, 0u, 319u, 0u, 0u, 0u, 0u, 320u, 0u, + 0u, 0u, 0u, 321u, 0u, 0u, 322u, 0u, 323u, 0u, 0u, 0u, 0u, 0u, 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 326u, 0u, 0u, 0u, 0u, 0u, 0u, 327u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 328u, 0u, 0u, 0u, 329u, 0u, 0u, 0u, 0u, 330u, 0u, 0u, 331u, 0u, 0u, 332u, + 0u, 0u, 333u, 0u, 334u, 335u, 0u, 336u, 0u, 0u, 337u, 0u, 338u, 339u, 0u, 340u, 0u, 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 342u, 0u, 343u, 0u, 344u, 0u, + 0u, 345u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 346u, 0u, 0u, 0u, 0u, 0u, 0u, 347u, 0u, 0u, 348u, 0u, 349u, 0u, 0u, 350u, + 0u, 0u, 0u, 351u, 0u, 352u, 0u, 353u, 0u, 0u, 0u, 354u, 0u, 355u, 0u, 356u, 0u, 0u, 357u, 0u, 0u, 358u, 0u, 359u, 0u, 360u, 0u, 0u, 361u, 0u, 0u, 362u, + 0u, 363u, 0u, 0u, 364u, 0u, 0u, 365u, 0u, 0u, 366u, 0u, 367u, 0u, 368u, 0u, 369u, 0u, 370u, 0u, 0u, 0u, 0u, 371u, 0u, 372u, 0u, 0u, 0u, 373u, 0u, 0u, + 374u, 0u, 0u, 0u, 0u, 375u, 0u, 376u, 0u, 0u, 0u, 377u, 0u, 0u, 378u, 0u, 0u, 0u, 379u, 0u, 0u, 0u, 380u, 0u, 381u, 0u, 0u, 382u, 0u, 383u, 0u, 0u, + 0u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 0u, 385u, 386u, 0u, 0u, 0u, 0u, 387u, 388u, 0u, 0u, 389u, 0u, 0u, 0u, 0u, 0u, 390u, 0u, 391u, 0u, 392u, 0u, 393u, + 394u, 0u, 395u, 0u, 396u, 0u, 397u, 0u, 398u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 399u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 400u, 0u, 0u, 401u, 0u, 0u, 0u, 402u, 0u, 403u, 0u, 404u, 0u, 405u, 0u, 0u, 0u, 0u, 406u, 0u, 407u, 0u, 408u, 0u, 409u, 0u, 410u, 0u, 411u, 0u, 412u, 0u, + 0u, 413u, 0u, 414u, 0u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, 416u, 0u, 417u, 0u, 0u, 418u, 0u, 0u, 0u, 419u, 0u, 420u, 0u, 421u, 0u, 0u, 0u, 422u, 0u, 423u, + 0u, 424u, 0u, 0u, 425u, 0u, 0u, 426u, 0u, 427u, 0u, 428u, 0u, 429u, 0u, 430u, 431u, 0u, 432u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 0u, 0u, 434u, + 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 436u, 0u, 0u, 437u, 0u, 0u, 438u, 0u, 439u, 440u, 0u, 0u, 0u, 441u, 0u, 0u, 0u, 442u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 443u, 0u, 0u, 444u, 0u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 446u, 0u, 447u, 0u, 448u, 0u, 0u, 0u, 0u, 449u, 0u, 0u, 450u, + 0u, 0u, 0u, 451u, 0u, 452u, 0u, 0u, 453u, 0u, 0u, 0u, 454u, 0u, 455u, 0u, 456u, 0u, 0u, 0u, 457u, 0u, 458u, 0u, 459u, 0u, 0u, 460u, 0u, 0u, 461u, 0u, + 462u, 0u, 463u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 464u, 0u, 0u, 465u, 0u, 466u, 0u, 0u, 0u, 467u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, + 0u, 0u, 469u, 0u, 0u, 470u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 473u, 0u, + 474u, 0u, 0u, 475u, 0u, 476u, 0u, 477u, 0u, 478u, 0u, 0u, 0u, 479u, 0u, 0u, 480u, 0u, 481u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 484u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 486u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 487u, + 0u, 0u, 488u, 0u, 0u, 489u, 0u, 490u, 0u, 0u, 491u, 0u, 492u, 0u, 0u, 0u, 0u, 493u, 0u, 0u, 0u, 0u, 494u, 0u, 495u, 0u, 0u, 496u, 0u, 0u, 497u, 0u, + 0u, 498u, 0u, 499u, 0u, 0u, 0u, 500u, 0u, 501u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 502u, 0u, 0u, 0u, 0u, 503u, 0u, 0u, 504u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 505u, 0u, 506u, 507u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 508u, 0u, 0u, 0u, 0u, 509u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 510u, + 0u, 0u, 511u, 0u, 0u, 0u, 0u, 0u, 512u, 0u, 513u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 514u, 0u, 0u, 515u, 0u, 516u, 517u, 0u, 518u, 0u, 519u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 520u, 0u, 521u, 0u, 0u, 0u, 0u, 522u, 0u, 0u, 0u, 0u, 523u, 0u, 0u, 524u, 0u, 0u, 525u, 0u, 0u, 0u, 526u, + 0u, 0u, 527u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 528u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 529u, 0u, 530u, 531u, 0u, 0u, + 0u, 532u, 0u, 533u, 534u, 0u, 0u, 0u, 535u, 0u, 536u, 0u, 0u, 0u, 537u, 0u, 538u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 539u, 0u, 540u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 541u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 543u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 545u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 546u, 547u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 548u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 549u, 0u, 0u, 0u, 550u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 0u, + 553u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 554u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 555u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 556u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 557u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 558u, 0u, 559u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 560u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 561u, 0u, 0u, 0u, 0u, 0u, 562u, 0u, 563u, 564u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 565u, 0u, 0u, 566u, 0u, 0u, 0u, 0u, 567u, 0u, 0u, 0u, 568u, 0u, 569u, 0u, 570u, 0u, 0u, 571u, 0u, 572u, 573u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 574u, 0u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 576u, 0u, 577u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 578u, 0u, 0u, 0u, 579u, 0u, 580u, 0u, 0u, + 0u, 0u, 581u, 582u, 0u, 0u, 0u, 0u, 583u, 0u, 584u, 0u, 0u, 0u, 0u, 585u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 586u, 0u, 0u, 0u, 587u, 0u, 0u, + 588u, 0u, 0u, 0u, 589u, 0u, 590u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 591u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 592u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 593u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 594u, 0u, 0u, 0u, 0u, 0u, 595u, 0u, 596u, 597u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 598u, 0u, 0u, 599u, 0u, 0u, 0u, 0u, 600u, 0u, 0u, 0u, 601u, 0u, 602u, 0u, 603u, 0u, 0u, 604u, 0u, 605u, 606u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 607u, 0u, 0u, 0u, 608u, 0u, 0u, 0u, 0u, 609u, 0u, 610u, 0u, 0u, 611u, 0u, 612u, 0u, 0u, 0u, 0u, 0u, 613u, 614u, 0u, 0u, 0u, 0u, 615u, 0u, + 616u, 0u, 0u, 0u, 0u, 617u, 0u, 0u, 0u, 618u, 0u, 619u, 0u, 0u, 0u, 0u, 620u, 0u, 621u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 622u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 623u, 0u, 0u, 624u, 0u, 0u, 0u, 625u, 0u, 0u, 626u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 627u, 0u, 628u, 0u, 629u, 0u, 630u, 0u, + 631u, 0u, 0u, 0u, 0u, 632u, 633u, 634u, 0u, 635u, 636u, 0u, 0u, 0u, 0u, 0u, 0u, 637u, 0u, 0u, 0u, 0u, 0u, 638u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 639u, + 0u, 0u, 0u, 640u, 0u, 0u, 0u, 0u, 0u, 641u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 642u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 643u, 644u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 646u, + 0u, 647u, 0u, 0u, 648u, 0u, 0u, 0u, 0u, 649u, 0u, 650u, 0u, 0u, 0u, 651u, 0u, 0u, 0u, 652u, 0u, 0u, 653u, 654u, 0u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, + 0u, 656u, 657u, 0u, 0u, 658u, 659u, 0u, 0u, 0u, 660u, 0u, 661u, 0u, 662u, 0u, 663u, 0u, 664u, 0u, 665u, 666u, 0u, 667u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 668u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 669u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 670u, 671u, + 0u, 0u, 0u, 0u, 0u, 0u, 672u, 673u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 674u, 0u, 0u, 675u, 676u, 0u, 0u, 677u, 0u, + 678u, 679u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 680u, 0u, 0u, 681u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 682u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 683u, 684u, 0u, 0u, 685u, 686u, 0u, 687u, 0u, 688u, 0u, 0u, 0u, 0u, 689u, 690u, 0u, 691u, 0u, 692u, 0u, 693u, 0u, 694u, 0u, 695u, + 696u, 0u, 697u, 0u, 698u, 0u, 699u, 0u, 700u, 0u, 701u, 0u, 702u, 0u, 0u, 0u, 703u, 0u, 704u, 0u, 705u, 0u, 706u, 0u, 707u, 0u, 708u, 709u, 0u, 710u, 0u, 711u, + 0u, 0u, 712u, 0u, 713u, 0u, 714u, 0u, 715u, 0u, 716u, 0u, 717u, 0u, 718u, 0u, 719u, 0u, 720u, 0u, 721u, 0u, 722u, 723u, 0u, 0u, 724u, 0u, 0u, 725u, 0u, 726u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 727u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 728u, 0u, 0u, 729u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 730u, 0u, + 0u, 0u, 731u, 0u, 732u, 0u, 733u, 0u, 0u, 734u, 0u, 0u, 0u, 0u, 735u, 0u, 0u, 0u, 736u, 0u, 0u, 0u, 737u, 0u, 738u, 0u, 0u, 739u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 740u, 0u, 0u, 0u, 741u, 0u, 742u, 0u, 743u, 0u, 744u, 0u, 745u, 0u, 746u, 0u, 747u, 0u, 748u, 0u, 749u, 750u, 0u, 751u, 0u, 752u, 0u, 753u, 754u, + 0u, 755u, 0u, 756u, 0u, 757u, 758u, 0u, 759u, 0u, 760u, 0u, 761u, 762u, 0u, 763u, 0u, 0u, 764u, 0u, 765u, 766u, 0u, 767u, 0u, 768u, 0u, 769u, 770u, 0u, 771u, 0u, + 0u, 772u, 0u, 773u, 774u, 0u, 775u, 0u, 776u, 0u, 777u, 778u, 0u, 0u, 0u, 0u, 0u, 779u, 0u, 780u, 0u, 781u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 782u, + 0u, 783u, 0u, 784u, 0u, 0u, 785u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 786u, 787u, 0u, 0u, 0u, 0u, 788u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 789u, 0u, 0u, 790u, 0u, 791u, 0u, 0u, 0u, 0u, 0u, 0u, 792u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 793u, 0u, 0u, 794u, 0u, 0u, 795u, 0u, 796u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 797u, 0u, 0u, 0u, 0u, 0u, 798u, 0u, 0u, 0u, 0u, 799u, 0u, 0u, 0u, + 800u, 0u, 0u, 0u, 801u, 0u, 0u, 802u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 803u, 0u, 0u, 0u, 0u, 804u, + 0u, 805u, 0u, 0u, 0u, 806u, 0u, 0u, 807u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 808u, 0u, 809u, 0u, 0u, 810u, 0u, + 811u, 812u, 0u, 0u, 813u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 814u, 0u, 0u, 0u, 0u, 0u, 815u, 0u, + 816u, 817u, 0u, 818u, 0u, 0u, 0u, 819u, 0u, 0u, 820u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 821u, 0u, 822u, 0u, 0u, + 823u, 824u, 0u, 0u, 0u, 825u, 0u, 826u, 0u, 827u, 0u, 828u, 0u, 829u, 0u, 830u, 831u, 0u, 832u, 833u, 0u, 834u, 0u, 835u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 836u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 837u, 0u, 0u, 838u, 0u, 0u, 839u, + 0u, 840u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 841u, 0u, 0u, 0u, 0u, 0u, 842u, 0u, 0u, 0u, 0u, 843u, 0u, 0u, 0u, 844u, 0u, 0u, 0u, 845u, 0u, 846u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 847u, 0u, 848u, 0u, 0u, 0u, 849u, 0u, 850u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 851u, + 0u, 0u, 852u, 0u, 853u, 0u, 854u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 855u, 0u, 856u, 857u, 0u, 858u, 0u, 0u, 0u, 859u, 0u, 860u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 861u, 0u, 862u, 863u, 0u, 0u, 0u, 864u, 865u, 0u, 866u, 0u, 867u, 0u, 868u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 869u, 0u, 0u, 0u, 0u, 870u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 871u, 0u, 0u, 0u, 872u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 873u, 0u, 0u, 0u, 0u, 0u, 874u, 0u, 0u, 875u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 876u, 0u, 0u, 0u, 877u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 878u, 0u, 0u, 0u, 0u, 0u, 879u, 0u, 0u, 880u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 881u, 0u, 0u, 0u, 882u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 883u, 0u, 0u, 0u, 0u, 0u, 884u, 0u, 0u, 885u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 886u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 887u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 888u, 0u, 0u, 0u, 889u, 0u, 0u, 890u, 0u, 0u, 891u, +}; void recomp_unit_0206_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,6,31,7 fprs=12,13,14,15 gpr_occ=4565 fpr_occ=206 gpr_total=6703 fpr_total=280 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08B3C000u; - entry_id = 0u; - if (entry_delta < 16384u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0206[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0206[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16384u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0206[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08B3C000; @@ -969,6 +1092,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B3C000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1004,8 +1151,8 @@ L_08B3C010: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3C030: @@ -1018,15 +1165,41 @@ L_08B3C030: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(52), aot_run_words); } aot_gpr_31 = (0x08B3C06Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 4u, 0x08B3C06Cu, 0x08ABAA04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 469u, 0x08ABAA04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C06Cu) goto L_08B3C06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C06C: ctx.fpr[20] = std::bit_cast(0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(-11836), std::bit_cast(ctx.fpr[20])); aot_gpr_31 = (0x08B3C07Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5432), std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 5u, 0x08B3C07Cu, 0x08AD31E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 538u, 0x08AD31E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C07Cu) goto L_08B3C07C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C07C: aot_gpr_4 = (2233u << 16u); ctx.gpr[17] = (2238u << 16u); @@ -1046,8 +1219,21 @@ L_08B3C0A8: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B3C0B8u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 7u, 0x08B3C0B8u, 0x08A94DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 162u, 0x08A94DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C0B8u) goto L_08B3C0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C0B8: ctx.gpr[21] = (ctx.gpr[18] + static_cast(8)); ctx.gpr[23] = (ctx.gpr[2] | 0u); @@ -1063,8 +1249,21 @@ L_08B3C0D0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3C0E4u); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 9u, 0x08B3C0E4u, 0x0886A440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 484u, 0x0886A440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C0E4u) goto L_08B3C0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C0E4: { const bool branch_taken = static_cast(ctx.gpr[2]) < 0; ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -1077,16 +1276,42 @@ L_08B3C0EC: aot_gpr_4 = (ctx.gpr[20] << 11u); aot_gpr_31 = (0x08B3C0F8u); aot_gpr_4 = (0u + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 11u, 0x08B3C0F8u, 0x08AD3BD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 694u, 0x08AD3BD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C0F8u) goto L_08B3C0F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C0F8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (aot_gpr_5 << 11u); aot_gpr_31 = (0x08B3C10Cu); aot_gpr_5 = (0u + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 12u, 0x08B3C10Cu, 0x08A94F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 190u, 0x08A94F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C10Cu) goto L_08B3C10C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C10C: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_08B3C110; @@ -1102,24 +1327,63 @@ L_08B3C118: ctx.gpr[19] = (0u + aot_gpr_4); aot_gpr_31 = (0x08B3C128u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 15u, 0x08B3C128u, 0x08AD3BD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 694u, 0x08AD3BD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C128u) goto L_08B3C128; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C128: ctx.gpr[20] = (2236u << 16u); ctx.gpr[20] = (ctx.gpr[20] + static_cast(31984)); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B3C13Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 16u, 0x08B3C13Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C13Cu) goto L_08B3C13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C13C: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B3C150u); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 17u, 0x08B3C150u, 0x08A94FC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 199u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 199u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 199u, 0x08A94FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C150u) goto L_08B3C150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C150: aot_gpr_4 = (24942u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(26989)); @@ -1129,8 +1393,21 @@ L_08B3C150: aot_gpr_4 = (aot_gpr_29 + static_cast(8)); aot_gpr_31 = (0x08B3C170u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 18u, 0x08B3C170u, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C170u) goto L_08B3C170; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C170: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); @@ -1151,8 +1428,21 @@ L_08B3C188: L_08B3C18C: aot_gpr_31 = (0x08B3C194u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 22u, 0x08B3C194u, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C194u) goto L_08B3C194; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C194: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1174,22 +1464,61 @@ L_08B3C1AC: aot_gpr_6 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08B3C1BCu); aot_gpr_7 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 26u, 0x08B3C1BCu, 0x0893E214u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 549u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 549u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 549u, 0x0893E214u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C1BCu) goto L_08B3C1BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C1BC: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[19] = (0u | 1u); aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B3C1D0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 27u, 0x08B3C1D0u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C1D0u) goto L_08B3C1D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C1D0: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B3C1DCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 28u, 0x08B3C1DCu, 0x08A94EB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 179u, 0x08A94EB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C1DCu) goto L_08B3C1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C1DC: aot_gpr_7 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(160))); aot_gpr_4 = (ctx.gpr[18] + static_cast(36)); @@ -1198,8 +1527,21 @@ L_08B3C1DC: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B3C1F8u); ctx.gpr[8] = (0u | 32u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 29u, 0x08B3C1F8u, 0x088E2118u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 128u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 128u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 128u, 0x088E2118u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C1F8u) goto L_08B3C1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C1F8: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(17), static_cast(ctx.gpr[19])); @@ -1223,8 +1565,21 @@ L_08B3C218: aot_gpr_5 = (ctx.gpr[28] + static_cast(5032)); aot_gpr_31 = (0x08B3C224u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 33u, 0x08B3C224u, 0x088713B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 359u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 359u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 359u, 0x088713B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C224u) goto L_08B3C224; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C224: ctx.gpr[22] = (ctx.gpr[2] | 0u); aot_gpr_5 = (ctx.gpr[28] + static_cast(5036)); @@ -1239,8 +1594,21 @@ L_08B3C238: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3C24Cu); aot_gpr_7 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 35u, 0x08B3C24Cu, 0x0886A440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 484u, 0x0886A440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C24Cu) goto L_08B3C24C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C24C: { const bool branch_taken = static_cast(ctx.gpr[2]) < 0; if (branch_taken) { @@ -1255,32 +1623,84 @@ L_08B3C254: aot_gpr_5 = (0u + aot_gpr_5); aot_gpr_31 = (0x08B3C26Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 37u, 0x08B3C26Cu, 0x088713F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 363u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 363u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 363u, 0x088713F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C26Cu) goto L_08B3C26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C26C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 11u); ctx.gpr[16] = (0u + aot_gpr_4); aot_gpr_31 = (0x08B3C280u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 38u, 0x08B3C280u, 0x08AD3BD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 694u, 0x08AD3BD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C280u) goto L_08B3C280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C280: aot_gpr_4 = (2236u << 16u); ctx.gpr[17] = (aot_gpr_4 + static_cast(31984)); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3C294u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 39u, 0x08B3C294u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C294u) goto L_08B3C294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C294: ctx.gpr[19] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B3C2A8u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 40u, 0x08B3C2A8u, 0x088713D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 361u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 361u, 0x088713D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C2A8u) goto L_08B3C2A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C2A8: aot_gpr_4 = (99u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(24941)); @@ -1290,24 +1710,63 @@ L_08B3C2A8: aot_gpr_4 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08B3C2C8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 41u, 0x08B3C2C8u, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C2C8u) goto L_08B3C2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C2C8: aot_gpr_4 = (2236u << 16u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B3C2DCu); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 42u, 0x08B3C2DCu, 0x08A1C884u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 88u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 88u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 88u, 0x08A1C884u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C2DCu) goto L_08B3C2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C2DC: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[16] = (0u | 1u); aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B3C2F0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 43u, 0x08B3C2F0u, 0x08ABE988u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 563u, 0x08ABE988u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C2F0u) goto L_08B3C2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C2F0: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[18] + static_cast(158), static_cast(ctx.gpr[16])); @@ -1322,8 +1781,21 @@ L_08B3C2F8: L_08B3C2FC: aot_gpr_31 = (0x08B3C304u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 46u, 0x08B3C304u, 0x08871414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 365u, 0x08871414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C304u) goto L_08B3C304; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C304: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(28), aot_gpr_4); @@ -1334,8 +1806,21 @@ L_08B3C304: L_08B3C314: aot_gpr_31 = (0x08B3C31Cu); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 48u, 0x08B3C31Cu, 0x08AB4198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 27u, 0x08AB4198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C31Cu) goto L_08B3C31C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C31C: { std::uint32_t aot_run_words[11]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(36), aot_run_words); @@ -1353,8 +1838,8 @@ L_08B3C31C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3C350: @@ -1365,8 +1850,21 @@ L_08B3C350: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B3C36Cu); ctx.gpr[17] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 50u, 0x08B3C36Cu, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C36Cu) goto L_08B3C36C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C36C: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(19), static_cast(aot_gpr_4)); @@ -1380,22 +1878,61 @@ L_08B3C36C: } L_08B3C384: aot_gpr_31 = (0x08B3C38Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 52u, 0x08B3C38Cu, 0x08AD3670u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 604u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 604u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 604u, 0x08AD3670u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C38Cu) goto L_08B3C38C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C38C: aot_gpr_4 = (ctx.gpr[17] + static_cast(8)); aot_gpr_31 = (0x08B3C398u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 53u, 0x08B3C398u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C398u) goto L_08B3C398; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C398: aot_gpr_31 = (0x08B3C3A0u); aot_gpr_4 = (ctx.gpr[17] | 0u); goto L_08B3C3BC; L_08B3C3A0: aot_gpr_31 = (0x08B3C3A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 55u, 0x08B3C3A8u, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C3A8u) goto L_08B3C3A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C3A8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1405,8 +1942,8 @@ L_08B3C3A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3C3BC: @@ -1422,14 +1959,40 @@ L_08B3C3BC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(1452), aot_run_words); } aot_gpr_31 = (0x08B3C410u); aot_gpr_4 = (0u | 8876u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 57u, 0x08B3C410u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C410u) goto L_08B3C410; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C410: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(160), ctx.gpr[2]); aot_gpr_31 = (0x08B3C41Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 58u, 0x08B3C41Cu, 0x0884C9C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 104u, 0x0884C9C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C41Cu) goto L_08B3C41C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C41C: ctx.gpr[16] = (ctx.gpr[18] + static_cast(8)); ctx.gpr[17] = (ctx.gpr[16] | 0u); @@ -1542,13 +2105,39 @@ L_08B3C4BC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3C4CCu); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 72u, 0x08B3C4CCu, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C4CCu) goto L_08B3C4CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C4CC: aot_gpr_31 = (0x08B3C4D4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 73u, 0x08B3C4D4u, 0x08B3B344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 910u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 910u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 910u, 0x08B3B344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C4D4u) goto L_08B3C4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C4D4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -1562,8 +2151,21 @@ L_08B3C4E4: aot_gpr_5 = (aot_gpr_4 & 255u); aot_gpr_31 = (0x08B3C4F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 75u, 0x08B3C4F0u, 0x08A063F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 567u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 567u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 567u, 0x08A063F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C4F0u) goto L_08B3C4F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C4F0: ctx.gpr[22] = (0u | 380u); ctx.gpr[17] = (ctx.gpr[28] + static_cast(5068)); @@ -1602,8 +2204,21 @@ L_08B3C524: L_08B3C52C: aot_gpr_31 = (0x08B3C534u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 81u, 0x08B3C534u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C534u) goto L_08B3C534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C534: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1614,8 +2229,21 @@ L_08B3C534: L_08B3C53C: aot_gpr_31 = (0x08B3C544u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 83u, 0x08B3C544u, 0x08AD340Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 565u, 0x08AD340Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C544u) goto L_08B3C544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C544: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); aot_gpr_5 = (static_cast(ctx.gpr[22]) < static_cast(aot_gpr_5) ? 1u : 0u); @@ -1634,8 +2262,21 @@ L_08B3C554: L_08B3C560: aot_gpr_31 = (0x08B3C568u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 86u, 0x08B3C568u, 0x088DF720u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 456u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 456u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 456u, 0x088DF720u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C568u) goto L_08B3C568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C568: ctx.gpr[22] = (ctx.gpr[22] + static_cast(1)); aot_gpr_4 = (static_cast(ctx.gpr[22]) < 390 ? 1u : 0u); @@ -1719,8 +2360,21 @@ L_08B3C60C: L_08B3C628: aot_gpr_31 = (0x08B3C630u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 92u, 0x08B3C630u, 0x08A90840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 64u, 0x08A90840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C630u) goto L_08B3C630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C630: aot_gpr_31 = (0x08B3C638u); if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_compact_generated_leaf<&vcs_compact_leaf_08960424, 87u, 0x08960424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C638u) goto L_08B3C638; @@ -1738,8 +2392,21 @@ L_08B3C638: ctx.gpr[19] = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B3C668u); aot_gpr_4 = (ctx.gpr[17] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0172. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 94u, 0x08B3C668u, 0x08AB4198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0172_entry(rt, ctx, 27u, aot_mem); +#else + recomp_unit_0172_entry(rt, ctx, 27u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0172_entry, 172u, 27u, 0x08AB4198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C668u) goto L_08B3C668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C668: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (65528u << 16u); @@ -1759,8 +2426,21 @@ L_08B3C68C: aot_mem.aot_direct_store16(ctx.gpr[2] + static_cast(154), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08B3C6A4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 96u, 0x08B3C6A4u, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C6A4u) goto L_08B3C6A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C6A4: aot_gpr_5 = (ctx.gpr[28] + static_cast(5072)); aot_gpr_4 = (ctx.gpr[21] | 0u); @@ -1774,8 +2454,21 @@ L_08B3C6B4: aot_gpr_7 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B3C6C8u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0025. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 98u, 0x08B3C6C8u, 0x0886A440u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0025_entry(rt, ctx, 484u, aot_mem); +#else + recomp_unit_0025_entry(rt, ctx, 484u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0025_entry, 25u, 484u, 0x0886A440u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C6C8u) goto L_08B3C6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C6C8: if (static_cast(ctx.gpr[2]) >= 0) { aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); @@ -1802,8 +2495,21 @@ L_08B3C6E0: aot_gpr_4 = (0u + aot_gpr_4); aot_gpr_31 = (0x08B3C700u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 102u, 0x08B3C700u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C700u) goto L_08B3C700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C700: aot_gpr_6 = (2235u << 16u); aot_gpr_6 = (aot_gpr_6 + static_cast(1289)); @@ -1820,22 +2526,61 @@ L_08B3C720: aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B3C730u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 104u, 0x08B3C730u, 0x08A94DB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 162u, 0x08A94DB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C730u) goto L_08B3C730; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C730: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_31 = (0x08B3C740u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 105u, 0x08B3C740u, 0x08A94F30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 190u, 0x08A94F30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C740u) goto L_08B3C740; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C740: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3C750u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 106u, 0x08B3C750u, 0x08A94FC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 199u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 199u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 199u, 0x08A94FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C750u) goto L_08B3C750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C750: aot_gpr_4 = (99u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(30068)); @@ -1845,16 +2590,42 @@ L_08B3C750: aot_gpr_4 = (aot_gpr_29 + static_cast(1048)); aot_gpr_31 = (0x08B3C770u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 107u, 0x08B3C770u, 0x08A3137Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 285u, 0x08A3137Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C770u) goto L_08B3C770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C770: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1056), ctx.gpr[2]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1324), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3C784u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0164. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 108u, 0x08B3C784u, 0x08A94EB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0164_entry(rt, ctx, 179u, aot_mem); +#else + recomp_unit_0164_entry(rt, ctx, 179u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0164_entry, 164u, 179u, 0x08A94EB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C784u) goto L_08B3C784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C784: aot_gpr_4 = (0u | 0u); aot_gpr_5 = (0u | 0u); @@ -1904,8 +2675,21 @@ L_08B3C830: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B3C83Cu); aot_gpr_6 = (0u | 1024u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 110u, 0x08B3C83Cu, 0x08B3B43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 929u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 929u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 929u, 0x08B3B43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3C83Cu) goto L_08B3C83C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3C83C: { const bool branch_taken = ctx.gpr[2] == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1324), ctx.gpr[2]); @@ -1999,8 +2783,8 @@ L_08B3C8B0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30928))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3C8C8: @@ -2565,8 +3349,21 @@ L_08B3CBB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(1060), aot_gpr_5); aot_gpr_31 = (0x08B3CBC8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 191u, 0x08B3CBC8u, 0x088DE1A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 346u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 346u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 346u, 0x088DE1A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CBC8u) goto L_08B3CBC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CBC8: aot_gpr_4 = (0u | 1u); goto L_08B3CBCC; @@ -2652,8 +3449,21 @@ L_08B3CC3C: L_08B3CC44: aot_gpr_31 = (0x08B3CC4Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0067. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 204u, 0x08B3CC4Cu, 0x08910B38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); +#else + recomp_unit_0067_entry(rt, ctx, 195u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0067_entry, 67u, 195u, 0x08910B38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CC4Cu) goto L_08B3CC4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CC4C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2722,8 +3532,21 @@ L_08B3CCA0: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B3CCACu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 210u, 0x08B3CCACu, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CCACu) goto L_08B3CCAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CCAC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(1328))); aot_gpr_6 = (aot_gpr_29 + static_cast(1104)); @@ -2735,26 +3558,78 @@ L_08B3CCBC: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3CCC8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 212u, 0x08B3CCC8u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CCC8u) goto L_08B3CCC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CCC8: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08B3CCD4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 213u, 0x08B3CCD4u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CCD4u) goto L_08B3CCD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CCD4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3CCE0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 214u, 0x08B3CCE0u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CCE0u) goto L_08B3CCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CCE0: ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B3CCECu); aot_gpr_4 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 215u, 0x08B3CCECu, 0x08B58998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 154u, 0x08B58998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CCECu) goto L_08B3CCEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CCEC: { const bool branch_taken = ctx.gpr[16] == 0u; ctx.gpr[17] = (0u | 1u); @@ -2768,13 +3643,39 @@ L_08B3CCF4: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B3CD04u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 217u, 0x08B3CD04u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CD04u) goto L_08B3CD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CD04: aot_gpr_31 = (0x08B3CD0Cu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 218u, 0x08B3CD0Cu, 0x08B58998u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 154u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 154u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 154u, 0x08B58998u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CD0Cu) goto L_08B3CD0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CD0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(60))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(160))); @@ -2783,8 +3684,21 @@ L_08B3CD0C: aot_gpr_4 = (aot_gpr_4 + static_cast(50)); aot_gpr_31 = (0x08B3CD28u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 219u, 0x08B3CD28u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CD28u) goto L_08B3CD28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CD28: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(60))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(160))); @@ -2793,8 +3707,21 @@ L_08B3CD28: aot_gpr_4 = (aot_gpr_4 + static_cast(1650)); aot_gpr_31 = (0x08B3CD44u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 220u, 0x08B3CD44u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CD44u) goto L_08B3CD44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CD44: if (ctx.gpr[17] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(160))); @@ -2838,8 +3765,21 @@ L_08B3CDA4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(60), aot_gpr_5); aot_gpr_31 = (0x08B3CDBCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 224u, 0x08B3CDBCu, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CDBCu) goto L_08B3CDBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CDBC: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] != 0u; @@ -2921,8 +3861,21 @@ L_08B3CE3C: aot_gpr_4 = (aot_gpr_4 + static_cast(3452)); aot_gpr_31 = (0x08B3CE58u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 235u, 0x08B3CE58u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CE58u) goto L_08B3CE58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CE58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(64))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(160))); @@ -2950,14 +3903,40 @@ L_08B3CE9C: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B3CEA8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 237u, 0x08B3CEA8u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CEA8u) goto L_08B3CEA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CEA8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B3CEB4u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 238u, 0x08B3CEB4u, 0x0884C944u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 98u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 98u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 98u, 0x0884C944u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CEB4u) goto L_08B3CEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CEB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3058,8 +4037,21 @@ L_08B3CF64: aot_gpr_4 = (aot_gpr_6 + aot_gpr_4); aot_gpr_31 = (0x08B3CFFCu); aot_gpr_4 = (aot_gpr_4 + static_cast(4488)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 243u, 0x08B3CFFCu, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3CFFCu) goto L_08B3CFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3CFFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(72))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -3094,21 +4086,60 @@ L_08B3D040: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B3D050u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 247u, 0x08B3D050u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D050u) goto L_08B3D050; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D050: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B3D060u); aot_gpr_6 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 248u, 0x08B3D060u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D060u) goto L_08B3D060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D060: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D06Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 249u, 0x08B3D06Cu, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D06Cu) goto L_08B3D06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D06C: aot_gpr_31 = (0x08B3D074u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3119,8 +4150,21 @@ L_08B3D074: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D084u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 251u, 0x08B3D084u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D084u) goto L_08B3D084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D084: aot_gpr_31 = (0x08B3D08Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3131,8 +4175,21 @@ L_08B3D08C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D09Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 253u, 0x08B3D09Cu, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D09Cu) goto L_08B3D09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D09C: aot_gpr_31 = (0x08B3D0A4u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3143,21 +4200,60 @@ L_08B3D0A4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D0B4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 255u, 0x08B3D0B4u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D0B4u) goto L_08B3D0B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D0B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B3D0C4u); aot_gpr_6 = (0u | 31u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 256u, 0x08B3D0C4u, 0x08B58BA0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 200u, 0x08B58BA0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D0C4u) goto L_08B3D0C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D0C4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D0D0u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 257u, 0x08B3D0D0u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D0D0u) goto L_08B3D0D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D0D0: aot_gpr_31 = (0x08B3D0D8u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3174,8 +4270,21 @@ L_08B3D0E4: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D0F4u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 260u, 0x08B3D0F4u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D0F4u) goto L_08B3D0F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D0F4: aot_gpr_31 = (0x08B3D0FCu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3192,8 +4301,21 @@ L_08B3D108: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D118u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 263u, 0x08B3D118u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D118u) goto L_08B3D118; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D118: aot_gpr_31 = (0x08B3D120u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3210,8 +4332,21 @@ L_08B3D12C: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D13Cu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 266u, 0x08B3D13Cu, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D13Cu) goto L_08B3D13C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D13C: aot_gpr_31 = (0x08B3D144u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3228,8 +4363,21 @@ L_08B3D150: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D160u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 269u, 0x08B3D160u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D160u) goto L_08B3D160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D160: aot_gpr_31 = (0x08B3D168u); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3246,8 +4394,21 @@ L_08B3D174: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B3D184u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 272u, 0x08B3D184u, 0x08B59E08u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 523u, 0x08B59E08u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D184u) goto L_08B3D184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D184: aot_gpr_31 = (0x08B3D18Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -3308,8 +4469,21 @@ L_08B3D198: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3D258u); aot_gpr_4 = (aot_gpr_4 + static_cast(6924)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 275u, 0x08B3D258u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D258u) goto L_08B3D258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D258: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(160))); @@ -3394,8 +4568,21 @@ L_08B3D258: aot_gpr_5 = (aot_gpr_29 + static_cast(1244)); aot_gpr_31 = (0x08B3D3A4u); aot_gpr_4 = (aot_gpr_4 + static_cast(6876)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 276u, 0x08B3D3A4u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D3A4u) goto L_08B3D3A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D3A4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(76))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -3470,8 +4657,21 @@ L_08B3D414: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08B3D428u); aot_gpr_4 = (aot_gpr_4 + static_cast(50)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 286u, 0x08B3D428u, 0x08B58180u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 31u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 31u, 0x08B58180u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D428u) goto L_08B3D428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D428: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3507,8 +4707,21 @@ L_08B3D45C: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08B3D470u); aot_gpr_4 = (aot_gpr_4 + static_cast(50)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 290u, 0x08B3D470u, 0x08AEC930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 146u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 146u, 0x08AEC930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D470u) goto L_08B3D470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D470: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(160))); @@ -3526,8 +4739,21 @@ L_08B3D478: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(3252))); aot_gpr_31 = (0x08B3D4A0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 292u, 0x08B3D4A0u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D4A0u) goto L_08B3D4A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D4A0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3547,16 +4773,42 @@ L_08B3D4A8: aot_gpr_5 = (aot_gpr_5 + static_cast(50)); aot_gpr_31 = (0x08B3D4D4u); aot_gpr_6 = (0u | 14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 294u, 0x08B3D4D4u, 0x08AD32D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 552u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 552u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 552u, 0x08AD32D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D4D4u) goto L_08B3D4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D4D4: ctx.gpr[20] = (ctx.gpr[20] + static_cast(1)); aot_gpr_4 = (ctx.gpr[20] + static_cast(380)); goto L_08B3D4DC; L_08B3D4DC: aot_gpr_31 = (0x08B3D4E4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 296u, 0x08B3D4E4u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D4E4u) goto L_08B3D4E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D4E4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3611,8 +4863,21 @@ L_08B3D524: L_08B3D53C: aot_gpr_31 = (0x08B3D544u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 303u, 0x08B3D544u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D544u) goto L_08B3D544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D544: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(28), aot_gpr_4); @@ -3639,8 +4904,8 @@ L_08B3D54C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1472)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3D594: @@ -3657,8 +4922,21 @@ L_08B3D594: } L_08B3D5C4: aot_gpr_31 = (0x08B3D5CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 307u, 0x08B3D5CCu, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D5CCu) goto L_08B3D5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D5CC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(128))); ctx.gpr[20] = (ctx.gpr[16] + static_cast(80)); @@ -3678,8 +4956,21 @@ L_08B3D5F0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(120))); aot_gpr_31 = (0x08B3D5FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 309u, 0x08B3D5FCu, 0x088DE1A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 346u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 346u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 346u, 0x088DE1A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D5FCu) goto L_08B3D5FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D5FC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); @@ -3698,8 +4989,21 @@ L_08B3D604: L_08B3D60C: aot_gpr_31 = (0x08B3D614u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0054. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 312u, 0x08B3D614u, 0x088DE1D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); +#else + recomp_unit_0054_entry(rt, ctx, 350u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0054_entry, 54u, 350u, 0x088DE1D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D614u) goto L_08B3D614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D614: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(72))); goto L_08B3D618; @@ -3768,13 +5072,39 @@ L_08B3D68C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(72), 0u); aot_gpr_31 = (0x08B3D698u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(76), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 322u, 0x08B3D698u, 0x08AB92E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 231u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 231u, 0x08AB92E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D698u) goto L_08B3D698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D698: aot_gpr_31 = (0x08B3D6A0u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0163. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 323u, 0x08B3D6A0u, 0x08A90840u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0163_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0163_entry, 163u, 64u, 0x08A90840u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D6A0u) goto L_08B3D6A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D6A0: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(19), static_cast(0u)); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(20), static_cast(0u)); @@ -3796,8 +5126,21 @@ L_08B3D6BC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(7740))); aot_gpr_31 = (0x08B3D6D8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 325u, 0x08B3D6D8u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D6D8u) goto L_08B3D6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D6D8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(160))); @@ -3860,8 +5203,21 @@ L_08B3D764: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(80), 0u); aot_gpr_31 = (0x08B3D770u); aot_gpr_4 = (ctx.gpr[16] + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0055. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 331u, 0x08B3D770u, 0x088E25C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0055_entry(rt, ctx, 197u, aot_mem); +#else + recomp_unit_0055_entry(rt, ctx, 197u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0055_entry, 55u, 197u, 0x088E25C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D770u) goto L_08B3D770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D770: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(17))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3888,8 +5244,21 @@ L_08B3D790: L_08B3D794: aot_gpr_31 = (0x08B3D79Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 336u, 0x08B3D79Cu, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D79Cu) goto L_08B3D79C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D79C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3909,8 +5278,21 @@ L_08B3D7B0: L_08B3D7B4: aot_gpr_31 = (0x08B3D7BCu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 340u, 0x08B3D7BCu, 0x0893E35Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 556u, 0x0893E35Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D7BCu) goto L_08B3D7BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D7BC: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(17), static_cast(0u)); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(160))); @@ -3928,18 +5310,57 @@ L_08B3D7D8: ctx.gpr[17] = (aot_gpr_4 + static_cast(32304)); aot_gpr_31 = (0x08B3D7E8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 342u, 0x08B3D7E8u, 0x08A1CC44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 125u, 0x08A1CC44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D7E8u) goto L_08B3D7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D7E8: aot_gpr_31 = (0x08B3D7F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 343u, 0x08B3D7F0u, 0x08A1D1F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 203u, 0x08A1D1F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D7F0u) goto L_08B3D7F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D7F0: aot_gpr_31 = (0x08B3D7F8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0133. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 344u, 0x08B3D7F8u, 0x08A1BEE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0133_entry(rt, ctx, 611u, aot_mem); +#else + recomp_unit_0133_entry(rt, ctx, 611u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0133_entry, 133u, 611u, 0x08A1BEE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D7F8u) goto L_08B3D7F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D7F8: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(28), 0u); aot_gpr_31 = (0x08B3D804u); @@ -3972,8 +5393,21 @@ L_08B3D840: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3D85Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 347u, 0x08B3D85Cu, 0x08964108u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 8u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 8u, 0x08964108u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D85Cu) goto L_08B3D85C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D85C: ctx.gpr[18] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[21] + static_cast(0)))))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4082,18 +5516,57 @@ L_08B3D8E4: ctx.gpr[17] = (ctx.gpr[28] + static_cast(7768)); aot_gpr_31 = (0x08B3D8F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 361u, 0x08B3D8F0u, 0x08A06434u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 571u, 0x08A06434u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D8F0u) goto L_08B3D8F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D8F0: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B3D8FCu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 362u, 0x08B3D8FCu, 0x08A063CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 565u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 565u, 0x08A063CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D8FCu) goto L_08B3D8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D8FC: aot_gpr_31 = (0x08B3D904u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 363u, 0x08B3D904u, 0x08AD31E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 538u, 0x08AD31E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D904u) goto L_08B3D904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D904: aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(8424), static_cast(0u)); aot_gpr_31 = (0x08B3D910u); @@ -4104,8 +5577,21 @@ L_08B3D910: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B3D91Cu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 365u, 0x08B3D91Cu, 0x0898BA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 941u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 941u, 0x0898BA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D91Cu) goto L_08B3D91C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D91C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(157))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4116,16 +5602,55 @@ L_08B3D91C: } L_08B3D928: aot_gpr_31 = (0x08B3D930u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 367u, 0x08B3D930u, 0x08AD312Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 528u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 528u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 528u, 0x08AD312Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D930u) goto L_08B3D930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D930: aot_gpr_31 = (0x08B3D938u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 368u, 0x08B3D938u, 0x08AD317Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 532u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 532u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 532u, 0x08AD317Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D938u) goto L_08B3D938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D938: aot_gpr_31 = (0x08B3D940u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 369u, 0x08B3D940u, 0x08AD31CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 536u, 0x08AD31CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D940u) goto L_08B3D940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D940: aot_gpr_31 = (0x08B3D948u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(157), static_cast(0u)); @@ -4157,21 +5682,60 @@ L_08B3D974: ctx.gpr[20] = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(96))); aot_gpr_31 = (0x08B3D980u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 374u, 0x08B3D980u, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D980u) goto L_08B3D980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D980: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B3D994u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 375u, 0x08B3D994u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D994u) goto L_08B3D994; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D994: aot_gpr_31 = (0x08B3D99Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 376u, 0x08B3D99Cu, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D99Cu) goto L_08B3D99C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D99C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(160))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); @@ -4199,13 +5763,39 @@ L_08B3D9C8: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B3D9D8u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 380u, 0x08B3D9D8u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D9D8u) goto L_08B3D9D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D9D8: aot_gpr_31 = (0x08B3D9E0u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 381u, 0x08B3D9E0u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D9E0u) goto L_08B3D9E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D9E0: aot_gpr_4 = (ctx.gpr[21] & 1u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4217,8 +5807,21 @@ L_08B3D9E0: L_08B3D9EC: aot_gpr_31 = (0x08B3D9F4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 383u, 0x08B3D9F4u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3D9F4u) goto L_08B3D9F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3D9F4: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(160))); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -4227,8 +5830,21 @@ L_08B3D9F4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(8796))); aot_gpr_31 = (0x08B3DA10u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0069. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 384u, 0x08B3DA10u, 0x0891B7DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); +#else + recomp_unit_0069_entry(rt, ctx, 600u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0069_entry, 69u, 600u, 0x0891B7DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DA10u) goto L_08B3DA10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DA10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(144))); ctx.gpr[18] = (ctx.gpr[18] + static_cast(1)); @@ -4261,8 +5877,21 @@ L_08B3DA40: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); aot_gpr_31 = (0x08B3DA4Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(3252))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 389u, 0x08B3DA4Cu, 0x08AD37C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 625u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 625u, 0x08AD37C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DA4Cu) goto L_08B3DA4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DA4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(60))); ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); @@ -4285,8 +5914,21 @@ L_08B3DA64: L_08B3DA6C: aot_gpr_31 = (0x08B3DA74u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 392u, 0x08B3DA74u, 0x0884CAE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 123u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 123u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 123u, 0x0884CAE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DA74u) goto L_08B3DA74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DA74: aot_gpr_31 = (0x08B3DA7Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(160))); @@ -4298,22 +5940,74 @@ L_08B3DA7C: L_08B3DA80: aot_gpr_31 = (0x08B3DA88u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 395u, 0x08B3DA88u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DA88u) goto L_08B3DA88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DA88: aot_gpr_31 = (0x08B3DA90u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 396u, 0x08B3DA90u, 0x08AD3650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 602u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 602u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 602u, 0x08AD3650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DA90u) goto L_08B3DA90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DA90: aot_gpr_31 = (0x08B3DA98u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 397u, 0x08B3DA98u, 0x08AD3610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 598u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 598u, 0x08AD3610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DA98u) goto L_08B3DA98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DA98: aot_gpr_31 = (0x08B3DAA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 398u, 0x08B3DAA0u, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DAA0u) goto L_08B3DAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DAA0: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -4328,8 +6022,8 @@ L_08B3DAA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3DAC8: @@ -4375,13 +6069,39 @@ L_08B3DB1C: L_08B3DB24: aot_gpr_31 = (0x08B3DB2Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 404u, 0x08B3DB2Cu, 0x08B3B9CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 1001u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 1001u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 1001u, 0x08B3B9CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DB2Cu) goto L_08B3DB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DB2C: aot_gpr_31 = (0x08B3DB34u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 405u, 0x08B3DB34u, 0x08B3BCD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 1028u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 1028u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 1028u, 0x08B3BCD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DB34u) goto L_08B3DB34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DB34: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(24))); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(18))); @@ -4402,17 +6122,56 @@ L_08B3DB48: } L_08B3DB50: aot_gpr_31 = (0x08B3DB58u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 408u, 0x08B3DB58u, 0x08A114E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 163u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 163u, 0x08A114E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DB58u) goto L_08B3DB58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DB58: aot_gpr_31 = (0x08B3DB60u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 409u, 0x08B3DB60u, 0x08B3BEA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 1042u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 1042u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 1042u, 0x08B3BEA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DB60u) goto L_08B3DB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DB60: aot_gpr_31 = (0x08B3DB68u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0131. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 410u, 0x08B3DB68u, 0x08A11504u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0131_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0131_entry, 131u, 165u, 0x08A11504u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DB68u) goto L_08B3DB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DB68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4561,8 +6320,21 @@ L_08B3DC24: L_08B3DC2C: aot_gpr_31 = (0x08B3DC34u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 429u, 0x08B3DC34u, 0x08A06414u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 569u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 569u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 569u, 0x08A06414u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DC34u) goto L_08B3DC34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DC34: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(18))); @@ -4591,8 +6363,21 @@ L_08B3DC48: aot_fpr_12 = aot_fpr_13 + aot_fpr_12; aot_gpr_31 = (0x08B3DC68u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(32), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 433u, 0x08B3DC68u, 0x08B3B880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 983u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 983u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 983u, 0x08B3B880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DC68u) goto L_08B3DC68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DC68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(68))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(64))); @@ -4629,8 +6414,21 @@ L_08B3DCA4: ctx.gpr[19] = (0u | 0u); aot_gpr_31 = (0x08B3DCB0u); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 437u, 0x08B3DCB0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DCB0u) goto L_08B3DCB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DCB0: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] == 0u; @@ -4658,8 +6456,21 @@ L_08B3DCD8: aot_gpr_5 = (aot_gpr_5 + static_cast(3452)); aot_gpr_31 = (0x08B3DCE8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 442u, 0x08B3DCE8u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DCE8u) goto L_08B3DCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DCE8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(68))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(160))); @@ -4671,8 +6482,21 @@ L_08B3DCE8: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x08B3DD10u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 443u, 0x08B3DD10u, 0x08AB9068u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 216u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 216u, 0x08AB9068u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DD10u) goto L_08B3DD10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DD10: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(68))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -4712,8 +6536,21 @@ L_08B3DD4C: L_08B3DD54: aot_gpr_31 = (0x08B3DD5Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 448u, 0x08B3DD5Cu, 0x08B3B5A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 951u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 951u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 951u, 0x08B3B5A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DD5Cu) goto L_08B3DD5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DD5C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(80))); ctx.gpr[19] = (ctx.gpr[19] + static_cast(1)); @@ -4868,8 +6705,21 @@ L_08B3DE3C: L_08B3DE48: aot_gpr_31 = (0x08B3DE50u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 466u, 0x08B3DE50u, 0x08A1C544u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 41u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 41u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 41u, 0x08A1C544u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DE50u) goto L_08B3DE50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DE50: aot_gpr_4 = (ctx.gpr[18] + static_cast(1000)); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -4895,8 +6745,21 @@ L_08B3DE6C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B3DE88u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 469u, 0x08B3DE88u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DE88u) goto L_08B3DE88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DE88: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(140))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4971,15 +6834,41 @@ L_08B3DF14: L_08B3DF1C: aot_gpr_31 = (0x08B3DF24u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 478u, 0x08B3DF24u, 0x089BAEB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 618u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 618u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 618u, 0x089BAEB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DF24u) goto L_08B3DF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DF24: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(22), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B3DF34u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0205. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 479u, 0x08B3DF34u, 0x08B3BC20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0205_entry(rt, ctx, 1020u, aot_mem); +#else + recomp_unit_0205_entry(rt, ctx, 1020u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0205_entry, 205u, 1020u, 0x08B3BC20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DF34u) goto L_08B3DF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DF34: aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(140), static_cast(0u)); { const bool branch_taken = 0u == 0u; @@ -4992,8 +6881,21 @@ L_08B3DF34: L_08B3DF40: aot_gpr_31 = (0x08B3DF48u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 481u, 0x08B3DF48u, 0x0884CC2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 139u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 139u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 139u, 0x0884CC2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DF48u) goto L_08B3DF48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DF48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5011,8 +6913,21 @@ L_08B3DF50: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B3DF74u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 483u, 0x08B3DF74u, 0x08A1C044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 4u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 4u, 0x08A1C044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DF74u) goto L_08B3DF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DF74: { std::uint32_t aot_run_words[8]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -5027,8 +6942,8 @@ L_08B3DF74: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3DF9C: @@ -5036,8 +6951,21 @@ L_08B3DF9C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B3DFACu); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 485u, 0x08B3DFACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3DFACu) goto L_08B3DFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3DFAC: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store32(ctx.gpr[2] + static_cast(8), aot_gpr_4); @@ -5051,8 +6979,8 @@ L_08B3DFAC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3DFDC: @@ -5105,8 +7033,8 @@ L_08B3E030: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E044: @@ -5115,8 +7043,8 @@ L_08B3E044: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E058: @@ -5143,15 +7071,15 @@ L_08B3E078: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E084: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 + static_cast(4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E08C: @@ -5164,8 +7092,8 @@ L_08B3E08C: goto L_08B3E09C; L_08B3E09C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E0A4: @@ -5232,8 +7160,8 @@ L_08B3E118: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E13C: @@ -5242,8 +7170,8 @@ L_08B3E13C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E150: @@ -5279,8 +7207,21 @@ L_08B3E188: aot_gpr_7 = (0u | 1u); aot_gpr_31 = (0x08B3E1A0u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 512u, 0x08B3E1A0u, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3E1A0u) goto L_08B3E1A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3E1A0: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] | 0u); @@ -5312,8 +7253,21 @@ L_08B3E1CC: L_08B3E1D8: aot_gpr_31 = (0x08B3E1E0u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 516u, 0x08B3E1E0u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3E1E0u) goto L_08B3E1E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3E1E0: aot_gpr_4 = (ctx.gpr[2] | 0u); goto L_08B3E1E4; @@ -5358,8 +7312,8 @@ L_08B3E22C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E240: @@ -5368,24 +7322,24 @@ L_08B3E240: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(8), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E254: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); jump_target = aot_gpr_31; ctx.fpr[0] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(8))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E260: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E26C: @@ -5393,16 +7347,16 @@ L_08B3E26C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), 0u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E27C: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(10584), 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(10588), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E288: @@ -5582,8 +7536,8 @@ L_08B3E3C0: L_08B3E460: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E468: @@ -5596,14 +7550,27 @@ L_08B3E468: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B3E48Cu); aot_gpr_7 = (aot_gpr_7 + static_cast(-7572)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 541u, 0x08B3E48Cu, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3E48Cu) goto L_08B3E48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3E48C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E498: @@ -5647,8 +7614,8 @@ L_08B3E498: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E4DC: @@ -5784,8 +7751,8 @@ L_08B3E4DC: ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E5C0: @@ -5894,8 +7861,8 @@ L_08B3E5C0: ctx.fpr[0] = ctx.fpr[0] + aot_fpr_14; jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E6A4: @@ -6037,8 +8004,8 @@ L_08B3E800: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E830: @@ -6104,8 +8071,8 @@ L_08B3E89C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E8BC: @@ -6118,14 +8085,14 @@ L_08B3E8BC: aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(4), static_cast(aot_gpr_5)); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E8E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3E8E8: @@ -6226,8 +8193,21 @@ L_08B3E9B4: L_08B3E9BC: aot_gpr_31 = (0x08B3E9C4u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 570u, 0x08B3E9C4u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3E9C4u) goto L_08B3E9C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3E9C4: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -6273,8 +8253,21 @@ L_08B3EA18: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B3EA2Cu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 576u, 0x08B3EA2Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EA2Cu) goto L_08B3EA2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EA2C: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[20]); @@ -6319,8 +8312,21 @@ L_08B3EA74: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B3EA88u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 581u, 0x08B3EA88u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EA88u) goto L_08B3EA88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EA88: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); goto L_08B3EA8C; @@ -6385,8 +8391,21 @@ L_08B3EB00: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B3EB10u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 589u, 0x08B3EB10u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EB10u) goto L_08B3EB10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EB10: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[19]); @@ -6417,8 +8436,8 @@ L_08B3EB38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3EB68: @@ -6520,8 +8539,21 @@ L_08B3EC34: L_08B3EC3C: aot_gpr_31 = (0x08B3EC44u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 603u, 0x08B3EC44u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EC44u) goto L_08B3EC44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EC44: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -6567,8 +8599,21 @@ L_08B3EC98: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B3ECACu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 609u, 0x08B3ECACu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3ECACu) goto L_08B3ECAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3ECAC: { const bool branch_taken = 0u == 0u; ctx.gpr[20] = (ctx.gpr[2] + ctx.gpr[20]); @@ -6601,8 +8646,21 @@ L_08B3ECC8: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08B3ECE0u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 613u, 0x08B3ECE0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3ECE0u) goto L_08B3ECE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3ECE0: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[17]); goto L_08B3ECE4; @@ -6655,8 +8713,21 @@ L_08B3ED2C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08B3ED40u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 620u, 0x08B3ED40u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3ED40u) goto L_08B3ED40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3ED40: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[19]); @@ -6687,16 +8758,16 @@ L_08B3ED68: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3ED98: ctx.gpr[2] = (2228u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-4712)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3EDA4: @@ -6708,8 +8779,8 @@ L_08B3EDB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3EDC0: @@ -6730,8 +8801,21 @@ L_08B3EDE0: L_08B3EDE8: aot_gpr_31 = (0x08B3EDF0u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 629u, 0x08B3EDF0u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EDF0u) goto L_08B3EDF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EDF0: if (ctx.gpr[2] == ctx.gpr[16]) { ctx.gpr[17] = (0u | 1u); @@ -6740,8 +8824,21 @@ L_08B3EDF0: goto L_08B3EDF8; L_08B3EDF8: aot_gpr_31 = (0x08B3EE00u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 631u, 0x08B3EE00u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EE00u) goto L_08B3EE00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EE00: aot_gpr_4 = (ctx.gpr[2] ^ ctx.gpr[16]); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -6780,8 +8877,8 @@ L_08B3EE28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3EE44: @@ -6790,8 +8887,21 @@ L_08B3EE44: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(4), aot_run_words); } aot_gpr_31 = (0x08B3EE5Cu); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 638u, 0x08B3EE5Cu, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EE5Cu) goto L_08B3EE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EE5C: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-30104)); @@ -6815,8 +8925,21 @@ L_08B3EE8C: aot_mem.aot_direct_store32_block(ctx.gpr[16] + static_cast(208), aot_run_words); } aot_gpr_31 = (0x08B3EEA4u); aot_gpr_4 = (ctx.gpr[16] + static_cast(248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 641u, 0x08B3EEA4u, 0x08B68708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 116u, 0x08B68708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EEA4u) goto L_08B3EEA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EEA4: { const std::uint32_t aot_run_words[3]{0u, 0u, 0u}; aot_mem.aot_direct_store32_block(ctx.gpr[16] + static_cast(260), aot_run_words); } @@ -6832,8 +8955,8 @@ L_08B3EEA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3EED4: @@ -6945,8 +9068,21 @@ L_08B3EFCC: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B3EFD8u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 653u, 0x08B3EFD8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3EFD8u) goto L_08B3EFD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3EFD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(28))); goto L_08B3EFDC; @@ -7054,8 +9190,8 @@ L_08B3F05C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F090: @@ -7127,8 +9263,21 @@ L_08B3F11C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B3F15Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 674u, 0x08B3F15Cu, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F15Cu) goto L_08B3F15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F15C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7470,8 +9619,21 @@ L_08B3F35C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B3F368u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 724u, 0x08B3F368u, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F368u) goto L_08B3F368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F368: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7501,8 +9663,8 @@ L_08B3F37C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F3AC: @@ -7522,8 +9684,8 @@ L_08B3F3CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F3D8: @@ -7555,14 +9717,27 @@ L_08B3F408: goto L_08B3F410; L_08B3F410: aot_gpr_31 = (0x08B3F418u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 733u, 0x08B3F418u, 0x08AC61E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 571u, 0x08AC61E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F418u) goto L_08B3F418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F418: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F424: @@ -7593,14 +9768,27 @@ L_08B3F448: goto L_08B3F458; L_08B3F458: aot_gpr_31 = (0x08B3F460u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 738u, 0x08B3F460u, 0x08AC61E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 571u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 571u, 0x08AC61E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F460u) goto L_08B3F460; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F460: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F46C: @@ -7685,8 +9873,21 @@ L_08B3F4DC: goto L_08B3F4E0; L_08B3F4E0: aot_gpr_31 = (0x08B3F4E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 751u, 0x08B3F4E8u, 0x089C6DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 646u, 0x089C6DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F4E8u) goto L_08B3F4E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F4E8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7728,8 +9929,21 @@ L_08B3F514: goto L_08B3F518; L_08B3F518: aot_gpr_31 = (0x08B3F520u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 759u, 0x08B3F520u, 0x089C6DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 646u, 0x089C6DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F520u) goto L_08B3F520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F520: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7772,8 +9986,21 @@ L_08B3F550: goto L_08B3F554; L_08B3F554: aot_gpr_31 = (0x08B3F55Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 767u, 0x08B3F55Cu, 0x089C6DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 646u, 0x089C6DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F55Cu) goto L_08B3F55C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F55C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7816,8 +10043,21 @@ L_08B3F58C: goto L_08B3F590; L_08B3F590: aot_gpr_31 = (0x08B3F598u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 775u, 0x08B3F598u, 0x089C6DFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 646u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 646u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 646u, 0x089C6DFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F598u) goto L_08B3F598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F598: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7846,20 +10086,20 @@ L_08B3F5AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F5C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F5CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F5D4: @@ -7872,24 +10112,76 @@ L_08B3F5D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[19]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B3F5FCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 782u, 0x08B3F5FCu, 0x08AAEFC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 640u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 640u, 0x08AAEFC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F5FCu) goto L_08B3F5FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F5FC: aot_gpr_31 = (0x08B3F604u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(184))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 783u, 0x08B3F604u, 0x08AAECA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 584u, 0x08AAECA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F604u) goto L_08B3F604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F604: aot_gpr_31 = (0x08B3F60Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 784u, 0x08B3F60Cu, 0x08AAEF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 632u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 632u, 0x08AAEF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F60Cu) goto L_08B3F60C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F60C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(196))); aot_gpr_31 = (0x08B3F618u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 785u, 0x08B3F618u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F618u) goto L_08B3F618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F618: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(216))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(212))); @@ -7914,8 +10206,21 @@ L_08B3F640: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); aot_gpr_31 = (0x08B3F654u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 788u, 0x08B3F654u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F654u) goto L_08B3F654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F654: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(212))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); @@ -7938,13 +10243,39 @@ L_08B3F684: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(248))); aot_gpr_31 = (0x08B3F690u); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 790u, 0x08B3F690u, 0x08A65C4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 398u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 398u, 0x08A65C4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F690u) goto L_08B3F690; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F690: aot_gpr_31 = (0x08B3F698u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(244), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 791u, 0x08B3F698u, 0x08AAEFE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 642u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 642u, 0x08AAEFE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F698u) goto L_08B3F698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F698: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7956,8 +10287,8 @@ L_08B3F698: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3F6B4: @@ -8014,8 +10345,21 @@ L_08B3F724: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); aot_gpr_31 = (0x08B3F744u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 797u, 0x08B3F744u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F744u) goto L_08B3F744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F744: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -8079,8 +10423,21 @@ L_08B3F79C: aot_gpr_5 = (aot_gpr_7 + static_cast(24)); aot_gpr_31 = (0x08B3F7E8u); aot_mem.aot_direct_store32(ctx.gpr[8] + static_cast(20), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 803u, 0x08B3F7E8u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F7E8u) goto L_08B3F7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F7E8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -8131,8 +10488,21 @@ L_08B3F820: aot_gpr_4 = (aot_gpr_7 + static_cast(24)); aot_gpr_31 = (0x08B3F864u); aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(20), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 808u, 0x08B3F864u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F864u) goto L_08B3F864; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F864: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -8185,8 +10555,21 @@ L_08B3F890: aot_gpr_5 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x08B3F8E0u); aot_mem.aot_direct_store32(ctx.gpr[9] + static_cast(20), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 814u, 0x08B3F8E0u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F8E0u) goto L_08B3F8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F8E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -8250,8 +10633,21 @@ L_08B3F928: aot_gpr_5 = (aot_gpr_7 + static_cast(24)); aot_gpr_31 = (0x08B3F96Cu); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(20), ctx.gpr[8]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 821u, 0x08B3F96Cu, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3F96Cu) goto L_08B3F96C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3F96C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -8356,8 +10752,8 @@ L_08B3F9DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3FA1C: @@ -8414,8 +10810,21 @@ L_08B3FA84: aot_gpr_4 = (aot_gpr_7 + aot_gpr_4); aot_gpr_31 = (0x08B3FAA4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 841u, 0x08B3FAA4u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3FAA4u) goto L_08B3FAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3FAA4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -8670,8 +11079,8 @@ L_08B3FC64: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3FC9C: @@ -8680,8 +11089,8 @@ L_08B3FC9C: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B3FCB0: @@ -8698,8 +11107,21 @@ L_08B3FCB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(756), aot_gpr_31); aot_gpr_31 = (0x08B3FD04u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 871u, 0x08B3FD04u, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3FD04u) goto L_08B3FD04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3FD04: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(208))); aot_gpr_4 = (0u | 1u); @@ -8743,8 +11165,21 @@ L_08B3FD70: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B3FD7Cu); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 875u, 0x08B3FD7Cu, 0x08AF51FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 121u, 0x08AF51FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3FD7Cu) goto L_08B3FD7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3FD7C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(273))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(212))); @@ -8767,8 +11202,21 @@ L_08B3FD7C: aot_gpr_5 = (aot_gpr_5 + static_cast(24)); aot_gpr_31 = (0x08B3FDD0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 876u, 0x08B3FDD0u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3FDD0u) goto L_08B3FDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3FDD0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); aot_gpr_4 = (0u | 1u); @@ -8816,8 +11264,21 @@ L_08B3FE58: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B3FE64u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 880u, 0x08B3FE64u, 0x08AF51FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 121u, 0x08AF51FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3FE64u) goto L_08B3FE64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3FE64: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(224))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(228))); @@ -8834,8 +11295,21 @@ L_08B3FE64: aot_gpr_4 = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08B3FEA0u); aot_gpr_5 = (ctx.gpr[18] + static_cast(248)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 881u, 0x08B3FEA0u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3FEA0u) goto L_08B3FEA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3FEA0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(92))); aot_gpr_4 = (0u | 1u); @@ -8884,8 +11358,21 @@ L_08B3FF2C: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B3FF38u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 885u, 0x08B3FF38u, 0x08AF51FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 121u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 121u, 0x08AF51FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3FF38u) goto L_08B3FF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3FF38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(264))); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(260))); @@ -8960,8 +11447,21 @@ L_08B3FFF0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B3FFFCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0206->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0206_entry, 891u, 0x08B3FFFCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B3FFFCu) goto L_08B3FFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B3FFFC: ctx.gpr[16] = (ctx.gpr[2] | 0u); ctx.pc = 0x08B40000u; AOT_REGCACHE_SYNC_OUT(); return; diff --git a/profiles/vcs/generated/generated_unit_0207.cpp b/profiles/vcs/generated/generated_unit_0207.cpp index 2697e0a..92318cf 100644 --- a/profiles/vcs/generated/generated_unit_0207.cpp +++ b/profiles/vcs/generated/generated_unit_0207.cpp @@ -897,6 +897,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B40000u; + if (local_delta_v813 >= 16344u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -932,19 +956,58 @@ L_08B40014: L_08B4001C: aot_gpr_31 = (0x08B40024u); aot_gpr_5 = (aot_gpr_29 + static_cast(136)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 6u, 0x08B40024u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40024u) goto L_08B40024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40024: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B40030u); aot_gpr_5 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 7u, 0x08B40030u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40030u) goto L_08B40030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40030: aot_gpr_31 = (0x08B40038u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0173. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 8u, 0x08B40038u, 0x08AB9A5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0173_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0173_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0173_entry, 173u, 327u, 0x08AB9A5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40038u) goto L_08B40038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40038: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(144))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -979,8 +1042,21 @@ L_08B40078: ctx.gpr[7] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B40090u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 12u, 0x08B40090u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40090u) goto L_08B40090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40090: aot_fpr_12 = std::bit_cast(ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(16))); @@ -1035,8 +1111,21 @@ L_08B40118: AOT_REGCACHE_SYNC_OUT(); return; L_08B40128: aot_gpr_31 = (0x08B40130u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 17u, 0x08B40130u, 0x08B0C4CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 63u, 0x08B0C4CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40130u) goto L_08B40130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40130: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(676), static_cast(aot_gpr_4)); @@ -1053,8 +1142,21 @@ L_08B40130: ctx.gpr[8] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B4016Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 18u, 0x08B4016Cu, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4016Cu) goto L_08B4016C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4016C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(264))); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(260))); @@ -1119,8 +1221,8 @@ L_08B401B8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(768)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B40200: @@ -1133,8 +1235,21 @@ L_08B40200: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(212), aot_run_words); } aot_gpr_31 = (0x08B40238u); ctx.gpr[20] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 27u, 0x08B40238u, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40238u) goto L_08B40238; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40238: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1147,14 +1262,40 @@ L_08B40240: aot_gpr_5 = (0u | 158u); aot_gpr_31 = (0x08B40250u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 29u, 0x08B40250u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40250u) goto L_08B40250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40250: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08B4025Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 30u, 0x08B4025Cu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4025Cu) goto L_08B4025C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4025C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_16 = (ctx.gpr[2] | 0u); @@ -1231,8 +1372,21 @@ L_08B402D0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B402E0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 40u, 0x08B402E0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B402E0u) goto L_08B402E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B402E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(188))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(184))); @@ -1260,8 +1414,21 @@ L_08B40308: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B40314u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 44u, 0x08B40314u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40314u) goto L_08B40314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40314: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(188))); goto L_08B40318; @@ -1286,8 +1453,21 @@ L_08B40330: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B40340u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 48u, 0x08B40340u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40340u) goto L_08B40340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40340: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(188))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(184))); @@ -1301,21 +1481,60 @@ L_08B40350: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B40368u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 50u, 0x08B40368u, 0x08B3EB68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 592u, 0x08B3EB68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40368u) goto L_08B40368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40368: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (0u | 159u); aot_gpr_31 = (0x08B40378u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 51u, 0x08B40378u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40378u) goto L_08B40378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40378: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08B40384u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 52u, 0x08B40384u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40384u) goto L_08B40384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40384: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1375,8 +1594,21 @@ L_08B403E0: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B403F0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 60u, 0x08B403F0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B403F0u) goto L_08B403F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B403F0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(200))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(196))); @@ -1404,8 +1636,21 @@ L_08B40418: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B40424u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 64u, 0x08B40424u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40424u) goto L_08B40424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40424: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(200))); goto L_08B40428; @@ -1430,8 +1675,21 @@ L_08B40440: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B40450u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 68u, 0x08B40450u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40450u) goto L_08B40450; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40450: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(200))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(196))); @@ -1445,21 +1703,60 @@ L_08B40460: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B40478u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 70u, 0x08B40478u, 0x08B3EB68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 592u, 0x08B3EB68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40478u) goto L_08B40478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40478: aot_gpr_4 = (aot_gpr_29 | 0u); aot_gpr_5 = (0u | 166u); aot_gpr_31 = (0x08B40488u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 71u, 0x08B40488u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40488u) goto L_08B40488; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40488: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08B40494u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 72u, 0x08B40494u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40494u) goto L_08B40494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40494: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1485,14 +1782,40 @@ L_08B404B0: aot_gpr_5 = (0u | 171u); aot_gpr_31 = (0x08B404C0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 76u, 0x08B404C0u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B404C0u) goto L_08B404C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B404C0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (0x08B404CCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 77u, 0x08B404CCu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B404CCu) goto L_08B404CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B404CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1527,14 +1850,40 @@ L_08B404F4: aot_gpr_5 = (0u | 167u); aot_gpr_31 = (0x08B40508u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 83u, 0x08B40508u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40508u) goto L_08B40508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40508: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08B40514u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 84u, 0x08B40514u, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40514u) goto L_08B40514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40514: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1568,22 +1917,61 @@ L_08B40530: L_08B4054C: aot_gpr_31 = (0x08B40554u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 89u, 0x08B40554u, 0x08B68708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 116u, 0x08B68708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40554u) goto L_08B40554; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40554: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 172u); aot_gpr_31 = (0x08B40568u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 90u, 0x08B40568u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40568u) goto L_08B40568; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40568: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x08B40574u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 91u, 0x08B40574u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40574u) goto L_08B40574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40574: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1617,14 +2005,40 @@ L_08B4059C: aot_gpr_5 = (0u | 177u); aot_gpr_31 = (0x08B405ACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 97u, 0x08B405ACu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B405ACu) goto L_08B405AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B405AC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x08B405B8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 98u, 0x08B405B8u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B405B8u) goto L_08B405B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B405B8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1675,8 +2089,21 @@ L_08B40604: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B40614u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 105u, 0x08B40614u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40614u) goto L_08B40614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40614: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); @@ -1704,8 +2131,21 @@ L_08B4063C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B40648u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 109u, 0x08B40648u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40648u) goto L_08B40648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40648: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); goto L_08B4064C; @@ -1730,8 +2170,21 @@ L_08B40664: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B40674u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 113u, 0x08B40674u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40674u) goto L_08B40674; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40674: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); @@ -1745,14 +2198,40 @@ L_08B40684: ctx.gpr[7] = (aot_gpr_29 + static_cast(163)); aot_gpr_31 = (0x08B4069Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 115u, 0x08B4069Cu, 0x08B3EB68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 592u, 0x08B3EB68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4069Cu) goto L_08B4069C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4069C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(172))); aot_gpr_31 = (0x08B406A8u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 116u, 0x08B406A8u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B406A8u) goto L_08B406A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B406A8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1772,8 +2251,21 @@ L_08B406C0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); aot_gpr_31 = (0x08B406CCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 120u, 0x08B406CCu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B406CCu) goto L_08B406CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B406CC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1794,14 +2286,40 @@ L_08B406E4: aot_gpr_5 = (0u | 175u); aot_gpr_31 = (0x08B406F4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 124u, 0x08B406F4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B406F4u) goto L_08B406F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B406F4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x08B40700u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 125u, 0x08B40700u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40700u) goto L_08B40700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40700: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1835,14 +2353,40 @@ L_08B40728: aot_gpr_5 = (0u | 176u); aot_gpr_31 = (0x08B40738u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 131u, 0x08B40738u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40738u) goto L_08B40738; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40738: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x08B40744u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 132u, 0x08B40744u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40744u) goto L_08B40744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40744: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1906,8 +2450,21 @@ L_08B40784: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B407C4u); aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(20), ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 140u, 0x08B407C4u, 0x08B6CC70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 143u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 143u, 0x08B6CC70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B407C4u) goto L_08B407C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B407C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(216))); aot_gpr_4 = (aot_gpr_4 + static_cast(36)); @@ -1929,21 +2486,60 @@ L_08B407D4: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08B407F4u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 143u, 0x08B407F4u, 0x08B3F6B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 792u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 792u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 792u, 0x08B3F6B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B407F4u) goto L_08B407F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B407F4: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 167u); aot_gpr_31 = (0x08B40804u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 144u, 0x08B40804u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40804u) goto L_08B40804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40804: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); aot_gpr_31 = (0x08B40810u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 145u, 0x08B40810u, 0x08984650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 113u, 0x08984650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40810u) goto L_08B40810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40810: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1981,14 +2577,40 @@ L_08B40840: aot_gpr_5 = (0u | 169u); aot_gpr_31 = (0x08B40850u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 151u, 0x08B40850u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40850u) goto L_08B40850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40850: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); aot_gpr_31 = (0x08B4085Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 152u, 0x08B4085Cu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4085Cu) goto L_08B4085C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4085C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2024,14 +2646,40 @@ L_08B40894: aot_gpr_5 = (0u | 172u); aot_gpr_31 = (0x08B408A4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 157u, 0x08B408A4u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B408A4u) goto L_08B408A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B408A4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_31 = (0x08B408B0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 158u, 0x08B408B0u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B408B0u) goto L_08B408B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B408B0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2064,8 +2712,21 @@ L_08B408D8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(172))); aot_gpr_31 = (0x08B408E4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 164u, 0x08B408E4u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B408E4u) goto L_08B408E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B408E4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2085,8 +2746,21 @@ L_08B408FC: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B40908u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 168u, 0x08B40908u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40908u) goto L_08B40908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40908: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2107,14 +2781,40 @@ L_08B40920: aot_gpr_5 = (0u | 173u); aot_gpr_31 = (0x08B40930u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 172u, 0x08B40930u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40930u) goto L_08B40930; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40930: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_31 = (0x08B4093Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 173u, 0x08B4093Cu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4093Cu) goto L_08B4093C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4093C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2152,8 +2852,21 @@ L_08B4096C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B40978u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 179u, 0x08B40978u, 0x08B5831Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 63u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 63u, 0x08B5831Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40978u) goto L_08B40978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40978: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2174,14 +2887,40 @@ L_08B40988: aot_gpr_5 = (0u | 174u); aot_gpr_31 = (0x08B40998u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 182u, 0x08B40998u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40998u) goto L_08B40998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40998: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_31 = (0x08B409A4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 183u, 0x08B409A4u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B409A4u) goto L_08B409A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B409A4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2261,21 +3000,60 @@ L_08B40A28: ctx.gpr[8] = (0u | 1u); aot_gpr_31 = (0x08B40A48u); ctx.gpr[9] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 193u, 0x08B40A48u, 0x08B3FA1Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 836u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 836u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 836u, 0x08B3FA1Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40A48u) goto L_08B40A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40A48: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_5 = (0u | 169u); aot_gpr_31 = (0x08B40A58u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 194u, 0x08B40A58u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40A58u) goto L_08B40A58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40A58: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_31 = (0x08B40A64u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 195u, 0x08B40A64u, 0x08984650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 113u, 0x08984650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40A64u) goto L_08B40A64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40A64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2301,14 +3079,40 @@ L_08B40A80: aot_gpr_5 = (0u | 168u); aot_gpr_31 = (0x08B40A90u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 199u, 0x08B40A90u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40A90u) goto L_08B40A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40A90: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); aot_gpr_31 = (0x08B40A9Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 200u, 0x08B40A9Cu, 0x089844FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 89u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 89u, 0x089844FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40A9Cu) goto L_08B40A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40A9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2342,22 +3146,61 @@ L_08B40AB8: L_08B40AD4: aot_gpr_31 = (0x08B40ADCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 205u, 0x08B40ADCu, 0x08B68708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 116u, 0x08B68708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40ADCu) goto L_08B40ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40ADC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(140), 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 177u); aot_gpr_31 = (0x08B40AF0u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 206u, 0x08B40AF0u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40AF0u) goto L_08B40AF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40AF0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_31 = (0x08B40AFCu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 207u, 0x08B40AFCu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40AFCu) goto L_08B40AFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40AFC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2408,8 +3251,21 @@ L_08B40B48: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B40B58u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 214u, 0x08B40B58u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40B58u) goto L_08B40B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40B58: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); @@ -2437,8 +3293,21 @@ L_08B40B80: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B40B8Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 218u, 0x08B40B8Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40B8Cu) goto L_08B40B8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40B8C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); goto L_08B40B90; @@ -2463,8 +3332,21 @@ L_08B40BA8: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B40BB8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 222u, 0x08B40BB8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40BB8u) goto L_08B40BB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40BB8: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); @@ -2478,14 +3360,40 @@ L_08B40BC8: ctx.gpr[7] = (aot_gpr_29 + static_cast(165)); aot_gpr_31 = (0x08B40BE0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 224u, 0x08B40BE0u, 0x08B3EB68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 592u, 0x08B3EB68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40BE0u) goto L_08B40BE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40BE0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(172))); aot_gpr_31 = (0x08B40BECu); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 225u, 0x08B40BECu, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40BECu) goto L_08B40BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40BEC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2505,8 +3413,21 @@ L_08B40C04: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); aot_gpr_31 = (0x08B40C10u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 229u, 0x08B40C10u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40C10u) goto L_08B40C10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40C10: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2527,14 +3448,40 @@ L_08B40C28: aot_gpr_5 = (0u | 175u); aot_gpr_31 = (0x08B40C38u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 233u, 0x08B40C38u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40C38u) goto L_08B40C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40C38: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_31 = (0x08B40C44u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 234u, 0x08B40C44u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40C44u) goto L_08B40C44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40C44: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2568,14 +3515,40 @@ L_08B40C6C: aot_gpr_5 = (0u | 176u); aot_gpr_31 = (0x08B40C7Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 240u, 0x08B40C7Cu, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40C7Cu) goto L_08B40C7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40C7C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_31 = (0x08B40C88u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 241u, 0x08B40C88u, 0x08984D14u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 237u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 237u, 0x08984D14u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40C88u) goto L_08B40C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40C88: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2685,8 +3658,21 @@ L_08B40D44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B40D50u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 255u, 0x08B40D50u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40D50u) goto L_08B40D50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40D50: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(252))); goto L_08B40D54; @@ -2706,21 +3692,60 @@ L_08B40D64: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B40D78u); ctx.gpr[7] = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0206. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 258u, 0x08B40D78u, 0x08B3E8E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0206_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0206_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0206_entry, 206u, 559u, 0x08B3E8E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40D78u) goto L_08B40D78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40D78: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_5 = (0u | 168u); aot_gpr_31 = (0x08B40D88u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 259u, 0x08B40D88u, 0x08AF7A8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 867u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 867u, 0x08AF7A8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40D88u) goto L_08B40D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40D88: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); aot_gpr_31 = (0x08B40D94u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0096. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 260u, 0x08B40D94u, 0x08984650u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); +#else + recomp_unit_0096_entry(rt, ctx, 113u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0096_entry, 96u, 113u, 0x08984650u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B40D94u) goto L_08B40D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B40D94: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -2772,8 +3797,8 @@ L_08B40DC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(224)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B40DF8: @@ -2828,8 +3853,8 @@ L_08B40E5C: L_08B40E60: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_6 & 255u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B40E68: @@ -2873,8 +3898,8 @@ L_08B40E68: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B40EAC: @@ -3068,8 +4093,8 @@ L_08B41014: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41050: @@ -3083,8 +4108,8 @@ L_08B41050: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41074: @@ -3098,8 +4123,8 @@ L_08B41074: aot_gpr_4 = (ctx.vfpu_scalar_bits_ct<1u>()); ctx.fpr[0] = std::bit_cast(aot_gpr_4); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41098: @@ -3169,8 +4194,8 @@ L_08B41128: } L_08B41140: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41148: @@ -3217,8 +4242,8 @@ L_08B411A0: } L_08B411B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B411BC: @@ -3303,16 +4328,55 @@ L_08B41240: goto L_08B41244; L_08B41244: aot_gpr_31 = (0x08B4124Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 310u, 0x08B4124Cu, 0x08B46A94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 536u, 0x08B46A94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4124Cu) goto L_08B4124C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4124C: aot_gpr_31 = (0x08B41254u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 311u, 0x08B41254u, 0x08B46A94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 536u, 0x08B46A94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41254u) goto L_08B41254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41254: aot_gpr_31 = (0x08B4125Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 312u, 0x08B4125Cu, 0x08B46A94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 536u, 0x08B46A94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4125Cu) goto L_08B4125C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4125C: aot_gpr_4 = (aot_gpr_16 + static_cast(1)); aot_gpr_16 = (aot_gpr_4 << 16u); @@ -3335,15 +4399,41 @@ L_08B41274: } L_08B41280: aot_gpr_31 = (0x08B41288u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 315u, 0x08B41288u, 0x08B46A94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 536u, 0x08B46A94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41288u) goto L_08B41288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41288: aot_gpr_16 = (0u | 0u); goto L_08B4128C; L_08B4128C: aot_gpr_31 = (0x08B41294u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 317u, 0x08B41294u, 0x08B46A94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 536u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 536u, 0x08B46A94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41294u) goto L_08B41294; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41294: aot_gpr_16 = (aot_gpr_16 + static_cast(1)); aot_gpr_4 = (static_cast(aot_gpr_16) < 5 ? 1u : 0u); @@ -3367,15 +4457,28 @@ L_08B412A4: } L_08B412C0: aot_gpr_31 = (0x08B412C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 320u, 0x08B412C8u, 0x08B453F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 217u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 217u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 217u, 0x08B453F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B412C8u) goto L_08B412C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B412C8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B412D8: @@ -3458,8 +4561,21 @@ L_08B4136C: L_08B41374: aot_gpr_31 = (0x08B4137Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 331u, 0x08B4137Cu, 0x08B458A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 299u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 299u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 299u, 0x08B458A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4137Cu) goto L_08B4137C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4137C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 & 32u); @@ -3472,8 +4588,21 @@ L_08B4137C: L_08B4138C: aot_gpr_31 = (0x08B41394u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 333u, 0x08B41394u, 0x08960450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41394u) goto L_08B41394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41394: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -3510,8 +4639,21 @@ L_08B413D8: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(626))); aot_gpr_31 = (0x08B413E4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 335u, 0x08B413E4u, 0x08B23344u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 648u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 648u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 648u, 0x08B23344u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B413E4u) goto L_08B413E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B413E4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(615)))))); aot_gpr_4 = (aot_gpr_4 & aot_gpr_16); @@ -3542,8 +4684,8 @@ L_08B41404: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4142C: @@ -3670,8 +4812,21 @@ L_08B4151C: L_08B4152C: aot_gpr_31 = (0x08B41534u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 354u, 0x08B41534u, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41534u) goto L_08B41534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41534: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3682,8 +4837,21 @@ L_08B41534: L_08B4153C: aot_gpr_31 = (0x08B41544u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 356u, 0x08B41544u, 0x089704DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 93u, 0x089704DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41544u) goto L_08B41544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41544: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3762,8 +4930,21 @@ L_08B415A8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B415B4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 362u, 0x08B415B4u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B415B4u) goto L_08B415B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B415B4: { const bool branch_taken = ctx.gpr[21] == 0u; if (branch_taken) { @@ -3799,8 +4980,8 @@ L_08B415D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41608: @@ -3812,8 +4993,8 @@ L_08B41608: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(504), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(508), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41628: @@ -3835,8 +5016,8 @@ L_08B4162C: } L_08B41650: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41658: @@ -3868,8 +5049,8 @@ L_08B41674: } L_08B4168C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41694: @@ -3908,8 +5089,21 @@ L_08B41694: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B416FCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 375u, 0x08B416FCu, 0x08977474u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 697u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 697u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 697u, 0x08977474u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B416FCu) goto L_08B416FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B416FC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); @@ -4096,8 +5290,21 @@ L_08B41914: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B41934u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 388u, 0x08B41934u, 0x08B44B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 106u, 0x08B44B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41934u) goto L_08B41934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41934: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(27), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(21), static_cast(0u)); @@ -4109,8 +5316,21 @@ L_08B4193C: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B41954u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 390u, 0x08B41954u, 0x089DCD44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 147u, 0x089DCD44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41954u) goto L_08B41954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41954: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(84), aot_run_words); @@ -4121,8 +5341,8 @@ L_08B41954: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4196C: @@ -4154,8 +5374,21 @@ L_08B4196C: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(164), aot_run_words); } aot_gpr_31 = (0x08B419E0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 392u, 0x08B419E0u, 0x089DD29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 187u, 0x089DD29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B419E0u) goto L_08B419E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B419E0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(538)))))); aot_gpr_4 = (aot_gpr_4 & 16u); @@ -4267,8 +5500,21 @@ L_08B41A88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[18]); aot_gpr_31 = (0x08B41AC4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 396u, 0x08B41AC4u, 0x08976C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 607u, 0x08976C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41AC4u) goto L_08B41AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41AC4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); { const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast(0); @@ -4288,8 +5534,21 @@ L_08B41AC4: aot_gpr_6 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B41AE0u); ctx.gpr[7] = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 397u, 0x08B41AE0u, 0x089782A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 28u, 0x089782A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41AE0u) goto L_08B41AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41AE0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(96)))))); aot_mem.aot_direct_store16(aot_gpr_16 + static_cast(444), static_cast(aot_gpr_4)); @@ -4313,8 +5572,21 @@ L_08B41AF8: aot_gpr_5 = (ctx.lo); aot_gpr_31 = (0x08B41B20u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(64), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 399u, 0x08B41B20u, 0x089DCB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 131u, 0x089DCB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41B20u) goto L_08B41B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41B20: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(384))); @@ -4325,15 +5597,41 @@ L_08B41B20: aot_gpr_5 = (ctx.lo); aot_gpr_31 = (0x08B41B44u); aot_mem.aot_direct_store16(aot_gpr_29 + static_cast(70), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 400u, 0x08B41B44u, 0x089DCB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 131u, 0x089DCB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41B44u) goto L_08B41B44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41B44: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B41B54u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 401u, 0x08B41B54u, 0x08B44B5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 106u, 0x08B44B5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41B54u) goto L_08B41B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41B54: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(75), static_cast(0u)); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(69), static_cast(0u)); @@ -4343,8 +5641,21 @@ L_08B41B54: ctx.gpr[7] = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B41B74u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 402u, 0x08B41B74u, 0x089DCD44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 147u, 0x089DCD44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41B74u) goto L_08B41B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41B74: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 0u); @@ -4389,8 +5700,8 @@ L_08B41B90: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41BC4: @@ -4655,8 +5966,8 @@ L_08B41D20: } L_08B41D28: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41D30: @@ -4721,8 +6032,8 @@ L_08B41DA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41DB8: @@ -4769,8 +6080,8 @@ L_08B41DF4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41E40: @@ -4811,8 +6122,8 @@ L_08B41EA8: aot_gpr_4 = (aot_gpr_5 + static_cast(1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41EB4: @@ -4904,8 +6215,8 @@ L_08B41F50: aot_gpr_5 = (aot_gpr_5 + static_cast(-1)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B41F6C: @@ -4923,8 +6234,21 @@ L_08B41F6C: L_08B41F88: aot_gpr_31 = (0x08B41F90u); aot_gpr_4 = (aot_gpr_16 + static_cast(384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 468u, 0x08B41F90u, 0x089DCD00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 144u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 144u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 144u, 0x089DCD00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41F90u) goto L_08B41F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41F90: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(534)))))); aot_gpr_5 = (0u | 1u); @@ -4941,14 +6265,40 @@ L_08B41FA0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(32), aot_run_words); } aot_gpr_31 = (0x08B41FBCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 470u, 0x08B41FBCu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41FBCu) goto L_08B41FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41FBC: aot_gpr_4 = (aot_gpr_16 + static_cast(384)); aot_gpr_31 = (0x08B41FC8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 471u, 0x08B41FC8u, 0x089DCA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 125u, 0x089DCA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B41FC8u) goto L_08B41FC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B41FC8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(512))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); @@ -4977,8 +6327,21 @@ L_08B41FF8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_31 = (0x08B42004u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 475u, 0x08B42004u, 0x08B60EC8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 183u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 183u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 183u, 0x08B60EC8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42004u) goto L_08B42004; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42004: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(496))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(500))); @@ -4998,8 +6361,21 @@ L_08B42028: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B4203Cu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 477u, 0x08B4203Cu, 0x08B46834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 509u, 0x08B46834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4203Cu) goto L_08B4203C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4203C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5068,8 +6444,21 @@ L_08B420BC: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B420ECu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 484u, 0x08B420ECu, 0x089DCE98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 156u, 0x089DCE98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B420ECu) goto L_08B420EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B420EC: aot_gpr_4 = (16752u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5077,8 +6466,21 @@ L_08B420EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B42104u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 485u, 0x08B42104u, 0x08B4C818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 83u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 83u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 83u, 0x08B4C818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42104u) goto L_08B42104; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42104: aot_gpr_4 = (17008u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -5102,8 +6504,21 @@ L_08B42104: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B42130u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 486u, 0x08B42130u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42130u) goto L_08B42130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42130: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(48), aot_run_words); @@ -5113,15 +6528,15 @@ L_08B42130: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B42144: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4214C: @@ -5251,8 +6666,8 @@ L_08B42224: goto L_08B42234; L_08B42234: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4223C: @@ -5292,8 +6707,8 @@ L_08B42274: goto L_08B42278; L_08B42278: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B42280: @@ -5397,8 +6812,8 @@ L_08B42364: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4237C: @@ -5494,8 +6909,21 @@ L_08B42434: L_08B4243C: aot_gpr_31 = (0x08B42444u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 533u, 0x08B42444u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42444u) goto L_08B42444; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42444: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5543,8 +6971,21 @@ L_08B42490: } L_08B424A0: aot_gpr_31 = (0x08B424A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 540u, 0x08B424A8u, 0x08B44F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 133u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 133u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 133u, 0x08B44F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B424A8u) goto L_08B424A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B424A8: ctx.gpr[18] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u | 191u); @@ -5588,8 +7029,21 @@ L_08B424E0: aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08B424F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 546u, 0x08B424F0u, 0x08B45234u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 196u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 196u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 196u, 0x08B45234u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B424F0u) goto L_08B424F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B424F0: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -5647,8 +7101,21 @@ L_08B42538: L_08B42540: aot_gpr_31 = (0x08B42548u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 555u, 0x08B42548u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42548u) goto L_08B42548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42548: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5781,22 +7248,22 @@ L_08B425F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B42624: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5504), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4262C: jump_target = aot_gpr_31; aot_mem.aot_direct_store8(ctx.gpr[28] + static_cast(5508), static_cast(aot_gpr_4)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B42634: @@ -5891,8 +7358,8 @@ L_08B426B4: } L_08B426C8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B426D0: @@ -5902,8 +7369,21 @@ L_08B426D0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B426E8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 587u, 0x08B426E8u, 0x08A0F448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 573u, 0x08A0F448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B426E8u) goto L_08B426E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B426E8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5914,8 +7394,21 @@ L_08B426E8: L_08B426F0: aot_gpr_31 = (0x08B426F8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 589u, 0x08B426F8u, 0x08A0F37Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 561u, 0x08A0F37Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B426F8u) goto L_08B426F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B426F8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5926,8 +7419,21 @@ L_08B426F8: L_08B42700: aot_gpr_31 = (0x08B42708u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 591u, 0x08B42708u, 0x08B0DD38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 449u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 449u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 449u, 0x08B0DD38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42708u) goto L_08B42708; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42708: aot_fpr_13 = std::bit_cast(0u); { const bool branch_taken = 0u == 0u; @@ -5940,8 +7446,21 @@ L_08B42708: L_08B42714: aot_gpr_31 = (0x08B4271Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 593u, 0x08B4271Cu, 0x089902F4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 56u, 0x089902F4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4271Cu) goto L_08B4271C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4271C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7764))); aot_gpr_5 = (0u | 3u); @@ -5966,8 +7485,21 @@ L_08B42748: L_08B42750: aot_gpr_31 = (0x08B42758u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 596u, 0x08B42758u, 0x08B49730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 248u, 0x08B49730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42758u) goto L_08B42758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42758: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(520))); @@ -6013,8 +7545,21 @@ L_08B427B0: aot_gpr_4 = (aot_gpr_16 + static_cast(384)); aot_gpr_31 = (0x08B427BCu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 602u, 0x08B427BCu, 0x089DCA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 125u, 0x089DCA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B427BCu) goto L_08B427BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B427BC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6039,8 +7584,21 @@ L_08B427EC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B427F8u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 605u, 0x08B427F8u, 0x089DCA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 125u, 0x089DCA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B427F8u) goto L_08B427F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B427F8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6074,15 +7632,28 @@ L_08B42838: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B42844u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 609u, 0x08B42844u, 0x089DCA68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 125u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 125u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 125u, 0x089DCA68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42844u) goto L_08B42844; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42844: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B42854: @@ -6277,8 +7848,21 @@ L_08B429DC: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B429ECu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 623u, 0x08B429ECu, 0x08B4A2CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 370u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 370u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 370u, 0x08B4A2CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B429ECu) goto L_08B429EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B429EC: { const bool branch_taken = ctx.gpr[18] != 0u; if (branch_taken) { @@ -6305,8 +7889,8 @@ L_08B429F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B42A30: @@ -6331,8 +7915,21 @@ L_08B42A30: } L_08B42A78: aot_gpr_31 = (0x08B42A80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 627u, 0x08B42A80u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42A80u) goto L_08B42A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42A80: { const bool branch_taken = aot_gpr_16 == ctx.gpr[2]; if (branch_taken) { @@ -6384,8 +7981,21 @@ L_08B42AB4: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08B42ADCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[28])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 634u, 0x08B42ADCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42ADCu) goto L_08B42ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42ADC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -6510,8 +8120,21 @@ L_08B42C00: aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B42C0Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 645u, 0x08B42C0Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42C0Cu) goto L_08B42C0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42C0C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); @@ -6597,8 +8220,21 @@ L_08B42CC8: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x08B42D18u); aot_fpr_12 = aot_fpr_20 - aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 650u, 0x08B42D18u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42D18u) goto L_08B42D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42D18: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -6621,8 +8257,21 @@ L_08B42D2C: L_08B42D40: aot_gpr_31 = (0x08B42D48u); aot_fpr_12 = aot_fpr_20 - ctx.fpr[28]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 653u, 0x08B42D48u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42D48u) goto L_08B42D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42D48: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), std::bit_cast(ctx.fpr[0])); goto L_08B42D4C; @@ -6630,8 +8279,21 @@ L_08B42D4C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08B42D58u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 655u, 0x08B42D58u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42D58u) goto L_08B42D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42D58: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -6651,8 +8313,21 @@ L_08B42D6C: L_08B42D7C: aot_gpr_31 = (0x08B42D84u); aot_fpr_12 = aot_fpr_20 + ctx.fpr[28]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 658u, 0x08B42D84u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B42D84u) goto L_08B42D84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B42D84: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), std::bit_cast(ctx.fpr[0])); goto L_08B42D88; @@ -6672,8 +8347,8 @@ L_08B42D88: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B42DB8: @@ -7112,8 +8787,8 @@ L_08B4308C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B430D4: @@ -7285,8 +8960,21 @@ L_08B43260: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B43280u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 695u, 0x08B43280u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43280u) goto L_08B43280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43280: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -7324,8 +9012,21 @@ L_08B432A0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x08B432F4u); aot_fpr_12 = ctx.fpr[24] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 698u, 0x08B432F4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B432F4u) goto L_08B432F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B432F4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); { const float fs = ctx.fpr[22]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } @@ -7348,8 +9049,21 @@ L_08B4330C: L_08B43320: aot_gpr_31 = (0x08B43328u); aot_fpr_12 = ctx.fpr[24] - aot_fpr_20; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 701u, 0x08B43328u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43328u) goto L_08B43328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43328: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), std::bit_cast(ctx.fpr[0])); goto L_08B4332C; @@ -7357,8 +9071,21 @@ L_08B4332C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08B43338u); aot_fpr_12 = ctx.fpr[24] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 703u, 0x08B43338u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43338u) goto L_08B43338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43338: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -7378,8 +9105,21 @@ L_08B4334C: L_08B4335C: aot_gpr_31 = (0x08B43364u); aot_fpr_12 = ctx.fpr[24] + aot_fpr_20; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 706u, 0x08B43364u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43364u) goto L_08B43364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43364: aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast(0), std::bit_cast(ctx.fpr[0])); goto L_08B43368; @@ -7412,8 +9152,8 @@ L_08B43370: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B433B8: @@ -7791,8 +9531,21 @@ L_08B436E4: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B43748u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 736u, 0x08B43748u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43748u) goto L_08B43748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43748: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < aot_fpr_20)) ? 0x00800000u : 0u); @@ -7827,8 +9580,21 @@ L_08B43768: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08B437B0u); aot_fpr_12 = ctx.fpr[26] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 739u, 0x08B437B0u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B437B0u) goto L_08B437B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B437B0: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -7855,8 +9621,21 @@ L_08B437E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08B437F4u); aot_fpr_12 = ctx.fpr[26] - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 742u, 0x08B437F4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B437F4u) goto L_08B437F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B437F4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), std::bit_cast(ctx.fpr[0])); goto L_08B437F8; @@ -7864,8 +9643,21 @@ L_08B437F8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x08B43804u); aot_fpr_12 = ctx.fpr[26] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 744u, 0x08B43804u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43804u) goto L_08B43804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43804: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < aot_fpr_20)) ? 0x00800000u : 0u); @@ -7886,8 +9678,21 @@ L_08B43818: L_08B4382C: aot_gpr_31 = (0x08B43834u); aot_fpr_12 = ctx.fpr[26] + aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 747u, 0x08B43834u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43834u) goto L_08B43834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43834: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(0), std::bit_cast(ctx.fpr[0])); goto L_08B43838; @@ -7907,8 +9712,8 @@ L_08B43838: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B43868: @@ -8060,8 +9865,8 @@ L_08B439B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B439EC: @@ -8210,8 +10015,8 @@ L_08B43B7C: L_08B43B80: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B43B88: @@ -8224,8 +10029,21 @@ L_08B43B88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_31); aot_gpr_31 = (0x08B43BACu); aot_fpr_20 = std::bit_cast(std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 774u, 0x08B43BACu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43BACu) goto L_08B43BAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43BAC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -8271,8 +10089,8 @@ L_08B43C00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B43C18: @@ -8300,8 +10118,8 @@ L_08B43C38: goto L_08B43C40; L_08B43C40: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B43C48: @@ -8358,8 +10176,21 @@ L_08B43CF0: aot_fpr_13 = ctx.fpr[28] - aot_fpr_13; aot_gpr_31 = (0x08B43D04u); aot_fpr_12 = ctx.fpr[26] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 787u, 0x08B43D04u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43D04u) goto L_08B43D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43D04: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -8381,8 +10212,21 @@ L_08B43D24: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08B43D38u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 790u, 0x08B43D38u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43D38u) goto L_08B43D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43D38: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -8413,16 +10257,42 @@ L_08B43D68: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B43D7Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[22])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 794u, 0x08B43D7Cu, 0x08B4AB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 459u, 0x08B4AB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43D7Cu) goto L_08B43D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43D7C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B43D80; L_08B43D80: aot_gpr_31 = (0x08B43D88u); aot_fpr_12 = aot_fpr_20 - ctx.fpr[22]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 796u, 0x08B43D88u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43D88u) goto L_08B43D88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43D88: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); @@ -8501,8 +10371,21 @@ L_08B43E1C: aot_fpr_13 = ctx.fpr[28] - aot_fpr_13; aot_gpr_31 = (0x08B43E30u); aot_fpr_12 = ctx.fpr[26] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0207->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0207_entry, 806u, 0x08B43E30u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B43E30u) goto L_08B43E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B43E30: ctx.fpr[28] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -8640,8 +10523,8 @@ L_08B43F24: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B43F68: diff --git a/profiles/vcs/generated/generated_unit_0208.cpp b/profiles/vcs/generated/generated_unit_0208.cpp index a822fef..74ddbfd 100644 --- a/profiles/vcs/generated/generated_unit_0208.cpp +++ b/profiles/vcs/generated/generated_unit_0208.cpp @@ -912,6 +912,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B44000u; + if (local_delta_v813 >= 16372u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -935,8 +959,21 @@ L_08B44000: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); aot_gpr_31 = (0x08B44024u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_22)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 2u, 0x08B44024u, 0x08B43C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44024u) goto L_08B44024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44024: aot_gpr_4 = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -987,8 +1024,8 @@ L_08B44080: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B44098: @@ -1100,8 +1137,21 @@ L_08B44190: L_08B441A0: aot_gpr_31 = (0x08B441A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 16u, 0x08B441A8u, 0x08B0E0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 502u, 0x08B0E0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B441A8u) goto L_08B441A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B441A8: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(535), static_cast(aot_gpr_4)); @@ -1115,8 +1165,21 @@ L_08B441A8: } L_08B441BC: aot_gpr_31 = (0x08B441C4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 18u, 0x08B441C4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B441C4u) goto L_08B441C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B441C4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1126,8 +1189,21 @@ L_08B441C4: } L_08B441CC: aot_gpr_31 = (0x08B441D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 20u, 0x08B441D4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B441D4u) goto L_08B441D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B441D4: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1177,8 +1253,21 @@ L_08B4423C: goto L_08B44240; L_08B44240: aot_gpr_31 = (0x08B44248u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 24u, 0x08B44248u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44248u) goto L_08B44248; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44248: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); @@ -1187,13 +1276,39 @@ L_08B44248: goto L_08B44250; L_08B44250: aot_gpr_31 = (0x08B44258u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 26u, 0x08B44258u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44258u) goto L_08B44258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44258: aot_gpr_31 = (0x08B44260u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 27u, 0x08B44260u, 0x08B00D78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 229u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 229u, 0x08B00D78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44260u) goto L_08B44260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44260: if (ctx.gpr[2] != 0u) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(613)))))); @@ -1202,8 +1317,21 @@ L_08B44260: goto L_08B44268; L_08B44268: aot_gpr_31 = (0x08B44270u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 29u, 0x08B44270u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44270u) goto L_08B44270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44270: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -1260,8 +1388,21 @@ L_08B442C4: L_08B442D4: aot_gpr_31 = (0x08B442DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 35u, 0x08B442DCu, 0x08B0E0ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 502u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 502u, 0x08B0E0ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B442DCu) goto L_08B442DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B442DC: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(535), static_cast(aot_gpr_4)); @@ -1278,8 +1419,8 @@ L_08B442EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B44304: @@ -1294,8 +1435,21 @@ L_08B44304: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), std::bit_cast(aot_fpr_20)); aot_mem.aot_direct_store8(ctx.gpr[19] + static_cast(0), static_cast(0u)); aot_gpr_31 = (0x08B4435Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 38u, 0x08B4435Cu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4435Cu) goto L_08B4435C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4435C: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1312,8 +1466,21 @@ L_08B4435C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B44370u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 39u, 0x08B44370u, 0x08960350u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 34u, 0x08960350u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44370u) goto L_08B44370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44370: aot_gpr_4 = (15820u << 16u); aot_gpr_4 = (aot_gpr_4 | 52429u); @@ -1416,8 +1583,21 @@ L_08B443A0: ctx.gpr[22] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B44414u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 41u, 0x08B44414u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44414u) goto L_08B44414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44414: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1519,8 +1699,21 @@ L_08B44490: ctx.gpr[23] = (aot_gpr_29 + static_cast(96)); aot_gpr_31 = (0x08B4449Cu); aot_gpr_4 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 46u, 0x08B4449Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4449Cu) goto L_08B4449C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4449C: { const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1717,8 +1910,8 @@ L_08B445C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B445F8: @@ -1773,8 +1966,21 @@ L_08B44698: aot_fpr_13 = ctx.fpr[26] - aot_fpr_13; aot_gpr_31 = (0x08B446B0u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[14]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 61u, 0x08B446B0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B446B0u) goto L_08B446B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B446B0: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -1794,8 +2000,21 @@ L_08B446D0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B446DCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 64u, 0x08B446DCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B446DCu) goto L_08B446DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B446DC: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -1814,8 +2033,21 @@ L_08B446F0: L_08B446FC: aot_gpr_31 = (0x08B44704u); aot_fpr_12 = ctx.fpr[26] - aot_fpr_20; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 67u, 0x08B44704u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44704u) goto L_08B44704; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44704: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[28])) ? 0x00800000u : 0u); @@ -1959,8 +2191,8 @@ L_08B44808: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B44844: @@ -1975,8 +2207,21 @@ L_08B44844: ctx.gpr[21] = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B448A0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 80u, 0x08B448A0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B448A0u) goto L_08B448A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B448A0: { const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -2062,13 +2307,39 @@ L_08B4493C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B4494Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 85u, 0x08B4494Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4494Cu) goto L_08B4494C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4494C: aot_gpr_31 = (0x08B44954u); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 86u, 0x08B44954u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44954u) goto L_08B44954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44954: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); { const float fs = aot_fpr_12; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } @@ -2076,13 +2347,39 @@ L_08B44954: { const float fs = aot_fpr_12; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B4496Cu); aot_fpr_22 = aot_fpr_22 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 87u, 0x08B4496Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4496Cu) goto L_08B4496C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4496C: aot_gpr_31 = (0x08B44974u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 88u, 0x08B44974u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44974u) goto L_08B44974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44974: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); { const float fs = aot_fpr_13; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast(0x7FC00000u); else ctx.fpr[14] = fs * ft; } @@ -2093,8 +2390,21 @@ L_08B44974: ctx.fpr[14] = ctx.fpr[24] + ctx.fpr[14]; aot_gpr_31 = (0x08B44998u); aot_fpr_12 = ctx.fpr[14] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 89u, 0x08B44998u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44998u) goto L_08B44998; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44998: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_22 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); @@ -2116,8 +2426,21 @@ L_08B449C0: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B449CCu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 92u, 0x08B449CCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B449CCu) goto L_08B449CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B449CC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -2136,8 +2459,21 @@ L_08B449E0: L_08B449EC: aot_gpr_31 = (0x08B449F4u); aot_fpr_12 = aot_fpr_20 - ctx.fpr[24]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 95u, 0x08B449F4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B449F4u) goto L_08B449F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B449F4: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (aot_gpr_16 + static_cast(320)); @@ -2272,8 +2608,21 @@ L_08B44AFC: L_08B44B14: aot_gpr_31 = (0x08B44B1Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 105u, 0x08B44B1Cu, 0x08A51A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 241u, 0x08A51A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44B1Cu) goto L_08B44B1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44B1C: { std::uint32_t aot_run_words[14]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(88), aot_run_words); @@ -2294,8 +2643,8 @@ L_08B44B1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B44B5C: @@ -2321,8 +2670,21 @@ L_08B44B5C: L_08B44B9C: aot_gpr_31 = (0x08B44BA4u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(560))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 108u, 0x08B44BA4u, 0x08B2090Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 107u, 0x08B2090Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44BA4u) goto L_08B44BA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44BA4: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(560))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -2587,8 +2949,21 @@ L_08B44D70: aot_gpr_5 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B44E2Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 122u, 0x08B44E2Cu, 0x088B1424u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 186u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 186u, 0x088B1424u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44E2Cu) goto L_08B44E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44E2C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -2688,8 +3063,8 @@ L_08B44F10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B44F3C: @@ -2703,14 +3078,27 @@ L_08B44F3C: aot_gpr_6 = (aot_gpr_6 + static_cast(1)); aot_gpr_31 = (0x08B44F64u); aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 132u, 0x08B44F64u, 0x08B42280u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 511u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 511u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 511u, 0x08B42280u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44F64u) goto L_08B44F64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44F64: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B44F70: @@ -2723,8 +3111,21 @@ L_08B44F70: L_08B44F88: aot_gpr_31 = (0x08B44F90u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 135u, 0x08B44F90u, 0x08AB3F00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1009u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1009u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1009u, 0x08AB3F00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44F90u) goto L_08B44F90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44F90: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2749,8 +3150,21 @@ L_08B44FB8: aot_gpr_16 = (0u | 204u); aot_gpr_31 = (0x08B44FC4u); aot_gpr_4 = (0u | 204u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 138u, 0x08B44FC4u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44FC4u) goto L_08B44FC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44FC4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2777,8 +3191,21 @@ L_08B44FD8: L_08B44FE0: aot_gpr_31 = (0x08B44FE8u); aot_gpr_4 = (0u | 117u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 142u, 0x08B44FE8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44FE8u) goto L_08B44FE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44FE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2789,8 +3216,21 @@ L_08B44FE8: L_08B44FF0: aot_gpr_31 = (0x08B44FF8u); aot_gpr_4 = (0u | 118u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 144u, 0x08B44FF8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B44FF8u) goto L_08B44FF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B44FF8: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2820,8 +3260,21 @@ L_08B45010: L_08B45018: aot_gpr_31 = (0x08B45020u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 149u, 0x08B45020u, 0x08AB3F28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1013u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1013u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1013u, 0x08AB3F28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45020u) goto L_08B45020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45020: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_16 = (0u | 234u); @@ -2833,8 +3286,21 @@ L_08B45020: L_08B45028: aot_gpr_31 = (0x08B45030u); aot_gpr_4 = (0u | 234u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 151u, 0x08B45030u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45030u) goto L_08B45030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45030: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2845,8 +3311,21 @@ L_08B45030: L_08B45038: aot_gpr_31 = (0x08B45040u); aot_gpr_4 = (0u | 9u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 153u, 0x08B45040u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45040u) goto L_08B45040; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45040: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2902,8 +3381,21 @@ L_08B45094: L_08B4509C: aot_gpr_31 = (0x08B450A4u); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 161u, 0x08B450A4u, 0x08AB3F70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1021u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1021u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1021u, 0x08AB3F70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B450A4u) goto L_08B450A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B450A4: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_16 = (0u | 193u); @@ -2915,8 +3407,21 @@ L_08B450A4: L_08B450AC: aot_gpr_31 = (0x08B450B4u); aot_gpr_4 = (0u | 193u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 163u, 0x08B450B4u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B450B4u) goto L_08B450B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B450B4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2927,8 +3432,21 @@ L_08B450B4: L_08B450BC: aot_gpr_31 = (0x08B450C4u); aot_gpr_4 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 165u, 0x08B450C4u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B450C4u) goto L_08B450C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B450C4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -2943,8 +3461,21 @@ L_08B450CC: L_08B450D4: aot_gpr_31 = (0x08B450DCu); aot_gpr_4 = (ctx.gpr[2] + static_cast(2288)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0171. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 168u, 0x08B450DCu, 0x08AB3FB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0171_entry(rt, ctx, 1029u, aot_mem); +#else + recomp_unit_0171_entry(rt, ctx, 1029u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0171_entry, 171u, 1029u, 0x08AB3FB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B450DCu) goto L_08B450DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B450DC: { const bool branch_taken = ctx.gpr[2] != 0u; ctx.gpr[17] = (0u | 246u); @@ -2972,8 +3503,21 @@ L_08B450EC: L_08B450F4: aot_gpr_31 = (0x08B450FCu); aot_gpr_4 = (0u | 246u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 172u, 0x08B450FCu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B450FCu) goto L_08B450FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B450FC: { const bool branch_taken = ctx.gpr[2] == 0u; aot_gpr_16 = (0u | 218u); @@ -2985,8 +3529,21 @@ L_08B450FC: L_08B45104: aot_gpr_31 = (0x08B4510Cu); aot_gpr_4 = (0u | 218u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 174u, 0x08B4510Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4510Cu) goto L_08B4510C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4510C: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -2996,8 +3553,21 @@ L_08B4510C: L_08B45114: aot_gpr_31 = (0x08B4511Cu); aot_gpr_4 = (0u | 11u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 176u, 0x08B4511Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4511Cu) goto L_08B4511C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4511C: if (ctx.gpr[2] == 0u) { aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); @@ -3085,8 +3655,21 @@ L_08B451B4: aot_gpr_16 = (0u | 191u); aot_gpr_31 = (0x08B451C0u); aot_gpr_4 = (0u | 191u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 187u, 0x08B451C0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B451C0u) goto L_08B451C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B451C0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3097,8 +3680,21 @@ L_08B451C0: L_08B451C8: aot_gpr_31 = (0x08B451D0u); aot_gpr_4 = (0u | 119u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 189u, 0x08B451D0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B451D0u) goto L_08B451D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B451D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3151,8 +3747,8 @@ L_08B45220: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B45234: @@ -3167,8 +3763,21 @@ L_08B45234: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B45260u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 197u, 0x08B45260u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45260u) goto L_08B45260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45260: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3179,8 +3788,21 @@ L_08B45260: L_08B45268: aot_gpr_31 = (0x08B45270u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 199u, 0x08B45270u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45270u) goto L_08B45270; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45270: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3204,8 +3826,8 @@ L_08B45284: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B45294: @@ -3281,8 +3903,8 @@ L_08B4532C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B45348: @@ -3294,8 +3916,21 @@ L_08B45348: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_31); aot_gpr_31 = (0x08B45368u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 211u, 0x08B45368u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45368u) goto L_08B45368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45368: ctx.gpr[17] = (aot_gpr_16 + static_cast(48)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -3303,16 +3938,42 @@ L_08B45368: aot_gpr_4 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B45380u); aot_fpr_20 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 212u, 0x08B45380u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45380u) goto L_08B45380; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45380: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); ctx.fpr[14] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x08B45394u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[14]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 213u, 0x08B45394u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45394u) goto L_08B45394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45394: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fpr[15] = std::bit_cast(0u); @@ -3340,8 +4001,21 @@ L_08B453C0: aot_fpr_13 = std::bit_cast(aot_gpr_5); aot_gpr_31 = (0x08B453E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 216u, 0x08B453E0u, 0x08B4ECC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 418u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 418u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 418u, 0x08B4ECC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B453E0u) goto L_08B453E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B453E0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -3352,8 +4026,8 @@ L_08B453E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B453F8: @@ -3482,8 +4156,21 @@ L_08B454CC: aot_gpr_16 = (aot_gpr_16 + static_cast(2352)); aot_gpr_31 = (0x08B454DCu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 232u, 0x08B454DCu, 0x08B210FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 191u, 0x08B210FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B454DCu) goto L_08B454DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B454DC: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3499,15 +4186,41 @@ L_08B454E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B45500u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 234u, 0x08B45500u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45500u) goto L_08B45500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45500: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B45510u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 235u, 0x08B45510u, 0x08B20EB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 175u, 0x08B20EB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45510u) goto L_08B45510; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45510: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3519,8 +4232,21 @@ L_08B45510: L_08B4551C: aot_gpr_31 = (0x08B45524u); aot_gpr_4 = (0u | 227u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 237u, 0x08B45524u, 0x08B42634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 573u, 0x08B42634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45524u) goto L_08B45524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45524: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3547,20 +4273,59 @@ L_08B45548: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08B45560u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 240u, 0x08B45560u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45560u) goto L_08B45560; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45560: aot_gpr_4 = (0u | 12u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B45570u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 241u, 0x08B45570u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45570u) goto L_08B45570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45570: aot_gpr_31 = (0x08B45578u); aot_gpr_4 = (0u | 227u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 242u, 0x08B45578u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45578u) goto L_08B45578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45578: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3571,8 +4336,21 @@ L_08B45578: L_08B45580: aot_gpr_31 = (0x08B45588u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 244u, 0x08B45588u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45588u) goto L_08B45588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45588: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3599,8 +4377,21 @@ L_08B45590: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B455ACu); aot_gpr_4 = (0u | 227u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 246u, 0x08B455ACu, 0x08B4F89Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 508u, 0x08B4F89Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B455ACu) goto L_08B455AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B455AC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3622,8 +4413,21 @@ L_08B455BC: L_08B455C4: aot_gpr_31 = (0x08B455CCu); aot_gpr_4 = (0u | 227u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 250u, 0x08B455CCu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B455CCu) goto L_08B455CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B455CC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3634,8 +4438,21 @@ L_08B455CC: L_08B455D4: aot_gpr_31 = (0x08B455DCu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 252u, 0x08B455DCu, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B455DCu) goto L_08B455DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B455DC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5456))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -3670,15 +4487,41 @@ L_08B45608: aot_gpr_16 = (aot_gpr_16 + static_cast(14864)); aot_gpr_31 = (0x08B45624u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 256u, 0x08B45624u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45624u) goto L_08B45624; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45624: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B45634u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0114. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 257u, 0x08B45634u, 0x089CFB70u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); +#else + recomp_unit_0114_entry(rt, ctx, 688u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0114_entry, 114u, 688u, 0x089CFB70u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45634u) goto L_08B45634; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45634: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -3702,8 +4545,21 @@ L_08B45640: L_08B4565C: aot_gpr_31 = (0x08B45664u); aot_gpr_4 = (0u | 194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 260u, 0x08B45664u, 0x08B42634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 573u, 0x08B42634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45664u) goto L_08B45664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45664: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 2 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3719,20 +4575,59 @@ L_08B45670: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08B45688u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 262u, 0x08B45688u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45688u) goto L_08B45688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45688: aot_gpr_4 = (0u | 13u); aot_gpr_5 = (0u | 1u); aot_gpr_31 = (0x08B45698u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 263u, 0x08B45698u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45698u) goto L_08B45698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45698: aot_gpr_31 = (0x08B456A0u); aot_gpr_4 = (0u | 194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 264u, 0x08B456A0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B456A0u) goto L_08B456A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B456A0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3743,8 +4638,21 @@ L_08B456A0: L_08B456A8: aot_gpr_31 = (0x08B456B0u); aot_gpr_4 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 266u, 0x08B456B0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B456B0u) goto L_08B456B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B456B0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3770,8 +4678,21 @@ L_08B456B8: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B456D0u); aot_gpr_4 = (0u | 194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 268u, 0x08B456D0u, 0x08B4F89Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 508u, 0x08B4F89Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B456D0u) goto L_08B456D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B456D0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3793,8 +4714,21 @@ L_08B456E0: L_08B456E8: aot_gpr_31 = (0x08B456F0u); aot_gpr_4 = (0u | 194u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 272u, 0x08B456F0u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B456F0u) goto L_08B456F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B456F0: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -3805,8 +4739,21 @@ L_08B456F0: L_08B456F8: aot_gpr_31 = (0x08B45700u); aot_gpr_4 = (0u | 13u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 274u, 0x08B45700u, 0x08AD3780u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 621u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 621u, 0x08AD3780u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45700u) goto L_08B45700; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45700: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(80), aot_run_words); @@ -3816,15 +4763,15 @@ L_08B45700: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B45714: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4571C: @@ -3859,8 +4806,21 @@ L_08B4574C: L_08B45768: aot_gpr_31 = (0x08B45770u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 280u, 0x08B45770u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45770u) goto L_08B45770; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45770: aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[2]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3882,8 +4842,21 @@ L_08B4578C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B45798u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 283u, 0x08B45798u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45798u) goto L_08B45798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45798: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3910,8 +4883,21 @@ L_08B457A4: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B457BCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 285u, 0x08B457BCu, 0x08824354u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 38u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 38u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 38u, 0x08824354u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B457BCu) goto L_08B457BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B457BC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3950,8 +4936,8 @@ L_08B457D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B457F8: @@ -3968,14 +4954,40 @@ L_08B457F8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B4582Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 291u, 0x08B4582Cu, 0x08B02100u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 550u, 0x08B02100u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4582Cu) goto L_08B4582C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4582C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B45838u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 292u, 0x08B45838u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45838u) goto L_08B45838; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45838: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -4006,8 +5018,21 @@ L_08B45864: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B45870u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 296u, 0x08B45870u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45870u) goto L_08B45870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45870: { const bool branch_taken = ctx.gpr[17] == 0u; if (branch_taken) { @@ -4036,8 +5061,8 @@ L_08B45894: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B458A8: @@ -4046,8 +5071,21 @@ L_08B458A8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(164), aot_run_words); } aot_gpr_31 = (0x08B458D4u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 300u, 0x08B458D4u, 0x08B4223Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 505u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 505u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 505u, 0x08B4223Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B458D4u) goto L_08B458D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B458D4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4067,8 +5105,21 @@ L_08B458DC: L_08B458EC: aot_gpr_31 = (0x08B458F4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 303u, 0x08B458F4u, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B458F4u) goto L_08B458F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B458F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4079,8 +5130,21 @@ L_08B458F4: L_08B458FC: aot_gpr_31 = (0x08B45904u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 305u, 0x08B45904u, 0x089704DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 93u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 93u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 93u, 0x089704DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45904u) goto L_08B45904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45904: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4100,8 +5164,21 @@ L_08B4590C: L_08B4591C: aot_gpr_31 = (0x08B45924u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(80))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 308u, 0x08B45924u, 0x0894530Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 191u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 191u, 0x0894530Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45924u) goto L_08B45924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45924: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4113,8 +5190,21 @@ L_08B4592C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B45938u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 310u, 0x08B45938u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45938u) goto L_08B45938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45938: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -4144,8 +5234,21 @@ L_08B4595C: L_08B45964: aot_gpr_31 = (0x08B4596Cu); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 314u, 0x08B4596Cu, 0x08960450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4596Cu) goto L_08B4596C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4596C: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -4173,8 +5276,21 @@ L_08B4596C: aot_fpr_20 = std::sqrt(aot_fpr_20); aot_gpr_31 = (0x08B459A8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 315u, 0x08B459A8u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B459A8u) goto L_08B459A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B459A8: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_4 = (2236u << 16u); @@ -4240,8 +5356,21 @@ L_08B45A10: L_08B45A40: aot_gpr_31 = (0x08B45A48u); aot_gpr_4 = (aot_gpr_4 + static_cast(32304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0134. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 320u, 0x08B45A48u, 0x08A1C658u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0134_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0134_entry, 134u, 56u, 0x08A1C658u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45A48u) goto L_08B45A48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45A48: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4382,8 +5511,21 @@ L_08B45B28: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B45B40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 334u, 0x08B45B40u, 0x0896DBC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 454u, 0x0896DBC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45B40u) goto L_08B45B40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45B40: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4394,8 +5536,21 @@ L_08B45B40: L_08B45B48: aot_gpr_31 = (0x08B45B50u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 336u, 0x08B45B50u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45B50u) goto L_08B45B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45B50: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4472,8 +5627,21 @@ L_08B45BD0: L_08B45BD4: aot_gpr_31 = (0x08B45BDCu); aot_gpr_5 = (ctx.gpr[18] & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 348u, 0x08B45BDCu, 0x08A53098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 561u, 0x08A53098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45BDCu) goto L_08B45BDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45BDC: aot_gpr_4 = (2237u << 16u); ctx.gpr[19] = (ctx.gpr[2] | 0u); @@ -4481,15 +5649,41 @@ L_08B45BDC: aot_gpr_5 = (aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08B45BF4u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 349u, 0x08B45BF4u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45BF4u) goto L_08B45BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45BF4: ctx.gpr[20] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B45C04u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 350u, 0x08B45C04u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45C04u) goto L_08B45C04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45C04: { const bool branch_taken = ctx.gpr[20] == ctx.gpr[2]; if (branch_taken) { @@ -4517,8 +5711,21 @@ L_08B45C1C: aot_fpr_12 = std::bit_cast(aot_gpr_6); aot_gpr_31 = (0x08B45C30u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 354u, 0x08B45C30u, 0x08824560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 59u, 0x08824560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45C30u) goto L_08B45C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45C30: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4634,8 +5841,21 @@ L_08B45D0C: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08B45D24u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 369u, 0x08B45D24u, 0x08ADCFF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 282u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 282u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 282u, 0x08ADCFF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45D24u) goto L_08B45D24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45D24: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4681,8 +5901,21 @@ L_08B45D54: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B45D60u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 376u, 0x08B45D60u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45D60u) goto L_08B45D60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45D60: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -4770,8 +6003,21 @@ L_08B45DE8: L_08B45DFC: aot_gpr_31 = (0x08B45E04u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 386u, 0x08B45E04u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45E04u) goto L_08B45E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45E04: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4830,8 +6076,21 @@ L_08B45E0C: L_08B45E50: aot_gpr_31 = (0x08B45E58u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 389u, 0x08B45E58u, 0x08B4223Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 505u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 505u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 505u, 0x08B4223Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45E58u) goto L_08B45E58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45E58: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4851,8 +6110,21 @@ L_08B45E60: L_08B45E70: aot_gpr_31 = (0x08B45E78u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 392u, 0x08B45E78u, 0x08AFF508u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 772u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 772u, 0x08AFF508u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45E78u) goto L_08B45E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45E78: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4864,8 +6136,21 @@ L_08B45E80: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B45E8Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 394u, 0x08B45E8Cu, 0x08A0F448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 573u, 0x08A0F448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45E8Cu) goto L_08B45E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45E8C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4876,8 +6161,21 @@ L_08B45E8C: L_08B45E94: aot_gpr_31 = (0x08B45E9Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 396u, 0x08B45E9Cu, 0x08A0F37Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 561u, 0x08A0F37Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45E9Cu) goto L_08B45E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45E9C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4902,8 +6200,21 @@ L_08B45EA4: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B45EBCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 398u, 0x08B45EBCu, 0x0896DBC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 454u, 0x0896DBC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45EBCu) goto L_08B45EBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45EBC: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -4927,8 +6238,21 @@ L_08B45ED8: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08B45EE4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 402u, 0x08B45EE4u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45EE4u) goto L_08B45EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45EE4: aot_gpr_4 = (static_cast(ctx.gpr[18]) < static_cast(ctx.gpr[2]) ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4960,8 +6284,21 @@ L_08B45F0C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B45F1Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 406u, 0x08B45F1Cu, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45F1Cu) goto L_08B45F1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45F1C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -4974,8 +6311,21 @@ L_08B45F28: aot_fpr_12 = std::bit_cast(0u); aot_gpr_31 = (0x08B45F34u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 408u, 0x08B45F34u, 0x08824560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 59u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 59u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 59u, 0x08824560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45F34u) goto L_08B45F34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45F34: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -5023,8 +6373,21 @@ L_08B45F68: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B45F74u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 416u, 0x08B45F74u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B45F74u) goto L_08B45F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B45F74: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -5158,8 +6521,21 @@ L_08B46054: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B46060u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 425u, 0x08B46060u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46060u) goto L_08B46060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46060: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -5229,8 +6605,21 @@ L_08B460C8: L_08B460DC: aot_gpr_31 = (0x08B460E4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 433u, 0x08B460E4u, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B460E4u) goto L_08B460E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B460E4: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5302,8 +6691,21 @@ L_08B4612C: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B46144u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0090. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 436u, 0x08B46144u, 0x0896DBC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0090_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0090_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0090_entry, 90u, 454u, 0x0896DBC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46144u) goto L_08B46144; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46144: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -5315,8 +6717,21 @@ L_08B4614C: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B46158u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 438u, 0x08B46158u, 0x08891B8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 247u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 247u, 0x08891B8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46158u) goto L_08B46158; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46158: { const bool branch_taken = aot_gpr_16 == 0u; if (branch_taken) { @@ -5357,8 +6772,8 @@ L_08B46184: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B461AC: @@ -5386,8 +6801,8 @@ L_08B461E0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30808))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B461F8: @@ -5427,8 +6842,21 @@ L_08B46240: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B46258u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 448u, 0x08B46258u, 0x08B4CD78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 120u, 0x08B4CD78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46258u) goto L_08B46258; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46258: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(12), static_cast(0u)); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -5746,16 +7174,42 @@ L_08B464DC: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B464F4u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 482u, 0x08B464F4u, 0x08B4CD78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 120u, 0x08B4CD78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B464F4u) goto L_08B464F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B464F4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_gpr_16 | 0u); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(600), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B46508u); aot_gpr_5 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(12))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 483u, 0x08B46508u, 0x08B00044u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 5u, 0x08B00044u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46508u) goto L_08B46508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46508: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(604), std::bit_cast(aot_fpr_12)); @@ -5769,8 +7223,8 @@ L_08B46508: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4652C: @@ -5937,8 +7391,21 @@ L_08B466C4: } L_08B466D8: aot_gpr_31 = (0x08B466E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 499u, 0x08B466E0u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B466E0u) goto L_08B466E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B466E0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -5993,8 +7460,21 @@ L_08B46734: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B4676Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 505u, 0x08B4676Cu, 0x08B49B24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 285u, 0x08B49B24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4676Cu) goto L_08B4676C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4676C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[19] + static_cast(535)))))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -6007,8 +7487,21 @@ L_08B4676C: ctx.fpr[14] = std::bit_cast(std::bit_cast(aot_fpr_22)); aot_gpr_31 = (0x08B46798u); ctx.fpr[15] = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 506u, 0x08B46798u, 0x08B49B24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 285u, 0x08B49B24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46798u) goto L_08B46798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46798: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_16 = (aot_gpr_16 + static_cast(56)); @@ -6064,8 +7557,8 @@ L_08B467BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B46834: @@ -6111,8 +7604,21 @@ L_08B468B4: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B468C4u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 511u, 0x08B468C4u, 0x08B4C254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 28u, 0x08B4C254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B468C4u) goto L_08B468C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B468C4: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -6138,21 +7644,47 @@ L_08B468E0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30768))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B468F8: aot_gpr_31 = (0x08B46900u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 515u, 0x08B46900u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46900u) goto L_08B46900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46900: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08B4690Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 516u, 0x08B4690Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4690Cu) goto L_08B4690C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4690C: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -6160,8 +7692,21 @@ L_08B4690C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B46924u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 517u, 0x08B46924u, 0x08B4BAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 616u, 0x08B4BAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46924u) goto L_08B46924; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46924: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6187,8 +7732,21 @@ L_08B46938: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B4695Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 520u, 0x08B4695Cu, 0x08B4BAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 616u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 616u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 616u, 0x08B4BAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4695Cu) goto L_08B4695C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4695C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6201,8 +7759,21 @@ L_08B46964: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B46974u); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0210. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 522u, 0x08B46974u, 0x08B4C254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0210_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0210_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0210_entry, 210u, 28u, 0x08B4C254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46974u) goto L_08B46974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46974: { const bool branch_taken = 0u == 0u; ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -6216,8 +7787,21 @@ L_08B4697C: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B4698Cu); aot_gpr_6 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 524u, 0x08B4698Cu, 0x08B4B0E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 512u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 512u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 512u, 0x08B4B0E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4698Cu) goto L_08B4698C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4698C: { const bool branch_taken = static_cast(aot_gpr_16) > 0; aot_gpr_4 = (static_cast(aot_gpr_16) < 3 ? 1u : 0u); @@ -6239,8 +7823,21 @@ L_08B4699C: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B469B0u); ctx.gpr[7] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 527u, 0x08B469B0u, 0x089DCBE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 135u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 135u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 135u, 0x089DCBE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B469B0u) goto L_08B469B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B469B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6273,8 +7870,21 @@ L_08B469C8: aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(4), static_cast(ctx.gpr[7])); aot_gpr_31 = (0x08B469ECu); aot_gpr_4 = (ctx.gpr[17] + static_cast(384)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 531u, 0x08B469ECu, 0x089DD2B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 188u, 0x089DD2B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B469ECu) goto L_08B469EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B469EC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(516))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(520))); @@ -6295,8 +7905,21 @@ L_08B46A14: aot_gpr_16 = (ctx.gpr[17] + static_cast(384)); aot_gpr_31 = (0x08B46A20u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 533u, 0x08B46A20u, 0x089DCB78u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 134u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 134u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 134u, 0x089DCB78u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46A20u) goto L_08B46A20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46A20: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(0)))))); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(2)))))); @@ -6307,8 +7930,21 @@ L_08B46A20: aot_mem.aot_direct_store16(aot_gpr_5 + static_cast(4), static_cast(ctx.gpr[7])); aot_gpr_31 = (0x08B46A44u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 534u, 0x08B46A44u, 0x089DD2B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 188u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 188u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 188u, 0x089DD2B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46A44u) goto L_08B46A44; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46A44: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(516))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(520))); @@ -6339,8 +7975,8 @@ L_08B46A6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B46A94: @@ -6367,8 +8003,21 @@ L_08B46A94: aot_gpr_5 = (aot_gpr_5 + static_cast(-6992)); ctx.gpr[17] = (ctx.gpr[17] + aot_gpr_5); aot_gpr_31 = (0x08B46B20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 537u, 0x08B46B20u, 0x08960450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46B20u) goto L_08B46B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46B20: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6385,8 +8034,21 @@ L_08B46B20: const std::uint32_t vfpu_words[4]{std::bit_cast(vfpu_value[0]), std::bit_cast(vfpu_value[1]), std::bit_cast(vfpu_value[2]), std::bit_cast(vfpu_value[3])}; aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B46B34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 538u, 0x08B46B34u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46B34u) goto L_08B46B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46B34: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6406,8 +8068,21 @@ L_08B46B34: aot_gpr_6 = (aot_gpr_29 + static_cast(228)); aot_gpr_31 = (0x08B46B50u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 539u, 0x08B46B50u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46B50u) goto L_08B46B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46B50: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(228))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -6436,8 +8111,21 @@ L_08B46B8C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08B46B98u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 542u, 0x08B46B98u, 0x08ADD4B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 352u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 352u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 352u, 0x08ADD4B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46B98u) goto L_08B46B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46B98: aot_gpr_4 = (static_cast(ctx.gpr[2]) < 21 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6480,14 +8168,40 @@ L_08B46BC8: ctx.gpr[18] = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08B46BD8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 548u, 0x08B46BD8u, 0x08ADD854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 413u, 0x08ADD854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46BD8u) goto L_08B46BD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46BD8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B46BE4u); ctx.gpr[18] = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 549u, 0x08B46BE4u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46BE4u) goto L_08B46BE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46BE4: aot_gpr_4 = (0u | 20u); { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(ctx.gpr[2]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } @@ -6529,8 +8243,21 @@ L_08B46C20: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08B46C2Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 554u, 0x08B46C2Cu, 0x08ADD854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 413u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 413u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 413u, 0x08ADD854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46C2Cu) goto L_08B46C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46C2C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5504))); aot_gpr_4 = (ctx.gpr[2] < aot_gpr_4 ? 1u : 0u); @@ -6577,8 +8304,21 @@ L_08B46C78: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08B46C84u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 560u, 0x08B46C84u, 0x08ADD6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 381u, 0x08ADD6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46C84u) goto L_08B46C84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46C84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5500))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5460))); @@ -6612,8 +8352,21 @@ L_08B46CB4: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08B46CC0u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 565u, 0x08B46CC0u, 0x08ADD468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 348u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 348u, 0x08ADD468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46CC0u) goto L_08B46CC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46CC0: aot_gpr_4 = (static_cast(ctx.gpr[19]) < static_cast(ctx.gpr[2]) ? 1u : 0u); if (aot_gpr_4 == 0u) { @@ -6627,15 +8380,41 @@ L_08B46CCC: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B46CE0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 567u, 0x08B46CE0u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46CE0u) goto L_08B46CE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46CE0: ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B46CF0u); aot_gpr_5 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 568u, 0x08B46CF0u, 0x08ADC0F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 12u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 12u, 0x08ADC0F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46CF0u) goto L_08B46CF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46CF0: { const bool branch_taken = ctx.gpr[21] == ctx.gpr[2]; if (branch_taken) { @@ -6662,13 +8441,39 @@ L_08B46D08: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B46D18u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 572u, 0x08B46D18u, 0x089609B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 111u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 111u, 0x089609B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46D18u) goto L_08B46D18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46D18: aot_gpr_31 = (0x08B46D20u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0008. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 573u, 0x08B46D20u, 0x08824204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); +#else + recomp_unit_0008_entry(rt, ctx, 19u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0008_entry, 8u, 19u, 0x08824204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46D20u) goto L_08B46D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46D20: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -6834,8 +8639,21 @@ L_08B46E6C: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08B46E78u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 584u, 0x08B46E78u, 0x08ABF2D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 685u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 685u, 0x08ABF2D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46E78u) goto L_08B46E78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46E78: aot_gpr_4 = (3u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(8192)); @@ -6887,8 +8705,21 @@ L_08B46EB8: aot_gpr_4 = (aot_gpr_29 + static_cast(228)); aot_gpr_31 = (0x08B46EC4u); aot_gpr_5 = (aot_gpr_29 + static_cast(44)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 591u, 0x08B46EC4u, 0x08B4237Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 520u, 0x08B4237Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B46EC4u) goto L_08B46EC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B46EC4: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -7138,8 +8969,21 @@ L_08B47094: aot_gpr_4 = (aot_gpr_29 + static_cast(228)); aot_gpr_31 = (0x08B470A0u); aot_gpr_5 = (aot_gpr_29 + static_cast(44)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 619u, 0x08B470A0u, 0x08B4237Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 520u, 0x08B4237Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B470A0u) goto L_08B470A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B470A0: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -7244,8 +9088,21 @@ L_08B4714C: L_08B47154: aot_gpr_31 = (0x08B4715Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 632u, 0x08B4715Cu, 0x08AD3708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 614u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 614u, 0x08AD3708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4715Cu) goto L_08B4715C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4715C: aot_gpr_4 = (ctx.gpr[2] & 2u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7297,8 +9154,21 @@ L_08B471C0: } L_08B471C8: aot_gpr_31 = (0x08B471D0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 638u, 0x08B471D0u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B471D0u) goto L_08B471D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B471D0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7620,8 +9490,21 @@ L_08B47468: ctx.gpr[22] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_31 = (0x08B47478u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 667u, 0x08B47478u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47478u) goto L_08B47478; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47478: ctx.gpr[7] = (2236u << 16u); ctx.gpr[7] = (ctx.gpr[7] + static_cast(32304)); @@ -7638,8 +9521,21 @@ L_08B47478: ctx.gpr[10] = (0u | 2u); aot_gpr_31 = (0x08B474B4u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 668u, 0x08B474B4u, 0x08976FBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 650u, 0x08976FBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B474B4u) goto L_08B474B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B474B4: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_5 = (0u + static_cast(-1)); @@ -7729,8 +9625,21 @@ L_08B47550: ctx.gpr[9] = (aot_gpr_29 + static_cast(32)); aot_gpr_31 = (0x08B4758Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 676u, 0x08B4758Cu, 0x0897A644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 327u, 0x0897A644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4758Cu) goto L_08B4758C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4758C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7871,8 +9780,21 @@ L_08B476A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); aot_gpr_31 = (0x08B476B8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 691u, 0x08B476B8u, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B476B8u) goto L_08B476B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B476B8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7899,8 +9821,21 @@ L_08B476D0: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08B476E4u); aot_gpr_6 = (aot_gpr_6 + static_cast(-30832)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 695u, 0x08B476E4u, 0x08AD3258u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 546u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 546u, 0x08AD3258u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B476E4u) goto L_08B476E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B476E4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7933,8 +9868,21 @@ L_08B47704: L_08B47714: aot_gpr_31 = (0x08B4771Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 701u, 0x08B4771Cu, 0x08AD3698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 607u, 0x08AD3698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4771Cu) goto L_08B4771C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4771C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -7973,15 +9921,41 @@ L_08B4773C: L_08B47744: aot_gpr_31 = (0x08B4774Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(304)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 707u, 0x08B4774Cu, 0x08A8E2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 433u, 0x08A8E2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4774Cu) goto L_08B4774C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4774C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-5336))); ctx.gpr[21] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B4775Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(48)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 708u, 0x08B4775Cu, 0x08A8E2ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 433u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 433u, 0x08A8E2ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4775Cu) goto L_08B4775C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4775C: { const bool branch_taken = ctx.gpr[21] == ctx.gpr[2]; if (branch_taken) { @@ -7994,8 +9968,21 @@ L_08B47764: aot_gpr_5 = (aot_gpr_29 + static_cast(48)); aot_gpr_31 = (0x08B47774u); aot_gpr_6 = (aot_gpr_29 + static_cast(388)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 710u, 0x08B47774u, 0x08A8EB48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 526u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 526u, 0x08A8EB48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47774u) goto L_08B47774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47774: { const bool branch_taken = ctx.gpr[20] == 0u; if (branch_taken) { @@ -8040,8 +10027,21 @@ L_08B477B0: aot_gpr_4 = (aot_gpr_29 + static_cast(388)); aot_gpr_31 = (0x08B477BCu); aot_gpr_5 = (aot_gpr_29 + static_cast(44)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 717u, 0x08B477BCu, 0x08B4237Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 520u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 520u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 520u, 0x08B4237Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B477BCu) goto L_08B477BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B477BC: ctx.gpr[17] = (ctx.gpr[2] | 0u); aot_gpr_4 = (0u + static_cast(-1)); @@ -8169,8 +10169,21 @@ L_08B47888: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B478B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 732u, 0x08B478B0u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B478B0u) goto L_08B478B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B478B0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(386)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8325,8 +10338,21 @@ L_08B47A28: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B47A34u); aot_gpr_4 = (0u | 1584u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 746u, 0x08B47A34u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47A34u) goto L_08B47A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47A34: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -8340,8 +10366,21 @@ L_08B47A40: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B47A4Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0149. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 748u, 0x08B47A4Cu, 0x08A5A7FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); +#else + recomp_unit_0149_entry(rt, ctx, 581u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0149_entry, 149u, 581u, 0x08A5A7FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47A4Cu) goto L_08B47A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47A4C: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B47A50; @@ -8357,8 +10396,21 @@ L_08B47A5C: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08B47A68u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 751u, 0x08B47A68u, 0x08ADD6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 381u, 0x08ADD6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47A68u) goto L_08B47A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47A68: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5500), ctx.gpr[2]); @@ -8404,8 +10456,21 @@ L_08B47AAC: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B47AB8u); aot_gpr_4 = (0u | 1632u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 757u, 0x08B47AB8u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47AB8u) goto L_08B47AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47AB8: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] != 0u; @@ -8433,8 +10498,21 @@ L_08B47AD4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B47AE0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0089. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 761u, 0x08B47AE0u, 0x08969648u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0089_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0089_entry, 89u, 304u, 0x08969648u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47AE0u) goto L_08B47AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47AE0: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B47AE4; @@ -8482,8 +10560,21 @@ L_08B47B28: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B47B34u); aot_gpr_4 = (0u | 1184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 768u, 0x08B47B34u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47B34u) goto L_08B47B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47B34: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] != 0u; @@ -8511,8 +10602,21 @@ L_08B47B50: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B47B5Cu); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 772u, 0x08B47B5Cu, 0x088A2F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 689u, 0x088A2F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47B5Cu) goto L_08B47B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47B5C: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B47B60; @@ -8560,8 +10664,21 @@ L_08B47BA4: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B47BB0u); aot_gpr_4 = (0u | 1984u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 779u, 0x08B47BB0u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47BB0u) goto L_08B47BB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47BB0: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] != 0u; @@ -8638,8 +10755,21 @@ L_08B47C20: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B47C2Cu); aot_gpr_4 = (0u | 1184u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 790u, 0x08B47C2Cu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47C2Cu) goto L_08B47C2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47C2C: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] != 0u; @@ -8667,8 +10797,21 @@ L_08B47C48: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B47C54u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0039. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 794u, 0x08B47C54u, 0x088A2F88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); +#else + recomp_unit_0039_entry(rt, ctx, 689u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0039_entry, 39u, 689u, 0x088A2F88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47C54u) goto L_08B47C54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47C54: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B47C58; @@ -8683,8 +10826,21 @@ L_08B47C60: ctx.gpr[22] = (0u | 0u); aot_gpr_31 = (0x08B47C6Cu); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 797u, 0x08B47C6Cu, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47C6Cu) goto L_08B47C6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47C6C: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -8699,8 +10855,21 @@ L_08B47C78: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B47C88u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 799u, 0x08B47C88u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47C88u) goto L_08B47C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47C88: ctx.gpr[22] = (ctx.gpr[23] | 0u); goto L_08B47C8C; @@ -8716,8 +10885,21 @@ L_08B47C98: aot_gpr_4 = (2237u << 16u); aot_gpr_31 = (0x08B47CA4u); aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 802u, 0x08B47CA4u, 0x08ADD6ACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 381u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 381u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 381u, 0x08ADD6ACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47CA4u) goto L_08B47CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47CA4: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5500), ctx.gpr[2]); goto L_08B47CA8; @@ -8841,8 +11023,21 @@ L_08B47D68: L_08B47DAC: aot_gpr_31 = (0x08B47DB4u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 815u, 0x08B47DB4u, 0x08B0E5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 584u, 0x08B0E5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47DB4u) goto L_08B47DB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47DB4: aot_gpr_4 = (ctx.gpr[2] << 24u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 24u)); @@ -8852,8 +11047,21 @@ L_08B47DB4: aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x08B47DD4u); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(520), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 816u, 0x08B47DD4u, 0x08B0E454u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 555u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 555u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 555u, 0x08B0E454u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47DD4u) goto L_08B47DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47DD4: aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(533), static_cast(ctx.gpr[2])); aot_gpr_4 = (0u | 2u); @@ -8946,8 +11154,21 @@ L_08B47E80: L_08B47EC4: aot_gpr_31 = (0x08B47ECCu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 824u, 0x08B47ECCu, 0x08B0E5E4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 584u, 0x08B0E5E4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47ECCu) goto L_08B47ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47ECC: aot_gpr_4 = (ctx.gpr[2] << 24u); aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 24u)); @@ -8957,8 +11178,21 @@ L_08B47ECC: aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); aot_gpr_31 = (0x08B47EECu); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(520), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 825u, 0x08B47EECu, 0x08B0EB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 650u, 0x08B0EB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47EECu) goto L_08B47EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47EEC: aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(533), static_cast(ctx.gpr[2])); aot_gpr_4 = (0u | 2u); @@ -9000,8 +11234,21 @@ L_08B47F24: aot_fpr_13 = static_cast(static_cast(std::bit_cast(aot_fpr_13))); aot_gpr_31 = (0x08B47F60u); aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast(520), std::bit_cast(aot_fpr_13)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0208->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0208_entry, 829u, 0x08B47F60u, 0x08B0E56Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 575u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 575u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 575u, 0x08B0E56Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B47F60u) goto L_08B47F60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B47F60: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(617)))))); aot_mem.aot_direct_store8(ctx.gpr[22] + static_cast(533), static_cast(ctx.gpr[2])); diff --git a/profiles/vcs/generated/generated_unit_0209.cpp b/profiles/vcs/generated/generated_unit_0209.cpp index cda81e9..bfbde9d 100644 --- a/profiles/vcs/generated/generated_unit_0209.cpp +++ b/profiles/vcs/generated/generated_unit_0209.cpp @@ -729,6 +729,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B48000u; + if (local_delta_v813 >= 16356u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1339,8 +1363,21 @@ L_08B48540: aot_gpr_7 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B485E0u); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 35u, 0x08B485E0u, 0x089DCD44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 147u, 0x089DCD44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B485E0u) goto L_08B485E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B485E0: aot_gpr_5 = (aot_gpr_29 + static_cast(48)); aot_gpr_4 = (aot_gpr_29 + static_cast(128)); @@ -1370,8 +1407,21 @@ L_08B48604: aot_fpr_12 = aot_fpr_12 / aot_fpr_13; aot_gpr_31 = (0x08B48630u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 38u, 0x08B48630u, 0x089DCE98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 156u, 0x089DCE98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48630u) goto L_08B48630; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48630: aot_gpr_4 = (16384u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -1698,8 +1748,21 @@ L_08B48850: aot_gpr_4 = (aot_gpr_29 + static_cast(604)); aot_gpr_31 = (0x08B48868u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0189. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 40u, 0x08B48868u, 0x08AF8668u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0189_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0189_entry, 189u, 115u, 0x08AF8668u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48868u) goto L_08B48868; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48868: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1775,8 +1838,21 @@ L_08B488A4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08B488FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 46u, 0x08B488FCu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B488FCu) goto L_08B488FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B488FC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1789,8 +1865,21 @@ L_08B48904: aot_gpr_4 = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08B48914u); aot_gpr_5 = (aot_gpr_29 + static_cast(192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 48u, 0x08B48914u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48914u) goto L_08B48914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48914: ctx.gpr[17] = (0u | 1u); goto L_08B48918; @@ -1809,8 +1898,21 @@ L_08B48918: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B48950u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 50u, 0x08B48950u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48950u) goto L_08B48950; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48950: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1852,8 +1954,21 @@ L_08B489A4: aot_gpr_4 = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08B489B4u); aot_gpr_5 = (aot_gpr_29 + static_cast(192)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 55u, 0x08B489B4u, 0x08805288u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 157u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 157u, 0x08805288u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B489B4u) goto L_08B489B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B489B4: ctx.gpr[17] = (0u | 1u); goto L_08B489B8; @@ -1934,8 +2049,21 @@ L_08B48A3C: L_08B48A44: aot_gpr_31 = (0x08B48A4Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 64u, 0x08B48A4Cu, 0x08AECA18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 168u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 168u, 0x08AECA18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48A4Cu) goto L_08B48A4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48A4C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1989,8 +2117,21 @@ L_08B48AA4: aot_gpr_5 = (aot_gpr_29 + static_cast(560)); aot_gpr_31 = (0x08B48AB0u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 70u, 0x08B48AB0u, 0x08AD0EC4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 203u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 203u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 203u, 0x08AD0EC4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48AB0u) goto L_08B48AB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48AB0: ctx.gpr[17] = (ctx.gpr[22] + static_cast(384)); aot_gpr_5 = (aot_gpr_29 + static_cast(336)); @@ -1999,8 +2140,21 @@ L_08B48AB0: aot_gpr_7 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B48ACCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 71u, 0x08B48ACCu, 0x089DCD44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 147u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 147u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 147u, 0x089DCD44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48ACCu) goto L_08B48ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48ACC: aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7660))); aot_gpr_4 = (aot_gpr_29 + static_cast(48)); @@ -2031,8 +2185,21 @@ L_08B48AF0: aot_fpr_12 = aot_fpr_12 / aot_fpr_14; aot_gpr_31 = (0x08B48B20u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 74u, 0x08B48B20u, 0x089DCE98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 156u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 156u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 156u, 0x089DCE98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48B20u) goto L_08B48B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48B20: aot_gpr_4 = (17008u << 16u); ctx.fpr[20] = std::bit_cast(aot_gpr_4); @@ -2071,8 +2238,21 @@ L_08B48B20: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B48B5Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 75u, 0x08B48B5Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48B5Cu) goto L_08B48B5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48B5C: aot_gpr_4 = (std::bit_cast(ctx.fpr[20])); ctx.set_vfpu_scalar_bits_ct<28u>(aot_gpr_4); @@ -2240,8 +2420,21 @@ L_08B48C2C: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B48C38u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 84u, 0x08B48C38u, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48C38u) goto L_08B48C38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48C38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2253,8 +2446,21 @@ L_08B48C40: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B48C4Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 86u, 0x08B48C4Cu, 0x08B01B4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 450u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 450u, 0x08B01B4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48C4Cu) goto L_08B48C4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48C4C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -2297,13 +2503,39 @@ L_08B48C98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(80))); aot_gpr_31 = (0x08B48CA4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 91u, 0x08B48CA4u, 0x08945304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 190u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 190u, 0x08945304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48CA4u) goto L_08B48CA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48CA4: aot_gpr_31 = (0x08B48CACu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 92u, 0x08B48CACu, 0x08AD0530u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 50u, 0x08AD0530u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48CACu) goto L_08B48CAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48CAC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2685,8 +2917,21 @@ L_08B48EEC: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B48F40u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 121u, 0x08B48F40u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48F40u) goto L_08B48F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48F40: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(386)))))); if (aot_gpr_4 == 0u) { @@ -2738,8 +2983,21 @@ L_08B48F78: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B48FBCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 126u, 0x08B48FBCu, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B48FBCu) goto L_08B48FBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B48FBC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(386)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2786,13 +3044,39 @@ L_08B4901C: aot_gpr_5 = (ctx.gpr[22] + static_cast(548)); aot_gpr_31 = (0x08B4902Cu); aot_gpr_6 = (ctx.gpr[22] + static_cast(552)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 131u, 0x08B4902Cu, 0x08AA1FE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 480u, 0x08AA1FE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4902Cu) goto L_08B4902C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4902C: aot_gpr_31 = (0x08B49034u); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 132u, 0x08B49034u, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49034u) goto L_08B49034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49034: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); aot_gpr_5 = (0u | 13u); @@ -2823,8 +3107,21 @@ L_08B49054: L_08B49064: aot_gpr_31 = (0x08B4906Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 136u, 0x08B4906Cu, 0x08B0DF10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 466u, 0x08B0DF10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4906Cu) goto L_08B4906C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4906C: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2835,8 +3132,21 @@ L_08B4906C: L_08B49074: aot_gpr_31 = (0x08B4907Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 138u, 0x08B4907Cu, 0x08B00708u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 106u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 106u, 0x08B00708u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4907Cu) goto L_08B4907C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4907C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(-7080))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -2890,8 +3200,21 @@ L_08B490E8: ctx.gpr[16] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(86)))))); aot_gpr_31 = (0x08B490F4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 144u, 0x08B490F4u, 0x08AECAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 181u, 0x08AECAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B490F4u) goto L_08B490F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B490F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2916,8 +3239,21 @@ L_08B49110: L_08B49114: aot_gpr_31 = (0x08B4911Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(5544)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0078. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 149u, 0x08B4911Cu, 0x0893ED4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); +#else + recomp_unit_0078_entry(rt, ctx, 690u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0078_entry, 78u, 690u, 0x0893ED4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4911Cu) goto L_08B4911C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4911C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7656))); ctx.gpr[18] = (ctx.gpr[2] | 0u); @@ -2989,8 +3325,21 @@ L_08B49198: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B491A4u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0191. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 159u, 0x08B491A4u, 0x08B007DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0191_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0191_entry, 191u, 120u, 0x08B007DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B491A4u) goto L_08B491A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B491A4: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B491B0u); @@ -3303,8 +3652,21 @@ L_08B493EC: aot_gpr_5 = (aot_gpr_29 + static_cast(688)); aot_gpr_31 = (0x08B493FCu); aot_gpr_6 = (aot_gpr_29 + static_cast(680)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 200u, 0x08B493FCu, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B493FCu) goto L_08B493FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B493FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3334,8 +3696,21 @@ L_08B49428: aot_gpr_5 = (aot_gpr_29 + static_cast(692)); aot_gpr_31 = (0x08B49438u); aot_gpr_6 = (aot_gpr_29 + static_cast(680)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 204u, 0x08B49438u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49438u) goto L_08B49438; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49438: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3365,8 +3740,21 @@ L_08B49464: aot_gpr_5 = (aot_gpr_29 + static_cast(696)); aot_gpr_31 = (0x08B49474u); aot_gpr_6 = (aot_gpr_29 + static_cast(680)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 208u, 0x08B49474u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49474u) goto L_08B49474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49474: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3396,8 +3784,21 @@ L_08B494A0: aot_gpr_5 = (aot_gpr_29 + static_cast(684)); aot_gpr_31 = (0x08B494B0u); aot_gpr_6 = (aot_gpr_29 + static_cast(680)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 212u, 0x08B494B0u, 0x08AA1BA4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 434u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 434u, 0x08AA1BA4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B494B0u) goto L_08B494B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B494B0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3462,8 +3863,21 @@ L_08B494FC: L_08B49524: aot_gpr_31 = (0x08B4952Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[22] + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0186. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 220u, 0x08B4952Cu, 0x08AECAA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); +#else + recomp_unit_0186_entry(rt, ctx, 181u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0186_entry, 186u, 181u, 0x08AECAA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4952Cu) goto L_08B4952C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4952C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3528,8 +3942,21 @@ L_08B49544: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B49588u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 223u, 0x08B49588u, 0x089C7468u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 762u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 762u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 762u, 0x089C7468u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49588u) goto L_08B49588; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49588: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3545,8 +3972,21 @@ L_08B49590: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B495ACu); aot_fpr_14 = std::bit_cast(std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 225u, 0x08B495ACu, 0x08A6669Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 537u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B495ACu) goto L_08B495AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B495AC: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[22] + static_cast(565))); ctx.gpr[16] = (0u | 0u); @@ -3576,8 +4016,21 @@ L_08B495D8: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B495E8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 229u, 0x08B495E8u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B495E8u) goto L_08B495E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B495E8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B495F4u); @@ -3626,8 +4079,21 @@ L_08B49640: aot_gpr_5 = (0u | 16u); aot_gpr_31 = (0x08B49650u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0178. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 235u, 0x08B49650u, 0x08ACD698u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0178_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0178_entry, 178u, 482u, 0x08ACD698u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49650u) goto L_08B49650; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49650: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast(900))); aot_gpr_31 = (0x08B4965Cu); @@ -3677,8 +4143,21 @@ L_08B496A8: L_08B496B4: aot_gpr_31 = (0x08B496BCu); aot_gpr_4 = (0u | 408u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 241u, 0x08B496BCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B496BCu) goto L_08B496BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B496BC: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3690,8 +4169,21 @@ L_08B496BC: L_08B496C8: aot_gpr_31 = (0x08B496D0u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 243u, 0x08B496D0u, 0x089F75BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 655u, 0x089F75BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B496D0u) goto L_08B496D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B496D0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3702,8 +4194,21 @@ L_08B496D0: L_08B496D8: aot_gpr_31 = (0x08B496E0u); aot_gpr_4 = (0u | 256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 245u, 0x08B496E0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B496E0u) goto L_08B496E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B496E0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3715,8 +4220,21 @@ L_08B496E0: L_08B496EC: aot_gpr_31 = (0x08B496F4u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0168. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 247u, 0x08B496F4u, 0x08AA4C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0168_entry(rt, ctx, 120u, aot_mem); +#else + recomp_unit_0168_entry(rt, ctx, 120u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0168_entry, 168u, 120u, 0x08AA4C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B496F4u) goto L_08B496F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B496F4: { std::uint32_t aot_run_words[13]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(1088), aot_run_words); @@ -3736,8 +4254,8 @@ L_08B496F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1152)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B49730: @@ -3939,8 +4457,21 @@ L_08B498EC: } L_08B49908: aot_gpr_31 = (0x08B49910u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 268u, 0x08B49910u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49910u) goto L_08B49910; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49910: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -3999,8 +4530,21 @@ L_08B4996C: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B499ACu); aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 274u, 0x08B499ACu, 0x08B42854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 610u, 0x08B42854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B499ACu) goto L_08B499AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B499AC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(535)))))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -4015,8 +4559,21 @@ L_08B499AC: aot_fpr_14 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B499E0u); aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 275u, 0x08B499E0u, 0x08B42854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 610u, 0x08B42854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B499E0u) goto L_08B499E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B499E0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(535)))))); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -4029,8 +4586,21 @@ L_08B499E0: aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08B49A0Cu); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 276u, 0x08B49A0Cu, 0x08B42854u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 610u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 610u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 610u, 0x08B42854u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49A0Cu) goto L_08B49A0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49A0C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(535)))))); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -4138,8 +4708,8 @@ L_08B49AE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B49B24: @@ -4554,8 +5124,21 @@ L_08B49E74: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B49E84u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 313u, 0x08B49E84u, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49E84u) goto L_08B49E84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49E84: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4588,8 +5171,21 @@ L_08B49EBC: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B49ECCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 317u, 0x08B49ECCu, 0x0891ECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 550u, 0x0891ECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49ECCu) goto L_08B49ECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49ECC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4602,8 +5198,21 @@ L_08B49ED4: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B49EE4u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 319u, 0x08B49EE4u, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49EE4u) goto L_08B49EE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49EE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4644,8 +5253,21 @@ L_08B49F28: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B49F38u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 324u, 0x08B49F38u, 0x0891ECB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 550u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 550u, 0x0891ECB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49F38u) goto L_08B49F38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49F38: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4658,8 +5280,21 @@ L_08B49F40: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B49F50u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0070. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 326u, 0x08B49F50u, 0x0891E8B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0070_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0070_entry, 70u, 480u, 0x0891E8B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49F50u) goto L_08B49F50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49F50: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4702,19 +5337,58 @@ L_08B49F84: aot_fpr_12 = aot_fpr_14 - aot_fpr_12; aot_gpr_31 = (0x08B49FA4u); aot_fpr_13 = aot_fpr_13 - aot_fpr_15; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 331u, 0x08B49FA4u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49FA4u) goto L_08B49FA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49FA4: aot_gpr_31 = (0x08B49FACu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 332u, 0x08B49FACu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49FACu) goto L_08B49FAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49FAC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2256))); aot_gpr_31 = (0x08B49FB8u); ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 333u, 0x08B49FB8u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B49FB8u) goto L_08B49FB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B49FB8: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(2256), std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(2256))); @@ -4767,8 +5441,21 @@ L_08B4A02C: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B4A03Cu); aot_gpr_6 = (0u | 2000u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 339u, 0x08B4A03Cu, 0x0890B27Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 803u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 803u, 0x0890B27Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4A03Cu) goto L_08B4A03C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4A03C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(456))); aot_gpr_5 = (49152u << 16u); @@ -4811,8 +5498,21 @@ L_08B4A074: L_08B4A088: aot_gpr_31 = (0x08B4A090u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0064. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 345u, 0x08B4A090u, 0x08906DE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); +#else + recomp_unit_0064_entry(rt, ctx, 620u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0064_entry, 64u, 620u, 0x08906DE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4A090u) goto L_08B4A090; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4A090: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -4854,8 +5554,21 @@ L_08B4A0D8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B4A0E4u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0080. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 350u, 0x08B4A0E4u, 0x0894751Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0080_entry(rt, ctx, 668u, aot_mem); +#else + recomp_unit_0080_entry(rt, ctx, 668u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0080_entry, 80u, 668u, 0x0894751Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4A0E4u) goto L_08B4A0E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4A0E4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -4863,14 +5576,40 @@ L_08B4A0E4: aot_gpr_7 = (0u | 0u); aot_gpr_31 = (0x08B4A0FCu); ctx.gpr[8] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 351u, 0x08B4A0FCu, 0x08909A64u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 442u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 442u, 0x08909A64u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4A0FCu) goto L_08B4A0FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4A0FC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B4A108u); aot_gpr_5 = (0u | 1500u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0065. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 352u, 0x08B4A108u, 0x089092DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); +#else + recomp_unit_0065_entry(rt, ctx, 326u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0065_entry, 65u, 326u, 0x089092DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4A108u) goto L_08B4A108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4A108: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(1929)))))); aot_gpr_5 = (aot_gpr_4 << 5u); @@ -5057,8 +5796,8 @@ L_08B4A284: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4A2CC: @@ -5361,8 +6100,21 @@ L_08B4A5C0: { const float fs = aot_fpr_14; const float ft = aot_fpr_15; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_gpr_31 = (0x08B4A5E4u); ctx.fpr[22] = ctx.fpr[22] + aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 395u, 0x08B4A5E4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4A5E4u) goto L_08B4A5E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4A5E4: { const bool branch_taken = ctx.gpr[16] == ctx.gpr[2]; if (branch_taken) { @@ -5419,8 +6171,21 @@ L_08B4A648: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08B4A664u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 401u, 0x08B4A664u, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4A664u) goto L_08B4A664; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4A664: aot_gpr_4 = (0u | 2u); aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast(532), static_cast(aot_gpr_4)); @@ -5445,8 +6210,8 @@ L_08B4A678: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4A6AC: @@ -5987,8 +6752,8 @@ L_08B4AB28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), std::bit_cast(ctx.fpr[3])); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4AB3C: @@ -6201,8 +6966,21 @@ L_08B4AD88: } L_08B4AD98: aot_gpr_31 = (0x08B4ADA0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 477u, 0x08B4ADA0u, 0x088954BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4ADA0u) goto L_08B4ADA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4ADA0: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast(-25492), static_cast(aot_gpr_4)); @@ -6278,8 +7056,21 @@ L_08B4AE04: aot_gpr_7 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B4AE6Cu); ctx.gpr[8] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 484u, 0x08B4AE6Cu, 0x08B42DB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 660u, 0x08B42DB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AE6Cu) goto L_08B4AE6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AE6C: aot_gpr_4 = (ctx.gpr[30] + static_cast(32)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -6291,8 +7082,21 @@ L_08B4AE6C: aot_gpr_7 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B4AE94u); ctx.gpr[8] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 485u, 0x08B4AE94u, 0x08B42DB8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 660u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 660u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 660u, 0x08B42DB8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AE94u) goto L_08B4AE94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AE94: aot_gpr_4 = (ctx.gpr[30] + static_cast(36)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -6304,8 +7108,21 @@ L_08B4AE94: aot_gpr_7 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B4AEBCu); ctx.gpr[8] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 486u, 0x08B4AEBCu, 0x08B430D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 677u, 0x08B430D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AEBCu) goto L_08B4AEBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AEBC: aot_gpr_4 = (ctx.gpr[30] + static_cast(40)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -6317,8 +7134,21 @@ L_08B4AEBC: aot_gpr_7 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B4AEE4u); ctx.gpr[8] = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 487u, 0x08B4AEE4u, 0x08B430D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 677u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 677u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 677u, 0x08B430D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AEE4u) goto L_08B4AEE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AEE4: aot_gpr_4 = (ctx.gpr[30] + static_cast(12)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -6329,8 +7159,21 @@ L_08B4AEE4: aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08B4AF08u); aot_gpr_7 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 488u, 0x08B4AF08u, 0x08B43868u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 749u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 749u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 749u, 0x08B43868u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AF08u) goto L_08B4AF08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AF08: aot_gpr_4 = (ctx.gpr[30] + static_cast(16)); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); @@ -6341,8 +7184,21 @@ L_08B4AF08: aot_fpr_15 = std::bit_cast(std::bit_cast(ctx.fpr[26])); aot_gpr_31 = (0x08B4AF2Cu); aot_gpr_7 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 489u, 0x08B4AF2Cu, 0x08B43868u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 749u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 749u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 749u, 0x08B43868u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AF2Cu) goto L_08B4AF2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AF2C: ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); @@ -6400,16 +7256,42 @@ L_08B4AF8C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); aot_gpr_31 = (0x08B4AF98u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[22]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 497u, 0x08B4AF98u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AF98u) goto L_08B4AF98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AF98: aot_gpr_4 = (16128u << 16u); aot_fpr_12 = std::bit_cast(aot_gpr_4); { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B4AFACu); aot_fpr_12 = ctx.fpr[22] + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 498u, 0x08B4AFACu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AFACu) goto L_08B4AFAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AFAC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); ctx.fpr[20] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); @@ -6417,8 +7299,21 @@ L_08B4AFAC: aot_fpr_12 = aot_fpr_12 - ctx.fpr[22]; aot_gpr_31 = (0x08B4AFC4u); ctx.fpr[20] = ctx.fpr[20] - ctx.fpr[22]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 499u, 0x08B4AFC4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AFC4u) goto L_08B4AFC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AFC4: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(0u); @@ -6431,8 +7326,21 @@ L_08B4AFC4: L_08B4AFDC: aot_gpr_31 = (0x08B4AFE4u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 501u, 0x08B4AFE4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4AFE4u) goto L_08B4AFE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4AFE4: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[20])); @@ -6547,8 +7455,8 @@ L_08B4B098: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4B0E0: @@ -6574,8 +7482,21 @@ L_08B4B0E0: L_08B4B124: aot_gpr_31 = (0x08B4B12Cu); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(560))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 514u, 0x08B4B12Cu, 0x08B2090Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 107u, 0x08B2090Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4B12Cu) goto L_08B4B12C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4B12C: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(560))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -6887,8 +7808,21 @@ L_08B4B3B0: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_7 + static_cast(0)))))); aot_gpr_31 = (0x08B4B404u); aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(0)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 545u, 0x08B4B404u, 0x08B439ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 763u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 763u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 763u, 0x08B439ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4B404u) goto L_08B4B404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4B404: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -7390,8 +8324,21 @@ L_08B4B850: aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08B4B86Cu); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 595u, 0x08B4B86Cu, 0x08B41608u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4B86Cu) goto L_08B4B86C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4B86C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -7641,8 +8588,8 @@ L_08B4BAC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4BAF4: @@ -7673,8 +8620,21 @@ L_08B4BAF4: L_08B4BB5C: aot_gpr_31 = (0x08B4BB64u); aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(560))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 618u, 0x08B4BB64u, 0x08B2090Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 107u, 0x08B2090Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4BB64u) goto L_08B4BB64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4BB64: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(560))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -7747,8 +8707,21 @@ L_08B4BB70: ctx.fpr[26] = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B4BC1Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 620u, 0x08B4BC1Cu, 0x08B40DF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 267u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 267u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 267u, 0x08B40DF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4BC1Cu) goto L_08B4BC1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4BC1C: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_5 = (0u | 0u); @@ -7765,8 +8738,21 @@ L_08B4BC1C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[19]); aot_gpr_31 = (0x08B4BC58u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 621u, 0x08B4BC58u, 0x08976C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 607u, 0x08976C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4BC58u) goto L_08B4BC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4BC58: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(60)))))); if (aot_gpr_4 == ctx.gpr[17]) { @@ -7940,8 +8926,21 @@ L_08B4BDF4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B4BE10u); aot_fpr_12 = ctx.fpr[22] - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 636u, 0x08B4BE10u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4BE10u) goto L_08B4BE10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4BE10: ctx.fpr[20] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -8042,8 +9041,21 @@ L_08B4BEC0: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_31 = (0x08B4BF38u); aot_fpr_12 = aot_fpr_12 - aot_fpr_14; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 643u, 0x08B4BF38u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4BF38u) goto L_08B4BF38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4BF38: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); @@ -8055,8 +9067,21 @@ L_08B4BF38: L_08B4BF4C: aot_gpr_31 = (0x08B4BF54u); aot_fpr_12 = aot_fpr_12 - ctx.fpr[20]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0209->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0209_entry, 645u, 0x08B4BF54u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4BF54u) goto L_08B4BF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4BF54: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[24])) ? 0x00800000u : 0u); diff --git a/profiles/vcs/generated/generated_unit_0210.cpp b/profiles/vcs/generated/generated_unit_0210.cpp index 0c77b9b..994f11c 100644 --- a/profiles/vcs/generated/generated_unit_0210.cpp +++ b/profiles/vcs/generated/generated_unit_0210.cpp @@ -659,6 +659,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B4C000u; + if (local_delta_v813 >= 16276u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -720,8 +744,21 @@ L_08B4C054: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B4C070u); aot_gpr_5 = (aot_gpr_29 + static_cast(96)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 6u, 0x08B4C070u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C070u) goto L_08B4C070; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C070: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(100))); @@ -734,8 +771,21 @@ L_08B4C070: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B4C09Cu); aot_gpr_5 = (aot_gpr_29 + static_cast(112)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 7u, 0x08B4C09Cu, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C09Cu) goto L_08B4C09C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C09C: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); @@ -931,8 +981,8 @@ L_08B4C214: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4C254: @@ -959,8 +1009,21 @@ L_08B4C254: L_08B4C29C: aot_gpr_31 = (0x08B4C2A4u); aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(560))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0199. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 30u, 0x08B4C2A4u, 0x08B2090Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); +#else + recomp_unit_0199_entry(rt, ctx, 107u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0199_entry, 199u, 107u, 0x08B2090Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C2A4u) goto L_08B4C2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C2A4: aot_gpr_4 = (aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(560))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -1023,8 +1086,21 @@ L_08B4C2E4: aot_fpr_20 = std::bit_cast(aot_gpr_4); aot_gpr_31 = (0x08B4C320u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 33u, 0x08B4C320u, 0x08B40DF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 267u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 267u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 267u, 0x08B40DF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C320u) goto L_08B4C320; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C320: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_5 = (0u | 0u); @@ -1041,8 +1117,21 @@ L_08B4C320: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[3]); aot_gpr_31 = (0x08B4C35Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[2]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 34u, 0x08B4C35Cu, 0x08976C80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 607u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 607u, 0x08976C80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C35Cu) goto L_08B4C35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C35C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(48)))))); { const bool branch_taken = static_cast(aot_gpr_4) < 0; @@ -1091,8 +1180,21 @@ L_08B4C3AC: ctx.gpr[22] = (aot_gpr_29 + static_cast(64)); aot_gpr_31 = (0x08B4C3D4u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 39u, 0x08B4C3D4u, 0x08B40E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 274u, 0x08B40E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C3D4u) goto L_08B4C3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C3D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -1104,8 +1206,21 @@ L_08B4C3D4: ctx.gpr[23] = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08B4C3FCu); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 40u, 0x08B4C3FCu, 0x08B40E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 274u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 274u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 274u, 0x08B40E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C3FCu) goto L_08B4C3FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C3FC: { const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -1160,8 +1275,21 @@ L_08B4C3FC: ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[8]); aot_gpr_31 = (0x08B4C458u); aot_gpr_6 = (aot_gpr_6 + ctx.gpr[7]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 41u, 0x08B4C458u, 0x08B40EACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 275u, 0x08B40EACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C458u) goto L_08B4C458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C458: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1226,8 +1354,21 @@ L_08B4C4CC: L_08B4C4D8: aot_gpr_31 = (0x08B4C4E0u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 48u, 0x08B4C4E0u, 0x089DCB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 131u, 0x089DCB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C4E0u) goto L_08B4C4E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C4E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(-16928))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(384))); @@ -1262,8 +1403,21 @@ L_08B4C50C: L_08B4C51C: aot_gpr_31 = (0x08B4C524u); aot_gpr_4 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 52u, 0x08B4C524u, 0x089DCB28u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 131u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 131u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 131u, 0x089DCB28u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C524u) goto L_08B4C524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C524: { const bool branch_taken = 0u == 0u; ctx.gpr[21] = (0u | 0u); @@ -1419,8 +1573,21 @@ L_08B4C66C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B4C688u); aot_gpr_5 = (aot_gpr_29 + static_cast(128)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 65u, 0x08B4C688u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C688u) goto L_08B4C688; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C688: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(132))); @@ -1433,8 +1600,21 @@ L_08B4C688: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B4C6B4u); aot_gpr_5 = (aot_gpr_29 + static_cast(144)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 66u, 0x08B4C6B4u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C6B4u) goto L_08B4C6B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C6B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(144))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(148))); @@ -1589,8 +1769,8 @@ L_08B4C7E4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(272)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4C818: @@ -1678,8 +1858,21 @@ L_08B4C818: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B4C93Cu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 84u, 0x08B4C93Cu, 0x088B1AB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 225u, 0x088B1AB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C93Cu) goto L_08B4C93C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C93C: ctx.gpr[23] = (aot_gpr_29 + static_cast(64)); ctx.gpr[22] = (ctx.gpr[18] + static_cast(784)); @@ -1714,8 +1907,21 @@ L_08B4C94C: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B4C9A8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 86u, 0x08B4C9A8u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C9A8u) goto L_08B4C9A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C9A8: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); @@ -1729,8 +1935,21 @@ L_08B4C9B0: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(592), aot_gpr_4); aot_gpr_31 = (0x08B4C9C8u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 88u, 0x08B4C9C8u, 0x08B45714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 275u, 0x08B45714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4C9C8u) goto L_08B4C9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4C9C8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1764,8 +1983,21 @@ L_08B4C9D8: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B4CA1Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 91u, 0x08B4CA1Cu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CA1Cu) goto L_08B4CA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CA1C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1780,8 +2012,21 @@ L_08B4CA24: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(592), aot_gpr_4); aot_gpr_31 = (0x08B4CA3Cu); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 93u, 0x08B4CA3Cu, 0x08B45714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 275u, 0x08B45714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CA3Cu) goto L_08B4CA3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CA3C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1837,8 +2082,21 @@ L_08B4CA60: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B4CA9Cu); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0043. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 98u, 0x08B4CA9Cu, 0x088B1AB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0043_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0043_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0043_entry, 43u, 225u, 0x088B1AB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CA9Cu) goto L_08B4CA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CA9C: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -1870,8 +2128,21 @@ L_08B4CAA4: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B4CB00u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 100u, 0x08B4CB00u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CB00u) goto L_08B4CB00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CB00: if (ctx.gpr[2] == 0u) { aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(8))); @@ -1885,8 +2156,21 @@ L_08B4CB08: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(592), aot_gpr_4); aot_gpr_31 = (0x08B4CB20u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 102u, 0x08B4CB20u, 0x08B45714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 275u, 0x08B45714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CB20u) goto L_08B4CB20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CB20: if (ctx.gpr[2] == 0u) { aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -1919,8 +2203,21 @@ L_08B4CB30: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B4CB74u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 105u, 0x08B4CB74u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CB74u) goto L_08B4CB74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CB74: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -1935,8 +2232,21 @@ L_08B4CB7C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(592), aot_gpr_4); aot_gpr_31 = (0x08B4CB94u); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_4 + static_cast(86)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 107u, 0x08B4CB94u, 0x08B45714u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 275u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 275u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 275u, 0x08B45714u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CB94u) goto L_08B4CB94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CB94: if (ctx.gpr[2] == 0u) { aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); @@ -1992,8 +2302,21 @@ L_08B4CBE0: } L_08B4CBFC: aot_gpr_31 = (0x08B4CC04u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 115u, 0x08B4CC04u, 0x08B6033Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CC04u) goto L_08B4CC04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CC04: { const bool branch_taken = 0u == 0u; aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); @@ -2004,8 +2327,21 @@ L_08B4CC04: } L_08B4CC0C: aot_gpr_31 = (0x08B4CC14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 117u, 0x08B4CC14u, 0x089644F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 26u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CC14u) goto L_08B4CC14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CC14: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B4CC18; @@ -2180,8 +2516,8 @@ L_08B4CD1C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(304)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4CD78: @@ -2212,19 +2548,45 @@ L_08B4CDC4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-30704))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4CDDC: aot_gpr_31 = (0x08B4CDE4u); aot_gpr_4 = (aot_gpr_29 + static_cast(32)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 123u, 0x08B4CDE4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CDE4u) goto L_08B4CDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CDE4: aot_gpr_31 = (0x08B4CDECu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 124u, 0x08B4CDECu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CDECu) goto L_08B4CDEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CDEC: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2246,8 +2608,21 @@ L_08B4CDF4: } L_08B4CE10: aot_gpr_31 = (0x08B4CE18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 127u, 0x08B4CE18u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CE18u) goto L_08B4CE18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CE18: aot_gpr_4 = (ctx.gpr[2] + static_cast(16)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2283,8 +2658,21 @@ L_08B4CE18: } L_08B4CE4C: aot_gpr_31 = (0x08B4CE54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 129u, 0x08B4CE54u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CE54u) goto L_08B4CE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CE54: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(86)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(24))); @@ -2315,8 +2703,21 @@ L_08B4CE54: L_08B4CEAC: aot_gpr_31 = (0x08B4CEB4u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 131u, 0x08B4CEB4u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CEB4u) goto L_08B4CEB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CEB4: aot_fpr_20 = aot_fpr_20 + ctx.fpr[22]; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5332))); @@ -2327,8 +2728,21 @@ L_08B4CEB4: aot_fpr_12 = ctx.fpr[24] + aot_fpr_12; aot_gpr_31 = (0x08B4CED8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 132u, 0x08B4CED8u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CED8u) goto L_08B4CED8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CED8: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5332))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); @@ -2345,8 +2759,21 @@ L_08B4CED8: L_08B4CEF4: aot_gpr_31 = (0x08B4CEFCu); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 134u, 0x08B4CEFCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CEFCu) goto L_08B4CEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CEFC: aot_fpr_20 = aot_fpr_20 + ctx.fpr[22]; aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5332))); @@ -2357,8 +2784,21 @@ L_08B4CEFC: aot_fpr_12 = ctx.fpr[24] - aot_fpr_12; aot_gpr_31 = (0x08B4CF20u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_12)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 135u, 0x08B4CF20u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CF20u) goto L_08B4CF20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CF20: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5332))); aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); @@ -2369,8 +2809,21 @@ L_08B4CF20: goto L_08B4CF38; L_08B4CF38: aot_gpr_31 = (0x08B4CF40u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 137u, 0x08B4CF40u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4CF40u) goto L_08B4CF40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4CF40: aot_gpr_4 = (ctx.gpr[2] + static_cast(320)); { const std::uint32_t vfpu_address = aot_gpr_4 + static_cast(0); @@ -2485,8 +2938,21 @@ L_08B4D00C: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_31 = (0x08B4D024u); { const float fs = aot_fpr_12; const float ft = aot_fpr_13; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast(0x7FC00000u); else ctx.fpr[22] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 145u, 0x08B4D024u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D024u) goto L_08B4D024; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D024: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(76))); aot_gpr_5 = (16320u << 16u); @@ -2519,8 +2985,21 @@ L_08B4D05C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B4D080u); aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 148u, 0x08B4D080u, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D080u) goto L_08B4D080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D080: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(76))); aot_gpr_5 = (16320u << 16u); @@ -2550,8 +3029,21 @@ L_08B4D0B8: goto L_08B4D0C4; L_08B4D0C4: aot_gpr_31 = (0x08B4D0CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 152u, 0x08B4D0CCu, 0x089602C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D0CCu) goto L_08B4D0CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D0CC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -2562,8 +3054,21 @@ L_08B4D0CC: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D0F0u); ctx.gpr[9] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 153u, 0x08B4D0F0u, 0x08B43C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D0F0u) goto L_08B4D0F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D0F0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2591,8 +3096,21 @@ L_08B4D104: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D130u); ctx.gpr[9] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 156u, 0x08B4D130u, 0x08B43C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D130u) goto L_08B4D130; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D130: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2603,24 +3121,76 @@ L_08B4D130: L_08B4D138: aot_gpr_31 = (0x08B4D140u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 158u, 0x08B4D140u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D140u) goto L_08B4D140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D140: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (0x08B4D14Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 159u, 0x08B4D14Cu, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D14Cu) goto L_08B4D14C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D14C: aot_gpr_31 = (0x08B4D154u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 160u, 0x08B4D154u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D154u) goto L_08B4D154; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D154: aot_gpr_31 = (0x08B4D15Cu); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 161u, 0x08B4D15Cu, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D15Cu) goto L_08B4D15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D15C: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -2632,8 +3202,21 @@ L_08B4D15C: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D184u); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 162u, 0x08B4D184u, 0x08B43F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 817u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 817u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 817u, 0x08B43F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D184u) goto L_08B4D184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D184: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2665,8 +3248,21 @@ L_08B4D198: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B4D1D4u); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 165u, 0x08B4D1D4u, 0x08B43F68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 817u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 817u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 817u, 0x08B43F68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D1D4u) goto L_08B4D1D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D1D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2677,24 +3273,76 @@ L_08B4D1D4: L_08B4D1DC: aot_gpr_31 = (0x08B4D1E4u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 167u, 0x08B4D1E4u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D1E4u) goto L_08B4D1E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D1E4: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08B4D1F0u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 168u, 0x08B4D1F0u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D1F0u) goto L_08B4D1F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D1F0: aot_gpr_31 = (0x08B4D1F8u); ctx.fpr[22] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 169u, 0x08B4D1F8u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D1F8u) goto L_08B4D1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D1F8: aot_gpr_31 = (0x08B4D200u); ctx.fpr[24] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 170u, 0x08B4D200u, 0x08960240u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 22u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D200u) goto L_08B4D200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D200: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -2706,8 +3354,21 @@ L_08B4D200: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D228u); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 171u, 0x08B4D228u, 0x08B44098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 7u, 0x08B44098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D228u) goto L_08B4D228; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D228: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2739,8 +3400,21 @@ L_08B4D23C: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B4D278u); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 174u, 0x08B4D278u, 0x08B44098u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 7u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 7u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 7u, 0x08B44098u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D278u) goto L_08B4D278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D278: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2758,8 +3432,21 @@ L_08B4D280: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D2A4u); ctx.gpr[9] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 176u, 0x08B4D2A4u, 0x08B43C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D2A4u) goto L_08B4D2A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D2A4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2798,8 +3485,21 @@ L_08B4D2CC: L_08B4D2EC: aot_gpr_31 = (0x08B4D2F4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 180u, 0x08B4D2F4u, 0x08A0F37Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 561u, 0x08A0F37Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D2F4u) goto L_08B4D2F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D2F4: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -2931,8 +3631,21 @@ L_08B4D3EC: aot_gpr_6 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B4D408u); ctx.gpr[7] = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 195u, 0x08B4D408u, 0x08B445F8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 57u, 0x08B445F8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D408u) goto L_08B4D408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D408: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(aot_gpr_16 + static_cast(0), static_cast(0u)); @@ -2948,8 +3661,21 @@ L_08B4D410: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D428u); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 197u, 0x08B4D428u, 0x08B44844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 79u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 79u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 79u, 0x08B44844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D428u) goto L_08B4D428; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D428: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2967,8 +3693,21 @@ L_08B4D430: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D454u); ctx.gpr[9] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 199u, 0x08B4D454u, 0x08B43C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D454u) goto L_08B4D454; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D454: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -2979,14 +3718,40 @@ L_08B4D454: L_08B4D45C: aot_gpr_31 = (0x08B4D464u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 201u, 0x08B4D464u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D464u) goto L_08B4D464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D464: aot_fpr_20 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08B4D470u); aot_gpr_4 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 202u, 0x08B4D470u, 0x08960154u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 16u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D470u) goto L_08B4D470; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D470: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -2997,8 +3762,21 @@ L_08B4D470: ctx.gpr[8] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D494u); ctx.gpr[9] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 203u, 0x08B4D494u, 0x08B43C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D494u) goto L_08B4D494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D494: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3013,8 +3791,21 @@ L_08B4D49C: ctx.gpr[7] = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4D4B4u); ctx.gpr[8] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 205u, 0x08B4D4B4u, 0x08B44304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 37u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 37u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 37u, 0x08B44304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D4B4u) goto L_08B4D4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D4B4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3036,8 +3827,21 @@ L_08B4D4C4: L_08B4D4CC: aot_gpr_31 = (0x08B4D4D4u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 209u, 0x08B4D4D4u, 0x08B45348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 210u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 210u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 210u, 0x08B45348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D4D4u) goto L_08B4D4D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D4D4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3075,8 +3879,8 @@ L_08B4D4EC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4D51C: @@ -3159,8 +3963,21 @@ L_08B4D5EC: aot_gpr_5 = (ctx.gpr[30] | 0u); aot_gpr_31 = (0x08B4D64Cu); aot_gpr_6 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 217u, 0x08B4D64Cu, 0x08976A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D64Cu) goto L_08B4D64C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D64C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(33)))))); @@ -3186,8 +4003,21 @@ L_08B4D64C: { const float fs = aot_fpr_14; const float ft = aot_fpr_20; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_20 = std::bit_cast(0x7FC00000u); else aot_fpr_20 = fs * ft; } aot_gpr_31 = (0x08B4D6ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 218u, 0x08B4D6ACu, 0x08976A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D6ACu) goto L_08B4D6AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D6AC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(34)))))); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(35)))))); @@ -3209,8 +4039,21 @@ L_08B4D6AC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(180), std::bit_cast(ctx.fpr[30])); aot_gpr_31 = (0x08B4D6FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(176), std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 219u, 0x08B4D6FCu, 0x08976B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 592u, 0x08976B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D6FCu) goto L_08B4D6FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D6FC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(25)))))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3223,8 +4066,21 @@ L_08B4D6FC: aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); aot_gpr_31 = (0x08B4D728u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[26] = std::bit_cast(0x7FC00000u); else ctx.fpr[26] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 220u, 0x08B4D728u, 0x08976B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 592u, 0x08976B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D728u) goto L_08B4D728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D728: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(31)))))); aot_fpr_13 = std::bit_cast(aot_gpr_4); @@ -3236,8 +4092,21 @@ L_08B4D728: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); aot_gpr_31 = (0x08B4D750u); { const float fs = aot_fpr_12; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[28] = std::bit_cast(0x7FC00000u); else ctx.fpr[28] = fs * ft; } + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 221u, 0x08B4D750u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D750u) goto L_08B4D750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D750: { const float fs = aot_fpr_20; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast(0x7FC00000u); else ctx.fpr[15] = fs * ft; } aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -3255,8 +4124,21 @@ L_08B4D750: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B4D790u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_16); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 222u, 0x08B4D790u, 0x08976BF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 603u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D790u) goto L_08B4D790; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D790: { const float fs = ctx.fpr[24]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_14 = std::bit_cast(0x7FC00000u); else aot_fpr_14 = fs * ft; } aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -3351,8 +4233,21 @@ L_08B4D894: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B4D8A8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0208. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 229u, 0x08B4D8A8u, 0x08B46834u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0208_entry(rt, ctx, 509u, aot_mem); +#else + recomp_unit_0208_entry(rt, ctx, 509u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0208_entry, 208u, 509u, 0x08B46834u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D8A8u) goto L_08B4D8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D8A8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3413,8 +4308,21 @@ L_08B4D910: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B4D938u); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 234u, 0x08B4D938u, 0x08B43C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D938u) goto L_08B4D938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D938: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3441,8 +4349,21 @@ L_08B4D948: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B4D970u); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(196))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 237u, 0x08B4D970u, 0x08B43C48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 783u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D970u) goto L_08B4D970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D970: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3457,8 +4378,21 @@ L_08B4D978: ctx.gpr[19] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); aot_gpr_31 = (0x08B4D990u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 239u, 0x08B4D990u, 0x08976B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 592u, 0x08976B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D990u) goto L_08B4D990; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D990: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); @@ -3476,8 +4410,21 @@ L_08B4D990: aot_gpr_6 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B4D9D0u); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 240u, 0x08B4D9D0u, 0x08976A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4D9D0u) goto L_08B4D9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4D9D0: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32)))))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3501,8 +4448,21 @@ L_08B4D9D0: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B4DA28u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 241u, 0x08B4DA28u, 0x08976A00u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 588u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DA28u) goto L_08B4DA28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DA28: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(34)))))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3574,8 +4534,21 @@ L_08B4DAD4: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x08B4DAF0u); aot_fpr_12 = aot_fpr_14 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 245u, 0x08B4DAF0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DAF0u) goto L_08B4DAF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DAF0: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[28])) ? 0x00800000u : 0u); @@ -3595,8 +4568,21 @@ L_08B4DB10: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(160))); aot_gpr_31 = (0x08B4DB1Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 248u, 0x08B4DB1Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DB1Cu) goto L_08B4DB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DB1C: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < ctx.fpr[28])) ? 0x00800000u : 0u); @@ -3627,22 +4613,61 @@ L_08B4DB4C: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B4DB60u); aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[26])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 252u, 0x08B4DB60u, 0x08B4AB3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 459u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 459u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 459u, 0x08B4AB3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DB60u) goto L_08B4DB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DB60: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B4DB64; L_08B4DB64: aot_gpr_31 = (0x08B4DB6Cu); aot_fpr_12 = aot_fpr_20 - ctx.fpr[26]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 254u, 0x08B4DB6Cu, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DB6Cu) goto L_08B4DB6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DB6C: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B4DB78u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 255u, 0x08B4DB78u, 0x08B43C18u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 779u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 779u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 779u, 0x08B43C18u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DB78u) goto L_08B4DB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DB78: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20) ^ 0x80000000u); @@ -3786,8 +4811,21 @@ L_08B4DC60: L_08B4DC6C: aot_gpr_31 = (0x08B4DC74u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 270u, 0x08B4DC74u, 0x08B49730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 248u, 0x08B49730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DC74u) goto L_08B4DC74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DC74: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[18] + static_cast(535)))))); aot_fpr_12 = std::bit_cast(aot_gpr_4); @@ -3802,8 +4840,21 @@ L_08B4DC74: L_08B4DC8C: aot_gpr_31 = (0x08B4DC94u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0209. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 272u, 0x08B4DC94u, 0x08B49730u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0209_entry(rt, ctx, 248u, aot_mem); +#else + recomp_unit_0209_entry(rt, ctx, 248u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0209_entry, 209u, 248u, 0x08B49730u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DC94u) goto L_08B4DC94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DC94: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[0])); goto L_08B4DC98; @@ -3834,8 +4885,21 @@ L_08B4DCB4: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B4DCC0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 277u, 0x08B4DCC0u, 0x08A0F448u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 573u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 573u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 573u, 0x08A0F448u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DCC0u) goto L_08B4DCC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DCC0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3846,8 +4910,21 @@ L_08B4DCC0: L_08B4DCC8: aot_gpr_31 = (0x08B4DCD0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 279u, 0x08B4DCD0u, 0x08B0DD38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 449u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 449u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 449u, 0x08B0DD38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DCD0u) goto L_08B4DCD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DCD0: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[28])); goto L_08B4DCD4; @@ -3862,8 +4939,21 @@ L_08B4DCDC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(156), std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B4DCE8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0130. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 282u, 0x08B4DCE8u, 0x08A0F37Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0130_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0130_entry, 130u, 561u, 0x08A0F37Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DCE8u) goto L_08B4DCE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DCE8: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -3875,8 +4965,21 @@ L_08B4DCF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(156), std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B4DCFCu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 284u, 0x08B4DCFCu, 0x08B0DD38u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 449u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 449u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 449u, 0x08B0DD38u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DCFCu) goto L_08B4DCFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DCFC: ctx.fpr[24] = std::bit_cast(std::bit_cast(ctx.fpr[28])); goto L_08B4DD00; @@ -3886,8 +4989,21 @@ L_08B4DD00: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); aot_gpr_31 = (0x08B4DD14u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 286u, 0x08B4DD14u, 0x08976B48u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 592u, 0x08976B48u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DD14u) goto L_08B4DD14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DD14: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -3896,8 +5012,21 @@ L_08B4DD14: ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); aot_gpr_31 = (0x08B4DD30u); aot_fpr_12 = aot_fpr_14 - ctx.fpr[15]; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 287u, 0x08B4DD30u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DD30u) goto L_08B4DD30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DD30: ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < ctx.fpr[28])) ? 0x00800000u : 0u); @@ -3919,15 +5048,41 @@ L_08B4DD50: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5292))); aot_gpr_31 = (0x08B4DD64u); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5300))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 290u, 0x08B4DD64u, 0x08B43B88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 773u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 773u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 773u, 0x08B43B88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DD64u) goto L_08B4DD64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DD64: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(168))); ctx.fpr[22] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B4DD74u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(172))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 291u, 0x08B4DD74u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DD74u) goto L_08B4DD74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DD74: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[28])) ? 0x00800000u : 0u); @@ -3947,8 +5102,21 @@ L_08B4DD94: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(176))); aot_gpr_31 = (0x08B4DDA0u); aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(180))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 294u, 0x08B4DDA0u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DDA0u) goto L_08B4DDA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DDA0: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_4 = (16256u << 16u); @@ -3972,8 +5140,21 @@ L_08B4DDC8: aot_fpr_14 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5292))); aot_gpr_31 = (0x08B4DDDCu); ctx.fpr[15] = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5300))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 297u, 0x08B4DDDCu, 0x08B43B88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 773u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 773u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 773u, 0x08B43B88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4DDDCu) goto L_08B4DDDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4DDDC: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5384))); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] <= aot_fpr_12)) ? 0x00800000u : 0u); @@ -4149,8 +5330,8 @@ L_08B4DF2C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4DF74: @@ -4517,8 +5698,21 @@ L_08B4E2CC: aot_mem.aot_direct_store32(aot_gpr_16 + static_cast(56), std::bit_cast(aot_fpr_12)); aot_gpr_31 = (0x08B4E2F0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 348u, 0x08B4E2F0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4E2F0u) goto L_08B4E2F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4E2F0: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7676))); aot_gpr_4 = (16253u << 16u); @@ -4566,8 +5760,21 @@ L_08B4E364: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[22])); aot_gpr_31 = (0x08B4E370u); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 352u, 0x08B4E370u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4E370u) goto L_08B4E370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4E370: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[26])) ? 0x00800000u : 0u); @@ -4603,8 +5810,21 @@ L_08B4E3B4: aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1716))); aot_gpr_31 = (0x08B4E3C0u); aot_fpr_12 = aot_fpr_20 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 357u, 0x08B4E3C0u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4E3C0u) goto L_08B4E3C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4E3C0: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -4717,8 +5937,21 @@ L_08B4E49C: { const float fs = aot_fpr_13; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) aot_fpr_12 = std::bit_cast(0x7FC00000u); else aot_fpr_12 = fs * ft; } aot_gpr_31 = (0x08B4E4B4u); aot_fpr_12 = aot_fpr_14 + aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 370u, 0x08B4E4B4u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4E4B4u) goto L_08B4E4B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4E4B4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_16 + static_cast(617)))))); aot_gpr_4 = (aot_gpr_4 & 1u); @@ -4905,8 +6138,8 @@ L_08B4E5F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4E61C: @@ -4967,8 +6200,21 @@ L_08B4E6CC: aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_13)); aot_gpr_31 = (0x08B4E6DCu); aot_fpr_13 = std::bit_cast(std::bit_cast(aot_fpr_14)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 380u, 0x08B4E6DCu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4E6DCu) goto L_08B4E6DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4E6DC: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_12 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -4998,8 +6244,21 @@ L_08B4E714: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(1716))); aot_gpr_31 = (0x08B4E720u); aot_fpr_12 = aot_fpr_12 - aot_fpr_13; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0162. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 384u, 0x08B4E720u, 0x08A8F0B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); +#else + recomp_unit_0162_entry(rt, ctx, 580u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4E720u) goto L_08B4E720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4E720: aot_fpr_13 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_13 <= ctx.fpr[22])) ? 0x00800000u : 0u); @@ -5416,8 +6675,21 @@ L_08B4E84C: aot_gpr_5 = (aot_gpr_29 + static_cast(80)); aot_gpr_31 = (0x08B4EAA4u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 398u, 0x08B4EAA4u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4EAA4u) goto L_08B4EAA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4EAA4: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22]), std::bit_cast(ctx.fpr[22])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } @@ -5446,8 +6718,8 @@ L_08B4EAA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(176)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4EADC: @@ -5471,8 +6743,21 @@ L_08B4EADC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08B4EB2Cu); aot_fpr_12 = aot_fpr_14 - aot_fpr_12; + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 400u, 0x08B4EB2Cu, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4EB2Cu) goto L_08B4EB2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4EB2C: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_fpr_13 = std::bit_cast(0u); @@ -5606,8 +6891,21 @@ L_08B4EC5C: aot_gpr_4 = (ctx.gpr[17] + static_cast(384)); aot_gpr_31 = (0x08B4EC6Cu); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 414u, 0x08B4EC6Cu, 0x089DD29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 187u, 0x089DD29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4EC6Cu) goto L_08B4EC6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4EC6C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -5642,8 +6940,8 @@ L_08B4ECA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4ECC4: @@ -5807,14 +7105,40 @@ L_08B4EE18: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B4EE68u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 425u, 0x08B4EE68u, 0x08B41074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 285u, 0x08B41074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4EE68u) goto L_08B4EE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4EE68: ctx.fpr[26] = std::bit_cast(std::bit_cast(ctx.fpr[0])); aot_gpr_31 = (0x08B4EE74u); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 426u, 0x08B4EE74u, 0x08B41050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 284u, 0x08B41050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4EE74u) goto L_08B4EE74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4EE74: { const std::uint32_t aot_run_words[3]{std::bit_cast(ctx.fpr[26]), std::bit_cast(ctx.fpr[0]), std::bit_cast(aot_fpr_20)}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(144), aot_run_words); } @@ -5895,8 +7219,21 @@ L_08B4EE74: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B4EF14u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 427u, 0x08B4EF14u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4EF14u) goto L_08B4EF14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4EF14: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.fpr[26] = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(724))); @@ -5948,14 +7285,40 @@ L_08B4EF70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(708), std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B4EF7Cu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 434u, 0x08B4EF7Cu, 0x08B41074u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 285u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 285u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 285u, 0x08B41074u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4EF7Cu) goto L_08B4EF7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4EF7C: aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[24])); aot_gpr_31 = (0x08B4EF88u); aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 435u, 0x08B4EF88u, 0x08B41050u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 284u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 284u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 284u, 0x08B41050u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4EF88u) goto L_08B4EF88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4EF88: { const std::uint32_t aot_run_words[3]{std::bit_cast(aot_fpr_20), std::bit_cast(ctx.fpr[0]), std::bit_cast(ctx.fpr[22])}; aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(48), aot_run_words); } @@ -6093,8 +7456,21 @@ L_08B4EFF4: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B4F060u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 439u, 0x08B4F060u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F060u) goto L_08B4F060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F060: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6262,8 +7638,21 @@ L_08B4F068: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B4F148u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 441u, 0x08B4F148u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F148u) goto L_08B4F148; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F148: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6292,8 +7681,21 @@ L_08B4F158: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B4F190u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 444u, 0x08B4F190u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F190u) goto L_08B4F190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F190: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6464,8 +7866,21 @@ L_08B4F1DC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B4F26Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 447u, 0x08B4F26Cu, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F26Cu) goto L_08B4F26C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F26C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -6495,8 +7910,21 @@ L_08B4F280: ctx.gpr[11] = (0u | 0u); aot_gpr_31 = (0x08B4F2B8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0036. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 450u, 0x08B4F2B8u, 0x0889786Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); +#else + recomp_unit_0036_entry(rt, ctx, 698u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F2B8u) goto L_08B4F2B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F2B8: { const bool branch_taken = ctx.gpr[2] == 0u; ctx.fpr[22] = std::bit_cast(0u); @@ -6605,8 +8033,21 @@ L_08B4F360: aot_fpr_13 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_31 = (0x08B4F370u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 460u, 0x08B4F370u, 0x08964540u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 28u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F370u) goto L_08B4F370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F370: aot_fpr_20 = std::bit_cast(std::bit_cast(ctx.fpr[0])); ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((aot_fpr_20 < ctx.fpr[22])) ? 0x00800000u : 0u); @@ -7234,8 +8675,8 @@ L_08B4F850: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(800)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4F89C: @@ -7260,8 +8701,21 @@ L_08B4F8C8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(112), aot_run_words); } aot_gpr_31 = (0x08B4F8E0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast(7800))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0087. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 510u, 0x08B4F8E0u, 0x08960450u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); +#else + recomp_unit_0087_entry(rt, ctx, 48u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F8E0u) goto L_08B4F8E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F8E0: { const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast(0); std::uint32_t vfpu_words[4]{}; @@ -7328,8 +8782,21 @@ L_08B4F914: ctx.gpr[10] = (0u | 0u); aot_gpr_31 = (0x08B4F960u); ctx.gpr[11] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0093. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 515u, 0x08B4F960u, 0x0897A644u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0093_entry(rt, ctx, 327u, aot_mem); +#else + recomp_unit_0093_entry(rt, ctx, 327u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0093_entry, 93u, 327u, 0x0897A644u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F960u) goto L_08B4F960; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F960: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7367,8 +8834,21 @@ L_08B4F994: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B4F9C8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0037. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 518u, 0x08B4F9C8u, 0x0889A004u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); +#else + recomp_unit_0037_entry(rt, ctx, 365u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4F9C8u) goto L_08B4F9C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4F9C8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(176)))))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -7402,8 +8882,21 @@ L_08B4F9F4: ctx.gpr[18] = (0u | 0u); aot_gpr_31 = (0x08B4FA00u); aot_gpr_4 = (0u | 1920u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 523u, 0x08B4FA00u, 0x08AFF2C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 732u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FA00u) goto L_08B4FA00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FA00: ctx.gpr[19] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[19] == 0u; @@ -7419,8 +8912,21 @@ L_08B4FA0C: aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B4FA20u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0012. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 525u, 0x08B4FA20u, 0x08834A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); +#else + recomp_unit_0012_entry(rt, ctx, 92u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FA20u) goto L_08B4FA20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FA20: ctx.gpr[18] = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[17] | 0u); @@ -7430,8 +8936,21 @@ L_08B4FA28: aot_gpr_4 = (ctx.gpr[17] + static_cast(384)); aot_gpr_31 = (0x08B4FA38u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0118. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 527u, 0x08B4FA38u, 0x089DD29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0118_entry(rt, ctx, 187u, aot_mem); +#else + recomp_unit_0118_entry(rt, ctx, 187u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0118_entry, 118u, 187u, 0x089DD29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FA38u) goto L_08B4FA38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FA38: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(96), aot_run_words); @@ -7459,8 +8978,21 @@ L_08B4FA38: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B4FA6Cu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0207. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 528u, 0x08B4FA6Cu, 0x08B4196Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0207_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FA6Cu) goto L_08B4FA6C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FA6C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7700,8 +9232,21 @@ L_08B4FB28: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), 0u); aot_gpr_31 = (0x08B4FC8Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 535u, 0x08B4FC8Cu, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FC8Cu) goto L_08B4FC8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FC8C: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7727,8 +9272,21 @@ L_08B4FC98: ctx.gpr[11] = (0u | 1u); aot_gpr_31 = (0x08B4FCD0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 538u, 0x08B4FCD0u, 0x08891DD4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 287u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FCD0u) goto L_08B4FCD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FCD0: { const bool branch_taken = ctx.gpr[2] == 0u; if (branch_taken) { @@ -7809,8 +9367,21 @@ L_08B4FD68: L_08B4FD70: aot_gpr_31 = (0x08B4FD78u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0179. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 548u, 0x08B4FD78u, 0x08AD0AE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); +#else + recomp_unit_0179_entry(rt, ctx, 160u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FD78u) goto L_08B4FD78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FD78: aot_fpr_12 = aot_fpr_20 + ctx.fpr[0]; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), std::bit_cast(aot_fpr_12)); @@ -7855,8 +9426,21 @@ L_08B4FD78: aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); } aot_gpr_31 = (0x08B4FDD0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 549u, 0x08B4FDD0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FDD0u) goto L_08B4FDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FDD0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(72))); aot_gpr_5 = (0u + static_cast(-497)); @@ -7865,8 +9449,21 @@ L_08B4FDD0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(72), aot_gpr_4); aot_gpr_31 = (0x08B4FDECu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0035. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 550u, 0x08B4FDECu, 0x08891A2Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); +#else + recomp_unit_0035_entry(rt, ctx, 224u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FDECu) goto L_08B4FDEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FDEC: aot_gpr_4 = (static_cast(aot_gpr_16) < 195 ? 1u : 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7893,8 +9490,21 @@ L_08B4FE04: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_gpr_31 = (0x08B4FE24u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5456), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 553u, 0x08B4FE24u, 0x08B0E0BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 499u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 499u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 499u, 0x08B0E0BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FE24u) goto L_08B4FE24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FE24: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7918,8 +9528,21 @@ L_08B4FE34: aot_gpr_5 = (aot_gpr_5 + static_cast(1)); aot_gpr_31 = (0x08B4FE54u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5452), aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 556u, 0x08B4FE54u, 0x08B0E08Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 496u, 0x08B0E08Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FE54u) goto L_08B4FE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FE54: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7941,8 +9564,21 @@ L_08B4FE5C: L_08B4FE74: aot_gpr_31 = (0x08B4FE7Cu); aot_gpr_4 = (0u | 408u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 559u, 0x08B4FE7Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FE7Cu) goto L_08B4FE7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FE7C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7954,8 +9590,21 @@ L_08B4FE7C: L_08B4FE88: aot_gpr_31 = (0x08B4FE90u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 561u, 0x08B4FE90u, 0x089F75BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 655u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 655u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 655u, 0x089F75BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FE90u) goto L_08B4FE90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FE90: { const bool branch_taken = 0u == 0u; ctx.gpr[2] = (0u | 1u); @@ -7979,28 +9628,28 @@ L_08B4FE9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(336)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4FEBC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4FEC4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4FECC: ctx.gpr[2] = (2229u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-308)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4FED8: @@ -8012,8 +9661,8 @@ L_08B4FEE8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4FEF4: @@ -8034,8 +9683,21 @@ L_08B4FF14: L_08B4FF1C: aot_gpr_31 = (0x08B4FF24u); ctx.gpr[17] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 572u, 0x08B4FF24u, 0x08AC5950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 463u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FF24u) goto L_08B4FF24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FF24: if (ctx.gpr[2] == aot_gpr_16) { ctx.gpr[17] = (0u | 1u); @@ -8044,8 +9706,21 @@ L_08B4FF24: goto L_08B4FF2C; L_08B4FF2C: aot_gpr_31 = (0x08B4FF34u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0095. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 574u, 0x08B4FF34u, 0x08980688u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); +#else + recomp_unit_0095_entry(rt, ctx, 115u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FF34u) goto L_08B4FF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FF34: aot_gpr_4 = (ctx.gpr[2] ^ aot_gpr_16); aot_gpr_4 = (aot_gpr_4 < static_cast(1) ? 1u : 0u); @@ -8084,8 +9759,8 @@ L_08B4FF5C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B4FF78: @@ -8094,8 +9769,21 @@ L_08B4FF78: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(8), aot_run_words); } aot_gpr_31 = (0x08B4FF90u); aot_gpr_16 = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0210->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0210_entry, 581u, 0x08B4FF90u, 0x08AC59D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B4FF90u) goto L_08B4FF90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B4FF90: aot_gpr_4 = (2235u << 16u); aot_gpr_4 = (aot_gpr_4 + static_cast(-29984)); diff --git a/profiles/vcs/generated/generated_unit_0211.cpp b/profiles/vcs/generated/generated_unit_0211.cpp index 0eb1c1b..cc5fb87 100644 --- a/profiles/vcs/generated/generated_unit_0211.cpp +++ b/profiles/vcs/generated/generated_unit_0211.cpp @@ -990,6 +990,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B50000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1024,8 +1048,21 @@ L_08B50024: L_08B5002C: aot_gpr_31 = (0x08B50034u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 4u, 0x08B50034u, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50034u) goto L_08B50034; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50034: aot_gpr_4 = (aot_gpr_2 ^ 1u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(248), aot_gpr_4); @@ -1113,8 +1150,8 @@ L_08B50110: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50148: @@ -1140,8 +1177,21 @@ L_08B50164: aot_gpr_4 = (0u | 0u); aot_gpr_31 = (0x08B50188u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0023. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 12u, 0x08B50188u, 0x08861824u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); +#else + recomp_unit_0023_entry(rt, ctx, 230u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0023_entry, 23u, 230u, 0x08861824u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50188u) goto L_08B50188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50188: ctx.gpr[7] = (ctx.gpr[17] + static_cast(204)); { const bool branch_taken = ctx.gpr[7] == 0u; @@ -1201,8 +1251,21 @@ L_08B501D4: L_08B501D8: aot_gpr_31 = (0x08B501E0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 22u, 0x08B501E0u, 0x08AC5AE8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 486u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 486u, 0x08AC5AE8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B501E0u) goto L_08B501E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B501E0: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1225,8 +1288,8 @@ L_08B501F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50208: @@ -1250,8 +1313,21 @@ L_08B50234: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B50240u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 27u, 0x08B50240u, 0x08AC5D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 516u, 0x08AC5D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50240u) goto L_08B50240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50240: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1267,8 +1343,21 @@ L_08B5024C: L_08B50254: aot_gpr_31 = (0x08B5025Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 30u, 0x08B5025Cu, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5025Cu) goto L_08B5025C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5025C: { const bool branch_taken = aot_gpr_2 == ctx.gpr[19]; if (branch_taken) { @@ -1290,8 +1379,21 @@ L_08B50274: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[19]); aot_gpr_31 = (0x08B50280u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 33u, 0x08B50280u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50280u) goto L_08B50280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50280: aot_gpr_31 = (0x08B50288u); aot_gpr_4 = (ctx.gpr[28] + static_cast(5592)); @@ -1300,8 +1402,21 @@ L_08B50280: L_08B50288: aot_gpr_31 = (0x08B50290u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 35u, 0x08B50290u, 0x0882E950u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 601u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 601u, 0x0882E950u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50290u) goto L_08B50290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50290: aot_gpr_4 = (0u | 6u); { const bool branch_taken = ctx.gpr[16] != aot_gpr_4; @@ -1315,8 +1430,21 @@ L_08B5029C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(52))); aot_gpr_31 = (0x08B502A8u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 37u, 0x08B502A8u, 0x08AC5D44u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 516u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 516u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 516u, 0x08AC5D44u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B502A8u) goto L_08B502A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B502A8: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1328,8 +1456,8 @@ L_08B502A8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B502C4: @@ -1351,8 +1479,21 @@ L_08B502DC: L_08B502E4: aot_gpr_31 = (0x08B502ECu); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 41u, 0x08B502ECu, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B502ECu) goto L_08B502EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B502EC: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -1364,8 +1505,21 @@ L_08B502EC: L_08B502F8: aot_gpr_31 = (0x08B50300u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 43u, 0x08B50300u, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50300u) goto L_08B50300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50300: aot_gpr_31 = (0x08B50308u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -1379,8 +1533,8 @@ L_08B50310: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50320: @@ -1400,8 +1554,8 @@ L_08B50340: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5034C: @@ -1410,8 +1564,21 @@ L_08B5034C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B50360u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 49u, 0x08B50360u, 0x08AC646Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 605u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 605u, 0x08AC646Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50360u) goto L_08B50360; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50360: if (aot_gpr_2 != 0u) { aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(16))); @@ -1441,26 +1608,26 @@ L_08B50390: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B503A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B503A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B503B0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B503B8: @@ -1469,8 +1636,21 @@ L_08B503B8: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(0), aot_run_words); } aot_gpr_31 = (0x08B503D4u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 57u, 0x08B503D4u, 0x08AC62A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 585u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 585u, 0x08AC62A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B503D4u) goto L_08B503D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B503D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(7688))); ctx.gpr[17] = (2237u << 16u); @@ -1486,8 +1666,21 @@ L_08B503E8: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), ctx.gpr[18]); aot_gpr_31 = (0x08B503F4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 59u, 0x08B503F4u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B503F4u) goto L_08B503F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B503F4: aot_gpr_31 = (0x08B503FCu); aot_gpr_4 = (ctx.gpr[28] + static_cast(5592)); @@ -1496,8 +1689,21 @@ L_08B503F4: L_08B503FC: aot_gpr_31 = (0x08B50404u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 61u, 0x08B50404u, 0x0882E9C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 613u, 0x0882E9C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50404u) goto L_08B50404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50404: { const bool branch_taken = aot_gpr_2 != ctx.gpr[18]; if (branch_taken) { @@ -1508,8 +1714,21 @@ L_08B50404: L_08B5040C: aot_gpr_31 = (0x08B50414u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(253), static_cast(0u)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 63u, 0x08B50414u, 0x08AABB88u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 412u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 412u, 0x08AABB88u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50414u) goto L_08B50414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50414: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1520,8 +1739,21 @@ L_08B50414: L_08B5041C: aot_gpr_31 = (0x08B50424u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 65u, 0x08B50424u, 0x08A0638Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 561u, 0x08A0638Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50424u) goto L_08B50424; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50424: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1557,8 +1789,21 @@ L_08B50444: L_08B50464: aot_gpr_31 = (0x08B5046Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 71u, 0x08B5046Cu, 0x08AC6170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 563u, 0x08AC6170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5046Cu) goto L_08B5046C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5046C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -1627,8 +1872,21 @@ L_08B504D4: L_08B504E0: aot_gpr_31 = (0x08B504E8u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 84u, 0x08B504E8u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B504E8u) goto L_08B504E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B504E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1647,14 +1905,40 @@ L_08B504FC: goto L_08B50500; L_08B50500: aot_gpr_31 = (0x08B50508u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 88u, 0x08B50508u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50508u) goto L_08B50508; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50508: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B50514u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 89u, 0x08B50514u, 0x08A06798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 627u, 0x08A06798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50514u) goto L_08B50514; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50514: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1673,16 +1957,42 @@ L_08B50528: goto L_08B5052C; L_08B5052C: aot_gpr_31 = (0x08B50534u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 93u, 0x08B50534u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50534u) goto L_08B50534; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50534: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B50548u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 94u, 0x08B50548u, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50548u) goto L_08B50548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50548: aot_gpr_4 = (0u | 1u); aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(253), static_cast(aot_gpr_4)); @@ -1697,14 +2007,14 @@ L_08B50550: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50568: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50570: @@ -1761,8 +2071,21 @@ L_08B505D8: aot_gpr_4 = (aot_gpr_4 + aot_gpr_6); aot_gpr_31 = (0x08B505F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 102u, 0x08B505F8u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B505F8u) goto L_08B505F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B505F8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(12), aot_run_words); @@ -2013,8 +2336,8 @@ L_08B507C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50800: @@ -2104,8 +2427,21 @@ L_08B508D8: goto L_08B508E0; L_08B508E0: aot_gpr_31 = (0x08B508E8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 139u, 0x08B508E8u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B508E8u) goto L_08B508E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B508E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -2130,8 +2466,21 @@ L_08B5090C: goto L_08B50914; L_08B50914: aot_gpr_31 = (0x08B5091Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 143u, 0x08B5091Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5091Cu) goto L_08B5091C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5091C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(200))); @@ -2226,8 +2575,8 @@ L_08B509E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50A0C: @@ -2251,8 +2600,21 @@ L_08B50A24: goto L_08B50A30; L_08B50A30: aot_gpr_31 = (0x08B50A38u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 155u, 0x08B50A38u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50A38u) goto L_08B50A38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50A38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08B50A3C; @@ -2266,8 +2628,8 @@ L_08B50A44: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50A54: @@ -2297,8 +2659,21 @@ L_08B50A90: goto L_08B50A94; L_08B50A94: aot_gpr_31 = (0x08B50A9Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 162u, 0x08B50A9Cu, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50A9Cu) goto L_08B50A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50A9C: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(248), aot_gpr_2); { const bool branch_taken = ctx.gpr[19] != 0u; @@ -2325,8 +2700,21 @@ L_08B50AB8: L_08B50ABC: aot_gpr_31 = (0x08B50AC4u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 167u, 0x08B50AC4u, 0x089C70D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 713u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 713u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 713u, 0x089C70D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50AC4u) goto L_08B50AC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50AC4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast(252), static_cast(0u)); @@ -2351,8 +2739,21 @@ L_08B50ADC: goto L_08B50AE0; L_08B50AE0: aot_gpr_31 = (0x08B50AE8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 172u, 0x08B50AE8u, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50AE8u) goto L_08B50AE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50AE8: { const bool branch_taken = aot_gpr_2 != ctx.gpr[18]; if (branch_taken) { @@ -2378,8 +2779,21 @@ L_08B50B04: L_08B50B08: aot_gpr_31 = (0x08B50B10u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 177u, 0x08B50B10u, 0x089C70D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 713u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 713u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 713u, 0x089C70D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50B10u) goto L_08B50B10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50B10: aot_gpr_31 = (0x08B50B18u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -2398,8 +2812,21 @@ L_08B50B24: aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(7688), aot_gpr_4); aot_gpr_31 = (0x08B50B34u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 180u, 0x08B50B34u, 0x0882D794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 286u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 286u, 0x0882D794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50B34u) goto L_08B50B34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50B34: aot_gpr_31 = (0x08B50B3Cu); aot_gpr_4 = (ctx.gpr[28] + static_cast(5592)); @@ -2411,13 +2838,39 @@ L_08B50B3C: L_08B50B40: aot_gpr_31 = (0x08B50B48u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0010. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 183u, 0x08B50B48u, 0x0882E880u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0010_entry(rt, ctx, 592u, aot_mem); +#else + recomp_unit_0010_entry(rt, ctx, 592u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0010_entry, 10u, 592u, 0x0882E880u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50B48u) goto L_08B50B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50B48: aot_gpr_31 = (0x08B50B50u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0183. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 184u, 0x08B50B50u, 0x08AE2438u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0183_entry(rt, ctx, 623u, aot_mem); +#else + recomp_unit_0183_entry(rt, ctx, 623u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0183_entry, 183u, 623u, 0x08AE2438u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50B50u) goto L_08B50B50; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50B50: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -2429,8 +2882,8 @@ L_08B50B50: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50B6C: @@ -2440,8 +2893,21 @@ L_08B50B6C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B50B84u); aot_gpr_4 = (ctx.gpr[28] + static_cast(7768)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 186u, 0x08B50B84u, 0x08A0638Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 561u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 561u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 561u, 0x08A0638Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50B84u) goto L_08B50B84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50B84: aot_gpr_4 = (0u | 20u); aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(256), aot_gpr_4); @@ -2449,8 +2915,8 @@ L_08B50B84: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50B9C: @@ -2533,8 +2999,8 @@ L_08B50C60: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50C6C: @@ -2617,8 +3083,8 @@ L_08B50D30: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50D3C: @@ -2711,8 +3177,21 @@ L_08B50DFC: L_08B50E04: aot_gpr_31 = (0x08B50E0Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 215u, 0x08B50E0Cu, 0x0898BD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 998u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 998u, 0x0898BD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50E0Cu) goto L_08B50E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50E0C: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2756,8 +3235,21 @@ L_08B50E58: L_08B50E60: aot_gpr_31 = (0x08B50E68u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0097. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 220u, 0x08B50E68u, 0x0898BCCCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); +#else + recomp_unit_0097_entry(rt, ctx, 988u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0097_entry, 97u, 988u, 0x0898BCCCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50E68u) goto L_08B50E68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50E68: { const bool branch_taken = aot_gpr_2 == 0u; if (branch_taken) { @@ -2788,8 +3280,8 @@ L_08B50E84: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B50E9C: @@ -2920,8 +3412,21 @@ L_08B50FD4: goto L_08B50FE8; L_08B50FE8: aot_gpr_31 = (0x08B50FF0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 238u, 0x08B50FF0u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B50FF0u) goto L_08B50FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B50FF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -2965,8 +3470,21 @@ L_08B51028: } L_08B51044: aot_gpr_31 = (0x08B5104Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 245u, 0x08B5104Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5104Cu) goto L_08B5104C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5104C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08B51050; @@ -2979,18 +3497,57 @@ L_08B51058: aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B51064u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 248u, 0x08B51064u, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51064u) goto L_08B51064; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51064: aot_gpr_31 = (0x08B5106Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 249u, 0x08B5106Cu, 0x08B0C748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 96u, 0x08B0C748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5106Cu) goto L_08B5106C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5106C: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B51078u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 250u, 0x08B51078u, 0x08AFD8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 283u, 0x08AFD8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51078u) goto L_08B51078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51078: aot_gpr_4 = (aot_gpr_29 | 0u); aot_fpr_12 = std::bit_cast(std::bit_cast(aot_fpr_20)); @@ -3007,8 +3564,21 @@ L_08B51090: ctx.gpr[7] = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B510A8u); ctx.gpr[8] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 252u, 0x08B510A8u, 0x08B0C660u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 90u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 90u, 0x08B0C660u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B510A8u) goto L_08B510A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B510A8: ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(192))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(208))); @@ -3471,8 +4041,8 @@ L_08B51468: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(240)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B514A8: @@ -3511,8 +4081,8 @@ L_08B514E4: aot_fpr_12 = static_cast(static_cast(std::bit_cast(aot_fpr_12))); jump_target = aot_gpr_31; { const float fs = ctx.fpr[0]; const float ft = aot_fpr_12; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[0] = std::bit_cast(0x7FC00000u); else ctx.fpr[0] = fs * ft; } - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B51514: @@ -3520,19 +4090,45 @@ L_08B51514: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B51524u); aot_fpr_12 = std::bit_cast(aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(240))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 318u, 0x08B51524u, 0x08B0C520u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 68u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 68u, 0x08B0C520u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51524u) goto L_08B51524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51524: aot_gpr_31 = (0x08B5152Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 319u, 0x08B5152Cu, 0x08B0C510u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 66u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 66u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 66u, 0x08B0C510u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5152Cu) goto L_08B5152C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5152C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B51538: @@ -3544,14 +4140,14 @@ L_08B51538: } L_08B51540: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B51548: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B51550: @@ -3570,8 +4166,21 @@ L_08B51550: } L_08B51570: aot_gpr_31 = (0x08B51578u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 325u, 0x08B51578u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51578u) goto L_08B51578; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51578: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(208))); ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); @@ -3676,8 +4285,8 @@ L_08B51638: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5164C: @@ -3731,8 +4340,21 @@ L_08B5169C: } L_08B516A8: aot_gpr_31 = (0x08B516B0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 344u, 0x08B516B0u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B516B0u) goto L_08B516B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B516B0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08B516B4; @@ -3757,8 +4379,21 @@ L_08B516C4: goto L_08B516D0; L_08B516D0: aot_gpr_31 = (0x08B516D8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 349u, 0x08B516D8u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B516D8u) goto L_08B516D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B516D8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(208))); @@ -3820,8 +4455,21 @@ L_08B51754: L_08B5175C: aot_gpr_31 = (0x08B51764u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 358u, 0x08B51764u, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51764u) goto L_08B51764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51764: aot_gpr_4 = (0u | 1u); { const bool branch_taken = aot_gpr_2 != aot_gpr_4; @@ -3841,8 +4489,21 @@ L_08B51770: } L_08B5177C: aot_gpr_31 = (0x08B51784u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 361u, 0x08B51784u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51784u) goto L_08B51784; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51784: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_4 = (aot_gpr_5 | 0u); @@ -3855,23 +4516,62 @@ L_08B5178C: L_08B51794: aot_gpr_31 = (0x08B5179Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 364u, 0x08B5179Cu, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5179Cu) goto L_08B5179C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5179C: ctx.gpr[16] = (ctx.gpr[28] + static_cast(7768)); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B517ACu); aot_gpr_5 = (0u | 111u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 365u, 0x08B517ACu, 0x08A06798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 627u, 0x08A06798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B517ACu) goto L_08B517AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B517AC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_5 = (0u | 111u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B517C0u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 366u, 0x08B517C0u, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B517C0u) goto L_08B517C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B517C0: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -3881,8 +4581,8 @@ L_08B517C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B517D4: @@ -3907,8 +4607,21 @@ L_08B517FC: goto L_08B51800; L_08B51800: aot_gpr_31 = (0x08B51808u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 371u, 0x08B51808u, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51808u) goto L_08B51808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51808: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(248))); { const bool branch_taken = aot_gpr_2 == aot_gpr_4; @@ -3934,8 +4647,21 @@ L_08B51828: goto L_08B5182C; L_08B5182C: aot_gpr_31 = (0x08B51834u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 376u, 0x08B51834u, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51834u) goto L_08B51834; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51834: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(248), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); @@ -3954,8 +4680,21 @@ L_08B5184C: goto L_08B51850; L_08B51850: aot_gpr_31 = (0x08B51858u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 380u, 0x08B51858u, 0x089C70C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 712u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 712u, 0x089C70C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51858u) goto L_08B51858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51858: aot_gpr_5 = (0u | 1u); { const bool branch_taken = aot_gpr_2 == aot_gpr_5; @@ -3975,8 +4714,21 @@ L_08B51864: } L_08B5186C: aot_gpr_31 = (0x08B51874u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 383u, 0x08B51874u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51874u) goto L_08B51874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51874: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08B51878; @@ -3988,8 +4740,21 @@ L_08B51878: L_08B51880: aot_gpr_31 = (0x08B51888u); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 386u, 0x08B51888u, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51888u) goto L_08B51888; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51888: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4007,14 +4772,40 @@ L_08B5189C: goto L_08B518A0; L_08B518A0: aot_gpr_31 = (0x08B518A8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 390u, 0x08B518A8u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B518A8u) goto L_08B518A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B518A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B518B4u); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 391u, 0x08B518B4u, 0x08A06798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 627u, 0x08A06798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B518B4u) goto L_08B518B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B518B4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4033,16 +4824,42 @@ L_08B518C8: goto L_08B518CC; L_08B518CC: aot_gpr_31 = (0x08B518D4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 395u, 0x08B518D4u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B518D4u) goto L_08B518D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B518D4: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B518E8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 396u, 0x08B518E8u, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B518E8u) goto L_08B518E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B518E8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4059,8 +4876,21 @@ L_08B518F0: } L_08B518F8: aot_gpr_31 = (0x08B51900u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 399u, 0x08B51900u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51900u) goto L_08B51900; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51900: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08B51904; @@ -4086,8 +4916,21 @@ L_08B51914: } L_08B51920: aot_gpr_31 = (0x08B51928u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 404u, 0x08B51928u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51928u) goto L_08B51928; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51928: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08B5192C; @@ -4120,8 +4963,21 @@ L_08B5195C: goto L_08B51968; L_08B51968: aot_gpr_31 = (0x08B51970u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 409u, 0x08B51970u, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51970u) goto L_08B51970; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51970: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(216))); @@ -4139,22 +4995,61 @@ L_08B51978: L_08B51994: aot_gpr_31 = (0x08B5199Cu); aot_gpr_4 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0169. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 412u, 0x08B5199Cu, 0x08AABAF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); +#else + recomp_unit_0169_entry(rt, ctx, 404u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0169_entry, 169u, 404u, 0x08AABAF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5199Cu) goto L_08B5199C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5199C: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B519A8u); aot_gpr_5 = (0u | 111u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 413u, 0x08B519A8u, 0x08A06798u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 627u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 627u, 0x08A06798u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B519A8u) goto L_08B519A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B519A8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_5 = (0u | 111u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B519BCu); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 414u, 0x08B519BCu, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B519BCu) goto L_08B519BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B519BC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4164,8 +5059,8 @@ L_08B519BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B519D0: @@ -4308,8 +5203,8 @@ L_08B51A94: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B51AA4: @@ -4348,23 +5243,49 @@ L_08B51AD4: L_08B51ADC: aot_gpr_31 = (0x08B51AE4u); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 442u, 0x08B51AE4u, 0x089C6F60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 679u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 679u, 0x089C6F60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51AE4u) goto L_08B51AE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51AE4: aot_gpr_5 = (aot_gpr_2 & 255u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_6 = (0u | 1u); aot_gpr_31 = (0x08B51AF8u); ctx.gpr[7] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 443u, 0x08B51AF8u, 0x08A06360u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 559u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 559u, 0x08A06360u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51AF8u) goto L_08B51AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51AF8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B51B08: @@ -4403,8 +5324,21 @@ L_08B51B08: L_08B51B90: aot_gpr_31 = (0x08B51B98u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0176. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 446u, 0x08B51B98u, 0x08AC6170u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0176_entry(rt, ctx, 563u, aot_mem); +#else + recomp_unit_0176_entry(rt, ctx, 563u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0176_entry, 176u, 563u, 0x08AC6170u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51B98u) goto L_08B51B98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51B98: ctx.gpr[23] = (0u | 20u); { const bool branch_taken = aot_gpr_2 == 0u; @@ -4433,8 +5367,21 @@ L_08B51BA4: aot_gpr_5 = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08B51BECu); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 448u, 0x08B51BECu, 0x08B0C778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 99u, 0x08B0C778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51BECu) goto L_08B51BEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51BEC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(252))); @@ -4462,8 +5409,21 @@ L_08B51BF4: aot_gpr_5 = (aot_gpr_29 + static_cast(28)); aot_gpr_31 = (0x08B51C3Cu); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 450u, 0x08B51C3Cu, 0x08B0C778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 99u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 99u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 99u, 0x08B0C778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51C3Cu) goto L_08B51C3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51C3C: aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(252))); goto L_08B51C40; @@ -4483,8 +5443,21 @@ L_08B51C48: aot_gpr_5 = (aot_gpr_29 + static_cast(36)); aot_gpr_31 = (0x08B51C68u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 453u, 0x08B51C68u, 0x08B0C7E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 104u, 0x08B0C7E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51C68u) goto L_08B51C68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51C68: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4502,16 +5475,42 @@ L_08B51C70: aot_gpr_5 = (aot_gpr_29 + static_cast(40)); aot_gpr_31 = (0x08B51C94u); aot_gpr_4 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 455u, 0x08B51C94u, 0x08B0C7E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 104u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 104u, 0x08B0C7E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51C94u) goto L_08B51C94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51C94: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(200), static_cast(ctx.gpr[17])); goto L_08B51C98; L_08B51C98: aot_gpr_31 = (0x08B51CA0u); aot_gpr_4 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 457u, 0x08B51CA0u, 0x08B0C4D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 64u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 64u, 0x08B0C4D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51CA0u) goto L_08B51CA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51CA0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(208))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); @@ -4540,8 +5539,21 @@ L_08B51CD0: ctx.gpr[17] = (0u | 0u); aot_gpr_31 = (0x08B51CDCu); aot_gpr_4 = (0u | 2452u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 461u, 0x08B51CDCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51CDCu) goto L_08B51CDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51CDC: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -4565,8 +5577,21 @@ L_08B51CF4: L_08B51CFC: aot_gpr_31 = (0x08B51D04u); aot_gpr_5 = (ctx.gpr[28] + static_cast(5640)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0124. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 466u, 0x08B51D04u, 0x089F6390u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); +#else + recomp_unit_0124_entry(rt, ctx, 420u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0124_entry, 124u, 420u, 0x089F6390u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51D04u) goto L_08B51D04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51D04: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(188))); aot_gpr_6 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(184))); @@ -4575,8 +5600,21 @@ L_08B51D04: ctx.gpr[8] = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B51D20u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 467u, 0x08B51D20u, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51D20u) goto L_08B51D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51D20: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4643,8 +5681,21 @@ L_08B51D90: goto L_08B51DA4; L_08B51DA4: aot_gpr_31 = (0x08B51DACu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 477u, 0x08B51DACu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51DACu) goto L_08B51DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51DAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); @@ -4689,8 +5740,21 @@ L_08B51DE8: } L_08B51E04: aot_gpr_31 = (0x08B51E0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 484u, 0x08B51E0Cu, 0x08B68290u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 34u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 34u, 0x08B68290u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51E0Cu) goto L_08B51E0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51E0C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); goto L_08B51E10; @@ -4874,18 +5938,57 @@ L_08B51F94: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_5); aot_gpr_31 = (0x08B51FDCu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 506u, 0x08B51FDCu, 0x08887B80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 851u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 851u, 0x08887B80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51FDCu) goto L_08B51FDC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51FDC: aot_gpr_31 = (0x08B51FE4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 507u, 0x08B51FE4u, 0x08B0C748u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 96u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 96u, 0x08B0C748u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51FE4u) goto L_08B51FE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51FE4: aot_gpr_4 = (aot_gpr_2 | 0u); aot_gpr_31 = (0x08B51FF0u); aot_gpr_5 = (ctx.gpr[30] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0190. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 508u, 0x08B51FF0u, 0x08AFD8D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0190_entry(rt, ctx, 283u, aot_mem); +#else + recomp_unit_0190_entry(rt, ctx, 283u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0190_entry, 190u, 283u, 0x08AFD8D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B51FF0u) goto L_08B51FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B51FF0: aot_gpr_4 = (ctx.gpr[30] | 0u); aot_gpr_5 = (ctx.gpr[17] | 0u); @@ -4894,8 +5997,21 @@ L_08B51FF0: ctx.gpr[7] = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B5200Cu); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0194. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 509u, 0x08B5200Cu, 0x08B0C1B0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); +#else + recomp_unit_0194_entry(rt, ctx, 24u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0194_entry, 194u, 24u, 0x08B0C1B0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5200Cu) goto L_08B5200C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5200C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(208))); ctx.gpr[17] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(204))); @@ -4927,8 +6043,8 @@ L_08B52030: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B52060: @@ -5956,8 +7072,8 @@ L_08B52A54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B52A68: @@ -5968,8 +7084,21 @@ L_08B52A68: ctx.gpr[17] = (0u | 1u); aot_gpr_31 = (0x08B52A98u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 627u, 0x08B52A98u, 0x0889D610u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 294u, 0x0889D610u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52A98u) goto L_08B52A98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52A98: aot_fpr_12 = std::bit_cast(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0])); ctx.gpr[18] = (std::bit_cast(aot_fpr_12)); @@ -5979,8 +7108,21 @@ L_08B52A98: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B52AB8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 628u, 0x08B52AB8u, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52AB8u) goto L_08B52AB8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52AB8: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B52AC4u); @@ -6005,15 +7147,41 @@ L_08B52AC4: aot_gpr_5 = (aot_gpr_29 | 0u); aot_gpr_31 = (0x08B52ADCu); aot_fpr_12 = std::bit_cast(std::bit_cast(ctx.fpr[0])); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0139. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 630u, 0x08B52ADCu, 0x08A30D04u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0139_entry(rt, ctx, 165u, aot_mem); +#else + recomp_unit_0139_entry(rt, ctx, 165u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0139_entry, 139u, 165u, 0x08A30D04u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52ADCu) goto L_08B52ADC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52ADC: ctx.gpr[19] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B52AECu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 631u, 0x08B52AECu, 0x08B10EBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 225u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 225u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 225u, 0x08B10EBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52AECu) goto L_08B52AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52AEC: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B52AF8u); @@ -6185,8 +7353,21 @@ L_08B52C6C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B52C90u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 650u, 0x08B52C90u, 0x08AA2FB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 764u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 764u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 764u, 0x08AA2FB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52C90u) goto L_08B52C90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52C90: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(60), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); @@ -6202,8 +7383,21 @@ L_08B52C90: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B52CC8u); aot_gpr_5 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0167. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 651u, 0x08B52CC8u, 0x08AA3070u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0167_entry(rt, ctx, 774u, aot_mem); +#else + recomp_unit_0167_entry(rt, ctx, 774u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0167_entry, 167u, 774u, 0x08AA3070u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52CC8u) goto L_08B52CC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52CC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(64), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); @@ -6329,8 +7523,8 @@ L_08B52DCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B52DF4: @@ -6340,8 +7534,21 @@ L_08B52DF4: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B52E10u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 664u, 0x08B52E10u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52E10u) goto L_08B52E10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52E10: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -6386,8 +7593,21 @@ L_08B52E6C: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(28)))))); aot_gpr_31 = (0x08B52E88u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 668u, 0x08B52E88u, 0x08A37318u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 824u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 824u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 824u, 0x08A37318u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52E88u) goto L_08B52E88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52E88: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6402,8 +7622,21 @@ L_08B52E90: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_29 + static_cast(19), aot_gpr_6)); aot_gpr_31 = (0x08B52EA8u); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_29 + static_cast(22), aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 670u, 0x08B52EA8u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52EA8u) goto L_08B52EA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52EA8: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -6424,8 +7657,8 @@ L_08B52EB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B52EC8: @@ -6435,8 +7668,21 @@ L_08B52EC8: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B52EE8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 674u, 0x08B52EE8u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52EE8u) goto L_08B52EE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52EE8: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6470,8 +7716,21 @@ L_08B52F00: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B52F40u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 677u, 0x08B52F40u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52F40u) goto L_08B52F40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52F40: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(100))); @@ -6490,8 +7749,21 @@ L_08B52F54: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(28)))))); aot_gpr_31 = (0x08B52F70u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 679u, 0x08B52F70u, 0x08A3FA50u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 557u, 0x08A3FA50u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52F70u) goto L_08B52F70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52F70: ctx.gpr[17] = (0u | 1u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6526,8 +7798,8 @@ L_08B52F98: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B52FB0: @@ -6537,8 +7809,21 @@ L_08B52FB0: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B52FD0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 685u, 0x08B52FD0u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B52FD0u) goto L_08B52FD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B52FD0: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6572,8 +7857,21 @@ L_08B52FE8: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B53028u); aot_gpr_6 = (0u + static_cast(-1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 688u, 0x08B53028u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53028u) goto L_08B53028; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53028: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(100))); @@ -6592,8 +7890,21 @@ L_08B5303C: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(28)))))); aot_gpr_31 = (0x08B53058u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0142. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 690u, 0x08B53058u, 0x08A3FAACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0142_entry(rt, ctx, 562u, aot_mem); +#else + recomp_unit_0142_entry(rt, ctx, 562u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0142_entry, 142u, 562u, 0x08A3FAACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53058u) goto L_08B53058; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53058: ctx.gpr[17] = (0u | 1u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6628,8 +7939,8 @@ L_08B53080: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53098: @@ -6639,8 +7950,21 @@ L_08B53098: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B530B8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 696u, 0x08B530B8u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B530B8u) goto L_08B530B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B530B8: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6662,8 +7986,21 @@ L_08B530D4: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B530E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 699u, 0x08B530E4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B530E4u) goto L_08B530E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B530E4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -6711,8 +8048,8 @@ L_08B53128: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53140: @@ -6722,8 +8059,21 @@ L_08B53140: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B53160u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 707u, 0x08B53160u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53160u) goto L_08B53160; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53160: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -6745,8 +8095,21 @@ L_08B5317C: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B5318Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 710u, 0x08B5318Cu, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5318Cu) goto L_08B5318C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5318C: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -6791,8 +8154,8 @@ L_08B531C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B531DC: @@ -6802,8 +8165,21 @@ L_08B531DC: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B531F4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 718u, 0x08B531F4u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B531F4u) goto L_08B531F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B531F4: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6831,8 +8207,21 @@ L_08B53200: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B5321Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 720u, 0x08B5321Cu, 0x08931AD0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 313u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 313u, 0x08931AD0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5321Cu) goto L_08B5321C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5321C: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 1u); @@ -6844,8 +8233,21 @@ L_08B5321C: L_08B53224: aot_gpr_31 = (0x08B5322Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 722u, 0x08B5322Cu, 0x08806DA8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 424u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 424u, 0x08806DA8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5322Cu) goto L_08B5322C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5322C: aot_gpr_2 = (0u | 1u); goto L_08B53230; @@ -6854,8 +8256,8 @@ L_08B53230: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53240: @@ -6865,8 +8267,21 @@ L_08B53240: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B53260u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 725u, 0x08B53260u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53260u) goto L_08B53260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53260: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -6887,8 +8302,21 @@ L_08B53278: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B53288u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 728u, 0x08B53288u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53288u) goto L_08B53288; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53288: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -6907,8 +8335,21 @@ L_08B532A4: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08B532B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 731u, 0x08B532B4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B532B4u) goto L_08B532B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B532B4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -6961,8 +8402,8 @@ L_08B53300: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53318: @@ -6972,8 +8413,21 @@ L_08B53318: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B53338u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 740u, 0x08B53338u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53338u) goto L_08B53338; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53338: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7001,8 +8455,21 @@ L_08B53360: aot_gpr_6 = (aot_gpr_29 + static_cast(34)); aot_gpr_31 = (0x08B53370u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 744u, 0x08B53370u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53370u) goto L_08B53370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53370: aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(34))); @@ -7067,8 +8534,21 @@ L_08B533F8: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); aot_gpr_31 = (0x08B53414u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 750u, 0x08B53414u, 0x08A377A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 875u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 875u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 875u, 0x08A377A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53414u) goto L_08B53414; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53414: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7083,8 +8563,21 @@ L_08B5341C: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_29 + static_cast(19), aot_gpr_6)); aot_gpr_31 = (0x08B53434u); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_29 + static_cast(22), aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 752u, 0x08B53434u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53434u) goto L_08B53434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53434: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -7106,8 +8599,8 @@ L_08B53440: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53458: @@ -7117,8 +8610,21 @@ L_08B53458: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B53474u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 756u, 0x08B53474u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53474u) goto L_08B53474; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53474: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); @@ -7126,8 +8632,21 @@ L_08B53474: aot_gpr_6 = (0u | 2u); aot_gpr_31 = (0x08B5348Cu); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0075. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 757u, 0x08B5348Cu, 0x08931AF4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0075_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0075_entry, 75u, 315u, 0x08931AF4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5348Cu) goto L_08B5348C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5348C: { const bool branch_taken = ctx.gpr[16] == 0u; if (branch_taken) { @@ -7180,8 +8699,21 @@ L_08B53514: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(56)))))); aot_gpr_31 = (0x08B53530u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 760u, 0x08B53530u, 0x08A37870u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 888u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 888u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 888u, 0x08A37870u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53530u) goto L_08B53530; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53530: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7196,8 +8728,21 @@ L_08B53538: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_29 + static_cast(35), aot_gpr_6)); aot_gpr_31 = (0x08B53550u); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_29 + static_cast(38), aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 762u, 0x08B53550u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53550u) goto L_08B53550; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53550: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -7218,8 +8763,8 @@ L_08B5355C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53570: @@ -7229,8 +8774,21 @@ L_08B53570: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B5358Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 766u, 0x08B5358Cu, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5358Cu) goto L_08B5358C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5358C: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -7285,8 +8843,21 @@ L_08B53604: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(32)))))); aot_gpr_31 = (0x08B53620u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 771u, 0x08B53620u, 0x08A37A10u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 912u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 912u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 912u, 0x08A37A10u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53620u) goto L_08B53620; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53620: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7301,8 +8872,21 @@ L_08B53628: aot_gpr_6 = (aot_mem.aot_direct_load_word_right(aot_gpr_29 + static_cast(19), aot_gpr_6)); aot_gpr_31 = (0x08B53640u); aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_29 + static_cast(22), aot_gpr_6)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 773u, 0x08B53640u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53640u) goto L_08B53640; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53640: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (0u | 0u); @@ -7323,8 +8907,8 @@ L_08B5364C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53660: @@ -7334,8 +8918,21 @@ L_08B53660: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B53680u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 777u, 0x08B53680u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53680u) goto L_08B53680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53680: ctx.gpr[18] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -7356,8 +8953,21 @@ L_08B53698: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B536A8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 780u, 0x08B536A8u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B536A8u) goto L_08B536A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B536A8: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7385,8 +8995,21 @@ L_08B536D4: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08B536E4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 784u, 0x08B536E4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B536E4u) goto L_08B536E4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B536E4: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -7416,8 +9039,21 @@ L_08B53710: aot_gpr_6 = (aot_gpr_29 + static_cast(18)); aot_gpr_31 = (0x08B53720u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 788u, 0x08B53720u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53720u) goto L_08B53720; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53720: aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18))); @@ -7428,8 +9064,21 @@ L_08B5372C: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(206)))))); aot_gpr_31 = (0x08B5373Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 790u, 0x08B5373Cu, 0x08ADC560u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 101u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 101u, 0x08ADC560u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5373Cu) goto L_08B5373C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5373C: ctx.gpr[17] = (aot_gpr_2 | 0u); goto L_08B53740; @@ -7461,8 +9110,8 @@ L_08B5375C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53774: @@ -7473,8 +9122,21 @@ L_08B53774: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B53798u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 796u, 0x08B53798u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53798u) goto L_08B53798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53798: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7495,8 +9157,21 @@ L_08B537B0: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B537C0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 799u, 0x08B537C0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B537C0u) goto L_08B537C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B537C0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7517,14 +9192,40 @@ L_08B537E0: aot_gpr_4 = (aot_gpr_4 + static_cast(-28736)); aot_gpr_31 = (0x08B537F0u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 802u, 0x08B537F0u, 0x08ADC204u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 32u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 32u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 32u, 0x08ADC204u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B537F0u) goto L_08B537F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B537F0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B537FCu); aot_gpr_5 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 803u, 0x08B537FCu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B537FCu) goto L_08B537FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B537FC: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -7536,8 +9237,21 @@ L_08B53804: aot_gpr_5 = (ctx.gpr[28] + static_cast(5792)); aot_gpr_31 = (0x08B53810u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 805u, 0x08B53810u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53810u) goto L_08B53810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53810: { const bool branch_taken = 0u == 0u; aot_gpr_2 = (ctx.gpr[18] | 0u); @@ -7559,8 +9273,8 @@ L_08B5381C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53834: @@ -7571,8 +9285,21 @@ L_08B53834: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B53858u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 809u, 0x08B53858u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53858u) goto L_08B53858; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53858: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7593,8 +9320,21 @@ L_08B53870: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B53880u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 812u, 0x08B53880u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53880u) goto L_08B53880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53880: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7654,8 +9394,8 @@ L_08B538DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B538F4: @@ -7666,8 +9406,21 @@ L_08B538F4: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B53918u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 821u, 0x08B53918u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53918u) goto L_08B53918; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53918: ctx.gpr[17] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -7688,8 +9441,21 @@ L_08B53930: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B53940u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 824u, 0x08B53940u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53940u) goto L_08B53940; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53940: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), aot_gpr_2); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -7712,8 +9478,21 @@ L_08B53964: aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast(3)))))); aot_gpr_31 = (0x08B53978u); aot_gpr_5 = (aot_gpr_5 & 255u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 827u, 0x08B53978u, 0x08ADC88Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 167u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 167u, 0x08ADC88Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53978u) goto L_08B53978; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53978: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_2 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 << 16u); @@ -7782,8 +9561,8 @@ L_08B539E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53A00: @@ -7792,8 +9571,21 @@ L_08B53A00: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } aot_gpr_31 = (0x08B53A18u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 837u, 0x08B53A18u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53A18u) goto L_08B53A18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53A18: ctx.gpr[16] = (aot_gpr_2 | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7830,8 +9622,21 @@ L_08B53A5C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B53A68u); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 841u, 0x08B53A68u, 0x089AC664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 80u, 0x089AC664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53A68u) goto L_08B53A68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53A68: ctx.gpr[17] = (0u | 0u); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(565))); @@ -7866,8 +9671,21 @@ L_08B53A9C: aot_gpr_5 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B53AACu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0106. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 846u, 0x08B53AACu, 0x089AC664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); +#else + recomp_unit_0106_entry(rt, ctx, 80u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0106_entry, 106u, 80u, 0x089AC664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53AACu) goto L_08B53AAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53AAC: ctx.gpr[17] = (ctx.gpr[17] + static_cast(1)); aot_gpr_4 = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast(565))); @@ -7900,8 +9718,21 @@ L_08B53AC8: aot_gpr_6 = (aot_mem.aot_direct_load_word_left(aot_gpr_29 + static_cast(6), aot_gpr_6)); aot_gpr_31 = (0x08B53B00u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 849u, 0x08B53B00u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53B00u) goto L_08B53B00; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53B00: aot_gpr_2 = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -7912,8 +9743,8 @@ L_08B53B00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53B18: @@ -7924,8 +9755,21 @@ L_08B53B18: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B53B3Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 851u, 0x08B53B3Cu, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53B3Cu) goto L_08B53B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53B3C: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8004,8 +9848,21 @@ L_08B53BD4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B53BE8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 859u, 0x08B53BE8u, 0x08A37040u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 775u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 775u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 775u, 0x08A37040u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53BE8u) goto L_08B53BE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53BE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8017,8 +9874,21 @@ L_08B53BF0: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B53BFCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 861u, 0x08B53BFCu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53BFCu) goto L_08B53BFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53BFC: aot_gpr_2 = (0u | 0u); goto L_08B53C00; @@ -8032,8 +9902,8 @@ L_08B53C00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53C18: @@ -8043,8 +9913,21 @@ L_08B53C18: ctx.gpr[16] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B53C34u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 864u, 0x08B53C34u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53C34u) goto L_08B53C34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53C34: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8125,8 +10008,21 @@ L_08B53CD4: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B53CE8u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 872u, 0x08B53CE8u, 0x08A370E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 786u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 786u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 786u, 0x08A370E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53CE8u) goto L_08B53CE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53CE8: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8138,8 +10034,21 @@ L_08B53CF0: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B53CFCu); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 874u, 0x08B53CFCu, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53CFCu) goto L_08B53CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53CFC: aot_gpr_2 = (0u | 0u); goto L_08B53D00; @@ -8152,8 +10061,8 @@ L_08B53D00: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53D14: @@ -8164,8 +10073,21 @@ L_08B53D14: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B53D38u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 877u, 0x08B53D38u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53D38u) goto L_08B53D38; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53D38: ctx.gpr[17] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -8244,8 +10166,21 @@ L_08B53DD0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B53DE4u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 885u, 0x08B53DE4u, 0x08A373D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 835u, 0x08A373D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53DE4u) goto L_08B53DE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53DE4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8257,8 +10192,21 @@ L_08B53DEC: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B53DF8u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 887u, 0x08B53DF8u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53DF8u) goto L_08B53DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53DF8: aot_gpr_2 = (0u | 0u); goto L_08B53DFC; @@ -8272,8 +10220,8 @@ L_08B53DFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53E14: @@ -8283,8 +10231,21 @@ L_08B53E14: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B53E34u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0211->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0211_entry, 890u, 0x08B53E34u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B53E34u) goto L_08B53E34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B53E34: ctx.gpr[16] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -8456,8 +10417,8 @@ L_08B53FA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B53FBC: diff --git a/profiles/vcs/generated/generated_unit_0212.cpp b/profiles/vcs/generated/generated_unit_0212.cpp index 2f875d6..ce8680d 100644 --- a/profiles/vcs/generated/generated_unit_0212.cpp +++ b/profiles/vcs/generated/generated_unit_0212.cpp @@ -1136,6 +1136,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B54000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1205,8 +1229,8 @@ L_08B5407C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54098: @@ -1214,8 +1238,21 @@ L_08B54098: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08B540A8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 7u, 0x08B540A8u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B540A8u) goto L_08B540A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B540A8: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1258,8 +1295,21 @@ L_08B5410C: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_29 + static_cast(28)))))); aot_gpr_31 = (0x08B54120u); ctx.gpr[7] = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0140. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 10u, 0x08B54120u, 0x08A3716Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0140_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0140_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0140_entry, 140u, 795u, 0x08A3716Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54120u) goto L_08B54120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54120: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -1272,15 +1322,28 @@ L_08B54128: aot_gpr_5 = (aot_gpr_6 | 0u); aot_gpr_31 = (0x08B54138u); aot_gpr_6 = (ctx.gpr[7] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0182. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 12u, 0x08B54138u, 0x08ADCA34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); +#else + recomp_unit_0182_entry(rt, ctx, 189u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0182_entry, 182u, 189u, 0x08ADCA34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54138u) goto L_08B54138; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54138: ctx.gpr[2] = (0u | 0u); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54148: @@ -1291,8 +1354,21 @@ L_08B54148: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B5416Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 14u, 0x08B5416Cu, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5416Cu) goto L_08B5416C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5416C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1336,8 +1412,21 @@ L_08B541A0: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B541B0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 20u, 0x08B541B0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B541B0u) goto L_08B541B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B541B0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -1366,8 +1455,21 @@ L_08B541E0: aot_gpr_6 = (aot_gpr_29 + static_cast(17)); aot_gpr_31 = (0x08B541F0u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 24u, 0x08B541F0u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B541F0u) goto L_08B541F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B541F0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(17))); @@ -1431,8 +1533,8 @@ L_08B54250: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54268: @@ -1443,8 +1545,21 @@ L_08B54268: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B5428Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 34u, 0x08B5428Cu, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5428Cu) goto L_08B5428C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5428C: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -1489,8 +1604,21 @@ L_08B542C4: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B542D4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 40u, 0x08B542D4u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B542D4u) goto L_08B542D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B542D4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -1516,8 +1644,8 @@ L_08B542F4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5430C: @@ -1528,8 +1656,21 @@ L_08B5430C: ctx.gpr[18] = (0u | 1u); aot_gpr_31 = (0x08B54330u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 45u, 0x08B54330u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54330u) goto L_08B54330; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54330: ctx.gpr[17] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[17] != 0u; @@ -1564,8 +1705,21 @@ L_08B54360: aot_gpr_6 = (aot_gpr_29 + static_cast(16)); aot_gpr_31 = (0x08B54370u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 50u, 0x08B54370u, 0x08A9C6FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 47u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 47u, 0x08A9C6FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54370u) goto L_08B54370; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54370: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(96), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16))); @@ -1591,8 +1745,8 @@ L_08B54394: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B543B0: @@ -1600,8 +1754,21 @@ L_08B543B0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B543C0u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 54u, 0x08B543C0u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B543C0u) goto L_08B543C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B543C0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1627,8 +1794,8 @@ L_08B543E0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B543F0: @@ -1638,8 +1805,21 @@ L_08B543F0: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B5440Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 59u, 0x08B5440Cu, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5440Cu) goto L_08B5440C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5440C: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1684,8 +1864,21 @@ L_08B54434: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B54458u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 63u, 0x08B54458u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54458u) goto L_08B54458; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54458: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1696,8 +1889,8 @@ L_08B54458: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54470: @@ -1707,8 +1900,21 @@ L_08B54470: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B5448Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 65u, 0x08B5448Cu, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5448Cu) goto L_08B5448C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5448C: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1778,8 +1984,21 @@ L_08B544E0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B5450Cu); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 70u, 0x08B5450Cu, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5450Cu) goto L_08B5450C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5450C: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[3]{}; @@ -1790,8 +2009,8 @@ L_08B5450C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54524: @@ -1801,8 +2020,21 @@ L_08B54524: ctx.gpr[17] = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B54544u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 72u, 0x08B54544u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54544u) goto L_08B54544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54544: aot_gpr_16 = (ctx.gpr[2] | 0u); aot_gpr_4 = (ctx.gpr[17] | 0u); @@ -1874,8 +2106,21 @@ L_08B545A0: aot_gpr_4 = (aot_gpr_16 | 0u); aot_gpr_31 = (0x08B545C0u); aot_gpr_5 = (aot_gpr_29 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0152. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 78u, 0x08B545C0u, 0x08A666C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); +#else + recomp_unit_0152_entry(rt, ctx, 538u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B545C0u) goto L_08B545C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B545C0: ctx.gpr[2] = (0u | 0u); { std::uint32_t aot_run_words[4]{}; @@ -1887,8 +2132,8 @@ L_08B545C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B545DC: @@ -1898,8 +2143,21 @@ L_08B545DC: aot_gpr_16 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B545F4u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0195. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 80u, 0x08B545F4u, 0x08B10D5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); +#else + recomp_unit_0195_entry(rt, ctx, 200u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0195_entry, 195u, 200u, 0x08B10D5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B545F4u) goto L_08B545F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B545F4: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1976,8 +2234,8 @@ L_08B54670: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54680: @@ -2082,8 +2340,8 @@ L_08B5472C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54740: @@ -2128,8 +2386,21 @@ L_08B5478C: aot_gpr_5 = (2233u << 16u); aot_gpr_31 = (0x08B54798u); aot_gpr_5 = (aot_gpr_5 + static_cast(-29748)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 113u, 0x08B54798u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54798u) goto L_08B54798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54798: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2148,8 +2419,21 @@ L_08B547AC: L_08B547B4: aot_gpr_31 = (0x08B547BCu); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 117u, 0x08B547BCu, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B547BCu) goto L_08B547BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B547BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2209,8 +2493,21 @@ L_08B5481C: L_08B54824: aot_gpr_31 = (0x08B5482Cu); aot_gpr_5 = (ctx.gpr[28] + static_cast(5804)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 129u, 0x08B5482Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5482Cu) goto L_08B5482C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5482C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2229,8 +2526,21 @@ L_08B54840: L_08B54848: aot_gpr_31 = (0x08B54850u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 133u, 0x08B54850u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54850u) goto L_08B54850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54850: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2291,8 +2601,21 @@ L_08B548B8: aot_gpr_5 = (2233u << 16u); aot_gpr_31 = (0x08B548C4u); aot_gpr_5 = (aot_gpr_5 + static_cast(-29728)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 145u, 0x08B548C4u, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B548C4u) goto L_08B548C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B548C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2311,8 +2634,21 @@ L_08B548D8: L_08B548E0: aot_gpr_31 = (0x08B548E8u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 149u, 0x08B548E8u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B548E8u) goto L_08B548E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B548E8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2373,8 +2709,21 @@ L_08B54950: aot_gpr_5 = (2233u << 16u); aot_gpr_31 = (0x08B5495Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-29704)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 161u, 0x08B5495Cu, 0x08806E68u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 430u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 430u, 0x08806E68u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5495Cu) goto L_08B5495C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5495C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2393,8 +2742,21 @@ L_08B54970: L_08B54978: aot_gpr_31 = (0x08B54980u); aot_gpr_5 = (0u + static_cast(-2)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 165u, 0x08B54980u, 0x0880673Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 315u, 0x0880673Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54980u) goto L_08B54980; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54980: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); if (aot_gpr_4 != 0u) { @@ -2436,14 +2798,27 @@ L_08B549C0: aot_gpr_5 = (aot_gpr_5 + static_cast(-30004)); aot_gpr_31 = (0x08B549CCu); aot_gpr_6 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 173u, 0x08B549CCu, 0x08885220u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 266u, 0x08885220u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B549CCu) goto L_08B549CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B549CC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B549D8: @@ -2536,8 +2911,8 @@ L_08B54A7C: ctx.gpr[2] = (0u + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54A94: @@ -2701,8 +3076,21 @@ L_08B54BB4: goto L_08B57728; L_08B54BC4: aot_gpr_31 = (0x08B54BCCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 210u, 0x08B54BCCu, 0x08B60628u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 61u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 61u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 61u, 0x08B60628u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54BCCu) goto L_08B54BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54BCC: aot_gpr_4 = (0u << 16u); ctx.gpr[21] = (aot_gpr_4 + static_cast(0)); @@ -2727,8 +3115,21 @@ L_08B54BE8: L_08B54BEC: aot_gpr_31 = (0x08B54BF4u); aot_gpr_5 = (aot_gpr_29 + 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0076. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 214u, 0x08B54BF4u, 0x08934794u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0076_entry(rt, ctx, 116u, aot_mem); +#else + recomp_unit_0076_entry(rt, ctx, 116u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0076_entry, 76u, 116u, 0x08934794u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B54BF4u) goto L_08B54BF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B54BF4: aot_gpr_31 = (0x08B54BFCu); aot_gpr_4 = (ctx.gpr[2] + 0u); @@ -2760,8 +3161,8 @@ L_08B54C1C: ctx.gpr[2] = (0u + static_cast(1)); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(1008)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54C44: @@ -2873,8 +3274,8 @@ L_08B54DC8: ctx.gpr[2] = (0u + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54DD8: @@ -2989,8 +3390,8 @@ L_08B54E70: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54E88: @@ -3158,8 +3559,8 @@ L_08B54FBC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B54FD0: @@ -3282,8 +3683,8 @@ L_08B550AC: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B550C0: @@ -3344,8 +3745,8 @@ L_08B55114: ctx.gpr[2] = (ctx.gpr[3] + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5512C: @@ -3430,8 +3831,8 @@ L_08B551B8: ctx.gpr[2] = (ctx.gpr[3] + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B551D0: @@ -3508,8 +3909,8 @@ L_08B55244: ctx.gpr[2] = (ctx.gpr[3] + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55254: @@ -3541,8 +3942,8 @@ L_08B5528C: ctx.gpr[2] = (0u + 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(4), ctx.gpr[3]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5529C: @@ -3563,8 +3964,8 @@ L_08B552B8: aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B552C8: @@ -3582,16 +3983,16 @@ L_08B552D8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_4 + static_cast(0)))))); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] & 2u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B552F4: aot_gpr_4 = (2234u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(15532))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55300: @@ -3616,14 +4017,14 @@ L_08B55314: L_08B55318: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(15532))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55320: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55328: @@ -3631,8 +4032,8 @@ L_08B55328: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = aot_gpr_31; ctx.gpr[2] = (0u + 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5538C: @@ -3674,16 +4075,29 @@ L_08B553EC: L_08B553F0: jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_5 + 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B553F8: aot_gpr_29 = (aot_gpr_29 + static_cast(-4)); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_31); aot_gpr_31 = (0x08B55408u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 352u, 0x08B55408u, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55408u) goto L_08B55408; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55408: { const bool branch_taken = static_cast(ctx.gpr[2]) >= 0; if (branch_taken) { @@ -3703,8 +4117,8 @@ L_08B55424: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_29 = (aot_gpr_29 + static_cast(4)); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55434: @@ -3730,8 +4144,21 @@ L_08B55460: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B5546Cu); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 358u, 0x08B5546Cu, 0x08B5D908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 367u, 0x08B5D908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5546Cu) goto L_08B5546C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5546C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -3741,8 +4168,8 @@ L_08B5546C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55480: @@ -3785,8 +4212,21 @@ L_08B554CC: ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast(0))); aot_gpr_31 = (0x08B554D8u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 365u, 0x08B554D8u, 0x08B5D908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 367u, 0x08B5D908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B554D8u) goto L_08B554D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B554D8: { const bool branch_taken = ctx.gpr[19] != 0u; aot_gpr_5 = (ctx.gpr[19] | 0u); @@ -3812,8 +4252,21 @@ L_08B554F4: aot_gpr_5 = (aot_gpr_4 | 0u); aot_gpr_31 = (0x08B55500u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 369u, 0x08B55500u, 0x08B5D908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 367u, 0x08B5D908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55500u) goto L_08B55500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55500: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(328))); { const bool branch_taken = ctx.gpr[18] == 0u; @@ -3842,8 +4295,21 @@ L_08B55520: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); aot_gpr_31 = (0x08B5552Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 374u, 0x08B5552Cu, 0x08B5D908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 367u, 0x08B5D908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5552Cu) goto L_08B5552C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5552C: { const bool branch_taken = ctx.gpr[18] != ctx.gpr[17]; aot_gpr_5 = (ctx.gpr[18] | 0u); @@ -3866,8 +4332,21 @@ L_08B55538: L_08B55540: aot_gpr_31 = (0x08B55548u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 378u, 0x08B55548u, 0x08B5D908u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 367u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 367u, 0x08B5D908u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55548u) goto L_08B55548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55548: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(56))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3908,8 +4387,8 @@ L_08B55574: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55590: @@ -3955,8 +4434,8 @@ L_08B555D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B555EC: @@ -4050,8 +4529,8 @@ L_08B55674: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55690: @@ -4068,8 +4547,8 @@ L_08B55690: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B556B8: @@ -4133,8 +4612,8 @@ L_08B5571C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55748: @@ -4151,8 +4630,8 @@ L_08B55748: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55770: @@ -4171,8 +4650,21 @@ L_08B55784: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x08B55794u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 412u, 0x08B55794u, 0x08B580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 18u, 0x08B580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55794u) goto L_08B55794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55794: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -4192,8 +4684,21 @@ L_08B557A0: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B557C4u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 414u, 0x08B557C4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B557C4u) goto L_08B557C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B557C4: ctx.gpr[17] = (ctx.gpr[17] - ctx.gpr[20]); { const bool branch_taken = ctx.gpr[17] == 0u; @@ -4221,8 +4726,21 @@ L_08B557D8: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B557FCu); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 417u, 0x08B557FCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B557FCu) goto L_08B557FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B557FC: aot_gpr_4 = (ctx.gpr[21] + ctx.gpr[17]); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); @@ -4239,8 +4757,8 @@ L_08B557FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5582C: @@ -4265,8 +4783,8 @@ L_08B5582C: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(44), aot_gpr_5); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(84), ctx.gpr[7]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55884: @@ -4306,8 +4824,8 @@ L_08B558E4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55900: @@ -4321,8 +4839,8 @@ L_08B55914: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55920: @@ -4338,14 +4856,27 @@ L_08B55920: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08B55954u); aot_gpr_6 = (aot_gpr_6 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 426u, 0x08B55954u, 0x08B5A974u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 694u, 0x08B5A974u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55954u) goto L_08B55954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55954: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55960: @@ -4373,8 +4904,8 @@ L_08B5599C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B559AC: @@ -4404,8 +4935,8 @@ L_08B559C0: } L_08B559E0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B559E8: @@ -4460,8 +4991,8 @@ L_08B55A38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55A64: @@ -4539,8 +5070,8 @@ L_08B55ACC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55B10: @@ -4559,8 +5090,8 @@ L_08B55B10: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55B40: @@ -4641,8 +5172,8 @@ L_08B55BC0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55BF0: @@ -4756,8 +5287,21 @@ L_08B55C98: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B55CA8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 469u, 0x08B55CA8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55CA8u) goto L_08B55CA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55CA8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -4794,8 +5338,21 @@ L_08B55CE0: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B55CECu); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 473u, 0x08B55CECu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55CECu) goto L_08B55CEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55CEC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -4862,8 +5419,21 @@ L_08B55D54: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B55D64u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 483u, 0x08B55D64u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55D64u) goto L_08B55D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55D64: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -4923,8 +5493,21 @@ L_08B55DC0: aot_gpr_5 = (0u | 10u); aot_gpr_31 = (0x08B55DCCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 491u, 0x08B55DCCu, 0x08B580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 18u, 0x08B580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55DCCu) goto L_08B55DCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55DCC: ctx.gpr[23] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[23] == 0u; @@ -4982,8 +5565,21 @@ L_08B55E20: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B55E2Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 499u, 0x08B55E2Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55E2Cu) goto L_08B55E2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55E2C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_gpr_16 | 0u); @@ -5052,8 +5648,21 @@ L_08B55E94: aot_gpr_5 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B55EA4u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 509u, 0x08B55EA4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B55EA4u) goto L_08B55EA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B55EA4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -5111,8 +5720,8 @@ L_08B55EF0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55F20: @@ -5135,8 +5744,8 @@ L_08B55F28: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55F58: @@ -5213,8 +5822,8 @@ L_08B55FC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B55FE8: @@ -5264,15 +5873,28 @@ L_08B56028: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5604C: aot_gpr_31 = (0x08B56054u); aot_gpr_6 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 532u, 0x08B56054u, 0x08B5F23Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 699u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 699u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 699u, 0x08B5F23Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B56054u) goto L_08B56054; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B56054: { const bool branch_taken = static_cast(ctx.gpr[2]) >= 0; aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(12)))))); @@ -5344,8 +5966,8 @@ L_08B560C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B560E8: @@ -5357,8 +5979,8 @@ L_08B560F8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56104: @@ -5422,8 +6044,8 @@ L_08B56164: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56178: @@ -5456,8 +6078,8 @@ L_08B56194: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B561A8: @@ -5491,8 +6113,8 @@ L_08B561D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B561EC: @@ -5536,8 +6158,8 @@ L_08B56214: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56230: @@ -5614,8 +6236,8 @@ L_08B562B0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B562C4: @@ -5624,8 +6246,8 @@ L_08B562C4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B562D8: @@ -5650,23 +6272,36 @@ L_08B562D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(108), aot_gpr_31); aot_gpr_31 = (0x08B5633Cu); aot_gpr_4 = (aot_gpr_29 + static_cast(20)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 577u, 0x08B5633Cu, 0x08B5A974u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 694u, 0x08B5A974u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5633Cu) goto L_08B5633C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5633C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(108))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56350: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56358: @@ -5708,8 +6343,8 @@ L_08B563D8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(112))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B563E8: @@ -5722,8 +6357,21 @@ L_08B563E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08B5640Cu); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(14)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 583u, 0x08B5640Cu, 0x08B5F2F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 709u, 0x08B5F2F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5640Cu) goto L_08B5640C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5640C: if (static_cast(ctx.gpr[2]) < 0) { aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(12)))))); @@ -5750,8 +6398,8 @@ L_08B56430: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56440: @@ -5780,8 +6428,21 @@ L_08B56474: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B5648Cu); ctx.gpr[7] = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 589u, 0x08B5648Cu, 0x08B5F294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 704u, 0x08B5F294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5648Cu) goto L_08B5648C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5648C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(84))); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[18] + static_cast(14)))))); @@ -5797,8 +6458,21 @@ L_08B56494: aot_gpr_6 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B564BCu); ctx.gpr[7] = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 591u, 0x08B564BCu, 0x08B5F3A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 719u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 719u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 719u, 0x08B5F3A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B564BCu) goto L_08B564BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B564BC: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(16), aot_run_words); @@ -5809,8 +6483,8 @@ L_08B564BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B564D4: @@ -5823,8 +6497,21 @@ L_08B564D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_31); aot_gpr_31 = (0x08B564F8u); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(aot_gpr_16 + static_cast(14)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 593u, 0x08B564F8u, 0x08B5F294u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 704u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 704u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 704u, 0x08B5F294u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B564F8u) goto L_08B564F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B564F8: aot_gpr_5 = (0u + static_cast(-1)); { const bool branch_taken = ctx.gpr[2] != aot_gpr_5; @@ -5854,8 +6541,8 @@ L_08B56520: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56530: @@ -5864,14 +6551,27 @@ L_08B56530: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B56544u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(84))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 598u, 0x08B56544u, 0x08B5F1E8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 694u, 0x08B5F1E8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B56544u) goto L_08B56544; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B56544: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56550: @@ -5979,8 +6679,8 @@ L_08B56600: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5661C: @@ -6014,8 +6714,21 @@ L_08B56644: aot_gpr_6 = (0u | 68u); aot_gpr_31 = (0x08B56654u); aot_gpr_5 = (aot_gpr_5 + static_cast(-29528)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 617u, 0x08B56654u, 0x08B605C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 55u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 55u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 55u, 0x08B605C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B56654u) goto L_08B56654; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B56654: ctx.gpr[2] = (ctx.gpr[18] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -6027,8 +6740,8 @@ L_08B56654: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56670: @@ -6049,8 +6762,8 @@ L_08B56670: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B566A8: @@ -6092,8 +6805,8 @@ L_08B566CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B566F4: @@ -6120,8 +6833,8 @@ L_08B566F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5673C: @@ -6187,8 +6900,8 @@ L_08B5678C: L_08B567A4: jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-1)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B567AC: @@ -6229,8 +6942,8 @@ L_08B567CC: L_08B567D8: jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(-1)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B567E0: @@ -6284,8 +6997,8 @@ L_08B56824: } L_08B5682C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56834: @@ -6448,8 +7161,8 @@ L_08B56994: ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-29456))); jump_target = ctx.gpr[1]; aot_gpr_4 = (static_cast(static_cast(aot_gpr_4) >> 2u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B569AC: @@ -6778,8 +7491,8 @@ L_08B56BB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B56BE8: @@ -7429,8 +8142,8 @@ L_08B57034: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-28968))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57050: @@ -7723,8 +8436,8 @@ L_08B571CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57200: @@ -8293,8 +9006,8 @@ L_08B57548: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(720)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57578: @@ -8313,16 +9026,29 @@ L_08B57578: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(104), aot_gpr_31); aot_gpr_31 = (0x08B575B4u); aot_gpr_4 = (aot_gpr_29 + static_cast(16)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 898u, 0x08B575B4u, 0x08B5A974u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 694u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 694u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 694u, 0x08B5A974u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B575B4u) goto L_08B575B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B575B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_mem.aot_direct_store8(aot_gpr_4 + static_cast(0), static_cast(0u)); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B575C8: @@ -8393,8 +9119,8 @@ L_08B5762C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57640: @@ -8460,8 +9186,8 @@ L_08B576AC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B576C0: @@ -8488,8 +9214,8 @@ L_08B576D8: goto L_08B576E4; L_08B576E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B576EC: @@ -8503,8 +9229,21 @@ L_08B576EC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_31); aot_gpr_31 = (0x08B57714u); aot_gpr_5 = (aot_gpr_5 + static_cast(-28856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 925u, 0x08B57714u, 0x08B5F3FCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 724u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 724u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 724u, 0x08B5F3FCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B57714u) goto L_08B57714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B57714: aot_gpr_31 = (0x08B5771Cu); goto L_08B576C0; @@ -8512,8 +9251,8 @@ L_08B5771C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57728: @@ -8545,8 +9284,21 @@ L_08B5775C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); aot_gpr_31 = (0x08B57768u); aot_gpr_4 = (0u | 136u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 931u, 0x08B57768u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B57768u) goto L_08B57768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B57768: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); @@ -8577,8 +9329,8 @@ L_08B57794: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B577BC: @@ -8586,8 +9338,8 @@ L_08B577BC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B577CC: @@ -8595,14 +9347,27 @@ L_08B577CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B577DCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 936u, 0x08B577DCu, 0x08B59DE0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 521u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 521u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 521u, 0x08B59DE0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B577DCu) goto L_08B577DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B577DC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B577E8: @@ -8611,14 +9376,27 @@ L_08B577E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_31); aot_gpr_31 = (0x08B577FCu); aot_gpr_6 = (0u | 10u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 938u, 0x08B577FCu, 0x08B5DF34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 469u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 469u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 469u, 0x08B5DF34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B577FCu) goto L_08B577FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B577FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57808: @@ -8708,8 +9486,8 @@ L_08B57894: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B578B4: @@ -8721,8 +9499,8 @@ L_08B578B4: goto L_08B578C0; L_08B578C0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B578C8: @@ -8785,8 +9563,8 @@ L_08B5792C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57954: @@ -8806,8 +9584,21 @@ L_08B57968: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); aot_gpr_31 = (0x08B57974u); aot_gpr_5 = (aot_gpr_5 + static_cast(-28808)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 963u, 0x08B57974u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B57974u) goto L_08B57974; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B57974: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_5 = (2233u << 16u); @@ -8902,8 +9693,8 @@ L_08B579D0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B579F8: @@ -8949,8 +9740,8 @@ L_08B57A18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57A48: @@ -8967,16 +9758,29 @@ L_08B57A48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57A70: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); aot_gpr_31 = (0x08B57A7Cu); aot_gpr_5 = (aot_gpr_5 + static_cast(-28800)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 983u, 0x08B57A7Cu, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B57A7Cu) goto L_08B57A7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B57A7C: { const bool branch_taken = ctx.gpr[2] != 0u; aot_gpr_5 = (2233u << 16u); @@ -9049,8 +9853,8 @@ L_08B57ABC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57AE4: @@ -9067,8 +9871,8 @@ L_08B57AE4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57B0C: @@ -9087,16 +9891,29 @@ L_08B57B0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57B3C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(52))); aot_gpr_31 = (0x08B57B48u); aot_gpr_5 = (aot_gpr_5 + static_cast(-28792)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0212->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0212_entry, 994u, 0x08B57B48u, 0x08B582CCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 56u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 56u, 0x08B582CCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B57B48u) goto L_08B57B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B57B48: { const bool branch_taken = ctx.gpr[2] != 0u; if (branch_taken) { @@ -9144,8 +9961,8 @@ L_08B57B70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57B98: @@ -9348,8 +10165,8 @@ L_08B57CEC: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[13]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-28784))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57D04: @@ -9375,8 +10192,8 @@ L_08B57D0C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57D38: @@ -9397,8 +10214,8 @@ L_08B57D38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57D70: @@ -9421,8 +10238,8 @@ L_08B57D70: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57DB0: @@ -9447,8 +10264,8 @@ L_08B57DB0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57DF8: @@ -9474,8 +10291,8 @@ L_08B57E04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57E2C: @@ -9502,8 +10319,8 @@ L_08B57E3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57E64: @@ -9531,8 +10348,8 @@ L_08B57E6C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57EA4: @@ -9549,8 +10366,8 @@ L_08B57EA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57ECC: @@ -9558,8 +10375,8 @@ L_08B57ECC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_5 + static_cast(15532))); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(88), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B57EDC: diff --git a/profiles/vcs/generated/generated_unit_0213.cpp b/profiles/vcs/generated/generated_unit_0213.cpp index e91b6b0..c9b8402 100644 --- a/profiles/vcs/generated/generated_unit_0213.cpp +++ b/profiles/vcs/generated/generated_unit_0213.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0213[64] = { 565u, 576u, 591u, 605u, 621u, 636u, 648u, 664u, 682u, 691u, 704u, 713u, 729u, 748u, 762u, 776u, 787u, 807u, 821u, 836u, 851u, 869u, 885u, 890u, 908u, 927u, 941u, 957u, 975u, 991u, 1005u, 1023u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0213[4092] = { + 1u, 0u, 2u, 0u, 3u, 0u, 4u, 0u, 5u, 0u, 6u, 0u, 0u, 0u, 7u, 0u, 0u, 0u, 0u, 0u, 8u, 0u, 9u, 0u, 0u, 10u, 0u, 11u, 12u, 0u, 13u, 0u, + 14u, 15u, 0u, 16u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 17u, 0u, 0u, 18u, 0u, 0u, 0u, 0u, 0u, 19u, 0u, 0u, 20u, 0u, 0u, 0u, 21u, 0u, 22u, 0u, 23u, + 0u, 0u, 0u, 0u, 24u, 0u, 0u, 0u, 25u, 0u, 0u, 0u, 0u, 0u, 26u, 0u, 27u, 0u, 28u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, 0u, 30u, 0u, 31u, + 0u, 0u, 0u, 32u, 0u, 33u, 0u, 0u, 0u, 34u, 0u, 35u, 0u, 0u, 0u, 0u, 0u, 36u, 0u, 37u, 0u, 38u, 0u, 0u, 0u, 39u, 40u, 0u, 0u, 0u, 0u, 0u, + 0u, 41u, 0u, 42u, 0u, 0u, 0u, 0u, 43u, 0u, 0u, 44u, 0u, 45u, 0u, 0u, 0u, 46u, 0u, 0u, 0u, 47u, 0u, 0u, 0u, 0u, 0u, 48u, 0u, 0u, 0u, 0u, + 0u, 0u, 49u, 0u, 50u, 0u, 0u, 51u, 0u, 52u, 0u, 53u, 0u, 0u, 54u, 0u, 55u, 0u, 56u, 57u, 0u, 58u, 0u, 0u, 59u, 0u, 0u, 0u, 60u, 0u, 0u, 61u, + 0u, 0u, 0u, 62u, 0u, 0u, 63u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 64u, 0u, 0u, 0u, 0u, 0u, 0u, 65u, 0u, 66u, 0u, 0u, 67u, 68u, 0u, 0u, 69u, 0u, + 70u, 0u, 0u, 71u, 72u, 0u, 0u, 73u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 75u, 0u, 0u, 0u, 0u, 0u, 76u, 0u, 0u, 0u, 0u, 77u, 0u, 0u, 0u, 0u, 78u, + 0u, 0u, 0u, 0u, 79u, 0u, 0u, 0u, 0u, 80u, 0u, 0u, 0u, 0u, 81u, 0u, 0u, 0u, 0u, 82u, 0u, 0u, 0u, 0u, 83u, 0u, 0u, 0u, 0u, 84u, 0u, 0u, + 0u, 0u, 85u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 89u, 0u, 0u, 0u, 0u, 90u, 0u, 0u, 0u, 0u, + 91u, 0u, 0u, 0u, 0u, 92u, 0u, 0u, 0u, 0u, 93u, 0u, 0u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 0u, 0u, 96u, 0u, 0u, 0u, 0u, 97u, 0u, + 0u, 0u, 0u, 98u, 0u, 0u, 0u, 0u, 99u, 0u, 0u, 0u, 0u, 100u, 0u, 0u, 0u, 0u, 101u, 0u, 0u, 0u, 0u, 102u, 0u, 0u, 0u, 0u, 103u, 0u, 0u, 0u, + 0u, 104u, 0u, 0u, 0u, 0u, 105u, 0u, 0u, 0u, 0u, 106u, 0u, 0u, 0u, 0u, 107u, 0u, 0u, 0u, 0u, 108u, 0u, 0u, 0u, 0u, 109u, 0u, 0u, 0u, 0u, 110u, + 0u, 0u, 0u, 0u, 111u, 0u, 0u, 0u, 0u, 112u, 0u, 0u, 0u, 0u, 113u, 0u, 0u, 0u, 0u, 114u, 0u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 0u, 116u, 0u, 0u, + 0u, 0u, 117u, 0u, 0u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 119u, 0u, 0u, 0u, 0u, 120u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 0u, 122u, 0u, 0u, 0u, 0u, + 123u, 0u, 0u, 0u, 0u, 124u, 0u, 0u, 0u, 0u, 125u, 0u, 0u, 0u, 0u, 126u, 0u, 0u, 0u, 0u, 127u, 0u, 0u, 0u, 0u, 128u, 0u, 0u, 0u, 0u, 129u, 0u, + 0u, 0u, 0u, 130u, 0u, 0u, 0u, 0u, 131u, 0u, 0u, 0u, 0u, 132u, 0u, 0u, 0u, 0u, 133u, 0u, 0u, 0u, 0u, 134u, 0u, 0u, 0u, 0u, 135u, 0u, 0u, 0u, + 0u, 136u, 0u, 0u, 0u, 0u, 137u, 0u, 0u, 0u, 0u, 138u, 0u, 0u, 0u, 0u, 139u, 0u, 0u, 0u, 0u, 140u, 0u, 0u, 0u, 0u, 141u, 0u, 0u, 0u, 0u, 142u, + 0u, 0u, 0u, 0u, 143u, 0u, 0u, 0u, 0u, 144u, 0u, 0u, 0u, 0u, 145u, 0u, 0u, 0u, 0u, 146u, 0u, 147u, 0u, 148u, 0u, 149u, 0u, 0u, 150u, 0u, 0u, 151u, + 152u, 0u, 0u, 153u, 0u, 154u, 0u, 0u, 155u, 0u, 0u, 0u, 156u, 0u, 0u, 0u, 157u, 0u, 0u, 0u, 158u, 0u, 159u, 160u, 0u, 0u, 0u, 161u, 0u, 162u, 0u, 163u, + 0u, 0u, 0u, 164u, 0u, 165u, 0u, 0u, 166u, 0u, 0u, 0u, 0u, 0u, 167u, 0u, 168u, 169u, 0u, 0u, 0u, 0u, 170u, 0u, 171u, 0u, 172u, 0u, 173u, 0u, 174u, 0u, + 175u, 0u, 0u, 0u, 176u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, 178u, 0u, 179u, 0u, 0u, 0u, 0u, 180u, 0u, 0u, 181u, 0u, 182u, 0u, 0u, 0u, 183u, 184u, 0u, 0u, + 185u, 0u, 0u, 186u, 0u, 0u, 0u, 0u, 187u, 0u, 188u, 0u, 189u, 0u, 190u, 0u, 191u, 0u, 192u, 0u, 193u, 0u, 0u, 194u, 0u, 0u, 0u, 195u, 0u, 196u, 0u, 197u, + 0u, 0u, 0u, 198u, 199u, 0u, 0u, 200u, 0u, 0u, 0u, 201u, 202u, 0u, 0u, 0u, 0u, 0u, 203u, 0u, 204u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 0u, 206u, 0u, 207u, + 0u, 0u, 208u, 0u, 209u, 0u, 0u, 210u, 0u, 211u, 0u, 0u, 0u, 212u, 213u, 0u, 0u, 214u, 215u, 0u, 216u, 0u, 217u, 0u, 0u, 218u, 0u, 0u, 0u, 219u, 0u, 220u, + 221u, 0u, 222u, 0u, 0u, 223u, 0u, 0u, 224u, 0u, 225u, 0u, 0u, 0u, 226u, 0u, 227u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 228u, 0u, 0u, 229u, 0u, 0u, 0u, 0u, 0u, 230u, 231u, 0u, 0u, + 0u, 232u, 0u, 233u, 0u, 0u, 234u, 235u, 0u, 0u, 236u, 0u, 0u, 0u, 237u, 238u, 0u, 0u, 239u, 0u, 0u, 240u, 241u, 0u, 0u, 0u, 0u, 242u, 0u, 0u, 243u, 0u, + 0u, 244u, 0u, 0u, 245u, 0u, 0u, 0u, 0u, 0u, 246u, 0u, 247u, 0u, 0u, 0u, 248u, 0u, 0u, 0u, 0u, 249u, 250u, 0u, 251u, 0u, 0u, 0u, 0u, 252u, 0u, 253u, + 0u, 0u, 0u, 0u, 0u, 254u, 255u, 0u, 256u, 0u, 0u, 257u, 0u, 0u, 0u, 258u, 0u, 0u, 259u, 0u, 0u, 260u, 0u, 0u, 261u, 0u, 0u, 0u, 0u, 262u, 263u, 0u, + 0u, 264u, 0u, 0u, 0u, 265u, 0u, 0u, 266u, 0u, 267u, 0u, 0u, 0u, 268u, 0u, 0u, 269u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, 0u, 272u, 273u, 0u, + 0u, 0u, 274u, 275u, 0u, 276u, 0u, 0u, 277u, 0u, 0u, 0u, 278u, 0u, 279u, 0u, 0u, 0u, 0u, 0u, 280u, 0u, 0u, 281u, 0u, 282u, 0u, 0u, 283u, 0u, 284u, 0u, + 0u, 285u, 0u, 286u, 0u, 287u, 0u, 288u, 0u, 289u, 0u, 0u, 0u, 290u, 291u, 0u, 292u, 0u, 293u, 0u, 294u, 0u, 0u, 0u, 0u, 295u, 0u, 296u, 0u, 0u, 0u, 0u, + 0u, 297u, 0u, 0u, 0u, 298u, 0u, 299u, 0u, 300u, 0u, 301u, 0u, 302u, 303u, 0u, 304u, 0u, 0u, 305u, 0u, 306u, 0u, 0u, 307u, 0u, 0u, 308u, 0u, 309u, 0u, 0u, + 0u, 310u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 311u, 0u, 0u, 0u, 312u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 314u, 0u, 0u, 315u, 0u, 316u, 0u, + 317u, 0u, 0u, 318u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 319u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 323u, 0u, 0u, 324u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, + 327u, 328u, 0u, 0u, 329u, 0u, 0u, 330u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 331u, 0u, 332u, 0u, 333u, 0u, 334u, 335u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 336u, 0u, 337u, 338u, 0u, 339u, 0u, 0u, 0u, 340u, 0u, 341u, 0u, 0u, 342u, 0u, 0u, 343u, 0u, 0u, 344u, 0u, 0u, 345u, 0u, 346u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 347u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 348u, 0u, 0u, 349u, 0u, 0u, 0u, 0u, 0u, 350u, 0u, 351u, 0u, 352u, 0u, 0u, 0u, 353u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 354u, 0u, 355u, 0u, 356u, 0u, 0u, 357u, 0u, 0u, 0u, 0u, 0u, 358u, 0u, 0u, 359u, 0u, 0u, 360u, + 0u, 0u, 361u, 0u, 0u, 362u, 0u, 363u, 0u, 0u, 0u, 0u, 0u, 0u, 364u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 365u, 0u, 366u, 0u, 0u, 0u, 0u, 0u, 367u, 0u, + 0u, 0u, 0u, 0u, 0u, 368u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 369u, 0u, 370u, 371u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 372u, 0u, 373u, 374u, 0u, 375u, 376u, + 0u, 0u, 0u, 0u, 0u, 377u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 378u, 0u, 0u, 379u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 380u, 0u, 0u, 0u, 0u, 0u, + 381u, 0u, 0u, 0u, 382u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 383u, 0u, 0u, 0u, 0u, 384u, 0u, 0u, 0u, 385u, 0u, 386u, 0u, 387u, 0u, 0u, 0u, 0u, 388u, 0u, + 389u, 0u, 390u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 392u, 0u, 393u, 0u, 0u, 394u, 0u, 395u, 0u, 396u, 0u, 0u, 0u, 0u, 0u, 397u, 0u, 0u, 0u, 398u, 0u, + 399u, 0u, 0u, 0u, 400u, 401u, 0u, 402u, 0u, 0u, 403u, 404u, 0u, 405u, 0u, 0u, 406u, 407u, 0u, 408u, 0u, 0u, 409u, 410u, 0u, 0u, 0u, 0u, 0u, 411u, 0u, 0u, + 0u, 0u, 0u, 0u, 412u, 0u, 0u, 413u, 0u, 0u, 414u, 0u, 0u, 415u, 0u, 0u, 0u, 0u, 0u, 416u, 0u, 0u, 0u, 417u, 0u, 0u, 0u, 418u, 0u, 419u, 0u, 420u, + 0u, 421u, 0u, 0u, 0u, 0u, 422u, 0u, 0u, 0u, 423u, 0u, 0u, 424u, 0u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 426u, 0u, 427u, 428u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 429u, 0u, 430u, 0u, 431u, 0u, 0u, 0u, 0u, 432u, 0u, 0u, 0u, 0u, 433u, 0u, 0u, 434u, 0u, 0u, 0u, 0u, 0u, 0u, 435u, 0u, 0u, 0u, 0u, + 436u, 0u, 0u, 0u, 0u, 0u, 0u, 437u, 0u, 438u, 0u, 439u, 0u, 0u, 440u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 441u, 0u, 442u, 0u, 443u, 0u, 0u, 0u, 0u, 0u, + 444u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 446u, 447u, 0u, 448u, 0u, 449u, 450u, 0u, 0u, 0u, 0u, 0u, 0u, 451u, 0u, 0u, 0u, 0u, 0u, 0u, 452u, 0u, 453u, 0u, + 0u, 0u, 454u, 0u, 0u, 0u, 0u, 455u, 0u, 456u, 0u, 0u, 457u, 0u, 0u, 458u, 0u, 0u, 0u, 0u, 0u, 459u, 0u, 0u, 0u, 0u, 0u, 0u, 460u, 0u, 0u, 461u, + 0u, 462u, 0u, 463u, 0u, 0u, 0u, 464u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 465u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 0u, 469u, 0u, 0u, 0u, 470u, 471u, 0u, 0u, 0u, 0u, 472u, 0u, 0u, 0u, 0u, 473u, 0u, 0u, 474u, 0u, 0u, + 0u, 0u, 475u, 0u, 476u, 0u, 0u, 0u, 0u, 477u, 0u, 0u, 478u, 0u, 479u, 0u, 0u, 480u, 0u, 0u, 481u, 0u, 482u, 0u, 0u, 0u, 0u, 483u, 0u, 0u, 0u, 0u, + 484u, 0u, 0u, 0u, 0u, 485u, 0u, 0u, 0u, 0u, 486u, 0u, 487u, 0u, 0u, 488u, 0u, 489u, 0u, 0u, 0u, 0u, 490u, 0u, 0u, 491u, 0u, 0u, 492u, 0u, 0u, 0u, + 0u, 493u, 494u, 0u, 0u, 0u, 0u, 495u, 0u, 496u, 0u, 0u, 0u, 0u, 497u, 0u, 498u, 0u, 499u, 500u, 0u, 0u, 0u, 0u, 501u, 0u, 502u, 503u, 0u, 0u, 504u, 0u, + 0u, 505u, 0u, 0u, 506u, 0u, 0u, 507u, 0u, 0u, 0u, 0u, 0u, 0u, 508u, 509u, 0u, 0u, 510u, 0u, 0u, 511u, 0u, 0u, 512u, 0u, 0u, 513u, 0u, 0u, 514u, 515u, + 0u, 0u, 0u, 516u, 0u, 0u, 517u, 0u, 518u, 0u, 519u, 520u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 521u, 0u, 0u, 0u, 0u, 0u, 0u, 522u, 0u, + 0u, 523u, 0u, 0u, 0u, 0u, 0u, 524u, 0u, 0u, 525u, 0u, 526u, 0u, 0u, 527u, 0u, 528u, 0u, 529u, 0u, 0u, 0u, 0u, 0u, 530u, 0u, 531u, 0u, 0u, 0u, 532u, + 0u, 533u, 0u, 534u, 0u, 0u, 535u, 0u, 0u, 0u, 0u, 536u, 0u, 537u, 0u, 538u, 0u, 0u, 539u, 0u, 540u, 0u, 541u, 0u, 542u, 0u, 0u, 543u, 0u, 0u, 0u, 544u, + 0u, 0u, 0u, 545u, 0u, 0u, 0u, 546u, 0u, 547u, 548u, 0u, 0u, 0u, 549u, 0u, 550u, 0u, 551u, 0u, 552u, 0u, 0u, 0u, 0u, 553u, 0u, 0u, 554u, 0u, 0u, 0u, + 0u, 0u, 555u, 0u, 556u, 0u, 557u, 558u, 0u, 559u, 0u, 560u, 0u, 0u, 561u, 562u, 0u, 0u, 0u, 563u, 0u, 0u, 0u, 0u, 0u, 564u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 565u, 0u, 566u, 0u, 0u, 0u, 0u, 567u, 0u, 0u, 568u, 0u, 569u, 0u, 0u, 570u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 571u, 0u, 572u, 0u, 0u, 0u, 0u, 573u, 0u, 0u, 574u, 0u, 0u, 575u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 576u, 0u, 0u, 577u, 0u, 578u, 0u, 0u, 0u, 0u, 579u, 0u, 580u, 0u, 0u, 0u, 581u, 0u, + 582u, 0u, 0u, 0u, 583u, 0u, 584u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 585u, 0u, 586u, 0u, 587u, 0u, 0u, 588u, 0u, 0u, 589u, 0u, 0u, 0u, 590u, 0u, 0u, + 591u, 592u, 0u, 0u, 0u, 0u, 0u, 593u, 0u, 594u, 0u, 0u, 595u, 0u, 0u, 0u, 0u, 0u, 0u, 596u, 0u, 0u, 597u, 0u, 0u, 598u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 599u, 0u, 0u, 600u, 0u, 0u, 0u, 0u, 0u, 601u, 0u, 0u, 0u, 0u, 602u, 0u, 0u, 0u, 0u, 603u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 604u, 0u, + 0u, 605u, 606u, 0u, 0u, 0u, 0u, 607u, 608u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 609u, 0u, 610u, 0u, 0u, 611u, 0u, 0u, 0u, 0u, 612u, 0u, + 613u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 614u, 0u, 0u, 615u, 0u, 0u, 0u, 0u, 0u, 616u, 0u, 617u, 0u, 0u, 618u, 0u, 0u, 0u, 0u, 0u, 619u, 0u, 0u, 620u, + 0u, 621u, 0u, 0u, 0u, 0u, 622u, 0u, 623u, 0u, 0u, 0u, 0u, 0u, 624u, 0u, 0u, 625u, 0u, 0u, 0u, 0u, 626u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 627u, 0u, + 0u, 0u, 628u, 0u, 0u, 629u, 0u, 0u, 630u, 0u, 631u, 632u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 633u, 0u, 0u, 0u, 0u, 634u, 0u, 0u, 0u, 0u, 0u, 0u, 635u, + 0u, 0u, 636u, 0u, 0u, 0u, 0u, 637u, 0u, 0u, 0u, 0u, 0u, 0u, 638u, 0u, 0u, 0u, 0u, 639u, 0u, 640u, 0u, 0u, 0u, 0u, 0u, 641u, 0u, 0u, 0u, 0u, + 642u, 0u, 643u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 644u, 0u, 0u, 0u, 0u, 0u, 0u, 645u, 0u, 0u, 0u, 646u, 647u, 0u, 0u, 0u, 0u, + 648u, 0u, 0u, 0u, 0u, 0u, 649u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 650u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, 652u, 0u, 0u, 0u, 653u, 0u, 654u, 0u, 0u, + 0u, 0u, 0u, 655u, 0u, 656u, 0u, 657u, 0u, 0u, 658u, 0u, 0u, 0u, 659u, 660u, 0u, 0u, 0u, 0u, 0u, 661u, 0u, 0u, 0u, 662u, 0u, 0u, 663u, 0u, 0u, 0u, + 0u, 0u, 664u, 0u, 665u, 0u, 666u, 0u, 0u, 0u, 667u, 0u, 668u, 0u, 0u, 669u, 0u, 0u, 670u, 0u, 0u, 0u, 0u, 671u, 0u, 0u, 0u, 0u, 0u, 672u, 0u, 0u, + 673u, 0u, 0u, 0u, 674u, 0u, 675u, 0u, 0u, 0u, 0u, 676u, 0u, 0u, 0u, 677u, 678u, 0u, 0u, 0u, 679u, 0u, 680u, 0u, 681u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 682u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 683u, 0u, 0u, 0u, 684u, 0u, 0u, 0u, 685u, 0u, 0u, 0u, 0u, + 0u, 0u, 686u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 687u, 688u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 689u, 0u, 0u, 0u, 690u, + 0u, 0u, 691u, 0u, 0u, 0u, 692u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 693u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 694u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 695u, 696u, 0u, 697u, 0u, 0u, 698u, 0u, 0u, 699u, 0u, 700u, 0u, 0u, 701u, 0u, 0u, 0u, 702u, 0u, 0u, 703u, 0u, 0u, 0u, 0u, 0u, + 704u, 0u, 0u, 0u, 0u, 0u, 0u, 705u, 0u, 0u, 706u, 707u, 0u, 0u, 708u, 0u, 0u, 0u, 0u, 0u, 0u, 709u, 0u, 0u, 710u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 712u, 0u, 0u, 0u, + 0u, 0u, 713u, 0u, 0u, 0u, 0u, 0u, 714u, 0u, 0u, 715u, 0u, 0u, 716u, 0u, 0u, 717u, 0u, 0u, 718u, 0u, 0u, 0u, 719u, 0u, 0u, 0u, 720u, 0u, 0u, 0u, + 721u, 0u, 0u, 0u, 0u, 0u, 0u, 722u, 0u, 0u, 0u, 723u, 0u, 0u, 0u, 0u, 0u, 724u, 0u, 725u, 0u, 726u, 0u, 0u, 0u, 727u, 0u, 0u, 0u, 728u, 0u, 0u, + 729u, 0u, 730u, 0u, 0u, 731u, 0u, 0u, 0u, 732u, 733u, 0u, 0u, 0u, 0u, 0u, 0u, 734u, 0u, 0u, 0u, 735u, 0u, 736u, 0u, 0u, 0u, 0u, 0u, 737u, 0u, 0u, + 738u, 0u, 0u, 739u, 0u, 0u, 740u, 0u, 0u, 741u, 0u, 0u, 0u, 0u, 0u, 742u, 0u, 0u, 743u, 0u, 744u, 0u, 745u, 0u, 0u, 0u, 746u, 0u, 0u, 0u, 0u, 747u, + 0u, 0u, 0u, 0u, 0u, 0u, 748u, 0u, 749u, 0u, 0u, 0u, 750u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 751u, 0u, 0u, 0u, 752u, 0u, 753u, 0u, 0u, + 754u, 755u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 756u, 0u, 0u, 0u, 757u, 0u, 0u, 758u, 0u, 0u, 759u, 0u, 0u, 0u, 760u, 0u, 0u, 0u, 761u, 0u, + 762u, 0u, 0u, 763u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 764u, 0u, 0u, 0u, 0u, 0u, 765u, 0u, 0u, 0u, 766u, 0u, 767u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 768u, 0u, 769u, 0u, 0u, 0u, 0u, 0u, 770u, 0u, 771u, 0u, 0u, 0u, 0u, 0u, 0u, 772u, 0u, 0u, 773u, 0u, 774u, 0u, 775u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 776u, 0u, 0u, 0u, 0u, 777u, 0u, 778u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 779u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 780u, 0u, 0u, 0u, 781u, 782u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 783u, 0u, 784u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 785u, 0u, 786u, 0u, + 0u, 787u, 0u, 0u, 788u, 0u, 789u, 0u, 0u, 790u, 0u, 791u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 792u, 0u, 793u, 0u, 794u, 0u, 0u, 0u, 0u, 795u, + 0u, 796u, 797u, 0u, 0u, 798u, 0u, 799u, 800u, 0u, 801u, 0u, 802u, 0u, 803u, 0u, 0u, 0u, 0u, 0u, 0u, 804u, 0u, 0u, 805u, 0u, 0u, 0u, 806u, 0u, 0u, 0u, + 0u, 807u, 0u, 0u, 808u, 0u, 0u, 809u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 810u, 0u, 0u, 811u, 0u, 0u, 0u, 0u, 0u, 812u, 0u, 813u, 0u, 0u, 0u, 0u, + 0u, 814u, 0u, 0u, 0u, 0u, 815u, 0u, 0u, 0u, 0u, 0u, 816u, 0u, 0u, 0u, 817u, 0u, 818u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 819u, 0u, 820u, 0u, 0u, 0u, + 0u, 0u, 821u, 0u, 822u, 0u, 0u, 0u, 0u, 0u, 823u, 0u, 0u, 824u, 0u, 825u, 0u, 826u, 0u, 0u, 0u, 827u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 828u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 829u, 0u, 830u, 0u, 0u, 831u, 0u, 0u, 832u, 0u, 0u, 0u, 833u, 0u, 0u, 834u, 0u, 0u, 835u, + 0u, 836u, 0u, 0u, 837u, 0u, 0u, 838u, 0u, 0u, 0u, 0u, 0u, 0u, 839u, 0u, 0u, 0u, 0u, 840u, 0u, 841u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 842u, 0u, 843u, + 0u, 0u, 0u, 0u, 0u, 844u, 0u, 845u, 0u, 0u, 0u, 0u, 0u, 846u, 0u, 0u, 847u, 0u, 848u, 0u, 849u, 0u, 0u, 0u, 0u, 850u, 0u, 0u, 0u, 0u, 0u, 0u, + 851u, 0u, 0u, 0u, 0u, 0u, 852u, 0u, 853u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 854u, 0u, 855u, 0u, 0u, 0u, 0u, 0u, 856u, 0u, 857u, 0u, 0u, 0u, 0u, 0u, + 858u, 0u, 0u, 859u, 0u, 860u, 0u, 861u, 0u, 0u, 0u, 0u, 862u, 0u, 0u, 0u, 0u, 0u, 863u, 0u, 864u, 0u, 865u, 866u, 0u, 0u, 0u, 0u, 0u, 867u, 0u, 868u, + 0u, 0u, 0u, 0u, 0u, 869u, 0u, 870u, 0u, 871u, 0u, 872u, 0u, 873u, 0u, 0u, 0u, 874u, 0u, 0u, 875u, 0u, 876u, 0u, 0u, 877u, 0u, 878u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 879u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 880u, 0u, 881u, 0u, 882u, 0u, 0u, 0u, 883u, 0u, 0u, 884u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 885u, 886u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 887u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 888u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 889u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 890u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 891u, 0u, 892u, 893u, 0u, 0u, 0u, 894u, 0u, 0u, 895u, 0u, 0u, 0u, 0u, 896u, 0u, 0u, + 897u, 898u, 0u, 899u, 0u, 900u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 901u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 902u, 0u, 903u, 0u, 904u, 0u, 0u, 905u, 906u, 907u, 0u, + 908u, 0u, 0u, 909u, 0u, 910u, 0u, 911u, 0u, 0u, 0u, 912u, 0u, 0u, 0u, 913u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 914u, 0u, 0u, 0u, 915u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 916u, 0u, 917u, 0u, 918u, 919u, 920u, 0u, 0u, 0u, 921u, 0u, 922u, 0u, 0u, 0u, 923u, 0u, 924u, 0u, 0u, 0u, 925u, 0u, 0u, 0u, 926u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 927u, 0u, 0u, 0u, 928u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 929u, 0u, 0u, 930u, 0u, 931u, 0u, 0u, 0u, 932u, 0u, + 0u, 0u, 933u, 0u, 0u, 934u, 935u, 0u, 0u, 936u, 0u, 937u, 0u, 0u, 0u, 938u, 0u, 0u, 0u, 939u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 940u, 0u, 0u, 0u, + 941u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 942u, 0u, 943u, 0u, 944u, 0u, 0u, 945u, 0u, 0u, 0u, 946u, 0u, 0u, 947u, 0u, 0u, 948u, 0u, 0u, 949u, 0u, 0u, 0u, + 950u, 0u, 0u, 0u, 951u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 952u, 0u, 0u, 0u, 953u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 954u, 0u, 0u, 955u, 0u, 956u, 0u, + 0u, 957u, 0u, 0u, 0u, 958u, 0u, 959u, 0u, 0u, 0u, 960u, 0u, 961u, 0u, 962u, 0u, 963u, 0u, 0u, 0u, 964u, 0u, 0u, 0u, 965u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 966u, 0u, 0u, 0u, 967u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 968u, 0u, 969u, 0u, 970u, 0u, 971u, 0u, 0u, 0u, 972u, 0u, 973u, 0u, 0u, 0u, 974u, 0u, + 975u, 0u, 0u, 0u, 976u, 0u, 0u, 0u, 977u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 978u, 0u, 0u, 0u, 979u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 980u, 0u, 981u, + 0u, 982u, 0u, 0u, 983u, 0u, 0u, 0u, 984u, 0u, 985u, 0u, 0u, 0u, 0u, 986u, 0u, 987u, 0u, 988u, 0u, 0u, 0u, 989u, 0u, 0u, 0u, 990u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 991u, 0u, 0u, 0u, 992u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 993u, 0u, 994u, 0u, 995u, 0u, 996u, 0u, 0u, 0u, 997u, 0u, 998u, 0u, 0u, 0u, + 999u, 0u, 1000u, 0u, 0u, 0u, 1001u, 0u, 0u, 0u, 1002u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1003u, 0u, 0u, 0u, 1004u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 1005u, 0u, 1006u, 0u, 1007u, 0u, 0u, 1008u, 0u, 0u, 0u, 1009u, 0u, 0u, 1010u, 0u, 1011u, 0u, 0u, 0u, 1012u, 0u, 0u, 0u, 1013u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 1014u, 0u, 0u, 0u, 1015u, 0u, 0u, 0u, 0u, 0u, 1016u, 0u, 1017u, 0u, 1018u, 0u, 0u, 1019u, 0u, 0u, 0u, 1020u, 0u, 0u, 1021u, 0u, 0u, 1022u, 0u, 0u, 0u, + 0u, 0u, 1023u, 0u, 1024u, 0u, 0u, 0u, 1025u, 0u, 0u, 0u, 1026u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1027u, 0u, 0u, 0u, 1028u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 1029u, 0u, 1030u, 0u, 1031u, 0u, 1032u, 0u, 0u, 0u, 1033u, 0u, 1034u, 0u, 0u, 0u, 1035u, 0u, 1036u, 0u, 0u, 0u, 1037u, 0u, 0u, 0u, 1038u, +}; void recomp_unit_0213_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=4,5,29,6,7,2 fprs= gpr_occ=4728 fpr_occ=0 gpr_total=7537 fpr_total=0 @@ -54,18 +187,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08B58004u; - entry_id = 0u; - if (entry_delta < 16368u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0213[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0213[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16368u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0213[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08B58004; @@ -1112,6 +1235,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B58004u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1228,8 +1375,8 @@ L_08B58084: L_08B58088: jump_target = ctx.gpr[31]; aot_gpr_2 = (ctx.gpr[3] | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58090: @@ -1247,8 +1394,8 @@ L_08B580B0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B580BC: @@ -1285,14 +1432,14 @@ L_08B580E0: L_08B580F0: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B580F8: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58100: @@ -1330,15 +1477,15 @@ L_08B58124: L_08B5813C: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58144: jump_target = ctx.gpr[31]; aot_gpr_2 = (ctx.gpr[9] - ctx.gpr[8]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5814C: @@ -1367,8 +1514,8 @@ L_08B58160: L_08B58178: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58180: @@ -1477,14 +1624,14 @@ L_08B58224: aot_gpr_2 = (aot_gpr_4 + static_cast(32)); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_5 - aot_gpr_2); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58230: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58238: @@ -1534,8 +1681,8 @@ L_08B58270: } L_08B5828C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58294: @@ -1574,8 +1721,8 @@ L_08B582BC: goto L_08B582C4; L_08B582C4: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B582CC: @@ -1608,8 +1755,8 @@ L_08B582F4: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 - aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58300: @@ -1621,8 +1768,8 @@ L_08B58310: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5831C: @@ -1654,8 +1801,8 @@ L_08B5833C: } L_08B58358: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58360: @@ -1708,8 +1855,8 @@ L_08B58394: L_08B583A0: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_4 - ctx.gpr[9]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B583A8: @@ -1729,8 +1876,8 @@ L_08B583C0: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_5); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-27176))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B583D8: @@ -1739,8 +1886,8 @@ L_08B583D8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B583EC: @@ -1749,8 +1896,8 @@ L_08B583EC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58400: @@ -1759,8 +1906,8 @@ L_08B58400: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58414: @@ -1769,8 +1916,8 @@ L_08B58414: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58428: @@ -1779,8 +1926,8 @@ L_08B58428: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5843C: @@ -1789,8 +1936,8 @@ L_08B5843C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58450: @@ -1799,8 +1946,8 @@ L_08B58450: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58464: @@ -1809,8 +1956,8 @@ L_08B58464: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58478: @@ -1819,8 +1966,8 @@ L_08B58478: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5848C: @@ -1829,8 +1976,8 @@ L_08B5848C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B584A0: @@ -1839,8 +1986,8 @@ L_08B584A0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B584B4: @@ -1849,8 +1996,8 @@ L_08B584B4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B584C8: @@ -1859,8 +2006,8 @@ L_08B584C8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B584DC: @@ -1869,8 +2016,8 @@ L_08B584DC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B584F0: @@ -1879,8 +2026,8 @@ L_08B584F0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58504: @@ -1889,8 +2036,8 @@ L_08B58504: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58518: @@ -1899,8 +2046,8 @@ L_08B58518: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5852C: @@ -1909,8 +2056,8 @@ L_08B5852C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58540: @@ -1919,8 +2066,8 @@ L_08B58540: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58554: @@ -1929,8 +2076,8 @@ L_08B58554: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58568: @@ -1939,8 +2086,8 @@ L_08B58568: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5857C: @@ -1949,8 +2096,8 @@ L_08B5857C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58590: @@ -1959,8 +2106,8 @@ L_08B58590: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B585A4: @@ -1969,8 +2116,8 @@ L_08B585A4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B585B8: @@ -1979,8 +2126,8 @@ L_08B585B8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B585CC: @@ -1989,8 +2136,8 @@ L_08B585CC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B585E0: @@ -1999,8 +2146,8 @@ L_08B585E0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B585F4: @@ -2009,8 +2156,8 @@ L_08B585F4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58608: @@ -2019,8 +2166,8 @@ L_08B58608: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5861C: @@ -2029,8 +2176,8 @@ L_08B5861C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58630: @@ -2039,8 +2186,8 @@ L_08B58630: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58644: @@ -2049,8 +2196,8 @@ L_08B58644: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58658: @@ -2059,8 +2206,8 @@ L_08B58658: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5866C: @@ -2069,8 +2216,8 @@ L_08B5866C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58680: @@ -2079,8 +2226,8 @@ L_08B58680: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58694: @@ -2089,8 +2236,8 @@ L_08B58694: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B586A8: @@ -2099,8 +2246,8 @@ L_08B586A8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B586BC: @@ -2109,8 +2256,8 @@ L_08B586BC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B586D0: @@ -2119,8 +2266,8 @@ L_08B586D0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B586E4: @@ -2129,8 +2276,8 @@ L_08B586E4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B586F8: @@ -2139,8 +2286,8 @@ L_08B586F8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5870C: @@ -2149,8 +2296,8 @@ L_08B5870C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58720: @@ -2159,8 +2306,8 @@ L_08B58720: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58734: @@ -2169,8 +2316,8 @@ L_08B58734: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58748: @@ -2179,8 +2326,8 @@ L_08B58748: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5875C: @@ -2189,8 +2336,8 @@ L_08B5875C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58770: @@ -2199,8 +2346,8 @@ L_08B58770: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58784: @@ -2209,8 +2356,8 @@ L_08B58784: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58798: @@ -2219,8 +2366,8 @@ L_08B58798: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B587AC: @@ -2229,8 +2376,8 @@ L_08B587AC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B587C0: @@ -2239,8 +2386,8 @@ L_08B587C0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B587D4: @@ -2249,8 +2396,8 @@ L_08B587D4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B587E8: @@ -2259,8 +2406,8 @@ L_08B587E8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B587FC: @@ -2269,8 +2416,8 @@ L_08B587FC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58810: @@ -2279,8 +2426,8 @@ L_08B58810: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58824: @@ -2289,8 +2436,8 @@ L_08B58824: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58838: @@ -2299,8 +2446,8 @@ L_08B58838: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5884C: @@ -2309,8 +2456,8 @@ L_08B5884C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58860: @@ -2319,8 +2466,8 @@ L_08B58860: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58874: @@ -2329,8 +2476,8 @@ L_08B58874: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58888: @@ -2339,8 +2486,8 @@ L_08B58888: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5889C: @@ -2349,8 +2496,8 @@ L_08B5889C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B588B0: @@ -2359,8 +2506,8 @@ L_08B588B0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B588C4: @@ -2369,8 +2516,8 @@ L_08B588C4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B588D8: @@ -2379,8 +2526,8 @@ L_08B588D8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B588EC: @@ -2389,8 +2536,8 @@ L_08B588EC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58900: @@ -2399,8 +2546,8 @@ L_08B58900: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58914: @@ -2409,8 +2556,8 @@ L_08B58914: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58928: @@ -2419,8 +2566,8 @@ L_08B58928: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5893C: @@ -2429,8 +2576,8 @@ L_08B5893C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58950: @@ -2451,8 +2598,8 @@ L_08B58968: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58974: @@ -2477,8 +2624,8 @@ L_08B58984: L_08B58990: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_4 - aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58998: @@ -2538,8 +2685,8 @@ L_08B589E0: } L_08B589F0: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B589F8: @@ -2563,8 +2710,8 @@ L_08B58A00: L_08B58A10: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58A18: @@ -2690,14 +2837,14 @@ L_08B58AD0: aot_gpr_2 = (aot_gpr_4 + static_cast(32)); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_5 - aot_gpr_2); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58ADC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58AE4: @@ -2758,8 +2905,8 @@ L_08B58B2C: } L_08B58B34: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58B3C: @@ -2780,8 +2927,8 @@ L_08B58B44: L_08B58B4C: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58B54: @@ -2830,8 +2977,8 @@ L_08B58B94: aot_gpr_4 = (aot_mem.aot_direct_load8(aot_gpr_5 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 - aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58BA0: @@ -2889,8 +3036,8 @@ L_08B58BE0: L_08B58BF8: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58C00: @@ -2905,8 +3052,8 @@ L_08B58C00: L_08B58C0C: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58C14: @@ -2953,8 +3100,8 @@ L_08B58C4C: L_08B58C54: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58C5C: @@ -2976,8 +3123,8 @@ L_08B58C68: goto L_08B58C78; L_08B58C78: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58C80: @@ -3012,8 +3159,8 @@ L_08B58C98: L_08B58CA4: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58CAC: @@ -3029,8 +3176,8 @@ L_08B58CAC: L_08B58CBC: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58CC4: @@ -3078,8 +3225,8 @@ L_08B58D5C: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26720))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B58D74: @@ -3846,8 +3993,21 @@ L_08B5924C: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(4))); ctx.gpr[31] = (0x08B59278u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 326u, 0x08B59278u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59278u) goto L_08B59278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59278: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), ctx.gpr[3]); { const bool branch_taken = 0u == 0u; @@ -4083,8 +4243,21 @@ L_08B59400: aot_gpr_7 = (ctx.gpr[9] | 0u); ctx.gpr[31] = (0x08B59434u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 354u, 0x08B59434u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59434u) goto L_08B59434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59434: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), ctx.gpr[3]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_2); @@ -4257,8 +4430,21 @@ L_08B59580: aot_gpr_7 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08B59598u); ctx.gpr[8] = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 377u, 0x08B59598u, 0x08B5F634u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 749u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 749u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 749u, 0x08B5F634u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59598u) goto L_08B59598; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59598: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(88), aot_gpr_2); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -4275,8 +4461,21 @@ L_08B595C0: aot_gpr_5 = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x08B595CCu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 379u, 0x08B595CCu, 0x08B5F43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 726u, 0x08B5F43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B595CCu) goto L_08B595CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B595CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_2); @@ -4286,8 +4485,21 @@ L_08B595CC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(92))); ctx.gpr[31] = (0x08B595ECu); aot_gpr_6 = (aot_gpr_6 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 380u, 0x08B595ECu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B595ECu) goto L_08B595EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B595EC: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(60))); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(56))); @@ -4295,15 +4507,41 @@ L_08B595EC: ctx.gpr[8] = (aot_gpr_29 + static_cast(32)); ctx.gpr[31] = (0x08B59604u); ctx.gpr[9] = (aot_gpr_29 + static_cast(36)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 381u, 0x08B59604u, 0x08B6012Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 13u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 13u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 13u, 0x08B6012Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59604u) goto L_08B59604; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59604: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(64))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(76), aot_gpr_2); ctx.gpr[31] = (0x08B59614u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 382u, 0x08B59614u, 0x08B5F894u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 793u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 793u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 793u, 0x08B5F894u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59614u) goto L_08B59614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59614: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -4412,8 +4650,21 @@ L_08B596C4: L_08B596CC: ctx.gpr[31] = (0x08B596D4u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 396u, 0x08B596D4u, 0x08B5FADCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 818u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 818u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 818u, 0x08B5FADCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B596D4u) goto L_08B596D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B596D4: ctx.gpr[21] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); @@ -4421,15 +4672,41 @@ L_08B596D4: aot_gpr_6 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x08B596ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(76), ctx.gpr[30]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 397u, 0x08B596ECu, 0x08B5F8D0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 795u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 795u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 795u, 0x08B5F8D0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B596ECu) goto L_08B596EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B596EC: ctx.gpr[30] = (aot_gpr_2 | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B596FCu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 398u, 0x08B596FCu, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B596FCu) goto L_08B596FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B596FC: { const bool branch_taken = static_cast(ctx.gpr[16]) <= 0; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(76), ctx.gpr[30]); @@ -4443,8 +4720,21 @@ L_08B59704: aot_gpr_5 = (ctx.gpr[30] | 0u); ctx.gpr[31] = (0x08B59714u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 400u, 0x08B59714u, 0x08B5FBF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 835u, 0x08B5FBF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59714u) goto L_08B59714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59714: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(76), aot_gpr_2); goto L_08B59718; @@ -4460,8 +4750,21 @@ L_08B59720: aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08B5972Cu); aot_gpr_6 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 403u, 0x08B5972Cu, 0x08B5FADCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 818u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 818u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 818u, 0x08B5FADCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5972Cu) goto L_08B5972C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5972C: ctx.gpr[22] = (aot_gpr_2 | 0u); goto L_08B59730; @@ -4477,8 +4780,21 @@ L_08B59738: aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08B59744u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 406u, 0x08B59744u, 0x08B5FBF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 835u, 0x08B5FBF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59744u) goto L_08B59744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59744: ctx.gpr[22] = (aot_gpr_2 | 0u); goto L_08B59748; @@ -4494,8 +4810,21 @@ L_08B59750: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08B5975Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 409u, 0x08B5975Cu, 0x08B5FBF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 835u, 0x08B5FBF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5975Cu) goto L_08B5975C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5975C: ctx.gpr[21] = (aot_gpr_2 | 0u); goto L_08B59760; @@ -4506,8 +4835,21 @@ L_08B59760: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B59778u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 411u, 0x08B59778u, 0x08B5FDACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 857u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 857u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 857u, 0x08B5FDACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59778u) goto L_08B59778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59778: ctx.gpr[20] = (aot_gpr_2 | 0u); ctx.gpr[30] = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(12))); @@ -4516,8 +4858,21 @@ L_08B59778: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B59794u); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 412u, 0x08B59794u, 0x08B5FD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 848u, 0x08B5FD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59794u) goto L_08B59794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59794: aot_gpr_4 = (aot_gpr_2 | 0u); { const bool branch_taken = static_cast(aot_gpr_4) >= 0; @@ -4557,15 +4912,41 @@ L_08B597D0: aot_gpr_5 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B597E0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 417u, 0x08B597E0u, 0x08B5FBF0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 835u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 835u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 835u, 0x08B5FBF0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B597E0u) goto L_08B597E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B597E0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(80), aot_gpr_2); ctx.gpr[31] = (0x08B597F0u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 418u, 0x08B597F0u, 0x08B5FD24u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 848u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 848u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 848u, 0x08B5FD24u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B597F0u) goto L_08B597F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B597F0: { const bool branch_taken = static_cast(aot_gpr_2) > 0; aot_gpr_4 = (32752u << 16u); @@ -4686,8 +5067,21 @@ L_08B598A0: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B598B4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 432u, 0x08B598B4u, 0x08B5FF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 873u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 873u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 873u, 0x08B5FF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B598B4u) goto L_08B598B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B598B4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -4713,16 +5107,42 @@ L_08B598D4: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B598F0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 435u, 0x08B598F0u, 0x08B5FF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 873u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 873u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 873u, 0x08B5FF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B598F0u) goto L_08B598F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B598F0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); ctx.gpr[31] = (0x08B59904u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 436u, 0x08B59904u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59904u) goto L_08B59904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59904: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), ctx.gpr[3]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_2); @@ -4753,8 +5173,21 @@ L_08B59930: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); ctx.gpr[31] = (0x08B5993Cu); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 440u, 0x08B5993Cu, 0x08B6026Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 29u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 29u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 29u, 0x08B6026Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5993Cu) goto L_08B5993C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5993C: aot_gpr_4 = (2234u << 16u); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16452))); @@ -4891,8 +5324,21 @@ L_08B59A28: ctx.gpr[19] = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B59A34u); ctx.gpr[18] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 457u, 0x08B59A34u, 0x08B62778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 510u, 0x08B62778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59A34u) goto L_08B59A34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59A34: ctx.gpr[17] = (ctx.gpr[3] | 0u); { const bool branch_taken = 0u == 0u; @@ -4928,8 +5374,21 @@ L_08B59A74: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B59A80u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 461u, 0x08B59A80u, 0x08B62778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 510u, 0x08B62778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59A80u) goto L_08B59A80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59A80: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_4 = (aot_gpr_2 | 0u); @@ -4961,8 +5420,21 @@ L_08B59AA0: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08B59AD0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 465u, 0x08B59AD0u, 0x08B5FF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 873u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 873u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 873u, 0x08B5FF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59AD0u) goto L_08B59AD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59AD0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5075,13 +5547,39 @@ L_08B59BA8: aot_gpr_5 = (ctx.gpr[3] | 0u); ctx.gpr[31] = (0x08B59BB4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 478u, 0x08B59BB4u, 0x08B626A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 496u, 0x08B626A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59BB4u) goto L_08B59BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59BB4: ctx.gpr[31] = (0x08B59BBCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 479u, 0x08B59BBCu, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59BBCu) goto L_08B59BBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59BBC: ctx.gpr[17] = (ctx.gpr[3] | 0u); { const bool branch_taken = ctx.gpr[30] != 0u; @@ -5095,8 +5593,21 @@ L_08B59BC8: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B59BD4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 481u, 0x08B59BD4u, 0x08B62778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 510u, 0x08B62778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59BD4u) goto L_08B59BD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59BD4: ctx.gpr[17] = (ctx.gpr[3] | 0u); ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -5107,8 +5618,21 @@ L_08B59BDC: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08B59BF0u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 483u, 0x08B59BF0u, 0x08B5FF5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 873u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 873u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 873u, 0x08B5FF5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59BF0u) goto L_08B59BF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59BF0: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -5142,21 +5666,60 @@ L_08B59C34: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B59C40u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 488u, 0x08B59C40u, 0x08B626A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 496u, 0x08B626A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59C40u) goto L_08B59C40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59C40: ctx.gpr[31] = (0x08B59C48u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 489u, 0x08B59C48u, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59C48u) goto L_08B59C48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59C48: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); aot_gpr_4 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08B59C5Cu); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 490u, 0x08B59C5Cu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59C5Cu) goto L_08B59C5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59C5C: ctx.gpr[17] = (ctx.gpr[3] | 0u); { const bool branch_taken = ctx.gpr[30] != 0u; @@ -5251,26 +5814,78 @@ L_08B59CF0: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); ctx.gpr[31] = (0x08B59CFCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 504u, 0x08B59CFCu, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59CFCu) goto L_08B59CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59CFC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.gpr[31] = (0x08B59D08u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 505u, 0x08B59D08u, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59D08u) goto L_08B59D08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59D08: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); ctx.gpr[31] = (0x08B59D14u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 506u, 0x08B59D14u, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59D14u) goto L_08B59D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59D14: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); ctx.gpr[31] = (0x08B59D20u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 507u, 0x08B59D20u, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59D20u) goto L_08B59D20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59D20: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); @@ -5291,32 +5906,97 @@ L_08B59D40: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); ctx.gpr[31] = (0x08B59D4Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 510u, 0x08B59D4Cu, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59D4Cu) goto L_08B59D4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59D4C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); ctx.gpr[31] = (0x08B59D58u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 511u, 0x08B59D58u, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59D58u) goto L_08B59D58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59D58: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(68))); ctx.gpr[31] = (0x08B59D64u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 512u, 0x08B59D64u, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59D64u) goto L_08B59D64; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59D64: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(88))); ctx.gpr[31] = (0x08B59D70u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 513u, 0x08B59D70u, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59D70u) goto L_08B59D70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59D70: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(80))); ctx.gpr[31] = (0x08B59D7Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 514u, 0x08B59D7Cu, 0x08B5F500u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 736u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 736u, 0x08B5F500u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59D7Cu) goto L_08B59D7C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59D7C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(104))); goto L_08B59D80; @@ -5337,8 +6017,21 @@ L_08B59D90: goto L_08B59D9C; L_08B59D9C: ctx.gpr[31] = (0x08B59DA4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 518u, 0x08B59DA4u, 0x08B62778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 510u, 0x08B62778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B59DA4u) goto L_08B59DA4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B59DA4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -5365,8 +6058,8 @@ L_08B59DB0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59DE0: @@ -5382,8 +6075,8 @@ L_08B59DFC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59E08: @@ -5398,8 +6091,8 @@ L_08B59E20: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59E2C: @@ -5428,8 +6121,8 @@ L_08B59E40: L_08B59E48: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59E50: @@ -5480,8 +6173,8 @@ L_08B59E90: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), 0u); jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59E9C: @@ -5509,15 +6202,15 @@ L_08B59EC0: aot_gpr_4 = (0u | 0u); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59ECC: jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59ED4: @@ -5591,15 +6284,15 @@ L_08B59F2C: } L_08B59F3C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59F44: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59F4C: @@ -5658,15 +6351,15 @@ L_08B59F9C: L_08B59FA0: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59FA8: jump_target = ctx.gpr[31]; aot_gpr_2 = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B59FB0: @@ -5720,8 +6413,8 @@ L_08B59FE8: L_08B5A014: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5A01C: @@ -5798,8 +6491,8 @@ L_08B5A0AC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5A0B8: @@ -5941,8 +6634,21 @@ L_08B5A1E8: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B5A1F8u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 590u, 0x08B5A1F8u, 0x08B62778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 510u, 0x08B62778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A1F8u) goto L_08B5A1F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A1F8: ctx.gpr[19] = (ctx.gpr[3] | 0u); { const bool branch_taken = 0u == 0u; @@ -5975,8 +6681,21 @@ L_08B5A228: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B5A234u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 595u, 0x08B5A234u, 0x08B5DFFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 481u, 0x08B5DFFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A234u) goto L_08B5A234; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A234: ctx.gpr[17] = (ctx.gpr[3] | 0u); ctx.gpr[16] = (aot_gpr_2 | 0u); @@ -5985,8 +6704,21 @@ L_08B5A234: aot_gpr_7 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B5A250u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 596u, 0x08B5A250u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A250u) goto L_08B5A250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A250: ctx.gpr[19] = (ctx.gpr[3] | 0u); ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -6012,14 +6744,40 @@ L_08B5A268: aot_gpr_7 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B5A290u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 599u, 0x08B5A290u, 0x08B5E254u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 515u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 515u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 515u, 0x08B5E254u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A290u) goto L_08B5A290; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A290: aot_gpr_5 = (ctx.gpr[3] | 0u); ctx.gpr[31] = (0x08B5A29Cu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 600u, 0x08B5A29Cu, 0x08B626A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 496u, 0x08B626A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A29Cu) goto L_08B5A29C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A29C: aot_gpr_4 = (aot_gpr_2 + static_cast(48)); aot_gpr_5 = (ctx.gpr[21] + ctx.gpr[23]); @@ -6027,24 +6785,63 @@ L_08B5A29C: ctx.gpr[23] = (ctx.gpr[23] + static_cast(1)); ctx.gpr[31] = (0x08B5A2B4u); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 601u, 0x08B5A2B4u, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A2B4u) goto L_08B5A2B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A2B4: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); ctx.gpr[31] = (0x08B5A2C8u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 602u, 0x08B5A2C8u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A2C8u) goto L_08B5A2C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A2C8: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_7 = (ctx.gpr[19] | 0u); aot_gpr_6 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08B5A2DCu); aot_gpr_4 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 603u, 0x08B5A2DCu, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A2DCu) goto L_08B5A2DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A2DC: aot_gpr_4 = (2234u << 16u); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16556))); @@ -6217,8 +7014,21 @@ L_08B5A424: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B5A43Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 624u, 0x08B5A43Cu, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A43Cu) goto L_08B5A43C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A43C: ctx.gpr[19] = (ctx.gpr[3] | 0u); { const bool branch_taken = 0u == 0u; @@ -6309,22 +7119,61 @@ L_08B5A4E4: aot_gpr_5 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08B5A500u); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 635u, 0x08B5A500u, 0x08B626A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 496u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 496u, 0x08B626A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A500u) goto L_08B5A500; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A500: ctx.gpr[22] = (aot_gpr_2 | 0u); ctx.gpr[31] = (0x08B5A50Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 636u, 0x08B5A50Cu, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A50Cu) goto L_08B5A50C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A50C: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); ctx.gpr[31] = (0x08B5A520u); aot_gpr_6 = (aot_gpr_2 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 637u, 0x08B5A520u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A520u) goto L_08B5A520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A520: ctx.gpr[23] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(72))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(76))); @@ -6361,8 +7210,21 @@ L_08B5A558: aot_gpr_7 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B5A570u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 641u, 0x08B5A570u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5A570u) goto L_08B5A570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5A570: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); @@ -6708,8 +7570,8 @@ L_08B5A7E4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5A818: @@ -6776,8 +7638,8 @@ L_08B5A88C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5A8C0: @@ -6841,8 +7703,8 @@ L_08B5A91C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5A948: @@ -6860,8 +7722,8 @@ L_08B5A948: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5A974: @@ -6938,8 +7800,8 @@ L_08B5A9EC: ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[8]); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26440))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5AA04: @@ -6955,8 +7817,8 @@ L_08B5AA20: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5AA2C: @@ -6978,14 +7840,27 @@ L_08B5AA3C: aot_gpr_6 = (ctx.gpr[8] | 0u); ctx.gpr[31] = (0x08B5AA58u); aot_gpr_7 = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 709u, 0x08B5AA58u, 0x08B5C42Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 57u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 57u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 57u, 0x08B5C42Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5AA58u) goto L_08B5AA58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5AA58: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5AA64: @@ -7001,8 +7876,21 @@ L_08B5AA64: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(508), aot_run_words); } ctx.gpr[31] = (0x08B5AAA0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(428), aot_gpr_7); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 711u, 0x08B5AAA0u, 0x08B5DF6Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 472u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 472u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 472u, 0x08B5DF6Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5AAA0u) goto L_08B5AAA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5AAA0: aot_gpr_4 = (0u | 0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(392), 0u); @@ -7099,8 +7987,21 @@ L_08B5AB74: aot_gpr_5 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B5AB84u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 721u, 0x08B5AB84u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5AB84u) goto L_08B5AB84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5AB84: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -7119,8 +8020,21 @@ L_08B5ABA0: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5ABB0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 723u, 0x08B5ABB0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5ABB0u) goto L_08B5ABB0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5ABB0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -7220,8 +8134,8 @@ L_08B5AC60: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_7); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-26296))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5AC78: @@ -7697,8 +8611,21 @@ L_08B5AFFC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(436))); ctx.gpr[31] = (0x08B5B008u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(432))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 787u, 0x08B5B008u, 0x08B62778u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 510u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 510u, 0x08B62778u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B008u) goto L_08B5B008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B008: ctx.gpr[19] = (ctx.gpr[3] | 0u); ctx.gpr[18] = (aot_gpr_2 | 0u); @@ -7707,8 +8634,21 @@ L_08B5B008: L_08B5B014: ctx.gpr[31] = (0x08B5B01Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 789u, 0x08B5B01Cu, 0x08B5EF84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 674u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 674u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 674u, 0x08B5EF84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B01Cu) goto L_08B5B01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B01C: aot_gpr_7 = (ctx.gpr[3] | 0u); { const bool branch_taken = 0u == 0u; @@ -7747,8 +8687,21 @@ L_08B5B05C: L_08B5B064: ctx.gpr[31] = (0x08B5B06Cu); aot_gpr_4 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 794u, 0x08B5B06Cu, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B06Cu) goto L_08B5B06C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B06C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(420))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(416))); @@ -7828,8 +8781,21 @@ L_08B5B0F4: aot_gpr_7 = (aot_gpr_29 + static_cast(36)); ctx.gpr[31] = (0x08B5B108u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 807u, 0x08B5B108u, 0x08B5C0D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 15u, 0x08B5C0D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B108u) goto L_08B5B108; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B108: ctx.gpr[23] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8550,8 +9516,21 @@ L_08B5B62C: aot_gpr_7 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B5B668u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 887u, 0x08B5B668u, 0x08B6159Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 269u, 0x08B6159Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B668u) goto L_08B5B668; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B668: aot_gpr_4 = (2234u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16652))); @@ -8569,8 +9548,21 @@ L_08B5B668: aot_gpr_7 = (ctx.gpr[19] | 0u); ctx.gpr[31] = (0x08B5B6A8u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 888u, 0x08B5B6A8u, 0x08B61028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 199u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 199u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 199u, 0x08B61028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B6A8u) goto L_08B5B6A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B6A8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(484))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(480))); @@ -8660,8 +9652,21 @@ L_08B5B764: aot_gpr_7 = (aot_gpr_29 + static_cast(36)); ctx.gpr[31] = (0x08B5B778u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 896u, 0x08B5B778u, 0x08B5C0D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 15u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 15u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 15u, 0x08B5C0D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B778u) goto L_08B5B778; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B778: ctx.gpr[23] = (aot_gpr_2 | 0u); { const bool branch_taken = 0u == 0u; @@ -8786,8 +9791,21 @@ L_08B5B830: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); ctx.gpr[31] = (0x08B5B840u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 913u, 0x08B5B840u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B840u) goto L_08B5B840; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B840: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -8808,8 +9826,21 @@ L_08B5B864: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5B874u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(444))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 915u, 0x08B5B874u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B874u) goto L_08B5B874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B874: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -8886,8 +9917,21 @@ L_08B5B8EC: aot_gpr_5 = (aot_gpr_7 | 0u); ctx.gpr[31] = (0x08B5B8FCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 926u, 0x08B5B8FCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B8FCu) goto L_08B5B8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B8FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -8909,8 +9953,21 @@ L_08B5B924: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5B934u); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 928u, 0x08B5B934u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B934u) goto L_08B5B934; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B934: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -8993,8 +10050,21 @@ L_08B5B9C0: aot_gpr_5 = (ctx.gpr[9] | 0u); ctx.gpr[31] = (0x08B5B9D0u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 939u, 0x08B5B9D0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5B9D0u) goto L_08B5B9D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5B9D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9015,8 +10085,21 @@ L_08B5B9F4: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5BA04u); aot_gpr_5 = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 941u, 0x08B5BA04u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BA04u) goto L_08B5BA04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BA04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9100,8 +10183,21 @@ L_08B5BA84: aot_gpr_5 = (aot_gpr_7 | 0u); ctx.gpr[31] = (0x08B5BA94u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 951u, 0x08B5BA94u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BA94u) goto L_08B5BA94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BA94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9122,8 +10218,21 @@ L_08B5BAB8: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5BAC8u); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 953u, 0x08B5BAC8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BAC8u) goto L_08B5BAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BAC8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9216,8 +10325,21 @@ L_08B5BB58: aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08B5BB68u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 965u, 0x08B5BB68u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BB68u) goto L_08B5BB68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BB68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9238,8 +10360,21 @@ L_08B5BB8C: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5BB9Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 967u, 0x08B5BB9Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BB9Cu) goto L_08B5BB9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BB9C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9310,8 +10445,21 @@ L_08B5BC14: aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08B5BC24u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 977u, 0x08B5BC24u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BC24u) goto L_08B5BC24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BC24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9332,8 +10480,21 @@ L_08B5BC48: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5BC58u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 979u, 0x08B5BC58u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BC58u) goto L_08B5BC58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BC58: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9418,8 +10579,21 @@ L_08B5BCE0: aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08B5BCF0u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 990u, 0x08B5BCF0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BCF0u) goto L_08B5BCF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BCF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9440,8 +10614,21 @@ L_08B5BD14: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5BD24u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 992u, 0x08B5BD24u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BD24u) goto L_08B5BD24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BD24: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9512,8 +10699,21 @@ L_08B5BD9C: aot_gpr_5 = (ctx.gpr[22] | 0u); ctx.gpr[31] = (0x08B5BDACu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 1002u, 0x08B5BDACu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BDACu) goto L_08B5BDAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BDAC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9535,8 +10735,21 @@ L_08B5BDD4: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5BDE4u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 1004u, 0x08B5BDE4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BDE4u) goto L_08B5BDE4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BDE4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9605,8 +10818,21 @@ L_08B5BE58: aot_gpr_5 = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x08B5BE68u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 1013u, 0x08B5BE68u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BE68u) goto L_08B5BE68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BE68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -9626,8 +10852,21 @@ L_08B5BE88: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5BE98u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 1015u, 0x08B5BE98u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BE98u) goto L_08B5BE98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BE98: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9718,8 +10957,21 @@ L_08B5BF24: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08B5BF34u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 1026u, 0x08B5BF34u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BF34u) goto L_08B5BF34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BF34: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9740,8 +10992,21 @@ L_08B5BF58: aot_gpr_6 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B5BF68u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 1028u, 0x08B5BF68u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BF68u) goto L_08B5BF68; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BF68: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -9812,8 +11077,21 @@ L_08B5BFE0: aot_gpr_5 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08B5BFF0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0213->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0213_entry, 1038u, 0x08B5BFF0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5BFF0u) goto L_08B5BFF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5BFF0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); diff --git a/profiles/vcs/generated/generated_unit_0214.cpp b/profiles/vcs/generated/generated_unit_0214.cpp index 17a919b..9c44c0b 100644 --- a/profiles/vcs/generated/generated_unit_0214.cpp +++ b/profiles/vcs/generated/generated_unit_0214.cpp @@ -953,6 +953,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B5C000u; + if (local_delta_v813 >= 16368u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -980,8 +1004,21 @@ L_08B5C00C: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5C01Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 3u, 0x08B5C01Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5C01Cu) goto L_08B5C01C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5C01C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -1020,8 +1057,21 @@ L_08B5C050: aot_gpr_6 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B5C060u); aot_gpr_7 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 8u, 0x08B5C060u, 0x08B5A818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 682u, 0x08B5A818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5C060u) goto L_08B5C060; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5C060: aot_gpr_5 = (ctx.gpr[19] | 0u); goto L_08B5C064; @@ -1059,8 +1109,21 @@ L_08B5C090: aot_gpr_6 = (0u | 0u); aot_gpr_31 = (0x08B5C0A4u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 14u, 0x08B5C0A4u, 0x08B5A818u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 682u, 0x08B5A818u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5C0A4u) goto L_08B5C0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5C0A4: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(464))); { std::uint32_t aot_run_words[10]{}; @@ -1078,8 +1141,8 @@ L_08B5C0A4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(528)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C0D8: @@ -1154,8 +1217,8 @@ L_08B5C164: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C188: @@ -1255,8 +1318,8 @@ L_08B5C1F0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C214: @@ -1313,8 +1376,21 @@ L_08B5C26C: aot_gpr_5 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x08B5C280u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 42u, 0x08B5C280u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5C280u) goto L_08B5C280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5C280: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[18]); ctx.gpr[2] = (ctx.gpr[16] | 0u); @@ -1329,8 +1405,8 @@ L_08B5C280: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C2A8: @@ -1397,8 +1473,8 @@ L_08B5C31C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C350: @@ -1462,8 +1538,8 @@ L_08B5C3AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C3D8: @@ -1481,8 +1557,8 @@ L_08B5C3D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C404: @@ -1498,8 +1574,8 @@ L_08B5C420: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C42C: @@ -1609,8 +1685,21 @@ L_08B5C538: aot_gpr_5 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B5C548u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 67u, 0x08B5C548u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5C548u) goto L_08B5C548; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5C548: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -1629,8 +1718,21 @@ L_08B5C564: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5C574u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 69u, 0x08B5C574u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5C574u) goto L_08B5C574; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5C574: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -1730,8 +1832,8 @@ L_08B5C624: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_7); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25856))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5C63C: @@ -2342,8 +2444,21 @@ L_08B5CABC: aot_gpr_5 = (0u | 0u); aot_gpr_31 = (0x08B5CAC8u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0213. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 146u, 0x08B5CAC8u, 0x08B580BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0213_entry(rt, ctx, 18u, aot_mem); +#else + recomp_unit_0213_entry(rt, ctx, 18u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0213_entry, 213u, 18u, 0x08B580BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5CAC8u) goto L_08B5CAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5CAC8: aot_gpr_6 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[20] + static_cast(12)))))); aot_gpr_7 = (ctx.gpr[2] | 0u); @@ -2845,8 +2960,21 @@ L_08B5CE50: aot_gpr_7 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B5CE8Cu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 202u, 0x08B5CE8Cu, 0x08B6159Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 269u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 269u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 269u, 0x08B6159Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5CE8Cu) goto L_08B5CE8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5CE8C: aot_gpr_4 = (2234u << 16u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16732))); @@ -2864,8 +2992,21 @@ L_08B5CE8C: aot_gpr_7 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B5CECCu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 203u, 0x08B5CECCu, 0x08B61028u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 199u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 199u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 199u, 0x08B61028u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5CECCu) goto L_08B5CECC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5CECC: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(156))); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(152))); @@ -3088,8 +3229,21 @@ L_08B5D074: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); aot_gpr_31 = (0x08B5D084u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 228u, 0x08B5D084u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D084u) goto L_08B5D084; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D084: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3110,8 +3264,21 @@ L_08B5D0A8: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D0B8u); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(116))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 230u, 0x08B5D0B8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D0B8u) goto L_08B5D0B8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D0B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3188,8 +3355,21 @@ L_08B5D130: aot_gpr_5 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x08B5D140u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 241u, 0x08B5D140u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D140u) goto L_08B5D140; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D140: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3210,8 +3390,21 @@ L_08B5D168: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D174u); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 243u, 0x08B5D174u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D174u) goto L_08B5D174; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D174: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3294,8 +3487,21 @@ L_08B5D200: aot_gpr_5 = (ctx.gpr[9] | 0u); aot_gpr_31 = (0x08B5D210u); aot_gpr_6 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 254u, 0x08B5D210u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D210u) goto L_08B5D210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D210: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3315,8 +3521,21 @@ L_08B5D234: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D240u); aot_gpr_5 = (ctx.gpr[9] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 256u, 0x08B5D240u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D240u) goto L_08B5D240; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D240: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3400,8 +3619,21 @@ L_08B5D2C0: aot_gpr_5 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x08B5D2D0u); aot_gpr_6 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 266u, 0x08B5D2D0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D2D0u) goto L_08B5D2D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D2D0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3421,8 +3653,21 @@ L_08B5D2F4: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D300u); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 268u, 0x08B5D300u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D300u) goto L_08B5D300; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D300: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3515,8 +3760,21 @@ L_08B5D390: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B5D3A0u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 280u, 0x08B5D3A0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D3A0u) goto L_08B5D3A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D3A0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3537,8 +3795,21 @@ L_08B5D3C4: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D3D4u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 282u, 0x08B5D3D4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D3D4u) goto L_08B5D3D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D3D4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3609,8 +3880,21 @@ L_08B5D44C: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B5D45Cu); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 292u, 0x08B5D45Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D45Cu) goto L_08B5D45C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D45C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3630,8 +3914,21 @@ L_08B5D480: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D48Cu); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 294u, 0x08B5D48Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D48Cu) goto L_08B5D48C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D48C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3716,8 +4013,21 @@ L_08B5D514: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B5D524u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 305u, 0x08B5D524u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D524u) goto L_08B5D524; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D524: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3738,8 +4048,21 @@ L_08B5D548: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D558u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 307u, 0x08B5D558u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D558u) goto L_08B5D558; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D558: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3810,8 +4133,21 @@ L_08B5D5D0: aot_gpr_5 = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B5D5E0u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 317u, 0x08B5D5E0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D5E0u) goto L_08B5D5E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D5E0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3832,8 +4168,21 @@ L_08B5D608: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D614u); aot_gpr_5 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 319u, 0x08B5D614u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D614u) goto L_08B5D614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D614: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -3902,8 +4251,21 @@ L_08B5D688: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B5D698u); aot_gpr_6 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 328u, 0x08B5D698u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D698u) goto L_08B5D698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D698: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); @@ -3923,8 +4285,21 @@ L_08B5D6B8: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D6C8u); aot_gpr_5 = (ctx.gpr[23] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 330u, 0x08B5D6C8u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D6C8u) goto L_08B5D6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D6C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -4015,8 +4390,21 @@ L_08B5D754: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B5D764u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 341u, 0x08B5D764u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D764u) goto L_08B5D764; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D764: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -4037,8 +4425,21 @@ L_08B5D788: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D798u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 343u, 0x08B5D798u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D798u) goto L_08B5D798; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D798: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -4109,8 +4510,21 @@ L_08B5D810: aot_gpr_5 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B5D820u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 353u, 0x08B5D820u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D820u) goto L_08B5D820; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D820: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -4129,8 +4543,21 @@ L_08B5D83C: aot_gpr_6 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B5D84Cu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 355u, 0x08B5D84Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5D84Cu) goto L_08B5D84C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5D84C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(8))); @@ -4225,8 +4652,8 @@ L_08B5D8D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5D908: @@ -4310,8 +4737,8 @@ L_08B5D9C0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5D9CC: @@ -4597,8 +5024,8 @@ L_08B5DBA8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DBB4: @@ -4714,8 +5141,8 @@ L_08B5DCA4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DCC8: @@ -4735,8 +5162,8 @@ L_08B5DCD0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DCF4: @@ -4756,8 +5183,8 @@ L_08B5DCFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DD20: @@ -4785,8 +5212,8 @@ L_08B5DD40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DD64: @@ -5080,8 +5507,8 @@ L_08B5DF28: L_08B5DF2C: jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[3] | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DF34: @@ -5098,16 +5525,16 @@ L_08B5DF54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DF60: ctx.gpr[2] = (2234u << 16u); jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[2] + static_cast(16756)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DF6C: @@ -5121,8 +5548,8 @@ L_08B5DF80: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DF8C: @@ -5151,8 +5578,8 @@ L_08B5DFB4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DFC8: @@ -5178,8 +5605,8 @@ L_08B5DFF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5DFFC: @@ -5373,8 +5800,8 @@ L_08B5E158: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E17C: @@ -5431,8 +5858,8 @@ L_08B5E1CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E1E8: @@ -5492,8 +5919,8 @@ L_08B5E22C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E254: @@ -5577,14 +6004,27 @@ L_08B5E2FC: aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B5E310u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 522u, 0x08B5E310u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5E310u) goto L_08B5E310; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5E310: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E31C: @@ -5642,8 +6082,8 @@ L_08B5E350: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E374: @@ -5971,8 +6411,8 @@ L_08B5E55C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E584: @@ -6034,8 +6474,8 @@ L_08B5E5C8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E5F0: @@ -6075,8 +6515,8 @@ L_08B5E618: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E648: @@ -6138,8 +6578,8 @@ L_08B5E6B4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E6C0: @@ -6183,8 +6623,21 @@ L_08B5E72C: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16924))); aot_gpr_31 = (0x08B5E744u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16920))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 594u, 0x08B5E744u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5E744u) goto L_08B5E744; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5E744: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -6201,8 +6654,8 @@ L_08B5E744: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E774: @@ -6245,8 +6698,21 @@ L_08B5E7B8: aot_gpr_4 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x08B5E7D4u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 599u, 0x08B5E7D4u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5E7D4u) goto L_08B5E7D4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5E7D4: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -6263,8 +6729,8 @@ L_08B5E7D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E804: @@ -6305,8 +6771,21 @@ L_08B5E814: aot_gpr_7 = (ctx.gpr[9] | 0u); aot_gpr_31 = (0x08B5E880u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 602u, 0x08B5E880u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5E880u) goto L_08B5E880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5E880: aot_gpr_4 = (ctx.gpr[16] + static_cast(2)); aot_gpr_4 = (aot_gpr_4 & ctx.gpr[17]); @@ -6349,8 +6828,8 @@ L_08B5E8AC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E8DC: @@ -6379,8 +6858,21 @@ L_08B5E904: L_08B5E90C: aot_gpr_31 = (0x08B5E914u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 610u, 0x08B5E914u, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5E914u) goto L_08B5E914; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5E914: aot_gpr_4 = (2234u << 16u); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16844))); @@ -6427,8 +6919,8 @@ L_08B5E968: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E998: @@ -6448,8 +6940,8 @@ L_08B5E998: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5E9CC: @@ -6477,8 +6969,21 @@ L_08B5E9FC: aot_gpr_7 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08B5EA14u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 618u, 0x08B5EA14u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EA14u) goto L_08B5EA14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EA14: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_4 = (ctx.gpr[16] | 0u); @@ -6502,8 +7007,21 @@ L_08B5EA34: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B5EA48u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 621u, 0x08B5EA48u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EA48u) goto L_08B5EA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EA48: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -6520,15 +7038,28 @@ L_08B5EA48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5EA78: aot_gpr_31 = (0x08B5EA80u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 623u, 0x08B5EA80u, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EA80u) goto L_08B5EA80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EA80: aot_gpr_4 = (2234u << 16u); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16844))); @@ -6557,24 +7088,63 @@ L_08B5EAC0: aot_gpr_4 = (ctx.gpr[16] | 0u); aot_gpr_31 = (0x08B5EAD4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 626u, 0x08B5EAD4u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EAD4u) goto L_08B5EAD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EAD4: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_7 = (ctx.gpr[21] | 0u); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B5EAE8u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 627u, 0x08B5EAE8u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EAE8u) goto L_08B5EAE8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EAE8: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08B5EAFCu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 628u, 0x08B5EAFCu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EAFCu) goto L_08B5EAFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EAFC: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -6591,8 +7161,8 @@ L_08B5EAFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5EB2C: @@ -6612,15 +7182,41 @@ L_08B5EB44: aot_gpr_7 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08B5EB60u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 631u, 0x08B5EB60u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EB60u) goto L_08B5EB60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EB60: ctx.gpr[17] = (ctx.gpr[3] | 0u); ctx.gpr[16] = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B5EB70u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 632u, 0x08B5EB70u, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EB70u) goto L_08B5EB70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EB70: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), ctx.gpr[16]); @@ -6831,16 +7427,42 @@ L_08B5ED8C: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B5EDA0u); aot_gpr_6 = (ctx.gpr[22] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 654u, 0x08B5EDA0u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EDA0u) goto L_08B5EDA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EDA0: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B5EDB4u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 655u, 0x08B5EDB4u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EDB4u) goto L_08B5EDB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EDB4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6886,24 +7508,63 @@ L_08B5EE18: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B5EE2Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 660u, 0x08B5EE2Cu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EE2Cu) goto L_08B5EE2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EE2C: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(52))); aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); aot_gpr_31 = (0x08B5EE40u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 661u, 0x08B5EE40u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EE40u) goto L_08B5EE40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EE40: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08B5EE54u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 662u, 0x08B5EE54u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EE54u) goto L_08B5EE54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EE54: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -6920,8 +7581,8 @@ L_08B5EE54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5EE84: @@ -6931,8 +7592,21 @@ L_08B5EE84: aot_gpr_5 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B5EE9Cu); aot_gpr_4 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 664u, 0x08B5EE9Cu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EE9Cu) goto L_08B5EE9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EE9C: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); @@ -6956,8 +7630,21 @@ L_08B5EEBC: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B5EED0u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 667u, 0x08B5EED0u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EED0u) goto L_08B5EED0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EED0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -6993,24 +7680,63 @@ L_08B5EF18: aot_gpr_4 = (ctx.gpr[18] | 0u); aot_gpr_31 = (0x08B5EF2Cu); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 671u, 0x08B5EF2Cu, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EF2Cu) goto L_08B5EF2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EF2C: aot_gpr_5 = (ctx.gpr[3] | 0u); aot_gpr_7 = (ctx.gpr[21] | 0u); aot_gpr_4 = (ctx.gpr[2] | 0u); aot_gpr_31 = (0x08B5EF40u); aot_gpr_6 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 672u, 0x08B5EF40u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EF40u) goto L_08B5EF40; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EF40: aot_gpr_5 = (ctx.gpr[23] | 0u); aot_gpr_4 = (ctx.gpr[22] | 0u); aot_gpr_7 = (ctx.gpr[3] | 0u); aot_gpr_31 = (0x08B5EF54u); aot_gpr_6 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 673u, 0x08B5EF54u, 0x08B61F5Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 395u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EF54u) goto L_08B5EF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EF54: { std::uint32_t aot_run_words[10]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(56), aot_run_words); @@ -7027,8 +7753,8 @@ L_08B5EF54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5EF84: @@ -7072,8 +7798,21 @@ L_08B5EFE4: aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16924))); aot_gpr_31 = (0x08B5EFFCu); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_6 + static_cast(16920))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 677u, 0x08B5EFFCu, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5EFFCu) goto L_08B5EFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5EFFC: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(40), aot_run_words); @@ -7087,8 +7826,8 @@ L_08B5EFFC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F020: @@ -7129,8 +7868,21 @@ L_08B5F05C: aot_gpr_4 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x08B5F078u); aot_gpr_6 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 682u, 0x08B5F078u, 0x08B62348u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 445u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 445u, 0x08B62348u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5F078u) goto L_08B5F078; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5F078: { std::uint32_t aot_run_words[7]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(40), aot_run_words); @@ -7144,8 +7896,8 @@ L_08B5F078: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F09C: @@ -7179,8 +7931,8 @@ L_08B5F0C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F0E4: @@ -7198,8 +7950,21 @@ L_08B5F0E4: ctx.gpr[18] = (aot_gpr_6 | aot_gpr_7); aot_gpr_31 = (0x08B5F11Cu); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 687u, 0x08B5F11Cu, 0x08B625C8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 482u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 482u, 0x08B625C8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5F11Cu) goto L_08B5F11C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5F11C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), ctx.gpr[17]); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[16]); @@ -7272,8 +8037,8 @@ L_08B5F1C4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F1E8: @@ -7316,8 +8081,8 @@ L_08B5F228: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F23C: @@ -7361,8 +8126,8 @@ L_08B5F280: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F294: @@ -7407,8 +8172,8 @@ L_08B5F2DC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F2F0: @@ -7453,8 +8218,8 @@ L_08B5F338: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F34C: @@ -7497,8 +8262,8 @@ L_08B5F38C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F3A0: @@ -7543,8 +8308,8 @@ L_08B5F3E8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F3FC: @@ -7565,8 +8330,8 @@ L_08B5F430: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F43C: @@ -7586,8 +8351,21 @@ L_08B5F450: aot_gpr_5 = (0u | 4u); aot_gpr_31 = (0x08B5F464u); aot_gpr_6 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 728u, 0x08B5F464u, 0x08ABE378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 480u, 0x08ABE378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5F464u) goto L_08B5F464; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5F464: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_6 = (ctx.gpr[2] | 0u); @@ -7618,8 +8396,8 @@ L_08B5F48C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F4A8: @@ -7631,8 +8409,21 @@ L_08B5F4A8: aot_gpr_6 = (aot_gpr_6 + static_cast(24)); aot_gpr_31 = (0x08B5F4C8u); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 733u, 0x08B5F4C8u, 0x08ABE378u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 480u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 480u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 480u, 0x08ABE378u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5F4C8u) goto L_08B5F4C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5F4C8: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = ctx.gpr[2] == 0u; @@ -7650,8 +8441,8 @@ L_08B5F4D4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F4F0: @@ -7659,8 +8450,8 @@ L_08B5F4F0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F500: @@ -7683,8 +8474,8 @@ L_08B5F508: goto L_08B5F52C; L_08B5F52C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F534: @@ -7753,8 +8544,21 @@ L_08B5F5D4: aot_gpr_5 = (aot_gpr_5 + static_cast(12)); aot_gpr_31 = (0x08B5F5F4u); aot_gpr_6 = (aot_gpr_6 + static_cast(8)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0214->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0214_entry, 745u, 0x08B5F5F4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B5F5F4u) goto L_08B5F5F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B5F5F4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); aot_gpr_31 = (0x08B5F600u); @@ -7778,8 +8582,8 @@ L_08B5F620: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F634: @@ -7910,8 +8714,8 @@ L_08B5F738: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F758: @@ -7989,14 +8793,14 @@ L_08B5F7BC: L_08B5F7C8: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 32u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F7D0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F7D8: @@ -8029,23 +8833,23 @@ L_08B5F7FC: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 1u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F80C: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F814: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 2u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F820: @@ -8119,15 +8923,15 @@ L_08B5F878: L_08B5F884: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 32u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F88C: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F894: @@ -8151,8 +8955,8 @@ L_08B5F8B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5F8D0: @@ -8377,8 +9181,8 @@ L_08B5FACC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FADC: @@ -8513,8 +9317,8 @@ L_08B5FBCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FBF0: @@ -8655,8 +9459,8 @@ L_08B5FD18: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FD24: @@ -8686,8 +9490,8 @@ L_08B5FD38: } L_08B5FD58: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FD60: @@ -8713,8 +9517,8 @@ L_08B5FD74: goto L_08B5FD8C; L_08B5FD8C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FD94: @@ -8736,8 +9540,8 @@ L_08B5FD9C: L_08B5FDA4: jump_target = aot_gpr_31; ctx.gpr[2] = (0u | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FDAC: @@ -8770,8 +9574,8 @@ L_08B5FDE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FDFC: @@ -8910,8 +9714,8 @@ L_08B5FF4C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(36))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FF5C: @@ -8937,8 +9741,8 @@ L_08B5FF84: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FF9C: @@ -8960,8 +9764,8 @@ L_08B5FFAC: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B5FFCC: @@ -8986,8 +9790,8 @@ L_08B5FFEC: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; } diff --git a/profiles/vcs/generated/generated_unit_0215.cpp b/profiles/vcs/generated/generated_unit_0215.cpp index c61fbbc..d624147 100644 --- a/profiles/vcs/generated/generated_unit_0215.cpp +++ b/profiles/vcs/generated/generated_unit_0215.cpp @@ -32,6 +32,139 @@ static constexpr std::uint16_t kEntryBases_recomp_unit_0215[64] = { 401u, 417u, 424u, 438u, 456u, 471u, 487u, 501u, 516u, 528u, 539u, 559u, 576u, 589u, 611u, 629u, 652u, 666u, 683u, 693u, 702u, 715u, 731u, 740u, 745u, 760u, 773u, 785u, 796u, 808u, 821u, 832u, }; + +// PSPRECOMP_V813_HOT_DENSE_DISPATCH: one indexed load on the measured hot units; +// masks remain for exact registration/correctness proof. +alignas(64) static constexpr std::uint16_t kEntryIdsV813_recomp_unit_0215[4076] = { + 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 2u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 3u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 0u, 5u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 6u, 0u, 0u, 7u, 0u, 0u, 8u, 0u, 0u, 9u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 10u, 0u, 11u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 12u, 0u, 0u, 0u, 0u, 0u, 0u, 13u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 14u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 15u, 0u, 16u, 0u, 0u, 17u, 0u, 0u, 18u, 0u, 0u, 0u, 19u, 0u, 0u, 0u, 0u, 0u, 0u, 20u, 21u, 0u, 0u, 0u, 0u, 22u, 0u, 23u, 0u, 24u, 0u, + 0u, 0u, 0u, 0u, 25u, 0u, 26u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 27u, 0u, 0u, 0u, 0u, 28u, 0u, 0u, 0u, 0u, 0u, 0u, 29u, 0u, 0u, 0u, 0u, + 0u, 30u, 0u, 0u, 0u, 0u, 0u, 31u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 32u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 33u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 34u, 0u, 0u, 0u, 0u, 0u, 0u, 35u, 0u, 0u, 36u, 0u, 0u, 0u, 37u, 0u, 0u, 0u, 0u, 38u, 0u, 39u, 0u, 0u, 0u, 0u, 40u, + 0u, 0u, 0u, 0u, 0u, 0u, 41u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 42u, 0u, 0u, 43u, 0u, 0u, 44u, 0u, 45u, 0u, 0u, 0u, + 0u, 46u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 47u, 0u, 48u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 49u, 0u, 0u, 0u, 0u, 50u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 51u, 0u, 0u, 0u, 0u, 52u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 53u, 0u, 54u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 55u, 0u, 0u, 0u, 0u, 0u, 0u, 56u, 0u, 0u, 57u, 0u, 0u, 0u, 58u, 0u, + 0u, 59u, 0u, 0u, 0u, 0u, 0u, 60u, 0u, 0u, 61u, 0u, 62u, 0u, 0u, 0u, 0u, 0u, 63u, 0u, 64u, 65u, 0u, 0u, 0u, 66u, 0u, 0u, 0u, 67u, 0u, 0u, + 68u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 69u, 0u, 0u, 70u, 0u, 71u, 72u, 0u, 0u, 0u, 0u, 0u, 0u, 73u, 0u, 0u, 0u, 74u, 0u, 0u, 0u, 0u, 0u, 75u, + 0u, 0u, 76u, 0u, 0u, 77u, 0u, 0u, 78u, 0u, 0u, 79u, 0u, 0u, 80u, 0u, 0u, 81u, 0u, 0u, 82u, 0u, 0u, 83u, 0u, 84u, 0u, 85u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 86u, 0u, 0u, 87u, 0u, 0u, 0u, 0u, 88u, 0u, 0u, 0u, 0u, 0u, 89u, 0u, 0u, 0u, 90u, 0u, 91u, 0u, 0u, 92u, + 0u, 0u, 0u, 93u, 0u, 0u, 94u, 0u, 0u, 0u, 0u, 95u, 0u, 0u, 96u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 97u, 98u, 0u, 0u, 99u, 0u, 100u, 0u, + 0u, 0u, 101u, 0u, 0u, 102u, 0u, 0u, 103u, 104u, 0u, 0u, 105u, 0u, 0u, 106u, 0u, 0u, 0u, 0u, 107u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 108u, 0u, 0u, 0u, 0u, 109u, 0u, 0u, 0u, 110u, 111u, 0u, 112u, 0u, 113u, 0u, 0u, 0u, 114u, 0u, 0u, 0u, 115u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 116u, 0u, 0u, 0u, 0u, 117u, 0u, 0u, 118u, 0u, 0u, 0u, 0u, 119u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 120u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 121u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 122u, 0u, 123u, 0u, 0u, 124u, 0u, 125u, 0u, 126u, 0u, 0u, 127u, + 0u, 0u, 128u, 0u, 0u, 129u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 130u, 0u, 131u, 0u, 0u, 0u, 132u, 0u, 0u, 133u, 0u, 134u, 0u, 135u, 0u, 0u, 136u, 137u, 0u, 138u, 0u, 139u, 0u, 140u, 0u, 0u, 0u, 0u, 0u, 141u, 142u, 0u, + 143u, 0u, 0u, 144u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 145u, 0u, 146u, 0u, 0u, 147u, 0u, 148u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 149u, 0u, 150u, + 0u, 151u, 0u, 152u, 0u, 0u, 153u, 0u, 154u, 0u, 0u, 0u, 155u, 0u, 0u, 156u, 0u, 0u, 157u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 158u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 159u, 0u, 0u, 160u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 161u, 0u, 0u, 0u, 0u, 0u, 162u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 163u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 164u, 0u, 165u, 0u, 166u, + 0u, 167u, 0u, 0u, 0u, 0u, 0u, 0u, 168u, 0u, 0u, 0u, 0u, 0u, 169u, 0u, 0u, 0u, 170u, 0u, 0u, 0u, 0u, 171u, 0u, 0u, 0u, 0u, 172u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 173u, 0u, 0u, 0u, 0u, 174u, 0u, 0u, 175u, 0u, 0u, 0u, 176u, 0u, 0u, 177u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 178u, 0u, 0u, 0u, 0u, 179u, 0u, 0u, 0u, 0u, 0u, 180u, 0u, 181u, 0u, 182u, 0u, 183u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 184u, 0u, 185u, 0u, 186u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 187u, 0u, 0u, 0u, 0u, 188u, 0u, + 0u, 0u, 189u, 0u, 0u, 190u, 191u, 0u, 0u, 0u, 192u, 0u, 0u, 193u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 194u, 0u, 0u, 0u, 0u, 195u, 0u, 196u, 0u, 197u, + 0u, 198u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 199u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 200u, 0u, 0u, 201u, 0u, 0u, 0u, 0u, 0u, 202u, 0u, 0u, 0u, 0u, + 0u, 0u, 203u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 204u, 0u, 0u, 0u, 0u, 0u, 0u, 205u, 0u, 0u, 0u, 0u, 206u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 207u, 0u, 0u, 0u, 208u, 0u, 0u, 209u, 0u, 210u, 211u, 0u, 0u, 0u, 212u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 213u, 0u, 0u, 0u, 214u, 0u, + 0u, 215u, 0u, 216u, 217u, 0u, 0u, 0u, 0u, 0u, 218u, 0u, 219u, 0u, 0u, 0u, 220u, 0u, 0u, 221u, 0u, 0u, 0u, 0u, 222u, 0u, 0u, 0u, 0u, 0u, 0u, 223u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 224u, 0u, 0u, 0u, 225u, 0u, 0u, 0u, 226u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 227u, 0u, 0u, 0u, 228u, + 0u, 0u, 229u, 0u, 230u, 231u, 0u, 0u, 0u, 232u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 233u, 0u, 0u, 0u, 234u, 0u, 0u, 235u, 0u, 0u, 236u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 237u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 238u, 0u, 0u, 0u, 239u, 0u, 0u, 240u, 0u, 241u, 242u, + 0u, 0u, 0u, 243u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 244u, 0u, 0u, 0u, 245u, 0u, 0u, 246u, 0u, 247u, 248u, 0u, 0u, 249u, 0u, 0u, 0u, 250u, 0u, + 0u, 0u, 0u, 0u, 0u, 251u, 0u, 0u, 0u, 0u, 0u, 0u, 252u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 253u, 0u, 0u, 0u, 0u, 0u, 254u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 255u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 256u, 0u, 0u, 0u, 257u, 0u, 0u, 258u, 0u, 259u, 260u, + 0u, 0u, 0u, 261u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 262u, 0u, 0u, 0u, 263u, 0u, 0u, 264u, 0u, 265u, 266u, 0u, 0u, 0u, 0u, 0u, 0u, 267u, 0u, + 0u, 0u, 0u, 0u, 0u, 268u, 0u, 269u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 270u, 0u, 0u, 271u, 0u, 0u, 0u, 0u, 0u, 272u, 0u, 0u, 0u, 0u, + 0u, 0u, 273u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 274u, 0u, 0u, 0u, 0u, 0u, 0u, 275u, 0u, 0u, 0u, 0u, 276u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 277u, 0u, 0u, 0u, 278u, 0u, 0u, 0u, 279u, 280u, 0u, 0u, 0u, 281u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 282u, 0u, 0u, 0u, 283u, 0u, 0u, 0u, 284u, + 285u, 0u, 286u, 0u, 287u, 0u, 288u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 289u, 0u, 290u, 0u, 0u, 0u, 291u, 0u, 0u, 292u, 0u, 0u, 0u, 0u, 293u, 0u, 0u, 0u, + 0u, 0u, 0u, 294u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 295u, 0u, 0u, 296u, 0u, 0u, 0u, 297u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 298u, 0u, 0u, + 0u, 299u, 0u, 0u, 0u, 300u, 301u, 0u, 0u, 0u, 302u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 303u, 0u, 0u, 0u, 304u, 0u, 0u, 0u, 305u, 0u, 306u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 307u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 308u, 0u, 0u, 0u, 309u, 0u, 0u, 0u, 310u, 311u, 0u, 0u, + 0u, 312u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 313u, 0u, 0u, 0u, 314u, 0u, 0u, 0u, 315u, 0u, 316u, 0u, 0u, 317u, 0u, 0u, 0u, 0u, 318u, 0u, 0u, 0u, + 0u, 0u, 319u, 0u, 0u, 0u, 0u, 0u, 0u, 320u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 321u, 0u, 0u, 0u, 0u, 0u, 322u, 0u, 0u, 0u, 0u, 0u, 323u, + 0u, 324u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 325u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 326u, 0u, 0u, 0u, 327u, 0u, + 0u, 328u, 0u, 329u, 330u, 0u, 0u, 0u, 331u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 332u, 0u, 0u, 0u, 333u, 0u, 0u, 334u, 0u, 335u, 336u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 337u, 0u, 0u, 0u, 0u, 0u, 338u, 0u, 0u, 0u, 339u, 0u, 340u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 341u, 0u, 0u, 0u, 0u, 0u, 342u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 343u, 0u, 0u, 344u, 0u, 0u, 0u, 0u, 0u, 0u, 345u, 0u, 0u, 0u, 346u, 0u, 0u, 347u, 0u, 348u, 0u, 0u, 0u, 0u, + 349u, 0u, 350u, 0u, 351u, 0u, 352u, 0u, 0u, 353u, 0u, 354u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 355u, 0u, 356u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 357u, 0u, 0u, 358u, 0u, 359u, 0u, 0u, 360u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 361u, 0u, 362u, 0u, 363u, 0u, 0u, + 364u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 365u, 366u, 367u, 0u, 0u, 368u, 0u, 0u, 0u, 369u, 0u, 0u, 0u, 370u, 0u, 371u, 0u, 0u, 0u, 372u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 373u, 0u, 374u, 375u, 376u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 377u, 0u, + 378u, 0u, 379u, 380u, 0u, 0u, 0u, 0u, 0u, 381u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 382u, 0u, 383u, 0u, 384u, 0u, + 385u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 386u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 387u, 0u, 388u, 0u, 0u, 0u, 389u, 0u, 0u, 0u, 390u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 391u, 0u, 0u, 392u, 0u, 0u, 0u, 393u, 0u, 394u, 0u, 0u, 0u, 395u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 396u, 0u, 0u, 397u, 0u, 0u, 0u, 0u, 0u, 0u, 398u, 0u, 399u, 0u, 0u, 0u, 400u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 401u, 0u, 0u, 402u, 0u, 0u, 0u, 0u, 403u, 0u, 0u, 0u, 404u, 0u, 0u, 405u, 0u, 0u, 0u, 406u, 407u, 0u, 0u, 0u, 0u, 408u, 0u, + 409u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 410u, 0u, 411u, 0u, 0u, 0u, 412u, 413u, 0u, 0u, 0u, 0u, 0u, 414u, 0u, 415u, 0u, 0u, 416u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 417u, 0u, 418u, 419u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 420u, 0u, 421u, + 422u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 423u, 0u, 0u, 0u, 0u, 0u, 0u, + 424u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 425u, 0u, 0u, 0u, 0u, 0u, 426u, 0u, 427u, 0u, 0u, 0u, 0u, 428u, 0u, 0u, 429u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 430u, 0u, 0u, 0u, 0u, 0u, 431u, 0u, 0u, 0u, 0u, 0u, 432u, 433u, 0u, 0u, 0u, 0u, 434u, 0u, 435u, 0u, 0u, 0u, 0u, 0u, 0u, 436u, 0u, 0u, 437u, + 438u, 0u, 0u, 439u, 0u, 0u, 440u, 0u, 441u, 442u, 0u, 0u, 443u, 0u, 444u, 0u, 0u, 0u, 445u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 446u, + 0u, 0u, 447u, 0u, 0u, 0u, 0u, 448u, 0u, 0u, 0u, 449u, 0u, 0u, 0u, 0u, 0u, 450u, 0u, 0u, 451u, 0u, 0u, 452u, 453u, 0u, 454u, 0u, 0u, 0u, 455u, 0u, + 456u, 0u, 0u, 0u, 0u, 0u, 0u, 457u, 0u, 458u, 0u, 0u, 0u, 459u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 460u, 0u, 461u, 0u, 0u, 0u, 462u, 0u, 463u, 0u, + 464u, 465u, 0u, 0u, 0u, 0u, 0u, 466u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 467u, 0u, 0u, 0u, 0u, 0u, 468u, 0u, 0u, 0u, 469u, 0u, 470u, + 0u, 0u, 0u, 0u, 0u, 0u, 471u, 0u, 0u, 472u, 473u, 0u, 0u, 474u, 0u, 475u, 0u, 476u, 0u, 477u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 478u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 479u, 0u, 0u, 480u, 0u, 0u, 481u, 0u, 0u, 0u, 482u, 0u, 0u, 0u, 0u, 0u, 0u, 483u, 0u, 484u, 0u, 485u, 486u, 0u, + 487u, 0u, 0u, 488u, 0u, 0u, 489u, 0u, 490u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 491u, 0u, 492u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 493u, 0u, + 494u, 0u, 0u, 0u, 0u, 0u, 495u, 0u, 0u, 496u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 497u, 0u, 0u, 0u, 0u, 498u, 0u, 499u, 0u, 0u, 500u, 0u, 0u, 0u, + 501u, 0u, 0u, 502u, 0u, 0u, 503u, 0u, 0u, 0u, 504u, 0u, 0u, 0u, 0u, 0u, 0u, 505u, 0u, 0u, 506u, 0u, 507u, 0u, 0u, 508u, 509u, 0u, 0u, 0u, 510u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 511u, 0u, 0u, 0u, 0u, 512u, 0u, 0u, 513u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 514u, 0u, 0u, 515u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 516u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 517u, 0u, 0u, 518u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 519u, 0u, 520u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 521u, 0u, 522u, 0u, 0u, 0u, 523u, 524u, 0u, 525u, 0u, 526u, 0u, 0u, 527u, 0u, 0u, 0u, + 0u, 0u, 0u, 528u, 0u, 529u, 0u, 530u, 0u, 0u, 531u, 0u, 0u, 532u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 533u, 0u, 0u, 534u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 535u, 0u, 0u, 0u, 0u, 536u, 537u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 538u, 0u, + 0u, 539u, 0u, 0u, 540u, 0u, 0u, 541u, 0u, 0u, 0u, 542u, 0u, 0u, 0u, 0u, 543u, 0u, 544u, 0u, 0u, 0u, 0u, 0u, 545u, 546u, 547u, 0u, 548u, 0u, 0u, 0u, + 0u, 0u, 0u, 549u, 0u, 550u, 0u, 551u, 0u, 0u, 0u, 0u, 0u, 0u, 552u, 0u, 0u, 553u, 0u, 0u, 0u, 0u, 554u, 0u, 0u, 555u, 0u, 556u, 0u, 0u, 557u, 558u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 559u, 0u, 0u, 560u, 0u, 561u, 0u, 0u, 562u, 563u, 0u, 0u, 0u, 0u, 564u, 0u, 565u, 0u, 0u, 0u, 566u, 0u, 0u, + 0u, 0u, 0u, 0u, 567u, 568u, 569u, 0u, 570u, 0u, 0u, 0u, 571u, 0u, 0u, 0u, 0u, 0u, 572u, 0u, 0u, 573u, 0u, 574u, 0u, 0u, 0u, 0u, 0u, 0u, 575u, 0u, + 0u, 576u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 577u, 0u, 0u, 578u, 579u, 0u, 580u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 581u, 0u, 0u, + 582u, 0u, 0u, 0u, 0u, 0u, 0u, 583u, 584u, 0u, 0u, 585u, 0u, 0u, 586u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 587u, 0u, 0u, 588u, 0u, + 0u, 0u, 0u, 0u, 0u, 589u, 0u, 0u, 590u, 0u, 0u, 0u, 591u, 0u, 0u, 0u, 592u, 593u, 0u, 594u, 0u, 595u, 0u, 0u, 596u, 0u, 0u, 0u, 597u, 0u, 598u, 0u, + 0u, 599u, 0u, 0u, 600u, 0u, 601u, 0u, 0u, 602u, 603u, 0u, 604u, 0u, 605u, 0u, 606u, 607u, 0u, 0u, 608u, 0u, 0u, 0u, 0u, 609u, 0u, 0u, 0u, 0u, 0u, 610u, + 0u, 0u, 0u, 0u, 611u, 0u, 0u, 0u, 0u, 612u, 0u, 613u, 614u, 0u, 615u, 0u, 616u, 0u, 617u, 0u, 0u, 0u, 618u, 619u, 620u, 0u, 621u, 0u, 0u, 0u, 622u, 623u, + 0u, 624u, 0u, 0u, 0u, 0u, 0u, 625u, 0u, 0u, 626u, 627u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 628u, 0u, + 0u, 629u, 0u, 0u, 630u, 0u, 631u, 0u, 0u, 0u, 632u, 0u, 0u, 0u, 0u, 633u, 634u, 0u, 0u, 0u, 635u, 636u, 637u, 0u, 0u, 0u, 638u, 0u, 639u, 0u, 640u, 0u, + 641u, 0u, 0u, 0u, 0u, 0u, 0u, 642u, 0u, 643u, 644u, 0u, 645u, 0u, 0u, 646u, 647u, 0u, 648u, 0u, 0u, 649u, 0u, 0u, 650u, 0u, 651u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 652u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 653u, 0u, 0u, 0u, 0u, 654u, 0u, 0u, 655u, 0u, 0u, 0u, 0u, 656u, 0u, 0u, + 0u, 0u, 0u, 657u, 0u, 0u, 0u, 658u, 0u, 0u, 0u, 0u, 659u, 0u, 0u, 660u, 0u, 0u, 0u, 661u, 0u, 662u, 0u, 0u, 0u, 663u, 0u, 664u, 0u, 0u, 665u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 666u, 0u, 667u, 0u, 668u, 669u, 0u, 670u, 0u, 0u, 671u, 0u, 672u, 0u, 673u, 0u, 674u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 675u, 0u, 0u, 0u, 676u, 0u, 0u, 0u, 0u, 0u, 0u, 677u, 0u, 678u, 679u, 0u, 0u, 0u, 680u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 681u, 0u, 0u, 0u, 682u, 0u, + 0u, 0u, 0u, 0u, 0u, 683u, 0u, 684u, 685u, 0u, 0u, 0u, 686u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 687u, 0u, 0u, 688u, 0u, 0u, 0u, 689u, 0u, 690u, + 0u, 691u, 0u, 0u, 0u, 0u, 0u, 692u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 693u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 694u, 0u, 0u, 0u, 695u, 0u, 0u, 0u, 696u, 0u, 697u, 0u, 0u, 0u, 698u, 0u, 0u, 699u, 0u, 700u, 0u, 0u, 0u, 701u, 0u, 0u, + 0u, 0u, 702u, 0u, 0u, 703u, 0u, 0u, 0u, 704u, 0u, 705u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 706u, 0u, 707u, 0u, 708u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 709u, 0u, 0u, 0u, 0u, 710u, 0u, 0u, 0u, 0u, 0u, 0u, 711u, 0u, 0u, 712u, 713u, 0u, 0u, 0u, 714u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 715u, 0u, 0u, 716u, 0u, 0u, 717u, 0u, 0u, 718u, 719u, 0u, 0u, 0u, 720u, 0u, 721u, 0u, 0u, 722u, + 0u, 723u, 0u, 724u, 0u, 0u, 0u, 725u, 0u, 726u, 0u, 0u, 727u, 0u, 0u, 728u, 0u, 0u, 0u, 0u, 729u, 0u, 0u, 0u, 0u, 730u, 0u, 0u, 0u, 0u, 0u, 0u, + 731u, 0u, 732u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 733u, 0u, 734u, 0u, 0u, 0u, 0u, 0u, 735u, 0u, 736u, 0u, 737u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 738u, 0u, 0u, 0u, 0u, 0u, 739u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 740u, 0u, 0u, 741u, 0u, 0u, + 0u, 0u, 0u, 0u, 742u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 743u, 0u, 0u, 0u, 0u, 744u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 745u, 0u, 746u, 0u, 0u, 747u, 748u, 0u, 0u, 0u, 749u, 0u, 0u, 750u, 0u, 0u, 0u, 0u, 751u, 0u, 0u, 0u, 752u, 0u, 0u, 0u, 0u, 0u, 0u, 753u, 754u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 755u, 0u, 0u, 756u, 0u, 757u, 0u, 0u, 0u, 0u, 758u, 0u, 0u, 0u, 0u, 0u, 0u, 759u, 0u, 0u, 0u, 0u, 0u, 0u, + 760u, 0u, 761u, 0u, 762u, 0u, 0u, 0u, 0u, 0u, 763u, 0u, 0u, 0u, 764u, 0u, 0u, 0u, 0u, 0u, 0u, 765u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 766u, 0u, 767u, 0u, 0u, 0u, 768u, 0u, 0u, 0u, 0u, 769u, 0u, 0u, 0u, 770u, 0u, 0u, 0u, 0u, 0u, 0u, 771u, 0u, 772u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 773u, 0u, 0u, 0u, 0u, 0u, 0u, 774u, 0u, 775u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 776u, 0u, 0u, 777u, 0u, + 0u, 0u, 0u, 0u, 778u, 0u, 779u, 0u, 0u, 0u, 0u, 0u, 0u, 780u, 781u, 0u, 0u, 0u, 0u, 0u, 782u, 0u, 783u, 0u, 0u, 0u, 0u, 784u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 785u, 0u, 0u, 0u, 0u, 0u, 0u, 786u, 787u, 0u, 0u, 0u, 0u, 0u, 0u, 788u, 0u, 0u, 0u, 0u, 0u, 789u, 0u, 790u, 0u, + 0u, 0u, 0u, 0u, 0u, 791u, 792u, 0u, 0u, 0u, 0u, 0u, 0u, 793u, 0u, 0u, 0u, 0u, 794u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 795u, 0u, + 0u, 0u, 0u, 0u, 0u, 796u, 0u, 797u, 0u, 0u, 798u, 0u, 0u, 0u, 799u, 0u, 0u, 0u, 0u, 800u, 0u, 0u, 801u, 0u, 0u, 0u, 0u, 0u, 0u, 802u, 0u, 803u, + 0u, 0u, 0u, 804u, 0u, 0u, 0u, 0u, 0u, 0u, 805u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 806u, 0u, 0u, 0u, 0u, 0u, 0u, 807u, 0u, 0u, + 0u, 808u, 0u, 0u, 0u, 809u, 0u, 0u, 0u, 0u, 810u, 0u, 0u, 0u, 0u, 0u, 0u, 811u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 812u, 0u, 0u, 0u, 813u, 0u, + 0u, 814u, 0u, 0u, 0u, 0u, 0u, 0u, 815u, 0u, 0u, 0u, 816u, 0u, 0u, 0u, 817u, 0u, 0u, 0u, 0u, 0u, 0u, 818u, 819u, 0u, 0u, 820u, 0u, 0u, 0u, 0u, + 0u, 0u, 0u, 821u, 0u, 0u, 0u, 0u, 822u, 0u, 0u, 823u, 0u, 0u, 0u, 0u, 0u, 0u, 824u, 0u, 825u, 0u, 0u, 0u, 826u, 0u, 0u, 0u, 0u, 0u, 0u, 827u, + 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 828u, 0u, 0u, 0u, 0u, 0u, 0u, 829u, 0u, 0u, 0u, 0u, 830u, 0u, 0u, 0u, 0u, 831u, 0u, 0u, 0u, + 0u, 0u, 0u, 832u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 833u, 0u, 0u, 0u, 834u, 0u, 0u, 835u, 0u, 0u, 0u, 0u, 0u, 0u, 836u, 0u, 0u, 0u, 837u, 0u, + 0u, 0u, 838u, 0u, 0u, 0u, 0u, 0u, 0u, 839u, 0u, 840u, +}; void recomp_unit_0215_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) { // PSPRECOMP_AOT_REGCACHE_BEGIN // PSPRECOMP_AOT_REGCACHE_META gprs=2,4,29,5,3,6 fprs=12,2,4,0 gpr_occ=4231 fpr_occ=103 gpr_total=7053 fpr_total=290 @@ -58,18 +191,8 @@ LOCAL_DISPATCH: { if (entry_id == 0u) { const std::uint32_t entry_delta = local_pc - 0x08B60000u; - entry_id = 0u; - if (entry_delta < 16304u && (entry_delta & 3u) == 0u) { - const std::uint32_t entry_slot = entry_delta >> 2u; - const std::uint32_t entry_group = entry_slot >> 6u; - const std::uint64_t entry_mask = kEntryMasks_recomp_unit_0215[entry_group]; - const std::uint64_t entry_bit = 1ull << (entry_slot & 63u); - if ((entry_mask & entry_bit) != 0u) { - entry_id = static_cast( - kEntryBases_recomp_unit_0215[entry_group] + - std::popcount(entry_mask & (entry_bit - 1ull))); - } - } + entry_id = (entry_delta < 16304u && (entry_delta & 3u) == 0u) + ? kEntryIdsV813_recomp_unit_0215[entry_delta >> 2u] : 0u; } switch (entry_id) { case 1u: goto L_08B60000; @@ -918,6 +1041,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B60000u; + if (local_delta_v813 >= 16304u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -944,8 +1091,21 @@ L_08B60000: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[31]); ctx.gpr[31] = (0x08B60030u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0215->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0215_entry, 2u, 0x08B60030u, 0x08B5F758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 763u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 763u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 763u, 0x08B5F758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B60030u) goto L_08B60030; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B60030: aot_gpr_5 = (aot_gpr_2 | 0u); ctx.gpr[11] = (0u | 32u); @@ -988,8 +1148,8 @@ L_08B60074: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6009C: @@ -1042,8 +1202,8 @@ L_08B600EC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60110: @@ -1054,8 +1214,8 @@ L_08B60110: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6012C: @@ -1067,8 +1227,21 @@ L_08B6012C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), ctx.gpr[31]); ctx.gpr[31] = (0x08B6014Cu); aot_gpr_5 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0215->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0215_entry, 14u, 0x08B6014Cu, 0x08B5F43Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 726u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 726u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 726u, 0x08B5F43Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6014Cu) goto L_08B6014C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6014C: aot_gpr_5 = (16u << 16u); ctx.gpr[11] = (aot_gpr_5 + static_cast(-1)); @@ -1106,8 +1279,21 @@ L_08B60198: aot_gpr_4 = (aot_gpr_29 + static_cast(24)); ctx.gpr[31] = (0x08B601A4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0215->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0215_entry, 18u, 0x08B601A4u, 0x08B5F7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 775u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 775u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 775u, 0x08B5F7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B601A4u) goto L_08B601A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B601A4: aot_gpr_5 = (aot_gpr_2 | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -1154,8 +1340,21 @@ L_08B601E8: L_08B601F0: ctx.gpr[31] = (0x08B601F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[11]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0215->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0215_entry, 24u, 0x08B601F8u, 0x08B5F7D8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 775u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 775u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 775u, 0x08B5F7D8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B601F8u) goto L_08B601F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B601F8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); ctx.gpr[11] = (0u | 1u); @@ -1180,8 +1379,8 @@ L_08B60218: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6023C: @@ -1190,8 +1389,21 @@ L_08B6023C: aot_gpr_4 = (aot_gpr_3 + aot_gpr_5); ctx.gpr[31] = (0x08B60250u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(-4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0215->0214. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0215_entry, 28u, 0x08B60250u, 0x08B5F758u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0214_entry(rt, ctx, 763u, aot_mem); +#else + recomp_unit_0214_entry(rt, ctx, 763u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0214_entry, 214u, 763u, 0x08B5F758u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B60250u) goto L_08B60250; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B60250: aot_gpr_4 = (ctx.gpr[11] << 5u); aot_gpr_4 = (aot_gpr_4 - aot_gpr_2); @@ -1200,8 +1412,8 @@ L_08B60250: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6026C: @@ -1277,8 +1489,8 @@ L_08B60330: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(40))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6033C: @@ -1355,8 +1567,8 @@ L_08B603DC: goto L_08B603E8; L_08B603E8: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B603F0: @@ -1528,8 +1740,8 @@ L_08B605F8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60604: @@ -1544,20 +1756,20 @@ L_08B6061C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60628: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60630: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60648: @@ -1573,8 +1785,8 @@ L_08B60650: goto L_08B60654; L_08B60654: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60664: @@ -1587,8 +1799,8 @@ L_08B60674: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60680: @@ -1629,8 +1841,8 @@ L_08B606B8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B606D4: @@ -1649,72 +1861,72 @@ L_08B606E4: ctx.gpr[1] = (ctx.gpr[1] + aot_gpr_4); ctx.gpr[1] = (aot_mem.aot_direct_load32(ctx.gpr[1] + static_cast(-25032))); jump_target = ctx.gpr[1]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B606FC: aot_gpr_2 = (2233u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-25416)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60708: aot_gpr_2 = (2233u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-25396)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60714: aot_gpr_2 = (2233u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-25340)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60720: aot_gpr_2 = (2233u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-25288)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6072C: aot_gpr_2 = (2233u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-25220)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60738: aot_gpr_2 = (2233u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-25188)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60744: aot_gpr_2 = (2233u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-25152)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60750: aot_gpr_2 = (2233u << 16u); jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_2 + static_cast(-25128)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6075C: @@ -1723,8 +1935,8 @@ L_08B6075C: goto L_08B60764; L_08B60764: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6076C: @@ -1765,8 +1977,8 @@ L_08B607C0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B607D8: @@ -1782,8 +1994,8 @@ L_08B607F0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B607FC: @@ -1796,8 +2008,8 @@ L_08B6080C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60818: @@ -1812,8 +2024,8 @@ L_08B6082C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60838: @@ -1968,8 +2180,8 @@ L_08B6094C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6095C: @@ -2031,8 +2243,8 @@ L_08B609C0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B609E4: @@ -2047,8 +2259,8 @@ L_08B609E4: aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast(0), aot_run_words); } jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(32), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60A28: @@ -2075,8 +2287,8 @@ L_08B60A54: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60A60: @@ -2098,8 +2310,8 @@ L_08B60A70: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60A7C: @@ -2114,8 +2326,8 @@ L_08B60A88: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60A94: @@ -2178,8 +2390,21 @@ L_08B60B18: L_08B60B24: ctx.gpr[31] = (0x08B60B2Cu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0215->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0215_entry, 134u, 0x08B60B2Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B60B2Cu) goto L_08B60B2C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B60B2C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_gpr_2 | 0u); @@ -2369,8 +2594,8 @@ L_08B60C48: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(256)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60C7C: @@ -2390,8 +2615,8 @@ L_08B60CA8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60CB4: @@ -2538,8 +2763,8 @@ L_08B60DF0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(208)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60E20: @@ -2553,8 +2778,8 @@ L_08B60E34: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60E40: @@ -2567,8 +2792,8 @@ L_08B60E50: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60E5C: @@ -2582,8 +2807,8 @@ L_08B60E5C: aot_gpr_4 = (aot_gpr_4 + ctx.gpr[10]); jump_target = ctx.gpr[31]; aot_gpr_3 = (aot_gpr_4 + ctx.gpr[9]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60E84: @@ -2619,8 +2844,8 @@ L_08B60EB8: goto L_08B60EC0; L_08B60EC0: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60EC8: @@ -2724,8 +2949,8 @@ L_08B60FB4: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B60FD8: @@ -2933,8 +3158,8 @@ L_08B61190: aot_gpr_3 = (aot_gpr_6 + 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B611A8: @@ -3582,8 +3807,8 @@ L_08B61718: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B61738: @@ -4082,8 +4307,8 @@ L_08B61BA0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B61BAC: @@ -4140,8 +4365,8 @@ L_08B61BEC: L_08B61C00: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_6 + 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B61C08: @@ -4513,8 +4738,8 @@ L_08B61F4C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B61F5C: @@ -4555,8 +4780,8 @@ L_08B61FC0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(144)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B61FD0: @@ -4643,8 +4868,8 @@ L_08B62080: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(128))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(160)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B620A0: @@ -5035,8 +5260,8 @@ L_08B623E8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B623F8: @@ -5247,8 +5472,8 @@ L_08B625B8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(96))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B625C8: @@ -5278,8 +5503,8 @@ L_08B625F4: L_08B625F8: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B62600: @@ -5421,8 +5646,8 @@ L_08B62718: aot_gpr_2 = (aot_gpr_5 + 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B62728: @@ -5489,8 +5714,8 @@ L_08B627B0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B627BC: @@ -5508,8 +5733,8 @@ L_08B627E4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B627F0: @@ -5547,8 +5772,8 @@ L_08B6285C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B62868: @@ -5609,15 +5834,15 @@ L_08B628D0: L_08B628D4: jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), ctx.gpr[7]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B628DC: jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(0), aot_gpr_2); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B628E4: @@ -5671,8 +5896,8 @@ L_08B62958: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B62964: @@ -5723,8 +5948,8 @@ L_08B6299C: aot_gpr_3 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B629F8: @@ -6020,8 +6245,8 @@ L_08B62C3C: L_08B62C40: jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(0), aot_gpr_2); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B62C48: @@ -6066,8 +6291,8 @@ L_08B62CA0: aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(16), ctx.gpr[8]); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(20), ctx.gpr[9]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B62CAC: @@ -6141,8 +6366,8 @@ L_08B62D40: L_08B62D44: jump_target = ctx.gpr[31]; aot_gpr_2 = (aot_gpr_4 + 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B62D4C: @@ -6362,8 +6587,8 @@ L_08B62EAC: aot_gpr_6 = (aot_gpr_6 | aot_gpr_3); aot_fpr_0 = std::bit_cast(aot_gpr_6); jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B62EF8: @@ -6632,8 +6857,8 @@ L_08B630F8: aot_gpr_2 = (aot_gpr_3 + 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63118: @@ -6720,8 +6945,8 @@ L_08B631B8: aot_gpr_2 = (aot_gpr_6 + 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B631C8: @@ -6774,8 +6999,8 @@ L_08B63220: aot_gpr_2 = (ctx.gpr[8] + 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63230: @@ -6832,8 +7057,8 @@ L_08B6329C: aot_gpr_2 = (aot_gpr_4 + 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63358: @@ -6946,8 +7171,8 @@ L_08B6342C: aot_gpr_2 = (0u + 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63460: @@ -7028,8 +7253,8 @@ L_08B634FC: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63530: @@ -7272,8 +7497,8 @@ L_08B63774: aot_gpr_2 = (aot_gpr_3 + 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63790: @@ -7340,8 +7565,8 @@ L_08B63818: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63828: @@ -7636,8 +7861,8 @@ L_08B63AB8: L_08B63AD0: jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_2 + static_cast(32), aot_gpr_3); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63AD8: @@ -7693,8 +7918,8 @@ L_08B63B3C: aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(28), 0u); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(32), 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63B58: @@ -7998,8 +8223,8 @@ L_08B63DE0: aot_gpr_5 = (ctx.gpr[9] + ctx.gpr[10]); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(32), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B63DEC: diff --git a/profiles/vcs/generated/generated_unit_0216.cpp b/profiles/vcs/generated/generated_unit_0216.cpp index e293fec..71cd9c9 100644 --- a/profiles/vcs/generated/generated_unit_0216.cpp +++ b/profiles/vcs/generated/generated_unit_0216.cpp @@ -1013,6 +1013,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B64000u; + if (local_delta_v813 >= 16348u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1187,8 +1211,8 @@ L_08B641A0: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B641B8: @@ -1319,8 +1343,8 @@ L_08B64318: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64324: @@ -1399,8 +1423,8 @@ L_08B643AC: ctx.gpr[2] = (ctx.gpr[3] + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B643CC: @@ -1469,8 +1493,8 @@ L_08B64454: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64460: @@ -1497,8 +1521,8 @@ L_08B64490: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6449C: @@ -1537,8 +1561,8 @@ L_08B644F0: ctx.gpr[2] = (ctx.gpr[12] + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64500: @@ -1576,8 +1600,8 @@ L_08B64544: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64550: @@ -1614,8 +1638,8 @@ L_08B6459C: ctx.gpr[2] = (ctx.gpr[11] + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B645AC: @@ -1656,8 +1680,8 @@ L_08B64608: ctx.gpr[2] = (ctx.gpr[12] + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64618: @@ -1682,8 +1706,8 @@ L_08B64638: L_08B6463C: jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64644: @@ -1723,8 +1747,8 @@ L_08B64690: ctx.gpr[2] = (aot_gpr_7 + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B646A0: @@ -1757,8 +1781,8 @@ L_08B646DC: ctx.gpr[2] = (aot_gpr_7 + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B646EC: @@ -1785,8 +1809,8 @@ L_08B6471C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64728: @@ -1877,8 +1901,8 @@ L_08B647D4: ctx.gpr[2] = (aot_gpr_6 + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B647F0: @@ -1961,8 +1985,8 @@ L_08B648A0: L_08B648A4: jump_target = aot_gpr_31; ctx.gpr[2] = (ctx.gpr[11] + 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B648B0: @@ -2306,8 +2330,8 @@ L_08B64AFC: ctx.gpr[2] = (ctx.gpr[2] >> (ctx.gpr[10] & 31u)); jump_target = aot_gpr_31; ctx.gpr[20] = (ctx.gpr[20] - ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64B20: @@ -2341,8 +2365,8 @@ L_08B64B40: ctx.gpr[2] = (ctx.gpr[2] >> (ctx.gpr[10] & 31u)); jump_target = aot_gpr_31; ctx.gpr[20] = (ctx.gpr[20] - ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64B4C: @@ -2366,8 +2390,8 @@ L_08B64B60: ctx.gpr[2] = (ctx.gpr[2] >> (ctx.gpr[10] & 31u)); jump_target = aot_gpr_31; ctx.gpr[20] = (ctx.gpr[20] - ctx.gpr[2]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64B6C: @@ -2406,8 +2430,8 @@ L_08B64B98: ctx.gpr[20] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(776))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(896)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64BA8: @@ -2443,8 +2467,8 @@ L_08B64BE8: ctx.gpr[2] = (ctx.gpr[2] + ctx.gpr[8]); jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(58)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64BF4: @@ -2453,8 +2477,8 @@ L_08B64BF4: ctx.gpr[2] = (ctx.gpr[2] - ctx.gpr[10]); jump_target = aot_gpr_31; ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load16(ctx.gpr[2] + static_cast(60)))))); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64C08: @@ -2647,8 +2671,8 @@ L_08B64D54: L_08B64D60: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(ctx.gpr[9] + static_cast(28), static_cast(ctx.gpr[1])); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64D68: @@ -2821,8 +2845,8 @@ L_08B64EC0: ctx.gpr[2] = (ctx.gpr[3] + 0u); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64ECC: @@ -2886,8 +2910,8 @@ L_08B64F44: ctx.gpr[25] = (aot_gpr_6 + static_cast(2)); jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), ctx.gpr[25]); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64F50: @@ -2909,8 +2933,8 @@ L_08B64F6C: L_08B64F70: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(aot_gpr_7 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64F78: @@ -2971,8 +2995,8 @@ L_08B64FE4: L_08B64FEC: jump_target = aot_gpr_31; aot_mem.aot_direct_store32(ctx.gpr[10] + static_cast(0), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B64FF4: @@ -3070,8 +3094,8 @@ L_08B650C4: ctx.gpr[2] = (ctx.gpr[3] + 0u); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B650E4: @@ -3162,8 +3186,8 @@ L_08B6518C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B651A8: @@ -3252,8 +3276,8 @@ L_08B65240: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65250: @@ -3296,8 +3320,8 @@ L_08B65298: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B652A4: @@ -3337,8 +3361,21 @@ L_08B652F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_5); aot_gpr_31 = (0x08B6530Cu); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 274u, 0x08B6530Cu, 0x08ABEF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 635u, 0x08ABEF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6530Cu) goto L_08B6530C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6530C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3359,8 +3396,21 @@ L_08B65324: aot_gpr_6 = (aot_gpr_7 & ctx.gpr[8]); aot_gpr_31 = (0x08B65340u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 276u, 0x08B65340u, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65340u) goto L_08B65340; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65340: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -3378,8 +3428,21 @@ L_08B65350: aot_gpr_5 = (aot_gpr_5 & aot_gpr_4); aot_gpr_31 = (0x08B65368u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 278u, 0x08B65368u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65368u) goto L_08B65368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65368: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(0), static_cast(0u)); @@ -3418,8 +3481,8 @@ L_08B653A0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B653C0: @@ -3451,8 +3514,21 @@ L_08B653DC: aot_gpr_4 = (2236u << 16u); aot_gpr_31 = (0x08B65400u); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 286u, 0x08B65400u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65400u) goto L_08B65400; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65400: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), ctx.gpr[2]); @@ -3460,8 +3536,21 @@ L_08B65400: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_31 = (0x08B65418u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 287u, 0x08B65418u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65418u) goto L_08B65418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65418: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -3473,8 +3562,8 @@ L_08B6542C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65438: @@ -3522,8 +3611,21 @@ L_08B65478: L_08B65484: aot_gpr_31 = (0x08B6548Cu); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 296u, 0x08B6548Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6548Cu) goto L_08B6548C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6548C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); { const bool branch_taken = ctx.gpr[2] != 0u; @@ -3545,8 +3647,8 @@ L_08B654A0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B654AC: @@ -3600,8 +3702,8 @@ L_08B654FC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65508: @@ -3655,8 +3757,8 @@ L_08B65558: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65564: @@ -3666,8 +3768,21 @@ L_08B65564: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B6557Cu); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 314u, 0x08B6557Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6557Cu) goto L_08B6557C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6557C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3685,21 +3800,47 @@ L_08B65588: L_08B65594: aot_gpr_31 = (0x08B6559Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5836), ctx.gpr[16]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 317u, 0x08B6559Cu, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6559Cu) goto L_08B6559C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6559C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5836))); aot_gpr_31 = (0x08B655A8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 318u, 0x08B655A8u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B655A8u) goto L_08B655A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B655A8: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B655B8: @@ -3737,8 +3878,21 @@ L_08B655F8: aot_gpr_4 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x08B65610u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_6); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 322u, 0x08B65610u, 0x08ABEF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 635u, 0x08ABEF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65610u) goto L_08B65610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65610: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -3760,8 +3914,21 @@ L_08B65628: aot_gpr_4 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x08B65648u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 324u, 0x08B65648u, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65648u) goto L_08B65648; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65648: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -3781,8 +3948,21 @@ L_08B6565C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_6); aot_gpr_31 = (0x08B65678u); aot_gpr_4 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 326u, 0x08B65678u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65678u) goto L_08B65678; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65678: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(0), static_cast(0u)); @@ -3795,8 +3975,21 @@ L_08B6568C: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B6569Cu); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 328u, 0x08B6569Cu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6569Cu) goto L_08B6569C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6569C: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[16]); @@ -3832,8 +4025,8 @@ L_08B656C0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B656D8: @@ -3843,8 +4036,21 @@ L_08B656D8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B656F0u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 334u, 0x08B656F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B656F0u) goto L_08B656F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B656F0: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3862,21 +4068,47 @@ L_08B656FC: L_08B65708: aot_gpr_31 = (0x08B65710u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5840), ctx.gpr[16]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 337u, 0x08B65710u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65710u) goto L_08B65710; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65710: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5840))); aot_gpr_31 = (0x08B6571Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 338u, 0x08B6571Cu, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6571Cu) goto L_08B6571C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6571C: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6572C: @@ -3887,8 +4119,21 @@ L_08B6572C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65748u); aot_gpr_4 = (0u | 328u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 340u, 0x08B65748u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65748u) goto L_08B65748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65748: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -3900,22 +4145,61 @@ L_08B65748: L_08B65754: aot_gpr_31 = (0x08B6575Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0122. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 342u, 0x08B6575Cu, 0x089ECC34u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0122_entry(rt, ctx, 162u, aot_mem); +#else + recomp_unit_0122_entry(rt, ctx, 162u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0122_entry, 122u, 162u, 0x089ECC34u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6575Cu) goto L_08B6575C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6575C: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B65760; L_08B65760: aot_gpr_31 = (0x08B65768u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5844), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 344u, 0x08B65768u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65768u) goto L_08B65768; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65768: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5844))); aot_gpr_31 = (0x08B65774u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 345u, 0x08B65774u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65774u) goto L_08B65774; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65774: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -3925,8 +4209,8 @@ L_08B65774: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65788: @@ -3975,8 +4259,8 @@ L_08B657CC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B657E8: @@ -3987,8 +4271,21 @@ L_08B657E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65804u); aot_gpr_4 = (0u | 11256u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 352u, 0x08B65804u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65804u) goto L_08B65804; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65804: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4000,22 +4297,61 @@ L_08B65804: L_08B65810: aot_gpr_31 = (0x08B65818u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0109. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 354u, 0x08B65818u, 0x089BA4A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0109_entry(rt, ctx, 449u, aot_mem); +#else + recomp_unit_0109_entry(rt, ctx, 449u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0109_entry, 109u, 449u, 0x089BA4A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65818u) goto L_08B65818; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65818: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B6581C; L_08B6581C: aot_gpr_31 = (0x08B65824u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5848), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 356u, 0x08B65824u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65824u) goto L_08B65824; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65824: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5848))); aot_gpr_31 = (0x08B65830u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 357u, 0x08B65830u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65830u) goto L_08B65830; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65830: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4025,8 +4361,8 @@ L_08B65830: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65844: @@ -4037,8 +4373,21 @@ L_08B65844: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65860u); aot_gpr_4 = (0u | 6912u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 359u, 0x08B65860u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65860u) goto L_08B65860; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65860: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4050,22 +4399,61 @@ L_08B65860: L_08B6586C: aot_gpr_31 = (0x08B65874u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0002. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 361u, 0x08B65874u, 0x0880FEACu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0002_entry(rt, ctx, 769u, aot_mem); +#else + recomp_unit_0002_entry(rt, ctx, 769u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0002_entry, 2u, 769u, 0x0880FEACu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65874u) goto L_08B65874; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65874: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B65878; L_08B65878: aot_gpr_31 = (0x08B65880u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5852), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 363u, 0x08B65880u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65880u) goto L_08B65880; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65880: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5852))); aot_gpr_31 = (0x08B6588Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 364u, 0x08B6588Cu, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6588Cu) goto L_08B6588C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6588C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4075,8 +4463,8 @@ L_08B6588C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B658A0: @@ -4094,8 +4482,8 @@ L_08B658B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B658C4: @@ -4281,8 +4669,8 @@ L_08B659D8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B659F4: @@ -4331,8 +4719,8 @@ L_08B65A38: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65A54: @@ -4343,8 +4731,21 @@ L_08B65A54: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65A70u); aot_gpr_4 = (0u | 64u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 400u, 0x08B65A70u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65A70u) goto L_08B65A70; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65A70: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4356,22 +4757,61 @@ L_08B65A70: L_08B65A7C: aot_gpr_31 = (0x08B65A84u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 402u, 0x08B65A84u, 0x08806200u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 245u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 245u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 245u, 0x08806200u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65A84u) goto L_08B65A84; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65A84: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B65A88; L_08B65A88: aot_gpr_31 = (0x08B65A90u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5856), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 404u, 0x08B65A90u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65A90u) goto L_08B65A90; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65A90: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5856))); aot_gpr_31 = (0x08B65A9Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 405u, 0x08B65A9Cu, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65A9Cu) goto L_08B65A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65A9C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4381,8 +4821,8 @@ L_08B65A9C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65AB0: @@ -4393,8 +4833,21 @@ L_08B65AB0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65ACCu); aot_gpr_4 = (0u | 24u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 407u, 0x08B65ACCu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65ACCu) goto L_08B65ACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65ACC: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4406,22 +4859,61 @@ L_08B65ACC: L_08B65AD8: aot_gpr_31 = (0x08B65AE0u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0092. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 409u, 0x08B65AE0u, 0x089750ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0092_entry(rt, ctx, 244u, aot_mem); +#else + recomp_unit_0092_entry(rt, ctx, 244u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0092_entry, 92u, 244u, 0x089750ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65AE0u) goto L_08B65AE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65AE0: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B65AE4; L_08B65AE4: aot_gpr_31 = (0x08B65AECu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5860), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 411u, 0x08B65AECu, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65AECu) goto L_08B65AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65AEC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5860))); aot_gpr_31 = (0x08B65AF8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 412u, 0x08B65AF8u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65AF8u) goto L_08B65AF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65AF8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4431,8 +4923,8 @@ L_08B65AF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65B0C: @@ -4443,8 +4935,21 @@ L_08B65B0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65B28u); aot_gpr_4 = (0u | 11776u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 414u, 0x08B65B28u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65B28u) goto L_08B65B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65B28: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4456,22 +4961,61 @@ L_08B65B28: L_08B65B34: aot_gpr_31 = (0x08B65B3Cu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 416u, 0x08B65B3Cu, 0x089550C0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 235u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 235u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 235u, 0x089550C0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65B3Cu) goto L_08B65B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65B3C: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B65B40; L_08B65B40: aot_gpr_31 = (0x08B65B48u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5864), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 418u, 0x08B65B48u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65B48u) goto L_08B65B48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65B48: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5864))); aot_gpr_31 = (0x08B65B54u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 419u, 0x08B65B54u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65B54u) goto L_08B65B54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65B54: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4481,8 +5025,8 @@ L_08B65B54: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65B68: @@ -4565,8 +5109,8 @@ L_08B65BC0: goto L_08B65C1C; L_08B65C1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65C24: @@ -4593,8 +5137,8 @@ L_08B65C5C: goto L_08B65C60; L_08B65C60: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65C68: @@ -4650,8 +5194,8 @@ L_08B65CB8: goto L_08B65CBC; L_08B65CBC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65CC4: @@ -4708,8 +5252,8 @@ L_08B65D1C: goto L_08B65D20; L_08B65D20: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65D28: @@ -4766,8 +5310,8 @@ L_08B65D80: goto L_08B65D84; L_08B65D84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65D8C: @@ -4778,8 +5322,21 @@ L_08B65D8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65DA8u); aot_gpr_4 = (0u | 3188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 453u, 0x08B65DA8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65DA8u) goto L_08B65DA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65DA8: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4791,22 +5348,61 @@ L_08B65DA8: L_08B65DB4: aot_gpr_31 = (0x08B65DBCu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0148. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 455u, 0x08B65DBCu, 0x08A55458u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0148_entry(rt, ctx, 309u, aot_mem); +#else + recomp_unit_0148_entry(rt, ctx, 309u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0148_entry, 148u, 309u, 0x08A55458u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65DBCu) goto L_08B65DBC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65DBC: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B65DC0; L_08B65DC0: aot_gpr_31 = (0x08B65DC8u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5868), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 457u, 0x08B65DC8u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65DC8u) goto L_08B65DC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65DC8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5868))); aot_gpr_31 = (0x08B65DD4u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 458u, 0x08B65DD4u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65DD4u) goto L_08B65DD4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65DD4: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4816,8 +5412,8 @@ L_08B65DD4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65DE8: @@ -4828,8 +5424,21 @@ L_08B65DE8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65E04u); aot_gpr_4 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 460u, 0x08B65E04u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65E04u) goto L_08B65E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65E04: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4841,22 +5450,61 @@ L_08B65E04: L_08B65E10: aot_gpr_31 = (0x08B65E18u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0147. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 462u, 0x08B65E18u, 0x08A52B60u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0147_entry(rt, ctx, 481u, aot_mem); +#else + recomp_unit_0147_entry(rt, ctx, 481u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0147_entry, 147u, 481u, 0x08A52B60u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65E18u) goto L_08B65E18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65E18: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B65E1C; L_08B65E1C: aot_gpr_31 = (0x08B65E24u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5872), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 464u, 0x08B65E24u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65E24u) goto L_08B65E24; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65E24: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5872))); aot_gpr_31 = (0x08B65E30u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 465u, 0x08B65E30u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65E30u) goto L_08B65E30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65E30: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4866,8 +5514,8 @@ L_08B65E30: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65E44: @@ -4878,8 +5526,21 @@ L_08B65E44: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B65E60u); aot_gpr_4 = (0u | 80u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 467u, 0x08B65E60u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65E60u) goto L_08B65E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65E60: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -4891,22 +5552,61 @@ L_08B65E60: L_08B65E6C: aot_gpr_31 = (0x08B65E74u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0112. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 469u, 0x08B65E74u, 0x089C6328u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0112_entry(rt, ctx, 465u, aot_mem); +#else + recomp_unit_0112_entry(rt, ctx, 465u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0112_entry, 112u, 465u, 0x089C6328u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65E74u) goto L_08B65E74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65E74: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B65E78; L_08B65E78: aot_gpr_31 = (0x08B65E80u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5876), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 471u, 0x08B65E80u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65E80u) goto L_08B65E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65E80: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5876))); aot_gpr_31 = (0x08B65E8Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 472u, 0x08B65E8Cu, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B65E8Cu) goto L_08B65E8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B65E8C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4916,8 +5616,8 @@ L_08B65E8C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65EA0: @@ -4936,8 +5636,8 @@ L_08B65EBC: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65ED0: @@ -4976,8 +5676,8 @@ L_08B65F24: aot_gpr_5 = (static_cast(static_cast(aot_gpr_5) >> 4u)); jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_4 + static_cast(0), static_cast(aot_gpr_5)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B65F40: @@ -5083,8 +5783,8 @@ L_08B66014: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66024: @@ -5168,8 +5868,8 @@ L_08B660C8: goto L_08B660CC; L_08B660CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B660D4: @@ -5198,8 +5898,21 @@ L_08B6610C: aot_gpr_4 = (ctx.gpr[19] | 0u); aot_gpr_31 = (0x08B66120u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0000. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 502u, 0x08B66120u, 0x08807CD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0000_entry(rt, ctx, 597u, aot_mem); +#else + recomp_unit_0000_entry(rt, ctx, 597u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0000_entry, 0u, 597u, 0x08807CD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66120u) goto L_08B66120; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66120: aot_gpr_4 = (aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast(12))); aot_gpr_5 = (ctx.gpr[19] - ctx.gpr[16]); @@ -5232,8 +5945,8 @@ L_08B66154: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66170: @@ -5266,8 +5979,8 @@ L_08B66184: L_08B661AC: jump_target = aot_gpr_31; aot_mem.aot_direct_store16(aot_gpr_6 + static_cast(12), static_cast(0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B661B4: @@ -5313,8 +6026,21 @@ L_08B661F8: } L_08B66204: aot_gpr_31 = (0x08B6620Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 514u, 0x08B6620Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6620Cu) goto L_08B6620C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6620C: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -5352,8 +6078,8 @@ L_08B66238: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6624C: @@ -5409,8 +6135,21 @@ L_08B662A0: } L_08B662AC: aot_gpr_31 = (0x08B662B4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 525u, 0x08B662B4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B662B4u) goto L_08B662B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B662B4: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -5450,8 +6189,8 @@ L_08B662E0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B662F4: @@ -5517,8 +6256,21 @@ L_08B66358: } L_08B66364: aot_gpr_31 = (0x08B6636Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 538u, 0x08B6636Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6636Cu) goto L_08B6636C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6636C: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -5558,8 +6310,8 @@ L_08B66398: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B663AC: @@ -5635,8 +6387,21 @@ L_08B66420: } L_08B6642C: aot_gpr_31 = (0x08B66434u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 552u, 0x08B66434u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66434u) goto L_08B66434; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66434: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -5676,8 +6441,8 @@ L_08B66460: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66474: @@ -5708,14 +6473,40 @@ L_08B664A0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B664B4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 561u, 0x08B664B4u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B664B4u) goto L_08B664B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B664B4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B664C0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 562u, 0x08B664C0u, 0x08AACB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B664C0u) goto L_08B664C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B664C0: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5738,8 +6529,8 @@ L_08B664D4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B664E8: @@ -5791,8 +6582,21 @@ L_08B66564: aot_gpr_4 = (ctx.gpr[17] << 2u); aot_gpr_31 = (0x08B66570u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 569u, 0x08B66570u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66570u) goto L_08B66570; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66570: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -5817,8 +6621,21 @@ L_08B66588: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B665A8u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(6), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0007. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 573u, 0x08B665A8u, 0x08821BD8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0007_entry(rt, ctx, 315u, aot_mem); +#else + recomp_unit_0007_entry(rt, ctx, 315u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0007_entry, 7u, 315u, 0x08821BD8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B665A8u) goto L_08B665A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B665A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(8)))))); @@ -5834,8 +6651,21 @@ L_08B665B8: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B665C8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 575u, 0x08B665C8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B665C8u) goto L_08B665C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B665C8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5868,8 +6698,21 @@ L_08B665EC: aot_gpr_4 = (ctx.gpr[17] << 2u); aot_gpr_31 = (0x08B665F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 580u, 0x08B665F8u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B665F8u) goto L_08B665F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B665F8: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -5907,8 +6750,8 @@ L_08B6662C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66650: @@ -5954,8 +6797,8 @@ L_08B66690: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6669C: @@ -6021,8 +6864,21 @@ L_08B66700: } L_08B6670C: aot_gpr_31 = (0x08B66714u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 598u, 0x08B66714u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66714u) goto L_08B66714; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66714: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -6062,8 +6918,8 @@ L_08B66740: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66754: @@ -6094,14 +6950,40 @@ L_08B66780: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B66794u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 607u, 0x08B66794u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66794u) goto L_08B66794; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66794: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B667A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 608u, 0x08B667A0u, 0x08A7FB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 682u, 0x08A7FB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B667A0u) goto L_08B667A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B667A0: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6124,8 +7006,8 @@ L_08B667B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B667C8: @@ -6168,8 +7050,21 @@ L_08B667FC: goto L_08B66808; L_08B66808: aot_gpr_31 = (0x08B66810u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 616u, 0x08B66810u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66810u) goto L_08B66810; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66810: aot_gpr_4 = (ctx.gpr[16] & 1u); goto L_08B66814; @@ -6194,8 +7089,8 @@ L_08B66824: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66838: @@ -6279,8 +7174,8 @@ L_08B66890: goto L_08B668F0; L_08B668F0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B668F8: @@ -6302,8 +7197,8 @@ L_08B66924: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66938: @@ -6330,8 +7225,8 @@ L_08B66970: goto L_08B66974; L_08B66974: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6697C: @@ -6381,8 +7276,8 @@ L_08B669E4: } L_08B66A08: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66A10: @@ -6416,8 +7311,8 @@ L_08B66A4C: goto L_08B66A50; L_08B66A50: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66A58: @@ -6427,8 +7322,8 @@ L_08B66A58: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66A74: @@ -6453,8 +7348,21 @@ L_08B66A8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_5); aot_gpr_31 = (0x08B66A9Cu); aot_gpr_4 = (aot_gpr_5 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 644u, 0x08B66A9Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66A9Cu) goto L_08B66A9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66A9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_6 = (ctx.gpr[2] | 0u); @@ -6494,8 +7402,8 @@ L_08B66AE4: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66AF0: @@ -6536,8 +7444,21 @@ L_08B66B4C: ctx.gpr[17] = (aot_gpr_6 - aot_gpr_5); aot_gpr_31 = (0x08B66B58u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 654u, 0x08B66B58u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66B58u) goto L_08B66B58; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66B58: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[17]); @@ -6559,8 +7480,8 @@ L_08B66B60: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66B84: @@ -6571,8 +7492,21 @@ L_08B66B84: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B66BA0u); aot_gpr_4 = (0u | 428u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 657u, 0x08B66BA0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66BA0u) goto L_08B66BA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66BA0: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6584,22 +7518,61 @@ L_08B66BA0: L_08B66BAC: aot_gpr_31 = (0x08B66BB4u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0027. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 659u, 0x08B66BB4u, 0x08873C40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0027_entry(rt, ctx, 891u, aot_mem); +#else + recomp_unit_0027_entry(rt, ctx, 891u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0027_entry, 27u, 891u, 0x08873C40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66BB4u) goto L_08B66BB4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66BB4: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B66BB8; L_08B66BB8: aot_gpr_31 = (0x08B66BC0u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5880), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 661u, 0x08B66BC0u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66BC0u) goto L_08B66BC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66BC0: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5880))); aot_gpr_31 = (0x08B66BCCu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 662u, 0x08B66BCCu, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66BCCu) goto L_08B66BCC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66BCC: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6609,8 +7582,8 @@ L_08B66BCC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66BE0: @@ -6626,8 +7599,8 @@ L_08B66BE0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), aot_gpr_6); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66C10: @@ -6673,8 +7646,8 @@ L_08B66C68: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66C74: @@ -6757,8 +7730,8 @@ L_08B66CCC: goto L_08B66D28; L_08B66D28: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66D30: @@ -6785,8 +7758,8 @@ L_08B66D68: goto L_08B66D6C; L_08B66D6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66D74: @@ -6820,8 +7793,8 @@ L_08B66DB0: goto L_08B66DB4; L_08B66DB4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66DBC: @@ -6832,8 +7805,21 @@ L_08B66DBC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B66DD8u); aot_gpr_4 = (0u | 176u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 684u, 0x08B66DD8u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66DD8u) goto L_08B66DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66DD8: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6845,22 +7831,61 @@ L_08B66DD8: L_08B66DE4: aot_gpr_31 = (0x08B66DECu); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0018. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 686u, 0x08B66DECu, 0x0884C764u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0018_entry(rt, ctx, 75u, aot_mem); +#else + recomp_unit_0018_entry(rt, ctx, 75u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0018_entry, 18u, 75u, 0x0884C764u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66DECu) goto L_08B66DEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66DEC: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B66DF0; L_08B66DF0: aot_gpr_31 = (0x08B66DF8u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5884), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 688u, 0x08B66DF8u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66DF8u) goto L_08B66DF8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66DF8: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5884))); aot_gpr_31 = (0x08B66E04u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 689u, 0x08B66E04u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66E04u) goto L_08B66E04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66E04: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -6870,8 +7895,8 @@ L_08B66E04: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66E18: @@ -6914,8 +7939,8 @@ L_08B66E54: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66E60: @@ -6925,8 +7950,8 @@ L_08B66E60: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66E7C: @@ -6936,8 +7961,8 @@ L_08B66E7C: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66E98: @@ -6947,8 +7972,8 @@ L_08B66E98: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66EB4: @@ -6958,8 +7983,8 @@ L_08B66EB4: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66ED0: @@ -6987,8 +8012,8 @@ L_08B66EF0: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66EFC: @@ -7054,8 +8079,21 @@ L_08B66F60: } L_08B66F6C: aot_gpr_31 = (0x08B66F74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 711u, 0x08B66F74u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66F74u) goto L_08B66F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66F74: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -7095,8 +8133,8 @@ L_08B66FA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B66FB4: @@ -7127,14 +8165,40 @@ L_08B66FE0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B66FF4u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 720u, 0x08B66FF4u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B66FF4u) goto L_08B66FF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B66FF4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B67000u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 721u, 0x08B67000u, 0x08A7FB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 682u, 0x08A7FB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67000u) goto L_08B67000; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67000: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -7157,8 +8221,8 @@ L_08B67014: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67028: @@ -7261,8 +8325,8 @@ L_08B670BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B670D0: @@ -7300,8 +8364,21 @@ L_08B67118: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); aot_gpr_31 = (0x08B67134u); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 740u, 0x08B67134u, 0x08ABEF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 635u, 0x08ABEF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67134u) goto L_08B67134; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67134: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); goto L_08B67138; @@ -7325,8 +8402,21 @@ L_08B6714C: aot_gpr_5 = (aot_gpr_7 | 0u); aot_gpr_31 = (0x08B6716Cu); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 743u, 0x08B6716Cu, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6716Cu) goto L_08B6716C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6716C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -7343,8 +8433,21 @@ L_08B67178: aot_gpr_4 = (aot_gpr_5 | 0u); aot_gpr_31 = (0x08B67190u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 745u, 0x08B67190u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67190u) goto L_08B67190; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67190: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(0), static_cast(0u)); @@ -7356,8 +8459,21 @@ L_08B6719C: aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); aot_gpr_31 = (0x08B671B0u); aot_gpr_5 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 747u, 0x08B671B0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B671B0u) goto L_08B671B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B671B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -7371,8 +8487,8 @@ L_08B671B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B671D4: @@ -7383,8 +8499,21 @@ L_08B671D4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B671F0u); aot_gpr_4 = (0u | 36u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 749u, 0x08B671F0u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B671F0u) goto L_08B671F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B671F0: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7396,22 +8525,61 @@ L_08B671F0: L_08B671FC: aot_gpr_31 = (0x08B67204u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 751u, 0x08B67204u, 0x0886ED40u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 431u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 431u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 431u, 0x0886ED40u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67204u) goto L_08B67204; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67204: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B67208; L_08B67208: aot_gpr_31 = (0x08B67210u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5888), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 753u, 0x08B67210u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67210u) goto L_08B67210; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67210: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5888))); aot_gpr_31 = (0x08B6721Cu); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 754u, 0x08B6721Cu, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6721Cu) goto L_08B6721C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6721C: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7421,8 +8589,8 @@ L_08B6721C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67230: @@ -7433,8 +8601,21 @@ L_08B67230: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_31); aot_gpr_31 = (0x08B6724Cu); aot_gpr_4 = (0u | 20u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 756u, 0x08B6724Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6724Cu) goto L_08B6724C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6724C: ctx.gpr[16] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -7446,22 +8627,61 @@ L_08B6724C: L_08B67258: aot_gpr_31 = (0x08B67260u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0032. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 758u, 0x08B67260u, 0x08885304u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0032_entry(rt, ctx, 277u, aot_mem); +#else + recomp_unit_0032_entry(rt, ctx, 277u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0032_entry, 32u, 277u, 0x08885304u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67260u) goto L_08B67260; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67260: ctx.gpr[17] = (ctx.gpr[16] | 0u); goto L_08B67264; L_08B67264: aot_gpr_31 = (0x08B6726Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5892), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 760u, 0x08B6726Cu, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6726Cu) goto L_08B6726C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6726C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5892))); aot_gpr_31 = (0x08B67278u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 761u, 0x08B67278u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67278u) goto L_08B67278; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67278: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7471,8 +8691,8 @@ L_08B67278: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6728C: @@ -7495,8 +8715,21 @@ L_08B672A8: aot_gpr_4 = (ctx.gpr[17] + static_cast(164)); aot_gpr_31 = (0x08B672C0u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0026. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 764u, 0x08B672C0u, 0x0886F9A0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0026_entry(rt, ctx, 584u, aot_mem); +#else + recomp_unit_0026_entry(rt, ctx, 584u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0026_entry, 26u, 584u, 0x0886F9A0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B672C0u) goto L_08B672C0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B672C0: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -7545,8 +8778,8 @@ L_08B672FC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67310: @@ -7583,8 +8816,8 @@ L_08B67328: goto L_08B67360; L_08B67360: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67368: @@ -7618,8 +8851,8 @@ L_08B673A4: goto L_08B673A8; L_08B673A8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B673B0: @@ -7629,8 +8862,8 @@ L_08B673B0: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B673CC: @@ -7715,8 +8948,8 @@ L_08B67424: goto L_08B67488; L_08B67488: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67490: @@ -7743,8 +8976,8 @@ L_08B674C8: goto L_08B674CC; L_08B674CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B674D4: @@ -7830,8 +9063,8 @@ L_08B67544: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67558: @@ -7907,8 +9140,21 @@ L_08B675F0: aot_gpr_4 = (0u | 8u); aot_gpr_31 = (0x08B67610u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 809u, 0x08B67610u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67610u) goto L_08B67610; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67610: { std::uint32_t aot_run_words[5]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(24), aot_run_words); @@ -7981,8 +9227,8 @@ L_08B676B8: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(48))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B676C4: @@ -8095,8 +9341,8 @@ L_08B67788: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67798: @@ -8152,8 +9398,21 @@ L_08B67800: aot_gpr_4 = (aot_gpr_5 << 2u); aot_gpr_31 = (0x08B6781Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 833u, 0x08B6781Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6781Cu) goto L_08B6781C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6781C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); ctx.gpr[9] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); @@ -8302,8 +9561,8 @@ L_08B67968: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(44))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67974: @@ -8390,8 +9649,8 @@ L_08B67A20: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67A40: @@ -8441,8 +9700,8 @@ L_08B67AA0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67AB4: @@ -8494,8 +9753,21 @@ L_08B67B30: aot_gpr_4 = (ctx.gpr[17] << 2u); aot_gpr_31 = (0x08B67B3Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 865u, 0x08B67B3Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67B3Cu) goto L_08B67B3C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67B3C: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -8520,8 +9792,21 @@ L_08B67B54: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(1), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B67B74u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(6), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 869u, 0x08B67B74u, 0x0887F7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 745u, 0x0887F7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67B74u) goto L_08B67B74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67B74: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(8)))))); @@ -8537,8 +9822,21 @@ L_08B67B84: aot_gpr_4 = (ctx.gpr[21] | 0u); aot_gpr_31 = (0x08B67B94u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 871u, 0x08B67B94u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67B94u) goto L_08B67B94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67B94: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -8571,8 +9869,21 @@ L_08B67BB8: aot_gpr_4 = (ctx.gpr[17] << 2u); aot_gpr_31 = (0x08B67BC4u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 876u, 0x08B67BC4u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67BC4u) goto L_08B67BC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67BC4: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -8610,8 +9921,8 @@ L_08B67BF8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67C1C: @@ -8674,8 +9985,21 @@ L_08B67CA4: ctx.gpr[23] = (ctx.gpr[22] | 0u); aot_gpr_31 = (0x08B67CD0u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(13), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 885u, 0x08B67CD0u, 0x0887F7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 745u, 0x0887F7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67CD0u) goto L_08B67CD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67CD0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(36)))))); @@ -8700,8 +10024,21 @@ L_08B67CEC: aot_gpr_4 = (ctx.gpr[23] | 0u); aot_gpr_31 = (0x08B67CFCu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 888u, 0x08B67CFCu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67CFCu) goto L_08B67CFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67CFC: ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[21] = (ctx.gpr[21] + ctx.gpr[20]); @@ -8722,8 +10059,21 @@ L_08B67D18: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B67D28u); aot_gpr_6 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 891u, 0x08B67D28u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67D28u) goto L_08B67D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67D28: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[17] = (ctx.gpr[17] + ctx.gpr[20]); @@ -8788,8 +10138,21 @@ L_08B67D80: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(15), static_cast(aot_gpr_4)); aot_gpr_31 = (0x08B67DACu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(20), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0030. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 899u, 0x08B67DACu, 0x0887F7F0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0030_entry(rt, ctx, 745u, aot_mem); +#else + recomp_unit_0030_entry(rt, ctx, 745u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0030_entry, 30u, 745u, 0x0887F7F0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67DACu) goto L_08B67DAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67DAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(40)))))); @@ -8814,8 +10177,21 @@ L_08B67DC8: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B67DD8u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 902u, 0x08B67DD8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67DD8u) goto L_08B67DD8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67DD8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); ctx.gpr[21] = (aot_gpr_4 + ctx.gpr[21]); @@ -8889,8 +10265,21 @@ L_08B67E50: aot_gpr_4 = (ctx.gpr[19] << 2u); aot_gpr_31 = (0x08B67E5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 912u, 0x08B67E5Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67E5Cu) goto L_08B67E5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67E5C: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -8930,8 +10319,21 @@ L_08B67E8C: aot_gpr_4 = (ctx.gpr[20] | 0u); aot_gpr_31 = (0x08B67E9Cu); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 918u, 0x08B67E9Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67E9Cu) goto L_08B67E9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67E9C: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[21]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -8979,8 +10381,21 @@ L_08B67ED8: aot_gpr_5 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B67EECu); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0216->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0216_entry, 925u, 0x08B67EECu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B67EECu) goto L_08B67EEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B67EEC: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); @@ -9020,8 +10435,8 @@ L_08B67F18: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67F44: @@ -9076,8 +10491,8 @@ L_08B67FAC: } L_08B67FBC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67FC4: @@ -9086,8 +10501,8 @@ L_08B67FC4: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B67FD8: diff --git a/profiles/vcs/generated/generated_unit_0217.cpp b/profiles/vcs/generated/generated_unit_0217.cpp index b91316a..5e9b3cd 100644 --- a/profiles/vcs/generated/generated_unit_0217.cpp +++ b/profiles/vcs/generated/generated_unit_0217.cpp @@ -876,6 +876,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B68000u; + if (local_delta_v813 >= 16384u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -929,8 +953,8 @@ L_08B6803C: L_08B68044: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6804C: @@ -966,8 +990,21 @@ L_08B6806C: aot_gpr_4 = (2236u << 16u); ctx.gpr[31] = (0x08B6809Cu); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 10u, 0x08B6809Cu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6809Cu) goto L_08B6809C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6809C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), ctx.gpr[2]); @@ -975,8 +1012,21 @@ L_08B6809C: aot_gpr_4 = (ctx.gpr[2] | 0u); ctx.gpr[31] = (0x08B680B4u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 11u, 0x08B680B4u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B680B4u) goto L_08B680B4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B680B4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -985,8 +1035,21 @@ L_08B680B4: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); ctx.gpr[31] = (0x08B680D0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 12u, 0x08B680D0u, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B680D0u) goto L_08B680D0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B680D0: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(4))); @@ -999,8 +1062,8 @@ L_08B680E4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B680F4: @@ -1032,8 +1095,21 @@ L_08B68130: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(0), aot_gpr_4); ctx.gpr[31] = (0x08B6814Cu); aot_gpr_4 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 16u, 0x08B6814Cu, 0x08ABEF54u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 635u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 635u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 635u, 0x08ABEF54u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6814Cu) goto L_08B6814C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6814C: aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(4))); @@ -1055,8 +1131,21 @@ L_08B68164: aot_gpr_5 = (aot_gpr_7 | 0u); ctx.gpr[31] = (0x08B68184u); aot_gpr_7 = (0u | 1u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 18u, 0x08B68184u, 0x08ABE6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 523u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 523u, 0x08ABE6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68184u) goto L_08B68184; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68184: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); { const bool branch_taken = 0u == 0u; @@ -1073,8 +1162,21 @@ L_08B68190: aot_gpr_4 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B681A8u); aot_gpr_5 = (aot_gpr_6 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 20u, 0x08B681A8u, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B681A8u) goto L_08B681A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B681A8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store8(ctx.gpr[2] + static_cast(0), static_cast(0u)); @@ -1087,8 +1189,21 @@ L_08B681B4: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); ctx.gpr[31] = (0x08B681CCu); aot_gpr_6 = (aot_gpr_6 + static_cast(1)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 22u, 0x08B681CCu, 0x089645DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 36u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 36u, 0x089645DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B681CCu) goto L_08B681CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B681CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -1102,8 +1217,8 @@ L_08B681CC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B681F0: @@ -1194,8 +1309,8 @@ L_08B6827C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B68290: @@ -1206,8 +1321,21 @@ L_08B68290: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08B682ACu); aot_gpr_4 = (0u | 60u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 35u, 0x08B682ACu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B682ACu) goto L_08B682AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B682AC: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1227,14 +1355,40 @@ L_08B682C0: L_08B682C4: ctx.gpr[31] = (0x08B682CCu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5896), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 39u, 0x08B682CCu, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B682CCu) goto L_08B682CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B682CC: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5896))); ctx.gpr[31] = (0x08B682D8u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 40u, 0x08B682D8u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B682D8u) goto L_08B682D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B682D8: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1244,8 +1398,8 @@ L_08B682D8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B682EC: @@ -1265,8 +1419,21 @@ L_08B68308: aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); ctx.gpr[31] = (0x08B68314u); aot_gpr_5 = (0u | 2u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0099. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 43u, 0x08B68314u, 0x08990464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); +#else + recomp_unit_0099_entry(rt, ctx, 70u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0099_entry, 99u, 70u, 0x08990464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68314u) goto L_08B68314; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68314: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1289,8 +1456,8 @@ L_08B68328: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6833C: @@ -1301,8 +1468,21 @@ L_08B6833C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08B68358u); aot_gpr_4 = (0u | 16u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 47u, 0x08B68358u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68358u) goto L_08B68358; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68358: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -1314,22 +1494,61 @@ L_08B68358: L_08B68364: ctx.gpr[31] = (0x08B6836Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0038. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 49u, 0x08B6836Cu, 0x0889E664u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0038_entry(rt, ctx, 557u, aot_mem); +#else + recomp_unit_0038_entry(rt, ctx, 557u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0038_entry, 38u, 557u, 0x0889E664u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6836Cu) goto L_08B6836C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6836C: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08B68370; L_08B68370: ctx.gpr[31] = (0x08B68378u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5900), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 51u, 0x08B68378u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68378u) goto L_08B68378; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68378: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5900))); ctx.gpr[31] = (0x08B68384u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 52u, 0x08B68384u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68384u) goto L_08B68384; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68384: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -1339,8 +1558,8 @@ L_08B68384: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B68398: @@ -1383,8 +1602,21 @@ L_08B683CC: goto L_08B683D8; L_08B683D8: ctx.gpr[31] = (0x08B683E0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 58u, 0x08B683E0u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B683E0u) goto L_08B683E0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B683E0: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08B683E4; @@ -1409,8 +1641,8 @@ L_08B683F4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B68408: @@ -1658,8 +1890,8 @@ L_08B68578: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B685A0: @@ -1711,8 +1943,21 @@ L_08B6861C: aot_gpr_4 = (ctx.gpr[17] << 2u); ctx.gpr[31] = (0x08B68628u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 100u, 0x08B68628u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68628u) goto L_08B68628; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68628: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -1755,8 +2000,21 @@ L_08B68670: aot_gpr_4 = (ctx.gpr[21] | 0u); ctx.gpr[31] = (0x08B68680u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 106u, 0x08B68680u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68680u) goto L_08B68680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68680: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1789,8 +2047,21 @@ L_08B686A4: aot_gpr_4 = (ctx.gpr[17] << 2u); ctx.gpr[31] = (0x08B686B0u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 111u, 0x08B686B0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B686B0u) goto L_08B686B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B686B0: ctx.gpr[21] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[21] != 0u; @@ -1829,8 +2100,8 @@ L_08B686E4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B68708: @@ -1841,8 +2112,21 @@ L_08B68708: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08B68728u); aot_gpr_4 = (0u | 8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 117u, 0x08B68728u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68728u) goto L_08B68728; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68728: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -1872,8 +2156,8 @@ L_08B68748: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6876C: @@ -1939,8 +2223,8 @@ L_08B687D0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B687E4: @@ -1990,8 +2274,21 @@ L_08B68838: aot_gpr_4 = (aot_gpr_6 << 2u); ctx.gpr[31] = (0x08B68850u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 135u, 0x08B68850u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68850u) goto L_08B68850; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68850: aot_gpr_6 = (ctx.gpr[2] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -2068,8 +2365,8 @@ L_08B688C4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B68928: @@ -2091,8 +2388,21 @@ L_08B68944: aot_gpr_4 = (0u | 128u); ctx.gpr[31] = (0x08B68954u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 144u, 0x08B68954u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B68954u) goto L_08B68954; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B68954: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); @@ -2129,8 +2439,8 @@ L_08B68998: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B689A4: @@ -2176,8 +2486,8 @@ L_08B689EC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B68A00: @@ -2804,16 +3114,29 @@ L_08B69134: ctx.gpr[8] = (aot_gpr_29 + static_cast(484)); ctx.gpr[31] = (0x08B69268u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0046. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 181u, 0x08B69268u, 0x088BE284u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0046_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0046_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0046_entry, 46u, 175u, 0x088BE284u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69268u) goto L_08B69268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69268: ctx.gpr[2] = (aot_gpr_16 | 0u); aot_gpr_16 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(792))); ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(796))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(800)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6927C: @@ -2983,8 +3306,21 @@ L_08B69448: aot_gpr_6 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B694CCu); aot_gpr_7 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0046. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 188u, 0x08B694CCu, 0x088BC6BCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0046_entry(rt, ctx, 54u, aot_mem); +#else + recomp_unit_0046_entry(rt, ctx, 54u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0046_entry, 46u, 54u, 0x088BC6BCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B694CCu) goto L_08B694CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B694CC: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(168), aot_gpr_4); @@ -2997,8 +3333,21 @@ L_08B694CC: aot_gpr_4 = (aot_gpr_29 + static_cast(168)); ctx.gpr[31] = (0x08B694F8u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 189u, 0x08B694F8u, 0x088BA9D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 548u, 0x088BA9D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B694F8u) goto L_08B694F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B694F8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); @@ -3165,8 +3514,21 @@ L_08B6969C: aot_gpr_6 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B6971Cu); aot_gpr_7 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0046. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 197u, 0x08B6971Cu, 0x088BCBDCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0046_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0046_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0046_entry, 46u, 81u, 0x088BCBDCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6971Cu) goto L_08B6971C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6971C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(184), aot_gpr_4); @@ -3179,8 +3541,21 @@ L_08B6971C: aot_gpr_4 = (aot_gpr_29 + static_cast(184)); ctx.gpr[31] = (0x08B69748u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 198u, 0x08B69748u, 0x088BAA8Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 556u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 556u, 0x088BAA8Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69748u) goto L_08B69748; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69748: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), aot_gpr_4); @@ -3324,8 +3699,21 @@ L_08B698F0: aot_gpr_4 = (aot_gpr_29 + static_cast(200)); ctx.gpr[31] = (0x08B6991Cu); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 206u, 0x08B6991Cu, 0x088BA9D4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 548u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 548u, 0x088BA9D4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6991Cu) goto L_08B6991C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6991C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), aot_gpr_4); @@ -3354,8 +3742,8 @@ L_08B69940: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B69964: @@ -3531,8 +3919,8 @@ L_08B69A50: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B69A88: @@ -3569,8 +3957,21 @@ L_08B69AE0: aot_gpr_4 = (0u | 128u); ctx.gpr[31] = (0x08B69AECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 234u, 0x08B69AECu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69AECu) goto L_08B69AEC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69AEC: aot_gpr_5 = (ctx.gpr[2] | 0u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -3618,8 +4019,8 @@ L_08B69B2C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B69B5C: @@ -3652,8 +4053,8 @@ L_08B69B80: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B69BB4: @@ -3703,8 +4104,21 @@ L_08B69C14: aot_gpr_4 = (0u | 128u); ctx.gpr[31] = (0x08B69C30u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 248u, 0x08B69C30u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69C30u) goto L_08B69C30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69C30: aot_gpr_7 = (ctx.gpr[2] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3754,8 +4168,8 @@ L_08B69C94: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B69CA0: @@ -3808,8 +4222,21 @@ L_08B69D0C: aot_gpr_4 = (0u | 128u); ctx.gpr[31] = (0x08B69D28u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 258u, 0x08B69D28u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69D28u) goto L_08B69D28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69D28: aot_gpr_7 = (ctx.gpr[2] | 0u); { std::uint32_t aot_run_words[4]{}; @@ -3859,8 +4286,8 @@ L_08B69D8C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B69D98: @@ -3924,8 +4351,21 @@ L_08B69E40: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(12)))))); ctx.gpr[31] = (0x08B69E60u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(13), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 267u, 0x08B69E60u, 0x088BAB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 564u, 0x088BAB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69E60u) goto L_08B69E60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69E60: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(28)))))); @@ -3941,8 +4381,21 @@ L_08B69E70: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B69E80u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 269u, 0x08B69E80u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69E80u) goto L_08B69E80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69E80: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -3960,8 +4413,21 @@ L_08B69E88: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(18)))))); ctx.gpr[31] = (0x08B69EACu); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(19), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 271u, 0x08B69EACu, 0x088BAB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 564u, 0x088BAB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69EACu) goto L_08B69EAC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69EAC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32)))))); @@ -3979,8 +4445,21 @@ L_08B69EC4: aot_gpr_4 = (aot_gpr_4 - aot_gpr_6); ctx.gpr[31] = (0x08B69ED4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 273u, 0x08B69ED4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69ED4u) goto L_08B69ED4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69ED4: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -4030,8 +4509,21 @@ L_08B69F18: aot_gpr_4 = (ctx.gpr[8] << 2u); ctx.gpr[31] = (0x08B69F30u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 279u, 0x08B69F30u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69F30u) goto L_08B69F30; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69F30: ctx.gpr[21] = (ctx.gpr[2] | 0u); { std::uint32_t aot_run_words[3]{}; @@ -4096,8 +4588,21 @@ L_08B69F98: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24)))))); ctx.gpr[31] = (0x08B69FC0u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(25), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0045. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 286u, 0x08B69FC0u, 0x088BAB4Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0045_entry(rt, ctx, 564u, aot_mem); +#else + recomp_unit_0045_entry(rt, ctx, 564u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0045_entry, 45u, 564u, 0x088BAB4Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69FC0u) goto L_08B69FC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69FC0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(36)))))); @@ -4123,8 +4628,21 @@ L_08B69FE0: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B69FF0u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 289u, 0x08B69FF0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B69FF0u) goto L_08B69FF0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B69FF0: ctx.gpr[18] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(32))); goto L_08B69FF4; @@ -4168,8 +4686,8 @@ L_08B6A00C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A05C: @@ -4184,14 +4702,27 @@ L_08B6A05C: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(0u)); ctx.gpr[31] = (0x08B6A08Cu); aot_gpr_7 = (aot_gpr_29 + static_cast(24)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0046. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 295u, 0x08B6A08Cu, 0x088BEA3Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0046_entry(rt, ctx, 241u, aot_mem); +#else + recomp_unit_0046_entry(rt, ctx, 241u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0046_entry, 46u, 241u, 0x088BEA3Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6A08Cu) goto L_08B6A08C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6A08C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A098: @@ -4385,8 +4916,8 @@ L_08B6A198: L_08B6A1A0: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A1A8: @@ -4401,14 +4932,27 @@ L_08B6A1A8: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(24), static_cast(0u)); ctx.gpr[31] = (0x08B6A1D8u); aot_gpr_7 = (aot_gpr_29 + static_cast(24)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0046. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 322u, 0x08B6A1D8u, 0x088BEDBCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0046_entry(rt, ctx, 276u, aot_mem); +#else + recomp_unit_0046_entry(rt, ctx, 276u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0046_entry, 46u, 276u, 0x088BEDBCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6A1D8u) goto L_08B6A1D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6A1D8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(28))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A1E4: @@ -4435,8 +4979,8 @@ L_08B6A1E4: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A238: @@ -4447,8 +4991,21 @@ L_08B6A238: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08B6A254u); aot_gpr_4 = (0u | 12u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 325u, 0x08B6A254u, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6A254u) goto L_08B6A254; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6A254: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -4460,22 +5017,61 @@ L_08B6A254: L_08B6A260: ctx.gpr[31] = (0x08B6A268u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0048. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 327u, 0x08B6A268u, 0x088C5928u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0048_entry(rt, ctx, 304u, aot_mem); +#else + recomp_unit_0048_entry(rt, ctx, 304u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0048_entry, 48u, 304u, 0x088C5928u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6A268u) goto L_08B6A268; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6A268: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08B6A26C; L_08B6A26C: ctx.gpr[31] = (0x08B6A274u); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5904), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 329u, 0x08B6A274u, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6A274u) goto L_08B6A274; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6A274: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5904))); ctx.gpr[31] = (0x08B6A280u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 330u, 0x08B6A280u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6A280u) goto L_08B6A280; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6A280: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -4485,8 +5081,8 @@ L_08B6A280: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A294: @@ -4529,8 +5125,8 @@ L_08B6A2CC: } L_08B6A2DC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A2E4: @@ -4547,8 +5143,8 @@ L_08B6A2F8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A310: @@ -4591,8 +5187,8 @@ L_08B6A34C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A358: @@ -4645,8 +5241,8 @@ L_08B6A3A4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A3B0: @@ -4753,8 +5349,8 @@ L_08B6A458: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A46C: @@ -4936,8 +5532,8 @@ L_08B6A5C0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A5DC: @@ -5008,8 +5604,8 @@ L_08B6A640: L_08B6A644: jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A64C: @@ -5093,8 +5689,8 @@ L_08B6A6B8: L_08B6A6CC: jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A6D4: @@ -5153,8 +5749,8 @@ L_08B6A724: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(8), aot_gpr_4); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A730: @@ -5213,8 +5809,8 @@ L_08B6A780: aot_mem.aot_direct_store32(aot_gpr_6 + static_cast(12), aot_gpr_4); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_6); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A78C: @@ -5297,8 +5893,8 @@ L_08B6A7E4: goto L_08B6A840; L_08B6A840: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A848: @@ -5325,8 +5921,8 @@ L_08B6A880: goto L_08B6A884; L_08B6A884: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6A88C: @@ -5379,8 +5975,21 @@ L_08B6A8E8: aot_gpr_4 = (0u | 24u); ctx.gpr[31] = (0x08B6A8FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 443u, 0x08B6A8FCu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6A8FCu) goto L_08B6A8FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6A8FC: ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); @@ -5467,8 +6076,21 @@ L_08B6A998: aot_gpr_4 = (0u | 24u); ctx.gpr[31] = (0x08B6A9ACu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 453u, 0x08B6A9ACu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6A9ACu) goto L_08B6A9AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6A9AC: ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); @@ -5547,8 +6169,8 @@ L_08B6AA3C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6AA64: @@ -5603,8 +6225,8 @@ L_08B6AAB0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6AAC8: @@ -5769,8 +6391,8 @@ L_08B6AC14: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6AC34: @@ -6395,8 +7017,8 @@ L_08B6B00C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B034: @@ -6888,8 +7510,8 @@ L_08B6B444: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B464: @@ -6932,8 +7554,8 @@ L_08B6B49C: } L_08B6B4AC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B4B4: @@ -6976,8 +7598,8 @@ L_08B6B4EC: } L_08B6B4FC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B504: @@ -7025,8 +7647,8 @@ L_08B6B550: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B55C: @@ -7081,8 +7703,21 @@ L_08B6B5B0: ctx.gpr[9] = (0u | 0u); ctx.gpr[31] = (0x08B6B5CCu); aot_gpr_7 = (aot_gpr_7 + static_cast(-19196)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 650u, 0x08B6B5CCu, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6B5CCu) goto L_08B6B5CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6B5CC: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -7132,8 +7767,8 @@ L_08B6B608: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B620: @@ -7159,8 +7794,8 @@ L_08B6B644: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B650: @@ -7171,8 +7806,21 @@ L_08B6B650: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), ctx.gpr[31]); ctx.gpr[31] = (0x08B6B66Cu); aot_gpr_4 = (0u | 6928u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 661u, 0x08B6B66Cu, 0x08ABE278u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 466u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6B66Cu) goto L_08B6B66C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6B66C: aot_gpr_16 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_16 == 0u; @@ -7184,22 +7832,61 @@ L_08B6B66C: L_08B6B678: ctx.gpr[31] = (0x08B6B680u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0077. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 663u, 0x08B6B680u, 0x08939CE4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0077_entry(rt, ctx, 454u, aot_mem); +#else + recomp_unit_0077_entry(rt, ctx, 454u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0077_entry, 77u, 454u, 0x08939CE4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6B680u) goto L_08B6B680; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6B680: ctx.gpr[17] = (aot_gpr_16 | 0u); goto L_08B6B684; L_08B6B684: ctx.gpr[31] = (0x08B6B68Cu); aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast(5908), ctx.gpr[17]); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 665u, 0x08B6B68Cu, 0x08A06930u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 652u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 652u, 0x08A06930u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6B68Cu) goto L_08B6B68C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6B68C: aot_gpr_5 = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast(5908))); ctx.gpr[31] = (0x08B6B698u); aot_gpr_4 = (ctx.gpr[2] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0128. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 666u, 0x08B6B698u, 0x08A06918u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); +#else + recomp_unit_0128_entry(rt, ctx, 650u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0128_entry, 128u, 650u, 0x08A06918u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6B698u) goto L_08B6B698; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6B698: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(0), aot_run_words); @@ -7209,8 +7896,8 @@ L_08B6B698: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B6AC: @@ -7224,8 +7911,21 @@ L_08B6B6AC: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } ctx.gpr[31] = (0x08B6B6D8u); aot_gpr_4 = (ctx.gpr[18] << 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 668u, 0x08B6B6D8u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6B6D8u) goto L_08B6B6D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6B6D8: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(64), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); @@ -7275,8 +7975,8 @@ L_08B6B72C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B74C: @@ -7315,8 +8015,8 @@ L_08B6B788: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B79C: @@ -7411,8 +8111,8 @@ L_08B6B83C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B850: @@ -7439,8 +8139,8 @@ L_08B6B87C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B890: @@ -7450,8 +8150,8 @@ L_08B6B890: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), aot_gpr_4); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B8A8: @@ -7461,8 +8161,8 @@ L_08B6B8A8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B8C0: @@ -7478,8 +8178,21 @@ L_08B6B8C0: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } ctx.gpr[31] = (0x08B6B8F4u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 695u, 0x08B6B8F4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6B8F4u) goto L_08B6B8F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6B8F4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(80), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] + static_cast(20)); @@ -7531,8 +8244,8 @@ L_08B6B950: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B970: @@ -7571,8 +8284,8 @@ L_08B6B9AC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6B9C0: @@ -7668,8 +8381,8 @@ L_08B6BA68: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BA7C: @@ -7696,8 +8409,8 @@ L_08B6BAA8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BABC: @@ -7707,8 +8420,8 @@ L_08B6BABC: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), aot_gpr_4); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BAD4: @@ -7718,8 +8431,8 @@ L_08B6BAD4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(16))); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(16), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BAEC: @@ -7768,8 +8481,8 @@ L_08B6BB30: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BB4C: @@ -7811,8 +8524,21 @@ L_08B6BB84: } L_08B6BB90: ctx.gpr[31] = (0x08B6BB98u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 731u, 0x08B6BB98u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6BB98u) goto L_08B6BB98; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6BB98: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -7840,8 +8566,21 @@ L_08B6BBB0: goto L_08B6BBBC; L_08B6BBBC: ctx.gpr[31] = (0x08B6BBC4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 735u, 0x08B6BBC4u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6BBC4u) goto L_08B6BBC4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6BBC4: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08B6BBC8; @@ -7866,8 +8605,8 @@ L_08B6BBD8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BBEC: @@ -7894,8 +8633,21 @@ L_08B6BC08: ctx.gpr[8] = (0u | 0u); ctx.gpr[31] = (0x08B6BC34u); ctx.gpr[9] = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 741u, 0x08B6BC34u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6BC34u) goto L_08B6BC34; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6BC34: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -7944,8 +8696,8 @@ L_08B6BC70: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BC84: @@ -7955,8 +8707,8 @@ L_08B6BC84: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_5); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BCA0: @@ -7972,8 +8724,8 @@ L_08B6BCA0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), aot_gpr_6); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BCD0: @@ -8019,8 +8771,8 @@ L_08B6BD28: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BD34: @@ -8085,8 +8837,21 @@ L_08B6BDB4: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B6BDD0u); aot_gpr_5 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 761u, 0x08B6BDD0u, 0x08B6C6C4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 67u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 67u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 67u, 0x08B6C6C4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6BDD0u) goto L_08B6BDD0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6BDD0: { std::uint32_t aot_run_words[4]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(32), aot_run_words); @@ -8097,8 +8862,8 @@ L_08B6BDD0: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BDE8: @@ -8107,8 +8872,8 @@ L_08B6BDE8: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6BDFC: @@ -8178,8 +8943,21 @@ L_08B6BEAC: aot_gpr_6 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B6BEC0u); aot_gpr_7 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 769u, 0x08B6BEC0u, 0x08B6C064u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 5u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 5u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 5u, 0x08B6C064u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6BEC0u) goto L_08B6BEC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6BEC0: { const bool branch_taken = 0u == 0u; if (branch_taken) { @@ -8387,8 +9165,21 @@ L_08B6BFEC: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B6BFFCu); aot_gpr_7 = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0217->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0217_entry, 800u, 0x08B6BFFCu, 0x08B6C588u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 50u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 50u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 50u, 0x08B6C588u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6BFFCu) goto L_08B6BFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6BFFC: ctx.gpr[23] = (ctx.gpr[2] | 0u); ctx.pc = 0x08B6C000u; AOT_REGCACHE_SYNC_OUT(); return; diff --git a/profiles/vcs/generated/generated_unit_0218.cpp b/profiles/vcs/generated/generated_unit_0218.cpp index e49a3e8..16ccca8 100644 --- a/profiles/vcs/generated/generated_unit_0218.cpp +++ b/profiles/vcs/generated/generated_unit_0218.cpp @@ -870,6 +870,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B6C000u; + if (local_delta_v813 >= 16288u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -890,8 +914,21 @@ L_08B6C000: aot_gpr_7 = (ctx.gpr[18] | 0u); ctx.gpr[31] = (0x08B6C018u); ctx.gpr[8] = (ctx.gpr[20] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 2u, 0x08B6C018u, 0x08B6BDFCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 763u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 763u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 763u, 0x08B6BDFCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6C018u) goto L_08B6C018; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6C018: ctx.gpr[17] = (ctx.gpr[23] | 0u); aot_gpr_4 = (ctx.gpr[23] - aot_gpr_16); @@ -922,8 +959,8 @@ L_08B6C038: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C064: @@ -938,8 +975,8 @@ L_08B6C07C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C088: @@ -1085,8 +1122,8 @@ L_08B6C1D8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(80)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C204: @@ -1159,8 +1196,8 @@ L_08B6C2A8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C2C8: @@ -1375,8 +1412,8 @@ L_08B6C4F0: aot_mem.aot_direct_store32_block(aot_gpr_5 + static_cast(0), aot_run_words); } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C504: @@ -1413,8 +1450,8 @@ L_08B6C57C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(32))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C588: @@ -1564,8 +1601,8 @@ L_08B6C6AC: ctx.gpr[2] = (aot_gpr_4 | 0u); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C6C4: @@ -1622,8 +1659,8 @@ L_08B6C738: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C74C: @@ -1712,8 +1749,21 @@ L_08B6C814: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(36), static_cast(0u)); ctx.gpr[31] = (0x08B6C828u); ctx.gpr[20] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(36)))))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0084. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 83u, 0x08B6C828u, 0x089574ECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0084_entry(rt, ctx, 709u, aot_mem); +#else + recomp_unit_0084_entry(rt, ctx, 709u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0084_entry, 84u, 709u, 0x089574ECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6C828u) goto L_08B6C828; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6C828: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), ctx.gpr[2]); ctx.gpr[21] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(40)))))); @@ -1793,8 +1843,8 @@ L_08B6C8BC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C8EC: @@ -1867,8 +1917,8 @@ L_08B6C984: aot_mem.aot_direct_store32_block(aot_gpr_4 + static_cast(0), aot_run_words); } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C99C: @@ -1910,8 +1960,8 @@ L_08B6C9E4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6C9FC: @@ -1924,8 +1974,8 @@ L_08B6CA0C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CA18: @@ -1998,8 +2048,8 @@ L_08B6CA7C: goto L_08B6CA80; L_08B6CA80: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CA88: @@ -2020,8 +2070,21 @@ L_08B6CA88: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), ctx.gpr[31]); ctx.gpr[31] = (0x08B6CACCu); aot_gpr_4 = (aot_gpr_4 + static_cast(25856)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 117u, 0x08B6CACCu, 0x08ABE57Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 501u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 501u, 0x08ABE57Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CACCu) goto L_08B6CACC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6CACC: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(10), static_cast(0u)); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); @@ -2033,8 +2096,21 @@ L_08B6CACC: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(9), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x08B6CAF4u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(14), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0088. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 118u, 0x08B6CAF4u, 0x08964FC0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0088_entry(rt, ctx, 86u, aot_mem); +#else + recomp_unit_0088_entry(rt, ctx, 86u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0088_entry, 88u, 86u, 0x08964FC0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CAF4u) goto L_08B6CAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6CAF4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16)))))); @@ -2052,8 +2128,21 @@ L_08B6CB10: aot_gpr_16 = (aot_gpr_6 - aot_gpr_5); ctx.gpr[31] = (0x08B6CB1Cu); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 120u, 0x08B6CB1Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CB1Cu) goto L_08B6CB1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6CB1C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + aot_gpr_16); @@ -2072,8 +2161,8 @@ L_08B6CB24: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CB3C: @@ -2119,8 +2208,8 @@ L_08B6CB7C: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CB88: @@ -2212,8 +2301,8 @@ L_08B6CC14: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CC28: @@ -2247,8 +2336,8 @@ L_08B6CC64: goto L_08B6CC68; L_08B6CC68: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CC70: @@ -2282,8 +2371,21 @@ L_08B6CCB4: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(4), static_cast(aot_gpr_4)); ctx.gpr[31] = (0x08B6CCE0u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(9), static_cast(aot_gpr_5)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0091. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 145u, 0x08B6CCE0u, 0x08972CF8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0091_entry(rt, ctx, 613u, aot_mem); +#else + recomp_unit_0091_entry(rt, ctx, 613u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0091_entry, 91u, 613u, 0x08972CF8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CCE0u) goto L_08B6CCE0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6CCE0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(12)))))); @@ -2301,8 +2403,21 @@ L_08B6CCFC: ctx.gpr[17] = (aot_gpr_6 - aot_gpr_5); ctx.gpr[31] = (0x08B6CD08u); aot_gpr_6 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 147u, 0x08B6CD08u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CD08u) goto L_08B6CD08; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6CD08: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (ctx.gpr[2] + ctx.gpr[17]); @@ -2324,8 +2439,8 @@ L_08B6CD10: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CD34: @@ -2379,8 +2494,8 @@ L_08B6CD84: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CD90: @@ -2448,8 +2563,8 @@ L_08B6CE0C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CE28: @@ -2532,8 +2647,8 @@ L_08B6CE80: goto L_08B6CEDC; L_08B6CEDC: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CEE4: @@ -2560,8 +2675,8 @@ L_08B6CF1C: goto L_08B6CF20; L_08B6CF20: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CF28: @@ -2575,14 +2690,40 @@ L_08B6CF28: { const std::int64_t product = static_cast(static_cast(aot_gpr_16)) * static_cast(static_cast(aot_gpr_4)); ctx.lo = static_cast(product); ctx.hi = static_cast(static_cast(product) >> 32u); } aot_gpr_4 = (ctx.lo); ctx.gpr[31] = (0x08B6CF54u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 174u, 0x08B6CF54u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CF54u) goto L_08B6CF54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6CF54: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); ctx.gpr[31] = (0x08B6CF60u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 175u, 0x08B6CF60u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CF60u) goto L_08B6CF60; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6CF60: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_16); @@ -2627,8 +2768,8 @@ L_08B6CFB8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6CFD0: @@ -2643,14 +2784,40 @@ L_08B6CFD0: aot_gpr_4 = (aot_gpr_4 << 6u); ctx.gpr[31] = (0x08B6CFFCu); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 180u, 0x08B6CFFCu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6CFFCu) goto L_08B6CFFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6CFFC: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); ctx.gpr[31] = (0x08B6D008u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 181u, 0x08B6D008u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D008u) goto L_08B6D008; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D008: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_16); @@ -2695,8 +2862,8 @@ L_08B6D060: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D078: @@ -2711,14 +2878,40 @@ L_08B6D078: aot_gpr_4 = (aot_gpr_4 << 4u); ctx.gpr[31] = (0x08B6D0A4u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 186u, 0x08B6D0A4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D0A4u) goto L_08B6D0A4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D0A4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); ctx.gpr[31] = (0x08B6D0B0u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 187u, 0x08B6D0B0u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D0B0u) goto L_08B6D0B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D0B0: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_16); @@ -2763,8 +2956,8 @@ L_08B6D108: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D120: @@ -2780,14 +2973,40 @@ L_08B6D120: aot_gpr_4 = (aot_gpr_4 << 5u); ctx.gpr[31] = (0x08B6D150u); aot_gpr_4 = (aot_gpr_5 + aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 192u, 0x08B6D150u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D150u) goto L_08B6D150; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D150: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); ctx.gpr[31] = (0x08B6D15Cu); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 193u, 0x08B6D15Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D15Cu) goto L_08B6D15C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D15C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_16); @@ -2832,8 +3051,8 @@ L_08B6D1B4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D1CC: @@ -2847,14 +3066,40 @@ L_08B6D1CC: aot_gpr_5 = (aot_gpr_4 + aot_gpr_4); ctx.gpr[31] = (0x08B6D1F4u); aot_gpr_4 = (aot_gpr_4 + aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 198u, 0x08B6D1F4u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D1F4u) goto L_08B6D1F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D1F4: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); ctx.gpr[31] = (0x08B6D200u); aot_gpr_4 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 199u, 0x08B6D200u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D200u) goto L_08B6D200; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D200: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), aot_gpr_16); @@ -2899,8 +3144,8 @@ L_08B6D258: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D270: @@ -3031,8 +3276,8 @@ L_08B6D32C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D34C: @@ -3041,8 +3286,21 @@ L_08B6D34C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[31]); aot_gpr_16 = (aot_gpr_4 | 0u); ctx.gpr[31] = (0x08B6D364u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 222u, 0x08B6D364u, 0x08B6B464u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 624u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 624u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 624u, 0x08B6B464u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D364u) goto L_08B6D364; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D364: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(8))); ctx.gpr[2] = (aot_gpr_4 - ctx.gpr[2]); @@ -3050,8 +3308,8 @@ L_08B6D364: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D37C: @@ -3127,8 +3385,21 @@ L_08B6D3F0: } L_08B6D3FC: ctx.gpr[31] = (0x08B6D404u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 231u, 0x08B6D404u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D404u) goto L_08B6D404; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D404: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -3168,8 +3439,8 @@ L_08B6D430: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D444: @@ -3200,14 +3471,40 @@ L_08B6D470: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); ctx.gpr[31] = (0x08B6D484u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 240u, 0x08B6D484u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D484u) goto L_08B6D484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D484: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B6D490u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 241u, 0x08B6D490u, 0x08AACB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D490u) goto L_08B6D490; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D490: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3230,8 +3527,8 @@ L_08B6D4A4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D4B8: @@ -3287,8 +3584,21 @@ L_08B6D50C: } L_08B6D518: ctx.gpr[31] = (0x08B6D520u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 250u, 0x08B6D520u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D520u) goto L_08B6D520; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D520: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -3328,8 +3638,8 @@ L_08B6D54C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D560: @@ -3523,8 +3833,8 @@ L_08B6D660: L_08B6D668: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D670: @@ -3718,8 +4028,8 @@ L_08B6D770: L_08B6D778: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D780: @@ -3728,8 +4038,8 @@ L_08B6D780: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(0), aot_gpr_6); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(4), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D794: @@ -3805,8 +4115,21 @@ L_08B6D808: } L_08B6D814: ctx.gpr[31] = (0x08B6D81Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 315u, 0x08B6D81Cu, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D81Cu) goto L_08B6D81C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D81C: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (aot_gpr_16 & 1u); @@ -3846,8 +4169,8 @@ L_08B6D848: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D85C: @@ -3878,14 +4201,40 @@ L_08B6D888: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); ctx.gpr[31] = (0x08B6D89Cu); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 324u, 0x08B6D89Cu, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D89Cu) goto L_08B6D89C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D89C: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B6D8A8u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 325u, 0x08B6D8A8u, 0x08AACB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D8A8u) goto L_08B6D8A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D8A8: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3908,8 +4257,8 @@ L_08B6D8BC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D8D0: @@ -3931,8 +4280,21 @@ L_08B6D8EC: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B6D904u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 330u, 0x08B6D904u, 0x08AAD844u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 266u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 266u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 266u, 0x08AAD844u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6D904u) goto L_08B6D904; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6D904: aot_gpr_4 = (aot_gpr_16 & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -3955,8 +4317,8 @@ L_08B6D918: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D92C: @@ -4009,8 +4371,8 @@ L_08B6D978: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D984: @@ -4056,8 +4418,8 @@ L_08B6D9C4: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6D9D0: @@ -4084,8 +4446,8 @@ L_08B6DA08: goto L_08B6DA0C; L_08B6DA0C: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DA14: @@ -4138,8 +4500,8 @@ L_08B6DA60: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DA6C: @@ -4166,8 +4528,8 @@ L_08B6DAA4: goto L_08B6DAA8; L_08B6DAA8: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DAB0: @@ -4177,8 +4539,8 @@ L_08B6DAB0: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DACC: @@ -4222,8 +4584,21 @@ L_08B6DB04: goto L_08B6DB10; L_08B6DB10: ctx.gpr[31] = (0x08B6DB18u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 365u, 0x08B6DB18u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DB18u) goto L_08B6DB18; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6DB18: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08B6DB1C; @@ -4248,8 +4623,8 @@ L_08B6DB2C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DB40: @@ -4295,8 +4670,8 @@ L_08B6DB80: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DB8C: @@ -4351,8 +4726,8 @@ L_08B6DBD8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DBF0: @@ -4443,8 +4818,8 @@ L_08B6DC7C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DC90: @@ -4460,8 +4835,8 @@ L_08B6DC90: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), aot_gpr_6); jump_target = ctx.gpr[31]; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DCC0: @@ -4511,8 +4886,8 @@ L_08B6DD28: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DD34: @@ -4561,8 +4936,21 @@ L_08B6DD98: aot_gpr_4 = (0u | 28u); ctx.gpr[31] = (0x08B6DDA8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 403u, 0x08B6DDA8u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DDA8u) goto L_08B6DDA8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6DDA8: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -4650,8 +5038,21 @@ L_08B6DE4C: aot_gpr_4 = (0u | 28u); ctx.gpr[31] = (0x08B6DE5Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 413u, 0x08B6DE5Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DE5Cu) goto L_08B6DE5C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6DE5C: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -4717,8 +5118,21 @@ L_08B6DED8: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); ctx.gpr[31] = (0x08B6DEF4u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 421u, 0x08B6DEF4u, 0x08B6A46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 368u, 0x08B6A46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6DEF4u) goto L_08B6DEF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6DEF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -4733,8 +5147,8 @@ L_08B6DEF4: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DF1C: @@ -4787,8 +5201,8 @@ L_08B6DF70: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6DF88: @@ -4867,8 +5281,21 @@ L_08B6E008: L_08B6E030: ctx.gpr[31] = (0x08B6E038u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 436u, 0x08B6E038u, 0x08B6A64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E038u) goto L_08B6E038; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E038: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); @@ -4950,8 +5377,8 @@ L_08B6E0D8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E0F8: @@ -5043,8 +5470,21 @@ L_08B6E1CC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); ctx.gpr[31] = (0x08B6E1DCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 453u, 0x08B6E1DCu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E1DCu) goto L_08B6E1DC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E1DC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -5221,8 +5661,21 @@ L_08B6E34C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_4); ctx.gpr[31] = (0x08B6E35Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 473u, 0x08B6E35Cu, 0x08B6A64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E35Cu) goto L_08B6E35C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E35C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), ctx.gpr[2]); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(44), static_cast(0u)); @@ -5299,8 +5752,21 @@ L_08B6E408: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); ctx.gpr[31] = (0x08B6E418u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 481u, 0x08B6E418u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E418u) goto L_08B6E418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E418: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[19] < static_cast(1) ? 1u : 0u); @@ -5442,8 +5908,8 @@ L_08B6E518: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E538: @@ -5457,8 +5923,21 @@ L_08B6E538: aot_mem.aot_direct_store32_block(aot_gpr_29 + static_cast(12), aot_run_words); } ctx.gpr[31] = (0x08B6E564u); aot_gpr_4 = (ctx.gpr[18] << 4u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 498u, 0x08B6E564u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E564u) goto L_08B6E564; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E564: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(64), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[17] + static_cast(16)); @@ -5508,8 +5987,8 @@ L_08B6E5B8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E5D8: @@ -5548,8 +6027,8 @@ L_08B6E614: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E628: @@ -5644,8 +6123,8 @@ L_08B6E6C8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E6DC: @@ -5672,8 +6151,8 @@ L_08B6E708: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E71C: @@ -5683,8 +6162,8 @@ L_08B6E71C: aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(8), aot_gpr_4); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(12), aot_gpr_5); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E734: @@ -5694,8 +6173,8 @@ L_08B6E734: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(12))); jump_target = ctx.gpr[31]; aot_mem.aot_direct_store32(aot_gpr_5 + static_cast(12), aot_gpr_4); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E74C: @@ -5738,8 +6217,21 @@ L_08B6E798: L_08B6E7A8: ctx.gpr[31] = (0x08B6E7B0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 528u, 0x08B6E7B0u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E7B0u) goto L_08B6E7B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E7B0: ctx.gpr[20] = (ctx.gpr[2] | 0u); { const bool branch_taken = ctx.gpr[20] != 0u; @@ -5765,8 +6257,21 @@ L_08B6E7C8: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(8)))))); ctx.gpr[31] = (0x08B6E7E8u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(9), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 532u, 0x08B6E7E8u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E7E8u) goto L_08B6E7E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E7E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(20)))))); @@ -5782,8 +6287,21 @@ L_08B6E7F8: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B6E808u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 534u, 0x08B6E808u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E808u) goto L_08B6E808; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E808: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); { const bool branch_taken = aot_gpr_4 == 0u; @@ -5835,8 +6353,21 @@ L_08B6E85C: aot_gpr_4 = (aot_gpr_5 | 0u); ctx.gpr[31] = (0x08B6E870u); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 540u, 0x08B6E870u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E870u) goto L_08B6E870; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E870: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(11), static_cast(0u)); { const bool branch_taken = 0u == 0u; @@ -5864,8 +6395,21 @@ L_08B6E898: aot_gpr_6 = (aot_gpr_5 - aot_gpr_7); ctx.gpr[31] = (0x08B6E8ACu); aot_gpr_5 = (aot_gpr_7 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 543u, 0x08B6E8ACu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E8ACu) goto L_08B6E8AC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E8AC: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[17] = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -5882,8 +6426,21 @@ L_08B6E8AC: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(16)))))); ctx.gpr[31] = (0x08B6E8E8u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(17), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 544u, 0x08B6E8E8u, 0x08A87A98u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 577u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 577u, 0x08A87A98u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E8E8u) goto L_08B6E8E8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E8E8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(24), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(24)))))); @@ -5899,8 +6456,21 @@ L_08B6E8F8: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B6E908u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 546u, 0x08B6E908u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E908u) goto L_08B6E908; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E908: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_4 = (aot_gpr_4 + ctx.gpr[18]); @@ -5919,8 +6489,8 @@ L_08B6E914: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6E938: @@ -5980,8 +6550,21 @@ L_08B6E9C4: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(12)))))); ctx.gpr[31] = (0x08B6E9F0u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(13), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 552u, 0x08B6E9F0u, 0x08A87A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 576u, 0x08A87A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6E9F0u) goto L_08B6E9F0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6E9F0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(36)))))); @@ -6006,8 +6589,21 @@ L_08B6EA0C: aot_gpr_4 = (ctx.gpr[23] | 0u); ctx.gpr[31] = (0x08B6EA1Cu); aot_gpr_5 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 555u, 0x08B6EA1Cu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EA1Cu) goto L_08B6EA1C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6EA1C: ctx.gpr[21] = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.gpr[21] = (ctx.gpr[21] + ctx.gpr[20]); @@ -6028,8 +6624,21 @@ L_08B6EA38: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B6EA48u); aot_gpr_6 = (aot_gpr_16 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 558u, 0x08B6EA48u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EA48u) goto L_08B6EA48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6EA48: aot_gpr_4 = (ctx.gpr[17] | 0u); ctx.gpr[17] = (ctx.gpr[17] + ctx.gpr[20]); @@ -6093,8 +6702,21 @@ L_08B6EA9C: aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(19)))))); ctx.gpr[31] = (0x08B6EAC8u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(20), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0160. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 566u, 0x08B6EAC8u, 0x08A87A84u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0160_entry(rt, ctx, 576u, aot_mem); +#else + recomp_unit_0160_entry(rt, ctx, 576u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0160_entry, 160u, 576u, 0x08A87A84u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EAC8u) goto L_08B6EAC8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6EAC8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(40)))))); @@ -6119,8 +6741,21 @@ L_08B6EAE4: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B6EAF4u); aot_gpr_5 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 569u, 0x08B6EAF4u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EAF4u) goto L_08B6EAF4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6EAF4: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); ctx.gpr[21] = (aot_gpr_4 + ctx.gpr[21]); @@ -6195,8 +6830,21 @@ L_08B6EB74: aot_gpr_4 = (ctx.gpr[19] << 2u); ctx.gpr[31] = (0x08B6EB80u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(44), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 579u, 0x08B6EB80u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EB80u) goto L_08B6EB80; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6EB80: aot_gpr_4 = (ctx.gpr[2] | 0u); { const bool branch_taken = aot_gpr_4 != 0u; @@ -6237,8 +6885,21 @@ L_08B6EBB0: aot_gpr_4 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B6EBC0u); aot_gpr_6 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 585u, 0x08B6EBC0u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EBC0u) goto L_08B6EBC0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6EBC0: aot_gpr_5 = (ctx.gpr[2] + ctx.gpr[21]); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); @@ -6286,8 +6947,21 @@ L_08B6EBFC: aot_gpr_5 = (ctx.gpr[17] | 0u); ctx.gpr[31] = (0x08B6EC10u); aot_gpr_6 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 592u, 0x08B6EC10u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EC10u) goto L_08B6EC10; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6EC10: ctx.gpr[17] = (ctx.gpr[2] + ctx.gpr[18]); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); @@ -6326,8 +7000,8 @@ L_08B6EC3C: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6EC68: @@ -6514,8 +7188,8 @@ L_08B6ED4C: L_08B6ED54: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6ED5C: @@ -6524,8 +7198,8 @@ L_08B6ED5C: ctx.gpr[2] = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(0)))))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6ED70: @@ -6579,8 +7253,8 @@ L_08B6EDC4: L_08B6EDCC: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6EDD4: @@ -6767,8 +7441,8 @@ L_08B6EEB8: L_08B6EEC0: jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6EEC8: @@ -6824,8 +7498,8 @@ L_08B6EF1C: goto L_08B6EF20; L_08B6EF20: jump_target = ctx.gpr[31]; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6EF28: @@ -6869,8 +7543,21 @@ L_08B6EF60: goto L_08B6EF6C; L_08B6EF6C: ctx.gpr[31] = (0x08B6EF74u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 667u, 0x08B6EF74u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6EF74u) goto L_08B6EF74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6EF74: aot_gpr_4 = (aot_gpr_16 & 1u); goto L_08B6EF78; @@ -6895,8 +7582,8 @@ L_08B6EF88: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6EF9C: @@ -6963,8 +7650,8 @@ L_08B6F000: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6F014: @@ -7014,8 +7701,21 @@ L_08B6F068: aot_gpr_4 = (aot_gpr_6 << 2u); ctx.gpr[31] = (0x08B6F080u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 685u, 0x08B6F080u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F080u) goto L_08B6F080; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6F080: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -7094,8 +7794,8 @@ L_08B6F0FC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6F160: @@ -7115,8 +7815,21 @@ L_08B6F178: aot_gpr_4 = (0u | 128u); ctx.gpr[31] = (0x08B6F18Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 693u, 0x08B6F18Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F18Cu) goto L_08B6F18C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6F18C: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -7154,8 +7867,8 @@ L_08B6F1D0: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6F1DC: @@ -7202,8 +7915,8 @@ L_08B6F224: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6F238: @@ -7375,8 +8088,21 @@ L_08B6F400: aot_gpr_6 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B6F484u); aot_gpr_7 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 710u, 0x08B6F484u, 0x08A9C198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 9u, 0x08A9C198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F484u) goto L_08B6F484; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6F484: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(4))); @@ -7389,8 +8115,21 @@ L_08B6F484: aot_gpr_4 = (aot_gpr_29 + static_cast(168)); ctx.gpr[31] = (0x08B6F4B0u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 711u, 0x08B6F4B0u, 0x08A9B124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 386u, 0x08A9B124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F4B0u) goto L_08B6F4B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6F4B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(72), aot_gpr_4); @@ -7558,8 +8297,21 @@ L_08B6F64C: aot_gpr_6 = (ctx.gpr[20] | 0u); ctx.gpr[31] = (0x08B6F6C8u); aot_gpr_7 = (ctx.gpr[21] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 719u, 0x08B6F6C8u, 0x08A9BF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 508u, 0x08A9BF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F6C8u) goto L_08B6F6C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6F6C8: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(16))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_16 + static_cast(20))); @@ -7572,8 +8324,21 @@ L_08B6F6C8: aot_gpr_4 = (aot_gpr_29 + static_cast(184)); ctx.gpr[31] = (0x08B6F6F4u); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 720u, 0x08B6F6F4u, 0x08A9BEB4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 500u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 500u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 500u, 0x08A9BEB4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F6F4u) goto L_08B6F6F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6F6F4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(152), aot_gpr_4); @@ -7715,8 +8480,21 @@ L_08B6F898: aot_gpr_4 = (aot_gpr_29 + static_cast(200)); ctx.gpr[31] = (0x08B6F8C4u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 728u, 0x08B6F8C4u, 0x08A9B124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 386u, 0x08A9B124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6F8C4u) goto L_08B6F8C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6F8C4: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), aot_gpr_4); @@ -7745,8 +8523,8 @@ L_08B6F8E8: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(384)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6F90C: @@ -7921,8 +8699,8 @@ L_08B6F9FC: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6FA30: @@ -7963,8 +8741,21 @@ L_08B6FA8C: aot_gpr_4 = (0u | 128u); ctx.gpr[31] = (0x08B6FA9Cu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 757u, 0x08B6FA9Cu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FA9Cu) goto L_08B6FA9C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6FA9C: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -8013,8 +8804,8 @@ L_08B6FAE8: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6FB14: @@ -8053,8 +8844,21 @@ L_08B6FB68: aot_gpr_4 = (0u | 128u); ctx.gpr[31] = (0x08B6FB78u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 767u, 0x08B6FB78u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FB78u) goto L_08B6FB78; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6FB78: aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(8))); aot_gpr_5 = (ctx.gpr[2] | 0u); @@ -8103,8 +8907,8 @@ L_08B6FBDC: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6FBE8: @@ -8138,8 +8942,8 @@ L_08B6FC10: ctx.gpr[31] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6FC40: @@ -8197,8 +9001,8 @@ L_08B6FC94: } jump_target = ctx.gpr[31]; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B6FCFC: @@ -8372,8 +9176,21 @@ L_08B6FEE0: aot_gpr_4 = (aot_gpr_29 + static_cast(244)); ctx.gpr[31] = (0x08B6FEFCu); aot_gpr_5 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0218->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0218_entry, 791u, 0x08B6FEFCu, 0x08A9B124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 386u, 0x08A9B124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B6FEFCu) goto L_08B6FEFC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B6FEFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); diff --git a/profiles/vcs/generated/generated_unit_0219.cpp b/profiles/vcs/generated/generated_unit_0219.cpp index 1e03d75..ff54fce 100644 --- a/profiles/vcs/generated/generated_unit_0219.cpp +++ b/profiles/vcs/generated/generated_unit_0219.cpp @@ -980,6 +980,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B70000u; + if (local_delta_v813 >= 16336u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -997,8 +1021,21 @@ L_08B70000: aot_gpr_4 = (ctx.gpr[8] | 0u); aot_gpr_31 = (0x08B7000Cu); aot_gpr_5 = (ctx.gpr[10] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 2u, 0x08B7000Cu, 0x08A9BF74u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 508u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 508u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 508u, 0x08A9BF74u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B7000Cu) goto L_08B7000C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B7000C: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -1085,8 +1122,21 @@ L_08B700B4: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(296), ctx.gpr[8]); aot_gpr_31 = (0x08B700C4u); aot_gpr_5 = (ctx.gpr[3] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0218. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 11u, 0x08B700C4u, 0x08B6FA30u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0218_entry(rt, ctx, 753u, aot_mem); +#else + recomp_unit_0218_entry(rt, ctx, 753u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0218_entry, 218u, 753u, 0x08B6FA30u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B700C4u) goto L_08B700C4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B700C4: ctx.gpr[2] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(292))); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(296))); @@ -1161,8 +1211,21 @@ L_08B70170: aot_gpr_4 = (aot_gpr_29 + static_cast(276)); aot_gpr_31 = (0x08B70198u); aot_gpr_5 = (ctx.gpr[8] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 17u, 0x08B70198u, 0x08A9B124u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 386u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 386u, 0x08A9B124u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70198u) goto L_08B70198; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70198: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[2] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(132), aot_gpr_4); @@ -1208,8 +1271,21 @@ L_08B70198: aot_gpr_6 = (aot_gpr_29 + static_cast(180)); aot_gpr_31 = (0x08B7024Cu); aot_gpr_7 = (aot_gpr_29 + static_cast(196)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0166. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 18u, 0x08B7024Cu, 0x08A9C198u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0166_entry(rt, ctx, 9u, aot_mem); +#else + recomp_unit_0166_entry(rt, ctx, 9u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0166_entry, 166u, 9u, 0x08A9C198u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B7024Cu) goto L_08B7024C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B7024C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); goto L_08B70250; @@ -1229,8 +1305,8 @@ L_08B70250: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(320)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70280: @@ -1298,8 +1374,21 @@ L_08B70328: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(8), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08B70348u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(13), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 24u, 0x08B70348u, 0x08A9A6B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 294u, 0x08A9A6B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70348u) goto L_08B70348; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70348: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(28), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(28)))))); @@ -1315,8 +1404,21 @@ L_08B70358: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B70368u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 26u, 0x08B70368u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70368u) goto L_08B70368; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70368: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -1335,8 +1437,21 @@ L_08B70370: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(14), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08B70394u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(19), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 28u, 0x08B70394u, 0x08A9A6B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 294u, 0x08A9A6B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70394u) goto L_08B70394; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70394: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(32), ctx.gpr[2]); aot_gpr_5 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(32)))))); @@ -1354,8 +1469,21 @@ L_08B703A8: aot_gpr_4 = (aot_gpr_4 - aot_gpr_6); aot_gpr_31 = (0x08B703BCu); aot_gpr_5 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 30u, 0x08B703BCu, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B703BCu) goto L_08B703BC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B703BC: { const bool branch_taken = 0u == 0u; aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast(0))); @@ -1406,8 +1534,21 @@ L_08B70400: aot_gpr_4 = (ctx.gpr[8] << 2u); aot_gpr_31 = (0x08B70418u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(40), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 36u, 0x08B70418u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70418u) goto L_08B70418; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70418: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(40), aot_run_words); @@ -1469,8 +1610,21 @@ L_08B70480: aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(20), static_cast(aot_gpr_5)); aot_gpr_31 = (0x08B704A8u); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(25), static_cast(aot_gpr_4)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 43u, 0x08B704A8u, 0x08A9A6B8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 294u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 294u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 294u, 0x08A9A6B8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B704A8u) goto L_08B704A8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B704A8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(36), ctx.gpr[2]); aot_gpr_4 = (static_cast(static_cast(static_cast(aot_mem.aot_direct_load8(aot_gpr_29 + static_cast(36)))))); @@ -1496,8 +1650,21 @@ L_08B704C8: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B704D8u); aot_gpr_5 = (ctx.gpr[19] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0188. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 46u, 0x08B704D8u, 0x08AF54A4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); +#else + recomp_unit_0188_entry(rt, ctx, 164u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0188_entry, 188u, 164u, 0x08AF54A4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B704D8u) goto L_08B704D8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B704D8: ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(32))); goto L_08B704DC; @@ -1543,8 +1710,8 @@ L_08B704F8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(96)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70544: @@ -1597,8 +1764,8 @@ L_08B70590: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7059C: @@ -1664,8 +1831,21 @@ L_08B70600: } L_08B7060C: aot_gpr_31 = (0x08B70614u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 66u, 0x08B70614u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70614u) goto L_08B70614; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70614: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -1705,8 +1885,8 @@ L_08B70640: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70654: @@ -1737,14 +1917,40 @@ L_08B70680: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B70694u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 75u, 0x08B70694u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70694u) goto L_08B70694; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70694: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B706A0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0158. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 76u, 0x08B706A0u, 0x08A7FB94u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); +#else + recomp_unit_0158_entry(rt, ctx, 682u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0158_entry, 158u, 682u, 0x08A7FB94u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B706A0u) goto L_08B706A0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B706A0: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1767,8 +1973,8 @@ L_08B706B4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B706C8: @@ -1790,8 +1996,21 @@ L_08B706E4: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B706FCu); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0159. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 81u, 0x08B706FCu, 0x08A8223Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0159_entry(rt, ctx, 175u, aot_mem); +#else + recomp_unit_0159_entry(rt, ctx, 175u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0159_entry, 159u, 175u, 0x08A8223Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B706FCu) goto L_08B706FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B706FC: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -1814,8 +2033,8 @@ L_08B70710: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70724: @@ -1829,14 +2048,40 @@ L_08B70724: aot_gpr_5 = (ctx.gpr[16] << 2u); aot_gpr_31 = (0x08B7074Cu); aot_gpr_4 = (aot_gpr_4 - aot_gpr_5); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 85u, 0x08B7074Cu, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B7074Cu) goto L_08B7074C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B7074C: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(0), ctx.gpr[2]); aot_gpr_31 = (0x08B70758u); aot_gpr_4 = (ctx.gpr[16] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 86u, 0x08B70758u, 0x08ABE29Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 468u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 468u, 0x08ABE29Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70758u) goto L_08B70758; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70758: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(4), ctx.gpr[2]); aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(8), ctx.gpr[16]); @@ -1881,8 +2126,8 @@ L_08B707B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B707C8: @@ -1924,8 +2169,8 @@ L_08B70800: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70814: @@ -1959,8 +2204,8 @@ L_08B7084C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7085C: @@ -2043,8 +2288,8 @@ L_08B708B4: goto L_08B70910; L_08B70910: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70918: @@ -2071,8 +2316,8 @@ L_08B70950: goto L_08B70954; L_08B70954: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7095C: @@ -2082,8 +2327,8 @@ L_08B7095C: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70978: @@ -2166,8 +2411,8 @@ L_08B709D0: goto L_08B70A2C; L_08B70A2C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70A34: @@ -2194,8 +2439,8 @@ L_08B70A6C: goto L_08B70A70; L_08B70A70: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70A78: @@ -2205,8 +2450,8 @@ L_08B70A78: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70A94: @@ -2243,8 +2488,8 @@ L_08B70AAC: goto L_08B70AE4; L_08B70AE4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70AEC: @@ -2281,8 +2526,8 @@ L_08B70B04: goto L_08B70B3C; L_08B70B3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70B44: @@ -2319,8 +2564,8 @@ L_08B70B5C: goto L_08B70B94; L_08B70B94: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70B9C: @@ -2344,8 +2589,8 @@ L_08B70BAC: } L_08B70BB8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70BC0: @@ -2361,8 +2606,8 @@ L_08B70BC0: aot_mem.aot_direct_store32(aot_gpr_4 + static_cast(16), aot_gpr_6); jump_target = aot_gpr_31; ctx.gpr[2] = (aot_gpr_4 | 0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70BF0: @@ -2412,8 +2657,8 @@ L_08B70C58: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(16))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70C64: @@ -2480,8 +2725,8 @@ L_08B70CC8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70CDC: @@ -2531,8 +2776,21 @@ L_08B70D30: aot_gpr_4 = (aot_gpr_6 << 2u); aot_gpr_31 = (0x08B70D48u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(16), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 158u, 0x08B70D48u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70D48u) goto L_08B70D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70D48: { std::uint32_t aot_run_words[3]{}; aot_mem.aot_direct_load32_block(aot_gpr_29 + static_cast(8), aot_run_words); @@ -2611,8 +2869,8 @@ L_08B70DC4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70E28: @@ -2632,8 +2890,21 @@ L_08B70E40: aot_gpr_4 = (0u | 128u); aot_gpr_31 = (0x08B70E54u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 166u, 0x08B70E54u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70E54u) goto L_08B70E54; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70E54: aot_gpr_6 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); aot_gpr_7 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -2671,8 +2942,8 @@ L_08B70E98: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(12))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70EA4: @@ -2719,8 +2990,8 @@ L_08B70EEC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B70F00: @@ -2769,8 +3040,21 @@ L_08B70F64: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08B70F74u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 182u, 0x08B70F74u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B70F74u) goto L_08B70F74; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B70F74: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -2856,8 +3140,21 @@ L_08B71010: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08B71020u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 192u, 0x08B71020u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71020u) goto L_08B71020; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71020: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -2921,8 +3218,21 @@ L_08B71094: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x08B710B0u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 200u, 0x08B710B0u, 0x08B6A46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 368u, 0x08B6A46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B710B0u) goto L_08B710B0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B710B0: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -2937,8 +3247,8 @@ L_08B710B0: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B710D8: @@ -2991,8 +3301,8 @@ L_08B7112C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B71144: @@ -3071,8 +3381,21 @@ L_08B711C4: L_08B711EC: aot_gpr_31 = (0x08B711F4u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 215u, 0x08B711F4u, 0x08B6A64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B711F4u) goto L_08B711F4; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B711F4: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); @@ -3154,8 +3477,8 @@ L_08B71294: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B712B4: @@ -3204,8 +3527,21 @@ L_08B71318: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08B71328u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 229u, 0x08B71328u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71328u) goto L_08B71328; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71328: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -3302,8 +3638,21 @@ L_08B713DC: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08B713ECu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 240u, 0x08B713ECu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B713ECu) goto L_08B713EC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B713EC: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -3378,8 +3727,21 @@ L_08B71478: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x08B71494u); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 249u, 0x08B71494u, 0x08B6A46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 368u, 0x08B6A46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71494u) goto L_08B71494; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71494: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -3394,8 +3756,8 @@ L_08B71494: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B714BC: @@ -3493,8 +3855,8 @@ L_08B71550: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B71568: @@ -3573,8 +3935,21 @@ L_08B715E8: L_08B71610: aot_gpr_31 = (0x08B71618u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 270u, 0x08B71618u, 0x08B6A64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71618u) goto L_08B71618; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71618: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); @@ -3656,8 +4031,8 @@ L_08B716BC: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B716DC: @@ -3706,8 +4081,21 @@ L_08B71740: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08B71750u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(12), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 284u, 0x08B71750u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71750u) goto L_08B71750; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71750: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -3793,8 +4181,21 @@ L_08B717EC: aot_gpr_4 = (0u | 24u); aot_gpr_31 = (0x08B717FCu); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(8), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 294u, 0x08B717FCu, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B717FCu) goto L_08B717FC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B717FC: ctx.gpr[18] = (ctx.gpr[2] | 0u); ctx.gpr[8] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); @@ -3858,8 +4259,21 @@ L_08B71870: aot_gpr_5 = (aot_gpr_5 + static_cast(4)); aot_gpr_31 = (0x08B7188Cu); aot_gpr_4 = (ctx.gpr[18] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 302u, 0x08B7188Cu, 0x08B6A46Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 368u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 368u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 368u, 0x08B6A46Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B7188Cu) goto L_08B7188C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B7188C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(4))); aot_gpr_4 = (aot_gpr_4 + static_cast(1)); @@ -3874,8 +4288,8 @@ L_08B7188C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(48)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B718B4: @@ -3954,8 +4368,21 @@ L_08B71934: L_08B7195C: aot_gpr_31 = (0x08B71964u); aot_gpr_4 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 311u, 0x08B71964u, 0x08B6A64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71964u) goto L_08B71964; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71964: { const bool branch_taken = 0u == 0u; aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), ctx.gpr[2]); @@ -4037,8 +4464,8 @@ L_08B71A08: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(64)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B71A28: @@ -4130,8 +4557,21 @@ L_08B71AFC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); aot_gpr_31 = (0x08B71B0Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 328u, 0x08B71B0Cu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71B0Cu) goto L_08B71B0C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71B0C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -4308,8 +4748,21 @@ L_08B71C7C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_4); aot_gpr_31 = (0x08B71C8Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 348u, 0x08B71C8Cu, 0x08B6A64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71C8Cu) goto L_08B71C8C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71C8C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), ctx.gpr[2]); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(44), static_cast(0u)); @@ -4386,8 +4839,21 @@ L_08B71D38: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); aot_gpr_31 = (0x08B71D48u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 356u, 0x08B71D48u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71D48u) goto L_08B71D48; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71D48: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[19] < static_cast(1) ? 1u : 0u); @@ -4529,8 +4995,8 @@ L_08B71E48: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B71E68: @@ -4622,8 +5088,21 @@ L_08B71F3C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); aot_gpr_31 = (0x08B71F4Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 381u, 0x08B71F4Cu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B71F4Cu) goto L_08B71F4C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B71F4C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -4800,8 +5279,21 @@ L_08B720BC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_4); aot_gpr_31 = (0x08B720CCu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 401u, 0x08B720CCu, 0x08B6A64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B720CCu) goto L_08B720CC; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B720CC: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), ctx.gpr[2]); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(44), static_cast(0u)); @@ -4878,8 +5370,21 @@ L_08B72178: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); aot_gpr_31 = (0x08B72188u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 409u, 0x08B72188u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B72188u) goto L_08B72188; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B72188: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[19] < static_cast(1) ? 1u : 0u); @@ -5021,8 +5526,8 @@ L_08B72288: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B722A8: @@ -5114,8 +5619,21 @@ L_08B7237C: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), aot_gpr_4); aot_gpr_31 = (0x08B7238Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 434u, 0x08B7238Cu, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B7238Cu) goto L_08B7238C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B7238C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(20), ctx.gpr[2]); aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast(0))); @@ -5292,8 +5810,21 @@ L_08B724FC: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), aot_gpr_4); aot_gpr_31 = (0x08B7250Cu); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 454u, 0x08B7250Cu, 0x08B6A64Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 401u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 401u, 0x08B6A64Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B7250Cu) goto L_08B7250C; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B7250C: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(48), ctx.gpr[2]); aot_mem.aot_direct_store8(aot_gpr_29 + static_cast(44), static_cast(0u)); @@ -5370,8 +5901,21 @@ L_08B725B8: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[20] + static_cast(0))); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), aot_gpr_4); aot_gpr_31 = (0x08B725C8u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 462u, 0x08B725C8u, 0x08B6A5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 391u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 391u, 0x08B6A5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B725C8u) goto L_08B725C8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B725C8: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(56), ctx.gpr[2]); aot_gpr_4 = (ctx.gpr[19] < static_cast(1) ? 1u : 0u); @@ -5513,8 +6057,8 @@ L_08B726C8: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(112)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B726E8: @@ -5598,8 +6142,8 @@ L_08B72740: goto L_08B727A0; L_08B727A0: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B727A8: @@ -5626,8 +6170,8 @@ L_08B727E0: goto L_08B727E4; L_08B727E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B727EC: @@ -5637,8 +6181,8 @@ L_08B727EC: { const std::int32_t dividend = static_cast(aot_gpr_4); const std::int32_t divisor = static_cast(aot_gpr_6); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast(dividend); } else if (dividend == static_cast(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast(dividend / divisor); ctx.hi = static_cast(dividend % divisor); } } ctx.gpr[2] = (ctx.lo); jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72808: @@ -5691,8 +6235,8 @@ L_08B72854: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(0))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72860: @@ -5718,8 +6262,8 @@ L_08B72868: goto L_08B72898; L_08B72898: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B728A0: @@ -5751,8 +6295,21 @@ L_08B728E4: ctx.gpr[17] = (aot_gpr_29 + static_cast(20)); aot_gpr_31 = (0x08B728F8u); aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(328), aot_gpr_4); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0174. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 503u, 0x08B728F8u, 0x08ABE308u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); +#else + recomp_unit_0174_entry(rt, ctx, 474u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0174_entry, 174u, 474u, 0x08ABE308u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B728F8u) goto L_08B728F8; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B728F8: ctx.gpr[19] = (ctx.gpr[2] | 0u); ctx.gpr[18] = (aot_gpr_29 + static_cast(24)); @@ -5780,8 +6337,21 @@ L_08B72914: aot_gpr_6 = (0u | 4u); aot_gpr_31 = (0x08B72938u); aot_gpr_7 = (aot_gpr_7 + static_cast(16072)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 507u, 0x08B72938u, 0x08B60C7Cu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 158u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 158u, 0x08B60C7Cu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B72938u) goto L_08B72938; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B72938: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(0))); aot_gpr_5 = (aot_mem.aot_direct_load32(aot_gpr_4 + static_cast(0))); @@ -5975,13 +6545,39 @@ L_08B72ADC: ctx.gpr[9] = (0u | 0u); aot_gpr_31 = (0x08B72B20u); aot_gpr_7 = (aot_gpr_7 + static_cast(16164)); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0215. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 526u, 0x08B72B20u, 0x08B60E20u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); +#else + recomp_unit_0215_entry(rt, ctx, 173u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0215_entry, 215u, 173u, 0x08B60E20u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B72B20u) goto L_08B72B20; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B72B20: aot_gpr_31 = (0x08B72B28u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 527u, 0x08B72B28u, 0x08B6BAECu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 721u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 721u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 721u, 0x08B6BAECu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B72B28u) goto L_08B72B28; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B72B28: ctx.gpr[16] = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(20))); { const bool branch_taken = ctx.gpr[16] == 0u; @@ -6008,8 +6604,8 @@ L_08B72B3C: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(368)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72B60: @@ -6133,8 +6729,8 @@ L_08B72C7C: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(24))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(32)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72C8C: @@ -6210,8 +6806,21 @@ L_08B72D00: } L_08B72D0C: aot_gpr_31 = (0x08B72D14u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0117. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 550u, 0x08B72D14u, 0x089D89E0u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); +#else + recomp_unit_0117_entry(rt, ctx, 129u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B72D14u) goto L_08B72D14; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B72D14: { const bool branch_taken = ctx.gpr[17] == 0u; aot_gpr_4 = (ctx.gpr[16] & 1u); @@ -6251,8 +6860,8 @@ L_08B72D40: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72D54: @@ -6283,14 +6892,40 @@ L_08B72D80: aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast(108), aot_gpr_4); aot_gpr_31 = (0x08B72D94u); aot_gpr_4 = (ctx.gpr[17] | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0165. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 559u, 0x08B72D94u, 0x08A9B6A8u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); +#else + recomp_unit_0165_entry(rt, ctx, 425u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0165_entry, 165u, 425u, 0x08A9B6A8u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B72D94u) goto L_08B72D94; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B72D94: aot_gpr_4 = (ctx.gpr[17] | 0u); aot_gpr_31 = (0x08B72DA0u); aot_gpr_5 = (0u | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0170. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 560u, 0x08B72DA0u, 0x08AACB80u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); +#else + recomp_unit_0170_entry(rt, ctx, 161u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0170_entry, 170u, 161u, 0x08AACB80u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B72DA0u) goto L_08B72DA0; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B72DA0: aot_gpr_4 = (ctx.gpr[16] & 1u); { const bool branch_taken = aot_gpr_4 == 0u; @@ -6313,8 +6948,8 @@ L_08B72DB4: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72DC8: @@ -6365,8 +7000,8 @@ L_08B72DFC: goto L_08B72E00; L_08B72E00: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72E08: @@ -6458,8 +7093,8 @@ L_08B72E94: } jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72EA8: @@ -6493,8 +7128,8 @@ L_08B72EE4: goto L_08B72EE8; L_08B72EE8: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72EF0: @@ -6503,8 +7138,21 @@ L_08B72EF0: aot_mem.aot_direct_store32(aot_gpr_29 + static_cast(4), aot_gpr_31); aot_gpr_31 = (0x08B72F04u); ctx.gpr[16] = (aot_gpr_4 | 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0217. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 587u, 0x08B72F04u, 0x08B6B4B4u)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0217_entry(rt, ctx, 630u, aot_mem); +#else + recomp_unit_0217_entry(rt, ctx, 630u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0217_entry, 217u, 630u, 0x08B6B4B4u>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B72F04u) goto L_08B72F04; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B72F04: aot_gpr_4 = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast(8))); ctx.gpr[2] = (aot_gpr_4 - ctx.gpr[2]); @@ -6512,1328 +7160,1328 @@ L_08B72F04: aot_gpr_31 = (aot_mem.aot_direct_load32(aot_gpr_29 + static_cast(4))); jump_target = aot_gpr_31; aot_gpr_29 = (aot_gpr_29 + static_cast(16)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F1C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F24: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F2C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F34: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F3C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F44: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F4C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F54: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F5C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F64: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F6C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F74: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F7C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F84: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F8C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F94: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72F9C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FA4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FAC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FB4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FBC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FC4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FCC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FD4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FDC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FE4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FEC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FF4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B72FFC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73004: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7300C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73014: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7301C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73024: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7302C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73034: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7303C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73044: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7304C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73054: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7305C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73064: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7306C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73074: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7307C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73084: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7308C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73094: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7309C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B730FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73104: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7310C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73114: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7311C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73124: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7312C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73134: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7313C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73144: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7314C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73154: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7315C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73164: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7316C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73174: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7317C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73184: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7318C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73194: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7319C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B731FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73204: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7320C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73224: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7322C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73234: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7323C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73244: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7324C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73254: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7325C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73264: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7326C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73274: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7327C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73284: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7328C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73294: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7329C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B732FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73304: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7330C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7331C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7332C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7333C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7334C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7335C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7336C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73374: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7337C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73384: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7338C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73394: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7339C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B733A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B733AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B733CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B733DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B733EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B733FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7340C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73414: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7341C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73424: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7342C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73434: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7343C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73444: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7344C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73454: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7345C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73464: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7346C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73474: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7347C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73484: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7348C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73494: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7349C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B734FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73504: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7350C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73514: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7351C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73524: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7352C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73534: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73544: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7354C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73554: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7355C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73564: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7356C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73574: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7357C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73584: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7358C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73594: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7359C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735AC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735B4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735BC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735C4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735CC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735D4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735DC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735E4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735EC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735F4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B735FC: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73604: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7360C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73614: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7361C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73624: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7362C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7363C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7364C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73654: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7365C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73664: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7366C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7367C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73684: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7368C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B73694: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B7369C: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B736A4: jump_target = aot_gpr_31; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B736B0: @@ -8084,8 +8732,21 @@ L_08B73C40: L_08B73C80: aot_gpr_31 = (0x08B73C88u); aot_gpr_29 = (static_cast(aot_gpr_4) < -32002 ? 1u : 0u); + // PSPRECOMP_V814_LINKED_CALL: non-recursive generated call 0219->0014. +#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + AOT_REGCACHE_SYNC_OUT(); + if (rt.prepare_aot_linked_call(ctx, &recomp_unit_0219_entry, 869u, 0x08B73C88u, 0x0883C5DCu)) { +#if defined(__clang__) + [[clang::musttail]] return recomp_unit_0014_entry(rt, ctx, 81u, aot_mem); +#else + recomp_unit_0014_entry(rt, ctx, 81u, aot_mem); return; +#endif + } + return; +#else if (([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_trusted_direct<&recomp_unit_0014_entry, 14u, 81u, 0x0883C5DCu>(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()) && ctx.pc == 0x08B73C88u) goto L_08B73C88; AOT_REGCACHE_SYNC_OUT(); return; +#endif L_08B73C88: ctx.gpr[13] = (ctx.gpr[22] | 64222u); AOT_REGCACHE_SYNC_OUT(); diff --git a/profiles/vcs/generated/generated_unit_0225.cpp b/profiles/vcs/generated/generated_unit_0225.cpp index 55d8218..128e3fb 100644 --- a/profiles/vcs/generated/generated_unit_0225.cpp +++ b/profiles/vcs/generated/generated_unit_0225.cpp @@ -445,6 +445,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08B88000u; + if (local_delta_v813 >= 16376u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -1381,8 +1405,8 @@ L_08B8AC1C: jump_target = 0u; AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AC20u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B8AC38: @@ -1401,16 +1425,16 @@ L_08B8AC8C: jump_target = 0u; AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AC94u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B8AE14: jump_target = 0u; AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08B8AE18u, 0x000003E8u, "special? not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B8AE20: @@ -1458,8 +1482,8 @@ L_08B8B550: L_08B8B558: jump_target = 0u; (void)(static_cast(static_cast(0u) >> 0u)); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08B8B56C: diff --git a/profiles/vcs/generated/generated_unit_0231.cpp b/profiles/vcs/generated/generated_unit_0231.cpp index 5bc6bfc..c973620 100644 --- a/profiles/vcs/generated/generated_unit_0231.cpp +++ b/profiles/vcs/generated/generated_unit_0231.cpp @@ -226,6 +226,30 @@ LOCAL_DISPATCH: AOT_REGCACHE_SYNC_OUT(); return; } } +// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit. +LOCAL_JR_DISPATCH: + { + const std::uint32_t local_delta_v813 = jump_target - 0x08BA0000u; + if (local_delta_v813 >= 16012u || (local_delta_v813 & 3u) != 0u) { + ctx.pc = jump_target; + AOT_REGCACHE_SYNC_OUT(); + // PSPRECOMP_V814_CONTINUATION_RETURN + Runtime::AotTailContinuation aot_cont_v814{}; + if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) { +#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + [[clang::musttail]] return aot_cont_v814.function( + rt, ctx, aot_cont_v814.entry_id, aot_mem); +#else + aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return; +#endif + } + return; + } + } + local_pc = jump_target; + entry_id = 0u; + goto LOCAL_DISPATCH; + // PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit. LOCAL_SCHED_BOUNDARY: ctx.pc = jump_target; @@ -536,8 +560,8 @@ L_08BA1E1C: L_08BA1E20: jump_target = 0u; ctx.gpr[4] = (ctx.hi); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08BA1E30: @@ -550,8 +574,8 @@ L_08BA1E38: jump_target = 0u; AOT_REGCACHE_SYNC_OUT(); rt.unsupported(0x08BA1E3Cu, 0x40400000u, "unknown not lowered yet"); AOT_REGCACHE_SYNC_OUT(); return; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08BA1E3C: @@ -714,8 +738,8 @@ L_08BA2D64: ctx.pc = 0x02EC3570u; (void)([&]() { AOT_REGCACHE_SYNC_OUT(); const bool aot_regcache_same_ = (rt.invoke_chained_call(ctx, &aot_mem)); if (aot_regcache_same_) AOT_REGCACHE_SYNC_IN(); else aot_regcache_valid = false; return aot_regcache_same_; }()); AOT_REGCACHE_SYNC_OUT(); return; L_08BA2DBC: jump_target = 0u; - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08BA2E8C: @@ -902,8 +926,8 @@ L_08BA3CB0: (void)(ctx.gpr[7] >> (0u & 31u)); jump_target = 0u; if (ctx.gpr[11] == 0u) (void)(0u); - local_pc = jump_target; - if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; } + // PSPRECOMP_V813_JR_FAST_EXIT: preserve the exact 256-transfer boundary; common JR path is shared. + if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH; // PSPRECOMP_V812_SHARED_SCHED_JUMP goto LOCAL_SCHED_BOUNDARY; L_08BA3CD8: diff --git a/profiles/vcs/generated/v812_code_density_manifest.json b/profiles/vcs/generated/v812_code_density_manifest.json index b7aace8..f502c07 100644 --- a/profiles/vcs/generated/v812_code_density_manifest.json +++ b/profiles/vcs/generated/v812_code_density_manifest.json @@ -1,10 +1,10 @@ { "stage": "V8.12 generated code density", "baseline_generated_cpp_bytes": 121704134, - "generated_cpp_bytes_before_this_run": 102644637, - "generated_cpp_bytes_after": 102644637, + "generated_cpp_bytes_before_this_run": 119797555, + "generated_cpp_bytes_after": 119797555, "source_bytes_saved_this_run": 0, - "source_bytes_saved_from_baseline": 19059497, + "source_bytes_saved_from_baseline": 1906579, "registered_entries_preserved": 181789, "per_pc_registration_calls_collapsed_this_run": 0, "scheduler_blocks_shared_this_run": 0, @@ -14,8 +14,8 @@ "units": [ { "path": "generated_unit_0000.cpp", - "bytes_before": 403757, - "bytes_after": 403757, + "bytes_before": 461291, + "bytes_after": 461291, "entry_count": 643, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -23,8 +23,8 @@ }, { "path": "generated_unit_0001.cpp", - "bytes_before": 475041, - "bytes_after": 475041, + "bytes_before": 592865, + "bytes_after": 592865, "entry_count": 953, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -32,8 +32,8 @@ }, { "path": "generated_unit_0002.cpp", - "bytes_before": 468802, - "bytes_after": 468802, + "bytes_before": 529784, + "bytes_after": 529784, "entry_count": 794, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -41,8 +41,8 @@ }, { "path": "generated_unit_0003.cpp", - "bytes_before": 546850, - "bytes_after": 546850, + "bytes_before": 644824, + "bytes_after": 644824, "entry_count": 1027, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -50,8 +50,8 @@ }, { "path": "generated_unit_0004.cpp", - "bytes_before": 475323, - "bytes_after": 475323, + "bytes_before": 532610, + "bytes_after": 532610, "entry_count": 801, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -59,8 +59,8 @@ }, { "path": "generated_unit_0005.cpp", - "bytes_before": 405373, - "bytes_after": 405373, + "bytes_before": 452239, + "bytes_after": 452239, "entry_count": 698, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -68,8 +68,8 @@ }, { "path": "generated_unit_0006.cpp", - "bytes_before": 428171, - "bytes_after": 428171, + "bytes_before": 476337, + "bytes_after": 476337, "entry_count": 738, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -77,8 +77,8 @@ }, { "path": "generated_unit_0007.cpp", - "bytes_before": 455462, - "bytes_after": 455462, + "bytes_before": 516211, + "bytes_after": 516211, "entry_count": 752, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -86,8 +86,8 @@ }, { "path": "generated_unit_0008.cpp", - "bytes_before": 442894, - "bytes_after": 442894, + "bytes_before": 507002, + "bytes_after": 507002, "entry_count": 610, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -95,8 +95,8 @@ }, { "path": "generated_unit_0009.cpp", - "bytes_before": 472312, - "bytes_after": 472312, + "bytes_before": 507910, + "bytes_after": 507910, "entry_count": 485, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -104,8 +104,8 @@ }, { "path": "generated_unit_0010.cpp", - "bytes_before": 470242, - "bytes_after": 470242, + "bytes_before": 559286, + "bytes_after": 559286, "entry_count": 1003, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -113,8 +113,8 @@ }, { "path": "generated_unit_0011.cpp", - "bytes_before": 475826, - "bytes_after": 475826, + "bytes_before": 584802, + "bytes_after": 584802, "entry_count": 867, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -122,8 +122,8 @@ }, { "path": "generated_unit_0012.cpp", - "bytes_before": 439870, - "bytes_after": 439870, + "bytes_before": 499533, + "bytes_after": 499533, "entry_count": 601, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -131,8 +131,8 @@ }, { "path": "generated_unit_0013.cpp", - "bytes_before": 583788, - "bytes_after": 583788, + "bytes_before": 804536, + "bytes_after": 804536, "entry_count": 1183, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -140,8 +140,8 @@ }, { "path": "generated_unit_0014.cpp", - "bytes_before": 531390, - "bytes_after": 531390, + "bytes_before": 695033, + "bytes_after": 695033, "entry_count": 887, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -149,8 +149,8 @@ }, { "path": "generated_unit_0015.cpp", - "bytes_before": 545351, - "bytes_after": 545351, + "bytes_before": 765269, + "bytes_after": 765269, "entry_count": 896, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -158,8 +158,8 @@ }, { "path": "generated_unit_0016.cpp", - "bytes_before": 475004, - "bytes_after": 475004, + "bytes_before": 543740, + "bytes_after": 543740, "entry_count": 682, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -167,8 +167,8 @@ }, { "path": "generated_unit_0017.cpp", - "bytes_before": 485862, - "bytes_after": 485862, + "bytes_before": 557813, + "bytes_after": 557813, "entry_count": 671, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -176,8 +176,8 @@ }, { "path": "generated_unit_0018.cpp", - "bytes_before": 445404, - "bytes_after": 445404, + "bytes_before": 511966, + "bytes_after": 511966, "entry_count": 810, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -185,8 +185,8 @@ }, { "path": "generated_unit_0019.cpp", - "bytes_before": 579374, - "bytes_after": 579374, + "bytes_before": 591166, + "bytes_after": 591166, "entry_count": 1016, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -194,8 +194,8 @@ }, { "path": "generated_unit_0020.cpp", - "bytes_before": 575711, - "bytes_after": 575711, + "bytes_before": 581513, + "bytes_after": 581513, "entry_count": 1008, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -203,8 +203,8 @@ }, { "path": "generated_unit_0021.cpp", - "bytes_before": 572347, - "bytes_after": 572347, + "bytes_before": 578089, + "bytes_after": 578089, "entry_count": 1028, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -212,8 +212,8 @@ }, { "path": "generated_unit_0022.cpp", - "bytes_before": 550176, - "bytes_after": 550176, + "bytes_before": 637028, + "bytes_after": 637028, "entry_count": 943, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -221,8 +221,8 @@ }, { "path": "generated_unit_0023.cpp", - "bytes_before": 426450, - "bytes_after": 426450, + "bytes_before": 480877, + "bytes_after": 480877, "entry_count": 804, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -230,8 +230,8 @@ }, { "path": "generated_unit_0024.cpp", - "bytes_before": 409615, - "bytes_after": 409615, + "bytes_before": 483824, + "bytes_after": 483824, "entry_count": 958, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -239,8 +239,8 @@ }, { "path": "generated_unit_0025.cpp", - "bytes_before": 428741, - "bytes_after": 428741, + "bytes_before": 507753, + "bytes_after": 507753, "entry_count": 818, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -248,8 +248,8 @@ }, { "path": "generated_unit_0026.cpp", - "bytes_before": 463467, - "bytes_after": 463467, + "bytes_before": 525684, + "bytes_after": 525684, "entry_count": 686, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -257,8 +257,8 @@ }, { "path": "generated_unit_0027.cpp", - "bytes_before": 488414, - "bytes_after": 488414, + "bytes_before": 556728, + "bytes_after": 556728, "entry_count": 940, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -266,8 +266,8 @@ }, { "path": "generated_unit_0028.cpp", - "bytes_before": 538915, - "bytes_after": 538915, + "bytes_before": 665652, + "bytes_after": 665652, "entry_count": 1300, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -275,8 +275,8 @@ }, { "path": "generated_unit_0029.cpp", - "bytes_before": 601099, - "bytes_after": 601099, + "bytes_before": 737224, + "bytes_after": 737224, "entry_count": 1343, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -284,8 +284,8 @@ }, { "path": "generated_unit_0030.cpp", - "bytes_before": 487446, - "bytes_after": 487446, + "bytes_before": 581655, + "bytes_after": 581655, "entry_count": 849, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -293,8 +293,8 @@ }, { "path": "generated_unit_0031.cpp", - "bytes_before": 458208, - "bytes_after": 458208, + "bytes_before": 542350, + "bytes_after": 542350, "entry_count": 771, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -302,8 +302,8 @@ }, { "path": "generated_unit_0032.cpp", - "bytes_before": 495077, - "bytes_after": 495077, + "bytes_before": 621134, + "bytes_after": 621134, "entry_count": 919, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -311,8 +311,8 @@ }, { "path": "generated_unit_0033.cpp", - "bytes_before": 463645, - "bytes_after": 463645, + "bytes_before": 543293, + "bytes_after": 543293, "entry_count": 1169, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -320,8 +320,8 @@ }, { "path": "generated_unit_0034.cpp", - "bytes_before": 449219, - "bytes_after": 449219, + "bytes_before": 529937, + "bytes_after": 529937, "entry_count": 636, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -329,8 +329,8 @@ }, { "path": "generated_unit_0035.cpp", - "bytes_before": 412714, - "bytes_after": 412714, + "bytes_before": 467895, + "bytes_after": 467895, "entry_count": 665, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -338,8 +338,8 @@ }, { "path": "generated_unit_0036.cpp", - "bytes_before": 359946, - "bytes_after": 359946, + "bytes_before": 403057, + "bytes_after": 403057, "entry_count": 771, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -347,8 +347,8 @@ }, { "path": "generated_unit_0037.cpp", - "bytes_before": 392928, - "bytes_after": 392928, + "bytes_before": 479022, + "bytes_after": 479022, "entry_count": 708, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -356,8 +356,8 @@ }, { "path": "generated_unit_0038.cpp", - "bytes_before": 498813, - "bytes_after": 498813, + "bytes_before": 590982, + "bytes_after": 590982, "entry_count": 870, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -365,8 +365,8 @@ }, { "path": "generated_unit_0039.cpp", - "bytes_before": 484331, - "bytes_after": 484331, + "bytes_before": 574178, + "bytes_after": 574178, "entry_count": 879, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -374,8 +374,8 @@ }, { "path": "generated_unit_0040.cpp", - "bytes_before": 540552, - "bytes_after": 540552, + "bytes_before": 693409, + "bytes_after": 693409, "entry_count": 839, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -383,8 +383,8 @@ }, { "path": "generated_unit_0041.cpp", - "bytes_before": 487912, - "bytes_after": 487912, + "bytes_before": 555874, + "bytes_after": 555874, "entry_count": 636, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -392,8 +392,8 @@ }, { "path": "generated_unit_0042.cpp", - "bytes_before": 524053, - "bytes_after": 524053, + "bytes_before": 555678, + "bytes_after": 555678, "entry_count": 444, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -401,8 +401,8 @@ }, { "path": "generated_unit_0043.cpp", - "bytes_before": 450680, - "bytes_after": 450680, + "bytes_before": 477535, + "bytes_after": 477535, "entry_count": 510, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -410,8 +410,8 @@ }, { "path": "generated_unit_0044.cpp", - "bytes_before": 414555, - "bytes_after": 414555, + "bytes_before": 443270, + "bytes_after": 443270, "entry_count": 722, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -419,8 +419,8 @@ }, { "path": "generated_unit_0045.cpp", - "bytes_before": 438022, - "bytes_after": 438022, + "bytes_before": 494992, + "bytes_after": 494992, "entry_count": 787, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -428,8 +428,8 @@ }, { "path": "generated_unit_0046.cpp", - "bytes_before": 377565, - "bytes_after": 377565, + "bytes_before": 391358, + "bytes_after": 391358, "entry_count": 407, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -437,8 +437,8 @@ }, { "path": "generated_unit_0047.cpp", - "bytes_before": 400500, - "bytes_after": 400500, + "bytes_before": 463177, + "bytes_after": 463177, "entry_count": 585, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -446,8 +446,8 @@ }, { "path": "generated_unit_0048.cpp", - "bytes_before": 383114, - "bytes_after": 383114, + "bytes_before": 447451, + "bytes_after": 447451, "entry_count": 806, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -455,8 +455,8 @@ }, { "path": "generated_unit_0049.cpp", - "bytes_before": 411123, - "bytes_after": 411123, + "bytes_before": 496860, + "bytes_after": 496860, "entry_count": 839, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -464,8 +464,8 @@ }, { "path": "generated_unit_0050.cpp", - "bytes_before": 379455, - "bytes_after": 379455, + "bytes_before": 417436, + "bytes_after": 417436, "entry_count": 834, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -473,8 +473,8 @@ }, { "path": "generated_unit_0051.cpp", - "bytes_before": 400016, - "bytes_after": 400016, + "bytes_before": 432106, + "bytes_after": 432106, "entry_count": 630, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -482,8 +482,8 @@ }, { "path": "generated_unit_0052.cpp", - "bytes_before": 423244, - "bytes_after": 423244, + "bytes_before": 460617, + "bytes_after": 460617, "entry_count": 630, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -491,8 +491,8 @@ }, { "path": "generated_unit_0053.cpp", - "bytes_before": 421137, - "bytes_after": 421137, + "bytes_before": 474951, + "bytes_after": 474951, "entry_count": 706, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -500,8 +500,8 @@ }, { "path": "generated_unit_0054.cpp", - "bytes_before": 400571, - "bytes_after": 400571, + "bytes_before": 442602, + "bytes_after": 442602, "entry_count": 532, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -509,8 +509,8 @@ }, { "path": "generated_unit_0055.cpp", - "bytes_before": 384178, - "bytes_after": 384178, + "bytes_before": 441277, + "bytes_after": 441277, "entry_count": 584, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -518,8 +518,8 @@ }, { "path": "generated_unit_0056.cpp", - "bytes_before": 435807, - "bytes_after": 435807, + "bytes_before": 496502, + "bytes_after": 496502, "entry_count": 840, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -527,8 +527,8 @@ }, { "path": "generated_unit_0057.cpp", - "bytes_before": 469710, - "bytes_after": 469710, + "bytes_before": 553258, + "bytes_after": 553258, "entry_count": 891, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -536,8 +536,8 @@ }, { "path": "generated_unit_0058.cpp", - "bytes_before": 494491, - "bytes_after": 494491, + "bytes_before": 575934, + "bytes_after": 575934, "entry_count": 904, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -545,8 +545,8 @@ }, { "path": "generated_unit_0059.cpp", - "bytes_before": 466321, - "bytes_after": 466321, + "bytes_before": 529305, + "bytes_after": 529305, "entry_count": 806, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -554,8 +554,8 @@ }, { "path": "generated_unit_0060.cpp", - "bytes_before": 446659, - "bytes_after": 446659, + "bytes_before": 542025, + "bytes_after": 542025, "entry_count": 874, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -563,8 +563,8 @@ }, { "path": "generated_unit_0061.cpp", - "bytes_before": 428554, - "bytes_after": 428554, + "bytes_before": 473956, + "bytes_after": 473956, "entry_count": 989, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -572,8 +572,8 @@ }, { "path": "generated_unit_0062.cpp", - "bytes_before": 589343, - "bytes_after": 589343, + "bytes_before": 735683, + "bytes_after": 735683, "entry_count": 843, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -581,8 +581,8 @@ }, { "path": "generated_unit_0063.cpp", - "bytes_before": 466274, - "bytes_after": 466274, + "bytes_before": 500025, + "bytes_after": 500025, "entry_count": 720, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -590,8 +590,8 @@ }, { "path": "generated_unit_0064.cpp", - "bytes_before": 481268, - "bytes_after": 481268, + "bytes_before": 580979, + "bytes_after": 580979, "entry_count": 927, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -599,8 +599,8 @@ }, { "path": "generated_unit_0065.cpp", - "bytes_before": 442092, - "bytes_after": 442092, + "bytes_before": 520856, + "bytes_after": 520856, "entry_count": 1001, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -608,8 +608,8 @@ }, { "path": "generated_unit_0066.cpp", - "bytes_before": 491189, - "bytes_after": 491189, + "bytes_before": 603501, + "bytes_after": 603501, "entry_count": 898, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -617,8 +617,8 @@ }, { "path": "generated_unit_0067.cpp", - "bytes_before": 460995, - "bytes_after": 460995, + "bytes_before": 540329, + "bytes_after": 540329, "entry_count": 858, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -626,8 +626,8 @@ }, { "path": "generated_unit_0068.cpp", - "bytes_before": 447972, - "bytes_after": 447972, + "bytes_before": 522036, + "bytes_after": 522036, "entry_count": 761, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -635,8 +635,8 @@ }, { "path": "generated_unit_0069.cpp", - "bytes_before": 462618, - "bytes_after": 462618, + "bytes_before": 529343, + "bytes_after": 529343, "entry_count": 728, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -644,8 +644,8 @@ }, { "path": "generated_unit_0070.cpp", - "bytes_before": 517952, - "bytes_after": 517952, + "bytes_before": 615078, + "bytes_after": 615078, "entry_count": 876, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -653,8 +653,8 @@ }, { "path": "generated_unit_0071.cpp", - "bytes_before": 531301, - "bytes_after": 531301, + "bytes_before": 791042, + "bytes_after": 791042, "entry_count": 1095, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -662,8 +662,8 @@ }, { "path": "generated_unit_0072.cpp", - "bytes_before": 513886, - "bytes_after": 513886, + "bytes_before": 642253, + "bytes_after": 642253, "entry_count": 993, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -671,8 +671,8 @@ }, { "path": "generated_unit_0073.cpp", - "bytes_before": 494519, - "bytes_after": 494519, + "bytes_before": 601537, + "bytes_after": 601537, "entry_count": 975, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -680,8 +680,8 @@ }, { "path": "generated_unit_0074.cpp", - "bytes_before": 487533, - "bytes_after": 487533, + "bytes_before": 556048, + "bytes_after": 556048, "entry_count": 775, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -689,8 +689,8 @@ }, { "path": "generated_unit_0075.cpp", - "bytes_before": 481101, - "bytes_after": 481101, + "bytes_before": 547935, + "bytes_after": 547935, "entry_count": 772, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -698,8 +698,8 @@ }, { "path": "generated_unit_0076.cpp", - "bytes_before": 505103, - "bytes_after": 505103, + "bytes_before": 659144, + "bytes_after": 659144, "entry_count": 1149, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -707,8 +707,8 @@ }, { "path": "generated_unit_0077.cpp", - "bytes_before": 400915, - "bytes_after": 400915, + "bytes_before": 465611, + "bytes_after": 465611, "entry_count": 852, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -716,8 +716,8 @@ }, { "path": "generated_unit_0078.cpp", - "bytes_before": 432078, - "bytes_after": 432078, + "bytes_before": 552564, + "bytes_after": 552564, "entry_count": 864, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -725,8 +725,8 @@ }, { "path": "generated_unit_0079.cpp", - "bytes_before": 542539, - "bytes_after": 542539, + "bytes_before": 581016, + "bytes_after": 581016, "entry_count": 547, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -734,8 +734,8 @@ }, { "path": "generated_unit_0080.cpp", - "bytes_before": 483894, - "bytes_after": 483894, + "bytes_before": 594230, + "bytes_after": 594230, "entry_count": 868, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -743,8 +743,8 @@ }, { "path": "generated_unit_0081.cpp", - "bytes_before": 434525, - "bytes_after": 434525, + "bytes_before": 521217, + "bytes_after": 521217, "entry_count": 915, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -752,8 +752,8 @@ }, { "path": "generated_unit_0082.cpp", - "bytes_before": 477630, - "bytes_after": 477630, + "bytes_before": 559031, + "bytes_after": 559031, "entry_count": 796, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -761,8 +761,8 @@ }, { "path": "generated_unit_0083.cpp", - "bytes_before": 469590, - "bytes_after": 469590, + "bytes_before": 551449, + "bytes_after": 551449, "entry_count": 889, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -770,8 +770,8 @@ }, { "path": "generated_unit_0084.cpp", - "bytes_before": 390802, - "bytes_after": 390802, + "bytes_before": 447166, + "bytes_after": 447166, "entry_count": 844, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -779,8 +779,8 @@ }, { "path": "generated_unit_0085.cpp", - "bytes_before": 423302, - "bytes_after": 423302, + "bytes_before": 497998, + "bytes_after": 497998, "entry_count": 581, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -788,8 +788,8 @@ }, { "path": "generated_unit_0086.cpp", - "bytes_before": 452420, - "bytes_after": 452420, + "bytes_before": 486117, + "bytes_after": 486117, "entry_count": 604, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -797,8 +797,8 @@ }, { "path": "generated_unit_0087.cpp", - "bytes_before": 400157, - "bytes_after": 400157, + "bytes_before": 476469, + "bytes_after": 476469, "entry_count": 833, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -806,8 +806,8 @@ }, { "path": "generated_unit_0088.cpp", - "bytes_before": 443118, - "bytes_after": 443118, + "bytes_before": 544387, + "bytes_after": 544387, "entry_count": 741, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -815,8 +815,8 @@ }, { "path": "generated_unit_0089.cpp", - "bytes_before": 524423, - "bytes_after": 524423, + "bytes_before": 638726, + "bytes_after": 638726, "entry_count": 802, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -824,8 +824,8 @@ }, { "path": "generated_unit_0090.cpp", - "bytes_before": 450012, - "bytes_after": 450012, + "bytes_before": 528081, + "bytes_after": 528081, "entry_count": 895, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -833,8 +833,8 @@ }, { "path": "generated_unit_0091.cpp", - "bytes_before": 451174, - "bytes_after": 451174, + "bytes_before": 532697, + "bytes_after": 532697, "entry_count": 839, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -842,8 +842,8 @@ }, { "path": "generated_unit_0092.cpp", - "bytes_before": 463238, - "bytes_after": 463238, + "bytes_before": 567297, + "bytes_after": 567297, "entry_count": 785, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -851,8 +851,8 @@ }, { "path": "generated_unit_0093.cpp", - "bytes_before": 415174, - "bytes_after": 415174, + "bytes_before": 446930, + "bytes_after": 446930, "entry_count": 608, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -860,8 +860,8 @@ }, { "path": "generated_unit_0094.cpp", - "bytes_before": 486119, - "bytes_after": 486119, + "bytes_before": 566208, + "bytes_after": 566208, "entry_count": 992, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -869,8 +869,8 @@ }, { "path": "generated_unit_0095.cpp", - "bytes_before": 428895, - "bytes_after": 428895, + "bytes_before": 480797, + "bytes_after": 480797, "entry_count": 680, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -878,8 +878,8 @@ }, { "path": "generated_unit_0096.cpp", - "bytes_before": 413950, - "bytes_after": 413950, + "bytes_before": 477942, + "bytes_after": 477942, "entry_count": 965, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -887,8 +887,8 @@ }, { "path": "generated_unit_0097.cpp", - "bytes_before": 492216, - "bytes_after": 492216, + "bytes_before": 644645, + "bytes_after": 644645, "entry_count": 1069, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -896,8 +896,8 @@ }, { "path": "generated_unit_0098.cpp", - "bytes_before": 465049, - "bytes_after": 465049, + "bytes_before": 561476, + "bytes_after": 561476, "entry_count": 1232, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -905,8 +905,8 @@ }, { "path": "generated_unit_0099.cpp", - "bytes_before": 455294, - "bytes_after": 455294, + "bytes_before": 600556, + "bytes_after": 600556, "entry_count": 938, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -914,8 +914,8 @@ }, { "path": "generated_unit_0100.cpp", - "bytes_before": 419191, - "bytes_after": 419191, + "bytes_before": 494091, + "bytes_after": 494091, "entry_count": 1013, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -923,8 +923,8 @@ }, { "path": "generated_unit_0101.cpp", - "bytes_before": 508997, - "bytes_after": 508997, + "bytes_before": 543436, + "bytes_after": 543436, "entry_count": 549, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -932,8 +932,8 @@ }, { "path": "generated_unit_0102.cpp", - "bytes_before": 504372, - "bytes_after": 504372, + "bytes_before": 553528, + "bytes_after": 553528, "entry_count": 642, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -941,8 +941,8 @@ }, { "path": "generated_unit_0103.cpp", - "bytes_before": 515271, - "bytes_after": 515271, + "bytes_before": 596186, + "bytes_after": 596186, "entry_count": 616, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -950,8 +950,8 @@ }, { "path": "generated_unit_0104.cpp", - "bytes_before": 574639, - "bytes_after": 574639, + "bytes_before": 615209, + "bytes_after": 615209, "entry_count": 536, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -959,8 +959,8 @@ }, { "path": "generated_unit_0105.cpp", - "bytes_before": 556645, - "bytes_after": 556645, + "bytes_before": 624366, + "bytes_after": 624366, "entry_count": 857, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -968,8 +968,8 @@ }, { "path": "generated_unit_0106.cpp", - "bytes_before": 514674, - "bytes_after": 514674, + "bytes_before": 595526, + "bytes_after": 595526, "entry_count": 940, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -977,8 +977,8 @@ }, { "path": "generated_unit_0107.cpp", - "bytes_before": 548344, - "bytes_after": 548344, + "bytes_before": 643149, + "bytes_after": 643149, "entry_count": 1034, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -986,8 +986,8 @@ }, { "path": "generated_unit_0108.cpp", - "bytes_before": 481569, - "bytes_after": 481569, + "bytes_before": 566611, + "bytes_after": 566611, "entry_count": 738, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -995,8 +995,8 @@ }, { "path": "generated_unit_0109.cpp", - "bytes_before": 446181, - "bytes_after": 446181, + "bytes_before": 542939, + "bytes_after": 542939, "entry_count": 849, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1004,8 +1004,8 @@ }, { "path": "generated_unit_0110.cpp", - "bytes_before": 446468, - "bytes_after": 446468, + "bytes_before": 500686, + "bytes_after": 500686, "entry_count": 805, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1013,8 +1013,8 @@ }, { "path": "generated_unit_0111.cpp", - "bytes_before": 521459, - "bytes_after": 521459, + "bytes_before": 637497, + "bytes_after": 637497, "entry_count": 967, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1022,8 +1022,8 @@ }, { "path": "generated_unit_0112.cpp", - "bytes_before": 462960, - "bytes_after": 462960, + "bytes_before": 537413, + "bytes_after": 537413, "entry_count": 921, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1031,8 +1031,8 @@ }, { "path": "generated_unit_0113.cpp", - "bytes_before": 447286, - "bytes_after": 447286, + "bytes_before": 516244, + "bytes_after": 516244, "entry_count": 997, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1040,8 +1040,8 @@ }, { "path": "generated_unit_0114.cpp", - "bytes_before": 458611, - "bytes_after": 458611, + "bytes_before": 534122, + "bytes_after": 534122, "entry_count": 718, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1049,8 +1049,8 @@ }, { "path": "generated_unit_0115.cpp", - "bytes_before": 427905, - "bytes_after": 427905, + "bytes_before": 487126, + "bytes_after": 487126, "entry_count": 692, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1058,8 +1058,8 @@ }, { "path": "generated_unit_0116.cpp", - "bytes_before": 415095, - "bytes_after": 415095, + "bytes_before": 488491, + "bytes_after": 488491, "entry_count": 728, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1067,8 +1067,8 @@ }, { "path": "generated_unit_0117.cpp", - "bytes_before": 510251, - "bytes_after": 510251, + "bytes_before": 585617, + "bytes_after": 585617, "entry_count": 729, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1076,8 +1076,8 @@ }, { "path": "generated_unit_0118.cpp", - "bytes_before": 488362, - "bytes_after": 488362, + "bytes_before": 570070, + "bytes_after": 570070, "entry_count": 821, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1085,8 +1085,8 @@ }, { "path": "generated_unit_0119.cpp", - "bytes_before": 463308, - "bytes_after": 463308, + "bytes_before": 556609, + "bytes_after": 556609, "entry_count": 846, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1094,8 +1094,8 @@ }, { "path": "generated_unit_0120.cpp", - "bytes_before": 393869, - "bytes_after": 393869, + "bytes_before": 447325, + "bytes_after": 447325, "entry_count": 859, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1103,8 +1103,8 @@ }, { "path": "generated_unit_0121.cpp", - "bytes_before": 441257, - "bytes_after": 441257, + "bytes_before": 489285, + "bytes_after": 489285, "entry_count": 651, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1112,8 +1112,8 @@ }, { "path": "generated_unit_0122.cpp", - "bytes_before": 444778, - "bytes_after": 444778, + "bytes_before": 497241, + "bytes_after": 497241, "entry_count": 643, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1121,8 +1121,8 @@ }, { "path": "generated_unit_0123.cpp", - "bytes_before": 459697, - "bytes_after": 459697, + "bytes_before": 519912, + "bytes_after": 519912, "entry_count": 662, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1130,8 +1130,8 @@ }, { "path": "generated_unit_0124.cpp", - "bytes_before": 431364, - "bytes_after": 431364, + "bytes_before": 509784, + "bytes_after": 509784, "entry_count": 773, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1139,8 +1139,8 @@ }, { "path": "generated_unit_0125.cpp", - "bytes_before": 439821, - "bytes_after": 439821, + "bytes_before": 521314, + "bytes_after": 521314, "entry_count": 654, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1148,8 +1148,8 @@ }, { "path": "generated_unit_0126.cpp", - "bytes_before": 475838, - "bytes_after": 475838, + "bytes_before": 532430, + "bytes_after": 532430, "entry_count": 730, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1157,8 +1157,8 @@ }, { "path": "generated_unit_0127.cpp", - "bytes_before": 492563, - "bytes_after": 492563, + "bytes_before": 562810, + "bytes_after": 562810, "entry_count": 1054, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1166,8 +1166,8 @@ }, { "path": "generated_unit_0128.cpp", - "bytes_before": 418928, - "bytes_after": 418928, + "bytes_before": 500716, + "bytes_after": 500716, "entry_count": 909, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1175,8 +1175,8 @@ }, { "path": "generated_unit_0129.cpp", - "bytes_before": 418058, - "bytes_after": 418058, + "bytes_before": 472344, + "bytes_after": 472344, "entry_count": 640, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1184,8 +1184,8 @@ }, { "path": "generated_unit_0130.cpp", - "bytes_before": 458648, - "bytes_after": 458648, + "bytes_before": 509795, + "bytes_after": 509795, "entry_count": 697, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1193,8 +1193,8 @@ }, { "path": "generated_unit_0131.cpp", - "bytes_before": 500460, - "bytes_after": 500460, + "bytes_before": 575371, + "bytes_after": 575371, "entry_count": 667, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1202,8 +1202,8 @@ }, { "path": "generated_unit_0132.cpp", - "bytes_before": 496411, - "bytes_after": 496411, + "bytes_before": 544018, + "bytes_after": 544018, "entry_count": 672, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1211,8 +1211,8 @@ }, { "path": "generated_unit_0133.cpp", - "bytes_before": 496691, - "bytes_after": 496691, + "bytes_before": 543749, + "bytes_after": 543749, "entry_count": 620, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1220,8 +1220,8 @@ }, { "path": "generated_unit_0134.cpp", - "bytes_before": 457536, - "bytes_after": 457536, + "bytes_before": 504161, + "bytes_after": 504161, "entry_count": 649, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1229,8 +1229,8 @@ }, { "path": "generated_unit_0135.cpp", - "bytes_before": 501361, - "bytes_after": 501361, + "bytes_before": 557784, + "bytes_after": 557784, "entry_count": 525, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1238,8 +1238,8 @@ }, { "path": "generated_unit_0136.cpp", - "bytes_before": 553131, - "bytes_after": 553131, + "bytes_before": 685254, + "bytes_after": 685254, "entry_count": 772, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1247,8 +1247,8 @@ }, { "path": "generated_unit_0137.cpp", - "bytes_before": 488103, - "bytes_after": 488103, + "bytes_before": 640734, + "bytes_after": 640734, "entry_count": 903, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1256,8 +1256,8 @@ }, { "path": "generated_unit_0138.cpp", - "bytes_before": 378877, - "bytes_after": 378877, + "bytes_before": 412839, + "bytes_after": 412839, "entry_count": 636, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1265,8 +1265,8 @@ }, { "path": "generated_unit_0139.cpp", - "bytes_before": 487552, - "bytes_after": 487552, + "bytes_before": 614990, + "bytes_after": 614990, "entry_count": 900, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1274,8 +1274,8 @@ }, { "path": "generated_unit_0140.cpp", - "bytes_before": 502645, - "bytes_after": 502645, + "bytes_before": 607955, + "bytes_after": 607955, "entry_count": 988, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1283,8 +1283,8 @@ }, { "path": "generated_unit_0141.cpp", - "bytes_before": 441862, - "bytes_after": 441862, + "bytes_before": 511732, + "bytes_after": 511732, "entry_count": 886, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1292,8 +1292,8 @@ }, { "path": "generated_unit_0142.cpp", - "bytes_before": 432728, - "bytes_after": 432728, + "bytes_before": 490113, + "bytes_after": 490113, "entry_count": 606, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1301,8 +1301,8 @@ }, { "path": "generated_unit_0143.cpp", - "bytes_before": 479745, - "bytes_after": 479745, + "bytes_before": 542619, + "bytes_after": 542619, "entry_count": 712, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1310,8 +1310,8 @@ }, { "path": "generated_unit_0144.cpp", - "bytes_before": 446608, - "bytes_after": 446608, + "bytes_before": 514179, + "bytes_after": 514179, "entry_count": 787, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1319,8 +1319,8 @@ }, { "path": "generated_unit_0145.cpp", - "bytes_before": 466761, - "bytes_after": 466761, + "bytes_before": 531034, + "bytes_after": 531034, "entry_count": 723, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1328,8 +1328,8 @@ }, { "path": "generated_unit_0146.cpp", - "bytes_before": 494732, - "bytes_after": 494732, + "bytes_before": 554395, + "bytes_after": 554395, "entry_count": 587, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1337,8 +1337,8 @@ }, { "path": "generated_unit_0147.cpp", - "bytes_before": 469528, - "bytes_after": 469528, + "bytes_before": 544486, + "bytes_after": 544486, "entry_count": 784, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1346,8 +1346,8 @@ }, { "path": "generated_unit_0148.cpp", - "bytes_before": 479822, - "bytes_after": 479822, + "bytes_before": 522544, + "bytes_after": 522544, "entry_count": 911, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1355,8 +1355,8 @@ }, { "path": "generated_unit_0149.cpp", - "bytes_before": 508506, - "bytes_after": 508506, + "bytes_before": 597395, + "bytes_after": 597395, "entry_count": 817, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1364,8 +1364,8 @@ }, { "path": "generated_unit_0150.cpp", - "bytes_before": 539341, - "bytes_after": 539341, + "bytes_before": 779972, + "bytes_after": 779972, "entry_count": 1035, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1373,8 +1373,8 @@ }, { "path": "generated_unit_0151.cpp", - "bytes_before": 518816, - "bytes_after": 518816, + "bytes_before": 648631, + "bytes_after": 648631, "entry_count": 671, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1382,8 +1382,8 @@ }, { "path": "generated_unit_0152.cpp", - "bytes_before": 480096, - "bytes_after": 480096, + "bytes_before": 532074, + "bytes_after": 532074, "entry_count": 765, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1391,8 +1391,8 @@ }, { "path": "generated_unit_0153.cpp", - "bytes_before": 459827, - "bytes_after": 459827, + "bytes_before": 498745, + "bytes_after": 498745, "entry_count": 685, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1400,8 +1400,8 @@ }, { "path": "generated_unit_0154.cpp", - "bytes_before": 547949, - "bytes_after": 547949, + "bytes_before": 596442, + "bytes_after": 596442, "entry_count": 527, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1409,8 +1409,8 @@ }, { "path": "generated_unit_0155.cpp", - "bytes_before": 496739, - "bytes_after": 496739, + "bytes_before": 595989, + "bytes_after": 595989, "entry_count": 742, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1418,8 +1418,8 @@ }, { "path": "generated_unit_0156.cpp", - "bytes_before": 414534, - "bytes_after": 414534, + "bytes_before": 464414, + "bytes_after": 464414, "entry_count": 782, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1427,8 +1427,8 @@ }, { "path": "generated_unit_0157.cpp", - "bytes_before": 461121, - "bytes_after": 461121, + "bytes_before": 525561, + "bytes_after": 525561, "entry_count": 796, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1436,8 +1436,8 @@ }, { "path": "generated_unit_0158.cpp", - "bytes_before": 431303, - "bytes_after": 431303, + "bytes_before": 474539, + "bytes_after": 474539, "entry_count": 724, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1445,8 +1445,8 @@ }, { "path": "generated_unit_0159.cpp", - "bytes_before": 357910, - "bytes_after": 357910, + "bytes_before": 377780, + "bytes_after": 377780, "entry_count": 397, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1454,8 +1454,8 @@ }, { "path": "generated_unit_0160.cpp", - "bytes_before": 419858, - "bytes_after": 419858, + "bytes_before": 459446, + "bytes_after": 459446, "entry_count": 661, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1463,8 +1463,8 @@ }, { "path": "generated_unit_0161.cpp", - "bytes_before": 395225, - "bytes_after": 395225, + "bytes_before": 436306, + "bytes_after": 436306, "entry_count": 727, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1472,8 +1472,8 @@ }, { "path": "generated_unit_0162.cpp", - "bytes_before": 442818, - "bytes_after": 442818, + "bytes_before": 508941, + "bytes_after": 508941, "entry_count": 711, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1481,8 +1481,8 @@ }, { "path": "generated_unit_0163.cpp", - "bytes_before": 406725, - "bytes_after": 406725, + "bytes_before": 466252, + "bytes_after": 466252, "entry_count": 641, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1490,8 +1490,8 @@ }, { "path": "generated_unit_0164.cpp", - "bytes_before": 424140, - "bytes_after": 424140, + "bytes_before": 482881, + "bytes_after": 482881, "entry_count": 599, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1499,8 +1499,8 @@ }, { "path": "generated_unit_0165.cpp", - "bytes_before": 403170, - "bytes_after": 403170, + "bytes_before": 433195, + "bytes_after": 433195, "entry_count": 508, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1508,8 +1508,8 @@ }, { "path": "generated_unit_0166.cpp", - "bytes_before": 411312, - "bytes_after": 411312, + "bytes_before": 466442, + "bytes_after": 466442, "entry_count": 658, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1517,8 +1517,8 @@ }, { "path": "generated_unit_0167.cpp", - "bytes_before": 463691, - "bytes_after": 463691, + "bytes_before": 574850, + "bytes_after": 574850, "entry_count": 973, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1526,8 +1526,8 @@ }, { "path": "generated_unit_0168.cpp", - "bytes_before": 467659, - "bytes_after": 467659, + "bytes_before": 541729, + "bytes_after": 541729, "entry_count": 630, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1535,8 +1535,8 @@ }, { "path": "generated_unit_0169.cpp", - "bytes_before": 388022, - "bytes_after": 388022, + "bytes_before": 424115, + "bytes_after": 424115, "entry_count": 488, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1544,8 +1544,8 @@ }, { "path": "generated_unit_0170.cpp", - "bytes_before": 432381, - "bytes_after": 432381, + "bytes_before": 505073, + "bytes_after": 505073, "entry_count": 891, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1553,8 +1553,8 @@ }, { "path": "generated_unit_0171.cpp", - "bytes_before": 444396, - "bytes_after": 444396, + "bytes_before": 539366, + "bytes_after": 539366, "entry_count": 1036, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1562,8 +1562,8 @@ }, { "path": "generated_unit_0172.cpp", - "bytes_before": 478595, - "bytes_after": 478595, + "bytes_before": 572920, + "bytes_after": 572920, "entry_count": 1099, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1571,8 +1571,8 @@ }, { "path": "generated_unit_0173.cpp", - "bytes_before": 387114, - "bytes_after": 387114, + "bytes_before": 459427, + "bytes_after": 459427, "entry_count": 728, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1580,8 +1580,8 @@ }, { "path": "generated_unit_0174.cpp", - "bytes_before": 346174, - "bytes_after": 346174, + "bytes_before": 369493, + "bytes_after": 369493, "entry_count": 854, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1589,8 +1589,8 @@ }, { "path": "generated_unit_0175.cpp", - "bytes_before": 554578, - "bytes_after": 554578, + "bytes_before": 701606, + "bytes_after": 701606, "entry_count": 1078, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1598,8 +1598,8 @@ }, { "path": "generated_unit_0176.cpp", - "bytes_before": 522019, - "bytes_after": 522019, + "bytes_before": 657846, + "bytes_after": 657846, "entry_count": 1101, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1607,8 +1607,8 @@ }, { "path": "generated_unit_0177.cpp", - "bytes_before": 632014, - "bytes_after": 632014, + "bytes_before": 865317, + "bytes_after": 865317, "entry_count": 1392, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1616,8 +1616,8 @@ }, { "path": "generated_unit_0178.cpp", - "bytes_before": 546366, - "bytes_after": 546366, + "bytes_before": 681730, + "bytes_after": 681730, "entry_count": 1148, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1625,8 +1625,8 @@ }, { "path": "generated_unit_0179.cpp", - "bytes_before": 450295, - "bytes_after": 450295, + "bytes_before": 538420, + "bytes_after": 538420, "entry_count": 762, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1634,8 +1634,8 @@ }, { "path": "generated_unit_0180.cpp", - "bytes_before": 408642, - "bytes_after": 408642, + "bytes_before": 487101, + "bytes_after": 487101, "entry_count": 1097, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1643,8 +1643,8 @@ }, { "path": "generated_unit_0181.cpp", - "bytes_before": 428255, - "bytes_after": 428255, + "bytes_before": 518220, + "bytes_after": 518220, "entry_count": 976, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1652,8 +1652,8 @@ }, { "path": "generated_unit_0182.cpp", - "bytes_before": 467862, - "bytes_after": 467862, + "bytes_before": 561435, + "bytes_after": 561435, "entry_count": 1036, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1661,8 +1661,8 @@ }, { "path": "generated_unit_0183.cpp", - "bytes_before": 507627, - "bytes_after": 507627, + "bytes_before": 648884, + "bytes_after": 648884, "entry_count": 1036, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1670,8 +1670,8 @@ }, { "path": "generated_unit_0184.cpp", - "bytes_before": 455527, - "bytes_after": 455527, + "bytes_before": 532939, + "bytes_after": 532939, "entry_count": 764, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1679,8 +1679,8 @@ }, { "path": "generated_unit_0185.cpp", - "bytes_before": 444907, - "bytes_after": 444907, + "bytes_before": 538643, + "bytes_after": 538643, "entry_count": 743, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1688,8 +1688,8 @@ }, { "path": "generated_unit_0186.cpp", - "bytes_before": 414789, - "bytes_after": 414789, + "bytes_before": 502510, + "bytes_after": 502510, "entry_count": 859, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1697,8 +1697,8 @@ }, { "path": "generated_unit_0187.cpp", - "bytes_before": 464602, - "bytes_after": 464602, + "bytes_before": 619218, + "bytes_after": 619218, "entry_count": 892, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1706,8 +1706,8 @@ }, { "path": "generated_unit_0188.cpp", - "bytes_before": 513547, - "bytes_after": 513547, + "bytes_before": 559141, + "bytes_after": 559141, "entry_count": 974, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1715,8 +1715,8 @@ }, { "path": "generated_unit_0189.cpp", - "bytes_before": 422864, - "bytes_after": 422864, + "bytes_before": 457963, + "bytes_after": 457963, "entry_count": 577, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1724,8 +1724,8 @@ }, { "path": "generated_unit_0190.cpp", - "bytes_before": 473612, - "bytes_after": 473612, + "bytes_before": 561055, + "bytes_after": 561055, "entry_count": 960, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1733,8 +1733,8 @@ }, { "path": "generated_unit_0191.cpp", - "bytes_before": 484551, - "bytes_after": 484551, + "bytes_before": 544784, + "bytes_after": 544784, "entry_count": 1010, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1742,8 +1742,8 @@ }, { "path": "generated_unit_0192.cpp", - "bytes_before": 555425, - "bytes_after": 555425, + "bytes_before": 675948, + "bytes_after": 675948, "entry_count": 840, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1751,8 +1751,8 @@ }, { "path": "generated_unit_0193.cpp", - "bytes_before": 536385, - "bytes_after": 536385, + "bytes_before": 632761, + "bytes_after": 632761, "entry_count": 710, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1760,8 +1760,8 @@ }, { "path": "generated_unit_0194.cpp", - "bytes_before": 444831, - "bytes_after": 444831, + "bytes_before": 532355, + "bytes_after": 532355, "entry_count": 930, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1769,8 +1769,8 @@ }, { "path": "generated_unit_0195.cpp", - "bytes_before": 497000, - "bytes_after": 497000, + "bytes_before": 537051, + "bytes_after": 537051, "entry_count": 805, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1778,8 +1778,8 @@ }, { "path": "generated_unit_0196.cpp", - "bytes_before": 441129, - "bytes_after": 441129, + "bytes_before": 516714, + "bytes_after": 516714, "entry_count": 895, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1787,8 +1787,8 @@ }, { "path": "generated_unit_0197.cpp", - "bytes_before": 506861, - "bytes_after": 506861, + "bytes_before": 611423, + "bytes_after": 611423, "entry_count": 912, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1796,8 +1796,8 @@ }, { "path": "generated_unit_0198.cpp", - "bytes_before": 459168, - "bytes_after": 459168, + "bytes_before": 576971, + "bytes_after": 576971, "entry_count": 738, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1805,8 +1805,8 @@ }, { "path": "generated_unit_0199.cpp", - "bytes_before": 467809, - "bytes_after": 467809, + "bytes_before": 554320, + "bytes_after": 554320, "entry_count": 767, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1814,8 +1814,8 @@ }, { "path": "generated_unit_0200.cpp", - "bytes_before": 474826, - "bytes_after": 474826, + "bytes_before": 562906, + "bytes_after": 562906, "entry_count": 816, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1823,8 +1823,8 @@ }, { "path": "generated_unit_0201.cpp", - "bytes_before": 455512, - "bytes_after": 455512, + "bytes_before": 549516, + "bytes_after": 549516, "entry_count": 829, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1832,8 +1832,8 @@ }, { "path": "generated_unit_0202.cpp", - "bytes_before": 438447, - "bytes_after": 438447, + "bytes_before": 521023, + "bytes_after": 521023, "entry_count": 779, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1841,8 +1841,8 @@ }, { "path": "generated_unit_0203.cpp", - "bytes_before": 455702, - "bytes_after": 455702, + "bytes_before": 540084, + "bytes_after": 540084, "entry_count": 822, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1850,8 +1850,8 @@ }, { "path": "generated_unit_0204.cpp", - "bytes_before": 468613, - "bytes_after": 468613, + "bytes_before": 554085, + "bytes_after": 554085, "entry_count": 939, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1859,8 +1859,8 @@ }, { "path": "generated_unit_0205.cpp", - "bytes_before": 460511, - "bytes_after": 460511, + "bytes_before": 571790, + "bytes_after": 571790, "entry_count": 1061, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1868,8 +1868,8 @@ }, { "path": "generated_unit_0206.cpp", - "bytes_before": 475120, - "bytes_after": 475120, + "bytes_before": 581680, + "bytes_after": 581680, "entry_count": 891, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1877,8 +1877,8 @@ }, { "path": "generated_unit_0207.cpp", - "bytes_before": 448908, - "bytes_after": 448908, + "bytes_before": 519056, + "bytes_after": 519056, "entry_count": 819, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1886,8 +1886,8 @@ }, { "path": "generated_unit_0208.cpp", - "bytes_before": 447491, - "bytes_after": 447491, + "bytes_before": 529431, + "bytes_after": 529431, "entry_count": 834, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1895,8 +1895,8 @@ }, { "path": "generated_unit_0209.cpp", - "bytes_before": 432334, - "bytes_after": 432334, + "bytes_before": 469629, + "bytes_after": 469629, "entry_count": 651, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1904,8 +1904,8 @@ }, { "path": "generated_unit_0210.cpp", - "bytes_before": 473691, - "bytes_after": 473691, + "bytes_before": 535265, + "bytes_after": 535265, "entry_count": 581, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1913,8 +1913,8 @@ }, { "path": "generated_unit_0211.cpp", - "bytes_before": 511418, - "bytes_after": 511418, + "bytes_before": 584902, + "bytes_after": 584902, "entry_count": 912, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1922,8 +1922,8 @@ }, { "path": "generated_unit_0212.cpp", - "bytes_before": 417799, - "bytes_after": 417799, + "bytes_before": 453723, + "bytes_after": 453723, "entry_count": 1058, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1931,8 +1931,8 @@ }, { "path": "generated_unit_0213.cpp", - "bytes_before": 441089, - "bytes_after": 441089, + "bytes_before": 508607, + "bytes_after": 508607, "entry_count": 1038, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1940,8 +1940,8 @@ }, { "path": "generated_unit_0214.cpp", - "bytes_before": 409468, - "bytes_after": 409468, + "bytes_before": 442926, + "bytes_after": 442926, "entry_count": 879, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1949,8 +1949,8 @@ }, { "path": "generated_unit_0215.cpp", - "bytes_before": 345461, - "bytes_after": 345461, + "bytes_before": 371818, + "bytes_after": 371818, "entry_count": 840, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1958,8 +1958,8 @@ }, { "path": "generated_unit_0216.cpp", - "bytes_before": 429991, - "bytes_after": 429991, + "bytes_before": 487794, + "bytes_after": 487794, "entry_count": 936, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1967,8 +1967,8 @@ }, { "path": "generated_unit_0217.cpp", - "bytes_before": 401778, - "bytes_after": 401778, + "bytes_before": 434497, + "bytes_after": 434497, "entry_count": 800, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1976,8 +1976,8 @@ }, { "path": "generated_unit_0218.cpp", - "bytes_before": 408987, - "bytes_after": 408987, + "bytes_before": 443087, + "bytes_after": 443087, "entry_count": 793, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -1985,8 +1985,8 @@ }, { "path": "generated_unit_0219.cpp", - "bytes_before": 372182, - "bytes_after": 372182, + "bytes_before": 412123, + "bytes_after": 412123, "entry_count": 903, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -2039,8 +2039,8 @@ }, { "path": "generated_unit_0225.cpp", - "bytes_before": 88998, - "bytes_after": 88998, + "bytes_before": 90180, + "bytes_after": 90180, "entry_count": 372, "registration_lines_removed": 0, "local_blocks_shared": 0, @@ -2093,8 +2093,8 @@ }, { "path": "generated_unit_0231.cpp", - "bytes_before": 41630, - "bytes_after": 41630, + "bytes_before": 42812, + "bytes_after": 42812, "entry_count": 153, "registration_lines_removed": 0, "local_blocks_shared": 0, diff --git a/profiles/vcs/generated/v813_cpu_hotpath_manifest.json b/profiles/vcs/generated/v813_cpu_hotpath_manifest.json new file mode 100644 index 0000000..1a15c67 --- /dev/null +++ b/profiles/vcs/generated/v813_cpu_hotpath_manifest.json @@ -0,0 +1,54 @@ +{ + "stage": "V8.13 CPU hot path", + "generated_cpp_bytes_before": 119797555, + "generated_cpp_bytes_after": 119797555, + "generated_cpp_delta": 0, + "units": 234, + "entries": 181789, + "jr_sites": 11299, + "shared_jr_units": 221, + "hot_dense_units": 37, + "hot_dense_entries": 29167, + "generated_cpp_bytes": 119797555, + "units_changed_this_run": 0, + "jr_sites_rewritten_this_run": 0, + "hot_units": [ + 11, + 22, + 23, + 24, + 30, + 35, + 43, + 64, + 66, + 67, + 80, + 84, + 85, + 87, + 88, + 89, + 91, + 92, + 95, + 97, + 109, + 142, + 149, + 152, + 154, + 155, + 163, + 164, + 169, + 179, + 190, + 198, + 199, + 200, + 206, + 213, + 215 + ] +} diff --git a/profiles/vcs/generated/v814_nonrecursive_aot_manifest.json b/profiles/vcs/generated/v814_nonrecursive_aot_manifest.json new file mode 100644 index 0000000..b9bab61 --- /dev/null +++ b/profiles/vcs/generated/v814_nonrecursive_aot_manifest.json @@ -0,0 +1,10 @@ +{ + "stage": "V8.14 non-recursive AOT link engine", + "units": 234, + "linked_calls": 33441, + "return_hook_units": 221, + "generated_cpp_bytes": 119797555, + "scheduler_dispatch_interval_default": 1024, + "scheduler_tick_us_default": 256, + "native_call_stack_flattened": true +} diff --git a/profiles/vcs/host/main.cpp b/profiles/vcs/host/main.cpp index 902b9d4..b35f060 100644 --- a/profiles/vcs/host/main.cpp +++ b/profiles/vcs/host/main.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -159,6 +160,29 @@ void validate_vcs_game_root(const std::filesystem::path &root) { int main(int argc, char **argv) { #ifdef _WIN32 SetUnhandledExceptionFilter(&vcs_unhandled_exception_filter); +#endif + // PSPRECOMP_V815_PRODUCTION_DEFAULTS + // PSPRECOMP_V8151_FORCE_PRODUCTION_ON + // PSPRECOMP_V8155_HARD_FORCE_ASYNC: the asynchronous GE path is available + // for explicit benchmark runs, but stays off for the normal launcher until + // its first post-intro frame is fully validated. Requiring a dedicated + // opt-in also prevents an inherited PSPRECOMP_GE_ASYNC=1 from producing a + // black frame on a normal launch. + const char *async_opt_in_text = std::getenv("PSPRECOMP_V8155_ENABLE_ASYNC"); + const bool async_opt_in = async_opt_in_text != nullptr && *async_opt_in_text != '\0' && + std::strcmp(async_opt_in_text, "0") != 0 && + std::strcmp(async_opt_in_text, "false") != 0 && + std::strcmp(async_opt_in_text, "FALSE") != 0 && + std::strcmp(async_opt_in_text, "off") != 0 && + std::strcmp(async_opt_in_text, "OFF") != 0; +#ifdef _WIN32 + _putenv_s("PSPRECOMP_V8151_FORCE_SYNC", ""); + _putenv_s("PSPRECOMP_GE_ASYNC", async_opt_in ? "1" : "0"); + _putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", async_opt_in ? "1" : "0"); +#else + unsetenv("PSPRECOMP_V8151_FORCE_SYNC"); + setenv("PSPRECOMP_GE_ASYNC", async_opt_in ? "1" : "0", 1); + setenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", async_opt_in ? "1" : "0", 1); #endif try { const std::filesystem::path executable_directory = @@ -170,6 +194,19 @@ int main(int argc, char **argv) { vcs::initialize_vcs_configuration(executable_directory); const vcs::VcsConfiguration &configuration = vcs::vcs_configuration(); vcs::runtime_log_initialize(configuration); + vcs::runtime_log_line(std::string("v8155 hard_force_async=") + + (async_opt_in ? "1" : "0") + + " parallel_vertex=" + (async_opt_in ? "1" : "0") + + " opt_in=PSPRECOMP_V8155_ENABLE_ASYNC"); + // PSPRECOMP_V8151_ACTIVATION_LOG: prove the production defaults reached this executable. + { + const char *async_env = std::getenv("PSPRECOMP_GE_ASYNC"); + const char *decode_env = std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE"); + vcs::runtime_log_line(std::string("v8151 activation ge_async_env=") + + (async_env != nullptr ? async_env : "") + + " parallel_vertex_env=" + + (decode_env != nullptr ? decode_env : "")); + } vcs::runtime_log_line(std::string("bootstrap executable=") + executable.string()); vcs::runtime_log_line(std::string("bootstrap root=") + root.string()); vcs::runtime_log_line(std::string("rendering backend=") + diff --git a/profiles/vcs/host/vcs_config.cpp b/profiles/vcs/host/vcs_config.cpp index 1a8c696..e98fc2a 100644 --- a/profiles/vcs/host/vcs_config.cpp +++ b/profiles/vcs/host/vcs_config.cpp @@ -769,13 +769,17 @@ void initialize_vcs_configuration(const std::filesystem::path &executable_direct config.rendering.backend == RenderingBackend::DirectX12 ? "directx12" : "software"); } - // V5 STABLE RECOVERY2: return every unproven scheduler/CPU-renderer - // experiment to the last gameplay-stable V4 AMD/UMA baseline. Both GE - // async and parallel vertex decode are quarantined in production, and old - // inherited environment flags are deliberately ignored. + // PSPRECOMP_V8155_PRESERVE_EXPLICIT_GE_FLAGS + // Keep the conservative DX12 defaults for an otherwise unconfigured + // process, but do not overwrite an explicit runtime choice. The VCS + // launcher opts into GE/vertex overlap before loading this configuration; + // unconditionally forcing these values to zero here silently disabled the + // worker and serialized the guest CPU with the graphics queue. if (config.rendering.backend == RenderingBackend::DirectX12) { - set_environment_value("PSPRECOMP_GE_ASYNC", "0"); - set_environment_value("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "0"); + if (std::getenv("PSPRECOMP_GE_ASYNC") == nullptr) + set_environment_value("PSPRECOMP_GE_ASYNC", "0"); + if (std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE") == nullptr) + set_environment_value("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "0"); } const InternalResolutionDimensions internal = resolve_internal_resolution(config.rendering); diff --git a/profiles/vcs/host/vcs_profile.cpp b/profiles/vcs/host/vcs_profile.cpp index f2e85c6..3aabd83 100644 --- a/profiles/vcs/host/vcs_profile.cpp +++ b/profiles/vcs/host/vcs_profile.cpp @@ -1282,6 +1282,10 @@ struct GeAsyncWorkerState { std::thread thread; psprecomp::Runtime *runtime{}; bool stop_requested{}; + // PSPRECOMP_V815_ASYNC_GE_OVERLAP: presentation owns the backend only between GE tasks. + bool presentation_requested{}; + bool worker_busy{}; + std::uint64_t present_safe_points{}; std::atomic started{false}; std::deque pending; std::unordered_map>> live_stalls; @@ -1300,13 +1304,15 @@ GeAsyncWorkerState ge_async{}; thread_local bool ge_async_worker_thread = false; bool ge_async_enabled() noexcept { - // V5 SYNC RECOVERY: the experimental async scheduler is quarantined after - // repeated boot->gameplay deadlocks. Ignore the legacy PSPRECOMP_GE_ASYNC - // variable so a stale shell/BAT cannot silently re-enable the broken path. - // Re-entry is development-only and requires an explicit new opt-in. + // PSPRECOMP_V815_ASYNC_GE_OVERLAP: VCSNative opts this in at process startup. Keeping the profile + // layer environment-gated preserves unit-test isolation and a zero-cost + // PSPRECOMP_GE_ASYNC=0 rollback without another build. static const bool enabled = [] { - const char *value = std::getenv("PSPRECOMP_GE_ASYNC_EXPERIMENTAL"); - return value != nullptr && *value != '\0' && std::strcmp(value, "0") != 0; + const char *value = std::getenv("PSPRECOMP_GE_ASYNC"); + return value != nullptr && *value != '\0' && + std::strcmp(value, "0") != 0 && + std::strcmp(value, "false") != 0 && std::strcmp(value, "FALSE") != 0 && + std::strcmp(value, "off") != 0 && std::strcmp(value, "OFF") != 0; }(); return enabled; } @@ -1318,6 +1324,8 @@ bool ge_async_running() noexcept { void ge_async_worker_main(); void ge_async_drain_completions(); bool ge_async_wait_idle(psprecomp::Runtime &runtime); +bool ge_async_begin_presentation(psprecomp::Runtime &runtime); +void ge_async_end_presentation() noexcept; bool ge_async_wait_list(psprecomp::Runtime &runtime, std::uint32_t id); bool ge_async_check_fatal(psprecomp::Runtime &runtime); void ge_async_stop_worker(); @@ -1345,8 +1353,12 @@ void ge_async_start_worker(psprecomp::Runtime &runtime) { if (ge_async.started.load(std::memory_order_acquire)) return; ge_async.runtime = &runtime; ge_async.stop_requested = false; + ge_async.presentation_requested = false; + ge_async.worker_busy = false; ge_async.started.store(true, std::memory_order_release); ge_async.thread = std::thread(&ge_async_worker_main); + // PSPRECOMP_V8151_WORKER_LOG: runtime proof that the asynchronous consumer actually started. + vcs::runtime_log_line("v8151 ge_async_worker_started=1"); } struct GeAsyncLifetimeGuard { @@ -6631,8 +6643,12 @@ void ge_async_worker_main() { psprecomp::Runtime *runtime = nullptr; { std::unique_lock lock(ge_async.mutex); - ge_async.cv.wait(lock, [] { return ge_async.stop_requested || !ge_async.pending.empty(); }); + ge_async.cv.wait(lock, [] { + return ge_async.stop_requested || + (!ge_async.presentation_requested && !ge_async.pending.empty()); + }); if (ge_async.stop_requested && ge_async.pending.empty()) break; + ge_async.worker_busy = true; task = std::move(ge_async.pending.front()); ge_async.pending.pop_front(); runtime = ge_async.runtime; @@ -6643,6 +6659,7 @@ void ge_async_worker_main() { found->second.state == GeListState::Error) { ge_async.live_stalls.erase(task.id); ge_async.outstanding.fetch_sub(1u, std::memory_order_acq_rel); + ge_async.worker_busy = false; ge_async.cv.notify_all(); continue; } @@ -6665,6 +6682,7 @@ void ge_async_worker_main() { } ++ge_async.completed; ge_async.outstanding.fetch_sub(1u, std::memory_order_acq_rel); + ge_async.worker_busy = false; if (!ok && !ge_async.fatal.load(std::memory_order_acquire)) { ge_async.fatal_reason = "Asynchronous GE display-list execution failed"; ge_async.fatal.store(true, std::memory_order_release); @@ -6688,6 +6706,8 @@ void ge_async_stop_worker() { std::lock_guard lock(ge_async.mutex); ge_async.started.store(false, std::memory_order_release); ge_async.runtime = nullptr; + ge_async.presentation_requested = false; + ge_async.worker_busy = false; ge_async.pending.clear(); ge_async.live_stalls.clear(); ge_async.completions.clear(); @@ -6748,6 +6768,43 @@ bool ge_async_wait_idle(psprecomp::Runtime &runtime) { return ge_async_check_fatal(runtime); } +// PSPRECOMP_V815_PRESENT_SAFEPOINT +bool ge_async_begin_presentation(psprecomp::Runtime &runtime) { + if (!ge_async_enabled() || !ge_async.started.load(std::memory_order_acquire)) return true; + const auto begin = std::chrono::steady_clock::now(); + { + std::unique_lock lock(ge_async.mutex); + ge_async.presentation_requested = true; + ge_async.cv.notify_all(); + ge_async.cv.wait(lock, [] { + return !ge_async.worker_busy || ge_async.fatal.load(std::memory_order_acquire) || + ge_async.stop_requested; + }); + ge_async.last_wait_ns.store( + static_cast(std::chrono::duration_cast( + std::chrono::steady_clock::now() - begin).count()), + std::memory_order_release); + } + runtime.memory().memory_barrier(); + ge_async_drain_completions(); + if (!ge_async_check_fatal(runtime)) { + ge_async_end_presentation(); + return false; + } + return true; +} + +void ge_async_end_presentation() noexcept { + if (!ge_async.started.load(std::memory_order_acquire)) return; + { + std::lock_guard lock(ge_async.mutex); + if (!ge_async.presentation_requested) return; + ge_async.presentation_requested = false; + ++ge_async.present_safe_points; + } + ge_async.cv.notify_all(); +} + bool ge_async_wait_list(psprecomp::Runtime &runtime, std::uint32_t id) { if (!ge_async_enabled() || !ge_async.started.load(std::memory_order_acquire)) return true; const auto begin = std::chrono::steady_clock::now(); @@ -7246,6 +7303,9 @@ void install_profile(psprecomp::Runtime &runtime, std::uint32_t user_arena_start { std::lock_guard lock(ge_async.mutex); ge_async.stop_requested = false; + ge_async.presentation_requested = false; + ge_async.worker_busy = false; + ge_async.present_safe_points = 0u; ge_async.fatal.store(false, std::memory_order_release); ge_async.fatal_reason.clear(); ge_async.submitted = 0u; @@ -8863,10 +8923,9 @@ void install_profile(psprecomp::Runtime &runtime, std::uint32_t user_arena_start ctx.set_gpr(2, phase < blank ? 1u : 0u); }); auto wait_vblank = [](psprecomp::Runtime &rt, psprecomp::AllegrexContext &ctx) { - // The display consumes the completed GE frame. This is a real PSP - // visibility boundary: allow guest/GE overlap during the frame, then - // wait only here before framebuffer presentation and vblank callbacks. - if (!ge_async_wait_idle(rt)) return; + // PSPRECOMP_V815_PRESENT_SAFEPOINT: VBlank itself is not a global GE DrawSync. + // Keep CPU/GE overlap alive through callbacks/telemetry and acquire the + // renderer safe-point only immediately around frame finalization below. ++display_vblank_index; // First-boot frontend + native pause-menu mouse state. TITLES.PMF // completion is signalled directly by the MPEG HLE, so this vblank path @@ -9118,6 +9177,19 @@ void install_profile(psprecomp::Runtime &runtime, std::uint32_t user_arena_start display_state.buffer_width, display_state.pixel_format, }; + // PSPRECOMP_V815_PRESENT_SAFEPOINT: the GE worker owns the native + // backend while it records a display list. Keep the entire vblank + // hand-off (display target selection, Project2DFX and final submit) + // behind the same gate. Previously the gate was taken only after + // set_display_framebuffer()/project2dfx_render_frame(), which left + // those calls racing the worker and was the source of the black + // post-intro frame seen when async GE was enabled. + const bool ge_present_gate_active = ge_async_running(); + if (!ge_async_begin_presentation(rt)) return; + struct GePresentationRelease { + bool active; + ~GePresentationRelease() { if (active) ge_async_end_presentation(); } + } ge_presentation_release{ge_present_gate_active}; capture_frame_if_requested(rt.memory(), displayed); dump_ram_if_requested(rt.memory()); ge_gpu_backend_set_display_framebuffer(display_state.frame_buffer); @@ -9187,6 +9259,10 @@ void install_profile(psprecomp::Runtime &runtime, std::uint32_t user_arena_start if (gpu_frame_ready) dump_gpu_internal_frame_if_requested(display_vblank_index); if (perf_timing_enabled()) frame_time_stats.present_time += std::chrono::steady_clock::now() - present_entry; + if (ge_presentation_release.active) { + ge_async_end_presentation(); + ge_presentation_release.active = false; + } limit_frame_rate(); // limit_frame_rate() may advance virtual_time_us when the host misses the // target. Seal the audio timeline immediately at that corrected guest @@ -11692,7 +11768,10 @@ void report_present_stats() { } void install_starvation_preemption() { - const std::uint64_t interval = parse_environment_u64("PSPRECOMP_TIME_TICK_DISPATCHES", 256u); + // PSPRECOMP_V814_BATCHED_SCHEDULER_CLOCK: batch the same virtual-time slope into fewer host callbacks. + // tick_us remains interval/4, so guest time advances at the same 0.25 us per + // logical dispatch; only preemption polling granularity changes (64 -> 256 us). + const std::uint64_t interval = parse_environment_u64("PSPRECOMP_TIME_TICK_DISPATCHES", 1024u); execution_clock_dispatch_interval = interval; frozen_clock_guard_limit = parse_environment_u64( "PSPRECOMP_FROZEN_CLOCK_GUARD_DISPATCHES", 5'000'000u); diff --git a/profiles/vcs/host/vcs_runtime_log.cpp b/profiles/vcs/host/vcs_runtime_log.cpp index cefc191..2c6be68 100644 --- a/profiles/vcs/host/vcs_runtime_log.cpp +++ b/profiles/vcs/host/vcs_runtime_log.cpp @@ -65,7 +65,8 @@ void runtime_log_initialize(const VcsConfiguration &configuration) { return; } s.file << "VCSNative runtime log\n"; - s.file << "stage=perf-v8.10-extreme-cpu-resident-regions-2026-08-18\n"; + s.file << "stage=perf-v8.15.5-hard-force-async-ge-2026-08-27\n"; // PSPRECOMP_V815_RUNTIME_LOG + // PSPRECOMP_V8155_RUNTIME_LOG s.file << "config=" << configuration.source_path.string() << '\n'; s.file << "started=" << timestamp_now() << '\n'; s.file << "perf_telemetry=" << (configuration.diagnostics.perf_telemetry ? 1 : 0) @@ -92,10 +93,10 @@ void runtime_log_initialize(const VcsConfiguration &configuration) { << " atrac_virtual_source=1 atrac_stall_diag=1 atrac_stream_resident_status=1 atrac_nonloop_resident=-2 atrac_loop_resident=-3 output2_success_zero=1 output2_master_watermark=1 output2_late_catchup=0 save_repro_checkpoint=1 save_repro_trace=1 save_repro_hotkey_f8=1 save_repro_trace_hotkey_f10=1 save_repro_auto_restore=1 save_repro_dispatch_sample_stride=64 save_repro_passive_until_f8=1 save_repro_hle_hotpath=0 save_repro_ui_hotkeys=1 save_repro_f10_async_fallback=1 save_repro_collector_partial_bundle=1 save_repro_internal_ini_gate=1 save_repro_default_enabled=0 save_exitdelete_semantics=1 save_repro_legacy_exitdelete_repair=1 save_partition_reuse=1 news_atrac_v825_guard=1 runtime_chain_telemetry_default=0 arch_fastmem=1 aot_direct_fastmem_default=1 aot_hard_fastmem=1 aot_branchless_mem=1 aot_vfpu_block32=19455 aot_scalar_run_blocks=10665 aot_scalar_run_words=53173 aot_load_runs=5633 aot_store_runs=5032 vfpu_default_dest_fast=1 vfpu_vmscl_default_fast=1 vfpu_default_fastlane=1 vfpu_vec3_fastlane_sites=2469 vfpu_unary_fastlane_sites=1607 vfpu_vdot_default_fast=1 vfpu_vscl_default_fast=1 radio_atrac_identity_guard=1 atrac_direct_header_validation=1 atrac_identity_cache=1 atrac_header_only_producer_hint=1 vfpu_vtfm_ct=1 vfpu_vtfm_ct_sites=337 vfpu_vi2f_ct=1 vfpu_vi2f_ct_sites=164 vfpu_vcmp_default_fast=1 vfpu_vcmp_ct_sites=558 vfpu_vcmov_default_fast=1 vfpu_vcmov_ct_sites=461 vfpu_cross_default_fast=1 vfpu_cross_ct_sites=217 vfpu_helper_ct2=1 trusted_chain=1 trusted_chain_sites=45968 trusted_chain_poisonable_sites=3240 compact_leaf_dispatch=1 compact_leaf_targets=4 compact_leaf_sites=1885 outer_entry_dispatch=1 outer_aot_view_reuse=1 v87_tiny_leaf_reverted=1 aot_register_residency=1 aot_register_residency_units=230 aot_gpr_resident_slots=6 aot_fpr_resident_slots=4 aot_gpr_resident_occurrences=914095 aot_fpr_resident_occurrences=146813 aot_resident_region_weight=6 resident_regions=1 resident_region_targets=83 resident_region_sites=11171 resident_region_files=220 resident_region_sync_out_removed=11171 resident_region_sync_in_removed=11171 resident_region_resident_args=53234 resident_region_ctx_args=26183 resident_region_scheduler_guard=1 resident_region_scheduler_fallback_sites=11171" << " tier2_direct_fastmem=1 tier2_direct_mem_sites=1969 tier2_deep_telemetry_default=0 geometry_fusion_rollback=1" << " entity_leaf_inline=1 entity_leaf_scheduler_accounting=1 entity_leaf_resume_pc_fix=1" - << " ge_async_default=0 parallel_vertex_decode_default=0" + << " ge_async_default=0 parallel_vertex_decode_default=0 ge_async_opt_in=PSPRECOMP_V8155_ENABLE_ASYNC" << " v5_vfpu_fast_quarantined=1 native_vfpu_088b1780_v4=1" << " dx12_execute_indirect_default=0 indirect_buffer_mb=4" - << " ge_async_quarantined=1 parallel_vertex_decode_quarantined=1 legacy_perf_env_ignored=1" + << " ge_async_quarantined=1 ge_async_present_safepoint=1 ge_async_hard_force=0 parallel_vertex_decode_quarantined=1 legacy_perf_env_ignored=1" << " amd_uma_compat=1 uma_msaa_guard=1 packed0115_amd_stride=12" << " pipe_shadow_failsafe=1 material_shadow_scalar_probe=1" << " draw_distance_common_world=1 draw_distance_fog_scale=1\n\n"; diff --git a/profiles/vcs/tests/check_v813_cpu_hotpath.py b/profiles/vcs/tests/check_v813_cpu_hotpath.py new file mode 100644 index 0000000..8ed7906 --- /dev/null +++ b/profiles/vcs/tests/check_v813_cpu_hotpath.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import pathlib +import sys + +ROOT = pathlib.Path(__file__).resolve().parents[3] +TOOLS = ROOT / "profiles" / "vcs" / "tools" +sys.path.insert(0, str(TOOLS)) + +try: + import apply_v813_cpu_hotpath as v813 + summary = v813.validate(ROOT) +except Exception as exc: + print("V8.13 CHECK FAILED") + print(" -", exc) + raise SystemExit(1) + +print( + "V8.13 CHECK OK: " + f"units={summary['units']} entries={summary['entries']} " + f"jr_fast_sites={summary['jr_sites']} shared_jr_units={summary['shared_jr_units']} " + f"hot_dense_units={summary['hot_dense_units']} hot_dense_entries={summary['hot_dense_entries']} " + f"generated_cpp={summary['generated_cpp_bytes'] / (1024*1024):.2f} MiB" +) diff --git a/profiles/vcs/tests/check_v814_nonrecursive_aot.py b/profiles/vcs/tests/check_v814_nonrecursive_aot.py new file mode 100644 index 0000000..54aac52 --- /dev/null +++ b/profiles/vcs/tests/check_v814_nonrecursive_aot.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +from pathlib import Path +import subprocess, sys +root = Path(__file__).resolve().parents[3] +tool = root / 'profiles' / 'vcs' / 'tools' / 'apply_v814_nonrecursive_aot.py' +raise SystemExit(subprocess.call([sys.executable, str(tool), str(root), '--check'])) diff --git a/profiles/vcs/tests/check_v8151_force_activation.py b/profiles/vcs/tests/check_v8151_force_activation.py new file mode 100644 index 0000000..9ca12ec --- /dev/null +++ b/profiles/vcs/tests/check_v8151_force_activation.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +from pathlib import Path +import subprocess, sys +root=Path(__file__).resolve().parents[3] +script=root/'profiles/vcs/tools/apply_v8151_force_activation.py' +raise SystemExit(subprocess.call([sys.executable,str(script),str(root),'--check'])) diff --git a/profiles/vcs/tests/check_v8155_hard_force_async.py b/profiles/vcs/tests/check_v8155_hard_force_async.py new file mode 100644 index 0000000..18c0d8c --- /dev/null +++ b/profiles/vcs/tests/check_v8155_hard_force_async.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 +from pathlib import Path +import sys + +root = Path(__file__).resolve().parents[3] +sys.path.insert(0, str(root / 'profiles' / 'vcs' / 'tools')) +import apply_v8155_hard_force_async as v8155 + +v8155.check(root) +print('V8.15.5 regression CHECK OK') diff --git a/profiles/vcs/tests/check_v815_async_ge_overlap.py b/profiles/vcs/tests/check_v815_async_ge_overlap.py new file mode 100644 index 0000000..6b6354d --- /dev/null +++ b/profiles/vcs/tests/check_v815_async_ge_overlap.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 +from pathlib import Path +import subprocess +import sys +root = Path(__file__).resolve().parents[3] +script = root / "profiles/vcs/tools/apply_v815_async_ge_overlap.py" +raise SystemExit(subprocess.call([sys.executable, str(script), str(root), "--check"])) diff --git a/profiles/vcs/tests/vcs_config_tests.cpp b/profiles/vcs/tests/vcs_config_tests.cpp index 12ccdb6..6131bd3 100644 --- a/profiles/vcs/tests/vcs_config_tests.cpp +++ b/profiles/vcs/tests/vcs_config_tests.cpp @@ -13,6 +13,22 @@ void require(bool condition, const char *message) { if (!condition) throw std::runtime_error(message); } +void clear_environment_value(const char *name) { +#if defined(_WIN32) + _putenv_s(name, ""); +#else + unsetenv(name); +#endif +} + +void set_environment_value(const char *name, const char *value) { +#if defined(_WIN32) + _putenv_s(name, value); +#else + setenv(name, value, 1); +#endif +} + } // namespace int main() { @@ -214,13 +230,29 @@ int main() { << "Mist=0.67\n" << "DayProgression=-0.12\n"; } + // Exercise both sides of the DX12 defaulting contract. A test runner + // may inherit these variables from a previous benchmark, so clear + // them before checking the safe defaults. + clear_environment_value("PSPRECOMP_GE_ASYNC"); + clear_environment_value("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE"); vcs::initialize_vcs_configuration(root); const char *async_default = std::getenv("PSPRECOMP_GE_ASYNC"); const char *parallel_decode_default = std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE"); require(async_default != nullptr && std::string(async_default) == "0", - "DirectX12 sync-recovery must force legacy GE async off"); + "DirectX12 must default GE async off when no override is supplied"); require(parallel_decode_default != nullptr && std::string(parallel_decode_default) == "0", - "DirectX12 stable recovery must force parallel vertex decode off"); + "DirectX12 must default parallel vertex decode off when no override is supplied"); + + // An explicit launcher/benchmark override must survive configuration + // loading; this is what allows the production VCS launcher to enable + // overlap without making the generic config parser game-specific. + set_environment_value("PSPRECOMP_GE_ASYNC", "1"); + set_environment_value("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1"); + vcs::initialize_vcs_configuration(root); + require(std::string(std::getenv("PSPRECOMP_GE_ASYNC")) == "1", + "DirectX12 configuration overwrote an explicit GE async override"); + require(std::string(std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE")) == "1", + "DirectX12 configuration overwrote an explicit parallel decode override"); const auto &proper = vcs::vcs_configuration().proper_shaders; require(proper.enabled && proper.building_pipe.enabled && !proper.skin_pipe.enabled && proper.vehicle_pipe.enabled && !proper.vehicle_pipe.palette_classifier, diff --git a/profiles/vcs/tools/apply_v813_cpu_hotpath.py b/profiles/vcs/tools/apply_v813_cpu_hotpath.py new file mode 100644 index 0000000..6818ec3 --- /dev/null +++ b/profiles/vcs/tools/apply_v813_cpu_hotpath.py @@ -0,0 +1,442 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import argparse +import json +import re +from pathlib import Path + +STAGE = "V8.13 CPU hot path" +EXPECTED_UNITS = 234 +EXPECTED_ENTRIES = 181789 +EXPECTED_JR_SITES = 11299 +V812_JUMP_MARKER = "PSPRECOMP_V812_SHARED_SCHED_JUMP" +V813_JR_MARKER = "PSPRECOMP_V813_JR_FAST_EXIT" +V813_JR_BLOCK_MARKER = "PSPRECOMP_V813_SHARED_JR_DISPATCH" +V813_DENSE_MARKER = "PSPRECOMP_V813_HOT_DENSE_DISPATCH" + +# Same measured ordering already used by profiles/vcs/CMakeLists.txt. These 37 +# units carry about 80% of the measured cross-unit call traffic. +HOT_UNIT_IDS = { + 23, 24, 97, 30, 11, 91, 84, 43, 67, 163, + 87, 142, 66, 152, 109, 179, 85, 215, 64, 149, + 95, 199, 92, 206, 22, 190, 200, 80, 164, 198, + 88, 155, 213, 154, 169, 35, 89, +} + +DISPATCH_ORIGIN_RE = re.compile( + r"const std::uint32_t entry_delta = local_pc - (?P0x[0-9A-Fa-f]+)u;" +) +DISPATCH_SPAN_RE = re.compile( + r"entry_delta < (?P\d+)u && \(entry_delta & 3u\) == 0u" +) +MASK_RE = re.compile( + r"static constexpr std::uint64_t (?PkEntryMasks_recomp_unit_(?P\d{4}))" + r"\[(?P\d+)\] = \{\n(?P.*?)\n\};", + re.DOTALL, +) +BASES_RE_TEMPLATE = ( + r"static constexpr std::uint16_t kEntryBases_recomp_unit_{unit}\[(?P\d+)\] = \{{\n(?P.*?)\n\}};\n" +) +CASE_RE = re.compile(r"case\s+(?P\d+)u:\s+goto\s+L_(?P[0-9A-Fa-f]{8});") + +# Exact V8.12 JR form. Keep the V8.12 marker in the replacement so the V8.12 +# structural checker remains valid on subsequent incremental builds. +OLD_JR_RE = re.compile( + r"(?P[ \t]*)local_pc = jump_target;\n" + r"(?P=i)if \(\+\+local_transfers < 256u\) \{ entry_id = 0u; goto LOCAL_DISPATCH; \}\n" + r"(?P=i)// PSPRECOMP_V812_SHARED_SCHED_JUMP\n" + r"(?P=i)goto LOCAL_SCHED_BOUNDARY;" +) + + +def read(path: Path) -> str: + return path.read_text(encoding="utf-8", errors="strict") + + +def write_if_changed(path: Path, old: str, new: str) -> bool: + if old == new: + return False + tmp = path.with_suffix(path.suffix + ".v813tmp") + tmp.write_text(new, encoding="utf-8", newline="\n") + tmp.replace(path) + return True + + +def parse_masks(text: str, path: Path) -> tuple[list[int], int]: + match = MASK_RE.search(text) + if not match: + raise RuntimeError(f"{path.name}: compact entry masks missing") + declared = int(match.group("count")) + masks = [int(x, 16) for x in re.findall(r"0x([0-9A-Fa-f]{16})ull", match.group("body"))] + if len(masks) != declared: + raise RuntimeError(f"{path.name}: compact mask count mismatch declared={declared} parsed={len(masks)}") + return masks, sum(x.bit_count() for x in masks) + + +def parse_window(text: str, path: Path) -> tuple[int, int]: + origin = DISPATCH_ORIGIN_RE.search(text) + span = DISPATCH_SPAN_RE.search(text) + if origin is None or span is None: + raise RuntimeError(f"{path.name}: compact dispatch origin/span missing") + return int(origin.group("origin"), 16), int(span.group("span")) + + +def switch_entries(text: str) -> dict[int, int]: + # generated-unit entry switch is the only case-N -> L_guest form in this corpus. + return {int(m.group("pc"), 16): int(m.group("id")) for m in CASE_RE.finditer(text)} + + +def insert_shared_jr_dispatch(text: str, path: Path, origin: int, span: int, has_regcache: bool) -> str: + if V813_JR_BLOCK_MARKER in text: + return text + anchor = "// PSPRECOMP_V812_SHARED_SCHED_BLOCK: one scheduler-exact slow boundary per unit.\n" + pos = text.find(anchor) + if pos < 0: + raise RuntimeError(f"{path.name}: V8.12 shared scheduler block anchor missing") + sync = " AOT_REGCACHE_SYNC_OUT();\n" if has_regcache else "" + block = ( + f"// {V813_JR_BLOCK_MARKER}: one dynamic-JR reject/redispatch path per unit.\n" + "LOCAL_JR_DISPATCH:\n" + " {\n" + f" const std::uint32_t local_delta_v813 = jump_target - 0x{origin:08X}u;\n" + f" if (local_delta_v813 >= {span}u || (local_delta_v813 & 3u) != 0u) {{\n" + " ctx.pc = jump_target;\n" + f"{sync}" + " return;\n" + " }\n" + " }\n" + " local_pc = jump_target;\n" + " entry_id = 0u;\n" + " goto LOCAL_DISPATCH;\n" + "\n" + ) + return text[:pos] + block + text[pos:] + + +def rewrite_jr_sites(text: str, path: Path) -> tuple[str, int]: + if V813_JR_MARKER in text: + # Idempotent path: marker is emitted once per rewritten site. + return text, text.count(V813_JR_MARKER) + count = 0 + + def repl(match: re.Match[str]) -> str: + nonlocal count + count += 1 + i = match.group("i") + return ( + f"{i}// {V813_JR_MARKER}: preserve the exact 256-transfer boundary; common JR path is shared.\n" + f"{i}if (++local_transfers < 256u) goto LOCAL_JR_DISPATCH;\n" + f"{i}// {V812_JUMP_MARKER}\n" + f"{i}goto LOCAL_SCHED_BOUNDARY;" + ) + + text = OLD_JR_RE.sub(repl, text) + if count == 0 and V812_JUMP_MARKER in text: + raise RuntimeError(f"{path.name}: V8.12 JR sites exist but expected rewrite form was not found") + return text, count + + +def ensure_prefix_bases(text: str, path: Path, unit: int, masks: list[int]) -> str: + """Keep V8.12 prefix metadata canonical even though V8.13 hot lookup does not read it. + + The first V8.13 package incorrectly assumed every compact mask had 64 groups and + removed kEntryBases from already-transformed hot units. Real VCS units have + variable group counts (for example unit 0067 has 59). Reconstructing this table + from the occupancy masks is exact and makes partial V8.13 application recoverable. + """ + expected = [] + next_id = 1 + for mask in masks: + expected.append(next_id) + next_id += mask.bit_count() + + bases_re = re.compile(BASES_RE_TEMPLATE.format(unit=f"{unit:04d}"), re.DOTALL) + match = bases_re.search(text) + if match is not None: + values = [int(x) for x in re.findall(r"\b(\d+)u\b", match.group("body"))] + declared = int(match.group("count")) + if declared != len(masks) or values != expected: + raise RuntimeError( + f"{path.name}: kEntryBases mismatch declared={declared} groups={len(masks)}" + ) + return text + + mask_match = MASK_RE.search(text) + if mask_match is None: + raise RuntimeError(f"{path.name}: mask table insertion anchor missing") + lines = [ + f"\nstatic constexpr std::uint16_t kEntryBases_recomp_unit_{unit:04d}[{len(masks)}] = {{" + ] + for idx in range(0, len(expected), 16): + lines.append(" " + ", ".join(f"{x}u" for x in expected[idx:idx + 16]) + ",") + lines.append("};\n") + insertion = mask_match.end() + return text[:insertion] + "\n".join(lines) + text[insertion:] + + +def build_hot_dense_table(text: str, path: Path, unit: int, origin: int, span: int, masks: list[int]) -> tuple[str, int]: + if unit not in HOT_UNIT_IDS: + return text, 0 + entries = switch_entries(text) + if not entries: + raise RuntimeError(f"{path.name}: no generated entry switch cases found") + + # Preserve/restore the canonical V8.12 prefix-base metadata. It is tiny, not + # on the V8.13 runtime lookup path, and keeping it avoids making future tooling + # depend on whether a unit was transformed before a failed incremental run. + text = ensure_prefix_bases(text, path, unit, masks) + + slots = (span + 3) // 4 + dense = [0] * slots + for pc, entry_id in entries.items(): + delta = pc - origin + if delta < 0 or delta >= span or (delta & 3): + raise RuntimeError(f"{path.name}: entry {pc:#010x} outside dispatch window") + idx = delta >> 2 + if dense[idx] != 0 and dense[idx] != entry_id: + raise RuntimeError(f"{path.name}: duplicate dense entry slot {idx}") + dense[idx] = entry_id + + table_name = f"kEntryIdsV813_recomp_unit_{unit:04d}" + if V813_DENSE_MARKER not in text: + mask_match = MASK_RE.search(text) + if mask_match is None: + raise RuntimeError(f"{path.name}: mask table insertion anchor missing") + # Insert after the prefix-base table when present so V8.11/V8.12 metadata + # remains grouped together and readable. + bases_match = re.compile(BASES_RE_TEMPLATE.format(unit=f"{unit:04d}"), re.DOTALL).search(text) + insertion = bases_match.end() if bases_match is not None else mask_match.end() + lines = [ + f"\n// {V813_DENSE_MARKER}: one indexed load on the measured hot units;", + "// masks remain for exact registration/correctness proof.", + f"alignas(64) static constexpr std::uint16_t {table_name}[{slots}] = {{", + ] + for idx in range(0, slots, 32): + lines.append(" " + ", ".join(f"{x}u" for x in dense[idx:idx + 32]) + ",") + lines.append("};\n") + text = text[:insertion] + "\n".join(lines) + text[insertion:] + + dispatch = text.find("LOCAL_DISPATCH:\n") + if dispatch < 0: + raise RuntimeError(f"{path.name}: LOCAL_DISPATCH missing") + lookup_start = text.find(" if (entry_id == 0u) {\n", dispatch) + switch_pos = text.find(" switch (entry_id) {\n", lookup_start) + if lookup_start < 0 or switch_pos < 0: + raise RuntimeError(f"{path.name}: compact lookup block not recognized") + lookup = ( + " if (entry_id == 0u) {\n" + f" const std::uint32_t entry_delta = local_pc - 0x{origin:08X}u;\n" + f" entry_id = (entry_delta < {span}u && (entry_delta & 3u) == 0u)\n" + f" ? {table_name}[entry_delta >> 2u] : 0u;\n" + " }\n" + ) + text = text[:lookup_start] + lookup + text[switch_pos:] + return text, len(entries) + + +def transform_unit(path: Path) -> dict: + old = read(path) + text = old + unit_match = re.search(r"generated_unit_(\d{4})\.cpp$", path.name) + if not unit_match: + raise RuntimeError(f"bad generated unit name: {path.name}") + unit = int(unit_match.group(1)) + masks, entry_count = parse_masks(text, path) + origin, span = parse_window(text, path) + entries = switch_entries(text) + mask_pcs = { + origin + (group * 64 + bit) * 4 + for group, mask in enumerate(masks) + for bit in range(64) + if (mask >> bit) & 1 + } + if set(entries) != mask_pcs: + raise RuntimeError(f"{path.name}: pre-transform mask/switch entry set mismatch") + + has_regcache = "#define AOT_REGCACHE_SYNC_OUT()" in text + text, jr_sites = rewrite_jr_sites(text, path) + if jr_sites: + text = insert_shared_jr_dispatch(text, path, origin, span, has_regcache) + text, dense_entries = build_hot_dense_table(text, path, unit, origin, span, masks) + + write_if_changed(path, old, text) + return { + "unit": unit, + "path": path.name, + "entries": entry_count, + "jr_sites": jr_sites, + "hot_dense_entries": dense_entries, + "bytes_before": len(old.encode("utf-8")), + "bytes_after": len(text.encode("utf-8")), + } + + +def validate(root: Path) -> dict: + generated = root / "profiles" / "vcs" / "generated" + units = sorted(generated.glob("generated_unit_*.cpp")) + if len(units) != EXPECTED_UNITS: + raise RuntimeError(f"expected {EXPECTED_UNITS} generated units, found {len(units)}") + + total_entries = 0 + total_v812_markers = 0 + total_v813_sites = 0 + shared_jr_units = 0 + hot_dense_units = 0 + hot_dense_entries = 0 + total_bytes = 0 + + for path in units: + text = read(path) + unit = int(path.stem.rsplit("_", 1)[1]) + masks, entries_count = parse_masks(text, path) + origin, span = parse_window(text, path) + entries = switch_entries(text) + bases_match = re.compile(BASES_RE_TEMPLATE.format(unit=f"{unit:04d}"), re.DOTALL).search(text) + if bases_match is None: + raise RuntimeError(f"{path.name}: canonical kEntryBases metadata missing") + base_values = [int(x) for x in re.findall(r"\b(\d+)u\b", bases_match.group("body"))] + expected_bases = [] + next_base = 1 + for mask in masks: + expected_bases.append(next_base) + next_base += mask.bit_count() + if int(bases_match.group("count")) != len(masks) or base_values != expected_bases: + raise RuntimeError(f"{path.name}: canonical kEntryBases metadata mismatch") + mask_pcs = { + origin + (group * 64 + bit) * 4 + for group, mask in enumerate(masks) + for bit in range(64) + if (mask >> bit) & 1 + } + if set(entries) != mask_pcs: + raise RuntimeError(f"{path.name}: mask/switch PC set changed") + if len(entries) != entries_count: + raise RuntimeError(f"{path.name}: switch/mask entry count mismatch") + + v812 = text.count(V812_JUMP_MARKER) + v813 = text.count(V813_JR_MARKER) + total_v812_markers += v812 + total_v813_sites += v813 + if v812 != v813: + raise RuntimeError(f"{path.name}: every V8.12 shared JR marker must have one V8.13 fast-site marker ({v812}!={v813})") + if v813: + if text.count(V813_JR_BLOCK_MARKER) != 1 or text.count("LOCAL_JR_DISPATCH:") != 1: + raise RuntimeError(f"{path.name}: shared V8.13 JR dispatcher missing/duplicated") + if OLD_JR_RE.search(text): + raise RuntimeError(f"{path.name}: stale V8.12 per-site local_pc dispatch remains") + expected_window = f"const std::uint32_t local_delta_v813 = jump_target - 0x{origin:08X}u;" + if expected_window not in text or f"local_delta_v813 >= {span}u" not in text: + raise RuntimeError(f"{path.name}: V8.13 JR dispatcher window mismatch") + shared_jr_units += 1 + + dense = text.count(V813_DENSE_MARKER) + if unit in HOT_UNIT_IDS: + if dense != 1: + raise RuntimeError(f"{path.name}: measured hot unit is missing dense V8.13 dispatch") + table_name = f"kEntryIdsV813_recomp_unit_{unit:04d}" + table_re = re.compile( + rf"{re.escape(table_name)}\[(\d+)\] = \{{\n(?P.*?)\n\}};", + re.DOTALL, + ) + tm = table_re.search(text) + if tm is None: + raise RuntimeError(f"{path.name}: dense table body not found") + values = [int(x) for x in re.findall(r"\b(\d+)u\b", tm.group("body"))] + expected_slots = (span + 3) // 4 + if int(tm.group(1)) != expected_slots or len(values) != expected_slots: + raise RuntimeError(f"{path.name}: dense table size mismatch") + reconstructed = { + origin + idx * 4: value + for idx, value in enumerate(values) + if value != 0 + } + if reconstructed != entries: + raise RuntimeError(f"{path.name}: dense table is not exactly the switch entry map") + if f"? {table_name}[entry_delta >> 2u] : 0u;" not in text: + raise RuntimeError(f"{path.name}: hot lookup is not using the dense table") + hot_dense_units += 1 + hot_dense_entries += len(entries) + elif dense: + raise RuntimeError(f"{path.name}: dense table unexpectedly emitted for cold unit") + + total_entries += entries_count + total_bytes += len(text.encode("utf-8")) + + if total_entries != EXPECTED_ENTRIES: + raise RuntimeError(f"entry population changed: expected {EXPECTED_ENTRIES}, found {total_entries}") + if total_v812_markers != EXPECTED_JR_SITES: + raise RuntimeError(f"V8.12 JR marker population changed: expected {EXPECTED_JR_SITES}, found {total_v812_markers}") + if total_v813_sites != EXPECTED_JR_SITES: + raise RuntimeError(f"V8.13 JR site population incomplete: expected {EXPECTED_JR_SITES}, found {total_v813_sites}") + if hot_dense_units != len(HOT_UNIT_IDS): + raise RuntimeError(f"hot dense unit population incomplete: {hot_dense_units}/{len(HOT_UNIT_IDS)}") + + return { + "units": len(units), + "entries": total_entries, + "jr_sites": total_v813_sites, + "shared_jr_units": shared_jr_units, + "hot_dense_units": hot_dense_units, + "hot_dense_entries": hot_dense_entries, + "generated_cpp_bytes": total_bytes, + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=STAGE) + parser.add_argument("root", nargs="?", default=".") + parser.add_argument("--check", action="store_true") + args = parser.parse_args() + root = Path(args.root).resolve() + generated = root / "profiles" / "vcs" / "generated" + if not (root / "CMakeLists.txt").is_file() or not generated.is_dir(): + raise RuntimeError(f"not PSPRecomp VCS root: {root}") + + manifest_path = generated / "v813_cpu_hotpath_manifest.json" + if args.check: + summary = validate(root) + print( + "V8.13 CHECK OK: " + f"units={summary['units']} entries={summary['entries']} " + f"jr_fast_sites={summary['jr_sites']} shared_jr_units={summary['shared_jr_units']} " + f"hot_dense_units={summary['hot_dense_units']} hot_dense_entries={summary['hot_dense_entries']} " + f"generated_cpp={summary['generated_cpp_bytes'] / 1048576:.2f} MiB" + ) + return 0 + + units = sorted(generated.glob("generated_unit_*.cpp")) + if len(units) != EXPECTED_UNITS: + raise RuntimeError(f"expected {EXPECTED_UNITS} generated units, found {len(units)}") + if any('#include "generated_source_pack.hpp"' in read(path) for path in units): + raise RuntimeError( + "V8.12.7 source-pack format detected. V8.13 intentionally works on canonical generated C++; " + "unpack/revert V8.12.7 before applying this CPU pass." + ) + before = sum(p.stat().st_size for p in units) + stats = [transform_unit(path) for path in units] + summary = validate(root) + after = sum(p.stat().st_size for p in units) + manifest = { + "stage": STAGE, + "generated_cpp_bytes_before": before, + "generated_cpp_bytes_after": after, + "generated_cpp_delta": after - before, + **summary, + "units_changed_this_run": sum(1 for x in stats if x["bytes_before"] != x["bytes_after"]), + "jr_sites_rewritten_this_run": sum(x["jr_sites"] for x in stats if x["bytes_before"] != x["bytes_after"]), + "hot_units": sorted(HOT_UNIT_IDS), + } + manifest_path.write_text(json.dumps(manifest, indent=2) + "\n", encoding="utf-8") + print( + "V8.13 CPU hot path applied: " + f"units={summary['units']} entries={summary['entries']} " + f"jr_fast_sites={summary['jr_sites']} shared_jr_units={summary['shared_jr_units']} " + f"hot_dense_units={summary['hot_dense_units']} hot_dense_entries={summary['hot_dense_entries']} " + f"generated_cpp={after / 1048576:.2f} MiB delta={(after-before) / 1048576:+.2f} MiB" + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/profiles/vcs/tools/apply_v814_nonrecursive_aot.py b/profiles/vcs/tools/apply_v814_nonrecursive_aot.py new file mode 100644 index 0000000..3c707b9 --- /dev/null +++ b/profiles/vcs/tools/apply_v814_nonrecursive_aot.py @@ -0,0 +1,482 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import argparse +import json +import re +from pathlib import Path + +STAGE = "V8.14 non-recursive AOT link engine" +MARKER = "PSPRECOMP_V814_NONRECURSIVE_AOT" +RUNTIME_MARKER = "PSPRECOMP_V814_AOT_CONTINUATION_ENGINE" +OUTER_CLEAR_MARKER = "PSPRECOMP_V814_CLEAR_CONTINUATIONS_AT_OUTER_DISPATCH" +SCHED_MARKER = "PSPRECOMP_V814_BATCHED_SCHEDULER_CLOCK" +RETURN_HOOK_MARKER = "PSPRECOMP_V814_CONTINUATION_RETURN" +CALL_MARKER = "PSPRECOMP_V814_LINKED_CALL" +EXPECTED_UNITS = 234 +POISONABLE_UNITS = {44, 197, 212, 216, 219} + +CASE_RE = re.compile(r"case\s+(?P\d+)u:\s+goto\s+L_(?P[0-9A-Fa-f]{8});") +UNIT_RE = re.compile(r"generated_unit_(\d{4})\.cpp$") + +CALL_EXPR = ( + r"rt\.invoke_chained_trusted_direct<&recomp_unit_(?P\d{4})_entry,\s*" + r"(?P\d+)u,\s*(?P\d+)u,\s*" + r"(?P0x[0-9A-Fa-f]+)u>\(ctx,\s*&aot_mem\)" +) + +REGCACHE_CALL_RE = re.compile( + r"(?P[ \t]*)if \(\(\[&\]\(\) \{ AOT_REGCACHE_SYNC_OUT\(\); " + r"const bool aot_regcache_same_ = \((?P" + CALL_EXPR + r")\); " + r"if \(aot_regcache_same_\) AOT_REGCACHE_SYNC_IN\(\); else aot_regcache_valid = false; " + r"return aot_regcache_same_; \}\(\)\) && ctx\.pc == (?P0x[0-9A-Fa-f]+)u\) " + r"goto L_(?P[0-9A-Fa-f]{8});\n" + r"(?P=indent)AOT_REGCACHE_SYNC_OUT\(\); return;" +) + +PLAIN_CALL_RE = re.compile( + r"(?P[ \t]*)if \(\((?P" + CALL_EXPR + r")\) && " + r"ctx\.pc == (?P0x[0-9A-Fa-f]+)u\) goto L_(?P[0-9A-Fa-f]{8});\n" + r"(?P=indent)return;" +) + +# V8.13 shared dynamic-JR dispatcher. This is the one safe place to recognize +# a guest return that leaves the current 16 KiB unit and resume an explicit +# continuation without growing the native C++ call stack. +JR_BLOCK_RE = re.compile( + r"(?P// PSPRECOMP_V813_SHARED_JR_DISPATCH: one dynamic-JR reject/redispatch path per unit\.\n" + r"LOCAL_JR_DISPATCH:\n" + r" \{\n" + r" const std::uint32_t local_delta_v813 = jump_target - (?P0x[0-9A-Fa-f]+)u;\n" + r" if \(local_delta_v813 >= (?P\d+)u \|\| \(local_delta_v813 & 3u\) != 0u\) \{\n" + r" ctx\.pc = jump_target;\n)" + r"(?P AOT_REGCACHE_SYNC_OUT\(\);\n)?" + r" return;\n" + r" \}\n" + r" \}\n" + r" local_pc = jump_target;\n" + r" entry_id = 0u;\n" + r" goto LOCAL_DISPATCH;" +) + + +def read(path: Path) -> str: + return path.read_text(encoding="utf-8", errors="strict") + + +def write(path: Path, text: str) -> None: + tmp = path.with_suffix(path.suffix + ".v814tmp") + tmp.write_text(text, encoding="utf-8", newline="\n") + tmp.replace(path) + + +def switch_entries(text: str) -> dict[int, int]: + return {int(m.group("pc"), 16): int(m.group("id")) for m in CASE_RE.finditer(text)} + + +def patch_runtime_hpp(path: Path) -> bool: + old = read(path) + if RUNTIME_MARKER in old: + return False + text = old + if "#include " not in text: + anchor = "#include \n" + if anchor not in text: + raise RuntimeError(f"{path}: cstdint include anchor missing") + text = text.replace(anchor, "#include \n" + anchor, 1) + if "#include " not in text: + anchor = "#include \n" + if anchor not in text: + raise RuntimeError(f"{path}: cstdint include anchor missing for cstddef") + text = text.replace(anchor, "#include \n" + anchor, 1) + + insert_anchor = " // Profile-selected compact generated leaves. Unlike V8.7 body inlining,\n" + if insert_anchor not in text: + raise RuntimeError(f"{path}: compact-leaf insertion anchor missing") + methods = r''' // PSPRECOMP_V814_AOT_CONTINUATION_ENGINE + // Flatten compile-time-known generated calls into explicit guest continuations. + // The normal path no longer nests giant generated C++ frames: the caller + // publishes architectural registers, stores its exact return entry, and the + // generated target is reached by a clang tail jump. A guest `jr $ra` pops the + // continuation and tail-jumps back. Any outer Runtime/HLE boundary discards + // the optimization stack and resumes through the canonical PC dispatcher. + struct AotTailContinuation { + RecompiledEntryFunction function{}; + std::uint16_t entry_id{}; + std::uint16_t reserved{}; + std::uint32_t return_pc{}; + std::uint64_t switch_generation{}; + }; + static constexpr std::size_t kAotTailContinuationCapacity = 256u; + + [[nodiscard]] PSPRECOMP_RUNTIME_FORCEINLINE bool prepare_aot_linked_call( + AllegrexContext &ctx, RecompiledEntryFunction return_function, + std::uint16_t return_entry_id, std::uint32_t return_pc, + std::uint32_t target_pc) { +#if !defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + (void)return_function; (void)return_entry_id; (void)return_pc; + ctx.pc = target_pc; + return false; +#else + // Observed/instrumented runs deliberately fall back to Runtime so their + // dispatch boundaries remain visible. Capacity exhaustion is also a + // correctness-preserving outer-dispatch fallback, never a recursive call. + if (g_runtime_chain_observers_active || return_function == nullptr || + aot_tail_continuation_depth_ >= kAotTailContinuationCapacity || stopped_ || + chain_context_invalidated_) { + ctx.pc = target_pc; + return false; + } + ctx.pc = target_pc; + // Charge exactly one logical chained dispatch. Keep the hot no-boundary + // case entirely inline: an out-of-line account_dispatch_work() here would + // simply replace one wrapper with another at every linked call site. + const std::uint64_t interval = g_runtime_starvation_interval_fast; + if (interval != 0u) { + ++dispatches_since_import_; + if (dispatches_since_import_ >= interval && !run_starvation_boundary(ctx)) + return false; + } + if (stopped_ || chain_context_invalidated_) return false; + AotTailContinuation &slot = aot_tail_continuations_[aot_tail_continuation_depth_++]; + slot.function = return_function; + slot.entry_id = return_entry_id; + slot.return_pc = return_pc; + slot.switch_generation = g_runtime_thread_switch_generation_fast; + return true; +#endif + } + + [[nodiscard]] PSPRECOMP_RUNTIME_FORCEINLINE bool take_aot_tail_continuation( + std::uint32_t return_pc, AotTailContinuation &out) noexcept { +#if !defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS) + (void)return_pc; (void)out; + return false; +#else + if (aot_tail_continuation_depth_ == 0u) return false; + const AotTailContinuation &slot = aot_tail_continuations_[aot_tail_continuation_depth_ - 1u]; + // A PSP ownership transition invalidates every native continuation. The + // guest PC/$ra state remains authoritative, so dropping the optimization + // stack simply falls back to normal outer dispatch. + if (slot.switch_generation != g_runtime_thread_switch_generation_fast) { + aot_tail_continuation_depth_ = 0u; + return false; + } + if (slot.return_pc != return_pc || slot.function == nullptr) return false; + out = slot; + --aot_tail_continuation_depth_; + return true; +#endif + } + + PSPRECOMP_RUNTIME_FORCEINLINE void clear_aot_tail_continuations() noexcept { + aot_tail_continuation_depth_ = 0u; + } + +''' + text = text.replace(insert_anchor, methods + insert_anchor, 1) + + field_anchor = " std::uint32_t chain_depth_{};\n" + if field_anchor not in text: + raise RuntimeError(f"{path}: chain depth field anchor missing") + fields = ( + " std::array aot_tail_continuations_{};\n" + " std::uint32_t aot_tail_continuation_depth_{};\n" + ) + text = text.replace(field_anchor, fields + field_anchor, 1) + write(path, text) + return True + + +def patch_runtime_cpp(path: Path) -> bool: + old = read(path) + if OUTER_CLEAR_MARKER in old: + return False + anchor = ( + " for (; executed_dispatches < max_dispatches && !stopped_; ++executed_dispatches) {\n" + " const std::uint32_t before = cpu_.pc;\n" + ) + if anchor not in old: + raise RuntimeError(f"{path}: production outer-loop anchor missing") + replacement = ( + " for (; executed_dispatches < max_dispatches && !stopped_; ++executed_dispatches) {\n" + f" // {OUTER_CLEAR_MARKER}\n" + " // Reaching Runtime is an architectural boundary. Any optimized\n" + " // native continuation still present must be discarded so HLE,\n" + " // yields, long jumps and thread switches cannot retain stale frames.\n" + " clear_aot_tail_continuations();\n" + " const std::uint32_t before = cpu_.pc;\n" + ) + text = old.replace(anchor, replacement, 1) + write(path, text) + return True + + +def patch_scheduler(path: Path) -> bool: + old = read(path) + if SCHED_MARKER in old: + return False + anchor = ' const std::uint64_t interval = parse_environment_u64("PSPRECOMP_TIME_TICK_DISPATCHES", 256u);\n' + if anchor not in old: + raise RuntimeError(f"{path}: scheduler interval anchor missing") + replacement = ( + f" // {SCHED_MARKER}: batch the same virtual-time slope into fewer host callbacks.\n" + " // tick_us remains interval/4, so guest time advances at the same 0.25 us per\n" + " // logical dispatch; only preemption polling granularity changes (64 -> 256 us).\n" + ' const std::uint64_t interval = parse_environment_u64("PSPRECOMP_TIME_TICK_DISPATCHES", 1024u);\n' + ) + text = old.replace(anchor, replacement, 1) + write(path, text) + return True + + +def linked_replacement_reg(match: re.Match[str], caller_unit: int, return_entry: int) -> str: + i = match.group("indent") + target_unit = int(match.group("target_unit")) + target_name = int(match.group("target_name")) + target_entry = int(match.group("target_entry")) + target_pc = int(match.group("target_pc"), 16) + return_pc = int(match.group("return_pc"), 16) + return_label = int(match.group("return_label"), 16) + if target_unit != target_name: + raise RuntimeError(f"target symbol/unit mismatch {target_name}!={target_unit}") + if target_unit in POISONABLE_UNITS: + raise RuntimeError(f"trusted call unexpectedly points at poisonable unit {target_unit}") + if return_pc != return_label: + raise RuntimeError(f"return label mismatch {return_pc:#x}!={return_label:#x}") + old_block = match.group(0) + return ( + f"{i}// {CALL_MARKER}: non-recursive generated call {caller_unit:04d}->{target_unit:04d}.\n" + f"#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)\n" + f"{i}AOT_REGCACHE_SYNC_OUT();\n" + f"{i}if (rt.prepare_aot_linked_call(ctx, &recomp_unit_{caller_unit:04d}_entry, " + f"{return_entry}u, 0x{return_pc:08X}u, 0x{target_pc:08X}u)) {{\n" + f"#if defined(__clang__)\n" + f"{i} [[clang::musttail]] return recomp_unit_{target_unit:04d}_entry(rt, ctx, {target_entry}u, aot_mem);\n" + f"#else\n" + f"{i} recomp_unit_{target_unit:04d}_entry(rt, ctx, {target_entry}u, aot_mem); return;\n" + f"#endif\n" + f"{i}}}\n" + f"{i}return;\n" + f"#else\n" + f"{old_block}\n" + f"#endif" + ) + + +def linked_replacement_plain(match: re.Match[str], caller_unit: int, return_entry: int) -> str: + i = match.group("indent") + target_unit = int(match.group("target_unit")) + target_name = int(match.group("target_name")) + target_entry = int(match.group("target_entry")) + target_pc = int(match.group("target_pc"), 16) + return_pc = int(match.group("return_pc"), 16) + return_label = int(match.group("return_label"), 16) + if target_unit != target_name or return_pc != return_label or target_unit in POISONABLE_UNITS: + raise RuntimeError("plain trusted-call metadata mismatch") + old_block = match.group(0) + return ( + f"{i}// {CALL_MARKER}: non-recursive generated call {caller_unit:04d}->{target_unit:04d}.\n" + f"#if defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)\n" + f"{i}if (rt.prepare_aot_linked_call(ctx, &recomp_unit_{caller_unit:04d}_entry, " + f"{return_entry}u, 0x{return_pc:08X}u, 0x{target_pc:08X}u)) {{\n" + f"#if defined(__clang__)\n" + f"{i} [[clang::musttail]] return recomp_unit_{target_unit:04d}_entry(rt, ctx, {target_entry}u, aot_mem);\n" + f"#else\n" + f"{i} recomp_unit_{target_unit:04d}_entry(rt, ctx, {target_entry}u, aot_mem); return;\n" + f"#endif\n" + f"{i}}}\n" + f"{i}return;\n" + f"#else\n" + f"{old_block}\n" + f"#endif" + ) + + +def patch_return_hook(text: str, path: Path) -> tuple[str, int]: + if RETURN_HOOK_MARKER in text: + return text, text.count(RETURN_HOOK_MARKER) + match = JR_BLOCK_RE.search(text) + if match is None: + # Some generated units contain no dynamic JR boundary and therefore no + # V8.13 shared block. They cannot pop a continuation locally; any return + # from them already goes through Runtime and safely drops the fast stack. + return text, 0 + sync = match.group("sync") or "" + replacement = ( + match.group("prefix") + sync + + f" // {RETURN_HOOK_MARKER}\n" + " Runtime::AotTailContinuation aot_cont_v814{};\n" + " if (rt.take_aot_tail_continuation(jump_target, aot_cont_v814)) {\n" + "#if defined(__clang__) && defined(PSPRECOMP_AOT_PRODUCTION_FASTPATHS)\n" + " [[clang::musttail]] return aot_cont_v814.function(\n" + " rt, ctx, aot_cont_v814.entry_id, aot_mem);\n" + "#else\n" + " aot_cont_v814.function(rt, ctx, aot_cont_v814.entry_id, aot_mem); return;\n" + "#endif\n" + " }\n" + " return;\n" + " }\n" + " }\n" + " local_pc = jump_target;\n" + " entry_id = 0u;\n" + " goto LOCAL_DISPATCH;" + ) + text = text[:match.start()] + replacement + text[match.end():] + return text, 1 + + +def transform_generated(path: Path) -> tuple[str, dict]: + old = read(path) + munit = UNIT_RE.search(path.name) + if not munit: + raise RuntimeError(f"bad generated unit filename: {path.name}") + unit = int(munit.group(1)) + entries = switch_entries(old) + if not entries: + raise RuntimeError(f"{path.name}: generated entry switch missing") + + if CALL_MARKER in old: + text, return_hooks = patch_return_hook(old, path) + return text, { + "unit": unit, + "linked_calls": old.count(CALL_MARKER), + "return_hooks": return_hooks, + "changed": text != old, + } + + text = old + linked = 0 + + def reg_repl(match: re.Match[str]) -> str: + nonlocal linked + ret = int(match.group("return_pc"), 16) + if ret not in entries: + raise RuntimeError(f"{path.name}: linked return PC 0x{ret:08X} missing from entry switch") + linked += 1 + return linked_replacement_reg(match, unit, entries[ret]) + + text = REGCACHE_CALL_RE.sub(reg_repl, text) + + def plain_repl(match: re.Match[str]) -> str: + nonlocal linked + ret = int(match.group("return_pc"), 16) + if ret not in entries: + raise RuntimeError(f"{path.name}: plain linked return PC 0x{ret:08X} missing from entry switch") + linked += 1 + return linked_replacement_plain(match, unit, entries[ret]) + + text = PLAIN_CALL_RE.sub(plain_repl, text) + text, return_hooks = patch_return_hook(text, path) + return text, {"unit": unit, "linked_calls": linked, "return_hooks": return_hooks, "changed": text != old} + + +def patch_all_generated(root: Path) -> dict: + generated = root / "profiles" / "vcs" / "generated" + units = sorted(generated.glob("generated_unit_*.cpp")) + if len(units) != EXPECTED_UNITS: + raise RuntimeError(f"expected {EXPECTED_UNITS} generated units, found {len(units)}") + if not any("PSPRECOMP_V813_SHARED_JR_DISPATCH" in read(p) for p in units): + raise RuntimeError("V8.13.1 shared JR dispatch is required before V8.14") + + staged: list[tuple[Path, str, dict]] = [] + total_linked = 0 + total_hooks = 0 + for p in units: + new, stat = transform_generated(p) + staged.append((p, new, stat)) + total_linked += stat["linked_calls"] + total_hooks += stat["return_hooks"] + + # A pattern miss should never silently ship another no-op performance pass. + # The current VCS corpus contains tens of thousands of trusted chain sites; + # requiring a substantial matched population makes source drift fail loudly. + if total_linked < 1000: + raise RuntimeError( + f"V8.14 matched only {total_linked} resumable trusted calls; expected >=1000. " + "Generated call shape changed; refusing a cosmetic/no-op pass." + ) + if total_hooks < 150: + raise RuntimeError(f"V8.14 found only {total_hooks} shared JR return hooks; expected >=150") + + for p, new, _ in staged: + if new != read(p): + write(p, new) + return { + "units": len(units), + "linked_calls": total_linked, + "return_hook_units": total_hooks, + "generated_cpp_bytes": sum(p.stat().st_size for p in units), + } + + +def validate(root: Path) -> dict: + hpp = read(root / "include" / "psprecomp" / "runtime.hpp") + cpp = read(root / "src" / "runtime.cpp") + profile = read(root / "profiles" / "vcs" / "host" / "vcs_profile.cpp") + if RUNTIME_MARKER not in hpp or "prepare_aot_linked_call" not in hpp or "take_aot_tail_continuation" not in hpp: + raise RuntimeError("V8.14 Runtime continuation engine missing") + if OUTER_CLEAR_MARKER not in cpp or "clear_aot_tail_continuations();" not in cpp: + raise RuntimeError("V8.14 outer-dispatch continuation reset missing") + if SCHED_MARKER not in profile or 'PSPRECOMP_TIME_TICK_DISPATCHES", 1024u' not in profile: + raise RuntimeError("V8.14 batched scheduler default missing") + + generated = root / "profiles" / "vcs" / "generated" + units = sorted(generated.glob("generated_unit_*.cpp")) + if len(units) != EXPECTED_UNITS: + raise RuntimeError(f"expected {EXPECTED_UNITS} units, found {len(units)}") + calls = 0 + hooks = 0 + for p in units: + text = read(p) + calls += text.count(CALL_MARKER) + hooks += text.count(RETURN_HOOK_MARKER) + if CALL_MARKER in text and "prepare_aot_linked_call" not in text: + raise RuntimeError(f"{p.name}: linked-call marker without prepare helper") + if RETURN_HOOK_MARKER in text and "take_aot_tail_continuation" not in text: + raise RuntimeError(f"{p.name}: return hook marker without continuation pop") + if calls < 1000: + raise RuntimeError(f"V8.14 linked call population too small: {calls}") + if hooks < 150: + raise RuntimeError(f"V8.14 return-hook unit population too small: {hooks}") + return {"units": len(units), "linked_calls": calls, "return_hook_units": hooks, + "generated_cpp_bytes": sum(p.stat().st_size for p in units)} + + +def main() -> int: + ap = argparse.ArgumentParser(description=STAGE) + ap.add_argument("root", nargs="?", default=".") + ap.add_argument("--check", action="store_true") + args = ap.parse_args() + root = Path(args.root).resolve() + if not (root / "CMakeLists.txt").is_file(): + raise RuntimeError(f"not PSPRecomp root: {root}") + + if args.check: + s = validate(root) + print(f"V8.14 CHECK OK: units={s['units']} linked_calls={s['linked_calls']} " + f"return_hook_units={s['return_hook_units']} generated_cpp={s['generated_cpp_bytes']/1048576:.2f} MiB") + return 0 + + patch_runtime_hpp(root / "include" / "psprecomp" / "runtime.hpp") + patch_runtime_cpp(root / "src" / "runtime.cpp") + patch_scheduler(root / "profiles" / "vcs" / "host" / "vcs_profile.cpp") + s = patch_all_generated(root) + manifest = { + "stage": STAGE, + **s, + "scheduler_dispatch_interval_default": 1024, + "scheduler_tick_us_default": 256, + "native_call_stack_flattened": True, + } + manifest_path = root / "profiles" / "vcs" / "generated" / "v814_nonrecursive_aot_manifest.json" + manifest_path.write_text(json.dumps(manifest, indent=2) + "\n", encoding="utf-8") + validate(root) + print(f"V8.14 non-recursive AOT applied: units={s['units']} linked_calls={s['linked_calls']} " + f"return_hook_units={s['return_hook_units']} scheduler=1024/256us " + f"generated_cpp={s['generated_cpp_bytes']/1048576:.2f} MiB") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/profiles/vcs/tools/apply_v8151_force_activation.py b/profiles/vcs/tools/apply_v8151_force_activation.py new file mode 100644 index 0000000..55a42c9 --- /dev/null +++ b/profiles/vcs/tools/apply_v8151_force_activation.py @@ -0,0 +1,222 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import argparse +from pathlib import Path + +STAGE_OLD = 'stage=perf-v8.10-extreme-cpu-resident-regions-2026-08-18' +STAGE_815 = 'stage=perf-v8.15-async-ge-overlap-2026-08-27' +STAGE_8151 = 'stage=perf-v8.15.1-async-ge-overlap-force-activation-2026-08-27' +STAGE_8155 = 'stage=perf-v8.15.5-hard-force-async-ge-2026-08-27' +MAIN_MARK = 'PSPRECOMP_V8151_ACTIVATION_LOG' +PROFILE_MARK = 'PSPRECOMP_V8151_WORKER_LOG' +SAFE_ASYNC_MARK = 'PSPRECOMP_V8155_ENABLE_ASYNC' + + +def read(p: Path) -> str: + return p.read_text(encoding='utf-8', errors='strict') + + +def write(p: Path, s: str) -> None: + tmp = p.with_suffix(p.suffix + '.v8151tmp') + tmp.write_text(s, encoding='utf-8', newline='\n') + tmp.replace(p) + + +def patch_main(p: Path) -> bool: + old = read(p) + text = old + force_mark = 'PSPRECOMP_V8151_FORCE_PRODUCTION_ON' + if force_mark not in text: + old_block = ''' // PSPRECOMP_V815_PRODUCTION_DEFAULTS: VCS production defaults. Tests do not execute this main(), + // so their historical synchronous behavior stays isolated. User environment + // variables always win and provide immediate compatibility rollback. +#ifdef _WIN32 + if (std::getenv("PSPRECOMP_GE_ASYNC") == nullptr) + _putenv_s("PSPRECOMP_GE_ASYNC", "1"); + if (std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE") == nullptr) + _putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1"); +#else + if (std::getenv("PSPRECOMP_GE_ASYNC") == nullptr) + setenv("PSPRECOMP_GE_ASYNC", "1", 0); + if (std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE") == nullptr) + setenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1", 0); +#endif +''' + if old_block not in text: + raise RuntimeError(f'{p}: V8.15 production-default block missing') + new_block = ''' // PSPRECOMP_V815_PRODUCTION_DEFAULTS + // PSPRECOMP_V8151_FORCE_PRODUCTION_ON: stale shell/user variables must not + // silently turn the performance architecture off. A new explicit rollback + // switch is available for compatibility bisects. + const char *v8151_force_sync_text = std::getenv("PSPRECOMP_V8151_FORCE_SYNC"); + const bool v8151_force_sync = v8151_force_sync_text != nullptr && + *v8151_force_sync_text != '\\0' && *v8151_force_sync_text != '0'; +#ifdef _WIN32 + _putenv_s("PSPRECOMP_GE_ASYNC", v8151_force_sync ? "0" : "1"); + _putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", v8151_force_sync ? "0" : "1"); +#else + setenv("PSPRECOMP_GE_ASYNC", v8151_force_sync ? "0" : "1", 1); + setenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", v8151_force_sync ? "0" : "1", 1); +#endif +''' + text = text.replace(old_block, new_block, 1) + if MAIN_MARK not in text: + anchor = ' vcs::runtime_log_initialize(configuration);\n' + if text.count(anchor) != 1: + raise RuntimeError(f'{p}: runtime_log_initialize anchor count={text.count(anchor)}') + ins = anchor + ( + f' // {MAIN_MARK}: prove the production defaults reached this executable.\n' + ' {\n' + ' const char *async_env = std::getenv("PSPRECOMP_GE_ASYNC");\n' + ' const char *decode_env = std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE");\n' + ' vcs::runtime_log_line(std::string("v8151 activation ge_async_env=") +\n' + ' (async_env != nullptr ? async_env : "") +\n' + ' " parallel_vertex_env=" +\n' + ' (decode_env != nullptr ? decode_env : ""));\n' + ' }\n' + ) + text = text.replace(anchor, ins, 1) + if text == old: + return False + write(p, text) + return True + + +def patch_profile(p: Path) -> bool: + old = read(p) + if PROFILE_MARK in old: + return False + anchor = ' ge_async.thread = std::thread(&ge_async_worker_main);\n' + if old.count(anchor) != 1: + raise RuntimeError(f'{p}: worker start anchor count={old.count(anchor)}') + repl = anchor + ( + f' // {PROFILE_MARK}: runtime proof that the asynchronous consumer actually started.\n' + ' vcs::runtime_log_line("v8151 ge_async_worker_started=1");\n' + ) + write(p, old.replace(anchor, repl, 1)) + return True + + +def patch_log(p: Path) -> bool: + old = read(p) + text = old + changed = False + # V8.15.5 deliberately supersedes the old hard-on policy with a safe, + # explicit opt-in. Do not rewrite its metadata back to the quarantined + # V8.15.1 defaults when the normal build script reapplies this prerequisite. + if STAGE_8155 in text and SAFE_ASYNC_MARK in text: + return False + if STAGE_8151 not in text and STAGE_8155 not in text: + if STAGE_815 in text: + text = text.replace(STAGE_815, STAGE_8151, 1) + changed = True + elif STAGE_OLD in text: + text = text.replace(STAGE_OLD, STAGE_8151, 1) + changed = True + else: + raise RuntimeError(f'{p}: no known stage string to update') + if 'ge_async_default=1 parallel_vertex_decode_default=1' not in text: + text = text.replace('ge_async_default=0 parallel_vertex_decode_default=0', + 'ge_async_default=1 parallel_vertex_decode_default=1', 1) + changed = text != old or changed + if 'ge_async_present_safepoint=1' not in text: + text = text.replace('ge_async_quarantined=1 parallel_vertex_decode_quarantined=1 legacy_perf_env_ignored=1', + 'ge_async_quarantined=0 ge_async_present_safepoint=1 parallel_vertex_decode_quarantined=0 legacy_perf_env_ignored=1', 1) + changed = text != old or changed + if changed: + write(p, text) + return changed + + +def check(root: Path) -> None: + main = read(root / 'profiles/vcs/host/main.cpp') + profile = read(root / 'profiles/vcs/host/vcs_profile.cpp') + log = read(root / 'profiles/vcs/host/vcs_runtime_log.cpp') + required_main = [ + 'PSPRECOMP_V815_PRODUCTION_DEFAULTS', + 'PSPRECOMP_V8151_FORCE_PRODUCTION_ON', + MAIN_MARK, + 'v8151 activation ge_async_env=', + ] + for tok in required_main: + if tok not in main: + raise RuntimeError(f'V8.15.1 check: main missing {tok}') + # Monotonic prerequisite: V8.15.5 intentionally replaces the V8.15.1 + # conditional rollback with unconditional production-on. Accept either. + v8151_conditional = ( + '_putenv_s("PSPRECOMP_GE_ASYNC", v8151_force_sync ? "0" : "1")' in main and + '_putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", v8151_force_sync ? "0" : "1")' in main + ) + v8155_hard = ( + 'PSPRECOMP_V8155_HARD_FORCE_ASYNC' in main and + '_putenv_s("PSPRECOMP_GE_ASYNC", "1")' in main and + '_putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1")' in main + ) + v8155_safe = ( + 'PSPRECOMP_V8155_HARD_FORCE_ASYNC' in main and + SAFE_ASYNC_MARK in main and + '_putenv_s("PSPRECOMP_GE_ASYNC", async_opt_in ? "1" : "0")' in main and + '_putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", async_opt_in ? "1" : "0")' in main + ) + if not (v8151_conditional or v8155_hard or v8155_safe): + raise RuntimeError('V8.15.1 check: neither V8.15.1 conditional nor V8.15.5 hard activation is present') + required_profile = [ + 'PSPRECOMP_V815_ASYNC_GE_OVERLAP', + 'PSPRECOMP_V815_PRESENT_SAFEPOINT', + 'presentation_requested', + 'worker_busy', + 'ge_async_begin_presentation', + 'ge_async_end_presentation', + PROFILE_MARK, + 'v8151 ge_async_worker_started=1', + ] + for tok in required_profile: + if tok not in profile: + raise RuntimeError(f'V8.15.1 check: profile missing {tok}') + # V8.15.3: scope this check to the sceDisplay wait_vblank lambda only. + # ge_async_wait_idle(rt) remains required in true GE synchronization HLEs + # such as DrawSync/GetCmd/context save+restore and must not fail this check. + vblank_start = profile.find("auto wait_vblank =") + if vblank_start < 0: + raise RuntimeError('V8.15.1 check: wait_vblank lambda missing') + vblank_prefix = profile[vblank_start:vblank_start + 1800] + if 'PSPRECOMP_V815_PRESENT_SAFEPOINT' not in vblank_prefix: + raise RuntimeError('V8.15.1 check: VBlank presentation safe-point marker missing') + if 'if (!ge_async_wait_idle(rt)) return;' in vblank_prefix: + raise RuntimeError('V8.15.1 check: old VBlank GE idle barrier still present') + if STAGE_8151 not in log and STAGE_8155 not in log: + raise RuntimeError('V8.15.1 check: runtime log missing V8.15.1/V8.15.5 stage') + if SAFE_ASYNC_MARK in main: + for tok in ['ge_async_default=0', 'parallel_vertex_decode_default=0', + 'ge_async_opt_in=PSPRECOMP_V8155_ENABLE_ASYNC', + 'ge_async_present_safepoint=1']: + if tok not in log: + raise RuntimeError(f'V8.15.1 check: runtime log missing {tok}') + else: + for tok in ['ge_async_default=1', 'parallel_vertex_decode_default=1', + 'ge_async_present_safepoint=1']: + if tok not in log: + raise RuntimeError(f'V8.15.1 check: runtime log missing {tok}') + + +def main_entry() -> int: + ap = argparse.ArgumentParser() + ap.add_argument('root', nargs='?', default=None) + ap.add_argument('--check', action='store_true') + ns = ap.parse_args() + root = Path(ns.root).resolve() if ns.root else Path(__file__).resolve().parents[3] + if ns.check: + check(root) + print('V8.15.1 CHECK OK: source activation + async worker proof + stage marker') + return 0 + changed=[] + if patch_main(root / 'profiles/vcs/host/main.cpp'): changed.append('main.cpp') + if patch_profile(root / 'profiles/vcs/host/vcs_profile.cpp'): changed.append('vcs_profile.cpp') + if patch_log(root / 'profiles/vcs/host/vcs_runtime_log.cpp'): changed.append('vcs_runtime_log.cpp') + check(root) + print('V8.15.1 force activation applied: ' + (', '.join(changed) if changed else 'already applied')) + return 0 + +if __name__ == '__main__': + raise SystemExit(main_entry()) diff --git a/profiles/vcs/tools/apply_v8155_hard_force_async.py b/profiles/vcs/tools/apply_v8155_hard_force_async.py new file mode 100644 index 0000000..d24b3a0 --- /dev/null +++ b/profiles/vcs/tools/apply_v8155_hard_force_async.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import argparse +from pathlib import Path + +STAGE_8151 = 'stage=perf-v8.15.1-async-ge-overlap-force-activation-2026-08-27' +STAGE_8155 = 'stage=perf-v8.15.5-hard-force-async-ge-2026-08-27' +MAIN_MARK = 'PSPRECOMP_V8155_HARD_FORCE_ASYNC' +ASYNC_OPT_IN_MARK = 'PSPRECOMP_V8155_ENABLE_ASYNC' +LOG_MARK = 'PSPRECOMP_V8155_RUNTIME_LOG' +CONFIG_MARK = 'PSPRECOMP_V8155_PRESERVE_EXPLICIT_GE_FLAGS' + + +def read(p: Path) -> str: + return p.read_text(encoding='utf-8', errors='strict') + + +def write(p: Path, text: str) -> None: + tmp = p.with_suffix(p.suffix + '.v8155tmp') + tmp.write_text(text, encoding='utf-8', newline='\n') + tmp.replace(p) + + +def patch_main(p: Path) -> bool: + old = read(p) + if MAIN_MARK in old: + return False + text = old + old_block = ''' // PSPRECOMP_V815_PRODUCTION_DEFAULTS + // PSPRECOMP_V8151_FORCE_PRODUCTION_ON: stale shell/user variables must not + // silently turn the performance architecture off. A new explicit rollback + // switch is available for compatibility bisects. + const char *v8151_force_sync_text = std::getenv("PSPRECOMP_V8151_FORCE_SYNC"); + const bool v8151_force_sync = v8151_force_sync_text != nullptr && + *v8151_force_sync_text != '\\0' && *v8151_force_sync_text != '0'; +#ifdef _WIN32 + _putenv_s("PSPRECOMP_GE_ASYNC", v8151_force_sync ? "0" : "1"); + _putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", v8151_force_sync ? "0" : "1"); +#else + setenv("PSPRECOMP_GE_ASYNC", v8151_force_sync ? "0" : "1", 1); + setenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", v8151_force_sync ? "0" : "1", 1); +#endif +''' + if old_block not in text: + raise RuntimeError(f'{p}: V8.15.1 activation block missing; refusing blind patch') + new_block = ''' // PSPRECOMP_V815_PRODUCTION_DEFAULTS + // PSPRECOMP_V8151_FORCE_PRODUCTION_ON + // PSPRECOMP_V8155_HARD_FORCE_ASYNC: production VCSNative always runs the + // CPU/GE overlap architecture. Older shell variables and the temporary + // V8.15.1 rollback variable are deliberately cleared here so an inherited + // environment cannot silently turn the fast path off again. +#ifdef _WIN32 + _putenv_s("PSPRECOMP_V8151_FORCE_SYNC", ""); + _putenv_s("PSPRECOMP_GE_ASYNC", "1"); + _putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1"); +#else + unsetenv("PSPRECOMP_V8151_FORCE_SYNC"); + setenv("PSPRECOMP_GE_ASYNC", "1", 1); + setenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1", 1); +#endif +''' + text = text.replace(old_block, new_block, 1) + + # Keep the existing V8.15.1 activation line, but add an unmistakable marker + # after logging is initialized. This is source + runtime proof that this + # stronger state reached the binary and process environment. + anchor = ' vcs::runtime_log_initialize(configuration);\n' + if text.count(anchor) != 1: + raise RuntimeError(f'{p}: runtime_log_initialize anchor count={text.count(anchor)}') + injected = anchor + ( + ' vcs::runtime_log_line("v8155 hard_force_async=1 parallel_vertex=1");\n' + ) + text = text.replace(anchor, injected, 1) + write(p, text) + return True + + +def patch_log(p: Path) -> bool: + old = read(p) + text = old + if STAGE_8155 not in text: + if STAGE_8151 in text: + text = text.replace(STAGE_8151, STAGE_8155, 1) + else: + raise RuntimeError(f'{p}: expected V8.15.1 stage before V8.15.5') + if 'ge_async_hard_force=1' not in text: + needle = ' << " ge_async_quarantined=0 ge_async_present_safepoint=1 parallel_vertex_decode_quarantined=0 legacy_perf_env_ignored=1"\n' + repl = ' << " ge_async_quarantined=0 ge_async_present_safepoint=1 ge_async_hard_force=1 parallel_vertex_decode_quarantined=0 legacy_perf_env_ignored=1"\n' + if needle not in text: + raise RuntimeError(f'{p}: async metadata anchor missing') + text = text.replace(needle, repl, 1) + if LOG_MARK not in text: + stage_line = f' s.file << "{STAGE_8155}\\n";\n' + if stage_line in text: + text = text.replace(stage_line, stage_line.rstrip('\n') + f' // {LOG_MARK}\n', 1) + else: + # V8.15.1 may already carry a comment on the line. The stage string + # itself is sufficient; add a nearby marker without changing output. + anchor = ' s.file << "config=" << configuration.source_path.string() << \'\\n\';\n' + if anchor not in text: + raise RuntimeError(f'{p}: config log anchor missing') + text = text.replace(anchor, f' // {LOG_MARK}\n' + anchor, 1) + if text == old: + return False + write(p, text) + return True + + +def patch_config(p: Path) -> bool: + """Keep the DX12 safety defaults without undoing the launcher's opt-in.""" + old = read(p) + if CONFIG_MARK in old: + return False + old_block = ''' // V5 STABLE RECOVERY2: return every unproven scheduler/CPU-renderer + // experiment to the last gameplay-stable V4 AMD/UMA baseline. Both GE + // async and parallel vertex decode are quarantined in production, and old + // inherited environment flags are deliberately ignored. + if (config.rendering.backend == RenderingBackend::DirectX12) { + set_environment_value("PSPRECOMP_GE_ASYNC", "0"); + set_environment_value("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "0"); + } +''' + if old_block not in old: + raise RuntimeError(f'{p}: DX12 async quarantine block missing; refusing blind patch') + new_block = ''' // PSPRECOMP_V8155_PRESERVE_EXPLICIT_GE_FLAGS + // DX12 keeps conservative defaults for an otherwise unconfigured process, + // while preserving an explicit launcher/benchmark override. The VCS + // launcher enables overlap before loading this configuration; overwriting + // it here would silently serialize the guest CPU with the GE worker. + if (config.rendering.backend == RenderingBackend::DirectX12) { + if (std::getenv("PSPRECOMP_GE_ASYNC") == nullptr) + set_environment_value("PSPRECOMP_GE_ASYNC", "0"); + if (std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE") == nullptr) + set_environment_value("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "0"); + } +''' + write(p, old.replace(old_block, new_block, 1)) + return True + + +def check(root: Path) -> None: + main = read(root / 'profiles/vcs/host/main.cpp') + log = read(root / 'profiles/vcs/host/vcs_runtime_log.cpp') + config = read(root / 'profiles/vcs/host/vcs_config.cpp') + required_main = [ + MAIN_MARK, + ASYNC_OPT_IN_MARK, + '_putenv_s("PSPRECOMP_V8151_FORCE_SYNC", "")', + '_putenv_s("PSPRECOMP_GE_ASYNC", async_opt_in ? "1" : "0")', + '_putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", async_opt_in ? "1" : "0")', + 'v8155 hard_force_async=', + ] + for token in required_main: + if token not in main: + raise RuntimeError(f'V8.15.5 check: main missing {token}') + forbidden = [ + '_putenv_s("PSPRECOMP_GE_ASYNC", v8151_force_sync ? "0" : "1")', + '_putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", v8151_force_sync ? "0" : "1")', + ] + for token in forbidden: + if token in main: + raise RuntimeError(f'V8.15.5 check: conditional rollback still present: {token}') + for token in [STAGE_8155, 'ge_async_default=0', 'parallel_vertex_decode_default=0', + 'ge_async_opt_in=PSPRECOMP_V8155_ENABLE_ASYNC', + 'ge_async_present_safepoint=1', 'ge_async_hard_force=0', LOG_MARK]: + if token not in log: + raise RuntimeError(f'V8.15.5 check: runtime log missing {token}') + for token in [CONFIG_MARK, + 'if (std::getenv("PSPRECOMP_GE_ASYNC") == nullptr)', + 'if (std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE") == nullptr)']: + if token not in config: + raise RuntimeError(f'V8.15.5 check: config missing {token}') + + +def main_entry() -> int: + ap = argparse.ArgumentParser() + ap.add_argument('root', nargs='?', default=None) + ap.add_argument('--check', action='store_true') + ns = ap.parse_args() + root = Path(ns.root).resolve() if ns.root else Path(__file__).resolve().parents[3] + if ns.check: + check(root) + print('V8.15.5 CHECK OK: async + parallel vertex require explicit opt-in') + return 0 + changed = [] + if patch_main(root / 'profiles/vcs/host/main.cpp'): changed.append('main.cpp') + if patch_log(root / 'profiles/vcs/host/vcs_runtime_log.cpp'): changed.append('vcs_runtime_log.cpp') + if patch_config(root / 'profiles/vcs/host/vcs_config.cpp'): changed.append('vcs_config.cpp') + check(root) + print('V8.15.5 hard-force async applied: ' + (', '.join(changed) if changed else 'already applied')) + return 0 + + +if __name__ == '__main__': + raise SystemExit(main_entry()) diff --git a/profiles/vcs/tools/apply_v815_async_ge_overlap.py b/profiles/vcs/tools/apply_v815_async_ge_overlap.py new file mode 100644 index 0000000..3b4d78e --- /dev/null +++ b/profiles/vcs/tools/apply_v815_async_ge_overlap.py @@ -0,0 +1,417 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import argparse +import re +from pathlib import Path + +MARKER = "PSPRECOMP_V815_ASYNC_GE_OVERLAP" +PRESENT_MARKER = "PSPRECOMP_V815_PRESENT_SAFEPOINT" +MAIN_MARKER = "PSPRECOMP_V815_PRODUCTION_DEFAULTS" +LOG_MARKER = "PSPRECOMP_V815_RUNTIME_LOG" + + +def read(path: Path) -> str: + return path.read_text(encoding="utf-8", errors="strict") + + +def write_if_changed(path: Path, old: str, new: str) -> bool: + if old == new: + return False + tmp = path.with_suffix(path.suffix + ".v815tmp") + tmp.write_text(new, encoding="utf-8", newline="\n") + tmp.replace(path) + return True + + +def require_once(text: str, needle: str, path: Path, desc: str) -> None: + count = text.count(needle) + if count != 1: + raise RuntimeError(f"{path}: expected one {desc}, found {count}") + + +def patch_profile(path: Path) -> bool: + old = read(path) + if MARKER in old and PRESENT_MARKER in old: + return False + text = old + + state_anchor = " bool stop_requested{};\n std::atomic started{false};\n" + require_once(text, state_anchor, path, "GE async state anchor") + text = text.replace( + state_anchor, + " bool stop_requested{};\n" + f" // {MARKER}: presentation owns the backend only between GE tasks.\n" + " bool presentation_requested{};\n" + " bool worker_busy{};\n" + " std::uint64_t present_safe_points{};\n" + " std::atomic started{false};\n", + 1, + ) + + enabled_re = re.compile( + r"bool ge_async_enabled\(\) noexcept \{\n.*? return enabled;\n\}\n", + re.DOTALL, + ) + matches = list(enabled_re.finditer(text)) + if len(matches) != 1: + raise RuntimeError(f"{path}: expected one ge_async_enabled(), found {len(matches)}") + enabled_impl = f'''bool ge_async_enabled() noexcept {{ + // {MARKER}: VCSNative opts this in at process startup. Keeping the profile + // layer environment-gated preserves unit-test isolation and a zero-cost + // PSPRECOMP_GE_ASYNC=0 rollback without another build. + static const bool enabled = [] {{ + const char *value = std::getenv("PSPRECOMP_GE_ASYNC"); + return value != nullptr && *value != '\\0' && + std::strcmp(value, "0") != 0 && + std::strcmp(value, "false") != 0 && std::strcmp(value, "FALSE") != 0 && + std::strcmp(value, "off") != 0 && std::strcmp(value, "OFF") != 0; + }}(); + return enabled; +}} +''' + m = matches[0] + text = text[:m.start()] + enabled_impl + text[m.end():] + + decl_anchor = ( + "bool ge_async_wait_idle(psprecomp::Runtime &runtime);\n" + "bool ge_async_wait_list(psprecomp::Runtime &runtime, std::uint32_t id);\n" + ) + require_once(text, decl_anchor, path, "GE async declarations") + text = text.replace( + decl_anchor, + "bool ge_async_wait_idle(psprecomp::Runtime &runtime);\n" + "bool ge_async_begin_presentation(psprecomp::Runtime &runtime);\n" + "void ge_async_end_presentation() noexcept;\n" + "bool ge_async_wait_list(psprecomp::Runtime &runtime, std::uint32_t id);\n", + 1, + ) + + start_anchor = ( + " ge_async.runtime = &runtime;\n" + " ge_async.stop_requested = false;\n" + " ge_async.started.store(true, std::memory_order_release);\n" + ) + require_once(text, start_anchor, path, "worker start state") + text = text.replace( + start_anchor, + " ge_async.runtime = &runtime;\n" + " ge_async.stop_requested = false;\n" + " ge_async.presentation_requested = false;\n" + " ge_async.worker_busy = false;\n" + " ge_async.started.store(true, std::memory_order_release);\n", + 1, + ) + + wait_anchor = ( + " ge_async.cv.wait(lock, [] { return ge_async.stop_requested || !ge_async.pending.empty(); });\n" + " if (ge_async.stop_requested && ge_async.pending.empty()) break;\n" + " task = std::move(ge_async.pending.front());\n" + ) + require_once(text, wait_anchor, path, "worker task wait") + text = text.replace( + wait_anchor, + " ge_async.cv.wait(lock, [] {\n" + " return ge_async.stop_requested ||\n" + " (!ge_async.presentation_requested && !ge_async.pending.empty());\n" + " });\n" + " if (ge_async.stop_requested && ge_async.pending.empty()) break;\n" + " ge_async.worker_busy = true;\n" + " task = std::move(ge_async.pending.front());\n", + 1, + ) + + invalid_anchor = ( + " ge_async.live_stalls.erase(task.id);\n" + " ge_async.outstanding.fetch_sub(1u, std::memory_order_acq_rel);\n" + " ge_async.cv.notify_all();\n" + " continue;\n" + ) + require_once(text, invalid_anchor, path, "stale async task path") + text = text.replace( + invalid_anchor, + " ge_async.live_stalls.erase(task.id);\n" + " ge_async.outstanding.fetch_sub(1u, std::memory_order_acq_rel);\n" + " ge_async.worker_busy = false;\n" + " ge_async.cv.notify_all();\n" + " continue;\n", + 1, + ) + + complete_anchor = ( + " ++ge_async.completed;\n" + " ge_async.outstanding.fetch_sub(1u, std::memory_order_acq_rel);\n" + ) + require_once(text, complete_anchor, path, "async completion path") + text = text.replace( + complete_anchor, + " ++ge_async.completed;\n" + " ge_async.outstanding.fetch_sub(1u, std::memory_order_acq_rel);\n" + " ge_async.worker_busy = false;\n", + 1, + ) + + impl_anchor = "bool ge_async_wait_list(psprecomp::Runtime &runtime, std::uint32_t id) {\n" + require_once(text, impl_anchor, path, "ge_async_wait_list") + safe_impl = f'''// {PRESENT_MARKER} +bool ge_async_begin_presentation(psprecomp::Runtime &runtime) {{ + if (!ge_async_enabled() || !ge_async.started.load(std::memory_order_acquire)) return true; + const auto begin = std::chrono::steady_clock::now(); + {{ + std::unique_lock lock(ge_async.mutex); + ge_async.presentation_requested = true; + ge_async.cv.notify_all(); + ge_async.cv.wait(lock, [] {{ + return !ge_async.worker_busy || ge_async.fatal.load(std::memory_order_acquire) || + ge_async.stop_requested; + }}); + ge_async.last_wait_ns.store( + static_cast(std::chrono::duration_cast( + std::chrono::steady_clock::now() - begin).count()), + std::memory_order_release); + }} + runtime.memory().memory_barrier(); + ge_async_drain_completions(); + if (!ge_async_check_fatal(runtime)) {{ + ge_async_end_presentation(); + return false; + }} + return true; +}} + +void ge_async_end_presentation() noexcept {{ + if (!ge_async.started.load(std::memory_order_acquire)) return; + {{ + std::lock_guard lock(ge_async.mutex); + if (!ge_async.presentation_requested) return; + ge_async.presentation_requested = false; + ++ge_async.present_safe_points; + }} + ge_async.cv.notify_all(); +}} + +''' + text = text.replace(impl_anchor, safe_impl + impl_anchor, 1) + + vblank_anchor = ( + " // The display consumes the completed GE frame. This is a real PSP\n" + " // visibility boundary: allow guest/GE overlap during the frame, then\n" + " // wait only here before framebuffer presentation and vblank callbacks.\n" + " if (!ge_async_wait_idle(rt)) return;\n" + " ++display_vblank_index;\n" + ) + require_once(text, vblank_anchor, path, "old VBlank idle barrier") + text = text.replace( + vblank_anchor, + f''' // {PRESENT_MARKER}: VBlank itself is not a global GE DrawSync. + // Keep CPU/GE overlap alive through callbacks/telemetry and acquire the + // renderer safe-point only immediately around frame finalization below. + ++display_vblank_index; +''', + 1, + ) + + present_anchor = ( + " const auto present_entry = perf_timing_enabled()\n" + " ? std::chrono::steady_clock::now() : std::chrono::steady_clock::time_point{};\n" + ) + require_once(text, present_anchor, path, "presentation timing anchor") + text = text.replace( + present_anchor, + f''' // {PRESENT_MARKER}: pause the GE worker only while renderer/backend + // presentation state is consumed. Pending/stalled lists stay queued and + // resume immediately after this narrow critical section. + const bool ge_present_gate_active = ge_async_running(); + if (!ge_async_begin_presentation(rt)) return; + struct GePresentationRelease {{ + bool active; + ~GePresentationRelease() {{ if (active) ge_async_end_presentation(); }} + }} ge_presentation_release{{ge_present_gate_active}}; + const auto present_entry = perf_timing_enabled() + ? std::chrono::steady_clock::now() : std::chrono::steady_clock::time_point{{}}; +''', + 1, + ) + + release_anchor = ( + " if (perf_timing_enabled())\n" + " frame_time_stats.present_time += std::chrono::steady_clock::now() - present_entry;\n" + " limit_frame_rate();\n" + ) + require_once(text, release_anchor, path, "presentation safe-point release anchor") + text = text.replace( + release_anchor, + " if (perf_timing_enabled())\n" + " frame_time_stats.present_time += std::chrono::steady_clock::now() - present_entry;\n" + " if (ge_presentation_release.active) {\n" + " ge_async_end_presentation();\n" + " ge_presentation_release.active = false;\n" + " }\n" + " limit_frame_rate();\n", + 1, + ) + + stop_anchor = ( + " ge_async.started.store(false, std::memory_order_release);\n" + " ge_async.runtime = nullptr;\n" + " ge_async.pending.clear();\n" + ) + require_once(text, stop_anchor, path, "worker stop reset") + text = text.replace( + stop_anchor, + " ge_async.started.store(false, std::memory_order_release);\n" + " ge_async.runtime = nullptr;\n" + " ge_async.presentation_requested = false;\n" + " ge_async.worker_busy = false;\n" + " ge_async.pending.clear();\n", + 1, + ) + + reset_anchor = ( + " ge_async.stop_requested = false;\n" + " ge_async.fatal.store(false, std::memory_order_release);\n" + ) + reset_count = text.count(reset_anchor) + if reset_count < 1: + raise RuntimeError(f"{path}: profile reset async state anchor missing") + text = text.replace( + reset_anchor, + " ge_async.stop_requested = false;\n" + " ge_async.presentation_requested = false;\n" + " ge_async.worker_busy = false;\n" + " ge_async.present_safe_points = 0u;\n" + " ge_async.fatal.store(false, std::memory_order_release);\n", + ) + + return write_if_changed(path, old, text) + + +def patch_main(path: Path) -> bool: + old = read(path) + if MAIN_MARKER in old: + return False + text = old + anchor = "int main(int argc, char **argv) {\n#ifdef _WIN32\n SetUnhandledExceptionFilter(&vcs_unhandled_exception_filter);\n#endif\n try {\n" + require_once(text, anchor, path, "main startup anchor") + injected = f'''int main(int argc, char **argv) {{ +#ifdef _WIN32 + SetUnhandledExceptionFilter(&vcs_unhandled_exception_filter); +#endif + // {MAIN_MARKER}: VCS production defaults. Tests do not execute this main(), + // so their historical synchronous behavior stays isolated. User environment + // variables always win and provide immediate compatibility rollback. +#ifdef _WIN32 + if (std::getenv("PSPRECOMP_GE_ASYNC") == nullptr) + _putenv_s("PSPRECOMP_GE_ASYNC", "1"); + if (std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE") == nullptr) + _putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1"); +#else + if (std::getenv("PSPRECOMP_GE_ASYNC") == nullptr) + setenv("PSPRECOMP_GE_ASYNC", "1", 0); + if (std::getenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE") == nullptr) + setenv("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1", 0); +#endif + try {{ +''' + text = text.replace(anchor, injected, 1) + return write_if_changed(path, old, text) + + +def patch_runtime_log(path: Path) -> bool: + old = read(path) + text = old + stage_old = ' s.file << "stage=perf-v8.10-extreme-cpu-resident-regions-2026-08-18\\n";\n' + if stage_old in text: + text = text.replace( + stage_old, + f' s.file << "stage=perf-v8.15-async-ge-overlap-2026-08-27\\n"; // {LOG_MARKER}\n', + 1, + ) + elif LOG_MARKER not in text: + raise RuntimeError(f"{path}: runtime stage anchor changed") + text = text.replace( + ' << " ge_async_default=0 parallel_vertex_decode_default=0"\n', + ' << " ge_async_default=1 parallel_vertex_decode_default=1"\n', 1) + text = text.replace( + ' << " ge_async_quarantined=1 parallel_vertex_decode_quarantined=1 legacy_perf_env_ignored=1"\n', + ' << " ge_async_quarantined=0 ge_async_present_safepoint=1 parallel_vertex_decode_quarantined=0 legacy_perf_env_ignored=1"\n', 1) + if LOG_MARKER not in text: + raise RuntimeError(f"{path}: V8.15 log marker missing") + return write_if_changed(path, old, text) + + +def check(root: Path) -> None: + profile = read(root / "profiles/vcs/host/vcs_profile.cpp") + main = read(root / "profiles/vcs/host/main.cpp") + log = read(root / "profiles/vcs/host/vcs_runtime_log.cpp") + + for token in (MARKER, PRESENT_MARKER, "presentation_requested", "worker_busy", + "ge_async_begin_presentation", "ge_async_end_presentation"): + if token not in profile: + raise RuntimeError(f"V8.15 check: profile missing {token}") + # V8.15.2 checker-scope fix: ge_async_wait_idle(rt) is intentionally still + # used by real PSP GE synchronization HLEs (DrawSync/GetCmd/context + # save/restore). Only the sceDisplay wait_vblank path must stop using the + # global outstanding==0 barrier. The old checker scanned the entire file + # and falsely rejected those legitimate HLE barriers. + vblank_start = profile.find("auto wait_vblank =") + if vblank_start < 0: + raise RuntimeError("V8.15 check: wait_vblank lambda missing") + vblank_prefix = profile[vblank_start:vblank_start + 1800] + if PRESENT_MARKER not in vblank_prefix: + raise RuntimeError("V8.15 check: VBlank presentation safe-point marker missing") + if "if (!ge_async_wait_idle(rt)) return;" in vblank_prefix: + raise RuntimeError("V8.15 check: VBlank still waits outstanding==0") + if "!ge_async.presentation_requested && !ge_async.pending.empty()" not in profile: + raise RuntimeError("V8.15 check: worker can start tasks during presentation") + if profile.count("ge_async.worker_busy = true;") != 1 or profile.count("ge_async.worker_busy = false;") < 3: + raise RuntimeError("V8.15 check: worker_busy ownership transitions incomplete") + if 'std::getenv("PSPRECOMP_GE_ASYNC")' not in profile: + raise RuntimeError("V8.15 check: new async environment gate missing") + if MAIN_MARKER not in main: + raise RuntimeError("V8.15 check: production-default marker missing") + # V8.15.4: the prerequisite checker must be monotonic. A previous interrupted + # build may already have applied V8.15.1, whose stronger force-activation + # block intentionally replaces the original V8.15 conditional default. + # Accept either representation instead of rejecting the newer state. + async_default_v815 = '_putenv_s("PSPRECOMP_GE_ASYNC", "1")' in main + async_default_v8151 = '_putenv_s("PSPRECOMP_GE_ASYNC", v8151_force_sync ? "0" : "1")' in main + decode_default_v815 = '_putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", "1")' in main + decode_default_v8151 = '_putenv_s("PSPRECOMP_GE_PARALLEL_VERTEX_DECODE", v8151_force_sync ? "0" : "1")' in main + if not (async_default_v815 or async_default_v8151): + raise RuntimeError("V8.15 check: Windows production async default missing") + if not (decode_default_v815 or decode_default_v8151): + raise RuntimeError("V8.15 check: Windows parallel vertex default missing") + if not ("stage=perf-v8.15-async-ge-overlap-2026-08-27" in log or + "stage=perf-v8.15.1-async-ge-overlap-force-activation-2026-08-27" in log): + raise RuntimeError("V8.15 check: runtime log missing V8.15/V8.15.1 stage") + for token in ("ge_async_default=1", "parallel_vertex_decode_default=1", + "ge_async_present_safepoint=1"): + if token not in log: + raise RuntimeError(f"V8.15 check: runtime log missing {token}") + + +def main_entry() -> int: + ap = argparse.ArgumentParser() + ap.add_argument("root", nargs="?", default=None) + ap.add_argument("--check", action="store_true") + ns = ap.parse_args() + root = Path(ns.root).resolve() if ns.root else Path(__file__).resolve().parents[3] + if ns.check: + check(root) + print("V8.15 CHECK OK: async GE overlap safe-point + parallel vertex production default") + return 0 + changed = [] + if patch_profile(root / "profiles/vcs/host/vcs_profile.cpp"): changed.append("vcs_profile.cpp") + if patch_main(root / "profiles/vcs/host/main.cpp"): changed.append("main.cpp") + if patch_runtime_log(root / "profiles/vcs/host/vcs_runtime_log.cpp"): changed.append("vcs_runtime_log.cpp") + check(root) + print("V8.15 async GE overlap applied: " + (", ".join(changed) if changed else "already applied")) + print(" VCSNative defaults: async GE=ON, parallel vertex decode=ON") + print(" VBlank synchronization: current worker task only; queued/stalled lists do not block") + print(" rollback without rebuild: PSPRECOMP_GE_ASYNC=0 / PSPRECOMP_GE_PARALLEL_VERTEX_DECODE=0") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main_entry()) diff --git a/profiles/vcs/tools/force_v8151_rebuild.py b/profiles/vcs/tools/force_v8151_rebuild.py new file mode 100644 index 0000000..a47d036 --- /dev/null +++ b/profiles/vcs/tools/force_v8151_rebuild.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +from __future__ import annotations +import argparse +from pathlib import Path + +NEEDLES = ('vcs_profile', 'vcs_runtime_log', 'main', 'ge_renderer') + +def main() -> int: + ap=argparse.ArgumentParser() + ap.add_argument('build') + ns=ap.parse_args() + build=Path(ns.build).resolve() + removed=[] + if build.exists(): + for pattern in ('*.obj','*.o'): + for p in build.rglob(pattern): + low=p.name.lower() + if any(n in low for n in NEEDLES): + try: + p.unlink(); removed.append(str(p)) + except FileNotFoundError: + pass + for rel in ('bin/Release/VCSNative.exe','bin/VCSNative.exe'): + p=build/rel + if p.exists(): + p.unlink(); removed.append(str(p)) + print(f'V8.15.1 invalidation: removed={len(removed)} build={build}') + for p in removed[:20]: print(' removed', p) + if len(removed)>20: print(f' ... {len(removed)-20} more') + return 0 +if __name__=='__main__': raise SystemExit(main()) diff --git a/profiles/vcs/tools/force_v8155_rebuild.py b/profiles/vcs/tools/force_v8155_rebuild.py new file mode 100644 index 0000000..8ac8d62 --- /dev/null +++ b/profiles/vcs/tools/force_v8155_rebuild.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +from __future__ import annotations +import argparse +from pathlib import Path + +NEEDLES = ('vcs_profile', 'vcs_runtime_log', 'main', 'ge_renderer') + +def main() -> int: + ap=argparse.ArgumentParser(); ap.add_argument('build'); ns=ap.parse_args() + build=Path(ns.build).resolve(); removed=[] + if build.exists(): + for pattern in ('*.obj','*.o'): + for p in build.rglob(pattern): + low=p.name.lower() + if any(n in low for n in NEEDLES): + try: p.unlink(); removed.append(str(p)) + except FileNotFoundError: pass + for rel in ('bin/Release/VCSNative.exe','bin/VCSNative.exe'): + p=build/rel + if p.exists(): p.unlink(); removed.append(str(p)) + print(f'V8.15.5 invalidation: removed={len(removed)} build={build}') + return 0 +if __name__=='__main__': raise SystemExit(main()) diff --git a/profiles/vcs/tools/verify_v8151_binary.py b/profiles/vcs/tools/verify_v8151_binary.py new file mode 100644 index 0000000..c8a79b5 --- /dev/null +++ b/profiles/vcs/tools/verify_v8151_binary.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +from __future__ import annotations +import argparse +from pathlib import Path + +REQUIRED=[ + b'perf-v8.15.1-async-ge-overlap-force-activation-2026-08-27', + b'v8151 activation ge_async_env=', + b'v8151 ge_async_worker_started=1', +] + +def main()->int: + ap=argparse.ArgumentParser(); ap.add_argument('exe'); ns=ap.parse_args() + p=Path(ns.exe) + if not p.is_file(): raise SystemExit(f'V8.15.1 VERIFY FAIL: missing {p}') + data=p.read_bytes() + missing=[x.decode('ascii') for x in REQUIRED if x not in data] + if missing: + raise SystemExit('V8.15.1 VERIFY FAIL: built EXE is stale; missing markers: '+', '.join(missing)) + print(f'V8.15.1 BINARY VERIFY OK: {p} size={len(data)} bytes; activation markers present') + return 0 +if __name__=='__main__': raise SystemExit(main()) diff --git a/profiles/vcs/tools/verify_v8155_binary.py b/profiles/vcs/tools/verify_v8155_binary.py new file mode 100644 index 0000000..c386b6a --- /dev/null +++ b/profiles/vcs/tools/verify_v8155_binary.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +from __future__ import annotations +import argparse +from pathlib import Path + +REQUIRED=[ + b'perf-v8.15.5-hard-force-async-ge-2026-08-27', + b'v8155 hard_force_async=', + b'v8151 activation ge_async_env=', + b'v8151 ge_async_worker_started=1', + b'PSPRECOMP_V8155_ENABLE_ASYNC', + b'PSPRECOMP_GE_ASYNC', + b'PSPRECOMP_GE_PARALLEL_VERTEX_DECODE', +] + +def main()->int: + ap=argparse.ArgumentParser(); ap.add_argument('exe'); ns=ap.parse_args() + p=Path(ns.exe) + if not p.is_file(): raise SystemExit(f'V8.15.5 VERIFY FAIL: missing {p}') + data=p.read_bytes() + missing=[x.decode('ascii') for x in REQUIRED if x not in data] + if missing: + raise SystemExit('V8.15.5 VERIFY FAIL: built EXE missing markers: '+', '.join(missing)) + print(f'V8.15.5 BINARY VERIFY OK: {p} size={len(data)} bytes; async opt-in markers present') + return 0 +if __name__=='__main__': raise SystemExit(main()) diff --git a/src/runtime.cpp b/src/runtime.cpp index a89fd48..b7ac5fc 100644 --- a/src/runtime.cpp +++ b/src/runtime.cpp @@ -903,6 +903,11 @@ void Runtime::run(std::uint32_t entry, std::uint64_t max_dispatches) { // local-dispatch safety boundary). auto outer_aot_mem = memory_.aot_fast_view(); for (; executed_dispatches < max_dispatches && !stopped_; ++executed_dispatches) { + // PSPRECOMP_V814_CLEAR_CONTINUATIONS_AT_OUTER_DISPATCH + // Reaching Runtime is an architectural boundary. Any optimized + // native continuation still present must be discarded so HLE, + // yields, long jumps and thread switches cannot retain stale frames. + clear_aot_tail_continuations(); const std::uint32_t before = cpu_.pc; chain_context_invalidated_ = false; const std::int32_t dispatch_thread_uid = g_runtime_thread_uid;